From 1a090a490d8fc93224a0e3ad0fd7fe16c9fe63a8 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 21 一月 2025 19:01:11 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/propaganda/QuestionnaireTask.vue |  384 +++++++++++++++++++-----------------------------------
 1 files changed, 135 insertions(+), 249 deletions(-)

diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index f8220ea..a02534f 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -70,22 +70,32 @@
                   />
                 </el-form-item>
                 <el-form-item label="鏈嶅姟褰㈠紡">
-                  <el-checkbox-group v-model="checkList">
-                    <el-checkbox
+                  <el-radio-group v-model="checkList">
+                    <el-radio
                       v-for="(item, index) in checkboxlist"
                       :key="index"
                       :label="item.value"
                     >
-                      {{ item.label }}</el-checkbox
+                      {{ item.label }}</el-radio
                     >
-                  </el-checkbox-group>
+                  </el-radio-group>
                 </el-form-item>
-                <el-form-item label="鏄惁闀挎湡" prop="longTask">
+                <el-form-item label="鎵ц鍛ㄦ湡" prop="longTask">
                   <el-radio-group v-model="form.longTask">
-                    <el-radio :label="0">鏅�氫换鍔�</el-radio>
+                    <el-radio :label="0">鑷畾涔夊懆鏈�</el-radio>
                     <el-radio :label="1">闀挎湡浠诲姟</el-radio>
                   </el-radio-group>
                 </el-form-item>
+                <el-row :gutter="20" v-if="form.longTask">
+                  <el-col :span="8">
+                    <el-form-item label="鍛ㄦ湡鏃堕棿" prop="name">
+                      <el-input
+                        v-model="form.sendDay"
+                        placeholder="榛樿5澶╁悗"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
                 <el-form-item
                   label="鎵ц璁剧疆"
                   prop="sendType"
@@ -190,9 +200,11 @@
                   <el-col :span="20"
                     ><el-form-item label="閫傜敤绉戝" prop="region">
                       <el-select
-                        v-model="form.deptcode"
+                        v-model="deptcodesWards"
+                        @remove-tag="removetag"
                         style="width: 400px"
                         size="medium"
+                        multiple
                         filterable
                         placeholder="璇烽�夋嫨绉戝"
                       >
@@ -210,25 +222,12 @@
                 <el-row>
                   <el-col :span="20"
                     ><el-form-item label="閫傜敤鐥呭尯" prop="region">
-                      <!-- <el-cascader
-                      style="width: 400px"
-                      v-model="form.leavehospitaldistrictcode"
-                      :options="topicoptions"
-                      :props="propstask"
-                      :show-all-levels="false"
-                      clearable
-                    >
-                      <template slot-scope="{ node, data }">
-                        <span>{{ data.deptName }}</span>
-                        <span v-if="!node.isLeaf">
-                          ({{ data.children.length }})
-                        </span>
-                      </template>
-                    </el-cascader> -->
                       <el-select
-                        v-model="form.leavehospitaldistrictcode"
+                        v-model="leavehospitaldistrictcodes"
                         style="width: 400px"
+                        @remove-tag="removehpsp"
                         size="medium"
+                        multiple
                         filterable
                         placeholder="璇烽�夋嫨鐥呭尯"
                       >
@@ -501,7 +500,7 @@
             />
           </el-row>
           <pagination
-            v-show="patienttotal > 0&&this.patientqueryParams.allhosp != 6"
+            v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6"
             :total="patienttotal"
             @pagination="handleAddpatient"
           />
@@ -588,90 +587,6 @@
                   <el-input v-model="objyl.svyname"></el-input>
                 </div>
               </el-form-item>
