From 66cc734e81fe0497d88e0951b6aee9c9c8342f2c Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 17 九月 2025 11:43:07 +0800
Subject: [PATCH] 电话更新

---
 vue.config.js                                           |    7 
 src/views/followvisit/zbAgain/index.vue                 |   17 
 src/views/knowledge/questionnaire/compilequer/index.vue |   27 
 src/views/patient/patient/index.vue                     |   14 
 src/views/patient/medtechnician/PatientChart.vue        |   55 
 src/views/patient/subsequent/index.vue                  |   11 
 src/api/AiCentre/satisfaction.js                        |   30 
 src/views/followvisit/zysatisfaction/index.vue          | 1969 ++++++++++++
 src/views/satisfaction.vue                              | 1188 +++++++
 src/views/patient/patient/operation.vue                 |    2 
 src/views/patient/propaganda/Missionotice.vue           |    3 
 src/views/patient/patient/behospitalized.vue            |    4 
 src/components/CallButton/index.vue                     |    9 
 src/store/getters.js                                    |  125 
 src/views/followvisit/discharge/outpatientService.vue   |   16 
 src/views/patient/propaganda/Missioncreation.vue        |    2 
 src/permission.js                                       |   81 
 src/smartor/dataobject/dw_patouthosp_list.vue           |    2 
 src/views/followvisit/technology/index.vue              |   13 
 src/views/patient/physical/index.vue                    |   11 
 src/store/modules/user.js                               |  350 +-
 src/assets/order/BHostClient.exe                        |    0 
 src/smartor/dataobject/dw_patouthosp_base.vue           |    2 
 src/views/system/user/profile/index.vue                 |  154 
 src/router/index.js                                     |   10 
 src/assets/order/Xftp-8.0.0084p.exe                     |    0 
 src/assets/styles/element-variables.scss                |    4 
 src/views/sfstatistics/percentage/index.vue             |   54 
 src/views/patient/patient/hospital.vue                  |    4 
 src/api/AiCentre/index.js                               |    2 
 src/views/followvisit/outpatient/index.vue              |   11 
 src/views/patient/patient/physical.vue                  |    2 
 dist.zip                                                |    0 
 src/views/patient/patient/outpatient.vue                |    6 
 src/views/patient/propaganda/QuestionnaireTask.vue      |   88 
 src/views/followvisit/mzsatisfaction/index.vue          | 1973 ++++++++++++
 src/views/patient/propaganda/index.vue                  |    8 
 src/views/patient/patient/ExternalPatient.vue           |    8 
 src/views/followvisit/record/detailpage/index.vue       |  443 ++
 src/views/knowledge/questionbank/particulars/index.vue  |    4 
 src/views/outsideChainwtnew.vue                         |   48 
 src/views/followvisit/complaint/index.vue               | 1968 ++++++++++++
 src/views/followvisit/tasklist/index.vue                |  119 
 src/assets/styles/variables.scss                        |    8 
 src/views/complaint/complaintmy/index.vue               |    1 
 src/views/followvisit/SpecificDisease/index.vue         |   13 
 src/views/followvisit/again/index.vue                   |   17 
 src/assets/styles/sidebar.scss                          |    2 
 src/utils/sipService.js                                 |    2 
 src/layout/components/TagsView/index.vue                |    4 
 src/views/patient/questionnaire/index.vue               |   11 
 src/views/followvisit/linem/index.vue                   |    3 
 src/views/followvisit/record/index.vue                  |   13 
 src/views/loginSSO.vue                                  |  160 
 src/components/PatientSelection/index.vue               |  585 +++
 src/views/system/user/index.vue                         |    5 
 src/views/followvisit/record/physical/index.vue         |    6 
 src/views/login.vue                                     |    9 
 src/views/patient/shadow/index.vue                      |   11 
 src/views/patient/propaganda/particty.vue               |   56 
 src/views/complaint/complaintlist/index.vue             |    2 
 src/views/followvisit/discharge/index.vue               |   46 
 src/views/patient/follow/index.vue                      |    5 
 63 files changed, 9,139 insertions(+), 664 deletions(-)

diff --git a/dist.zip b/dist.zip
new file mode 100644
index 0000000..15ef55a
--- /dev/null
+++ b/dist.zip
Binary files differ
diff --git a/src/api/AiCentre/index.js b/src/api/AiCentre/index.js
index a124c74..60f658f 100644
--- a/src/api/AiCentre/index.js
+++ b/src/api/AiCentre/index.js
@@ -10,3 +10,5 @@
 export * from './patientexternal'
 export * from './EChartsdata'
 export * from './satisfactionse'
+export * from './satisfaction'
+
diff --git a/src/api/AiCentre/satisfaction.js b/src/api/AiCentre/satisfaction.js
new file mode 100644
index 0000000..1d72c6e
--- /dev/null
+++ b/src/api/AiCentre/satisfaction.js
@@ -0,0 +1,30 @@
+import request from "@/utils/request";
+
+// 澶栭摼鑾峰彇闅忚
+export function getScriptByCondition(data) {
+  return request({
+    url: "/smartor/servicetask/getScriptByCondition",
+    method: "post",
+    data: data
+  });
+}
+
+
+
+// 缂撳瓨闂嵎
+export function saveMYDQuestionAnswer(data) {
+  return request({
+    url: "/smartor/subtaskAnswer/saveMYDQuestionAnswer",
+    method: "post",
+    data: data
+  });
+}
+// 缂撳瓨闂嵎
+export function WLgetDept(orgid) {
+  return request({
+    url: "/getDept/" + orgid,
+    method: "get",
+  });
+}
+
+
diff --git a/src/assets/order/BHostClient.exe b/src/assets/order/BHostClient.exe
new file mode 100644
index 0000000..db7c9c7
--- /dev/null
+++ b/src/assets/order/BHostClient.exe
Binary files differ
diff --git a/src/assets/order/Xftp-8.0.0084p.exe b/src/assets/order/Xftp-8.0.0084p.exe
new file mode 100644
index 0000000..a3a2a02
--- /dev/null
+++ b/src/assets/order/Xftp-8.0.0084p.exe
Binary files differ
diff --git a/src/assets/styles/element-variables.scss b/src/assets/styles/element-variables.scss
index 6baac93..eed9294 100644
--- a/src/assets/styles/element-variables.scss
+++ b/src/assets/styles/element-variables.scss
@@ -4,8 +4,8 @@
 **/
 
 /* theme color */
-$--color-primary: #3ba2f7;
-$--color-success: #13ce66;
+$--color-primary: #3664D9;
+$--color-success: #0ABC54;
 $--color-warning: #ffba00;
 $--color-danger: #ff4949;
 // $--color-info: #1E1E1E;
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
index c1008b8..a73b9c6 100644
--- a/src/assets/styles/sidebar.scss
+++ b/src/assets/styles/sidebar.scss
@@ -15,7 +15,7 @@
     -webkit-transition: width .28s;
     transition: width 0.28s;
     width: $base-sidebar-width !important;
-    background: -webkit-linear-gradient(bottom, #3d6df8, #5b8cff);
+    // background: -webkit-linear-gradient(bottom, #3d6df8, #5b8cff);
 
     height: 100%;
     position: fixed;
diff --git a/src/assets/styles/variables.scss b/src/assets/styles/variables.scss
index b6400d0..8072a9a 100644
--- a/src/assets/styles/variables.scss
+++ b/src/assets/styles/variables.scss
@@ -13,15 +13,17 @@
 // 榛樿鑿滃崟涓婚椋庢牸
 $base-menu-color:#f7f8f8;
 $base-menu-color-active:#f4f4f5;
-$base-menu-background:#5788fe;
+$base-menu-background:#1D42F5;
+// $base-menu-background:linear-gradient(90deg, #1D42F5, #6BAEF5);
+
 $base-logo-title-color: #ffffff;
 
 $base-menu-light-color:rgba(0,0,0,.70);
 $base-menu-light-background:#59f97f;
 $base-logo-light-title-color: #001529;
 
-$base-sub-menu-background:#99baed;
-$base-sub-menu-hover:#001528;
+$base-sub-menu-background:#aec6e8;
+$base-sub-menu-hover:#6eb8fc;
 
 // 鑷畾涔夋殫鑹茶彍鍗曢鏍�
 /**
diff --git a/src/components/CallButton/index.vue b/src/components/CallButton/index.vue
index 378376d..78ea734 100644
--- a/src/components/CallButton/index.vue
+++ b/src/components/CallButton/index.vue
@@ -44,10 +44,11 @@
       sipStatus: "鏈繛鎺�",
       sipStatusClass: "status-disconnected",
       sipConfig: {
-        wsUrl: "wss://192.169.129.198:7443",
-        sipUri: `${randomNum}` + "@192.169.129.198",
-        password: "heskj@1234",
+        wsUrl: "wss://1192.170.66.107:7443",
+        sipUri: `${randomNum}` + "@1192.170.66.107",
+        password: "Smartor@2023",
         displayName: "Web 灏忛緳",
+        // realm: "9.208.5.18:8090",
       },
     };
   },
@@ -78,7 +79,7 @@
     },
   },
   mounted() {
-    console.log("褰撳墠鍒嗘満鍙�", this.sipConfig);
+    console.log('褰撳墠鍒嗘満鍙�',this.sipConfig);
 
     sipService.init(this.sipConfig);
     sipService.onStatusChange = (status) => {
diff --git a/src/components/PatientSelection/index.vue b/src/components/PatientSelection/index.vue
new file mode 100644
index 0000000..d63746e
--- /dev/null
+++ b/src/components/PatientSelection/index.vue
@@ -0,0 +1,585 @@
+<template>
+  <div>
+    <el-dialog
+      title="娲惧彂鎮h�呴�夋嫨"
+      :visible.sync="dialogVisiblepatient"
+      width="70%"
+      :before-close="handleClosehz"
+    >
+      <div class="examine-jic">
+        <div style="margin: 0 10px 20px 10px">
+          <el-card class="box-card">
+            <el-tag
+              v-for="item in overallCase"
+              :key="item.icdid"
+              type="primary"
+              closables
+              @close="handleClose(item)"
+            >
+              {{ item.name }}
+            </el-tag>
+            <div style="margin-top: 20px; text-align: right">
+              鍏遍�夋嫨<span
+                style="font-size: 18px; color: #409eff; margin: 0 10px"
+                >{{ overallCase.length }}</span
+              >浣嶆偅鑰�
+            </div>
+          </el-card>
+        </div>
+        <div class="jic-value">
+          <el-row :gutter="20">
+            <!--鐢ㄦ埛鏁版嵁-->
+            <el-form
+              :model="patientqueryParams"
+              ref="queryForm"
+              size="small"
+              :inline="true"
+              label-width="98px"
+            >
+              <el-form-item label="鎮h�咃細">
+                <el-input
+                  v-model="patientqueryParams.name"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="鎮h�呯被鍨�">
+                <el-select
+                  v-model="patientqueryParams.allhosp"
+                  placeholder="璇烽�夋嫨鏂板绫诲瀷"
+                >
+                  <el-option
+                    v-for="item in taskoptions"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鎮h�呰瘖鏂細">
+                <el-input
+                  v-model="patientqueryParams.leavediagname"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="涓绘不鍖荤敓锛�">
+                <el-input
+                  v-model="patientqueryParams.drname"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </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>
+            <!-- 閫夋嫨鎮h�呭垪琛� -->
+            <el-table
+              ref="multipleTable"
+              :data="donorchargeList"
+              tooltip-effect="dark"
+              style="width: 100%"
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column
+                fixed="left"
+                class="checkall"
+                type="selection"
+                width="55"
+              >
+              </el-table-column>
+              <div v-for="(item, index) in tableLabel">
+                <el-table-column
+                  v-if="item.label == '鍑洪櫌鏃ユ湡'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                  <template slot-scope="scope">
+                    <span>{{ formatTime(scope.row.endtime) }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  v-if="item.label == '鎬у埆'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  v-if="item.label != '鎬у埆' && item.label != '鍑洪櫌鏃ユ湡'"
+                  :key="index"
+                  :prop="item.prop"
+                  :width="item.width"
+                  :label="item.label"
+                  :formatter="formatData"
+                >
+                </el-table-column>
+              </div>
+            </el-table>
+          </el-row>
+          <pagination
+            v-show="patienttotal > 0"
+            :total="patienttotal"
+            :page.sync="patientqueryParams.pageNum"
+            :limit.sync="patientqueryParams.pageSize"
+            @pagination="handleQuery"
+          />
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="$emit('addoption')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="AddDispatchpatients"
+          >纭畾娣诲姞</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getillnesslist,
+  deltargetillness,
+  getTaskpatientQC,
+  Questionnairetaskgetson,
+  Externallist,
+  Editsingletask,
+} from "@/api/AiCentre/index";
+export default {
+  name: "Diseasetotality",
+  data() {
+    return {
+      patienttotal: 0, //
+      allpids: [],
+      // 褰撳墠椤甸�変腑鏁版嵁
+      multipleSelection: [],
+      overallpatin: [],
+      form: {},
+      patientqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        allhosp: "4",
+        pids: null,
+      },
+      donorchargeList: [],
+      donorchargeanlList: [], //妗堜緥鍒楄〃
+      taskoptions: [
+        {
+          value: "4",
+          label: "鍑洪櫌鐥呬汉",
+        },
+        {
+          value: "1",
+          label: "鍦ㄩ櫌鐥呬汉",
+        },
+        {
+          value: "2",
+          label: "闂ㄨ瘖鐥呬汉",
+        },
+        {
+          value: "3",
+          label: "浣撴鐥呬汉",
+        },
+        {
+          value: "6",
+          label: "闄㈠鎮h��",
+        },
+        {
+          value: "5",
+          label: "鎵嬫湳鐥呬汉",
+        },
+      ],
+      overallCase:[],
+      tableLabel: [
+        { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" },
+        { label: "鎮h��", width: "", prop: "name" },
+        { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+        { label: "韬唤璇�", width: "200", prop: "idcardno" },
+        { label: "鎬у埆", width: "", prop: "sex" },
+        { label: "骞撮緞", width: "", prop: "age" },
+        { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+        { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
+        { label: "绉戝", width: "240", prop: "dept" },
+        { label: "鐥呭尯", width: "240", prop: "leavehospitaldistrictname" },
+      ],
+    };
+  },
+
+  props: {
+    dialogVisiblepatient: {
+      type: Boolean,
+      default: () => {
+        return false;
+      },
+    },
+
+    // 5闂嵎妯℃澘銆�3闅忚妯℃澘銆�6瀹f暀
+    type: {
+      type: Number,
+      default: () => {
+        return 5;
+      },
+    },
+  },
+
+  created() {},
+
+  mounted() {
+    // this.handleAddpatient();
+  },
+
+  watch: {},
+
+  methods: {
+    //   鏁版嵁杩囨护
+    formatData(row, column, cellValue) {
+      if (column.property === "createType") {
+        if (cellValue === 1) {
+          return "鑷姩";
+        }
+        return "鎵嬪姩";
+      }
+      if (
+        column.property === "createTime" ||
+        column.property === "inhosptime"
+      ) {
+        if (cellValue === null) {
+          return "";
+        }
+        return dayjs(cellValue).format("YYYY-MM-DD ");
+      }
+      return cellValue;
+    },
+    handleClosehz() {
+      this.$emit("addoption");
+    },
+    // 閫夋嫨鏁版嵁鏍囩鍒犻櫎浜嬩欢
+    handleClose(item) {
+      console.log(item);
+      if (this.multipleSelection.indexOf(item) == -1 && !item.outid) {
+        this.overallCase.splice(this.overallCase.indexOf(item), 1);
+      } else if (item.outid) {
+        this.$modal
+          .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + item.icd10name + '"鐨勬暟鎹」锛�')
+          .then(() => {
+            this.multipleSelection.splice(
+              this.multipleSelection.indexOf(item),
+              1
+            );
+            deltargetillness(item.id).then((res) => {
+              if (res.code == 200) {
+                this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+                this.overallCase.splice(this.overallCase.indexOf(item), 1);
+              }
+            });
+            // 鍙栨秷鎸傝浇鐘舵��
+            this.$refs.multipleTable.toggleRowSelection(item, false);
+          })
+          .catch(() => {});
+      } else {
+        this.overallCase.splice(this.overallCase.indexOf(item), 1);
+        this.multipleSelection.splice(this.multipleSelection.indexOf(item), 1);
+        // 鍙栨秷鎸傝浇鐘舵��
+        this.$refs.multipleTable.toggleRowSelection(item, false);
+      }
+    },
+    resetQuery() {
+      this.patientqueryParams.name = null;
+      this.handleAddpatient();
+    },
+    // 瑙﹀彂鏌ヨ浜嬩欢
+    handleAddpatients() {
+      this.$emit("kkoption");
+
+      getillnesslist(this.patientqueryParams).then((res) => {
+        this.donorchargeList = res.rows;
+        this.patienttotal = res.total;
+        this.Restorecheck();
+      });
+    },
+    // 瑙﹀彂鏌ヨ浜嬩欢
+    handleAddpatient(taskid) {
+      this.$emit("kkoption");
+      if (taskid != this.taskid) {
+        this.recover();
+      }
+      if (taskid) {
+        this.taskid = taskid;
+        Questionnairetaskgetson({ taskid: this.taskid }).then((res) => {
+          if (res.code == 200) {
+            this.form = res.data;
+            this.overallpatin = this.form.patTaskRelevances.concat();
+            this.allpids = [];
+            this.overallpatin.forEach((item) => {
+              this.allpids.push(item.patid);
+            });
+            if (this.allpids[0]) {
+              this.patientqueryParams.pids = this.allpids;
+            } else {
+              this.patientqueryParams.pids = null;
+            }
+            this.handleQuery();
+          }
+        });
+      }
+    },
+    handleQuery() {
+      // 鑾峰彇澶栭儴鎮h��
+      if (this.patientqueryParams.allhosp == 6) {
+        this.Externallist();
+        return;
+      }
+      console.log(11);
+
+      if (this.patientqueryParams.allhosp == 4) {
+        this.tableLabel = [
+          // { label: "鍏ラ櫌鏃ユ湡", width: "170", prop: "starttime" },
+          { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+          { label: "鎮h��", width: "", prop: "name" },
+          { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+          { label: "韬唤璇�", width: "200", prop: "idcardno" },
+          { label: "鎬у埆", width: "", prop: "sex" },
+          { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+          { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+          { label: "鍖荤敓", width: "", prop: "drname" },
+          { label: "绉戝", width: "180", prop: "dept" },
+          { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+        ];
+      } else if (this.patientqueryParams.allhosp == 1) {
+        this.tableLabel = [
+          { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" },
+          { label: "鎮h��", width: "", prop: "name" },
+          { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+          { label: "韬唤璇�", width: "200", prop: "idcardno" },
+          { label: "鎬у埆", width: "", prop: "sex" },
+          { label: "骞撮緞", width: "", prop: "age" },
+          { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+          { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+          { label: "鍖荤敓", width: "", prop: "drname" },
+          { label: "绉戝", width: "180", prop: "dept" },
+          { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+        ];
+      }
+      console.log(this.patientqueryParams.allhosp);
+
+      // 鑾峰彇鎮h�呮暟鎹�
+      getTaskpatientQC(this.patientqueryParams).then((response) => {
+        this.donorchargeList = response.rows;
+        this.donorchargeList.forEach((item) => {
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+        });
+        this.Restorecheck();
+
+        this.patienttotal = response.total;
+      });
+    },
+    // 鑾峰彇澶栭儴鎮h�呭鍏ュ垪琛�
+    Externallist() {
+      this.tableLabel = [
+        { label: "鎮h��", width: "", prop: "name" },
+        { label: "韬唤璇�", width: "200", prop: "idcardno" },
+        { label: "鎬у埆", width: "", prop: "sex" },
+        { label: "骞撮緞", width: "", prop: "age" },
+        { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+      ];
+      this.patientqueryParams.pageSize = 1000;
+
+      Externallist(this.patientqueryParams).then((response) => {
+        this.donorchargeList = response.rows;
+        this.donorchargeList.forEach((item) => {
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+        });
+        // this.dialogVisiblepatient = true;
+        this.patienttotal = response.total;
+      });
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      if (this.decision) return;
+      // 鍒ゆ柇鏄惁鏈夊垹闄�
+      if (this.multipleSelection.length <= selection.length) {
+        this.multipleSelection = selection;
+      } else {
+        this.multipleSelection.forEach((item) => {
+          if (selection.includes(item)) {
+          } else {
+            if (this.multipleSelection.length == 1) {
+              this.multipleSelection = [];
+            } else {
+              this.multipleSelection.splice(
+                this.multipleSelection.indexOf(item),
+                1
+              );
+            }
+            if (this.overallCase.length == 1) {
+              this.overallCase = [];
+            } else {
+              this.overallCase.splice(this.overallCase.indexOf(item), 1);
+            }
+          }
+        });
+      }
+      // 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍
+      this.multipleSelection.forEach((item) => {
+        if (this.overallCase.every((obj) => obj.name != item.name)) {
+          item.isoperation = 1;
+          item.patid = item.id;
+          item.hospType = this.patientqueryParams.allhosp;
+          item.sfzh = item.idcardno;
+          item.deptCode = item.deptcode;
+          item.deptName = item.dept;
+          item.admindate = item.inhosptime;
+          item.diagname = item.leavediagname;
+          item.sfzh = item.idcardno;
+          if (this.patientqueryParams.allhosp == 6) {
+            item.patfrom = 1;
+          }
+          this.overallCase.push(item);
+        }
+      });
+      console.log(this.multipleSelection, "瑙﹀彂閫夋嫨鍚巑ultipleSelection");
+    },
+    // 鍒囨崲椤靛悗鎭㈠閫変腑
+    Restorecheck() {
+      console.log(this.overallCase, "this.overallCase");
+      const allid = this.overallCase.map((item) => item.name);
+      const overlap = this.donorchargeList.filter((value) => {
+        return allid.includes(value.name);
+      });
+      // 淇濇寔ids鍜屽綋鍓嶉〉闈㈢殑鍚屾鎬�
+      this.multipleSelection = overlap;
+      console.log(this.multipleSelection, "杩涘叆鍒嗛〉multipleSelection");
+
+      this.toggleSelection(overlap);
+    },
+    // 鎸傝浇閫夋嫨鐘舵��
+    toggleSelection(rows) {
+      if (rows) {
+        this.decision = true;
+        this.$nextTick(() => {
+          rows.forEach((row) => {
+            this.$refs.multipleTable.toggleRowSelection(row, true);
+          });
+          this.decision = false;
+        });
+        console.log(123);
+      } else {
+        this.$refs.multipleTable.clearSelection();
+      }
+    },
+    AddDispatchpatients() {
+      console.log(this.overallCase);
+      this.form.patTaskRelevances.push(...this.overallCase);
+      console.log(this.form.patTaskRelevances);
+      this.form.isoperation=2;
+      Editsingletask(this.form).then((res) => {
+        if (res.code == 200) {
+          if (this.form.taskid) {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
+          } else {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+          }
+          this.recover();
+      this.$emit("addoption");
+
+        }
+      });
+      // this.dialogVisiblepatient = false;
+      // this.$emit("addoption");
+    },
+    recover() {
+      this.donorchargeList = [];
+      this.donorchargeanlList = [];
+      this.multipleSelection = [];
+      this.allpids = [];
+      this.overallpatin = [];
+      this.form = {};
+      this.patientqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        allhosp: "4",
+        pids: null,
+      };
+      this.overallCase = [];
+      // this.dialogVisiblepatient = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.examine-jic {
+  .headline {
+    font-size: 24px;
+    border-left: 5px solid #41a1be;
+    padding-left: 5px;
+    margin-bottom: 10px;
+    display: flex;
+    justify-content: space-between;
+    .Add-details {
+      font-size: 18px;
+      color: #02a7f0;
+      cursor: pointer;
+    }
+  }
+  .jic-value {
+    font-size: 20px;
+    border-top: 1px solid #a7abac;
+    padding: 10px;
+    margin-bottom: 10px;
+    .details-jic {
+      padding: 10px 15px;
+      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);
+      .details-title {
+        display: flex;
+        justify-content: space-between;
+        margin-bottom: 10px;
+        div:nth-child(2) {
+          color: #02a7f0;
+          cursor: pointer;
+        }
+      }
+      .details-renw {
+        background: #e4ebfc;
+        padding: 15px 5px;
+        border-radius: 5px;
+        margin-bottom: 20px;
+      }
+    }
+  }
+}
+::v-deep.el-table .el-table__header th:first-child .el-checkbox {
+  display: none;
+}
+.el-tag + .el-tag {
+  margin-left: 10px;
+  margin-bottom: 10px;
+}
+</style>
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index cc98071..3db09b7 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -265,9 +265,9 @@
         margin-right: 15px;
       }
       &.active {
-        background-color: #42b983;
+        background-color: #3664D9;
         color: #fff;
-        border-color: #42b983;
+        border-color: #3664D9;
         &::before {
           content: '';
           background: #fff;
diff --git a/src/permission.js b/src/permission.js
index c36698f..e864e35 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -1,55 +1,68 @@
-import router from './router'
-import store from './store'
-import { Message } from 'element-ui'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
-import { isRelogin } from '@/utils/request'
+import router from "./router";
+import store from "./store";
+import { Message } from "element-ui";
+import NProgress from "nprogress";
+import "nprogress/nprogress.css";
+import { getToken } from "@/utils/auth";
+import { isRelogin } from "@/utils/request";
 
-NProgress.configure({ showSpinner: false })
+NProgress.configure({ showSpinner: false });
 
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/wt','/xj','/sf', '/outsideChain','/outsideChainwt','/outsideChainxj']
+const whiteList = [
+  "/login",
+  "/auth-redirect",
+  "/bind",
+  "/register",
+  "/wt",
+  "/xj",
+  "/sf",
+  "/satisfaction",
+  "/loginSSO",
+];
 router.beforeEach((to, from, next) => {
-  NProgress.start()
+  NProgress.start();
   if (getToken()) {
-    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
+    to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
     /* has token*/
-    if (to.path === '/login') {
-      next({ path: '/' })
-      NProgress.done()
+    if (to.path === "/login") {
+      next({ path: "/" });
+      NProgress.done();
     } else {
       if (store.getters.roles.length === 0) {
-        isRelogin.show = true
+        isRelogin.show = true;
         // 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁宸叉媺鍙栧畬user_info淇℃伅
-        store.dispatch('GetInfo').then(() => {
-          isRelogin.show = false
-          store.dispatch('GenerateRoutes').then(accessRoutes => {
-            // 鏍规嵁roles鏉冮檺鐢熸垚鍙闂殑璺敱琛�
-            router.addRoutes(accessRoutes) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
-            next({ ...to, replace: true }) // hack鏂规硶 纭繚addRoutes宸插畬鎴�
+        store
+          .dispatch("GetInfo")
+          .then(() => {
+            isRelogin.show = false;
+            store.dispatch("GenerateRoutes").then((accessRoutes) => {
+              // 鏍规嵁roles鏉冮檺鐢熸垚鍙闂殑璺敱琛�
+              router.addRoutes(accessRoutes); // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
+              next({ ...to, replace: true }); // hack鏂规硶 纭繚addRoutes宸插畬鎴�
+            });
           })
-        }).catch(err => {
-            store.dispatch('LogOut').then(() => {
-              Message.error(err)
-              next({ path: '/' })
-            })
-          })
+          .catch((err) => {
+            store.dispatch("LogOut").then(() => {
+              Message.error(err);
+              next({ path: "/" });
+            });
+          });
       } else {
-        next()
+        next();
       }
     }
   } else {
     // 娌℃湁token
     if (whiteList.indexOf(to.path) !== -1) {
       // 鍦ㄥ厤鐧诲綍鐧藉悕鍗曪紝鐩存帴杩涘叆
-      next()
+      next();
     } else {
-      next(`/login?redirect=${to.fullPath}`) // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤�
-      NProgress.done()
+      next(`/login?redirect=${to.fullPath}`); // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤�
+      NProgress.done();
     }
   }
-})
+});
 
 router.afterEach(() => {
-  NProgress.done()
-})
+  NProgress.done();
+});
diff --git a/src/router/index.js b/src/router/index.js
index 84042a6..8fe8951 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -46,6 +46,11 @@
     component: () => import('@/views/login'),
     hidden: true
   },
