From 45f9797c4e878d5f87a8d04d5ee07af8d39b5567 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 10 六月 2025 11:26:26 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  388 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 327 insertions(+), 61 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 286c174..0abf723 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -32,7 +32,11 @@
         </div>
       </div>
       <div>
-        <el-table :data="logsheetlist" :row-class-name="tableRowClassName" style="width: 100%">
+        <el-table
+          :data="logsheetlist"
+          :row-class-name="tableRowClassName"
+          style="width: 100%"
+        >
           <el-table-column
             prop="sendname"
             align="center"
@@ -372,7 +376,7 @@
                       : 'scriptTopic-dev'
                   "
                   :key="index"
-                  v-if="item.scriptType == 1"
+                  v-if="item.scriptType == 1 && !item.astrict"
                 >
                   <div class="dev-text">
                     {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
@@ -380,14 +384,20 @@
                   <div class="dev-xx">
                     <el-radio-group
                       v-model="item.scriptResult"
-                      @change="handleOptionChange($event, index, item)"
+                      @change="
+                        handleOptionChange(
+                          $event,
+                          index,
+                          item.svyLibTemplateTargetoptions
+                        )
+                      "
                     >
                       <el-radio
                         v-for="(
-                          items, index
+                          items, indexs
                         ) in item.svyLibTemplateTargetoptions"
                         :class="items.isabnormal ? 'red-star' : ''"
-                        :key="index"
+                        :key="indexs"
                         :label="items.optioncontent"
                         >{{ items.optioncontent }}</el-radio
                       >
@@ -405,7 +415,7 @@
                       : 'scriptTopic-dev'
                   "
                   :key="index"
