From d84cde7ed98bf0c562a8631e660fd494de9a7d0b Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期一, 25 三月 2024 10:11:33 +0800
Subject: [PATCH] 指标完成

---
 src/main.js                               |    4 
 package.json                              |    1 
 src/views/patient/propaganda/particty.vue |  243 ++++++++++++++++++++++++++++++++++++------------
 src/components/SFtable/index.vue          |    2 
 4 files changed, 188 insertions(+), 62 deletions(-)

diff --git a/package.json b/package.json
index 22cce97..88fc09f 100644
--- a/package.json
+++ b/package.json
@@ -58,6 +58,7 @@
     "js-cookie": "3.0.1",
     "jsencrypt": "3.0.0-rc.1",
     "lemon-imui": "^1.7.7",
+    "moment": "^2.30.1",
     "nprogress": "0.2.0",
     "quill": "1.3.7",
     "quill-image-drop-module": "^1.0.3",
diff --git a/src/components/SFtable/index.vue b/src/components/SFtable/index.vue
index f8eea2b..eb51795 100644
--- a/src/components/SFtable/index.vue
+++ b/src/components/SFtable/index.vue
@@ -150,7 +150,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      $emit("handleSelectionChange", selection);
+      this.$emit("handleSelectionChange", selection);
     },
   },
 };
diff --git a/src/main.js b/src/main.js
index b6eff6f..532adf6 100644
--- a/src/main.js
+++ b/src/main.js
@@ -80,6 +80,9 @@
 for (let key in filters) {
   Vue.filter(key, filters[key]);
 }
+import moment from "moment"
+
+Vue.prototype.$moment = moment;
 
 // 鍏ㄥ眬鏂规硶鎸傝浇
 
@@ -131,3 +134,4 @@
   store,
   render: (h) => h(App),
 });
+
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 0ec5f32..c60ded7 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -38,40 +38,86 @@
               <el-form ref="form" :model="form" label-width="105px">
                 <el-form-item label="妯$増鍚嶇О锛�">
                   <el-input
-                    :disabled="true"
                     style="width: 220px"
-                    v-model="form.preachname"
-                    placeholder="璇峰湪涓嬫柟閫夋嫨"
+                    v-model="form.templatename"
+                    placeholder="璇峰湪涓嬪垪閫夋嫨"
                   />
                 </el-form-item>
                 <el-form-item label="鍙戦�佽缃細" v-if="currenttype != 2">
-                  <el-radio-group v-model="radio">
+                  <el-radio-group v-model="form.sendType">
                     <el-radio :label="1">鏃堕棿娈靛彂閫�</el-radio>
-                    <el-radio :label="2">鏃堕棿鐐瑰彂閫�</el-radio>
                     <el-radio :label="3">鍗冲埢鍙戦��</el-radio>
                   </el-radio-group>
                 </el-form-item>
                 <el-form-item
-                  label="鍙戦�佹椂闂寸偣锛�"
-                  v-if="currenttype != 2 && radio == 2"
+                  label="鍙戦�佹棩鏈燂細"
+                  v-if="currenttype != 2 && form.sendType == 1"
                 >
                   <el-date-picker
-                    v-model="form.sendTime"
-                    type="datetime"
-                    placeholder="閫夋嫨鏃ユ湡鏃堕棿"
-                    default-time="13:00:00"
+                    v-model="daytime"
+                    @change="changeTimeday"
+                    type="daterange"
+                    range-separator="鑷�"
+                    start-placeholder="寮�濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                    value-format="yyyy-MM-dd"
                   >
                   </el-date-picker>
                 </el-form-item>
                 <el-form-item
                   label="鍙戦�佹椂闂存锛�"
-                  v-if="currenttype != 2 && radio == 1"
+                  v-if="currenttype != 2 && form.sendType == 1"
                 >