+    {
+    path: '/loginSSO',
+    component: () => import('@/views/loginSSO'),
+    hidden: true
+  },
   {
     path: '/sf',
     component: () => import('@/views/outsideChainnew'),
@@ -62,6 +67,11 @@
     hidden: true
   },
   {
+    path: '/satisfaction',
+    component: () => import('@/views/satisfaction'),
+    hidden: true
+  },
+  {
     path: '/outsideChain',
     component: () => import('@/views/outsideChain'),
     hidden: true
diff --git a/src/smartor/dataobject/dw_patouthosp_base.vue b/src/smartor/dataobject/dw_patouthosp_base.vue
index afa2299..149458a 100644
--- a/src/smartor/dataobject/dw_patouthosp_base.vue
+++ b/src/smartor/dataobject/dw_patouthosp_base.vue
@@ -20,4 +20,4 @@
         </el-form-item>
      </el-form>
     </div>
-</template>
\ No newline at end of file
+</template>
diff --git a/src/smartor/dataobject/dw_patouthosp_list.vue b/src/smartor/dataobject/dw_patouthosp_list.vue
index fcd5656..be13b64 100644
--- a/src/smartor/dataobject/dw_patouthosp_list.vue
+++ b/src/smartor/dataobject/dw_patouthosp_list.vue
@@ -21,4 +21,4 @@
 </template>
 <script>
 
-</script>
\ No newline at end of file
+</script>
diff --git a/src/store/getters.js b/src/store/getters.js
index 8e3a768..dfbad96 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -637,6 +637,131 @@
       },
     },
   ],
+  // 闅忚绫诲瀷
+  tasktypes: (state) => [
+    // {
+    //   value: 16,
+    //   label: "璇鹃闅忚",
+    //   raw: {
+    //     cssClass: "",
+    //     listClass: "",
+    //   },
+    // },
+
+    {
+      value: 2,
+      label: "鍑洪櫌闅忚",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 3,
+      label: "闂ㄨ瘖闅忚",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 4,
+      label: "瀹f暀鍏虫��",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 5,
+      label: "澶嶈瘖绠$悊",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 6,
+      label: "浣忛櫌婊℃剰搴�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 1,
+      label: "鐩戞祴璇勪及",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 14,
+      label: "闂ㄨ瘖婊℃剰搴�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 15,
+      label: "鎶曡瘔寤鸿",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 7,
+      label: "鎮h�呮姤鍛�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+
+    {
+      value: 9,
+      label: "浣撴闅忚",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    // {
+    //   value: 1",
+    //   label: "鍖绘妧闅忚",
+    //   raw: {
+    //   cssClass: "",
+    //   listClass: "",
+    // },
+    // },
+    // {
+    //   value: 11,
+    //   label: "褰卞儚闅忚",
+    //   raw: {
+    //     cssClass: "",
+    //     listClass: "",
+    //   },
+    // },
+    // {
+    //   value: 12,
+    //   label: "蹇冪數闅忚",
+    //   raw: {
+    //     cssClass: "",
+    //     listClass: "",
+    //   },
+    // },
+    // {
+    //   value: "13",
+    //   label: "涓撶梾闅忚",
+    //   raw: {
+    //   cssClass: "",
+    //   listClass: "",
+    // },
+    // },
+  ],
 };
 
 export default getters;
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index ab91acf..08adc2f 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,226 +1,246 @@
-import { login, logout, getInfo } from '@/api/login'
-import { getToken, setToken, removeToken } from '@/utils/auth'
+import { login, logout, getInfo } from "@/api/login";
+import { getToken, setToken, removeToken } from "@/utils/auth";
 
 const user = {
   state: {
     token: getToken(),
-    name: '',
-    nickName:'',
-    Id: '',
-    avatar: '',
-    hisUserId:'',
-    belongWards:[],
-    belongDepts:[],
+    name: "",
+    nickName: "",
+    Id: "",
+    avatar: "",
+    hisUserId: "",
+    belongWards: [],
+    belongDepts: [],
     roles: [],
     permissions: [],
     // 鏈嶅姟绫诲瀷
-  Serviceauthority:  [
-    {
-      value: "1",
-      label: "鎮h�呮姤鍛�",
-      route: "followvisit/QuestionnaireTask",
-      raw: {
-        cssClass: "",
-        listClass: "",
+    Serviceauthority: [
+      {
+        value: "1",
+        label: "鎮h�呮姤鍛�",
+        route: "followvisit/QuestionnaireTask",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "2",
-      label: "蹇冪數闅忚",
-      route: "followvisit/QuestionnaireTask",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "2",
+        label: "蹇冪數闅忚",
+        route: "followvisit/QuestionnaireTask",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "3",
-      label: "浣撴闅忚",
-      route: "followvisit/particty",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "3",
+        label: "浣撴闅忚",
+        route: "followvisit/particty",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "4",
-      label: "瀹f暀鍏虫��",
-      route: "followvisit/Missioncreation",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "4",
+        label: "瀹f暀鍏虫��",
+        route: "followvisit/Missioncreation",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "5",
-      label: "鍑洪櫌闅忚",
-      route: "followvisit/particty",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "5",
+        label: "鍑洪櫌闅忚",
+        route: "followvisit/particty",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "6",
-      label: "闂ㄨ瘖闅忚",
-      route: "followvisit/particty",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "6",
+        label: "闂ㄨ瘖闅忚",
+        route: "followvisit/particty",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-    {
-      value: "7",
-      label: "閫氱煡鏈嶅姟",
-      route: "followvisit/Missioncreation",
-      raw: {
-        cssClass: "",
-        listClass: "",
+      {
+        value: "7",
+        label: "閫氱煡鏈嶅姟",
+        route: "followvisit/Missioncreation",
+        raw: {
+          cssClass: "",
+          listClass: "",
+        },
       },
-    },
-  ],
+    ],
   },
 
   mutations: {
     SET_TOKEN: (state, token) => {
-      state.token = token
+      state.token = token;
     },
     SET_NAME: (state, name) => {
-      state.name = name
+      state.name = name;
     },
     SET_nickNAME: (state, name) => {
-      state.nickName = name
+      state.nickName = name;
     },
     SET_Id: (state, Id) => {
-      state.Id = Id
-      console.log(state.Id,'user2');
-
+      state.Id = Id;
+      console.log(state.Id, "user2");
     },
     SET_AVATAR: (state, avatar) => {
-      state.avatar = avatar
+      state.avatar = avatar;
     },
     SET_ROLES: (state, roles) => {
-      state.roles = roles
+      state.roles = roles;
     },
     SET_PERMISSIONS: (state, permissions) => {
-      state.permissions = permissions
+      state.permissions = permissions;
     },
     SET_Serviceauthority: (state, Serviceauthority) => {
-      state.Serviceauthority = Serviceauthority
+      state.Serviceauthority = Serviceauthority;
     },
     SET_leavehospitaldistrictcodes: (state, belongWards) => {
-      state.belongWards = belongWards
+      state.belongWards = belongWards;
     },
     SET_hisUserId: (state, hisUserId) => {
-      state.hisUserId = hisUserId
+      state.hisUserId = hisUserId;
     },
     SET_leaveldeptcodes: (state, belongDepts) => {
-      state.belongDepts = belongDepts
-    }
+      state.belongDepts = belongDepts;
+    },
   },
 
   actions: {
     // 鐧诲綍
     Login({ commit }, userInfo) {
-      console.log(userInfo,'user info');
+      console.log(userInfo, "user info");
 
-      const username = userInfo.username.trim()
-      const password = userInfo.password
-      const code = userInfo.code
+      const username = userInfo.username.trim();
+      const password = userInfo.password;
+      const code = userInfo.code;
 
-      const orgid = userInfo.orgid
+      const orgid = userInfo.orgid;
       return new Promise((resolve, reject) => {
-        login(username, password, code, orgid).then(res => {
-          setToken(res.token)
-          commit('SET_TOKEN', res.token)
-          localStorage.setItem('orgid', orgid);
-          if (orgid=='47255004333112711A1001') {
-          localStorage.setItem('orgname', '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�');
-          localStorage.setItem('ZuHuID', '1400361376454545408');
-          localStorage.setItem('deptCode', '1017');
-          }else if (orgid=='47231022633110211A2101') {
-          localStorage.setItem('orgname', '涓芥按甯備腑鍖婚櫌');
-          localStorage.setItem('ZuHuID', '1400360867068907520');
-          localStorage.setItem('deptCode', '01040201');
-          }else if (orgid=='47246102433112211A2101') {
-          localStorage.setItem('orgname', '缂欎簯鍘夸腑鍖诲尰闄�');
-          localStorage.setItem('ZuHuID', '1429338802177000002');
-          localStorage.setItem('deptCode', '');
-          }else if (orgid=='47240018433118111A2101') {
-          localStorage.setItem('orgname', '榫欐硥甯備腑鍖诲尰闄�');
-          localStorage.setItem('ZuHuID', '1429338802177000003');
-          localStorage.setItem('deptCode', '');
-          }else if (orgid=='47243006833112611A2101') {
-          localStorage.setItem('orgname', '搴嗗厓鍘夸腑鍖诲尰闄�');
-          localStorage.setItem('ZuHuID', '1429338802177000004');
-          localStorage.setItem('deptCode', '');
-          }else if (orgid=='47234002X33112111A2101') {
-          localStorage.setItem('orgname', '闈掔敯鍘夸腑鍖诲尰闄�');
-          localStorage.setItem('ZuHuID', '1429338802177000005');
-          localStorage.setItem('deptCode', '');
-          }else if (orgid=='47240004533118111A1001') {
-          localStorage.setItem('orgname', '榫欐硥甯備汉姘戝尰闄�');
-          localStorage.setItem('ZuHuID', '1429338802177000007');
-          localStorage.setItem('deptCode', '');
-          }
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
+        login(username, password, code, orgid)
+          .then((res) => {
+            setToken(res.token);
+            commit("SET_TOKEN", res.token);
+            localStorage.setItem("orgid", orgid);
+            if (orgid == "H41010500003") {
+              localStorage.setItem("orgname", "娌冲崡涓尰鑽ぇ瀛︾涓�闄勫睘鍖婚櫌");
+              localStorage.setItem("ZuHuID", "1400361376454545408"); // 璇锋浛鎹负瀹為檯鐨刏uHuID
+              localStorage.setItem("deptCode", "1017"); // 璇锋浛鎹负瀹為檯鐨勭瀹や唬鐮�
+            } else if (orgid == "H41082200269") {
+              localStorage.setItem("orgname", "鍗氱埍鍘夸汉姘戝尰闄�");
+              localStorage.setItem("ZuHuID", "1400360867068907520"); // 璇锋浛鎹负瀹為檯鐨刏uHuID
+              localStorage.setItem("deptCode", "01040201"); // 璇锋浛鎹负瀹為檯鐨勭瀹や唬鐮�
+            } else if (orgid == "H41078202417") {
+              localStorage.setItem("orgname", "杈夊幙甯備腑鍖婚櫌");
+              localStorage.setItem("ZuHuID", "1429338802177000002"); // 璇锋浛鎹负瀹為檯鐨刏uHuID
+              localStorage.setItem("deptCode", ""); // 璇锋浛鎹负瀹為檯鐨勭瀹や唬鐮�
+            } else if (orgid == "47255004333112711A1001") {
+              localStorage.setItem("orgname", "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�");
+              localStorage.setItem("ZuHuID", "1400361376454545408");
+              localStorage.setItem("deptCode", "1017");
+            } else if (orgid == "47231022633110211A2101") {
+              localStorage.setItem("orgname", "涓芥按甯備腑鍖婚櫌");
+              localStorage.setItem("ZuHuID", "1400360867068907520");
+              localStorage.setItem("deptCode", "01040201");
+            } else if (orgid == "47246102433112211A2101") {
+              localStorage.setItem("orgname", "缂欎簯鍘夸腑鍖诲尰闄�");
+              localStorage.setItem("ZuHuID", "1429338802177000002");
+              localStorage.setItem("deptCode", "");
+            } else if (orgid == "47240018433118111A2101") {
+              localStorage.setItem("orgname", "榫欐硥甯備腑鍖诲尰闄�");
+              localStorage.setItem("ZuHuID", "1429338802177000003");
+              localStorage.setItem("deptCode", "");
+            } else if (orgid == "47243006833112611A2101") {
+              localStorage.setItem("orgname", "搴嗗厓鍘夸腑鍖诲尰闄�");
+              localStorage.setItem("ZuHuID", "1429338802177000004");
+              localStorage.setItem("deptCode", "");
+            } else if (orgid == "47234002X33112111A2101") {
+              localStorage.setItem("orgname", "闈掔敯鍘夸腑鍖诲尰闄�");
+              localStorage.setItem("ZuHuID", "1429338802177000005");
+              localStorage.setItem("deptCode", "");
+            } else if (orgid == "47240004533118111A1001") {
+              localStorage.setItem("orgname", "榫欐硥甯備汉姘戝尰闄�");
+              localStorage.setItem("ZuHuID", "1429338802177000007");
+              localStorage.setItem("deptCode", "");
+            }
+            resolve();
+          })
+          .catch((error) => {
+            reject(error);
+          });
+      });
     },
 
     // 鑾峰彇鐢ㄦ埛淇℃伅
     GetInfo({ commit, state }) {
       return new Promise((resolve, reject) => {
-        getInfo().then(res => {
-
-          const user = res.user
-          const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
-          if (res.roles && res.roles.length > 0) { // 楠岃瘉杩斿洖鐨剅oles鏄惁鏄竴涓潪绌烘暟缁�
-            commit('SET_ROLES', res.roles)
-            commit('SET_PERMISSIONS', res.permissions)
-          } else {
-            commit('SET_ROLES', ['ROLE_DEFAULT'])
-          }
-          commit('SET_NAME', user.userName)
-          commit('SET_nickNAME', user.nickName)
-          commit('SET_Id', user.userId)
-          commit('SET_hisUserId', user.hisUserId)
-          commit('SET_leavehospitaldistrictcodes', user.belongWards)
-          commit('SET_leaveldeptcodes', user.belongDepts)
-          commit('SET_AVATAR', avatar)
-          resolve(res)
-        }).catch(error => {
-          reject(error)
-        })
-      })
+        getInfo()
+          .then((res) => {
+            const user = res.user;
+            const avatar =
+              user.avatar == "" || user.avatar == null
+                ? require("@/assets/images/profile.jpg")
+                : process.env.VUE_APP_BASE_API + user.avatar;
+            if (res.roles && res.roles.length > 0) {
+              // 楠岃瘉杩斿洖鐨剅oles鏄惁鏄竴涓潪绌烘暟缁�
+              commit("SET_ROLES", res.roles);
+              commit("SET_PERMISSIONS", res.permissions);
+            } else {
+              commit("SET_ROLES", ["ROLE_DEFAULT"]);
+            }
+            commit("SET_NAME", user.userName);
+            commit("SET_nickNAME", user.nickName);
+            commit("SET_Id", user.userId);
+            commit("SET_hisUserId", user.hisUserId);
+            commit("SET_leavehospitaldistrictcodes", user.belongWards);
+            commit("SET_leaveldeptcodes", user.belongDepts);
+            commit("SET_AVATAR", avatar);
+            resolve(res);
+          })
+          .catch((error) => {
+            reject(error);
+          });
+      });
     },
 
     // 閫�鍑虹郴缁�
     LogOut({ commit, state }) {
       return new Promise((resolve, reject) => {
-        logout(state.token).then(() => {
-          commit('SET_TOKEN', '')
-          commit('SET_ROLES', [])
-          commit('SET_PERMISSIONS', [])
-          removeToken()
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
+        logout(state.token)
+          .then(() => {
+            commit("SET_TOKEN", "");
+            commit("SET_ROLES", []);
+            commit("SET_PERMISSIONS", []);
+            removeToken();
+            resolve();
+          })
+          .catch((error) => {
+            reject(error);
+          });
+      });
     },
 
     // 鍓嶇 鐧诲嚭
     FedLogOut({ commit }) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', '')
-        removeToken()
-        resolve()
-      })
-    }
-  }
-}
+      return new Promise((resolve) => {
+        commit("SET_TOKEN", "");
+        removeToken();
+        resolve();
+      });
+    },
+  },
+};
 
-export default user
+export default user;
diff --git a/src/utils/sipService.js b/src/utils/sipService.js
index 7b1f859..dbc4a4e 100644
--- a/src/utils/sipService.js
+++ b/src/utils/sipService.js
@@ -121,7 +121,7 @@
         };
 
         this.currentSession = this.ua.call(
-          `sip:${targetNumber}@192.169.129.198`,
+          `sip:${targetNumber}@1192.170.66.107`,
           options
         );
 
diff --git a/src/views/complaint/complaintlist/index.vue b/src/views/complaint/complaintlist/index.vue
index fd0143e..fc26e66 100644
--- a/src/views/complaint/complaintlist/index.vue
+++ b/src/views/complaint/complaintlist/index.vue
@@ -80,7 +80,6 @@
           <el-col :span="1.5">
             <el-button
               type="primary"
-              plain
               icon="el-icon-plus"
               size="medium"
               @click="handleAdd"
@@ -91,7 +90,6 @@
           <el-col :span="1.5">
             <el-button
               type="success"
-              plain
               icon="el-icon-edit"
               size="medium"
               :disabled="single"
diff --git a/src/views/complaint/complaintmy/index.vue b/src/views/complaint/complaintmy/index.vue
index be34f6a..c8e61c2 100644
--- a/src/views/complaint/complaintmy/index.vue
+++ b/src/views/complaint/complaintmy/index.vue
@@ -51,7 +51,6 @@
           <el-col :span="1.5">
             <el-button
               type="primary"
-              plain
               icon="el-icon-plus"
               size="medium"
               @click="handleAdd"
