已重命名1个文件
已修改23个文件
已添加2个文件
已复制3个文件
| | |
| | | d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" |
| | | /> |
| | | </svg> |
| | | <!-- â
æ°å¢çä¿¡å¾æ --> |
| | | <svg |
| | | v-else-if="action.icon === 'IconMessageSquare'" |
| | | viewBox="0 0 24 24" |
| | | fill="none" |
| | | stroke="currentColor" |
| | | stroke-width="2" |
| | | > |
| | | <rect x="3" y="3" width="18" height="18" rx="2" ry="2" /> |
| | | <line x1="8" y1="9" x2="16" y2="9" /> |
| | | <line x1="8" y1="13" x2="14" y2="13" /> |
| | | <line x1="8" y1="17" x2="12" y2="17" /> |
| | | </svg> |
| | | </div> |
| | | <div class="action-label">{{ action.label }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </transition> |
| | | <!-- çä¿¡åéå¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | title="çä¿¡åé" |
| | | :visible.sync="smsDialogVisible" |
| | | width="500px" |
| | | :close-on-click-modal="false" |
| | | append-to-body |
| | | > |
| | | <el-form ref="smsForm" :model="smsForm" label-width="100px"> |
| | | <el-form-item label="æ£è
åç§°"> |
| | | <el-input v-model="smsForm.sendname" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¹´é¾"> |
| | | <el-input v-model="smsForm.age" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="çµè¯"> |
| | | <el-input v-model="smsForm.telcode" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤"> |
| | | <el-input v-model="smsForm.deptname" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç
åº"> |
| | | <el-input |
| | | v-model="smsForm.leavehospitaldistrictname" |
| | | readonly |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="çä¿¡å
容"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="4" |
| | | v-model="smsContent" |
| | | placeholder="请è¾å
¥çä¿¡å
容..." |
| | | maxlength="500" |
| | | show-word-limit |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="smsDialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="sendSms" :loading="smsLoading"> |
| | | 确认åé |
| | | </el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getCurrentUserServiceSubtaskCount } from "@/api/AiCentre/index"; |
| | | import { sendMsg } from "@/api/AiCentre/index"; |
| | | export default { |
| | | name: "FloatBall", |
| | | |
| | |
| | | hideTimer: null, |
| | | updateTime: "", |
| | | roles: null, |
| | | // çä¿¡åéå¯¹è¯æ¡ |
| | | // smsDialogVisible: false, |
| | | smsLoading: false, // â
æ°å¢å è½½ç¶æ |
| | | smsContent: "", |
| | | smsForm: { |
| | | sendname: "", |
| | | age: "", |
| | | telcode: "", |
| | | deptname: "", |
| | | leavehospitaldistrictname: "", |
| | | }, |
| | | // ç»è®¡æ°æ® |
| | | statsItems: [ |
| | | { |
| | |
| | | icon: "IconPhone", |
| | | url: "/followvisit/particty?type=1&serviceType=2", |
| | | }, |
| | | // { |
| | | // id: 'chat', |
| | | // label: 'å¨çº¿è天', |
| | | // icon: 'IconMessageCircle', |
| | | // url: '/chat' |
| | | // } |
| | | { |
| | | id: "sendSms", // â
æ°å¢çä¿¡åé |
| | | label: "çä¿¡åé", |
| | | icon: "IconMessageSquare", |
| | | action: "openSmsDialog", // æ è®°ä¸ºå¼¹æ¡æä½ |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | |
| | | totalUnread() { |
| | | return this.statsItems.reduce((sum, item) => sum + item.unread, 0); |
| | | }, |
| | | // â
Vuex ååç»å® |
| | | smsDialogVisible: { |
| | | get() { |
| | | return this.$store.state.sms.smsDialogVisible; |
| | | }, |
| | | set(val) { |
| | | if (!val) { |
| | | this.$store.dispatch("sms/closeSmsDialog"); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | watch: { |
| | | // â
çå¬ Vuex å¯¹è¯æ¡ç¶æ |
| | | "$store.state.sms.smsDialogVisible"(val) { |
| | | if (val) { |
| | | const patientData = this.$store.state.sms.patientData; |
| | | this.smsForm = { ...patientData }; |
| | | this.smsContent = this.$store.state.sms.smsTemplate || ""; |
| | | |
| | | // å±å¼æ¬æµ®ç |
| | | if (!this.isExpanded) { |
| | | this.isExpanded = true; |
| | | this.isHidden = false; |
| | | clearTimeout(this.hideTimer); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.roles = this.$store.state.user.roles; |
| | | this.loadPosition(); |
| | |
| | | }, |
| | | |
| | | handleActionClick(action) { |
| | | // 妿æ¯çä¿¡åéæä½ï¼æå¼å¯¹è¯æ¡ |
| | | console.log(action); |
| | | |
| | | if (action.action === "openSmsDialog") { |
| | | this.openSmsDialog(); |
| | | return; |
| | | } |
| | | |
| | | // åæé»è¾ä¿æä¸å |
| | | console.log(this.roles, "this.roles"); |
| | | if ( |
| | | action.url && |
| | |
| | | this.$modal.msgError("é管çåç¨æ·ææ åå»ºä»»å¡æé"); |
| | | } |
| | | }, |
| | | // æå¼çä¿¡åéå¯¹è¯æ¡ |
| | | openSmsDialog() { |
| | | // 仿¬æµ®çå
鍿弿¶ï¼æ¸
空表åï¼å 为没æé䏿£è
ï¼ |
| | | this.$store.dispatch("sms/openSmsDialog", { |
| | | name: "", |
| | | age: "", |
| | | phone: "", |
| | | deptName: "", |
| | | wardName: "", |
| | | smsTemplate: "", |
| | | }); |
| | | }, |
| | | |
| | | // åéçä¿¡ |
| | | async sendSms() { |
| | | if (!this.smsContent.trim()) { |
| | | this.$modal.msgError("请è¾å
¥çä¿¡å
容"); |
| | | return; |
| | | } |
| | | |
| | | if (!this.smsForm.telcode) { |
| | | this.$modal.msgError("æ£è
çµè¯ä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | |
| | | this.smsLoading = true; |
| | | try { |
| | | const res = await sendMsg({ |
| | | phone: this.smsForm.telcode, |
| | | content: this.smsContent, |
| | | }); |
| | | |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess("çä¿¡åéæå"); |
| | | // â
éè¿ Vuex å
³éå¯¹è¯æ¡ |
| | | this.$store.dispatch("sms/closeSmsDialog"); |
| | | this.smsContent = ""; |
| | | } else { |
| | | this.$modal.msgError(res.msg || "åé失败"); |
| | | } |
| | | } catch (error) { |
| | | console.error("åéç信失败:", error); |
| | | this.$modal.msgError("åé失败ï¼è¯·ç¨åéè¯"); |
| | | } finally { |
| | | this.smsLoading = false; |
| | | } |
| | | }, |
| | | async updateStats() { |
| | | try { |
| | | // è¿éå¯ä»¥æ¿æ¢ä¸ºå®é
ç API è°ç¨ |
| | |
| | | // å¤çåç§ç¶æ |
| | | if (status.type === "registered") { |
| | | this.handleRegistered(); |
| | | } else if (status.type === "failed" || status.type === "disconnected") { |
| | | } else if ( |
| | | status.type === "failed" || |
| | | status.type === "disconnected" |
| | | ) { |
| | | this.handleDisconnected(); |
| | | } else if (status.type === "connecting") { |
| | | this.handleConnecting(); |
| | |
| | | // çå¬éè¯ç¶æåå |
| | | sipService.onCallStatusChange = (status) => { |
| | | this.callStatus = status.type; |
| | | this.isCalling = status.type === "calling" || status.type === "connected"; |
| | | this.isCalling = |
| | | status.type === "calling" || status.type === "connected"; |
| | | this.updateLastActivityTime(); // éè¯ç¶æååæ¶æ´æ°æ´»å¨æ¶é´ |
| | | |
| | | this.$emit("call-status-change", status); |
| | |
| | | |
| | | // 设置è¶
æ¶å¤ç |
| | | this.setupRegistrationTimeout(); |
| | | |
| | | } catch (error) { |
| | | console.error("SIPæå¡åå§å失败:", error); |
| | | this.handleDisconnected(); |
| | |
| | | } |
| | | |
| | | this.reconnectCount++; |
| | | const delay = Math.min(this.reconnectDelay * Math.pow(1.5, this.reconnectCount - 1), 30000); |
| | | const delay = Math.min( |
| | | this.reconnectDelay * Math.pow(1.5, this.reconnectCount - 1), |
| | | 30000 |
| | | ); |
| | | |
| | | console.log(`计åå¨${delay}msåéè¿ï¼ç¬¬${this.reconnectCount}次å°è¯`); |
| | | |
| | |
| | | this.cleanupSipConnection(); |
| | | |
| | | // çå¾
䏿®µæ¶é´ |
| | | await new Promise(resolve => setTimeout(resolve, 1000)); |
| | | await new Promise((resolve) => setTimeout(resolve, 1000)); |
| | | |
| | | // éæ°åå§å |
| | | await this.CallgetList(); // éæ°è·ååæºå· |
| | | this.initSipService(); |
| | | |
| | | } catch (error) { |
| | | console.error("éè¿å¤±è´¥:", error); |
| | | this.isReconnecting = false; |
| | |
| | | |
| | | async startCall() { |
| | | if (!this.phoneNumber) { |
| | | this.$message.error("请è¾å
¥çµè¯å·ç "); |
| | | this.$message.warning("请è¾å
¥çµè¯å·ç "); |
| | | return; |
| | | } |
| | | |
| | |
| | | } catch (error) { |
| | | console.error("å¼å«å¤±è´¥1:", error); |
| | | |
| | | if ( |
| | | error.message.includes("Canceled") || |
| | | error.message.includes("æªæ³¨å") |
| | | ) { |
| | | console.warn("å¼å«å 页é¢ç¦»å¼ææªæ³¨åèåæ¶ï¼ä¸éè¯"); |
| | | this.callStatus = "ended"; |
| | | this.isCalling = false; |
| | | return; |
| | | } |
| | | try { |
| | | // å°è¯å 0忬¡å¼å« |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | |
| | | } catch (error) { |
| | | this.callStatus = "ended"; |
| | | this.isCalling = false; |
| | | this.$message.error("å¼å«å¤±è´¥ï¼è¯·æ£æ¥ç½ç»æå·ç "); |
| | | this.$message.warning("å½åå¼å«å 线ä¸ï¼è¯·ç¨å忍"); |
| | | } |
| | | } |
| | | }, |
| | |
| | | }, |
| | | }, |
| | | beforeUnmount() { |
| | | this.cleanupResources(); |
| | | if (this.isCalling) { |
| | | this.endCall(); // å
é¨è®¾ç½®äº isManualEnd |
| | | } |
| | | // å
¶ä»æ¸
çï¼å¦å®æ¶å¨ï¼... |
| | | this.cleanupResources(); // 使³¨æä¸è¦é夿¸
ç宿¶å¨ï¼å¯ä¼å夿 |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | :key="index" |
| | | :xs="12" |
| | | :sm="8" |
| | | :md="colSpan" |
| | | :lg="colSpan" |
| | | :md="dynamicColSpan" |
| | | :lg="dynamicColSpan" |
| | | > |
| | | <el-tooltip |
| | | :content="getTooltipContent(item.name)" |
| | |
| | | :body-style="item.router ? 'cursor: pointer' : 'cursor: default'" |
| | | :class="getCardClass(item.name)" |
| | | > |
| | | <div |
| | | class="card-content" |
| | | @click="handleCardClick(item)" |
| | | > |
| | | <div class="card-content" @click="handleCardClick(item)"> |
| | | <div class="card-label"> |
| | | <span class="label-text">{{ item.name }}</span> |
| | | </div> |
| | | <div class="card-value"> |
| | | {{ item.value !== undefined && item.value !== null ? item.value : 0 }} |
| | | {{ |
| | | item.value !== undefined && item.value !== null |
| | | ? item.value |
| | | : 0 |
| | | }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | |
| | | props: { |
| | | cardlist: { |
| | | type: Array, |
| | | default: () => [] |
| | | default: () => [], |
| | | }, |
| | | colSpan: { |
| | | type: Number, |
| | | default: 4 |
| | | default: 4, |
| | | }, |
| | | showExtra: { |
| | | type: Boolean, |
| | | default: true |
| | | default: true, |
| | | }, |
| | | ycvalue: { |
| | | type: Number, |
| | | default: 0 |
| | | default: 0, |
| | | }, |
| | | jgvalue: { |
| | | type: Number, |
| | | default: 0 |
| | | default: 0, |
| | | }, |
| | | showWarningCondition: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | default: false, |
| | | }, |
| | | }, |
| | | computed: { |
| | | mergedCardList() { |
| | |
| | | if (this.showExtra) { |
| | | list.push({ |
| | | name: "å¼å¸¸", |
| | | value: this.ycvalue |
| | | value: this.ycvalue, |
| | | }); |
| | | } |
| | | |
| | | if (this.showWarningCondition) { |
| | | list.push({ |
| | | name: "è¦å", |
| | | value: this.jgvalue |
| | | value: this.jgvalue, |
| | | }); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | }, |
| | | // å¨æè®¡ç®æ¯åå çæ
æ ¼æ° |
| | | dynamicColSpan() { |
| | | const totalCards = this.mergedCardList.length; |
| | | |
| | | if (totalCards <= 4) return 6; // ä¸è¡4个 |
| | | if (totalCards <= 6) return 4; // ä¸è¡6个 |
| | | if (totalCards <= 8) return 3; // ä¸è¡8个 |
| | | return 2; // ä¸è¡12个 |
| | | }, |
| | | }, |
| | | methods: { |
| | | getCardClass(name) { |
| | | const classMap = { |
| | | "æ£è
æå¡æ»é": "total-card", |
| | | "æ éé访": "no-follow-card", |
| | | "éé访": "need-follow-card", |
| | | "å¾
é访": "pending-card", |
| | | "已宿": "completed-card", |
| | | "å¼å¸¸": "error-card", |
| | | "è¦å": "warning-card" |
| | | æ£è
æå¡æ»é: "total-card", |
| | | æ éé访: "no-follow-card", |
| | | éé访: "need-follow-card", |
| | | å¾
é访: "pending-card", |
| | | 已宿: "completed-card", |
| | | å¼å¸¸: "error-card", |
| | | è¦å: "warning-card", |
| | | }; |
| | | return classMap[name] || "default-card"; |
| | | }, |
| | | |
| | | getTooltipContent(name) { |
| | | const tooltips = { |
| | | "æ£è
æå¡æ»é": "æ£è
æå¡æ»é = æ éé访 + éé访", |
| | | "æ éé访": "æ éé访ï¼ä¸éè¦è¿è¡éè®¿çæ£è
æ°é", |
| | | "éé访": "éé访 = å¾
é访 + 已宿", |
| | | "å¾
é访": "å¾
é访ï¼çå¾
è¿è¡éè®¿çæ£è
æ°é", |
| | | "已宿": "已宿ï¼å·²å®æéè®¿çæ£è
æ°é", |
| | | "å¼å¸¸": "å¼å¸¸æ°æ®ç»è®¡", |
| | | "è¦å": "è¦åæ°æ®ç»è®¡" |
| | | æ£è
æå¡æ»é: "æ£è
æå¡æ»é = æ éé访 + éé访", |
| | | æ éé访: "æ éé访ï¼ä¸éè¦è¿è¡éè®¿çæ£è
æ°é", |
| | | éé访: "éé访 = å¾
é访 + 已宿", |
| | | å¾
é访: "å¾
é访ï¼çå¾
è¿è¡éè®¿çæ£è
æ°é", |
| | | 已宿: "已宿ï¼å·²å®æéè®¿çæ£è
æ°é", |
| | | å¼å¸¸: "å¼å¸¸æ°æ®ç»è®¡", |
| | | è¦å: "è¦åæ°æ®ç»è®¡", |
| | | }; |
| | | return tooltips[name] || ""; |
| | | }, |
| | |
| | | this.$router.push(item.router); |
| | | } |
| | | this.$emit("card-click", item); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | import tagsView from './modules/tagsView' |
| | | import permission from './modules/permission' |
| | | import settings from './modules/settings' |
| | | import sms from './modules/sms' |
| | | import getters from './getters' |
| | | |
| | | Vue.use(Vuex) |
| | |
| | | regular, |
| | | tagsView, |
| | | permission, |
| | | settings |
| | | settings, |
| | | sms |
| | | }, |
| | | getters |
| | | }) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // src/store/modules/sms.js |
| | | const state = { |
| | | // çä¿¡å¯¹è¯æ¡æ¯å¦å¯è§ |
| | | smsDialogVisible: false, |
| | | // æ£è
æ°æ® |
| | | patientData: { |
| | | sendname: '', |
| | | age: '', |
| | | telcode: '', |
| | | deptname: '', |
| | | leavehospitaldistrictname: '', |
| | | }, |
| | | // çä¿¡æ¨¡æ¿ |
| | | smsTemplate: '', |
| | | }; |
| | | |
| | | const mutations = { |
| | | // æå¼çä¿¡å¯¹è¯æ¡ |
| | | OPEN_SMS_DIALOG(state, patientData) { |
| | | console.log(11); |
| | | |
| | | state.smsDialogVisible = true; |
| | | if (patientData) { |
| | | state.patientData = { |
| | | sendname: patientData.name || '', |
| | | age: patientData.age || '', |
| | | telcode: patientData.phone || '', |
| | | deptname: patientData.deptName || '', |
| | | leavehospitaldistrictname: patientData.wardName || '', |
| | | }; |
| | | state.smsTemplate = patientData.smsTemplate || ''; |
| | | } |
| | | }, |
| | | // å
³éçä¿¡å¯¹è¯æ¡ |
| | | CLOSE_SMS_DIALOG(state) { |
| | | state.smsDialogVisible = false; |
| | | state.smsTemplate = ''; |
| | | }, |
| | | // æ´æ°çä¿¡å
容 |
| | | UPDATE_SMS_CONTENT(state, content) { |
| | | state.smsTemplate = content; |
| | | }, |
| | | }; |
| | | |
| | | const actions = { |
| | | // æå¼çä¿¡å¯¹è¯æ¡ |
| | | openSmsDialog({ commit }, patientData) { |
| | | commit('OPEN_SMS_DIALOG', patientData); |
| | | }, |
| | | // å
³éçä¿¡å¯¹è¯æ¡ |
| | | closeSmsDialog({ commit }) { |
| | | commit('CLOSE_SMS_DIALOG'); |
| | | }, |
| | | }; |
| | | |
| | | export default { |
| | | namespaced: true, |
| | | state, |
| | | mutations, |
| | | actions, |
| | | }; |
| | |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | | localStorage.setItem("YongHuXM", ""); |
| | | } else if (orgid == "47226007033110211A5201") { |
| | | localStorage.setItem("orgname", "丽水å¸ç¬¬äºäººæ°å»é¢"); |
| | | localStorage.setItem("ZuHuID", ""); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | | localStorage.setItem("YongHuXM", ""); |
| | | } |
| | | resolve(); |
| | | }) |
| | |
| | | this.isRegistered = false; // æ°å¢æ³¨åç¶ææ å¿ |
| | | this.registrationTime = null; // æ°å¢æ³¨åæåæ¶é´æ³ |
| | | this.currentConfig = null; // åå¨å½åé
ç½® |
| | | this.isManualEnd = false; |
| | | } |
| | | // è·åå»é¢é
ç½®æ¹æ³ |
| | | getHospitalConfig() { |
| | |
| | | makeCall(targetNumber) { |
| | | const { canCall, reason } = this.canMakeCall(); |
| | | if (!canCall) { |
| | | Message.error(reason); |
| | | Message.info(reason); |
| | | return Promise.reject(new Error(reason)); |
| | | } |
| | | return new Promise((resolve, reject) => { |
| | |
| | | eventHandlers: { |
| | | progress: () => this.updateCallStatus("calling", "å¼å«ä¸..."), |
| | | failed: (e) => { |
| | | if (this.isManualEnd) { |
| | | console.log("䏻卿æï¼å¿½ç¥å¤±è´¥äºä»¶"); |
| | | return; |
| | | } |
| | | this.handleCallFailure(e, reject); |
| | | }, |
| | | ended: () => this.updateCallStatus("ended", "éè¯ç»æ"), |
| | |
| | | |
| | | endCall() { |
| | | if (this.currentSession) { |
| | | this.isManualEnd = true; |
| | | this.currentSession.terminate(); |
| | | this.updateCallStatus("ended", "éè¯å·²ç»æ"); |
| | | this.updateCallStatus('ended', 'éè¯å·²ç»æ'); |
| | | this.currentSession = null; |
| | | // å»¶è¿éç½®æ å¿ï¼é¿å
å½±ååç»äºä»¶ |
| | | setTimeout(() => { this.isManualEnd = false; }, 100); |
| | | } |
| | | } |
| | | |
| | |
| | | import SatisfactionStatistics from "./components/SatisfactionStatistics.vue"; |
| | | |
| | | export default { |
| | | name: "StatisticsMain", |
| | | name: "Satisfaction", |
| | | components: { |
| | | FollowupStatistics, |
| | | SatisfactionStatistics, |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import FollowupStatistics from './components/FollowupStatistics.vue'; |
| | | import SatisfactionStatistics from './components/SatisfactionStatistics.vue'; |
| | | import FollowupStatistics from "./components/FollowupStatistics.vue"; |
| | | import SatisfactionStatistics from "./components/SatisfactionStatistics.vue"; |
| | | |
| | | export default { |
| | | name: 'StatisticsMain', |
| | | name: "Satisfaction", |
| | | components: { |
| | | FollowupStatistics, |
| | | SatisfactionStatistics |
| | | SatisfactionStatistics, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeTab: 'followup' |
| | | activeTab: "followup", |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleTabChange(tab) { |
| | | console.log('忢å°:', tab.name); |
| | | } |
| | | } |
| | | console.log("忢å°:", tab.name); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | prop="nurseName" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="ç»ç®¡å»ç" |
| | | align="center" |
| | | key="managementDoctor" |
| | |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | ycvalue: 0, |
| | | jgvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | |
| | | btstatus: "", |
| | | }, |
| | | // endOut: 1, |
| | | endOut: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 0 : 1, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | endOut: |
| | | localStorage.getItem("orgname") == "æ¯å®ç²æèªæ²»å¿äººæ°å»é¢" ? 0 : 1, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | endOuts: [ |
| | | { |
| | | value: 0, |
| | |
| | | // çå¬è·¯ç±åæ°åå |
| | | "$route.query": { |
| | | handler(newQuery, oldQuery) { |
| | | if (newQuery.errtype !== oldQuery.errtype) { |
| | | if (newQuery?.errtype !== oldQuery?.errtype) { |
| | | console.log(22); |
| | | |
| | | this.loadData(); // éæ°å è½½æ°æ® |
| | | this.loadData(); |
| | | } |
| | | }, |
| | | immediate: true, |
| | |
| | | Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0; |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[1].value = response.rows[0].wxsf || 0; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.ycvalue = Number(response.rows[0].yc) || 0 |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[2].value = response.rows[0].xsf || 0; |
| | | this.cardlist[3].value = response.rows[0].dsf || 0; |
| | |
| | | Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0; |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.ycvalue = Number(response.rows[0].yc) || 0 |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | |
| | | this.handleQuery(1); |
| | | }, |
| | | handleSelectionChange(rows) { |
| | | console.log(rows, 911); |
| | | |
| | | this.selectedRows = rows.map((row) => { |
| | | // åå§åè¯ååæ®µ |
| | | return { |
| | |
| | | const originalPageSize = this.topqueryParams.pageSize; |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.topqueryParams.subIdList = this.selectedRows.map((item) => item.id); |
| | | this.download( |
| | | "smartor/serviceSubtask/patItemExport", |
| | | { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="leftvlue" style="margin-bottom: 20px"> |
| | | <statistics-cards |
| | | :cardlist="cardlist" |
| | | :ycvalue="ycvalue" |
| | | :jgvalue="jgvalue" |
| | | :show-warning-condition="orgname == 'çç«åå¾·ç¿ èé¢åº'" |
| | | /> |
| | | <!-- <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 |
| | |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> --> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | |
| | | } from "@/api/AiCentre/index"; |
| | | import { alterpatient, particularpatient } from "@/api/patient/homepage"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import StatisticsCards from "@/components/StatisticsCards"; |
| | | |
| | | 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 }, |
| | | components: { Treeselect, StatisticsCards }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | |
| | | const targetDate = new Date(this.form.visitTime); // ç®æ æ¥æ |
| | | const now = new Date(); // å½åæ¶é´ |
| | | if (now < targetDate && this.form.sendstate == 2) { |
| | | this.$confirm("å½åæå¡æªå°åéæ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | this.$confirm("å½åæå¡æªå°é访æ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | |
| | | const targetDate = new Date(this.form.visitTime); // ç®æ æ¥æ |
| | | const now = new Date(); // å½åæ¶é´ |
| | | if (now < targetDate && this.form.sendstate == 2) { |
| | | this.$confirm("å½åæå¡æªå°åéæ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | this.$confirm("å½åæå¡æªå°é访æ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | |
| | | effect="dark" |
| | | :content="scope.row.remark" |
| | | placement="top-start" |
| | | popper-class="statistics-tooltip" |
| | | > |
| | | <div v-if="scope.row.sendstateView == 1"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstateView == 2"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >é访ä¸</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstateView == 3"> |
| | | <el-tag type="warning" :disable-transitions="false" |
| | | >æªå®æ</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstateView == 4"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >已宿</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstateView == 5"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | <div v-if="scope.row.sendstateView == 3"> |
| | | <el-tag type="warning" :disable-transitions="false" |
| | | >æ éé访</el-tag |
| | | > |
| | | </div> |
| | |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | |
| | | <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> |
| | | <div v-if="scope.row.sendstate == 7"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >è¶
æ¶</el-tag |
| | | > |
| | | </div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç»æç¶æ" |
| | | align="center" |
| | |
| | | <div class="call-container"> |
| | | <div |
| | | style="display: flex" |
| | | v-if="orgname == 'åå大å¦éå±ç¬¬ä¸å»é¢' && !Voicetype" |
| | | v-if=" |
| | | (orgname == 'åå大å¦éå±ç¬¬ä¸å»é¢' || |
| | | orgname == '丽水å¸ç¬¬äºäººæ°å»é¢' || |
| | | orgname == 'ç¼äºå¿äººæ°å»é¢') && |
| | | !Voicetype |
| | | " |
| | | > |
| | | <template-selector |
| | | v-model="form.templateid" |
| | |
| | | <!-- 注æè¿é使ç¨äº smsDialogVisible 以åºåå·²æç dialogFormVisible --> |
| | | <el-form ref="smsForm" :model="form" label-width="80px"> |
| | | <el-form-item label="æ£è
åç§°"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="form.sendname" |
| | | ></el-input> |
| | | <el-input style="width: 400px" v-model="form.sendname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¹´é¾"> |
| | | <el-input style="width: 400px" disabled v-model="form.age"></el-input> |
| | | <el-input style="width: 400px" v-model="form.age"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="çµè¯"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="userform.telcode" |
| | | ></el-input> |
| | | <el-input style="width: 400px" v-model="userform.telcode"></el-input> |
| | | <!-- 注æè¿éå¯è½ä½¿ç¨ userform.telcode --> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="form.deptname" |
| | | ></el-input> |
| | | <el-input style="width: 400px" v-model="form.deptname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç
åº"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="form.leavehospitaldistrictname" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | }, |
| | | getconfigKey() { |
| | | getconfigKey("default.value.icon").then((res) => { |
| | | |
| | | if (res.msg) { |
| | | if ( |
| | | this.getAssignArr(res.msg).includes(this.$store.state.user.name) || |
| | |
| | | this.Torouter(); |
| | | return; |
| | | } |
| | | this.$modal |
| | | .confirm( |
| | | 'ä»»å¡ä¿åæåæ¯å¦é对æ£è
ï¼"' + |
| | | this.userform.name + |
| | | '"忬¡é访ï¼', |
| | | "确认", |
| | | { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | showCancelButton: true, |
| | | dangerouslyUseHTMLString: true, |
| | | confirmButtonClass: "custom-confirm-button", // èªå®ä¹ç¡®è®¤æé®çç±»å |
| | | cancelButtonClass: "custom-cancel-button", // èªå®ä¹åæ¶æé®çç±»å |
| | | } |
| | | ) |
| | | .then(() => { |
| | | document.querySelector("#app").scrollTo(0, 0); |
| | | this.formtidy(); |
| | | this.dialogFormVisible = true; |
| | | }) |
| | | .catch(() => { |
| | | this.Torouter(); |
| | | }); |
| | | // this.$modal |
| | | // .confirm( |
| | | // 'ä»»å¡ä¿åæåæ¯å¦é对æ£è
ï¼"' + |
| | | // this.userform.name + |
| | | // '"忬¡é访ï¼', |
| | | // "确认", |
| | | // { |
| | | // confirmButtonText: "ç¡®å®", |
| | | // cancelButtonText: "åæ¶", |
| | | // showCancelButton: true, |
| | | // dangerouslyUseHTMLString: true, |
| | | // confirmButtonClass: "custom-confirm-button", // èªå®ä¹ç¡®è®¤æé®çç±»å |
| | | // cancelButtonClass: "custom-cancel-button", // èªå®ä¹åæ¶æé®çç±»å |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | // document.querySelector("#app").scrollTo(0, 0); |
| | | // this.formtidy(); |
| | | // this.dialogFormVisible = true; |
| | | // }) |
| | | // .catch(() => { |
| | | // this.Torouter(); |
| | | // }); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | savequestiondetail(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æå¡ä¿åæå"); |
| | | this.$modal |
| | | .confirm( |
| | | 'ä»»å¡ä¿åæåæ¯å¦é对æ£è
ï¼"' + |
| | | this.userform.name + |
| | | '"忬¡é访ï¼', |
| | | "确认", |
| | | { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | showCancelButton: true, |
| | | dangerouslyUseHTMLString: true, |
| | | confirmButtonClass: "custom-confirm-button", // èªå®ä¹ç¡®è®¤æé®çç±»å |
| | | cancelButtonClass: "custom-cancel-button", // èªå®ä¹åæ¶æé®çç±»å |
| | | } |
| | | ) |
| | | .then(() => { |
| | | document.querySelector("#app").scrollTo(0, 0); |
| | | this.formtidy(); |
| | | this.dialogFormVisible = true; |
| | | }) |
| | | .catch(() => { |
| | | this.Torouter(); |
| | | }); |
| | | |
| | | // this.$modal |
| | | // .confirm( |
| | | // 'ä»»å¡ä¿åæåæ¯å¦é对æ£è
ï¼"' + |
| | | // this.userform.name + |
| | | // '"忬¡é访ï¼', |
| | | // "确认", |
| | | // { |
| | | // confirmButtonText: "ç¡®å®", |
| | | // cancelButtonText: "åæ¶", |
| | | // showCancelButton: true, |
| | | // dangerouslyUseHTMLString: true, |
| | | // confirmButtonClass: "custom-confirm-button", // èªå®ä¹ç¡®è®¤æé®çç±»å |
| | | // cancelButtonClass: "custom-cancel-button", // èªå®ä¹åæ¶æé®çç±»å |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | // document.querySelector("#app").scrollTo(0, 0); |
| | | // this.formtidy(); |
| | | // this.dialogFormVisible = true; |
| | | // }) |
| | | // .catch(() => { |
| | | // this.Torouter(); |
| | | // }); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | console.log(targetDate, "ç®æ æ¥æ"); |
| | | |
| | | if (now < targetDate && this.form.sendstate == 2) { |
| | | this.$confirm("å½åæå¡æªå°åéæ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | this.$confirm("å½åæå¡æªå°é访æ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | |
| | | objson = res.rows[0].serviceSubtaskList[0]; |
| | | objson.suggest = son; |
| | | objson.remark = this.form.remark; |
| | | objson.sendstate = this.serviceStates; |
| | | objson.taskSituation = this.form.taskSituation; |
| | | Editsingletaskson(objson).then((res) => { |
| | | if (res.code) { |
| | |
| | | }); |
| | | }, |
| | | alterpatient(sendstate) { |
| | | alterpatient(this.userform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("åºç¡ä¿¡æ¯ä¿åæå"); |
| | | } else { |
| | | this.$modal.msgError("åºç¡ä¿¡æ¯ä¿®æ¹å¤±è´¥"); |
| | | } |
| | | }); |
| | | this.Editsingletasksonyic(this.serviceStates) |
| | | // alterpatient(this.userform).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.$modal.msgSuccess("åºç¡ä¿¡æ¯ä¿åæå"); |
| | | // } else { |
| | | // this.$modal.msgError("åºç¡ä¿¡æ¯ä¿®æ¹å¤±è´¥"); |
| | | // } |
| | | // }); |
| | | }, |
| | | // å¼å¸¸å渲æ |
| | | tableRowClassName({ row, rowIndex }) { |
| | |
| | | // console.log(11); |
| | | // }, |
| | | beforeRouteLeave(to, from, next) { |
| | | this.$refs.callButton.cleanupResources(); |
| | | if (this.$refs.CallCenterLs) { |
| | | console.log(1); |
| | | const callButton = this.$refs.callButton; |
| | | |
| | | // 妿åå¨å¼å«ç»ä»¶ä¸æ£å¨éè¯ä¸ |
| | | if (callButton && callButton.isCalling) { |
| | | this.$confirm('å½åæ£å¨éè¯ä¸ï¼ç¡®å®è¦ç¦»å¼æ¤é¡µé¢åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ææå¹¶ç¦»å¼', |
| | | cancelButtonText: 'ç»§ç»éè¯', |
| | | type: 'warning' |
| | | }) |
| | | .then(() => { |
| | | // ç¨æ·ç¡®è®¤ç¦»å¼ï¼ä¸»å¨ææå¹¶æ¸
ç |
| | | callButton.cleanupResources(); |
| | | if (this.$refs.CallCenterLs) { |
| | | this.$refs.CallCenterLs.handleSeatLogout(); |
| | | } |
| | | next(); // ç¡®ä¿è°ç¨ nex |
| | | }, |
| | | next(); |
| | | }) |
| | | .catch(() => { |
| | | // ç¨æ·åæ¶ï¼é»æ¢è·¯ç±è·³è½¬ |
| | | next(false); |
| | | }); |
| | | } else { |
| | | // æªéè¯æå¼å«ç»ä»¶ä¸åå¨ï¼æ£å¸¸æ¸
ç |
| | | if (callButton) { |
| | | callButton.cleanupResources(); |
| | | } |
| | | if (this.$refs.CallCenterLs) { |
| | | this.$refs.CallCenterLs.handleSeatLogout(); |
| | | } |
| | | next(); |
| | | } |
| | | } |
| | | // beforeRouteUpdate() { |
| | | // console.log(33); |
| | | // }, |
| | |
| | | const now = new Date(); // å½åæ¶é´ |
| | | this.form.endtime = this.formatTime(this.form.endtime); |
| | | if (now < targetDate && this.form.sendstate == 2) { |
| | | this.$confirm("å½åæå¡æªå°åéæ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | this.$confirm("å½åæå¡æªå°é访æ¶é´è¯·è°¨æ
ä¿®æ¹", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | |
| | | |
| | | // æå |
| | | stop(row) { |
| | | console.log(row); |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤æå"' + row.taskName + '"ï¼') |
| | | .then(function () { |
| | | if (row.sendState == 2) { |
| | | this.TaskOperation.taskId = row.taskid; |
| | | this.TaskOperation.sendState = 3; |
| | |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }) |
| | | |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | /** æäº¤æé® */ |
| | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | | name: "questionnaire", |
| | | name: "Questionnaire", |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="smsConfig-management"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">模æ¿åç±»</div> |
| | | <div class="top-tj" @click="Newcategory">+æ·»å </div> |
| | | </div> |
| | | <div class="center-ss"> |
| | | <el-input |
| | | placeholder="请è¾å
¥å
容" |
| | | v-model="sidecolumnval" |
| | | class="input-with-select" |
| | | size="medium" |
| | | > |
| | | </el-input> |
| | | </div> |
| | | <div class="head-container" style="margin-top: 20px"> |
| | | <el-tree |
| | | :data="deptOptions" |
| | | :props="defaultProps" |
| | | :expand-on-click-node="false" |
| | | :filter-node-method="filterNode" |
| | | ref="tree" |
| | | node-key="id" |
| | | default-expand-all |
| | | highlight-current |
| | | @node-click="handleNodeClick" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span class="tree-node-label">{{ node.label }}</span> |
| | | <span v-if="data.id > 0"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | circle |
| | | size="mini" |
| | | @click="() => remove(node, data)" |
| | | > |
| | | </el-button> |
| | | </span> |
| | | <span v-if="data.id > 0"> |
| | | <el-button |
| | | type="text" |
| | | circle |
| | | size="mini" |
| | | @click="() => altertag(node, data)" |
| | | > |
| | | <span class="button-textxg"> |
| | | <i class="el-icon-edit-outline"></i> |
| | | </span> |
| | | </el-button> |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="模æ¿åç§°" prop="templetname"> |
| | | <el-input |
| | | v-model="queryParams.templetname" |
| | | placeholder="请è¾å
¥æ¨¡æ¿åç§°" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="çä¿¡ç¾å" prop="signature"> |
| | | <el-input |
| | | v-model="queryParams.signature" |
| | | placeholder="请è¾å
¥çä¿¡ç¾å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="å¯ç¨ç¶æ" prop="isenable"> |
| | | <el-select |
| | | v-model="queryParams.isenable" |
| | | placeholder="è¯·éæ©ç¶æ" |
| | | clearable |
| | | style="width: 200px" |
| | | > |
| | | <el-option |
| | | v-for="item in statusOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button> |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-divider></el-divider> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | |
| | | <el-table-column |
| | | label="模æ¿åç§°" |
| | | align="center" |
| | | key="templetname" |
| | | prop="templetname" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="çä¿¡ç¾å" |
| | | align="center" |
| | | key="signature" |
| | | prop="signature" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="模æ¿å
容" |
| | | align="center" |
| | | key="templetcontent" |
| | | prop="templetcontent" |
| | | width="280" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="模æ¿ç±»å" |
| | | align="center" |
| | | key="templettype" |
| | | prop="templettype" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="typeOptions" :value="scope.row.templettype" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="å¯ç¨ç¶æ" |
| | | align="center" |
| | | key="isenable" |
| | | prop="isenable" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="statusOptions" :value="scope.row.isenable" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="夿³¨" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | width="180" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="å建æ¶é´" |
| | | align="center" |
| | | key="createTime" |
| | | prop="createTime" |
| | | width="160" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | fixed="right" |
| | | align="center" |
| | | width="240" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | > |
| | | <span class="button-textxg"> |
| | | <i class="el-icon-edit"></i>ä¿®æ¹ |
| | | </span> |
| | | </el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handlePreview(scope.row)" |
| | | > |
| | | <span class="button-text"> |
| | | <i class="el-icon-view"></i>é¢è§ |
| | | </span> |
| | | </el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | > |
| | | <span class="button-textsc"> |
| | | <i class="el-icon-edit"></i>å é¤ |
| | | </span> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- æ·»å /ä¿®æ¹ç信模æ¿å¼¹æ¡ --> |
| | | <el-dialog |
| | | :title="dialogTitle" |
| | | :visible.sync="dialogVisible" |
| | | width="45%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form |
| | | :model="form" |
| | | :rules="rules" |
| | | ref="formRef" |
| | | label-width="100px" |
| | | size="medium" |
| | | > |
| | | <el-form-item label="模æ¿åç±»" prop="categoryid"> |
| | | <el-select |
| | | v-model="form.categoryid" |
| | | placeholder="è¯·éæ©æ¨¡æ¿åç±»" |
| | | clearable |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in categoryOptions" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="模æ¿åç§°" prop="templetname"> |
| | | <el-input |
| | | v-model="form.templetname" |
| | | placeholder="请è¾å
¥æ¨¡æ¿åç§°" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="çä¿¡ç¾å" prop="signature"> |
| | | <el-input |
| | | v-model="form.signature" |
| | | placeholder="请è¾å
¥çä¿¡ç¾åï¼å¦ï¼ã丽水人æ°å»é¢ãï¼" |
| | | maxlength="20" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="模æ¿å
容" prop="templetcontent"> |
| | | <el-input |
| | | v-model="form.templetcontent" |
| | | type="textarea" |
| | | :rows="5" |
| | | placeholder="请è¾å
¥ç信模æ¿å
容" |
| | | maxlength="500" |
| | | show-word-limit |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="模æ¿ç±»å" prop="templettype"> |
| | | <el-select |
| | | v-model="form.templettype" |
| | | placeholder="è¯·éæ©æ¨¡æ¿ç±»å" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in typeOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="å¯ç¨ç¶æ" prop="isenable"> |
| | | <el-radio-group v-model="form.isenable"> |
| | | <el-radio |
| | | v-for="item in statusOptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | >{{ item.label }}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="请è¾å
¥å¤æ³¨ä¿¡æ¯" |
| | | maxlength="200" |
| | | show-word-limit |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="cancelForm">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="submitLoading">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 模æ¿é¢è§å¼¹æ¡ --> |
| | | <el-dialog |
| | | title="ç信模æ¿é¢è§" |
| | | :visible.sync="previewVisible" |
| | | width="40%" |
| | | > |
| | | <div class="preview-box"> |
| | | <div class="preview-item"> |
| | | <div class="preview-label">模æ¿åç§°ï¼</div> |
| | | <div class="preview-value">{{ previewData.templetname }}</div> |
| | | </div> |
| | | <div class="preview-item"> |
| | | <div class="preview-label">çä¿¡ç¾åï¼</div> |
| | | <div class="preview-value">{{ previewData.signature }}</div> |
| | | </div> |
| | | <div class="preview-item"> |
| | | <div class="preview-label">模æ¿ç±»åï¼</div> |
| | | <div class="preview-value"> |
| | | <dict-tag :options="typeOptions" :value="previewData.templettype" /> |
| | | </div> |
| | | </div> |
| | | <div class="preview-item"> |
| | | <div class="preview-label">å¯ç¨ç¶æï¼</div> |
| | | <div class="preview-value"> |
| | | <dict-tag :options="statusOptions" :value="previewData.isenable" /> |
| | | </div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="preview-content"> |
| | | <div class="preview-content-label">çä¿¡å
容é¢è§ï¼</div> |
| | | <div class="preview-content-box"> |
| | | {{ previewData.templetcontent || 'ææ å
容' }} |
| | | </div> |
| | | </div> |
| | | <div class="preview-item" v-if="previewData.remark"> |
| | | <div class="preview-label">夿³¨ï¼</div> |
| | | <div class="preview-value">{{ previewData.remark }}</div> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- æ·»å ç±»å«å¼¹æ¡ --> |
| | | <el-dialog title="ç±»å«ç¼è¾" width="30%" :visible.sync="dialogFormVisible"> |
| | | <div style="text-align: center; margin-bottom: 20px"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio-button label="主åç±»"></el-radio-button> |
| | | <el-radio-button label="ååç±»"></el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <el-form :model="classifyform"> |
| | | <el-form-item label="è¯·éæ©æ¨¡æ¿å¤§ç±»" v-if="radio == 'ååç±»'"> |
| | | <el-select v-model="classifyform.pid" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in deptOptions" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="请è¾å
¥ç±»å«åç§°"> |
| | | <el-input v-model="classifyform.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="getDeptTree()">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitsidecolumn">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import store from "@/store"; |
| | | import { |
| | | listSmstemplet, |
| | | getSmstemplet, |
| | | addSmstemplet, |
| | | updateSmstemplet, |
| | | delSmstemplet, |
| | | } from "@/api/smartor/smstemplet"; |
| | | |
| | | export default { |
| | | name: "SmsConfig", |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: false, |
| | | // æäº¤æé®loading |
| | | submitLoading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // è¡¨æ ¼æ°æ® |
| | | userList: [], |
| | | // å¼¹æ¡æ é¢ |
| | | dialogTitle: "", |
| | | // å¼¹æ¡å¯è§æ§ |
| | | dialogVisible: false, |
| | | // é¢è§å¼¹æ¡ |
| | | previewVisible: false, |
| | | // é¢è§æ°æ® |
| | | previewData: {}, |
| | | // ç±»å«å¼¹æ¡ |
| | | dialogFormVisible: false, |
| | | // ç±»å«form |
| | | classifyform: {}, |
| | | // 主/ååç±» |
| | | radio: "主åç±»", |
| | | // ç±»å«æç´¢ |
| | | sidecolumnval: "", |
| | | // æ æ°æ® |
| | | deptOptions: [], |
| | | // åç±»ä¸æé项 |
| | | categoryOptions: [], |
| | | // æ props |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "name", |
| | | }, |
| | | // ç¶æé项 |
| | | statusOptions: [ |
| | | { label: "å¯ç¨", value: "0" }, |
| | | { label: "åç¨", value: "1" }, |
| | | ], |
| | | // ç±»åé项 |
| | | typeOptions: [ |
| | | { label: "éªè¯ç ", value: "0" }, |
| | | { label: "éç¥", value: "1" }, |
| | | { label: "è¥é", value: "2" }, |
| | | { label: "é访", value: "3" }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | // 表å |
| | | form: {}, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | templetname: [ |
| | | { required: true, message: "请è¾å
¥æ¨¡æ¿åç§°", trigger: "blur" }, |
| | | ], |
| | | templetcontent: [ |
| | | { required: true, message: "请è¾å
¥æ¨¡æ¿å
容", trigger: "blur" }, |
| | | ], |
| | | signature: [ |
| | | { required: true, message: "请è¾å
¥çä¿¡ç¾å", trigger: "blur" }, |
| | | ], |
| | | isenable: [ |
| | | { required: true, message: "è¯·éæ©å¯ç¨ç¶æ", trigger: "change" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // çå¬ç±»å«æç´¢ |
| | | sidecolumnval(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getDeptTree(); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listSmstemplet(this.queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.templetid); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.dialogTitle = "æ°å¢ç信模æ¿"; |
| | | this.dialogVisible = true; |
| | | this.form = { |
| | | isenable: "0", |
| | | templettype: "1", |
| | | }; |
| | | // å¦æææ éä¸åç±»ï¼é»è®¤å¸¦å
¥ |
| | | if (this.queryParams.categoryid) { |
| | | this.form.categoryid = this.queryParams.categoryid; |
| | | } |
| | | this.$nextTick(() => { |
| | | if (this.$refs.formRef) { |
| | | this.$refs.formRef.clearValidate(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.dialogTitle = "ä¿®æ¹ç信模æ¿"; |
| | | this.dialogVisible = true; |
| | | const templetid = row.templetid || this.ids[0]; |
| | | getSmstemplet(templetid).then((response) => { |
| | | this.form = response.data; |
| | | this.$nextTick(() => { |
| | | if (this.$refs.formRef) { |
| | | this.$refs.formRef.clearValidate(); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** é¢è§æé®æä½ */ |
| | | handlePreview(row) { |
| | | this.previewVisible = true; |
| | | const templetid = row.templetid; |
| | | getSmstemplet(templetid).then((response) => { |
| | | this.previewData = response.data; |
| | | }); |
| | | }, |
| | | |
| | | /** æäº¤è¡¨å */ |
| | | submitForm() { |
| | | this.$refs.formRef.validate((valid) => { |
| | | if (valid) { |
| | | this.submitLoading = true; |
| | | if (this.form.templetid) { |
| | | // ä¿®æ¹ |
| | | updateSmstemplet(this.form) |
| | | .then(() => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.dialogVisible = false; |
| | | this.getList(); |
| | | }) |
| | | .finally(() => { |
| | | this.submitLoading = false; |
| | | }); |
| | | } else { |
| | | // æ°å¢ |
| | | addSmstemplet(this.form) |
| | | .then(() => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.dialogVisible = false; |
| | | this.getList(); |
| | | }) |
| | | .finally(() => { |
| | | this.submitLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** åæ¶è¡¨å */ |
| | | cancelForm() { |
| | | this.dialogVisible = false; |
| | | this.form = {}; |
| | | this.$nextTick(() => { |
| | | if (this.$refs.formRef) { |
| | | this.$refs.formRef.clearValidate(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const templetids = row.templetid || this.ids.join(","); |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å 餿¨¡æ¿ç¼å·ä¸º"' + templetids + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delSmstemplet(templetids); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | templetid: undefined, |
| | | templetname: undefined, |
| | | signature: undefined, |
| | | templetcontent: undefined, |
| | | templettype: "1", |
| | | isenable: "0", |
| | | categoryid: undefined, |
| | | remark: undefined, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | |
| | | /** æ¥è¯¢åç±»æ */ |
| | | getDeptTree() { |
| | | // 模æåç±»æ æ°æ® - å®é
项ç®ä¸åºæ¿æ¢ä¸ºçå®API |
| | | this.deptOptions = [ |
| | | { |
| | | id: 1, |
| | | name: "é访çä¿¡", |
| | | children: [ |
| | | { id: 11, name: "åºé¢é访" }, |
| | | { id: 12, name: "å¤è¯æé" }, |
| | | { id: 13, name: "å¥åº·å®£æ" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: "éç¥çä¿¡", |
| | | children: [ |
| | | { id: 21, name: "é¢çº¦éç¥" }, |
| | | { id: 22, name: "æ¥åéç¥" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: "éªè¯ç ", |
| | | children: [ |
| | | { id: 31, name: "ç»å½éªè¯" }, |
| | | { id: 32, name: "注åéªè¯" }, |
| | | ], |
| | | }, |
| | | ]; |
| | | this.categoryOptions = this.flattenTree(this.deptOptions); |
| | | }, |
| | | |
| | | /** æå¹³åæ æ°æ®ç¨äºä¸æéæ© */ |
| | | flattenTree(tree) { |
| | | let result = []; |
| | | tree.forEach((item) => { |
| | | result.push({ id: item.id, name: item.name }); |
| | | if (item.children && item.children.length) { |
| | | result = result.concat(item.children); |
| | | } |
| | | }); |
| | | return result; |
| | | }, |
| | | |
| | | /** çéèç¹ */ |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.name.indexOf(value) !== -1; |
| | | }, |
| | | |
| | | /** ç¹å»æ èç¹ */ |
| | | handleNodeClick(data) { |
| | | if (data.children && data.children.length) return; |
| | | this.queryParams.categoryid = data.id; |
| | | this.getList(); |
| | | }, |
| | | |
| | | // åç±»æ ----------------------- |
| | | /** æ°å»ºåç±» */ |
| | | Newcategory() { |
| | | this.classifyform = {}; |
| | | this.radio = "主åç±»"; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | |
| | | /** ä¿®æ¹åç±» */ |
| | | altertag(node, data) { |
| | | this.dialogFormVisible = true; |
| | | if (data.children && data.children.length) { |
| | | this.radio = "主åç±»"; |
| | | } else { |
| | | this.radio = "ååç±»"; |
| | | } |
| | | this.classifyform = { ...data }; |
| | | }, |
| | | |
| | | /** æäº¤åç±» */ |
| | | submitsidecolumn() { |
| | | if (this.classifyform.id) { |
| | | // ä¿®æ¹åç±» - å®é
项ç®ä¸åºæ¿æ¢ä¸ºçå®API |
| | | const index = this.deptOptions.findIndex( |
| | | (obj) => obj.id === this.classifyform.id |
| | | ); |
| | | if (index > -1) { |
| | | this.deptOptions[index].name = this.classifyform.name; |
| | | this.$set(this.deptOptions, index, this.deptOptions[index]); |
| | | } |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.dialogFormVisible = false; |
| | | return; |
| | | } |
| | | |
| | | if (this.radio === "主åç±»" && this.classifyform.name) { |
| | | // æ°å¢ä¸»åç±» |
| | | const newId = Math.max(...this.deptOptions.map((d) => d.id), 0) + 1; |
| | | this.deptOptions.push({ |
| | | id: newId, |
| | | name: this.classifyform.name, |
| | | children: [], |
| | | }); |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.dialogFormVisible = false; |
| | | } else if ( |
| | | this.radio === "ååç±»" && |
| | | this.classifyform.pid && |
| | | this.classifyform.name |
| | | ) { |
| | | // æ°å¢ååç±» |
| | | const parent = this.deptOptions.find( |
| | | (obj) => obj.id === this.classifyform.pid |
| | | ); |
| | | if (parent) { |
| | | const newChildId = |
| | | Math.max(...parent.children.map((c) => c.id), parent.id * 10) + 1; |
| | | parent.children.push({ |
| | | id: newChildId, |
| | | name: this.classifyform.name, |
| | | }); |
| | | } |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.dialogFormVisible = false; |
| | | } else { |
| | | this.$modal.msgError("请填å宿´ä¿¡æ¯"); |
| | | } |
| | | this.classifyform = {}; |
| | | }, |
| | | |
| | | /** å é¤åç±» */ |
| | | remove(node, data) { |
| | | if (data.children && data.children.length) { |
| | | this.$modal |
| | | .confirm( |
| | | 'æ¯å¦ç¡®è®¤å é¤ä¸çº§åç±»"' + data.name + '"ï¼å é¤åå
¶ä¸åç±»å°æ æ³ä½¿ç¨' |
| | | ) |
| | | .then(() => { |
| | | const index = this.deptOptions.findIndex( |
| | | (obj) => obj.id === data.id |
| | | ); |
| | | if (index > -1) { |
| | | this.deptOptions.splice(index, 1); |
| | | } |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | } else { |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤å类项为"' + data.name + '"çæ°æ®é¡¹ï¼') |
| | | .then(() => { |
| | | this.deptOptions.forEach((parent) => { |
| | | const idx = parent.children.findIndex( |
| | | (child) => child.id === data.id |
| | | ); |
| | | if (idx > -1) { |
| | | parent.children.splice(idx, 1); |
| | | } |
| | | }); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .smsConfig-management { |
| | | display: flex; |
| | | } |
| | | |
| | | .sidecolumn { |
| | | width: 380px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #fff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | |
| | | /* æ ¸å¿ï¼è®¾ç½®åºå®å®½åº¦ï¼è¶
åºé¨åæ¾ç¤ºçç¥å· */ |
| | | .tree-node-label { |
| | | display: inline-block; |
| | | max-width: 160px; |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | vertical-align: bottom; |
| | | } |
| | | |
| | | /* å¯éï¼é¼ æ æ¬åæ¶åæ¶éå¶ï¼æ¾ç¤ºå
¨æ */ |
| | | .custom-tree-node:hover .tree-node-label { |
| | | max-width: none; |
| | | white-space: normal; |
| | | overflow: visible; |
| | | } |
| | | |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | |
| | | .leftvlue { |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | |
| | | // é¢è§å¼¹æ¡æ ·å¼ |
| | | .preview-box { |
| | | padding: 10px 20px; |
| | | |
| | | .preview-item { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 15px; |
| | | font-size: 15px; |
| | | |
| | | .preview-label { |
| | | width: 100px; |
| | | text-align: right; |
| | | color: #606266; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .preview-value { |
| | | flex: 1; |
| | | margin-left: 10px; |
| | | color: #303133; |
| | | } |
| | | } |
| | | |
| | | .preview-content { |
| | | margin-bottom: 15px; |
| | | |
| | | .preview-content-label { |
| | | color: #606266; |
| | | font-weight: 500; |
| | | margin-bottom: 10px; |
| | | font-size: 15px; |
| | | } |
| | | |
| | | .preview-content-box { |
| | | padding: 15px; |
| | | background: #f5f7fa; |
| | | border: 1px solid #dcdfe6; |
| | | border-radius: 4px; |
| | | min-height: 60px; |
| | | line-height: 1.8; |
| | | color: #303133; |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ·±åº¦éæ©å¨ |
| | | ::v-deep .el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | |
| | | ::v-deep .el-tree-node__content { |
| | | display: -webkit-box; |
| | | display: -ms-flexbox; |
| | | display: flex; |
| | | -webkit-box-align: center; |
| | | -ms-flex-align: center; |
| | | align-items: center; |
| | | height: 46px; |
| | | font-size: 20px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | ::v-deep .el-tree { |
| | | position: relative; |
| | | cursor: default; |
| | | border-radius: 5px; |
| | | background: #eff8fe; |
| | | color: #606266; |
| | | border: 1px solid #bbe1fa; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | |
| | | ::v-deep |
| | | .el-tree--highlight-current |
| | | .el-tree-node.is-current |
| | | > .el-tree-node__content { |
| | | background-color: #7799fb; |
| | | color: #fff; |
| | | } |
| | | |
| | | ::v-deep .el-button--mini.is-circle { |
| | | padding: 7px; |
| | | margin: 0; |
| | | color: red; |
| | | } |
| | | |
| | | // æé®æåé¢è² |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | | |
| | | .button-textxg { |
| | | color: rgb(35, 81, 233); |
| | | } |
| | | |
| | | .button-textsc { |
| | | color: rgb(235, 23, 23); |
| | | } |
| | | </style> |
| | |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯å»é¢ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½é访é®å·ã" |
| | | }} |
| | | </div> |
| | | <div v-if="orgname" class="questionnaire-signature">âââ{{ orgname }}</div> |
| | | <div v-if="orgname" class="questionnaire-signature"> |
| | | âââ{{ orgname }} |
| | | </div> |
| | | </div> |
| | | |
| | | <el-divider class="custom-divider"></el-divider> |
| | |
| | | <div class="completion-content"> |
| | | <div class="completion-icon">â</div> |
| | | <h2 class="completion-title">æè°¢æ¨çé
å!</h2> |
| | | <h2 class="completion-title">ç¥æ¨å¥åº·å¿«ä¹!</h2> |
| | | <p class="completion-message"> |
| | | {{ |
| | | jsy |
| | |
| | | res.data.param3, |
| | | res.data.param5 |
| | | ); |
| | | if ( |
| | | res.data.orgname == "çç«åå¾·ç¿ èé¢åº" || |
| | | res.data.orgname == "çç«å德乿±é¢åº" || |
| | | res.data.orgname == "çç«å德鲿é¢åº" |
| | | ) { |
| | | this.orgname = "æµæ±çç«åå¾·å»é¢"; |
| | | } else { |
| | | this.orgname = res.data.orgname; |
| | | } |
| | | |
| | | this.param6 = res.data.param6; |
| | | } |
| | |
| | | |
| | | .questionnaire-description { |
| | | font-size: 16px; |
| | | color: #5a6c84; |
| | | color: #303a47; |
| | | line-height: 1.8; |
| | | max-width: 720px; |
| | | margin: 0; |
| | |
| | | text-indent: 2em; /* é¦è¡ç¼©è¿ */ |
| | | } |
| | | .questionnaire-signature { |
| | | font-size: 15px; |
| | | color: #8a9bb5; /* æ¯æ£æé¢è²ç¨æµ
ï¼ä½ç°é屿 */ |
| | | font-size: 16px; |
| | | color: #303a47; |
| | | text-align: right; /* å³å¯¹é½ */ |
| | | max-width: 720px; |
| | | margin: 8px 0 0 auto; /* ä¸è¾¹è·8pxï¼å³è¾¹é é½ */ |
| | |
| | | |
| | | .question-stem { |
| | | display: grid; |
| | | grid-template-columns: auto 1fr auto; /* é¢å·èªéåºï¼ææ¬å 满å©ä½ç©ºé´ï¼é¢åæ ç¾èªéåº */ |
| | | grid-template-columns: auto 1fr auto; |
| | | gap: 3px; |
| | | align-items: center; |
| | | align-items: start; /* æ¹ä¸º start é¿å
å±
ä¸å¯¼è´çè§è§é®é¢ */ |
| | | margin-bottom: 20px; |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .question-text { |
| | | line-height: 1.5; |
| | | color: #2c3e50; |
| | | font-weight: 500; |
| | | word-wrap: break-word; |
| | | overflow-wrap: break-word; |
| | | white-space: normal; /* ç¡®ä¿å
许æ¢è¡ */ |
| | | min-width: 0; /* 鲿¢ grid é¡¹æº¢åº */ |
| | | } |
| | | |
| | | .question-number { |
| | |
| | | min-width: 16px; |
| | | } |
| | | |
| | | .question-text { |
| | | line-height: 1.5; |
| | | color: #2c3e50; |
| | | font-weight: 500; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | // .question-text { |
| | | // line-height: 1.5; |
| | | // color: #2c3e50; |
| | | // font-weight: 500; |
| | | // overflow: hidden; |
| | | // text-overflow: ellipsis; |
| | | // white-space: nowrap; |
| | | // } |
| | | |
| | | .question-type-tag { |
| | | color: #3ba2f7; |
| | |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .question-stem { |
| | | font-size: 16px; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | } |
| | | // .question-stem { |
| | | // font-size: 16px; |
| | | // flex-direction: column; |
| | | // align-items: flex-start; |
| | | // } |
| | | |
| | | .question-type-tag { |
| | | margin-left: 0; |
| | |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-s-promotion" |
| | |
| | | @click="distribute" |
| | | >å任塿´¾åæ£è
</el-button |
| | | > |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="6"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | |
| | | ><i class="el-icon-edit"></i>æ£è
è¿æ»¤</span |
| | | ></el-button |
| | | > |
| | | <!-- <el-button |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Distributionservice(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-menu"></i>æå¡</span |
| | | ><span class="button-textdx" |
| | | ><i class="el-icon-s-promotion"></i>çä¿¡åé</span |
| | | ></el-button |
| | | > --> |
| | | > |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | Distributionservice(row) { |
| | | this.serviceVisible = true; |
| | | Distributionservice(patient) { |
| | | this.$store.dispatch("sms/openSmsDialog", { |
| | | name: patient.name, |
| | | age: patient.age, |
| | | phone: patient.telcode, |
| | | deptName: patient.deptName, |
| | | wardName: patient.wardName, |
| | | smsTemplate: `å°æ¬ç${patient.name}ï¼æ¨å¥½ï¼`, |
| | | }); |
| | | |
| | | this.$message.success(`å·²åå¤å ${patient.name} åéçä¿¡`); |
| | | }, |
| | | RiskMarker(row) { |
| | | this.RiskVisible = true; |
| | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textdx { |
| | | color: #569655; |
| | | } |
| | | .button-textxg { |
| | | color: #de7897; |
| | | } |
| | |
| | | </el-row> |
| | | </el-row> |
| | | <el-row v-if="form.appltype == 4"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="éç¨ææ¯" prop="region"> |
| | | <el-form-item label="éç¨ææ¯" prop="region"> |
| | | <el-select |
| | | v-model="form.oplevelcode" |
| | | style="width: 400px" |
| | |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div |
| | | style=" |
| | | margin-bottom: 20px; |
| | | padding: 8px 12px; |
| | | background-color: #f0f9ff; |
| | | border-left: 4px solid #409eff; |
| | | " |
| | | > |
| | | <p |
| | | style=" |
| | | margin: 0; |
| | | color: #606266; |
| | | font-size: 13px; |
| | | line-height: 1.4; |
| | | " |
| | | > |
| | | <i |
| | | class="el-icon-info" |
| | | style="color: #409eff; margin-right: 6px" |
| | | ></i> |
| | | é对å䏿æ¯ç±»åå¨å¤ç§å®¤/ç
åºä¸åå¨çæ
åµï¼å¯éæ©æ§é
ç½®åºå®ç§å®¤/ç
åº |
| | | </p> |
| | | </div> |
| | | <!-- æ°å¢ï¼ææ¯å
³èä¸çç§å®¤é
ç½®ï¼åéï¼ --> |
| | | <el-row :gutter="20" style="margin-top: 20px"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å
³èç§å®¤" prop="diseaseDept"> |
| | | <el-select |
| | | v-model="diseaseDept" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | placeholder="è¯·éæ©ç§å®¤ï¼å¯éï¼" |
| | | value-key="deptCode" |
| | | @change="handleDiseaseDeptChange" |
| | | > |
| | | <el-option |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item" |
| | | ></el-option> |
| | | </el-select> |
| | | <div v-if="diseaseDept" class="selected-info"> |
| | | 已鿩: {{ diseaseDept.deptName }} ({{ |
| | | diseaseDept.deptCode |
| | | }}) |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="å
³èç
åº" prop="diseaseWard"> |
| | | <el-select |
| | | v-model="diseaseWard" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | placeholder="è¯·éæ©ç
åºï¼å¯éï¼" |
| | | value-key="districtCode" |
| | | @change="handleDiseaseWardChange" |
| | | > |
| | | <el-option |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item" |
| | | ></el-option> |
| | | </el-select> |
| | | <div v-if="diseaseWard" class="selected-info"> |
| | | 已鿩: {{ diseaseWard.districtName }} ({{ |
| | | diseaseWard.districtCode |
| | | }}) |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12" |
| | |
| | | // æ¶é´å¤ç |
| | | daytime: [], //æ¥æ |
| | | applydaytime: [], //è®¡ç®æ¥æ |
| | | diseaseDept: null, // ç¾ç
å
³èä¸çç§å®¤ï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | | diseaseWard: null, // ç¾ç
å
³èä¸çç
åºï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | | diseaseDept: null, // ç¾ç
æææ¯å
³èä¸çç§å®¤ï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | | diseaseWard: null, // ç¾ç
æææ¯å
³èä¸çç
åºï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | | diseaseDepts: "", |
| | | diseaseWards: "", |
| | | time1: "", //ä¸åæ¶é´æ®µ |
| | |
| | | } |
| | | |
| | | // æ ¡éªï¼ç¾ç
å
³èç§å®¤æç
åº |
| | | if (this.form.appltype == 3) { |
| | | if (this.form.appltype == 3 || this.form.appltype == 4) { |
| | | const hasDept = this.diseaseDept?.deptCode; |
| | | const hasWard = this.diseaseWard?.districtCode; |
| | | |
| | | if (!hasDept && !hasWard) { |
| | | this.$modal.msgError("å½åç¾ç
éå
³èç§å®¤æç
åº"); |
| | | this.$modal.msgError("éå
³èç§å®¤æç
åº"); |
| | | this.submitLoading = false; |
| | | return; |
| | | } |
| | |
| | | </el-row> |
| | | </el-row> |
| | | <el-row v-if="form.appltype == 4"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="éç¨ææ¯" prop="region"> |
| | | <el-form-item label="éç¨ææ¯" prop="region"> |
| | | <el-select |
| | | v-model="operationcodes" |
| | | v-model="form.oplevelcode" |
| | | style="width: 400px" |
| | | @remove-tag="removeopera" |
| | | :remote-method="remoteopcode" |
| | | size="medium" |
| | | multiple |
| | | :remote-method="remoteopcode" |
| | | filterable |
| | | remote |
| | | placeholder="è¯·éæ©ææ¯" |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in baseoperaList" |
| | | :key="item.icdcode" |
| | | :label="item.icdname" |
| | | :value="item.icdcode" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div |
| | | style=" |
| | | margin-bottom: 20px; |
| | | padding: 8px 12px; |
| | | background-color: #f0f9ff; |
| | | border-left: 4px solid #409eff; |
| | | " |
| | | > |
| | | <p |
| | | style=" |
| | | margin: 0; |
| | | color: #606266; |
| | | font-size: 13px; |
| | | line-height: 1.4; |
| | | " |
| | | > |
| | | <i |
| | | class="el-icon-info" |
| | | style="color: #409eff; margin-right: 6px" |
| | | ></i> |
| | | é对å䏿æ¯ç±»åå¨å¤ç§å®¤/ç
åºä¸åå¨çæ
åµï¼å¯éæ©æ§é
ç½®åºå®ç§å®¤/ç
åº |
| | | </p> |
| | | </div> |
| | | <!-- æ°å¢ï¼ææ¯å
³èä¸çç§å®¤é
ç½®ï¼åéï¼ --> |
| | | <el-row :gutter="20" style="margin-top: 20px"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å
³èç§å®¤" prop="diseaseDept"> |
| | | <el-select |
| | | v-model="diseaseDept" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | placeholder="è¯·éæ©ç§å®¤ï¼å¯éï¼" |
| | | value-key="deptCode" |
| | | @change="handleDiseaseDeptChange" |
| | | > |
| | | <el-option |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item" |
| | | ></el-option> |
| | | </el-select> |
| | | <div v-if="diseaseDept" class="selected-info"> |
| | | 已鿩: {{ diseaseDept.deptName }} ({{ |
| | | diseaseDept.deptCode |
| | | }}) |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="å
³èç
åº" prop="diseaseWard"> |
| | | <el-select |
| | | v-model="diseaseWard" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | placeholder="è¯·éæ©ç
åºï¼å¯éï¼" |
| | | value-key="districtCode" |
| | | @change="handleDiseaseWardChange" |
| | | > |
| | | <el-option |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item" |
| | | ></el-option> |
| | | </el-select> |
| | | <div v-if="diseaseWard" class="selected-info"> |
| | | 已鿩: {{ diseaseWard.districtName }} ({{ |
| | | diseaseWard.districtCode |
| | | }}) |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12" |
| | |
| | | questionList: [], |
| | | skip: false, |
| | | donorchargeList: [], |
| | | baseoperaList: [], |
| | | baseoperaList: [ { value: "1", label: "ä¸çº§ææ¯" }, |
| | | { value: "2", label: "äºçº§ææ¯" }, |
| | | { value: "3", label: "ä¸çº§ææ¯" }, |
| | | { value: "4", label: "åçº§ææ¯" },], |
| | | selectedOrder: [], |
| | | diseaseDept: null, // ç¾ç
å
³èä¸çç§å®¤ï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | | diseaseWard: null, // ç¾ç
å
³èä¸çç
åºï¼å卿´ä¸ªå¯¹è±¡ï¼ |
| | |
| | | } |
| | | |
| | | // 2. ç¾ç
å
³èç§å®¤æç
åºæ ¡éª |
| | | if (this.form.appltype == 3) { |
| | | if (this.form.appltype == 3 || this.form.appltype == 4) { |
| | | const hasDept = this.diseaseDept?.deptCode; |
| | | const hasWard = this.diseaseWard?.districtCode; |
| | | |
| | |
| | | }).then((row) => { |
| | | this.donorchargeList = res.rows; |
| | | }); |
| | | getbaseopera({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | }).then((row) => { |
| | | this.baseoperaList = res.rows; |
| | | }); |
| | | // getbaseopera({ |
| | | // pageNum: 1, |
| | | // pageSize: 1000, |
| | | // }).then((row) => { |
| | | // this.baseoperaList = res.rows; |
| | | // }); |
| | | }, |
| | | // ææ¯æ¥è¯¢ |
| | | remoteopcode(name) { |
| | | if (name) { |
| | | getbaseopera({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | opdesc: name, |
| | | }).then((res) => { |
| | | this.baseoperaList = res.rows; |
| | | }); |
| | | } |
| | | // if (name) { |
| | | // getbaseopera({ |
| | | // pageNum: 1, |
| | | // pageSize: 1000, |
| | | // opdesc: name, |
| | | // }).then((res) => { |
| | | // this.baseoperaList = res.rows; |
| | | // }); |
| | | // } |
| | | }, |
| | | |
| | | // ä»»å¡ç§å®¤å é¤è§¦å |
| | |
| | | } from "@/api/AiCentre/index"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | export default { |
| | | name: "templateku", |
| | | name: "Templateku", |
| | | data() { |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | |
| | | import { getSfStatisticsHyperlink } from "@/api/AiCentre/index"; |
| | | |
| | | export default { |
| | | name: "FollowUpStatistics", |
| | | name: "Percentage", |
| | | components: { |
| | | FirstFollowUp, |
| | | SecondFollowUp, |
| | |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `https://www.health-y.cn/lssf`, |
| | | // target: `http://192.168.100.10:8096`, |
| | | target: `http://192.168.100.10:8094`,//çç«åå¾· |
| | | // target: `http://192.168.100.10:8094`,//çç«åå¾· |
| | | // target: `http://192.168.100.10:8095`,//æ°å |
| | | // target: `http://192.168.100.10:8098`,//å¸ä¸ |
| | | // target:`http://localhost:8095`, |
| | | // target:`http://35z1t16164.qicp.vip`, |
| | | // target: `http://192.168.100.172:8095`, |
| | | // target: `http://192.168.100.10:8089`,//åå |
| | | target: `http://192.168.100.10:8089`,//åå |
| | | // target: `http://192.168.191.181:8095`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
copy from "\351\232\217\350\256\277\351\200\232\347\224\250\357\274\210\351\234\200\345\220\214\346\255\245\346\234\200\346\226\260\347\212\266\346\200\201\357\274\211.zip"
copy to "\351\232\217\350\256\277\345\244\226\351\223\276.zip"
Binary files differ
copy from "\351\232\217\350\256\277\351\200\232\347\224\250\357\274\210\351\234\200\345\220\214\346\255\245\346\234\200\346\226\260\347\212\266\346\200\201\357\274\211.zip"
copy to "\351\232\217\350\256\277\345\244\226\351\223\276\351\200\232\347\224\250.zip"
Binary files differ
copy from "\351\232\217\350\256\277\351\200\232\347\224\250\357\274\210\351\234\200\345\220\214\346\255\245\346\234\200\346\226\260\347\212\266\346\200\201\357\274\211.zip"
copy to "\351\232\217\350\256\277\351\200\232\347\224\250.zip"
Binary files differ