-                  <el-checkbox-group v-model="checkList">
-                    <el-checkbox label="涓婂崍锛�8:30-11:30锛�"></el-checkbox>
-                    <el-checkbox label="涓嬪崍锛�14:30-16:30锛�"></el-checkbox>
-                    <el-checkbox label="澶滈棿锛�18:30-20:30锛�"></el-checkbox>
-                  </el-checkbox-group>
+                  <div style="display: flex">
+                    <div style="margin-right: 10px">
+                      <span style="font-size: 18px; margin-right: 10px"
+                        >涓婂崍</span
+                      >
+                      <el-time-picker
+                        is-range
+                        @change="changeTime"
+                        v-model="time1"
+                        range-separator="鑷�"
+                        start-placeholder="寮�濮嬫椂闂�"
+                        end-placeholder="缁撴潫鏃堕棿"
+                        placeholder="閫夋嫨鏃堕棿鑼冨洿"
+                        value-format="HH:mm:ss"
+                      >
+                      </el-time-picker>
+                    </div>
+                    <div style="margin-right: 10px">
+                      <span style="font-size: 18px; margin-right: 10px"
+                        >涓嬪崍</span
+                      >
+                      <el-time-picker
+                        is-range
+                        @change="changeTime"
+                        v-model="time2"
+                        range-separator="鑷�"
+                        start-placeholder="寮�濮嬫椂闂�"
+                        end-placeholder="缁撴潫鏃堕棿"
+                        placeholder="閫夋嫨鏃堕棿鑼冨洿"
+                        value-format="HH:mm:ss"
+                      >
+                      </el-time-picker>
+                    </div>
+                    <div style="margin-right: 10px">
+                      <span style="font-size: 18px; margin-right: 10px"
+                        >鏅氶棿</span
+                      >
+                      <el-time-picker
+                        is-range
+                        @change="changeTime"
+                        v-model="time3"
+                        range-separator="鑷�"
+                        start-placeholder="寮�濮嬫椂闂�"
+                        end-placeholder="缁撴潫鏃堕棿"
+                        placeholder="閫夋嫨鏃堕棿鑼冨洿"
+                        value-format="HH:mm:ss"
+                      >
+                      </el-time-picker>
+                    </div>
+                  </div>
                 </el-form-item>
                 <el-form-item label="鏈嶅姟褰㈠紡">
                   <el-checkbox-group v-model="checkList">
@@ -82,18 +128,6 @@
                     ></el-checkbox>
                   </el-checkbox-group>
                 </el-form-item>
-                <!-- <el-form-item label="缁勭粐褰㈠紡">
-                  <el-radio-group v-model="form.radio">
-                    <el-radio :label="3">鍗曚汉瀹f暀</el-radio>
-                    <el-radio :label="6">澶氫汉闆嗕腑瀹f暀</el-radio>
-                  </el-radio-group>
-                </el-form-item> -->
-                <!-- <el-form-item label="璇煶妯$増" prop="region">
-                  <el-select v-model="form.region" placeholder="璇烽�夋嫨妯$増">
-                    <el-option label="涓�鍙锋ā鐗�" value="shanghai"></el-option>
-                    <el-option label="浜屽彿妯$増" value="beijing"></el-option>
-                  </el-select>
-                </el-form-item> -->
               </el-form>
             </div>
           </div>
@@ -259,10 +293,9 @@
                     </el-form-item>
                   </el-form>
                   <el-divider></el-divider>
-                  <!-- 閫夋嫨浠诲姟鍒楄〃 -->
+                  <!-- 閫夋嫨妯$増鍒楄〃 -->
                   <SFtable
-                    @handleUpdate="handleUpdate"
-                    @handleSelectionChange="handleSelectionChange"
+                    @selectfn="selectfn"
                     :currentList="userList"
                     :tableLabel="tableLabel"
                     :controlsc="false"
@@ -474,7 +507,7 @@
                   <SFtable
                     @handleUpdate="handleUpdate"
                     @handleSelectionChange="handleSelectionChange"
-                    :currentList="sonuserList"
+                    :currentList="form.patTaskRelevances"
                     :tableLabel="tableLabelhz"
                     :controlxz="false"
                     :typeinfo="2"
@@ -693,6 +726,12 @@
         { label: "鍖归厤绗�", width: "", prop: "character" },
         { label: "鏇挎崲鍊�", width: "", prop: "Replacementvalue" },
       ],
+      // 鏃堕棿澶勭悊
+      daytime: [], //鏃ユ湡
+      applydaytime: [], //璁$畻鏃ユ湡
+      time1: "", //涓婂崍鏃堕棿娈�
+      time2: "", //涓嬪崍鏃堕棿娈�
+      time3: "", //鏅氫笂鏃堕棿娈�
       topqueryParams: {
         pageNum: 1, //
         pageSize: 10,
@@ -738,16 +777,15 @@
           Replacementvalue: "鍏釜鍏�",
         },
       ], //鍙橀噺鍒楄〃
