From 6f35ca70caf02e1c2b7dbab32794c1cc1f5dbf60 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 24 十月 2024 11:15:47 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/tasklist/index.vue                     |   74 
 src/views/repositoryai/templateku/configurat/measurement.vue |    6 
 src/views/repositoryai/templateku/configurat/index.vue       |   29 
 src/views/patient/medtechnician/SpecializedService.vue       |  534 +++---
 src/views/patient/medtechnician/PatientChart.vue             | 1159 +++++++++++++++
 /dev/null                                                    | 1115 ---------------
 src/views/patient/propaganda/index.vue                       |  219 +-
 src/views/repositoryai/verbaltrick/particulars/index.vue     |    3 
 src/components/Regular/index.vue                             |   16 
 src/views/patient/medtechnician/Compositeeditdetails.vue     |  873 +++++++++++
 src/store/getters.js                                         |   65 
 src/views/patient/propaganda/particty.vue                    |    1 
 src/views/followvisit/discharge/index.vue                    |  327 ++--
 13 files changed, 2,736 insertions(+), 1,685 deletions(-)

diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
index 9e174c7..c04cb3a 100644
--- a/src/components/Regular/index.vue
+++ b/src/components/Regular/index.vue
@@ -70,6 +70,18 @@
               </el-input> </el-form-item
           ></el-col>
         </el-row>
+        <el-row :gutter="10" v-if="scriptType == 1">
+                      <el-form-item label="閫変腑鎻愮ず">
+                        <el-input
+                          style="width: 24vw"
+                          type="textarea"
+                          autosize
+                          placeholder="璇疯緭鍏ュ唴瀹�"
+                          v-model="item.prompt"
+                        >
+                        </el-input
+                      ></el-form-item>
+                    </el-row>
         <el-row>
           <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc" v-if="hasValue">
             <div class="xinz-inf">
@@ -267,6 +279,10 @@
       type: Boolean,
       default: true,
     },
+    scriptType: {
+      type: String,
+      default: '1',
+    },
     addoption: {
       type: Boolean,
       default: false,
diff --git a/src/store/getters.js b/src/store/getters.js
index 7434737..161fbbf 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -395,7 +395,68 @@
         cssClass: "",
         listClass: "",
       },
-    }
+    },
+  ],
+
+  // 鏈嶅姟绫诲瀷
+  checkboxlist: (state) => [
+    {
+      value: "1",
+      label: "浜哄伐",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: "2",
+      label: "绾歌川",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+
+    {
+      value: "3",
+      label: "鐢佃瘽",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: "4",
+      label: "鐭俊",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: "5",
+      label: "寰俊鍏紬鍙�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: "6",
+      label: "寰俊灏忕▼搴�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: "8",
+      label: "鏅鸿兘鏈哄櫒浜�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
   ],
   // 璇█
   languagelist: (state) => [
@@ -573,8 +634,6 @@
       },
     },
   ],
-
-
 };
 
 export default getters;
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 3dae2ed..7ad5da9 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1,29 +1,29 @@
 <template>
   <div class="app-container">
-    <div class="leftvlue" style="margin-bottom: 20px;">
-        <el-row :gutter="10">
-          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
-            <el-card
-              shadow="hover"
-              :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
-            >
-              <div style="padding: 8px" @click="$router.push(item.router)">
-                <span>{{ item.name }}</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ item.value }}
-                </div>
+    <div class="leftvlue" style="margin-bottom: 20px">
+      <el-row :gutter="10">
+        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+          <el-card
+            shadow="hover"
+            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+          >
+            <div style="padding: 8px" @click="$router.push(item.router)">
+              <span>{{ item.name }}</span>
+              <div
+                style="
+                  text-align: center;
+                  font-size: 18px;
+                  margin-top: 10px;
+                  font-weight: 600;
+                "
+              >
+                {{ item.value }}
               </div>
-            </el-card>
-          </el-col>
-        </el-row>
-      </div>
+            </div>
+          </el-card>
+        </el-col>
+      </el-row>
+    </div>
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
       <el-form
@@ -35,7 +35,10 @@
         label-width="98px"
       >
         <el-form-item label="浠诲姟鍚嶇О">
-          <el-input v-model="topqueryParams.taskName" placeholder="璇烽�夋嫨浠诲姟鍚嶇О"></el-input>
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
         </el-form-item>
 
         <el-form-item label="鍑洪櫌鏃堕棿">
@@ -155,8 +158,8 @@
       <el-table
         v-loading="loading"
         :data="userList"
-         height="660"
-         :row-class-name="tableRowClassName"
+        height="660"
+        :row-class-name="tableRowClassName"
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="50" align="center" />
@@ -177,80 +180,61 @@
           prop="sendname"
         />
         <el-table-column
-        label="浠诲姟鐘舵��"
-        align="center"
-        key="sendstate"
-        prop="sendstate"
-        width="120"
+          label="浠诲姟鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
         >
-        <template slot-scope="scope">
-          <div v-if="scope.row.sendstate == 1">
-            <el-tag type="primary" :disable-transitions="false"
+          <template slot-scope="scope">
+            <div v-if="scope.row.sendstate == 1">
+              <el-tag type="primary" :disable-transitions="false"
                 >琚鍙�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 2">
-                <el-tag type="primary" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 2">
+              <el-tag type="primary" :disable-transitions="false"
                 >寰呭彂閫�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 3">
-                <el-tag type="success" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 3">
+              <el-tag type="success" :disable-transitions="false"
                 >宸插彂閫佹湭棰嗗彇</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 4">
-                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
-              </div>
-              <div v-if="scope.row.sendstate == 5">
-                <el-tag type="danger" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 4">
+              <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+            </div>
+            <div v-if="scope.row.sendstate == 5">
+              <el-tag type="danger" :disable-transitions="false"
                 >鍙戦�佸け璐�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 6">
-                <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 6">
+              <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
+            </div>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
           label="浠诲姟寮傚父璇存槑"
           width="120"
           align="center"
           key="remark"
-          prop="remark"
+          prop="remark" -->
         />
 
-          <!-- <el-table-column
-          label="缁撴灉鐘舵��"
-          align="center"
-          key="excep"
-          prop="excep"
-          width="120"
-          >
-          <template slot-scope="scope">
-            <div v-if="scope.row.sendstate == 6">
-              <dict-tag
-              :options="dict.type.sys_yujing"
-              :value="scope.row.excep"
-              />
-            </div>
-            <div v-else>
-              <span></span>
-            </div>
-          </template>
-        </el-table-column> -->
         <el-table-column
-        label="浜哄伐澶勭悊鎰忚"
-        align="center"
-        key="suggest"
-        prop="suggest"
-        width="120"
+          label="浜哄伐澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
         >
-        <template slot-scope="scope">
-          <dict-tag
-          :options="dict.type.sys_suggest"
-          :value="scope.row.suggest"
-          />
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
           </template>
         </el-table-column>
         <el-table-column
@@ -272,34 +256,34 @@
           </template>
         </el-table-column>
         <el-table-column
-        label="鍑洪櫌鏃ユ湡"
-        width="200"
-        align="center"
-        key="endtime"
-        prop="endtime"
+          label="鍑洪櫌鏃ユ湡"
+          width="200"
+          align="center"
+          key="endtime"
+          prop="endtime"
         >
-        <template slot-scope="scope">
-          <span>{{ formatTime(scope.row.endtime) }}</span>
-        </template></el-table-column
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
         >
         <el-table-column
-        label="搴旈殢璁挎棩鏈�"
-        width="200"
-        align="center"
-        key="longSendTime"
-        prop="longSendTime"
+          label="搴旈殢璁挎棩鏈�"
+          width="200"
+          align="center"
+          key="longSendTime"
+          prop="longSendTime"
         >
-        <template slot-scope="scope">
-          <span>{{ formatTime(scope.row.longSendTime) }}</span>
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.longSendTime) }}</span>
           </template></el-table-column
-          >
-          <el-table-column
+        >
+        <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
           align="center"
           key="endDay"
           prop="endDay"
-          >
+        >
           <template slot-scope="scope">
             <span>{{
               scope.row.endDay ? scope.row.endDay + "澶�" : "鏃ユ湡缂哄け"
@@ -334,7 +318,6 @@
           key="drname"
           prop="drname"
         />
-
 
         <!-- <el-table-column
           label="鐥呭巻鍙�"
@@ -382,59 +365,56 @@
           prop="templatename"
           width="200"
         />
+        <el-table-column
 
-
-        <!-- <el-table-column
-          label="璐d换鍖诲笀"
+          label="浠诲姟鎵ц鏂瑰紡"
           align="center"
-          key="drname"
-          prop="drname"
-          width="120"
-        /> -->
-
-        <!-- <el-table-column
-          label="鍑洪櫌鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
+          key="preachform"
+          prop="preachform"
           width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column> -->
-        <!-- <el-table-column
-          label="闅忚鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span v-if="scope.row.sendType != 3">{{
-              formatTime(scope.row.createTime)
-            }}</span>
-            <span v-else>鍗冲埢鍙戦��</span>
-          </template>
-        </el-table-column> -->
-
-        <!-- <el-table-column
-          label="浠诲姟鐘舵��"
-          fixed="right"
-          align="center"
-          key="sendstate"
-          prop="sendstate"
-          width="120"
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <dict-tag :options="serviceState" :value="scope.row.sendstate" />
+            <span v-for="item in scope.row.preachform"
+              >{{ item }}銆�
+            </span>
           </template>
-        </el-table-column> -->
+        </el-table-column>
+        <el-table-column
 
+          label="浠诲姟鍙戦�佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+
+          label="浠诲姟缁撴灉璇存槑"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tag
+              type="success"
+              v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+              >{{ scope.row.remark }}</el-tag
+            >
+            <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+          </template>
+        </el-table-column>
         <el-table-column
           label="鎿嶄綔"
-          fixed="right"
+
           align="center"
           width="200"
           class-name="small-padding fixed-width"
@@ -773,7 +753,7 @@
         pageNum: 1,
         pageSize: 10,
         serviceType: 2,
-        searchscope:2,
+        searchscope: 2,
       },
       propss: { multiple: true },
       options: [],
@@ -815,6 +795,7 @@
         },
       ],
       serviceState: [],
+      checkboxlist: [],
       // 琛ㄥ崟鏍¢獙
       rules: {},
     };
@@ -822,6 +803,8 @@
   watch: {},
   created() {
     this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+
     this.getList();
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
@@ -852,17 +835,25 @@
       this.loading = true;
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
-        this.cardlist[0].value=Number(response.rows[0].wzx)+Number(response.rows[0].ysf);
-        this.cardlist[1].value=response.rows[0].ysf;
-        this.cardlist[2].value=response.rows[0].wzx;
-        this.cardlist[3].value=response.rows[0].yc;
-        this.cardlist[4].value=response.rows[0].fssb;
-        this.cardlist[5].value=response.rows[0].blq;
-        this.cardlist[6].value=response.rows[0].yfs;
+        this.cardlist[0].value =
+          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+        this.cardlist[1].value = response.rows[0].ysf;
+        this.cardlist[2].value = response.rows[0].wzx;
+        this.cardlist[3].value = response.rows[0].yc;
+        this.cardlist[4].value = response.rows[0].fssb;
+        this.cardlist[5].value = response.rows[0].blq;
+        this.cardlist[6].value = response.rows[0].yfs;
         this.userList.forEach((item) => {
           if (item.endtime) {
             item.endDay = this.daysBetween(item.endtime);
           }
+          const idArray = item.preachform.split(",");
+          item.preachform = idArray.map((value) => {
+            // 鏌ユ壘id瀵瑰簲鐨勫璞�
+            const item = this.checkboxlist.find((item) => item.value == value);
+            // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+            return item ? item.label : null;
+          });
         });
         this.total = response.total;
         this.loading = false;
@@ -955,7 +946,7 @@
         pageNum: 1,
         pageSize: 10,
         serviceType: 2,
-        searchscope:2,
+        searchscope: 2,
       };
       this.handleQuery();
     },
@@ -1100,10 +1091,10 @@
     // 渚挎嵎鎸夐挳
     toleadExport(too) {
       if (too == 1) {
-        this.topqueryParams.sendstate=4;
-        this.topqueryParams.excep=null;
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
       } else if (too == 2) {
-        this.topqueryParams.excep=1;
+        this.topqueryParams.excep = 1;
       }
       this.handleQuery();
     },
@@ -1118,12 +1109,12 @@
       );
     },
     // 寮傚父鍒楁覆鏌�
-    tableRowClassName({row, rowIndex}) {
-        if (row.excep == 1) {
-          return 'warning-row';
-        }
-        return '';
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
       }
+      return "";
+    },
   },
 };
 </script>
