From d54ac083e2992a5613f5cb22849db9742dbe9a9b Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 22 十月 2025 11:06:14 +0800
Subject: [PATCH] 问卷联调

---
 src/views/followvisit/tasklist/index.vue           |    1 
 dist (2).zip                                       |    0 
 dist.zip                                           |    0 
 dist (3).zip                                       |    0 
 src/views/outsideChainnew.vue                      |    4 
 src/views/patient/propaganda/QuestionnaireTask.vue |  242 +++++++++++++----------
 src/utils/request.js                               |    2 
 src/main.js                                        |    2 
 src/views/followvisit/record/detailpage/index.vue  |   26 ++
 src/utils/directives/preventReClick.js             |   22 ++
 src/views/outsideChainwt.vue                       |   26 +-
 src/views/patient/propaganda/particty.vue          |  226 ++++++++++++----------
 src/views/followvisit/discharge/index.vue          |    3 
 13 files changed, 329 insertions(+), 225 deletions(-)

diff --git "a/dist \0502\051.zip" "b/dist \0502\051.zip"
new file mode 100644
index 0000000..cae714b
--- /dev/null
+++ "b/dist \0502\051.zip"
Binary files differ
diff --git "a/dist \0503\051.zip" "b/dist \0503\051.zip"
new file mode 100644
index 0000000..612ef04
--- /dev/null
+++ "b/dist \0503\051.zip"
Binary files differ
diff --git a/dist.zip b/dist.zip
index 829d089..28a9580 100644
--- a/dist.zip
+++ b/dist.zip
Binary files differ
diff --git a/src/main.js b/src/main.js
index e523ac8..1207e98 100644
--- a/src/main.js
+++ b/src/main.js
@@ -25,6 +25,8 @@
 import { codemirror } from "vue-codemirror";
 import "@/utils/cm-setting.js";
 Vue.component("codemirror", codemirror);
+import preventReClick from '@/utils/directives/preventReClick';
+Vue.use(preventReClick);
 
 import { Quill } from "vue-quill-editor";
 window.Quill = Quill;
