From 09a1bd58e04706d7e1d6e1543b990c08a4b8f97c Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 16 一月 2025 13:57:03 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/tasklist/index.vue |  799 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 538 insertions(+), 261 deletions(-)

diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index b5a18c6..454091a 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -12,12 +12,18 @@
         label-width="98px"
       >
         <el-form-item label="浠诲姟鍚嶇О">
-          <el-input v-model="topqueryParams.name"></el-input>
+          <el-input
+            v-model="topqueryParams.taskName"
+            @keyup.enter.native="handleQuery"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="瀹℃牳浜�">
-          <el-input v-model="topqueryParams.name"></el-input>
+        <el-form-item label="鍒涘缓浜�">
+          <el-input
+            v-model="topqueryParams.createBy"
+            @keyup.enter.native="handleQuery"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="瀹℃牳鏃堕棿">
+        <el-form-item label="鍒涘彂閫佹椂闂�">
           <el-date-picker
             v-model="dateRange"
             style="width: 240px"
@@ -28,32 +34,17 @@
             end-placeholder="缁撴潫鏃ユ湡"
           ></el-date-picker>
         </el-form-item>
-        <el-form-item label="闅忚绫诲瀷" prop="status">
-          <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in topicoptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+
+        <el-form-item label="浠诲姟妯℃澘" prop="status">
+          <el-input
+            v-model="topqueryParams.templatename"
+            @keyup.enter.native="handleQuery"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="妯$増" prop="status">
-          <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
+        <el-form-item label="浠诲姟鐘舵��" prop="status">
+          <el-select v-model="topqueryParams.sendState" placeholder="璇烽�夋嫨">
             <el-option
-              v-for="item in topicoptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status">
-          <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in topicoptions"
+              v-for="item in dict.type.task_status"
               :key="item.value"
               :label="item.label"
               :value="item.value"
@@ -77,9 +68,28 @@
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
         <el-col :span="1.5">
-          <el-select v-model="tasktopic" placeholder="璇烽�夋嫨鏂板绫诲瀷">
+          <el-select
+            @change="handleQuerytask"
+            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-select
+            @change="handleQuery"
+            v-model="topqueryParams.type"
+            placeholder="璇烽�夋嫨鎵ц绫诲瀷"
+          >
+            <el-option
+              v-for="item in longtermlist"
               :key="item.value"
               :label="item.label"
               :value="item.value"
@@ -94,34 +104,11 @@
             size="medium"
             @click="handleAdd"
             :disabled="!tasktopic"
-            >鏂板</el-button
+            >鏂板缓浠诲姟</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">
+
+        <!-- <el-col :span="19">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -135,7 +122,7 @@
               >
             </div>
           </div>
-        </el-col>
+        </el-col> -->
         <!-- <el-col :span="1.5"> </el-col> -->
       </el-row>
       <!-- <right-toolbar
@@ -143,60 +130,82 @@
               @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="搴忓彿" fixed 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
+          width="120"
           align="center"
-          sortable
-          key="name"
-          prop="name"
+          key="taskName"
+          prop="taskName"
           :show-overflow-tooltip="true"
         />
         <el-table-column
           label="浠诲姟鎻忚堪"
+          width="280"
           align="center"
-          key="describe"
-          prop="describe"
+          key="taskDesc"
+          prop="taskDesc"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="鏈嶅姟椤圭洰"
+          width="120"
+          align="center"
+          key="templatename"
+          prop="templatename"
+          :show-overflow-tooltip="true"
         />
         <el-table-column
           label="寰呮墽琛�/鎬讳换鍔�"
           align="center"
           key="nickName"
           prop="nickName"
-        />
-
-        <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="longTask"
+          prop="longTask"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.longTask ? "闀挎湡浠诲姟" : "闈為暱鏈�" }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="鐘舵��"
+          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="鍒涘缓浜�"
           align="center"
-          key="create_by"
-          prop="create_by"
+          key="createBy"
+          prop="createBy"
           width="120"
           :show-overflow-tooltip="true"
         />
@@ -204,37 +213,54 @@
           label="鍒涘缓鏃堕棿"
           sortable
           align="center"
-          prop="create_time"
+          prop="createTime"
           width="160"
         >
           <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.create_time) }}</span>
