From 6bc24b57837948408cfc4812bbab6ac2f9f4a3dc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 15 九月 2025 16:41:26 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/tasklist/index.vue           |  139 +++++++++++
 src/assets/order/Xftp-8.0.0084p.exe                |    0 
 dist.zip                                           |    0 
 src/views/login.vue                                |    3 
 vue.config.js                                      |    4 
 src/views/system/user/profile/index.vue            |  154 ++++++++++++
 src/components/PatientSelection/index.vue          |  336 ++++++++++++++++++++++++++++
 src/views/outsideChainwtnew.vue                    |   47 ++-
 src/views/patient/propaganda/QuestionnaireTask.vue |   29 +
 9 files changed, 661 insertions(+), 51 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/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/components/PatientSelection/index.vue b/src/components/PatientSelection/index.vue
new file mode 100644
index 0000000..9fc4498
--- /dev/null
+++ b/src/components/PatientSelection/index.vue
@@ -0,0 +1,336 @@
+<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.icdname }}
+            </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="鐤剧梾鍚嶇О" prop="name">
+                <el-input
+                  v-model="patientqueryParams.icdname"
+                  placeholder="璇疯緭鍏ョ柧鐥呭悕绉�"
+                  @keyup.enter.native="handleAddpatient"
+                />
+              </el-form-item>
+
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="medium"
+                  @click="handleAddpatient"
+                  >鎼滅储</el-button
+                >
+                <el-button
+                  icon="el-icon-refresh"
+                  size="medium"
+                  @click="resetQuery"
+                  >閲嶇疆</el-button
+                >
+              </el-form-item>
+            </el-form>
+            <!-- 閫夋嫨鍣ㄥ畼鍒楄〃 -->
+            <el-table
+              ref="multipleTable"
+              :data="donorchargeList"
+              tooltip-effect="dark"
+              style="width: 100%"
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column class="checkall" type="selection" width="55">
+              </el-table-column>
+              <el-table-column
+                prop="icdid"
+                label="鐤剧梾缂栧彿"
+                width="100"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column label="鐤剧梾鍚嶇О" show-overflow-tooltip>
+                <template slot-scope="scope">{{ scope.row.icdname }}</template>
+              </el-table-column>
+
+              <el-table-column prop="icdcode" label="鐤剧梾缂栫爜" width="150">
+              </el-table-column>
+            </el-table>
+          </el-row>
+          <pagination
+            v-show="patienttotal > 0"
+            :total="patienttotal"
+            :page.sync="patientqueryParams.pageNum"
+            :limit.sync="patientqueryParams.pageSize"
+            @pagination="handleAddpatient"
+          />
+        </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 } from "@/api/AiCentre/index";
+export default {
+  name: "Diseasetotality",
+  data() {
+    return {
+      patienttotal: 0, //
+      // 褰撳墠椤甸�変腑鏁版嵁
+      multipleSelection: [],
+      // 鎬婚�変腑鏁版嵁
+      // overallCase: [],
+      patientqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      donorchargeList: [],
+      donorchargeanlList: [], //妗堜緥鍒楄〃
+    };
+  },
+
+  props: {
+    dialogVisiblepatient: {
+      type: Boolean,
+      default: () => {
+        return false;
+      },
+    },
+    // 閫変腑
+    overallCase: {
+      type: Array,
+      required: true,
+      default: () => [],
+    },
+    pids: {
+      type: Array,
+      required: true,
+      default: () => [],
+    },
+    allhosp: {
+      type: String,
+      required: true,
+      default: () => [],
+    },
+    // 5闂嵎妯℃澘銆�3闅忚妯℃澘銆�6瀹f暀
+    type: {
+      type: Number,
+      default: () => {
+        return 5;
+      },
+    },
+  },
+
+  created() {},
+
+  mounted() {
+    // this.handleAddpatient();
+  },
+
+  watch: {},
+
+  methods: {
+    handleClosehz() {
+      this.$emit("addoption");
+    },
+    // 閫夋嫨鏁版嵁鏍囩鍒犻櫎浜嬩欢
+    handleClose(item) {
+      console.log(item);
+      if (this.multipleSelection.indexOf(item) == -1 && !item.outid) {
+        console.log(1);
+        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.icdname = null;
+      this.handleAddpatient();
+    },
+    // 瑙﹀彂鏌ヨ浜嬩欢
+    handleAddpatient(row) {
+      this.$emit("kkoption");
+
+      getillnesslist(this.patientqueryParams).then((res) => {
+        this.donorchargeList = res.rows;
+        this.patienttotal = res.total;
+        this.Restorecheck();
+      });
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    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.icdname != item.icdname)) {
+          this.overallCase.push(item);
+        }
+      });
+      console.log(this.multipleSelection, "瑙﹀彂閫夋嫨鍚巑ultipleSelection");
+    },
+    // 鍒囨崲椤靛悗鎭㈠閫変腑
+    Restorecheck() {
+      console.log(this.overallCase, "this.overallCase");
+      const allid = this.overallCase.map((item) => item.icdname);
+      const overlap = this.donorchargeList.filter((value) => {
+        return allid.includes(value.icdname);
+      });
+      // 淇濇寔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() {
+      this.$emit("addoption");
+    },
+  },
+};
+</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/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index e04e587..a3f2c46 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -250,8 +250,14 @@
               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
