From 02aa4d157d800650f1dc2fa2b7fbee52837df074 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 01 十二月 2023 13:46:07 +0800
Subject: [PATCH] Merge branch 'wulong' of http://116.62.18.175:6699/r/~yxh/smartor-web into yxh01

---
 src/views/index.vue                                      |    2 
 src/views/followvisit/outpatient/index.vue               |  418 +++++-
 src/assets/images/duanxinjilu.png                        |    0 
 src/components/Assistant/index.vue                       |   51 
 src/views/shortmessage/healthinformation/index.vue       |  921 ++++++++++++++
 src/views/patient/patient/index.vue                      |   45 
 src/assets/images/huanzheliebiao.png                     |    0 
 src/views/patient/subsequent/index.vue                   |    4 
 src/views/followvisit/satisfaction/index.vue             |  140 +
 src/views/patient/propaganda/index.vue                   |    1 
 src/views/followvisit/satisfaction/particulars/index.vue |   27 
 src/views/system/label/index.vue                         |    5 
 src/assets/images/zxlt.png                               |    0 
 src/components/SFtable/index.vue                         |  215 +-
 src/assets/images/fwwu.png                               |    0 
 src/views/patient/physical/index.vue                     |    4 
 src/assets/images/duanxinfuwu.png                        |    0 
 src/views/patient/questionnaire/index.vue                |    4 
 src/views/followvisit/record/index.vue                   |   24 
 src/assets/images/ren.png                                |    0 
 src/assets/images/dianhua.png                            |    0 
 src/views/patient/patient/profile/index.vue              |   67 
 src/assets/images/duanxin-.png                           |    0 
 src/views/patient/medtechnician/index.vue                |   17 
 src/App.vue                                              |    4 
 src/assets/images/shoushuzhudaoyisheng.png               |    0 
 src/views/patient/propaganda/particty.vue                |  577 +++-----
 src/views/followvisit/discharge/index.vue                |  424 +++++-
 src/views/patient/follow/index.vue                       |  779 ++++++++++++
 29 files changed, 2,920 insertions(+), 809 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index a91e2a5..20ad216 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -33,7 +33,9 @@
 #app {
   overflow: scroll;
   height: 100vh;
-  background: #F8FAFD;
+  background: #f8fafd;
+  /* font-family: "Microsoft YaHei", Arial, Helvetica, sans-serif, "瀹嬩綋"; */
+  font-family: "Hiragino Sans GB";
 }
 #app .theme-picker {
   display: none;
diff --git a/src/assets/images/dianhua.png b/src/assets/images/dianhua.png
new file mode 100644
index 0000000..e2031ca
--- /dev/null
+++ b/src/assets/images/dianhua.png
Binary files differ
diff --git a/src/assets/images/duanxin-.png b/src/assets/images/duanxin-.png
new file mode 100644
index 0000000..05ff2b5
--- /dev/null
+++ b/src/assets/images/duanxin-.png
Binary files differ
diff --git a/src/assets/images/duanxinfuwu.png b/src/assets/images/duanxinfuwu.png
new file mode 100644
index 0000000..5c86cd5
--- /dev/null
+++ b/src/assets/images/duanxinfuwu.png
Binary files differ
diff --git a/src/assets/images/duanxinjilu.png b/src/assets/images/duanxinjilu.png
new file mode 100644
index 0000000..1dd1afc
--- /dev/null
+++ b/src/assets/images/duanxinjilu.png
Binary files differ
diff --git a/src/assets/images/fwwu.png b/src/assets/images/fwwu.png
new file mode 100644
index 0000000..3766bbd
--- /dev/null
+++ b/src/assets/images/fwwu.png
Binary files differ
diff --git a/src/assets/images/huanzheliebiao.png b/src/assets/images/huanzheliebiao.png
new file mode 100644
index 0000000..389bab9
--- /dev/null
+++ b/src/assets/images/huanzheliebiao.png
Binary files differ
diff --git a/src/assets/images/ren.png b/src/assets/images/ren.png
new file mode 100644
index 0000000..3859adb
--- /dev/null
+++ b/src/assets/images/ren.png
Binary files differ
diff --git a/src/assets/images/shoushuzhudaoyisheng.png b/src/assets/images/shoushuzhudaoyisheng.png
new file mode 100644
index 0000000..c165d3b
--- /dev/null
+++ b/src/assets/images/shoushuzhudaoyisheng.png
Binary files differ
diff --git a/src/assets/images/zxlt.png b/src/assets/images/zxlt.png
new file mode 100644
index 0000000..46d9e10
--- /dev/null
+++ b/src/assets/images/zxlt.png
Binary files differ
diff --git a/src/components/Assistant/index.vue b/src/components/Assistant/index.vue
index 7328736..a77428a 100644
--- a/src/components/Assistant/index.vue
+++ b/src/components/Assistant/index.vue
@@ -68,7 +68,7 @@
     },
     distanceBottom: {
       type: Number,
-      default: 700,
+      default: 600,
     },
     isScrollHidden: {
       type: Boolean,
@@ -104,40 +104,24 @@
       activeIndex: 0, //楂樹寒鏄剧ず
       powerList: [
         {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "杩炴帴CTI",
+          path: require("@/assets/images/huanzheliebiao.png"),
+          label: "鎮h��",
         },
         {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "绛惧叆",
+          path: require("@/assets/images/fwwu.png"),
+          label: "鏈嶅姟",
         },
         {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "绛惧嚭",
+          path: require("@/assets/images/duanxinjilu.png"),
+          label: "鐭俊",
         },
         {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "缃棽",
+          path: require("@/assets/images/dianhua.png"),
+          label: "鐢佃瘽",
         },
         {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "缃繖",
-        },
-        {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "鎷ㄥ彿",
-        },
-        {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "鍜ㄨ",
-        },
-        {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "淇濇寔",
-        },
-        {
-          path: require("@/assets/images/涓嬭浇.png"),
-          label: "鎭㈠",
+          path: require("@/assets/images/zxlt.png"),
+          label: "鍦ㄧ嚎鑱婂ぉ",
         },
       ],
     };
@@ -172,7 +156,7 @@
     // 浼哥缉鎮诞鐞�
     handelFlex() {
       if (this.flag) {
-        this.buffer(this.box, "height", 700);
+        this.buffer(this.box, "height", 600);
       } else {
         this.buffer(this.box, "height", 70);
       }
@@ -400,7 +384,7 @@
     .item-container {
       margin-top: 10px;
       width: 70px;
-      height: 600px;
+      height: 500px;
       display: flex;
       justify-content: space-between;
       align-items: center;
@@ -410,7 +394,7 @@
         width: 40px;
         height: 40px;
         border-radius: 50%;
-        background-color: #69707a;
+        background-color: #f1f7ff;
         display: flex;
         justify-content: center;
         align-items: center;
@@ -477,10 +461,11 @@
 }
 
 .active {
-  background-color: #1a1818 !important;
+  background-color: #f9f1db !important;
 }
 .active-des {
-  color: #1a1818 !important;
-  font-weight: bold !important;
+  color: #71dcfa !important;
+  font-size: 20px !important;
+  font-weight: 500 !important;
 }
 </style>
diff --git a/src/components/SFtable/index.vue b/src/components/SFtable/index.vue
index feb19b5..2fdf215 100644
--- a/src/components/SFtable/index.vue
+++ b/src/components/SFtable/index.vue
@@ -1,100 +1,131 @@
 <!-- 琛ㄦ牸缁勪欢灏佽 -->
 <template>
-    <el-table
-      :data="currentList"
-      style="width: 1158px"
-      :header-cell-style="{
-        background: '#f3f6fb',
-        color: '#666',
-        height: '42px',
-        'font-weight': 400,
-      }"
-      :highlight-current-row="true"
-      empty-text="鏆傛棤鏁版嵁"
+  <el-table
+    :data="currentList"
+    @selection-change="handleSelectionChange"
+    :header-cell-style="{
+      background: '#f3f6fb',
+      color: '#666',
+      height: '42px',
+      'font-weight': 400,
+    }"
+    :highlight-current-row="true"
+    empty-text="鏆傛棤鏁版嵁"
+  >
+    <el-table-column v-if="multiplechoice" type="selection" width="50" align="center" />
+    <el-table-column label="搴忓彿" align="center" key="id" prop="id" />
+    <el-table-column
+      v-for="(item, index) in tableLabel"
+      :key="index"
+      :prop="item.prop"
+      :width="item.width"
+      :label="item.label"
+      :formatter="formatData"
     >