@@ -1140,8 +1131,8 @@
   height: 50px;
 }
 ::v-deep.el-table .warning-row {
-    background: #eec4c4;
-  }
+  background: #eec4c4;
+}
 
 .documentf {
   display: flex;
diff --git a/src/views/followvisit/record/index.vue b/src/views/followvisit/record/index.vue
deleted file mode 100644
index f965cb6..0000000
--- a/src/views/followvisit/record/index.vue
+++ /dev/null
@@ -1,828 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <!--鐢ㄦ埛鏁版嵁-->
-      <el-form
-        :model="topqueryParams"
-        ref="queryForm"
-        size="small"
-        :inline="true"
-        v-show="showSearch"
-        label-width="98px"
-      >
-        <el-form-item label="浠诲姟鍚嶇О">
-          <el-input v-model="topqueryParams.name"></el-input>
-        </el-form-item>
-        <el-form-item label="瀹℃牳浜�">
-          <el-input v-model="topqueryParams.name"></el-input>
-        </el-form-item>
-        <el-form-item label="瀹℃牳鏃堕棿">
-          <el-date-picker
-            v-model="dateRange"
-            style="width: 240px"
-            value-format="yyyy-MM-dd"
-            type="daterange"
-            range-separator="-"
-            start-placeholder="寮�濮嬫棩鏈�"
-            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>
-        <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>
-        <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>
-        <el-form-item>
-          <el-button
-            type="primary"
-            icon="el-icon-search"
-            size="medium"
-            @click="handleQuery"
-            >鎼滅储</el-button
-          >
-          <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
-            >閲嶇疆</el-button
-          >
-        </el-form-item>
-      </el-form>
-      <el-divider></el-divider>
-      <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
-          <el-button
-            type="primary"
-            plain
-            icon="el-icon-plus"
-            size="medium"
-            @click="handleAdd"
-            v-hasPermi="['system:user:add']"
-            >鏂板</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">
-              <el-button
-                type="warning"
-                plain
-                icon="el-icon-download"
-                size="medium"
-                @click="handleExport"
-                v-hasPermi="['system:user:export']"
-                >瀵煎嚭</el-button
-              >
-            </div>
-          </div>
-        </el-col>
-        <!-- <el-col :span="1.5"> </el-col> -->
-      </el-row>
-      <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-column
-          label="濮撳悕"
-          fixed
-          align="center"
-          key="sendname"
-          prop="sendname"
-        />
-        <el-table-column
-          label="鐥呭巻鍙�"
-          align="center"
-          sortable
-          key="userName"
-          prop="userName"
-          width="120"
-        />
-        <el-table-column label="骞撮緞" align="center" key="age" prop="age" />
-        <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" />
-        <el-table-column
-          label="绉戝/鐥呭尯"
-          align="center"
-          key="deptname"
-          prop="deptname"
-          width="120"
-        >
-        </el-table-column>
-
-        <el-table-column
-          label="鐤剧梾鍚嶇О"
-          align="center"
-          key="icdName"
-          prop="icdName"
-          width="120"
-          :show-overflow-tooltip="true"
-        >
-        </el-table-column>
-        <el-table-column
-          label="浠诲姟鍚嶇О"
-          align="center"
-          key="taskName"
-          prop="taskName"
-          width="120"
-        />
-
-        <el-table-column
-          label="闅忚鏂瑰紡锛堥渶璋冩暣鏍煎紡锛�"
-          align="center"
-          key="serviceform"
-          prop="serviceform"
-          width="120"
-        />
-        <el-table-column
-          label="闅忚浜哄憳"
-          align="center"
-          key="operator"
-          prop="operator"
-          width="120"
-        />
-
-        <el-table-column
-          label="灏辫瘖鏃堕棿"
-          sortable
-          align="center"
-          prop="admindate"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.admindate) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="闅忚鏃堕棿"
-          sortable
-          align="center"
-          prop="finishtime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.finishtime) }}</span>
-          </template>
-        </el-table-column>
-
-        <el-table-column
-          label="闅忚鐘舵��"
-          fixed="right"
-          align="center"
-          key="sendstate"
-          prop="sendstate"
-          width="120"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <dict-tag :options="serviceState" :value="scope.row.sendstate" />
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="浠诲姟璇︽儏"
-          fixed="right"
-          align="center"
-          width="200"
-          class-name="small-padding fixed-width"
-        >
-          <template slot-scope="scope">
-            <el-button
-              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="handleDelete(scope.row)"
-              v-hasPermi="['system:user:edit']"
-              ><span class="button-sc"
-                ><i class="el-icon-delete"></i>鍒犻櫎</span
-              ></el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination
-        v-show="total > 0"
-        :total="total"
-        :page.sync="topqueryParams.pageNum"
-        :limit.sync="topqueryParams.pageSize"
-        @pagination="getList"
-      />
-    </el-row>
-    <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 -->
-    <el-dialog
-      :title="title"
-      :visible.sync="addalteropen"
-      width="700px"
-      append-to-body
-    >
-      <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>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import {
-  delUser,
-  addUser,
-  updateUser,
-  resetUserPwd,
-  changeUserStatus,
-} from "@/api/system/user";
-import { getTaskservelist } 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"],
-  components: { Treeselect },
-  data() {
-    return {
-      // 閬僵灞�
-      loading: true,
-      // 閫変腑鏁扮粍
-      ids: [],
-      // 闈炲崟涓鐢�
-      single: true,
-      // 闈炲涓鐢�
-      multiple: true,
-      // 鏄剧ず鎼滅储鏉′欢
-      showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
-      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
-      userList: null,
-      // 寮瑰嚭灞傛爣棰�
-      title: "鏂板闂ㄨ瘖闅忚",
-      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
-      addalteropen: false,
-      // 閮ㄩ棬鍚嶇О
-      deptName: undefined,
-      // 榛樿瀵嗙爜
-      initPassword: undefined,
-      // 鏃ユ湡鑼冨洿
-      dateRange: [],
-      // 宀椾綅閫夐」
-      postOptions: [],
-      // 瑙掕壊閫夐」
-      roleOptions: [],
-      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
-      inputVisible: false,
-      inputValue: "",
-      previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
-      radio: "",
-      radios: [],
-      previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
-      total: 0, // 鎬绘潯鏁�
-      ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
-      //棰勮闂ㄨ瘖闅忚淇℃伅
-      previewvalue: {
-        username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
-      },
-      value: [],
-      list: [],
-      loading: false,
-      states: [
-        "Alabama",
-        "Alaska",
-        "Arizona",
-        "Arkansas",
-        "California",
-        "Colorado",
-        "Connecticut",
-        "Delaware",
-        "Florida",
-        "Georgia",
-        "Hawaii",
-        "Idaho",
-        "Illinois",
-        "Indiana",
-        "Iowa",
-        "Kansas",
-        "Kentucky",
-        "Louisiana",
-        "Maine",
-        "Maryland",
-        "Massachusetts",
-        "Michigan",
-        "Minnesota",
-        "Mississippi",
-        "Missouri",
-        "Montana",
-        "Nebraska",
-        "Nevada",
-        "New Hampshire",
-        "New Jersey",
-        "New Mexico",
-        "New York",
-        "North Carolina",
-        "North Dakota",
-        "Ohio",
-        "Oklahoma",
-        "Oregon",
-        "Pennsylvania",
-        "Rhode Island",
-        "South Carolina",
-        "South Dakota",
-        "Tennessee",
-        "Texas",
-        "Utah",
-        "Vermont",
-        "Virginia",
-        "Washington",
-        "West Virginia",
-        "Wisconsin",
-        "Wyoming",
-      ],
-      pickerOptions: {
-        disabledDate(time) {
-          return time.getTime() > Date.now();
-        },
-        shortcuts: [
-          {
-            text: "浠婂ぉ",
-            onClick(picker) {
-              picker.$emit("pick", new Date());
-            },
-          },
-          {
-            text: "鏄ㄥぉ",
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", date);
-            },
-          },
-          {
-            text: "涓�鍛ㄥ墠",
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", date);
-            },
-          },
-        ],
-      },
-      // 琛ㄥ崟鍙傛暟
-      form: {
-        phonenumber: "",
-        totagid: "",
-        types: "",
-        nickName: "",
-        qystatus: "",
-        btstatus: "",
-      },
-      topqueryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        hospType: 2,
-      },
-      propss: { multiple: true },
-      options: [],
-
-      topicoptions: [
-        {
-          value: 1,
-          label: "寰呭鏍�",
-        },
-        {
-          value: 2,
-          label: "鎵ц涓�",
-        },
-        {
-          value: 3,
-          label: "鎵ц瀹屾垚",
-        },
-        {
-          value: 4,
-          label: "宸插仠姝�",
-        },
-      ],
-      // 琛ㄥ崟鏍¢獙
-      rules: {},
-      serviceState: [],
-    };
-  },
-  watch: {},
-  created() {
-    this.serviceState = store.getters.serviceState;
-    this.getList();
-    this.getConfigKey("sys.user.initPassword").then((response) => {
-      this.initPassword = response.msg;
-    });
-  },
-  // 鎼滅储
-  mounted() {
-    this.list = this.states.map((item) => {
-      return { value: `value:${item}`, label: `label:${item}` };
-    });
-  },
-  methods: {
-    /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */
-    getList() {
-      this.loading = true;
-      getTaskservelist(this.topqueryParams).then((response) => {
-        this.userList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
-    Referencequestion(row) {
-      this.previewVisible = true;
-    },
-    // 娣诲姞寮规鎼滅储
-    remoteMethod(query) {
-      if (query !== "") {
-        this.loading = true;
-        setTimeout(() => {
-          this.loading = false;
-          this.options = this.list.filter((item) => {
-            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
-          });
-        }, 200);
-      } else {
-        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 = {
-        userId: undefined,
-        deptId: undefined,
-        userName: undefined,
-        nickName: undefined,
-        password: undefined,
-        phonenumber: undefined,
-        email: undefined,
-        sex: undefined,
-        status: "0",
-        remark: undefined,
-        postIds: [],
-        roleIds: [],
-      };
-      this.resetForm("form");
-    },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.topqueryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.topqueryParams.deptId = undefined;
-      this.$refs.tree.setCurrentKey(null);
-      this.handleQuery();
-    },
-    // 澶氶�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.userId);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    //鍒犻櫎閫夐」
-    handleClose(tag) {
-      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
-    },
-    //瑙﹀彂鏂板杈撳叆
-    showInput() {
-      this.inputVisible = true;
-      this.$nextTick((_) => {
-        this.$refs.saveTagInput.$refs.input.focus();
-      });
-    },
-    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
-    handleInputConfirm() {
-      let inputValue = this.inputValue;
-      if (inputValue) {
-        this.dynamicTags.push(inputValue);
-      }
-      this.inputVisible = false;
-      this.inputValue = "";
-    },
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd() {
-      this.$router.push({
-        path: "/followvisit/particty",
-        query: { type: 7 },
-      });
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.$router.push({
-        path: "/followvisit/record/detailpage/",
-        query: { id: "1" },
-      });
-    },
-    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
-    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(() => {});
-    },
-
-    /** 鎻愪氦鎸夐挳 */
-    submitForm: function () {
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          if (this.form.userId != undefined) {
-            updateUser(this.form).then((response) => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addUser(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const userIds = row.userId || this.ids;
-      this.$modal
-        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
-        .then(function () {
-          return delUser(userIds);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-        })
-        .catch(() => {});
-    },
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-    handleExport() {
-      this.download(
-        "system/user/export",
-        {
-          ...this.topqueryParams,
-        },
-        `user_${new Date().getTime()}.xlsx`
-      );
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.el-button--primary.is-plain {
-  color: #ffffff;
-  background: #409eff;
-  border-color: #4fabe9;
-}
-
-.document {
-  width: 100px;
-  height: 50px;
-}
-
-.documentf {
-  display: flex;
-  justify-content: flex-end;
-}
-
-.download {
-  text-align: center;
-
-  .el-upload__tip {
-    font-size: 23px;
-  }
-
-  .el-upload__text {
-    font-size: 23px;
-  }
-}
-
-.uploading {
-  margin-top: 20px;
-  margin: 20px;
-  padding: 30px;
-  background: #ffffff;
-  border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
-}
-
-.el-tag + .el-tag {
-  margin-left: 10px;
-}
-
-.button-new-tag {
-  margin-left: 10px;
-  height: 32px;
-  line-height: 30px;
-  padding-top: 0;
-  padding-bottom: 0;
-}
-
-.input-new-tag {
-  width: 90px;
-  margin-left: 10px;
-  vertical-align: bottom;
-}
-
-.drexamine {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  padding: 30px;
-  background: #daeaf5;
-
-  img {
-    width: 100px;
-    height: 100px;
-  }
-}
-
-.qrcode-dialo {
-  // text-align: center;
-  //   display: flex;
-  margin: 20px;
-  padding: 30px;
-  background: #edf1f7;
-  border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
-
-  .topic-dev {
-    margin-bottom: 25px;
-    font-size: 20px !important;
-
-    .dev-text {
-      margin-bottom: 10px;
-    }
-  }
-}
-.button-bb {
-  font-weight: 500;
-  color: #2ba05c;
-}
-.button-xq {
-  font-weight: 500;
-  color: #409eff;
-}
-.button-sc {
-  font-weight: 500;
-  color: #dd302a;
-}
-.button-zx {
-  background: #4fabe9;
-  padding: 5px;
-  border-radius: 1px;
-  color: #ffffff;
-}
-
-::v-deep.el-radio-group {
-  span {
-    font-size: 24px;
-  }
-}
-
-::v-deep.el-checkbox-group {
-  span {
-    font-size: 24px;
-  }
-}
-</style>
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 0d4f58b..6f173c5 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -71,7 +71,7 @@
           <el-select
             @change="handleQuery"
             v-model="tasktopic"
-            placeholder="璇烽�夋嫨鏂板绫诲瀷"
+            placeholder="璇烽�夋嫨鏈嶅姟绫诲瀷"
           >
             <el-option
               v-for="item in taskoptions"
@@ -82,11 +82,8 @@
             </el-option>
           </el-select>
         </el-col>
-        <!-- <el-col :span="1.5">
-          <el-select
-            v-model="longTask"
-            placeholder="璇烽�夋嫨浠诲姟绫诲瀷"
-          >
+        <el-col :span="1.5">
+          <el-select v-model="topqueryParams.type" placeholder="璇烽�夋嫨鎵ц绫诲瀷">
             <el-option
               v-for="item in longtermlist"
               :key="item.value"
@@ -95,7 +92,7 @@
             >
             </el-option>
           </el-select>
-        </el-col> -->
+        </el-col>
         <el-col :span="1.5">
           <el-button
             type="primary"
@@ -457,12 +454,16 @@
       },
       longtermlist: [
         {
-          value: "1",
-          label: "闀挎湡浠诲姟",
+          value: 1,
+          label: "璇煶闅忚",
         },
         {
-          value: "0",
-          label: "鏅�氫换鍔�",
+          value: 2,
+          label: "闂嵎闅忚",
+        },
+        {
+          value: 3,
+          label: "瀹f暀鍏虫��",
         },
       ],
       taskoptions: [
@@ -606,7 +607,7 @@
       },
       propss: { multiple: true },
       options: [],
-
+      checkboxlist:[],
       // 琛ㄥ崟鏍¢獙
       rules: {
         userName: [
@@ -669,7 +670,7 @@
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
     });
-    // this.taskoptions = store.getters.Serviceauthority;
+    this.checkboxlist = store.getters.checkboxlist;
   },
   activated() {
     this.getList();
@@ -696,13 +697,37 @@
         this.tasktopic == 6
       ) {
         this.topqueryParams.type = 2;
-        this.TaskOperation.taskType = 2;
+        this.longtermlist = [
+          {
+            value: 1,
+            label: "璇煶闅忚",
+          },
+          {
+            value: 2,
+            label: "闂嵎闅忚",
+          },
+        ];
       } else if (this.tasktopic == 4 || this.tasktopic == 8) {
         this.topqueryParams.type = 3;
-        this.TaskOperation.taskType = 3;
+        this.longtermlist = [
+          {
+            value: 3,
+            label: "瀹f暀鍏虫��",
+          },
+
+        ];
       } else if (this.tasktopic == 5) {
         this.topqueryParams.type = 1;
-        this.TaskOperation.taskType = 1;
+        this.longtermlist = [
+          {
+            value: 1,
+            label: "璇煶闅忚",
+          },
+          {
+            value: 2,
+            label: "闂嵎闅忚",
+          },
+        ];
       }
       // this.topqueryParams.typename = this.findLabelByValue(
       //   this.taskoptions,
@@ -710,14 +735,12 @@
       // );
       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;
-        }
-      );
+      getTasklist(this.topqueryParams).then((response) => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.$forceUpdate();
+        this.loading = false;
+      });
     },
     // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
     Referencequestion(row) {
@@ -901,6 +924,7 @@
         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
@@ -926,6 +950,7 @@
     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) {
@@ -943,6 +968,7 @@
     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;
diff --git a/src/views/patient/medtechnician/Compositeeditdetails.vue b/src/views/patient/medtechnician/Compositeeditdetails.vue
new file mode 100644
index 0000000..61f49c8
--- /dev/null
+++ b/src/views/patient/medtechnician/Compositeeditdetails.vue
@@ -0,0 +1,873 @@
+<template>
+  <div>
+    <div class="Followuserinfo">
+      <div>
+        <div class="userinfo-text">
+          <!-- <span>鎮h�呮湇鍔¤鎯�</span> -->
+          <div class="headline">
+            <div>鏈嶅姟鎮h�呭垪琛�</div>
+            <div style="margin-left: 20px">
+              <el-button
+                icon="el-icon-download"
+                v-if="!Whetherall"
+                type="success"
+                @click="getTaskservedr()"
+                >瀵煎叆鏈嶅姟鎮h��</el-button
+              >
+            </div>
+          </div>
+          <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> -->
+        </div>
+      </div>
+      <div>
+        <el-table :data="logsheetlist" style="width: 100%">
+          <el-table-column
+            prop="sendname"
+            align="center"
+            key="sendname"
+            label="濮撳悕"
+          >
+          </el-table-column>
+          <el-table-column prop="sfz" align="center" key="sfz" label="韬唤璇佸彿">
+          </el-table-column>
+          <el-table-column
+            prop="telcode"
+            align="center"
+            key="telcode"
+            label="鐢佃瘽"
+          >
+          </el-table-column>
+          <el-table-column
+            label="鍑洪櫌鏃ユ湡"
+            width="200"
+            align="center"
+            key="endtime"
+            prop="endtime"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.endtime) }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
+            label="鐥呭尯"
+            width="120"
+            align="center"
+            key="leavehospitaldistrictname"
+            prop="leavehospitaldistrictname"
+          />
+          <el-table-column
+            label="绉戝"
+            width="120"
+            align="center"
+            key="deptname"
+            prop="deptname"
+          />
+          <el-table-column
+            label="璐d换鎶ゅ+"
+            width="120"
+            align="center"
+            key="nurseName"
+            prop="nurseName"
+          />
+          <el-table-column
+            label="涓绘不鍖荤敓"
+            width="120"
+            align="center"
+            key="drname"
+            prop="drname"
+          />
+
+          <el-table-column
+            label="澶勭悊鎰忚"
+            align="center"
+            key="suggest"
+            prop="suggest"
+            width="120"
+          >
+          </el-table-column>
+
+          <!-- <el-table-column
+            label="鎿嶄綔"
+            fixed="right"
+            align="center"
+            width="200"
+            class-name="small-padding fixed-width"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="medium"
+                type="text"
+                @click="Seedetails(scope.row)"
+                v-hasPermi="['system:user:edit']"
+                ><span class="button-zx"
+                  ><i class="el-icon-s-order"></i>鏌ョ湅鏈嶅姟</span
+                ></el-button
+              >
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </div>
+    </div>
+    <el-card style="margin: 20px" class="box-card">
+      <div class="presentation">
+        <div class="presentation-left">
+          <div class="headline">
+            <div>浠诲姟娴佺▼</div>
+
+            <div style="margin-left: 20px">
+              <el-button
+                icon="el-icon-plus"
+                v-if="!Whetherall"
+                type="primary"
+                @click="getTaskservelist()"
+                >娣诲姞浠诲姟娴佺▼</el-button
+              >
+            </div>
+          </div>
+          <el-divider></el-divider>
+          <div class="block">
+            <el-timeline>
+              <el-timeline-item color="#5cb3cc" placement="top" hide-timestamp>
+                <div class="custom-timestamp">
+                  <span
+                    >鍑洪櫌绗�<span style="color: #1661ab; font-size: 20px">{{
+                      5
+                    }}</span
+                    >澶╂墽琛�</span
+                  >
+                </div>
+                <div @click="singletask">
+                  <el-card shadow="hover">
+                    <h2 style="color: #1a94bc; font-weight: 600">
+                      闂嵎闅忚<span
+                        style="font-size: 16px; margin-left: 10px; color: black"
+                        >蹇冭绠″唴绉戦殢璁�</span
+                      >
+                    </h2>
+                    <p>鐜嬪皬铏� 鍒涘缓浜� 2018/4/12 20:46</p>
+                  </el-card>
+                </div>
+              </el-timeline-item>
+              <el-timeline-item color="#5cb3cc" hide-timestamp placement="top">
+                <div class="custom-timestamp">
+                  <span
+                    >鍑洪櫌绗�<span style="color: #1661ab; font-size: 20px">{{
+                      6
+                    }}</span
+                    >澶╂墽琛�</span
+                  >
+                </div>
+                <el-card shadow="hover">
+                  <h2 style="color: #1a94bc; font-weight: 600">
+                    璇煶闅忚<span
+                      style="font-size: 16px; margin-left: 10px; color: black"
+                      >璇煶涓�鍙烽殢璁�</span
+                    >
+                  </h2>
+                  <p>鐜嬪皬铏� 鍒涘缓浜� 2018/4/3 20:46</p>
+                </el-card>
+              </el-timeline-item>
+              <el-timeline-item color="#5cb3cc" hide-timestamp placement="top">
+                <div class="custom-timestamp">
+                  <span
+                    >鍑洪櫌绗�<span style="color: #1661ab; font-size: 20px">{{
+                      8
+                    }}</span
+                    >澶╂墽琛�</span
+                  >
+                </div>
+                <el-card shadow="hover">
+                  <h2 style="color: #1a94bc; font-weight: 600">
+                    瀹f暀闅忚<span
+                      style="font-size: 16px; margin-left: 10px; color: black"
+                      >绠¢ゲ绗簩娆″鏁�</span
+                    >
+                  </h2>
+                  <p>鐜嬪皬铏� 鍒涘缓浜� 2018/4/2 20:46</p>
+                </el-card>
+              </el-timeline-item>
+            </el-timeline>
+          </div>
+        </div>
+        <el-divider direction="vertical"></el-divider>
+        <div class="presentation-right">
+          <el-form
+            :model="ruleForm"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="100px"
+            class="demo-ruleForm"
+          >
+            <div class="headline">鍩虹淇℃伅缂栬緫</div>
+            <el-divider></el-divider>
+            <div style="margin: 15px; margin-top: 50px">
+              <el-form-item label="浠诲姟缁勫悕绉�" prop="name">
+                <el-input
+                  v-model="ruleForm.switchText"
+                  placeholder="璇疯緭鍏�"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="浠诲姟缁勬弿杩�" prop="name">
+                <el-input
+                  type="textarea"
+                  :rows="2"
+                  v-model="ruleForm.ms"
+                  placeholder="璇疯緭鍏�"
+                ></el-input>
+              </el-form-item>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="鏄惁鍚敤" prop="resource">
+                    <el-select v-model="ruleForm.isEnable" placeholder="璇烽�夋嫨">
+                      <el-option
+                        v-for="item in usable"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select> </el-form-item
+                ></el-col>
+                <el-col :span="12">
+                  <el-form-item label="鏄惁闀挎湡浠诲姟" prop="resource">
+                    <el-select v-model="ruleForm.isEnd" placeholder="璇烽�夋嫨">
+                      <el-option
+                        v-for="item in usablend"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select> </el-form-item
+                ></el-col>
+              </el-row>
+              <!-- 鍗曚换鍔″熀纭�鏁版嵁 -->
+              <el-form-item label="閫変腑浠诲姟鍚嶇О" prop="name">
+                <el-input
+                  v-model="ruleForm.switchText"
+                  placeholder="璇疯緭鍏�"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="閫変腑妯℃澘鍚嶇О" prop="name">
+                <el-input v-model="ruleForm.mb" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="寮�濮嬫墽琛屾椂闂�" prop="resource">
+                    <el-input
+                      v-model="ruleForm.switchText"
+                      placeholder="璇疯緭鍏�"
+                    ></el-input> </el-form-item
+                ></el-col>
+                <el-col :span="12">
+                  <el-form-item label="鏄惁闀挎湡浠诲姟" prop="resource">
+                    <el-input
+                      v-model="ruleForm.switchText"
+                      placeholder="璇疯緭鍏�"
+                    ></el-input> </el-form-item
+                ></el-col>
+              </el-row>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="鏄惁鍚敤琛ュ伩" prop="resource">
+                    <el-select v-model="ruleForm.isEnable" placeholder="璇烽�夋嫨">
+                      <el-option
+                        v-for="item in usable"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select> </el-form-item
+                ></el-col>
+                <el-col :span="12">
+                  <el-form-item label="浠诲姟绫诲瀷" prop="resource">
+                    <el-select v-model="ruleForm.isEnd" placeholder="璇烽�夋嫨">
+                      <el-option
+                        v-for="item in usablend"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select> </el-form-item
+                ></el-col>
+              </el-row>
+              <el-form-item>
+                <el-button type="primary" @click="submitForm('ruleForm')"
+                  >淇濆瓨浠诲姟缁�</el-button
+                >
+                <el-button
+                  v-if="ruleForm.id"
+                  type="primary"
+                  plain
+                  @click="modification('edit')"
+                  >鏇存柊娴佺▼</el-button
+                >
+
+                <el-button @click="resetForm('ruleForm')">鍏抽棴</el-button>
+              </el-form-item>
+            </div>
+          </el-form>
+        </div>
+      </div>
+    </el-card>
+    <!-- 璺宠浆鏈嶅姟瀵硅瘽妗� -->
+    <el-dialog title="閫夋嫨鏂板缓浠诲姟绫诲瀷" :visible.sync="serviceVisible">
+      <el-card class="box-card">
+      <el-form ref="form" :model="form" label-width="80px">
+        <el-form-item label="浠诲姟绫诲瀷">
+          <el-radio-group v-model="serviceradio">
+          <el-radio :label="1">瀹f暀闅忚</el-radio>
+          <el-radio :label="2">闂ㄨ瘖鏈嶅姟</el-radio>
+          <el-radio :label="3">鍑洪櫌鏈嶅姟</el-radio>
+          <el-radio :label="4">澶嶈瘖鏈嶅姟</el-radio>
+          <el-radio :label="5">浣撴閫氱煡</el-radio>
+          <el-radio :label="6">闂嵎鏈嶅姟</el-radio>
+        </el-radio-group>
+        </el-form-item>
+        <el-form-item label="鏂板缓鏂瑰紡" v-if="serviceradio">
+          <el-radio-group v-model="serviceradiofs">
+            <el-radio :label="1">鍒濆鍖栧垱寤�</el-radio>
+            <el-radio :label="2">浠ョ幇鏈変换鍔℃ā鏉夸慨鏀瑰垱寤�</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <el-table v-loading="loading" :data="taskuserList">
+          <el-table-column
+            label="浠诲姟鍚嶇О"
+            fixed
+            align="center"
+            key="taskName"
+            prop="taskName"
+            width="140"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="浠诲姟鎻忚堪"
+            align="center"
+            key="taskDesc"
+            prop="taskDesc"
+            width="180"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏈嶅姟椤圭洰"
+            align="center"
+            key="templatename"
+            prop="templatename"
+          />
+          <el-table-column
+            label="寰呮墽琛�/鎬讳换鍔�"
+            align="center"
+            key="nickName"
+            prop="nickName"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鍒涘缓浜�"
+            align="center"
+            key="createBy"
+            prop="createBy"
+            width="120"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鍒涘缓鏃堕棿"
+            sortable
+            align="center"
+            prop="createTime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(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="200"
+            class-name="small-padding fixed-width"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="medium"
+                type="text"
+                @click="handleUpdate(scope.row)"
+                ><span class="button-xq"
+                  ><i class="el-icon-s-data"></i>閫夋嫨娲惧彂</span
+                ></el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="tasktotal > 0"
+          :total="tasktotal"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="distribute"
+        />
+      </el-card>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="serviceVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="CreateService">鏂板缓浠诲姟</el-button>
+      </div>
+    </el-dialog>
+    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+    <el-dialog
+      :title="upload.title"
+      :visible.sync="upload.open"
+      width="70%"
+      append-to-body
+    >
+      <el-steps :active="dractive" simple>
+        <el-step title="涓婁紶瀵煎叆鏂囦欢" icon="el-icon-upload"></el-step>
+        <el-step title="瀵煎叆妫�鏌�" icon="el-icon-picture"></el-step>
+      </el-steps>
+      <!-- 涓婁紶瀵煎叆鏂囦欢 -->
+      <div class="download" v-if="dractive == 1">
+        <el-upload
+          class="upload-demo"
+          ref="upload"
+          :limit="1"
+          accept=".xlsx, .xls"
+          :headers="upload.headers"
+          :action="upload.url"
+          :disabled="upload.isUploading"
+          :on-progress="handleFileUploadProgress"
+          :on-success="handleFileSuccess"
+          drag
+        >
+          <i class="el-icon-upload"></i>
+          <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+          <div class="el-upload__tip text-center" slot="tip">
+            <!-- <div class="el-upload__tip" slot="tip">
+              <el-checkbox v-model="upload.updateSupport" />
+              鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+            </div> -->
+            <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+            <el-link
+              type="primary"
+              :underline="false"
+              style="font-size: 24px; vertical-align: baseline"
+              @click="importTemplate"
+              >涓嬭浇妯℃澘
+            </el-link>
+            <!-- <el-link
+              type="success"
+              :underline="false"
+              style="font-size: 24px; vertical-align: baseline"
+              href="http://m.qpic.cn/psc?/V50ZTolo1AIhq00dqrJP2169QM2VHGTU/ruAMsa53pVQWN7FLK88i5qfmCJclyMduqqL6kjE4h7TXDAjimVtmLmTyGVfF4qlkyOISsYQ4Mxx705X2tkXEIUPrfCS4L4yK.f11SmO8Tq0!/b&bo=twb0AgAAAAADB2U!&rf=viewer_4"
+              target="_blank"
+            >
+              鏌ョ湅妯℃澘</el-link
+            > -->
+          </div>
+        </el-upload>
+      </div>
+
+      <!-- 瀹屾垚 -->
+      <div class="drexamine" v-else-if="dractive == 2">
+        <div style="display: flex">
+          <img src="@/assets/images/瀵煎叆.png" />
+          <p>瀵煎叆鎮h�呮垚鍔燂紒</p>
+          <p>
+            鏈鎴愬姛瀵煎叆<span style="color: #72d3a9; font-size: 20px">{{
+              uploadingData.length
+            }}</span
+            >浣嶆偅鑰�
+          </p>
+        </div>
+
+        <el-table :data="uploadingData" style="width: 100%">
+          <el-table-column prop="serial" label="鎮h�卛d"> </el-table-column>
+          <el-table-column prop="name" label="濮撳悕"> </el-table-column>
+          <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
+          <el-table-column prop="idcardno" width="300" label="璇佷欢鍙风爜">
+          </el-table-column>
+          <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
+          <el-table-column prop="telcode" width="200" label="鑱旂郴鏂瑰紡">
+          </el-table-column>
+          <el-table-column prop="createTime" width="200" label="鍒涘缓鏃ユ湡">
+          </el-table-column>
+        </el-table>
+        <!-- <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="geterryList"
+        /> -->
+      </div>
+
+      <div slot="footer">
+        <el-button type="primary" @click="submitFileForm">{{
+          dractive == 1 ? "涓嬩竴姝�" : "鍔犲叆浠诲姟"
+        }}</el-button>
+        <el-button @click="submitclose">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import store from "@/store";
+import {
+  editgeneravaluel,
+  addgeneravaluel,
+  getgeneravaluelinfo,
+  addgeneral,
+  editgeneral,
+  getgeneralinfo,
+  getgeneralclassify,
+  delgeneravaluelinfo,
+  getgeneravaluellist,
+} from "@/api/AiCentre/index";
+import { getToken } from "@/utils/auth";
+
+export default {
+  data() {
+    return {
+      loading: false,
+      id: null,
+      usable: [],
+      index: "",
+      queryParams:{
+        pageNum: 1, //
+        pageSize: 10,
+      },
+      logsheetlist: [],
+      deptOptions: [],
+      mode: [],
+      pitchon: "",
+      targetList: [],
+
+      usablend: [
+        {
+          value: 0,
+          label: "闈炵粨鏉熻",
+        },
+        {
+          value: 1,
+          label: "缁撴潫璇�",
+        },
+      ],
+      ruleForm: {
+        dynamiccruxs: [],
+        nodynamiccruxs: [],
+      },
+      baseForm: {
+        extName: "",
+      },
+      // 鐢ㄦ埛瀵煎叆鍙傛暟
+      upload: {
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+        open: false,
+        // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+        title: "",
+        // 鏄惁绂佺敤涓婁紶
+        isUploading: false,
+        // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+        updateSupport: 0,
+        // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+        headers: { Authorization: "Bearer " + getToken() },
+        // 涓婁紶鐨勫湴鍧�
+        url: process.env.VUE_APP_BASE_API + "/smartor/import/importPatInfo",
+      },
+      rules: {},
+      bases: {},
+      whether: 1, //1涓哄叧閿瘝锛�2涓哄惁瀹氬叧閿瘝
+      dractive: 1,
+      inputValue: "",
+      serviceradio: "",
+      serviceradiofs: "",
+      serviceVisible: false,
+      inputVisible: false,
+      noinputVisible: false,
+      loading: false,
+      regular: [],
+      noregular: [],
+    };
+  },
+
+  created() {
+    this.id = this.$route.query.id;
+    this.getList();
+    this.usable = store.getters.usablesz;
+    this.mode = store.getters.mode;
+    this.regular = store.getters.regular;
+    this.noregular = store.getters.noregular;
+  },
+
+  methods: {
+    getList() {
+      if (this.id) {
+        this.$modal.loading("璇风◢鍊�...");
+        getgeneralinfo(this.id).then((res) => {
+          if (res.code == 200) {
+            this.baseForm = res.data;
+          }
+          this.$modal.closeLoading();
+        });
+        getgeneravaluellist({ extID: this.id }).then((res) => {
+          if (res.code == 200) {
+            this.targetList = res.rows;
+          }
+          this.$modal.closeLoading();
+        });
+      }
+      getgeneralclassify({}).then((res) => {
+        this.deptOptions = res.rows;
+        console.log(res);
+      });
+    },
+    // 鏂板浠诲姟
+    getTaskservelist() {
+      this.serviceVisible = true;
+    },
+    // 瀵煎叆鎮h��
+    getTaskservedr() {
+      this.upload.title = "鐢ㄦ埛瀵煎叆";
+      this.upload.open = true;
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {},
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row, index) {
+      this.pitchon = row.switchText;
+      this.ruleForm = row;
+      this.index = index;
+    },
+    // 鍒犻櫎
+    handleDelete(item) {
+      this.$modal
+        .confirm("鏄惁纭鍒犻櫎璇ヨ瘽鏈」锛�")
+        .then((res) => {
+          if (item.id) {
+            delgeneravaluelinfo(item.id).then((res) => {
+              this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+            });
+          }
+          this.targetList = this.targetList.filter((obj) => obj !== item);
+        })
+        .catch(() => {});
+    },
+    // 淇濆瓨涓昏〃
+    submitForm() {
+      if (this.baseForm.id) {
+        editgeneral(this.baseForm).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
+            this.savetalk();
+          }
+        });
+      } else {
+        addgeneral(this.baseForm).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.baseForm.id = res.data.id;
+            this.id = res.data.id;
+            this.savetalk();
+          }
+        });
+      }
+    },
+    // 淇濆瓨璇濇湳
+    savetalk() {
+      this.targetList.forEach((obj) => {
+        if (obj.id) {
+          editgeneravaluel(obj).then((res) => {
+            this.getList();
+          });
+        } else {
+          obj.extID = this.baseForm.id;
+          addgeneravaluel(obj).then((res) => {
+            this.getList();
+          });
+        }
+      });
+    },
+    modification(type) {
+      if (type == "add") {
+        console.log(this.ruleForm, "ruleForm");
+        this.targetList.push(this.ruleForm);
+      } else {
+        this.targetList[this.index] = this.ruleForm;
+      }
+      this.ruleForm = {};
+    },
+    // 鍏抽棴
+    resetForm() {
+      this.$confirm("鍗冲皢閫�鍑洪〉闈�, 璇风‘璁ゆ暟鎹槸鍚︿繚瀛�?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.$router.go(-1);
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "宸插彇娑�",
+          });
+        });
+    },
+
+    // 姝e垯-----------------
+    singletask(row) {},
+    //  瀵煎叆-----------------
+    /** 瀵煎叆鎸夐挳鎿嶄綔 */
+    handleImport() {
+      this.upload.title = "鐢ㄦ埛瀵煎叆";
+      this.upload.open = true;
+    },
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 鏂囦欢涓婁紶鎴愬姛澶勭悊
+    handleFileSuccess(response, file, fileList) {
+      this.upload.isUploading = false;
+      this.uploadingData = response.rows;
+      console.log(response, "鏂囦欢");
+
+      this.$refs.upload.clearFiles();
+    },
+    // 鎻愪氦涓婁紶鏂囦欢
+    submitFileForm() {
+      // 涓婁紶
+      if (this.dractive == 1) {
+        this.$refs.upload.submit();
+        this.dractive++;
+      } else if (this.dractive == 2) {
+        this.handleSelectionChange(this.uploadingData, 4);
+        this.upload.open = false;
+        this.dractive = 1;
+      }
+    },
+    submitclose() {
+      this.upload.open = false;
+      this.dractive = 1;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.Followuserinfo {
+  margin: 20px 10px;
+  align-items: center;
+  padding: 30px;
+  background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .userinfo-text {
+    font-size: 20px;
+    margin-right: 20px;
+    margin-bottom: 10px;
+  }
+  .userinfo-value {
+    color: rgb(15, 139, 211);
+    span {
+      margin-right: 20px;
+    }
+  }
+}
+.download {
+  text-align: center;
+  .el-upload__tip {
+    font-size: 23px;
+  }
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+.headline {
+  font-size: 24px;
+  height: 40px;
+  border-left: 5px solid #5788fe;
+  padding-left: 5px;
+  margin-bottom: 10px;
+  display: flex;
+  // justify-content: space-between;
+  .Add-details {
+    font-size: 18px;
+    color: #02a7f0;
+    cursor: pointer;
+  }
+}
+.presentation {
+  margin: 20px 0;
+  display: flex;
+  .presentation-left {
+    width: 50%;
+    // height: 500px;
+  }
+  .presentation-right {
+    width: 50%;
+    max-height: 688px;
+    padding: 0 20px;
+    font-size: 18px;
+    overflow: auto;
+  }
+}
+.button-textxg {
+  color: rgb(35, 81, 233);
+}
+.button-textsc {
+  color: rgb(235, 23, 23);
+}
+.topicxq {
+  background-color: #e2f5fc;
+  border-radius: 4px;
+  margin-top: 10px;
+  padding: 10px;
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+::v-deep .block .el-card {
+  border: 1px solid #52aee8;
+}
+::v-deep .block .el-card.is-hover-shadow:hover {
+  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.2);
+  cursor: pointer;
+}
+</style>
diff --git a/src/views/patient/medtechnician/PatientChart.vue b/src/views/patient/medtechnician/PatientChart.vue
new file mode 100644
index 0000000..b458d95
--- /dev/null
+++ b/src/views/patient/medtechnician/PatientChart.vue
@@ -0,0 +1,1159 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <!--鐢ㄦ埛鏁版嵁-->
+
+      <el-form
+        :model="topqueryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="98px"
+      >
+        <el-form-item label="浠诲姟缁勫悕绉�">
+          <el-input
+            v-model="topqueryParams.taskName"
+            @keyup.enter.native="handleQuery"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鍒涘缓浜�">
+          <el-input
+            v-model="topqueryParams.createBy"
+            @keyup.enter.native="handleQuery"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鍒涘彂閫佹椂闂�">
+          <el-date-picker
+            v-model="dateRange"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+
+        <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.sendState" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in dict.type.task_status"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="medium"
+            @click="handleQuery"
+            >鎼滅储</el-button
+          >
+          <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
+            >閲嶇疆</el-button
+          >
+        </el-form-item>
+      </el-form>
+      <el-divider></el-divider>
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <el-select
+            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"
+            icon="el-icon-plus"
+            size="medium"
+            @click="handleAdd"
+            :disabled="!tasktopic"
+            >鏂板缓浠诲姟缁�</el-button
+          >
+        </el-col>
+
+        <!-- <el-col :span="19">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-download"
+                size="medium"
+                @click="handleExport"
+                v-hasPermi="['system:user:export']"
+                >瀵煎嚭</el-button
+              >
+            </div>
+          </div>
+        </el-col> -->
+        <!-- <el-col :span="1.5"> </el-col> -->
+      </el-row>
+      <!-- <right-toolbar
+              :showSearch.sync="showSearch"
+              @queryTable="getList"
+              :columns="columns"
+            ></right-toolbar> -->
+      <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"
+          key="taskName"
+          prop="taskName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="浠诲姟缁勬弿杩�"
+          width="280"
+          align="center"
+          key="taskDesc"
+          prop="taskDesc"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="浠诲姟娴佺▼"
+          width="280"
+          align="center"
+          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"
+        >
+          <template slot-scope="scope">
+            <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="createBy"
+          prop="createBy"
+          width="120"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="鍒涘缓鏃堕棿"
+          sortable
+          align="center"
+          prop="createTime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.createTime) }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="鎿嶄綔"
+          fixed="right"
+          align="center"
+          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="sponsor(scope.row)"
+              ><span class="button-zx"
+                ><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>
+        </el-table-column>
+        <el-table-column
+          label="浠诲姟缁勮鎯�"
+          fixed="right"
+          align="center"
+          width="200"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row)"
+              ><span class="button-xq"
+                ><i class="el-icon-s-data"></i>璇︽儏</span
+              ></el-button
+            >
+
+            <el-button size="medium" type="text" @click="deletefn(scope.row)"
+              ><span class="button-sc"
+                ><i class="el-icon-delete"></i>鍒犻櫎</span
+              ></el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="topqueryParams.pageNum"
+        :limit.sync="topqueryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-row>
+    <!-- 纭鍙戣捣瀵硅瘽妗� -->
+    <el-dialog
+      title="浠诲姟缁勫彂璧风‘璁�"
+      :visible.sync="taskformVisible"
+      width="50%"
+      :before-close="handleClose"
+    >
+      <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>
+</template>
+
+<script>
+import {
+  getUser,
+  delUser,
+  addUser,
+  updateUser,
+  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: "Tasklist",
+  dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
+  components: { Treeselect },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鏂板闂ㄨ瘖闅忚",
+      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+      addalteropen: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      // 瑙掕壊閫夐」
+      roleOptions: [],
+      longTask: 0,
+      taskform: {
+        showDate: [],
+        showTimeMorn: [],
+        showTimeNight: [],
+        showTimeNoon: [],
+      },
+      taskformVisible: false,
+      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+      inputVisible: false,
+      inputValue: "",
+      previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
+      TaskOperation: {},
+      radio: "",
+      radios: [],
+      previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
+      total: 0, // 鎬绘潯鏁�
+      ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
+      //棰勮闂ㄨ瘖闅忚淇℃伅
+      previewvalue: {
+        username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
+      },
+      longtermlist: [
+        {
+          value: 1,
+          label: "璇煶闅忚",
+        },
+        {
+          value: 2,
+          label: "闂嵎闅忚",
+        },
+        {
+          value: 3,
+          label: "瀹f暀鍏虫��",
+        },
+      ],
+      taskoptions: [
+        {
+          value: "1",
+          label: "鐩戞祴璇勪及",
+        },
+        {
+          value: "2",
+          label: "鍑洪櫌闅忚",
+        },
+        {
+          value: "3",
+          label: "闂ㄨ瘖闅忚",
+        },
+        {
+          value: "4",
+          label: "瀹f暀鍏虫��",
+        },
+        {
+          value: "5",
+          label: "澶嶈瘖绠$悊",
+        },
+        {
+          value: "6",
+          label: "婊℃剰搴﹁皟鏌�",
+        },
+        {
+          value: "7",
+          label: "鎮h�呮姤鍛�",
+        },
+
+        {
+          value: "8",
+          label: "鍏朵粬閫氱煡",
+        },
+      ],
+      tasktopic: "2", //鏂板绫诲瀷
+      activname: "",
+      value: [],
+      list: [],
+      loading: false,
+      states: [
+        "Alabama",
+        "Alaska",
+        "Arizona",
+        "Arkansas",
+        "California",
+        "Colorado",
+        "Connecticut",
+        "Delaware",
+        "Florida",
+        "Georgia",
+        "Hawaii",
+        "Idaho",
+        "Illinois",
+        "Indiana",
+        "Iowa",
+        "Kansas",
+        "Kentucky",
+        "Louisiana",
+        "Maine",
+        "Maryland",
+        "Massachusetts",
+        "Michigan",
+        "Minnesota",
+        "Mississippi",
+        "Missouri",
+        "Montana",
+        "Nebraska",
+        "Nevada",
+        "New Hampshire",
+        "New Jersey",
+        "New Mexico",
+        "New York",
+        "North Carolina",
+        "North Dakota",
+        "Ohio",
+        "Oklahoma",
+        "Oregon",
+        "Pennsylvania",
+        "Rhode Island",
+        "South Carolina",
+        "South Dakota",
+        "Tennessee",
+        "Texas",
+        "Utah",
+        "Vermont",
+        "Virginia",
+        "Washington",
+        "West Virginia",
+        "Wisconsin",
+        "Wyoming",
+      ],
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now();
+        },
+        shortcuts: [
+          {
+            text: "浠婂ぉ",
+            onClick(picker) {
+              picker.$emit("pick", new Date());
+            },
+          },
+          {
+            text: "鏄ㄥぉ",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24);
+              picker.$emit("pick", date);
+            },
+          },
+          {
+            text: "涓�鍛ㄥ墠",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", date);
+            },
+          },
+        ],
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        phonenumber: "",
+        totagid: "",
+        types: "",
+        nickName: "",
+        qystatus: "",
+        btstatus: "",
+      },
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        type: 3,
+        userName: undefined,
+        tagid: undefined,
+        topic: undefined,
+      },
+      propss: { multiple: true },
+      options: [],
+      checkboxlist:[],
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        userName: [
+          { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            min: 2,
+            max: 20,
+            message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
+            trigger: "blur",
+          },
+        ],
+        nickName: [
+          { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        password: [
+          { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            min: 5,
+            max: 20,
+            message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+            trigger: "blur",
+          },
+        ],
+        email: [
+          {
+            type: "email",
+            message: "璇疯緭鍏ユ纭殑閭鍦板潃",
+            trigger: ["blur", "change"],
+          },
+        ],
+        phonenumber: [
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
+            trigger: "blur",
+          },
+        ],
+        IDnumber: [
+          {
+            pattern:
+              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
+            message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  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() {
+    this.list = this.states.map((item) => {
+      return { value: `value:${item}`, label: `label:${item}` };
+    });
+  },
+  methods: {
+    /** 鏌ヨ浠诲姟缁勫垪琛� */
+    getList() {
+      this.loading = true;
+      let type = this.$route.query.type;
+
+      this.topqueryParams.serviceType = Number(this.tasktopic);
+      this.topqueryParams.type = Number(this.type);
+      if (
+        this.tasktopic == 2 ||
+        this.tasktopic == 3 ||
+        this.tasktopic == 1 ||
+        this.tasktopic == 7 ||
+        this.tasktopic == 6
+      ) {
+        this.topqueryParams.type = 2;
+        this.longtermlist = [
+          {
+            value: 1,
+            label: "璇煶闅忚",
+          },
+          {
+            value: 2,
+            label: "闂嵎闅忚",
+          },
+        ];
+      } else if (this.tasktopic == 4 || this.tasktopic == 8) {
+        this.topqueryParams.type = 3;
+        this.longtermlist = [
+          {
+            value: 3,
+            label: "瀹f暀鍏虫��",
+          },
+
+        ];
+      } else if (this.tasktopic == 5) {
+        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;
+    },
+    // 娣诲姞寮规鎼滅储
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.options = this.list.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.options = [];
+      }
+    },
+
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        userId: undefined,
+        deptId: undefined,
+        userName: undefined,
+        nickName: undefined,
+        password: undefined,
+        phonenumber: undefined,
+        email: undefined,
+        sex: undefined,
+        status: "0",
+        remark: undefined,
+        postIds: [],
+        roleIds: [],
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.topqueryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.topqueryParams.deptId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.userId);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    //鍒犻櫎閫夐」
+    handleClose(tag) {
+      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    },
+    //瑙﹀彂鏂板杈撳叆
+    showInput() {
+      this.inputVisible = true;
+      this.$nextTick((_) => {
+        this.$refs.saveTagInput.$refs.input.focus();
+      });
+    },
+    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+    handleInputConfirm() {
+      let inputValue = this.inputValue;
+      if (inputValue) {
+        this.dynamicTags.push(inputValue);
+      }
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+        this.$router.push({
+          path: "/combination/Compositeeditdetails",
+          query: {
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+          },
+        });
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row, newadd) {
+        this.$router.push({
+          path: "/combination/Compositeeditdetails",
+          query: {
+            id: row.taskid,
+            type: this.topqueryParams.type,
+            serviceType: this.tasktopic,
+            newadd: newadd, //鏄惁渚濈収鏂板缓
+          },
+        });
+
+    },
+    // 鍒犻櫎浠诲姟缁�
+    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();
+        });
+      }
+    },
+
+    /** 鎻愪氦鎸夐挳 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.userId != undefined) {
+            updateUser(this.form).then((response) => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addUser(this.form).then((response) => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delUser(userIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download(
+        "system/user/export",
+        {
+          ...this.topqueryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    findLabelByValue(data, value) {
+      const item = data.find((item) => item.value === value);
+      return item ? item.label : null;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
+}
+
+.document {
+  width: 100px;
+  height: 50px;
+}
+
+.documentf {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.download {
+  text-align: center;
+
+  .el-upload__tip {
+    font-size: 23px;
+  }
+
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 30px;
+  background: #daeaf5;
+
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+
+.qrcode-dialo {
+  // text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+.button-bb {
+  font-weight: 500;
+  color: #2ba05c;
+}
+.button-xq {
+  font-weight: 500;
+  color: #409eff;
+}
+.button-sc {
+  font-weight: 500;
+  color: #dd302a;
+}
+.button-zx {
+  background: #4fabe9;
+  padding: 5px;
+  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 {
+    font-size: 24px;
+  }
+}
+
+::v-deep.el-button + .el-button {
+  margin-left: 0;
+}
+::v-deep.el-checkbox-group {
+  span {
+    font-size: 24px;
+  }
+}
+</style>
diff --git a/src/views/patient/medtechnician/index.vue b/src/views/patient/medtechnician/SpecializedService.vue
similarity index 76%
rename from src/views/patient/medtechnician/index.vue
rename to src/views/patient/medtechnician/SpecializedService.vue
index 0611c3e..4fe475b 100644
--- a/src/views/patient/medtechnician/index.vue
+++ b/src/views/patient/medtechnician/SpecializedService.vue
@@ -1,5 +1,29 @@
 <template>
   <div class="app-container">
+    <div class="leftvlue" style="margin-bottom: 20px">
+      <el-row :gutter="10">
+        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+          <el-card
+            shadow="hover"
+            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+          >
+            <div style="padding: 8px" @click="$router.push(item.router)">
+              <span>{{ item.name }}</span>
+              <div
+                style="
+                  text-align: center;
+                  font-size: 18px;
+                  margin-top: 10px;
+                  font-weight: 600;
+                "
+              >
+                {{ item.value }}
+              </div>
+            </div>
+          </el-card>
+        </el-col>
+      </el-row>
+    </div>
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
       <el-form
@@ -10,13 +34,14 @@
         v-show="showSearch"
         label-width="98px"
       >
-        <el-form-item label="浠诲姟鍚嶇О">
-          <el-input v-model="topqueryParams.taskName"></el-input>
+        <el-form-item label="浠诲姟缁勫悕绉�">
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟缁勫悕绉�"
+          ></el-input>
         </el-form-item>
-        <!-- <el-form-item label="鍙戣捣浜�">
-          <el-input v-model="topqueryParams.createBy"></el-input>
-        </el-form-item> -->
-        <!-- <el-form-item label="瀹℃牳鏃堕棿">
+
+        <el-form-item label="鍑洪櫌鏃堕棿">
           <el-date-picker
             v-model="dateRange"
             style="width: 240px"
@@ -27,36 +52,29 @@
             end-placeholder="缁撴潫鏃ユ湡"
           ></el-date-picker>
         </el-form-item>
-        <el-form-item label="瀹f暀绫诲瀷" prop="status">
-          <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
+
+        <el-form-item label="鎮h�呭鍚�" prop="sendname">
+          <el-input
+            v-model="topqueryParams.sendname"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鎮h�呰寖鍥�" prop="status">
+          <el-select
+            v-model="topqueryParams.searchscope"
+            placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
+          >
             <el-option
-              v-for="item in topicoptions"
+              v-for="item in source"
               :key="item.value"
               :label="item.label"
               :value="item.value"
             >
             </el-option>
           </el-select>
-        </el-form-item> -->
-        <el-form-item label="鎮h�呭鍚�" prop="sendname">
-          <el-input v-model="topqueryParams.sendname" placeholder="璇疯緭鍏ユ偅鑰呭鍚�"></el-input>
-        </el-form-item>
-        <el-form-item label="鎮h�呰寖鍥�" prop="status">
-          <el-select
-                v-model="topqueryParams.searchscope"
-                placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
-              >
-                <el-option
-                  v-for="item in source"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
         </el-form-item>
 
-        <el-form-item label="浠诲姟鐘舵��" prop="status">
+        <el-form-item label="浠诲姟缁勭姸鎬�" prop="status">
           <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
             <el-option
               v-for="item in topicoptions"
@@ -67,17 +85,7 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="缁撴灉鐘舵��" prop="status">
-          <el-select v-model="topqueryParams.excep" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in topicoptionsyj"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
+
         <el-form-item>
           <el-button
             type="primary"
@@ -103,7 +111,7 @@
             >鏂板</el-button
           >
         </el-col>
-        <!-- <el-col :span="1.5">
+        <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -122,55 +130,12 @@
           <div class="documentf">
             <div class="document">
               <el-button
-                type="success"
-                plain
-                icon="el-icon-download"
-                size="medium"
-                @click="toleadExport"
-                v-hasPermi="['system:user:export']"
-                >瀵煎叆</el-button
-              >
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="1.5">
-          <div class="documentf">
-            <div class="document">
-              <el-button
-                type="info"
-                icon="el-icon-refresh"
-                size="medium"
-                @click="TaskReset"
-                v-hasPermi="['system:user:export']"
-                >浠诲姟閲嶇疆</el-button
-              >
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="1.5">
-          <div class="documentf">
-            <div class="document">
-              <el-button
-                type="success"
-                icon="el-icon-position"
-                size="medium"
-                @click="AllStarted"
-                v-hasPermi="['system:user:export']"
-                >鍏ㄩ儴寮�濮�</el-button
-              >
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="1.5">
-          <div class="documentf">
-            <div class="document">
-              <el-button
                 type="warning"
-                icon="el-icon-remove"
+                plain
+                icon="el-icon-warning-outline"
                 size="medium"
-                @click="AllStop"
-                v-hasPermi="['system:user:export']"
-                >鍏ㄩ儴鍋滄</el-button
+                @click="toleadExport(1)"
+                >鎵ц澶辫触</el-button
               >
             </div>
           </div>
@@ -179,27 +144,28 @@
           <div class="documentf">
             <div class="document">
               <el-button
-                type="primary"
-                icon="el-icon-remove"
+                type="danger"
+                plain
+                icon="el-icon-warning"
                 size="medium"
-                @click="Sendtimesetting"
-                v-hasPermi="['system:user:export']"
-                >鍙戦�佹椂闂磋缃�</el-button
+                @click="toleadExport(2)"
+                >缁撴灉寮傚父</el-button
               >
             </div>
           </div>
-        </el-col> -->
-
-        <!-- <el-col :span="1.5"> </el-col> -->
+        </el-col>
       </el-row>
       <el-table
         v-loading="loading"
         :data="userList"
+        height="660"
+        :row-class-name="tableRowClassName"
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="50" align="center" />
         <el-table-column
-          label="浠诲姟鍚嶇О"
+          label="浠诲姟缁勫悕绉�"
+          fixed
           align="center"
           key="taskName"
           prop="taskName"
@@ -208,19 +174,13 @@
         <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
         <el-table-column
           label="濮撳悕"
+          fixed
           align="center"
           key="sendname"
           prop="sendname"
         />
         <el-table-column
-          label="韬唤璇佸彿鐮�"
-          width="200"
-          align="center"
-          key="sfzh"
-          prop="sfzh"
-        />
-        <el-table-column
-          label="浠诲姟鐘舵��"
+          label="浠诲姟缁勭姸鎬�"
           align="center"
           key="sendstate"
           prop="sendstate"
@@ -228,38 +188,64 @@
         >
           <template slot-scope="scope">
             <div v-if="scope.row.sendstate == 1">
-              <el-tag type="primary"
-              :disable-transitions="false">琚鍙�</el-tag></div>
+              <el-tag type="primary" :disable-transitions="false"
+                >琚鍙�</el-tag
+              >
+            </div>
             <div v-if="scope.row.sendstate == 2">
-              <el-tag type="primary"
-              :disable-transitions="false">寰呭彂閫�</el-tag>
-              </div>
-            <div v-if="scope.row.sendstate == 3"> <el-tag type="success"
-              :disable-transitions="false">宸插彂閫佹湭棰嗗彇</el-tag></div>
-            <div v-if="scope.row.sendstate == 4"> <el-tag type="info"
-              :disable-transitions="false">涓嶆墽琛�</el-tag></div>
-            <div v-if="scope.row.sendstate == 5"> <el-tag type="danger"
-              :disable-transitions="false">鍙戦�佸け璐�</el-tag></div>
-              <div v-if="scope.row.sendstate == 6"> <el-tag type="danger"
-                :disable-transitions="false">宸插畬鎴�</el-tag></div>
+              <el-tag type="primary" :disable-transitions="false"
+                >寰呭彂閫�</el-tag
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 3">
+              <el-tag type="success" :disable-transitions="false"
+                >宸插彂閫佹湭棰嗗彇</el-tag
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 4">
+              <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+            </div>
+            <div v-if="scope.row.sendstate == 5">
+              <el-tag type="danger" :disable-transitions="false"
+                >鍙戦�佸け璐�</el-tag
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 6">
+              <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
+            </div>
           </template>
         </el-table-column>
-        <el-table-column
-          label="瀹f暀寮傚父璁板綍"
+        <!-- <el-table-column
+          label="浠诲姟缁勫紓甯歌鏄�"
           width="120"
           align="center"
           key="remark"
-          prop="remark"
+          prop="remark" -->
         />
+
         <el-table-column
-          label="瀹f暀浜哄憳"
+          label="浜哄伐澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="闅忚浜哄憳"
           align="center"
           key="createBy"
           prop="createBy"
           width="120"
         />
         <el-table-column
-          label="瀹f暀鏃堕棿"
+          label="闅忚鏃堕棿"
           sortable
           align="center"
           prop="finishtime"
@@ -281,7 +267,7 @@
           </template></el-table-column
         >
         <el-table-column
-          label="搴斿鏁欐棩鏈�"
+          label="搴旈殢璁挎棩鏈�"
           width="200"
           align="center"
           key="longSendTime"
@@ -305,6 +291,20 @@
           </template>
         </el-table-column>
         <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+        <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          width="200"
+          align="center"
+          key="phone"
+          prop="phone"
+        />
+        <el-table-column
           label="璐d换鎶ゅ+"
           width="120"
           align="center"
@@ -318,8 +318,6 @@
           key="drname"
           prop="drname"
         />
-
-
 
         <!-- <el-table-column
           label="鐥呭巻鍙�"
@@ -361,62 +359,60 @@
         </el-table-column> -->
 
         <el-table-column
-          label="瀹f暀妯℃澘鍚嶇О"
+          label="鍑洪櫌闅忚妯℃澘鍚嶇О"
           align="center"
           key="templatename"
           prop="templatename"
           width="200"
         />
+        <el-table-column
 
-
-        <!-- <el-table-column
-          label="璐d换鍖诲笀"
+          label="浠诲姟缁勬墽琛屾柟寮�"
           align="center"
-          key="drname"
-          prop="drname"
-          width="120"
-        /> -->
-
-        <!-- <el-table-column
-          label="鍑洪櫌鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
+          key="preachform"
+          prop="preachform"
           width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column> -->
-        <!-- <el-table-column
-          label="瀹f暀鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span v-if="scope.row.sendType != 3">{{
-              formatTime(scope.row.createTime)
-            }}</span>
-            <span v-else>鍗冲埢鍙戦��</span>
-          </template>
-        </el-table-column> -->
-
-        <!-- <el-table-column
-          label="浠诲姟鐘舵��"
-          fixed="right"
-          align="center"
-          key="sendstate"
-          prop="sendstate"
-          width="120"
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <dict-tag :options="serviceState" :value="scope.row.sendstate" />
+            <span v-for="item in scope.row.preachform"
+              >{{ item }}銆�
+            </span>
           </template>
-        </el-table-column> -->
+        </el-table-column>
+        <el-table-column
 
+          label="浠诲姟缁勫彂閫佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+
+          label="浠诲姟缁勭粨鏋滆鏄�"
+          fixed="right"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tag
+              type="success"
+              v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+              >{{ scope.row.remark }}</el-tag
+            >
+            <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+          </template>
+        </el-table-column>
         <el-table-column
           label="鎿嶄綔"
           fixed="right"
@@ -428,7 +424,7 @@
             <!-- <el-tooltip
               class="item"
               effect="dark"
-              content="閲嶆柊瀹f暀"
+              content="閲嶆柊闅忚"
               placement="top"
             >
               <el-button
@@ -471,7 +467,7 @@
         @pagination="getList"
       />
     </el-row>
-    <!-- 娣诲姞鎴栦慨鏀归棬璇婂鏁欏璇濇 -->
+    <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 -->
     <el-dialog
       :title="title"
       :visible.sync="addalteropen"
@@ -481,7 +477,7 @@
       <el-form ref="form" :model="form" label-width="100px">
         <el-row :gutter="20">
           <el-col :span="12"
-            ><el-form-item label="浠诲姟鍚嶇О">
+            ><el-form-item label="浠诲姟缁勫悕绉�">
               <el-input v-model="form.name"></el-input> </el-form-item
           ></el-col>
         </el-row>
@@ -495,8 +491,8 @@
         ></el-row>
         <el-row :gutter="20">
           <el-col :span="24"
-            ><el-form-item label="瀹f暀绫诲瀷">
-              <el-select v-model="form.region" placeholder="璇烽�夋嫨瀹f暀绫诲瀷">
+            ><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
@@ -514,7 +510,7 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="闂ㄨ瘖瀹f暀瑕佹眰">
+            <el-form-item label="闂ㄨ瘖闅忚瑕佹眰">
               <el-input type="textarea" v-model="form.desc"></el-input>
             </el-form-item>
           </el-col>
@@ -532,7 +528,7 @@
       width="45%"
     >
       <div style="margin-bottom: 20px; color: red">
-        缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
+        缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟缁勬椂闂�
       </div>
 
       <el-form
@@ -639,7 +635,7 @@
       // 鐢ㄦ埛琛ㄦ牸鏁版嵁
       userList: null,
       // 寮瑰嚭灞傛爣棰�
-      title: "鏂板闂ㄨ瘖瀹f暀",
+      title: "鏂板闂ㄨ瘖闅忚",
       // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
       addalteropen: false,
       // 淇敼鍙戦�佹椂闂村璇濇
@@ -658,13 +654,13 @@
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       inputValue: "",
-      previewVisible: false, //闂ㄨ瘖瀹f暀棰勮寮规
+      previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
       radio: "",
       radios: [],
-      previewtype: 2, //棰勮闂ㄨ瘖瀹f暀绫诲瀷
+      previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
       total: 0, // 鎬绘潯鏁�
-      ImportQuantity: 999, //瀵奸棬璇婂鏁欐暟閲�
-      //棰勮闂ㄨ瘖瀹f暀淇℃伅
+      ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
+      //棰勮闂ㄨ瘖闅忚淇℃伅
       previewvalue: {
         username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
       },
@@ -685,57 +681,35 @@
         },
       ],
       loading: false,
-      states: [
-        "Alabama",
-        "Alaska",
-        "Arizona",
-        "Arkansas",
-        "California",
-        "Colorado",
-        "Connecticut",
-        "Delaware",
-        "Florida",
-        "Georgia",
-        "Hawaii",
-        "Idaho",
-        "Illinois",
-        "Indiana",
-        "Iowa",
-        "Kansas",
-        "Kentucky",
-        "Louisiana",
-        "Maine",
-        "Maryland",
-        "Massachusetts",
-        "Michigan",
-        "Minnesota",
-        "Mississippi",
-        "Missouri",
-        "Montana",
-        "Nebraska",
-        "Nevada",
-        "New Hampshire",
-        "New Jersey",
-        "New Mexico",
-        "New York",
-        "North Carolina",
-        "North Dakota",
-        "Ohio",
-        "Oklahoma",
-        "Oregon",
-        "Pennsylvania",
-        "Rhode Island",
-        "South Carolina",
-        "South Dakota",
-        "Tennessee",
-        "Texas",
-        "Utah",
-        "Vermont",
-        "Virginia",
-        "Washington",
-        "West Virginia",
-        "Wisconsin",
-        "Wyoming",
+      cardlist: [
+        {
+          name: "鍏ㄩ儴鏈嶅姟",
+          value: 0,
+        },
+        {
+          name: "搴旈殢璁�",
+          value: 0,
+        },
+        {
+          name: "涓嶆墽琛�",
+          value: 0,
+        },
+        {
+          name: "寮傚父",
+          value: 0,
+        },
+        {
+          name: "鍙戦�佸け璐�",
+          value: 0,
+        },
+        {
+          name: "琚鍙�",
+          value: 0,
+        },
+        {
+          name: "宸插彂閫佹湭棰嗗彇",
+          value: 0,
+        },
       ],
       pickerOptions: {
         disabledDate(time) {
@@ -779,8 +753,8 @@
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
-        serviceType: 4,
-        searchscope:2,
+        serviceType: 2,
+        searchscope: 2,
       },
       propss: { multiple: true },
       options: [],
@@ -822,6 +796,7 @@
         },
       ],
       serviceState: [],
+      checkboxlist: [],
       // 琛ㄥ崟鏍¢獙
       rules: {},
     };
@@ -829,29 +804,28 @@
   watch: {},
   created() {
     this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+
     this.getList();
     this.getConfigKey("sys.user.initPassword").then((response) => {
       this.initPassword = response.msg;
     });
   },
-  // 鎼滅储
-  mounted() {
-    this.list = this.states.map((item) => {
-      return { value: `value:${item}`, label: `label:${item}` };
-    });
+  activated() {
+    this.getList();
   },
   methods: {
-    /** 鏌ヨ闂ㄨ瘖瀹f暀鏈嶅姟鍒楄〃 */
+    /** 鏌ヨ闂ㄨ瘖闅忚鏈嶅姟鍒楄〃 */
     getList() {
       if (this.topqueryParams.searchscope == 1) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
         );