diff --git a/src/views/followvisit/SpecificDisease/index.vue b/src/views/followvisit/SpecificDisease/index.vue
index 424d6a5..755f1bd 100644
--- a/src/views/followvisit/SpecificDisease/index.vue
+++ b/src/views/followvisit/SpecificDisease/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -826,7 +825,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1017,6 +1016,8 @@
     },
      //鎮h��360璺宠浆
      gettoken360(sfzh,drcode,drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC=='涓芥按甯備腑鍖婚櫌') {
         this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728';
@@ -1445,10 +1446,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/followvisit/again/index.vue b/src/views/followvisit/again/index.vue
index daa9a30..92d569e 100644
--- a/src/views/followvisit/again/index.vue
+++ b/src/views/followvisit/again/index.vue
@@ -180,8 +180,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -928,7 +927,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
         {
@@ -1427,6 +1426,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1774,10 +1775,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
@@ -1822,7 +1825,9 @@
   border-radius: 1px;
   color: #ffffff;
 }
-
+.button-textxga {
+  color: #de7897;
+}
 ::v-deep.el-radio-group {
   span {
     font-size: 24px;
diff --git a/src/views/followvisit/complaint/index.vue b/src/views/followvisit/complaint/index.vue
new file mode 100644
index 0000000..693e413
--- /dev/null
+++ b/src/views/followvisit/complaint/index.vue
@@ -0,0 +1,1968 @@
+<template>
+  <div class="app-container">
+    <div class="leftvlue" style="margin-bottom: 20px">
+      <el-row :gutter="10">
+        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+          <el-card
+            shadow="hover"
+            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+          >
+            <div style="padding: 8px" @click="$router.push(item.router)">
+              <span>{{ item.name }}</span>
+              <div
+                style="
+                  text-align: center;
+                  font-size: 18px;
+                  margin-top: 10px;
+                  font-weight: 600;
+                "
+              >
+                {{ item.value ? item.value : 0 }}
+              </div>
+            </div>
+          </el-card>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="ysfleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>琛ㄥ崟宸插彂閫�</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ yfsvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="errleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>寮傚父</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ ycvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <el-row :gutter="20">
+      <!--鐢ㄦ埛鏁版嵁-->
+      <el-form
+        :model="topqueryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="98px"
+      >
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-date-picker
+            v-model="dateRange"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+
+
+        <el-form-item label="鎮h�呭鍚�" prop="sendname">
+          <el-input
+            v-model="topqueryParams.sendname"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+          <el-input
+            v-model="topqueryParams.leavediagname"
+            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+          <el-input
+            v-model="topqueryParams.updateBy"
+            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="涓绘不鍖荤敓" prop="drname">
+          <el-input
+            v-model="topqueryParams.drname"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+          <el-input
+            v-model="topqueryParams.managementDoctor"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鎮h�呰寖鍥�" prop="status">
+          <el-cascader
+            v-model="topqueryParams.scopetype"
+            placeholder="榛樿鍏ㄩ儴"
+            :options="sourcetype"
+            :props="{ expandTrigger: 'hover' }"
+            @change="handleChange"
+          ></el-cascader>
+        </el-form-item>
+
+        <el-form-item label="浠诲姟鐘舵��" prop="status">
+          <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+          <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptionssort"
+              :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(1)"
+            >鎼滅储</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">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-upload2"
+                size="medium"
+                @click="handleExport"
+                >瀵煎嚭</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+                        icon="el-icon-plus"
+            size="medium"
+            @click="handleAdd"
+            >鏂板</el-button
+          >
+        </el-col>
+
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-warning-outline"
+                size="medium"
+                @click="toleadExport(1)"
+                >鎵ц澶辫触</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-warning"
+                size="medium"
+                @click="toleadExport(2)"
+                >缁撴灉寮傚父</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="success"
+                plain
+                size="medium"
+                @click="buidegetTasklist()"
+                >寰呭姙鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="primary"
+                plain
+                size="medium"
+                @click="affiliation()"
+                >鏈汉鎵�灞炴湇鍔�</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button type="success" size="medium" @click="onthatday()"
+                >褰撴棩鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+
+      </el-row>
+      <el-table
+        v-loading="loading"
+        ref="userform"
+        :data="userList"
+        :row-class-name="tableRowClassName"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="50" align="center" />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          fixed
+          width="150"
+          show-overflow-tooltip
+          align="center"
+          key="taskName"
+          prop="taskName"
+        />
+        <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          key="sendname"
+          prop="sendname"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              @click="
+                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+              "
+              ><span class="button-textsc">{{
+                scope.row.sendname
+              }}</span></el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="浠诲姟鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+            >
+              <div v-if="scope.row.sendstate == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >琛ㄥ崟宸查鍙�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 2">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 3">
+                <el-tag type="success" :disable-transitions="false"
+                  >琛ㄥ崟宸插彂閫�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 4">
+                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="scope.row.sendstate == 5">
+                <el-tag type="danger" :disable-transitions="false"
+                  >鍙戦�佸け璐�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 6">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟寮傚父璇存槑"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark" -->
+        />
+
+        <el-table-column
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="闅忚瀹屾垚鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.finishtime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑洪櫌鏃ユ湡"
+          width="200"
+          align="center"
+          key="endtime"
+          prop="endtime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          width="120"
+          align="center"
+          key="drname"
+          prop="drname"
+        />
+        <el-table-column
+          label="闅忚浜哄憳"
+          align="center"
+          key="updateBy"
+          prop="updateBy"
+          width="120"
+        />
+        <el-table-column
+          label="缁忕鍖荤敓"
+          align="center"
+          key="managementDoctor"
+          prop="managementDoctor"
+          width="120"
+        />
+        <el-table-column
+          label="鍑洪櫌澶╂暟"
+          width="120"
+          align="center"
+          key="endDay"
+          prop="endDay"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+        <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          width="200"
+          align="center"
+          key="phone"
+          prop="phone"
+        />
+        <el-table-column
+          label="璐d换鎶ゅ+"
+          width="120"
+          align="center"
+          key="nurseName"
+          prop="nurseName"
+        />
+
+        <!-- <el-table-column
+          label="鐥呭巻鍙�"
+          align="center"
+          sortable
+          key="medicalRecordNo"
+          prop="medicalRecordNo"
+          width="120"
+        /> -->
+
+        <!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
+        <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+        <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+        <el-table-column
+          label="绉戝"
+          align="center"
+          key="deptname"
+          prop="deptname"
+          width="120"
+        >
+        </el-table-column>
+        <el-table-column
+          label="鐥呭尯"
+          align="center"
+          key="leavehospitaldistrictname"
+          prop="leavehospitaldistrictname"
+          width="120"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="璇婃柇鍚嶇О"
+          align="center"
+          key="leavediagname"
+          prop="leavediagname"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="鎶曡瘔寤鸿妯℃澘鍚嶇О"
+          align="center"
+          key="templatename"
+          prop="templatename"
+          width="200"
+        />
+        <el-table-column
+          label="浠诲姟鎵ц鏂瑰紡"
+          align="center"
+          key="preachform"
+          prop="preachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟鍙戦�佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="浠诲姟缁撴灉璇存槑"
+          width="220"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tooltip
+              :content="scope.row.remark"
+              placement="top"
+              effect="dark"
+            >
+              <el-tag
+                type="warning"
+                v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+                >{{ scope.row.remark }}</el-tag
+              >
+              <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          fixed="right"
+          width="300"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <!-- <el-tooltip
+              class="item"
+              effect="dark"
+              content="鍐嶆闅忚"
+              placement="top"
+            >
+              <el-button
+                size="medium"
+                type="text"
+                v-if="scope.row.isVisitAgain!=2"
+                @click="followupvisit(scope.row)"
+                ><span class="button-bb"
+                  ><i class="el-icon-s-promotion"></i>鍐嶆闅忚</span
+                ></el-button
+              >
+            </el-tooltip>
+            <el-tooltip
+              v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2"
+              class="item"
+              effect="dark"
+              content="鏆傚仠鏈嶅姟"
+              placement="top"
+            >
+              <el-button
+                size="medium"
+                type="text"
+                @click="handlestop(scope.row)"
+                v-hasPermi="['system:user:edit']"
+                ><span class="button-sc"
+                  ><i class="el-icon-remove-outline"></i>鏆傚仠鏈嶅姟</span
+                ></el-button
+              >
+            </el-tooltip> -->
+            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+              ><span class="button-zx"
+                ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+              ></el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row)"
+              ><span class="button-textxga"
+                ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+              ></el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="topqueryParams.pageNum"
+        :limit.sync="topqueryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-row>
+    <!-- 婊℃剰搴﹀脊妗� -->
+    <el-dialog
+      title="闅忚婊℃剰搴﹁瘎鍒�"
+      :visible.sync="scoreDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <el-table :data="selectedRows" border style="width: 100%">
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          prop="sendname"
+        />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          width="180"
+          align="center"
+          prop="taskName"
+        />
+        <!-- 鏂板璇勫垎鍒� -->
+        <el-table-column
+          label="鐪熷疄鎬�(20)"
+          align="center"
+          key="authenticity"
+          prop="authenticity"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.authenticity"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓�鍛ㄥ唴瀹屾垚(20)"
+          align="center"
+          key="weekFinish"
+          prop="weekFinish"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.weekFinish"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瑙勮寖鎬�(10)"
+          align="center"
+          key="standard"
+          prop="standard"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.standard"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍙婃椂鎬�(10)"
+          align="center"
+          key="timeliness"
+          prop="timeliness"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.timeliness"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瀹f暀鎯呭喌(10)"
+          align="center"
+          key="library"
+          prop="library"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.library"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鐜婊℃剰搴�(10)"
+          align="center"
+          key="environment"
+          prop="environment"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.environment"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍖荤敓婊℃剰搴�(10)"
+          align="center"
+          key="doctorSatisfaction"
+          prop="doctorSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.doctorSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎶ゅ+婊℃剰搴�(10)"
+          align="center"
+          key="nurseSatisfaction"
+          prop="nurseSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.nurseSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎬诲垎"
+          align="center"
+          key="total"
+          prop="total"
+          fixed="right"
+        >
+          <template slot-scope="scope">
+            <span>{{ calculateTotal(scope.row) }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
+    <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+    <el-dialog
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" width="100" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" width="100" prop="sex">
+              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+                <el-option
+                  v-for="dict in sextype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row >
+          <el-col :span="8">
+            <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+              <el-input
+                v-model="form.filterDrname"
+                placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+    <el-dialog
+      title="鍙戦�佹椂闂磋缃�"
+      :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>
+
+<script>
+import {
+  delUser,
+  addUser,
+  updateUser,
+  resetUserPwd,
+  changeUserStatus,
+} from "@/api/system/user";
+import {
+  getTaskservelist,
+  buidegetTasklist,
+  addserviceSubtask,
+  query360PatInfo,
+  addsatisfaction,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Discharge",
+  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+  components: { Treeselect },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鏂板褰卞儚闅忚",
+      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+      addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      dateRangefs: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      ruleForm: {
+        type: [],
+      },
+      zcform: {},
+      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+      inputVisible: false,
+      Labelchange: false,
+      ycvalue: "",
+      yfsvalue: "",
+      inputValue: "",
+      preachform: "",
+      previewVisible: false, //褰卞儚闅忚棰勮寮规
+      radio: "",
+      radios: [],
+      previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+      total: 0, // 鎬绘潯鏁�
+      // 婊℃剰搴﹁皟鏌ユ暟鎹�
+      scoreDialogVisible: false,
+      selectedRows: [],
+
+      value: [],
+      list: [],
+
+      sourcetype: [
+        {
+          value: 1,
+          label: "绉戝",
+          children: [],
+        },
+        {
+          value: 2,
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
+        },
+      ],
+      loading: false,
+      cardlist: [
+        {
+          name: "鏈嶅姟鎬婚噺",
+          value: 0,
+        },
+        // {
+        //   name: "鎮h�呰繃婊�",
+        //   value: 0,
+        // },
+        {
+          name: "闇�闅忚",
+          value: 0,
+        },
+        {
+          name: "鍙戦�佸け璐�",
+          value: 0,
+        },
+        {
+          name: "寰呴殢璁�",
+          value: 0,
+        },
+        // {
+        //   name: "宸插彂閫�",
+        //   value: 0,
+        // },
+
+        // {
+        //   name: "琛ㄥ崟宸插彂閫�",
+        //   value: 0,
+        // },
+      ],
+      zcrules: {
+        date1: [
+          { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+        ],
+        resource: [
+          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+        ],
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        phonenumber: "",
+        totagid: "",
+        types: "",
+        nickName: "",
+        qystatus: "",
+        btstatus: "",
+      },
+      topicoptionssort: [
+        {
+          value: 0,
+          label: "鍑洪櫌鏃堕棿(姝e簭)",
+        },
+        {
+          value: 1,
+          label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+        },
+        {
+          value: 2,
+          label: "鍙戦�佹椂闂�(姝e簭)",
+        },
+        {
+          value: 3,
+          label: "鍙戦�佹椂闂�(鍊掑簭)",
+        },
+      ],
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 15,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      },
+      propss: { multiple: true },
+      options: [],
+
+      topicoptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 1,
+          label: "琛ㄥ崟宸查鍙�",
+        },
+        {
+          value: 2,
+          label: "寰呴殢璁�",
+        },
+        {
+          value: 3,
+          label: "琛ㄥ崟宸插彂閫�",
+        },
+        {
+          value: 4,
+          label: "涓嶆墽琛�",
+        },
+        {
+          value: 5,
+          label: "鍙戦�佸け璐�",
+        },
+        {
+          value: 6,
+          label: "宸插畬鎴�",
+        },
+      ],
+      sextype: [
+        {
+          value: 1,
+          label: "鐢�",
+        },
+        {
+          value: 2,
+          label: "濂�",
+        },
+      ],
+      topicoptionsyj: [
+        {
+          value: 1,
+          label: "寮傚父",
+        },
+        {
+          value: 0,
+          label: "姝e父",
+        },
+      ],
+      url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: "1400466972205912064",
+            YongHuXM: "JNRMYY",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
+      amendtag: false,
+      errtype: "",
+      leavehospitaldistrictcode: "",
+      serviceState: [],
+      checkboxlist: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {},
+    };
+  },
+  watch: {},
+  created() {
+    this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+    this.errtype = this.$route.query.errtype;
+    this.leavehospitaldistrictcode =
+      this.$route.query.leavehospitaldistrictcode;
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
+    if (this.errtype) {
+      this.toleadExport(2);
+    } else {
+      this.getList(1);
+    }
+    this.getConfigKey("sys.user.initPassword").then((response) => {
+      this.initPassword = response.msg;
+    });
+  },
+  activated() {
+    this.getList(1);
+  },
+  methods: {
+    /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+    getList(refresh) {
+      // 榛樿鍏ㄩ儴
+
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+      }
+      this.loading = true;
+      if (
+        this.topqueryParams.leavehospitaldistrictcodes[0] &&
+        this.topqueryParams.leaveldeptcodes[0]
+      ) {
+        this.topqueryParams.deptOrDistrict = 2;
+      } else {
+        this.topqueryParams.deptOrDistrict = 1;
+      }
+      getTaskservelist(this.topqueryParams).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          // this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[1].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[2].value = response.rows[0].fssb;
+          this.cardlist[3].value = response.rows[0].dsf;
+          // this.cardlist[4].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    affiliation() {
+      this.topqueryParams.drcode = store.getters.hisUserId;
+      this.topqueryParams.nurseId = store.getters.hisUserId;
+      this.topqueryParams.managementDoctor = store.getters.name;
+      this.getList(1);
+    },
+    onthatday() {
+      this.topqueryParams.startSendDateTime = this.getCurrentDate();
+      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.getList(1);
+    },
+    getCurrentDate() {
+      const now = new Date();
+      return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+    },
+    buidegetTasklist(type) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+      }
+      let obj = {
+        pageNum: 1,
+        pageSize: 10,
+        leavehospitaldistrictcodes:
+          this.topqueryParams.leavehospitaldistrictcodes,
+        sendstates: [2, 3],
+        leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+      };
+      buidegetTasklist(obj).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dsf;
+          // this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+    Referencequestion(row) {
+      this.previewVisible = true;
+    },
+    // 娣诲姞寮规鎼滅储
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.options = this.list.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.options = [];
+      }
+    },
+    // 褰卞儚闅忚鐘舵�佷慨鏀�
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+      this.$modal
+        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+        .then(function () {
+          return changeUserStatus(row.userId, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "鎴愬姛");
+        })
+        .catch(function () {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+
+    // 琛ㄥ崟閲嶇疆
+    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(refresh) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      this.topqueryParams.pageNum = 1;
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+      this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+      this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      this.getList(refresh);
+    },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.topqueryParams.leavehospitaldistrictcodes = [];
+      this.topqueryParams.leaveldeptcodes = [];
+      if (type == 1) {
+        this.topqueryParams.leaveldeptcodes.push(code);
+        this.topqueryParams.leavehospitaldistrictcodes = [];
+        this.topqueryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(code);
+        this.topqueryParams.leaveldeptcodes = [];
+        this.topqueryParams.searchscope = 2;
+      } else {
+        this.topqueryParams.searchscope = 3;
+      }
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 15,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
+      this.handleQuery(1);
+    },
+    handleSelectionChange(rows) {
+      this.selectedRows = rows.map((row) => {
+        // 鍒濆鍖栬瘎鍒嗗瓧娈�
+        return {
+          ...row,
+          authenticity: row.authenticity || 0,
+          weekFinish: row.weekFinish || 0,
+          standard: row.standard || 0,
+          timeliness: row.timeliness || 0,
+          library: row.library || 0,
+          environment: row.environment || 0,
+          doctorSatisfaction: row.doctorSatisfaction || 0,
+          nurseSatisfaction: row.nurseSatisfaction || 0,
+        };
+      });
+
+      if (this.selectedRows.length > 0) {
+        this.multiple = false;
+      } else {
+        this.multiple = true;
+      }
+    },
+
+    // 璁$畻鎬诲垎
+    calculateTotal(row) {
+      return (
+        (row.authenticity || 0) +
+        (row.weekFinish || 0) +
+        (row.standard || 0) +
+        (row.timeliness || 0) +
+        (row.library || 0) +
+        (row.environment || 0) +
+        (row.doctorSatisfaction || 0) +
+        (row.nurseSatisfaction || 0)
+      );
+    },
+
+    // 淇濆瓨璇勫垎
+    saveScores() {
+      this.selectedRows.forEach((item) => {
+        item.createBy = null;
+        item.patName = item.sendname;
+        item.hospitaldistrictname = item.leavehospitaldistrictname;
+      });
+      addsatisfaction(this.selectedRows).then((res) => {
+        if (res.code == 200) {
+          this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+          this.scoreDialogVisible = false;
+          this.selectedRows=[];
+          this.$refs.userform.clearSelection()
+        } else {
+          this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+          this.scoreDialogVisible = false;
+          this.selectedRows=[];
+          this.$refs.userform.clearSelection()
+        }
+      });
+      // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
+    },
+    //鍒犻櫎閫夐」
+    handleClose(tag) {
+      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    },
+    //瑙﹀彂鏂板杈撳叆
+    showInput() {
+      this.inputVisible = true;
+      this.$nextTick((_) => {
+        this.$refs.saveTagInput.$refs.input.focus();
+      });
+    },
+    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+    handleInputConfirm() {
+      let inputValue = this.inputValue;
+      if (inputValue) {
+        this.dynamicTags.push(inputValue);
+      }
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/followvisit/QuestionnaireTask",
+        query: {
+          type: 2,
+          serviceType: 15,
+        },
+      });
+    },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+      if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
+        this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
+        this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
+      }
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
+
+    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+    handleResetPwd(row) {
+      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        closeOnClickModal: false,
+        inputPattern: /^.{5,20}$/,
+        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+      })
+        .then(({ value }) => {
+          resetUserPwd(row.userId, value).then((response) => {
+            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+          });
+        })
+        .catch(() => {});
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.form.isoperation = 2;
+          this.form.notrequiredFlag = 1;
+          alterpatient(this.form)
+            .then((response) => {
+              console.log(response);
+            })
+            .then(() => {
+              this.getList(1);
+              this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+            });
+
+          this.reset();
+          this.Labelchange = false;
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delUser(userIds);
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails(row) {
+      let type = "";
+      console.log(row, "rwo");
+      if (row.preachformson) {
+        if (row.preachformson.includes("3")) {
+          type = 1;
+        }
+      }
+      this.$router.push({
+        path: "/followvisit/record/detailpage/",
+        query: {
+          taskid: row.taskid,
+          patid: row.patid,
+          id: row.id,
+          Voicetype: type,
+          visitCount: this.topqueryParams.visitCount,
+        },
+      });
+    },
+
+    onSubmit() {},
+    // 鏆傚仠鏈嶅姟
+    handlestop(row) {
+      let objson = row;
+      this.$modal
+        .confirm(
+          '鏄惁纭鏆傚仠浠诲姟鍚嶇О涓�"' +
+            row.taskName +
+            '鎮h�呭悕绉颁负"' +
+            row.sendname +
+            '"鐨勬暟鎹」锛�'
+        )
+        .then(() => {
+          getTaskservelist({
+            patid: row.patid,
+            taskid: row.taskid,
+          }).then((res) => {
+            if (res.code == 200) {
+              objson.sendstate = 4;
+              objson.remark = "鏈嶅姟鏆傚仠";
+              Editsingletaskson(objson).then((res) => {
+                if (res.code) {
+                  this.$modal.msgSuccess("璁板綍鎴愬姛");
+                  this.getList(1);
+                }
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    // 鎮h�呰繃婊よЕ鍙�
+    handleUpdate(row) {
+      particularpatient(row.patid).then((response) => {
+        this.form = response.data;
+        this.form.filterDrname = store.getters.nickName;
+      });
+      this.amendtag = true;
+      this.Labelchange = true;
+    },
+    // 渚挎嵎鎸夐挳
+    toleadExport(too) {
+      if (too == 1) {
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
+      } else if (too == 2) {
+        this.topqueryParams.excep = 1;
+      }
+      this.handleQuery();
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.topqueryParams.pageNum = null;
+      this.topqueryParams.pageSize = null;
+      this.download(
+        "smartor/serviceSubtask/patItemExport",
+        {
+          ...this.topqueryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
+      }
+      return "";
+    },
+
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+      const hours = String(now.getHours()).padStart(2, "0");
+      const minutes = String(now.getMinutes()).padStart(2, "0");
+      const seconds = String(now.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
+}
+
+.document {
+  // width: 100px;
+  height: 50px;
+}
+::v-deep.el-table .warning-row {
+  background: #eec4c4;
+}
+
+.documentf {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.download {
+  text-align: center;
+
+  .el-upload__tip {
+    font-size: 23px;
+  }
+
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 30px;
+  background: #daeaf5;
+
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+
+.qrcode-dialo {
+  // text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.leftvlue .el-card__body {
+  background: #F2F8FF;
+  color: #324A9B;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #3664D9;
+  color: #fff;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.errleftvlue .el-card__body {
+  background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+  background: #f88d96;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+  background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+  background: #8df8a4;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+  font-weight: 500;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-xq {
+  font-weight: 500;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-sc {
+  font-weight: 500;
+  background-color: #b3a21f;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-zx {
+  background: #4fabe9;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+  span {
+    font-size: 24px;
+  }
+}
+.purple-button {
+  background-color: #7e22ce;
+  border-color: #7e22ce;
+  color: #fff;
+}
+
+.purple-button:hover,
+.purple-button:focus {
+  background-color: #9333ea;
+  border-color: #9333ea;
+}
+
+.purple-button:active {
+  background-color: #6b21a8;
+  border-color: #6b21a8;
+}
+.button-textxga {
+  color: #de7897;
+}
+.purple-button.is-disabled {
+  background-color: #d8b4fe;
+  border-color: #d8b4fe;
+  opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+//   span {
+//     font-size: 24px;
+//   }
+// }
+</style>
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 5e47a60..1e700f1 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -181,7 +181,7 @@
       </el-form>
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
+        <!-- <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -194,11 +194,10 @@
               >
             </div>
           </div>
-        </el-col>
+        </el-col> -->
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
             icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
@@ -252,7 +251,6 @@
             <div class="document">
               <el-button
                 type="primary"
-                plain
                 size="medium"
                 @click="affiliation()"
                 >鏈汉鎵�灞炴湇鍔�</el-button
@@ -269,7 +267,7 @@
             </div>
           </div>
         </el-col>
-        <el-col :span="1.5">
+        <!-- <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-tooltip
@@ -290,7 +288,7 @@
               </el-tooltip>
             </div>
           </div>
-        </el-col>
+        </el-col> -->
       </el-row>
       <el-table
         v-loading="loading"
@@ -859,7 +857,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row >
+        <el-row>
           <el-col :span="8">
             <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
               <el-input
@@ -1143,7 +1141,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
         {
@@ -1408,8 +1406,7 @@
       });
     },
     affiliation() {
-
-      this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
+      this.topqueryParams.managementDoctor = store.getters.hisUserId;
       this.getList(1);
     },
     onthatday() {
@@ -1635,13 +1632,13 @@
         if (res.code == 200) {
           this.$message.success("璇勫垎淇濆瓨鎴愬姛");
           this.scoreDialogVisible = false;
-          this.selectedRows=[];
-          this.$refs.userform.clearSelection()
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
         } else {
           this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
           this.scoreDialogVisible = false;
-          this.selectedRows=[];
-          this.$refs.userform.clearSelection()
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
         }
       });
       // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
@@ -1678,6 +1675,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+      return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1883,6 +1882,8 @@
     tableRowClassName({ row, rowIndex }) {
       if (row.excep == 1) {
         return "warning-row";
+      } else if (row.excep == 2) {
+        return "remind-row";
       }
       return "";
     },
@@ -1945,6 +1946,9 @@
 }
 ::v-deep.el-table .warning-row {
   background: #eec4c4;
+}
+::v-deep.el-table .remind-row {
+  background: #fcf5aa;
 }
 
 .documentf {
@@ -2025,10 +2029,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #f2f8ff;
+  color: #324a9b;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664d9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
@@ -2043,7 +2049,7 @@
   background: #d0fdd8;
 }
 ::v-deep.ysfleftvlue .el-card__body:hover {
-  background: #8df8a4;
+  background: #0abc54;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 .button-bb {
@@ -2068,7 +2074,7 @@
   color: #ffffff;
 }
 .button-zx {
-  background: #4fabe9;
+  background: #324a9b;
   padding: 5px;
   border-radius: 1px;
   color: #ffffff;
@@ -2095,7 +2101,9 @@
   background-color: #6b21a8;
   border-color: #6b21a8;
 }
-
+.button-textxga {
+  color: #de7897;
+}
 .purple-button.is-disabled {
   background-color: #d8b4fe;
   border-color: #d8b4fe;
diff --git a/src/views/followvisit/discharge/outpatientService.vue b/src/views/followvisit/discharge/outpatientService.vue
index 4895852..f0acb01 100644
--- a/src/views/followvisit/discharge/outpatientService.vue
+++ b/src/views/followvisit/discharge/outpatientService.vue
@@ -186,8 +186,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -917,7 +916,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
         {
@@ -1399,6 +1398,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1745,10 +1746,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
@@ -1766,6 +1769,9 @@
   background: #8df8a4;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
+.button-textxga {
+  color: #de7897;
+}
 .button-bb {
   font-weight: 500;
   background-color: #2ba05c;
diff --git a/src/views/followvisit/linem/index.vue b/src/views/followvisit/linem/index.vue
index aec5093..0c44e9f 100644
--- a/src/views/followvisit/linem/index.vue
+++ b/src/views/followvisit/linem/index.vue
@@ -7,8 +7,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             v-hasPermi="['system:user:add']"
diff --git a/src/views/followvisit/mzsatisfaction/index.vue b/src/views/followvisit/mzsatisfaction/index.vue
new file mode 100644
index 0000000..f4c808c
--- /dev/null
+++ b/src/views/followvisit/mzsatisfaction/index.vue
@@ -0,0 +1,1973 @@
+<template>
+  <div class="app-container">
+    <div class="leftvlue" style="margin-bottom: 20px">
+      <el-row :gutter="10">
+        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+          <el-card
+            shadow="hover"
+            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+          >
+            <div style="padding: 8px" @click="$router.push(item.router)">
+              <span>{{ item.name }}</span>
+              <div
+                style="
+                  text-align: center;
+                  font-size: 18px;
+                  margin-top: 10px;
+                  font-weight: 600;
+                "
+              >
+                {{ item.value ? item.value : 0 }}
+              </div>
+            </div>
+          </el-card>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="ysfleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>琛ㄥ崟宸插彂閫�</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ yfsvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="errleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>寮傚父</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ ycvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <el-row :gutter="20">
+      <!--鐢ㄦ埛鏁版嵁-->
+      <el-form
+        :model="topqueryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="98px"
+      >
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-date-picker
+            v-model="dateRange"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="鎮h�呭鍚�" prop="sendname">
+          <el-input
+            v-model="topqueryParams.sendname"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+          <el-input
+            v-model="topqueryParams.leavediagname"
+            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+          <el-input
+            v-model="topqueryParams.updateBy"
+            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="涓绘不鍖荤敓" prop="drname">
+          <el-input
+            v-model="topqueryParams.drname"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+          <el-input
+            v-model="topqueryParams.managementDoctor"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鎮h�呰寖鍥�" prop="status">
+          <el-cascader
+            v-model="topqueryParams.scopetype"
+            placeholder="榛樿鍏ㄩ儴"
+            :options="sourcetype"
+            :props="{ expandTrigger: 'hover' }"
+            @change="handleChange"
+          ></el-cascader>
+        </el-form-item>
+
+        <el-form-item label="浠诲姟鐘舵��" prop="status">
+          <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+          <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptionssort"
+              :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(1)"
+            >鎼滅储</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">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-upload2"
+                size="medium"
+                @click="handleExport"
+                >瀵煎嚭</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+                        icon="el-icon-plus"
+            size="medium"
+            @click="handleAdd"
+            >鏂板</el-button
+          >
+        </el-col>
+
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-warning-outline"
+                size="medium"
+                @click="toleadExport(1)"
+                >鎵ц澶辫触</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-warning"
+                size="medium"
+                @click="toleadExport(2)"
+                >缁撴灉寮傚父</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="success"
+                plain
+                size="medium"
+                @click="buidegetTasklist()"
+                >寰呭姙鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="primary"
+                plain
+                size="medium"
+                @click="affiliation()"
+                >鏈汉鎵�灞炴湇鍔�</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button type="success" size="medium" @click="onthatday()"
+                >褰撴棩鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+
+      </el-row>
+      <el-table
+        v-loading="loading"
+        ref="userform"
+        :data="userList"
+        :row-class-name="tableRowClassName"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="50" align="center" />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          fixed
+          width="150"
+          show-overflow-tooltip
+          align="center"
+          key="taskName"
+          prop="taskName"
+        />
+        <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          key="sendname"
+          prop="sendname"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              @click="
+                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+              "
+              ><span class="button-textsc">{{
+                scope.row.sendname
+              }}</span></el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="浠诲姟鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+            >
+              <div v-if="scope.row.sendstate == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >琛ㄥ崟宸查鍙�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 2">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 3">
+                <el-tag type="success" :disable-transitions="false"
+                  >琛ㄥ崟宸插彂閫�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 4">
+                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="scope.row.sendstate == 5">
+                <el-tag type="danger" :disable-transitions="false"
+                  >鍙戦�佸け璐�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 6">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟寮傚父璇存槑"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark" -->
+        />
+
+        <el-table-column
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="闅忚瀹屾垚鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.finishtime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑洪櫌鏃ユ湡"
+          width="200"
+          align="center"
+          key="endtime"
+          prop="endtime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          width="120"
+          align="center"
+          key="drname"
+          prop="drname"
+        />
+        <el-table-column
+          label="闅忚浜哄憳"
+          align="center"
+          key="updateBy"
+          prop="updateBy"
+          width="120"
+        />
+        <el-table-column
+          label="缁忕鍖荤敓"
+          align="center"
+          key="managementDoctor"
+          prop="managementDoctor"
+          width="120"
+        />
+        <el-table-column
+          label="鍑洪櫌澶╂暟"
+          width="120"
+          align="center"
+          key="endDay"
+          prop="endDay"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+        <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          width="200"
+          align="center"
+          key="phone"
+          prop="phone"
+        />
+        <el-table-column
+          label="璐d换鎶ゅ+"
+          width="120"
+          align="center"
+          key="nurseName"
+          prop="nurseName"
+        />
+
+        <!-- <el-table-column
+          label="鐥呭巻鍙�"
+          align="center"
+          sortable
+          key="medicalRecordNo"
+          prop="medicalRecordNo"
+          width="120"
+        /> -->
+
+        <!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
+        <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+        <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+        <el-table-column
+          label="绉戝"
+          align="center"
+          key="deptname"
+          prop="deptname"
+          width="120"
+        >
+        </el-table-column>
+        <el-table-column
+          label="鐥呭尯"
+          align="center"
+          key="leavehospitaldistrictname"
+          prop="leavehospitaldistrictname"
+          width="120"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="璇婃柇鍚嶇О"
+          align="center"
+          key="leavediagname"
+          prop="leavediagname"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="闂ㄨ瘖婊℃剰搴︽ā鏉垮悕绉�"
+          align="center"
+          key="templatename"
+          prop="templatename"
+          width="200"
+        />
+        <el-table-column
+          label="浠诲姟鎵ц鏂瑰紡"
+          align="center"
+          key="preachform"
+          prop="preachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟鍙戦�佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="浠诲姟缁撴灉璇存槑"
+          width="220"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tooltip
+              :content="scope.row.remark"
+              placement="top"
+              effect="dark"
+            >
+              <el-tag
+                type="warning"
+                v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+                >{{ scope.row.remark }}</el-tag
+              >
+              <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          fixed="right"
+          width="300"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+              ><span class="button-zx"
+                ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+              ></el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row)"
+              ><span class="button-textxga"
+                ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+              ></el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="topqueryParams.pageNum"
+        :limit.sync="topqueryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-row>
+    <!-- 婊℃剰搴﹀脊妗� -->
+    <el-dialog
+      title="闅忚婊℃剰搴﹁瘎鍒�"
+      :visible.sync="scoreDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <el-table :data="selectedRows" border style="width: 100%">
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          prop="sendname"
+        />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          width="180"
+          align="center"
+          prop="taskName"
+        />
+        <!-- 鏂板璇勫垎鍒� -->
+        <el-table-column
+          label="鐪熷疄鎬�(20)"
+          align="center"
+          key="authenticity"
+          prop="authenticity"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.authenticity"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓�鍛ㄥ唴瀹屾垚(20)"
+          align="center"
+          key="weekFinish"
+          prop="weekFinish"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.weekFinish"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瑙勮寖鎬�(10)"
+          align="center"
+          key="standard"
+          prop="standard"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.standard"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍙婃椂鎬�(10)"
+          align="center"
+          key="timeliness"
+          prop="timeliness"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.timeliness"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瀹f暀鎯呭喌(10)"
+          align="center"
+          key="library"
+          prop="library"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.library"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鐜婊℃剰搴�(10)"
+          align="center"
+          key="environment"
+          prop="environment"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.environment"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍖荤敓婊℃剰搴�(10)"
+          align="center"
+          key="doctorSatisfaction"
+          prop="doctorSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.doctorSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎶ゅ+婊℃剰搴�(10)"
+          align="center"
+          key="nurseSatisfaction"
+          prop="nurseSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.nurseSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎬诲垎"
+          align="center"
+          key="total"
+          prop="total"
+          fixed="right"
+        >
+          <template slot-scope="scope">
+            <span>{{ calculateTotal(scope.row) }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
+    <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+    <el-dialog
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" width="100" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" width="100" prop="sex">
+              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+                <el-option
+                  v-for="dict in sextype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+              <el-input
+                v-model="form.filterDrname"
+                placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+    <el-dialog
+      title="鍙戦�佹椂闂磋缃�"
+      :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>
+    <!-- 鍐嶆闅忚 -->
+    <el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
+      <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.taskName"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鎮h�呭悕绉�">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.sendname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="骞撮緞">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.age"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="绉戝">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.deptname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鐥呭尯">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.leavehospitaldistrictname"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="闅忚鏂瑰紡" prop="resource">
+          <el-radio-group v-model="zcform.resource">
+            <el-radio label="1">鏈梾鍖洪殢璁�</el-radio>
+            <el-radio label="2">闅忚涓績闅忚</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <!-- <el-form-item label="鍗冲埢鍙戦��">
+          <el-switch v-model="zcform.delivery"></el-switch>
+        </el-form-item> -->
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.endtime"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚瀹屾垚鏃堕棿" prop="date1">
+          <el-date-picker
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+            v-model="zcform.date1"
+            style="width: 100%"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="闅忚璁板綍">
+          <el-input type="textarea" v-model="zcform.remark"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  delUser,
+  addUser,
+  updateUser,
+  resetUserPwd,
+  changeUserStatus,
+} from "@/api/system/user";
+import {
+  getTaskservelist,
+  buidegetTasklist,
+  addserviceSubtask,
+  query360PatInfo,
+  addsatisfaction,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Discharge",
+  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+  components: { Treeselect },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      dialogFormVisible: false,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鏂板褰卞儚闅忚",
+      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+      addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      dateRangefs: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      ruleForm: {
+        type: [],
+      },
+      zcform: {},
+      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+      inputVisible: false,
+      Labelchange: false,
+      ycvalue: "",
+      yfsvalue: "",
+      inputValue: "",
+      preachform: "",
+      previewVisible: false, //褰卞儚闅忚棰勮寮规
+      radio: "",
+      radios: [],
+      previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+      total: 0, // 鎬绘潯鏁�
+      // 婊℃剰搴﹁皟鏌ユ暟鎹�
+      scoreDialogVisible: false,
+      selectedRows: [],
+
+      value: [],
+      list: [],
+
+      sourcetype: [
+        {
+          value: 1,
+          label: "绉戝",
+          children: [],
+        },
+        {
+          value: 2,
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
+        },
+      ],
+      loading: false,
+      cardlist: [
+        {
+          name: "鏈嶅姟鎬婚噺",
+          value: 0,
+        },
+        // {
+        //   name: "鎮h�呰繃婊�",
+        //   value: 0,
+        // },
+        {
+          name: "闇�闅忚",
+          value: 0,
+        },
+        {
+          name: "鍙戦�佸け璐�",
+          value: 0,
+        },
+        {
+          name: "寰呴殢璁�",
+          value: 0,
+        },
+        // {
+        //   name: "宸插彂閫�",
+        //   value: 0,
+        // },
+
+        // {
+        //   name: "琛ㄥ崟宸插彂閫�",
+        //   value: 0,
+        // },
+      ],
+      zcrules: {
+        date1: [
+          { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+        ],
+        resource: [
+          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+        ],
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        phonenumber: "",
+        totagid: "",
+        types: "",
+        nickName: "",
+        qystatus: "",
+        btstatus: "",
+      },
+      topicoptionssort: [
+        {
+          value: 0,
+          label: "鍑洪櫌鏃堕棿(姝e簭)",
+        },
+        {
+          value: 1,
+          label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+        },
+        {
+          value: 2,
+          label: "鍙戦�佹椂闂�(姝e簭)",
+        },
+        {
+          value: 3,
+          label: "鍙戦�佹椂闂�(鍊掑簭)",
+        },
+      ],
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 14,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      },
+      propss: { multiple: true },
+      options: [],
+
+      topicoptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 1,
+          label: "琛ㄥ崟宸查鍙�",
+        },
+        {
+          value: 2,
+          label: "寰呴殢璁�",
+        },
+        {
+          value: 3,
+          label: "琛ㄥ崟宸插彂閫�",
+        },
+        {
+          value: 4,
+          label: "涓嶆墽琛�",
+        },
+        {
+          value: 5,
+          label: "鍙戦�佸け璐�",
+        },
+        {
+          value: 6,
+          label: "宸插畬鎴�",
+        },
+      ],
+      sextype: [
+        {
+          value: 1,
+          label: "鐢�",
+        },
+        {
+          value: 2,
+          label: "濂�",
+        },
+      ],
+      topicoptionsyj: [
+        {
+          value: 1,
+          label: "寮傚父",
+        },
+        {
+          value: 0,
+          label: "姝e父",
+        },
+      ],
+      url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: "1400466972205912064",
+            YongHuXM: "JNRMYY",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
+      amendtag: false,
+      errtype: "",
+      leavehospitaldistrictcode: "",
+      serviceState: [],
+      checkboxlist: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {},
+    };
+  },
+  watch: {},
+  created() {
+    this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+    this.errtype = this.$route.query.errtype;
+    this.leavehospitaldistrictcode =
+      this.$route.query.leavehospitaldistrictcode;
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
+    if (this.errtype) {
+      this.toleadExport(2);
+    } else {
+      this.getList(1);
+    }
+    this.getConfigKey("sys.user.initPassword").then((response) => {
+      this.initPassword = response.msg;
+    });
+  },
+  activated() {
+    this.getList(1);
+  },
+  methods: {
+    /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+    getList(refresh) {
+      // 榛樿鍏ㄩ儴
+
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+      }
+      this.loading = true;
+      if (
+        this.topqueryParams.leavehospitaldistrictcodes[0] &&
+        this.topqueryParams.leaveldeptcodes[0]
+      ) {
+        this.topqueryParams.deptOrDistrict = 2;
+      } else {
+        this.topqueryParams.deptOrDistrict = 1;
+      }
+      getTaskservelist(this.topqueryParams).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          // this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[1].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[2].value = response.rows[0].fssb;
+          this.cardlist[3].value = response.rows[0].dsf;
+          // this.cardlist[4].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    affiliation() {
+      this.topqueryParams.drcode = store.getters.hisUserId;
+      this.topqueryParams.nurseId = store.getters.hisUserId;
+      this.topqueryParams.managementDoctor = store.getters.name;
+      this.getList(1);
+    },
+    onthatday() {
+      this.topqueryParams.startSendDateTime = this.getCurrentDate();
+      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.getList(1);
+    },
+    getCurrentDate() {
+      const now = new Date();
+      return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+    },
+    buidegetTasklist(type) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+      }
+      let obj = {
+        pageNum: 1,
+        pageSize: 10,
+        leavehospitaldistrictcodes:
+          this.topqueryParams.leavehospitaldistrictcodes,
+        sendstates: [2, 3],
+        leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+      };
+      buidegetTasklist(obj).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dsf;
+          // this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+    Referencequestion(row) {
+      this.previewVisible = true;
+    },
+    // 娣诲姞寮规鎼滅储
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.options = this.list.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.options = [];
+      }
+    },
+    // 褰卞儚闅忚鐘舵�佷慨鏀�
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+      this.$modal
+        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+        .then(function () {
+          return changeUserStatus(row.userId, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "鎴愬姛");
+        })
+        .catch(function () {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+
+    // 琛ㄥ崟閲嶇疆
+    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(refresh) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      this.topqueryParams.pageNum = 1;
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+      this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+      this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      this.getList(refresh);
+    },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.topqueryParams.leavehospitaldistrictcodes = [];
+      this.topqueryParams.leaveldeptcodes = [];
+      if (type == 1) {
+        this.topqueryParams.leaveldeptcodes.push(code);
+        this.topqueryParams.leavehospitaldistrictcodes = [];
+        this.topqueryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(code);
+        this.topqueryParams.leaveldeptcodes = [];
+        this.topqueryParams.searchscope = 2;
+      } else {
+        this.topqueryParams.searchscope = 3;
+      }
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 14,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
+      this.handleQuery(1);
+    },
+    handleSelectionChange(rows) {
+      this.selectedRows = rows.map((row) => {
+        // 鍒濆鍖栬瘎鍒嗗瓧娈�
+        return {
+          ...row,
+          authenticity: row.authenticity || 0,
+          weekFinish: row.weekFinish || 0,
+          standard: row.standard || 0,
+          timeliness: row.timeliness || 0,
+          library: row.library || 0,
+          environment: row.environment || 0,
+          doctorSatisfaction: row.doctorSatisfaction || 0,
+          nurseSatisfaction: row.nurseSatisfaction || 0,
+        };
+      });
+
+      if (this.selectedRows.length > 0) {
+        this.multiple = false;
+      } else {
+        this.multiple = true;
+      }
+    },
+
+    // 璁$畻鎬诲垎
+    calculateTotal(row) {
+      return (
+        (row.authenticity || 0) +
+        (row.weekFinish || 0) +
+        (row.standard || 0) +
+        (row.timeliness || 0) +
+        (row.library || 0) +
+        (row.environment || 0) +
+        (row.doctorSatisfaction || 0) +
+        (row.nurseSatisfaction || 0)
+      );
+    },
+
+    // 淇濆瓨璇勫垎
+    saveScores() {
+      this.selectedRows.forEach((item) => {
+        item.createBy = null;
+        item.patName = item.sendname;
+        item.hospitaldistrictname = item.leavehospitaldistrictname;
+      });
+      addsatisfaction(this.selectedRows).then((res) => {
+        if (res.code == 200) {
+          this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        } else {
+          this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        }
+      });
+      // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
+    },
+    //鍒犻櫎閫夐」
+    handleClose(tag) {
+      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    },
+    //瑙﹀彂鏂板杈撳叆
+    showInput() {
+      this.inputVisible = true;
+      this.$nextTick((_) => {
+        this.$refs.saveTagInput.$refs.input.focus();
+      });
+    },
+    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+    handleInputConfirm() {
+      let inputValue = this.inputValue;
+      if (inputValue) {
+        this.dynamicTags.push(inputValue);
+      }
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/followvisit/QuestionnaireTask",
+        query: {
+          type: 2,
+          serviceType: 14,
+        },
+      });
+    },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+      return; // 闃绘鍚庣画浠g爜鎵ц
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+      if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
+        this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
+        this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
+      }
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
+
+    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+    handleResetPwd(row) {
+      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        closeOnClickModal: false,
+        inputPattern: /^.{5,20}$/,
+        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+      })
+        .then(({ value }) => {
+          resetUserPwd(row.userId, value).then((response) => {
+            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+          });
+        })
+        .catch(() => {});
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.form.isoperation = 2;
+          this.form.notrequiredFlag = 1;
+          alterpatient(this.form)
+            .then((response) => {
+              console.log(response);
+            })
+            .then(() => {
+              this.getList(1);
+              this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+            });
+
+          this.reset();
+          this.Labelchange = false;
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delUser(userIds);
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails(row) {
+      let type = "";
+      console.log(row, "rwo");
+      if (row.preachformson) {
+        if (row.preachformson.includes("3")) {
+          type = 1;
+        }
+      }
+      this.$router.push({
+        path: "/followvisit/record/detailpage/",
+        query: {
+          taskid: row.taskid,
+          patid: row.patid,
+          id: row.id,
+          Voicetype: type,
+          visitCount: this.topqueryParams.visitCount,
+        },
+      });
+    },
+
+    onSubmit() {},
+
+    // 鎮h�呰繃婊よЕ鍙�
+    handleUpdate(row) {
+      particularpatient(row.patid).then((response) => {
+        this.form = response.data;
+        this.form.filterDrname = store.getters.nickName;
+      });
+      this.amendtag = true;
+      this.Labelchange = true;
+    },
+    // 渚挎嵎鎸夐挳
+    toleadExport(too) {
+      if (too == 1) {
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
+      } else if (too == 2) {
+        this.topqueryParams.excep = 1;
+      }
+      this.handleQuery();
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.topqueryParams.pageNum = null;
+      this.topqueryParams.pageSize = null;
+      this.download(
+        "smartor/serviceSubtask/patItemExport",
+        {
+          ...this.topqueryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
+      }
+      return "";
+    },
+
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+      const hours = String(now.getHours()).padStart(2, "0");
+      const minutes = String(now.getMinutes()).padStart(2, "0");
+      const seconds = String(now.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
+}
+
+.document {
+  // width: 100px;
+  height: 50px;
+}
+::v-deep.el-table .warning-row {
+  background: #eec4c4;
+}
+
+.documentf {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.download {
+  text-align: center;
+
+  .el-upload__tip {
+    font-size: 23px;
+  }
+
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 30px;
+  background: #daeaf5;
+
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+.button-textxga {
+  color: #de7897;
+}
+.qrcode-dialo {
+  // text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.leftvlue .el-card__body {
+  background: #d0e9fd;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #8dc8f8;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.errleftvlue .el-card__body {
+  background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+  background: #f88d96;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+  background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+  background: #8df8a4;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+  font-weight: 500;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-xq {
+  font-weight: 500;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-sc {
+  font-weight: 500;
+  background-color: #b3a21f;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-zx {
+  background: #4fabe9;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+  span {
+    font-size: 24px;
+  }
+}
+.purple-button {
+  background-color: #7e22ce;
+  border-color: #7e22ce;
+  color: #fff;
+}
+
+.purple-button:hover,
+.purple-button:focus {
+  background-color: #9333ea;
+  border-color: #9333ea;
+}
+
+.purple-button:active {
+  background-color: #6b21a8;
+  border-color: #6b21a8;
+}
+
+.purple-button.is-disabled {
+  background-color: #d8b4fe;
+  border-color: #d8b4fe;
+  opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::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 ab2f5de..f0401bd 100644
--- a/src/views/followvisit/outpatient/index.vue
+++ b/src/views/followvisit/outpatient/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -739,7 +738,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1273,10 +1272,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index b4138dd..d6164c8 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -18,7 +18,7 @@
                 >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button
               >
             </div>
-            <div style="margin-left: 20px; color: #59a0f0">
+            <!-- <div style="margin-left: 20px; color: #59a0f0">
               <el-link
                 href="https://9.208.2.207:6060/search-homepage"
                 target="_blank"
@@ -26,7 +26,7 @@
               >
                 鍓嶅線CDSS鏌ヨ
               </el-link>
-            </div>
+            </div> -->
             <div class="merge-controls" v-if="Whetherall">
               <el-button
                 type="primary"
@@ -254,6 +254,7 @@
       />
     </el-dialog>
     <div class="action-container">
+      <!-- 闅忚鍐呭 -->
       <div class="call-action">
         <div class="call-container">
           <!-- <div class="call-header">
@@ -381,8 +382,18 @@
                           {{ index + 1 }}銆乕闂瓟]<span>{{
                             item.scriptContent
                           }}</span>
+                          <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
                         </div>
-                        <div class="dev-xx">
+                        <div class="dev-xx" v-if="item.valueType == 3">
+                          <el-input
+                            type="text"
+                            v-numeric-only
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                          >
+                          </el-input>
+                        </div>
+                        <div class="dev-xx" v-else>
                           <el-input
                             type="textarea"
                             :rows="2"
@@ -437,15 +448,25 @@
                       <div class="scriptTopic-dev" :key="index" v-else>
                         <div class="dev-text">
                           {{ index + 1 }}銆乕闂瓟]<span>{{
-                            item.questiontext
+                            item.scriptContent
                           }}</span>
+                          <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
                         </div>
-                        <div class="dev-xx">
+                        <div class="dev-xx" v-if="item.valueType == 3">
+                          <el-input
+                            type="text"
+                            v-numeric-only
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                          >
+                          </el-input>
+                        </div>
+                        <div class="dev-xx" v-else>
                           <el-input
                             type="textarea"
                             :rows="2"
                             placeholder="璇疯緭鍏ョ瓟妗�"
-                            v-model="item.matchedtext"
+                            v-model="item.scriptResult"
                             clearable
                           >
                           </el-input>
@@ -529,6 +550,7 @@
           </div>
         </div>
       </div>
+      <!-- 浜哄伐澶勭悊 -->
       <div class="manual-action">
         <div class="Followuserinfos">
           <div>
@@ -556,6 +578,46 @@
                     @click="sendAgain()"
                     >鍐嶆闅忚</el-button
                   >
+                </div>
+                <div class="tag-selector-container">
+                  <el-select
+                    v-model="selectedTag"
+                    placeholder="璇烽�夋嫨寮傚父鐘舵��"
+                    clearable
+                    style="width: 150px; margin-right: 10px"
+                  >
+                    <el-option
+                      v-for="item in tagOptions"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                      <span style="display: flex; align-items: center">
+                        <span
+                          class="color-indicator"
+                          :style="{ backgroundColor: item.color }"
+                        ></span>
+                        <span>{{ item.label }}</span>
+                      </span>
+                    </el-option>
+                  </el-select>
+
+                  <!-- 褰撳墠閫夋嫨鐨勯鑹叉寚绀哄櫒 -->
+                  <div
+                    v-if="selectedTag"
+                    class="color-indicator selected-indicator"
+                    :style="{ backgroundColor: getSelectedTagColor() }"
+                  ></div>
+
+                  <!-- 鏍囪璇存槑鎻愮ず -->
+                  <el-tooltip
+                    v-if="selectedTag"
+                    effect="light"
+                    :content="getSelectedDescription()"
+                    placement="top"
+                  >
+                    <i class="el-icon-info tag-info-icon"></i>
+                  </el-tooltip>
                 </div>
               </div>
               <el-row>
@@ -938,7 +1000,67 @@
     CallButton,
     MergeAndModify,
   },
+  directives: {
+    numericOnly: {
+      bind(el, binding, vnode) {
+        // 灏濊瘯鑾峰彇瀹為檯鐨刬nput鍏冪礌
+        const input = el.tagName === "INPUT" ? el : el.querySelector("input");
+        if (!input) {
+          console.warn("v-numeric-only: 鏈壘鍒癷nput鍏冪礌");
+          return;
+        }
 
+        const handleInput = function (event) {
+          const oldValue = input.value;
+          const newValue = oldValue.replace(/[^\d]/g, "");
+          if (newValue !== oldValue) {
+            input.value = newValue;
+            // 瑙﹀彂input浜嬩欢锛岄�氱煡v-model鏇存柊
+            input.dispatchEvent(new Event("input", { bubbles: true })); // 娉ㄦ剰bubbles
+          }
+        };
+
+        const handlePaste = function (event) {
+          event.preventDefault();
+          const clipboardData = event.clipboardData || window.clipboardData;
+          const pastedData = clipboardData.getData("text");
+          const numericValue = pastedData.replace(/[^\d]/g, "");
+
+          // 妯℃嫙鍦ㄥ厜鏍囦綅缃彃鍏ョ函鏁板瓧鏂囨湰
+          const start = input.selectionStart;
+          const end = input.selectionEnd;
+          input.value =
+            input.value.substring(0, start) +
+            numericValue +
+            input.value.substring(end);
+          // 璋冩暣鍏夋爣浣嶇疆
+          const newCursorPos = start + numericValue.length;
+          input.setSelectionRange(newCursorPos, newCursorPos);
+
+          // 瑙﹀彂input浜嬩欢
+          input.dispatchEvent(new Event("input", { bubbles: true }));
+        };
+
+        input.addEventListener("input", handleInput);
+        input.addEventListener("paste", handlePaste);
+
+        // 瀛樺偍寮曠敤浠ヤ究瑙g粦
+        el._numericOnly = {
+          inputHandle: handleInput,
+          pasteHandle: handlePaste,
+          inputEl: input,
+        };
+      },
+      unbind(el) {
+        if (el._numericOnly) {
+          const { inputHandle, pasteHandle, inputEl } = el._numericOnly;
+          inputEl.removeEventListener("input", inputHandle);
+          inputEl.removeEventListener("paste", pasteHandle);
+          delete el._numericOnly;
+        }
+      },
+    },
+  },
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
   data() {
     const validatePhone = (rule, value, callback) => {
@@ -976,6 +1098,30 @@
       isMergeMode: false,
       mergeDialogVisible: false,
       selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛�
+      selectedTag: "",
+      tagOptions: [
+        {
+          value: "0",
+          label: "姝e父",
+          type: "normal",
+          color: "#7ff5e1",
+          description: "鎮h�呮儏鍐垫甯革紝鏃犻渶鐗瑰埆鍏虫敞",
+        },
+        {
+          value: "1",
+          label: "寮傚父",
+          type: "abnormal",
+          color: "#f75c5c",
+          description: "鎮h�呭瓨鍦ㄥ紓甯告儏鍐碉紝闇�瑕侀噸鐐瑰叧娉�",
+        },
+        {
+          value: "2",
+          label: "璀﹀憡",
+          type: "warning",
+          color: "#fbfb4a",
+          description: "鎮h�呮儏鍐甸渶瑕佽鍛婃敞鎰忥紝鍙兘瀛樺湪椋庨櫓",
+        },
+      ],
       zcrules: {
         resource: [
           { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
@@ -1193,6 +1339,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+      return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1211,7 +1359,7 @@
     getuserinfo() {
       const queryParams = {
         pid: Number(this.patid),
-        allhosp: "0",
+        allhosp: "0", //1浣忛櫌2闂ㄨ瘖3浣撴4鍑洪櫌
       };
       // 鎮h�呭熀纭�淇℃伅
       messagelistpatient(queryParams).then((response) => {
@@ -1318,6 +1466,13 @@
       let excep = "";
       const promises = [];
       this.tableDatatop.forEach((item) => {
+        if (item.valueType == 3 && item.scriptResult) {
+          // 楠岃瘉鏄惁涓烘湁鏁堟暟瀛�
+          if (!/^\d+$/.test(item.scriptResult)) {
+            this.$message.error(`闂 "${item.scriptContent}" 蹇呴』杈撳叆鏁板瓧`);
+            return;
+          }
+        }
         var objs = item.svyLibTemplateTargetoptions.find(
           (items) => items.optioncontent == item.scriptResult
         );
@@ -1348,6 +1503,7 @@
           promises.push(serviceSubtaskDetailadd(obj));
         }
       });
+
       // 浣跨敤 Promise.all 绛夊緟鎵�鏈夊紓姝ユ搷浣滃畬鎴�
       Promise.all(promises)
         .then((results) => {
@@ -1591,6 +1747,7 @@
 
           this.logsheetlist = res.rows[0].serviceSubtaskList;
           this.templateid = this.logsheetlist[0].templateid;
+          this.selectedTag = this.logsheetlist[0].excep;
           const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡
           const now = new Date(); // 褰撳墠鏃堕棿
           if (now < targetDate && this.form.sendstate == 2) {
@@ -1668,6 +1825,7 @@
             (item) => item.id == this.id
           );
           objson.remark = this.form.remark;
+          objson.excep = this.selectedTag;
           if (sendstate) objson.sendstate = sendstate;
           Editsingletaskson(objson).then((res) => {
             if (res.code) {
@@ -1692,6 +1850,30 @@
       }
       return "";
     },
+    getSelectedTagType() {
+      if (!this.selectedTag) return "";
+      const tag = this.tagOptions.find(
+        (item) => item.value === this.selectedTag
+      );
+      return tag ? tag.type : "";
+    },
+
+    getSelectedTagColor() {
+      if (!this.selectedTag) return "";
+      const tag = this.tagOptions.find(
+        (item) => item.value === this.selectedTag
+      );
+      return tag ? tag.color : "";
+    },
+
+    getSelectedDescription() {
+      if (!this.selectedTag) return "";
+      const tag = this.tagOptions.find(
+        (item) => item.value === this.selectedTag
+      );
+      return tag ? tag.description : "";
+    },
+
     // 璋冭捣鍐嶆鍙戦��
     sendAgain() {
       document.querySelector("#app").scrollTo(0, 0);
@@ -1998,7 +2180,22 @@
     height: 100%; /* 纭繚楂樺害缁ф壙 */
   }
 }
+.numeric-input {
+  position: relative;
+}
 
+.numeric-input::after {
+  content: "鍙兘杈撳叆鏁板瓧";
+  position: absolute;
+  right: 8px;
+  top: 50%;
+  transform: translateY(-50%);
+  font-size: 12px;
+  color: #999;
+  background: #f5f5f5;
+  padding: 2px 6px;
+  border-radius: 4px;
+}
 .call-container {
   padding: 20px;
   background: #fff;
@@ -2241,7 +2438,54 @@
     top: 0;
   }
 }
+.tag-selector-container {
+  display: flex;
+  align-items: center;
+  margin: 0 30px;
+}
 
+.color-indicator {
+  width: 16px;
+  height: 16px;
+  border-radius: 3px;
+  margin-right: 8px;
+  display: inline-block;
+}
+
+.selected-indicator {
+  margin-left: 10px;
+  width: 20px;
+  height: 20px;
+}
+
+.tag-info-icon {
+  margin-left: 10px;
+  color: #909399;
+  cursor: pointer;
+  font-size: 16px;
+}
+
+/* 纭繚閫夋嫨鍣ㄩ�夐」涓篃鏄剧ず棰滆壊鍧� */
+.el-select-dropdown__item {
+  display: flex;
+  align-items: center;
+}
+
+.tag-normal {
+  background-color: #7ff5e1;
+}
+.tag-abnormal {
+  background-color: #f75c5c;
+}
+.tag-warning {
+  background-color: #fbfb4a;
+}
+
+.tag-info {
+  margin-left: 10px;
+  color: #909399;
+  cursor: pointer;
+}
 ::v-deep.offside-value .el-radio__label {
   color: #fff;
 }
@@ -2291,4 +2535,189 @@
   color: #080808 !important;
   cursor: not-allowed;
 }
+/* 鍘熸湁鐨勬牱寮忎繚鎸佷笉鍙橈紝娣诲姞浠ヤ笅鍝嶅簲寮忎唬鐮� */
+
+.Followupdetailspage {
+  margin: 10px;
+  display: flex;
+  flex-direction: column;
+  gap: 20px;
+}
+
+.action-container {
+  display: flex;
+  flex-direction: row; /* 榛樿妯悜鎺掑垪 */
+  gap: 20px;
+  margin: 0 10px 20px 10px;
+
+  /* 褰撶缉鏀炬瘮渚嬪ぇ浜�100%鎴栧睆骞曞搴﹁緝灏忔椂鏀逛负涓婁笅鎺掑垪 */
+  @media screen and (max-width: 1200px), (min-resolution: 1.1dppx) {
+    flex-direction: column;
+
+    .call-action, .manual-action {
+      width: 100% !important;
+    }
+  }
+}
+
+.call-action {
+  width: 65%;
+  min-width: 0;
+}
+
+.manual-action {
+  flex: 1;
+  min-width: 0;
+}
+
+/* 璋冩暣鍐呴儴鍏冪礌鐨勫搷搴斿紡甯冨眬 */
+.Followuserinfos {
+  .el-form {
+    /* 琛ㄥ崟鍝嶅簲寮忚皟鏁� */
+    .el-row {
+      margin: 0 -10px;
+    }
+
+    .el-col {
+      padding: 0 10px;
+    }
+
+    @media screen and (max-width: 768px) {
+      .el-col {
+        width: 100%;
+        margin-bottom: 15px;
+
+        &:last-child {
+          margin-bottom: 0;
+        }
+      }
+    }
+  }
+}
+
+/* 璋冩暣琛ㄦ牸鐨勫搷搴斿紡琛ㄧ幇 */
+.el-table {
+  ::v-deep .el-table__body-wrapper {
+    overflow-x: auto;
+  }
+
+  /* 鍦ㄥ皬灞忓箷涓婅皟鏁磋〃鏍煎垪瀹� */
+  @media screen and (max-width: 992px) {
+    .el-table-column {
+      min-width: 120px;
+    }
+  }
+}
+
+/* 璋冩暣鏍囩閫夋嫨鍣ㄧ殑鍝嶅簲寮忓竷灞� */
+.tag-selector-container {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  gap: 10px;
+
+  @media screen and (max-width: 576px) {
+    flex-direction: column;
+    align-items: flex-start;
+
+    .el-select {
+      width: 100%;
+      margin-right: 0 !important;
+    }
+  }
+}
+
+/* 璋冩暣鎸夐挳缁勭殑鍝嶅簲寮忓竷灞� */
+.el-form-item.label-processing-opinion {
+  .el-button-group {
+    display: flex;
+    flex-wrap: wrap;
+    gap: 10px;
+
+    .el-button {
+      flex: 1;
+      min-width: 120px;
+    }
+  }
+}
+
+/* 璋冩暣閫夐」鍗$殑鍝嶅簲寮忚〃鐜� */
+.el-tabs {
+  ::v-deep .el-tabs__nav-wrap {
+    overflow-x: auto;
+    white-space: nowrap;
+
+    &::after {
+      display: none;
+    }
+  }
+}
+
+/* 璋冩暣棰勮鍖哄煙鐨勫搷搴斿紡琛ㄧ幇 */
+.preview-left {
+  @media screen and (max-width: 768px) {
+    margin: 10px;
+    padding: 15px;
+
+    .topic-dev, .scriptTopic-dev {
+      margin-bottom: 15px;
+    }
+  }
+}
+
+/* 璋冩暣瀵硅瘽妗嗙殑鍝嶅簲寮忚〃鐜� */
+.el-dialog {
+  @media screen and (max-width: 992px) {
+    width: 90% !important;
+    margin-top: 5vh !important;
+
+    .el-dialog__body {
+      padding: 15px;
+    }
+  }
+
+  @media screen and (max-width: 576px) {
+    width: 95% !important;
+
+    .el-form-item {
+      margin-bottom: 15px;
+    }
+  }
+}
+
+/* 纭繚鍐呭鍦ㄧ缉鏀炬椂淇濇寔鍙鎬� */
+.headline {
+  font-size: clamp(18px, 2vw, 24px); /* 浣跨敤clamp鍑芥暟纭繚瀛椾綋澶у皬鍦ㄥ悎鐞嗚寖鍥村唴 */
+}
+
+/* 涓虹Щ鍔ㄨ澶囦紭鍖栨粴鍔ㄤ綋楠� */
+@media screen and (max-width: 768px) {
+  .Followuserinfo, .Followuserinfos {
+    padding: 15px;
+    margin: 5px;
+  }
+
+  .CONTENT {
+    min-height: auto;
+    padding: 5px;
+  }
+}
+
+/* 缂╂斁妫�娴嬫牱寮� */
+@media screen and (min-resolution: 1.1dppx),
+       screen and (-webkit-min-device-pixel-ratio: 1.1),
+       screen and (max-width: 1200px) {
+  .action-container {
+    flex-direction: column;
+  }
+
+  .call-action, .manual-action {
+    width: 100%;
+  }
+
+  /* 璋冩暣鍐呴儴鍏冪礌闂磋窛 */
+  .call-container, .Followuserinfos {
+    margin-bottom: 20px;
+  }
+}
 </style>
diff --git a/src/views/followvisit/record/index.vue b/src/views/followvisit/record/index.vue
index 6192c55..ea82ed8 100644
--- a/src/views/followvisit/record/index.vue
+++ b/src/views/followvisit/record/index.vue
@@ -149,8 +149,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -863,7 +862,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1080,6 +1079,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1585,10 +1586,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/followvisit/record/physical/index.vue b/src/views/followvisit/record/physical/index.vue
index 53ca223..2d1a0f8 100644
--- a/src/views/followvisit/record/physical/index.vue
+++ b/src/views/followvisit/record/physical/index.vue
@@ -18,7 +18,7 @@
                 >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button
               >
             </div>
-            <div style="margin-left: 20px; color: #59a0f0">
+            <!-- <div style="margin-left: 20px; color: #59a0f0">
               <el-link
                 href="https://9.208.2.207:6060/search-homepage"
                 target="_blank"
@@ -26,7 +26,7 @@
               >
                 鍓嶅線CDSS鏌ヨ
               </el-link>
-            </div>
+            </div> -->
           </div>
           <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> -->
         </div>
@@ -692,6 +692,8 @@
 
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 5143c6f..ef08e2f 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -250,8 +250,15 @@
               size="medium"
               type="text"
               @click="handleUpdate(scope.row, 1)"
-              ><span class="button-xj"
-                ><i class="el-icon-circle-plus-outline"></i>渚濈収鏂板</span
+              ><span class="button-xj">渚濈収鏂板</span></el-button
+            >
+            <el-button
+              v-if="scope.row.sendState != 5"
+              size="medium"
+              type="text"
+              @click="handleAddpatient(scope.row.taskid, scope.row.type)"
+              ><span class="button-hz"
+                ><i class="el-icon-circle-plus-outline"></i>鏂板鎮h��</span
               ></el-button
             >
             <el-button
@@ -259,9 +266,7 @@
               size="medium"
               type="text"
               @click="stop(scope.row)"
-              ><span class="button-zt"
-                ><i class="el-icon-circle-plus-outline"></i>鏆傚仠</span
-              ></el-button
+              ><span class="button-zt">鏆傚仠</span></el-button
             >
           </template>
         </el-table-column>
@@ -373,6 +378,13 @@
         >
       </div>
     </el-dialog>
+    <!-- 閫夋嫨鎮h�呭脊妗� -->
+    <Patient-Selection
+      ref="Patient"
+      :dialogVisiblepatient="dialogVisiblepatient"
+      @addoption="addoption"
+      @kkoption="dialogVisiblepatient = true"
+    />
   </div>
 </template>
 
@@ -387,23 +399,19 @@
 } from "@/api/system/user";
 import {
   getTasklist,
-  getTaskInfo,
-  Editsingletask,
   delTaskInfo,
-  Questionnairetasklist,
-  Questionnairetaskget,
-  Questionnairetasksponsor,
   TaskTemplateSendExecution,
 } from "@/api/AiCentre/index";
 import store from "@/store";
-
+import PatientSelection from "@/components/PatientSelection"; //姝e垯缁勪欢
+import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "Tasklist",
   dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
-  components: { Treeselect },
+  components: { Treeselect, PatientSelection },
   data() {
     return {
       // 閬僵灞�
@@ -441,6 +449,8 @@
         showTimeNight: [],
         showTimeNoon: [],
       },
+      dialogVisiblepatient: false,
+      Patientlist: [],
       taskformVisible: false,
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
@@ -474,61 +484,8 @@
           label: "娑堟伅閫氱煡",
         },
       ],
-      taskoptions: [
-        {
-          value: "1",
-          label: "鐩戞祴璇勪及",
-        },
-        {
-          value: "2",
-          label: "鍑洪櫌闅忚",
-        },
-        {
-          value: "3",
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: "4",
-          label: "瀹f暀鍏虫��",
-        },
-        {
-          value: "5",
-          label: "澶嶈瘖绠$悊",
-        },
-        // {
-        //   value: "5",
-        //   label: "婊℃剰搴﹁皟鏌�",
-        // },
-        {
-          value: "7",
-          label: "鎮h�呮姤鍛�",
-        },
-        // {
-        //   value: "8",
-        //   label: "鍏朵粬閫氱煡",
-        // },
-        {
-          value: "9",
-          label: "浣撴闅忚",
-        },
-        // {
-        //   value: "10",
-        //   label: "鍖绘妧闅忚",
-        // },
-        {
-          value: "11",
-          label: "褰卞儚闅忚",
-        },
-        {
-          value: "12",
-          label: "蹇冪數闅忚",
-        },
-        {
-          value: "13",
-          label: "涓撶梾闅忚",
-        },
-      ],
-      tasktopic: "2", //鏂板绫诲瀷
+      taskoptions: store.getters.tasktypes,
+      tasktopic: 2, //鏂板绫诲瀷
       activname: "",
       value: [],
       list: [],
@@ -719,6 +676,7 @@
         this.tasktopic == 3 ||
         this.tasktopic == 1 ||
         this.tasktopic == 7 ||
+        this.tasktopic == 5 ||
         this.tasktopic == 6
       ) {
         if (!this.topqueryParams.type) this.topqueryParams.type = "2";
@@ -732,7 +690,7 @@
             label: "闂嵎闅忚",
           },
         ];
-        this.topqueryParams.type=2;
+        this.topqueryParams.type = 2;
       } else if (this.tasktopic == 4 || this.tasktopic == 8) {
         if (!this.topqueryParams.type) this.topqueryParams.type = "3";
         this.longtermlist = [
@@ -741,9 +699,9 @@
             label: "瀹f暀鍏虫��",
           },
         ];
-        this.topqueryParams.type=3;
-      } else if (this.tasktopic == 5) {
-        if (!this.topqueryParams.type) this.topqueryParams.type = "1";
+        this.topqueryParams.type = 3;
+      } else if (this.tasktopic == 16) {
+        if (!this.topqueryParams.type) this.topqueryParams.type = "2";
         this.longtermlist = [
           {
             value: 1,
@@ -753,7 +711,12 @@
             value: 2,
             label: "闂嵎闅忚",
           },
+          {
+            value: 3,
+            label: "瀹f暀鍏虫��",
+          },
         ];
+        this.topqueryParams.type = 2;
       }
       this.topqueryParams.beginTime = this.dateRange[0];
       this.topqueryParams.endTime = this.dateRange[1];
@@ -1088,6 +1051,14 @@
       const item = data.find((item) => item.value === value);
       return item ? item.label : null;
     },
+    handleAddpatient(taskid) {
+      this.$refs.Patient.handleAddpatient(taskid);
+      this.dialogVisiblepatient = true; // 鎵嬪姩鎺у埗寮圭獥鏄剧ず
+    },
+    addoption() {
+      this.dialogVisiblepatient = false; // 鎵嬪姩鎺у埗寮圭獥鏄剧ず
+      this.handleQuery();
+    },
   },
 };
 </script>