diff --git a/src/utils/directives/preventReClick.js b/src/utils/directives/preventReClick.js
new file mode 100644
index 0000000..c9ac527
--- /dev/null
+++ b/src/utils/directives/preventReClick.js
@@ -0,0 +1,22 @@
+export default {
+  install(Vue) {
+    Vue.directive('preventReClick', {
+      inserted(el, binding) {
+        el.addEventListener('click', () => {
+          if (!el.disabled) {
+            el.disabled = true;
+            // 鍙互娣诲姞绂佺敤鏍峰紡锛堝彲閫夛級
+            el.style.pointerEvents = 'none';
+            el.style.opacity = '0.6';
+            // 璁惧畾鎭㈠鏃堕棿锛宐inding.value 鏄寚浠や紶鍏ョ殑鍊硷紙濡傦細v-prevent-reclick="2000"锛�
+            setTimeout(() => {
+              el.disabled = false;
+              el.style.pointerEvents = 'all';
+              el.style.opacity = '1';
+            }, binding.value || 1500); // 榛樿1.5绉�
+          }
+        });
+      }
+    });
+  }
+};
diff --git a/src/utils/request.js b/src/utils/request.js
index 71723d0..b07e281 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -110,7 +110,7 @@
           }
         )
           .then(() => {
-
+          this.$router.replace("/login");
           })
           .catch(() => {
             isRelogin.show = false;
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index bc617b4..64383b4 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1187,7 +1187,8 @@
         qystatus: "",
         btstatus: "",
       },
-      endOut: 1,
+      // endOut: 1,
+      endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
       endOuts: [
         {
           value: 0,
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 9fd2622..fa48d8a 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -314,6 +314,7 @@
                               :class="items.isabnormal ? 'red-star' : ''"
                               :key="indexs"
                               :label="items.optioncontent"
+                               @click.native.prevent="handleRadioToggle(item, items.optioncontent)"
                               >{{ items.optioncontent }}</el-radio
                             >
                           </el-radio-group>
@@ -436,6 +437,7 @@
                               v-for="(items, index) in item.scriptResult"
                               :key="items"
                               :label="items"
+                               @click.native.prevent="handleRadioToggle(item, items.optioncontent)"
                               >{{ items }}</el-radio
                             >
                           </el-radio-group>
@@ -1022,7 +1024,10 @@
         :visible.sync="CaldialogVisible"
         width="60%"
       >
-        <CallCenterLs ref="callCenterModal" :initial-phone="currentPhoneNumber" />
+        <CallCenterLs
+          ref="callCenterModal"
+          :initial-phone="currentPhoneNumber"
+        />
       </el-dialog>
     </div>
   </div>
@@ -1692,7 +1697,7 @@
       // 鍛煎彨鍒ゆ柇
       if (this.orgname == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�") {
         this.CaldialogVisible = true;
-        return
+        return;
       }
 
       this.callType = type;
@@ -2022,6 +2027,23 @@
       }
       this.$forceUpdate();
     },
+    // 鏂板鐨勫垏鎹㈤�変腑/鍙栨秷閫変腑鏂规硶
+    handleRadioToggle(questionItem, optionValue) {
+      // 濡傛灉鐐瑰嚮鐨勬槸褰撳墠宸查�変腑鐨勯�夐」锛屽垯鍙栨秷閫変腑
+      if (questionItem.scriptResult === optionValue) {
+        questionItem.scriptResult = ""; // 娓呯┖閫変腑鍊�
+        // 鍚屾椂閲嶇疆涓庨�夐」鐩稿叧鐨勭姸鎬�
+        questionItem.isabnormal = false;
+        questionItem.showAppendInput = false;
+        // 娉ㄦ剰锛氬彇娑堥�変腑鏃讹紝鎴戜滑閫氬父涓嶅笇鏈涜Е鍙戦鐩烦杞�昏緫锛屾墍浠ョ洿鎺ヨ繑鍥�
+        // 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屾坊鍔犲彇娑堥�変腑鍚庣殑鐗瑰畾閫昏緫锛屼緥濡傞噸缃鐩簭鍒�
+      } else {
+        // 濡傛灉鐐瑰嚮鐨勬槸鏈�変腑鐨勯�夐」锛屽垯閫氳繃鏇存敼缁戝畾鍊兼潵瑙﹀彂鍘熷鐨� handleOptionChange 鏂规硶
+        // 杩欓噷鍙渶瑕佹敼鍙� v-model 缁戝畾鐨勫�硷紝change浜嬩欢浼氳嚜鍔ㄨЕ鍙�
+        questionItem.scriptResult = optionValue;
+        // 鍚庣画鐨勮烦杞瓑澶嶆潅閫昏緫浼氬湪 handleOptionChange 涓甯告墽琛�
+      }
+    },
     // 鍦╩ethods閮ㄥ垎锛屼慨鏀筯andleOptionChange鏂规硶:
     handleOptionChange(selectedOption, questionIndex, options, a) {
       if (document.activeElement) {
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 2f14227..44eeed6 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -650,6 +650,7 @@
     this.tasktopic = this.$route.query.tasktopic
       ? this.$route.query.tasktopic
       : this.tasktopic;
+    this.tasktopic = Number(this.tasktopic);
     this.getList();
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
diff --git a/src/views/outsideChainnew.vue b/src/views/outsideChainnew.vue
index 463272e..ca9eee4 100644
--- a/src/views/outsideChainnew.vue
+++ b/src/views/outsideChainnew.vue
@@ -414,7 +414,7 @@
         param1: this.taskid,
         param2: this.patid,
         type: this.type,
-        ivrLibaTemplateScriptVOList: [],
+        ivrTaskaTemplateScriptVOList: [],
       };
       const arr = structuredClone(this.questionList);
       console.log(arr, "srr");
@@ -439,7 +439,7 @@
           item.questionResult = JSON.stringify(item.questionResult);
         }
       });