-        this.topqueryParams.leavehospitaldistrictcodes=null;
+        this.topqueryParams.leavehospitaldistrictcodes = null;
       } else if (this.topqueryParams.searchscope == 2) {
         this.topqueryParams.leavehospitaldistrictcodes =
           store.getters.belongWards.map((obj) => obj.districtCode);
-          this.topqueryParams.leaveldeptcodes=null;
+        this.topqueryParams.leaveldeptcodes = null;
       } else {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
@@ -861,17 +835,32 @@
       }
       this.loading = true;
       getTaskservelist(this.topqueryParams).then((response) => {
-        this.userList = response.rows;
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.cardlist[0].value =
+          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+        this.cardlist[1].value = response.rows[0].ysf;
+        this.cardlist[2].value = response.rows[0].wzx;
+        this.cardlist[3].value = response.rows[0].yc;
+        this.cardlist[4].value = response.rows[0].fssb;
+        this.cardlist[5].value = response.rows[0].blq;
+        this.cardlist[6].value = response.rows[0].yfs;
         this.userList.forEach((item) => {
           if (item.endtime) {
             item.endDay = this.daysBetween(item.endtime);
           }
+          const idArray = item.preachform.split(",");
+          item.preachform = idArray.map((value) => {
+            // 鏌ユ壘id瀵瑰簲鐨勫璞�
+            const item = this.checkboxlist.find((item) => item.value == value);
+            // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+            return item ? item.label : null;
+          });
         });
         this.total = response.total;
         this.loading = false;
       });
     },
