From 76c30727c77065c808b1c0fb3146080e423e5fe6 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 27 六月 2024 09:45:30 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/tasklist/index.vue | 513 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 321 insertions(+), 192 deletions(-) diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue index 870d48a..71ed556 100644 --- a/src/views/followvisit/tasklist/index.vue +++ b/src/views/followvisit/tasklist/index.vue @@ -77,40 +77,31 @@ <el-divider></el-divider> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> + <el-select + @change="handleQuery" + v-model="tasktopic" + placeholder="璇烽�夋嫨鏂板绫诲瀷" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-col> + <el-col :span="1.5"> <el-button type="primary" - plain icon="el-icon-plus" size="medium" @click="handleAdd" - v-hasPermi="['system:user:add']" + :disabled="!tasktopic" >鏂板</el-button > </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="medium" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['system:user:edit']" - >淇敼</el-button - > - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="medium" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['system:user:remove']" - >鍒犻櫎</el-button - > - </el-col> + <el-col :span="19"> <div class="documentf"> <div class="document"> @@ -133,66 +124,45 @@ @queryTable="getList" :columns="columns" ></right-toolbar> --> - <el-table - v-loading="loading" - :data="userList" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="50" align="center" /> - <el-table-column label="搴忓彿" align="center" key="id" prop="id" /> + <el-table v-loading="loading" :data="userList"> + <el-table-column + label="搴忓彿" + fixed + align="center" + key="taskid" + prop="taskid" + /> <el-table-column label="浠诲姟鍚嶇О" + fixed align="center" sortable - key="name" - prop="name" + key="taskName" + prop="taskName" :show-overflow-tooltip="true" /> <el-table-column label="浠诲姟鎻忚堪" align="center" - key="describe" - prop="describe" + key="taskDesc" + prop="taskDesc" /> <el-table-column label="寰呮墽琛�/鎬讳换鍔�" align="center" key="nickName" prop="nickName" - /> - <el-table-column - label="鐘舵��" - align="center" - key="phonenumber" - prop="phonenumber" - width="120" - /> - - <el-table-column - label="瀹℃牳浜�" - align="center" - key="create_by" - prop="create_by" - width="120" - :show-overflow-tooltip="true" - /> - <el-table-column - label="瀹℃牳鏃堕棿" - sortable - align="center" - prop="create_time" - width="160" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.create_time) }}</span> + <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> </template> </el-table-column> <el-table-column label="鍒涘缓浜�" align="center" - key="create_by" - prop="create_by" + key="createBy" + prop="createBy" width="120" :show-overflow-tooltip="true" /> @@ -200,34 +170,73 @@ label="鍒涘缓鏃堕棿" sortable align="center" - prop="create_time" + prop="createTime" width="160" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.create_time) }}</span> + <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> - + <el-table-column + label="鐘舵��" + fixed="right" + align="center" + key="sendState" + prop="sendState" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.task_status" + :value="scope.row.sendState" + /> + </template> + </el-table-column> <el-table-column label="鎿嶄綔" + fixed="right" align="center" width="120" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button + v-if="scope.row.sendState == 1 || scope.row.sendState == 3" size="medium" type="text" - @click="handleUpdate(scope.row)" - v-hasPermi="['system:user:edit']" + @click="sponsor(scope.row)" ><span class="button-zx" - ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span + ><i class="el-icon-s-promotion"></i>浠诲姟鍙戣捣</span + ></el-button + > + <el-button + v-if="scope.row.sendState == 1 || scope.row.sendState == 3" + size="medium" + type="text" + @click="immediateExecution(scope.row)" + ><span class="button-lj" + ><i class="el-icon-s-promotion"></i>绔嬪嵆鎵ц</span + ></el-button + > + <el-button size="medium" type="text" @click="newAdd(scope.row)" + ><span class="button-xj" + ><i class="el-icon-circle-plus-outline"></i>渚濈収鏂板</span + ></el-button + > + <el-button + v-if="scope.row.sendState == 2" + size="medium" + type="text" + @click="stop(scope.row)" + ><span class="button-zt" + ><i class="el-icon-circle-plus-outline"></i>鏆傚仠浠诲姟</span ></el-button > </template> </el-table-column> <el-table-column label="浠诲姟璇︽儏" + fixed="right" align="center" width="200" class-name="small-padding fixed-width" @@ -237,25 +246,12 @@ size="medium" type="text" @click="handleUpdate(scope.row)" - v-hasPermi="['system:user:edit']" ><span class="button-xq" ><i class="el-icon-s-data"></i>璇︽儏</span ></el-button > - <!-- <el-button - size="medium" - type="text" - @click="handleUpdate(scope.row)" - v-hasPermi="['system:user:edit']" - ><span class="button-bb" - ><i class="el-icon-s-order"></i>鎶ヨ〃</span - ></el-button - > --> - <el-button - size="medium" - type="text" - @click="handleUpdate(scope.row)" - v-hasPermi="['system:user:edit']" + + <el-button size="medium" type="text" @click="deletefn(scope.row)" ><span class="button-sc" ><i class="el-icon-delete"></i>鍒犻櫎</span ></el-button @@ -272,58 +268,68 @@ @pagination="getList" /> </el-row> - <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 --> + <!-- 纭鍙戣捣瀵硅瘽妗� --> <el-dialog - :title="title" - :visible.sync="addalteropen" - width="700px" - append-to-body + title="浠诲姟鍙戣捣纭" + :visible.sync="taskformVisible" + width="50%" + :before-close="handleClose" > - <el-form ref="form" :model="form" label-width="100px"> - <el-row :gutter="20"> - <el-col :span="12" - ><el-form-item label="浠诲姟鍚嶇О"> - <el-input v-model="form.name"></el-input> </el-form-item - ></el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="24" - ><el-form-item label="鎵�灞炵瀹�"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨绉戝"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> - </el-select> </el-form-item></el-col - ></el-row> - <el-row :gutter="20"> - <el-col :span="24" - ><el-form-item label="闅忚绫诲瀷"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨闅忚绫诲瀷"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="24"> - <el-form-item label="鏈嶅姟妯″潡"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨妯″潡"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="24"> - <el-form-item label="闂ㄨ瘖闅忚瑕佹眰"> - <el-input type="textarea" v-model="form.desc"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">鎻� 浜�</el-button> - <el-button @click="cancel">杩� 鍥�</el-button> + <div style="font-size: 20px; color: red; margin-bottom: 20px"> + 璇风‘璁や换鍔�"{{ taskform.taskName }}"鐨勬墽琛屾椂闂� + </div> + <div + style="font-size: 18px; margin-bottom: 20px" + v-if="taskform.showDate[0]" + > + 鎵ц鏃ユ湡锛�<span + style="font-size: 18px; color: #2376b7; margin-bottom: 20px" + >{{ taskform.showDate[0] }} 鑷� {{ taskform.showDate[1] }}</span + > + </div> + <div + style="font-size: 18px; margin-bottom: 20px" + v-if="taskform.showTimeMorn[0]" + > + 绗竴鏃堕棿娈碉細<span + style="font-size: 18px; color: #2376b7; margin-bottom: 20px" + >{{ taskform.showTimeMorn[0] }} 鑷� + {{ taskform.showTimeMorn[1] }}</span + > + </div> + <div + style="font-size: 18px; margin-bottom: 20px" + v-if="taskform.showTimeNight[0]" + > + 绗簩鏃堕棿娈碉細<span + style="font-size: 18px; color: #2376b7; margin-bottom: 20px" + >{{ taskform.showTimeNight[0] }} 鑷� + {{ taskform.showTimeNight[1] }}</span + > + </div> + <div + style="font-size: 18px; margin-bottom: 20px" + v-if="taskform.showTimeNoon[0]" + > + 绗笁鏃堕棿娈碉細<span + style="font-size: 18px; color: #2376b7; margin-bottom: 20px" + >{{ taskform.showTimeNoon[0] }} 鑷� + {{ taskform.showTimeNoon[1] }}</span + > + </div> + <div style="text-align: right"> + <el-button style="margin-right: 20px" @click="taskformVisible = false" + >鍙� 娑�</el-button + > + <el-button + style="margin-right: 20px" + type="success" + @click="confirmSponsor(taskform)" + >纭鎵ц</el-button + > + <el-button type="primary" @click="handleUpdate(taskform)" + >鍓嶅線淇敼</el-button + > </div> </el-dialog> </div> @@ -331,7 +337,6 @@ <script> import { - listUser, getUser, delUser, addUser, @@ -340,19 +345,22 @@ changeUserStatus, } from "@/api/system/user"; import { - listsvr_prj, - getsvr_task, - addsvr_task, - updatesvr_task, - delsvr_task, -} from "@/api/smartorpor/svr_task"; + getTasklist, + getTaskInfo, + Editsingletask, + delTaskInfo, + Questionnairetasklist, + Questionnairetaskget, + Questionnairetasksponsor, + TaskTemplateSendExecution, +} from "@/api/AiCentre/index"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "User", - dicts: ["sys_normal_disable", "sys_user_sex"], + dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], components: { Treeselect }, data() { return { @@ -384,10 +392,18 @@ postOptions: [], // 瑙掕壊閫夐」 roleOptions: [], + taskform: { + showDate: [], + showTimeMorn: [], + showTimeNight: [], + showTimeNoon: [], + }, + taskformVisible: false, dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」 inputVisible: false, inputValue: "", previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规 + TaskOperation: {}, radio: "", radios: [], previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷 @@ -397,6 +413,33 @@ previewvalue: { username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�", }, + taskoptions: [ + { + value: "1", + label: "瀹f暀鏈嶅姟", + }, + { + value: "2", + label: "闂ㄨ瘖闅忚", + }, + { + value: "3", + label: "鍑洪櫌闅忚", + }, + { + value: "4", + label: "澶嶈瘖鏈嶅姟", + }, + { + value: "5", + label: "浣撴閫氱煡", + }, + { + value: "6", + label: "闂嵎鏈嶅姟", + }, + ], + tasktopic: "2", //鏂板绫诲瀷 value: [], list: [], loading: false, @@ -581,17 +624,22 @@ }); }, methods: { - /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */ + /** 鏌ヨ浠诲姟鍒楄〃 */ getList() { this.loading = true; - listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( - (response) => { - console.log(response); + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + getTasklist(this.topqueryParams).then((response) => { this.userList = response.rows; this.total = response.total; this.loading = false; - } - ); + }); + } else if (this.tasktopic == 6) { + Questionnairetasklist(this.topqueryParams).then((res) => { + this.userList = res.rows; + this.total = res.total; + this.loading = false; + }); + } }, // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏 Referencequestion(row) { @@ -611,26 +659,7 @@ this.options = []; } }, - // 闂ㄨ瘖闅忚鐘舵�佷慨鏀� - handleStatusChange(row) { - let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; - this.$modal - .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵') - .then(function () { - return changeUserStatus(row.userId, row.status); - }) - .then(() => { - this.$modal.msgSuccess(text + "鎴愬姛"); - }) - .catch(function () { - row.status = row.status === "0" ? "1" : "0"; - }); - }, - // 鍙栨秷鎸夐挳 - cancel() { - this.addalteropen = false; - this.reset(); - }, + // 琛ㄥ崟閲嶇疆 reset() { this.form = { @@ -690,37 +719,116 @@ }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { - this.$router.push({ - path: "/followvisit/tasklist/FollowupDetails/", - }); + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + this.$router.push({ + path: "/followvisit/particty", + query: { type: this.tasktopic }, + }); + } else if (this.tasktopic == 6) { + this.$router.push({ + path: "/followvisit/QuestionnaireTask", + query: { type: this.tasktopic }, + }); + } }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { - // const userId = row.userId || this.ids; - // this.$router.push({ - // path: "/followvisit/tasklist/FollowupDetails/", - // query: { id: row.id }, - // }); this.$router.push({ path: "/followvisit/particty", - query: { type: 2, }, + query: { type: row.hospType, id: row.taskid }, + }); + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + this.$router.push({ + path: "/followvisit/particty", + query: { type: row.hospType, id: row.taskid }, + }); + } else if (this.tasktopic == 6) { + this.$router.push({ + path: "/followvisit/QuestionnaireTask", + query: { type: row.hospType, id: row.taskid }, + }); + } + }, + // 鍒犻櫎浠诲姟 + deletefn() {}, + // 浠诲姟鍙戣捣 + sponsor(row) { + console.log(row, "浠诲姟淇℃伅"); + this.taskform = row; + if (this.taskform.showDate) { + this.taskform.showDate = this.taskform.showDate.split(","); + } + if (this.taskform.showTimeMorn) { + this.taskform.showTimeMorn = this.taskform.showTimeMorn.split(","); + } else { + this.taskform.showTimeMorn = []; + } + if (this.taskform.showTimeNight) { + this.taskform.showTimeNight = this.taskform.showTimeNight.split(","); + } else { + this.taskform.showTimeNight = []; + } + if (this.taskform.showTimeNoon) { + this.taskform.showTimeNoon = this.taskform.showTimeNoon.split(","); + } else { + this.taskform.showTimeNoon = []; + } + if (row.sendState != 2) { + this.taskformVisible = true; + } else { + this.$modal.msgError("浠诲姟宸插彂璧凤紝涓嶅彲鍐嶆鍙戣捣"); + } + }, + // 纭鍙戣捣 + confirmSponsor(row) { + this.TaskOperation.taskId = row.taskid; + this.TaskOperation.sendState = 2; + TaskTemplateSendExecution(this.TaskOperation).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("浠诲姟宸叉垚鍔熷姞鍏ユ墽琛岄槦鍒�"); + this.getList(); + } }); }, - /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */ - handleResetPwd(row) { - this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - closeOnClickModal: false, - inputPattern: /^.{5,20}$/, - inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - }) - .then(({ value }) => { - resetUserPwd(row.userId, value).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value); - }); - }) - .catch(() => {}); + // 绔嬪嵆鎵ц + immediateExecution(row) { + console.log(row, "浠诲姟淇℃伅"); + if (row.sendState != 2) { + this.TaskOperation.taskId = row.taskid; + this.TaskOperation.sendState = 2; + this.TaskOperation.sendType = 2; + this.$modal + .confirm( + '鏄惁绔嬪嵆鎵ц浠诲姟鍚嶇О涓轰负"' + + row.taskName + + '"鐨勬暟鎹」锛熷彂璧锋墽琛屽悗涓嶅彲鎾ゅ洖锛�' + ) + .then(() => { + TaskTemplateSendExecution(this.TaskOperation).then((res) => { + if (res.code == 200) { + this.getList(); + this.$modal.msgSuccess("浠诲姟宸茬珛鍗虫墽琛�"); + } + }); + }) + .then(() => {}) + .catch(() => {}); + } + }, + + // 渚濈収鏂板 + newAdd(row) { + TaskTemplateSendExecution().then((res) => {}); + }, + // 鏆傚仠 + stop(row) { + if (row.sendState == 2) { + this.TaskOperation.taskId = row.taskId; + this.TaskOperation.sendState = 3; + TaskTemplateSendExecution().then((res) => { + this.getList(); + }); + } }, /** 鎻愪氦鎸夐挳 */ @@ -878,6 +986,24 @@ border-radius: 1px; color: #ffffff; } +.button-lj { + background: #e9614f; + padding: 5px; + border-radius: 1px; + color: #ffffff; +} +.button-xj { + background: #815c94; + padding: 5px; + border-radius: 1px; + color: #ffffff; +} +.button-zt { + background: #f9c116; + padding: 5px; + border-radius: 1px; + color: #ffffff; +} ::v-deep.el-radio-group { span { @@ -885,6 +1011,9 @@ } } +::v-deep.el-button + .el-button { + margin-left: 0; +} ::v-deep.el-checkbox-group { span { font-size: 24px; -- Gitblit v1.9.3