-              <el-form-item label="闂嵎鏂瑰紡" prop="suitway">
-                <el-select
-                  style="width: 400px"
-                  v-model="objyl.suitway"
-                  size="medium"
-                  multiple
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="ruleFormaa"
-                    v-for="item in mode"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select>
-              </el-form-item>
-              <el-row :gutter="20" v-if="form.longTask">
-                <el-col :span="14">
-                  <el-form-item label="闀挎湡浠诲姟" prop="longTemp">
-                    <el-radio-group v-model="objyl.longTemp">
-                      <el-radio
-                        v-for="(item, index) in longtype"
-                        :label="item.value"
-                        >{{ item.label }}</el-radio
-                      >
-                    </el-radio-group>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="浠诲姟鍛ㄦ湡" prop="name">
-                    <el-input
-                      v-model="objyl.sendDay"
-                      placeholder="榛樿5澶╁悗"
-                    ></el-input>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-              <el-row>
-                <el-col :span="20"
-                  ><el-form-item label="閫傜敤绉戝" prop="region">
-                    <el-select
-                      style="width: 400px"
-                      v-model="tempDetpRelevanceslist"
-                      size="medium"
-                      multiple
-                      filterable
-                      placeholder="璇烽�夋嫨绉戝"
-                    >
-                      <el-option
-                        class="ruleFormaa"
-                        v-for="item in belongDepts"
-                        :key="item.deptCode"
-                        :label="item.deptName"
-                        :value="item.deptCode"
-                      >
-                      </el-option>
-                    </el-select> </el-form-item
-                ></el-col>
-              </el-row>
-              <!-- <el-row>
-                <el-col :span="20"
-                  ><el-form-item label="閫傜敤鐥呭尯" prop="region">
-                    <el-select
-                      v-model="tempbelongWards"
-                      style="width: 400px"
-                      size="medium"
-                      multiple
-                      filterable
-                      placeholder="璇烽�夋嫨绉戝"
-                    >
-                      <el-option
-                        class="ruleFormaa"
-                        v-for="item in belongWards"
-                        :key="item.districtCode"
-                        :label="item.districtName"
-                        :value="item.districtCode"
-                      >
-                      </el-option>
-                    </el-select> </el-form-item
-                ></el-col>
-              </el-row> -->
 
               <div class="xinz-infs">
                 <el-form-item>
@@ -885,9 +800,12 @@
   Editsingletask,
   getQtemplateclassify,
   depthospgetsonlist,
+  taskdepthospgetsondel,
+  taskdepthospgetsonlist,
 } from "@/api/AiCentre/index";
 
 import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import {  MessageBox,  } from "element-ui";
 
 export default {
   name: "ServiceDetails",
@@ -898,6 +816,7 @@
       id: "", //
       previewid: "", //浠诲姟妯℃澘浼犻�抜d
       libName: "",
+      templateor: false,
       objyl: {},
       overallCase: [], //閫夋嫨鎮h�呮��
       allpids: [],
@@ -912,6 +831,8 @@
       loading: false, // 閬僵灞�
       patientloading: false, // 閬僵灞�
       dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗�
+      deptcodesWards: [], //绉戝鏁版嵁
+      leavehospitaldistrictcodes: [], //鐥呭尯鏁版嵁
       radio: 1,
       checkboxlist: [],
       tableLabel: [],
@@ -967,7 +888,7 @@
       preachform: [
         { label: "澶氬獟浣�", value: 1 },
         { label: "绾歌川", value: 2 },
-        { label: "鐢佃瘽", value: 3 },
+        { label: "鏅鸿兘璇煶", value: 3 },
         { label: "鐭俊", value: 4 },
         { label: "寰俊鍏紬鍙�", value: 5 },
         { label: "寰俊灏忕▼搴�", value: 6 },
@@ -988,7 +909,7 @@
         pageNum: 1, //
         pageSize: 10,
       },
-      checkList: [],
+      checkList: "",
       deliverytopqueryParams: {
         pageNum: 1, //
         pageSize: 10,
@@ -1018,7 +939,7 @@
       sonuserList: [], //閫変腑鎮h�呭垪琛�
       delvariableList: [], //鍒犻櫎鍙橀噺涓存椂瀛樺偍
       longtype: [
-        { value: 0, label: "鏅�氫换鍔�" },
+        { value: 0, label: "鑷畾涔夊懆鏈�" },
         { value: 1, label: "闀挎湡浠诲姟" },
       ],
       variableList: [
@@ -1035,7 +956,7 @@
           default: true,
         },
         {
-          name: "鐢佃瘽",
+          name: "鏅鸿兘璇煶",
           value: "${dhh}",
           fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�",
           default: true,
@@ -1055,7 +976,7 @@
           default: true,
         },
         {
-          name: "鐢佃瘽",
+          name: "鏅鸿兘璇煶",
           value: "${dhh}",
           fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�",
           default: true,
@@ -1152,7 +1073,6 @@
       ],
       // 绉戝/鐥呭尯
       belongWards: [],
-      belongWards: [],
       deptlist: [],
       hosplist: [],
       tempDetpRelevanceslist: [], //绉戝鏁版嵁
@@ -1179,11 +1099,9 @@
         //   { required: true, message: "閫傜敤鐥呭尯涓嶈兘涓虹┖", trigger: "blur" },
         // ],
       },
+      belongDepts:[],
       // 绉戝闄㈠尯鏌ヨ鍏ュ弬
-      queryParamsdept: {
-        tempid: "",
-        type: 11,
-      },
+      queryParamsdept: {},
       quote: false,
       serviceType: null,
     };