-    // 鏌ョ湅闂ㄨ瘖瀹f暀璇︽儏
+    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
     Referencequestion(row) {
       this.previewVisible = true;
     },
@@ -889,7 +878,7 @@
         this.options = [];
       }
     },
-    // 闂ㄨ瘖浠诲姟鐘舵�佷慨鏀�
+    // 闂ㄨ瘖闅忚鐘舵�佷慨鏀�
     handleStatusChange(row) {
       let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
       this.$modal
@@ -933,11 +922,11 @@
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
         );
-        this.topqueryParams.leavehospitaldistrictcodes=null;
+        this.topqueryParams.leavehospitaldistrictcodes = null;
       } else if (this.topqueryParams.searchscope == 2) {
         this.topqueryParams.leavehospitaldistrictcodes =
           store.getters.belongWards.map((obj) => obj.districtCode);
-          this.topqueryParams.leaveldeptcodes=null;
+        this.topqueryParams.leaveldeptcodes = null;
       } else {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
@@ -946,12 +935,20 @@
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
       this.topqueryParams.pageNum = 1;
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+
       this.getList();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.dateRange = [];
-      this.topqueryParams = {};
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: 2,
+        searchscope: 2,
+      };
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
@@ -983,10 +980,10 @@
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.$router.push({
-        path: "/followvisit/Missioncreation",
+        path: "/followvisit/QuestionnaireTask",
         query: {
-          type: 3,
-          serviceType: 4,
+          type: 2,
+          serviceType: 2,
         },
       });
     },
