From 30898b3fcc871f58f0d49200bd50de30cd6b12ad Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期四, 11 九月 2025 17:51:40 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/record/detailpage/index.vue | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 250 insertions(+), 8 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index 89698ee..4d9d873 100644 --- a/src/views/followvisit/record/detailpage/index.vue +++ b/src/views/followvisit/record/detailpage/index.vue @@ -18,7 +18,7 @@ >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button > </div> - <div style="margin-left: 20px; color: #59a0f0"> + <!-- <div style="margin-left: 20px; color: #59a0f0"> <el-link href="https://9.208.2.207:6060/search-homepage" target="_blank" @@ -26,7 +26,7 @@ > 鍓嶅線CDSS鏌ヨ </el-link> - </div> + </div> --> <div class="merge-controls" v-if="Whetherall"> <el-button type="primary" @@ -381,8 +381,18 @@ {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span> + <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span> </div> - <div class="dev-xx"> + <div class="dev-xx" v-if="item.valueType == 3"> + <el-input + type="text" + v-numeric-only + placeholder="璇疯緭鍏ョ瓟妗�" + v-model="item.scriptResult" + > + </el-input> + </div> + <div class="dev-xx" v-else> <el-input type="textarea" :rows="2" @@ -437,15 +447,25 @@ <div class="scriptTopic-dev" :key="index" v-else> <div class="dev-text"> {{ index + 1 }}銆乕闂瓟]<span>{{ - item.questiontext + item.scriptContent }}</span> + <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span> </div> - <div class="dev-xx"> + <div class="dev-xx" v-if="item.valueType == 3"> + <el-input + type="text" + v-numeric-only + placeholder="璇疯緭鍏ョ瓟妗�" + v-model="item.scriptResult" + > + </el-input> + </div> + <div class="dev-xx" v-else> <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ョ瓟妗�" - v-model="item.matchedtext" + v-model="item.scriptResult" clearable > </el-input> @@ -556,6 +576,46 @@ @click="sendAgain()" >鍐嶆闅忚</el-button > + </div> + <div class="tag-selector-container"> + <el-select + v-model="selectedTag" + placeholder="璇烽�夋嫨寮傚父鐘舵��" + clearable + style="width: 150px; margin-right: 10px" + > + <el-option + v-for="item in tagOptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + <span style="display: flex; align-items: center"> + <span + class="color-indicator" + :style="{ backgroundColor: item.color }" + ></span> + <span>{{ item.label }}</span> + </span> + </el-option> + </el-select> + + <!-- 褰撳墠閫夋嫨鐨勯鑹叉寚绀哄櫒 --> + <div + v-if="selectedTag" + class="color-indicator selected-indicator" + :style="{ backgroundColor: getSelectedTagColor() }" + ></div> + + <!-- 鏍囪璇存槑鎻愮ず --> + <el-tooltip + v-if="selectedTag" + effect="light" + :content="getSelectedDescription()" + placement="top" + > + <i class="el-icon-info tag-info-icon"></i> + </el-tooltip> </div> </div> <el-row> @@ -938,7 +998,67 @@ CallButton, MergeAndModify, }, + directives: { + numericOnly: { + bind(el, binding, vnode) { + // 灏濊瘯鑾峰彇瀹為檯鐨刬nput鍏冪礌 + const input = el.tagName === "INPUT" ? el : el.querySelector("input"); + if (!input) { + console.warn("v-numeric-only: 鏈壘鍒癷nput鍏冪礌"); + return; + } + const handleInput = function (event) { + const oldValue = input.value; + const newValue = oldValue.replace(/[^\d]/g, ""); + if (newValue !== oldValue) { + input.value = newValue; + // 瑙﹀彂input浜嬩欢锛岄�氱煡v-model鏇存柊 + input.dispatchEvent(new Event("input", { bubbles: true })); // 娉ㄦ剰bubbles + } + }; + + const handlePaste = function (event) { + event.preventDefault(); + const clipboardData = event.clipboardData || window.clipboardData; + const pastedData = clipboardData.getData("text"); + const numericValue = pastedData.replace(/[^\d]/g, ""); + + // 妯℃嫙鍦ㄥ厜鏍囦綅缃彃鍏ョ函鏁板瓧鏂囨湰 + const start = input.selectionStart; + const end = input.selectionEnd; + input.value = + input.value.substring(0, start) + + numericValue + + input.value.substring(end); + // 璋冩暣鍏夋爣浣嶇疆 + const newCursorPos = start + numericValue.length; + input.setSelectionRange(newCursorPos, newCursorPos); + + // 瑙﹀彂input浜嬩欢 + input.dispatchEvent(new Event("input", { bubbles: true })); + }; + + input.addEventListener("input", handleInput); + input.addEventListener("paste", handlePaste); + + // 瀛樺偍寮曠敤浠ヤ究瑙g粦 + el._numericOnly = { + inputHandle: handleInput, + pasteHandle: handlePaste, + inputEl: input, + }; + }, + unbind(el) { + if (el._numericOnly) { + const { inputHandle, pasteHandle, inputEl } = el._numericOnly; + inputEl.removeEventListener("input", inputHandle); + inputEl.removeEventListener("paste", pasteHandle); + delete el._numericOnly; + } + }, + }, + }, dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], data() { const validatePhone = (rule, value, callback) => { @@ -976,6 +1096,30 @@ isMergeMode: false, mergeDialogVisible: false, selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛� + selectedTag: "", + tagOptions: [ + { + value: "0", + label: "姝e父", + type: "normal", + color: "#7ff5e1", + description: "鎮h�呮儏鍐垫甯革紝鏃犻渶鐗瑰埆鍏虫敞", + }, + { + value: "1", + label: "寮傚父", + type: "abnormal", + color: "#f75c5c", + description: "鎮h�呭瓨鍦ㄥ紓甯告儏鍐碉紝闇�瑕侀噸鐐瑰叧娉�", + }, + { + value: "2", + label: "璀﹀憡", + type: "warning", + color: "#fbfb4a", + description: "鎮h�呮儏鍐甸渶瑕佽鍛婃敞鎰忥紝鍙兘瀛樺湪椋庨櫓", + }, + ], zcrules: { resource: [ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, @@ -1193,6 +1337,8 @@ }, //鎮h��360璺宠浆 gettoken360(sfzh, drcode, drname) { + this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�"); + return; // 闃绘鍚庣画浠g爜鎵ц this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") { this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; @@ -1211,7 +1357,7 @@ getuserinfo() { const queryParams = { pid: Number(this.patid), - allhosp: "0", + allhosp: "0", //1浣忛櫌2闂ㄨ瘖3浣撴4鍑洪櫌 }; // 鎮h�呭熀纭�淇℃伅 messagelistpatient(queryParams).then((response) => { @@ -1318,6 +1464,13 @@ let excep = ""; const promises = []; this.tableDatatop.forEach((item) => { + if (item.valueType == 3 && item.scriptResult) { + // 楠岃瘉鏄惁涓烘湁鏁堟暟瀛� + if (!/^\d+$/.test(item.scriptResult)) { + this.$message.error(`闂 "${item.scriptContent}" 蹇呴』杈撳叆鏁板瓧`); + return; + } + } var objs = item.svyLibTemplateTargetoptions.find( (items) => items.optioncontent == item.scriptResult ); @@ -1348,6 +1501,7 @@ promises.push(serviceSubtaskDetailadd(obj)); } }); + // 浣跨敤 Promise.all 绛夊緟鎵�鏈夊紓姝ユ搷浣滃畬鎴� Promise.all(promises) .then((results) => { @@ -1591,6 +1745,7 @@ this.logsheetlist = res.rows[0].serviceSubtaskList; this.templateid = this.logsheetlist[0].templateid; + this.selectedTag = this.logsheetlist[0].excep; const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡 const now = new Date(); // 褰撳墠鏃堕棿 if (now < targetDate && this.form.sendstate == 2) { @@ -1622,7 +1777,7 @@ // 杩欓噷璋冪敤浣犵殑鐭俊鍙戦�� API // 鍋囪 API 涓� sendMsg锛屽弬鏁板彲鑳介渶瑕佹牴鎹疄闄呮儏鍐佃皟鏁� sendMsg({ - phone: "0" + this.userform.telcode, // 纭繚鐢佃瘽鍙风爜瀛楁姝g‘ + phone: this.userform.telcode, // 纭繚鐢佃瘽鍙风爜瀛楁姝g‘ content: this.smsContent, }) .then((res) => { @@ -1668,6 +1823,7 @@ (item) => item.id == this.id ); objson.remark = this.form.remark; + objson.excep = this.selectedTag; if (sendstate) objson.sendstate = sendstate; Editsingletaskson(objson).then((res) => { if (res.code) { @@ -1692,6 +1848,30 @@ } return ""; }, + getSelectedTagType() { + if (!this.selectedTag) return ""; + const tag = this.tagOptions.find( + (item) => item.value === this.selectedTag + ); + return tag ? tag.type : ""; + }, + + getSelectedTagColor() { + if (!this.selectedTag) return ""; + const tag = this.tagOptions.find( + (item) => item.value === this.selectedTag + ); + return tag ? tag.color : ""; + }, + + getSelectedDescription() { + if (!this.selectedTag) return ""; + const tag = this.tagOptions.find( + (item) => item.value === this.selectedTag + ); + return tag ? tag.description : ""; + }, + // 璋冭捣鍐嶆鍙戦�� sendAgain() { document.querySelector("#app").scrollTo(0, 0); @@ -1998,7 +2178,22 @@ height: 100%; /* 纭繚楂樺害缁ф壙 */ } } +.numeric-input { + position: relative; +} +.numeric-input::after { + content: "鍙兘杈撳叆鏁板瓧"; + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + font-size: 12px; + color: #999; + background: #f5f5f5; + padding: 2px 6px; + border-radius: 4px; +} .call-container { padding: 20px; background: #fff; @@ -2241,7 +2436,54 @@ top: 0; } } +.tag-selector-container { + display: flex; + align-items: center; + margin: 0 30px; +} +.color-indicator { + width: 16px; + height: 16px; + border-radius: 3px; + margin-right: 8px; + display: inline-block; +} + +.selected-indicator { + margin-left: 10px; + width: 20px; + height: 20px; +} + +.tag-info-icon { + margin-left: 10px; + color: #909399; + cursor: pointer; + font-size: 16px; +} + +/* 纭繚閫夋嫨鍣ㄩ�夐」涓篃鏄剧ず棰滆壊鍧� */ +.el-select-dropdown__item { + display: flex; + align-items: center; +} + +.tag-normal { + background-color: #7ff5e1; +} +.tag-abnormal { + background-color: #f75c5c; +} +.tag-warning { + background-color: #fbfb4a; +} + +.tag-info { + margin-left: 10px; + color: #909399; + cursor: pointer; +} ::v-deep.offside-value .el-radio__label { color: #fff; } -- Gitblit v1.9.3