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