@@ -1277,7 +1195,7 @@
         this.checkboxlist = [
           {
             value: "3",
-            label: "鐢佃瘽",
+            label: "鏅鸿兘璇煶",
           },
           {
             value: "4",
@@ -1292,10 +1210,10 @@
             label: "寰俊灏忕▼搴�",
           },
 
-          {
-            value: "8",
-            label: "鏅鸿兘鏈哄櫒浜�",
-          },
+          // {
+          //   value: "8",
+          //   label: "鏅鸿兘鏈哄櫒浜�",
+          // },
         ];
       } else if (this.form.serviceType == 7 || this.form.serviceType == 9) {
         this.checkboxlist = [
@@ -1309,7 +1227,7 @@
           },
           {
             value: "3",
-            label: "鐢佃瘽",
+            label: "鏅鸿兘璇煶",
           },
           {
             value: "4",
@@ -1337,7 +1255,7 @@
           },
           {
             value: "3",
-            label: "鐢佃瘽",
+            label: "鏅鸿兘璇煶",
           },
           {
             value: "4",
@@ -1352,10 +1270,10 @@
             label: "寰俊灏忕▼搴�",
           },
 
-          {
-            value: "8",
-            label: "鏅鸿兘鏈哄櫒浜�",
-          },
+          // {
+          //   value: "8",
+          //   label: "鏅鸿兘鏈哄櫒浜�",
+          // },
         ];
       }
       getQtemplatelist(this.topqueryParams).then((response) => {
@@ -1385,21 +1303,28 @@
           xh: 1,
         },
       ];
-
-      if (this.checkList[0]) {
-        this.form.preachform = this.checkList.join(",");
+      if (this.checkList) {
+        this.form.preachform = this.checkList;
       } else {
         this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
         return;
       }
+      if (this.deptcodesWards[0]||this.leavehospitaldistrictcodes[0]) {
+      } else {
+        this.$modal.msgError("璇烽�夋嫨绉戝鎴栫梾鍖�");
+        return;
+      }
+
       if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
         this.$modal.msgError("璇烽�夋嫨鐥呬汉");
         return;
       }
-      if (!this.form.templatename) {
+
+      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) ||
@@ -1422,28 +1347,19 @@
         this.form.type = this.$route.query.type;
       }
       this.form.serviceType = this.serviceType;
-      this.form.leaveldeptcodes = store.getters.belongDepts.map(
-        (obj) => obj.deptCode
-      );
-      this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(
-        (obj) => obj.districtCode
-      );
-      console.log(this.form.longTask);
-      console.log(this.form.preachform);
+      this.form.deptcode = this.deptcodesWards.join(",");
+      this.form.leavehospitaldistrictcode =
+        this.leavehospitaldistrictcodes.join(",");
 