+            <span>{{ formatTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
 
         <el-table-column
-          label="鐘舵��"
-          fixed="right"
-          align="center"
-          key="phonenumber"
-          prop="phonenumber"
-          width="120"
-        />
-        <el-table-column
           label="鎿嶄綔"
           fixed="right"
           align="center"
-          width="120"
+          width="180"
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
             <el-button
+              v-if="
+                (scope.row.sendState == 1 || scope.row.sendState == 3) &&
+                !scope.row.longTask
+              "
               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 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
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row, 1)"
+              ><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>
@@ -251,25 +277,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
@@ -286,58 +299,78 @@
         @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>
+      <el-tabs type="border-card" v-model="activname">
+        <el-tab-pane>
+          <span slot="label"><i class="el-icon-date"></i> 姝e父鍙戣捣</span>
+          <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"
+          >
+            鎵ц鏃ユ湡锛�<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>
+        </el-tab-pane>
+        <el-tab-pane label="绔嬪嵆鎵ц">
+          <div style="font-size: 20px; color: red; margin-bottom: 20px">
+            姝ゆ搷浣滃皢绔嬪嵆鍙戣捣骞舵墽琛屼换鍔�:{{ taskform.taskName }}锛岃璋ㄦ厧鎿嶄綔锛�
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+      <div style="text-align: right; margin: 20px 0">
+        <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>
@@ -345,7 +378,6 @@
 
 <script>
 import {
-  listUser,
   getUser,
   delUser,
   addUser,
@@ -353,13 +385,24 @@
   resetUserPwd,
   changeUserStatus,
 } from "@/api/system/user";
+import {
+  getTasklist,
+  getTaskInfo,
+  Editsingletask,
+  delTaskInfo,
+  Questionnairetasklist,
+  Questionnairetaskget,
+  Questionnairetasksponsor,
+  TaskTemplateSendExecution,
+} from "@/api/AiCentre/index";
+import store from "@/store";
 
 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"],
+  name: "Tasklist",
+  dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
   components: { Treeselect },
   data() {
     return {
@@ -378,7 +421,7 @@
       // 鐢ㄦ埛琛ㄦ牸鏁版嵁
       userList: null,
       // 寮瑰嚭灞傛爣棰�
-      title: "鏂板闂ㄨ瘖闅忚",
+      title: "鏂板褰卞儚闅忚",
       // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
       addalteropen: false,
       // 閮ㄩ棬鍚嶇О
@@ -391,46 +434,79 @@
       postOptions: [],
       // 瑙掕壊閫夐」
       roleOptions: [],
+      longTask: 0,
+      taskform: {
+        showDate: [],
+        showTimeMorn: [],
+        showTimeNight: [],
+        showTimeNoon: [],
+      },
+      taskformVisible: false,
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       inputValue: "",
-      previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
+      previewVisible: false, //褰卞儚闅忚棰勮寮规
+      TaskOperation: {},
       radio: "",
       radios: [],
-      previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
+      previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
       total: 0, // 鎬绘潯鏁�
-      ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
-      //棰勮闂ㄨ瘖闅忚淇℃伅
+      ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
+      //棰勮褰卞儚闅忚淇℃伅
       previewvalue: {
         username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
       },
+      longtermlist: [
+        {
+          value: 1,
+          label: "璇煶闅忚",
+        },
+        {
+          value: 2,
+          label: "闂嵎闅忚",
+        },
+        {
+          value: 3,
+          label: "瀹f暀鍏虫��",
+        },
+      ],
       taskoptions: [
         {
           value: "1",
-          label: "瀹f暀鏈嶅姟",
+          label: "蹇冪數闅忚",
         },
         {
           value: "2",
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: "3",
           label: "鍑洪櫌闅忚",
         },
         {
+          value: "3",
+          label: "褰卞儚闅忚",
+        },
+        {
           value: "4",
-          label: "澶嶈瘖鏈嶅姟",
+          label: "瀹f暀鍏虫��",
         },
         {
           value: "5",
-          label: "浣撴閫氱煡",
+          label: "浣撴闅忚",
         },
         {
           value: "6",
-          label: "闂嵎鏈嶅姟",
+          label: "婊℃剰搴﹁皟鏌�",
+        },
+        {
+          value: "7",
+          label: "鎮h�呮姤鍛�",
+        },
+
+        {
+          value: "8",
+          label: "鍏朵粬閫氱煡",
         },
       ],
-      tasktopic: null, //鏂板绫诲瀷
+      tasktopic: "2", //鏂板绫诲瀷
+      activname: "",
       value: [],
       list: [],
       loading: false,
@@ -528,31 +604,14 @@
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
+        type: 2,
         userName: undefined,
         tagid: undefined,
         topic: undefined,
       },
       propss: { multiple: true },
       options: [],
-
-      topicoptions: [
-        {
-          value: 1,
-          label: "寰呭鏍�",
-        },
-        {
-          value: 2,
-          label: "鎵ц涓�",
-        },
-        {
-          value: 3,
-          label: "鎵ц瀹屾垚",
-        },
-        {
-          value: 4,
-          label: "宸插仠姝�",
-        },
-      ],
+      checkboxlist: [],
       // 琛ㄥ崟鏍¢獙
       rules: {
         userName: [
@@ -603,10 +662,22 @@
   },
   watch: {},
   created() {
+    this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+      (obj) => obj.deptCode
+    );
+    this.topqueryParams.leavehospitaldistrictcodes =
+      store.getters.belongWards.map((obj) => obj.districtCode);
+    this.tasktopic = this.$route.query.tasktopic
+      ? this.$route.query.tasktopic
+      : this.tasktopic;
     this.getList();
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
     });
+    this.checkboxlist = store.getters.checkboxlist;
+  },
+  activated() {
+    this.getList();
   },
   // 鎼滅储
   mounted() {
@@ -615,19 +686,65 @@
     });
   },
   methods: {
-    /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */
+    /** 鏌ヨ浠诲姟鍒楄〃 */
     getList() {
       this.loading = true;
-      listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then(
-        (response) => {
-          console.log(response);
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
+      console.log(this.topqueryParams.type);
+
+      this.topqueryParams.serviceType = Number(this.tasktopic);
+      if (
+        this.tasktopic == 2 ||
+        this.tasktopic == 3 ||
+        this.tasktopic == 1 ||
+        this.tasktopic == 7 ||
+        this.tasktopic == 6
+      ) {
+        if (!this.topqueryParams.type) this.topqueryParams.type = '2';
+        this.longtermlist = [
+          {
+            value: 1,
+            label: "璇煶闅忚",
+          },
+          {
+            value: 2,
+            label: "闂嵎闅忚",
+          },
+        ];
+      } else if (this.tasktopic == 4 || this.tasktopic == 8) {
+        if (!this.topqueryParams.type) this.topqueryParams.type = '3';
+        this.longtermlist = [
+          {
+            value: 3,
+            label: "瀹f暀鍏虫��",
+          },
+        ];
+      } else if (this.tasktopic == 5) {
+        if (!this.topqueryParams.type) this.topqueryParams.type = '1';
+        this.longtermlist = [
+          {
+            value: 1,
+            label: "璇煶闅忚",
+          },
+          {
+            value: 2,
+            label: "闂嵎闅忚",
+          },
+        ];
+      }
+      // this.topqueryParams.typename = this.findLabelByValue(
+      //   this.taskoptions,
+      //   this.tasktopic
+      // );
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+      getTasklist(this.topqueryParams).then((response) => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.$forceUpdate();
+        this.loading = false;
+      });
     },
-    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+    // 鏌ョ湅褰卞儚闅忚璇︽儏
     Referencequestion(row) {
       this.previewVisible = true;
     },
@@ -645,26 +762,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 = {
@@ -684,6 +782,11 @@
       this.resetForm("form");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuerytask() {
+      this.topqueryParams.pageNum = 1;
+      // this.topqueryParams.type = '';
+      this.getList();
+    },
     handleQuery() {
       this.topqueryParams.pageNum = 1;
       this.getList();
@@ -724,41 +827,190 @@
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
-      // this.$router.push({
-      //   path: "/followvisit/tasklist/FollowupDetails/",
-      // });
-      this.$router.push({
-        path: "/followvisit/particty",
-        query: { type: this.tasktopic },
-      });
+      if (this.topqueryParams.type == 1) {
+        this.$router.push({
+          path: "/followvisit/particty",
+          query: {
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+          },
+        });
+      } else if (this.topqueryParams.type == 2) {
+        this.$router.push({
+          path: "/followvisit/QuestionnaireTask",
+          query: {
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+          },
+        });
+      } else if (this.topqueryParams.type == 3) {
+        this.$router.push({
+          path: "/followvisit/Missioncreation",
+          query: {
+            type: this.topqueryParams.type,
+            serviceType: 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 },
-      });
+    handleUpdate(row, newadd) {
+      if (this.topqueryParams.type == 1) {
+        this.$router.push({
+          path: "/followvisit/particty",
+          query: {
+            id: row.taskid,
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+            newadd: newadd, //鏄惁渚濈収鏂板缓
+          },
+        });
+      } else if (this.topqueryParams.type == 2) {
+        this.$router.push({
+          path: "/followvisit/QuestionnaireTask",
+          query: {
+            id: row.taskid,
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+            newadd: newadd,
+          },
+        });
+      } else if (this.topqueryParams.type == 3) {
+        this.$router.push({
+          path: "/followvisit/Missioncreation",
+          query: {
+            id: row.taskid,
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+            newadd: newadd,
+          },
+        });
+      }
     },
-    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
-    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);
+    // 鍒犻櫎浠诲姟
+    deletefn(row) {
+      this.$modal
+        .confirm(
+          '鏄惁鍒犻櫎浠诲姟鍚嶇О涓�"' +
+            row.taskName +
+            '"鐨勬暟鎹」锛屽垹闄ゅ悗涓嶅彲鎾ゅ洖锛佹槸鍚︾户缁�'
+        )
+        .then(() => {
+          delTaskInfo(row.taskid).then((res) => {
+            if (res.code == 200) {
+              this.getList();
+              this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+            }
           });
         })
         .catch(() => {});
+    },
+    // 浠诲姟鍙戣捣
+    sponsor(row) {
+      console.log(row, "浠诲姟淇℃伅");
+      this.taskform = row;
+      if (this.taskform.showDate && this.taskform.sendType != 2) {
+        this.taskform.showDate = this.taskform.showDate.split(",");
+      }
+      if (this.taskform.showTimeMorn && this.taskform.sendType != 2) {
+        this.taskform.showTimeMorn = this.taskform.showTimeMorn.split(",");
+      } else {
+        this.taskform.showTimeMorn = [];
+      }
+      if (this.taskform.showTimeNight && this.taskform.sendType != 2) {
+        this.taskform.showTimeNight = this.taskform.showTimeNight.split(",");
+      } else {
+        this.taskform.showTimeNight = [];
+      }
+      if (this.taskform.showTimeNoon && this.taskform.sendType != 2) {
+        this.taskform.showTimeNoon = this.taskform.showTimeNoon.split(",");
+      } else {
+        this.taskform.showTimeNoon = [];
+      }
+      if (this.taskform.sendState != 2 && this.taskform.sendType != 2) {
+        this.taskformVisible = true;
+      } else if (this.taskform.sendState != 2 && this.taskform.sendType == 2) {
+        this.TaskOperation.taskId = row.taskid;
+        this.TaskOperation.taskType = this.topqueryParams.type;
+        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("浠诲姟宸茬珛鍗虫墽琛�");
+              }
+            });
+          })
+          .catch(() => {});
+      } else {
+        this.$modal.msgError("浠诲姟宸插彂璧凤紝涓嶅彲鍐嶆鍙戣捣");
+      }
+    },
+    // 纭鍙戣捣
+    confirmSponsor(row) {
+      if (this.activname == 0) {
+        this.TaskOperation.taskId = row.taskid;
+        this.TaskOperation.taskType = this.topqueryParams.type;
+        this.TaskOperation.sendState = 2;
+        TaskTemplateSendExecution(this.TaskOperation).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("浠诲姟宸叉垚鍔熷姞鍏ユ墽琛岄槦鍒�");
+            this.taskformVisible = false;
+            this.getList();
+          }
+        });
+      } else if (this.activname == 1) {
+        this.immediateExecution(row);
+      }
+    },
+
+    // 绔嬪嵆鎵ц
+    immediateExecution(row) {
+      console.log(row, "浠诲姟淇℃伅");
+      if (row.sendState != 2) {
+        this.TaskOperation.taskType = this.topqueryParams.type;
+        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(() => {});
+      }
+    },
+
+    // 鏆傚仠
+    stop(row) {
+      console.log(row);
+      if (row.sendState == 2) {
+        this.TaskOperation.taskId = row.taskid;
+        this.TaskOperation.sendState = 3;
+        this.TaskOperation.sendType = "";
+        this.TaskOperation.taskType = row.type;
+        TaskTemplateSendExecution(this.TaskOperation).then((res) => {
+          this.$modal.msgSuccess("浠诲姟宸叉殏鍋�");
+          this.getList();
+        });
+      }
     },
 
     /** 鎻愪氦鎸夐挳 */
@@ -804,6 +1056,10 @@
         },
         `user_${new Date().getTime()}.xlsx`
       );
+    },
+    findLabelByValue(data, value) {
+      const item = data.find((item) => item.value === value);
+      return item ? item.label : null;
     },
   },
 };
@@ -916,6 +1172,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 {
@@ -923,6 +1197,9 @@
   }
 }
 
+::v-deep.el-button + .el-button {
+  margin-left: 0;
+}
 ::v-deep.el-checkbox-group {
   span {
     font-size: 24px;

--
Gitblit v1.9.3