From 8ed125f553d3c69fb030e9d0db666d187ca22549 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 11 六月 2025 14:49:31 +0800 Subject: [PATCH] 统计完成 --- src/views/followvisit/record/detailpage/index.vue | 422 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 344 insertions(+), 78 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index 8febf3d..0abf723 100644 --- a/src/views/followvisit/record/detailpage/index.vue +++ b/src/views/followvisit/record/detailpage/index.vue @@ -15,7 +15,7 @@ >鏌ョ湅鎮h�呭叏閮ㄦ湇鍔�</el-button > <el-button v-else type="success" @click="getTaskservelist(id)" - >鏌ョ湅鎮h�呮湰娆℃湇鍔′俊鎭�</el-button + >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button > </div> <div style="margin-left: 20px; color: #59a0f0"> @@ -32,7 +32,11 @@ </div> </div> <div> - <el-table :data="logsheetlist" style="width: 100%"> + <el-table + :data="logsheetlist" + :row-class-name="tableRowClassName" + style="width: 100%" + > <el-table-column prop="sendname" align="center" @@ -200,7 +204,6 @@ size="medium" type="text" @click="Seedetails(scope.row)" - v-hasPermi="['system:user:edit']" ><span class="button-zx" ><i class="el-icon-s-order"></i>鏌ョ湅</span ></el-button @@ -373,7 +376,7 @@ : 'scriptTopic-dev' " :key="index" - v-if="item.scriptType == 1" + v-if="item.scriptType == 1 && !item.astrict" > <div class="dev-text"> {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span> @@ -381,14 +384,20 @@ <div class="dev-xx"> <el-radio-group v-model="item.scriptResult" - @change="handleOptionChange($event, index, item)" + @change=" + handleOptionChange( + $event, + index, + item.svyLibTemplateTargetoptions + ) + " > <el-radio v-for="( - items, index + items, indexs ) in item.svyLibTemplateTargetoptions" :class="items.isabnormal ? 'red-star' : ''" - :key="index" + :key="indexs" :label="items.optioncontent" >{{ items.optioncontent }}</el-radio > @@ -406,7 +415,7 @@ : 'scriptTopic-dev' " :key="index" - v-if="item.scriptType == 2" + v-if="item.scriptType == 2 && !item.astrict" > <div class="dev-text"> {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span> @@ -437,7 +446,7 @@ <div class="scriptTopic-dev" :key="index" - v-if="item.scriptType == 4" + v-if="item.scriptType == 4 && !item.astrict" > <div class="dev-text"> {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span> @@ -613,26 +622,95 @@ v-model="form.endtime" ></el-input> </el-form-item> + <div class="headline">涓婃闅忚</div> + <el-divider></el-divider> + <el-row> + <el-col :span="12"> + <el-form-item label="闅忚鏂瑰紡"> + <el-select + v-model="form.visitType2" + filterable + allow-create + default-first-option + disabled + placeholder="璇烽�夋嫨闅忚鏂瑰紡" + class="custom-disabled" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="闅忚鏃堕棿"> + <el-date-picker + type="date" + disabled + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptions" + align="right" + v-model="form.date2" + class="custom-disabled" + ></el-date-picker> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="闅忚璁板綍"> + <el-input + class="custom-disabled" + type="textarea" + disabled + v-model="form.remark2" + ></el-input> + </el-form-item> + <div class="headline">涓嬫闅忚</div> + <el-divider></el-divider> + <el-row> + <el-col :span="12"> + <el-form-item label="闅忚鏂瑰紡" prop="date1"> + <el-select + v-model="form.visitType" + filterable + allow-create + default-first-option + @change="visitChange" + placeholder="璇烽�夋嫨闅忚鏂瑰紡" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="闅忚鏃堕棿" prop="date1"> + <el-date-picker + type="date" + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptions" + align="right" + v-model="form.date1" + ></el-date-picker> + </el-form-item> + </el-col> + </el-row> <el-form-item label="闅忚鏂瑰紡" prop="resource"> <el-radio-group v-model="form.resource"> <el-radio label="1">鏈梾鍖洪殢璁�</el-radio> <el-radio label="2">闅忚涓績闅忚</el-radio> </el-radio-group> </el-form-item> - <!-- <el-form-item label="鍗冲埢鍙戦��"> - <el-switch v-model="zcform.delivery"></el-switch> - </el-form-item> --> - <el-form-item label="闅忚鏃堕棿" prop="date1"> - <el-date-picker - type="date" - placeholder="閫夋嫨鏃ユ湡" - :picker-options="pickerOptions" - align="right" - v-model="form.date1" - style="width: 100%" - ></el-date-picker> - </el-form-item> + <el-form-item label="闅忚璁板綍"> <el-input type="textarea" v-model="form.remark"></el-input> </el-form-item> @@ -677,18 +755,17 @@ activeName: "wj", voice: "", templateid: "", + again: "", zcform: {}, form: {}, tableDatatop: [], //棰樼洰琛� voiceDatatop: [], //棰樼洰琛� dynamicTags: [], zcrules: { - date1: [ + resource: [ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, ], - resource: [ - { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }, - ], + date1: [{ required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }], }, url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", postData: { @@ -725,33 +802,88 @@ }, }, pickerOptions: { - shortcuts: [{ - text: '涓冨ぉ鍚�', + shortcuts: [ + { + text: "涓冨ぉ鍚�", onClick(picker) { const date = new Date(); date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); - picker.$emit('pick', date); - } - }, { - text: '15澶╁悗', + picker.$emit("pick", date); + }, + }, + { + text: "15澶╁悗", onClick(picker) { const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24* 15); - picker.$emit('pick', date); - } - }, { - text: '30澶╁悗', + date.setTime(date.getTime() + 3600 * 1000 * 24 * 15); + picker.$emit("pick", date); + }, + }, + { + text: "涓�涓湀鍚�", onClick(picker) { const date = new Date(); date.setTime(date.getTime() + 3600 * 1000 * 24 * 30); - picker.$emit('pick', date); - } - }] + picker.$emit("pick", date); + }, + }, + { + text: "涓変釜鏈堝悗", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 90); + picker.$emit("pick", date); + }, + }, + { + text: "鍏釜鏈堝悗", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 180); + picker.$emit("pick", date); + }, + }, + { + text: "涓�骞村悗", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 365); + picker.$emit("pick", date); + }, + }, + ], + }, + options: [ + { + value: "涓冨ぉ鍚�", + label: "涓冨ぉ鍚�", }, + { + value: "15澶╁悗", + label: "15澶╁悗", + }, + { + value: "涓�涓湀鍚�", + label: "涓�涓湀鍚�", + }, + { + value: "涓変釜鏈堝悗", + label: "涓変釜鏈堝悗", + }, + { + value: "鍏釜鏈堝悗", + label: "鍏釜鏈堝悗", + }, + { + value: "涓�骞村悗", + label: "涓�骞村悗", + }, + ], userform: {}, - Whetherall: false, //鏄惁鍏ㄩ儴璁板綍灞曠ず + Whetherall: true, //鏄惁鍏ㄩ儴璁板綍灞曠ず dialogFormVisible: false, Voicetype: 0, //鏄惁涓鸿闊虫湇鍔� + visitCount: null, logsheetlist: [], topicobj: {}, sendname: null, @@ -767,11 +899,12 @@ this.id = this.$route.query.id; this.sendname = this.$route.query.sendname; this.patid = this.$route.query.patid; + this.again = this.$route.query.again; this.Voicetype = this.$route.query.Voicetype; + this.visitCount = this.$route.query.visitCount; this.serviceType = this.$route.query.serviceType; - console.log(this.id, this.patid); - this.getTaskservelist(this.id); + this.getTaskservelist(); }, methods: { @@ -784,13 +917,25 @@ isFinish: false, }).then((res) => { if (res.code === 200) { + // 閽堝鍐嶆闅忚鏈嶅姟杩涜鍒犻櫎缁撴灉璧嬪�� + if (this.again && res.data.upScriptResult) { + res.data.upScriptResult.forEach((itemA) => { + const itemB = res.data.scriptResult.find( + (item) => item.scriptContent === itemA.scriptContent + ); + if (itemB) { + itemB.scriptResult = itemA.scriptResult; + } + }); + } this.tableDatatop = res.data.scriptResult; + this.tableDatatop.forEach((item) => { if (item.scriptType == 2) item.scriptResult = []; - if (item.scriptResult && item.scriptType != 2) { + if (item.scriptResultId && item.scriptType != 2) { item.isoption = 3; item.scriptResult = item.scriptResult; - } else if (item.scriptResult && item.scriptType == 2) { + } else if (item.scriptResultId && item.scriptType == 2) { item.scriptResult = item.scriptResult.split("&"); item.isoption = 3; } @@ -838,6 +983,25 @@ } }); }, + // 鍐嶆闅忚鏃堕棿閫夊彇 + visitChange(value) { + // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚缃椂闂� + const now = new Date(); + if (value.includes("涓冨ぉ鍚�")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 7); + } else if (value.includes("15澶╁悗")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 15); + } else if (value.includes("涓�涓湀鍚�")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 30); + } else if (value.includes("涓変釜鏈堝悗")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 90); + } else if (value.includes("鍏釜鏈堝悗")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 180); + } else if (value.includes("涓�骞村悗")) { + this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 365); + } + }, + // 鑾峰彇璇煶鏁版嵁 getPersonVoices(id) { let obj = { @@ -845,10 +1009,8 @@ patid: this.patid, subId: id ? id : this.id, }; - console.log(this.voiceDatatop, "111"); getPersonVoices(obj).then((res) => { - console.log("222"); if (res.code == 200) { this.voiceDatatop = res.data.serviceSubtaskDetails; this.voice = res.data.voice; @@ -863,7 +1025,6 @@ item.scriptResult = []; } }); - console.log(this.tableDatatop, "this.tableDatatop"); if (!this.tableDatatop.length) { this.puttaskid(this.templateid); @@ -892,7 +1053,6 @@ item.scriptResult = []; } }); - console.log(this.tableDatatop, "this.tableDatatop"); } }); }, @@ -945,13 +1105,45 @@ .confirm( '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + this.logsheetlist[0].sendname + - '"鍐嶆闅忚锛�' + '"鍐嶆闅忚锛�', + "纭", + { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + showCancelButton: true, + dangerouslyUseHTMLString: true, + confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕 + cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕 + } ) .then(() => { document.querySelector("#app").scrollTo(0, 0); + this.formtidy(); this.dialogFormVisible = true; }) - .catch(() => {}); + .catch(() => { + if (this.form.serviceType == 13) { + if (this.visitCount) { + this.$router.push({ + path: "/logisticsservice/zbAgain", + }); + } else { + this.$router.push({ + path: "/logisticsservice/record", + }); + } + } else if (form.serviceType == 2) { + if (this.visitCount) { + this.$router.push({ + path: "/followvisit/again", + }); + } else { + this.$router.push({ + path: "/followvisit/discharge", + }); + } + } + }); }) .catch((error) => { // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲� @@ -960,7 +1152,6 @@ }, yuyingetdetail() { this.tableDatatop.forEach((item, index) => { - console.log(item.scriptResult, "scriptResult"); item.scriptResult = item.scriptResult.join("&"); item.templatequestionnum = index + 1; item.subId = this.id; @@ -984,21 +1175,58 @@ this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛"); this.$modal .confirm( - '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + this.userform.name + '"鍐嶆闅忚锛�' + '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + + this.userform.name + + '"鍐嶆闅忚锛�', + "纭", + { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + showCancelButton: true, + dangerouslyUseHTMLString: true, + confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕 + cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕 + } ) .then(() => { document.querySelector("#app").scrollTo(0, 0); + this.formtidy(); this.dialogFormVisible = true; }) - .catch(() => {}); + .catch(() => { + if (this.form.serviceType == 13) { + if (this.visitCount) { + this.$router.push({ + path: "/logisticsservice/zbAgain", + }); + } else { + this.$router.push({ + path: "/logisticsservice/record", + }); + } + } else if (form.serviceType == 2) { + if (this.visitCount) { + this.$router.push({ + path: "/followvisit/again", + }); + } else { + this.$router.push({ + path: "/followvisit/discharge", + }); + } + } + }); } }); }, - + // 鍐嶆闅忚鏁版嵁鏇存浛 + formtidy() { + this.form.visitType2 = this.form.visitType; + this.form.date2 = this.form.longSendTime; + this.form.remark2 = this.form.remark; + }, // 鑾峰彇鎮h�呰褰� getTaskservelist(id) { - console.log(id, "idsub"); - if (id) { this.Whetherall = false; } else { @@ -1010,7 +1238,9 @@ subId: id, }).then((res) => { if (res.code == 200) { - this.form = res.rows[0].serviceSubtaskList[0]; + this.form = res.rows[0].serviceSubtaskList.find( + (item) => item.id == this.id + ); this.logsheetlist = res.rows[0].serviceSubtaskList; this.templateid = this.logsheetlist[0].templateid; const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡 @@ -1027,8 +1257,6 @@ } this.getuserinfo(); } - console.log(this.Voicetype, "this.Voicetype"); - if (this.Voicetype) { this.getPersonVoices(); } else { @@ -1048,22 +1276,22 @@ Editsingletaskson(objson).then((res) => { if (res.code) { this.$modal.msgSuccess("鏈嶅姟璁板綍鎴愬姛"); - this.getTaskservelist(this.id); + this.getTaskservelist(); } }); } }); }, Editsingletasksonyic(sendstate) { - console.log(sendstate, "sendstate"); - let objson = {}; getTaskservelist({ patid: this.patid, subId: this.id, }).then((res) => { if (res.code == 200) { - objson = res.rows[0].serviceSubtaskList[0]; + objson = res.rows[0].serviceSubtaskList.find( + (item) => item.id == this.id + ); objson.remark = this.form.remark; if (sendstate) objson.sendstate = sendstate; Editsingletaskson(objson).then((res) => { @@ -1076,16 +1304,24 @@ this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触"); } }); - this.getTaskservelist(this.id); + this.getTaskservelist(); } }); } }); }, + // 寮傚父鍒楁覆鏌� + tableRowClassName({ row, rowIndex }) { + if (row.id == this.id) { + return "warning-row"; + } + return ""; + }, // 璋冭捣鍐嶆鍙戦�� sendAgain() { document.querySelector("#app").scrollTo(0, 0); // scrollTo(0, 0) + this.formtidy(); this.dialogFormVisible = true; }, // 鏌ョ湅璇︽儏 @@ -1098,19 +1334,27 @@ this.Voicetype = 1; } } - console.log(this.Voicetype, "this.Voicetype"); - this.taskid = row.taskid; this.id = row.id; this.patid = row.patid; this.serviceType = row.serviceType; - this.getTaskservelist(this.id); + this.getTaskservelist(); }) .catch(() => {}); }, handleOptionChange(a, b, c) { - console.log(this.tableDatatop[b], "this.tableDatatop[b]"); - + const result = c.find((item) => item.optioncontent == a); + if (result.nextQuestion == 0) { + this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => { + acc.push(i > b ? { ...item, astrict: 1 } : item); + return acc; + }, []); + } else { + this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => { + acc.push(i > b ? { ...item, astrict: 0 } : item); + return acc; + }, []); + } if (this.Voicetype) { var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find( (item) => item.optioncontent == a @@ -1154,9 +1398,15 @@ if (form.resource) { if (form.resource == 2) { form.serviceType = 13; + form.visitDeptCode = localStorage.getItem("deptCode"); + form.visitDeptName = "闅忚涓績"; + } else { + form.visitDeptCode = form.deptcode; + form.visitDeptName = form.deptname; } } else { this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡"); + return; } // form.id = null; form.sendstate = 2; @@ -1165,11 +1415,11 @@ this.$modal.msgSuccess("鍒涘缓鎴愬姛"); if (form.serviceType == 13) { this.$router.push({ - path: "/logisticsservice/record", + path: "/logisticsservice/again", }); } else if (form.serviceType == 2) { this.$router.push({ - path: "/followvisit/discharge", + path: "/logisticsservice/zbAgain", }); } } else { @@ -1192,16 +1442,12 @@ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; }, - updateScore(a, b, c) { - console.log(a); - console.log(b); - console.log(c); - }, + updateScore(a, b, c) {}, }, }; </script> -<style lang="scss" scoped> +<style lang="scss"> .Followupdetailspage { margin: 10px; } @@ -1224,6 +1470,9 @@ margin-right: 20px; } } +} +::v-deep.el-table .warning-row { + background: #c4e2ee; } .Followuserinfos { margin: 20px 10px; @@ -1369,8 +1618,25 @@ ::v-deep.el-link.el-link--default { color: #02a7f0 !important; } +.el-message-box__btns button:nth-child(2) { + margin-left: 10px; + background-color: #f57676; + border-color: #f57676; +} .mulsz { font-size: 25px; margin-top: 20px; } +.el-input.is-disabled .el-input__inner { + background-color: #fff; /* 鑳屾櫙棰滆壊 */ + border-color: #dcdfe6; /* 杈规棰滆壊 */ + color: #080808 !important; /* 鏂囧瓧棰滆壊 */ + cursor: not-allowed; /* 榧犳爣鏍峰紡 */ +} +.el-textarea.is-disabled .el-textarea__inner { + background-color: #fff; /* 鑳屾櫙棰滆壊 */ + border-color: #dcdfe6; /* 杈规棰滆壊 */ + color: #080808 !important; /* 鏂囧瓧棰滆壊 */ + cursor: not-allowed; /* 榧犳爣鏍峰紡 */ +} </style> -- Gitblit v1.9.3