From 76c30727c77065c808b1c0fb3146080e423e5fe6 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 27 六月 2024 09:45:30 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/tasklist/index.vue |  513 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 321 insertions(+), 192 deletions(-)

diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 870d48a..71ed556 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -77,40 +77,31 @@
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
         <el-col :span="1.5">
+          <el-select
+            @change="handleQuery"
+            v-model="tasktopic"
+            placeholder="璇烽�夋嫨鏂板绫诲瀷"
+          >
+            <el-option
+              v-for="item in taskoptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
             icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
-            v-hasPermi="['system:user:add']"
+            :disabled="!tasktopic"
             >鏂板</el-button
           >
         </el-col>
-        <el-col :span="1.5">
-          <el-button
-            type="success"
-            plain
-            icon="el-icon-edit"
-            size="medium"
-            :disabled="single"
-            @click="handleUpdate"
-            v-hasPermi="['system:user:edit']"
-            >淇敼</el-button
-          >
-        </el-col>
-        <el-col :span="1.5">
-          <el-button
-            type="danger"
-            plain
-            icon="el-icon-delete"
-            size="medium"
-            :disabled="multiple"
-            @click="handleDelete"
-            v-hasPermi="['system:user:remove']"
-            >鍒犻櫎</el-button
-          >
-        </el-col>
+
         <el-col :span="19">
           <div class="documentf">
             <div class="document">
@@ -133,66 +124,45 @@
               @queryTable="getList"
               :columns="columns"
             ></right-toolbar> -->
-      <el-table
-        v-loading="loading"
-        :data="userList"
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="50" align="center" />
-        <el-table-column label="搴忓彿" align="center" key="id" prop="id" />
+      <el-table v-loading="loading" :data="userList">
+        <el-table-column
+          label="搴忓彿"
+          fixed
+          align="center"
+          key="taskid"
+          prop="taskid"
+        />
 
         <el-table-column
           label="浠诲姟鍚嶇О"
+          fixed
           align="center"
           sortable
-          key="name"
-          prop="name"
+          key="taskName"
+          prop="taskName"
           :show-overflow-tooltip="true"
         />
         <el-table-column
           label="浠诲姟鎻忚堪"
           align="center"
-          key="describe"
-          prop="describe"
+          key="taskDesc"
+          prop="taskDesc"
         />
         <el-table-column
           label="寰呮墽琛�/鎬讳换鍔�"
           align="center"
           key="nickName"
           prop="nickName"
-        />
-        <el-table-column
-          label="鐘舵��"
-          align="center"
-          key="phonenumber"
-          prop="phonenumber"
-          width="120"
-        />
-
-        <el-table-column
-          label="瀹℃牳浜�"
-          align="center"
-          key="create_by"
-          prop="create_by"
-          width="120"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="瀹℃牳鏃堕棿"
-          sortable
-          align="center"
-          prop="create_time"
-          width="160"
         >
           <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.create_time) }}</span>
+            <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span>
           </template>
         </el-table-column>
         <el-table-column
           label="鍒涘缓浜�"
           align="center"
-          key="create_by"
-          prop="create_by"
+          key="createBy"
+          prop="createBy"
           width="120"
           :show-overflow-tooltip="true"
         />
@@ -200,34 +170,73 @@
           label="鍒涘缓鏃堕棿"
           sortable
           align="center"
-          prop="create_time"
+          prop="createTime"
           width="160"
         >
           <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.create_time) }}</span>
+            <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
-      
+        <el-table-column
+          label="鐘舵��"
+          fixed="right"
+          align="center"
+          key="sendState"
+          prop="sendState"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.task_status"
+              :value="scope.row.sendState"
+            />
+          </template>
+        </el-table-column>
         <el-table-column
           label="鎿嶄綔"
+          fixed="right"
           align="center"
           width="120"
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
             <el-button
+              v-if="scope.row.sendState == 1 || scope.row.sendState == 3"
               size="medium"
               type="text"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
+              @click="sponsor(scope.row)"
               ><span class="button-zx"
