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