已修改17个文件
已重命名1个文件
已删除2个文件
已添加2个文件
| | |
| | | <span class="btn-icon">ð</span> |
| | | {{ callButtonText }} |
| | | </button> |
| | | |
| | | <button |
| | | @click="handleSeatLogout" |
| | | :class="[ |
| | | 'seat-btn', |
| | | 'logout', |
| | | { 'in-call': isInCall || isCalling }, |
| | | ]" |
| | | :disabled="!canLogout" |
| | | > |
| | | <span class="btn-icon">ðª</span> |
| | | {{ isInCall || isCalling ? "强å¶ç¾åº" : "ç¾åº" }} |
| | | </button> |
| | | <button |
| | | @click="handleHangup" |
| | | class="hangup-btn" |
| | |
| | | |
| | | <div class="status-item" v-if="callDuration"> |
| | | <span class="status-label">éè¯æ¶é¿:</span> |
| | | <span class="duration-display"> |
| | | â±ï¸ {{ callDuration }} |
| | | </span> |
| | | <span class="duration-display"> â±ï¸ {{ callDuration }} </span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | isInCall() { |
| | | return this.callStatus === "connected"; |
| | | }, |
| | | |
| | | canLogout() { |
| | | // åªæå¨å·²ç¾å
¥ç¶ææå
许ç¾åºï¼æ 论æ¯å¦å¨éè¯ä¸ï¼ |
| | | return this.isSeatLoggedIn && !this.isSeatLoggingOut; |
| | | }, |
| | | canMakeCall() { |
| | | return ( |
| | | this.isSeatLoggedIn && |
| | |
| | | this.$refs.callComponent.callout(this.customerPhone); |
| | | this.startCallTimer(); |
| | | }, |
| | | async handleSeatLogout() { |
| | | if (!this.canLogout) return; |
| | | |
| | | try { |
| | | // 妿æ£å¨éè¯ä¸ï¼å
ææ |
| | | if (this.isInCall || this.isCalling) { |
| | | // æ¾ç¤ºç¡®è®¤å¯¹è¯æ¡ |
| | | const confirm = await this.$confirm( |
| | | "ç¡®å®è¦ç¾åºåï¼ç¾åºå°ç»æå½åéè¯", |
| | | "æç¤º", |
| | | { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | } |
| | | ); |
| | | await this.handleHangup(); |
| | | } |
| | | console.log(2); |
| | | |
| | | // æ§è¡ç¾åº |
| | | await this.$refs.callComponent.handleSeatLogout(); |
| | | console.log(3); |
| | | this.isSeatLoggedIn = false; |
| | | |
| | | this.$message.success("座å¸ç¾åºæå"); |
| | | } catch (error) { |
| | | if (error !== "cancel") { |
| | | // 忽ç¥ç¨æ·åæ¶çæ
åµ |
| | | console.error("ç¾åºå¤±è´¥:", error); |
| | | this.$message.error("座å¸ç¾åºå¤±è´¥"); |
| | | } |
| | | } |
| | | }, |
| | | handleHangup() { |
| | | this.$refs.callComponent.hangup(); |
| | | this.stopCallTimer(); |
| | |
| | | |
| | | onSeatStatusChange(status) { |
| | | this.isSeatLoggedIn = status.isLoggedIn; |
| | | |
| | | // å¦æåº§å¸ç¾åºï¼éç½®éè¯ç¶æ |
| | | if (!status.isLoggedIn) { |
| | | this.callStatus = "idle"; |
| | | this.stopCallTimer(); |
| | | } |
| | | }, |
| | | |
| | | onCallStatusChange(status) { |
| | | this.callStatus = status.status; |
| | | if (status.status === "connected") { |
| | | if (status.status == "connected") { |
| | | this.startCallTimer(); |
| | | } else if (status.status === "idle") { |
| | | } else if (status.status == "idle") { |
| | | this.stopCallTimer(); |
| | | } |
| | | }, |
| | |
| | | |
| | | beforeUnmount() { |
| | | this.stopCallTimer(); |
| | | |
| | | // ç»ä»¶éæ¯åå°è¯ç¾åº |
| | | if (this.isSeatLoggedIn) { |
| | | this.handleSeatLogout().catch(console.error); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | grid-template-columns: 1fr 1fr; |
| | | gap: 16px; |
| | | padding: 20px; |
| | | padding-bottom: 0; |
| | | padding-bottom: 0; |
| | | |
| | | @media (max-width: 1024px) { |
| | | grid-template-columns: 1fr; |
| | | } |
| | | } |
| | | |
| | | .seat-btn.logout { |
| | | background: linear-gradient(135deg, #f97316, #ea580c); |
| | | color: white; |
| | | |
| | | &:hover:not(:disabled) { |
| | | box-shadow: 0 6px 16px rgba(249, 115, 22, 0.4); |
| | | } |
| | | |
| | | // éè¯ä¸çç¹æ®æ ·å¼ |
| | | &.in-call { |
| | | background: linear-gradient(135deg, #ef4444, #dc2626); |
| | | animation: pulse 1.5s infinite; |
| | | |
| | | &:hover:not(:disabled) { |
| | | box-shadow: 0 6px 16px rgba(239, 68, 68, 0.4); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // éè¯ä¸ç¾åºæé®çç¹æ®å¨ç» |
| | | @keyframes pulse-red { |
| | | 0% { |
| | | box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5); |
| | | } |
| | | 50% { |
| | | box-shadow: 0 4px 20px rgba(239, 68, 68, 0.8); |
| | | } |
| | | 100% { |
| | | box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5); |
| | | } |
| | | } |
| | | .section-title { |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | |
| | | } |
| | | |
| | | .call-btn.calling { |
| | | background: linear-gradient(135deg, #f59e0b, #d97706); /* å¼å«ä¸ç¶ææ¹ä¸ºæ©è²æ¸å */ |
| | | background: linear-gradient( |
| | | 135deg, |
| | | #f59e0b, |
| | | #d97706 |
| | | ); /* å¼å«ä¸ç¶ææ¹ä¸ºæ©è²æ¸å */ |
| | | animation: pulse 1.5s infinite; /* å¼å«ä¸æ·»å å¼å¸èå²å¨ç» */ |
| | | } |
| | | |
| | |
| | | |
| | | /* èå²å¨ç»å®ä¹ */ |
| | | @keyframes pulse { |
| | | 0% { box-shadow: 0 4px 12px rgba(245, 158, 11, 0.5); } |
| | | 50% { box-shadow: 0 4px 20px rgba(245, 158, 11, 0.8); } |
| | | 100% { box-shadow: 0 4px 12px rgba(245, 158, 11, 0.5); } |
| | | 0% { |
| | | box-shadow: 0 4px 12px rgba(245, 158, 11, 0.5); |
| | | } |
| | | 50% { |
| | | box-shadow: 0 4px 20px rgba(245, 158, 11, 0.8); |
| | | } |
| | | 100% { |
| | | box-shadow: 0 4px 12px rgba(245, 158, 11, 0.5); |
| | | } |
| | | } |
| | | |
| | | // ç¶ææ¾ç¤ºæ ·å¼ |
| | |
| | | } |
| | | |
| | | .duration-display { |
| | | font-family: 'Courier New', monospace; |
| | | font-family: "Courier New", monospace; |
| | | font-weight: 600; |
| | | color: #059669; |
| | | font-size: 14px; |
| | |
| | | } |
| | | |
| | | .debug-title { |
| | | font-size: 16px; |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | color: #1e293b; |
| | | margin-bottom: 16px; |
| | |
| | | |
| | | // å¨ç»å®ä¹ |
| | | @keyframes pulse { |
| | | 0% { opacity: 1; } |
| | | 50% { opacity: 0.5; } |
| | | 100% { opacity: 1; } |
| | | 0% { |
| | | opacity: 1; |
| | | } |
| | | 50% { |
| | | opacity: 0.5; |
| | | } |
| | | 100% { |
| | | opacity: 1; |
| | | } |
| | | } |
| | | |
| | | // ååºå¼è®¾è®¡ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="leftvlue" style="margin-bottom: 20px"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> |
| | | <el-card |
| | | shadow="hover" |
| | | :body-style="item.router ? ' cursor: pointer' : 'cursor: default'" |
| | | > |
| | | <div style="padding: 8px" @click="$router.push(item.router)"> |
| | | <span>{{ item.name }}</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ item.value ? item.value : 0 }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="ysfleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>表åå·²åé</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ yfsvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="errleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>å¼å¸¸</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ ycvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | | :model="topqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="ä»»å¡åç§°"> |
| | | <el-input |
| | | v-model="topqueryParams.taskName" |
| | | placeholder="è¯·éæ©ä»»å¡åç§°" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="é¨è¯æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åºé访æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRangefs" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
å§å" prop="sendname"> |
| | | <el-input |
| | | v-model="topqueryParams.sendname" |
| | | placeholder="请è¾å
¥æ£è
å§å" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è¯æåç§°" prop="leavediagname"> |
| | | <el-input |
| | | v-model="topqueryParams.leavediagname" |
| | | placeholder="请è¾å
¥è¯æåç§°" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
èå´" prop="status"> |
| | | <el-cascader |
| | | v-model="topqueryParams.scopetype" |
| | | placeholder="é»è®¤å
¨é¨" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="ä»»å¡ç¶æ" prop="status"> |
| | | <el-select v-model="topqueryParams.sendstate" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºæ¹å¼" prop="status"> |
| | | <el-select v-model="topqueryParams.sort" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptionssort" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery(1)" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleExport" |
| | | >导åº</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-warning-outline" |
| | | size="medium" |
| | | @click="toleadExport(1)" |
| | | >æ§è¡å¤±è´¥</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-warning" |
| | | size="medium" |
| | | @click="toleadExport(2)" |
| | | >ç»æå¼å¸¸</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | size="medium" |
| | | @click="buidegetTasklist()" |
| | | >å¾
åæå¡</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="medium" |
| | | @click="affiliation()" |
| | | >æ¬äººæå±æå¡</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button type="success" size="medium" @click="onthatday()" |
| | | >仿¥æå¡</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :row-class-name="tableRowClassName" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | width="150" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | /> |
| | | <!-- <el-table-column label="åºå·" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname) |
| | | " |
| | | ><span class="button-textsc">{{ |
| | | scope.row.sendname |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ä»»å¡ç¶æ" |
| | | align="center" |
| | | key="sendstate" |
| | | prop="sendstate" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | :content="scope.row.remark" |
| | | placement="top-start" |
| | | > |
| | | <div v-if="scope.row.sendstate == 1"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >表åå·²é¢å</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 2"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >å¾
é访</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 3"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >表åå·²åé</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 4"> |
| | | <el-tag type="info" :disable-transitions="false">䏿§è¡</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 5"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >åé失败</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 6"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >已宿</el-tag |
| | | > |
| | | </div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡å¼å¸¸è¯´æ" |
| | | width="120" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" --> |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="å¤çæè§" |
| | | align="center" |
| | | key="suggest" |
| | | prop="suggest" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_suggest" |
| | | :value="scope.row.suggest" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="éè®¿å®ææ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="finishtime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.finishtime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å°±è¯æ¥æ" |
| | | width="200" |
| | | align="center" |
| | | key="endtime" |
| | | prop="endtime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.endtime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="åºéè®¿æ¥æ" |
| | | width="200" |
| | | align="center" |
| | | key="longSendTime" |
| | | prop="longSendTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.longSendTime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="主治å»ç" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | | label="é¨è¯å¤©æ°" |
| | | width="120" |
| | | align="center" |
| | | key="endDay" |
| | | prop="endDay" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.endDay ? scope.row.endDay + "天" : "" }}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="身份è¯å·ç " |
| | | width="200" |
| | | align="center" |
| | | key="sfzh" |
| | | prop="sfzh" |
| | | /> |
| | | <el-table-column |
| | | label="èç³»çµè¯" |
| | | width="200" |
| | | align="center" |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <el-table-column |
| | | label="责任æ¤å£«" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | | label="ç
åå·" |
| | | align="center" |
| | | sortable |
| | | key="medicalRecordNo" |
| | | prop="medicalRecordNo" |
| | | width="120" |
| | | /> --> |
| | | |
| | | <!-- <el-table-column label="å¹´é¾" align="center" key="age" prop="age" /> --> |
| | | <!-- <el-table-column label="æ§å«"width="100" align="center" key="sex" prop="sex" /> --> |
| | | <!-- <el-table-column label="åºå·" align="center" key="badNo" prop="badNo" /> --> |
| | | <el-table-column |
| | | label="馿¬¡é访ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ¬æ¬¡ç§å®¤" |
| | | align="center" |
| | | key="visitDeptName" |
| | | prop="visitDeptName" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç
åº" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="è¯æåç§°" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访人å" |
| | | align="center" |
| | | key="updateBy" |
| | | prop="updateBy" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="é¨è¯é访模æ¿åç§°" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | width="200" |
| | | /> |
| | | <el-table-column |
| | | label="任塿§è¡æ¹å¼" |
| | | align="center" |
| | | key="preachform" |
| | | prop="preachform" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.preachform">{{ item }}ã </span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡åéæµç¨" |
| | | align="center" |
| | | key="serviceSubtaskRecordList" |
| | | prop="serviceSubtaskRecordList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.serviceSubtaskRecordList" |
| | | >{{ item.remark }}ã |
| | | </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="ä»»å¡ç»æè¯´æ" |
| | | width="220" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tooltip |
| | | :content="scope.row.remark" |
| | | placement="top" |
| | | effect="dark" |
| | | > |
| | | <el-tag |
| | | type="warning" |
| | | v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | fixed="right" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="忬¡é访" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | v-if="scope.row.isVisitAgain!=2" |
| | | @click="followupvisit(scope.row)" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-promotion"></i>忬¡é访</span |
| | | ></el-button |
| | | > |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2" |
| | | class="item" |
| | | effect="dark" |
| | | content="æåæå¡" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handlestop(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-remove-outline"></i>æåæå¡</span |
| | | ></el-button |
| | | > |
| | | </el-tooltip> --> |
| | | <el-button size="medium" type="text" @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>æ¥ç详æ
</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>æ£è
è¿æ»¤</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="topqueryParams.pageNum" |
| | | :limit.sync="topqueryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-row> |
| | | <!-- æ·»å æä¿®æ¹å½±åéè®¿å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="amendtag ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ§å«" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row > |
| | | <el-col :span="8"> |
| | | <el-form-item label="è¿æ»¤å»ç" width="100" prop="filterDrname"> |
| | | <el-input |
| | | v-model="form.filterDrname" |
| | | placeholder="请è¾å
¥å»çå§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="è¿æ»¤åå "> |
| | | <el-input |
| | | v-model="form.notrequiredreason" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥è¿æ»¤åå " |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | title="åéæ¶é´è®¾ç½®" |
| | | :visible.sync="modificationVisible" |
| | | width="45%" |
| | | > |
| | | <div style="margin-bottom: 20px; color: red"> |
| | | ç»ä¸ä¿®æ¹å½å¤©æªåéç任塿¶é´ |
| | | </div> |
| | | |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="å鿥æ"> |
| | | <el-date-picker |
| | | v-model="ruleForm.value1" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´æ®µ" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="æä¸" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value2" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value3" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æä¸æ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value4" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="modificationVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="modificationVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 忬¡é访 --> |
| | | <el-dialog title="æ£è
忬¡é访" :visible.sync="dialogFormVisible"> |
| | | <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px"> |
| | | <el-form-item label="ä»»å¡åç§°"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.taskName" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
åç§°"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.sendname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¹´é¾"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.age" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.deptname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç
åº"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.leavehospitaldistrictname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="é访æ¹å¼" prop="resource"> |
| | | <el-radio-group v-model="zcform.resource"> |
| | | <el-radio label="1">æ¬ç
åºé访</el-radio> |
| | | <el-radio label="2">é访ä¸å¿é访</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="å³å»åé"> |
| | | <el-switch v-model="zcform.delivery"></el-switch> |
| | | </el-form-item> --> |
| | | <el-form-item label="é¨è¯æ¶é´"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.endtime" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="éè®¿å®ææ¶é´" prop="date1"> |
| | | <el-date-picker |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | v-model="zcform.date1" |
| | | style="width: 100%" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="é访记å½"> |
| | | <el-input type="textarea" v-model="zcform.remark"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="setupsubtask">确认å建æå¡</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | } from "@/api/system/user"; |
| | | import { |
| | | getTaskservelist, |
| | | buidegetTasklist, |
| | | addserviceSubtask, |
| | | query360PatInfo, |
| | | } from "@/api/AiCentre/index"; |
| | | import { alterpatient, particularpatient } from "@/api/patient/homepage"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "Discharge", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | dialogFormVisible: false, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "æ°å¢å½±åé访", |
| | | // æ¯å¦æ¾ç¤ºä¿®æ¹ãæ·»å å¼¹åºå± |
| | | addalteropen: false, |
| | | // ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ |
| | | modificationVisible: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | dateRangefs: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | ruleForm: { |
| | | type: [], |
| | | }, |
| | | zcform: {}, |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | | preachform: "", |
| | | previewVisible: false, //å½±åé访é¢è§å¼¹æ¡ |
| | | radio: "", |
| | | radios: [], |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导影åé访æ°é |
| | | //é¢è§å½±åéè®¿ä¿¡æ¯ |
| | | previewvalue: { |
| | | username: "è¿ä¸ªå»çå¯¹ä½ æä¹æ ·", |
| | | }, |
| | | value: [], |
| | | list: [], |
| | | |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åº", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "å
¨é¨", |
| | | }, |
| | | ], |
| | | loading: false, |
| | | cardlist: [ |
| | | { |
| | | name: "é¨è¯æå¡æ»é", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "æ£è
è¿æ»¤", |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "åé失败", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "å¾
é访", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "å·²åé", |
| | | // value: 0, |
| | | // }, |
| | | |
| | | // { |
| | | // name: "表åå·²åé", |
| | | // value: 0, |
| | | // }, |
| | | ], |
| | | zcrules: { |
| | | date1: [ |
| | | { required: true, message: "è¯·éæ©é访æ¹å¼", trigger: "change" }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©é访æ¶é´", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 表ååæ° |
| | | form: { |
| | | phonenumber: "", |
| | | totagid: "", |
| | | types: "", |
| | | nickName: "", |
| | | qystatus: "", |
| | | btstatus: "", |
| | | }, |
| | | topicoptionssort: [ |
| | | { |
| | | value: 0, |
| | | label: "é¨è¯æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "é¨è¯æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "åºéè®¿æ¥æ(æ£åº)", |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: "åºéè®¿æ¥æ(ååº)", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 2, |
| | | sort: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 8 : 2, //0 é¨è¯æ¶é´(æ£åº) 1 é¨è¯æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | serviceType: 3, |
| | | searchscope: 3, |
| | | visitCount: 2, |
| | | scopetype: [], |
| | | visitDeptCodes: [], |
| | | leaveldeptcodes:[], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | propss: { multiple: true }, |
| | | options: [], |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: null, |
| | | label: "å
¨é¨", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "表åå·²é¢å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "å¾
é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "表åå·²åé", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "䏿§è¡", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "åé失败", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "已宿", |
| | | }, |
| | | ], |
| | | sextype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç·", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", |
| | | postData: { |
| | | XiaoXiTou: { |
| | | FaSongFCSJC: "ZJHES", |
| | | FaSongJGID: localStorage.getItem("orgid"), |
| | | FaSongJGMC: localStorage.getItem("orgname"), |
| | | FaSongSJ: "2025-01-09Â 17:29:36", |
| | | FaSongXTJC: "SUIFANGXT", |
| | | FaSongXTMC: "é访系ç»", |
| | | XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", |
| | | XiaoXiLX: "SC_LC_360STCX", |
| | | XiaoXiMC: "360 è§å¾æ¥è¯¢", |
| | | ZuHuID: localStorage.getItem("ZuHuID"), |
| | | ZuHuMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YeWuXX: { |
| | | BingRenXX: { |
| | | ZhengJianHM: "", |
| | | ZhengJianLXDM: "01", |
| | | ZhengJianLXMC: "å±
æ°èº«ä»½è¯", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YongHuXX: { |
| | | XiTongID: "SUIFANGXT", |
| | | XiTongMC: "é访系ç»", |
| | | YongHuID: localStorage.getItem("YongHuID"), |
| | | YongHuXM: localStorage.getItem("YongHuXM"), |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | idp: "lyra", |
| | | }, |
| | | }, |
| | | }, |
| | | amendtag: false, |
| | | errtype: "", |
| | | leavehospitaldistrictcode: "", |
| | | serviceState: [], |
| | | checkboxlist: [], |
| | | // è¡¨åæ ¡éª |
| | | rules: {}, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.serviceState = store.getters.serviceState; |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | this.errtype = this.$route.query.errtype; |
| | | this.leavehospitaldistrictcode = |
| | | this.$route.query.leavehospitaldistrictcode; |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.sourcetype[1].children = store.getters.belongWards.map((dept) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | if (this.errtype) { |
| | | this.toleadExport(2); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | activated() { |
| | | this.getList(1); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢é访æå¡å表 */ |
| | | getList(refresh) { |
| | | // é»è®¤å
¨é¨ |
| | | |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | console.log(this.topqueryParams.leavehospitaldistrictcodes, "11"); |
| | | } |
| | | this.loading = true; |
| | | if ( |
| | | this.topqueryParams.leavehospitaldistrictcodes[0] && |
| | | this.topqueryParams.visitDeptCodes[0]&&this.topqueryParams.leaveldeptcodes[0] |
| | | ) { |
| | | this.topqueryParams.deptOrDistrict = 2; |
| | | } else { |
| | | this.topqueryParams.deptOrDistrict = 1; |
| | | } |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[1].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.cardlist[2].value = response.rows[0].fssb; |
| | | this.cardlist[3].value = response.rows[0].dsf; |
| | | // this.cardlist[4].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find( |
| | | (item) => item.value == value |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | affiliation() { |
| | | this.topqueryParams.managementDoctorCode= store.getters.hisUserId; |
| | | |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | | this.topqueryParams.startSendDateTime = this.getCurrentDate(); |
| | | this.topqueryParams.endSendDateTime = this.getCurrentDate(); |
| | | this.getList(1); |
| | | }, |
| | | getCurrentDate() { |
| | | const now = new Date(); |
| | | return now.toISOString().slice(0, 10); // æªåå10个å符ï¼å³ YYYY-MM-DD |
| | | }, |
| | | buidegetTasklist(type) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | leavehospitaldistrictcodes: |
| | | this.topqueryParams.leavehospitaldistrictcodes, |
| | | sendstates: [2, 3], |
| | | visitDeptCodes: this.topqueryParams.visitDeptCodes, |
| | | leaveldeptcodes: this.topqueryParams.leaveldeptcodes, |
| | | }; |
| | | buidegetTasklist(obj).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find( |
| | | (item) => item.value == value |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | // æ¥çé¨è¯é访详æ
|
| | | Referencequestion(row) { |
| | | this.previewVisible = true; |
| | | }, |
| | | // æ·»å å¼¹æ¡æç´¢ |
| | | remoteMethod(query) { |
| | | if (query !== "") { |
| | | this.loading = true; |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | this.options = this.list.filter((item) => { |
| | | return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; |
| | | }); |
| | | }, 200); |
| | | } else { |
| | | this.options = []; |
| | | } |
| | | }, |
| | | // å½±åéè®¿ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery(refresh) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.topqueryParams.pageNum = 1; |
| | | this.topqueryParams.startOutHospTime = this.dateRange[0]; |
| | | this.topqueryParams.endOutHospTime = this.dateRange[1]; |
| | | this.topqueryParams.startSendDateTime = this.dateRangefs[0]; |
| | | this.topqueryParams.endSendDateTime = this.dateRangefs[1]; |
| | | console.log("2"); |
| | | this.getList(refresh); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.visitDeptCodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | if (type == 1) { |
| | | this.topqueryParams.visitDeptCodes.push(code); |
| | | this.topqueryParams.leaveldeptcodes.push(code); |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push(code); |
| | | this.topqueryParams.visitDeptCodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | this.topqueryParams.searchscope = 2; |
| | | } else { |
| | | this.topqueryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.dateRangefs = []; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 2, |
| | | sort: 2, //0 é¨è¯æ¶é´(æ£åº) 1 é¨è¯æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) |
| | | serviceType: 3, |
| | | searchscope: 3, |
| | | visitCount: 2, |
| | | scopetype: [], |
| | | visitDeptCodes: [], |
| | | leaveldeptcodes:[], |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(1); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | //å é¤é项 |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | //è§¦åæ°å¢è¾å
¥ |
| | | showInput() { |
| | | this.inputVisible = true; |
| | | this.$nextTick((_) => { |
| | | this.$refs.saveTagInput.$refs.input.focus(); |
| | | }); |
| | | }, |
| | | //è·å失å»ç¦ç¹è§¦å |
| | | handleInputConfirm() { |
| | | let inputValue = this.inputValue; |
| | | if (inputValue) { |
| | | this.dynamicTags.push(inputValue); |
| | | } |
| | | this.inputVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.$router.push({ |
| | | path: "/followvisit/QuestionnaireTask", |
| | | query: { |
| | | type: 2, |
| | | serviceType: 3, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | // // this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | |
| | | query360PatInfo(this.postData).then((res) => { |
| | | if (res.data.url) { |
| | | window.open(res.data.url, "_blank"); |
| | | // this.linkUrl = res.data.url; |
| | | } else { |
| | | this.$modal.msgWarning("360æ¥è¯¢æ ç»æ"); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(row) { |
| | | this.$prompt('请è¾å
¥"' + row.userName + '"çæ°å¯ç ', "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | closeOnClickModal: false, |
| | | inputPattern: /^.{5,20}$/, |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | }) |
| | | .then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æåï¼æ°å¯ç æ¯ï¼" + value); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.Labelchange = false; |
| | | this.reset(); |
| | | }, |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | this.form.isoperation = 2; |
| | | this.form.notrequiredFlag = 1; |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("æ£è
è¿æ»¤æå"); |
| | | }); |
| | | |
| | | this.reset(); |
| | | this.Labelchange = false; |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å
¨é¨åæ¢ |
| | | AllStop() { |
| | | this.$modal |
| | | .confirm("æ¯å¦åæ¢å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("忢æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgWarning("忢æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å
¨é¨å¼å§ |
| | | AllStarted() { |
| | | this.$modal |
| | | .confirm("æ¯å¦å¼å¯å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("å¼å¯æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("å¼å¯æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // ä»»å¡éç½® |
| | | TaskReset() { |
| | | this.$modal |
| | | .confirm("æ¯å¦éç½®éä¸çä»»å¡é¡¹ï¼") |
| | | .then(function () { |
| | | return console.log("é䏿å"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("éç½®æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 设置åéæ¶é´ |
| | | Sendtimesetting() { |
| | | this.modificationVisible = true; |
| | | }, |
| | | // 跳转详æ
页 |
| | | Seedetails(row) { |
| | | let type = ""; |
| | | console.log(row, "rwo"); |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/record/detailpage/", |
| | | query: { |
| | | taskid: row.taskid, |
| | | patid: row.patid, |
| | | id: row.id, |
| | | Voicetype: type, |
| | | visitCount: this.topqueryParams.visitCount, |
| | | }, |
| | | }); |
| | | }, |
| | | // 忬¡é访 |
| | | followupvisit(row) { |
| | | this.zcform = row; |
| | | this.zcform.endtime = this.formatTime(this.zcform.endtime); |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | onSubmit() {}, |
| | | // æåæå¡ |
| | | handlestop(row) { |
| | | let objson = row; |
| | | this.$modal |
| | | .confirm( |
| | | 'æ¯å¦ç¡®è®¤æåä»»å¡å称为"' + |
| | | row.taskName + |
| | | 'æ£è
å称为"' + |
| | | row.sendname + |
| | | '"çæ°æ®é¡¹ï¼' |
| | | ) |
| | | .then(() => { |
| | | getTaskservelist({ |
| | | patid: row.patid, |
| | | taskid: row.taskid, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | objson.sendstate = 4; |
| | | objson.remark = "æå¡æå"; |
| | | Editsingletaskson(objson).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("è®°å½æå"); |
| | | this.getList(1); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // æ£è
è¿æ»¤è§¦å |
| | | handleUpdate(row) { |
| | | particularpatient(row.patid).then((response) => { |
| | | this.form = response.data; |
| | | this.form.filterDrname = store.getters.nickName; |
| | | }); |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | // ä¾¿æ·æé® |
| | | toleadExport(too) { |
| | | if (too == 1) { |
| | | this.topqueryParams.sendstate = 4; |
| | | this.topqueryParams.excep = null; |
| | | } else if (too == 2) { |
| | | this.topqueryParams.excep = 1; |
| | | } |
| | | this.handleQuery(); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.download( |
| | | "smartor/serviceSubtask/patItemExport", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // å¼å¸¸å渲æ |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (row.excep == 1) { |
| | | return "warning-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // åå»ºåæ¬¡é访æå¡ |
| | | setupsubtask() { |
| | | this.$refs["zcform"].validate((valid) => { |
| | | if (valid) { |
| | | this.zcform.remark = |
| | | this.zcform.remark + "ã" + this.getCurrentTime() + "ã"; |
| | | let form = structuredClone(this.zcform); |
| | | form.longSendTime = this.formatTime(form.date1); |
| | | form.finishtime = ""; |
| | | if (form.resource) { |
| | | if (form.resource == 2) { |
| | | form.serviceType = 13; |
| | | } |
| | | } else { |
| | | this.$modal.msgError("æªéæ©é访æ¹å¼"); |
| | | } |
| | | form.id = null; |
| | | form.sendstate = 2; |
| | | form.preachform = form.preachformson; |
| | | form.longTask = 0; |
| | | addserviceSubtask(form).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("å建æå"); |
| | | } else { |
| | | this.$modal.msgError("å建失败"); |
| | | } |
| | | this.dialogFormVisible = false; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | getCurrentTime() { |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-button--primary.is-plain { |
| | | color: #ffffff; |
| | | background: #409eff; |
| | | border-color: #4fabe9; |
| | | } |
| | | |
| | | .document { |
| | | // width: 100px; |
| | | height: 50px; |
| | | } |
| | | ::v-deep.el-table .warning-row { |
| | | background: #eec4c4; |
| | | } |
| | | |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | .download { |
| | | text-align: center; |
| | | |
| | | .el-upload__tip { |
| | | font-size: 23px; |
| | | } |
| | | |
| | | .el-upload__text { |
| | | font-size: 23px; |
| | | } |
| | | } |
| | | |
| | | .uploading { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .button-new-tag { |
| | | margin-left: 10px; |
| | | height: 32px; |
| | | line-height: 30px; |
| | | padding-top: 0; |
| | | padding-bottom: 0; |
| | | } |
| | | |
| | | .input-new-tag { |
| | | width: 90px; |
| | | margin-left: 10px; |
| | | vertical-align: bottom; |
| | | } |
| | | |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | |
| | | .qrcode-dialo { |
| | | // text-align: center; |
| | | // display: flex; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.leftvlue .el-card__body { |
| | | background: #F2F8FF; |
| | | color: #324A9B; |
| | | } |
| | | ::v-deep.leftvlue .el-card__body:hover { |
| | | background: #3664D9; |
| | | color: #fff; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body { |
| | | background: #fdd0d7; |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body:hover { |
| | | background: #f88d96; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | |
| | | ::v-deep.ysfleftvlue .el-card__body { |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #8df8a4; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | .button-bb { |
| | | font-weight: 500; |
| | | background-color: #2ba05c; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-xq { |
| | | font-weight: 500; |
| | | background-color: #409eff; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-sc { |
| | | font-weight: 500; |
| | | background-color: #b3a21f; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-zx { |
| | | background: #4fabe9; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | |
| | | // é项å使¾å¤§ |
| | | // ::v-deep.el-checkbox-group { |
| | | // span { |
| | | // font-size: 24px; |
| | | // } |
| | | // } |
| | | </style> |
| | |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-tooltip |
| | |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | </el-col> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "è¦å", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "æ£å¸¸", |
| | |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if (this.endOut == 0) { |
| | | this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | this.getEndOfDay() |
| | | ); |
| | | } else { |
| | | this.topqueryParams.endSendDateTime = null; |
| | | } |
| | | // if (this.endOut == 0) { |
| | | // this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | // this.getEndOfDay() |
| | | // ); |
| | | // } else { |
| | | // this.topqueryParams.endSendDateTime = null; |
| | | // } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | |
| | | width="60%" |
| | | > |
| | | <CallCenterLs |
| | | ref="callCenterModal" |
| | | ref="CallCenterLs" |
| | | :initial-phone="currentPhoneNumber" |
| | | /> |
| | | </el-dialog> |
| | |
| | | isEndingCall: false, |
| | | CaldialogVisible: false, |
| | | currentCall: null, // å½åéè¯å¯¹è±¡ |
| | | // è·¯ç±çå¬ç¸å
³ |
| | | routeWatcher: null, |
| | | lastRoutePath: this.$route.path, |
| | | input: "ä»å¤©èº«ä½è¿ä¸é", |
| | | radio: "2", |
| | | taskname: "", |
| | |
| | | patid: null, |
| | | }; |
| | | }, |
| | | |
| | | |
| | | computed: { |
| | | callStatusText() { |
| | | const statusMap = { |
| | |
| | | // }, |
| | | beforeRouteLeave(to, from, next) { |
| | | this.$refs.callButton.cleanupResources(); |
| | | if (this.$refs.CallCenterLs) { |
| | | console.log(1); |
| | | |
| | | this.$refs.CallCenterLs.handleSeatLogout(); |
| | | } |
| | | next(); // ç¡®ä¿è°ç¨ nex |
| | | }, |
| | | // beforeRouteUpdate() { |
| | |
| | | .CONTENT { |
| | | padding: 10px; |
| | | height: 100%; |
| | | min-height: 660px; /* 设置æå°é«åº¦ */ |
| | | min-height: 738px; /* 设置æå°é«åº¦ */ |
| | | |
| | | .title { |
| | | font-size: 22px; |
| | |
| | | padding: 30px; |
| | | border: 1px solid #dcdfe6; |
| | | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | max-height: 580px; /* 设置æå¤§é«åº¦ */ |
| | | max-height: 618px; /* 设置æå¤§é«åº¦ */ |
| | | overflow-y: auto; /* å
容è¶
è¿é«åº¦æ¶æ¾ç¤ºæ»å¨æ¡ */ |
| | | |
| | | .topic-dev { |
| | |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | | oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g", |
| | | // å¤ç½é¨åï¼æä»¶ï¼ |
| | | newPattern: "http://218.108.11.22:8093/profile-api/upload", |
| | | // newPattern: "http://218.108.11.22:8093/profile-api/upload", |
| | | newPattern: "http://m.zjtongde.com:13871/prod-api/profile/upload", |
| | | |
| | | xjxsoptions: [ |
| | | { |
| | |
| | | var doc = parser.parseFromString(html, "text/html"); |
| | | |
| | | // å®ä¹è¦æ¿æ¢çæ°æ§URL |
| | | var oldUrlBase = "http://192.168.191.181:8095/profile/upload"; |
| | | var newUrlBase = "http://218.108.11.22:8093/profile-api/upload"; |
| | | var oldUrlBase = this.oldPattern; |
| | | var newUrlBase =this.newPattern; |
| | | |
| | | // è·åææçvideoå
ç´ |
| | | var videos = doc.querySelectorAll("video"); |
| | |
| | | |
| | | // ç¼è¾å¨æ¨¡å¼ |
| | | mode: "default", |
| | | fileList:[], |
| | | fileList: [], |
| | | // å·¥å
·æ é
ç½® |
| | | toolbarConfig: { |
| | | excludeKeys: [ |
| | |
| | | |
| | | if (response.data && response.data.url) { |
| | | let imgUrl = response.data.url; |
| | | // imgUrl = imgUrl.replace( |
| | | // "http://218.108.11.22:8093/profile-api/upload", |
| | | // "http://192.88.117.236:8090/prod-api/profile/upload" |
| | | // ); |
| | | imgUrl = imgUrl.replace( |
| | | "http://218.108.11.22:8093/profile-api/upload", |
| | | "http://192.168.191.181:8095/profile/upload" |
| | | "http://m.zjtongde.com:13871/prod-api/profile/upload", |
| | | "http://192.88.117.236:8090/prod-api/profile/upload" |
| | | ); |
| | | insertFn(imgUrl); |
| | | } |
| | |
| | | options: [], |
| | | optionstag: [], |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | | oldPattern: "http://192.168.191.181:8095/profile/upload", |
| | | // oldPattern: "http://192.168.191.181:8095/profile/upload", |
| | | oldPattern: "http://192.88.117.236:8090/prod-api/profile/upload", |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | | oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g", |
| | | oldPatternhtml: "/http:\/\/192\.88\.117\.236:8095\/profile\/upload\//g", |
| | | // å¤ç½é¨åï¼æä»¶ï¼ |
| | | newPattern: "http://218.108.11.22:8093/profile-api/upload", |
| | | // newPattern: "http://218.108.11.22:8093/profile-api/upload",ããæ°å |
| | | newPattern: "http://m.zjtongde.com:13871/prod-api/profile/upload", |
| | | |
| | | xjxsoptions: [ |
| | | { |
| | |
| | | // ------------------ |
| | | |
| | | // let html = |
| | | // '<p>æµè¯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/è¥å
»æ³µä»ç».mp4"></video><p>æµè¯111</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/注å°å¨æ¨æ³¨.mp4"></video><p><br></p>'; |
| | | // '<p>æµè¯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.88.117.236:8090/prod-api/profile/upload/vadio/è¥å
»æ³µä»ç».mp4"></video><p>æµè¯111</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.88.117.236:8090/prod-api/profile/upload/vadio/注å°å¨æ¨æ³¨.mp4"></video><p><br></p>'; |
| | | // // html = html.parserdom(this.oldPattern, this.newPattern); |
| | | // html = this.parserdom(html); |
| | | // console.log(html, "html"); |
| | |
| | | var doc = parser.parseFromString(html, "text/html"); |
| | | |
| | | // å®ä¹è¦æ¿æ¢çæ°æ§URL |
| | | var oldUrlBase = "http://192.168.191.181:8095/profile/upload"; |
| | | var newUrlBase = "http://218.108.11.22:8093/profile-api/upload"; |
| | | var oldUrlBase = this.oldPattern; |
| | | // var newUrlBase = "http://218.108.11.22:8093/profile-api/upload"; |
| | | var newUrlBase = this.newPattern; |
| | | |
| | | // è·åææçvideoå
ç´ |
| | | var videos = doc.querySelectorAll("video"); |
| | | var images = doc.querySelectorAll("img"); |
| | | |
| | | // éåææçvideoå
ç´ å¹¶æ¿æ¢src屿§ |
| | | videos.forEach(function (video) { |
| | | var src = video.getAttribute("src"); |
| | | if (src.startsWith(oldUrlBase)) { |
| | | video.setAttribute("src", src.replace(oldUrlBase, newUrlBase)); |
| | | } |
| | | }); |
| | | console.log(images,'images'); |
| | | |
| | | images.forEach(function (img) { |
| | | var src = img.getAttribute("src"); |
| | | if (src.startsWith(oldUrlBase)) { |
| | | img.setAttribute("src", src.replace(oldUrlBase, newUrlBase)); |
| | | } |
| | | }); |
| | | |
| | |
| | | fileName: this.generateRandomHtmlFilename(), |
| | | }).then((res) => { |
| | | this.ruleForm.richText = res.msg; |
| | | this.ruleForm.richText = res.msg.replace( |
| | | this.oldPattern, |
| | | this.newPattern |
| | | ); |
| | | console.log(this.ruleForm.richText, "this.ruleForm.richText"); |
| | | // å¤çå
ç½html |
| | | addrichText({ |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 20, |
| | | hetype:1, |
| | | isavailable: "", |
| | | }, |
| | | }; |
| | |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">宣æç±»å</div> |
| | | <div class="top-tj" @click="dialogFormVisible = true">+æ·»å ç±»å«</div> |
| | | <div class="top-tj" @click="Newcategory">+æ·»å ç±»å«</div> |
| | | </div> |
| | | <div class="center-ss"> |
| | | <el-input |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | hetype:1, |
| | | isavailable: "", |
| | | }, |
| | | }; |
| | |
| | | query: { id: row.id }, |
| | | }); |
| | | }, |
| | | Newcategory(){ |
| | | this.classifyform= {}, //ç±»å«è¡¨å |
| | | this.radio = "主åç±»"; |
| | | this.dialogFormVisible = true |
| | | this.zifon = true; |
| | | this.zufon = true; |
| | | }, |
| | | // æ¥ç宣æ |
| | | Vieweducation(row) { |
| | | this.htmlRichText = null; |
| | |
| | | .then((response) => { |
| | | console.log(response.data, "æ°æ®"); // è¾åºè·åå°çæä»¶å
容 |
| | | this.htmlRichText = response.data; |
| | | this.htmlRichText = this.addStyleToImages(this.htmlRichText); |
| | | // this.htmlRichText = this.addStyleToImages(this.htmlRichText); |
| | | console.log(this.htmlRichText); |
| | | |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("è·å坿æ¬å¤±è´¥"); |
| | |
| | | }, |
| | | // æ¥è¯¢æ |
| | | getDeptTree() { |
| | | getheLibraryAssort({}).then((res) => { |
| | | getheLibraryAssort({ hetype: 2 }).then((res) => { |
| | | this.deptOptions = res.rows; |
| | | this.dialogFormVisible = false; |
| | | }); |
| | |
| | | this.dialogFormVisible = true; |
| | | if (!b.pid) { |
| | | this.radio = "主åç±»"; |
| | | this.title = "ä¿®æ¹ä¸»åç±»"; |
| | | this.zufon = false; |
| | | } else { |
| | | this.radio = "ååç±»"; |
| | | this.title = "ä¿®æ¹ååç±»"; |
| | | this.zifon = false; |
| | | } |
| | | this.classifyform = b; |
| | | this.dialogFormVisible = true; |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-form-item label="å
³èæå¡"> |
| | | <div |
| | | v-if="item.sendTaskname" |
| | | class="service-tag-container" |
| | | > |
| | | <el-tag |
| | | type="success" |
| | | closable |
| | | @close="removeService(item)" |
| | | class="service-tag" |
| | | > |
| | | <i class="el-icon-connection service-icon"></i> |
| | | {{ item.sendTaskname }} |
| | | </el-tag> |
| | | </div> |
| | | <div v-else class="service-add-btn"> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | icon="el-icon-plus" |
| | | @click="openServiceDialog(item)" |
| | | class="add-service-btn" |
| | | > |
| | | éæ©ä»»å¡ |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="å¼å¸¸æé"> |
| | | <el-radio-group v-model="item.isabnormal"> |
| | | <el-radio :label="1">æ¯</el-radio> |
| | | <el-radio :label="0">å¦</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦é䏿¶ééå ä¿¡æ¯"> |
| | | <el-radio-group v-model="item.appendflag"> |
| | | <el-radio label="1">æ¯</el-radio> |
| | | <el-radio label="0">å¦</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-col :span="11"> |
| | | <!-- ä¿®æ¹ï¼å¼å¸¸æéé¨å --> |
| | | <el-form-item label="å¼å¸¸æé"> |
| | | <el-select |
| | | v-model="item.isabnormal" |
| | | placeholder="è¯·éæ©ç¶æ" |
| | | > |
| | | <el-option |
| | | :value="0" |
| | | label="æ£å¸¸" |
| | | :style="{ color: '#67C23A' }" |
| | | > |
| | | <span style="color: #67c23a">â æ£å¸¸</span> |
| | | </el-option> |
| | | <el-option |
| | | :value="1" |
| | | label="å¼å¸¸" |
| | | :style="{ color: '#E6A23C' }" |
| | | > |
| | | <span style="color: #e6a23c">â å¼å¸¸</span> |
| | | </el-option> |
| | | <el-option |
| | | :value="2" |
| | | label="è¦å" |
| | | :style="{ color: '#F56C6C' }" |
| | | > |
| | | <span style="color: #f56c6c">â è¦å</span> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <el-form-item label="æ¯å¦é䏿¶ééå ä¿¡æ¯"> |
| | | <el-radio-group v-model="item.appendflag"> |
| | | <el-radio label="1">æ¯</el-radio> |
| | | <el-radio label="0">å¦</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10" v-if="topicobj.branchFlag == 1"> |
| | | <el-col :span="20" |
| | |
| | | </el-tabs> |
| | | </div> |
| | | </el-drawer> |
| | | <!-- 鿩任å¡å¼¹çª --> |
| | | <el-dialog |
| | | title="鿩任å¡" |
| | | :visible.sync="serviceDialogVisible" |
| | | width="50%" |
| | | > |
| | | <div> |
| | | <el-form |
| | | :model="topqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="ä»»å¡åç§°"> |
| | | <el-input |
| | | v-model="topqueryParams.taskName" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä»»å¡ç±»å" prop="status"> |
| | | <el-select |
| | | v-model="topqueryParams.serviceType" |
| | | placeholder="è¯·éæ©æå¡ç±»å" |
| | | > |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table |
| | | :data="filteredServiceList" |
| | | v-loading="taskloading" |
| | | @selection-change="handleServiceSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="ä»»å¡æè¿°" |
| | | align="center" |
| | | key="taskDesc" |
| | | prop="taskDesc" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æå¡é¡¹ç®" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ»ä»»å¡/å·²é访" |
| | | align="center" |
| | | key="nickName" |
| | | width="120" |
| | | prop="nickName" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | scope.row.wfs || scope.row.wfs == 0 |
| | | ? scope.row.wfs + scope.row.yfs |
| | | : "" |
| | | }}/{{ scope.row.yfs }}</span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ¯å¦é¿æä»»å¡" |
| | | align="center" |
| | | key="longTask" |
| | | prop="longTask" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.longTask ? "é¿æä»»å¡" : "éé¿æ" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="ç¶æ" |
| | | align="center" |
| | | key="sendState" |
| | | prop="sendState" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.task_status" |
| | | :value="scope.row.sendState" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="å建人" |
| | | align="center" |
| | | key="createBy" |
| | | prop="createBy" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="å建æ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="createTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="tasktotal > 0" |
| | | :total="tasktotal" |
| | | :page.sync="topqueryParams.pageNum" |
| | | :limit.sync="topqueryParams.pageSize" |
| | | @pagination="gettaskList" |
| | | /> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="serviceDialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="confirmServiceSelection" |
| | | >ç¡®å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ·»å éç¨ç¾ç
çªå£ --> |
| | | <Optional-Form |
| | | ref="child" |
| | |
| | | depthospgetsonlist, |
| | | getQtemplateobj, |
| | | compileQtemplate, |
| | | Qtemplateinfo, |
| | | compileissue, |
| | | delQtemplateinfo, |
| | | Followupinfo, |
| | | issueinfo, |
| | | getissuelist, |
| | | depthospgetsondel, |
| | | deltargetillness, |
| | | addtargetillness, |
| | | getillnesslist, |
| | | illnesslistget, |
| | | getTasklist, |
| | | getillness, |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //æ£åç»ä»¶ |
| | |
| | | |
| | | export default { |
| | | name: "Questionnaireinfo", |
| | | |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], |
| | | components: { OptionalForm }, |
| | | |
| | | data() { |
| | |
| | | dialogVisiblepatient: false, //éç¨ç¾ç
çªå£ |
| | | inputValue: "", |
| | | topicobj: {}, |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type: 3, |
| | | }, |
| | | tasktotal: 0, |
| | | taskloading: false, |
| | | taskoptions: [ |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯éç¥", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | ], |
| | | // æ»æ¡æ° |
| | | total: 1, |
| | | serviceDialogVisible: false, // 鿩任å¡å¼¹çªæ¾ç¤ºæ§å¶ |
| | | serviceSearch: "", // ä»»å¡æç´¢å
³é®è¯ |
| | | serviceList: [], // ä»»å¡å表 |
| | | filteredServiceList: [], |
| | | selectedService: null, // éä¸çä»»å¡ |
| | | currentOptionItem: null, // å½åæ£å¨è®¾ç½®çä»»å¡é项项 |
| | | ruleForm: { |
| | | svyTemplateLibScripts: [], |
| | | tempDetpRelevances: [], |
| | |
| | | }); |
| | | } |
| | | }, |
| | | // ---------------é项任å¡ç»å® |
| | | openServiceDialog(item) { |
| | | this.gettaskList(); |
| | | this.currentOptionItem = item; |
| | | }, |
| | | gettaskList() { |
| | | getTasklist(this.topqueryParams).then((response) => { |
| | | this.filteredServiceList = response.rows; |
| | | this.tasktotal = response.total; |
| | | this.serviceDialogVisible = true; |
| | | this.$forceUpdate(); |
| | | this.taskloading = false; |
| | | }); |
| | | }, |
| | | handleQuery() { |
| | | this.topqueryParams.pageNum = 1; |
| | | this.gettaskList(); |
| | | }, |
| | | // æ°å¢æ¹æ³ï¼å 载任å¡å表 |
| | | loadServiceList() { |
| | | // è¿éè°ç¨APIè·åä»»å¡å表 |
| | | // ç¤ºä¾æ°æ®ï¼å®é
ä½¿ç¨æ¶éè¦è°ç¨ç¸åºçAPI |
| | | this.serviceList = [ |
| | | { id: 1, taskName: "é访任å¡1", taskType: "常è§é访" }, |
| | | { id: 2, taskName: "å¥åº·è¯ä¼°ä»»å¡", taskType: "å¥åº·è¯ä¼°" }, |
| | | { id: 3, taskName: "ç¨è¯æéä»»å¡", taskType: "ç¨è¯ç®¡ç" }, |
| | | ]; |
| | | }, |
| | | |
| | | // æ°å¢æ¹æ³ï¼å¤çä»»å¡éæ©åå |
| | | handleServiceSelectionChange(selection) { |
| | | this.selectedService = selection.length > 0 ? selection[0] : null; |
| | | }, |
| | | |
| | | // æ°å¢æ¹æ³ï¼ç¡®è®¤éæ©ä»»å¡ |
| | | confirmServiceSelection() { |
| | | console.log(this.selectedService); |
| | | console.log(this.currentOptionItem); |
| | | |
| | | if (this.selectedService && this.currentOptionItem) { |
| | | this.currentOptionItem.sendTaskname = this.selectedService.taskName; |
| | | this.currentOptionItem.sendTaskid = this.selectedService.taskid; |
| | | this.serviceDialogVisible = false; |
| | | this.serviceSearch = ""; |
| | | this.selectedService = null; |
| | | } else { |
| | | this.$message.warning("è¯·éæ©ä¸ä¸ªä»»å¡"); |
| | | } |
| | | }, |
| | | |
| | | // æ°å¢æ¹æ³ï¼ç§»é¤å
³èæå¡ |
| | | removeService(item) { |
| | | item.sendTaskname = ""; |
| | | item.sendTaskid = ""; |
| | | }, |
| | | // ------------------------ |
| | | // ä¸ä¸æ¥ |
| | | nextstep() { |
| | | if (this.Editprogress <= 2) { |
| | |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .service-tag-container { |
| | | display: inline-block; |
| | | |
| | | .service-tag { |
| | | margin-right: 10px; |
| | | max-width: 220px; |
| | | height: 32px; |
| | | line-height: 30px; |
| | | padding: 0 12px; |
| | | border-radius: 16px; |
| | | font-size: 14px; |
| | | font-weight: 500; |
| | | border: 1px solid #e1f3d8; |
| | | background: linear-gradient(135deg, #f0f9eb, #e1f3d8); |
| | | box-shadow: 0 2px 4px rgba(103, 194, 58, 0.1); |
| | | transition: all 0.3s ease; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | position: relative; |
| | | |
| | | &:hover { |
| | | transform: translateY(-1px); |
| | | box-shadow: 0 4px 8px rgba(103, 194, 58, 0.15); |
| | | border-color: #b3e19d; |
| | | } |
| | | |
| | | .service-icon { |
| | | margin-right: 4px; |
| | | font-size: 12px; |
| | | } |
| | | |
| | | ::v-deep .el-icon-close { |
| | | margin-left: 6px; |
| | | font-size: 12px; |
| | | color: #67c23a; |
| | | background-color: #f0f9eb; |
| | | border-radius: 50%; |
| | | width: 16px; |
| | | height: 16px; |
| | | line-height: 16px; |
| | | |
| | | &:hover { |
| | | background-color: #67c23a; |
| | | color: white; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .service-add-btn { |
| | | display: inline-block; |
| | | |
| | | .add-service-btn { |
| | | height: 32px; |
| | | padding: 0 16px; |
| | | border-radius: 16px; |
| | | font-size: 14px; |
| | | font-weight: 500; |
| | | background: linear-gradient(135deg, #67c23a, #85ce61); |
| | | border: none; |
| | | box-shadow: 0 2px 4px rgba(103, 194, 58, 0.2); |
| | | transition: all 0.3s ease; |
| | | |
| | | &:hover { |
| | | transform: translateY(-1px); |
| | | box-shadow: 0 4px 8px rgba(103, 194, 58, 0.3); |
| | | background: linear-gradient(135deg, #5daf34, #7ac252); |
| | | } |
| | | |
| | | &:active { |
| | | transform: translateY(0); |
| | | box-shadow: 0 2px 4px rgba(103, 194, 58, 0.2); |
| | | } |
| | | |
| | | i { |
| | | margin-right: 4px; |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // ååºå¼è®¾è®¡ |
| | | @media (max-width: 768px) { |
| | | .service-tag-container .service-tag { |
| | | max-width: 180px; |
| | | font-size: 13px; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .service-add-btn .add-service-btn { |
| | | padding: 0 12px; |
| | | font-size: 13px; |
| | | } |
| | | } |
| | | |
| | | // æ·»å å¨ç»ææ |
| | | @keyframes tagFadeIn { |
| | | from { |
| | | opacity: 0; |
| | | transform: scale(0.8) translateY(-5px); |
| | | } |
| | | to { |
| | | opacity: 1; |
| | | transform: scale(1) translateY(0); |
| | | } |
| | | } |
| | | |
| | | .service-tag { |
| | | animation: tagFadeIn 0.3s ease-out; |
| | | } |
| | | |
| | | // 为æ´ä¸ªé项åºåæ·»å ç»ä¸æ ·å¼ |
| | | .topicxq { |
| | | .service-tag-container, |
| | | .service-add-btn { |
| | | margin: 8px 0; |
| | | } |
| | | } |
| | | |
| | | // ç¡®ä¿å¨è¡¨åä¸çæ£ç¡®å¸å± |
| | | .el-form-item { |
| | | .el-form-item__content { |
| | | .service-tag-container, |
| | | .service-add-btn { |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | } |
| | | .custom-width { |
| | | width: 100px; /* è®¾ç½®å®½åº¦æ ·å¼ */ |
| | | } |
| | |
| | | @node-click="handleNodeClick" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | <span class="tree-node-label">{{ node.label }}</span> |
| | | <span v-if="data.id > 0"> |
| | | <el-button |
| | | type="text" |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | |
| | | this.classifyform = b; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | Newcategory(){ |
| | | this.classifyform= {}, //ç±»å«è¡¨å |
| | | this.radio = "主åç±»"; |
| | | this.dialogFormVisible = true |
| | | this.zifon = true; |
| | | Newcategory() { |
| | | (this.classifyform = {}), //ç±»å«è¡¨å |
| | | (this.radio = "主åç±»"); |
| | | this.dialogFormVisible = true; |
| | | this.zifon = true; |
| | | this.zufon = true; |
| | | }, |
| | | |
| | |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 400px; |
| | | width: 380px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | |
| | | 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 { |
| | |
| | | param1: this.taskid, |
| | | param2: this.patid, |
| | | excep: this.excep, |
| | | isabnormal: this.excep, |
| | | serviceSubtaskDetailList: [], |
| | | }; |
| | | const arr = structuredClone(this.questionList); |
| | |
| | | const arr = structuredClone(this.questionList); |
| | | console.log(arr, "srr"); |
| | | arr.forEach((item, index) => { |
| | | var obj = item.svyTaskTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | console.log(obj, "obj"); |
| | | if (item.scriptType == 1 && item.scriptResult) { |
| | | var obj = item.svyTaskTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | console.log(item); |
| | | |
| | | if (obj) { |
| | | if (obj.isabnormal) { |
| | | console.log(obj.isabnormal); |
| | | form.excep = 1; |
| | | this.excep = 1; |
| | | console.log(obj, "obj"); |
| | | if (obj.sendTaskid) { |
| | | item.sendTaskname = obj.sendTaskname; |
| | | item.sendTaskid = obj.sendTaskid; |
| | | console.log(String(obj.sendTaskid).split(",")); |
| | | item.sendTaskids = String(obj.sendTaskid).split(","); |
| | | |
| | | } |
| | | if (obj) { |
| | | if (obj.isabnormal) { |
| | | console.log(obj.isabnormal); |
| | | form.excep = obj.isabnormal; |
| | | this.excep = obj.isabnormal; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | |
| | | </div> |
| | | |
| | | </div> --> |
| | | <div class="CONTENT" > |
| | | <div class="CONTENT"> |
| | | <div class="preview-left"> |
| | | <div class="toptitle"> |
| | | <div class="title">{{ taskname ? taskname : ""+localStorage.getItem("orgname")+"廿¤ç¥è¯å®£æ" }}</div> |
| | | <div class="title"> |
| | | {{ |
| | | taskname |
| | | ? taskname |
| | | : "廿¤ç¥è¯å®£æ" |
| | | }} |
| | | </div> |
| | | <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> |
| | | {{ |
| | | kcb |
| | | ? kcb |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯"+localStorage.getItem("orgname")+"ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼è§çè¿ä»½å®£æèµè®¯ã" |
| | | : "亲ç±çæ£è
-å®¶å±ï¼æä»¬æ¯å»æ¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼è§çè¿ä»½å®£æèµè®¯ã" |
| | | }} |
| | | <!-- 亲ç±çæ£è
/家屿¨å¥½ï¼ä¸ºäºæ´å¥½çäºè§£æ¨åºé¢åçåº·å¤æ
åµï¼ç»æ¨éå½åæ¶çå¥åº·æå¯¼ï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½åºé¢é访é®å·è°æ¥ã --> |
| | | </div> |
| | |
| | | margin-bottom: 10px; |
| | | " |
| | | > |
| | | {{ |
| | | {{ |
| | | jsy |
| | | ? jsy |
| | | : "çæ´»ä¸è¦å³é¸ç»åï¼æ³¨æä¼æ¯åè¥å
»ï¼éå½é»ç¼ï¼æçéé
ï¼ä¿æå¿æ
èç
ï¼å®æå¤è¯ã飿¬æ¬¡å®£æå
容就å°è¿éï¼ç¥æ¨èº«ä½å¥åº·ï¼" |
| | | }} </div> |
| | | }} |
| | | </div> |
| | | <!-- <div style="font-size: 20px"> |
| | | {{ |
| | | jsy |
| | |
| | | import { |
| | | getExternalfollowup, |
| | | Submitaquestionnaire, |
| | | geturlinfo |
| | | geturlinfo, |
| | | } from "@/api/AiCentre/index"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import axios from "axios"; |
| | |
| | | question3: "", |
| | | }, |
| | | richText: "<p>Hello, <strong>world</strong>!</p>", |
| | | url:'', |
| | | taskname:'', |
| | | kcb:'', |
| | | jsy:'', |
| | | url: "", |
| | | taskname: "", |
| | | kcb: "", |
| | | jsy: "", |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | this.getQuestionnaire(); |
| | | this.geturlinfo(); |
| | | }, |
| | | methods: { |
| | | // è§£æurlid |
| | |
| | | // 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) { |
| | | this.taskid = param1; |
| | | this.patid = param2; |
| | | this.taskname = param3; |
| | | getQuestionnaire(param1, param2, param3) { |
| | | this.taskid = decodeURIComponent(param1); |
| | | this.patid = decodeURIComponent(param2); |
| | | this.taskname = decodeURIComponent(param3); |
| | | // // let taskid = |
| | | // // "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw=="; |
| | | // // let patid = |
| | |
| | | // // this.$modal.msgSuccess("ä»»å¡id为" + this.taskid); |
| | | // let taskids = this.encrypt(this.taskid); |
| | | // let patids = this.encrypt(this.patid); |
| | | getExternalfollowup({ param1: this.taskid, param2: this.patid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.url = res.data.script[0].richText; |
| | | this.jsy = res.data.jsy; |
| | | this.kcb = res.data.kcb; |
| | | // 临æ¶è·åæ°æ® |
| | | axios |
| | | .get(this.url) |
| | | .then((response) => { |
| | | console.log(response.data, "æ°æ®"); // è¾åºè·åå°çæä»¶å
容 |
| | | this.richText = response.data; |
| | | this.richText = this.addStyleToImages(this.richText); |
| | | }) |
| | | .catch((error) => { |
| | | console.error("Failed to fetch file:", error); |
| | | }); |
| | | getExternalfollowup({ param1: this.taskid, param2: this.patid }).then( |
| | | (res) => { |
| | | if (res.code == 200) { |
| | | this.url = res.data.script[0].richText; |
| | | this.jsy = res.data.jsy; |
| | | this.kcb = res.data.kcb; |
| | | // 临æ¶è·åæ°æ® |
| | | axios |
| | | .get(this.url) |
| | | .then((response) => { |
| | | console.log(response.data, "æ°æ®"); // è¾åºè·åå°çæä»¶å
容 |
| | | this.richText = response.data; |
| | | this.richText = this.addStyleToImages(this.richText); |
| | | }) |
| | | .catch((error) => { |
| | | console.error("Failed to fetch file:", error); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | ); |
| | | }, |
| | | addStyleToImages(html) { |
| | | return html.replace( |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .questionnaire { |
| | | background-image: url("../assets/images/chainbackground1.jpg"); |
| | | background-color: #f9f9fb; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <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="å§å" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.patname" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="è¯æ" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.diagname" |
| | | placeholder="请è¾å
¥è¯æ" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.deptname" |
| | | placeholder="请è¾å
¥ç§å®¤åç§°" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å»ç" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.drname" |
| | | placeholder="请è¾å
¥å»çå§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç
æ¡å·" prop="outhospno"> |
| | | <el-input |
| | | v-model="queryParams.outhospno" |
| | | placeholder="请è¾å
¥ç
æ¡å·" |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
èå´" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.scopetype" |
| | | placeholder="é»è®¤å
¨é¨" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="å°±è¯æ¥æ"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | <!-- <el-date-picker |
| | | v-model="dateRange" |
| | | type="datetimerange" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :default-time="['12:00:00']" |
| | | > |
| | | </el-date-picker> --> |
| | | </el-form-item> |
| | | <el-row> |
| | | <!-- <el-form-item label=" å°±è¯æ¥æ " prop="admitdate"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="queryParams.admitdate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ© å°±è¯æ¥æ " |
| | | > |
| | | </el-date-picker> |
| | | </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-row> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleBatchAddTask" |
| | | > |
| | | æ¹éåéå
¥é¢éç¥</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导å
¥</el-button |
| | | > |
| | | </div> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导åº</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <!-- <el-table-column |
| | | label="åºå·" |
| | | fixed |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | label="å°±è¯æ¶é´" |
| | | align="center" |
| | | key="admitdate" |
| | | prop="admitdate" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.admitdate) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ç
æ¡å·" |
| | | align="center" |
| | | key="patno" |
| | | prop="patno" |
| | | /> --> |
| | | <el-table-column |
| | | label="ç
æ¡å·" |
| | | align="center" |
| | | key="outhospno" |
| | | prop="outhospno" |
| | | /> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | key="patname" |
| | | prop="patname" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | gettoken360( |
| | | scope.row.idcardno, |
| | | scope.row.drcode, |
| | | scope.row.drname |
| | | ) |
| | | " |
| | | ><span class="button-textsc">{{ |
| | | scope.row.patname |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ§å«" |
| | | width="100" |
| | | align="center" |
| | | key="sex" |
| | | prop="sex" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "ç·" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¹´é¾" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="èç³»çµè¯" |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="æ£è
æ ç¾ï¼ç¼ºï¼" |
| | | align="center" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.tagList">{{ item }} </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="è¯æ" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="主述" |
| | | align="center" |
| | | key="mainsuit" |
| | | prop="mainsuit" |
| | | width="120" |
| | | /> --> |
| | | <el-table-column |
| | | label="å°±è¯ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æ¥è¯å»ç" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æ¯å¦åå¨ä»»å¡" |
| | | align="center" |
| | | key="serverState" |
| | | prop="serverState" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span |
| | | :style="{ |
| | | color: scope.row.serverState == 1 ? 'green' : 'gray', |
| | | }" |
| | | > |
| | | {{ scope.row.serverState == 1 ? "æ¯" : "æ " }} |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | fixed="right" |
| | | align="center" |
| | | width="160" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | $router.push({ |
| | | path: '/patient/patient/profile/', |
| | | query: { id: scope.row.patid }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></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> |
| | | <el-dialog |
| | | title="æ¹éæ·»å ä»»å¡" |
| | | :visible.sync="batchTaskVisible" |
| | | width="90%" |
| | | append-to-body |
| | | > |
| | | <el-row :gutter="20"> |
| | | <!-- 左侧ï¼é䏿£è
å表 --> |
| | | <el-col :span="12"> |
| | | <div class="batch-patient-section"> |
| | | <h4>é䏿£è
ï¼{{ selectedPatients.length }}人ï¼</h4> |
| | | <el-table |
| | | :data="selectedPatients" |
| | | border |
| | | style="width: 100%" |
| | | size="small" |
| | | > |
| | | <el-table-column prop="patname" label="å§å" width="100" /> |
| | | <el-table-column prop="sex" label="æ§å«" width="80"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.sex === 1 ? "ç·" : "女" }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å°±è¯æ¶é´" |
| | | align="center" |
| | | key="admitdate" |
| | | prop="admitdate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.admitdate) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="outhospno" label="ç
æ¡å·" /> |
| | | <el-table-column prop="deptname" label="ç§å®¤" /> |
| | | </el-table> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <!-- å³ä¾§ï¼ä»»å¡å表 --> |
| | | <el-col :span="12"> |
| | | <div class="batch-task-section"> |
| | | <h4>ä»»å¡å表ï¼è¯·éæ©1个任å¡ï¼</h4> |
| | | <el-table |
| | | :data="taskList" |
| | | border |
| | | style="width: 100%" |
| | | size="small" |
| | | @current-change="handleTaskSelectionChange" |
| | | highlight-current-row |
| | | > |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æå¡é¡¹ç®" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="å建人" |
| | | align="center" |
| | | key="createBy" |
| | | prop="createBy" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="å建æ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="createTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <template #empty> |
| | | <div class="empty-message"> |
| | | <i class="el-icon-warning"></i> |
| | | <span>æ£è
ç§å®¤æ å¹é
æå¡</span> |
| | | </div> |
| | | </template> |
| | | </el-table> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- åºé¨æé® --> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="batchTaskVisible = false">å æ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :loading="batchLoading" |
| | | @click="submitBatchTask" |
| | | >å建任å¡</el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | width="70%" |
| | | append-to-body |
| | | > |
| | | <el-steps :active="dractive" simple> |
| | | <el-step title="ä¸ä¼ 导å
¥æä»¶" icon="el-icon-upload"></el-step> |
| | | <el-step title="导å
¥æ£æ¥" icon="el-icon-picture"></el-step> |
| | | <el-step title="导å
¥ç»æ" icon="el-icon-picture"></el-step> |
| | | </el-steps> |
| | | <!-- ä¸ä¼ 导å
¥æä»¶ --> |
| | | <div class="download" v-if="dractive == 1"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :limit="1" |
| | | accept=".xlsx, .xls" |
| | | :headers="upload.headers" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" |
| | | :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" |
| | | :on-success="handleFileSuccess" |
| | | :auto-upload="false" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | <div class="el-upload__tip text-center" slot="tip"> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-checkbox v-model="upload.updateSupport" /> |
| | | æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | </div> |
| | | <span>ä»
å
许导å
¥xlsãxlsxæ ¼å¼æä»¶ã</span> |
| | | <el-link |
| | | type="primary" |
| | | :underline="false" |
| | | style="font-size: 24px; vertical-align: baseline" |
| | | @click="importTemplate" |
| | | >ä¸è½½æ¨¡æ¿</el-link |
| | | > |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | |
| | | <!-- 导å
¥æ£æ¥ --> |
| | | <div class="uploading" v-else-if="dractive == 2"> |
| | | <el-table :data="uploadingData" style="width: 100%"> |
| | | <el-table-column prop="serial" label="åºå·"> </el-table-column> |
| | | <el-table-column prop="name" label="å§å" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificate" label="è¯ä»¶ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificatenum" label="è¯ä»¶å·ç "> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="åºçæ¥æ"> </el-table-column> |
| | | <el-table-column prop="menum" label="æ¬äººèç³»æ¹å¼"> </el-table-column> |
| | | <el-table-column prop="younum" label="亲å±èç³»æ¹å¼"> |
| | | </el-table-column> |
| | | <el-table-column prop="tag" label="æ£è
æ ç¾"> </el-table-column> |
| | | <el-table-column prop="erry" label="é误åå "> </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="geterryList" |
| | | /> |
| | | </div> |
| | | <!-- 宿 --> |
| | | <div class="drexamine" v-else-if="dractive == 3"> |
| | | <img |
| | | src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" |
| | | /> |
| | | <p>导å
¥æ£è
æåï¼</p> |
| | | <p>æ¬æ¬¡å
±è®¡å¯¼å
¥{{ ImportQuantity }}使£è
</p> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer" v-if="dractive == 3"> |
| | | <!-- <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> --> |
| | | <el-button @click="submitclose">宿</el-button> |
| | | </div> |
| | | <div slot="footer" v-else> |
| | | <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="submitclose">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { delUser } from "@/api/system/user"; |
| | | |
| | | import { |
| | | listPatouthosp, |
| | | getPatouthosp, |
| | | addPatouthosp, |
| | | updatePatouthosp, |
| | | delPatouthosp, |
| | | } from "@/api/smartor/patouthosp"; |
| | | import { particularpatient } from "@/api/patient/homepage"; |
| | | import { listtag } from "@/api/system/label"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import { query360PatInfo, getTasklist, addSubtask } from "@/api/AiCentre/index"; |
| | | |
| | | import store from "@/store"; |
| | | import { type } from "jquery"; |
| | | |
| | | export default { |
| | | name: "Userhuanze", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // é¨é¨æ é项 |
| | | deptOptions: undefined, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | paperstypes: [ |
| | | { papersname: "身份è¯" }, |
| | | { papersname: "æ¤ç
§" }, |
| | | { papersname: "ä¸å½æ¸¯æ¾³å±
æ°èº«ä»½è¯" }, |
| | | { papersname: "ä¸å½å°æ¹¾å±
æ°èº«ä»½è¯" }, |
| | | ], |
| | | // 表ååæ° |
| | | form: { |
| | | name: "", |
| | | age: "", |
| | | sex: "", |
| | | tagList: [], |
| | | idcardno: "", |
| | | telcode: "", |
| | | idcardtype: "", |
| | | relativetelcode: "", |
| | | }, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | Labelchange: false, //ä¿®æ¹æ°å¢å¼¹çª |
| | | propss: { multiple: true }, |
| | | optionstag: [], //æ ç¾å表 |
| | | batchTaskVisible: false, // å¼¹çªå¯è§æ§ |
| | | selectedPatients: [], // éä¸çæ£è
å表 |
| | | taskList: [], // ä»»å¡å表 |
| | | selectedTask: null, // éä¸çä»»å¡å表 |
| | | batchLoading: false, // æ¹éæäº¤å è½½ç¶æ |
| | | deptcode: "", |
| | | Patientrange: [ |
| | | { |
| | | name: "å
¨é¨", |
| | | id: 999, |
| | | }, |
| | | { |
| | | name: "å½åç§å®¤", |
| | | id: 1, |
| | | }, |
| | | ], |
| | | postData: { |
| | | XiaoXiTou: { |
| | | FaSongFCSJC: "ZJHES", |
| | | FaSongJGID: localStorage.getItem("orgid"), |
| | | FaSongJGMC: localStorage.getItem("orgname"), |
| | | FaSongSJ: "2025-01-09Â 17:29:36", |
| | | FaSongXTJC: "SUIFANGXT", |
| | | FaSongXTMC: "é访系ç»", |
| | | XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", |
| | | XiaoXiLX: "SC_LC_360STCX", |
| | | XiaoXiMC: "360 è§å¾æ¥è¯¢", |
| | | ZuHuID: localStorage.getItem("ZuHuID"), |
| | | ZuHuMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YeWuXX: { |
| | | BingRenXX: { |
| | | ZhengJianHM: "", |
| | | ZhengJianLXDM: "01", |
| | | ZhengJianLXMC: "å±
æ°èº«ä»½è¯", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YongHuXX: { |
| | | XiTongID: "SUIFANGXT", |
| | | XiTongMC: "é访系ç»", |
| | | YongHuID: localStorage.getItem("YongHuID"), |
| | | YongHuXM: localStorage.getItem("YongHuXM"), |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | idp: "lyra", |
| | | }, |
| | | }, |
| | | }, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åº", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "å
¨é¨", |
| | | }, |
| | | ], |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | open: false, |
| | | // å¼¹åºå±æ é¢ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | title: "", |
| | | // æ¯å¦ç¦ç¨ä¸ä¼ |
| | | isUploading: false, |
| | | // æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | updateSupport: 0, |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | searchscope: 3, |
| | | scopetype: [], |
| | | deptcodes: [], |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | // userName: [ |
| | | // { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | // { |
| | | // min: 2, |
| | | // max: 20, |
| | | // message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // nickName: [ |
| | | // { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | // ], |
| | | // password: [ |
| | | // { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | // { |
| | | // min: 5, |
| | | // max: 20, |
| | | // message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // email: [ |
| | | // { |
| | | // type: "email", |
| | | // message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | // trigger: ["blur", "change"], |
| | | // }, |
| | | // ], |
| | | // phonenumber: [ |
| | | // { |
| | | // pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | // message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // IDnumber: [ |
| | | // { |
| | | // pattern: |
| | | // /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | // message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // æ ¹æ®åç§°çéé¨é¨æ |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.sourcetype[1].children = store.getters.belongWards.map((dept) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | this.getList(); |
| | | this.gettabList(); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢æ£è
å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.queryParams.searchscope == 3) { |
| | | this.queryParams.deptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | // this.queryParams.leavehospitaldistrictcodes = |
| | | // store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if (this.dateRange) { |
| | | this.queryParams.beginTime = this.dateRange[0]; |
| | | this.queryParams.endTime = this.dateRange[1]; |
| | | } else { |
| | | this.queryParams.beginTime = ""; |
| | | this.queryParams.endTime = ""; |
| | | } |
| | | listPatouthosp(this.queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | gettabList() { |
| | | const tagqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | tagcategoryid: "0", |
| | | }; |
| | | listtag(tagqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | // this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.deptcodes = []; |
| | | |
| | | if (type == 1) { |
| | | this.queryParams.deptcodes.push(code); |
| | | // this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | // this.queryParams.leavehospitaldistrictcodes.push(code); |
| | | this.queryParams.deptcodes = []; |
| | | this.queryParams.searchscope = 2; |
| | | } else { |
| | | this.queryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | | geterryList() { |
| | | this.loading = true; |
| | | listJob(this.queryParams).then((response) => { |
| | | this.jobList = 1; |
| | | this.total = 1; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | // this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | |
| | | query360PatInfo(this.postData).then((res) => { |
| | | if (res.data.url) { |
| | | window.open(res.data.url, "_blank"); |
| | | // this.linkUrl = res.data.url; |
| | | } else { |
| | | this.$modal.msgWarning("360æ¥è¯¢æ ç»æ"); |
| | | } |
| | | }); |
| | | }, |
| | | // çéèç¹ |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // èç¹åå»äºä»¶ |
| | | handleNodeClick(data) { |
| | | this.queryParams.deptId = data.id; |
| | | this.handleQuery(); |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.Labelchange = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | name: "", |
| | | age: "", |
| | | sex: "", |
| | | tagList: [], |
| | | idcardno: "", |
| | | telcode: "", |
| | | idcardtype: "", |
| | | relativetelcode: "", |
| | | }; |
| | | // this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | searchscope: 3, |
| | | scopetype: [], |
| | | deptcodes: [], |
| | | // leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.patid); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.Labelchange = true; |
| | | this.amendtag = false; |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | console.log(row); |
| | | const userIds = row.patid || this.ids; |
| | | particularpatient(userIds).then((response) => { |
| | | console.log(response); |
| | | this.form = response.data; |
| | | }); |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | |
| | | //ä¿®æ¹/æ°å¢æ£è
|
| | | submitForm() { |
| | | if (this.amendtag) { |
| | | console.log(22); |
| | | this.form.isoperation = 2; |
| | | } else { |
| | | this.form.isoperation = 1; |
| | | } |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("ä¿åæå"); |
| | | }); |
| | | this.reset(); |
| | | // this.idds = ""; |
| | | this.Labelchange = false; |
| | | }, |
| | | |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return deletepatient(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "smartor/patarchive/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | /** 导å
¥æé®æä½ */ |
| | | handleImport() { |
| | | this.upload.title = "ç¨æ·å¯¼å
¥"; |
| | | this.upload.open = true; |
| | | }, |
| | | /** ä¸è½½æ¨¡æ¿æä½ */ |
| | | importTemplate() { |
| | | this.download( |
| | | "smartor/import/getImportPatTemplate", |
| | | {}, |
| | | `user_template_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // æä»¶ä¸ä¼ ä¸å¤ç |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | }, |
| | | // æä»¶ä¸ä¼ æåå¤ç |
| | | handleFileSuccess(response, file, fileList) { |
| | | this.upload.open = false; |
| | | this.upload.isUploading = false; |
| | | this.$refs.upload.clearFiles(); |
| | | this.$alert( |
| | | "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + |
| | | response.msg + |
| | | "</div>", |
| | | "导å
¥ç»æ", |
| | | { dangerouslyUseHTMLString: true } |
| | | ); |
| | | this.getList(); |
| | | }, |
| | | // æäº¤ä¸ä¼ æä»¶ |
| | | submitFileForm() { |
| | | // ä¸ä¼ |
| | | if (this.dractive == 1) { |
| | | this.$refs.upload.submit(); |
| | | this.dractive++; |
| | | } else { |
| | | this.dractive++; |
| | | } |
| | | }, |
| | | submitclose() { |
| | | this.upload.open = false; |
| | | this.dractive = 1; |
| | | }, |
| | | /** æ¹éæ·»å 任塿é®ç¹å» */ |
| | | handleBatchAddTask() { |
| | | // æ ¡éªæ¯å¦é䏿£è
|
| | | if (this.ids.length === 0) { |
| | | this.$modal.msgWarning("请è³å°éä¸1忣è
"); |
| | | return; |
| | | } |
| | | // æ£æ¥éä¸çæ£è
䏿¯å¦æå·²æä»»å¡ç |
| | | const hasTaskPatients = this.userList.filter( |
| | | (item) => this.ids.includes(item.patid) && item.serverState == 1 |
| | | ); |
| | | |
| | | if (hasTaskPatients.length > 0) { |
| | | const patientNames = hasTaskPatients.map((p) => p.patname).join("ã"); |
| | | this.$modal.msgError( |
| | | `éä¸çæ£è
${patientNames} å·²æä»»å¡ï¼æ æ³é夿·»å ` |
| | | ); |
| | | return; |
| | | } |
| | | // è·åé䏿£è
çç§å®¤ä¿¡æ¯ï¼ç¨äºæ ¡éªåä¸ç§å®¤ï¼ |
| | | const patientDepts = new Set(); |
| | | let deptcode = ""; |
| | | this.ids.forEach((patId) => { |
| | | const patient = this.userList.find((item) => item.patid === patId); |
| | | if (patient) { |
| | | patientDepts.add(patient.deptname); |
| | | deptcode = patient.deptcode; |
| | | } |
| | | }); |
| | | |
| | | // æ ¡éªæ¯å¦åä¸ç§å®¤ |
| | | // if (patientDepts.size > 1) { |
| | | // this.$modal.msgError("éä¸çæ£è
ä¸å±äºåä¸ç§å®¤ï¼æ æ³æ¹éæ·»å ä»»å¡"); |
| | | // return; |
| | | // } |
| | | |
| | | // è·åé䏿£è
å表 |
| | | this.selectedPatients = this.userList.filter((item) => |
| | | this.ids.includes(item.patid) |
| | | ); |
| | | |
| | | // æ¾ç¤ºå¼¹çª |
| | | this.batchTaskVisible = true; |
| | | |
| | | // è·åä»»å¡å表 |
| | | this.loadTaskList(deptcode); |
| | | }, |
| | | |
| | | /** å 载任å¡å表 */ |
| | | loadTaskList(deptcode) { |
| | | this.batchLoading = true; |
| | | let topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serviceType: 3, |
| | | type: 2, |
| | | }; |
| | | // deptcode: deptcode,åæ¶ç§å®¤éå¶ |
| | | getTasklist(topqueryParams).then((response) => { |
| | | this.taskList = response.rows; |
| | | this.batchLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | /** å¤çä»»å¡éæ©åå */ |
| | | handleTaskSelectionChange(currentRow) { |
| | | this.selectedTask = currentRow; |
| | | }, |
| | | |
| | | // éåæ¹éæäº¤æ¹æ³ |
| | | async submitBatchTask() { |
| | | // æ ¡éªæ¯å¦éä¸ä»»å¡ |
| | | if (!this.selectedTask) { |
| | | this.$modal.msgWarning("è¯·éæ©1个任å¡"); |
| | | return; |
| | | } |
| | | |
| | | this.batchLoading = true; |
| | | const successPatients = []; |
| | | const failedPatients = []; |
| | | |
| | | try { |
| | | // éåéä¸çæ£è
ï¼é个è°ç¨æ¥å£ |
| | | for (const patient of this.selectedPatients) { |
| | | const params = { |
| | | taskid: this.selectedTask.taskid, |
| | | type: this.selectedTask.type, |
| | | taskName: this.selectedTask.taskName, |
| | | serviceType: this.selectedTask.serviceType, |
| | | preachform: this.selectedTask.preachform, |
| | | templateid: this.selectedTask.templateid, |
| | | libtemplateid: this.selectedTask.libtemplateid, |
| | | sendstate: 2, |
| | | ...patient, |
| | | sendname: patient.patname, |
| | | endtime: patient.admitdate + " 00:00:00", |
| | | leavediagname: patient.diagname, |
| | | age: "", |
| | | }; |
| | | |
| | | try { |
| | | await addSubtask(params); |
| | | successPatients.push(patient.patname); |
| | | } catch (error) { |
| | | failedPatients.push(patient.patname); |
| | | } |
| | | } |
| | | |
| | | // æ¾ç¤ºå¤çç»æ |
| | | let message = `æå为 ${successPatients.length} 忣è
æ·»å ä»»å¡`; |
| | | if (failedPatients.length > 0) { |
| | | message += `ï¼${failedPatients.length} 忣è
æ·»å 失败`; |
| | | } |
| | | this.$modal.msgSuccess(message); |
| | | |
| | | this.batchTaskVisible = false; |
| | | this.getList(); // å·æ°æ£è
å表 |
| | | } catch (error) { |
| | | this.$modal.msgError("æ¹éæ·»å ä»»å¡è¿ç¨ä¸åºé"); |
| | | } finally { |
| | | this.batchLoading = false; |
| | | } |
| | | }, |
| | | |
| | | /** æ¹éæ·»å æ£è
任塿¥å£ */ |
| | | batchAddPatientTask(params) {}, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-button--primary.is-plain { |
| | | color: #ffffff; |
| | | background: #409eff; |
| | | border-color: #4fabe9; |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | .download { |
| | | text-align: center; |
| | | .el-upload__tip { |
| | | font-size: 23px; |
| | | } |
| | | .el-upload__text { |
| | | font-size: 23px; |
| | | } |
| | | } |
| | | .uploading { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #3664d9; |
| | | } |
| | | .batch-patient-section, |
| | | .batch-task-section { |
| | | padding: 15px; |
| | | border: 1px solid #ebeef5; |
| | | border-radius: 4px; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .el-table--enable-row-hover .el-table__body tr:hover > td { |
| | | background-color: #f5f7fa; |
| | | } |
| | | .el-table__body tr.current-row > td { |
| | | background-color: #e6f7ff; |
| | | } |
| | | |
| | | /* ç¦ç¨ç¶æä¸æé®æ ·å¼ */ |
| | | .el-button.is-disabled { |
| | | cursor: not-allowed; |
| | | } |
| | | .batch-patient-section h4, |
| | | .batch-task-section h4 { |
| | | margin-top: 0; |
| | | margin-bottom: 15px; |
| | | color: #303133; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | /* è¡¨æ ¼æ ·å¼ä¼å */ |
| | | .el-table { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | /* å¼¹çªåºé¨æé®é´è· */ |
| | | .dialog-footer { |
| | | text-align: right; |
| | | padding: 10px 20px 20px; |
| | | } |
| | | </style> |
| | |
| | | sendstate: 2, |
| | | ...patient, |
| | | sendname: patient.patname, |
| | | endtime: patient.admitdate + " 00:00:00", |
| | | leavediagname: patient.diagname, |
| | | age: "", |
| | | }; |
| | |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="æå¡å½¢å¼"> |
| | | <!-- <el-form-item label="æå¡å½¢å¼"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> --> |
| | | <el-form-item label="æå¡å½¢å¼"> |
| | | <SortCheckbox |
| | | v-model="checkList" |
| | | :options="checkboxlist" |
| | | :initialselectedOrder="selectedOrder" |
| | | value-key="value" |
| | | label-key="label" |
| | | @change="checkSelectionChange" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | /> |
| | | </el-row> |
| | | <pagination |
| | | v-show="patienttotal > 0" |
| | | v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6" |
| | | :total="patienttotal" |
| | | :page.sync="patientqueryParams.pageNum" |
| | | :limit.sync="patientqueryParams.pageSize" |
| | |
| | | |
| | | import store from "@/store"; |
| | | import { |
| | | getTaskpatient, |
| | | getTaskpatientQC, |
| | | getlibrarylist, |
| | | getFollowuplist, |
| | | getQtemplatelist, |
| | |
| | | import { listDept } from "@/api/system/dept"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import SFtable from "@/components/SFtable"; //è¡¨æ ¼ç»ä»¶ |
| | | import SortCheckbox from "@/components/SortCheckbox"; //è¡¨æ ¼ç»ä»¶ |
| | | |
| | | export default { |
| | | name: "ServiceDetails", |
| | |
| | | dialogVisiblepatient: false, //æ·»å æ£è
å¼¹æ¡ |
| | | radio: 1, |
| | | checkboxlist: [], |
| | | selectedOrder: [], |
| | | // ç§å®¤/ç
åº |
| | | belongWards: [], |
| | | belongWards: [], |
| | |
| | | htmlRichText: "<p>Hello, <strong>world</strong>!</p>", |
| | | // æ£è
表å |
| | | tableLabelhz: [ |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "inhosptime" }, |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "endtime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "身份è¯", width: "200", prop: "sfzh" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "çµè¯å·ç ", width: "180", prop: "telcode" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "endtime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "身份è¯", width: "200", prop: "sfzh" }, |
| | | { label: "çµè¯å·ç ", width: "180", prop: "telcode" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | value: "4", |
| | | label: "åºé¢ç
人", |
| | | }, |
| | | { |
| | | value: "4", |
| | | value: "1", |
| | | label: "å¨é¢ç
人", |
| | | }, |
| | | { |
| | |
| | | { |
| | | value: "3", |
| | | label: "使£ç
人", |
| | | }, |
| | | { |
| | | value: "6", |
| | | label: "é¢å¤æ£è
", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "ææ¯ç
人", |
| | | }, |
| | | ], |
| | | source: [ |
| | |
| | | quote: false, |
| | | }; |
| | | }, |
| | | components: { SFtable }, |
| | | components: { SFtable, SortCheckbox }, |
| | | |
| | | created() { |
| | | this.id = this.$route.query.id; |
| | |
| | | submitForm(formName) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | // this.formatFn(1); |
| | | if (!this.form.patTaskRelevances[0]&&this.form.longTask==0) { |
| | | if (!this.form.patTaskRelevances[0] && this.form.longTask == 0) { |
| | | this.$modal.msgError("è¯·éæ©ç
人"); |
| | | return; |
| | | } |
| | | if (!this.form.templatename) { |
| | | this.$modal.msgError("æªéæ©æ¨¡æ¿"); |
| | | return; |
| | | } |
| | | if (this.checkList) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | this.form.preachformList = this.selectedOrder; |
| | | } else { |
| | | this.$modal.msgError("è¯·éæ©æå¡ç±»å"); |
| | | this.submitLoading = false; |
| | | |
| | | return; |
| | | } |
| | | const filteredArray = this.variableList.filter( |
| | |
| | | this.overallCase.forEach((item) => { |
| | | this.allpids.push(item.patid); |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | if (this.patientqueryParams.allhosp == 4) { |
| | | this.tableLabelhz = [ |
| | | // { label: "å
¥é¢æ¥æ", width: "170", prop: "starttime" }, |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "endtime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "身份è¯", width: "200", prop: "sfzh" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "çµè¯", width: "180", prop: "telcode" }, |
| | | { 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.tableLabelhz = [ |
| | | { 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: "180", prop: "telcode" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "180", prop: "dept" }, |
| | |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | this.tableLabelhz = [ |
| | | { label: "åºå·", width: "", prop: "patid" }, |
| | | { label: "æ£è
åç§°", width: "", prop: "name" }, |
| | | { label: "å°±è¯æ¥æ", width: "150", prop: "admitdate" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "çµè¯å·ç ", width: "180", prop: "telcode" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "è¯æ", width: "", prop: "diagname" }, |
| | | { label: "å°±è¯ç§å®¤", width: "", prop: "deptName" }, |
| | | { label: "å
¥é¢æ¥æ", width: "", prop: "inhosptime" }, |
| | | { label: "å建人", width: "", prop: "createBy" }, |
| | | { label: "çµè¯", width: "180", prop: "telcode" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "180", prop: "dept" }, |
| | | { label: "ç
åº", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } |
| | | if (this.allpids[0]) { |
| | |
| | | } else { |
| | | this.patientqueryParams.pids = null; |
| | | } |
| | | // ç±»å夿 |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.patientqueryParams.cry = 1; |
| | | } else if (this.patientqueryParams.allhosp == 4) { |
| | | this.patientqueryParams.cry = 0; |
| | | this.patientqueryParams.allhosp = "1"; |
| | | } |
| | | if (this.patientqueryParams.searchscope == 1) { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | if (this.patientqueryParams.allhosp == 4) { |
| | | this.patientqueryParams.hospitaldistrictcodes = []; |
| | | this.patientqueryParams.deptcodes = []; |
| | | } else if (this.patientqueryParams.allhosp == 1) { |
| | | this.patientqueryParams.deptcodes = |
| | | this.patientqueryParams.leaveldeptcodes; |
| | | this.patientqueryParams.hospitaldistrictcodes = |
| | | this.patientqueryParams.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leavehospitaldistrictcodes = []; |
| | | } else if (this.patientqueryParams.searchscope == 2) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.patientqueryParams.leaveldeptcodes = []; |
| | | } else { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | |
| | | getTaskpatient(this.patientqueryParams).then((response) => { |
| | | getTaskpatientQC(this.patientqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.patientuserList = response.rows; |
| | | this.patientuserList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.patienttotal = response.total; |
| | | this.loading = false; |
| | | this.Restorecheck(); |
| | |
| | | handleExport() {}, |
| | | |
| | | // éæ©æ£è
è¡¨æ°æ® |
| | | handleSelectionChange(selection, type) { |
| | | console.log("å¤éæ£è
"); |
| | | this.SelectPatientslist = selection; |
| | | handleSelectionChange(selection) { |
| | | this.SelectPatientslist = structuredClone(selection); |
| | | this.multiple = !selection.length; |
| | | |
| | | // èµå¼ç»æ´ä½é䏿°ç» |
| | |
| | | if (!isExist) { |
| | | item.isoperation = 1; |
| | | item.patid = item.id; |
| | | if (item.idcardno) { |
| | | item.sfzh = item.idcardno; |
| | | 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; |
| | | } |
| | | if (type) { |
| | | item.hospType = type; |
| | | } else { |
| | | item.hospType = this.patientqueryParams.allhosp; |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | item.visittime = item.endtime; |
| | | } else if (this.patientqueryParams.allhosp == 4) { |
| | | item.visittime = item.starttime; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | item.visittime = item.admitdate; |
| | | } |
| | | this.overallCase.push(item); |
| | | this.form.patTaskRelevances.push(item); |
| | |
| | | : []; |
| | | this.overallCase = this.form.patTaskRelevances.concat(); |
| | | this.checkList = this.form.preachform.split(","); |
| | | this.selectedOrder = this.form.preachformList; |
| | | console.log(this.form.showDate, "this.form"); |
| | | if (this.form.daytime) this.daytime = this.form.showDate.split(","); |
| | | console.log(this.newadd, "ä¾ç
§"); |
| | |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | checkSelectionChange(selectedValues, selectedOrder) { |
| | | this.selectedOrder = selectedValues; |
| | | console.log("å½åéä¸:", selectedValues); |
| | | console.log("éä¸é¡ºåº:", selectedOrder); |
| | | }, |
| | | // ä¾ç
§æ°å¢æ¶å¤ç |
| | | neWaddfn() { |
| | |
| | | TaskQuestioncomit(this.Tasktemplate).then((response) => { |
| | | console.log(response); |
| | | this.previewtf = false; |
| | | this.drawermb =false; |
| | | this.form.templateid = response.data; |
| | | this.form.libtemplateid = this.libId; |
| | | this.form.templatename = this.libName; |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #3664D9; |
| | | color: #3664d9; |
| | | } |
| | | .button-textxg { |
| | | color: #de7897; |
| | |
| | | { label: "çµè¯å·ç ", width: "180", prop: "telcode" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "çµè¯", width: "180", prop: "telcode" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "主治å»ç", width: "", prop: "drname" }, |
| | |
| | | > |
| | | </el-col> |
| | | </el-form> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | @expand-change="handleRowClick" |
| | | :row-key="getRowKey" |
| | | :expand-row-keys="expands" |
| | | > |
| | | <!-- å±å¼è¡ç®å¤´å --> |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <el-table |
| | | :data="props.row.doctorStats" |
| | | border |
| | | style="width: 95%; margin: 0 auto" |
| | | class="inner-table" |
| | | > |
| | | <el-table-column |
| | | label="å»çå§å" |
| | | prop="drname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | width="120" |
| | | prop="deptname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢äººæ¬¡" |
| | | prop="dischargeCount" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢äººæ¬¡" |
| | | align="center" |
| | | key="dischargeCount" |
| | | prop="dischargeCount" |
| | | <div class="your-table-container"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | @expand-change="handleRowClick" |
| | | :row-key="getRowKey" |
| | | show-summary |
| | | :summary-method="getSummaries" |
| | | :expand-row-keys="expands" |
| | | > |
| | | <!-- å±å¼è¡ç®å¤´å --> |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <el-table |
| | | :data="props.row.doctorStats" |
| | | border |
| | | style="width: 95%; margin: 0 auto" |
| | | class="inner-table" |
| | | show-summary |
| | | :summary-method="getInnerSummaries" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å»çå§å" |
| | | prop="drname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | width="120" |
| | | prop="deptname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢äººæ¬¡" |
| | | prop="dischargeCount" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢äººæ¬¡" |
| | | align="center" |
| | | key="dischargeCount" |
| | | prop="dischargeCount" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="æ éé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="nonFollowUp" |
| | | prop="nonFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åºé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="followUpNeeded" |
| | | prop="followUpNeeded" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | label="æ éé访人次" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | width="100" |
| | | key="nonFollowUp" |
| | | prop="nonFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | label="åºé访人次" |
| | | align="center" |
| | | key="pendingFollowUp" |
| | | prop="pendingFollowUp" |
| | | width="100" |
| | | key="followUpNeeded" |
| | | prop="followUpNeeded" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUp" |
| | | prop="pendingFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFail" |
| | | prop="followUpFail" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRate" |
| | | prop="followUpRate" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.followUpRate) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶ç" |
| | | align="center" |
| | | width="120" |
| | | key="rate" |
| | | prop="rate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{ |
| | | (Number(scope.row.rate) * 100).toFixed(2) |
| | | }}%</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | | prop="weChat" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFail" |
| | | prop="followUpFail" |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRateAgain" |
| | | prop="followUpRateAgain" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRate" |
| | | prop="followUpRate" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.followUpRate) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶ç" |
| | | align="center" |
| | | width="120" |
| | | key="rate" |
| | | prop="rate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{ |
| | | (Number(scope.row.rate) * 100).toFixed(2) |
| | | }}%</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | | prop="weChat" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRateAgain" |
| | | prop="followUpRateAgain" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åºé¢ç
åº" |
| | | align="center" |
| | | sortable |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="150" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢äººæ¬¡" |
| | | align="center" |
| | | key="dischargeCount" |
| | | prop="dischargeCount" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="æ éé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="nonFollowUp" |
| | | prop="nonFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åºé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="followUpNeeded" |
| | | prop="followUpNeeded" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUp" |
| | | prop="pendingFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFail" |
| | | prop="followUpFail" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRate" |
| | | prop="followUpRate" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.followUpRate) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶ç" |
| | | align="center" |
| | | width="120" |
| | | key="rate" |
| | | prop="rate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{ (Number(scope.row.rate) * 100).toFixed(2) }}%</span |
| | | ></el-button |
| | | > |
| | | </el-table> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | label="åºé¢ç
åº" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | </el-table-column> |
| | | sortable |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="150" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | </el-table-column> |
| | | key="deptname" |
| | | prop="deptname" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="微信" |
| | | label="åºé¢äººæ¬¡" |
| | | align="center" |
| | | key="weChat" |
| | | prop="weChat" |
| | | key="dischargeCount" |
| | | prop="dischargeCount" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRateAgain" |
| | | prop="followUpRateAgain" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column v-if="orgname=='丽水å¸ä¸å»é¢'" align="center" label="é访æ
åµ"> |
| | | |
| | | <el-table-column |
| | | label="æ£å¸¸è¯é³" |
| | | label="æ éé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation1" |
| | | prop="taskSituation1" |
| | | > |
| | | </el-table-column><el-table-column |
| | | label="æ£è
ææ¥ææè®¿" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation2" |
| | | prop="taskSituation2" |
| | | > |
| | | </el-table-column><el-table-column |
| | | label="é¢è®¿æè
æ¥è¯" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation3" |
| | | prop="taskSituation3" |
| | | > |
| | | </el-table-column><el-table-column |
| | | label="微信é访" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation4" |
| | | prop="taskSituation4" |
| | | > |
| | | </el-table-column><el-table-column |
| | | label="é访çµè¯ä¸æ£ç¡®" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation5" |
| | | prop="taskSituation5" |
| | | > |
| | | </el-table-column><el-table-column |
| | | label="å
¶ä»æ
åµä¸å®é访" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation6" |
| | | prop="taskSituation6" |
| | | key="nonFollowUp" |
| | | prop="nonFollowUp" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table-column |
| | | label="åºé访人次" |
| | | align="center" |
| | | width="100" |
| | | key="followUpNeeded" |
| | | prop="followUpNeeded" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" label="馿¬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUp" |
| | | prop="pendingFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFail" |
| | | prop="followUpFail" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRate" |
| | | prop="followUpRate" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.followUpRate) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶ç" |
| | | align="center" |
| | | width="120" |
| | | key="rate" |
| | | prop="rate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{ |
| | | (Number(scope.row.rate) * 100).toFixed(2) |
| | | }}%</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | | prop="weChat" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | | <el-table-column |
| | | label="éé访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | | align="center" |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | | align="center" |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | | align="center" |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRateAgain" |
| | | prop="followUpRateAgain" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="orgname == '丽水å¸ä¸å»é¢'" |
| | | align="center" |
| | | label="é访æ
åµ" |
| | | > |
| | | <el-table-column |
| | | label="æ£å¸¸è¯é³" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation1" |
| | | prop="taskSituation1" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="æ£è
ææ¥ææè®¿" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation2" |
| | | prop="taskSituation2" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="é¢è®¿æè
æ¥è¯" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation3" |
| | | prop="taskSituation3" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="微信é访" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation4" |
| | | prop="taskSituation4" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="é访çµè¯ä¸æ£ç¡®" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation5" |
| | | prop="taskSituation5" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="å
¶ä»æ
åµä¸å®é访" |
| | | align="center" |
| | | width="100" |
| | | key="taskSituation6" |
| | | prop="taskSituation6" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- <pagination |
| | | v-show="total > 0" |
| | |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | | activeName: "first", //ä¾§è¾¹éæ© |
| | | orgname:'', |
| | | orgname: "", |
| | | expands: [], |
| | | // é®ç½©å± |
| | | loading: false, |
| | |
| | | this.getDeptTree(); |
| | | this.getList(); |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | } else { |
| | | this.expands = [this.getRowKey(row)]; |
| | | } |
| | | }, |
| | | getSummaries(param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | |
| | | columns.forEach((column, index) => { |
| | | if (index === 0) { |
| | | sums[index] = "å计"; |
| | | return; |
| | | } |
| | | if (index === 1||index === 2) { |
| | | sums[index] = "/"; |
| | | return; |
| | | } |
| | | |
| | | // 对ç¾åæ¯åæ®µç¹æ®å¤ç - åå¹³åå¼ |
| | | if ( |
| | | column.property === "followUpRate" || |
| | | column.property === "rate" || |
| | | column.property === "followUpRateAgain" |
| | | ) { |
| | | // æåææææç¾åæ¯å¼å¹¶è½¬æ¢ä¸ºå°æ° |
| | | const percentageValues = data |
| | | .map((item) => { |
| | | const value = item[column.property]; |
| | | if (!value || value === "-" || value === "0%") return null; |
| | | |
| | | // å¤ç带ç¾åå·çæ°æ® |
| | | if (typeof value === "string" && value.includes("%")) { |
| | | // å»é¤ç¾åå·å¹¶è½¬æ¢ä¸ºå°æ° |
| | | const numValue = parseFloat(value.replace("%", "")) / 100; |
| | | return isNaN(numValue) ? null : numValue; |
| | | } else { |
| | | // å¤çå·²ç»æ¯å°æ°çæ°æ® |
| | | const numValue = parseFloat(value); |
| | | return isNaN(numValue) ? null : numValue; |
| | | } |
| | | }) |
| | | .filter((value) => value !== null && value !== 0); // è¿æ»¤ænullå0å¼ |
| | | |
| | | if (percentageValues.length > 0) { |
| | | const average = |
| | | percentageValues.reduce((sum, value) => sum + value, 0) / |
| | | percentageValues.length; |
| | | sums[index] = (average * 100).toFixed(2) + "%"; |
| | | } else { |
| | | sums[index] = "0.00%"; |
| | | } |
| | | } else { |
| | | // æ®éæ°ååæ®µ - æ±å |
| | | const values = data.map((item) => { |
| | | const value = item[column.property]; |
| | | if (value === "-" || value === "" || value === null) return 0; |
| | | return Number(value) || 0; |
| | | }); |
| | | |
| | | if (!values.every((value) => isNaN(value))) { |
| | | sums[index] = values.reduce((prev, curr) => prev + curr, 0); |
| | | sums[index] = this.formatNumber(sums[index]); |
| | | } else { |
| | | sums[index] = "-"; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return sums; |
| | | }, |
| | | |
| | | // å
é¨è¡¨æ ¼å计è¡è®¡ç®æ¹æ³ |
| | | getInnerSummaries(param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | |
| | | columns.forEach((column, index) => { |
| | | if (index === 0) { |
| | | sums[index] = "å°è®¡"; |
| | | return; |
| | | } |
| | | |
| | | if (column.property === "drname" || column.property === "deptname") { |
| | | sums[index] = "-"; |
| | | return; |
| | | } |
| | | |
| | | // 对ç¾åæ¯åæ®µç¹æ®å¤ç - åå¹³åå¼ |
| | | if (column.property === "followUpRate" || column.property === "rate") { |
| | | // æåææææç¾åæ¯å¼å¹¶è½¬æ¢ä¸ºå°æ° |
| | | const percentageValues = data |
| | | .map((item) => { |
| | | const value = item[column.property]; |
| | | if (!value || value === "-" || value === "0%") return null; |
| | | |
| | | // å¤ç带ç¾åå·çæ°æ® |
| | | if (typeof value === "string" && value.includes("%")) { |
| | | // å»é¤ç¾åå·å¹¶è½¬æ¢ä¸ºå°æ° |
| | | const numValue = parseFloat(value.replace("%", "")) / 100; |
| | | return isNaN(numValue) ? null : numValue; |
| | | } else { |
| | | // å¤çå·²ç»æ¯å°æ°çæ°æ® |
| | | const numValue = parseFloat(value); |
| | | return isNaN(numValue) ? null : numValue; |
| | | } |
| | | }) |
| | | .filter((value) => value !== null && value !== 0); |
| | | |
| | | if (percentageValues.length > 0) { |
| | | const average = |
| | | percentageValues.reduce((sum, value) => sum + value, 0) / |
| | | percentageValues.length; |
| | | sums[index] = (average * 100).toFixed(2) + "%"; |
| | | } else { |
| | | sums[index] = "0.00%"; |
| | | } |
| | | } else { |
| | | // æ®éæ°ååæ®µ - æ±å |
| | | const values = data.map((item) => { |
| | | const value = item[column.property]; |
| | | if (value === "-" || value === "" || value === null) return 0; |
| | | return Number(value) || 0; |
| | | }); |
| | | |
| | | if (!values.every((value) => isNaN(value))) { |
| | | sums[index] = values.reduce((prev, curr) => prev + curr, 0); |
| | | sums[index] = this.formatNumber(sums[index]); |
| | | } else { |
| | | sums[index] = "-"; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return sums; |
| | | }, |
| | | |
| | | // è¾
婿¹æ³ï¼æåç¾åæ¯æ°å¼ |
| | | extractPercentageValue(value) { |
| | | if (!value) return null; |
| | | |
| | | if (typeof value === "string") { |
| | | // å¤ç带ç¾åå·çå符串 |
| | | if (value.includes("%")) { |
| | | const num = parseFloat(value.replace("%", "")); |
| | | return isNaN(num) ? null : num / 100; |
| | | } |
| | | // å¤ç纯æ°åå符串 |
| | | const num = parseFloat(value); |
| | | return isNaN(num) ? null : num; |
| | | } |
| | | |
| | | // å¤çæ°åç±»å |
| | | return typeof value === "number" ? value : null; |
| | | }, |
| | | |
| | | // æ°åæ ¼å¼åæ¹æ³ |
| | | formatNumber(num) { |
| | | if (isNaN(num)) return "-"; |
| | | return Number.isInteger(num) ? num.toString() : num.toFixed(0); |
| | | }, |
| | | /** ä¿®æ¹æ ç¾ */ |
| | | handleUpdate(row) { |
| | |
| | | }, |
| | | |
| | | // åå§åé¥¼å¾ |
| | | initPieChart() { |
| | | const echarts = require("echarts"); |
| | | const pieDom = document.getElementById("pieChart"); |
| | | if (!pieDom) return; |
| | | initPieChart() { |
| | | const echarts = require("echarts"); |
| | | const pieDom = document.getElementById("pieChart"); |
| | | if (!pieDom) return; |
| | | |
| | | if (this.pieChart) { |
| | | this.pieChart.dispose(); |
| | | } |
| | | |
| | | this.pieChart = echarts.init(pieDom); |
| | | |
| | | // 计ç®é¥¼å¾æ°æ® |
| | | const followUpData = { |
| | | pending: 0, |
| | | success: 0, |
| | | fail: 0, |
| | | }; |
| | | |
| | | this.userList.forEach((item) => { |
| | | followUpData.pending += item.pendingFollowUp || 0; |
| | | followUpData.success += item.followUpSuccess || 0; |
| | | followUpData.fail += item.followUpFail || 0; |
| | | }); |
| | | |
| | | // ä½¿ç¨æ´ç¾è§çé¢è²æ¹æ¡ |
| | | const pieOption = { |
| | | title: { |
| | | text: "éè®¿ç¶æåå¸", |
| | | left: "center", |
| | | textStyle: { |
| | | color: '#333', |
| | | fontSize: 16 |
| | | if (this.pieChart) { |
| | | this.pieChart.dispose(); |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: "item", |
| | | formatter: "{a} <br/>{b}: {c} ({d}%)", |
| | | }, |
| | | legend: { |
| | | orient: "vertical", |
| | | left: "left", |
| | | data: ["å¾
é访", "é访æå", "é访失败"], |
| | | textStyle: { |
| | | color: '#666' |
| | | } |
| | | }, |
| | | color: ['#FF9D4D', '#36B37E', '#FF5C5C'], // æ°çé
è²æ¹æ¡ |
| | | series: [ |
| | | { |
| | | name: "éè®¿ç¶æ", |
| | | type: "pie", |
| | | radius: ["40%", "70%"], |
| | | avoidLabelOverlap: true, |
| | | itemStyle: { |
| | | borderRadius: 10, |
| | | borderColor: "#fff", |
| | | borderWidth: 2 |
| | | }, |
| | | label: { |
| | | show: true, |
| | | formatter: "{b}: {c} ({d}%)", |
| | | color: '#333' |
| | | }, |
| | | emphasis: { |
| | | label: { |
| | | show: true, |
| | | fontSize: "18", |
| | | fontWeight: "bold" |
| | | |
| | | this.pieChart = echarts.init(pieDom); |
| | | |
| | | // 计ç®é¥¼å¾æ°æ® |
| | | const followUpData = { |
| | | pending: 0, |
| | | success: 0, |
| | | fail: 0, |
| | | }; |
| | | |
| | | this.userList.forEach((item) => { |
| | | followUpData.pending += item.pendingFollowUp || 0; |
| | | followUpData.success += item.followUpSuccess || 0; |
| | | followUpData.fail += item.followUpFail || 0; |
| | | }); |
| | | |
| | | // ä½¿ç¨æ´ç¾è§çé¢è²æ¹æ¡ |
| | | const pieOption = { |
| | | title: { |
| | | text: "éè®¿ç¶æåå¸", |
| | | left: "center", |
| | | textStyle: { |
| | | color: "#333", |
| | | fontSize: 16, |
| | | }, |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | }, |
| | | data: [ |
| | | { |
| | | value: followUpData.pending, |
| | | name: "å¾
é访" |
| | | tooltip: { |
| | | trigger: "item", |
| | | formatter: "{a} <br/>{b}: {c} ({d}%)", |
| | | }, |
| | | legend: { |
| | | orient: "vertical", |
| | | left: "left", |
| | | data: ["å¾
é访", "é访æå", "é访失败"], |
| | | textStyle: { |
| | | color: "#666", |
| | | }, |
| | | }, |
| | | color: ["#FF9D4D", "#36B37E", "#FF5C5C"], // æ°çé
è²æ¹æ¡ |
| | | series: [ |
| | | { |
| | | value: followUpData.success, |
| | | name: "é访æå" |
| | | }, |
| | | { |
| | | value: followUpData.fail, |
| | | name: "é访失败" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | this.pieChart.setOption(pieOption); |
| | | window.addEventListener("resize", this.resizePieChart); |
| | | }, |
| | | |
| | | // åå§åæ±ç¶æçº¿å¾ |
| | | initBarLineChart() { |
| | | const echarts = require("echarts"); |
| | | const barDom = document.getElementById("barLineChart"); |
| | | if (!barDom) return; |
| | | |
| | | if (this.barLineChart) { |
| | | this.barLineChart.dispose(); |
| | | } |
| | | |
| | | this.barLineChart = echarts.init(barDom); |
| | | |
| | | // å夿°æ® |
| | | const categories = this.userList.map( |
| | | (item) => item.leavehospitaldistrictname || item.deptname |
| | | ); |
| | | |
| | | const dischargeData = this.userList.map( |
| | | (item) => item.dischargeCount || 0 |
| | | ); |
| | | const followUpData = this.userList.map( |
| | | (item) => item.followUpNeeded || 0 |
| | | ); |
| | | |
| | | // æ°å¢ä¸¤æ¡æçº¿æ°æ® |
| | | const followUpRateData = this.userList.map(item => { |
| | | if (!item.followUpRate) return 0; |
| | | // 廿ç¾åå·å¹¶è½¬ä¸ºæ°å |
| | | const rateStr = String(item.followUpRate).replace('%', ''); |
| | | return parseFloat(rateStr) || 0; |
| | | }); |
| | | |
| | | const timelyRateData = this.userList.map(item => |
| | | item.rate ? (Number(item.rate) * 100).toFixed(2) : 0 |
| | | ); |
| | | |
| | | const option = { |
| | | title: { |
| | | text: "ç§å®¤/ç
åºé访è¶å¿", |
| | | left: "center", |
| | | textStyle: { |
| | | color: '#333', |
| | | fontSize: 16 |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "cross", |
| | | crossStyle: { |
| | | color: "#999", |
| | | }, |
| | | }, |
| | | }, |
| | | legend: { |
| | | data: ["åºé¢äººæ¬¡", "åºé访人次", "é访ç(%)", "åæ¶ç(%)"], |
| | | top: "bottom", |
| | | textStyle: { |
| | | color: '#666' |
| | | } |
| | | }, |
| | | color: ['#5470C6', '#91CC75', '#EE6666', '#9A60B4'], // æ°å¢ç´«è²ç¨äºåæ¶ç |
| | | xAxis: { |
| | | type: "category", |
| | | data: categories, |
| | | axisLabel: { |
| | | interval: 0, |
| | | rotate: 30, |
| | | color: '#666' |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#ddd' |
| | | } |
| | | } |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: "value", |
| | | name: "人次", |
| | | min: 0, |
| | | axisLabel: { |
| | | color: '#666' |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#ddd' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: '#f0f0f0' |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | type: "value", |
| | | name: "ç¾åæ¯(%)", |
| | | min: 0, |
| | | max: 100, |
| | | axisLabel: { |
| | | color: '#666', |
| | | formatter: '{value}%' |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#ddd' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: false |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: "åºé¢äººæ¬¡", |
| | | type: "bar", |
| | | barWidth: "25%", |
| | | data: dischargeData, |
| | | itemStyle: { |
| | | borderRadius: [4, 4, 0, 0] |
| | | } |
| | | }, |
| | | { |
| | | name: "åºé访人次", |
| | | type: "bar", |
| | | barWidth: "25%", |
| | | data: followUpData, |
| | | itemStyle: { |
| | | borderRadius: [4, 4, 0, 0] |
| | | } |
| | | }, |
| | | { |
| | | name: "é访ç(%)", |
| | | type: "line", |
| | | yAxisIndex: 1, |
| | | data: followUpRateData, |
| | | symbolSize: 8, |
| | | lineStyle: { |
| | | width: 3 |
| | | }, |
| | | markLine: { |
| | | silent: true, |
| | | data: [{ |
| | | yAxis: 80, |
| | | lineStyle: { |
| | | color: '#EE6666', |
| | | type: 'dashed' |
| | | name: "éè®¿ç¶æ", |
| | | type: "pie", |
| | | radius: ["40%", "70%"], |
| | | avoidLabelOverlap: true, |
| | | itemStyle: { |
| | | borderRadius: 10, |
| | | borderColor: "#fff", |
| | | borderWidth: 2, |
| | | }, |
| | | // label: { |
| | | // position: 'end', |
| | | // formatter: 'ç®æ 80%' |
| | | // } |
| | | }] |
| | | } |
| | | }, |
| | | { |
| | | name: "åæ¶ç(%)", |
| | | type: "line", |
| | | yAxisIndex: 1, |
| | | data: timelyRateData, |
| | | symbolSize: 8, |
| | | lineStyle: { |
| | | width: 3, |
| | | type: 'dotted' // 使ç¨è线åºå |
| | | }, |
| | | markLine: { |
| | | silent: true, |
| | | data: [{ |
| | | yAxis: 90, |
| | | lineStyle: { |
| | | color: '#9A60B4', |
| | | type: 'dashed' |
| | | label: { |
| | | show: true, |
| | | formatter: "{b}: {c} ({d}%)", |
| | | color: "#333", |
| | | }, |
| | | // label: { |
| | | // position: 'end', |
| | | // formatter: 'ç®æ 90%' |
| | | // } |
| | | }] |
| | | } |
| | | } |
| | | ], |
| | | grid: { |
| | | top: '15%', |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '15%', |
| | | containLabel: true |
| | | } |
| | | }; |
| | | emphasis: { |
| | | label: { |
| | | show: true, |
| | | fontSize: "18", |
| | | fontWeight: "bold", |
| | | }, |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: "rgba(0, 0, 0, 0.5)", |
| | | }, |
| | | }, |
| | | data: [ |
| | | { |
| | | value: followUpData.pending, |
| | | name: "å¾
é访", |
| | | }, |
| | | { |
| | | value: followUpData.success, |
| | | name: "é访æå", |
| | | }, |
| | | { |
| | | value: followUpData.fail, |
| | | name: "é访失败", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | this.barLineChart.setOption(option); |
| | | window.addEventListener("resize", this.resizeBarLineChart); |
| | | }, |
| | | this.pieChart.setOption(pieOption); |
| | | window.addEventListener("resize", this.resizePieChart); |
| | | }, |
| | | |
| | | // åå§åæ±ç¶æçº¿å¾ |
| | | initBarLineChart() { |
| | | const echarts = require("echarts"); |
| | | const barDom = document.getElementById("barLineChart"); |
| | | if (!barDom) return; |
| | | |
| | | if (this.barLineChart) { |
| | | this.barLineChart.dispose(); |
| | | } |
| | | |
| | | this.barLineChart = echarts.init(barDom); |
| | | |
| | | // å夿°æ® |
| | | const categories = this.userList.map( |
| | | (item) => item.leavehospitaldistrictname || item.deptname |
| | | ); |
| | | |
| | | const dischargeData = this.userList.map( |
| | | (item) => item.dischargeCount || 0 |
| | | ); |
| | | const followUpData = this.userList.map( |
| | | (item) => item.followUpNeeded || 0 |
| | | ); |
| | | |
| | | // æ°å¢ä¸¤æ¡æçº¿æ°æ® |
| | | const followUpRateData = this.userList.map((item) => { |
| | | if (!item.followUpRate) return 0; |
| | | // 廿ç¾åå·å¹¶è½¬ä¸ºæ°å |
| | | const rateStr = String(item.followUpRate).replace("%", ""); |
| | | return parseFloat(rateStr) || 0; |
| | | }); |
| | | |
| | | const timelyRateData = this.userList.map((item) => |
| | | item.rate ? (Number(item.rate) * 100).toFixed(2) : 0 |
| | | ); |
| | | |
| | | const option = { |
| | | title: { |
| | | text: "ç§å®¤/ç
åºé访è¶å¿", |
| | | left: "center", |
| | | textStyle: { |
| | | color: "#333", |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "cross", |
| | | crossStyle: { |
| | | color: "#999", |
| | | }, |
| | | }, |
| | | }, |
| | | legend: { |
| | | data: ["åºé¢äººæ¬¡", "åºé访人次", "é访ç(%)", "åæ¶ç(%)"], |
| | | top: "bottom", |
| | | textStyle: { |
| | | color: "#666", |
| | | }, |
| | | }, |
| | | color: ["#5470C6", "#91CC75", "#EE6666", "#9A60B4"], // æ°å¢ç´«è²ç¨äºåæ¶ç |
| | | xAxis: { |
| | | type: "category", |
| | | data: categories, |
| | | axisLabel: { |
| | | interval: 0, |
| | | rotate: 30, |
| | | color: "#666", |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: "#ddd", |
| | | }, |
| | | }, |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: "value", |
| | | name: "人次", |
| | | min: 0, |
| | | axisLabel: { |
| | | color: "#666", |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: "#ddd", |
| | | }, |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: "#f0f0f0", |
| | | }, |
| | | }, |
| | | }, |
| | | { |
| | | type: "value", |
| | | name: "ç¾åæ¯(%)", |
| | | min: 0, |
| | | max: 100, |
| | | axisLabel: { |
| | | color: "#666", |
| | | formatter: "{value}%", |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: "#ddd", |
| | | }, |
| | | }, |
| | | splitLine: { |
| | | show: false, |
| | | }, |
| | | }, |
| | | ], |
| | | series: [ |
| | | { |
| | | name: "åºé¢äººæ¬¡", |
| | | type: "bar", |
| | | barWidth: "25%", |
| | | data: dischargeData, |
| | | itemStyle: { |
| | | borderRadius: [4, 4, 0, 0], |
| | | }, |
| | | }, |
| | | { |
| | | name: "åºé访人次", |
| | | type: "bar", |
| | | barWidth: "25%", |
| | | data: followUpData, |
| | | itemStyle: { |
| | | borderRadius: [4, 4, 0, 0], |
| | | }, |
| | | }, |
| | | { |
| | | name: "é访ç(%)", |
| | | type: "line", |
| | | yAxisIndex: 1, |
| | | data: followUpRateData, |
| | | symbolSize: 8, |
| | | lineStyle: { |
| | | width: 3, |
| | | }, |
| | | markLine: { |
| | | silent: true, |
| | | data: [ |
| | | { |
| | | yAxis: 80, |
| | | lineStyle: { |
| | | color: "#EE6666", |
| | | type: "dashed", |
| | | }, |
| | | // label: { |
| | | // position: 'end', |
| | | // formatter: 'ç®æ 80%' |
| | | // } |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | name: "åæ¶ç(%)", |
| | | type: "line", |
| | | yAxisIndex: 1, |
| | | data: timelyRateData, |
| | | symbolSize: 8, |
| | | lineStyle: { |
| | | width: 3, |
| | | type: "dotted", // 使ç¨è线åºå |
| | | }, |
| | | markLine: { |
| | | silent: true, |
| | | data: [ |
| | | { |
| | | yAxis: 90, |
| | | lineStyle: { |
| | | color: "#9A60B4", |
| | | type: "dashed", |
| | | }, |
| | | // label: { |
| | | // position: 'end', |
| | | // formatter: 'ç®æ 90%' |
| | | // } |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | ], |
| | | grid: { |
| | | top: "15%", |
| | | left: "3%", |
| | | right: "4%", |
| | | bottom: "15%", |
| | | containLabel: true, |
| | | }, |
| | | }; |
| | | |
| | | this.barLineChart.setOption(option); |
| | | window.addEventListener("resize", this.resizeBarLineChart); |
| | | }, |
| | | |
| | | // å¾è¡¨ååºå¼è°æ´æ¹æ³ |
| | | resizePieChart() { |
| | |
| | | text-align: left; |
| | | font-size: 20px; |
| | | } |
| | | // ç¾ååè®¡è¡æ ·å¼ |
| | | ::v-deep .el-table__footer { |
| | | .el-table__cell { |
| | | background-color: #f5f7fa; |
| | | font-weight: 600; |
| | | color: #409eff; |
| | | |
| | | .cell { |
| | | font-weight: 600; |
| | | color: #409eff; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å
é¨è¡¨æ ¼åè®¡è¡æ ·å¼ |
| | | ::v-deep .inner-table .el-table__footer { |
| | | .el-table__cell { |
| | | background-color: #ecf5ff; |
| | | font-weight: 500; |
| | | color: #67c23a; |
| | | |
| | | .cell { |
| | | font-weight: 500; |
| | | color: #67c23a; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // ç¾åæ¯åæ®µç¹æ®æ ·å¼ |
| | | .your-table-container ::v-deep .el-table__footer .el-table__cell[data-field="followUpRate"] .cell, |
| | | .your-table-container ::v-deep .el-table__footer .el-table__cell[data-field="rate"] .cell, |
| | | .your-table-container ::v-deep .el-table__footer .el-table__cell[data-field="followUpRateAgain"] .cell { |
| | | color: #e6a23c !important; |
| | | font-weight: 700 !important; |
| | | } |
| | | |
| | | .leftvlue { |
| | | // display: flex; |
| | |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `https://www.health-y.cn/lssf`, |
| | | // target: `http://192.168.100.129:8095`, |
| | | target: `http://192.168.100.10:8096`, |
| | | // target:`http://localhost:8095`, |
| | | // target: `http://192.168.100.10:8096`, |
| | | target:`http://localhost:8095`, |
| | | // target:`http://35z1t16164.qicp.vip`, |
| | | // target: `http://192.168.100.193:8095`, |
| | | // target: `http://192.168.101.166:8093`, |