-                ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
+                ><i class="el-icon-s-promotion"></i>浠诲姟鍙戣捣</span
+              ></el-button
+            >
+            <el-button
+              v-if="scope.row.sendState == 1 || scope.row.sendState == 3"
+              size="medium"
+              type="text"
+              @click="immediateExecution(scope.row)"
+              ><span class="button-lj"
+                ><i class="el-icon-s-promotion"></i>绔嬪嵆鎵ц</span
+              ></el-button
+            >
+            <el-button size="medium" type="text" @click="newAdd(scope.row)"
+              ><span class="button-xj"
+                ><i class="el-icon-circle-plus-outline"></i>渚濈収鏂板</span
+              ></el-button
+            >
+            <el-button
+              v-if="scope.row.sendState == 2"
+              size="medium"
+              type="text"
+              @click="stop(scope.row)"
+              ><span class="button-zt"
+                ><i class="el-icon-circle-plus-outline"></i>鏆傚仠浠诲姟</span
               ></el-button
             >
           </template>
         </el-table-column>
         <el-table-column
           label="浠诲姟璇︽儏"
+          fixed="right"
           align="center"
           width="200"
           class-name="small-padding fixed-width"
@@ -237,25 +246,12 @@
               size="medium"
               type="text"
               @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
               ><span class="button-xq"
                 ><i class="el-icon-s-data"></i>璇︽儏</span
               ></el-button
             >
-            <!-- <el-button
-              size="medium"
-              type="text"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
-              ><span class="button-bb"
-                ><i class="el-icon-s-order"></i>鎶ヨ〃</span
-              ></el-button
-            > -->
-            <el-button
-              size="medium"
-              type="text"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
+
+            <el-button size="medium" type="text" @click="deletefn(scope.row)"
               ><span class="button-sc"
                 ><i class="el-icon-delete"></i>鍒犻櫎</span
               ></el-button
@@ -272,58 +268,68 @@
         @pagination="getList"
       />
     </el-row>
-    <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 -->
+    <!-- 纭鍙戣捣瀵硅瘽妗� -->
     <el-dialog
-      :title="title"
-      :visible.sync="addalteropen"
-      width="700px"
-      append-to-body
+      title="浠诲姟鍙戣捣纭"
+      :visible.sync="taskformVisible"
+      width="50%"
+      :before-close="handleClose"
     >