-      <el-table-column type="index" :index="indexMethod" label="搴忓彿" width="80">
-      </el-table-column>
-      <el-table-column
-        v-for="(item, index) in tableLabel"
-        :key="index"
-        :prop="item.prop"
-        :width="item.width"
-        :label="item.label"
-        :formatter="formatData"
-      >
-      </el-table-column>
-      <el-table-column label="鎿嶄綔" width="100">
-        <template slot-scope="scope">
-          <el-button type="text" @click.native="$emit('details', scope.row)"
-            >鏌ョ湅璇︽儏</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-  </template>
-  
-  <script>
-  import dayjs from "dayjs";
-  export default {
-    data() {
-      return {};
+    </el-table-column>
+    <el-table-column
+      label="鎿嶄綔"
+      align="center"
+      width="120"
+      class-name="small-padding fixed-width"
+    >
+      <template slot-scope="scope">
+        <el-button
+          v-if="controlxz"
+          size="medium"
+          type="text"
+          @click.native="$emit('handleUpdate', scope.row)"
+          ><span class="button-zx"
+            ><i class="el-icon-s-promotion"></i>閫夋嫨</span
+          ></el-button
+        >
+        <el-button
+          v-if="controlsc"
+          size="medium"
+          type="text"
+          @click.native="$emit('details', scope.row)"
+          ><span style="color: red"
+            ><i class="el-icon-delete"></i>鍒犻櫎</span
+          ></el-button
+        >
+      </template>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+import dayjs from "dayjs";
+export default {
+  data() {
+    return {
+      ids: [],
+    };
+  },
+  props: {
+    currentList: {
+      type: Array,
+      required: true,
     },
-    props: {
-      currentList: {
-        type: Array,
-        required: true,
-      },
-      tableLabel: {
-        type: Array,
-        default: () => [],
-      },
-      currentIndex: {
-        type: Number,
-        required: true,
-      },
+    tableLabel: {
+      type: Array,
+      default: () => [],
     },
-    created() {},
-  
-    methods: {
-      indexMethod(index) {
-        return parseInt(this.currentIndex) - 9 + index;
-      },
+    controlsc: {
+      type: Boolean,
+      default: true,
+    },
+    controlxz: {
+      type: Boolean,
+      default: true,
+    },
+    multiplechoice:{
+      type: Boolean,
+      default: true,
+    }
+
+  },
+  created() {},
+
+  methods: {
     //   鏁版嵁杩囨护
-      formatData(row, column, cellValue) {
-        if (column.property === "createType") {
-          if (cellValue === 1) {
-            return "鑷姩";
-          }
-          return "鎵嬪姩";
+    formatData(row, column, cellValue) {
+      if (column.property === "createType") {
+        if (cellValue === 1) {
+          return "鑷姩";
         }
-        if (column.property === "createTime") {
-          return dayjs(cellValue).format("YYYY.MM.DD HH:mm:ss");
-        }
-        return cellValue;
-      },
+        return "鎵嬪姩";
+      }
+      if (column.property === "createTime") {
+        return dayjs(cellValue).format("YYYY.MM.DD HH:mm:ss");
+      }
+      return cellValue;
     },
-  };
-  </script>
-  
-  <style lang="scss">
-  .el-table td,
-  .el-table th.is-leaf {
-    border-bottom: unset;
-  }
-  .el-table td,
-  .el-table th {
-    padding: 5px 0;
-  }
-  .el-table thead {
-    font-weight: 400;
-    color: #666;
-  }
-  .dialog-footer {
-    width: 100%;
-    padding: 10px 20px 20px;
-    text-align: center !important;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-  </style>
-  
\ No newline at end of file
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      $emit("handleSelectionChange", selection);
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+.el-table td,
+.el-table th.is-leaf {
+  border-bottom: unset;
+}
+.el-table td,
+.el-table th {
+  padding: 5px 0;
+}
+.el-table thead {
+  font-weight: 400;
+  color: #666;
+}
+.dialog-footer {
+  width: 100%;
+  padding: 10px 20px 20px;
+  text-align: center !important;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+</style>
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 3b969de..7c5e1cd 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -2,7 +2,6 @@
   <div class="app-container">
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
-
       <el-form
         :model="topqueryParams"
         ref="queryForm"
@@ -88,36 +87,12 @@
           >
         </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"
+                icon="el-icon-upload2"
                 size="medium"
                 @click="handleExport"
                 v-hasPermi="['system:user:export']"
@@ -126,13 +101,80 @@
             </div>
           </div>
         </el-col>
+        <el-col :span="1.5">
+          <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"
+                size="medium"
+                @click="AllStop"
+                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="primary"
+                icon="el-icon-remove"
+                size="medium"
+                @click="Sendtimesetting"
+                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"
@@ -147,41 +189,37 @@
         />
 
         <el-table-column
-          label="浠诲姟鍚嶇О"
+          label="鐥呭巻鍙�"
           align="center"
           sortable
           key="userName"
           prop="userName"
-          :show-overflow-tooltip="true"
+          width="120"
         />
+        <el-table-column label="濮撳悕" align="center" key="types" prop="types" />
         <el-table-column
-          label="鏈嶅姟妯℃澘"
-          align="center"
-          key="types"
-          prop="types"
-        />
-        <el-table-column
-          label="鍒涘缓鏃ユ湡"
+          label="骞撮緞"
           align="center"
           key="nickName"
           prop="nickName"
         />
         <el-table-column
-          label="寰呮墽琛�/鎬绘暟"
+          label="搴婂彿"
+          align="center"
+          key="nickName"
+          prop="nickName"
+        />
+        <el-table-column
+          label="鐥呭尯"
           align="center"
           key="phonenumber"
           prop="phonenumber"
           width="120"
         >
-          <template slot-scope="scope">
-            <span style="margin-left: 10px"
-              >{{ scope.row.date }}/{{ scope.row.data }}</span
-            >
-          </template>
         </el-table-column>
 
         <el-table-column
-          label="鎵ц鐘舵��"
+          label="鐤剧梾鍚嶇О"
           align="center"
           key="topicnumber"
           prop="topicnumber"
@@ -189,21 +227,52 @@
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <div>鎵ц瀹屾垚/鎵ц澶辫触</div>
+            <div>杞诲害楠ㄨ</div>
           </template>
         </el-table-column>
         <el-table-column
-          label="瀹℃牳浜�"
+          label="闅忚鐘舵��"
+          align="center"
+          key="topicnumber"
+          prop="topicnumber"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <div>鏈畬鎴�</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="闅忚鏂规"
           align="center"
           key="topicnumberaa"
           prop="topicnumberaa"
-          sortable
           width="120"
-          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="瀹f暀鏉愭枡"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
+        />
+        <el-table-column
+          label="闅忚鏂瑰紡"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
+        />
+        <el-table-column
+          label="闅忚浜哄憳"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
         />
 
         <el-table-column
-          label="瀹℃牳鏃堕棿"
+          label="灏辫瘖鏃堕棿"
           sortable
           align="center"
           prop="createTime"
@@ -214,25 +283,30 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="鎿嶄綔"
+          label="闅忚鏃堕棿"
+          sortable
           align="center"
-          width="120"
-          class-name="small-padding fixed-width"
+          prop="createTime"
+          width="160"
         >
           <template slot-scope="scope">
-            <el-button
-              size="medium"
-              type="text"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
-              ><span class="button-zx"
-                ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
-              ></el-button
-            >
+            <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
         <el-table-column
-          label="浠诲姟璇︽儏"
+          label="鍥炲鏃堕棿"
+          sortable
+          align="center"
+          prop="createTime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.createTime) }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="鎿嶄綔"
           align="center"
           width="200"
           class-name="small-padding fixed-width"
@@ -241,28 +315,28 @@
             <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="handleUpdate(scope.row)"
+              @click="followupvisit(scope.row)"
               v-hasPermi="['system:user:edit']"
               ><span class="button-bb"
-                ><i class="el-icon-s-order"></i>鎶ヨ〃</span
+                ><i class="el-icon-s-promotion"></i>閲嶆柊闅忚</span
               ></el-button
             >
             <el-button
               size="medium"
               type="text"
-              @click="handleUpdate(scope.row)"
+              @click="handlestop(scope.row)"
               v-hasPermi="['system:user:edit']"
               ><span class="button-sc"
-                ><i class="el-icon-delete"></i>鍒犻櫎</span
+                ><i class="el-icon-delete"></i>鍋滄</span
+              ></el-button
+            >
+            <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>
@@ -331,6 +405,81 @@
         <el-button @click="cancel">杩� 鍥�</el-button>
       </div>
     </el-dialog>
+    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+    <el-dialog
+      title="鍙戦�佹椂闂磋缃�"
+      :visible.sync="modificationVisible"
+      width="45%"
+    >
+      <div style="margin-bottom: 20px; color: red">
+        缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
+      </div>
+
+      <el-form
+        :model="ruleForm"
+        :rules="rules"
+        ref="ruleForm"
+        label-width="120px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="鍙戦�佹棩鏈�">
+          <el-date-picker
+            v-model="ruleForm.value1"
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+          >
+          </el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="鏃堕棿娈�" prop="type">
+          <el-checkbox-group v-model="ruleForm.type">
+            <el-checkbox label="涓婂崍" name="type"></el-checkbox>
+            <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
+            <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+        <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value2"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+        <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value3"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+        <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value4"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="modificationVisible = false"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -371,6 +520,8 @@
       title: "鏂板闂ㄨ瘖闅忚",
       // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
       addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
       // 閮ㄩ棬鍚嶇О
       deptName: undefined,
       // 榛樿瀵嗙爜
@@ -379,8 +530,9 @@
       dateRange: [],
       // 宀椾綅閫夐」
       postOptions: [],
-      // 瑙掕壊閫夐」
-      roleOptions: [],
+      ruleForm: {
+        type: [],
+      },
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       inputValue: "",
@@ -696,20 +848,20 @@
       // });
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      const userId = row.userId || this.ids;
-      getUser(userId).then((response) => {
-        this.form = response.data;
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.$set(this.form, "postIds", response.postIds);
-        this.$set(this.form, "roleIds", response.roleIds);
-        this.addalteropen = true;
-        this.title = "淇敼鐢ㄦ埛";
-        this.form.password = "";
-      });
-    },
+    // handleUpdate(row) {
+    //   this.reset();
+    //   const userId = row.userId || this.ids;
+    //   getUser(userId).then((response) => {
+    //     this.form = response.data;
+    //     this.postOptions = response.posts;
+    //     this.roleOptions = response.roles;
+    //     this.$set(this.form, "postIds", response.postIds);
+    //     this.$set(this.form, "roleIds", response.roleIds);
+    //     this.addalteropen = true;
+    //     this.title = "淇敼鐢ㄦ埛";
+    //     this.form.password = "";
+    //   });
+    // },
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
     handleResetPwd(row) {
       this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
@@ -761,6 +913,62 @@
         })
         .catch(() => {});
     },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails() {
+      // this.$router.push({
+      //   path: "/followvisit/record/detailpage/",
+      //   query: { id: "1" },
+      // });
+      this.$router.push({
+        path: "/followvisit/particty",
+        query: { type: 3, },
+      });
+    },
+    // 瀵煎叆鎸夐挳
+    toleadExport() {},
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
@@ -783,7 +991,7 @@
 }
 
 .document {
-  width: 100px;
+  // width: 100px;
   height: 50px;
 }
 
@@ -866,15 +1074,24 @@
 }
 .button-bb {
   font-weight: 500;
-  color: #2ba05c;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-xq {
   font-weight: 500;
-  color: #409eff;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-sc {
   font-weight: 500;
-  color: #dd302a;
+  background-color: #dd302a;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-zx {
   background: #4fabe9;
@@ -889,9 +1106,10 @@
   }
 }
 
-::v-deep.el-checkbox-group {
-  span {
-    font-size: 24px;
-  }
-}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+//   span {
+//     font-size: 24px;
+//   }
+// }
 </style>
diff --git a/src/views/followvisit/outpatient/index.vue b/src/views/followvisit/outpatient/index.vue
index 3b969de..91f90f7 100644
--- a/src/views/followvisit/outpatient/index.vue
+++ b/src/views/followvisit/outpatient/index.vue
@@ -88,36 +88,12 @@
           >
         </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"
+                icon="el-icon-upload2"
                 size="medium"
                 @click="handleExport"
                 v-hasPermi="['system:user:export']"
@@ -126,13 +102,80 @@
             </div>
           </div>
         </el-col>
+        <el-col :span="1.5">
+          <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"
+                size="medium"
+                @click="AllStop"
+                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="primary"
+                icon="el-icon-remove"
+                size="medium"
+                @click="Sendtimesetting"
+                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"
@@ -147,41 +190,31 @@
         />
 
         <el-table-column
-          label="浠诲姟鍚嶇О"
+          label="鐥呭巻鍙�"
           align="center"
           sortable
           key="userName"
           prop="userName"
-          :show-overflow-tooltip="true"
+          width="120"
         />
+        <el-table-column label="濮撳悕" align="center" key="types" prop="types" />
         <el-table-column
-          label="鏈嶅姟妯℃澘"
-          align="center"
-          key="types"
-          prop="types"
-        />
-        <el-table-column
-          label="鍒涘缓鏃ユ湡"
+          label="骞撮緞"
           align="center"
           key="nickName"
           prop="nickName"
         />
         <el-table-column
-          label="寰呮墽琛�/鎬绘暟"
+          label="绉戝"
           align="center"
           key="phonenumber"
           prop="phonenumber"
           width="120"
         >
-          <template slot-scope="scope">
-            <span style="margin-left: 10px"
-              >{{ scope.row.date }}/{{ scope.row.data }}</span
-            >
-          </template>
         </el-table-column>
 
         <el-table-column
-          label="鎵ц鐘舵��"
+          label="鐤剧梾鍚嶇О"
           align="center"
           key="topicnumber"
           prop="topicnumber"
@@ -189,21 +222,52 @@
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <div>鎵ц瀹屾垚/鎵ц澶辫触</div>
+            <div>杞诲害楠ㄨ</div>
           </template>
         </el-table-column>
         <el-table-column
-          label="瀹℃牳浜�"
+          label="闅忚鐘舵��"
+          align="center"
+          key="topicnumber"
+          prop="topicnumber"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <div>鏈畬鎴�</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="闅忚鏂规"
           align="center"
           key="topicnumberaa"
           prop="topicnumberaa"
-          sortable
           width="120"
-          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="瀹f暀鏉愭枡"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
+        />
+        <el-table-column
+          label="闅忚鏂瑰紡"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
+        />
+        <el-table-column
+          label="闅忚浜哄憳"
+          align="center"
+          key="topicnumberaa"
+          prop="topicnumberaa"
+          width="120"
         />
 
         <el-table-column
-          label="瀹℃牳鏃堕棿"
+          label="灏辫瘖鏃堕棿"
           sortable
           align="center"
           prop="createTime"
@@ -214,25 +278,31 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="鎿嶄綔"
+          label="闅忚鏃堕棿"
+          sortable
           align="center"
-          width="120"
-          class-name="small-padding fixed-width"
+          prop="createTime"
+          width="160"
         >
           <template slot-scope="scope">
-            <el-button
-              size="medium"
-              type="text"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:user:edit']"
-              ><span class="button-zx"
-                ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
-              ></el-button
-            >
+            <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
         <el-table-column
-          label="浠诲姟璇︽儏"
+          label="鍥炲鏃堕棿"
+          sortable
+          align="center"
+          prop="createTime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.createTime) }}</span>
+          </template>
+        </el-table-column>
+
+
+        <el-table-column
+          label="鎿嶄綔"
           align="center"
           width="200"
           class-name="small-padding fixed-width"
@@ -241,28 +311,28 @@
             <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="handleUpdate(scope.row)"
+              @click="followupvisit(scope.row)"
               v-hasPermi="['system:user:edit']"
               ><span class="button-bb"
-                ><i class="el-icon-s-order"></i>鎶ヨ〃</span
+                ><i class="el-icon-s-promotion"></i>閲嶆柊闅忚</span
               ></el-button
             >
             <el-button
               size="medium"
               type="text"
-              @click="handleUpdate(scope.row)"
+              @click="handlestop(scope.row)"
               v-hasPermi="['system:user:edit']"
               ><span class="button-sc"
-                ><i class="el-icon-delete"></i>鍒犻櫎</span
+                ><i class="el-icon-delete"></i>鍋滄</span
+              ></el-button
+            >
+            <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>
@@ -331,6 +401,81 @@
         <el-button @click="cancel">杩� 鍥�</el-button>
       </div>
     </el-dialog>
+    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+    <el-dialog
+      title="鍙戦�佹椂闂磋缃�"
+      :visible.sync="modificationVisible"
+      width="45%"
+    >
+      <div style="margin-bottom: 20px; color: red">
+        缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
+      </div>
+
+      <el-form
+        :model="ruleForm"
+        :rules="rules"
+        ref="ruleForm"
+        label-width="120px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="鍙戦�佹棩鏈�">
+          <el-date-picker
+            v-model="ruleForm.value1"
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+          >
+          </el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="鏃堕棿娈�" prop="type">
+          <el-checkbox-group v-model="ruleForm.type">
+            <el-checkbox label="涓婂崍" name="type"></el-checkbox>
+            <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
+            <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+        <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value2"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+        <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value3"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+        <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
+          <el-time-picker
+            is-range
+            v-model="ruleForm.value4"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            placeholder="閫夋嫨鏃堕棿鑼冨洿"
+          >
+          </el-time-picker>
+        </el-form-item>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="modificationVisible = false"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -371,6 +516,8 @@
       title: "鏂板闂ㄨ瘖闅忚",
       // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
       addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
       // 閮ㄩ棬鍚嶇О
       deptName: undefined,
       // 榛樿瀵嗙爜
@@ -379,8 +526,9 @@
       dateRange: [],
       // 宀椾綅閫夐」
       postOptions: [],
-      // 瑙掕壊閫夐」
-      roleOptions: [],
+      ruleForm: {
+        type: [],
+      },
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       inputValue: "",
@@ -696,20 +844,20 @@
       // });
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      const userId = row.userId || this.ids;
-      getUser(userId).then((response) => {
-        this.form = response.data;
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.$set(this.form, "postIds", response.postIds);
-        this.$set(this.form, "roleIds", response.roleIds);
-        this.addalteropen = true;
-        this.title = "淇敼鐢ㄦ埛";
-        this.form.password = "";
-      });
-    },
+    // handleUpdate(row) {
+    //   this.reset();
+    //   const userId = row.userId || this.ids;
+    //   getUser(userId).then((response) => {
+    //     this.form = response.data;
+    //     this.postOptions = response.posts;
+    //     this.roleOptions = response.roles;
+    //     this.$set(this.form, "postIds", response.postIds);
+    //     this.$set(this.form, "roleIds", response.roleIds);
+    //     this.addalteropen = true;
+    //     this.title = "淇敼鐢ㄦ埛";
+    //     this.form.password = "";
+    //   });
+    // },
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
     handleResetPwd(row) {
       this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
@@ -761,6 +909,62 @@
         })
         .catch(() => {});
     },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails() {
+      // this.$router.push({
+      //   path: "/followvisit/record/detailpage/",
+      //   query: { id: "1" },
+      // });
+      this.$router.push({
+        path: "/followvisit/particty",
+        query: { type: 2, },
+      });
+    },
+    // 瀵煎叆鎸夐挳
+    toleadExport() {},
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
@@ -783,7 +987,7 @@
 }
 
 .document {
-  width: 100px;
+  // width: 100px;
   height: 50px;
 }
 