+              size="medium"
+              type="text"
+              @click="handleAddpatient(scope.row)"
+              ><span class="button-hz"
+                ><i class="el-icon-circle-plus-outline"></i>鏂板鎮h��</span
               ></el-button
             >
             <el-button
@@ -259,9 +265,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 +377,15 @@
         >
       </div>
     </el-dialog>
+    <!-- 閫夋嫨鎮h�呭脊妗� -->
+    <Patient-Selection
+      ref="Patient"
+      :dialogVisiblepatient="dialogVisiblepatient"
+      :overallCase="Patientlist"
+      :tableLabel="tableLabelhz"
+      @addoption="dialogVisiblepatient = false"
+      @kkoption="dialogVisiblepatient = true"
+    />
   </div>
 </template>
 
@@ -396,7 +409,8 @@
   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";
 
@@ -441,6 +455,8 @@
         showTimeNight: [],
         showTimeNoon: [],
       },
+      dialogVisiblepatient: false,
+      Patientlist: [],
       taskformVisible: false,
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
@@ -1041,6 +1057,111 @@
       const item = data.find((item) => item.value === value);
       return item ? item.label : null;
     },
+    //鎮h�呮坊鍔犵浉鍏�
+    handleAddpatient(row) {
+      this.allpids = [];
+      this.overallCase.forEach((item) => {
+        this.allpids.push(item.patid);
+      });
+      if (this.patientqueryParams.allhosp == 4) {
+        this.tableLabelhz = [
+          // { 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.tableLabelhz = [
+          { 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" },
+        ];
+      }
+      if (this.allpids[0]) {
+        this.patientqueryParams.pids = this.allpids;
+      } else {
+        this.patientqueryParams.pids = null;
+      }
+      // 鏉ユ簮鍒ゆ柇
+
+      if (this.patientqueryParams.allhosp == 4) {
+        this.patientqueryParams.hospitaldistrictcodes = [];
+        this.patientqueryParams.deptcodes = [];
+      } else if (this.patientqueryParams.allhosp == 1) {
+        this.patientqueryParams.deptcodes =
+          this.patientqueryParams.leaveldeptcodes;
+        this.patientqueryParams.hospitaldistrictcodes =
+          this.patientqueryParams.leavehospitaldistrictcodes;
+        this.patientqueryParams.leavehospitaldistrictcodes = [];
+        this.patientqueryParams.leaveldeptcodes = [];
+      }
+      getTaskpatientQC(this.patientqueryParams).then((response) => {
+        this.patientuserList = response.rows;
+        this.patientuserList.forEach((item) => {
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+        });
+        this.patienttotal = response.total;
+        this.loading = false;
+        this.Restorecheck();
+      });
+      this.dialogVisiblepatient = true;
+    },
+    // 鏌ヨ
+    handleQuery() {
+      // 鑾峰彇澶栭儴鎮h��
+
+      if (this.patientqueryParams.allhosp == 6) {
+        this.Externallist();
+        console.log();
+
+        return;
+      }
+      if (this.patientqueryParams.searchscope == 1) {
+        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.patientqueryParams.leavehospitaldistrictcodes = [];
+      } else if (this.patientqueryParams.searchscope == 2) {
+        this.patientqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+        this.patientqueryParams.leaveldeptcodes = [];
+      } else {
+        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.patientqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      if (
+        !this.patientqueryParams.leavehospitaldistrictcodes ||
+        !this.patientqueryParams.leavehospitaldistrictcodes[0]
+      )
+        this.patientqueryParams.leavehospitaldistrictcodes = null;
+      if (
+        !this.patientqueryParams.leaveldeptcodes ||
+        !this.patientqueryParams.leaveldeptcodes[0]
+      )
+        this.patientqueryParams.leaveldeptcodes = null;
+      this.handleAddpatient();
+    },
   },
 };
 </script>
@@ -1170,6 +1291,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/login.vue b/src/views/login.vue
index ddaf564..9876eac 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -119,9 +119,6 @@
         orgid: "H41010500003",
       },
       options: [
-        { value: "H41010500003", label: "娌冲崡涓尰鑽ぇ瀛︾涓�闄勫睘鍖婚櫌" },
-        { value: "H41082200269", label: "鍗氱埍鍘夸汉姘戝尰闄�" },
-        { value: "H41078202417", label: "杈夊幙甯備腑鍖婚櫌" },
       ],
       loginRules: {
         username: [
diff --git a/src/views/outsideChainwtnew.vue b/src/views/outsideChainwtnew.vue
index 178d0d6..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>
@@ -277,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);
@@ -409,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/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index 87d5d31..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";
 
@@ -1284,9 +1287,13 @@
             value: "5",
             label: "寰俊鍏紬鍙�",
           },
-          { label: "寰俊灏忕▼搴�", value: '6' },
+          { label: "寰俊灏忕▼搴�", value: "6" },
         ];
-      } else if (this.form.serviceType == 6||this.form.serviceType == 14||this.form.serviceType == 15) {
+      } else if (
+        this.form.serviceType == 6 ||
+        this.form.serviceType == 14 ||
+        this.form.serviceType == 15
+      ) {
         this.checkboxlist = [
           {
             value: "3",
@@ -1448,11 +1455,11 @@
         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/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 e16f02a..34fb183 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -37,8 +37,8 @@
       [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.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`,

--
Gitblit v1.9.3