-                  v-if="item.scriptType == 2"
+                  v-if="item.scriptType == 2 && !item.astrict"
                 >
                   <div class="dev-text">
                     {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
@@ -436,7 +446,7 @@
                 <div
                   class="scriptTopic-dev"
                   :key="index"
-                  v-if="item.scriptType == 4"
+                  v-if="item.scriptType == 4 && !item.astrict"
                 >
                   <div class="dev-text">
                     {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span>
@@ -612,26 +622,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>
@@ -676,19 +755,17 @@
       activeName: "wj",
       voice: "",
       templateid: "",
-      again:'',
+      again: "",
       zcform: {},
       form: {},
       tableDatatop: [], //棰樼洰琛�
       voiceDatatop: [], //棰樼洰琛�
       dynamicTags: [],
       zcrules: {
-        date1: [
+        resource: [
           { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
         ],
-        resource: [
-          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
-        ],
+        date1: [{ required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }],
       },
       url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
       postData: {
@@ -725,33 +802,88 @@
         },
       },
       pickerOptions: {
-          shortcuts: [{
-            text: '涓冨ぉ鍚�',
+        shortcuts: [
+          {
+            text: "涓冨ぉ鍚�",
             onClick(picker) {
               const date = new Date();
               date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
-              picker.$emit('pick', date);
-            }
-          }, {
-            text: '15澶╁悗',
+              picker.$emit("pick", date);
+            },
+          },
+          {
+            text: "15澶╁悗",
             onClick(picker) {
               const date = new Date();
-              date.setTime(date.getTime() + 3600 * 1000 * 24* 15);
-              picker.$emit('pick', date);
-            }
-          }, {
-            text: '30澶╁悗',
+              date.setTime(date.getTime() + 3600 * 1000 * 24 * 15);
+              picker.$emit("pick", date);
+            },
+          },
+          {
+            text: "涓�涓湀鍚�",
             onClick(picker) {
               const date = new Date();
               date.setTime(date.getTime() + 3600 * 1000 * 24 * 30);
-              picker.$emit('pick', date);
-            }
-          }]
+              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,
       Voicetype: 0, //鏄惁涓鸿闊虫湇鍔�
+      visitCount: null,
       logsheetlist: [],
       topicobj: {},
       sendname: null,
@@ -769,6 +901,7 @@
     this.patid = this.$route.query.patid;
     this.again = this.$route.query.again;
     this.Voicetype = this.$route.query.Voicetype;
+    this.visitCount = this.$route.query.visitCount;
     this.serviceType = this.$route.query.serviceType;
 
     this.getTaskservelist();
@@ -784,17 +917,25 @@
         isFinish: false,
       }).then((res) => {
         if (res.code === 200) {
-          if (this.again&&res.data.upScriptResult) {
-          this.tableDatatop = res.data.upScriptResult;
-          }else{
-            this.tableDatatop = res.data.scriptResult;
+          // 閽堝鍐嶆闅忚鏈嶅姟杩涜鍒犻櫎缁撴灉璧嬪��
+          if (this.again && res.data.upScriptResult) {
+            res.data.upScriptResult.forEach((itemA) => {
+              const itemB = res.data.scriptResult.find(
+                (item) => item.scriptContent === itemA.scriptContent
+              );
+              if (itemB) {
+                itemB.scriptResult = itemA.scriptResult;
+              }
+            });
           }
+          this.tableDatatop = res.data.scriptResult;
+
           this.tableDatatop.forEach((item) => {
             if (item.scriptType == 2) item.scriptResult = [];
-            if (item.scriptResult && item.scriptType != 2) {
+            if (item.scriptResultId && item.scriptType != 2) {
               item.isoption = 3;
               item.scriptResult = item.scriptResult;
-            } else if (item.scriptResult && item.scriptType == 2) {
+            } else if (item.scriptResultId && item.scriptType == 2) {
               item.scriptResult = item.scriptResult.split("&");
               item.isoption = 3;
             }
@@ -842,6 +983,25 @@
         }
       });
     },
+    // 鍐嶆闅忚鏃堕棿閫夊彇
+    visitChange(value) {
+      // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚缃椂闂�
+      const now = new Date();
+      if (value.includes("涓冨ぉ鍚�")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 7);
+      } else if (value.includes("15澶╁悗")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 15);
+      } else if (value.includes("涓�涓湀鍚�")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 30);
+      } else if (value.includes("涓変釜鏈堝悗")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 90);
+      } else if (value.includes("鍏釜鏈堝悗")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 180);
+      } else if (value.includes("涓�骞村悗")) {
+        this.form.date1 = new Date(now.getTime() + 3600 * 1000 * 24 * 365);
+      }
+    },
+
     // 鑾峰彇璇煶鏁版嵁
     getPersonVoices(id) {
       let obj = {
@@ -945,13 +1105,45 @@
             .confirm(
               '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
                 this.logsheetlist[0].sendname +
-                '"鍐嶆闅忚锛�'
+                '"鍐嶆闅忚锛�',
+              "纭",
+              {
+                confirmButtonText: "纭畾",
+                cancelButtonText: "鍙栨秷",
+                showCancelButton: true,
+                dangerouslyUseHTMLString: true,
+                confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+                cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+              }
             )
             .then(() => {
               document.querySelector("#app").scrollTo(0, 0);
+              this.formtidy();
               this.dialogFormVisible = true;
             })
-            .catch(() => {});
+            .catch(() => {
+              if (this.form.serviceType == 13) {
+                if (this.visitCount) {
+                  this.$router.push({
+                    path: "/logisticsservice/zbAgain",
+                  });
+                } else {
+                  this.$router.push({
+                    path: "/logisticsservice/record",
+                  });
+                }
+              } else if (form.serviceType == 2) {
+                if (this.visitCount) {
+                  this.$router.push({
+                    path: "/followvisit/again",
+                  });
+                } else {
+                  this.$router.push({
+                    path: "/followvisit/discharge",
+                  });
+                }
+              }
+            });
         })
         .catch((error) => {
           // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲�
@@ -983,17 +1175,56 @@
           this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
           this.$modal
             .confirm(
-              '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + this.userform.name + '"鍐嶆闅忚锛�'
+              '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
+                this.userform.name +
+                '"鍐嶆闅忚锛�',
+              "纭",
+              {
+                confirmButtonText: "纭畾",
+                cancelButtonText: "鍙栨秷",
+                showCancelButton: true,
+                dangerouslyUseHTMLString: true,
+                confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+                cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+              }
             )
             .then(() => {
               document.querySelector("#app").scrollTo(0, 0);
+              this.formtidy();
               this.dialogFormVisible = true;
             })
-            .catch(() => {});
+            .catch(() => {
+              if (this.form.serviceType == 13) {
+                if (this.visitCount) {
+                  this.$router.push({
+                    path: "/logisticsservice/zbAgain",
+                  });
+                } else {
+                  this.$router.push({
+                    path: "/logisticsservice/record",
+                  });
+                }
+              } else if (form.serviceType == 2) {
+                if (this.visitCount) {
+                  this.$router.push({
+                    path: "/followvisit/again",
+                  });
+                } else {
+                  this.$router.push({
+                    path: "/followvisit/discharge",
+                  });
+                }
+              }
+            });
         }
       });
     },