@@ -866,15 +1070,24 @@
 }
 .button-bb {
   font-weight: 500;
-  color: #2ba05c;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-xq {
   font-weight: 500;
-  color: #409eff;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-sc {
   font-weight: 500;
-  color: #dd302a;
+  background-color: #dd302a;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
 }
 .button-zx {
   background: #4fabe9;
@@ -889,9 +1102,10 @@
   }
 }
 
-::v-deep.el-checkbox-group {
-  span {
-    font-size: 24px;
-  }
-}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+//   span {
+//     font-size: 24px;
+//   }
+// }
 </style>
diff --git a/src/views/followvisit/record/index.vue b/src/views/followvisit/record/index.vue
index e221418..6d8904c 100644
--- a/src/views/followvisit/record/index.vue
+++ b/src/views/followvisit/record/index.vue
@@ -87,30 +87,6 @@
             >鏂板</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="1.5">
           <div class="documentf">
             <div class="document">
diff --git a/src/views/followvisit/satisfaction/index.vue b/src/views/followvisit/satisfaction/index.vue
index 3b969de..465309e 100644
--- a/src/views/followvisit/satisfaction/index.vue
+++ b/src/views/followvisit/satisfaction/index.vue
@@ -14,10 +14,10 @@
         <el-form-item label="浠诲姟鍚嶇О">
           <el-input v-model="topqueryParams.name"></el-input>
         </el-form-item>
-        <el-form-item label="瀹℃牳浜�">
+        <el-form-item label="鍙戣捣浜�">
           <el-input v-model="topqueryParams.name"></el-input>
         </el-form-item>
-        <el-form-item label="瀹℃牳鏃堕棿">
+        <el-form-item label="鍙戣捣鏃堕棿">
           <el-date-picker
             v-model="dateRange"
             style="width: 240px"
@@ -28,7 +28,7 @@
             end-placeholder="缁撴潫鏃ユ湡"
           ></el-date-picker>
         </el-form-item>
-        <el-form-item label="闅忚绫诲瀷" prop="status">
+        <el-form-item label="璋冩煡绫诲瀷" prop="status">
           <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
             <el-option
               v-for="item in topicoptions"
@@ -39,18 +39,7 @@
             </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-form-item label="璋冩煡鐘舵��" prop="status">
           <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
             <el-option
               v-for="item in topicoptions"
@@ -77,13 +66,23 @@
       <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"
-            plain
             icon="el-icon-plus"
             size="medium"
+            :disabled="!tasktopic"
             @click="handleAdd"
-            v-hasPermi="['system:user:add']"
             >鏂板</el-button
           >
         </el-col>
@@ -111,7 +110,7 @@
             >鍒犻櫎</el-button
           >
         </el-col>
-        <el-col :span="19">
+        <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -147,7 +146,7 @@
         />
 
         <el-table-column
-          label="浠诲姟鍚嶇О"
+          label="浣忛櫌缂栧彿"
           align="center"
           sortable
           key="userName"
@@ -155,30 +154,62 @@
           :show-overflow-tooltip="true"
         />
         <el-table-column
-          label="鏈嶅姟妯℃澘"
+          label="濮撳悕"
+          align="center"
+          sortable
+          key="userName"
+          prop="userName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="骞撮緞"
+          align="center"
+          key="age"
+          prop="age"
+          width="120"
+        />
+        <el-table-column
+          label="璋冩煡妯℃澘"
           align="center"
           key="types"
           prop="types"
         />
         <el-table-column
-          label="鍒涘缓鏃ユ湡"
+          label="璋冩煡绫诲瀷"
+          align="center"
+          key="types"
+          prop="types"
+        />
+        <el-table-column
+          label="璋冩煡鍐呭"
           align="center"
           key="nickName"
           prop="nickName"
         />
         <el-table-column
-          label="寰呮墽琛�/鎬绘暟"
+          label="浣忛櫌鐥呭尯"
           align="center"
-          key="phonenumber"
-          prop="phonenumber"
-          width="120"
-        >
-          <template slot-scope="scope">
-            <span style="margin-left: 10px"
-              >{{ scope.row.date }}/{{ scope.row.data }}</span
-            >
-          </template>
-        </el-table-column>
+          key="nickName"
+          prop="nickName"
+        />
+        <el-table-column
+          label="搴婂彿"
+          align="center"
+          key="nickName"
+          prop="nickName"
+        />
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          align="center"
+          key="nickName"
+          prop="nickName"
+        />
+        <el-table-column
+          label="绠″簥鎶ゅ+"
+          align="center"
+          key="nickName"
+          prop="nickName"
+        />
 
         <el-table-column
           label="鎵ц鐘舵��"