@@ -1045,7 +1042,7 @@
     // 鍏ㄩ儴鍋滄
     AllStop() {
       this.$modal
-        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟缁勶紵")
         .then(function () {
           return console.log("鍋滄鎴愬姛");
         })
@@ -1058,7 +1055,7 @@
     // 鍏ㄩ儴寮�濮�
     AllStarted() {
       this.$modal
-        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔$粍锛�")
         .then(function () {
           return console.log("寮�鍚垚鍔�");
         })
@@ -1068,10 +1065,10 @@
         })
         .catch(() => {});
     },
-    // 浠诲姟閲嶇疆
+    // 浠诲姟缁勯噸缃�
     TaskReset() {
       this.$modal
-        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔$粍椤癸紵")
         .then(function () {
           return console.log("閫変腑鎴愬姛");
         })
@@ -1089,11 +1086,19 @@
     Seedetails(row) {
       this.$router.push({
         path: "/followvisit/record/detailpage/",
-        query: { taskid: row.taskid, patid: row.patid,id: row.id},
+        query: { taskid: row.taskid, patid: row.patid, id: row.id },
       });
     },
-    // 瀵煎叆鎸夐挳
-    toleadExport() {},
+    // 渚挎嵎鎸夐挳
+    toleadExport(too) {
+      if (too == 1) {
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
+      } else if (too == 2) {
+        this.topqueryParams.excep = 1;
+      }
+      this.handleQuery();
+    },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
@@ -1103,6 +1108,13 @@
         },
         `user_${new Date().getTime()}.xlsx`
       );