-      <el-form ref="form" :model="form" label-width="100px">
-        <el-row :gutter="20">
-          <el-col :span="12"
-            ><el-form-item label="浠诲姟鍚嶇О">
-              <el-input v-model="form.name"></el-input> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24"
-            ><el-form-item label="鎵�灞炵瀹�">
-              <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-col
-        ></el-row>
-        <el-row :gutter="20">
-          <el-col :span="24"
-            ><el-form-item label="闅忚绫诲瀷">
-              <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-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="鏈嶅姟妯″潡">
-              <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-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="闂ㄨ瘖闅忚瑕佹眰">
-              <el-input type="textarea" v-model="form.desc"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">鎻� 浜�</el-button>
-        <el-button @click="cancel">杩� 鍥�</el-button>
+      <div style="font-size: 20px; color: red; margin-bottom: 20px">
+        璇风‘璁や换鍔�"{{ taskform.taskName }}"鐨勬墽琛屾椂闂�
+      </div>
+      <div
+        style="font-size: 18px; margin-bottom: 20px"
+        v-if="taskform.showDate[0]"
+      >
+        鎵ц鏃ユ湡锛�<span
+          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
+          >{{ taskform.showDate[0] }} 鑷� {{ taskform.showDate[1] }}</span
+        >
+      </div>
+      <div
+        style="font-size: 18px; margin-bottom: 20px"
+        v-if="taskform.showTimeMorn[0]"
+      >
+        绗竴鏃堕棿娈碉細<span
+          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
+          >{{ taskform.showTimeMorn[0] }} 鑷�
+          {{ taskform.showTimeMorn[1] }}</span
+        >
+      </div>
+      <div
+        style="font-size: 18px; margin-bottom: 20px"
+        v-if="taskform.showTimeNight[0]"
+      >
+        绗簩鏃堕棿娈碉細<span
+          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
+          >{{ taskform.showTimeNight[0] }} 鑷�
+          {{ taskform.showTimeNight[1] }}</span
+        >
+      </div>
+      <div
+        style="font-size: 18px; margin-bottom: 20px"
+        v-if="taskform.showTimeNoon[0]"
+      >
+        绗笁鏃堕棿娈碉細<span
+          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
+          >{{ taskform.showTimeNoon[0] }} 鑷�
+          {{ taskform.showTimeNoon[1] }}</span
+        >
+      </div>
+      <div style="text-align: right">
+        <el-button style="margin-right: 20px" @click="taskformVisible = false"
+          >鍙� 娑�</el-button
+        >
+        <el-button
+          style="margin-right: 20px"
+          type="success"
+          @click="confirmSponsor(taskform)"
+          >纭鎵ц</el-button
+        >
+        <el-button type="primary" @click="handleUpdate(taskform)"
+          >鍓嶅線淇敼</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -331,7 +337,6 @@
 
 <script>
 import {
-  listUser,
   getUser,
   delUser,
   addUser,
@@ -340,19 +345,22 @@
   changeUserStatus,
 } from "@/api/system/user";
 import {
-  listsvr_prj,
-  getsvr_task,
-  addsvr_task,
-  updatesvr_task,
-  delsvr_task,
-} from "@/api/smartorpor/svr_task";
+  getTasklist,
+  getTaskInfo,
+  Editsingletask,
+  delTaskInfo,
+  Questionnairetasklist,
+  Questionnairetaskget,
+  Questionnairetasksponsor,
+  TaskTemplateSendExecution,
+} from "@/api/AiCentre/index";
 
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "User",
-  dicts: ["sys_normal_disable", "sys_user_sex"],
+  dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
   components: { Treeselect },
   data() {
     return {
@@ -384,10 +392,18 @@
       postOptions: [],
       // 瑙掕壊閫夐」
       roleOptions: [],
+      taskform: {
+        showDate: [],
+        showTimeMorn: [],
+        showTimeNight: [],
+        showTimeNoon: [],
+      },
+      taskformVisible: false,
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       inputValue: "",
       previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
+      TaskOperation: {},
       radio: "",
       radios: [],
       previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
@@ -397,6 +413,33 @@
       previewvalue: {
         username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
       },
+      taskoptions: [
+        {
+          value: "1",
+          label: "瀹f暀鏈嶅姟",
+        },
+        {
+          value: "2",
+          label: "闂ㄨ瘖闅忚",
+        },
+        {
+          value: "3",
+          label: "鍑洪櫌闅忚",
+        },
+        {
+          value: "4",
+          label: "澶嶈瘖鏈嶅姟",
+        },
+        {
+          value: "5",
+          label: "浣撴閫氱煡",
+        },
+        {
+          value: "6",
+          label: "闂嵎鏈嶅姟",
+        },
+      ],
+      tasktopic: "2", //鏂板绫诲瀷
       value: [],
       list: [],
       loading: false,
@@ -581,17 +624,22 @@
     });
   },
   methods: {
-    /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */
+    /** 鏌ヨ浠诲姟鍒楄〃 */
     getList() {
       this.loading = true;
-      listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then(
-        (response) => {
-          console.log(response);
+      if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) {
+        getTasklist(this.topqueryParams).then((response) => {
           this.userList = response.rows;
           this.total = response.total;
           this.loading = false;
-        }
-      );
+        });
+      } else if (this.tasktopic == 6) {
+        Questionnairetasklist(this.topqueryParams).then((res) => {
+          this.userList = res.rows;
+          this.total = res.total;
+          this.loading = false;
+        });
+      }
     },
     // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
     Referencequestion(row) {
@@ -611,26 +659,7 @@
         this.options = [];
       }
     },
