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 | 106 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 98 insertions(+), 8 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index e911dcb..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" @@ -355,7 +374,11 @@ </div> <div> <h2>涓�閿懠鍙姛鑳�</h2> - <CallButton /> + <CallButton + ref="callButton" + :phoneNumber="currentPhoneNumber" + style="display: none" + /> </div> <div> <el-tabs v-model="activeName" type="border-card"> @@ -753,10 +776,25 @@ 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: "", @@ -774,6 +812,10 @@ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, ], 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: { @@ -996,17 +1038,29 @@ // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚缃椂闂� const now = new Date(); if (value.includes("涓冨ぉ鍚�")) { - this.form.date1 = new Date(Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 7); + 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); + 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); + 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); + 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); + 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); + this.form.date1 = new Date( + Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365 + ); } }, @@ -1157,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) => { @@ -1631,6 +1708,19 @@ 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; -- Gitblit v1.9.3