@@ -1217,6 +1188,12 @@
   border-radius: 1px;
   color: #ffffff;
 }
+.button-hz {
+  background: #63d37b;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
 
 ::v-deep.el-radio-group {
   span {
diff --git a/src/views/followvisit/technology/index.vue b/src/views/followvisit/technology/index.vue
index dde2ab3..a84cb2c 100644
--- a/src/views/followvisit/technology/index.vue
+++ b/src/views/followvisit/technology/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -807,7 +806,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1092,6 +1091,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh,drcode,drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC=='涓芥按甯備腑鍖婚櫌') {
         this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728';
@@ -1521,10 +1522,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/followvisit/zbAgain/index.vue b/src/views/followvisit/zbAgain/index.vue
index fa4c662..388409a 100644
--- a/src/views/followvisit/zbAgain/index.vue
+++ b/src/views/followvisit/zbAgain/index.vue
@@ -180,8 +180,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -918,7 +917,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
         {
@@ -1416,6 +1415,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1762,10 +1763,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
@@ -1810,7 +1813,9 @@
   border-radius: 1px;
   color: #ffffff;
 }
-
+.button-textxga {
+  color: #de7897;
+}
 ::v-deep.el-radio-group {
   span {
     font-size: 24px;
diff --git a/src/views/followvisit/zysatisfaction/index.vue b/src/views/followvisit/zysatisfaction/index.vue
new file mode 100644
index 0000000..5beee71
--- /dev/null
+++ b/src/views/followvisit/zysatisfaction/index.vue
@@ -0,0 +1,1969 @@
+<template>
+  <div class="app-container">
+    <div class="leftvlue" style="margin-bottom: 20px">
+      <el-row :gutter="10">
+        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+          <el-card
+            shadow="hover"
+            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+          >
+            <div style="padding: 8px" @click="$router.push(item.router)">
+              <span>{{ item.name }}</span>
+              <div
+                style="
+                  text-align: center;
+                  font-size: 18px;
+                  margin-top: 10px;
+                  font-weight: 600;
+                "
+              >
+                {{ item.value ? item.value : 0 }}
+              </div>
+            </div>
+          </el-card>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="ysfleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>琛ㄥ崟宸插彂閫�</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ yfsvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+        <el-col :span="2.5">
+          <div class="errleftvlue">
+            <el-card shadow="hover">
+              <div style="padding: 8px">
+                <span>寮傚父</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ ycvalue }}
+                </div>
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <el-row :gutter="20">
+      <!--鐢ㄦ埛鏁版嵁-->
+      <el-form
+        :model="topqueryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="98px"
+      >
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-date-picker
+            v-model="dateRange"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+
+
+        <el-form-item label="鎮h�呭鍚�" prop="sendname">
+          <el-input
+            v-model="topqueryParams.sendname"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+          <el-input
+            v-model="topqueryParams.leavediagname"
+            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+          <el-input
+            v-model="topqueryParams.updateBy"
+            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="涓绘不鍖荤敓" prop="drname">
+          <el-input
+            v-model="topqueryParams.drname"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+          <el-input
+            v-model="topqueryParams.managementDoctor"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鎮h�呰寖鍥�" prop="status">
+          <el-cascader
+            v-model="topqueryParams.scopetype"
+            placeholder="榛樿鍏ㄩ儴"
+            :options="sourcetype"
+            :props="{ expandTrigger: 'hover' }"
+            @change="handleChange"
+          ></el-cascader>
+        </el-form-item>
+
+        <el-form-item label="浠诲姟鐘舵��" prop="status">
+          <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+          <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptionssort"
+              :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(1)"
+            >鎼滅储</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">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-upload2"
+                size="medium"
+                @click="handleExport"
+                >瀵煎嚭</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+                        icon="el-icon-plus"
+            size="medium"
+            @click="handleAdd"
+            >鏂板</el-button
+          >
+        </el-col>
+
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-warning-outline"
+                size="medium"
+                @click="toleadExport(1)"
+                >鎵ц澶辫触</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-warning"
+                size="medium"
+                @click="toleadExport(2)"
+                >缁撴灉寮傚父</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="success"
+                plain
+                size="medium"
+                @click="buidegetTasklist()"
+                >寰呭姙鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="primary"
+                plain
+                size="medium"
+                @click="affiliation()"
+                >鏈汉鎵�灞炴湇鍔�</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button type="success" size="medium" @click="onthatday()"
+                >褰撴棩鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+
+      </el-row>
+      <el-table
+        v-loading="loading"
+        ref="userform"
+        :data="userList"
+        :row-class-name="tableRowClassName"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="50" align="center" />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          fixed
+          width="150"
+          show-overflow-tooltip
+          align="center"
+          key="taskName"
+          prop="taskName"
+        />
+        <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          key="sendname"
+          prop="sendname"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              @click="
+                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+              "
+              ><span class="button-textsc">{{
+                scope.row.sendname
+              }}</span></el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="浠诲姟鐘舵��"
+          align="center"
+          key="sendstate"
+          prop="sendstate"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+            >
+              <div v-if="scope.row.sendstate == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >琛ㄥ崟宸查鍙�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 2">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 3">
+                <el-tag type="success" :disable-transitions="false"
+                  >琛ㄥ崟宸插彂閫�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 4">
+                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="scope.row.sendstate == 5">
+                <el-tag type="danger" :disable-transitions="false"
+                  >鍙戦�佸け璐�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 6">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟寮傚父璇存槑"
+          width="120"
+          align="center"
+          key="remark"
+          prop="remark" -->
+        />
+
+        <el-table-column
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="闅忚瀹屾垚鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.finishtime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑洪櫌鏃ユ湡"
+          width="200"
+          align="center"
+          key="endtime"
+          prop="endtime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          width="120"
+          align="center"
+          key="drname"
+          prop="drname"
+        />
+        <el-table-column
+          label="闅忚浜哄憳"
+          align="center"
+          key="updateBy"
+          prop="updateBy"
+          width="120"
+        />
+        <el-table-column
+          label="缁忕鍖荤敓"
+          align="center"
+          key="managementDoctor"
+          prop="managementDoctor"
+          width="120"
+        />
+        <el-table-column
+          label="鍑洪櫌澶╂暟"
+          width="120"
+          align="center"
+          key="endDay"
+          prop="endDay"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+        <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          width="200"
+          align="center"
+          key="phone"
+          prop="phone"
+        />
+        <el-table-column
+          label="璐d换鎶ゅ+"
+          width="120"
+          align="center"
+          key="nurseName"
+          prop="nurseName"
+        />
+
+        <!-- <el-table-column
+          label="鐥呭巻鍙�"
+          align="center"
+          sortable
+          key="medicalRecordNo"
+          prop="medicalRecordNo"
+          width="120"
+        /> -->
+
+        <!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
+        <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+        <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+        <el-table-column
+          label="绉戝"
+          align="center"
+          key="deptname"
+          prop="deptname"
+          width="120"
+        >
+        </el-table-column>
+        <el-table-column
+          label="鐥呭尯"
+          align="center"
+          key="leavehospitaldistrictname"
+          prop="leavehospitaldistrictname"
+          width="120"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="璇婃柇鍚嶇О"
+          align="center"
+          key="leavediagname"
+          prop="leavediagname"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="浣忛櫌婊℃剰搴︽ā鏉垮悕绉�"
+          align="center"
+          key="templatename"
+          prop="templatename"
+          width="200"
+        />
+        <el-table-column
+          label="浠诲姟鎵ц鏂瑰紡"
+          align="center"
+          key="preachform"
+          prop="preachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column
+          label="浠诲姟鍙戦�佹祦绋�"
+          align="center"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="浠诲姟缁撴灉璇存槑"
+          width="220"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tooltip
+              :content="scope.row.remark"
+              placement="top"
+              effect="dark"
+            >
+              <el-tag
+                type="warning"
+                v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+                >{{ scope.row.remark }}</el-tag
+              >
+              <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          fixed="right"
+          width="300"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <!-- <el-tooltip
+              class="item"
+              effect="dark"
+              content="鍐嶆闅忚"
+              placement="top"
+            >
+              <el-button
+                size="medium"
+                type="text"
+                v-if="scope.row.isVisitAgain!=2"
+                @click="followupvisit(scope.row)"
+                ><span class="button-bb"
+                  ><i class="el-icon-s-promotion"></i>鍐嶆闅忚</span
+                ></el-button
+              >
+            </el-tooltip>
+            <el-tooltip
+              v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2"
+              class="item"
+              effect="dark"
+              content="鏆傚仠鏈嶅姟"
+              placement="top"
+            >
+              <el-button
+                size="medium"
+                type="text"
+                @click="handlestop(scope.row)"
+                v-hasPermi="['system:user:edit']"
+                ><span class="button-sc"
+                  ><i class="el-icon-remove-outline"></i>鏆傚仠鏈嶅姟</span
+                ></el-button
+              >
+            </el-tooltip> -->
+            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+              ><span class="button-zx"
+                ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+              ></el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row)"
+              ><span class="button-textxga"
+                ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+              ></el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="topqueryParams.pageNum"
+        :limit.sync="topqueryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-row>
+    <!-- 婊℃剰搴﹀脊妗� -->
+    <el-dialog
+      title="闅忚婊℃剰搴﹁瘎鍒�"
+      :visible.sync="scoreDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <el-table :data="selectedRows" border style="width: 100%">
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          prop="sendname"
+        />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          width="180"
+          align="center"
+          prop="taskName"
+        />
+        <!-- 鏂板璇勫垎鍒� -->
+        <el-table-column
+          label="鐪熷疄鎬�(20)"
+          align="center"
+          key="authenticity"
+          prop="authenticity"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.authenticity"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓�鍛ㄥ唴瀹屾垚(20)"
+          align="center"
+          key="weekFinish"
+          prop="weekFinish"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.weekFinish"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瑙勮寖鎬�(10)"
+          align="center"
+          key="standard"
+          prop="standard"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.standard"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍙婃椂鎬�(10)"
+          align="center"
+          key="timeliness"
+          prop="timeliness"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.timeliness"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瀹f暀鎯呭喌(10)"
+          align="center"
+          key="library"
+          prop="library"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.library"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鐜婊℃剰搴�(10)"
+          align="center"
+          key="environment"
+          prop="environment"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.environment"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍖荤敓婊℃剰搴�(10)"
+          align="center"
+          key="doctorSatisfaction"
+          prop="doctorSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.doctorSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎶ゅ+婊℃剰搴�(10)"
+          align="center"
+          key="nurseSatisfaction"
+          prop="nurseSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.nurseSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎬诲垎"
+          align="center"
+          key="total"
+          prop="total"
+          fixed="right"
+        >
+          <template slot-scope="scope">
+            <span>{{ calculateTotal(scope.row) }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
+    <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+    <el-dialog
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" width="100" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" width="100" prop="sex">
+              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+                <el-option
+                  v-for="dict in sextype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row >
+          <el-col :span="8">
+            <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+              <el-input
+                v-model="form.filterDrname"
+                placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+    <el-dialog
+      title="鍙戦�佹椂闂磋缃�"
+      :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>
+
+<script>
+import {
+  delUser,
+  addUser,
+  updateUser,
+  resetUserPwd,
+  changeUserStatus,
+} from "@/api/system/user";
+import {
+  getTaskservelist,
+  buidegetTasklist,
+  addserviceSubtask,
+  query360PatInfo,
+  addsatisfaction,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Discharge",
+  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+  components: { Treeselect },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鏂板褰卞儚闅忚",
+      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+      addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      dateRangefs: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      ruleForm: {
+        type: [],
+      },
+      zcform: {},
+      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+      inputVisible: false,
+      Labelchange: false,
+      ycvalue: "",
+      yfsvalue: "",
+      inputValue: "",
+      preachform: "",
+      previewVisible: false, //褰卞儚闅忚棰勮寮规
+      radio: "",
+      radios: [],
+      previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+      total: 0, // 鎬绘潯鏁�
+      // 婊℃剰搴﹁皟鏌ユ暟鎹�
+      scoreDialogVisible: false,
+      selectedRows: [],
+
+      value: [],
+      list: [],
+
+      sourcetype: [
+        {
+          value: 1,
+          label: "绉戝",
+          children: [],
+        },
+        {
+          value: 2,
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
+        },
+      ],
+      loading: false,
+      cardlist: [
+        {
+          name: "鏈嶅姟鎬婚噺",
+          value: 0,
+        },
+        // {
+        //   name: "鎮h�呰繃婊�",
+        //   value: 0,
+        // },
+        {
+          name: "闇�闅忚",
+          value: 0,
+        },
+        {
+          name: "鍙戦�佸け璐�",
+          value: 0,
+        },
+        {
+          name: "寰呴殢璁�",
+          value: 0,
+        },
+        // {
+        //   name: "宸插彂閫�",
+        //   value: 0,
+        // },
+
+        // {
+        //   name: "琛ㄥ崟宸插彂閫�",
+        //   value: 0,
+        // },
+      ],
+      zcrules: {
+        date1: [
+          { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+        ],
+        resource: [
+          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+        ],
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        phonenumber: "",
+        totagid: "",
+        types: "",
+        nickName: "",
+        qystatus: "",
+        btstatus: "",
+      },
+      topicoptionssort: [
+        {
+          value: 0,
+          label: "鍑洪櫌鏃堕棿(姝e簭)",
+        },
+        {
+          value: 1,
+          label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+        },
+        {
+          value: 2,
+          label: "鍙戦�佹椂闂�(姝e簭)",
+        },
+        {
+          value: 3,
+          label: "鍙戦�佹椂闂�(鍊掑簭)",
+        },
+      ],
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 6,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      },
+      propss: { multiple: true },
+      options: [],
+
+      topicoptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 1,
+          label: "琛ㄥ崟宸查鍙�",
+        },
+        {
+          value: 2,
+          label: "寰呴殢璁�",
+        },
+        {
+          value: 3,
+          label: "琛ㄥ崟宸插彂閫�",
+        },
+        {
+          value: 4,
+          label: "涓嶆墽琛�",
+        },
+        {
+          value: 5,
+          label: "鍙戦�佸け璐�",
+        },
+        {
+          value: 6,
+          label: "宸插畬鎴�",
+        },
+      ],
+      sextype: [
+        {
+          value: 1,
+          label: "鐢�",
+        },
+        {
+          value: 2,
+          label: "濂�",
+        },
+      ],
+      topicoptionsyj: [
+        {
+          value: 1,
+          label: "寮傚父",
+        },
+        {
+          value: 0,
+          label: "姝e父",
+        },
+      ],
+      url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: "1400466972205912064",
+            YongHuXM: "JNRMYY",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
+      amendtag: false,
+      errtype: "",
+      leavehospitaldistrictcode: "",
+      serviceState: [],
+      checkboxlist: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {},
+    };
+  },
+  watch: {},
+  created() {
+    this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+    this.errtype = this.$route.query.errtype;
+    this.leavehospitaldistrictcode =
+      this.$route.query.leavehospitaldistrictcode;
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
+    if (this.errtype) {
+      this.toleadExport(2);
+    } else {
+      this.getList(1);
+    }
+    this.getConfigKey("sys.user.initPassword").then((response) => {
+      this.initPassword = response.msg;
+    });
+  },
+  activated() {
+    this.getList(1);
+  },
+  methods: {
+    /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+    getList(refresh) {
+      // 榛樿鍏ㄩ儴
+
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+      }
+      this.loading = true;
+      if (
+        this.topqueryParams.leavehospitaldistrictcodes[0] &&
+        this.topqueryParams.leaveldeptcodes[0]
+      ) {
+        this.topqueryParams.deptOrDistrict = 2;
+      } else {
+        this.topqueryParams.deptOrDistrict = 1;
+      }
+      getTaskservelist(this.topqueryParams).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          // this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[1].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[2].value = response.rows[0].fssb;
+          this.cardlist[3].value = response.rows[0].dsf;
+          // this.cardlist[4].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    affiliation() {
+      this.topqueryParams.drcode = store.getters.hisUserId;
+      this.topqueryParams.nurseId = store.getters.hisUserId;
+      this.topqueryParams.managementDoctor = store.getters.name;
+      this.getList(1);
+    },
+    onthatday() {
+      this.topqueryParams.startSendDateTime = this.getCurrentDate();
+      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.getList(1);
+    },
+    getCurrentDate() {
+      const now = new Date();
+      return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+    },
+    buidegetTasklist(type) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+      }
+      let obj = {
+        pageNum: 1,
+        pageSize: 10,
+        leavehospitaldistrictcodes:
+          this.topqueryParams.leavehospitaldistrictcodes,
+        sendstates: [2, 3],
+        leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+      };
+      buidegetTasklist(obj).then((response) => {
+        this.userList = response.rows[0].serviceSubtaskList;
+        this.total = response.total;
+        if (refresh) {
+          this.cardlist[0].value =
+            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dsf;
+          // this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              item.preachformson = item.preachform;
+              idArray = item.preachform.split(",");
+            }
+
+            item.preachform = idArray.map((value) => {
+              // 鏌ユ壘id瀵瑰簲鐨勫璞�
+              const item = this.checkboxlist.find(
+                (item) => item.value == value
+              );
+              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+              return item ? item.label : null;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+    Referencequestion(row) {
+      this.previewVisible = true;
+    },
+    // 娣诲姞寮规鎼滅储
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.options = this.list.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.options = [];
+      }
+    },
+    // 褰卞儚闅忚鐘舵�佷慨鏀�
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+      this.$modal
+        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+        .then(function () {
+          return changeUserStatus(row.userId, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "鎴愬姛");
+        })
+        .catch(function () {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+
+    // 琛ㄥ崟閲嶇疆
+    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(refresh) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      this.topqueryParams.pageNum = 1;
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+      this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+      this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      this.getList(refresh);
+    },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.topqueryParams.leavehospitaldistrictcodes = [];
+      this.topqueryParams.leaveldeptcodes = [];
+      if (type == 1) {
+        this.topqueryParams.leaveldeptcodes.push(code);
+        this.topqueryParams.leavehospitaldistrictcodes = [];
+        this.topqueryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(code);
+        this.topqueryParams.leaveldeptcodes = [];
+        this.topqueryParams.searchscope = 2;
+      } else {
+        this.topqueryParams.searchscope = 3;
+      }
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sendstate: 6,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 6,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
+      this.handleQuery(1);
+    },
+    handleSelectionChange(rows) {
+      this.selectedRows = rows.map((row) => {
+        // 鍒濆鍖栬瘎鍒嗗瓧娈�
+        return {
+          ...row,
+          authenticity: row.authenticity || 0,
+          weekFinish: row.weekFinish || 0,
+          standard: row.standard || 0,
+          timeliness: row.timeliness || 0,
+          library: row.library || 0,
+          environment: row.environment || 0,
+          doctorSatisfaction: row.doctorSatisfaction || 0,
+          nurseSatisfaction: row.nurseSatisfaction || 0,
+        };
+      });
+
+      if (this.selectedRows.length > 0) {
+        this.multiple = false;
+      } else {
+        this.multiple = true;
+      }
+    },
+
+    // 璁$畻鎬诲垎
+    calculateTotal(row) {
+      return (
+        (row.authenticity || 0) +
+        (row.weekFinish || 0) +
+        (row.standard || 0) +
+        (row.timeliness || 0) +
+        (row.library || 0) +
+        (row.environment || 0) +
+        (row.doctorSatisfaction || 0) +
+        (row.nurseSatisfaction || 0)
+      );
+    },
+
+    // 淇濆瓨璇勫垎
+    saveScores() {
+      this.selectedRows.forEach((item) => {
+        item.createBy = null;
+        item.patName = item.sendname;
+        item.hospitaldistrictname = item.leavehospitaldistrictname;
+      });
+      addsatisfaction(this.selectedRows).then((res) => {
+        if (res.code == 200) {
+          this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+          this.scoreDialogVisible = false;
+          this.selectedRows=[];
+          this.$refs.userform.clearSelection()
+        } else {
+          this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+          this.scoreDialogVisible = false;
+          this.selectedRows=[];
+          this.$refs.userform.clearSelection()
+        }
+      });
+      // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
+    },
+    //鍒犻櫎閫夐」
+    handleClose(tag) {
+      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    },
+    //瑙﹀彂鏂板杈撳叆
+    showInput() {
+      this.inputVisible = true;
+      this.$nextTick((_) => {
+        this.$refs.saveTagInput.$refs.input.focus();
+      });
+    },
+    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+    handleInputConfirm() {
+      let inputValue = this.inputValue;
+      if (inputValue) {
+        this.dynamicTags.push(inputValue);
+      }
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/followvisit/QuestionnaireTask",
+        query: {
+          type: 2,
+          serviceType: 6,
+        },
+      });
+    },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+      if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
+        this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
+        this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
+      }
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
+
+    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+    handleResetPwd(row) {
+      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        closeOnClickModal: false,
+        inputPattern: /^.{5,20}$/,
+        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+      })
+        .then(({ value }) => {
+          resetUserPwd(row.userId, value).then((response) => {
+            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+          });
+        })
+        .catch(() => {});
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.form.isoperation = 2;
+          this.form.notrequiredFlag = 1;
+          alterpatient(this.form)
+            .then((response) => {
+              console.log(response);
+            })
+            .then(() => {
+              this.getList(1);
+              this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+            });
+
+          this.reset();
+          this.Labelchange = false;
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delUser(userIds);
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails(row) {
+      let type = "";
+      console.log(row, "rwo");
+      if (row.preachformson) {
+        if (row.preachformson.includes("3")) {
+          type = 1;
+        }
+      }
+      this.$router.push({
+        path: "/followvisit/record/detailpage/",
+        query: {
+          taskid: row.taskid,
+          patid: row.patid,
+          id: row.id,
+          Voicetype: type,
+          visitCount: this.topqueryParams.visitCount,
+        },
+      });
+    },
+
+    onSubmit() {},
+    // 鏆傚仠鏈嶅姟
+    handlestop(row) {
+      let objson = row;
+      this.$modal
+        .confirm(
+          '鏄惁纭鏆傚仠浠诲姟鍚嶇О涓�"' +
+            row.taskName +
+            '鎮h�呭悕绉颁负"' +
+            row.sendname +
+            '"鐨勬暟鎹」锛�'
+        )
+        .then(() => {
+          getTaskservelist({
+            patid: row.patid,
+            taskid: row.taskid,
+          }).then((res) => {
+            if (res.code == 200) {
+              objson.sendstate = 4;
+              objson.remark = "鏈嶅姟鏆傚仠";
+              Editsingletaskson(objson).then((res) => {
+                if (res.code) {
+                  this.$modal.msgSuccess("璁板綍鎴愬姛");
+                  this.getList(1);
+                }
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    // 鎮h�呰繃婊よЕ鍙�
+    handleUpdate(row) {
+      particularpatient(row.patid).then((response) => {
+        this.form = response.data;
+        this.form.filterDrname = store.getters.nickName;
+      });
+      this.amendtag = true;
+      this.Labelchange = true;
+    },
+    // 渚挎嵎鎸夐挳
+    toleadExport(too) {
+      if (too == 1) {
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
+      } else if (too == 2) {
+        this.topqueryParams.excep = 1;
+      }
+      this.handleQuery();
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.topqueryParams.pageNum = null;
+      this.topqueryParams.pageSize = null;
+      this.download(
+        "smartor/serviceSubtask/patItemExport",
+        {
+          ...this.topqueryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
+      }
+      return "";
+    },
+
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+      const hours = String(now.getHours()).padStart(2, "0");
+      const minutes = String(now.getMinutes()).padStart(2, "0");
+      const seconds = String(now.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
+}
+
+.document {
+  // width: 100px;
+  height: 50px;
+}
+::v-deep.el-table .warning-row {
+  background: #eec4c4;
+}
+
+.documentf {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.download {
+  text-align: center;
+
+  .el-upload__tip {
+    font-size: 23px;
+  }
+
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 30px;
+  background: #daeaf5;
+
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+
+.qrcode-dialo {
+  // text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.leftvlue .el-card__body {
+  background: #F2F8FF;
+  color: #324A9B;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #3664D9;
+  color: #fff;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-textxga {
+  color: #de7897;
+}
+::v-deep.errleftvlue .el-card__body {
+  background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+  background: #f88d96;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+  background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+  background: #8df8a4;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+  font-weight: 500;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-xq {
+  font-weight: 500;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-sc {
+  font-weight: 500;
+  background-color: #b3a21f;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-zx {
+  background: #4fabe9;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+  span {
+    font-size: 24px;
+  }
+}
+.purple-button {
+  background-color: #7e22ce;
+  border-color: #7e22ce;
+  color: #fff;
+}
+
+.purple-button:hover,
+.purple-button:focus {
+  background-color: #9333ea;
+  border-color: #9333ea;
+}
+
+.purple-button:active {
+  background-color: #6b21a8;
+  border-color: #6b21a8;
+}
+
+.purple-button.is-disabled {
+  background-color: #d8b4fe;
+  border-color: #d8b4fe;
+  opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+//   span {
+//     font-size: 24px;
+//   }
+// }
+</style>
diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index f13501d..b009153 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -1092,10 +1092,10 @@
         )
         .then(() => {
           console.log(row);
-          this.topicobj.scriptTopic = row.targetname;
+          // this.topicobj.scriptTopic = row.targetname;
           this.topicobj.valueType = row.valueType;
           this.topicobj.scriptType = row.scriptType;
-          this.topicobj.scriptContent = row.targetdesc;
+          // this.topicobj.scriptContent = row.targetdesc;
           this.topicobj.targetid = row.id;
           this.topicobj.targetname = row.targetname;
           this.topicobj.svyLibScriptOptions = [];
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 00a0b20..fa849d3 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -550,6 +550,26 @@
                         placeholder="璇疯緭鍏ラ鍙�"
                       ></el-input>
                     </el-form-item>
+
+                    <el-form-item prop="valueType">
+                      <template #label>
+                        缁撴灉绫诲瀷
+                        <el-tooltip
+                          class="item"
+                          effect="light"
+                          content="鏈被鍨嬩负缁撴灉鏀堕泦绫诲瀷锛涢�夐」鐢ㄤ簬鎸囧悜鎬ч鐩鏄惁绛夛紱鏂囨湰閫傜敤澶嶆潅鎯呭喌锛涙暟鍊肩敤浜庢敹闆嗘暟鍊煎瀷鏁版嵁"
+                          placement="top-start"
+                        >
+                          <i class="el-icon-warning-outline"></i>
+                        </el-tooltip>
+                        <!-- 鍦ㄦ爣绛惧悗鎻掑叆绾㈣壊鏄熷彿 -->
+                      </template>
+                      <el-radio-group v-model="topicobj.valueType">
+                        <el-radio :label="1">閫夐」</el-radio>
+                        <el-radio :label="2">鏂囨湰</el-radio>
+                        <el-radio :label="3">鏁板��</el-radio>
+                      </el-radio-group>
+                    </el-form-item>
                   </el-col>
                 </el-row>
 
@@ -2397,7 +2417,10 @@
   display: flex;
   .presentation-left {
     width: 45%;
-    // height: 500px;
+    max-height: 80vh;
+    padding: 0 20px;
+    font-size: 18px;
+    overflow: auto;
     .button-textxg {
       color: #024df0;
     }
@@ -2417,7 +2440,7 @@
   }
   .presentation-right {
     width: 55%;
-    max-height: 688px;
+    max-height: 80vh;
     padding: 0 20px;
     font-size: 18px;
     overflow: auto;
diff --git a/src/views/login.vue b/src/views/login.vue
index be87cfe..9876eac 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -116,16 +116,9 @@
         password: "",
         rememberMe: false,
         code: "",
-        orgid: "47255004333112711A1001",
+        orgid: "H41010500003",
       },
       options: [
-        { value: "47255004333112711A1001", label: "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�" },
-        { value: "47231022633110211A2101", label: "涓芥按甯備腑鍖婚櫌" },
-        { value: "47246102433112211A2101", label: "缂欎簯鍘夸腑鍖诲尰闄� " },
-        { value: "47240018433118111A2101", label: "榫欐硥甯備腑鍖诲尰闄� " },
-        { value: "47240004533118111A1001", label: "榫欐硥甯備汉姘戝尰闄� " },
-        { value: "47243006833112611A2101", label: "搴嗗厓鍘夸腑鍖诲尰闄� " },
-        { value: "47234002X33112111A2101", label: "闈掔敯鍘夸腑鍖诲尰闄� " },
       ],
       loginRules: {
         username: [
diff --git a/src/views/loginSSO.vue b/src/views/loginSSO.vue
new file mode 100644
index 0000000..6cd082c
--- /dev/null
+++ b/src/views/loginSSO.vue
@@ -0,0 +1,160 @@
+<template>
+  <div class="sso-redirect">
+    <div class="loading-container">
+      <el-alert
+        v-if="errorMessage"
+        :title="errorMessage"
+        type="error"
+        :closable="false"
+        show-icon
+      ></el-alert>
+      <div v-else class="loading-content">
+        <i class="el-icon-loading"></i>
+        <p>鍗曠偣鐧诲綍涓紝璇风◢鍊�...</p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { setToken } from "@/utils/auth";
+
+export default {
+  name: "SSORedirect",
+  data() {
+    return {
+      errorMessage: "",
+      loading: true,
+    };
+  },
+  created() {
+    this.handleSSORedirect();
+  },
+  methods: {
+    // 鍖归厤orgid
+    mateOrgid(orgid) {
+      if (orgid == "30001002") {
+        localStorage.setItem("orgname", "娴欐睙鐪佺珛鍚屽痉鍖婚櫌缈犺嫅闄㈠尯");
+        localStorage.setItem("ZuHuID", "1400361376454545408");
+        localStorage.setItem("deptCode", "1017");
+      } else if (orgid == "30001003") {
+        localStorage.setItem("orgname", "娴欐睙鐪佺珛鍚屽痉鍖婚櫌涔嬫睙闄㈠尯");
+        localStorage.setItem("ZuHuID", "1400360867068907520");
+        localStorage.setItem("deptCode", "01040201");
+      } else if (orgid == "30001004") {
+        localStorage.setItem("orgname", "娴欐睙鐪佺珛鍚屽痉鍖婚櫌闂叉灄闄㈠尯");
+        localStorage.setItem("ZuHuID", "1429338802177000002");
+        localStorage.setItem("deptCode", "");
+      } else if (orgid == "30001005") {
+        localStorage.setItem("orgname", "娴欐睙鐪佺珛鍚屽痉鍖婚櫌澶╃洰灞辫矾闄㈠尯");
+        localStorage.setItem("ZuHuID", "1429338802177000003");
+        localStorage.setItem("deptCode", "");
+      } else if (orgid == "30001006") {
+        localStorage.setItem("orgname", "娴欐睙鐪佺珛鍚屽痉鍖婚櫌闈掑北婀栭櫌鍖�");
+        localStorage.setItem("ZuHuID", "1429338802177000004");
+        localStorage.setItem("deptCode", "");
+      } else if (orgid == "30001007") {
+        localStorage.setItem("orgname", "娴嬭瘯闄㈠尯");
+        localStorage.setItem("ZuHuID", "1429338802177000005");
+        localStorage.setItem("deptCode", "");
+      }
+    },
+    async handleSSORedirect() {
+      try {
+        console.log(11);
+        // 浠嶶RL鍙傛暟涓幏鍙杢oken鍜屾満鏋勪俊鎭�
+        let { token, orgid, orgname, ZuHuID, deptCode } = this.$route.query;
+        // token =
+        //   "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc5MWVkODNlLWE2MWYtNDI2MS05ZDZlLTNhOTVjYTU2YjZhMiJ9.q6jrRj8fwtb3FOqqwaxIFDr824hf85DW8heCj4qWYgRE55Pn0vkmcujFsYMrz9qqo047Gl7lv3rnok8pk7SKYQ"; // 楠岃瘉蹇呰鍙傛暟
+        // orgid = "30001002";
+        if (!token) {
+          throw new Error("缂哄皯璁よ瘉浠ょ墝(token)");
+        }
+        console.log(token);
+        console.log(orgid);
+        console.log(orgname);
+        // console.log(redirect,'redirect');
+
+        this.mateOrgid(orgid);
+        setToken(token);
+        this.$store.commit("SET_TOKEN", token);
+
+        // 瀛樺偍鏈烘瀯淇℃伅鍒發ocalStorage
+        if (orgid) {
+          localStorage.setItem("orgid", orgid);
+          this.$store.dispatch("UpdateOrgId", orgid);
+        }
+        if (orgname) localStorage.setItem("orgname", orgname);
+        if (ZuHuID) localStorage.setItem("ZuHuID", ZuHuID);
+        if (deptCode) localStorage.setItem("deptCode", deptCode);
+
+        // 鑾峰彇鐢ㄦ埛淇℃伅
+        await this.$store.dispatch("GetInfo");
+
+        // 纭畾閲嶅畾鍚戣矾寰�
+        let redirectPath = "/index";
+        // if (redirect) {
+        //   console.log(redirect,'888');
+
+        //   redirectPath = decodeURIComponent(redirect);
+        // } else {
+        // 鏍规嵁鐢ㄦ埛瑙掕壊鍐冲畾榛樿璺宠浆椤甸潰
+        const roles = this.$store.state.user.roles;
+        const username = this.$store.state.user.name;
+
+        if (roles.includes("admin") || username === "admin") {
+          redirectPath = "/index";
+        } else {
+          redirectPath = "/followvisit/discharge";
+        }
+        // }
+
+        // 璺宠浆鍒扮洰鏍囬〉闈�
+        this.$router.replace({ path: redirectPath });
+      } catch (error) {
+        console.error("SSO鐧诲綍澶辫触:", error);
+        this.errorMessage = `鍗曠偣鐧诲綍澶辫触: ${error.message || "鏈煡閿欒"}`;
+        this.loading = false;
+
+        // 5绉掑悗璺宠浆鍒版櫘閫氱櫥褰曢〉
+        setTimeout(() => {
+          this.$router.replace("/login");
+        }, 5000);
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.sso-redirect {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 100vh;
+  background-color: #f5f7fa;
+}
+
+.loading-container {
+  text-align: center;
+  padding: 20px;
+  background: white;
+  border-radius: 4px;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.loading-content {
+  padding: 20px;
+}
+
+.el-icon-loading {
+  font-size: 40px;
+  color: #409eff;
+  margin-bottom: 10px;
+}
+
+p {
+  margin: 0;
+  color: #606266;
+}
+</style>
diff --git a/src/views/outsideChainwtnew.vue b/src/views/outsideChainwtnew.vue
index 37858aa..24fc1d3 100644
--- a/src/views/outsideChainwtnew.vue
+++ b/src/views/outsideChainwtnew.vue
@@ -8,7 +8,9 @@
             {{
               kcb
                 ? kcb
-                : "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾垜浠槸"+localStorage.getItem("orgname")+"鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚闂嵎銆�"
+                : "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾垜浠槸" +
+                  localStorage.getItem("orgname") +
+                  "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚闂嵎銆�"
             }}
             <!-- 浜茬埍鐨勬偅鑰�/瀹跺睘鎮ㄥソ锛屼负浜嗘洿濂界殑浜嗚В鎮ㄥ嚭闄㈠悗鐨勫悍澶嶆儏鍐碉紝缁欐偍閫傚綋鍙婃椂鐨勫仴搴锋寚瀵硷紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤鍑洪櫌闅忚闂嵎璋冩煡銆� -->
           </div>
@@ -19,6 +21,7 @@
           class="topic-dev"
           v-for="(item, index) in questionList"
           :key="item.aaa"
+          v-if="!item.ishide"
         >
           <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
             <div class="dev-text">
@@ -276,31 +279,36 @@
   methods: {
     // 瑙f瀽urlid
     geturlinfo() {
-       // let url = window.location.href;
-       let url = this.$route.query.p;
-       console.log(url,"url");
+      // let url = window.location.href;
+      let url = this.$route.query.p;
+      console.log(url, "url");
       // let url = 'http://218.108.11.22:8093/sf/003';
       // let urlid = this.extractLastSegmentFromUrl(url);
 
-      geturlinfo( url ).then((res) => {
-       if (res.code==200) {
-         this.getQuestionnaire(res.data.param1,res.data.param2,res.data.param3,res.data.param5,)
-       }
+      geturlinfo(url).then((res) => {
+        if (res.code == 200) {
+          this.getQuestionnaire(
+            res.data.param1,
+            res.data.param2,
+            res.data.param3,
+            res.data.param5
+          );
+        }
       });
     },
-//     extractLastSegmentFromUrl(url) {
-//     // 鎵惧埌鏈�鍚庝竴涓�'/'鐨勪綅缃�
-//     const lastSlashIndex = url.lastIndexOf('/');
-//     // 濡傛灉鎵惧埌浜�'/'锛屾埅鍙栧叾鍚庣殑鎵�鏈夊瓧绗�
-//     if (lastSlashIndex !== -1) {
-//         return url.substring(lastSlashIndex + 1);
-//     }
-//     // 濡傛灉娌℃湁鎵惧埌'/'锛岃繑鍥炵┖瀛楃涓�
-//     return '';
-// },
+    //     extractLastSegmentFromUrl(url) {
+    //     // 鎵惧埌鏈�鍚庝竴涓�'/'鐨勪綅缃�
+    //     const lastSlashIndex = url.lastIndexOf('/');
+    //     // 濡傛灉鎵惧埌浜�'/'锛屾埅鍙栧叾鍚庣殑鎵�鏈夊瓧绗�
+    //     if (lastSlashIndex !== -1) {
+    //         return url.substring(lastSlashIndex + 1);
+    //     }
+    //     // 濡傛灉娌℃湁鎵惧埌'/'锛岃繑鍥炵┖瀛楃涓�
+    //     return '';
+    // },
 
     // 鑾峰彇鏁版嵁
-    getQuestionnaire(param1,param2,param3) {
+    getQuestionnaire(param1, param2, param3) {
       this.taskid = decodeURIComponent(param1);
       this.patid = decodeURIComponent(param2);
       this.taskname = decodeURIComponent(param3);
@@ -408,7 +416,7 @@
         var obj = item.svyLibTemplateTargetoptions.find(
           (items) => items.optioncontent == item.scriptResult
         );
-        console.log(obj,'obj');
+        console.log(obj, "obj");
 
         if (obj) {
           if (obj.isabnormal) {
diff --git a/src/views/patient/follow/index.vue b/src/views/patient/follow/index.vue
index 06f2765..1970d37 100644
--- a/src/views/patient/follow/index.vue
+++ b/src/views/patient/follow/index.vue
@@ -619,7 +619,10 @@
     height: 100px;
   }
 }
+.button-textxga {
+  color: #de7897;
+}
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 </style>
diff --git a/src/views/patient/medtechnician/PatientChart.vue b/src/views/patient/medtechnician/PatientChart.vue
index a513703..60d45fb 100644
--- a/src/views/patient/medtechnician/PatientChart.vue
+++ b/src/views/patient/medtechnician/PatientChart.vue
@@ -472,60 +472,7 @@
           label: "娑堟伅閫氱煡",
         },
       ],
-      taskoptions: [
-        {
-          value: "1",
-          label: "鐩戞祴璇勪及",
-        },
-        {
-          value: "2",
-          label: "鍑洪櫌闅忚",
-        },
-        {
-          value: "3",
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: "4",
-          label: "瀹f暀鍏虫��",
-        },
-        {
-          value: "5",
-          label: "澶嶈瘖绠$悊",
-        },
-        // {
-        //   value: "5",
-        //   label: "婊℃剰搴﹁皟鏌�",
-        // },
-        {
-          value: "7",
-          label: "鎮h�呮姤鍛�",
-        },
-        // {
-        //   value: "8",
-        //   label: "鍏朵粬閫氱煡",
-        // },
-        {
-          value: "9",
-          label: "浣撴闅忚",
-        },
-        // {
-        //   value: "10",
-        //   label: "鍖绘妧闅忚",
-        // },
-        {
-          value: "11",
-          label: "褰卞儚闅忚",
-        },
-        {
-          value: "12",
-          label: "蹇冪數闅忚",
-        },
-        // {
-        //   value: "13",
-        //   label: "涓撶梾闅忚",
-        // },
-      ],
+      taskoptions: store.getters.tasktypes,
       tasktopic: "2", //鏂板绫诲瀷
       activname: "",
       value: [],
diff --git a/src/views/patient/patient/ExternalPatient.vue b/src/views/patient/patient/ExternalPatient.vue
index 5f20aaa..92b4039 100644
--- a/src/views/patient/patient/ExternalPatient.vue
+++ b/src/views/patient/patient/ExternalPatient.vue
@@ -1178,10 +1178,12 @@
   font-size: 20px;
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 .leftvlue {
@@ -1245,7 +1247,7 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 .button-textxg {
   color: #de7897;
diff --git a/src/views/patient/patient/behospitalized.vue b/src/views/patient/patient/behospitalized.vue
index e6f8312..08ccbc5 100644
--- a/src/views/patient/patient/behospitalized.vue
+++ b/src/views/patient/patient/behospitalized.vue
@@ -718,6 +718,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -949,6 +951,6 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 </style>
diff --git a/src/views/patient/patient/hospital.vue b/src/views/patient/patient/hospital.vue
index de94d9e..7ad521e 100644
--- a/src/views/patient/patient/hospital.vue
+++ b/src/views/patient/patient/hospital.vue
@@ -653,6 +653,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh, drcode, drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -947,6 +949,6 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 </style>
diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue
index 7236eb1..4a8fbd3 100644
--- a/src/views/patient/patient/index.vue
+++ b/src/views/patient/patient/index.vue
@@ -185,7 +185,6 @@
               <el-col :span="1.5">
                 <el-button
                   type="primary"
-                  plain
                   icon="el-icon-s-promotion"
                   size="medium"
                   @click="distribute"
@@ -1209,6 +1208,8 @@
     },
     //鎮h��360璺宠浆
     gettoken360(sfzh,drcode,drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC=='涓芥按甯備腑鍖婚櫌') {
         this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728';
@@ -1547,10 +1548,12 @@
   font-size: 20px;
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 .leftvlue {
@@ -1615,7 +1618,10 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
+}
+.button-textxga {
+  color: #de7897;
 }
 .button-textxg {
   color: #de7897;
diff --git a/src/views/patient/patient/operation.vue b/src/views/patient/patient/operation.vue
index d6df8aa..261b8a9 100644
--- a/src/views/patient/patient/operation.vue
+++ b/src/views/patient/patient/operation.vue
@@ -743,6 +743,6 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 </style>
diff --git a/src/views/patient/patient/outpatient.vue b/src/views/patient/patient/outpatient.vue
index 3952a15..52295b1 100644
--- a/src/views/patient/patient/outpatient.vue
+++ b/src/views/patient/patient/outpatient.vue
@@ -880,7 +880,9 @@
       });
     },
     //鎮h��360璺宠浆
-    gettoken360(sfzh, drcode, drname) {
+    gettoken360(sfzh,drcode,drname) {
+      this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+  return; // 闃绘鍚庣画浠g爜鎵ц
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
       if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
@@ -1227,7 +1229,7 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 .batch-patient-section,
 .batch-task-section {
diff --git a/src/views/patient/patient/physical.vue b/src/views/patient/patient/physical.vue
index 30228ec..0b62b0f 100644
--- a/src/views/patient/patient/physical.vue
+++ b/src/views/patient/patient/physical.vue
@@ -953,6 +953,6 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 </style>
diff --git a/src/views/patient/physical/index.vue b/src/views/patient/physical/index.vue
index 7582a65..2495cc9 100644
--- a/src/views/patient/physical/index.vue
+++ b/src/views/patient/physical/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -739,7 +738,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1273,10 +1272,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/patient/propaganda/Missioncreation.vue b/src/views/patient/propaganda/Missioncreation.vue
index e272911..f666f1a 100644
--- a/src/views/patient/propaganda/Missioncreation.vue
+++ b/src/views/patient/propaganda/Missioncreation.vue
@@ -1839,7 +1839,7 @@
   }
 }
 .button-textsc {
-  color: #28cfe6;
+  color: #3664D9;
 }
 .button-textxg {
   color: #de7897;
diff --git a/src/views/patient/propaganda/Missionotice.vue b/src/views/patient/propaganda/Missionotice.vue
index a870188..ee36792 100644
--- a/src/views/patient/propaganda/Missionotice.vue
+++ b/src/views/patient/propaganda/Missionotice.vue
@@ -78,8 +78,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             v-hasPermi="['system:user:add']"
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index dd695de..9f5f112 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -432,8 +432,11 @@
             </div>
           </div>
         </div>
-        <el-button type="success" @click="nextstep('ruleForm')">{{
-          quote ? "绔嬪嵆鍒涘缓" : "浠诲姟璇︽儏閰嶇疆"
+        <el-button type="primary" @click="nextstep('ruleForm')">{{
+          quote ? "绔嬪嵆鍒涘缓" : "娲惧彂鎮h�呴厤缃�"
+        }}</el-button>
+        <el-button type="success" @click="submitForm('ruleForm')">{{
+          quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆"
         }}</el-button>
         <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
       </div>
@@ -517,7 +520,7 @@
         </div>
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="success" @click="submitForm('ruleForm')">{{
-          quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆"
+          quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆"
         }}</el-button>
         <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
       </div>
@@ -911,7 +914,7 @@
   taskdiaggetlist,
   taskopergetlist,
 } from "@/api/AiCentre/index";
-import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
+import OptionalForm from "@/components/OptionalForm"; //鐤剧梾娣诲姞缁勪欢
 import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
 import { MessageBox } from "element-ui";
 
@@ -1154,60 +1157,7 @@
         },
       ],
 
-      tasktypes: [
-        {
-          value: 1,
-          label: "鐩戞祴璇勪及",
-        },
-        {
-          value: 2,
-          label: "鍑洪櫌闅忚",
-        },
-        {
-          value: 3,
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: 4,
-          label: "瀹f暀鍏虫��",
-        },
-        {
-          value: 5,
-          label: "澶嶈瘖绠$悊",
-        },
-        // {
-        //   value: 5,
-        //   label: "婊℃剰搴﹁皟鏌�",
-        // },
-        {
-          value: 7,
-          label: "鎮h�呮姤鍛�",
-        },
-        // {
-        //   value: 8,
-        //   label: "鍏朵粬閫氱煡",
-        // },
-        {
-          value: 9,
-          label: "浣撴闅忚",
-        },
-        // {
-        //   value: 1",
-        //   label: "鍖绘妧闅忚",
-        // },
-        {
-          value: 11,
-          label: "褰卞儚闅忚",
-        },
-        {
-          value: 12,
-          label: "蹇冪數闅忚",
-        },
-        // {
-        //   value: "13",
-        //   label: "涓撶梾闅忚",
-        // },
-      ],
+      tasktypes: store.getters.tasktypes,
       // 绉戝/鐥呭尯
       belongWards: [],
       deptlist: [],
@@ -1337,9 +1287,13 @@
             value: "5",
             label: "寰俊鍏紬鍙�",
           },
-          { label: "寰俊灏忕▼搴�", value: 6 },
+          { label: "寰俊灏忕▼搴�", value: "6" },
         ];
-      } else if (this.form.serviceType == 6) {
+      } else if (
+        this.form.serviceType == 6 ||
+        this.form.serviceType == 14 ||
+        this.form.serviceType == 15
+      ) {
         this.checkboxlist = [
           {
             value: "3",
@@ -1406,6 +1360,7 @@
         this.form.serviceType == 2 ||
         this.form.serviceType == 3 ||
         this.form.serviceType == 5 ||
+        this.form.serviceType == 16 ||
         this.form.serviceType == 4
       ) {
         this.checkboxlist = [
@@ -1493,17 +1448,18 @@
         this.deptcodesWards[0] ||
         this.leavehospitaldistrictcodes[0] ||
         this.diagglist[0] ||
-        this.operationcodes[0]
+        this.operationcodes[0] ||
+        this.form.longTask == 2
       ) {
       } else {
         this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
         return;
       }
-
-      if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
-        this.$modal.msgError("璇烽�夋嫨鐥呬汉");
-        return;
-      }
+      //鏆傚仠浠诲姟鎮h�呴檺鍒�
+      // if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
+      //   this.$modal.msgError("璇烽�夋嫨鐥呬汉");
+      //   return;
+      // }
 
       if (!this.form.templatename && !this.templateor) {
         this.$modal.msgError("鏈�夋嫨妯℃澘");
diff --git a/src/views/patient/propaganda/index.vue b/src/views/patient/propaganda/index.vue
index 46575a2..fa455f6 100644
--- a/src/views/patient/propaganda/index.vue
+++ b/src/views/patient/propaganda/index.vue
@@ -101,7 +101,6 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
             icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
@@ -754,6 +753,8 @@
         serviceType: 4,
         searchscope: 2,
         sendstate: 2,
+         leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
       },
       propss: { multiple: true },
       options: [],
@@ -832,7 +833,7 @@
   methods: {
     /** 鏌ヨ闂ㄨ瘖瀹f暀鏈嶅姟鍒楄〃 */
     getList() {
-       if (this.topqueryParams.searchscope == 3) {
+      if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
         );
@@ -840,6 +841,8 @@
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
       this.loading = true;
+      console.log(this.topqueryParams.leavehospitaldistrictcodes);
+      console.log(this.topqueryParams.leaveldeptcodes);
 
       if (
         this.topqueryParams.leavehospitaldistrictcodes[0] &&
@@ -849,6 +852,7 @@
       } else {
         this.topqueryParams.deptOrDistrict = 1;
       }
+      console.log(55);
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
         this.userList.forEach((item) => {
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 69c24a5..e9d753d 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -1157,60 +1157,7 @@
         },
       ],
 
-      tasktypes: [
-        {
-          value: "1",
-          label: "鐩戞祴璇勪及",
-        },
-        {
-          value: "2",
-          label: "鍑洪櫌闅忚",
-        },
-        {
-          value: "3",
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: "4",
-          label: "瀹f暀鍏虫��",
-        },
-        {
-          value: "5",
-          label: "澶嶈瘖绠$悊",
-        },
-        // {
-        //   value: "5",
-        //   label: "婊℃剰搴﹁皟鏌�",
-        // },
-        {
-          value: "7",
-          label: "鎮h�呮姤鍛�",
-        },
-        // {
-        //   value: "8",
-        //   label: "鍏朵粬閫氱煡",
-        // },
-        {
-          value: "9",
-          label: "浣撴闅忚",
-        },
-        // {
-        //   value: "10",
-        //   label: "鍖绘妧闅忚",
-        // },
-        {
-          value: "11",
-          label: "褰卞儚闅忚",
-        },
-        {
-          value: "12",
-          label: "蹇冪數闅忚",
-        },
-        // {
-        //   value: "13",
-        //   label: "涓撶梾闅忚",
-        // },
-      ],
+      tasktypes: store.getters.tasktypes,
       // 绉戝/鐥呭尯
       belongWards: [],
       deptlist: [],
@@ -1427,6 +1374,7 @@
       } else if (
         this.form.serviceType == 2 ||
         this.form.serviceType == 3 ||
+        this.form.serviceType == 16 ||
         this.form.serviceType == 4
       ) {
         this.checkboxlist = [
diff --git a/src/views/patient/questionnaire/index.vue b/src/views/patient/questionnaire/index.vue
index a4b9ba5..3290f95 100644
--- a/src/views/patient/questionnaire/index.vue
+++ b/src/views/patient/questionnaire/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -723,7 +722,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1291,10 +1290,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/patient/shadow/index.vue b/src/views/patient/shadow/index.vue
index 6a6fbba..4677890 100644
--- a/src/views/patient/shadow/index.vue
+++ b/src/views/patient/shadow/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -723,7 +722,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1291,10 +1290,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/patient/subsequent/index.vue b/src/views/patient/subsequent/index.vue
index b10c01f..a4c1cca 100644
--- a/src/views/patient/subsequent/index.vue
+++ b/src/views/patient/subsequent/index.vue
@@ -138,8 +138,7 @@
         <el-col :span="1.5">
           <el-button
             type="primary"
-            plain
-            icon="el-icon-plus"
+                        icon="el-icon-plus"
             size="medium"
             @click="handleAdd"
             >鏂板</el-button
@@ -739,7 +738,7 @@
         //   value: 0,
         // },
         {
-          name: "搴旈殢璁�",
+          name: "闇�闅忚",
           value: 0,
         },
 
@@ -1273,10 +1272,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #F2F8FF;
+  color: #324A9B;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664D9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
diff --git a/src/views/satisfaction.vue b/src/views/satisfaction.vue
new file mode 100644
index 0000000..26585af
--- /dev/null
+++ b/src/views/satisfaction.vue
@@ -0,0 +1,1188 @@
+<template>
+  <div class="questionnaire" :class="'survey-type-' + surveyType">
+    <!-- 鍔犺浇鐘舵�� -->
+    <div v-if="loading" class="loading-state">
+      <div class="loading-spinner">
+        <i class="el-icon-loading"></i>
+        <p>闂嵎鍔犺浇涓�...</p>
+      </div>
+    </div>
+
+    <!-- 鏃犳暟鎹姸鎬� -->
+    <div v-else-if="isEmptyData" class="empty-state">
+      <div class="empty-content">
+        <i class="el-icon-document" style="font-size: 64px; color: #909399"></i>
+        <h3>鏆傛棤闂嵎鏁版嵁</h3>
+        <p>褰撳墠娌℃湁鍙敤鐨勯棶鍗凤紝璇疯仈绯荤鐞嗗憳鎴栫◢鍚庨噸璇�</p>
+        <el-button
+          type="primary"
+          @click="loadSurveyData"
+          icon="el-icon-refresh"
+        >
+          閲嶆柊鍔犺浇
+        </el-button>
+      </div>
+    </div>
+
+    <!-- 閿欒鐘舵�� -->
+    <div v-else-if="hasError" class="error-state">
+      <div class="error-content">
+        <i class="el-icon-warning" style="font-size: 64px; color: #f56c6c"></i>
+        <h3>鏁版嵁鍔犺浇澶辫触</h3>
+        <p>{{ errorMessage }}</p>
+        <el-button
+          type="primary"
+          @click="loadSurveyData"
+          icon="el-icon-refresh"
+        >
+          閲嶆柊灏濊瘯
+        </el-button>
+      </div>
+    </div>
+    <div class="CONTENT" v-if="!accomplish">
+      <div class="preview-left">
+        <div class="toptitle">
+          <div class="title">{{ surveyTitle }}</div>
+          <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
+            {{ surveyDescription }}
+          </div>
+        </div>
+        <div v-if="showDeptSelect" class="dept-select-container">
+          <el-form>
+            <el-form>
+              <el-form-item label="閫夋嫨绉戝">
+                <el-select
+                  v-model="selectedDept"
+                  filterable
+                  clearable
+                  placeholder="璇烽�夋嫨绉戝鎴栬緭鍏ュ叧閿瘝鎼滅储"
+                  @change="handleDeptChange"
+                  popper-class="dept-select-dropdown"
+                >
+                  <el-option
+                    v-for="dept in filteredDeptList"
+                    :key="dept.code"
+                    :label="`${dept.name} (${dept.code})`"
+                    :value="dept.name"
+                  >
+                    <span>{{ dept.name }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-form>
+          </el-form>
+        </div>
+        <el-divider></el-divider>
+
+        <!-- 鍗曢�夐 -->
+        <div
+          class="topic-dev"
+          v-for="(item, index) in questionList"
+          :key="item.scriptId"
+        >
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[鍗曢�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-radio-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+                @change="handleOptionChange($event, index, item)"
+              >
+                <el-radio
+                  border
+                  v-for="(option, optIndex) in item.svyLibTemplateTargetoptions"
+                  :class="
+                    option.isabnormal &&
+                    item.scriptResult == option.optioncontent
+                      ? 'red-star'
+                      : ''
+                  "
+                  :key="optIndex"
+                  :label="option.optioncontent"
+                  >{{ option.optioncontent }}</el-radio
+                >
+              </el-radio-group>
+            </div>
+            <div v-show="item.prompt">
+              <el-alert :title="item.prompt" type="warning"> </el-alert>
+            </div>
+          </div>
+
+          <!-- 澶氶�夐 -->
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 2">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[澶氶�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-checkbox-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+              >
+                <el-checkbox
+                  border
+                  @change="$forceUpdate()"
+                  v-for="(option, optIndex) in item.svyLibTemplateTargetoptions"
+                  :key="optIndex"
+                  :label="option.optioncontent"
+                >
+                  {{ option.optioncontent }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </div>
+            <div v-show="item.prompt && item.scriptResult[0]">
+              <el-alert :title="item.prompt" type="warning"> </el-alert>
+            </div>
+          </div>
+
+          <!-- 濉┖棰� -->
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent
+                }}<span style="color: #3ba2f7">[闂瓟]</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-input
+                type="textarea"
+                :rows="3"
+                placeholder="璇疯緭鍏�"
+                v-model="item.scriptResult"
+                clearable
+              >
+              </el-input>
+            </div>
+          </div>
+        </div>
+
+        <div class="bottom-fixed">
+          <el-button
+            type="primary"
+            style="width: 80%; font-size: 20px"
+            @click="submitSurvey"
+            >鎻愪氦闂嵎</el-button
+          >
+        </div>
+      </div>
+    </div>
+
+    <div class="CONTENT" v-else>
+      <div class="preview-lefts">
+        <div class="completion-message">
+          <div class="thank-you">{{ this.accomplish || "鎰熻阿鎮ㄧ殑閰嶅悎!" }}</div>
+          <div class="feedback-message">{{ completionMessage }}</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getScriptByCondition,
+  saveMYDQuestionAnswer,
+  WLgetDept,
+} from "@/api/AiCentre/index";
+
+export default {
+  data() {
+    return {
+      surveyType: null, // 'outpatient', 'inpatient'
+      surveyTitle: "",
+      surveyDescription: "",
+      questionList: [],
+      deptList: [],
+      completionMessage: "",
+      accomplish: false,
+      showDeptSelect: false,
+      selectedDept: null,
+      deptSearchText: "", // 淇濈暀鐢ㄤ簬鏈湴杩囨护
+      deptList: [],
+      filteredDeptList: [],
+
+      // 鍔犲瘑鍚庣殑鍙傛暟
+      encryptedParams: {
+        param1: "",
+        param2: "",
+        param3: "",
+        param4: "",
+        param5: "",
+        param6: "30001002",
+      },
+      isEmptyData: false, // 鏂板锛氭棤鏁版嵁鐘舵��
+      hasError: false, // 鏂板锛氶敊璇姸鎬�
+      loading: false, // 鏂板锛氬姞杞界姸鎬�
+      errorMessage: "", // 鏂板锛氶敊璇俊鎭�
+      // 娴嬭瘯鏁版嵁
+      testData: {
+        1: {
+          title: "闂ㄨ瘖婊℃剰搴﹁皟鏌�",
+          description:
+            "浜茬埍鐨勬偅鑰咃紝鎰熻阿鎮ㄩ�夋嫨鎴戜滑鐨勫尰鐤楁湇鍔°�備负浜嗕笉鏂彁鍗囨湇鍔¤川閲忥紝璇锋偍鑺卞嚑鍒嗛挓鏃堕棿濉啓姝ら棶鍗枫��",
+          questions: [
+            {
+              scriptId: 1,
+              scriptType: 1,
+              scriptContent: "鎮ㄥ闂ㄨ瘖鍖荤敓鐨勮瘖鐤楁按骞虫槸鍚︽弧鎰忥紵",
+              scriptResult: null,
+              svyLibTemplateTargetoptions: [
+                { optioncontent: "闈炲父婊℃剰", value: "5", isabnormal: false },
+                { optioncontent: "婊℃剰", value: "4", isabnormal: false },
+                { optioncontent: "涓�鑸�", value: "3", isabnormal: true },
+                { optioncontent: "涓嶆弧鎰�", value: "2", isabnormal: true },
+                { optioncontent: "闈炲父涓嶆弧鎰�", value: "1", isabnormal: true },
+              ],
+            },
+            {
+              scriptId: 2,
+              scriptType: 1,
+              scriptContent: "鎮ㄥ闂ㄨ瘖鎶ゅ+鐨勬湇鍔℃�佸害鏄惁婊℃剰锛�",
+              scriptResult: null,
+              svyLibTemplateTargetoptions: [
+                { optioncontent: "闈炲父婊℃剰", value: "5", isabnormal: false },
+                { optioncontent: "婊℃剰", value: "4", isabnormal: false },
+                { optioncontent: "涓�鑸�", value: "3", isabnormal: true },
+                { optioncontent: "涓嶆弧鎰�", value: "2", isabnormal: true },
+                { optioncontent: "闈炲父涓嶆弧鎰�", value: "1", isabnormal: true },
+              ],
+            },
+            {
+              scriptId: 3,
+              scriptType: 2,
+              scriptContent: "鎮ㄨ涓洪棬璇婂摢浜涙柟闈㈤渶瑕佹敼杩涳紵锛堝彲澶氶�夛級",
+              scriptResult: [],
+              svyLibTemplateTargetoptions: [
+                {
+                  optioncontent: "鎺掗槦绛夊�欐椂闂�",
+                  value: "waiting_time",
+                  isabnormal: false,
+                },
+                {
+                  optioncontent: "鍖荤敓娌熼�氭柟寮�",
+                  value: "communication",
+                  isabnormal: false,
+                },
+                {
+                  optioncontent: "灏辫瘖鐜",
+                  value: "environment",
+                  isabnormal: false,
+                },
+                {
+                  optioncontent: "鍖荤枟璁惧",
+                  value: "equipment",
+                  isabnormal: false,
+                },
+                { optioncontent: "鍏朵粬", value: "other", isabnormal: false },
+              ],
+            },
+            {
+              scriptId: 4,
+              scriptType: 4,
+              scriptContent: "鎮ㄥ闂ㄨ瘖鏈嶅姟杩樻湁浠�涔堝叾浠栧缓璁紵",
+              scriptResult: null,
+            },
+          ],
+          completionMessage:
+            "鎰熻阿鎮ㄥ疂璐电殑鎰忚锛佹垜浠皢涓嶆柇鏀硅繘闂ㄨ瘖鏈嶅姟璐ㄩ噺锛屼负鎮ㄦ彁渚涙洿濂界殑鍖荤枟鏈嶅姟浣撻獙銆�",
+        },
+        2: {
+          title: "浣忛櫌婊℃剰搴﹁皟鏌�",
+          description:
+            "浜茬埍鐨勬偅鑰呭強瀹跺睘锛屾劅璋㈡偍閫夋嫨鍦ㄦ垜闄綇闄㈡不鐤椼�備负浜嗘彁鍗囦綇闄㈡湇鍔¤川閲忥紝璇锋偍濉啓姝ら棶鍗枫��",
+          questions: [
+            {
+              scriptId: 1,
+              scriptType: 1,
+              scriptContent: "鎮ㄥ浣忛櫌鏈熼棿鍖荤敓鐨勮瘖鐤楁按骞虫槸鍚︽弧鎰忥紵",
+              scriptResult: null,
+              svyLibTemplateTargetoptions: [
+                { optioncontent: "闈炲父婊℃剰", value: "5", isabnormal: false },
+                { optioncontent: "婊℃剰", value: "4", isabnormal: false },
+                { optioncontent: "涓�鑸�", value: "3", isabnormal: true },
+                { optioncontent: "涓嶆弧鎰�", value: "2", isabnormal: true },
+                { optioncontent: "闈炲父涓嶆弧鎰�", value: "1", isabnormal: true },
+              ],
+            },
+            {
+              scriptId: 2,
+              scriptType: 1,
+              scriptContent: "鎮ㄥ浣忛櫌鏈熼棿鎶ゅ+鐨勬姢鐞嗘湇鍔℃槸鍚︽弧鎰忥紵",
+              scriptResult: null,
+              svyLibTemplateTargetoptions: [
+                { optioncontent: "闈炲父婊℃剰", value: "5", isabnormal: false },
+                { optioncontent: "婊℃剰", value: "4", isabnormal: false },
+                { optioncontent: "涓�鑸�", value: "3", isabnormal: true },
+                { optioncontent: "涓嶆弧鎰�", value: "2", isabnormal: true },
+                { optioncontent: "闈炲父涓嶆弧鎰�", value: "1", isabnormal: true },
+              ],
+            },
+            {
+              scriptId: 3,
+              scriptType: 1,
+              scriptContent: "鎮ㄥ浣忛櫌鐥呮埧鐨勭幆澧冨拰鍗敓鏄惁婊℃剰锛�",
+              scriptResult: null,
+              svyLibTemplateTargetoptions: [
+                { optioncontent: "闈炲父婊℃剰", value: "5", isabnormal: false },
+                { optioncontent: "婊℃剰", value: "4", isabnormal: false },
+                { optioncontent: "涓�鑸�", value: "3", isabnormal: true },
+                { optioncontent: "涓嶆弧鎰�", value: "2", isabnormal: true },
+                { optioncontent: "闈炲父涓嶆弧鎰�", value: "1", isabnormal: true },
+              ],
+            },
+            {
+              scriptId: 4,
+              scriptType: 4,
+              scriptContent: "鎮ㄥ浣忛櫌鏈嶅姟杩樻湁浠�涔堝叾浠栧缓璁紵",
+              scriptResult: null,
+            },
+          ],
+          completionMessage:
+            "鎰熻阿鎮ㄥ鎴戜滑宸ヤ綔鐨勬敮鎸侊紒鎴戜滑灏嗘牴鎹偍鐨勫弽棣堟寔缁敼杩涗綇闄㈡湇鍔¤川閲忥紝绁濇偍鏃╂棩搴峰锛�",
+        },
+      },
+    };
+  },
+  created() {
+    this.initSurveyData();
+  },
+  methods: {
+    // 鍒濆鍖栬皟鏌ユ暟鎹�
+    initSurveyData() {
+      // 浠庤矾鐢卞弬鏁拌幏鍙栧姞瀵嗗悗鐨勫弬鏁�
+      this.encryptedParams.param1 =
+        this.$route.query.param1 ||
+        "WOAq2QZd43E-qg-96SvuIFsn-sdRVxQNH4M82XhpXp_Ux4PFrPaqSFXcKaeA6oxEgNhPisA86LvU9kTAEz4xvQ==";
+      this.encryptedParams.param2 =
+        this.$route.query.param2 ||
+        "XWeBh42RLYlNsMcomgw9UXhUPySkRP5EneWSueSq8F84qwYznU9heXuSx4tUMUtDvRnuJ86moJivy-kWQX12Rg==";
+      this.encryptedParams.param5 = this.$route.query.param3 || "2"; //  1=浣忛櫌, 2=闂ㄨ瘖, 3=鎶曡瘔寤鸿
+      this.encryptedParams.param6 = this.$route.query.param4 || "30001002";
+
+      this.surveyType = parseInt(this.encryptedParams.param5) || 2;
+
+      // 鍔犺浇闂嵎鏁版嵁
+      this.loadSurveyData();
+      // 鑾峰彇绉戝鍒楄〃
+      this.WLgetDept();
+    },
+    WLgetDept() {
+      // 璋冪敤鎺ュ彛鑾峰彇绉戝鏁版嵁
+      WLgetDept(this.encryptedParams.param6).then((res) => {
+        this.deptList = Object.entries(res.data).map(([code, name]) => ({
+          code,
+          name,
+        }));
+        this.filteredDeptList = [...this.deptList];
+
+        if (this.surveyType === 3) {
+          this.showDeptSelect = true;
+        }
+      });
+    },
+    filterDeptList() {
+      if (!this.deptSearchText) {
+        this.filteredDeptList = [...this.deptList];
+        return;
+      }
+
+      const searchText = this.deptSearchText.toLowerCase();
+      this.filteredDeptList = this.deptList.filter(
+        (dept) =>
+          dept.name.toLowerCase().includes(searchText) ||
+          dept.code.toLowerCase().includes(searchText)
+      );
+    },
+    // 鍔犺浇璋冩煡鏁版嵁
+    loadSurveyData() {
+      this.loading = true;
+      this.isEmptyData = false;
+      this.hasError = false;
+      this.errorMessage = "";
+      // 璋冪敤鎺ュ彛鑾峰彇闂嵎鏁版嵁
+      // 鏍规嵁闂嵎绫诲瀷璁剧疆涓嶅悓鐨勫弬鏁�
+      let encryptedParams = {
+        param1: this.encryptedParams.param1,
+      };
+
+      // 鏍规嵁surveyType璁剧疆涓嶅悓鐨勫弬鏁�
+      switch (this.surveyType) {
+        case 1: // 浣忛櫌
+          encryptedParams.param2 = this.encryptedParams.param2;
+          break;
+        case 2: // 闂ㄨ瘖
+          encryptedParams.param3 = this.encryptedParams.param2;
+          break;
+        case 3: // 鎶曡瘔寤鸿
+          encryptedParams.param4 = this.encryptedParams.param2;
+          break;
+        default:
+          encryptedParams.param3 = this.encryptedParams.param2;
+      }
+      getScriptByCondition(encryptedParams)
+        .then((res) => {
+          if (res.code === 200) {
+            if (res.data.result) {
+              this.accomplish = res.data.result;
+              return;
+            }
+            if (
+              !res.data.svyLibTemplateScriptVOS ||
+              res.data.svyLibTemplateScriptVOS.length === 0
+            ) {
+              this.isEmptyData = true;
+              this.$message.warning("鏆傛棤闂嵎鏁版嵁");
+              return;
+            }
+            // 澶勭悊鎺ュ彛杩斿洖鐨勬暟鎹�
+            this.questionList = res.data.svyLibTemplateScriptVOS.map((item) => {
+              return {
+                ...item,
+                scriptResult: item.scriptType === 2 ? [] : null,
+              };
+            });
+
+            // 鏍规嵁surveyType璁剧疆鏍囬鍜屾弿杩�
+            switch (this.surveyType) {
+              case 2: // 闂ㄨ瘖
+                this.surveyTitle = "闂ㄨ瘖婊℃剰搴﹁皟鏌�";
+                this.surveyDescription =
+                  "浜茬埍鐨勬偅鑰咃紝鎰熻阿鎮ㄩ�夋嫨鎴戜滑鐨勫尰鐤楁湇鍔°�備负浜嗕笉鏂彁鍗囨湇鍔¤川閲忥紝璇锋偍鑺卞嚑鍒嗛挓鏃堕棿濉啓姝ら棶鍗枫��";
+                this.completionMessage =
+                  "鎰熻阿鎮ㄥ疂璐电殑鎰忚锛佹垜浠皢涓嶆柇鏀硅繘闂ㄨ瘖鏈嶅姟璐ㄩ噺锛屼负鎮ㄦ彁渚涙洿濂界殑鍖荤枟鏈嶅姟浣撻獙銆�";
+                break;
+              case 1: // 浣忛櫌
+                this.surveyTitle = "浣忛櫌婊℃剰搴﹁皟鏌�";
+                this.surveyDescription =
+                  "浜茬埍鐨勬偅鑰呭強瀹跺睘锛屾劅璋㈡偍閫夋嫨鍦ㄦ垜闄綇闄㈡不鐤椼�備负浜嗘彁鍗囦綇闄㈡湇鍔¤川閲忥紝璇锋偍濉啓姝ら棶鍗枫��";
+                this.completionMessage =
+                  "鎰熻阿鎮ㄥ鎴戜滑宸ヤ綔鐨勬敮鎸侊紒鎴戜滑灏嗘牴鎹偍鐨勫弽棣堟寔缁敼杩涗綇闄㈡湇鍔¤川閲忥紝绁濇偍鏃╂棩搴峰锛�";
+                break;
+              case 3: // 鎶曡瘔寤鸿
+                this.surveyTitle = "鎶曡瘔寤鸿鍙嶉";
+                this.surveyDescription =
+                  "灏婃暚鐨勫鎴凤紝鎰熻阿鎮ㄦ娊鍑哄疂璐垫椂闂存彁渚涘弽棣堛�傛偍鐨勬剰瑙佸鎴戜滑鏀硅繘鏈嶅姟闈炲父閲嶈銆�";
+                this.completionMessage =
+                  "鎰熻阿鎮ㄧ殑鍙嶉锛佹垜浠凡鏀跺埌鎮ㄧ殑鎶曡瘔/寤鸿锛屽皢灏藉揩澶勭悊骞朵笌鎮ㄨ仈绯汇��";
+                break;
+              default:
+                this.useTestData(1); // 榛樿浣跨敤闂ㄨ瘖鏁版嵁
+            }
+          } else {
+            // 鎺ュ彛鏃犳暟鎹垨澶辫触锛屼娇鐢ㄦ祴璇曟暟鎹�
+            // this.useTestData(this.surveyType);
+          }
+        })
+        .catch(() => {
+          console.error("鏁版嵁鑾峰彇澶辫触:", error);
+          this.hasError = true;
+          this.errorMessage =
+            error.message || "闂嵎鏁版嵁鍔犺浇澶辫触锛岃妫�鏌ョ綉缁滆繛鎺ュ悗閲嶈瘯";
+          this.$message.error("鏁版嵁鍔犺浇澶辫触");
+          // 鎺ュ彛璋冪敤澶辫触锛屼娇鐢ㄦ祴璇曟暟鎹�
+          // this.useTestData(this.surveyType);
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    handleDeptChange(value) {
+      this.selectedDept = value;
+      // 鍙互鍦ㄨ繖閲屾坊鍔犲叾浠栧鐞嗛�昏緫
+    },
+    // 浣跨敤娴嬭瘯鏁版嵁
+    useTestData(surveyType) {
+      const type = [1, 2, 3].includes(surveyType) ? surveyType : 1;
+      const testData = this.testData[type];
+
+      this.surveyTitle = testData.title;
+      this.surveyDescription = testData.description;
+      this.questionList = testData.questions;
+      this.completionMessage = testData.completionMessage;
+    },
+
+    // 鎻愪氦璋冩煡闂嵎锛堢洿鎺ユ彁浜わ紝涓嶇粡杩囩紦瀛橈級
+    async submitSurvey() {
+      // 楠岃瘉蹇呭~椤�
+      if (this.hasUnansweredRequiredQuestions()) {
+        this.$message.error("璇峰畬鎴愭墍鏈夊繀濉棶棰樺悗鍐嶆彁浜�");
+        return;
+      }
+
+      try {
+        const submitData = this.prepareSubmitData();
+        const res = await saveMYDQuestionAnswer(submitData);
+
+        if (res.code === 200) {
+          this.accomplish = "闂嵎宸叉彁浜�";
+          this.$message.success("鎻愪氦鎴愬姛锛佹劅璋㈡偍鐨勫弽棣堛��");
+        } else {
+          this.$message.error(res.msg || "鎻愪氦澶辫触锛岃绋嶅悗鍐嶈瘯");
+        }
+      } catch (error) {
+        this.$message.error("缃戠粶閿欒锛屾彁浜ゅけ璐�");
+        console.error("鎻愪氦澶辫触:", error);
+      }
+    },
+
+    // 妫�鏌ユ槸鍚︽湁鏈洖绛旂殑蹇呭~闂
+    hasUnansweredRequiredQuestions() {
+      return this.questionList.some((question) => {
+        return (
+          question.required &&
+          (question.scriptResult === null ||
+            question.scriptResult === "" ||
+            (Array.isArray(question.scriptResult) &&
+              question.scriptResult.length === 0))
+        );
+      });
+    },
+
+    // 鍑嗗鎻愪氦鏁版嵁
+    prepareSubmitData() {
+      // 鍒涘缓绉戝閫夋嫨闂瀵硅薄
+      const deptQuestion = {
+        scriptId: "dept_selection", // 鑷畾涔塈D
+        scriptType: 4, // 4琛ㄧず闂瓟绫诲瀷
+        scriptContent: "閫夋嫨鐨勭瀹�",
+        scriptResult: this.selectedDept || "", // 瀛樺偍閫夋嫨鐨勭瀹ゅ悕绉�
+        required: false, // 闈炲繀濉�
+        sort: 999,
+        nextScriptno: "1",
+      };
+
+      return {
+        taskId: this.encryptedParams.param1,
+        serialnum: this.encryptedParams.param2 || this.encryptedParams.param3,
+        mzzy: this.surveyType,
+        svyLibTemplateScriptVOS: [
+          deptQuestion, // 灏嗙瀹ら�夋嫨浣滀负绗竴涓棶棰�
+          ...this.questionList.map((item) => {
+            return {
+              scriptId: item.scriptId,
+              scriptType: item.scriptType,
+              scriptResult:
+                item.scriptType === 2
+                  ? (item.scriptResult || []).join("&")
+                  : item.scriptResult || "",
+              nextScriptno: item.nextScriptno,
+              score: item.score,
+              prompt: item.prompt,
+              ...item,
+            };
+          }),
+        ],
+        excep: this.checkAbnormalOptions() ? 1 : 0,
+      };
+    },
+
+    // 妫�鏌ュ紓甯搁�夐」
+    checkAbnormalOptions() {
+      return this.questionList.some((question) => {
+        if (!question.scriptResult) return false;
+
+        if (question.scriptType === 1) {
+          // 鍗曢�夐寮傚父妫�鏌�
+          const selectedOption = question.svyLibTemplateTargetoptions.find(
+            (opt) => opt.optioncontent === question.scriptResult
+          );
+          return selectedOption?.isabnormal;
+        } else if (question.scriptType === 2) {
+          // 澶氶�夐寮傚父妫�鏌�
+          return question.scriptResult.some((answer) => {
+            const option = question.svyLibTemplateTargetoptions.find(
+              (opt) => opt.optioncontent === answer
+            );
+            return option?.isabnormal;
+          });
+        }
+        return false;
+      });
+    },
+
+    // 澶勭悊鍗曢�夐�夐」鍙樺寲
+    handleOptionChange(selectedValue, index, question) {
+      const selectedOption = question.svyLibTemplateTargetoptions.find(
+        (option) => option.optioncontent === selectedValue
+      );
+
+      if (selectedOption) {
+        this.questionList[index].nextScriptno = selectedOption.nextQuestion;
+        this.questionList[index].score = selectedOption.score;
+        this.questionList[index].prompt = selectedOption.prompt;
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+/* 鍩虹鏍峰紡鍙橀噺 */
+:root {
+  --primary-color: #1a73e8; /* 榛樿钃濊壊 */
+  --secondary-color: #34d399; /* 榛樿缁胯壊 */
+  --alert-color: #ed8936; /* 榛樿姗欒壊 */
+}
+
+/* 闂ㄨ瘖鏍峰紡鍙橀噺 */
+.survey-type-1 {
+  --primary-color: #1a73e8; /* 鍖荤枟钃� */
+  --secondary-color: #34d399; /* 鍋ュ悍缁� */
+  --alert-color: #ed8936; /* 璀︾ず姗� */
+}
+
+/* 浣忛櫌鏍峰紡鍙橀噺 */
+.survey-type-2 {
+  --primary-color: #5a67d8; /* 娣辫摑绱� */
+  --secondary-color: #667eea; /* 娴呰摑绱� */
+  --alert-color: #f56565; /* 璀︾ず绾� */
+}
+
+/* 鎶曡瘔寤鸿鏍峰紡鍙橀噺 */
+.survey-type-3 {
+  --primary-color: #e53e3e; /* 绱ф�ョ孩 */
+  --secondary-color: #f6ad55; /* 璀︾ず榛� */
+  --alert-color: #f56565; /* 璀︾ず绾� */
+}
+
+.questionnaire {
+  font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+  color: #333;
+  transition: all 0.3s ease;
+
+  /* 鏍规嵁surveyType搴旂敤涓嶅悓鐨勪富棰� */
+  &.survey-type-1 {
+    background-color: #f5f9fc;
+    --theme-gradient: linear-gradient(135deg, #1a73e8, #34d399);
+  }
+
+  &.survey-type-2 {
+    background-color: #f8f9ff;
+    --theme-gradient: linear-gradient(135deg, #5a67d8, #667eea);
+  }
+
+  &.survey-type-3 {
+    background-color: #fff5f5;
+    --theme-gradient: linear-gradient(135deg, #e53e3e, #f6ad55);
+  }
+}
+.dept-select-container {
+  margin: 20px 0;
+  padding: 20px;
+  background-color: #f8fafc;
+  border-radius: 8px;
+  border: 1px solid #e2e8f0;
+}
+
+/* 璋冩暣涓嬫媺閫夐」鏍峰紡 */
+.el-select-dropdown__item {
+  display: flex;
+  justify-content: space-between;
+}
+/* 涓嬫媺妗嗘牱寮忚皟鏁� */
+::v-deep .dept-select-dropdown {
+  max-height: 400px; /* 闄愬埗鏈�澶ч珮搴� */
+  overflow-y: auto; /* 娣诲姞婊氬姩鏉� */
+
+  .el-select-dropdown__item {
+    display: flex;
+    justify-content: space-between;
+    padding: 0 20px;
+    height: auto;
+    line-height: 36px;
+
+    span {
+      display: inline-block;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+    }
+
+    /* 鍚嶇О閮ㄥ垎 */
+    span:first-child {
+      width: 60%;
+      text-align: left;
+    }
+
+    /* 缂栫爜閮ㄥ垎 */
+    span:last-child {
+      width: 40%;
+      text-align: right;
+    }
+  }
+}
+
+/* 绉诲姩绔�傞厤 */
+@media (max-width: 768px) {
+  ::v-deep .dept-select-dropdown {
+    max-width: 100vw; /* 闄愬埗鏈�澶у搴︿负瑙嗗彛瀹藉害 */
+    width: auto !important;
+    left: 10px !important;
+    right: 10px !important;
+
+    .el-select-dropdown__item {
+      span:first-child {
+        width: 50%;
+      }
+      span:last-child {
+        width: 50%;
+      }
+    }
+  }
+}
+.CONTENT {
+  max-width: 900px;
+  margin: 0 auto;
+  padding: 20px;
+
+  .title {
+    color: var(--primary-color);
+    font-size: 28px;
+    font-weight: 600;
+    margin-bottom: 15px;
+    text-align: center;
+    letter-spacing: 0.5px;
+    position: relative;
+
+    &::after {
+      content: "";
+      position: absolute;
+      bottom: -8px;
+      left: 50%;
+      transform: translateX(-50%);
+      width: 60px;
+      height: 3px;
+      background: var(--theme-gradient);
+      border-radius: 3px;
+    }
+  }
+}
+
+.preview-left {
+  margin: 20px 0;
+  margin-bottom: 100px;
+  background-color: #fff;
+  border-radius: 12px;
+  padding: 30px;
+  border: none;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
+  transition: all 0.3s ease;
+
+  &:hover {
+    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
+  }
+
+  .toptitle {
+    margin-bottom: 25px;
+
+    div {
+      color: #4a5568;
+      font-size: 18px;
+      line-height: 1.6;
+      text-align: center;
+    }
+  }
+
+  .el-divider {
+    background-color: #e2e8f0;
+    margin: 25px 0;
+  }
+
+  .topic-dev {
+    margin-bottom: 30px;
+    font-size: 17px;
+    background-color: #f8fafc;
+    border-radius: 10px;
+    padding: 20px;
+    transition: all 0.3s ease;
+    position: relative;
+    overflow: hidden;
+
+    &:hover {
+      background-color: #f1f5f9;
+    }
+
+    /* 娣诲姞绫诲瀷鏍囪瘑灏忔爣绛� */
+    &::before {
+      content: "";
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 4px;
+      height: 100%;
+      background: var(--primary-color);
+    }
+
+    .dev-text {
+      margin-bottom: 18px;
+      font-weight: 500;
+      color: #2d3748;
+      font-size: 18px;
+      line-height: 1.6;
+
+      span[style*="color: #3ba2f7"] {
+        font-size: 14px;
+        margin-left: 8px;
+        color: var(--primary-color) !important;
+      }
+    }
+  }
+}
+
+.preview-lefts {
+  margin: 20px 0;
+  background-color: #fff;
+  border-radius: 12px;
+  padding: 40px;
+  min-height: 400px;
+  border: none;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+
+  .completion-message {
+    padding: 40px;
+    max-width: 600px;
+
+    .thank-you {
+      font-size: 32px;
+      color: var(--primary-color);
+      font-weight: 600;
+      margin-bottom: 25px;
+      position: relative;
+      display: inline-block;
+
+      &::after {
+        content: "";
+        position: absolute;
+        bottom: -10px;
+        left: 50%;
+        transform: translateX(-50%);
+        width: 80px;
+        height: 3px;
+        background: var(--theme-gradient);
+        border-radius: 3px;
+      }
+    }
+
+    .feedback-message {
+      font-size: 20px;
+      line-height: 1.7;
+      color: #4a5568;
+      margin: 0 auto;
+    }
+  }
+}
+
+.red-star {
+  ::v-deep .el-radio__label,
+  ::v-deep .el-checkbox__label {
+    position: relative;
+    padding-right: 20px;
+
+    &::after {
+      content: "*";
+      color: #ef4444;
+      position: absolute;
+      right: 0;
+      top: 0;
+      font-size: 16px;
+    }
+  }
+}
+.loading-state {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  min-height: 60vh;
+  padding: 40px;
+
+  .loading-spinner {
+    text-align: center;
+
+    .el-icon-loading {
+      font-size: 48px;
+      color: var(--primary-color);
+      margin-bottom: 16px;
+      animation: rotating 2s linear infinite;
+    }
+
+    p {
+      color: #666;
+      font-size: 16px;
+    }
+  }
+}
+
+.empty-state,
+.error-state {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  min-height: 60vh;
+  padding: 40px;
+
+  .empty-content,
+  .error-content {
+    text-align: center;
+    max-width: 400px;
+
+    h3 {
+      color: #666;
+      font-size: 20px;
+      margin: 16px 0 12px;
+      font-weight: 500;
+    }
+
+    p {
+      color: #999;
+      font-size: 14px;
+      margin-bottom: 24px;
+      line-height: 1.6;
+    }
+  }
+}
+
+.error-state {
+  .error-content {
+    h3 {
+      color: #f56c6c;
+    }
+  }
+}
+
+@keyframes rotating {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+/* 鍝嶅簲寮忚皟鏁� */
+@media (max-width: 768px) {
+  .loading-state,
+  .empty-state,
+  .error-state {
+    padding: 20px;
+    min-height: 50vh;
+
+    .el-icon-loading,
+    .el-icon-document,
+    .el-icon-warning {
+      font-size: 40px !important;
+    }
+
+    h3 {
+      font-size: 18px !important;
+    }
+
+    p {
+      font-size: 13px !important;
+    }
+  }
+}
+::v-deep {
+  .el-checkbox-group {
+    display: flex;
+    flex-direction: column;
+    margin: 15px 0;
+    gap: 12px;
+  }
+
+  .el-radio-group {
+    display: flex;
+    flex-direction: column;
+    margin: 15px 0;
+    gap: 12px;
+  }
+
+  .el-radio.is-bordered,
+  .el-checkbox.is-bordered {
+    width: 100%;
+    margin-right: 0;
+    margin-bottom: 10px;
+    max-width: 400px;
+    padding: 14px 20px 14px 15px;
+    border-radius: 8px;
+    height: auto;
+    min-height: 50px;
+    border: 1px solid #e2e8f0;
+    transition: all 0.3s ease;
+    margin-left: 0 !important;
+    margin-top: 0 !important;
+    .el-radio-group,
+    .el-checkbox-group {
+      align-items: center;
+    }
+    &:hover {
+      border-color: var(--primary-color);
+      box-shadow: 0 2px 8px rgba(var(--primary-color), 0.15);
+    }
+
+    &.is-checked {
+      border-color: var(--primary-color);
+      background-color: rgba(var(--primary-color), 0.05);
+    }
+  }
+
+  .el-radio__label,
+  .el-checkbox__label {
+    font-size: 16px;
+    color: #2d3748;
+  }
+
+  .el-alert--warning.is-light {
+    background-color: #fff8f0;
+    color: var(--alert-color);
+    margin-top: 15px;
+    border-radius: 8px;
+    border-left: 4px solid var(--alert-color);
+
+    .el-alert__title {
+      font-size: 15px;
+      line-height: 1.6;
+      color: var(--alert-color);
+    }
+
+    .el-alert__closebtn {
+      color: var(--alert-color);
+    }
+  }
+
+  .el-textarea__inner {
+    font-size: 16px;
+    border-radius: 8px;
+    border: 1px solid #e2e8f0;
+    padding: 12px 15px;
+    transition: all 0.3s ease;
+    min-height: 100px;
+
+    &:focus {
+      border-color: var(--primary-color);
+      box-shadow: 0 0 0 2px rgba(var(--primary-color), 0.2);
+    }
+
+    &::placeholder {
+      color: #a0aec0;
+    }
+  }
+
+  .el-radio__input.is-checked .el-radio__inner {
+    background-color: var(--primary-color);
+    border-color: var(--primary-color);
+  }
+
+  .el-checkbox__input.is-checked .el-checkbox__inner {
+    background-color: var(--primary-color);
+    border-color: var(--primary-color);
+  }
+
+  .el-radio__inner,
+  .el-checkbox__inner {
+    width: 18px;
+    height: 18px;
+  }
+}
+
+.bottom-fixed {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  text-align: center;
+  padding: 10px 0;
+  background: var(--theme-gradient);
+  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
+  z-index: 1000;
+  transition: all 0.3s ease;
+
+  .el-button {
+    height: 56px;
+    font-size: 18px;
+    font-weight: 500;
+    letter-spacing: 0.5px;
+    border-radius: 8px;
+    background-color: #fff;
+    color: var(--primary-color);
+    border: none;
+    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+    transition: all 0.3s ease;
+    width: 80%;
+    max-width: 400px;
+    position: relative;
+    overflow: hidden;
+
+    &::before {
+      content: "";
+      position: absolute;
+      top: 0;
+      left: -100%;
+      width: 100%;
+      height: 100%;
+      background: linear-gradient(
+        90deg,
+        transparent,
+        rgba(255, 255, 255, 0.4),
+        transparent
+      );
+      transition: all 0.5s ease;
+    }
+
+    &:hover {
+      transform: translateY(-2px);
+      box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
+
+      &::before {
+        left: 100%;
+      }
+    }
+
+    &:active {
+      transform: translateY(0);
+    }
+  }
+}
+
+/* 鍝嶅簲寮忚璁� */
+@media (max-width: 768px) {
+  .questionnaire {
+    .CONTENT {
+      padding: 15px;
+    }
+
+    .preview-left,
+    .preview-lefts {
+      padding: 20px;
+      margin-bottom: 80px;
+    }
+
+    .title {
+      font-size: 24px !important;
+    }
+
+    .dev-text {
+      font-size: 16px !important;
+    }
+
+    .bottom-fixed .el-button {
+      height: 50px;
+      font-size: 16px;
+      width: 90%;
+    }
+  }
+}
+</style>
diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue
index bb119e0..3177092 100644
--- a/src/views/sfstatistics/percentage/index.vue
+++ b/src/views/sfstatistics/percentage/index.vue
@@ -187,7 +187,7 @@
                     </el-table-column>
                     <el-table-column align="center" label="棣栨鍑洪櫌闅忚">
                       <el-table-column
-                        label="搴旈殢璁�"
+                        label="闇�闅忚"
                         align="center"
                         key="needFollowUp"
                         prop="needFollowUp"
@@ -273,7 +273,7 @@
                     </el-table-column>
                     <el-table-column align="center" label="鍐嶆鍑洪櫌闅忚">
                       <el-table-column
-                        label="搴旈殢璁�"
+                        label="闇�闅忚"
                         align="center"
                         key="needFollowUpAgain"
                         prop="needFollowUpAgain"
@@ -382,7 +382,7 @@
               </el-table-column>
               <el-table-column align="center" label="棣栨鍑洪櫌闅忚">
                 <el-table-column
-                  label="搴旈殢璁�"
+                  label="闇�闅忚"
                   align="center"
                   key="needFollowUp"
                   prop="needFollowUp"
@@ -466,7 +466,7 @@
               </el-table-column>
               <el-table-column align="center" label="鍐嶆鍑洪櫌闅忚">
                 <el-table-column
-                  label="搴旈殢璁�"
+                  label="闇�闅忚"
                   align="center"
                   key="needFollowUpAgain"
                   prop="needFollowUpAgain"
@@ -917,51 +917,7 @@
       sidecolumnval: "", //绫诲埆鎼滅储
       propss: { multiple: true },
       SeedetailsVisible: false,
-      options: [
-        {
-          value: 1,
-          label: "鐩戞祴璇勪及",
-        },
-        {
-          value: 2,
-          label: "鍑洪櫌闅忚",
-        },
-        {
-          value: 3,
-          label: "闂ㄨ瘖闅忚",
-        },
-        {
-          value: 4,
-          label: "瀹f暀鍏虫��",
-        },
-        {
-          value: 5,
-          label: "澶嶈瘖绠$悊",
-        },
-
-        {
-          value: 7,
-          label: "鎮h�呮姤鍛�",
-        },
-
-        {
-          value: 9,
-          label: "浣撴闅忚",
-        },
-
-        {
-          value: 11,
-          label: "褰卞儚闅忚",
-        },
-        {
-          value: 12,
-          label: "蹇冪數闅忚",
-        },
-        {
-          value: 13,
-          label: "涓撶梾闅忚",
-        },
-      ],
+      options: store.getters.tasktypes,
       pickerOptions: {
         disabledDate(time) {
           return time.getTime() < Date.now() - 3600 * 1000 * 24;
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 4a0cfcc..71bb1b1 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -846,7 +846,6 @@
         }
         console.log(this.form.wardCodes, "wardCodes");
         console.log(this.form.deptCodes, "deptCodes");
-
         this.postOptions = response.posts;
         this.roleOptions = response.roles;
         this.$set(this.form, "postIds", response.postIds);
@@ -927,7 +926,7 @@
     adduserdept() {
       if (this.form.wardCodes[0]) {
         this.form.wardCodes.forEach((dept) => {
-          const containsId8 = null;
+          let containsId8 = null;
           if (this.belongWards) {
             containsId8 = this.belongWards.some(
               (item) => item.deptCode == dept
@@ -948,7 +947,7 @@
       }
       if (this.form.deptCodes[0]) {
         this.form.deptCodes.forEach((dept) => {
-          const containsId8 = null;
+          let containsId8 = null;
           if (this.belongDepts) {
             containsId8 = this.belongDepts.some(
               (item) => item.deptCode == dept
diff --git a/src/views/system/user/profile/index.vue b/src/views/system/user/profile/index.vue
index 5321727..0918602 100644
--- a/src/views/system/user/profile/index.vue
+++ b/src/views/system/user/profile/index.vue
@@ -24,20 +24,93 @@
                 <div class="pull-right">{{ user.email }}</div>
               </li>
               <li class="list-group-item" v-if="user.belongWards[0]">
-                <svg-icon icon-class="tree" />鎵�灞為櫌鍖�
-                <div class="pull-right" >{{ user.belongWards[0].districtName }}</div>
+                <svg-icon icon-class="tree" />鎵�灞炵梾鍖�
+                <div class="pull-right">
+                  <el-popover
+                    v-model="showAllWardsPopover"
+                    placement="right-start"
+                    :width="300"
+                    trigger="manual"
+                    popper-class="ward-popover"
+                  >
+                    <div class="popover-content">
+                      <p
+                        v-for="ward in user.belongWards"
+                        :key="ward.districtId"
+                        class="popover-item"
+                      >
+                        {{ ward.districtName }}
+                      </p>
+                    </div>
+                    <!-- 闇�瑕佷竴涓┖鍏冪礌浣滀负瑙﹀彂鍣ㄧ殑寮曠敤 -->
+                    <!-- <div style="display: none" slot="reference"></div> -->
+                    <div slot="reference">
+                      <el-tag
+                        v-for="(ward, index) in displayWards"
+                        :key="ward.districtId"
+                        size="small"
+                        class="ward-tag"
+                        >{{ ward.districtName }}</el-tag
+                      >
+                      <!-- 鏄剧ず闅愯棌鏁伴噺鐨勬爣绛撅紝鐐瑰嚮瑙﹀彂Popover -->
+                      <el-tag
+                        v-if="user.belongWards.length > maxTagCount"
+                        size="small"
+                        class="more-tag"
+                        @click="showAllWardsPopover = !showAllWardsPopover"
+                        >+{{ user.belongWards.length - maxTagCount }}</el-tag
+                      >
+                    </div>
+                  </el-popover>
+                </div>
               </li>
               <li class="list-group-item" v-else>
                 <svg-icon icon-class="tree" />鎵�灞為櫌鍖�
-                <div class="pull-right" >鏈厤缃�</div>
+                <div class="pull-right">鏈厤缃�</div>
               </li>
               <li class="list-group-item" v-if="user.belongDepts[0]">
                 <svg-icon icon-class="tree" />鎵�灞炵瀹�
-                <div class="pull-right" >{{ user.belongDepts[0].deptName }}</div>
+                <div class="pull-right">
+                  <el-popover
+                    v-model="showAllDeptsPopover"
+                    placement="right-start"
+                    :width="300"
+                    style="top: 130px; left: 0px"
+                    trigger="manual"
+                    popper-class="dept-popover"
+                  >
+                    <div class="popover-content">
+                      <p
+                        v-for="dept in user.belongDepts"
+                        :key="dept.deptId"
+                        class="popover-item"
+                      >
+                        {{ dept.deptName }}
+                      </p>
+                    </div>
+                    <!-- <div style="display: none" slot="reference"></div> -->
+                    <div slot="reference">
+                      <el-tag
+                        v-for="(dept, index) in displayDepts"
+                        :key="dept.deptId"
+                        size="small"
+                        class="dept-tag"
+                        >{{ dept.deptName }}</el-tag
+                      >
+                      <el-tag
+                        v-if="user.belongDepts.length > maxTagCount"
+                        size="small"
+                        class="more-tag"
+                        @click="showAllDeptsPopover = !showAllDeptsPopover"
+                        >+{{ user.belongDepts.length - maxTagCount }}</el-tag
+                      >
+                    </div>
+                  </el-popover>
+                </div>
               </li>
               <li class="list-group-item" v-else>
                 <svg-icon icon-class="tree" />鎵�灞炵瀹�
-                <div class="pull-right" >鏈厤缃�</div>
+                <div class="pull-right">鏈厤缃�</div>
               </li>
               <li class="list-group-item">
                 <svg-icon icon-class="peoples" />鎵�灞炶鑹�
@@ -84,20 +157,83 @@
       user: {},
       roleGroup: {},
       postGroup: {},
-      activeTab: "userinfo"
+      activeTab: "userinfo",
+      maxTagCount: 3, // 鎺у埗榛樿鏄剧ず鐨勬爣绛炬暟閲�
+      showAllWardsPopover: false, // 鎺у埗鐥呭尯Popover鐨勬樉绀�
+      showAllDeptsPopover: false, // 鎺у埗绉戝Popover鐨勬樉绀�
     };
+  },
+  computed: {
+    // 璁$畻瑕佹樉绀虹殑鐥呭尯鏍囩锛堝墠maxTagCount涓級
+    displayWards() {
+      if (!this.user.belongWards) return [];
+      return this.user.belongWards.slice(0, this.maxTagCount);
+    },
+    // 璁$畻瑕佹樉绀虹殑绉戝鏍囩锛堝墠maxTagCount涓級
+    displayDepts() {
+      if (!this.user.belongDepts) return [];
+      return this.user.belongDepts.slice(0, this.maxTagCount);
+    },
   },
   created() {
     this.getUser();
   },
   methods: {
     getUser() {
-      getUserProfile().then(response => {
+      getUserProfile().then((response) => {
         this.user = response.data;
         this.roleGroup = response.roleGroup;
         this.postGroup = response.postGroup;
       });
-    }
-  }
+    },
+  },
 };
 </script>
+
+<style scoped>
+/* 涓烘爣绛炬坊鍔犱竴浜涘彸杈硅窛锛屼娇鍏朵笉绱ц创鍦ㄤ竴璧� */
+.ward-tag,
+.dept-tag,
+.more-tag {
+  margin-right: 6px;
+  margin-bottom: 4px;
+}
+/* 璁剧疆"鏇村"鏍囩鐨勬牱寮忥紝浣垮叾鐪嬭捣鏉ュ彲鐐瑰嚮 */
+.more-tag {
+  cursor: pointer;
+  background-color: #f0f0f0;
+  border-color: #ddd;
+  color: #999;
+}
+.list-group-item {
+  display: flex;
+  align-items: center;
+}
+.pull-right {
+  flex: 1;
+  text-align: right;
+}
+</style>
+
+<style>
+/* Popover鍐呭鍖哄煙鏍峰紡 */
+.popover-content {
+  max-height: 200px;
+  overflow-y: auto;
+  padding: 10px;
+}
+.popover-item {
+  margin: 8px 0;
+  line-height: 1.4;
+}
+/* 鐥呭尯Popover鏍峰紡 */
+.ward-popover.el-popover,
+.dept-popover.el-popover {
+  max-width: 300px;
+}
+/* 璋冩暣Popover绠ご浣嶇疆 */
+.ward-popover[x-placement^="right"],
+.dept-popover[x-placement^="right"] {
+  margin-left: 10px;
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index 447ffb1..b7977e3 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,9 +36,10 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `https://www.health-y.cn/lssf`,
-        // target: `http://10.202.20.185:8095`,
-        // target: `http://192.168.100.195:8095`,
-        target:`http://localhost:8095`,
+        target: `http://192.168.100.158:8095`,
+        // target: `http://192.168.100.10:8096`,
+        // target:`http://localhost:8095`,
+        // target:`http://35z1t16164.qicp.vip`,
         // target: `http://192.168.100.193:8095`,
         // target: `http://192.168.101.166:8093`,
         // target: `http://192.168.191.181:8095`,

--
Gitblit v1.9.3