@@ -193,7 +224,7 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="瀹℃牳浜�"
+          label="璇婃柇"
           align="center"
           key="topicnumberaa"
           prop="topicnumberaa"
@@ -203,7 +234,7 @@
         />
 
         <el-table-column
-          label="瀹℃牳鏃堕棿"
+          label="鍏ラ櫌鏃堕棿"
           sortable
           align="center"
           prop="createTime"
@@ -211,24 +242,6 @@
         >
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎿嶄綔"
-          align="center"
-          width="120"
-          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-zx"
-                ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
-              ></el-button
-            >
           </template>
         </el-table-column>
         <el-table-column
@@ -379,6 +392,21 @@
       dateRange: [],
       // 宀椾綅閫夐」
       postOptions: [],
+      taskoptions: [
+        {
+          value: "1",
+          label: "闂ㄨ瘖鐥呬汉",
+        },
+        {
+          value: "2",
+          label: "鍑洪櫌鐥呬汉",
+        },
+        {
+          value: "3",
+          label: "鍖绘姢浜哄憳",
+        },
+      ],
+      tasktopic: null, //鏂板绫诲瀷
       // 瑙掕壊閫夐」
       roleOptions: [],
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
@@ -686,8 +714,12 @@
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
-      this.reset();
-      this.addalteropen = true;
+      // this.reset();
+      // this.addalteropen = true;
+      this.$router.push({
+        path: "/Intelligentcenter/satisfaction/particulars",
+        query: { type: this.tasktopic },
+      });
       // getUser().then((response) => {
       //   this.postOptions = response.posts;
       //   this.roleOptions = response.roles;
diff --git a/src/views/followvisit/satisfaction/particulars/index.vue b/src/views/followvisit/satisfaction/particulars/index.vue
new file mode 100644
index 0000000..1e9046f
--- /dev/null
+++ b/src/views/followvisit/satisfaction/particulars/index.vue
@@ -0,0 +1,27 @@
+<template>
+  <div>
+婊℃剰搴﹁鎯�
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+
+    }
+  },
+
+  created () {
+
+  },
+
+  methods: {
+
+  }
+}
+</script>
+
+<style lang='scss' scoped>
+
+</style>
diff --git a/src/views/index.vue b/src/views/index.vue
index bd0bbfe..17f699a 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -398,9 +398,7 @@
         { amount: 0, count: 88, skuId: "0", skuName: "鍣ㄦ绉�" },
         { amount: 0, count: 87, skuId: "0", skuName: "楠ㄧ" },
         { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" },
-        { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" },
 
-        { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" },
       ];
     },
     // 鑾峰彇宸ュ崟鏁伴噺
diff --git a/src/views/patient/follow/index.vue b/src/views/patient/follow/index.vue
index 35488b3..cadf3b5 100644
--- a/src/views/patient/follow/index.vue
+++ b/src/views/patient/follow/index.vue
@@ -1,36 +1,783 @@
 <template>
-  <div>
-    鎮h�呭洖璁�
-    <transition name="slide-fade">
-      <p v-if="show">hello world</p>
-    </transition>
+  <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="name">
+            <el-input
+              v-model="queryParams.name"
+              placeholder="璇疯緭鍏ュ鍚�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎮h�呯紪鍙�" prop="iccardno">
+            <el-input
+              v-model="queryParams.iccardno"
+              placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�"
+              clearable
+              style="width: 250px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎮h�呯紪鍙�" prop="telcode">
+            <el-input
+              v-model="queryParams.telcode"
+              placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�"
+              clearable
+              style="width: 280px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎮h�呰寖鍥�" prop="tagId">
+            <el-select
+              v-model="queryParams.Patientid"
+              multiple
+              placeholder="璇烽�夋嫨"
+            >
+              <el-option
+                v-for="item in Patientrange"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-row>
+            <el-form-item label="鎮h�呮爣绛�" prop="tagId">
+              <el-select
+                v-model="queryParams.tagIds"
+                multiple
+                placeholder="璇烽�夋嫨"
+              >
+                <el-option
+                  v-for="item in optionstag"
+                  :key="item.tagid"
+                  :label="item.tagname"
+                  :value="item.tagid"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label=" 灏辫瘖鏃ユ湡 " prop="admitdate">
+              <el-date-picker
+                clearable
+                v-model="queryParams.admitdate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="璇烽�夋嫨 灏辫瘖鏃ユ湡 "
+              >
+              </el-date-picker>
+            </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-row>
+        </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="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="搴忓彿"
+            align="center"
+            key="patid"
+            prop="patid"
+          />
+          <el-table-column 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="archivetime"
+            prop="archivetime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.createTime) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="瀹跺涵浣忓潃"
+            align="center"
+            key="age"
+            prop="age"
+            width="120"
+          />
+          <el-table-column
+            label="榛戝悕鍗曞師鍥�"
+            align="center"
+            key="age"
+            prop="age"
+            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 }} </span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="璇佷欢绫诲瀷"
+            align="center"
+            key="iccardtype"
+            prop="iccardtype"
+            width="120"
+          /><el-table-column
+            label="璇佷欢鍙风爜"
+            align="center"
+            key="iccardno"
+            prop="iccardno"
+            width="190"
+          />
+
+          <el-table-column
+            label="鑱旂郴鏂瑰紡"
+            align="center"
+            key="telcode"
+            prop="telcode"
+            width="120"
+          />
+          <el-table-column
+            label="寤烘。鏃ユ湡"
+            align="center"
+            key="archivetime"
+            prop="archivetime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.createTime) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鏇存柊鏃ユ湡"
+            align="center"
+            prop="updateTime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.createTime) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            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
+              >
+            </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="12">
+            <el-form-item label="濮撳悕" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <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-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="璇佷欢绫诲瀷" prop="iccardtype">
+              <el-select v-model="form.iccardtype" 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="iccardno">
+              <el-input
+                v-model="form.iccardno"
+                placeholder="璇疯緭鍏ヨ瘉浠跺彿"
+                maxlength="50"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="鏈汉鎵嬫満鍙�" prop="telcode">
+              <el-input
+                v-model="form.telcode"
+                placeholder="璇疯緭鍏ユ墜鏈哄彿"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="浜插睘鎵嬫満鍙�" prop="relativetelcode">
+              <el-input
+                v-model="form.relativetelcode"
+                placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿"
+                type="password"
+                maxlength="20"
+                show-password
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎮h�呮爣绛�">
+              <!-- <el-select v-model="form.sex" placeholder="璇烽�夋嫨"> -->
+              <el-select v-model="form.tagList" multiple placeholder="璇烽�夋嫨">
+                <el-option
+                  v-for="item in optionstag"
+                  :key="item.tagid"
+                  :label="item.tagname"
+                  :value="item.tagid"
+                >
+                </el-option>
+              </el-select>
+              <!-- </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>
   </div>
 </template>
 
 <script>
