From ffa22cc18c75c0a73a3fd987e2b62fbf55316db2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 25 六月 2026 15:22:46 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/record/detailpage/index.vue | 490 ++++++++++++++++++++++++++++++++++--------------------
1 files changed, 309 insertions(+), 181 deletions(-)
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 67bd809..6bc4606 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -95,43 +95,36 @@
>
</el-table-column>
<el-table-column
- prop="sendstate"
+ label="闅忚鐘舵��"
align="center"
- width="200"
- label="浠诲姟鐘舵��"
+ key="sendstateView"
+ prop="sendstateView"
+ width="120"
>
<template slot-scope="scope">
- <div v-if="scope.row.sendstate == 1">
- <el-tag type="primary" :disable-transitions="false"
- >琛ㄥ崟宸查鍙�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstate == 2">
- <el-tag type="primary" :disable-transitions="false"
- >寰呴殢璁�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstate == 3">
- <el-tag type="success" :disable-transitions="false"
- >琛ㄥ崟宸插彂閫�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstate == 4">
- <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
- </div>
- <div v-if="scope.row.sendstate == 5">
- <el-tag type="danger" :disable-transitions="false"
- >鍙戦�佸け璐�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstate == 6">
- <el-tag type="success" :disable-transitions="false"
- >宸插畬鎴�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstate == 7">
- <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
- </div>
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ popper-class="statistics-tooltip"
+ >
+ <div v-if="scope.row.sendstateView == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstateView == 2">
+ <el-tag type="success" :disable-transitions="false"
+ >宸插畬鎴�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstateView == 3">
+ <el-tag type="warning" :disable-transitions="false"
+ >鏃犻渶闅忚</el-tag
+ >
+ </div>
+ </el-tooltip>
</template>
</el-table-column>
<el-table-column
@@ -143,6 +136,18 @@
>
</el-table-column>
<el-table-column
+ v-if="orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌'"
+ label="鍏ラ櫌鏃ユ湡"
+ width="200"
+ align="center"
+ key="starttime"
+ prop="starttime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.starttime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
label="鍑洪櫌鏃ユ湡"
width="200"
align="center"
@@ -153,6 +158,7 @@
<span>{{ formatTime(scope.row.endtime) }}</span>
</template></el-table-column
>
+
<el-table-column
label="璐d换鎶ゅ+"
width="120"
@@ -167,7 +173,58 @@
key="drname"
prop="drname"
/>
-
+ <el-table-column
+ label="浠诲姟鐘舵��"
+ align="center"
+ key="sendstate"
+ prop="sendstate"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ >
+ <div v-if="scope.row.sendstate == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >琛ㄥ崟宸查鍙�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 2">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 3">
+ <el-tag type="success" :disable-transitions="false"
+ >琛ㄥ崟宸插彂閫�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 4">
+ <el-tag type="info" :disable-transitions="false"
+ >涓嶆墽琛�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 5">
+ <el-tag type="danger" :disable-transitions="false"
+ >鍙戦�佸け璐�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 6">
+ <el-tag type="success" :disable-transitions="false"
+ >宸插畬鎴�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 7">
+ <el-tag type="danger" :disable-transitions="false"
+ >瓒呮椂</el-tag
+ >
+ </div>
+ </el-tooltip>
+ </template>
+ </el-table-column>
<el-table-column
label="缁撴灉鐘舵��"
align="center"
@@ -262,15 +319,39 @@
<!-- 闅忚鍐呭 -->
<div class="call-action">
<div class="call-container">
- <template-selector
- v-if="orgname=='鍗楀崕澶у闄勫睘绗竴鍖婚櫌'&&!Voicetype"
- v-model="form.templateid"
- :templateName="form.templatename"
- :service-type="form.serviceType"
- :is-editable="form.sendState !== 2"
- @select="handleTemplateSelect"
- @clear="handleTemplateClear"
- />
+ <div
+ style="display: flex"
+ v-if="
+ (orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌' ||
+ orgname == '涓芥按甯傜浜屼汉姘戝尰闄�' ||
+ orgname == '缂欎簯鍘夸汉姘戝尰闄�') &&
+ !Voicetype
+ "
+ >
+ <template-selector
+ v-model="form.templateid"
+ :templateName="form.templatename"
+ :service-type="form.serviceType"
+ :is-editable="form.sendState !== 2"
+ @select="handleTemplateSelect"
+ @clear="handleTemplateClear"
+ />
+ <div
+ v-if="defaultKey"
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ padding: 33px 0 0 50px;
+ "
+ >
+ <el-button type="success" round @click="handleConfirmReplace">
+ 榛樿濉厖
+ </el-button>
+ </div>
+ </div>
+
<div class="headline">
<div>闅忚鍐呭</div>
</div>
@@ -296,9 +377,14 @@
v-if="item.scriptType == 1 && !item.astrict"
>
<div class="dev-text">
- {{ index + 1 }}銆乕鍗曢�塢<span>{{
- item.scriptContent
- }}</span>
+ {{ index + 1 }}. [鍗曢�塢
+
+ <span> {{ item.scriptContent }}</span>
+ <span style="margin-left: 20px"
+ ><dict-tag
+ :options="dict.type.dimensionality_type"
+ :value="item.dimension"
+ /></span>
</div>
<div class="dev-xx">
<el-radio-group v-model="item.scriptResult">
@@ -349,9 +435,14 @@
v-if="item.scriptType == 2 && !item.astrict"
>
<div class="dev-text">
- {{ index + 1 }}銆乕澶氶�塢<span>{{
+ {{ index + 1 }}. [澶氶�塢<span>{{
item.scriptContent
}}</span>
+ <span style="margin-left: 20px"
+ ><dict-tag
+ :options="dict.type.dimensionality_type"
+ :value="item.dimension"
+ /></span>
</div>
<div class="dev-xx">
<el-checkbox-group
@@ -383,9 +474,14 @@
v-if="item.scriptType == 4 && !item.astrict"
>
<div class="dev-text">
- {{ index + 1 }}銆乕闂瓟]<span>{{
+ {{ index + 1 }}. [闂瓟]<span>{{
item.scriptContent
}}</span>
+ <span style="margin-left: 20px"
+ ><dict-tag
+ :options="dict.type.dimensionality_type"
+ :value="item.dimension"
+ /></span>
<span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
</div>
<div class="dev-xx" v-if="item.valueType == 3">
@@ -419,9 +515,8 @@
>
<div v-if="item.targetvalue">
<div class="dev-text">
- {{ index + 1 }}銆乕鍗曢�塢<span>{{
- item.questiontext
- }}</span>
+ {{ index + 1 }}. [鍗曢�塢
+ <span>{{ item.questiontext }}</span>
</div>
<div class="dev-xx">
<el-radio-group
@@ -452,7 +547,7 @@
<div class="scriptTopic-dev" :key="index" v-else>
<div class="dev-text">
- {{ index + 1 }}銆乕闂瓟]<span>{{
+ {{ index + 1 }}. [闂瓟]<span>{{
item.questiontext
}}</span>
<span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
@@ -798,7 +893,13 @@
</el-form-item>
<!-- 闅忚鎯呭喌 -->
- <el-form-item label="闅忚鎯呭喌" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
+ <el-form-item
+ label="闅忚鎯呭喌"
+ v-if="
+ orgname == '涓芥按甯備腑鍖婚櫌' ||
+ orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'
+ "
+ >
<el-radio-group v-model="form.taskSituation">
<el-radio
v-for="city in cities"
@@ -944,34 +1045,21 @@
<!-- 娉ㄦ剰杩欓噷浣跨敤浜� smsDialogVisible 浠ュ尯鍒嗗凡鏈夌殑 dialogFormVisible -->
<el-form ref="smsForm" :model="form" label-width="80px">
<el-form-item label="鎮h�呭悕绉�">
- <el-input
- style="width: 400px"
- disabled
- v-model="form.sendname"
- ></el-input>
+ <el-input style="width: 400px" v-model="form.sendname"></el-input>
</el-form-item>
<el-form-item label="骞撮緞">
- <el-input style="width: 400px" disabled v-model="form.age"></el-input>
+ <el-input style="width: 400px" v-model="form.age"></el-input>
</el-form-item>
<el-form-item label="鐢佃瘽">
- <el-input
- style="width: 400px"
- disabled
- v-model="userform.telcode"
- ></el-input>
+ <el-input style="width: 400px" v-model="userform.telcode"></el-input>
<!-- 娉ㄦ剰杩欓噷鍙兘浣跨敤 userform.telcode -->
</el-form-item>
<el-form-item label="绉戝">
- <el-input
- style="width: 400px"
- disabled
- v-model="form.deptname"
- ></el-input>
+ <el-input style="width: 400px" v-model="form.deptname"></el-input>
</el-form-item>
<el-form-item label="鐥呭尯">
<el-input
style="width: 400px"
- disabled
v-model="form.leavehospitaldistrictname"
></el-input>
</el-form-item>
@@ -1165,6 +1253,7 @@
updateTemplate,
query360PatInfonh,
sendMsg,
+ getconfigKey,
} from "@/api/AiCentre/index";
import {
messagelistpatient,
@@ -1246,6 +1335,7 @@
},
dicts: [
"sys_normal_disable",
+ "dimensionality_type",
"quickfollow_up",
"sys_user_sex",
"sys_yujing",
@@ -1267,6 +1357,7 @@
return {
visitAgain: 1,
userid: "",
+ defaultKey: false, //鏄惁鍙粯璁ゅ~鎶�
currentPhoneNumber: "",
callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
isSipRegistering: true, // SIP娉ㄥ唽鐘舵��
@@ -1449,56 +1540,6 @@
// 绂佺敤浠婂ぉ鍙婁箣鍓嶇殑鏃ユ湡
return time.getTime() < Date.now() - 24 * 60 * 60 * 1000;
},
- // shortcuts: [
- // {
- // text: "涓冨ぉ鍚�",
- // onClick(picker) {
- // const date = new Date();
- // date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
- // 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: "涓�涓湀鍚�",
- // onClick(picker) {
- // const date = new Date();
- // date.setTime(date.getTime() + 3600 * 1000 * 24 * 30);
- // 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: [
{
@@ -1621,6 +1662,7 @@
];
}
this.getTaskservelist();
+ this.getconfigKey();
},
mounted() {
// 鐩戝惉瀛愮粍浠剁殑sipStatus灞炴�у彉鍖�
@@ -1660,7 +1702,29 @@
return "scriptTopic-dev"; // 姝e父 - 榛樿鏍峰紡
}
},
-
+ getconfigKey() {
+ getconfigKey("default.value.icon").then((res) => {
+ if (res.msg) {
+ if (
+ this.getAssignArr(res.msg).includes(this.$store.state.user.name) ||
+ this.$store.state.user.name == "admin"
+ ) {
+ this.defaultKey = true;
+ } else {
+ this.defaultKey = false;
+ }
+ }
+ });
+ },
+ getAssignArr(rule) {
+ let arr = [];
+ let assiginArr = rule.split(",");
+ for (let i = 0; i < assiginArr.length; i++) {
+ arr[i] = assiginArr[i];
+ }
+ arr.sort(this.compare);
+ return arr;
+ },
// 鑾峰彇閫夐」鏍峰紡绫�
getOptionClass(items) {
if (items.isabnormal == 1) {
@@ -1969,29 +2033,29 @@
this.Torouter();
return;
}
- this.$modal
- .confirm(
- '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮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(() => {
- this.Torouter();
- });
+ // this.$modal
+ // .confirm(
+ // '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮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(() => {
+ // this.Torouter();
+ // });
}
});
},
@@ -2078,6 +2142,39 @@
handleTemplateClear() {
console.log("娓呴櫎浜嗘ā鏉块�夋嫨");
+ },
+ handleConfirmReplace() {
+ // 閬嶅巻鎵�鏈夐鐩紙tableDatatop锛�
+ this.tableDatatop.forEach((item) => {
+ // 鍙鐞嗘湭濉姤鐨勯鐩紙scriptResult 涓虹┖鎴栫┖鏁扮粍锛�
+ if (
+ !item.scriptResult ||
+ (Array.isArray(item.scriptResult) && item.scriptResult.length === 0)
+ ) {
+ // 鏌ユ壘閫夐」涓� defaultValue 涓� 2 鐨勯�夐」
+ const defaultOption = item.svyTaskTemplateTargetoptions?.find(
+ (opt) => opt.defaultValue == 2
+ );
+ console.log(item);
+
+ if (defaultOption) {
+ // 鏍规嵁棰樼洰绫诲瀷璧嬪��
+ if (item.scriptType === "1") {
+ // 鍗曢�夐锛氱洿鎺ヨ祴鍊间负 optioncontent 瀛楃涓�
+ item.scriptResult = defaultOption.optioncontent;
+ } else if (item.scriptType === "2") {
+ // 澶氶�夐锛氳祴鍊间负鍖呭惈 optioncontent 鐨勬暟缁�
+ item.scriptResult = [defaultOption.optioncontent];
+ } else if (item.scriptType === "4") {
+ // 濉┖棰橈細涓�鑸病鏈夐�夐」锛屼絾濡傛灉鏈夊垯璧嬪��
+ item.scriptResult = defaultOption.optioncontent;
+ }
+
+ // 瑙﹀彂瑙嗗浘鏇存柊锛堝洜涓� Vue 鍙兘鏃犳硶妫�娴嬪埌娣卞眰宓屽瀵硅薄鐨勫彉鍖栵級
+ this.$forceUpdate();
+ }
+ }
+ });
},
// 浣跨敤绀轰緥
isValidPhone(phone) {
@@ -2202,29 +2299,31 @@
savequestiondetail(obj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
- this.$modal
- .confirm(
- '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮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(() => {
- this.Torouter();
- });
+ this.Torouter();
+
+ // this.$modal
+ // .confirm(
+ // '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮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(() => {
+ // this.Torouter();
+ // });
}
});
},
@@ -2272,7 +2371,7 @@
console.log(targetDate, "鐩爣鏃ユ湡");
if (now < targetDate && this.form.sendstate == 2) {
- this.$confirm("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
+ this.$confirm("褰撳墠鏈嶅姟鏈埌闅忚鏃堕棿璇疯皑鎱庝慨鏀�", "鎻愮ず", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "warning",
@@ -2326,6 +2425,9 @@
if (res.code == 200) {
objson = res.rows[0].serviceSubtaskList[0];
objson.suggest = son;
+ objson.remark = this.form.remark;
+ objson.sendstate = this.serviceStates;
+ objson.taskSituation = this.form.taskSituation;
Editsingletaskson(objson).then((res) => {
if (res.code) {
this.$modal.msgSuccess("鏈嶅姟璁板綍鎴愬姛");
@@ -2366,13 +2468,14 @@
});
},
alterpatient(sendstate) {
- alterpatient(this.userform).then((res) => {
- if (res.code == 200) {
- this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
- } else {
- this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
- }
- });
+ this.Editsingletasksonyic(this.serviceStates)
+ // alterpatient(this.userform).then((res) => {
+ // if (res.code == 200) {
+ // this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
+ // } else {
+ // this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
+ // }
+ // });
},
// 寮傚父鍒楁覆鏌�
tableRowClassName({ row, rowIndex }) {
@@ -2764,14 +2867,38 @@
// console.log(11);
// },
beforeRouteLeave(to, from, next) {
- this.$refs.callButton.cleanupResources();
- if (this.$refs.CallCenterLs) {
- console.log(1);
+ const callButton = this.$refs.callButton;
+ // 濡傛灉瀛樺湪鍛煎彨缁勪欢涓旀鍦ㄩ�氳瘽涓�
+ if (callButton && callButton.isCalling) {
+ this.$confirm('褰撳墠姝e湪閫氳瘽涓紝纭畾瑕佺寮�姝ら〉闈㈠悧锛�', '鎻愮ず', {
+ confirmButtonText: '鎸傛柇骞剁寮�',
+ cancelButtonText: '缁х画閫氳瘽',
+ type: 'warning'
+ })
+ .then(() => {
+ // 鐢ㄦ埛纭绂诲紑锛屼富鍔ㄦ寕鏂苟娓呯悊
+ callButton.cleanupResources();
+ if (this.$refs.CallCenterLs) {
+ this.$refs.CallCenterLs.handleSeatLogout();
+ }
+ next();
+ })
+ .catch(() => {
+ // 鐢ㄦ埛鍙栨秷锛岄樆姝㈣矾鐢辫烦杞�
+ next(false);
+ });
+ } else {
+ // 鏈�氳瘽鎴栧懠鍙粍浠朵笉瀛樺湪锛屾甯告竻鐞�
+ if (callButton) {
+ callButton.cleanupResources();
+ }
+ if (this.$refs.CallCenterLs) {
this.$refs.CallCenterLs.handleSeatLogout();
}
- next(); // 纭繚璋冪敤 nex
- },
+ next();
+ }
+}
// beforeRouteUpdate() {
// console.log(33);
// },
@@ -3100,6 +3227,7 @@
.dev-text {
margin-bottom: 10px;
+ display: flex;
}
}
}
--
Gitblit v1.9.3