From aa06424af4ea7e67353c94cc62503d9c934cbf09 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 16 七月 2025 16:44:57 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 108 insertions(+), 10 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 0abf723..ee5da01 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">
@@ -680,7 +707,7 @@
                 allow-create
                 default-first-option
                 @change="visitChange"
-                placeholder="璇烽�夋嫨闅忚鏂瑰紡"
+                placeholder="璇烽�夋嫨闅忚鏂瑰紡(渚濆嚭闄㈡椂闂存妧璁$畻)"
               >
                 <el-option
                   v-for="item in options"
@@ -744,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: "",
@@ -766,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: {
@@ -988,17 +1038,29 @@
       // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚缃椂闂�
       const now = new Date();
       if (value.includes("涓冨ぉ鍚�")) {
-        this.form.date1 = new Date(now.getTime() + 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(now.getTime() + 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(now.getTime() + 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(now.getTime() + 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(now.getTime() + 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(now.getTime() + 3600 * 1000 * 24 * 365);
+        this.form.date1 = new Date(
+          Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365
+        );
       }
     },
 
@@ -1150,6 +1212,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) => {
         item.scriptResult = item.scriptResult.join("&");
@@ -1195,7 +1280,7 @@
             })
             .catch(() => {
               if (this.form.serviceType == 13) {
-                if (this.visitCount) {
+                if (this.visitCount!=1) {
                   this.$router.push({
                     path: "/logisticsservice/zbAgain",
                   });
@@ -1205,7 +1290,7 @@
                   });
                 }
               } else if (form.serviceType == 2) {
-                if (this.visitCount) {
+                if (this.visitCount!=1) {
                   this.$router.push({
                     path: "/followvisit/again",
                   });
@@ -1623,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