From 6bc24b57837948408cfc4812bbab6ac2f9f4a3dc Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期一, 15 九月 2025 16:41:26 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/tasklist/index.vue | 474 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 321 insertions(+), 153 deletions(-) diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue index 5f91eea..a3f2c46 100644 --- a/src/views/followvisit/tasklist/index.vue +++ b/src/views/followvisit/tasklist/index.vue @@ -23,7 +23,7 @@ @keyup.enter.native="handleQuery" ></el-input> </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿"> + <el-form-item label="鍙戦�佹椂闂�"> <el-date-picker v-model="dateRange" style="width: 240px" @@ -35,7 +35,7 @@ ></el-date-picker> </el-form-item> - <el-form-item label="鏈嶅姟椤圭洰" prop="status"> + <el-form-item label="浠诲姟妯℃澘" prop="status"> <el-input v-model="topqueryParams.templatename" @keyup.enter.native="handleQuery" @@ -69,12 +69,27 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-select - @change="handleQuery" + @change="handleQuerytask" v-model="tasktopic" - placeholder="璇烽�夋嫨鏂板绫诲瀷" + 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-select + @change="handleQuery" + v-model="topqueryParams.type" + placeholder="璇烽�夋嫨鎵ц绫诲瀷" + > + <el-option + v-for="item in longtermlist" :key="item.value" :label="item.label" :value="item.value" @@ -89,11 +104,11 @@ size="medium" @click="handleAdd" :disabled="!tasktopic" - >鏂板</el-button + >鏂板缓浠诲姟</el-button > </el-col> - <el-col :span="19"> + <!-- <el-col :span="19"> <div class="documentf"> <div class="document"> <el-button @@ -107,7 +122,7 @@ > </div> </div> - </el-col> + </el-col> --> <!-- <el-col :span="1.5"> </el-col> --> </el-row> <!-- <right-toolbar @@ -137,49 +152,48 @@ align="center" key="taskDesc" prop="taskDesc" + :show-overflow-tooltip="true" /> <el-table-column label="鏈嶅姟椤圭洰" align="center" key="templatename" prop="templatename" - /> - <el-table-column - label="寰呮墽琛�/鎬讳换鍔�" - align="center" - key="nickName" - prop="nickName" - > - <template slot-scope="scope"> - <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> - </template> - </el-table-column> - <el-table-column - label="鍒涘缓浜�" - align="center" - key="createBy" - prop="createBy" - width="120" :show-overflow-tooltip="true" /> <el-table-column - label="鍒涘缓鏃堕棿" - sortable + label="鎬讳换鍔�/宸查殢璁�" align="center" - prop="createTime" - width="160" + key="nickName" + width="120" + prop="nickName" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> + <span + >{{ + scope.row.wfs || scope.row.wfs == 0 + ? scope.row.wfs + scope.row.yfs + : "" + }}/{{ scope.row.yfs }}</span + > </template> </el-table-column> <el-table-column + label="鏄惁闀挎湡浠诲姟" + align="center" + key="longTask" + prop="longTask" + > + <template slot-scope="scope"> + <span>{{ scope.row.longTask ? "闀挎湡浠诲姟" : "闈為暱鏈�" }}</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 @@ -188,27 +202,62 @@ /> </template> </el-table-column> + + <el-table-column + label="鍒涘缓浜�" + align="center" + key="createBy" + prop="createBy" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鍒涘缓鏃堕棿" + sortable + align="center" + prop="createTime" + > + <template slot-scope="scope"> + <span>{{ formatTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" fixed="right" align="center" - width="120" + width="240" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button - v-if="scope.row.sendState == 1 || scope.row.sendState == 3" + v-if=" + (scope.row.sendState == 1 || scope.row.sendState == 3) && + !scope.row.longTask + " size="medium" type="text" @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 size="medium" type="text" @click="newAdd(scope.row)" + <!-- <el-button size="medium" type="text" @click="newAdd(scope.row)" ><span class="button-xj" - ><i class="el-icon-circle-plus-outline"></i>浠诲姟缁堟</span + ><i class="el-icon-circle-plus-outline"></i>缁堟</span + ></el-button + > --> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row, 1)" + ><span class="button-xj">渚濈収鏂板</span></el-button + > + <el-button + size="medium" + type="text" + @click="handleAddpatient(scope.row)" + ><span class="button-hz" + ><i class="el-icon-circle-plus-outline"></i>鏂板鎮h��</span ></el-button > <el-button @@ -216,9 +265,7 @@ size="medium" type="text" @click="stop(scope.row)" - ><span class="button-zt" - ><i class="el-icon-circle-plus-outline"></i>鏆傚仠浠诲姟</span - ></el-button + ><span class="button-zt">鏆傚仠</span></el-button > </template> </el-table-column> @@ -226,7 +273,7 @@ label="浠诲姟璇︽儏" fixed="right" align="center" - width="200" + width="240" class-name="small-padding fixed-width" > <template slot-scope="scope"> @@ -330,6 +377,15 @@ > </div> </el-dialog> + <!-- 閫夋嫨鎮h�呭脊妗� --> + <Patient-Selection + ref="Patient" + :dialogVisiblepatient="dialogVisiblepatient" + :overallCase="Patientlist" + :tableLabel="tableLabelhz" + @addoption="dialogVisiblepatient = false" + @kkoption="dialogVisiblepatient = true" + /> </div> </template> @@ -353,12 +409,13 @@ TaskTemplateSendExecution, } from "@/api/AiCentre/index"; import store from "@/store"; - +import PatientSelection from "@/components/PatientSelection"; //姝e垯缁勪欢 +import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢 import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { - name: "User", + name: "Tasklist", dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], components: { Treeselect }, data() { @@ -378,7 +435,7 @@ // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: null, // 寮瑰嚭灞傛爣棰� - title: "鏂板闂ㄨ瘖闅忚", + title: "鏂板褰卞儚闅忚", // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰 addalteropen: false, // 閮ㄩ棬鍚嶇О @@ -391,63 +448,50 @@ postOptions: [], // 瑙掕壊閫夐」 roleOptions: [], + longTask: 0, taskform: { showDate: [], showTimeMorn: [], showTimeNight: [], showTimeNoon: [], }, + dialogVisiblepatient: false, + Patientlist: [], taskformVisible: false, dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」 inputVisible: false, inputValue: "", - previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规 + previewVisible: false, //褰卞儚闅忚棰勮寮规 TaskOperation: {}, radio: "", radios: [], - previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷 + previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷 total: 0, // 鎬绘潯鏁� - ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲� - //棰勮闂ㄨ瘖闅忚淇℃伅 + ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲� + //棰勮褰卞儚闅忚淇℃伅 previewvalue: { username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�", }, - taskoptions: [ + longtermlist: [ { - value: "1", - label: "鐩戞祴璇勪及", + value: 1, + label: "璇煶闅忚", }, { - value: "2", - label: "鍑洪櫌闅忚", + value: 2, + label: "闂嵎闅忚", }, { - value: "3", - label: "闂ㄨ瘖闅忚", - }, - { - value: "4", + value: 3, label: "瀹f暀鍏虫��", }, { - value: "5", - label: "澶嶈瘖绠$悊", - }, - { - value: "6", - label: "婊℃剰搴﹁皟鏌�", - }, - { - value: "7", - label: "鎮h�呮姤鍛�", - }, - - { - value: "8", - label: "鍏朵粬閫氱煡", + value: 4, + label: "娑堟伅閫氱煡", }, ], - tasktopic: "2", //鏂板绫诲瀷 + taskoptions: store.getters.tasktypes, + tasktopic: 2, //鏂板绫诲瀷 activname: "", value: [], list: [], @@ -546,32 +590,14 @@ topqueryParams: { pageNum: 1, pageSize: 10, - type: 3, + type: 2, userName: undefined, tagid: undefined, topic: undefined, }, propss: { multiple: true }, options: [], - - topicoptions: [ - { - value: 1, - label: "寰呭鏍�", - }, - { - value: 2, - label: "鎵ц涓�", - }, - { - value: 3, - label: "鎵ц瀹屾垚", - }, - { - value: 4, - label: "宸插仠姝�", - }, - ], + checkboxlist: [], // 琛ㄥ崟鏍¢獙 rules: { userName: [ @@ -622,6 +648,11 @@ }, watch: {}, created() { + // this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( + // (obj) => obj.deptCode + // ); + // this.topqueryParams.leavehospitaldistrictcodes = + // store.getters.belongWards.map((obj) => obj.districtCode); this.tasktopic = this.$route.query.tasktopic ? this.$route.query.tasktopic : this.tasktopic; @@ -629,7 +660,10 @@ this.getConfigKey("sys.user.initPassword").then((response) => { this.initPassword = response.msg; }); - // this.taskoptions = store.getters.Serviceauthority; + this.checkboxlist = store.getters.checkboxlist; + }, + activated() { + this.getList(); }, // 鎼滅储 mounted() { @@ -641,40 +675,65 @@ /** 鏌ヨ浠诲姟鍒楄〃 */ getList() { this.loading = true; - let type = this.$route.query.type; this.topqueryParams.serviceType = Number(this.tasktopic); - this.topqueryParams.type = Number(this.type); if ( this.tasktopic == 2 || this.tasktopic == 3 || this.tasktopic == 1 || this.tasktopic == 7 || + this.tasktopic == 5 || this.tasktopic == 6 ) { + if (!this.topqueryParams.type) this.topqueryParams.type = "2"; + this.longtermlist = [ + { + value: 1, + label: "璇煶闅忚", + }, + { + value: 2, + label: "闂嵎闅忚", + }, + ]; this.topqueryParams.type = 2; - this.TaskOperation.taskType = 2; } else if (this.tasktopic == 4 || this.tasktopic == 8) { + if (!this.topqueryParams.type) this.topqueryParams.type = "3"; + this.longtermlist = [ + { + value: 3, + label: "瀹f暀鍏虫��", + }, + ]; this.topqueryParams.type = 3; - this.TaskOperation.taskType = 3; - } else if (this.tasktopic == 5) { - this.topqueryParams.type = 1; - this.TaskOperation.taskType = 1; + } else if (this.tasktopic == 16) { + if (!this.topqueryParams.type) this.topqueryParams.type = "2"; + this.longtermlist = [ + { + value: 1, + label: "璇煶闅忚", + }, + { + value: 2, + label: "闂嵎闅忚", + }, + { + value: 3, + label: "瀹f暀鍏虫��", + }, + ]; + this.topqueryParams.type = 2; } - // this.topqueryParams.typename = this.findLabelByValue( - // this.taskoptions, - // this.tasktopic - // ); - getTasklist(this.addDateRange(this.topqueryParams, this.dateRange)).then( - (response) => { - this.userList = response.rows; - this.total = response.total; - this.$forceUpdate(); - this.loading = false; - } - ); + this.topqueryParams.beginTime = this.dateRange[0]; + this.topqueryParams.endTime = this.dateRange[1]; + getTasklist(this.topqueryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + this.$forceUpdate(); + this.loading = false; + }); }, - // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏 + // 鏌ョ湅褰卞儚闅忚璇︽儏 Referencequestion(row) { this.previewVisible = true; }, @@ -712,6 +771,11 @@ this.resetForm("form"); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuerytask() { + this.topqueryParams.pageNum = 1; + // this.topqueryParams.type = ''; + this.getList(); + }, handleQuery() { this.topqueryParams.pageNum = 1; this.getList(); @@ -720,8 +784,15 @@ resetQuery() { this.dateRange = []; this.resetForm("queryForm"); - this.topqueryParams.deptId = undefined; - this.$refs.tree.setCurrentKey(null); + this.topqueryParams = { + pageNum: 1, + pageSize: 10, + type: 2, + userName: undefined, + tagid: undefined, + topic: undefined, + }; + // this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 @@ -779,7 +850,7 @@ } }, /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { + handleUpdate(row, newadd) { if (this.topqueryParams.type == 1) { this.$router.push({ path: "/followvisit/particty", @@ -787,6 +858,7 @@ id: row.taskid, type: this.topqueryParams.type, serviceType: this.tasktopic, + newadd: newadd, //鏄惁渚濈収鏂板缓 }, }); } else if (this.topqueryParams.type == 2) { @@ -796,6 +868,7 @@ id: row.taskid, type: this.topqueryParams.type, serviceType: this.tasktopic, + newadd: newadd, }, }); } else if (this.topqueryParams.type == 3) { @@ -805,19 +878,28 @@ id: row.taskid, type: this.topqueryParams.type, serviceType: this.tasktopic, + newadd: newadd, }, }); } }, // 鍒犻櫎浠诲姟 deletefn(row) { - delTaskInfo(row.taskid).then((res) => { - console.log(2); - if (res.code == 200) { - this.getList(); - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - } - }); + this.$modal + .confirm( + '鏄惁鍒犻櫎浠诲姟鍚嶇О涓�"' + + row.taskName + + '"鐨勬暟鎹」锛屽垹闄ゅ悗涓嶅彲鎾ゅ洖锛佹槸鍚︾户缁�' + ) + .then(() => { + delTaskInfo(row.taskid).then((res) => { + if (res.code == 200) { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + } + }); + }) + .catch(() => {}); }, // 浠诲姟鍙戣捣 sponsor(row) { @@ -845,6 +927,7 @@ this.taskformVisible = true; } else if (this.taskform.sendState != 2 && this.taskform.sendType == 2) { this.TaskOperation.taskId = row.taskid; + this.TaskOperation.taskType = this.topqueryParams.type; this.TaskOperation.sendState = 2; this.TaskOperation.sendType = 2; this.$modal @@ -870,6 +953,7 @@ confirmSponsor(row) { if (this.activname == 0) { this.TaskOperation.taskId = row.taskid; + this.TaskOperation.taskType = this.topqueryParams.type; this.TaskOperation.sendState = 2; TaskTemplateSendExecution(this.TaskOperation).then((res) => { if (res.code == 200) { @@ -887,6 +971,7 @@ immediateExecution(row) { console.log(row, "浠诲姟淇℃伅"); if (row.sendState != 2) { + this.TaskOperation.taskType = this.topqueryParams.type; this.TaskOperation.taskId = row.taskid; this.TaskOperation.sendState = 2; this.TaskOperation.sendType = 2; @@ -909,34 +994,6 @@ } }, - // 渚濈収鏂板 - newAdd(row) { - this.$modal - .confirm("鏄惁渚濈収褰撳墠浠诲姟鍒涘缓鏂颁换鍔★紵") - .then(() => { - if (this.tasktopic == 5) { - this.$router.push({ - path: "/followvisit/particty", - query: { type: 1, id: row.taskid, nhh: 1 }, - }); - } else if ( - this.tasktopic == 2 || - this.tasktopic == 3 || - this.tasktopic == 6 - ) { - this.$router.push({ - path: "/followvisit/QuestionnaireTask", - query: { type: 2, id: row.taskid, nhh: 1 }, - }); - } else if (this.tasktopic == 8 || this.tasktopic == 4) { - this.$router.push({ - path: "/followvisit/Missioncreation", - query: { type: 3, id: row.taskid, nhh: 1 }, - }); - } - }) - .catch(() => {}); - }, // 鏆傚仠 stop(row) { console.log(row); @@ -999,6 +1056,111 @@ findLabelByValue(data, value) { const item = data.find((item) => item.value === value); return item ? item.label : null; + }, + //鎮h�呮坊鍔犵浉鍏� + handleAddpatient(row) { + this.allpids = []; + this.overallCase.forEach((item) => { + this.allpids.push(item.patid); + }); + if (this.patientqueryParams.allhosp == 4) { + this.tableLabelhz = [ + // { label: "鍏ラ櫌鏃ユ湡", width: "170", prop: "starttime" }, + { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" }, + { label: "鎮h��", width: "", prop: "name" }, + { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" }, + { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" }, + { label: "鍖荤敓", width: "", prop: "drname" }, + { label: "绉戝", width: "180", prop: "dept" }, + { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" }, + ]; + } else if (this.patientqueryParams.allhosp == 1) { + this.tableLabelhz = [ + { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" }, + { label: "鎮h��", width: "", prop: "name" }, + { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" }, + { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" }, + { label: "鍖荤敓", width: "", prop: "drname" }, + { label: "绉戝", width: "180", prop: "dept" }, + { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" }, + ]; + } + if (this.allpids[0]) { + this.patientqueryParams.pids = this.allpids; + } else { + this.patientqueryParams.pids = null; + } + // 鏉ユ簮鍒ゆ柇 + + if (this.patientqueryParams.allhosp == 4) { + this.patientqueryParams.hospitaldistrictcodes = []; + this.patientqueryParams.deptcodes = []; + } else if (this.patientqueryParams.allhosp == 1) { + this.patientqueryParams.deptcodes = + this.patientqueryParams.leaveldeptcodes; + this.patientqueryParams.hospitaldistrictcodes = + this.patientqueryParams.leavehospitaldistrictcodes; + this.patientqueryParams.leavehospitaldistrictcodes = []; + this.patientqueryParams.leaveldeptcodes = []; + } + getTaskpatientQC(this.patientqueryParams).then((response) => { + this.patientuserList = response.rows; + this.patientuserList.forEach((item) => { + if (item.endtime) { + item.endDay = this.daysBetween(item.endtime); + } + }); + this.patienttotal = response.total; + this.loading = false; + this.Restorecheck(); + }); + this.dialogVisiblepatient = true; + }, + // 鏌ヨ + handleQuery() { + // 鑾峰彇澶栭儴鎮h�� + + if (this.patientqueryParams.allhosp == 6) { + this.Externallist(); + console.log(); + + return; + } + if (this.patientqueryParams.searchscope == 1) { + this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( + (obj) => obj.deptCode + ); + this.patientqueryParams.leavehospitaldistrictcodes = []; + } else if (this.patientqueryParams.searchscope == 2) { + this.patientqueryParams.leavehospitaldistrictcodes = + store.getters.belongWards.map((obj) => obj.districtCode); + this.patientqueryParams.leaveldeptcodes = []; + } else { + this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( + (obj) => obj.deptCode + ); + this.patientqueryParams.leavehospitaldistrictcodes = + store.getters.belongWards.map((obj) => obj.districtCode); + } + if ( + !this.patientqueryParams.leavehospitaldistrictcodes || + !this.patientqueryParams.leavehospitaldistrictcodes[0] + ) + this.patientqueryParams.leavehospitaldistrictcodes = null; + if ( + !this.patientqueryParams.leaveldeptcodes || + !this.patientqueryParams.leaveldeptcodes[0] + ) + this.patientqueryParams.leaveldeptcodes = null; + this.handleAddpatient(); }, }, }; @@ -1129,6 +1291,12 @@ border-radius: 1px; color: #ffffff; } +.button-hz { + background: #63d37b; + padding: 5px; + border-radius: 1px; + color: #ffffff; +} ::v-deep.el-radio-group { span { -- Gitblit v1.9.3