| | |
| | | export * from './indicator' |
| | | export * from './Problemspeaking' |
| | | export * from './Followup' |
| | | export * from './general' |
| | | export * from './publicity' |
| | | export * from './Qtemplate' |
| | | export * from './questionnaire' |
| | | export * from './SingleTask' |
| | | export * from './external' |
| | | export * from './patientexternal' |
| | | export * from './EChartsdata' |
| | | export * from './satisfactionse' |
| | | export * from './satisfaction' |
| | | |
| | | export * from "./indicator"; |
| | | export * from "./Problemspeaking"; |
| | | export * from "./Followup"; |
| | | export * from "./general"; |
| | | export * from "./publicity"; |
| | | export * from "./Qtemplate"; |
| | | export * from "./questionnaire"; |
| | | export * from "./SingleTask"; |
| | | export * from "./external"; |
| | | export * from "./patientexternal"; |
| | | export * from "./EChartsdata"; |
| | | export * from "./satisfactionse"; |
| | | export * from "./satisfaction"; |
| | | export * from "./phoneCall"; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from "@/utils/request"; |
| | | |
| | | |
| | | // å é¤å¤é¨æ£è
表 |
| | | export function CallgetList() { |
| | | return request({ |
| | | url: "/smartor/ServiceTelInfo/getList", |
| | | method: "get", |
| | | }); |
| | | } |
| | | // æ¥è¯¢å¤é¨æ£è
表 |
| | | export function CallsetState(data) { |
| | | return request({ |
| | | url: "/smartor/ServiceTelInfo/setState", |
| | | method: "get", |
| | | params: data, |
| | | }); |
| | | } |
| | |
| | | // æ°å¢åæ°é
ç½® |
| | | export function addConfig(data) { |
| | | return request({ |
| | | url: '/system/config/add', |
| | | url: '/system/config', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | |
| | | |
| | | <script> |
| | | import sipService from "@/utils/sipService"; |
| | | import { CallsetState, CallgetList } from "@/api/AiCentre/index"; |
| | | |
| | | export default { |
| | | props: { |
| | |
| | | }, |
| | | }, |
| | | data() { |
| | | const randomNum = Math.floor(Math.random() * 20) + 1000; // å
é¨å®ä¹ |
| | | const randomNum = Math.floor(Math.random() * 20) + 1000; // å®ä¹éæºåæºå· |
| | | return { |
| | | isCalling: false, |
| | | randomNum: randomNum, |
| | | randomID: null, |
| | | callStatus: "idle", // idle, calling, connected, ended |
| | | sipStatus: "æªè¿æ¥", |
| | | sipStatusClass: "status-disconnected", |
| | | sipConfig: { |
| | | wsUrl: "wss://1192.170.66.107:7443", |
| | | sipUri: `${randomNum}` + "@1192.170.66.107", |
| | | wsUrl: "wss://192.168.10.124:7443", |
| | | sipUri: "", |
| | | password: "Smartor@2023", |
| | | displayName: "Web å°é¾", |
| | | // realm: "9.208.5.18:8090", |
| | | // realm: "9.208.5.18:8090", |
| | | }, |
| | | }; |
| | |
| | | }; |
| | | return statusMap[this.callStatus]; |
| | | }, |
| | | countdownText() { |
| | | if (this.sipStatus !== "已注å") return ""; |
| | | |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | | if (!canCall && reason.includes("çå¾
")) { |
| | | return reason; |
| | | } |
| | | return ""; |
| | | }, |
| | | callStatusClass() { |
| | | return `status-${this.callStatus}`; |
| | | }, |
| | |
| | | return this.isCalling ? "éè¯ä¸..." : "ä¸é®å¼å«"; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // æµè¯ |
| | | const ws = new WebSocket("wss://9.208.5.18:7443"); |
| | | ws.onopen = () => console.log("WebSocket è¿æ¥æå"); |
| | | ws.onerror = (e) => console.error("WebSocket é误:", e); |
| | | created() { |
| | | // CallgetList(); |
| | | }, |
| | | |
| | | |
| | | // åå§åSIPè¿æ¥ |
| | | |
| | | async mounted() { |
| | | await this.CallgetList(); |
| | | sipService.init(this.sipConfig); |
| | | // è®¾ç½®ç¶æåè° |
| | | sipService.onStatusChange = (status) => { |
| | | this.sipStatus = status.text; |
| | | this.sipStatusClass = `status-${status.type}`; |
| | | |
| | | // å¤ç注å失败åæå¼è¿æ¥æ
åµ |
| | | if (status.type === "failed" || status.type === "disconnected") { |
| | | this.overCallsetState(); // éæ¾åæºå· |
| | | } |
| | | }; |
| | | |
| | | // çå¬éè¯ç¶æåå |
| | |
| | | } |
| | | |
| | | try { |
| | | // å
æ£æ¥æ¯å¦å¯ä»¥å¼å« |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | | if (!canCall) { |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | | //this.$message.warning(reason); |
| | | //return; |
| | | } |
| | | this.callStatus = "calling"; |
| | | this.isCalling = true; |
| | | console.log("å¼å§å¼å«ï¼", sipService); |
| | | |
| | | await sipService.makeCall(this.phoneNumber); |
| | | await sipService.makeCall("0" + this.phoneNumber); |
| | | } catch (error) { |
| | | console.error("å¼å«å¤±è´¥:", error); |
| | | this.callStatus = "ended"; |
| | | this.isCalling = false; |
| | | this.$message.error(`å¼å«å¤±è´¥: ${error.message}`); |
| | | let registrationTime = Date.now(); // è®°å½æ³¨éæåæ¶é´ |
| | | console.log(registrationTime, "å¼å«å¤±è´¥æ¶é´"); |
| | | console.error("å¼å«å¤±è´¥1:", error); |
| | | // this.callStatus = "ended"; |
| | | // this.isCalling = false; |
| | | //this.$message.error(`å¼å«å¤±è´¥: ${error.message}`); |
| | | try { |
| | | // å
æ£æ¥æ¯å¦å¯ä»¥å¼å« |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | | if (!canCall) { |
| | | const { canCall, reason } = sipService.canMakeCall(); |
| | | } |
| | | this.callStatus = "calling"; |
| | | this.isCalling = true; |
| | | console.log("å¼å§å¼å«ï¼", sipService); |
| | | |
| | | await sipService.makeCall("0" + this.phoneNumber); |
| | | } catch (error) { |
| | | this.callStatus = "ended"; |
| | | this.isCalling = false; |
| | | } |
| | | } |
| | | }, |
| | | // æ¥è¯¢å¯ç¨åæºå· |
| | | async CallgetList() { |
| | | try { |
| | | const res = await CallgetList(); |
| | | this.randomNum = res.data[0].tel; |
| | | this.randomID = res.data[0].id; |
| | | // æ£ç¡®è®¾ç½® sipUri |
| | | this.sipConfig.sipUri = `${this.randomNum}@192.168.10.124`; |
| | | this.startCallsetState(); |
| | | } catch (error) { |
| | | console.error("è·ååæºå·å¤±è´¥:", error); |
| | | this.updateStatus("failed", "è·ååæºå·å¤±è´¥"); |
| | | } |
| | | }, |
| | | async startCallsetState() { |
| | | try { |
| | | await CallsetState({ id: this.randomID, state: 1 }); |
| | | console.log("åæºå·ç¶ææ´æ°ä¸ºä½¿ç¨ä¸"); |
| | | } catch (error) { |
| | | console.error("æ´æ°åæºå·ç¶æå¤±è´¥:", error); |
| | | } |
| | | }, |
| | | |
| | | async overCallsetState() { |
| | | try { |
| | | if (this.randomID) { |
| | | await CallsetState({ id: this.randomID, state: 0 }); |
| | | console.log("åæºå·ç¶ææ´æ°ä¸ºå¯ç¨"); |
| | | } |
| | | } catch (error) { |
| | | console.error("éæ¾åæºå·å¤±è´¥:", error); |
| | | } |
| | | }, |
| | | endCall() { |
| | | sipService.endCall(); |
| | | this.callStatus = "ended"; |
| | | this.isCalling = false; |
| | | }, |
| | | cleanupResources() { |
| | | // ç»æéè¯ |
| | | if (this.isCalling) { |
| | | sipService.endCall(); |
| | | } |
| | | |
| | | // éæ¾åæºå· |
| | | this.overCallsetState(); |
| | | |
| | | // æå¼ SIP è¿æ¥ |
| | | if (sipService.ua) { |
| | | sipService.ua.stop(); |
| | | } |
| | | }, |
| | | }, |
| | | beforeUnmount() { |
| | | // ç»ä»¶éæ¯æ¶ç¡®ä¿éæ¾èµæº |
| | | this.cleanupResources(); |
| | | }, |
| | | }; |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | import { login, logout, getInfo } from "@/api/login"; |
| | | import { getToken, setToken, removeToken } from "@/utils/auth"; |
| | | |
| | | |
| | | const user = { |
| | | state: { |
| | | token: getToken(), |
| | |
| | | hisUserId: "", |
| | | belongWards: [], |
| | | belongDepts: [], |
| | | name: "", |
| | | nickName: "", |
| | | Id: "", |
| | | avatar: "", |
| | | hisUserId: "", |
| | | belongWards: [], |
| | | belongDepts: [], |
| | | roles: [], |
| | | permissions: [], |
| | | // æå¡ç±»å |
| | | Serviceauthority: [ |
| | | { |
| | | value: "1", |
| | | 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: "4", |
| | | label: "宣æå
³æ", |
| | | route: "followvisit/Missioncreation", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: "5", |
| | | 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: "", |
| | | }, |
| | | }, |
| | | ], |
| | | Serviceauthority: [ |
| | | { |
| | | value: "1", |
| | |
| | | if (orgid == "H41010500003") { |
| | | localStorage.setItem("orgname", "æ²³åä¸å»è¯å¤§å¦ç¬¬ä¸éå±å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1400361376454545408"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | localStorage.setItem("deptCode", "1017"); // è¯·æ¿æ¢ä¸ºå®é
ç课é¢ç»ä»£ç |
| | | localStorage.setItem("deptCode", "1017"); // è¯·æ¿æ¢ä¸ºå®é
çç§å®¤ä»£ç |
| | | } else if (orgid == "H41082200269") { |
| | | localStorage.setItem("orgname", "åç±å¿äººæ°å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1400360867068907520"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | localStorage.setItem("deptCode", "01040201"); // è¯·æ¿æ¢ä¸ºå®é
ç课é¢ç»ä»£ç |
| | | localStorage.setItem("deptCode", "01040201"); // è¯·æ¿æ¢ä¸ºå®é
çç§å®¤ä»£ç |
| | | } else if (orgid == "H41078202417") { |
| | | localStorage.setItem("orgname", "è¾å¿å¸ä¸å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000002"); // è¯·æ¿æ¢ä¸ºå®é
çZuHuID |
| | | localStorage.setItem("deptCode", ""); // è¯·æ¿æ¢ä¸ºå®é
ç课é¢ç»ä»£ç |
| | | 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(); |
| | | }) |
| | |
| | | init(config) { |
| | | try { |
| | | this.updateStatus("connecting", "è¿æ¥ä¸..."); |
| | | console.log(config); |
| | | |
| | | this.ua = new JsSIP.UA({ |
| | | sockets: [new JsSIP.WebSocketInterface(config.wsUrl)], |
| | |
| | | this.onStatusChange = null; |
| | | this.onCallStatusChange = null; |
| | | this.onIncomingCall = null; |
| | | this.isRegistered = false; // æ°å¢æ³¨åç¶ææ å¿ |
| | | this.registrationTime = null; // æ°å¢æ³¨åæåæ¶é´æ³ |
| | | } |
| | | |
| | | init(config) { |
| | |
| | | this.ua.start(); |
| | | |
| | | // äºä»¶çå¬ |
| | | this.ua.on("registered", () => |
| | | this.updateStatus("registered", "已注å56") |
| | | ); |
| | | this.ua.on("registrationFailed", (e) => |
| | | this.updateStatus("failed", `注å失败11: ${e.cause}`) |
| | | ); |
| | | this.ua.on("registered", () => { |
| | | this.isRegistered = true; |
| | | this.registrationTime = Date.now(); // è®°å½æ³¨åæåæ¶é´ |
| | | console.log(this.registrationTime, "æ³¨åæ¶é´"); |
| | | |
| | | this.updateStatus("registered", "已注å"); |
| | | }); |
| | | |
| | | this.ua.on("registrationFailed", (e) => { |
| | | this.isRegistered = false; |
| | | this.updateStatus("failed", `注å失败: ${e.cause}`); |
| | | }); |
| | | |
| | | this.ua.on("unregistered", () => { |
| | | this.isRegistered = false; |
| | | let registrationTime = Date.now(); // è®°å½æ³¨éæåæ¶é´ |
| | | console.log(registrationTime, "æ³¨éæ¶é´"); |
| | | this.updateStatus("disconnected", "已注é"); |
| | | }); |
| | | this.ua.on("disconnected", () => |
| | | this.updateStatus("disconnected", "è¿æ¥æå¼") |
| | | ); |
| | |
| | | throw error; |
| | | } |
| | | } |
| | | // æ°å¢æ¹æ³ï¼æ£æ¥æ¯å¦å¯ä»¥å¼å« |
| | | canMakeCall(minDelay = 2000) { |
| | | if (!this.isRegistered) { |
| | | return { canCall: false, reason: "SIPæªæ³¨åï¼æ æ³å¼å«" }; |
| | | } |
| | | |
| | | const now = Date.now(); |
| | | const timeSinceRegistration = now - this.registrationTime; |
| | | |
| | | if (timeSinceRegistration < minDelay) { |
| | | const remaining = minDelay - timeSinceRegistration; |
| | | return { |
| | | canCall: false, |
| | | reason: `注åæåï¼è¯·çå¾
${Math.ceil(remaining / 1000)} ç§ååå¼å«`, |
| | | }; |
| | | } |
| | | |
| | | return { canCall: true, reason: "" }; |
| | | } |
| | | makeCall(targetNumber) { |
| | | const { canCall, reason } = this.canMakeCall(); |
| | | if (!canCall) { |
| | | return Promise.reject(new Error(reason)); |
| | | } |
| | | return new Promise((resolve, reject) => { |
| | | try { |
| | | if (!this.ua) { |
| | |
| | | }; |
| | | |
| | | this.currentSession = this.ua.call( |
| | | `sip:${targetNumber}@1192.170.66.107`, |
| | | `sip:${targetNumber}@192.168.10.124`, |
| | | options |
| | | ); |
| | | |
| | |
| | | errorMessage = "ä¼è¯åæ°ä¸æ»¡è¶³æå¡å¨è¦æ±"; |
| | | break; |
| | | default: |
| | | errorMessage = `å¼å«å¤±è´¥: ${e.cause || e.message}`; |
| | | errorMessage = `å¼å«å¤±è´¥3: ${e.cause || e.message}`; |
| | | } |
| | | |
| | | this.updateCallStatus("failed55", errorMessage); |
| | |
| | | }); |
| | | }, |
| | | affiliation() { |
| | | |
| | | this.topqueryParams.managementDoctorCode= store.getters.hisUserId; |
| | | this.topqueryParams.managementDoctor = store.getters.hisUserId; |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | |
| | | /> |
| | | </el-dialog> |
| | | <div class="action-container"> |
| | | <!-- é访å
容 --> |
| | | <div class="call-action"> |
| | | <div class="call-container"> |
| | | <!-- <div class="call-header"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 人工å¤ç --> |
| | | <div class="manual-action"> |
| | | <div class="Followuserinfos"> |
| | | <div> |
| | |
| | | this.getTaskservelist(); |
| | | }, |
| | | }, |
| | | // deactivated() { |
| | | // console.log(11); |
| | | // }, |
| | | beforeRouteLeave(to, from, next) { |
| | | this.$refs.callButton.cleanupResources(); |
| | | next(); // ç¡®ä¿è°ç¨ nex |
| | | }, |
| | | // beforeRouteUpdate() { |
| | | // console.log(33); |
| | | // }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | 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> |
| | |
| | | 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, |
| | |
| | | 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 { |
| | |
| | | {{ |
| | | kcb |
| | | ? kcb |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯"+localStorage.getItem("orgname")+"ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½é访é®å·ã" |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯" + |
| | | localStorage.getItem("orgname") + |
| | | "ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½é访é®å·ã" |
| | | }} |
| | | <!-- 亲ç±çæ£è
/家屿¨å¥½ï¼ä¸ºäºæ´å¥½çäºè§£æ¨åºé¢åçåº·å¤æ
åµï¼ç»æ¨éå½åæ¶çå¥åº·æå¯¼ï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½åºé¢é访é®å·è°æ¥ã --> |
| | | </div> |
| | |
| | | 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) { |
| | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textsc { |
| | | color: #3664d9; |
| | | } |
| | |
| | | </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"; |
| | | |
| | |
| | | }, |
| | | { label: "微信å°ç¨åº", value: '6' }, |
| | | ]; |
| | | } else if (this.form.serviceType == 6||this.form.serviceType == 14||this.form.serviceType == 15) { |
| | | } else if ( |
| | | this.form.serviceType == 6 || |
| | | this.form.serviceType == 14 || |
| | | this.form.serviceType == 15 |
| | | ) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "3", |
| | |
| | | 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("æªéæ©æ¨¡æ¿"); |
| | |
| | | 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) => { |
| | |
| | | } |
| | | 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 |