+    },
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
+      }
+      return "";
     },
   },
 };
@@ -1118,6 +1130,9 @@
 .document {
   // width: 100px;
   height: 50px;
+}
+::v-deep.el-table .warning-row {
+  background: #eec4c4;
 }
 
 .documentf {
@@ -1197,6 +1212,13 @@
     }
   }
 }
+::v-deep.leftvlue .el-card__body {
+  background: #d0e9fd;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #8dc8f8;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
 .button-bb {
   font-weight: 500;
   background-color: #2ba05c;
diff --git a/src/views/patient/patient/PatientChart.vue b/src/views/patient/patient/PatientChart.vue
deleted file mode 100644
index 68f1271..0000000
--- a/src/views/patient/patient/PatientChart.vue
+++ /dev/null
@@ -1,1115 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 鍙充晶鏁版嵁 -->
-    <el-row :gutter="20">
-      <!--鐢ㄦ埛鏁版嵁-->
-      <el-col :span="24" :xs="24">
-        <el-form
-          :model="queryParams"
-          ref="queryForm"
-          size="small"
-          :inline="true"
-          v-show="showSearch"
-          label-width="98px"
-        >
-          <el-form-item label="闄㈠尯" prop="userName">
-            <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨">
-              <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="绉戝/鐥呭尯" prop="userName">
-            <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨">
-              <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label-width="138px" label="涓绘不鍖荤敓" prop="userName">
-            <el-select v-model="queryParams.value3" placeholder="璇烽�夋嫨">
-              <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="鍏ラ櫌鏃ユ湡" prop="userName">
-            <el-date-picker
-              v-model="queryParams.valuetime1"
-              align="right"
-              type="date"
-              placeholder="閫夋嫨鏃ユ湡"
-            >
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="鍑洪櫌鏃ユ湡" prop="departuretime">
-            <el-date-picker
-              v-model="queryParams.departuretime"
-              align="right"
-              type="date"
-              placeholder="閫夋嫨鏃ユ湡"
-            >
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="灏辫瘖缂栧彿" prop="number">
-            <el-input
-              v-model="queryParams.number"
-              placeholder="璇疯緭鍏ョ紪鍙�"
-              maxlength="30"
-            />
-          </el-form-item>
-          <el-form-item label="濮撳悕" prop="name">
-            <el-input
-              v-model="queryParams.name"
-              placeholder="璇疯緭鍏ュ鍚�"
-              maxlength="30"
-            />
-          </el-form-item>
-
-          <el-form-item>
-            <el-button
-              type="primary"
-              icon="el-icon-search"
-              size="medium"
-              @click="handleQuery"
-              >鎼滅储</el-button
-            >
-            <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
-              >閲嶇疆</el-button
-            >
-          </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button
-              type="primary"
-              plain
-              icon="el-icon-plus"
-              size="medium"
-              @click="handleAdd"
-              v-hasPermi="['system:user:add']"
-              >鏂板</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="6">
-            <div class="documentf">
-              <div class="document">
-                <el-button
-                  type="info"
-                  plain
-                  icon="el-icon-upload2"
-                  size="medium"
-                  @click="handleImport"
-                  v-hasPermi="['system:user:import']"
-                  >瀵煎叆</el-button
-                >
-              </div>
-              <div class="document">
-                <el-button
-                  type="warning"
-                  plain
-                  icon="el-icon-download"
-                  size="medium"
-                  @click="handleExport"
-                  v-hasPermi="['system:user:export']"
-                  >瀵煎嚭</el-button
-                >
-              </div>
-            </div>
-          </el-col>
-          <!-- <el-col :span="1.5"> </el-col> -->
-        </el-row>
-
-        <el-table
-          v-loading="loading"
-          :data="userList"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column
-            fixed
-            label="搴忓彿"
-            align="center"
-            key="patid"
-            prop="patid"
-          />
-          <el-table-column
-            fixed
-            label="濮撳悕"
-            align="center"
-            key="name"
-            prop="name"
-          />
-          <el-table-column label="鎬у埆" align="center" key="sex" prop="sex">
-            <template slot-scope="scope">
-              <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="骞撮緞"
-            align="center"
-            key="age"
-            prop="age"
-            width="120"
-          />
-          <el-table-column
-            label="鍑虹敓骞存湀"
-            align="center"
-            key="birthdate"
-            prop="birthdate"
-            width="160"
-          >
-          </el-table-column>
-          <el-table-column
-            label="灞呬綇鍦�"
-            align="center"
-            key="placeOfResidence"
-            prop="placeOfResidence"
-            width="120"
-          />
-          <el-table-column
-            label="鎮h�呮爣绛�"
-            align="center"
-            key="tagList"
-            prop="tagList"
-            width="160"
-            :show-overflow-tooltip="true"
-          >
-            <template slot-scope="scope">
-              <span v-for="item in scope.row.tagList">{{ item.tagname }} </span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="璇佷欢绫诲瀷"
-            align="center"
-            key="idcardtype"
-            prop="idcardtype"
-            width="120"
-          /><el-table-column
-            label="璇佷欢鍙风爜"
-            align="center"
-            key="idcardno"
-            prop="idcardno"
-            width="190"
-          />
-
-          <el-table-column
-            label="鑱旂郴鏂瑰紡"
-            align="center"
-            key="telcode"
-            prop="telcode"
-            width="120"
-          />
-          <el-table-column
-            label="寤烘。鏃ユ湡"
-            align="center"
-            key="createTime"
-            prop="createTime"
-            width="160"
-          >
-          </el-table-column>
-          <el-table-column
-            label="鏇存柊鏃ユ湡"
-            align="center"
-            prop="archivetime"
-            width="160"
-          >
-            <template slot-scope="scope">
-              <span>{{ formatTime(scope.row.archivetime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            fixed="right"
-            label="鎿嶄綔"
-            align="center"
-            width="190"
-            class-name="small-padding fixed-width"
-          >
-            <template slot-scope="scope">
-              <el-button
-                size="medium"
-                type="text"
-                @click="
-                  $router.push({
-                    path: '/patient/patient/profile/',
-                    query: { id: scope.row.patid },
-                  })
-                "
-                v-hasPermi="['system:user:edit']"
-                ><span class="button-textsc"
-                  ><i class="el-icon-zoom-in"></i>鏌ョ湅</span
-                ></el-button
-              >
-              <el-button
-                size="medium"
-                type="text"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['system:user:edit']"
-                ><span class="button-textxga"
-                  ><i class="el-icon-edit"></i>淇敼</span
-                ></el-button
-              >
-              <el-button
-                size="medium"
-                type="text"
-                @click="Distributionservice(scope.row)"
-                v-hasPermi="['system:user:edit']"
-                ><span class="button-textxg"
-                  ><i class="el-icon-menu"></i>鏈嶅姟</span
-                ></el-button
-              >
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-        />
-      </el-col>
-    </el-row>
-
-    <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 -->
-    <el-dialog
-      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
-      :visible.sync="Labelchange"
-      width="900px"
-    >
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="濮撳悕" prop="name">
-              <el-input
-                v-model="form.name"
-                placeholder="璇疯緭鍏ュ鍚�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鎬у埆" prop="sex">
-              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
-                <el-option
-                  v-for="dict in dict.type.sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="骞撮緞" prop="age">
-              <el-input
-                v-model="form.age"
-                placeholder="璇疯緭鍏ュ勾榫�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="姘戞棌" prop="name">
-              <el-input
-                v-model="form.nation"
-                placeholder="璇疯緭鍏ユ皯鏃�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="绫嶈疮" prop="age">
-              <el-input
-                v-model="form.nativePlace"
-                placeholder="璇疯緭鍏ョ睄璐�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
-              <el-input
-                v-model="form.telcode"
-                placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
-              <el-select v-model="form.idcardtype" placeholder="璇烽�夋嫨鎬у埆">
-                <el-option
-                  v-for="item in paperstypes"
-                  :key="item.papersname"
-                  :label="item.papersname"
-                  :value="item.papersname"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢鍙�" prop="idcardno">
-              <el-input
-                v-model="form.idcardno"
-                placeholder="璇疯緭鍏ヨ瘉浠跺彿"
-                maxlength="50"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鍑虹敓鍦�" prop="idcardno">
-              <el-input
-                v-model="form.birthplace"
-                placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
-                maxlength="50"
-              />
-            </el-form-item> </el-col
-          ><el-col :span="12">
-            <el-form-item label="灞呬綇鍦�" prop="idcardno">
-              <el-input
-                v-model="form.placeOfResidence"
-                placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
-                maxlength="50"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="鎮h�呯被鍨�">
-              <el-select v-model="form.pattype" placeholder="璇烽�夋嫨绫诲瀷">
-                <el-option
-                  v-for="item in Patienttype"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="澶囨敞">
-              <el-input
-                v-model="form.remark"
-                type="textarea"
-                placeholder="璇疯緭鍏ュ唴瀹�"
-              ></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>
-    </el-dialog>
-
-    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
-    <el-dialog
-      :title="upload.title"
-      :visible.sync="upload.open"
-      width="70%"
-      append-to-body
-    >
-      <el-steps :active="dractive" simple>
-        <el-step title="涓婁紶瀵煎叆鏂囦欢" icon="el-icon-upload"></el-step>
-        <el-step title="瀵煎叆妫�鏌�" icon="el-icon-picture"></el-step>
-        <el-step title="瀵煎叆缁撴灉" icon="el-icon-picture"></el-step>
-      </el-steps>
-      <!-- 涓婁紶瀵煎叆鏂囦欢 -->
-      <div class="download" v-if="dractive == 1">
-        <el-upload
-          class="upload-demo"
-          ref="upload"
-          :limit="1"
-          accept=".xlsx, .xls"
-          :headers="upload.headers"
-          :action="upload.url + '?updateSupport=' + upload.updateSupport"
-          :disabled="upload.isUploading"
-          :on-progress="handleFileUploadProgress"
-          :on-success="handleFileSuccess"
-          :auto-upload="false"
-          drag
-        >
-          <i class="el-icon-upload"></i>
-          <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-          <div class="el-upload__tip text-center" slot="tip">
-            <div class="el-upload__tip" slot="tip">
-              <el-checkbox v-model="upload.updateSupport" />
-              鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
-            </div>
-            <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
-            <el-link
-              type="primary"
-              :underline="false"
-              style="font-size: 24px; vertical-align: baseline"
-              @click="importTemplate"
-              >涓嬭浇妯℃澘
-            </el-link>
-            <el-link
-              type="success"
-              :underline="false"
-              style="font-size: 24px; vertical-align: baseline"
-              href="http://m.qpic.cn/psc?/V50ZTolo1AIhq00dqrJP2169QM2VHGTU/ruAMsa53pVQWN7FLK88i5qfmCJclyMduqqL6kjE4h7TXDAjimVtmLmTyGVfF4qlkyOISsYQ4Mxx705X2tkXEIUPrfCS4L4yK.f11SmO8Tq0!/b&bo=twb0AgAAAAADB2U!&rf=viewer_4"
-              target="_blank"
-            >
-              鏌ョ湅妯℃澘</el-link
-            >
-          </div>
-        </el-upload>
-      </div>
-      <!-- 瀵煎叆妫�鏌� -->
-      <div class="uploading" v-else-if="dractive == 2">
-        <el-table :data="uploadingData" style="width: 100%">
-          <el-table-column prop="serial" label="搴忓彿"> </el-table-column>
-          <el-table-column prop="name" label="濮撳悕"> </el-table-column>
-          <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
-          <el-table-column prop="certificate" label="璇佷欢绫诲瀷">
-          </el-table-column>
-          <el-table-column prop="certificatenum" label="璇佷欢鍙风爜">
-          </el-table-column>
-          <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
-          <el-table-column prop="menum" label="鏈汉鑱旂郴鏂瑰紡"> </el-table-column>
-          <el-table-column prop="younum" label="浜插睘鑱旂郴鏂瑰紡">
-          </el-table-column>
-          <el-table-column prop="tag" label="鎮h�呮爣绛�"> </el-table-column>
-          <el-table-column prop="erry" label="閿欒鍘熷洜"> </el-table-column>
-          <el-table-column prop="opinion" label="澶勭悊鎰忚"> </el-table-column>
-        </el-table>
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="geterryList"
-        />
-      </div>
-      <!-- 瀹屾垚 -->
-      <div class="drexamine" v-else-if="dractive == 3">
-        <img src="@/assets/images/瀵煎叆.png" />
-        <p>瀵煎叆鎮h�呮垚鍔燂紒</p>
-        <p>
-          鏈
-          <span style="color: #158bb8; font-size: 20px">{{
-            ImportQuantity
-          }}</span>
-          鏉℃暟鎹垚鍔熷鍏�<span style="color: #72d3a9; font-size: 20px">{{
-            ImportQuantity
-          }}</span
-          >浣嶆偅鑰�
-        </p>
-      </div>
-      <div v-if="dractive == 3">
-        <el-table :data="uploadingData" style="width: 100%">
-          <el-table-column prop="serial" label="搴忓彿"> </el-table-column>
-          <el-table-column prop="name" label="濮撳悕"> </el-table-column>
-          <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
-          <el-table-column prop="certificate" label="璇佷欢绫诲瀷">
-          </el-table-column>
-          <el-table-column prop="certificatenum" label="璇佷欢鍙风爜">
-          </el-table-column>
-          <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
-          <el-table-column prop="menum" label="鏈汉鑱旂郴鏂瑰紡"> </el-table-column>
-          <el-table-column prop="younum" label="浜插睘鑱旂郴鏂瑰紡">
-          </el-table-column>
-          <el-table-column prop="tag" label="鎮h�呮爣绛�"> </el-table-column>
-          <el-table-column prop="erry" label="閿欒鍘熷洜"> </el-table-column>
-          <el-table-column prop="opinion" label="澶勭悊鎰忚"> </el-table-column>
-        </el-table>
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="geterryList"
-        />
-      </div>
-
-      <div slot="footer" class="dialog-footer" v-if="dractive == 3">
-        <!-- <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button> -->
-        <el-button @click="submitclose">瀹屾垚</el-button>
-        <el-button type="warning" @click="submitclose">瀵煎嚭澶辫触鏁版嵁</el-button>
-      </div>
-      <div slot="footer" v-else>
-        <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button>
-        <el-button @click="submitclose">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-    <!-- 璺宠浆鏈嶅姟瀵硅瘽妗� -->
-    <el-dialog title="閫夋嫨鏈嶅姟绫诲瀷" :visible.sync="serviceVisible">
-      <el-radio-group v-model="serviceradio">
-        <el-radio :label="1">瀹f暀闅忚</el-radio>
-        <el-radio :label="2">闂ㄨ瘖鏈嶅姟</el-radio>
-        <el-radio :label="3">鍑洪櫌鏈嶅姟</el-radio>
-        <el-radio :label="4">澶嶈瘖鏈嶅姟</el-radio>
-        <el-radio :label="5">浣撴閫氱煡</el-radio>
-        <el-radio :label="6">闂嵎鏈嶅姟</el-radio>
-      </el-radio-group>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="serviceVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="CreateService">鍒涘缓鏈嶅姟</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { delUser } from "@/api/system/user";
-
-import {
-  messagelistpatient,
-  alterpatient,
-  addpatient,
-  particularpatient,
-  deletepatient,
-  Exporterrorpatient,
-  toleadpatient,
-} from "@/api/patient/homepage";
-import { listtag } from "@/api/system/label";
-import { getToken } from "@/utils/auth";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
-export default {
-  name: "Userhuanze",
-  dicts: ["sys_normal_disable", "sys_user_sex"],
-  components: { Treeselect },
-  data() {
-    return {
-      // 閬僵灞�
-      loading: true,
-      // 閫変腑鏁扮粍
-      ids: [],
-      // 闈炲崟涓鐢�
-      single: true,
-      // 闈炲涓鐢�
-      multiple: true,
-      // 鏄剧ず鎼滅储鏉′欢
-      showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
-      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
-      userList: null,
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 閮ㄩ棬鏍戦�夐」
-      deptOptions: undefined,
-      options: [],
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-      // 閮ㄩ棬鍚嶇О
-      deptName: undefined,
-      // 榛樿瀵嗙爜
-      initPassword: undefined,
-      amendtag: false, //鏄惁淇敼
-      serviceVisible: false,
-      serviceradio: 1,
-      // 鏃ユ湡鑼冨洿
-      dateRange: [],
-      paperstypes: [
-        { papersname: "韬唤璇�" },
-        { papersname: "鎶ょ収" },
-        { papersname: "涓浗娓境灞呮皯韬唤璇�" },
-        { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" },
-      ],
-      Patienttype: [
-        {
-          value: "1",
-          label: "浣忛櫌鎮h��",
-        },
-        {
-          value: "2",
-          label: "闂ㄨ瘖鎮h��",
-        },
-        {
-          value: "3",
-          label: "浣撴鎮h��",
-        },
-      ],
-
-
-      // 琛ㄥ崟鍙傛暟
-      form: {
-        name: "",
-        age: "",
-        sex: "",
-        tagList: [],
-        idcardno: "",
-        telcode: "",
-        idcardtype: "",
-        relativetelcode: "",
-      },
-      activeName: "first", //渚ц竟閫夋嫨
-      //瀵煎叆杩涘害
-      dractive: 1,
-      // 瀵煎叆灞曠ず琛ㄥ崟
-      uploadingData: {},
-      total: 0, // 鎬绘潯鏁�
-      ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲�
-      Labelchange: false, //淇敼鏂板寮圭獥
-      propss: { multiple: true },
-      optionstag: [], //鏍囩鍒楄〃
-      defaultProps: {
-        children: "children",
-        label: "label",
-      },
-      // 鐢ㄦ埛瀵煎叆鍙傛暟
-      upload: {
-        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
-        open: false,
-        // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
-        title: "",
-        // 鏄惁绂佺敤涓婁紶
-        isUploading: false,
-        // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
-        updateSupport: 0,
-        // 璁剧疆涓婁紶鐨勮姹傚ご閮�
-        headers: { Authorization: "Bearer " + getToken() },
-        // 涓婁紶鐨勫湴鍧�
-        url: process.env.VUE_APP_BASE_API + "/system/user/importData",
-      },
-      // 鏌ヨ鍙傛暟
-      queryParams: {
-        pageNum: 1,
-        allhosp: "0",
-        pageSize: 10,
-        idcardno: undefined,
-        name: undefined,
-        status: undefined,
-        tagIds: undefined,
-        telcode: undefined,
-      },
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-        // userName: [
-        //   { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
-        //   {
-        //     min: 2,
-        //     max: 20,
-        //     message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
-        //     trigger: "blur",
-        //   },
-        // ],
-        // nickName: [
-        //   { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" },
-        // ],
-        // password: [
-        //   { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
-        //   {
-        //     min: 5,
-        //     max: 20,
-        //     message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
-        //     trigger: "blur",
-        //   },
-        // ],
-        // email: [
-        //   {
-        //     type: "email",
-        //     message: "璇疯緭鍏ユ纭殑閭鍦板潃",
-        //     trigger: ["blur", "change"],
-        //   },
-        // ],
-        // phonenumber: [
-        //   {
-        //     pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-        //     message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
-        //     trigger: "blur",
-        //   },
-        // ],
-        // IDnumber: [
-        //   {
-        //     pattern:
-        //       /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
-        //     message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�",
-        //     trigger: "blur",
-        //   },
-        // ],
-      },
-    };
-  },
-  watch: {
-    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
-    deptName(val) {
-      this.$refs.tree.filter(val);
-    },
-  },
-  created() {
-    this.getList();
-    this.gettabList();
-  },
-  methods: {
-    /** 鏌ヨ鎮h�呭垪琛� */
-    getList() {
-      console.log(this.dict.type.sys_user_sex);
-      this.loading = true;
-      messagelistpatient(this.queryParams).then((response) => {
-        console.log(response);
-        this.userList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    handleClick() {
-      this.getList();
-    },
-    /** 鏌ヨ鏍囩鍒楄〃 */
-    gettabList() {
-      const tagqueryParams = {
-        pageNum: 1,
-        pageSize: 1000,
-        tagname: undefined,
-        tagdescription: undefined,
-        tagcategoryid: "0",
-      };
-      listtag(tagqueryParams).then((response) => {
-        console.log(response);
-        this.optionstag = response.rows;
-      });
-    },
-    // 鏌ヨ瀵煎叆灞曠ず鍒楄〃
-    geterryList() {
-      this.loading = true;
-      listJob(this.queryParams).then((response) => {
-        this.jobList = 1;
-        this.total = 1;
-        this.loading = false;
-      });
-    },
-    Distributionservice(row) {
-      this.serviceVisible = true;
-    },
-
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.Labelchange = false;
-      this.reset();
-    },
-    // 琛ㄥ崟閲嶇疆
-    reset() {
-      this.form = {
-        name: "",
-        age: "",
-        sex: "",
-        tagList: [],
-        idcardno: "",
-        telcode: "",
-        idcardtype: "",
-        relativetelcode: "",
-      };
-      // this.resetForm("form");
-    },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.$refs.tree.setCurrentKey(null);
-      this.handleQuery();
-    },
-    // 澶氶�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.patid);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd() {
-      this.reset();
-      this.Labelchange = true;
-      this.amendtag = false;
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      console.log(row);
-      const userIds = row.patid || this.ids;
-      particularpatient(userIds).then((response) => {
-        console.log(response);
-        this.form = response.data;
-      });
-      this.amendtag = true;
-      this.Labelchange = true;
-    },
-
-    //淇敼/鏂板鎮h��
-    submitForm() {
-      if (this.amendtag) {
-        console.log(22);
-        this.form.isoperation = 2;
-      } else {
-        this.form.isoperation = 1;
-      }
-      alterpatient(this.form)
-        .then((response) => {
-          console.log(response);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("淇濆瓨鎴愬姛");
-        });
-      this.reset();
-      // this.idds = "";
-      this.Labelchange = false;
-    },
-
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const userIds = row.userId || this.ids;
-      this.$modal
-        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
-        .then(function () {
-          return deletepatient(userIds);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-        })
-        .catch(() => {});
-    },
-    //鏈嶅姟璺宠浆
-    CreateService() {
-      this.$router.push({
-        path: "/followvisit/particty",
-        query: { type: this.serviceradio },
-      });
-    },
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-    handleExport() {
-      this.download(
-        "smartor/patarchive/export",
-        {
-          ...this.queryParams,
-        },
-        `user_${new Date().getTime()}.xlsx`
-      );
-    },
-    /** 瀵煎叆鎸夐挳鎿嶄綔 */
-    handleImport() {
-      this.upload.title = "鐢ㄦ埛瀵煎叆";
-      this.upload.open = true;
-    },
-    /** 涓嬭浇妯℃澘鎿嶄綔 */
-    importTemplate() {
-      this.download(
-        "smartor/import/getImportPatTemplate",
-        {},
-        `user_template_${new Date().getTime()}.xlsx`
-      );
-    },
-    // 鏂囦欢涓婁紶涓鐞�
-    handleFileUploadProgress(event, file, fileList) {
-      this.upload.isUploading = true;
-    },
-    // 鏂囦欢涓婁紶鎴愬姛澶勭悊
-    handleFileSuccess(response, file, fileList) {
-      this.upload.open = false;
-      this.upload.isUploading = false;
-      this.$refs.upload.clearFiles();
-      this.$alert(
-        "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-          response.msg +
-          "</div>",
-        "瀵煎叆缁撴灉",
-        { dangerouslyUseHTMLString: true }
-      );
-      this.getList();
-    },
-    // 鎻愪氦涓婁紶鏂囦欢
-    submitFileForm() {
-      // 涓婁紶
-      if (this.dractive == 1) {
-        this.$refs.upload.submit();
-        this.dractive++;
-      } else {
-        this.dractive++;
-      }
-    },
-    submitclose() {
-      this.upload.open = false;
-      this.dractive = 1;
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.Questionnairemanagement {
-}
-.sidecolumn {
-  width: 180px;
-  min-height: 100vh;
-  text-align: center;
-  //   display: flex;
-  margin-top: 20px;
-  margin: 20px;
-  padding: 30px;
-  background: #d0e9fd;
-  border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
-  .sidecolumn-top {
-    display: flex;
-    justify-content: space-between;
-    .top-wj {
-      font-size: 20px;
-    }
-    .top-tj {
-      font-size: 18px;
-
-      color: rgb(0, 89, 255);
-      cursor: pointer;
-    }
-  }
-  .center-ss {
-    margin-top: 30px;
-    .input-with-select {
-      height: 40px !important;
-    }
-  }
-  .bottom-fl {
-    margin-top: 30px;
-    display: center !important;
-  }
-}
-::v-deep.el-tabs--left,
-.el-tabs--right {
-  overflow: hidden;
-  align-items: center;
-  display: flex;
-}
-::v-deep.el-input--medium .el-input__inner {
-  height: 40px !important;
-}
-::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
-  height: 40px;
-  width: 5px;
-  left: 0;
-}
-::v-deep.el-tabs--right .el-tabs__item.is-right {
-  display: block;
-  text-align: left;
-  font-size: 20px;
-}
-::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
-}
-::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
-}
-.leftvlue {
-  margin-top: 10px;
-}
-.leftvlue-bg {
-  //   display: flex;
-  //   flex: 1;
-  margin-top: 20px;
-  //   margin: 20px;
-  padding: 30px;
-  background: #ffff;
-  border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
-  .mulsz {
-    font-size: 20px;
-  }
-}
-.el-button--primary.is-plain {
-  color: #ffffff;
-  background: #409eff;
-  border-color: #4fabe9;
-}
-.document {
-  width: 100px;
-  height: 50px;
-}
-.documentf {
-  display: flex;
-  justify-content: flex-end;
-}
-.download {
-  text-align: center;
-  .el-upload__tip {
-    font-size: 23px;
-  }
-  .el-upload__text {
-    font-size: 23px;
-  }
-}
-.uploading {
-  margin-top: 20px;
-  margin: 20px;
-  padding: 30px;
-  background: #ffffff;
-  border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
-}
-.drexamine {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  padding: 20px;
-  background: #daeaf5;
-  img {
-    width: 50px;
-    height: 50px;
-  }
-}
-.button-textsc {
-  color: #28cfe6;
-}
-.button-textxg {
-  color: #de7897;
-}
-</style>
diff --git a/src/views/patient/propaganda/index.vue b/src/views/patient/propaganda/index.vue
index 4f2c6bb..b2c50d3 100644
--- a/src/views/patient/propaganda/index.vue
+++ b/src/views/patient/propaganda/index.vue
@@ -11,7 +11,10 @@
         label-width="98px"
       >
         <el-form-item label="浠诲姟鍚嶇О">
-          <el-input v-model="topqueryParams.taskName" placeholder="璇烽�夋嫨浠诲姟鍚嶇О"></el-input>
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
         </el-form-item>
         <!-- <el-form-item label="鍙戣捣浜�">
           <el-input v-model="topqueryParams.createBy"></el-input>
@@ -135,7 +138,7 @@
                 size="medium"
                 @click="toleadExport(2)"
                 >缁撴灉寮傚父</el-button
-              >
+              >-
             </div>
           </div>
         </el-col>
@@ -143,7 +146,7 @@
       <el-table
         v-loading="loading"
         :data="userList"
-         height="660"
+        height="560"
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="50" align="center" />
@@ -164,54 +167,54 @@
           prop="sendname"
         />
         <el-table-column
-        label="瀹f暀鐘舵��"
-        align="center"
-        key="sendstate"
-        prop="sendstate"
-        width="120"
+          label="瀹f暀鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
         >
-        <template slot-scope="scope">
-          <div v-if="scope.row.sendstate == 1">
-            <el-tag type="primary" :disable-transitions="false"
+          <template slot-scope="scope">
+            <div v-if="scope.row.sendstate == 1">
+              <el-tag type="primary" :disable-transitions="false"
                 >琚鍙�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 2">
-                <el-tag type="primary" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 2">
+              <el-tag type="primary" :disable-transitions="false"
                 >寰呭彂閫�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 3">
-                <el-tag type="success" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 3">
+              <el-tag type="success" :disable-transitions="false"
                 >宸插彂閫佹湭棰嗗彇</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 4">
-                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
-              </div>
-              <div v-if="scope.row.sendstate == 5">
-                <el-tag type="danger" :disable-transitions="false"
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 4">
+              <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+            </div>
+            <div v-if="scope.row.sendstate == 5">
+              <el-tag type="danger" :disable-transitions="false"
                 >鍙戦�佸け璐�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 6">
-                <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
-              </div>
-            </template>
-          </el-table-column>
+              >
+            </div>
+            <div v-if="scope.row.sendstate == 6">
+              <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
+            </div>
+          </template>
+        </el-table-column>
 
-          <el-table-column
+        <el-table-column
           label="缁撴灉鐘舵��"
           align="center"
           key="excep"
           prop="excep"
           width="120"
-          >
+        >
           <template slot-scope="scope">
             <div v-if="scope.row.sendstate == 6">
               <dict-tag
-              :options="dict.type.sys_yujing"
-              :value="scope.row.excep"
+                :options="dict.type.sys_yujing"
+                :value="scope.row.excep"
               />
             </div>
             <div v-else>
@@ -220,48 +223,49 @@
           </template>
         </el-table-column>
         <el-table-column
-        label="澶勭悊鎰忚"
-        align="center"
-        key="suggest"
-        prop="suggest"
-        width="120"
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
         >
-        <template slot-scope="scope">
-          <dict-tag
-          :options="dict.type.sys_suggest"
-          :value="scope.row.suggest"
-          />
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
           </template>
         </el-table-column>
+
         <el-table-column
-        label="鍑洪櫌鏃ユ湡"
-        width="200"
-        align="center"
-        key="endtime"
-        prop="endtime"
+          label="鍑洪櫌鏃ユ湡"
+          width="200"
+          align="center"
+          key="endtime"
+          prop="endtime"
         >
-        <template slot-scope="scope">
-          <span>{{ formatTime(scope.row.endtime) }}</span>
-        </template></el-table-column
-        >
-        <el-table-column
-        label="搴斿鏁欐棩鏈�"
-        width="200"
-        align="center"
-        key="longSendTime"
-        prop="longSendTime"
-        >
-        <template slot-scope="scope">
-          <span>{{ formatTime(scope.row.longSendTime) }}</span>
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
           </template></el-table-column
-          >
-          <el-table-column
+        >
+        <el-table-column
+          label="搴斿鏁欐棩鏈�"
+          width="200"
+          align="center"
+          key="longSendTime"
+          prop="longSendTime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.longSendTime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
           align="center"
           key="endDay"
           prop="endDay"
-          >
+        >
           <template slot-scope="scope">
             <span>{{
               scope.row.endDay ? scope.row.endDay + "澶�" : "鏃ユ湡缂哄け"
@@ -289,13 +293,7 @@
           key="drname"
           prop="drname"
         />
-        <el-table-column
-          label="瀹f暀寮傚父璁板綍"
-          width="120"
-          align="center"
-          key="remark"
-          prop="remark"
-        />
+
 
         <!-- <el-table-column
           label="鐥呭巻鍙�"
@@ -341,6 +339,7 @@
           align="center"
           key="templatename"
           prop="templatename"
+          :show-overflow-tooltip="true"
           width="200"
         />
 
@@ -351,40 +350,37 @@
           prop="createBy"
           width="120"
         />
-        <!-- <el-table-column
-          label="璐d换鍖诲笀"
-          align="center"
-          key="drname"
-          prop="drname"
-          width="120"
-        /> -->
 
-        <!-- <el-table-column
-          label="鍑洪櫌鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column> -->
-        <!-- <el-table-column
-          label="瀹f暀鏃堕棿"
-          sortable
-          align="center"
-          prop="createTime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span v-if="scope.row.sendType != 3">{{
-              formatTime(scope.row.createTime)
-            }}</span>
-            <span v-else>鍗冲埢鍙戦��</span>
-          </template>
-        </el-table-column> -->
         <el-table-column
+        fixed="right"
+          label="浠诲姟鍙戦�佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+        fixed="right"
+          label="浠诲姟缁撴灉璁板綍"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+        <template slot-scope="scope" v-if="scope.row.remark">
+          <el-tag type="success" v-if="scope.row.sendstate!=5&&scope.row.sendstate!=4&&scope.row.remark">{{ scope.row.remark }}</el-tag>
+          <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+        </template>
+      </el-table-column>
+        <el-table-column
+        fixed="right"
           label="瀹f暀鏃堕棿"
           sortable
           align="center"
@@ -408,7 +404,6 @@
             <dict-tag :options="serviceState" :value="scope.row.sendstate" />
           </template>
         </el-table-column> -->
-
       </el-table>
 
       <pagination
@@ -728,7 +723,7 @@
         pageNum: 1,
         pageSize: 10,
         serviceType: 4,
-        searchscope:2,
+        searchscope: 2,
       },
       propss: { multiple: true },
       options: [],
@@ -1005,10 +1000,10 @@
     // 渚挎嵎鎸夐挳
     toleadExport(too) {
       if (too == 1) {
-        this.topqueryParams.sendstate=4;
-        this.topqueryParams.excep=null;
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
       } else if (too == 2) {
-        this.topqueryParams.excep=1;
+        this.topqueryParams.excep = 1;
       }
       this.handleQuery();
     },
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index f925090..0592dfc 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -1254,7 +1254,6 @@
             value: "1",
             label: "浜哄伐",
           },
-
           {
             value: "2",
             label: "绾歌川",
diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue
index aad6e51..a8b9f51 100644
--- a/src/views/repositoryai/templateku/configurat/index.vue
+++ b/src/views/repositoryai/templateku/configurat/index.vue
@@ -532,6 +532,16 @@
                     <el-radio :label="0">鍚�</el-radio>
                   </el-radio-group>
                 </el-form-item>
+                <el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1">
+                  <el-input
+                    style="width: 24vw"
+                    type="textarea"
+                    autosize
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="topicobj.prompt"
+                  >
+                  </el-input
+                ></el-form-item>
                 <el-row>
                   <el-col :span="24"
                     ><el-form-item label="璇煶鏂囨湰">
@@ -617,6 +627,7 @@
                     @branchFlagfn="branchFlagfn"
                     :branchFlag="topicobj.branchFlag ? true : false"
                     :controlsc="false"
+                    :scriptType="topicobj.scriptType"
                   />
                   <!-- 鏃犲尮閰嶇被鍨� -->
                   <div class="topicxq">
@@ -1051,9 +1062,19 @@
                         </el-select> </el-form-item
                     ></el-col> -->
                   </el-row>
+                  <el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1">
+                  <el-input
+                    style="width: 24vw"
+                    type="textarea"
+                    autosize
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="indexform.prompt"
+                  >
+                  </el-input
+                ></el-form-item>
                   <el-row :gutter="10">
                     <el-col :span="18"
-                      ><el-form-item label="璇煶璇濇湳">
+                      ><el-form-item label="璇煶鏂囨湰">
                         <el-input
                           style="width: 600px"
                           type="textarea"
@@ -1422,9 +1443,9 @@
       inputValue: "",
       inputValueillness: "",
       topicobj: {
-        noMatchText: "",
-        noClearlyText: "",
-        slienceText: "",
+        noMatchText:'鎶辨瓑锛屾垜娌℃湁鍚噦锛屾偍鑳藉啀璇翠竴閬嶅悧?',
+        noClearlyText:'鎶辨瓑锛屾垜娌℃湁鍚竻鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?',
+        slienceText:'鎶辨瓑锛屾垜娌℃湁鍚埌鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?',
       },
       total: 1,
       id: "",
diff --git a/src/views/repositoryai/templateku/configurat/measurement.vue b/src/views/repositoryai/templateku/configurat/measurement.vue
index 8c3ac2b..c5da2b7 100644
--- a/src/views/repositoryai/templateku/configurat/measurement.vue
+++ b/src/views/repositoryai/templateku/configurat/measurement.vue
@@ -158,7 +158,7 @@
       };
       // 鍙戣捣ws璇锋眰
       sendWebsocket(
-        "ws://localhost:8095/chat?userId=1",
+        "ws://192.168.2.13:8095/chat?userId=1",
         obj,
         this.wsMessage,
         this.wsError
@@ -205,6 +205,8 @@
         });
         return item;
       });