+      variableListTime: [],
       tasktopic: null, //鏂板绫诲瀷
+      SelectPatientslist: [],
       form: {
-        name: "",
-        region: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
+        serviceform: [],
+        patTaskRelevances: [],
+        sendType: 1,
+        templatename: "",
+        templateid: null,
       },
       taskoptions: [
         {
@@ -782,7 +820,7 @@
     //   鍦板潃: { "${dzz}": "榫欏" },
     //   鐢佃瘽: { "${dhh}": "鍏釜鍏�" },
     // }
-    // 瀵硅薄杞暟缁�
+    // 鍙橀噺杞崲瀵硅薄杞暟缁�
     convertFormat1ToFormat2(data) {
       let result = [];
       for (let key in data) {
@@ -818,15 +856,15 @@
         this.title = "瀹f暀鍐呭鍒楄〃";
         this.tableLabel = this.tableLabelxj;
         this.checkboxlist = [
-          "褰撻潰",
-          "澶氬獟浣�",
+          "绾夸笅",
+          "瑙嗛",
           "绾歌川",
-          "鐢佃瘽",
+          "璇煶",
           "鐭俊",
           "寰俊鍏紬鍙�",
           "寰俊灏忕▼搴�",
           "鏀粯瀹�",
-          "鏅鸿兘灏忕▼搴�",
+          "浜岀淮鐮�",
           "閽夐拤",
         ];
         getlibrarylist(queryParams).then((response) => {
@@ -836,7 +874,7 @@
       } else if (this.currenttype == 2) {
         this.title = "闅忚鍐呭鍒楄〃";
         this.tableLabel = this.tableLabelmz;
-        this.checkboxlist = ["褰撻潰", "绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+        this.checkboxlist = ["绾夸笅", "绾歌川", "璇煶", "鐭俊", "寰俊鍏紬鍙�"];
         getFollowuplist(queryParams).then((response) => {
           this.userList = response.rows;
           this.total = response.total;
@@ -844,7 +882,7 @@
       } else if (this.currenttype == 3) {
         this.title = "闅忚璁″垝鍒楄〃";
         this.tableLabel = this.tableLabelcy;
-        this.checkboxlist = ["褰撻潰", "绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+        this.checkboxlist = ["绾夸笅", "绾歌川", "璇煶", "鐭俊", "寰俊鍏紬鍙�"];
         getFollowuplist(queryParams).then((response) => {
           this.userList = response.rows;
           this.total = response.total;
@@ -852,7 +890,7 @@
       } else if (this.currenttype == 4) {
         this.title = "閫氱煡鍐呭鍒楄〃";
         this.tableLabel = this.tableLabelfz;
-        this.checkboxlist = ["鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+        this.checkboxlist = ["璇煶", "鐭俊", "寰俊鍏紬鍙�"];
         getFollowuplist(queryParams).then((response) => {
           this.userList = response.rows;
           this.total = response.total;
@@ -860,7 +898,7 @@
       } else if (this.currenttype == 5) {
         this.title = "閫氱煡鍐呭鍒楄〃";
         this.tableLabel = this.tableLabeltj;
-        this.checkboxlist = ["绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+        this.checkboxlist = ["绾歌川", "璇煶", "鐭俊", "寰俊鍏紬鍙�"];
         getFollowuplist(queryParams).then((response) => {
           this.userList = response.rows;
           this.total = response.total;
@@ -869,10 +907,10 @@
         this.title = "闂嵎鍐呭鍒楄〃";
         this.tableLabel = this.tableLabelwj;
         this.checkboxlist = [
-          "褰撻潰",
-          "澶氬獟浣�",
+          "绾夸笅",
+          "瑙嗛",
           "绾歌川",
-          "鐢佃瘽",
+          "璇煶",
           "鐭俊",
           "寰俊鍏紬鍙�",
           "寰俊灏忕▼搴�",
@@ -891,12 +929,23 @@
     },
     // 淇濆瓨
     submitForm(formName) {
+      this.form.serviceform = this.checkList.join(",");
+      this.form.textParam = {
+        濮撳悕: { "${name}": "榫欏偛澶�" },
+        鍦板潃: { "${dzz}": "榫欏" },
+        鐢佃瘽: { "${dhh}": "鍏釜鍏�" },
+      };
+      if (this.form.id) {
+        this.form.isoperation = 2;
+      } else {
+        this.form.isoperation = 1;
+      }
       Editsingletask(this.form).then((response) => {
         if (res.code == 200) {
           if (this.form.id) {
             this.$modal.msgSuccess("鏂板鎴愬姛");
-          }else{
-            this.$modal.msgSuccess("淇敼鎴愬姛鎴愬姛");
+          } else {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
           }
           this.$router.go(-1);
         }
@@ -910,6 +959,18 @@
       //     return false;
       //   }
       // });
+    },
+    // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
+    // 閫夋嫨
+    selectfn(row, type) {
+      console.log(row);
+      console.log(type);
+      if (type == 1) {
+        this.form.templatename = row.preachname;
+        this.form.templateid = row.templateid;
+      } else if (type == 2) {
+      } else if (type == 3) {
+      }
     },
     // 瀛愪换鍔′簩绾у脊妗�
     handleAddpatient(row) {
@@ -926,6 +987,8 @@
     handleExport() {},
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
+      console.log("澶氶�夋偅鑰�");
+      this.SelectPatientslist = selection;
       this.ids = null;
       this.ids = selection.map((item) => item.patid).join(",");
       // let result = this.ids.join(",");
@@ -960,12 +1023,10 @@
     },
     // 鏂板娲鹃�佹偅鑰�
     AddDispatchpatients() {
-      let objictpint = {};
-      objictpint.patientes = this.ids;
-      objictpint.pguid = 2;
-      // Addpatienttask(objictpint).then((res) => {
-      //   console.log(res);
-      // });
+      this.SelectPatientslist.forEach((item) => {
+        item.isoperation = 1;
+      });
+      this.form.patTaskRelevances.push(...this.SelectPatientslist);
       this.dialogVisiblepatient = false;
     },
 
@@ -986,6 +1047,66 @@
     variableDelete(index, row) {
       console.log(index, row);
     },
+    // 鏃堕棿----------
+    changeTime(row) {
+      console.log(row, "鏃堕棿");
+      this.processingTime();
+    },
+    changeTimeday(row) {
+      const startDate = new Date(row[0]);
+      const endDate = new Date(row[1]);
+      this.applydaytime = this.getDates(startDate, endDate);
+      this.processingTime();
+    },
+    getDates(startDate, endDate) {
+      const dates = [];
+      let currentDate = new Date(startDate);
+
+      while (currentDate <= endDate) {
+        dates.push(this.$moment(currentDate).format("YYYY-MM-DD"));
+        currentDate.setDate(currentDate.getDate() + 1);
+      }
+
+      return dates;
+    },
+    // 鏃堕棿鏈�缁堝鐞嗘柟娉�
+    processingTime() {
+      const combinedData = [];
+      let serialnumber = 1;
+      if (this.time3[0]) {
+        serialnumber = 3;
+      } else if (this.time2[0]) {
+        serialnumber = 2;
+      } else if (this.time1[0]) {
+        serialnumber = 1;
+      } else {
+        return;
+      }
+
+      for (let i = 0; i < this.applydaytime.length; i++) {
+        combinedData.push({
+          begantime: `${this.applydaytime[i]} ${this.time1[0]}`,
+          endtime: `${this.applydaytime[i]} ${this.time1[1]}`,
+          xh: serialnumber * i + 1,
+        });
+        if (serialnumber >= 2) {
+          combinedData.push({
+            begantime: `${this.applydaytime[i]} ${this.time2[0]}`,
+            endtime: `${this.applydaytime[i]} ${this.time2[1]}`,
+            xh: serialnumber * i + 2,
+          });
+        }
+        if (serialnumber >= 3) {
+          combinedData.push({
+            begantime: `${this.applydaytime[i]} ${this.time3[0]}`,
+            endtime: `${this.applydaytime[i]} ${this.time3[1]}`,
+            xh: serialnumber * i + 3,
+          });
+        }
+      }
+      this.form.sendTimeslot = combinedData;
+      console.log(combinedData, "combinedData");
+    },
   },
 };
 </script>

--
Gitblit v1.9.3