From 96681523c5bc39840abf9d73cd585044568d5aad Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 14 七月 2025 11:43:04 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/record/detailpage/index.vue | 304 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 281 insertions(+), 23 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index a67f0fd..c6b50f5 100644 --- a/src/views/followvisit/record/detailpage/index.vue +++ b/src/views/followvisit/record/detailpage/index.vue @@ -215,7 +215,12 @@ </div> <div class="Followuserinfos"> <div> - <el-form ref="form" :model="form" label-width="120px"> + <el-form + ref="userform" + :model="form" + :rules="userrules" + label-width="120px" + > <div class="headline"> <div>浜哄伐澶勭悊</div> <el-row :gutter="20"> @@ -224,6 +229,13 @@ <el-input placeholder="鑱旂郴鐢佃瘽缂哄け" v-model="userform.telcode" + > + <el-button + slot="append" + icon="el-icon-phone" + @click="handleCall(userform.telcode, 'tel')" + :disabled="!isValidPhone(userform.telcode)" + ></el-button ></el-input> </el-form-item ></el-col> <el-col :span="8" @@ -231,6 +243,13 @@ <el-input placeholder="鑱旂郴浜虹數璇濈己澶�" v-model="userform.relativetelcode" + > + <el-button + slot="append" + icon="el-icon-phone" + @click="handleCall(userform.relativetelcode, 'relative')" + :disabled="!isValidPhone(userform.relativetelcode)" + ></el-button ></el-input> </el-form-item ></el-col> <el-col :span="8" @@ -352,6 +371,14 @@ </el-collapse-item> </el-collapse> </div> + </div> + <div> + <h2>涓�閿懠鍙姛鑳�</h2> + <CallButton + ref="callButton" + :phoneNumber="currentPhoneNumber" + style="display: none" + /> </div> <div> <el-tabs v-model="activeName" type="border-card"> @@ -622,26 +649,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> @@ -675,11 +771,30 @@ alterpatient, listcontactinformation, } from "@/api/patient/homepage"; +import CallButton from "@/components/CallButton"; export default { + components: { + CallButton, + }, + dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], data() { + const validatePhone = (rule, value, callback) => { + if (!value) { + return callback(new Error("璇疯緭鍏ヨ仈绯荤數璇�")); + } + setTimeout(() => { + if (!/^1[3-9]\d{9}$/.test(value)) { + callback(new Error("璇疯緭鍏ユ纭殑11浣嶆墜鏈哄彿鐮�")); + } else { + callback(); + } + }, 300); + }; return { userid: "", + currentPhoneNumber: "", + callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇� input: "浠婂ぉ韬綋杩樹笉閿�", radio: "2", taskname: "", @@ -696,9 +811,11 @@ resource: [ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, ], - date1: [ - { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }, - ], + date1: [{ required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }], + }, + userrules: { + telcode: [{ validator: validatePhone, trigger: "blur" }], + relativetelcode: [{ validator: validatePhone, trigger: "blur" }], }, url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", postData: { @@ -753,15 +870,65 @@ }, }, { - text: "30澶╁悗", + 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: [ + { + value: "涓冨ぉ鍚�", + label: "涓冨ぉ鍚�", + }, + { + value: "15澶╁悗", + label: "15澶╁悗", + }, + { + value: "涓�涓湀鍚�", + label: "涓�涓湀鍚�", + }, + { + value: "涓変釜鏈堝悗", + label: "涓変釜鏈堝悗", + }, + { + value: "鍏釜鏈堝悗", + label: "鍏釜鏈堝悗", + }, + { + value: "涓�骞村悗", + label: "涓�骞村悗", + }, + ], userform: {}, Whetherall: true, //鏄惁鍏ㄩ儴璁板綍灞曠ず dialogFormVisible: false, @@ -866,6 +1033,37 @@ } }); }, + // 鍐嶆闅忚鏃堕棿閫夊彇 + visitChange(value) { + // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚缃椂闂� + const now = new Date(); + if (value.includes("涓冨ぉ鍚�")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 7 + ); + } else if (value.includes("15澶╁悗")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 15 + ); + } else if (value.includes("涓�涓湀鍚�")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 30 + ); + } else if (value.includes("涓変釜鏈堝悗")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 90 + ); + } else if (value.includes("鍏釜鏈堝悗")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 180 + ); + } else if (value.includes("涓�骞村悗")) { + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365 + ); + } + }, + // 鑾峰彇璇煶鏁版嵁 getPersonVoices(id) { let obj = { @@ -982,6 +1180,7 @@ ) .then(() => { document.querySelector("#app").scrollTo(0, 0); + this.formtidy(); this.dialogFormVisible = true; }) .catch(() => { @@ -1012,6 +1211,29 @@ // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲� console.error("鍙戠敓閿欒锛�", error); }); + }, + // 楠岃瘉鎵嬫満鍙锋牸寮� + isValidPhone(phone) { + return /^1[3-9]\d{9}$/.test(phone); + }, + // 鍛煎彨澶勭悊 + handleCall(phone, type) { + if (this.isValidPhone(phone)) { + this.currentPhoneNumber = phone; + this.callType = type; + + // 绛夊緟涓嬩竴涓猼ick纭繚鍊煎凡鏇存柊 + this.$nextTick(() => { + this.$refs.callButton.startCall(); + + // 鍙�夛細鏍规嵁涓嶅悓绫诲瀷鍋氫笉鍚屽鐞� + if (type === "tel") { + console.log("姝e湪鍛煎彨鎮h�呮湰浜�:", phone); + } else { + console.log("姝e湪鍛煎彨鑱旂郴浜�:", phone); + } + }); + } }, yuyingetdetail() { this.tableDatatop.forEach((item, index) => { @@ -1053,6 +1275,7 @@ ) .then(() => { document.querySelector("#app").scrollTo(0, 0); + this.formtidy(); this.dialogFormVisible = true; }) .catch(() => { @@ -1081,7 +1304,12 @@ } }); }, - + // 鍐嶆闅忚鏁版嵁鏇存浛 + formtidy() { + this.form.visitType2 = this.form.visitType; + this.form.date2 = this.form.longSendTime; + this.form.remark2 = this.form.remark; + }, // 鑾峰彇鎮h�呰褰� getTaskservelist(id) { if (id) { @@ -1178,6 +1406,7 @@ sendAgain() { document.querySelector("#app").scrollTo(0, 0); // scrollTo(0, 0) + this.formtidy(); this.dialogFormVisible = true; }, // 鏌ョ湅璇︽儏 @@ -1254,9 +1483,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; @@ -1265,11 +1500,11 @@ this.$modal.msgSuccess("鍒涘缓鎴愬姛"); if (form.serviceType == 13) { this.$router.push({ - path: "/logisticsservice/zbAgain", + path: "/logisticsservice/again", }); } else if (form.serviceType == 2) { this.$router.push({ - path: "/followvisit/again", + path: "/logisticsservice/zbAgain", }); } } else { @@ -1296,8 +1531,6 @@ }, }; </script> - - <style lang="scss"> .Followupdetailspage { @@ -1475,8 +1708,33 @@ background-color: #f57676; border-color: #f57676; } +.el-icon-phone { + transition: all 0.3s; +} +.el-button[disabled] .el-icon-phone { + color: #c0c4cc; +} +.el-button:not([disabled]) .el-icon-phone { + color: #409eff; +} +.el-button:not([disabled]):hover .el-icon-phone { + color: #66b1ff; + transform: scale(1.1); +} .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