+      console.log(this.questionList);
+
 
       // IMUI.appendMessage(data);
     },
@@ -224,7 +226,7 @@
       console.log(obj, "鍏ュ弬");
       // 鍙戣捣ws璇锋眰
       sendWebsocket(
-        "ws://localhost:8095/chat?userId=1",
+        "ws://192.168.2.13:8095/chat?userId=1",
         obj,
         this.wsMessage,
         this.wsError
diff --git a/src/views/repositoryai/verbaltrick/particulars/index.vue b/src/views/repositoryai/verbaltrick/particulars/index.vue
index 6008375..abac453 100644
--- a/src/views/repositoryai/verbaltrick/particulars/index.vue
+++ b/src/views/repositoryai/verbaltrick/particulars/index.vue
@@ -730,6 +730,9 @@
         ivrLibaScriptTargetoptionList: [],
         ivrLibaScriptTagList: [],
         suitway: "2",
+        noMatchText:'鎶辨瓑锛屾垜娌℃湁鍚噦锛屾偍鑳藉啀璇翠竴閬嶅悧?',
+        noClearlyText:'鎶辨瓑锛屾垜娌℃湁鍚竻鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?',
+        slienceText:'鎶辨瓑锛屾垜娌℃湁鍚埌鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?',
       },
       mode: [],
       questionclass: [],

--
Gitblit v1.9.3