-      form.ivrLibaTemplateScriptVOList = arr;
+      form.ivrTaskaTemplateScriptVOList = arr;
       Cachequestionnaire(form).then((res) => {
         if (res.code == 200) {
           if (subm) {
diff --git a/src/views/outsideChainwt.vue b/src/views/outsideChainwt.vue
index a8da2c1..4f90ecc 100644
--- a/src/views/outsideChainwt.vue
+++ b/src/views/outsideChainwt.vue
@@ -35,7 +35,7 @@
               >
                 <el-radio
                   border
-                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
+                  v-for="(items, index) in item.svyTaskTemplateTargetoptions"
                   :class="
                     items.isabnormal && item.scriptResult == items.optioncontent
                       ? 'red-star'
@@ -68,7 +68,7 @@
                 <el-checkbox
                   border
                   @change="$forceUpdate()"
-                  v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
+                  v-for="(items, indexs) in item.svyTaskTemplateTargetoptions"
                   :key="indexs"
                   :label="items.optioncontent"
                 >
@@ -165,7 +165,7 @@
         //   scriptType: 1,
         //   scriptContent: "鎮ㄧ殑骞撮緞鑼冨洿鏄紵",
         //   scriptResult: null,
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "18-25", value: "18-25", isabnormal: true },
         //     { optioncontent: "26-35", value: "26-35" },
         //     { optioncontent: "36-45", value: "36-45" },
@@ -178,7 +178,7 @@
         //   scriptType: 1,
         //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
         //   scriptResult: null,
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "瀛︾敓", value: "student" },
         //     { optioncontent: "鏁欏笀", value: "teacher" },
         //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
@@ -191,7 +191,7 @@
         //   scriptType: 2,
         //   scriptContent: "鎮ㄦ劅鍏磋叮鐨勬椿鍔ㄦ湁鍝簺锛�",
         //   scriptResult: [],
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "鏃呮父", value: "travel", isabnormal: true },
         //     { optioncontent: "闃呰", value: "reading", isabnormal: true },
         //     { optioncontent: "杩愬姩", value: "sports", isabnormal: true },
@@ -204,7 +204,7 @@
         //   scriptType: 1,
         //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
         //   scriptResult: null,
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "瀛︾敓", value: "student" },
         //     { optioncontent: "鏁欏笀", value: "teacher" },
         //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
@@ -217,7 +217,7 @@
         //   scriptType: 1,
         //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
         //   scriptResult: null,
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "瀛︾敓", value: "student" },
         //     { optioncontent: "鏁欏笀", value: "teacher" },
         //     { optioncontent: "宸ョ▼甯�", value: "engineer", isabnormal: true },
@@ -230,7 +230,7 @@
         //   scriptType: 1,
         //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
         //   scriptResult: null,
-        //   svyLibTemplateTargetoptions: [
+        //   svyTaskTemplateTargetoptions: [
         //     { optioncontent: "瀛︾敓", value: "student" },
         //     { optioncontent: "鏁欏笀", value: "teacher" },
         //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