-    // 闂ㄨ瘖闅忚鐘舵�佷慨鏀�
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
-      this.$modal
-        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
-        .then(function () {
-          return changeUserStatus(row.userId, row.status);
-        })
-        .then(() => {
-          this.$modal.msgSuccess(text + "鎴愬姛");
-        })
-        .catch(function () {
-          row.status = row.status === "0" ? "1" : "0";
-        });
-    },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.addalteropen = false;
-      this.reset();
-    },
+
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
@@ -690,37 +719,116 @@
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
-      this.$router.push({
-        path: "/followvisit/tasklist/FollowupDetails/",
-      });
+      if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) {
+        this.$router.push({
+          path: "/followvisit/particty",
+          query: { type: this.tasktopic },
+        });
+      } else if (this.tasktopic == 6) {
+        this.$router.push({
+          path: "/followvisit/QuestionnaireTask",
+          query: { type: this.tasktopic },
+        });
+      }
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      // const userId = row.userId || this.ids;
-      // this.$router.push({
-      //   path: "/followvisit/tasklist/FollowupDetails/",
-      //   query: { id: row.id },
-      // });
       this.$router.push({
         path: "/followvisit/particty",
-        query: { type: 2, },
+        query: { type: row.hospType, id: row.taskid },
+      });
+      if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) {
+        this.$router.push({
+          path: "/followvisit/particty",
+          query: { type: row.hospType, id: row.taskid },
+        });
+      } else if (this.tasktopic == 6) {
+        this.$router.push({
+          path: "/followvisit/QuestionnaireTask",
+          query: { type: row.hospType, id: row.taskid },
+        });
+      }
+    },
+    // 鍒犻櫎浠诲姟
+    deletefn() {},
+    // 浠诲姟鍙戣捣
+    sponsor(row) {
+      console.log(row, "浠诲姟淇℃伅");
+      this.taskform = row;
+      if (this.taskform.showDate) {
+        this.taskform.showDate = this.taskform.showDate.split(",");
+      }
+      if (this.taskform.showTimeMorn) {
+        this.taskform.showTimeMorn = this.taskform.showTimeMorn.split(",");
+      } else {
+        this.taskform.showTimeMorn = [];
+      }
+      if (this.taskform.showTimeNight) {
+        this.taskform.showTimeNight = this.taskform.showTimeNight.split(",");
+      } else {
+        this.taskform.showTimeNight = [];
+      }
+      if (this.taskform.showTimeNoon) {
+        this.taskform.showTimeNoon = this.taskform.showTimeNoon.split(",");
+      } else {
+        this.taskform.showTimeNoon = [];
+      }
+      if (row.sendState != 2) {
+        this.taskformVisible = true;
+      } else {
+        this.$modal.msgError("浠诲姟宸插彂璧凤紝涓嶅彲鍐嶆鍙戣捣");
+      }
+    },
+    // 纭鍙戣捣
+    confirmSponsor(row) {
+      this.TaskOperation.taskId = row.taskid;
+      this.TaskOperation.sendState = 2;
+      TaskTemplateSendExecution(this.TaskOperation).then((res) => {
+        if (res.code == 200) {
+          this.$modal.msgSuccess("浠诲姟宸叉垚鍔熷姞鍏ユ墽琛岄槦鍒�");
+          this.getList();
+        }
       });
     },
-    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
-    handleResetPwd(row) {
-      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        closeOnClickModal: false,
-        inputPattern: /^.{5,20}$/,
-        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
-      })
-        .then(({ value }) => {
-          resetUserPwd(row.userId, value).then((response) => {
-            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
-          });
-        })
-        .catch(() => {});
+    // 绔嬪嵆鎵ц
+    immediateExecution(row) {
+      console.log(row, "浠诲姟淇℃伅");
+      if (row.sendState != 2) {
+        this.TaskOperation.taskId = row.taskid;
+        this.TaskOperation.sendState = 2;
+        this.TaskOperation.sendType = 2;
+        this.$modal
+          .confirm(
+            '鏄惁绔嬪嵆鎵ц浠诲姟鍚嶇О涓轰负"' +
+              row.taskName +
+              '"鐨勬暟鎹」锛熷彂璧锋墽琛屽悗涓嶅彲鎾ゅ洖锛�'
+          )
+          .then(() => {
+            TaskTemplateSendExecution(this.TaskOperation).then((res) => {
+              if (res.code == 200) {
+                this.getList();
+                this.$modal.msgSuccess("浠诲姟宸茬珛鍗虫墽琛�");
+              }
+            });
+          })
+          .then(() => {})
+          .catch(() => {});
+      }
+    },
+
+    // 渚濈収鏂板
+    newAdd(row) {
+      TaskTemplateSendExecution().then((res) => {});
+    },
+    // 鏆傚仠
+    stop(row) {
+      if (row.sendState == 2) {
+        this.TaskOperation.taskId = row.taskId;
+        this.TaskOperation.sendState = 3;
+        TaskTemplateSendExecution().then((res) => {
+          this.getList();
+        });
+      }
     },
 
     /** 鎻愪氦鎸夐挳 */
@@ -878,6 +986,24 @@
   border-radius: 1px;
   color: #ffffff;
 }
+.button-lj {
+  background: #e9614f;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-xj {
+  background: #815c94;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-zt {
+  background: #f9c116;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
 
 ::v-deep.el-radio-group {
   span {
@@ -885,6 +1011,9 @@
   }
 }
 
+::v-deep.el-button + .el-button {
+  margin-left: 0;
+}
 ::v-deep.el-checkbox-group {
   span {
     font-size: 24px;

--
Gitblit v1.9.3