From 81ceeaa2d96cd275992dbaf0bed8fc9c4e1a2acb Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期一, 08 九月 2025 16:36:03 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/record/detailpage/index.vue | 196 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 188 insertions(+), 8 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index e2ff50a..89698ee 100644 --- a/src/views/followvisit/record/detailpage/index.vue +++ b/src/views/followvisit/record/detailpage/index.vue @@ -27,6 +27,23 @@ 鍓嶅線CDSS鏌ヨ </el-link> </div> + <div class="merge-controls" v-if="Whetherall"> + <el-button + type="primary" + @click="toggleMergeMode" + :disabled="selectedServices.length < 2" + > + {{ isMergeMode ? "鍙栨秷鍚堝苟" : "鍚堝苟缂栬緫闂嵎" }} + </el-button> + <el-button + v-if="isMergeMode" + type="success" + @click="openMergeDialog" + :disabled="selectedServices.length < 2" + > + 寮�濮嬪悎骞� (宸查�� {{ selectedServices.length }} 涓湇鍔�) + </el-button> + </div> </div> <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> --> </div> @@ -36,7 +53,14 @@ :data="logsheetlist" :row-class-name="tableRowClassName" style="width: 100%" + @selection-change="handleSelectionChange" > + <el-table-column + type="selection" + width="55" + :selectable="checkSelectable" + v-if="Whetherall" + ></el-table-column> <el-table-column prop="sendname" align="center" @@ -213,7 +237,22 @@ </el-table> </div> </div> - + <!-- 娣诲姞鍚堝苟缂栬緫瀵硅瘽妗� --> + <el-dialog + title="鍚堝苟缂栬緫闂嵎" + :visible.sync="mergeDialogVisible" + width="80%" + top="5vh" + v-dialogDrag + > + <MergeAndModify + v-if="mergeDialogVisible" + :selected-services="selectedServices" + :patid="patid" + @save="handleMergeSave" + @cancel="mergeDialogVisible = false" + /> + </el-dialog> <div class="action-container"> <div class="call-action"> <div class="call-container"> @@ -278,7 +317,7 @@ </el-radio-group> </div> <div - v-if="item.showAppendInput" + v-if="item.showAppendInput || item.answerps" class="append-input-container" > <el-input @@ -613,6 +652,9 @@ <el-button plain type="info" @click="Editsingletaskson('5')" >涓績闅忚</el-button > + <el-button type="primary" round @click="sendAgainmsg" + >鐭俊鍙戦��</el-button + > </div> </el-form-item> </el-form> @@ -674,7 +716,53 @@ </div> </div> </div> - + <!-- 鐭俊鍙戦�佸璇濇 --> + <el-dialog title="鐭俊鍙戦��" :visible.sync="smsDialogVisible"> + <!-- 娉ㄦ剰杩欓噷浣跨敤浜� 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-form-item> + <el-form-item label="骞撮緞"> + <el-input style="width: 400px" disabled 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> + <!-- 娉ㄦ剰杩欓噷鍙兘浣跨敤 userform.telcode --> + </el-form-item> + <el-form-item label="绉戝"> + <el-input + style="width: 400px" + disabled + 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> + <el-form-item label="鐭俊鍐呭"> + <el-input type="textarea" v-model="smsContent"></el-input> + <!-- 寤鸿浣跨敤鐙珛鐨� smsContent 鍙橀噺 --> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="smsDialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="sendSms">纭鍙戦��</el-button> + <!-- 娉ㄦ剰鏂规硶鍚嶆敼涓� sendSms --> + </div> + </el-dialog> <el-dialog title="鎮h�呭啀娆¢殢璁�" v-dialogDrags @@ -836,6 +924,7 @@ updatePersonVoices, addPersonVoices, query360PatInfo, + sendMsg, } from "@/api/AiCentre/index"; import { messagelistpatient, @@ -843,9 +932,11 @@ listcontactinformation, } from "@/api/patient/homepage"; import CallButton from "@/components/CallButton"; +import MergeAndModify from "./MergeAndModify.vue"; export default { components: { CallButton, + MergeAndModify, }, dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], @@ -882,6 +973,9 @@ tableDatatop: [], //棰樼洰琛� voiceDatatop: [], //棰樼洰琛� dynamicTags: [], + isMergeMode: false, + mergeDialogVisible: false, + selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛� zcrules: { resource: [ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, @@ -1009,6 +1103,8 @@ }, ], userform: {}, + smsDialogVisible: false, // 鎺у埗鐭俊瀵硅瘽妗嗘樉绀� + smsContent: "", // 瀛樺偍鐭俊鍐呭 Whetherall: true, //鏄惁鍏ㄩ儴璁板綍灞曠ず dialogFormVisible: false, Voicetype: 0, //鏄惁涓鸿闊虫湇鍔� @@ -1312,6 +1408,7 @@ console.error("鍙戠敓閿欒锛�", error); }); }, + // 鐢佃瘽============================ // 楠岃瘉鐢佃瘽鍙风爜鏍煎紡骞惰繑鍥為敊璇俊鎭� validatePhoneNumber(phone) { if (!phone) { @@ -1343,7 +1440,6 @@ }; } }, - // 浣跨敤绀轰緥 isValidPhone(phone) { return this.validatePhoneNumber(phone).isValid; @@ -1367,7 +1463,6 @@ }); }); }, - // 澶勭悊閫氳瘽鐘舵�佸彉鍖� handleCallStatusChange(status) { console.log(status, "status"); @@ -1389,7 +1484,6 @@ this.$message.error(`鍛煎彨澶辫触: ${status.text}`); } }, - // 缁撴潫褰撳墠閫氳瘽 endCurrentCall() { if (!this.currentCall) return; @@ -1517,6 +1611,34 @@ } }); }, + // 璋冭捣鐭俊鍙戦�佸璇濇 + sendAgainmsg() { + this.smsDialogVisible = true; + // 鍙互鍦ㄨ繖閲屽垵濮嬪寲 smsContent锛屼緥濡� this.smsContent = ''; + }, + + // 鍙戦�佺煭淇$殑鏂规硶 + sendSms() { + // 杩欓噷璋冪敤浣犵殑鐭俊鍙戦�� API + // 鍋囪 API 涓� sendMsg锛屽弬鏁板彲鑳介渶瑕佹牴鎹疄闄呮儏鍐佃皟鏁� + sendMsg({ + phone: "0" + this.userform.telcode, // 纭繚鐢佃瘽鍙风爜瀛楁姝g‘ + content: this.smsContent, + }) + .then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鍙戦�佹垚鍔�"); + this.smsDialogVisible = false; // 鍏抽棴瀵硅瘽妗� + this.smsContent = ""; // 娓呯┖鍐呭 + } else { + this.$modal.msgError("鍙戦�佸け璐�"); + } + }) + .catch((error) => { + console.error("鍙戦�佺煭淇″け璐�:", error); + this.$modal.msgError("鍙戦�佸け璐�"); + }); + }, Editsingletaskson(son) { let objson = {}; getTaskservelist({ @@ -1642,7 +1764,7 @@ this.tableDatatop[questionIndex].showAppendInput = selectedOptionObj.appendflag == 1; - console.log(this.tableDatatop); + console.log(this.tableDatatop); // if (!this.tableDatatop[questionIndex].showAppendInput) { // this.tableDatatop[questionIndex].answerps = ""; // 娓呴櫎闄勫姞淇℃伅 @@ -1793,6 +1915,60 @@ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; }, updateScore(a, b, c) {}, + // 鍚堝苟淇敼鐩稿叧============================= + toggleMergeMode() { + this.isMergeMode = !this.isMergeMode; + if (!this.isMergeMode) { + this.selectedServices = []; + } + }, + + handleSelectionChange(selection) { + this.selectedServices = selection + .filter( + (item) => !item.preachformson || !item.preachformson.includes("3") + ) + .map((item) => ({ + id: item.id, + taskid: item.taskid, + taskName: item.taskName, + sendname: item.sendname, + })); + }, + checkSelectable(row, index) { + // 褰� sendstate 涓� 6 鏃朵笉鍙�� + return row.sendstate !== 6; + }, + openMergeDialog() { + if (this.selectedServices.length < 2) { + this.$message.warning("璇疯嚦灏戦�夋嫨2涓棶鍗锋湇鍔¤繘琛屽悎骞�"); + return; + } + this.mergeDialogVisible = true; + }, + + handleMergeSave(mergedData) { + // 澶勭悊鍚堝苟淇濆瓨閫昏緫 + this.mergeDialogVisible = false; + this.isMergeMode = false; + this.selectedServices = []; + + // 鏄剧ず淇濆瓨缁撴灉 + if (mergedData.successCount == mergedData.totalCount) { + this.$message.success(`鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗穈); + } else if (mergedData.successCount > 0) { + this.$message.warning( + `鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗凤紝澶辫触 ${ + mergedData.totalCount - mergedData.successCount + } 涓猔 + ); + } else { + this.$message.error("鎵�鏈夐棶鍗蜂繚瀛樺け璐�"); + } + + // 鍒锋柊鏁版嵁 + this.getTaskservelist(); + }, }, }; </script> @@ -1852,7 +2028,11 @@ margin-top: 20px; } } - +.merge-controls { + background: #f5f7fa; + border-radius: 4px; + margin-left: 20px; +} .Followuserinfo { margin: 10px 10px 0 10px; align-items: center; -- Gitblit v1.9.3