@@ -375,12 +375,12 @@
       let form = {
         param1: this.taskid,
         param2: this.patid,
-        svyLibTemplateScriptVOS: [],
+        svyTaskTemplateScriptVOS: [],
       };
       const arr = structuredClone(this.questionList);
       console.log(arr,'srr')
       arr.forEach((item, index) => {
-        var obj = item.svyLibTemplateTargetoptions.find(
+        var obj = item.svyTaskTemplateTargetoptions.find(
           (items) => items.optioncontent == item.scriptResult
         );
         if (obj) {
@@ -399,7 +399,7 @@
           item.scriptResult = JSON.stringify(item.scriptResult);
         }
       });
-      form.svyLibTemplateScriptVOS = arr;
+      form.svyTaskTemplateScriptVOS = arr;
       Cachequestionnaire(form).then((res) => {
         if (res.code == 200) {
           if (subm) {
@@ -411,7 +411,7 @@
     // 澶勭悊鍗曢�夐�夐」
     handleOptionChange(selectedvalue, index, arr) {
       // 鏌ユ壘閫変腑鐨勯�夐」瀵硅薄
-      const selectedOption = arr.svyLibTemplateTargetoptions.find(
+      const selectedOption = arr.svyTaskTemplateTargetoptions.find(
         (option) => option.optioncontent == selectedvalue
       );
       if (selectedOption) {
@@ -426,7 +426,7 @@
       // 锟斤拷鍔犲垎鏁�
       let score = 0;
       selectedvalues.forEach((value) => {
-        const selectedOption = arr.svyLibTemplateTargetoptions.find(
+        const selectedOption = arr.svyTaskTemplateTargetoptions.find(
           (option) => option.optioncontent == value
         );
         if (selectedOption) {
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index f9d9d08..f708fc3 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -445,10 +445,13 @@
         <el-button type="primary" @click="nextstep('ruleForm')">{{
           quote ? "绔嬪嵆鍒涘缓" : "娲惧彂鎮h�呴厤缃�"
         }}</el-button>
-        <el-button type="success" @click="submitForm('ruleForm')">{{
-          quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆"
-        }}</el-button>
-        <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+        <el-button
+          :loading="submitLoading"
+          type="success"
+          @click="submitForm('ruleForm')"
+          >{{ quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆" }}</el-button
+        >
+        <!-- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> -->
       </div>
       <!-- 浠诲姟璇︽儏 -->
       <div v-if="Editprogress == 2">
@@ -529,10 +532,13 @@
           </div>
         </div>
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
-        <el-button type="success" @click="submitForm('ruleForm')">{{
-          quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆"
-        }}</el-button>
-        <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+        <el-button
+          :loading="submitLoading"
+          type="success"
+          @click="submitForm('ruleForm')"
+          >{{ quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆" }}</el-button
+        >
+        <!-- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> -->
       </div>
     </div>
     <!-- 娣诲姞鎮h�� -->
@@ -940,6 +946,7 @@
       previewid: "", //浠诲姟妯℃澘浼犻�抜d
       libName: "",
       templateor: false,
+      submitLoading: false, // 鎺у埗鎸夐挳鍔犺浇鐘舵��
       objyl: {},
       overallCase: [], //閫夋嫨鎮h�呮��
       allpids: [],
@@ -984,6 +991,7 @@
         { label: "韬唤璇�", width: "200", prop: "idcardno" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鐢佃瘽", width: "180", prop: "telcode" },
         { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
         { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
         { label: "绉戝", width: "240", prop: "dept" },
@@ -997,6 +1005,7 @@
         { label: "韬唤璇�", width: "200", prop: "sfzh" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鐢佃瘽", width: "180", prop: "telcode" },
         { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
         { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
         { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
@@ -1422,107 +1431,126 @@
     },
     // 淇濆瓨
     submitForm(formName) {
-      if (this.time4 && this.form.sendType == 3)
-        this.form.showTimeMorn = this.time4;
-      this.form.sendTimeslot = [
-        {
-          begantime: this.time4,
-          endtime: "",
-          xh: 1,
-        },
-      ];
-      if (this.form.appltype == 1) {
-        this.leavehospitaldistrictcodes = [];
-        this.operationcodes = [];
-        this.illnesscodes = [];
-      } else if (this.form.appltype == 2) {
-        this.deptcodesWards = [];
-        this.operationcodes = [];
-        this.illnesscodes = [];
-      } else if (this.form.appltype == 3) {
-        this.deptcodesWards = [];
-        this.leavehospitaldistrictcodes = [];
-        this.operationcodes = [];
-      } else if (this.form.appltype == 4) {
-        this.deptcodesWards = [];
-        this.illnesscodes = [];
-        this.leavehospitaldistrictcodes = [];
-      }
-      if (this.checkList) {
-        this.form.preachform = this.checkList.join(",");
-        this.form.preachformList = this.selectedOrder;
-      } else {
-        this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+      console.log(this.submitLoading);
+
+      if (this.submitLoading) {
         return;
       }
-      console.log(this.operationcodes[0]);
-      console.log(this.operationcodes);
+      // 绗簩姝ワ細寮�鍚姞杞界姸鎬侊紝绂佺敤鎸夐挳
+      this.submitLoading = true;
+      console.log(this.submitLoading);
 
-      if (
-        this.deptcodesWards[0] ||
-        this.leavehospitaldistrictcodes[0] ||
-        this.diagglist[0] ||
-        this.operationcodes[0] ||
-        this.form.longTask == 2 ||
-        this.serviceType == 14
-      ) {
-      } else {
-        this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
-        return;
-      }
-      //鏆傚仠浠诲姟鎮h�呴檺鍒�
-      // if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
-      //   this.$modal.msgError("璇烽�夋嫨鐥呬汉");
-      //   return;
-      // }
-
-      if (!this.form.templatename && !this.templateor) {
-        this.$modal.msgError("鏈�夋嫨妯℃澘");
-        return;
-      }
-
-      if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) {
-      } else if (
-        (this.form.sendType == 3 && this.time4) ||
-        this.form.longTask
-      ) {
-      } else {
-        return this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
-      }
-      const filteredArray = this.variableList.filter(
-        (item) =>
-          item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
-      );
-      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
-      if (this.form.taskid) {
-        this.form.isoperation = 2;
-      } else {
-        this.form.isoperation = 1;
-      }
-      if (!this.form.type) {
-        this.form.type = this.$route.query.type;
-      }
-      this.form.serviceType = this.serviceType;
-      this.form.deptcode = this.deptcodesWards.join(",");
-      this.form.leavehospitaldistrictcode =
-        this.leavehospitaldistrictcodes.join(",");
-      this.form.opcode = this.operationcodes.join(",");
-      this.form.icd10code = this.diagglist
-        .map((item) => item.icdcode)
-        .join(",");
-      Editsingletask(this.form).then((res) => {
-        if (res.code == 200) {
-          if (this.form.taskid) {
-            this.$modal.msgSuccess("淇敼鎴愬姛");
-          } else {
-            this.$modal.msgSuccess("鏂板鎴愬姛");
-          }
-          this.$router.push({
-            path: "/followvisit/tasklist",
-            query: { tasktopic: this.form.serviceType },
-          });
+      try {
+        if (this.time4 && this.form.sendType == 3)
+          this.form.showTimeMorn = this.time4;
+        this.form.sendTimeslot = [
+          {
+            begantime: this.time4,
+            endtime: "",
+            xh: 1,
+          },
+        ];
+        if (this.form.appltype == 1) {
+          this.leavehospitaldistrictcodes = [];
+          this.operationcodes = [];
+          this.illnesscodes = [];
+        } else if (this.form.appltype == 2) {
+          this.deptcodesWards = [];
+          this.operationcodes = [];
+          this.illnesscodes = [];
+        } else if (this.form.appltype == 3) {
+          this.deptcodesWards = [];
+          this.leavehospitaldistrictcodes = [];
+          this.operationcodes = [];
+        } else if (this.form.appltype == 4) {
+          this.deptcodesWards = [];
+          this.illnesscodes = [];
+          this.leavehospitaldistrictcodes = [];
         }
-      });
+        if (this.checkList) {
+          this.form.preachform = this.checkList.join(",");
+          this.form.preachformList = this.selectedOrder;
+        } else {
+          this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+          return;
+        }
+        console.log(this.operationcodes[0]);
+        console.log(this.operationcodes);
+
+        if (
+          this.deptcodesWards[0] ||
+          this.leavehospitaldistrictcodes[0] ||
+          this.diagglist[0] ||
+          this.operationcodes[0] ||
+          this.form.longTask == 2 ||
+          this.serviceType == 3
+        ) {
+        } else {
+          this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
+          return;
+        }
+        //鏆傚仠浠诲姟鎮h�呴檺鍒�
+        // if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
+        //   this.$modal.msgError("璇烽�夋嫨鐥呬汉");
+        //   return;
+        // }
+
+        if (!this.form.templatename && !this.templateor) {
+          this.$modal.msgError("鏈�夋嫨妯℃澘");
+          return;
+        }
+
+        if (
+          (this.form.sendType == 1 && this.time1) ||
+          this.form.sendType == 2
+        ) {
+        } else if (
+          (this.form.sendType == 3 && this.time4) ||
+          this.form.longTask
+        ) {
+        } else {
+          return this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
+        }
+        const filteredArray = this.variableList.filter(
+          (item) =>
+            item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
+        );
+        this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
+        if (this.form.taskid) {
+          this.form.isoperation = 2;
+        } else {
+          this.form.isoperation = 1;
+        }
+        if (!this.form.type) {
+          this.form.type = this.$route.query.type;
+        }
+        this.form.serviceType = this.serviceType;
+        this.form.deptcode = this.deptcodesWards.join(",");
+        this.form.leavehospitaldistrictcode =
+          this.leavehospitaldistrictcodes.join(",");
+        this.form.opcode = this.operationcodes.join(",");
+        this.form.icd10code = this.diagglist
+          .map((item) => item.icdcode)
+          .join(",");
+        Editsingletask(this.form).then((res) => {
+          if (res.code == 200) {
+            if (this.form.taskid) {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+            } else {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+            }
+            this.$router.push({
+              path: "/followvisit/tasklist",
+              query: { tasktopic: this.form.serviceType },
+            });
+            this.submitLoading = false;
+          }
+        });
+      } catch (error) {
+        this.submitLoading = false;
+      } finally {
+        // 绗洓姝ワ細鏃犺鎴愬姛鎴栧け璐ワ紝鏈�缁堥兘鍏抽棴鍔犺浇鐘舵��
+      }
     },
 
     // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
@@ -1694,6 +1722,7 @@
           { label: "韬唤璇�", width: "200", prop: "idcardno" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },
@@ -1708,6 +1737,7 @@
           { label: "韬唤璇�", width: "200", prop: "idcardno" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },
@@ -1722,6 +1752,7 @@
           { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },
@@ -1881,6 +1912,7 @@
         { label: "韬唤璇�", width: "200", prop: "idcardno" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鐢佃瘽", width: "180", prop: "telcode" },
         { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
       ];
       this.patientqueryParams.pageSize = 1000;
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 40cb5fd..cdb2d0d 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -442,7 +442,7 @@
         <el-button type="success" @click="nextstep('ruleForm')">{{
           quote ? "绔嬪嵆鍒涘缓" : "浠诲姟璇︽儏閰嶇疆"
         }}</el-button>
-        <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+        <!-- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> -->
       </div>
       <!-- 浠诲姟璇︽儏 -->
       <div v-if="Editprogress == 2">
@@ -523,10 +523,13 @@
           </div>
         </div>
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
-        <el-button type="success" @click="submitForm('11')">{{
-          quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆"
-        }}</el-button>
-        <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+        <el-button
+          :loading="submitLoading"
+          type="success"
+          @click="submitForm('11')"
+          >{{ quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆" }}</el-button
+        >
+        <!-- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> -->
       </div>
     </div>
     <!-- 娣诲姞鎮h�� -->
@@ -934,6 +937,7 @@
       libName: "",
       username: "",
       templateor: false,
+      submitLoading: false, // 鎺у埗鎸夐挳鍔犺浇鐘舵��
       objyl: {},
       overallCase: [], //閫夋嫨鎮h�呮��
       allpids: [],
@@ -981,6 +985,7 @@
         { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鐢佃瘽", width: "180", prop: "telcode" },
         { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
         { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
         { label: "绉戝", width: "240", prop: "dept" },
@@ -994,6 +999,7 @@
         { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鐢佃瘽", width: "180", prop: "telcode" },
         { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
         { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
         { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
@@ -1435,105 +1441,120 @@
     },
     // 淇濆瓨
     submitForm(type) {
-      if (this.templateor && type) this.templateor = false;
-      if (this.time4 && this.form.sendType == 3)
-        this.form.showTimeMorn = this.time4;
-      this.form.sendTimeslot = [
-        {
-          begantime: this.time4,
-          endtime: "",
-          xh: 1,
-        },
-      ];
-      if (this.form.appltype == 1) {
-        this.leavehospitaldistrictcodes = [];
-        this.operationcodes = [];
-        this.illnesscodes = [];
-      } else if (this.form.appltype == 2) {
-        this.deptcodesWards = [];
-        this.operationcodes = [];
-        this.illnesscodes = [];
-      } else if (this.form.appltype == 3) {
-        this.deptcodesWards = [];
-        this.leavehospitaldistrictcodes = [];
-        this.operationcodes = [];
-      } else if (this.form.appltype == 4) {
-        this.deptcodesWards = [];
-        this.illnesscodes = [];
-        this.leavehospitaldistrictcodes = [];
-      }
-      if (this.checkList) {
-        this.form.preachform = this.checkList.join(",");
-        this.form.preachformList = this.selectedOrder;
-      } else {
-        this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+      if (this.submitLoading) {
         return;
       }
-
-      if (
-        this.deptcodesWards[0] ||
-        this.leavehospitaldistrictcodes[0] ||
-        this.diagglist[0] ||
-        this.operationcodes[0] ||
-        this.form.longTask == 2 ||
-        this.serviceType == 14
-      ) {
-      } else {
-        this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
-        return;
-      }
-      // if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
-      //   this.$modal.msgError("璇烽�夋嫨鐥呬汉");
-      //   return;
-      // }
-
-      if (!this.form.templatename && !this.templateor) {
-        this.$modal.msgError("鏈�夋嫨妯℃澘");
-        return;
-      }
-
-      if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) {
-      } else if (
-        (this.form.sendType == 3 && this.time4) ||
-        this.form.longTask
-      ) {
-      } else {
-        return this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
-      }
-      const filteredArray = this.variableList.filter(
-        (item) =>
-          item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
-      );
-      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
-      if (this.form.taskid) {
-        this.form.isoperation = 2;
-      } else {
-        this.form.isoperation = 1;
-      }
-      if (!this.form.type) {
-        this.form.type = this.$route.query.type;
-      }
-      this.form.serviceType = this.serviceType;
-      this.form.deptcode = this.deptcodesWards.join(",");
-      this.form.leavehospitaldistrictcode =
-        this.leavehospitaldistrictcodes.join(",");
-      this.form.opcode = this.operationcodes.join(",");
-      this.form.icd10code = this.diagglist
-        .map((item) => item.icdcode)
-        .join(",");
-      Editsingletask(this.form).then((res) => {
-        if (res.code == 200) {
-          if (this.form.taskid) {
-            this.$modal.msgSuccess("淇敼鎴愬姛");
-          } else {
-            this.$modal.msgSuccess("鏂板鎴愬姛");
-          }
-          this.$router.push({
-            path: "/followvisit/tasklist",
-            query: { tasktopic: this.form.serviceType },
-          });
+      // 绗簩姝ワ細寮�鍚姞杞界姸鎬侊紝绂佺敤鎸夐挳
+      this.submitLoading = true;
+      try {
+        if (this.templateor && type) this.templateor = false;
+        if (this.time4 && this.form.sendType == 3)
+          this.form.showTimeMorn = this.time4;
+        this.form.sendTimeslot = [
+          {
+            begantime: this.time4,
+            endtime: "",
+            xh: 1,
+          },
+        ];
+        if (this.form.appltype == 1) {
+          this.leavehospitaldistrictcodes = [];
+          this.operationcodes = [];
+          this.illnesscodes = [];
+        } else if (this.form.appltype == 2) {
+          this.deptcodesWards = [];
+          this.operationcodes = [];
+          this.illnesscodes = [];
+        } else if (this.form.appltype == 3) {
+          this.deptcodesWards = [];
+          this.leavehospitaldistrictcodes = [];
+          this.operationcodes = [];
+        } else if (this.form.appltype == 4) {
+          this.deptcodesWards = [];
+          this.illnesscodes = [];
+          this.leavehospitaldistrictcodes = [];
         }
-      });
+        if (this.checkList) {
+          this.form.preachform = this.checkList.join(",");
+          this.form.preachformList = this.selectedOrder;
+        } else {
+          this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+          return;
+        }
+
+        if (
+          this.deptcodesWards[0] ||
+          this.leavehospitaldistrictcodes[0] ||
+          this.diagglist[0] ||
+          this.operationcodes[0] ||
+          this.form.longTask == 2 ||
+          this.serviceType == 3
+        ) {
+        } else {
+          this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
+          return;
+        }
+        // if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
+        //   this.$modal.msgError("璇烽�夋嫨鐥呬汉");
+        //   return;
+        // }
+
+        if (!this.form.templatename && !this.templateor) {
+          this.$modal.msgError("鏈�夋嫨妯℃澘");
+          return;
+        }
+
+        if (
+          (this.form.sendType == 1 && this.time1) ||
+          this.form.sendType == 2
+        ) {
+        } else if (
+          (this.form.sendType == 3 && this.time4) ||
+          this.form.longTask
+        ) {
+        } else {
+          return this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
+        }
+        const filteredArray = this.variableList.filter(
+          (item) =>
+            item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
+        );
+        this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
+        if (this.form.taskid) {
+          this.form.isoperation = 2;
+        } else {
+          this.form.isoperation = 1;
+        }
+        if (!this.form.type) {
+          this.form.type = this.$route.query.type;
+        }
+        this.form.serviceType = this.serviceType;
+        this.form.deptcode = this.deptcodesWards.join(",");
+        this.form.leavehospitaldistrictcode =
+          this.leavehospitaldistrictcodes.join(",");
+        this.form.opcode = this.operationcodes.join(",");
+        this.form.icd10code = this.diagglist
+          .map((item) => item.icdcode)
+          .join(",");
+        Editsingletask(this.form).then((res) => {
+          if (res.code == 200) {
+            if (this.form.taskid) {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+            } else {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+            }
+            this.submitLoading = false;
+            this.$router.push({
+              path: "/followvisit/tasklist",
+              query: { tasktopic: this.form.serviceType },
+            });
+          }
+        });
+      } catch (error) {
+        this.submitLoading = false;
+      } finally {
+        // 绗洓姝ワ細鏃犺鎴愬姛鎴栧け璐ワ紝鏈�缁堥兘鍏抽棴鍔犺浇鐘舵��
+      }
     },
 
     // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
@@ -1645,6 +1666,7 @@
           { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },
@@ -1659,6 +1681,7 @@
           { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },
@@ -1673,6 +1696,7 @@
           { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鐢佃瘽", width: "180", prop: "telcode" },
           { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
           { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
           { label: "鍖荤敓", width: "", prop: "drname" },

--
Gitblit v1.9.3