-
+    // 鍐嶆闅忚鏁版嵁鏇存浛
+    formtidy() {
+      this.form.visitType2 = this.form.visitType;
+      this.form.date2 = this.form.longSendTime;
+      this.form.remark2 = this.form.remark;
+    },
     // 鑾峰彇鎮h�呰褰�
     getTaskservelist(id) {
       if (id) {
@@ -1007,7 +1238,9 @@
         subId: id,
       }).then((res) => {
         if (res.code == 200) {
-          this.form = res.rows[0].serviceSubtaskList.find(item => item.id == this.id);
+          this.form = res.rows[0].serviceSubtaskList.find(
+            (item) => item.id == this.id
+          );
           this.logsheetlist = res.rows[0].serviceSubtaskList;
           this.templateid = this.logsheetlist[0].templateid;
           const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡
@@ -1050,14 +1283,15 @@
       });
     },
     Editsingletasksonyic(sendstate) {
-
       let objson = {};
       getTaskservelist({
         patid: this.patid,
         subId: this.id,
       }).then((res) => {
         if (res.code == 200) {
-          objson = res.rows[0].serviceSubtaskList.find(item => item.id == this.id);
+          objson = res.rows[0].serviceSubtaskList.find(
+            (item) => item.id == this.id
+          );
           objson.remark = this.form.remark;
           if (sendstate) objson.sendstate = sendstate;
           Editsingletaskson(objson).then((res) => {
@@ -1087,6 +1321,7 @@
     sendAgain() {
       document.querySelector("#app").scrollTo(0, 0);
       // scrollTo(0, 0)
+      this.formtidy();
       this.dialogFormVisible = true;
     },
     // 鏌ョ湅璇︽儏
@@ -1108,8 +1343,18 @@
         .catch(() => {});
     },
     handleOptionChange(a, b, c) {
-console.log(a);
-
+      const result = c.find((item) => item.optioncontent == a);
+      if (result.nextQuestion == 0) {
+        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
+          acc.push(i > b ? { ...item, astrict: 1 } : item);
+          return acc;
+        }, []);
+      } else {
+        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
+          acc.push(i > b ? { ...item, astrict: 0 } : item);
+          return acc;
+        }, []);
+      }
       if (this.Voicetype) {
         var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find(
           (item) => item.optioncontent == a
@@ -1153,9 +1398,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;
@@ -1164,11 +1415,11 @@
               this.$modal.msgSuccess("鍒涘缓鎴愬姛");
               if (form.serviceType == 13) {
                 this.$router.push({
-                  path: "/logisticsservice/record",
+                  path: "/logisticsservice/again",
                 });
               } else if (form.serviceType == 2) {
                 this.$router.push({
-                  path: "/followvisit/discharge",
+                  path: "/logisticsservice/zbAgain",
                 });
               }
             } else {
@@ -1191,14 +1442,12 @@
 
       return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
     },
-    updateScore(a, b, c) {
-
-    },
+    updateScore(a, b, c) {},
   },
 };
 </script>
 
-<style lang="scss" scoped>
+<style lang="scss">
 .Followupdetailspage {
   margin: 10px;
 }
@@ -1369,8 +1618,25 @@
 ::v-deep.el-link.el-link--default {
   color: #02a7f0 !important;
 }
+.el-message-box__btns button:nth-child(2) {
+  margin-left: 10px;
+  background-color: #f57676;
+  border-color: #f57676;
+}
 .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