+import { delUser } from "@/api/system/user";
+import {
+  listpat_archive,
+  getpat_archive,
+  addpat_archive,
+  updatepat_archive,
+  delpat_archive,
+} from "@/api/smartorpor/pat_archive";
+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 {
-      show: true,
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 閮ㄩ棬鏍戦�夐」
+      deptOptions: undefined,
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      amendtag: false, //鏄惁淇敼
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      paperstypes: [
+        { papersname: "韬唤璇�" },
+        { papersname: "鎶ょ収" },
+        { papersname: "涓浗娓境灞呮皯韬唤璇�" },
+        { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" },
+      ],
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        name: "",
+        age: "",
+        sex: "",
+        tagList: [],
+        iccardno: "",
+        telcode: "",
+        iccardtype: "",
+        relativetelcode: "",
+      },
+      //瀵煎叆杩涘害
+      dractive: 1,
+      // 瀵煎叆灞曠ず琛ㄥ崟
+      uploadingData: {},
+      total: 0, // 鎬绘潯鏁�
+      ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲�
+      Labelchange: false, //淇敼鏂板寮圭獥
+      propss: { multiple: true },
+      optionstag: [], //鏍囩鍒楄〃
+      Patientrange: [
+        {
+          name: "鍏ㄩ儴",
+          id: 1,
+        },
+        {
+          name: "褰撳墠绉戝",
+          id: 1,
+        },
+      ],
+      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,
+        pageSize: 10,
+        iccardno: undefined,
+        name: undefined,
+        status: undefined,
+        tagIds: undefined,
+        telcode: undefined,
+      },
+      // 琛ㄥ崟鏍¢獙
+      rules: {},
     };
   },
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  created() {
+    this.getList();
+    this.gettabList();
+  },
+  methods: {
+    /** 鏌ヨ鎮h�呭垪琛� */
+    getList() {
+      this.loading = true;
+      messagelistpatient(this.queryParams).then((response) => {
+        console.log(response);
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 鏌ヨ鏍囩鍒楄〃 */
+    gettabList() {
+      const queryParams = {};
+      listtag().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;
+      });
+    },
 
-  created() {},
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    // 鑺傜偣鍗曞嚮浜嬩欢
+    handleNodeClick(data) {
+      this.queryParams.deptId = data.id;
+      this.handleQuery();
+    },
 
-  methods: {},
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        name: "",
+        age: "",
+        sex: "",
+        tagList: [],
+        iccardno: "",
+        telcode: "",
+        iccardtype: "",
+        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) {
+        alterpatient(this.form)
+          .then((response) => {
+            console.log(response);
+          })
+          .then(() => {
+            this.getList();
+            this.$modal.msgSuccess("淇敼鎴愬姛");
+          });
+      } else {
+        addpatient(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(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download(
+        "smartor/patarchive/export",
+        {
+          ...this.queryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    /** 瀵煎叆鎸夐挳鎿嶄綔 */
+    handleImport() {
+      this.upload.title = "鐢ㄦ埛瀵煎叆";
+      this.upload.open = true;
+    },
+    /** 涓嬭浇妯℃澘鎿嶄綔 */
+    importTemplate() {
+      this.download(
+        "system/user/importTemplate",
+        {},
+        `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>
-.slide-fade-enter-active {
-  transition: all 1s ease;
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
 }
-.slide-fade-leave-active {
-  transition: all 2s cubic-bezier(1, 0.5, 0.8, 1);
+.document {
+  width: 100px;
+  height: 50px;
 }
-.slide-fade-enter,
-.slide-fade-leave-to {
-  transform: translateX(40px);
-  opacity: 0;
+.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: 30px;
+  background: #daeaf5;
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+.button-textsc {
+  color: #28cfe6;
 }
 </style>
diff --git a/src/views/patient/medtechnician/index.vue b/src/views/patient/medtechnician/index.vue
new file mode 100644
index 0000000..b0ca803
--- /dev/null
+++ b/src/views/patient/medtechnician/index.vue
@@ -0,0 +1,17 @@
+<template>
+  <div>鍖绘妧</div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+
+  created() {},
+
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue
index b785d7a..6a53f9e 100644
--- a/src/views/patient/patient/index.vue
+++ b/src/views/patient/patient/index.vue
@@ -307,7 +307,7 @@
               <el-table-column
                 label="鎿嶄綔"
                 align="center"
-                width="160"
+                width="190"
                 class-name="small-padding fixed-width"
               >
                 <template slot-scope="scope">
@@ -330,7 +330,7 @@
                     type="text"
                     @click="handleUpdate(scope.row)"
                     v-hasPermi="['system:user:edit']"
-                    ><span class="button-textxg"
+                    ><span class="button-textxga"
                       ><i class="el-icon-edit"></i>淇敼</span
                     ></el-button
                   >
@@ -340,7 +340,7 @@
                     @click="Distributionservice(scope.row)"
                     v-hasPermi="['system:user:edit']"
                     ><span class="button-textxg"
-                      ><i class="el-icon-edit"></i>鏈嶅姟</span
+                      ><i class="el-icon-menu"></i>鏈嶅姟</span
                     ></el-button
                   >
                 </template>
@@ -566,6 +566,21 @@
         <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>
 
@@ -623,6 +638,8 @@
       // 榛樿瀵嗙爜
       initPassword: undefined,
       amendtag: false, //鏄惁淇敼
+      serviceVisible: false,
+      serviceradio: 1,
       // 鏃ユ湡鑼冨洿
       dateRange: [],
       paperstypes: [
@@ -789,16 +806,8 @@
         this.loading = false;
       });
     },
-
-    // 绛涢�夎妭鐐�
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
-    },
-    // 鑺傜偣鍗曞嚮浜嬩欢
-    handleNodeClick(data) {
-      this.queryParams.deptId = data.id;
-      this.handleQuery();
+    Distributionservice(row) {
+      this.serviceVisible = true;
     },
 
     // 鍙栨秷鎸夐挳
@@ -896,6 +905,13 @@
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
         .catch(() => {});
+    },
+    //鏈嶅姟璺宠浆
+    CreateService() {
+      this.$router.push({
+        path: "/followvisit/particty",
+        query: { type: this.serviceradio },
+      });
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
@@ -1084,4 +1100,7 @@
 .button-textsc {
   color: #28cfe6;
 }
+.button-textxg {
+  color: #de7897;
+}
 </style>
diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index 709759f..3475bfd 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -119,9 +119,7 @@
         <span class="mulsz" slot="label"
           ><i class="el-icon-s-custom"></i> 鏈嶅姟璁板綍</span
         >
-
-        瀹氭椂浠诲姟琛ュ伩</el-tab-pane
-      >
+      </el-tab-pane>
     </el-tabs>
 
     <!-- 鍋ュ悍妗f妯″潡 -->
@@ -278,7 +276,62 @@
     </div>
 
     <!-- 鏈嶅姟璁板綍 -->
-    <div class="medical-record" v-else-if="activeName == 'serve'">sdaad</div>
+    <div
+      class="medical-recordc"
+      style="margin-top: 20px; font-size: 20px !important"
+      v-else-if="activeName == 'serve'"
+    >
+      <el-tabs type="border-card">
+        <el-tab-pane label="棣栨闅忚">
+          <div style="margin-top: 10px">
+            闅忚鐘舵�侊細宸茬粓姝�<span style="color: #2775b6"
+              >锛堢粓姝㈠師鍥狅細鎮h�呯棅鎰堝洖璁跨粨鏉燂紝缁堟鏃堕棿锛�2023-12-18 12:00锛�</span
+            >
+          </div>
+          <div style="margin-top: 10px">
+            闅忚鍙戦�佹椂闂达細<span style="color: #2775b6">2023-11-23 12:00</span>
+          </div>
+          <div style="margin-top: 10px">
+            闅忚瀹屾垚鏃堕棿锛�<span style="color: #2775b6">2023-12-18 12:00</span>
+          </div>
+          <div style="margin-top: 10px">
+            鐤肩棝绋嬪害锛�<span style="color: #2775b6">涓害</span>
+          </div>
+          <div
+            style="
+              font-size: 22px;
+              padding-left: 5px;
+              margin: 15px 0;
+              border-left: 4px solid rgb(65, 161, 190);
+            "
+          >
+            浜哄伐闅忚璁板綍
+          </div>
+          <div style="margin-top: 10px">
+            <el-row :gutter="20">
+              <el-col :span="6"
+                >闅忚鏃ユ湡锛�
+                <span style="color: #2775b6">2023-11-22 11:22</span></el-col
+              >
+              <el-col :span="6"
+                >闅忚浜猴細 <span style="color: #2775b6">鍚村皬榫�</span></el-col
+              >
+              <el-col :span="6"
+                >鎮h�呴厤鍚堝害锛� <span style="color: #2775b6">楂�</span></el-col
+              >
+            </el-row>
+          </div>
+          <div style="margin-top: 10px">
+            闅忚缁撴灉锛� <span style="color: #2775b6">鎮h�呯棅鎰堬紝韬綋鍊嶆</span>
+          </div>
+          <div style="margin-top: 10px">
+            闅忚澶囨敞锛� <span style="color: #2775b6">鎻愰啋娉ㄦ剰楗鍋ュ悍</span>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="浜屾闅忚">浜屾闅忚</el-tab-pane>
+        <el-tab-pane label="涓夋闅忚">涓夋闅忚</el-tab-pane>
+      </el-tabs>
+    </div>
     <!-- 鍋ュ悍鐩戞祴 -->
     <div class="medical-record" v-show="activeName == 'monitor'">
       <!-- 琛�鍘嬪浘鏍� -->
@@ -744,7 +797,7 @@
   }
 }
 .el-tabs--border-card {
-  font-size: 25px;
+  // font-size: 25px;
   .mulsz {
     font-size: 25px;
     margin-top: 20px;
@@ -761,6 +814,7 @@
     margin-left: 100px;
     .detailed {
       width: 70%;
+      border-radius: 8px;
       padding: 30px;
       margin-bottom: 30px;
       background-color: #ddf0f8;
@@ -792,9 +846,10 @@
     margin-bottom: 25px;
     margin-left: 100px;
     .Table-screen {
-      width: 70%;
+      width: 88%;
       padding: 30px;
       margin-bottom: 30px;
+      border-radius: 8px;
       background-color: #ddf0f8;
       font-size: 20px !important;
     }
diff --git a/src/views/patient/physical/index.vue b/src/views/patient/physical/index.vue
index 90c1bd6..70609e8 100644
--- a/src/views/patient/physical/index.vue
+++ b/src/views/patient/physical/index.vue
@@ -916,8 +916,8 @@
     // 璺宠浆璇︽儏椤�
     Seedetails() {
       this.$router.push({
-        path: "/followvisit/record/detailpage/",
-        query: { id: "1" },
+        path: "/followvisit/particty",
+        query: { type: 5 },
       });
     },
     // 瀵煎叆鎸夐挳
diff --git a/src/views/patient/propaganda/index.vue b/src/views/patient/propaganda/index.vue
index d50fa4e..349c095 100644
--- a/src/views/patient/propaganda/index.vue
+++ b/src/views/patient/propaganda/index.vue
@@ -717,6 +717,7 @@
     handleUpdate(row) {
       this.$router.push({
         path: "/followvisit/particty",
+        query: { type: 1, },
       });
     },
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 7c5e6ef..7c26081 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -35,7 +35,7 @@
             </div>
             <div class="jic-value">
               <el-form ref="form" :model="form" label-width="105px">
-                <el-form-item label="鍙戦�佹椂闂达細">
+                <el-form-item label="鍙戦�佹椂闂达細" v-if="currenttype != 2">
                   <el-date-picker
                     v-model="form.name"
                     type="date"
@@ -43,26 +43,23 @@
                   >
                   </el-date-picker>
                 </el-form-item>
-                <el-form-item label="鍙戦�佹椂闂存锛�">
+                <el-form-item label="鍙戦�佹椂闂存锛�" v-if="currenttype != 2">
                   <el-checkbox-group v-model="checkList">
                     <el-checkbox label="涓婂崍锛�8:30-11:30锛�"></el-checkbox>
                     <el-checkbox label="涓嬪崍锛�14:30-16:30锛�"></el-checkbox>
                     <el-checkbox label="澶滈棿锛�18:30-20:30锛�"></el-checkbox>
                   </el-checkbox-group>
                 </el-form-item>
-                <el-form-item label="瀹f暀褰㈠紡">
+                <el-form-item label="鏈嶅姟褰㈠紡">
                   <el-checkbox-group v-model="checkList">
-                    <el-checkbox label="褰撻潰"></el-checkbox>
-                    <el-checkbox label="澶氬獟浣�"></el-checkbox>
-                    <el-checkbox label="绾歌川"></el-checkbox>
-                    <el-checkbox label="鐢佃瘽"></el-checkbox>
-                    <el-checkbox label="鐭俊"></el-checkbox>
-                    <el-checkbox label="寰俊鍏紬鍙�"></el-checkbox>
-                    <el-checkbox label="寰俊灏忕▼搴�"></el-checkbox>
-                    <el-checkbox label="閽夐拤"></el-checkbox>
+                    <el-checkbox
+                      v-for="(item, index) in checkboxlist"
+                      :key="index"
+                      :label="item"
+                    ></el-checkbox>
                   </el-checkbox-group>
                 </el-form-item>
-                <el-form-item label="鍙戦�佹椂闂存锛�">
+                <el-form-item label="缁勭粐褰㈠紡">
                   <el-radio-group v-model="form.radio">
                     <el-radio :label="3">鍗曚汉</el-radio>
                     <el-radio :label="6">澶氫汉</el-radio>
@@ -79,7 +76,7 @@
           </div>
           <div class="examine-jic">
             <div class="headline">
-              <div>瀹f暀鍐呭鍒楄〃</div>
+              <div>{{ title }}</div>
             </div>
             <div class="examine-jic">
               <div class="jic-value">
@@ -94,14 +91,92 @@
                     v-show="showSearch"
                     label-width="98px"
                   >
-                    <el-form-item label="瀹f暀涓婚">
+                    <el-form-item label="瀹f暀涓婚" v-if="currenttype == 1">
                       <el-input v-model="topqueryParams.name"></el-input>
                     </el-form-item>
-                    <el-form-item label="閫傜敤鐤剧梾">
+                    <el-form-item
+                      label="闅忚鍚嶇О"
+                      v-if="currenttype == 2 || currenttype == 3"
+                    >
+                      <el-input
+                        v-model="topqueryParams.name"
+                      ></el-input> </el-form-item
+                    ><el-form-item
+                      label="閫氱煡鍚嶇О"
+                      v-if="currenttype == 4 || currenttype == 5"
+                    >
+                      <el-input
+                        v-model="topqueryParams.name"
+                      ></el-input> </el-form-item
+                    ><el-form-item label="浣撴濂楅" v-if="currenttype == 5">
+                      <el-input v-model="topqueryParams.name"></el-input>
+                    </el-form-item>
+                    <el-form-item label="闂嵎涓婚" v-if="currenttype == 6">
+                      <el-input v-model="topqueryParams.name"></el-input>
+                    </el-form-item>
+                    <el-form-item label="閫傜敤鐤剧梾" v-if="currenttype != 5">
                       <el-input v-model="topqueryParams.name"></el-input>
                     </el-form-item>
 
-                    <el-form-item label="瀹f暀绫诲瀷" prop="status">
+                    <el-form-item
+                      label="瀹f暀绫诲瀷"
+                      prop="status"
+                      v-if="currenttype == 1"
+                    >
+                      <el-select
+                        v-model="topqueryParams.topic"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          v-for="item in taskoptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item
+                      label="閫氱煡绫诲瀷"
+                      prop="status"
+                      v-if="currenttype == 4 || currenttype == 5"
+                    >
+                      <el-select
+                        v-model="topqueryParams.topic"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          v-for="item in taskoptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item
+                      label="闅忚绫诲瀷"
+                      prop="status"
+                      v-if="currenttype == 2 || currenttype == 3"
+                    >
+                      <el-select
+                        v-model="topqueryParams.topic"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          v-for="item in taskoptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item
+                      label="闂嵎绫诲瀷"
+                      prop="status"
+                      v-if="currenttype == 6"
+                    >
                       <el-select
                         v-model="topqueryParams.topic"
                         placeholder="璇烽�夋嫨"
@@ -161,91 +236,15 @@
                     </el-form-item>
                   </el-form>
                   <el-divider></el-divider>
-                  <el-table
-                    v-loading="loading"
-                    :data="userList"
-                    @selection-change="handleSelectionChange"
-                  >
-                    <el-table-column
-                      type="selection"
-                      width="50"
-                      align="center"
-                    />
-                    <el-table-column
-                      label="搴忓彿"
-                      align="center"
-                      key="id"
-                      prop="id"
-                    />
-
-                    <el-table-column
-                      label="瀹f暀鍚嶇О"
-                      align="center"
-                      sortable
-                      key="name"
-                      prop="name"
-                      :show-overflow-tooltip="true"
-                    />
-                    <el-table-column
-                      label="瀹f暀妯℃澘"
-                      align="center"
-                      key="impTemplate"
-                      prop="impTemplate"
-                    />
-                    <el-table-column
-                      label="鍒涘缓鏃ユ湡"
-                      align="center"
-                      key="create_time"
-                      prop="create_time"
-                    />
-
-                    <el-table-column
-                      label="鍒涘缓浜�"
-                      align="center"
-                      key="update_by"
-                      prop="update_by"
-                      sortable
-                      width="120"
-                      :show-overflow-tooltip="true"
-                    />
-                    <el-table-column
-                      label="鎿嶄綔"
-                      align="center"
-                      width="120"
-                      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-zx"
-                            ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
-                          ></el-button
-                        >
-                      </template>
-                    </el-table-column>
-                    <el-table-column
-                      label="浠诲姟璇︽儏"
-                      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
-                        >
-                      </template>
-                    </el-table-column>
-                  </el-table>
-
+                  <!-- 閫夋嫨浠诲姟鍒楄〃 -->
+                  <SFtable
+                    @handleUpdate="handleUpdate"
+                    @handleSelectionChange="handleSelectionChange"
+                    :currentList="userList"
+                    :tableLabel="tableLabelxj"
+                    :controlsc="false"
+                    :multiplechoice="false"
+                  />
                   <pagination
                     v-show="total > 0"
                     :total="total"
@@ -380,8 +379,7 @@
                         icon="el-icon-plus"
                         size="medium"
                         :disabled="!tasktopic"
-                        @click="handleAdd"
-                        v-hasPermi="['system:user:add']"
+                        @click="handleAddpatient"
                         >鏂板</el-button
                       >
                     </el-col>
@@ -394,152 +392,20 @@
                         size="medium"
                         :disabled="multiple"
                         @click="handleDelete"
-                        v-hasPermi="['system:user:remove']"
                         >鍒犻櫎</el-button
                       >
                     </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"
-                    @selection-change="handleSelectionChange"
-                  >
-                    <el-table-column
-                      type="selection"
-                      width="50"
-                      align="center"
-                    />
-                    <el-table-column
-                      label="搴忓彿"
-                      align="center"
-                      key="id"
-                      prop="id"
-                    />
-
-                    <el-table-column
-                      label="浠诲姟鍚嶇О"
-                      align="center"
-                      sortable
-                      key="name"
-                      prop="name"
-                      :show-overflow-tooltip="true"
-                    />
-                    <el-table-column
-                      label="鏈嶅姟妯℃澘"
-                      align="center"
-                      key="impTemplate"
-                      prop="impTemplate"
-                    />
-                    <el-table-column
-                      label="鍒涘缓鏃ユ湡"
-                      align="center"
-                      key="create_time"
-                      prop="create_time"
-                    />
-                    <el-table-column
-                      label="鎵ц鐘舵��"
-                      align="center"
-                      key="phonenumber"
-                      prop="phonenumber"
-                      width="120"
-                    />
-
-                    <el-table-column
-                      label="鎵ц鐘舵��"
-                      align="center"
-                      key="topicnumber"
-                      prop="topicnumber"
-                      width="120"
-                      :show-overflow-tooltip="true"
-                    >
-                      <template slot-scope="scope">
-                        <div>鎵ц瀹屾垚/鎵ц澶辫触</div>
-                      </template>
-                    </el-table-column>
-                    <el-table-column
-                      label="鏇存柊浜�"
-                      align="center"
-                      key="update_by"
-                      prop="update_by"
-                      sortable
-                      width="120"
-                      :show-overflow-tooltip="true"
-                    />
-
-                    <el-table-column
-                      label="鏇存柊鏃堕棿"
-                      sortable
-                      align="center"
-                      prop="update_time"
-                      width="160"
-                    >
-                      <template slot-scope="scope">
-                        <span>{{ parseTime(scope.row.createTime) }}</span>
-                      </template>
-                    </el-table-column>
-                    <el-table-column
-                      label="鎿嶄綔"
-                      align="center"
-                      width="120"
-                      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-zx"
-                            ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
-                          ></el-button
-                        >
-                      </template>
-                    </el-table-column>
-                    <el-table-column
-                      label="浠诲姟璇︽儏"
-                      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="handleUpdate(scope.row)"
-                          v-hasPermi="['system:user:edit']"
-                          ><span class="button-bb"
-                            ><i class="el-icon-s-order"></i>鎶ヨ〃</span
-                          ></el-button
-                        >
-                        <el-button
-                          size="medium"
-                          type="text"
-                          @click="handleUpdate(scope.row)"
-                          v-hasPermi="['system:user:edit']"
-                          ><span class="button-sc"
-                            ><i class="el-icon-delete"></i>鍒犻櫎</span
-                          ></el-button
-                        >
-                      </template>
-                    </el-table-column>
-                  </el-table>
-
+                  <!-- 閫変腑鎮h�呭垪琛� -->
+                  <SFtable
+                    @handleUpdate="handleUpdate"
+                    @handleSelectionChange="handleSelectionChange"
+                    :currentList="sonuserList"
+                    :tableLabel="tableLabelhz"
+                    :controlxz="false"
+                  />
                   <pagination
                     v-show="total > 0"
                     :total="total"
@@ -640,73 +506,14 @@
                 >
               </el-form-item>
             </el-form>
-
-            <el-table
-              v-loading="patientloading"
-              :data="patientuserList"
-              @selection-change="handleSelectionChange"
-            >
-              <el-table-column type="selection" width="50" align="center" />
-              <el-table-column
-                label="搴忓彿"
-                align="center"
-                key="patid"
-                prop="patid"
-              />
-
-              <el-table-column
-                label="鎮h�呭悕绉�"
-                align="center"
-                sortable
-                key="name"
-                prop="name"
-                :show-overflow-tooltip="true"
-              />
-
-              <el-table-column
-                label="鎮h�呮潵婧�"
-                align="center"
-                key="source"
-                prop="source"
-              />
-              <el-table-column
-                label="鎵嬫満鍙风爜"
-                align="center"
-                key="telcode"
-                prop="telcode"
-                width="120"
-                :show-overflow-tooltip="true"
-              />
-
-              <el-table-column
-                label="浠诲姟璇︽儏"
-                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="handleUpdate(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>
+            <!-- 閫夋嫨鎮h�呭垪琛� -->
+            <SFtable
+              @handleUpdate="handleUpdate"
+              @handleSelectionChange="handleSelectionChange"
+              :currentList="patientuserList"
+              :tableLabel="tableLabelhz"
+              :controlsc="false"
+            />
           </el-row>
           <pagination
             v-show="patienttotal > 0"
@@ -728,25 +535,69 @@
 </template>
 
 <script>
-import {
-  listsvr_prjtask,
-  getsvr_prjtask,
-  addsvr_prjtask,
-  updatesvr_prjtask,
-  delsvr_prjtask,
-  Addpatienttask,
-} from "@/api/smartorpor/svr_prjtask";
+import { listsvr_prjtask, Addpatienttask } from "@/api/smartorpor/svr_prjtask";
 import { listpat_archive } from "@/api/smartorpor/pat_archive";
 import { listsvr_prjtaskline } from "@/api/smartorpor/svr_prjtaskline";
+import { messagelistpatient } from "@/api/patient/homepage";
+import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
 
 export default {
+  name: "ServiceDetails",
   data() {
     return {
+      title: "瀹f暀鍐呭鍒楄〃",
+      currenttype: 1, //1瀹f暀2闂ㄨ瘖3鍑洪櫌4澶嶈瘖5浣撴6闂嵎
       Editprogress: 1, //缂栬緫杩涘害
       loading: false, // 閬僵灞�
       patientloading: false, // 閬僵灞�
-      dialogVisible: false, //浠诲姟璇︽儏寮规
       dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗�
+      checkboxlist: [],
+      tableLabel: [],
+      // 鎮h�呰〃鍗�
+      tableLabelhz: [
+        { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+        { label: "鎬у埆", width: "", prop: "sex" },
+        { label: "骞撮緞", width: "", prop: "age" },
+        { label: "灏辫瘖绉戝", width: "", prop: "impTemplate" },
+        { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "", prop: "update_by" },
+      ],
+      tableLabelxj: [
+        { label: "瀹f暀鍚嶇О", width: "", prop: "name" },
+        { label: "瀹f暀妯$増", width: "", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "", prop: "update_by" },
+      ],
+      tableLabelmz: [
+        { label: "闅忚鍚嶇О", width: "118", prop: "name" },
+        { label: "闅忚妯$増", width: "130", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "136", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "130", prop: "update_by" },
+      ],
+      tableLabelcy: [
+        { label: "闅忚鍚嶇О", width: "118", prop: "name" },
+        { label: "闅忚璁″垝", width: "130", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "136", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "130", prop: "update_by" },
+      ],
+      tableLabelfz: [
+        { label: "閫氱煡鍚嶇О", width: "118", prop: "name" },
+        { label: "閫氱煡妯$増", width: "130", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "136", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "130", prop: "update_by" },
+      ],
+      tableLabeltj: [
+        { label: "閫氱煡鍚嶇О", width: "118", prop: "name" },
+        { label: "閫氱煡妯$増", width: "130", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "136", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "130", prop: "update_by" },
+      ],
+      tableLabelwj: [
+        { label: "闂嵎鍚嶇О", width: "118", prop: "name" },
+        { label: "闂嵎妯$増", width: "130", prop: "impTemplate" },
+        { label: "鍒涘缓鏃ユ湡", width: "136", prop: "create_time" },
+        { label: "鍒涘缓浜�", width: "130", prop: "update_by" },
+      ],
       topqueryParams: {
         pageNum: 1, //
         pageSize: 10,
@@ -772,9 +623,9 @@
       // 闈炲涓鐢�
       multiple: true,
       // 鐢ㄦ埛琛ㄦ牸鏁版嵁
-      userList: null,
-      patientuserList: null,
-      sonuserList: null,
+      userList: [], //妯$増鍒楄〃
+      patientuserList: [], //閫夋嫨鎮h�呭垪琛�
+      sonuserList: [], //閫変腑鎮h�呭垪琛�
       tasktopic: null, //鏂板绫诲瀷
       form: {
         name: "",
@@ -794,14 +645,6 @@
         {
           value: "閫夐」2",
           label: "鍙岀毊濂�",
-        },
-        {
-          value: "閫夐」3",
-          label: "铓典粩鐓�",
-        },
-        {
-          value: "閫夐」4",
-          label: "榫欓』闈�",
         },
         {
           value: "閫夐」5",
@@ -829,13 +672,63 @@
       quote: false,
     };
   },
+  components: { SFtable },
 
   created() {
     this.Addsubtask();
     this.Getsubtask();
+    this.Acquisitiontype();
   },
 
   methods: {
+    // 鑾峰彇褰撳墠绫诲瀷
+    Acquisitiontype() {
+      this.currenttype = this.$route.query.type;
+      console.log(this.currenttype);
+      if (this.currenttype == 1) {
+        this.title = "瀹f暀鍐呭鍒楄〃";
+        this.tableLabel = this.tableLabelxj;
+        this.checkboxlist = [
+          "褰撻潰",
+          "澶氬獟浣�",
+          "绾歌川",
+          "鐢佃瘽",
+          "鐭俊",
+          "寰俊鍏紬鍙�",
+          "寰俊灏忕▼搴�",
+          "閽夐拤",
+        ];
+      } else if (this.currenttype == 2) {
+        this.title = "闅忚鍐呭鍒楄〃";
+        this.tableLabel = this.tableLabelmz;
+        this.checkboxlist = ["褰撻潰", "绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+      } else if (this.currenttype == 3) {
+        this.title = "闅忚璁″垝鍒楄〃";
+        this.tableLabel = this.tableLabelcy;
+        this.checkboxlist = ["褰撻潰", "绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+      } else if (this.currenttype == 4) {
+        this.title = "閫氱煡鍐呭鍒楄〃";
+        this.tableLabel = this.tableLabelfz;
+        this.checkboxlist = ["鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+      } else if (this.currenttype == 5) {
+        this.title = "閫氱煡鍐呭鍒楄〃";
+        this.tableLabel = this.tableLabeltj;
+        this.checkboxlist = ["绾歌川", "鐢佃瘽", "鐭俊", "寰俊鍏紬鍙�"];
+      } else if (this.currenttype == 6) {
+        this.title = "闂嵎鍐呭鍒楄〃";
+        this.tableLabel = this.tableLabelwj;
+        this.checkboxlist = [
+          "褰撻潰",
+          "澶氬獟浣�",
+          "绾歌川",
+          "鐢佃瘽",
+          "鐭俊",
+          "寰俊鍏紬鍙�",
+          "寰俊灏忕▼搴�",
+          "閽夐拤",
+        ];
+      }
+    },
     // 涓嬩竴姝�
     submitForm(formName) {
       if (this.Editprogress <= 3) {
@@ -851,21 +744,10 @@
       //   }
       // });
     },
-    // 瀛愪换鍔′竴绾у脊妗�
-    handleAdd() {
-      this.multiple = true;
-      listsvr_prjtaskline(this.deliverytopqueryParams).then((response) => {
-        console.log(response);
-        this.sonuserList = response.rows;
-        this.sontotal = response.total;
-        this.loading = false;
-      });
-      this.dialogVisible = true;
-    },
     // 瀛愪换鍔′簩绾у脊妗�
-    handleAddpatient() {
-      console.log(this.multiple);
-      listpat_archive(this.patientqueryParams).then((response) => {
+    handleAddpatient(row) {
+      console.log(row, "瀛愮粍浠舵暟鎹�");
+      messagelistpatient(this.patientqueryParams).then((response) => {
         console.log(response);
         this.patientuserList = response.rows;
         this.patienttotal = response.total;
@@ -887,9 +769,6 @@
     getList() {},
     handleQuery() {},
     resetQuery() {},
-    handleCloserw() {
-      this.dialogVisible = false;
-    },
     handleClosehz() {
       this.dialogVisiblepatient = false;
     },
@@ -928,9 +807,7 @@
     Getsubtask() {
       this.topqueryParams.pguid = 2;
       console.log(this.topqueryParams);
-      // this.topqueryParams.pid = this.$route.query.id;
-      // console.log(this.topqueryParams.pid);
-      listsvr_prjtask(this.topqueryParams).then((res) => {
+      messagelistpatient(this.topqueryParams).then((res) => {
         this.userList = res.rows;
         this.total = res.total;
         console.log(this.userList);
diff --git a/src/views/patient/questionnaire/index.vue b/src/views/patient/questionnaire/index.vue
index b1a80e2..327b358 100644
--- a/src/views/patient/questionnaire/index.vue
+++ b/src/views/patient/questionnaire/index.vue
@@ -901,8 +901,8 @@
     // 璺宠浆璇︽儏椤�
     Seedetails() {
       this.$router.push({
-        path: "/followvisit/record/detailpage/",
-        query: { id: "1" },
+        path: "/followvisit/particty",
+        query: { type: 6 },
       });
     },
     // 瀵煎叆鎸夐挳
diff --git a/src/views/patient/subsequent/index.vue b/src/views/patient/subsequent/index.vue
index cd0bce3..ee23915 100644
--- a/src/views/patient/subsequent/index.vue
+++ b/src/views/patient/subsequent/index.vue
@@ -913,8 +913,8 @@
     // 璺宠浆璇︽儏椤�
     Seedetails() {
       this.$router.push({
-        path: "/followvisit/record/detailpage/",
-        query: { id: "1" },
+        path: "/followvisit/particty",
+        query: { type: 4 },
       });
     },
     // 瀵煎叆鎸夐挳
diff --git a/src/views/shortmessage/healthinformation/index.vue b/src/views/shortmessage/healthinformation/index.vue
index 65f835a..38815aa 100644
--- a/src/views/shortmessage/healthinformation/index.vue
+++ b/src/views/shortmessage/healthinformation/index.vue
@@ -1,17 +1,928 @@
 <template>
-  <div></div>
+  <div class="Questionnairemanagement">
+    <!-- 宸︿晶鏍� -->
+    <div class="sidecolumn">
+      <div class="sidecolumn-top">
+        <div class="top-wj">閫氱煡绫诲瀷</div>
+        <div class="top-tj" @click="dialogFormVisible = true">+娣诲姞</div>
+      </div>
+      <div class="center-ss">
+        <el-input
+          placeholder="璇疯緭鍏ュ唴瀹�"
+          v-model="sidecolumnval"
+          class="input-with-select"
+          size="medium "
+        >
+          <el-button
+            @click="sidecolumnss"
+            slot="append"
+            icon="el-icon-search"
+          ></el-button>
+        </el-input>
+      </div>
+      <div class="bottom-fl">
+        <el-tabs tab-position="right">
+          <el-tab-pane :label="`鍏ㄩ儴 (${numberlb})`"></el-tab-pane>
+          <el-tab-pane
+            class="tab-paness"
+            :key="item.title"
+            v-for="(item, index) in editableTabs"
+          >
+            <span slot="label">
+              {{
+                item.title + " (" + item.number + ")"
+              }}&nbsp&nbsp&nbsp<el-popover
+                placement="top-start"
+                width="100"
+                trigger="hover"
+              >
+                <div style="text-align: center">
+                  <el-button type="text" @click="popoveramend(item)"
+                    >淇敼</el-button
+                  ><el-button type="text" @click="deletefenlei(item)"
+                    ><span style="color: rgb(173, 55, 55)"
+                      >鍒犻櫎</span
+                    ></el-button
+                  >
+                </div>
+                <i slot="reference" class="el-icon-share"></i> </el-popover
+            ></span>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </div>
+    <!-- 鍙充晶鏁版嵁 -->
+    <div class="leftvlue">
+      <div class="leftvlue-bg">
+        <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.statustype"
+                  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="status">
+                <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨">
+                  <el-option
+                    v-for="item in optionss"
+                    :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="optionvalue"
+                  multiple
+                  filterable
+                  remote
+                  reserve-keyword
+                  placeholder="璇疯緭鍏ュ唴瀹瑰叧閿瘝"
+                  :remote-method="remoteMethod"
+                  :loading="loadingvalue"
+                >
+                  <el-option
+                    v-for="item in optionsvalue"
+                    :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="danger"
+                  plain
+                  icon="el-icon-delete"
+                  size="medium"
+                  :disabled="multiple"
+                  @click="handleDelete"
+                  v-hasPermi="['system:user:remove']"
+                  >鍒犻櫎</el-button
+                >
+              </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"
+              border="true"
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="50" align="center" />
+              <el-table-column
+                label="搴忓彿"
+                align="center"
+                key="userId"
+                prop="userId"
+              />
+              <el-table-column
+                label="閫氱煡鏂瑰紡"
+                align="center"
+                key="userName"
+                prop="userName"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="閫氱煡鍐呭"
+                align="center"
+                key="nickName"
+                prop="nickName"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="鐗堟湰"
+                align="center"
+                key="nickName"
+                prop="nickName"
+                :show-overflow-tooltip="true"
+              />
+
+              <el-table-column
+                label="閫傜敤鐤剧梾"
+                align="center"
+                key="aphonenumber"
+                prop="aphonenumber"
+                width="120"
+              /><el-table-column
+                label="閫傜敤绉戝"
+                align="center"
+                key="bphonenumber"
+                prop="bphonenumber"
+                width="120"
+              />
+              <el-table-column
+                label="鍙敤鐘舵��"
+                align="center"
+                key="cphonenumber"
+                prop="cphonenumber"
+                width="120"
+              />
+
+              <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                width="300"
+                class-name="small-padding fixed-width"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="goQRCode(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                  >
+                    <span class="button-text"
+                      ><i class="el-icon-edit"></i>浜岀淮鐮�</span
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="ViewQuestionnaire(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                    ><span class="button-textck"
+                      ><i class="el-icon-edit"></i>鏌ョ湅</span
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="handleUpdate(scope.row)"
+                    v-hasPermi="['system:user:edit']"
+                    ><span class="button-textxg"
+                      ><i class="el-icon-edit"></i>淇敼</span
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="handleDelete(scope.row)"
+                    v-hasPermi="['system:user:remove']"
+                    ><span class="button-textsc"
+                      ><i class="el-icon-edit"></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="title"
+          :visible.sync="open"
+          width="900px"
+          append-to-body
+        >
+          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="濮撳悕" prop="nickName">
+                  <el-input
+                    v-model="form.nickName"
+                    placeholder="璇疯緭鍏ュ鍚�"
+                    maxlength="30"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鎬у埆" prop="deptId">
+                  <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-row>
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="璇佷欢绫诲瀷" prop="phonenumber">
+                  <el-input
+                    v-model="form.phonenumber"
+                    placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
+                    maxlength="11"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="璇佷欢鍙�" prop="email">
+                  <el-input
+                    v-model="form.email"
+                    placeholder="璇疯緭鍏ヨ瘉浠跺彿"
+                    maxlength="50"
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName">
+                  <el-input
+                    v-model="form.userName"
+                    placeholder="璇疯緭鍏ユ墜鏈哄彿"
+                    maxlength="30"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="浜插睘鎵嬫満鍙�" prop="password">
+                  <el-input
+                    v-model="form.password"
+                    placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿"
+                    type="password"
+                    maxlength="20"
+                    show-password
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="鎮h�呮爣绛�">
+                  <el-cascader
+                    :options="optionss"
+                    :props="propss"
+                    clearable
+                  ></el-cascader>
+                </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>
+      </div>
+    </div>
+    <!-- 娣诲姞绫诲埆寮规 -->
+    <el-dialog
+      :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'"
+      width="30%"
+      :visible.sync="dialogFormVisible"
+    >
+      <el-form :model="classifyform">
+        <el-form-item
+          :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'"
+        >
+          <el-input
+            v-model="classifyform.categoryname"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 鍒犻櫎绫诲埆纭妗� -->
+    <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%">
+      <div style="font-size: 20px; color: rgb(247, 76, 76)">
+        鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span
+        >]?
+      </div>
+      <div style="font-size: 20px">
+        姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛�
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="deleteVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 浜岀淮鐮佸睍绀哄脊妗� -->
+    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
+      <div class="qrcode-dialo">
+        <div class="qrcode-text">
+          {{ namequestionnaire }}<span>{{ haoquestionnaire }}</span>
+        </div>
+        <div class="qrcode-img"></div>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
+import {
+  listUser,
+  getUser,
+  delUser,
+  addUser,
+  updateUser,
+} from "@/api/system/user";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
+  name: "questionnaire",
+  dicts: ["sys_normal_disable", "sys_user_sex"],
+  components: { Treeselect },
   data() {
-    return {};
+    return {
+      topactiveName: "Local", //椤堕儴閫夋嫨
+      // 閬僵灞�
+      loading: false,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      namequestionnaire: "",
+      haoquestionnaire: "",
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: [
+        {
+          userid: 1,
+          userName: "涓夊彿閫氱煡",
+          nickName: "1.2.4",
+          aphonenumber: "鍏宠妭鐐庣棁",
+          bphonenumber: "寰堟",
+          cphonenumber: "2022-12-12 ",
+        },
+      ],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      // 瑙掕壊閫夐」
+      roleOptions: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      numberlb: 22,
+      numberlbs: 2,
+      sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟
+      goQRCodeVisible: false, //浜岀淮鐮佸脊妗�
+      sidecolumnval: "", //绫诲埆鎼滅储
+      propss: { multiple: true },
+      idds: "",
+      amendtag: false, //鏄惁淇敼绫诲埆
+      dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规
+      deleteVisible: false, //鍒嗙被鍒犻櫎寮规
+      deletefenl: "楂樿鍘�", //鍒犻櫎椤�
+      classifyform: {
+        categoryname: "",
+      }, //绫诲埆琛ㄥ崟
+      optionss: [
+        {
+          value: 1,
+          label: "鐭俊",
+        },
+        {
+          value: 2,
+          label: "寰俊/閽夐拤",
+        },
+      ],
+      options: [
+        {
+          value: 1,
+          label: "鏂囧瓧",
+        },
+        {
+          value: 2,
+          label: "璇煶",
+        },
+      ],
+      optionsvalue: [],
+      optionvalue: [],
+      valuelist: [],
+      loadingvalue: false,
+      states: [
+        "Alabama",
+        "Alaska",
+        "Arizona",
+        "Arkansas",
+        "California",
+        "Colorado",
+        "Connecticut",
+        "Delaware",
+        "Florida",
+        "Georgia",
+        "Hawaii",
+        "Idaho",
+        "Illinois",
+        "Indiana",
+        "Iowa",
+        "Kansas",
+        "Kentucky",
+        "Louisiana",
+        "Maine",
+        "Maryland",
+      ],
+      //绫诲埆鍒楄〃
+      editableTabs: [
+        {
+          title: "閫氱煡鍒嗙被涓�",
+          number: "1",
+        },
+        {
+          title: "閫氱煡鍒嗙被浜�",
+          number: "2",
+        },
+        {
+          title: "閫氱煡鍒嗙被涓�",
+          number: "2",
+        },
+        {
+          title: "閫氱煡鍒嗙被鍥�",
+          number: "2",
+        },
+        {
+          title: "閫氱煡鍒嗙被浜�",
+          number: "2",
+        },
+      ],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: undefined,
+        phonenumber: undefined,
+        status: undefined,
+        deptId: undefined,
+        IDnumber: undefined,
+      },
+      // 鍒椾俊鎭�
+      columns: [
+        { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
+        { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
+        { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
+        { key: 3, label: `閮ㄩ棬`, visible: true },
+        { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
+        { key: 5, label: `鐘舵�乣, visible: true },
+        { key: 6, label: `鍒涘缓鏃堕棿`, visible: true },
+      ],
+      // 琛ㄥ崟鏍¢獙
+      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.getList();
+  },
+  mounted() {
+    this.valuelist = this.states.map((item) => {
+      return { value: `value:${item}`, label: `鏍囬:${item}` };
+    });
   },
 
-  created() {},
+  methods: {
+    /** 鏌ヨ鐢ㄦ埛鍒楄〃 */
+    getList() {
+      //   this.loading = true;
+      listUser().then((response) => {
+        console.log(response);
+        // this.userList = response.data;
+        // this.total = response.total;
+        // this.loading = false;
+        console.log(this.userList);
+      });
+      //   const { rows } = await listUser();
+      //   console.log(rows);
+      //   this.list = rows;
+    },
+    // 娣诲姞銆佷慨鏀圭被鍒�
+    submitsidecolumn() {
+      if (this.amendtag) {
+        this.classifyform.tagcategoryid = this.idds;
+        // toamendtagcategory(this.addDateRange(this.classifyform)).then(
+        //   (response) => {
+        //     console.log(response);
+        //     this.gitclasify();
+        //   }
+        // );
+      } else {
+        // addtagcategory(this.addDateRange(this.classifyform)).then(
+        //   (response) => {
+        //     console.log(response);
+        //     this.gitclasify();
+        //   }
+        // );
+      }
+      this.classifyform = {
+        categoryname: "",
+      };
+      this.idds = "";
+      this.dialogFormVisible = false;
+    },
+    // 妯$硦鏌ヨ
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loadingvalue = true;
+        setTimeout(() => {
+          this.loadingvalue = false;
+          this.optionsvalue = this.valuelist.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.optionsvalue = [];
+      }
+    },
+    //鍒犻櫎鍒嗙被
+    deletefenlei(row) {
+      if (this.deleteVisible) {
+        // deletetagcategory(this.idds).then((response) => {
+        //   console.log(response);
+        //   this.gitclasify();
+        // });
+        this.deleteVisible = false;
+        this.idds = "";
+      } else {
+        this.deleteVisible = true;
+        this.idds = row.tagcategoryid;
+        this.deletefenl = row.title;
+      }
+    },
+    //鎼滅储绫诲埆
+    sidecolumnss() {},
+    // 鍒囨崲鍏变韩/鏈湴
+    tophandleClick() {},
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    goQRCode(row) {
+      this.goQRCodeVisible = true;
+      this.namequestionnaire = row.userName;
+      this.haoquestionnaire = row.nickName;
+    },
+    // 琛ㄥ崟閲嶇疆
+    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.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.queryParams.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;
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/knowledge/questionnaire/compilequer/",
+      });
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.$router.push({
+        path: "/knowledge/questionnaire/compilequer/",
+        query: { id: "1" },
+      });
+    },
+    // 鏌ョ湅閫氱煡
+    ViewQuestionnaire() {
+      this.$router.push({
+        path: "/knowledge/questionnaire/examine/",
+        query: { id: "1" },
+      });
+    },
 
-  methods: {},
+    /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */
+    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(() => {});
+    },
+  },
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.Questionnairemanagement {
+  display: flex;
+}
+.sidecolumn {
+  width: 300px;
+  min-height: 100vh;
+  text-align: center;
+  //   display: flex;
+  margin-top: 20px;
+  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);
+  .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;
+  }
+}
+.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);
+  .qrcode-text {
+    font-size: 20px;
+    span {
+      margin-left: 20px;
+    }
+  }
+  .qrcode-img {
+    width: 300px;
+    height: 400px;
+  }
+}
+::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;
+  font-size: 20px;
+}
+.leftvlue {
+  //   display: flex;
+  //   flex: 1;
+  width: 80%;
+  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;
+  }
+}
+.button-text {
+  color: rgb(70, 204, 238);
+}
+.button-textck {
+  color: rgb(39, 167, 67);
+}
+.button-textxg {
+  color: rgb(35, 81, 233);
+}
+.button-textsc {
+  color: rgb(235, 23, 23);
+}
+</style>
diff --git a/src/views/system/label/index.vue b/src/views/system/label/index.vue
index f42d302..f910400 100644
--- a/src/views/system/label/index.vue
+++ b/src/views/system/label/index.vue
@@ -524,9 +524,10 @@
 
   methods: {
     /** 鏌ヨ鏍囩鍒楄〃 */
-    getList() {
+    getList(row) {
+      console.log(row);
+      console.log(this.queryParams);
       listtag(this.addDateRange(this.queryParams)).then((response) => {
-        console.log(response);
         this.total = response.total;
         this.userList = response.rows;
       });

--
Gitblit v1.9.3