| | |
| | | export * from './patientexternal' |
| | | export * from './EChartsdata' |
| | | export * from './satisfactionse' |
| | | export * from './satisfaction' |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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", |
| | | }); |
| | | } |
| | | |
| | | |
| | |
| | | **/ |
| | | |
| | | /* theme color */ |
| | | $--color-primary: #3ba2f7; |
| | | $--color-success: #13ce66; |
| | | $--color-primary: #3664D9; |
| | | $--color-success: #0ABC54; |
| | | $--color-warning: #ffba00; |
| | | $--color-danger: #ff4949; |
| | | // $--color-info: #1E1E1E; |
| | |
| | | -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; |
| | |
| | | // é»è®¤èå主é¢é£æ ¼ |
| | | $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; |
| | | |
| | | // èªå®ä¹æè²èå飿 ¼ |
| | | /** |
| | |
| | | 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", |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | }, |
| | | }, |
| | | mounted() { |
| | | console.log("å½ååæºå·", this.sipConfig); |
| | | console.log('å½ååæºå·',this.sipConfig); |
| | | |
| | | sipService.init(this.sipConfig); |
| | | sipService.onStatusChange = (status) => { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | title="æ´¾åæ£è
éæ©" |
| | | :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="æ£è
ï¼"> |
| | | <el-input |
| | | v-model="patientqueryParams.name" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
ç±»å"> |
| | | <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="æ£è
è¯æï¼"> |
| | | <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> |
| | | <!-- éæ©æ£è
å表 --> |
| | | <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: "é¢å¤æ£è
", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "ææ¯ç
人", |
| | | }, |
| | | ], |
| | | overallCase:[], |
| | | tableLabel: [ |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "inhosptime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "责任æ¤å£«", 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宣æ |
| | | 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() { |
| | | // è·åå¤é¨æ£è
|
| | | 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: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", 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: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "180", prop: "dept" }, |
| | | { label: "ç
åº", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } |
| | | console.log(this.patientqueryParams.allhosp); |
| | | |
| | | // è·åæ£è
æ°æ® |
| | | 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; |
| | | }); |
| | | }, |
| | | // è·åå¤é¨æ£è
导å
¥å表 |
| | | Externallist() { |
| | | this.tableLabel = [ |
| | | { label: "æ£è
", 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, "触åéæ©åmultipleSelection"); |
| | | }, |
| | | // 忢页忢å¤éä¸ |
| | | 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> |
| | |
| | | margin-right: 15px; |
| | | } |
| | | &.active { |
| | | background-color: #42b983; |
| | | background-color: #3664D9; |
| | | color: #fff; |
| | | border-color: #42b983; |
| | | border-color: #3664D9; |
| | | &::before { |
| | | content: ''; |
| | | background: #fff; |
| | |
| | | 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(); |
| | | }); |
| | |
| | | component: () => import('@/views/login'), |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/loginSSO', |
| | | component: () => import('@/views/loginSSO'), |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/sf', |
| | | component: () => import('@/views/outsideChainnew'), |
| | |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/satisfaction', |
| | | component: () => import('@/views/satisfaction'), |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/outsideChain', |
| | | component: () => import('@/views/outsideChain'), |
| | | hidden: true |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | </template> |
| | |
| | | </template> |
| | | <script> |
| | | |
| | | </script> |
| | | </script> |
| | |
| | | }, |
| | | }, |
| | | ], |
| | | // é访类å |
| | | tasktypes: (state) => [ |
| | | // { |
| | | // value: 16, |
| | | // label: "课é¢é访", |
| | | // raw: { |
| | | // cssClass: "", |
| | | // listClass: "", |
| | | // }, |
| | | // }, |
| | | |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "ä½é¢æ»¡æåº¦", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 14, |
| | | label: "é¨è¯æ»¡æåº¦", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 15, |
| | | label: "æè¯å»ºè®®", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | 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; |
| | |
| | | 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: "æ£è
æ¥å", |
| | | route: "followvisit/QuestionnaireTask", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | Serviceauthority: [ |
| | | { |
| | | value: "1", |
| | | label: "æ£è
æ¥å", |
| | | 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: "宣æå
³æ", |
| | | route: "followvisit/Missioncreation", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | 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"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | localStorage.setItem("deptCode", "1017"); // è¯·æ¿æ¢ä¸ºå®é
çç§å®¤ä»£ç |
| | | } else if (orgid == "H41082200269") { |
| | | localStorage.setItem("orgname", "åç±å¿äººæ°å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1400360867068907520"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | localStorage.setItem("deptCode", "01040201"); // è¯·æ¿æ¢ä¸ºå®é
çç§å®¤ä»£ç |
| | | } else if (orgid == "H41078202417") { |
| | | localStorage.setItem("orgname", "è¾å¿å¸ä¸å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000002"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | 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) { // éªè¯è¿åçrolesæ¯å¦æ¯ä¸ä¸ªé空æ°ç» |
| | | 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) { |
| | | // éªè¯è¿åçrolesæ¯å¦æ¯ä¸ä¸ªé空æ°ç» |
| | | 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; |
| | |
| | | }; |
| | | |
| | | this.currentSession = this.ua.call( |
| | | `sip:${targetNumber}@192.169.129.198`, |
| | | `sip:${targetNumber}@1192.170.66.107`, |
| | | options |
| | | ); |
| | | |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="æ£è
å§å" 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="æ£è
èå´" 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="责任æ¤å£«" |
| | | 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>æ£è
è¿æ»¤</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="宣ææ
åµ(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 ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :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: "æ£è
è¿æ»¤", |
| | | // 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: "åºé¢æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "åºé¢æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 6, |
| | | sort: 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | 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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | 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 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | 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("æ£è
è¿æ»¤æå"); |
| | | }); |
| | | |
| | | 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 + |
| | | 'æ£è
å称为"' + |
| | | 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(() => {}); |
| | | }, |
| | | // æ£è
è¿æ»¤è§¦å |
| | | 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> |
| | |
| | | </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 |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | |
| | | <div class="document"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="medium" |
| | | @click="affiliation()" |
| | | >æ¬äººæå±æå¡</el-button |
| | |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <!-- <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-tooltip |
| | |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | |
| | | </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 |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | |
| | | }); |
| | | }, |
| | | affiliation() { |
| | | |
| | | this.topqueryParams.managementDoctorCode= store.getters.hisUserId; |
| | | this.topqueryParams.managementDoctor = store.getters.hisUserId; |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | |
| | | 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ä¿åè¯å |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning("360åè½ææªå¼é"); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (row.excep == 1) { |
| | | return "warning-row"; |
| | | } else if (row.excep == 2) { |
| | | return "remind-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | |
| | | } |
| | | ::v-deep.el-table .warning-row { |
| | | background: #eec4c4; |
| | | } |
| | | ::v-deep.el-table .remind-row { |
| | | background: #fcf5aa; |
| | | } |
| | | |
| | | .documentf { |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #8df8a4; |
| | | background: #0abc54; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | .button-bb { |
| | |
| | | color: #ffffff; |
| | | } |
| | | .button-zx { |
| | | background: #4fabe9; |
| | | background: #324a9b; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | |
| | | background-color: #6b21a8; |
| | | border-color: #6b21a8; |
| | | } |
| | | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .purple-button.is-disabled { |
| | | background-color: #d8b4fe; |
| | | border-color: #d8b4fe; |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | background: #8df8a4; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-bb { |
| | | font-weight: 500; |
| | | background-color: #2ba05c; |
| | |
| | | <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']" |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="æ£è
å§å" 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="æ£è
èå´" 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="责任æ¤å£«" |
| | | 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>æ£è
è¿æ»¤</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="宣ææ
åµ(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 ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :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="æ£è
忬¡é访" :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="æ£è
åç§°"> |
| | | <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: "æ£è
è¿æ»¤", |
| | | // 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: "åºé¢æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "åºé¢æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 6, |
| | | sort: 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | 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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | 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 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning("360åè½ææªå¼é"); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | 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("æ£è
è¿æ»¤æå"); |
| | | }); |
| | | |
| | | 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() {}, |
| | | |
| | | // æ£è
è¿æ»¤è§¦å |
| | | 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> |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | >åªå±ç¤ºæ¬æ¬¡æå¡ä¿¡æ¯</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" |
| | |
| | | > |
| | | åå¾CDSSæ¥è¯¢ |
| | | </el-link> |
| | | </div> |
| | | </div> --> |
| | | <div class="merge-controls" v-if="Whetherall"> |
| | | <el-button |
| | | type="primary" |
| | |
| | | /> |
| | | </el-dialog> |
| | | <div class="action-container"> |
| | | <!-- é访å
容 --> |
| | | <div class="call-action"> |
| | | <div class="call-container"> |
| | | <!-- <div class="call-header"> |
| | |
| | | {{ 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" |
| | |
| | | <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> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 人工å¤ç --> |
| | | <div class="manual-action"> |
| | | <div class="Followuserinfos"> |
| | | <div> |
| | |
| | | @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> |
| | |
| | | CallButton, |
| | | MergeAndModify, |
| | | }, |
| | | directives: { |
| | | numericOnly: { |
| | | bind(el, binding, vnode) { |
| | | // å°è¯è·åå®é
çinputå
ç´ |
| | | const input = el.tagName === "INPUT" ? el : el.querySelector("input"); |
| | | if (!input) { |
| | | console.warn("v-numeric-only: æªæ¾å°inputå
ç´ "); |
| | | 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); |
| | | |
| | | // åå¨å¼ç¨ä»¥ä¾¿è§£ç» |
| | | 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) => { |
| | |
| | | isMergeMode: false, |
| | | mergeDialogVisible: false, |
| | | selectedServices: [], // éä¸çæå¡å表 |
| | | selectedTag: "", |
| | | tagOptions: [ |
| | | { |
| | | value: "0", |
| | | label: "æ£å¸¸", |
| | | type: "normal", |
| | | color: "#7ff5e1", |
| | | description: "æ£è
æ
嵿£å¸¸ï¼æ éç¹å«å
³æ³¨", |
| | | }, |
| | | { |
| | | value: "1", |
| | | label: "å¼å¸¸", |
| | | type: "abnormal", |
| | | color: "#f75c5c", |
| | | description: "æ£è
åå¨å¼å¸¸æ
åµï¼éè¦éç¹å
³æ³¨", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "è¦å", |
| | | type: "warning", |
| | | color: "#fbfb4a", |
| | | description: "æ£è
æ
åµéè¦è¦å注æï¼å¯è½åå¨é£é©", |
| | | }, |
| | | ], |
| | | zcrules: { |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©é访æ¹å¼", trigger: "change" }, |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning("360åè½ææªå¼é"); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | getuserinfo() { |
| | | const queryParams = { |
| | | pid: Number(this.patid), |
| | | allhosp: "0", |
| | | allhosp: "0", //1ä½é¢2é¨è¯3使£4åºé¢ |
| | | }; |
| | | // æ£è
åºç¡ä¿¡æ¯ |
| | | messagelistpatient(queryParams).then((response) => { |
| | |
| | | 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 |
| | | ); |
| | |
| | | promises.push(serviceSubtaskDetailadd(obj)); |
| | | } |
| | | }); |
| | | |
| | | // ä½¿ç¨ Promise.all çå¾
ææå¼æ¥æä½å®æ |
| | | Promise.all(promises) |
| | | .then((results) => { |
| | |
| | | |
| | | 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) { |
| | |
| | | (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) { |
| | |
| | | } |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | |
| | | 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> |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | >åªå±ç¤ºæ¬æ¬¡æå¡ä¿¡æ¯</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" |
| | |
| | | > |
| | | åå¾CDSSæ¥è¯¢ |
| | | </el-link> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <!-- <el-button type="success">é访åçä¿¡</el-button> --> |
| | | </div> |
| | |
| | | |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | 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>æ°å¢æ£è
</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | |
| | | 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> |
| | |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | <!-- éæ©æ£è
å¼¹æ¡ --> |
| | | <Patient-Selection |
| | | ref="Patient" |
| | | :dialogVisiblepatient="dialogVisiblepatient" |
| | | @addoption="addoption" |
| | | @kkoption="dialogVisiblepatient = true" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | } 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"; //æ£åç»ä»¶ |
| | | 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 { |
| | | // é®ç½©å± |
| | |
| | | showTimeNight: [], |
| | | showTimeNoon: [], |
| | | }, |
| | | dialogVisiblepatient: false, |
| | | Patientlist: [], |
| | | taskformVisible: false, |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | |
| | | label: "æ¶æ¯éç¥", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // 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: [], |
| | |
| | | this.tasktopic == 3 || |
| | | this.tasktopic == 1 || |
| | | this.tasktopic == 7 || |
| | | this.tasktopic == 5 || |
| | | this.tasktopic == 6 |
| | | ) { |
| | | if (!this.topqueryParams.type) this.topqueryParams.type = "2"; |
| | |
| | | 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 = [ |
| | |
| | | label: "宣æå
³æ", |
| | | }, |
| | | ]; |
| | | 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, |
| | |
| | | value: 2, |
| | | label: "é®å·é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "宣æå
³æ", |
| | | }, |
| | | ]; |
| | | this.topqueryParams.type = 2; |
| | | } |
| | | this.topqueryParams.beginTime = this.dateRange[0]; |
| | | this.topqueryParams.endTime = this.dateRange[1]; |
| | |
| | | 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> |
| | |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-hz { |
| | | background: #63d37b; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="æ£è
å§å" 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="æ£è
èå´" 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="责任æ¤å£«" |
| | | 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>æ£è
è¿æ»¤</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="宣ææ
åµ(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 ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :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: "æ£è
è¿æ»¤", |
| | | // 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: "åºé¢æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "åºé¢æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 6, |
| | | sort: 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | 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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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 |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿å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); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | 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 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 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, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | 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("æ£è
è¿æ»¤æå"); |
| | | }); |
| | | |
| | | 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 + |
| | | 'æ£è
å称为"' + |
| | | 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(() => {}); |
| | | }, |
| | | // æ£è
è¿æ»¤è§¦å |
| | | 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> |
| | |
| | | ) |
| | | .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 = []; |
| | |
| | | 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> |
| | | |
| | |
| | | display: flex; |
| | | .presentation-left { |
| | | width: 45%; |
| | | // height: 500px; |
| | | max-height: 80vh; |
| | | padding: 0 20px; |
| | | font-size: 18px; |
| | | overflow: auto; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | |
| | | } |
| | | .presentation-right { |
| | | width: 55%; |
| | | max-height: 688px; |
| | | max-height: 80vh; |
| | | padding: 0 20px; |
| | | font-size: 18px; |
| | | overflow: auto; |
| | |
| | | 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: [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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); |
| | | // ä»URLåæ°ä¸è·åtokenåæºæä¿¡æ¯ |
| | | 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); |
| | | |
| | | // å卿ºæä¿¡æ¯å°localStorage |
| | | 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> |
| | |
| | | {{ |
| | | kcb |
| | | ? kcb |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯"+localStorage.getItem("orgname")+"ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½é访é®å·ã" |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯" + |
| | | localStorage.getItem("orgname") + |
| | | "ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½é访é®å·ã" |
| | | }} |
| | | <!-- 亲ç±çæ£è
/家屿¨å¥½ï¼ä¸ºäºæ´å¥½çäºè§£æ¨åºé¢åçåº·å¤æ
åµï¼ç»æ¨éå½åæ¶çå¥åº·æå¯¼ï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½åºé¢é访é®å·è°æ¥ã --> |
| | | </div> |
| | |
| | | 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"> |
| | |
| | | methods: { |
| | | // è§£æ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); |
| | |
| | | var obj = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | console.log(obj,'obj'); |
| | | console.log(obj, "obj"); |
| | | |
| | | if (obj) { |
| | | if (obj.isabnormal) { |
| | |
| | | height: 100px; |
| | | } |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | </style> |
| | |
| | | label: "æ¶æ¯éç¥", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // 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: [], |
| | |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | .button-textxg { |
| | | color: #de7897; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | </style> |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-s-promotion" |
| | | size="medium" |
| | | @click="distribute" |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textxg { |
| | | color: #de7897; |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | </style> |
| | |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | .batch-patient-section, |
| | | .batch-task-section { |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | </style> |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | color: #3664D9; |
| | | } |
| | | .button-textxg { |
| | | color: #de7897; |
| | |
| | | <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']" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-button type="success" @click="nextstep('ruleForm')">{{ |
| | | quote ? "ç«å³å建" : "ä»»å¡è¯¦æ
é
ç½®" |
| | | <el-button type="primary" @click="nextstep('ruleForm')">{{ |
| | | quote ? "ç«å³å建" : "æ´¾åæ£è
é
ç½®" |
| | | }}</el-button> |
| | | <el-button type="success" @click="submitForm('ruleForm')">{{ |
| | | quote ? "ç«å³å建" : "确认æå¡é
ç½®" |
| | | }}</el-button> |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </div> |
| | |
| | | </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> |
| | |
| | | taskdiaggetlist, |
| | | taskopergetlist, |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //æ£åç»ä»¶ |
| | | import OptionalForm from "@/components/OptionalForm"; //ç¾ç
æ·»å ç»ä»¶ |
| | | import SFtable from "@/components/SFtable"; //è¡¨æ ¼ç»ä»¶ |
| | | import { MessageBox } from "element-ui"; |
| | | |
| | |
| | | }, |
| | | ], |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: 5, |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: 8, |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: 9, |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: 1", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: 11, |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: "å¿çµé访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // }, |
| | | ], |
| | | tasktypes: store.getters.tasktypes, |
| | | // ç§å®¤/ç
åº |
| | | belongWards: [], |
| | | deptlist: [], |
| | |
| | | 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", |
| | |
| | | this.form.serviceType == 2 || |
| | | this.form.serviceType == 3 || |
| | | this.form.serviceType == 5 || |
| | | this.form.serviceType == 16 || |
| | | this.form.serviceType == 4 |
| | | ) { |
| | | this.checkboxlist = [ |
| | |
| | | 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; |
| | | } |
| | | //æå任塿£è
éå¶ |
| | | // if (!this.form.patTaskRelevances[0] && !this.form.longTask) { |
| | | // this.$modal.msgError("è¯·éæ©ç
人"); |
| | | // return; |
| | | // } |
| | | |
| | | if (!this.form.templatename && !this.templateor) { |
| | | this.$modal.msgError("æªéæ©æ¨¡æ¿"); |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | |
| | | serviceType: 4, |
| | | searchscope: 2, |
| | | sendstate: 2, |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | propss: { multiple: true }, |
| | | options: [], |
| | |
| | | methods: { |
| | | /** æ¥è¯¢é¨è¯å®£ææå¡å表 */ |
| | | getList() { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | |
| | | 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] && |
| | |
| | | } else { |
| | | this.topqueryParams.deptOrDistrict = 1; |
| | | } |
| | | console.log(55); |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.userList.forEach((item) => { |
| | |
| | | }, |
| | | ], |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: "8", |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: "9", |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: "10", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: "11", |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: "12", |
| | | label: "å¿çµé访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // }, |
| | | ], |
| | | tasktypes: store.getters.tasktypes, |
| | | // ç§å®¤/ç
åº |
| | | belongWards: [], |
| | | deptlist: [], |
| | |
| | | } else if ( |
| | | this.form.serviceType == 2 || |
| | | this.form.serviceType == 3 || |
| | | this.form.serviceType == 16 || |
| | | this.form.serviceType == 4 |
| | | ) { |
| | | this.checkboxlist = [ |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | } |
| | | } |
| | | ::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 { |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "åºé访", |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | } |
| | | } |
| | | ::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 { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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", // èªå®ä¹ID |
| | | 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> |
| | |
| | | </el-table-column> |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="åºé访" |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="åºé访" |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | |
| | | </el-table-column> |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="åºé访" |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="åºé访" |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | SeedetailsVisible: false, |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | |
| | | { |
| | | 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; |
| | |
| | | } |
| | | 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); |
| | |
| | | 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 |
| | |
| | | } |
| | | 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 |
| | |
| | | <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" />æå±è§è² |
| | |
| | | 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> |
| | |
| | | // 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`, |