-      if (this.form.longTask && this.form.preachform == 6) {
-        this.form.patCycle = 1;
-      }
-      //
-      this.form.labelinfo = 1;
       Editsingletask(this.form).then((res) => {
         if (res.code == 200) {
           if (this.form.taskid) {
             this.$modal.msgSuccess("淇敼鎴愬姛");
           } else {
-            this.puttaskid(res.data);
             this.$modal.msgSuccess("鏂板鎴愬姛");
           }
+      this.$modal.closeLoading();
+
           this.$router.push({
             path: "/followvisit/tasklist",
             query: { tasktopic: this.form.serviceType },
@@ -1451,33 +1367,8 @@
         }
       });
     },
-    // 缁欎换鍔℃ā鏉胯祴鍊间换鍔d
-    puttaskid(data) {
-      getTaskQuestioncomit(this.form.templateid).then((res) => {
-        if (res.code == 200) {
-          this.objyl = res.data;
-          if (this.objyl.taskid == data.taskId) {
-            this.objyl.isoperation = 2;
-          } else {
-            this.objyl.isoperation = 1;
-          }
-          this.objyl.taskid = data.taskId;
-          if (!this.objyl.sendDay) {
-            this.objyl.sendDay = "5";
-          }
-          TaskQuestioncomit(this.objyl).then((response) => {
-            this.previewtf = false;
-            this.form.libtemplateid = this.objyl.svyid;
-            this.form.templateid = response.data;
-            // this.putbelongDepts(response.data);
-            this.form.templatename = this.objyl.svyname;
-            this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
-          });
-        }
-      });
-    },
-    // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
 
+    // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
     // 閫夋嫨棰勮
     selectfn(row, type) {
       // 妯℃澘鎯呭喌涓嬭幏鍙栨ā鏉夸俊鎭�
@@ -1491,10 +1382,9 @@
             if (this.form.longTask) {
               this.objyl.longTemp = 1;
             }
-            this.queryParamsdept.type = 1;
-            this.queryParamsdept.tempid = row.svyid;
-            this.listDept();
 
+            this.tempDetpRelevanceslist = [];
+            this.tempbelongWards = [];
             this.objyl.suitway = this.objyl.suitway.split(",");
             this.questionList = res.rows[0].svyTemplateLibScripts;
             this.getillness(row.svyid);
@@ -1516,11 +1406,9 @@
           this.objyl = res.data;
           if (this.objyl.suitway)
             this.objyl.suitway = this.objyl.suitway.split(",");
-          this.queryParamsdept.tempid = this.form.templateid;
-          this.queryParamsdept.type = 11;
+
           this.getillness(this.form.libtemplateid);
-          // 鎵ц鑾峰彇璇ヤ换鍔℃ā鏉縤d
-          this.listDept();
+
           this.previewtf = true;
           getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => {
             if (res.code == 200) {
@@ -1803,6 +1691,7 @@
       this.form = {
         patTaskRelevances: [],
         sendType: 1,
+        sendDay: 5,
         templatename: "",
         templateid: null,
         libtemplateid: null,
@@ -1821,7 +1710,7 @@
               ? this.form.patTaskRelevances
               : [];
             this.overallCase = this.form.patTaskRelevances.concat();
-            this.checkList = this.form.preachform.split(",");
+            this.checkList = this.form.preachform;
 
             this.overallCase.forEach((item) => {
               if (item.endtime) {
@@ -1836,6 +1725,10 @@
               } else {
                 this.time1 = this.form.showTimeMorn.split(",");
               }
+            }
+            // 鑾峰彇浠诲姟绉戝
+            if (this.form.taskid) {
+              this.listDept();
             }
             if (this.form.showTimeNoon)
               this.time2 = this.form.showTimeNoon.split(",");
@@ -1867,24 +1760,50 @@
       this.time3 = ""; //鏅氫笂鏃堕棿娈�
       this.time4 = ""; //鏅氫笂鏃堕棿娈�
     },
-    // 鑾峰彇绉戝鍒楄〃
+    // 鑾峰彇浠诲姟绉戝鍒楄〃
     listDept() {
-      this.tempDetpRelevanceslist = [];
-      this.tempbelongWards = [];
-      depthospgetsonlist(this.queryParamsdept).then((res) => {
+      this.leavehospitaldistrictcodes = [];
+      this.deptcodesWards = [];
+      this.queryParamsdept.taskId = this.form.taskid;
+      taskdepthospgetsonlist(this.queryParamsdept).then((res) => {
         if (res.code == 200) {
           let arr = res.rows;
           arr.forEach((item) => {
             if (item.deptType == 1) {
               this.deptlist.push(item);
-              this.tempDetpRelevanceslist.push(item.deptCode);
+              this.deptcodesWards.push(item.deptCode);
             } else if (item.deptType == 2) {
               this.hosplist.push(item);
-              this.tempbelongWards.push(item.deptCode);
+              this.leavehospitaldistrictcodes.push(item.deptCode);
             }
           });
         }
       });
+    },
+    // 浠诲姟绉戝鍒犻櫎瑙﹀彂
+    removetag(row) {
+      let result = this.deptlist
+        .filter((item) => item.deptCode == row)
+        .map((item) => item.id);
+
+      if (result.length) {
+        taskdepthospgetsondel(result).then((res) => {
+          if (res.code) {
+          }
+        });
+      }
+    },
+    // 闄㈠尯鍒犻櫎鍒犻櫎瑙﹀彂
+    removehpsp(row) {
+      let result = this.hosplist
+        .filter((item) => item.deptCode == row)
+        .map((item) => item.id);
+      if (result.length) {
+        taskdepthospgetsondel(result).then((res) => {
+          if (res.code) {
+          }
+        });
+      }
     },
     getQtemplateclassify() {
       getQtemplateclassify({}).then((res) => {
@@ -1906,6 +1825,7 @@
       row.isoperation = 3;
       this.delvariableList.push(row);
     },
+
     // 鏃堕棿----------
     changeTime(row) {
       this.processingTime();
@@ -1986,17 +1906,10 @@
       if (Array.isArray(this.objyl.suitway)) {
         this.objyl.suitway = this.objyl.suitway.join(",");
       }
-      this.objyl.svyTemplateLibScripts.forEach((item) => {
-        item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions;
-      });
-      this.objyl.svyTaskTemplateScriptVOS = this.objyl.svyTemplateLibScripts;
       this.objyl.templateid = this.objyl.svyid;
 
       this.objyl.isoperation = 1;
-      console.log(this.objyl.id);
-      if (!this.objyl.sendDay) {
-        this.objyl.sendDay = "5";
-      }
+      this.objyl.taskid = this.form.taskid;
 
       if (this.objyl.id) {
         deleteTaskQuestioncomit(this.objyl.id).then((res) => {
@@ -2006,7 +1919,6 @@
                 this.previewtf = false;
                 this.form.libtemplateid = this.objyl.svyid;
                 this.form.templateid = response.data;
-                this.putbelongDepts(response.data);
                 this.form.templatename = this.objyl.svyname;
                 this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
               });
@@ -2017,7 +1929,6 @@
           this.previewtf = false;
           this.form.libtemplateid = this.objyl.svyid;
           this.form.templateid = response.data;
-          this.putbelongDepts(response.data);
           this.form.templatename = this.objyl.svyname;
           this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
         });
@@ -2044,60 +1955,35 @@
         }
       });
     },
-    // 澶勭悊鏈嶅姟褰㈠紡
-    formatFn(type) {
-      let list = [];
-      let formlist = [];
-      if (type == 1) {
-        this.preachform.forEach((item) => {
-          this.checkList.forEach((obj) => {
-            if (item.label == obj) {
-              list.push(item.value);
-            }
-          });
-        });
-        console.log(list, "list");
-        this.form.preachform = list.join(",");
-      } else {
-        console.log(this.form.preachform, "this.form.preachform");
-        formlist = this.form.preachform.split(",");
-        console.log(11);
-        this.preachform.forEach((item) => {
-          formlist.forEach((obj) => {
-            if (item.value == obj) {
-              list.push(item.label);
-            }
-          });
-        });
-        this.checkList = list;
-      }
-    },
+
     // 绉戝澶勭悊
     Departmenttreatment() {
-      this.tempDetpRelevanceslist.forEach((item) => {
-        this.tempDetpRelevanceslistform.push({
-          deptType: 1,
-          longTemp: this.form.longTask,
-          deptCode: item,
-          tempid: null,
-          type: 11,
-        });
-      });
-
-      this.tempbelongWards.forEach((item) => {
-        this.tempbelongWardsform.push({
-          deptType: 2,
-          longTemp: this.form.longTask,
-          deptCode: item,
-          tempid: null,
-          type: 11,
-        });
-      });
-      console.log(33);
-
-      setTimeout(() => {
-        this.previewFn();
-      }, 1000);
+      if (!this.form.taskid) {
+        this.templateor = true;
+        MessageBox.confirm(
+          "褰撳墠涓烘柊澧炰换鍔℃湭淇濆瓨涓嶅彲鍏宠仈妯℃澘锛屾槸鍚﹀厛淇濆瓨浠诲姟锛�",
+          "鍔熻兘鎻愮ず",
+          {
+            confirmButtonText: "淇濆瓨浠诲姟",
+            cancelButtonText: "鍙栨秷",
+            type: "warning",
+          }
+        )
+          .then(() => {
+            if (Array.isArray(this.objyl.suitway)) {
+              this.objyl.suitway = this.objyl.suitway.join(",");
+            }
+            this.objyl.templateid = this.objyl.svyid;
+            this.objyl.isoperation = 1;
+            this.form.svyTaskTemplateVO=this.objyl;
+            this.submitForm();
+          })
+          .catch(() => {});
+      } else {
+        setTimeout(() => {
+          this.previewFn();
+        }, 1000);
+      }
     },
   },
 };

--
Gitblit v1.9.3