| | |
| | | method: "get", |
| | | }); |
| | | } |
| | | // 宣æç»è®¡ |
| | | export function gethelibraryCount(data) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtask/gethelibraryCount", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // å 餿æ |
| | | export function deletetarget(userId) { |
| | |
| | | data:data, |
| | | }); |
| | | } |
| | | |
| | |
| | | isRegistering: true, // åå§ä¸ºæ³¨åä¸ç¶æ |
| | | randomNum: randomNum, |
| | | randomID: null, |
| | | orgname: localStorage.getItem("orgname"), |
| | | callStatus: "idle", // idle, calling, connected, ended |
| | | sipStatus: "æªè¿æ¥", |
| | | sipStatusClass: "status-disconnected", |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | if ( |
| | | this.orgname == "第ä¸äººæ°å»é¢æ¹æ»¨é¢åº" || |
| | | this.orgname == "第ä¸äººæ°å»é¢å´å±±é¢åº" |
| | | ) { |
| | | this.sipConfig.password = "heskj@1234"; |
| | | } else { |
| | | this.sipConfig.password = "Smartor@2023"; |
| | | } |
| | | |
| | | // CallgetList(); |
| | | }, |
| | | |
| | |
| | | this.sipConfig.sipUri = `${this.randomNum}@192.168.10.124`; |
| | | } else if (orgName == "龿³å¸äººæ°å»é¢") { |
| | | this.sipConfig.sipUri = `${this.randomNum}@10.10.0.220`; |
| | | } else if (orgName == "第ä¸äººæ°å»é¢æ¹æ»¨é¢åº"||orgName == "第ä¸äººæ°å»é¢å´å±±é¢åº") { |
| | | } else if ( |
| | | orgName == "第ä¸äººæ°å»é¢æ¹æ»¨é¢åº" || |
| | | orgName == "第ä¸äººæ°å»é¢å´å±±é¢åº" |
| | | ) { |
| | | this.sipConfig.sipUri = `${this.randomNum}@192.169.129.198`; |
| | | } |
| | | } catch (error) { |
| | |
| | | // }, |
| | | // }, |
| | | { |
| | | value: "13", |
| | | value: 13, |
| | | label: "ä¸ç
é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 17, |
| | | label: "宣æå
³æï¼å
¥é¢ï¼", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 18, |
| | | label: "å
¥é¢é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | |
| | | const campusid = userInfo.campusid; |
| | | |
| | | const orgid = userInfo.orgid; |
| | | console.log(orgid, campusid, "88"); |
| | | const orgname = userInfo.orgname; |
| | | console.log(orgname, campusid, "88"); |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | login(username, password, code, orgid, campusid) |
| | |
| | | localStorage.setItem("YongHuID", "1478905109432766464"); |
| | | localStorage.setItem("YongHuXM", "LQRMYY"); |
| | | } else if (orgid == "20001001") { |
| | | localStorage.setItem("orgname", "çç«åå¾·ç¿ èé¢åº"); |
| | | orgname == "ååéä¸" |
| | | ? localStorage.setItem("orgname", "åå大å¦éå±ç¬¬ä¸å»é¢") |
| | | : localStorage.setItem("orgname", "çç«åå¾·ç¿ èé¢åº"); |
| | | |
| | | localStorage.setItem("ZuHuID", ""); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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-col :span="2.5" v-if="orgname == 'çç«åå¾·ç¿ èé¢åº'"> |
| | | <div class="jgleftvlue"> |
| | | <el-card shadow="hover "> |
| | | <div style="padding: 8px"> |
| | | <span>è¦å</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ jgvalue }} |
| | | </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="updateBy"> |
| | | <el-input |
| | | v-model="topqueryParams.updateBy" |
| | | placeholder="请è¾å
¥é访人å" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="主治å»ç" prop="drname"> |
| | | <el-input |
| | | v-model="topqueryParams.drname" |
| | | placeholder="请è¾å
¥ä¸»æ²»å»ç" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ç®¡å»ç" prop="managementDoctor"> |
| | | <el-input |
| | | v-model="topqueryParams.managementDoctor" |
| | | placeholder="请è¾å
¥ä¸»æ²»å»ç" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æéå¶" prop="status"> |
| | | <el-select v-model="endOut" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in endOuts" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </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" 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-col :span="1.5" v-if="orgname == 'æ¯å®ç²æèªæ²»å¿äººæ°å»é¢'"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-tooltip |
| | | content="请å
é䏿å¡" |
| | | placement="top" |
| | | :disabled="!multiple" |
| | | > |
| | | <div class="tooltip-wrapper"> |
| | | <el-button |
| | | type="primary" |
| | | :disabled="multiple" |
| | | class="purple-button" |
| | | @click="scoreDialogVisible = true" |
| | | > |
| | | 满æåº¦è°æ¥ |
| | | </el-button> |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | ref="userform" |
| | | :data="userList" |
| | | :row-class-name="tableRowClassName" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | width="150" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | /> |
| | | <!-- <el-table-column label="åºå·" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname) |
| | | " |
| | | ><span class="button-textsc">{{ |
| | | scope.row.sendname |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è¯æåç§°" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </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> |
| | | <div v-if="scope.row.sendstate == 7"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >è¶
æ¶</el-tag |
| | | > |
| | | </div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡å¼å¸¸è¯´æ" |
| | | 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="visitTime" |
| | | prop="visitTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.visitTime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <!-- å --> |
| | | <el-table-column |
| | | label="主治å»ç" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="é访人å" |
| | | align="center" |
| | | key="updateBy" |
| | | prop="updateBy" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="ç»ç®¡å»ç" |
| | | align="center" |
| | | key="managementDoctor" |
| | | prop="managementDoctor" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢å¤©æ°" |
| | | width="120" |
| | | align="center" |
| | | key="endDay" |
| | | prop="endDay" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.endDay ? scope.row.endDay + "天" : "" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="身份è¯å·ç " |
| | | width="200" |
| | | align="center" |
| | | key="sfzh" |
| | | prop="sfzh" |
| | | /> |
| | | <el-table-column |
| | | label="èç³»çµè¯" |
| | | width="200" |
| | | align="center" |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <el-table-column |
| | | label="责任æ¤å£«" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | | label="ç
åå·" |
| | | align="center" |
| | | sortable |
| | | key="medicalRecordNo" |
| | | prop="medicalRecordNo" |
| | | width="120" |
| | | /> --> |
| | | |
| | | <!-- <el-table-column label="å¹´é¾" align="center" key="age" prop="age" /> --> |
| | | <!-- <el-table-column label="æ§å«"width="100" align="center" key="sex" prop="sex" /> --> |
| | | <!-- <el-table-column label="åºå·" align="center" key="badNo" prop="badNo" /> --> |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç
åº" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="åºé¢é访模æ¿åç§°" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | width="200" |
| | | /> |
| | | <el-table-column |
| | | label="任塿§è¡æ¹å¼" |
| | | align="center" |
| | | key="preachform" |
| | | prop="preachform" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.preachform">{{ item }}ã </span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡åéæµç¨" |
| | | align="center" |
| | | key="serviceSubtaskRecordList" |
| | | prop="serviceSubtaskRecordList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.serviceSubtaskRecordList" |
| | | >{{ item.remark }}ã |
| | | </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="ä»»å¡ç»æè¯´æ" |
| | | width="220" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tooltip |
| | | :content="scope.row.remark" |
| | | placement="top" |
| | | effect="dark" |
| | | > |
| | | <el-tag |
| | | type="warning" |
| | | v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | fixed="right" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="忬¡é访" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | v-if="scope.row.isVisitAgain!=2" |
| | | @click="followupvisit(scope.row)" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-promotion"></i>忬¡é访</span |
| | | ></el-button |
| | | > |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2" |
| | | class="item" |
| | | effect="dark" |
| | | content="æåæå¡" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handlestop(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-remove-outline"></i>æåæå¡</span |
| | | ></el-button |
| | | > |
| | | </el-tooltip> --> |
| | | <el-button size="medium" type="text" @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>æ¥ç详æ
</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>æ£è
è¿æ»¤</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="topqueryParams.pageNum" |
| | | :limit.sync="topqueryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-row> |
| | | <!-- 满æåº¦å¼¹æ¡ --> |
| | | <el-dialog |
| | | title="é访满æåº¦è¯å" |
| | | :visible.sync="scoreDialogVisible" |
| | | width="80%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-table :data="selectedRows" border style="width: 100%"> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | prop="sendname" |
| | | /> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | width="180" |
| | | align="center" |
| | | prop="taskName" |
| | | /> |
| | | <!-- æ°å¢è¯åå --> |
| | | <el-table-column |
| | | label="ç宿§(20)" |
| | | align="center" |
| | | key="authenticity" |
| | | prop="authenticity" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.authenticity" |
| | | :min="0" |
| | | :max="20" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ä¸å¨å
宿(20)" |
| | | align="center" |
| | | key="weekFinish" |
| | | prop="weekFinish" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.weekFinish" |
| | | :min="0" |
| | | :max="20" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è§èæ§(10)" |
| | | align="center" |
| | | key="standard" |
| | | prop="standard" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.standard" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶æ§(10)" |
| | | align="center" |
| | | key="timeliness" |
| | | prop="timeliness" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.timeliness" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="宣ææ
åµ(10)" |
| | | align="center" |
| | | key="library" |
| | | prop="library" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.library" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç¯å¢æ»¡æåº¦(10)" |
| | | align="center" |
| | | key="environment" |
| | | prop="environment" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.environment" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å»ç满æåº¦(10)" |
| | | align="center" |
| | | key="doctorSatisfaction" |
| | | prop="doctorSatisfaction" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.doctorSatisfaction" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ¤å£«æ»¡æåº¦(10)" |
| | | align="center" |
| | | key="nurseSatisfaction" |
| | | prop="nurseSatisfaction" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.nurseSatisfaction" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ»å" |
| | | align="center" |
| | | key="total" |
| | | prop="total" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ calculateTotal(scope.row) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="scoreDialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="saveScores">ä¿å</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- æ·»å æä¿®æ¹å½±åéè®¿å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="amendtag ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ§å«" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è¿æ»¤å»ç" width="100" prop="filterDrname"> |
| | | <el-input |
| | | v-model="form.filterDrname" |
| | | placeholder="请è¾å
¥å»çå§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="è¿æ»¤åå "> |
| | | <el-input |
| | | v-model="form.notrequiredreason" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥è¿æ»¤åå " |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | title="åéæ¶é´è®¾ç½®" |
| | | :visible.sync="modificationVisible" |
| | | width="45%" |
| | | > |
| | | <div style="margin-bottom: 20px; color: red"> |
| | | ç»ä¸ä¿®æ¹å½å¤©æªåéç任塿¶é´ |
| | | </div> |
| | | |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="å鿥æ"> |
| | | <el-date-picker |
| | | v-model="ruleForm.value1" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´æ®µ" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="æä¸" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value2" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value3" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æä¸æ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value4" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="modificationVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="modificationVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 忬¡é访 --> |
| | | <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, |
| | | addsatisfaction, |
| | | } from "@/api/AiCentre/index"; |
| | | import { alterpatient, particularpatient } from "@/api/patient/homepage"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "Discharge", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | dialogFormVisible: false, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "æ°å¢å½±åé访", |
| | | // æ¯å¦æ¾ç¤ºä¿®æ¹ãæ·»å å¼¹åºå± |
| | | addalteropen: false, |
| | | // ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ |
| | | modificationVisible: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | dateRangefs: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | ruleForm: { |
| | | type: [], |
| | | }, |
| | | zcform: {}, |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | jgvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | | preachform: "", |
| | | previewVisible: false, //å½±åé访é¢è§å¼¹æ¡ |
| | | radio: "", |
| | | radios: [], |
| | | previewtype: 2, //é¢è§å½±åé访类å |
| | | total: 0, // æ»æ¡æ° |
| | | // 满æåº¦è°æ¥æ°æ® |
| | | scoreDialogVisible: false, |
| | | selectedRows: [], |
| | | |
| | | value: [], |
| | | list: [], |
| | | |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åº", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "å
¨é¨", |
| | | }, |
| | | ], |
| | | loading: false, |
| | | cardlist: [ |
| | | { |
| | | name: "åºé¢æå¡æ»é", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "æ£è
è¿æ»¤", |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "åé失败", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "å¾
é访", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "å·²åé", |
| | | // value: 0, |
| | | // }, |
| | | |
| | | // { |
| | | // name: "表åå·²åé", |
| | | // value: 0, |
| | | // }, |
| | | ], |
| | | zcrules: { |
| | | date1: [ |
| | | { required: true, message: "è¯·éæ©é访æ¹å¼", trigger: "change" }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©é访æ¶é´", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 表ååæ° |
| | | form: { |
| | | phonenumber: "", |
| | | totagid: "", |
| | | types: "", |
| | | nickName: "", |
| | | qystatus: "", |
| | | btstatus: "", |
| | | }, |
| | | // endOut: 1, |
| | | endOut: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 0 : 1, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | endOuts: [ |
| | | { |
| | | value: 0, |
| | | label: "æªæ¢è³å½æ¥æå¡", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "å
¨é¨æå¡", |
| | | }, |
| | | ], |
| | | topicoptionssort: [ |
| | | { |
| | | value: 0, |
| | | label: "åºé¢æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "åºé¢æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "åºéè®¿æ¥æ(æ£åº)", |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: "åºéè®¿æ¥æ(ååº)", |
| | | }, |
| | | { |
| | | value: 9, |
| | | label: "æç
§æ£è
æåº", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: |
| | | localStorage.getItem("orgname") == "çç«åå¾·ç¿ èé¢åº" ? null : 2, |
| | | sort: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 8 : 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | serviceType: 18, |
| | | searchscope: 3, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | orgname: "", |
| | | 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: "已宿", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "è¶
æ¶", |
| | | }, |
| | | ], |
| | | sextype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç·", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | value: 2, |
| | | 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: { |
| | | // çå¬è·¯ç±åæ°åå |
| | | "$route.query": { |
| | | handler(newQuery, oldQuery) { |
| | | if (newQuery.errtype !== oldQuery.errtype) { |
| | | console.log(22); |
| | | |
| | | this.loadData(); // éæ°å è½½æ°æ® |
| | | } |
| | | }, |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created() { |
| | | this.serviceState = store.getters.serviceState; |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | 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 == 1) { |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 2) { |
| | | // å¾
é访 |
| | | this.toleadExport(3); |
| | | } else if (this.errtype == 3) { |
| | | // 失败 |
| | | this.toleadExport(4); |
| | | } else if (this.errtype == 4) { |
| | | // å¼å¸¸ |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 5) { |
| | | // å
¨é¨ |
| | | this.toleadExport(5); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | activated() { |
| | | this.errtype = this.$route.query.errtype; |
| | | if (this.errtype == 1) { |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 2) { |
| | | // å¾
é访 |
| | | this.toleadExport(3); |
| | | } else if (this.errtype == 3) { |
| | | // 失败 |
| | | this.toleadExport(4); |
| | | } else if (this.errtype == 4) { |
| | | // å¼å¸¸ |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 5) { |
| | | // å
¨é¨ |
| | | this.toleadExport(5); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢é访æå¡å表 */ |
| | | getList(refresh) { |
| | | // é»è®¤å
¨é¨ |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if (this.endOut == 0) { |
| | | this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | this.getEndOfDay() |
| | | ); |
| | | } else { |
| | | // this.topqueryParams.endSendDateTime = null; |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | this.loading = true; |
| | | if ( |
| | | this.topqueryParams.leavehospitaldistrictcodes[0] && |
| | | this.topqueryParams.leaveldeptcodes[0] |
| | | ) { |
| | | this.topqueryParams.deptOrDistrict = 2; |
| | | } else { |
| | | this.topqueryParams.deptOrDistrict = 1; |
| | | } |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + |
| | | Number(response.rows[0].ysf) + |
| | | Number(response.rows[0].fssb); |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[1].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.jgvalue = response.rows[0].jg; |
| | | 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; |
| | | }); |
| | | }, |
| | | loadData() { |
| | | this.errtype = this.$route.query.errtype; |
| | | if (this.errtype == 1) { |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 2) { |
| | | // å¾
é访 |
| | | this.toleadExport(3); |
| | | } else if (this.errtype == 3) { |
| | | // 失败 |
| | | this.toleadExport(4); |
| | | } else if (this.errtype == 4) { |
| | | // å¼å¸¸ |
| | | this.toleadExport(2); |
| | | } else if (this.errtype == 5) { |
| | | // å
¨é¨ |
| | | this.toleadExport(5); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | }, |
| | | // æ¶é´ |
| | | getEndOfDay() { |
| | | const date = new Date(); // å建ä¸ä¸ªè¡¨ç¤ºå½åæ¶é´çDate对象 |
| | | date.setHours(23, 59, 59, 0); // å°æ¶é´è®¾ç½®ä¸º23:59:59.000 |
| | | return date; |
| | | }, |
| | | formatDateToYYYYMMDDHHMMSS(date) { |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, "0"); // æä»½è¡¥é¶ |
| | | const day = String(date.getDate()).padStart(2, "0"); // æ¥æè¡¥é¶ |
| | | const hours = String(date.getHours()).padStart(2, "0"); |
| | | const minutes = String(date.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(date.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day}`; |
| | | }, |
| | | 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.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | leavehospitaldistrictcodes: |
| | | this.topqueryParams.leavehospitaldistrictcodes, |
| | | sendstates: [2, 3], |
| | | leaveldeptcodes: this.topqueryParams.leaveldeptcodes, |
| | | }; |
| | | buidegetTasklist(obj).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | 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.jgvalue = response.rows[0].jg; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find( |
| | | (item) => item.value == value |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | // æ¥çé¨è¯é访详æ
|
| | | Referencequestion(row) { |
| | | this.previewVisible = true; |
| | | }, |
| | | // æ·»å å¼¹æ¡æç´¢ |
| | | remoteMethod(query) { |
| | | if (query !== "") { |
| | | this.loading = true; |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | this.options = this.list.filter((item) => { |
| | | return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; |
| | | }); |
| | | }, 200); |
| | | } else { |
| | | this.options = []; |
| | | } |
| | | }, |
| | | // å½±åéè®¿ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery(refresh) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.topqueryParams.pageNum = 1; |
| | | // 夿æ¯ä¸æ¯å·¥ä½å°å¿«æ·æ¥è¯¢ |
| | | if (this.errtype != 2) { |
| | | this.topqueryParams.startOutHospTime = this.dateRange[0]; |
| | | this.topqueryParams.endOutHospTime = this.dateRange[1]; |
| | | this.topqueryParams.startSendDateTime = this.dateRangefs[0]; |
| | | this.topqueryParams.endSendDateTime = this.dateRangefs[1]; |
| | | } |
| | | this.getList(refresh); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | if (type == 1) { |
| | | this.topqueryParams.leaveldeptcodes.push(code); |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push(code); |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | this.topqueryParams.searchscope = 2; |
| | | } else { |
| | | this.topqueryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.dateRangefs = []; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 2, |
| | | sort: 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) |
| | | serviceType: 18, |
| | | searchscope: 3, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(1); |
| | | }, |
| | | handleSelectionChange(rows) { |
| | | this.selectedRows = rows.map((row) => { |
| | | // åå§åè¯ååæ®µ |
| | | return { |
| | | ...row, |
| | | authenticity: row.authenticity || 0, |
| | | weekFinish: row.weekFinish || 0, |
| | | standard: row.standard || 0, |
| | | timeliness: row.timeliness || 0, |
| | | library: row.library || 0, |
| | | environment: row.environment || 0, |
| | | doctorSatisfaction: row.doctorSatisfaction || 0, |
| | | nurseSatisfaction: row.nurseSatisfaction || 0, |
| | | }; |
| | | }); |
| | | |
| | | if (this.selectedRows.length > 0) { |
| | | this.multiple = false; |
| | | } else { |
| | | this.multiple = true; |
| | | } |
| | | }, |
| | | |
| | | // è®¡ç®æ»å |
| | | calculateTotal(row) { |
| | | return ( |
| | | (row.authenticity || 0) + |
| | | (row.weekFinish || 0) + |
| | | (row.standard || 0) + |
| | | (row.timeliness || 0) + |
| | | (row.library || 0) + |
| | | (row.environment || 0) + |
| | | (row.doctorSatisfaction || 0) + |
| | | (row.nurseSatisfaction || 0) |
| | | ); |
| | | }, |
| | | |
| | | // ä¿åè¯å |
| | | saveScores() { |
| | | this.selectedRows.forEach((item) => { |
| | | item.createBy = null; |
| | | item.patName = item.sendname; |
| | | item.hospitaldistrictname = item.leavehospitaldistrictname; |
| | | }); |
| | | addsatisfaction(this.selectedRows).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("è¯åä¿åæå"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } else { |
| | | this.$modal.msgWarning("è¯åä¿å失败"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } |
| | | }); |
| | | // è¿éå¯ä»¥æ·»å ä¿åé»è¾ï¼å¦è°ç¨APIä¿åè¯å |
| | | }, |
| | | //å é¤é项 |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | //è§¦åæ°å¢è¾å
¥ |
| | | showInput() { |
| | | this.inputVisible = true; |
| | | this.$nextTick((_) => { |
| | | this.$refs.saveTagInput.$refs.input.focus(); |
| | | }); |
| | | }, |
| | | //è·å失å»ç¦ç¹è§¦å |
| | | handleInputConfirm() { |
| | | let inputValue = this.inputValue; |
| | | if (inputValue) { |
| | | this.dynamicTags.push(inputValue); |
| | | } |
| | | this.inputVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.$router.push({ |
| | | path: "/followvisit/QuestionnaireTask", |
| | | query: { |
| | | type: 2, |
| | | serviceType: 18, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
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) { |
| | | console.log(too, "too"); |
| | | |
| | | if (too == 1) { |
| | | this.topqueryParams.sendstate = 4; |
| | | this.topqueryParams.excep = null; |
| | | } else if (too == 2) { |
| | | this.topqueryParams.excep = 1; |
| | | this.topqueryParams.sendstate = null; |
| | | } else if (too == 3) { |
| | | this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | this.getEndOfDay() |
| | | ); |
| | | console.log(1111, this.topqueryParams.endSendDateTime); |
| | | |
| | | this.topqueryParams.excep = null; |
| | | this.topqueryParams.sendstate = 2; |
| | | this.topqueryParams.scopetype = null; |
| | | } else if (too == 4) { |
| | | this.topqueryParams.excep = null; |
| | | this.topqueryParams.sendstate = 5; |
| | | this.topqueryParams.scopetype = null; |
| | | } else if (too == 5) { |
| | | this.topqueryParams.excep = null; |
| | | this.topqueryParams.sendstate = null; |
| | | this.topqueryParams.scopetype = null; |
| | | } |
| | | this.handleQuery(1); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | 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"; |
| | | } else if (row.excep == 2) { |
| | | return "remind-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // åå»ºåæ¬¡é访æå¡ |
| | | setupsubtask() { |
| | | this.$refs["zcform"].validate((valid) => { |
| | | if (valid) { |
| | | this.zcform.remark = |
| | | this.zcform.remark + "ã" + this.getCurrentTime() + "ã"; |
| | | let form = structuredClone(this.zcform); |
| | | form.visitTime = 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; |
| | | } |
| | | ::v-deep.el-table .remind-row { |
| | | background: #fcf5aa; |
| | | } |
| | | |
| | | .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.jgleftvlue .el-card__body:hover { |
| | | background: #f7f075; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | |
| | | ::v-deep.ysfleftvlue .el-card__body { |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #0abc54; |
| | | 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: #324a9b; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | .purple-button { |
| | | background-color: #7e22ce; |
| | | border-color: #7e22ce; |
| | | color: #fff; |
| | | } |
| | | |
| | | .purple-button:hover, |
| | | .purple-button:focus { |
| | | background-color: #9333ea; |
| | | border-color: #9333ea; |
| | | } |
| | | |
| | | .purple-button:active { |
| | | background-color: #6b21a8; |
| | | border-color: #6b21a8; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .purple-button.is-disabled { |
| | | background-color: #d8b4fe; |
| | | border-color: #d8b4fe; |
| | | opacity: 1; /* ä¿æç¦ç¨ç¶æéæåº¦ */ |
| | | } |
| | | // é项å使¾å¤§ |
| | | // ::v-deep.el-checkbox-group { |
| | | // span { |
| | | // font-size: 24px; |
| | | // } |
| | | // } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <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-input v-model="topqueryParams.createBy"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="åºé¢æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
å§å" prop="sendname"> |
| | | <el-input |
| | | v-model="topqueryParams.sendname" |
| | | placeholder="请è¾å
¥æ£è
å§å" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æ£è
èå´" prop="status"> |
| | | <el-select |
| | | v-model="topqueryParams.searchscope" |
| | | placeholder="è¯·éæ©æ£è
èå´" |
| | | > |
| | | <el-option |
| | | v-for="item in source" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </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.excep" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptionsyj" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | 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-upload2" |
| | | size="medium" |
| | | @click="handleExport" |
| | | >导åº</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </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-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | height="560" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | width="180" |
| | | /> |
| | | <!-- <el-table-column label="åºå·" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | fixed |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | /> |
| | | <el-table-column |
| | | label="宣æç¶æ" |
| | | align="center" |
| | | key="sendstate" |
| | | prop="sendstate" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <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="danger" :disable-transitions="false">已宿</el-tag> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="ç»æç¶æ" |
| | | align="center" |
| | | key="excep" |
| | | prop="excep" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.sendstate == 6"> |
| | | <dict-tag |
| | | :options="dict.type.sys_yujing" |
| | | :value="scope.row.excep" |
| | | /> |
| | | </div> |
| | | <div v-else> |
| | | <span></span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <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="åºé¢æ¥æ" |
| | | 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="visitTime" |
| | | prop="visitTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.visitTime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <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="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | <el-table-column |
| | | label="主治å»ç" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | | label="ç
åå·" |
| | | align="center" |
| | | sortable |
| | | key="medicalRecordNo" |
| | | prop="medicalRecordNo" |
| | | width="120" |
| | | /> --> |
| | | |
| | | <!-- <el-table-column label="å¹´é¾" align="center" key="age" prop="age" /> --> |
| | | <!-- <el-table-column label="æ§å«"width="100" align="center" key="sex" prop="sex" /> --> |
| | | <!-- <el-table-column label="åºå·" align="center" key="badNo" prop="badNo" /> --> |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç
åº" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column |
| | | label="ç¾ç
åç§°" |
| | | align="center" |
| | | key="icdName" |
| | | prop="icdName" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="模æ¿åç§°" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | :show-overflow-tooltip="true" |
| | | width="200" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="宣æäººå" |
| | | align="center" |
| | | key="createBy" |
| | | prop="createBy" |
| | | width="120" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | | fixed="right" |
| | | 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 |
| | | fixed="right" |
| | | label="ä»»å¡ç»æè®°å½" |
| | | width="120" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tag |
| | | type="success" |
| | | v-if=" |
| | | scope.row.sendstate != 5 && |
| | | scope.row.sendstate != 4 && |
| | | scope.row.remark |
| | | " |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | 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="宣æç¶æ" |
| | | fixed="right" |
| | | align="center" |
| | | key="sendstate" |
| | | prop="sendstate" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="serviceState" :value="scope.row.sendstate" /> |
| | | </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="title" |
| | | :visible.sync="addalteropen" |
| | | width="700px" |
| | | append-to-body |
| | | > |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="ä»»å¡åç§°"> |
| | | <el-input v-model="form.name"></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="æå±ç§å®¤"> |
| | | <el-select v-model="form.region" placeholder="è¯·éæ©ç§å®¤"> |
| | | <el-option label="åºåä¸" value="shanghai"></el-option> |
| | | <el-option label="åºåäº" value="beijing"></el-option> |
| | | </el-select> </el-form-item></el-col |
| | | ></el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="宣æç±»å"> |
| | | <el-select v-model="form.region" placeholder="è¯·éæ©å®£æç±»å"> |
| | | <el-option label="åºåä¸" value="shanghai"></el-option> |
| | | <el-option label="åºåäº" value="beijing"></el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="æå¡æ¨¡å"> |
| | | <el-select v-model="form.region" placeholder="è¯·éæ©æ¨¡å"> |
| | | <el-option label="åºåä¸" value="shanghai"></el-option> |
| | | <el-option label="åºåäº" value="beijing"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="é¨è¯å®£æè¦æ±"> |
| | | <el-input type="textarea" v-model="form.desc"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">æ 交</el-button> |
| | | <el-button @click="cancel">è¿ å</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | title="åéæ¶é´è®¾ç½®" |
| | | :visible.sync="modificationVisible" |
| | | width="45%" |
| | | > |
| | | <div style="margin-bottom: 20px; color: red"> |
| | | ç»ä¸ä¿®æ¹å½å¤©æªåéç任塿¶é´ |
| | | </div> |
| | | |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="å鿥æ"> |
| | | <el-date-picker |
| | | v-model="ruleForm.value1" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´æ®µ" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="æä¸" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value2" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value3" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æä¸æ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value4" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="modificationVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="modificationVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | } from "@/api/system/user"; |
| | | import { getTaskservelist } from "@/api/AiCentre/index"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "Discharge", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "æ°å¢é¨è¯å®£æ", |
| | | // æ¯å¦æ¾ç¤ºä¿®æ¹ãæ·»å å¼¹åºå± |
| | | addalteropen: false, |
| | | // ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ |
| | | modificationVisible: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | ruleForm: { |
| | | type: [], |
| | | }, |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åº", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "å
¨é¨", |
| | | }, |
| | | ], |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | inputValue: "", |
| | | previewVisible: false, //é¨è¯å®£æé¢è§å¼¹æ¡ |
| | | radio: "", |
| | | radios: [], |
| | | previewtype: 2, //é¢è§é¨è¯å®£æç±»å |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导é¨è¯å®£ææ°é |
| | | //é¢è§é¨è¯å®£æä¿¡æ¯ |
| | | previewvalue: { |
| | | username: "è¿ä¸ªå»çå¯¹ä½ æä¹æ ·", |
| | | }, |
| | | value: [], |
| | | list: [], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "æå±æ£è
", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤æ£è
", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åºæ£è
", |
| | | }, |
| | | ], |
| | | loading: false, |
| | | states: [ |
| | | "Alabama", |
| | | "Alaska", |
| | | "Arizona", |
| | | "Arkansas", |
| | | "California", |
| | | "Colorado", |
| | | "Connecticut", |
| | | "Delaware", |
| | | "Florida", |
| | | "Georgia", |
| | | "Hawaii", |
| | | "Idaho", |
| | | "Illinois", |
| | | "Indiana", |
| | | "Iowa", |
| | | "Kansas", |
| | | "Kentucky", |
| | | "Louisiana", |
| | | "Maine", |
| | | "Maryland", |
| | | "Massachusetts", |
| | | "Michigan", |
| | | "Minnesota", |
| | | "Mississippi", |
| | | "Missouri", |
| | | "Montana", |
| | | "Nebraska", |
| | | "Nevada", |
| | | "New Hampshire", |
| | | "New Jersey", |
| | | "New Mexico", |
| | | "New York", |
| | | "North Carolina", |
| | | "North Dakota", |
| | | "Ohio", |
| | | "Oklahoma", |
| | | "Oregon", |
| | | "Pennsylvania", |
| | | "Rhode Island", |
| | | "South Carolina", |
| | | "South Dakota", |
| | | "Tennessee", |
| | | "Texas", |
| | | "Utah", |
| | | "Vermont", |
| | | "Virginia", |
| | | "Washington", |
| | | "West Virginia", |
| | | "Wisconsin", |
| | | "Wyoming", |
| | | ], |
| | | pickerOptions: { |
| | | disabledDate(time) { |
| | | return time.getTime() > Date.now(); |
| | | }, |
| | | shortcuts: [ |
| | | { |
| | | text: "ä»å¤©", |
| | | onClick(picker) { |
| | | picker.$emit("pick", new Date()); |
| | | }, |
| | | }, |
| | | { |
| | | text: "æ¨å¤©", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "ä¸å¨å", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | // 表ååæ° |
| | | form: { |
| | | phonenumber: "", |
| | | totagid: "", |
| | | types: "", |
| | | nickName: "", |
| | | qystatus: "", |
| | | btstatus: "", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serviceType: 17, |
| | | searchscope: 3, |
| | | sendstate: 2, |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | propss: { multiple: true }, |
| | | options: [], |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "表åå·²é¢å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "å¾
é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "表åå·²åé", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "䏿§è¡", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "åé失败", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "已宿", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "è¶
æ¶", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | serviceState: [], |
| | | // è¡¨åæ ¡éª |
| | | rules: {}, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.serviceState = store.getters.serviceState; |
| | | 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.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | activated() { |
| | | this.getList(); |
| | | }, |
| | | // æç´¢ |
| | | mounted() { |
| | | this.list = this.states.map((item) => { |
| | | return { value: `value:${item}`, label: `label:${item}` }; |
| | | }); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢é¨è¯å®£ææå¡å表 */ |
| | | getList() { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.loading = true; |
| | | console.log(this.topqueryParams.leavehospitaldistrictcodes, "123"); |
| | | console.log(this.topqueryParams.leaveldeptcodes, "344"); |
| | | |
| | | if ( |
| | | this.topqueryParams.leavehospitaldistrictcodes[0] && |
| | | this.topqueryParams.leaveldeptcodes[0] |
| | | ) { |
| | | this.topqueryParams.deptOrDistrict = 2; |
| | | } else { |
| | | this.topqueryParams.deptOrDistrict = 1; |
| | | } |
| | | console.log(55); |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.userList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // æ¥çé¨è¯å®£æè¯¦æ
|
| | | 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 = []; |
| | | } |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | if (type == 1) { |
| | | this.topqueryParams.leaveldeptcodes.push(code); |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push(code); |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | this.topqueryParams.searchscope = 2; |
| | | } else { |
| | | this.topqueryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | // é¨è¯å®£æç¶æä¿®æ¹ |
| | | 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"; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.addalteropen = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | 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() { |
| | | if (this.topqueryParams.searchscope == 1) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = null; |
| | | } else if (this.topqueryParams.searchscope == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.topqueryParams.leaveldeptcodes = null; |
| | | } else { |
| | | 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.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serviceType: 17, |
| | | sendstate: 2, |
| | | }; |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | 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/Missioncreation", |
| | | query: { |
| | | type: 3, |
| | | serviceType: 17, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // å
¨é¨åæ¢ |
| | | AllStop() { |
| | | this.$modal |
| | | .confirm("æ¯å¦åæ¢å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("忢æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgWarning("忢æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å
¨é¨å¼å§ |
| | | AllStarted() { |
| | | this.$modal |
| | | .confirm("æ¯å¦å¼å¯å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("å¼å¯æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å¼å¯æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 设置åéæ¶é´ |
| | | Sendtimesetting() { |
| | | this.modificationVisible = 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() { |
| | | const originalPageNum = this.topqueryParams.pageNum; |
| | | const originalPageSize = this.topqueryParams.pageSize; |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.download( |
| | | "smartor/serviceSubtask/patItemExport", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ).finally(() => { |
| | | // 导åºåæ¢å¤å页忰 |
| | | this.topqueryParams.pageNum = originalPageNum; |
| | | this.topqueryParams.pageSize = originalPageSize; |
| | | this.getList() |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </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); |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | .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: #dd302a; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-zx { |
| | | background: #4fabe9; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | |
| | | // é项å使¾å¤§ |
| | | // ::v-deep.el-checkbox-group { |
| | | // span { |
| | | // font-size: 24px; |
| | | // } |
| | | // } |
| | | </style> |
| | |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | const originalPageNum = this.topqueryParams.pageNum; |
| | | const originalPageSize = this.topqueryParams.pageSize; |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.download( |
| | |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx`, |
| | | ); |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ).finally(() => { |
| | | // 导åºåæ¢å¤å页忰 |
| | | this.topqueryParams.pageNum = originalPageNum; |
| | | this.topqueryParams.pageSize = originalPageSize; |
| | | this.getList() |
| | | }); |
| | | }, |
| | | // å¼å¸¸å渲æ |
| | | tableRowClassName({ row, rowIndex }) { |
| | |
| | | <div class="header-actions"> |
| | | <!-- åºç¡æä½æé®ç» --> |
| | | <div class="action-group basic-actions"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="alterpatient('')" |
| | | > |
| | | <el-button type="primary" plain @click="alterpatient('')"> |
| | | ä¿ååºç¡ä¿¡æ¯ |
| | | </el-button> |
| | | |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-form-item label="ä»»å¡å¤çç¶æ"> |
| | | <el-select |
| | | v-model="serviceStates" |
| | | placeholder="è¯·éæ©ç¶æ" |
| | | clearable |
| | | style="width: 150px; margin-right: 10px" |
| | | > |
| | | <el-option |
| | | v-for="item in serviceState" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- é访å
容/è®°å½ --> |
| | | <el-form-item |
| | | :label="orgname == '丽水å¸ä¸å»é¢' ? 'é访å
容' : 'é访记å½'" |
| | | > |
| | | <el-input type="textarea" v-model="form.remark"></el-input> |
| | | <!-- å¿«æ·çè¯æ ç¾ --> |
| | | <div style="margin-bottom: 8px"> |
| | | <el-tag |
| | | v-for="(item, index) in dict.type.quickfollow_up" |
| | | :key="index" |
| | | style="margin-right: 8px; cursor: pointer" |
| | | @click="insertText(item.value)" |
| | | > |
| | | {{ item.value }} |
| | | </el-tag> |
| | | </div> |
| | | <!-- ææ¬å --> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="4" |
| | | v-model="form.remark" |
| | | ref="textareaRef" |
| | | placeholder="å¯ç¹å»ä¸æ¹å¿«æ·æ ç¾ææå¨è¾å
¥" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- é访æ
åµ --> |
| | |
| | | }, |
| | | }, |
| | | }, |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | dicts: [ |
| | | "sys_normal_disable", |
| | | "quickfollow_up", |
| | | "sys_user_sex", |
| | | "sys_yujing", |
| | | "sys_suggest", |
| | | ], |
| | | data() { |
| | | const validatePhone = (rule, value, callback) => { |
| | | if (!value) { |
| | |
| | | isEndingCall: false, |
| | | CaldialogVisible: false, |
| | | currentCall: null, // å½åéè¯å¯¹è±¡ |
| | | serviceStates: 6, |
| | | serviceState: [ |
| | | { |
| | | value: 2, |
| | | label: "å¾
é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "表åå·²åé", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "åé失败", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "已宿", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "䏿§è¡", |
| | | }, |
| | | ], |
| | | // æ°å¢åè½æ°æ® |
| | | showPatientInfo: true, |
| | | showContinuationCareBtn: false, // æ§å¶å»¶ç»æ¤çæé®æ¾ç¤º |
| | |
| | | label: "å
¶ä»", |
| | | value: "7", |
| | | }, |
| | | ], |
| | | quickContents: [ |
| | | "ç
æ
稳å®ï¼ç»§ç»å½åæ²»ç", |
| | | "æ£è
å·²æ»äº¡", |
| | | "æ£è
ä¸éè¦é访", |
| | | "ææ¶æè¯ï¼æ³¨æä¼æ¯", |
| | | "饮飿¸
æ·¡ï¼å¿è¾è¾£", |
| | | "é¢çº¦ä¸æ¬¡å¤è¯", |
| | | ], |
| | | tableDatatop: [], //é¢ç®è¡¨ |
| | | voiceDatatop: [], //é¢ç®è¡¨ |
| | |
| | | this.Voicetype = this.$route.query.Voicetype; |
| | | this.visitCount = this.$route.query.visitCount; |
| | | this.serviceType = this.$route.query.serviceType; |
| | | |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | if (this.orgname == "çç«åå¾·ç¿ èé¢åº") { |
| | | this.showContinuationCareBtn = true; |
| | |
| | | return "yellow-star"; // è¦å - é»è²æå· |
| | | } |
| | | return ""; // æ£å¸¸ - æ ç¹æ®æ ·å¼ |
| | | }, |
| | | insertText(text) { |
| | | const textarea = this.$refs.textareaRef; |
| | | console.log(textarea); |
| | | |
| | | if (!textarea) return; |
| | | |
| | | const target = textarea.$el.querySelector("textarea"); |
| | | const start = target.selectionStart; |
| | | const end = target.selectionEnd; |
| | | const original = this.form.remark; |
| | | console.log(original, 11); |
| | | |
| | | // å¨å
æ 夿å
¥ï¼å¹¶æ´æ°å
æ ä½ç½® |
| | | this.form.remark = |
| | | original.substring(0, start) + text + original.substring(end); |
| | | |
| | | // ä¿æç¦ç¹å¹¶ç§»å¨å
æ å°æå
¥å
容å |
| | | this.$nextTick(() => { |
| | | target.focus(); |
| | | const newPos = start + text.length; |
| | | target.setSelectionRange(newPos, newPos); |
| | | }); |
| | | }, |
| | | // è·åé®å·æ°æ® |
| | | getsearchrResults(id) { |
| | |
| | | savequestiondetail(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æå¡ä¿åæå"); |
| | | this.Editsingletasksonyic(6); |
| | | this.Editsingletasksonyic(this.serviceStates); |
| | | const orgName = localStorage.getItem("orgname"); |
| | | |
| | | if (this.form.isVisitAgain != 1 || orgName == "丽水å¸ä¸å»é¢") { |
| | |
| | | this.form = res.rows[0].serviceSubtaskList.find( |
| | | (item) => item.id == this.id |
| | | ); |
| | | |
| | | this.form.remark = this.form.remark || ""; |
| | | this.logsheetlist = res.rows[0].serviceSubtaskList; |
| | | this.templateid = this.form.templateid; |
| | | this.selectedTag = this.form.excep; |
| | |
| | | previewtype: 2, //é¢è§å½±åé访类å |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导影åé访æ°é |
| | | orgname: null, |
| | | //é¢è§å½±åéè®¿ä¿¡æ¯ |
| | | previewvalue: { |
| | | username: "è¿ä¸ªå»çå¯¹ä½ æä¹æ ·", |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type: 2, |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | userName: undefined, |
| | | tagid: undefined, |
| | | topic: undefined, |
| | |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | // this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | // (obj) => obj.deptCode |
| | | // ); |
| | | // this.topqueryParams.leavehospitaldistrictcodes = |
| | | // store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | if (this.orgname == "åå大å¦éå±ç¬¬ä¸å»é¢") { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.tasktopic = this.$route.query.tasktopic |
| | | ? this.$route.query.tasktopic |
| | | : this.tasktopic; |
| | |
| | | this.tasktopic == 1 || |
| | | this.tasktopic == 7 || |
| | | this.tasktopic == 5 || |
| | | this.tasktopic == 18 || |
| | | this.tasktopic == 6 |
| | | ) { |
| | | if (!this.topqueryParams.type) this.topqueryParams.type = "2"; |
| | |
| | | }, |
| | | ]; |
| | | // this.topqueryParams.type = 2; |
| | | } else if (this.tasktopic == 4 || this.tasktopic == 8) { |
| | | } else if ( |
| | | this.tasktopic == 4 || |
| | | this.tasktopic == 8 || |
| | | this.tasktopic == 17 |
| | | ) { |
| | | if (!this.topqueryParams.type) this.topqueryParams.type = "3"; |
| | | this.longtermlist = [ |
| | | { |
| | |
| | | <template> |
| | | <div class="educationmanagement"> |
| | | |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | |
| | | }); |
| | | }, |
| | | Newcategory(){ |
| | | this.classifyform= {}, //ç±»å«è¡¨å |
| | | this.radio = "主åç±»"; |
| | | this.dialogFormVisible = true |
| | | (this.classifyform = {}), //ç±»å«è¡¨å |
| | | (this.radio = "主åç±»"); |
| | | this.dialogFormVisible = true; |
| | | this.zifon = true; |
| | | this.zufon = true; |
| | | }, |
| | |
| | | .then((response) => { |
| | | console.log(response.data, "æ°æ®"); // è¾åºè·åå°çæä»¶å
容 |
| | | this.htmlRichText = response.data; |
| | | // this.htmlRichText = this.addStyleToImages(this.htmlRichText); |
| | | console.log(this.htmlRichText); |
| | | |
| | | this.htmlRichText = this.addStyleToImages(this.htmlRichText); |
| | | // console.log(this.htmlRichText); |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("è·å坿æ¬å¤±è´¥"); |
| | |
| | | }); |
| | | }, |
| | | addStyleToImages(html) { |
| | | return html.replace( |
| | | if (!html) return html; |
| | | |
| | | // 1. å
ä¿®å¤è·¯å¾ |
| | | let processedHtml = html.replace( |
| | | /\/aifollowup\/aifollowup\//g, |
| | | "/aifollowup/" |
| | | ); |
| | | |
| | | // 2. åä¿®å¤æ ·å¼ |
| | | processedHtml = processedHtml.replace( |
| | | /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g, |
| | | '<img$1style="width:100%;height:auto;"$3>' |
| | | ); |
| | | |
| | | return processedHtml; |
| | | }, |
| | | |
| | | /** å é¤æé®æä½ */ |
| | |
| | | this.drawer = true; |
| | | }); |
| | | }, |
| | | // categoryidChange(id) { |
| | | // // éåææåç»ï¼å¨æ¯ä¸ªåç»ç svyLibScriptCategoryList 䏿¥æ¾ |
| | | // let targetOption = null; |
| | | // for (const group of this.classifylist) { |
| | | // targetOption = group.svyLibScriptCategoryList.find(item => item.id == id); |
| | | // if (targetOption) break; |
| | | // } |
| | | categoryidChange(id) { |
| | | // éåææåç»ï¼å¨æ¯ä¸ªåç»ç svyLibScriptCategoryList 䏿¥æ¾ |
| | | let targetOption = null; |
| | | for (const group of this.classifylist) { |
| | | targetOption = group.svyLibScriptCategoryList.find(item => item.id == id); |
| | | if (targetOption) break; |
| | | } |
| | | |
| | | // if (targetOption) { |
| | | // console.log('éä¸çé项:', targetOption); |
| | | // // 注æï¼è¿é targetOption.name æ¯é项åï¼å¦âä½é¢æ»¡æåº¦è°æ¥â |
| | | // if (targetOption.name.includes('ä½é¢')) { |
| | | // this.topicobj.type = "zymyd"; |
| | | // } else if (targetOption.name.includes('é¨è¯')) { |
| | | // this.topicobj.type = "mzmyd"; |
| | | // } else if (targetOption.name.includes('åºé¢')) { |
| | | // this.topicobj.type = "cymyd"; |
| | | // } else if (targetOption.name.includes('常ç¨')) { |
| | | // this.topicobj.type = "cymyd"; // 注æï¼è¿éåâåºé¢âéå¤äºï¼ç¡®è®¤æ¯å¦éåºå |
| | | // } |
| | | // } |
| | | // }, |
| | | if (targetOption) { |
| | | console.log('éä¸çé项:', targetOption); |
| | | // 注æï¼è¿é targetOption.name æ¯é项åï¼å¦âä½é¢æ»¡æåº¦è°æ¥â |
| | | if (targetOption.name.includes('ä½é¢')) { |
| | | this.topicobj.type = "zymyd"; |
| | | } else if (targetOption.name.includes('é¨è¯')) { |
| | | this.topicobj.type = "mzmyd"; |
| | | } else if (targetOption.name.includes('åºé¢')) { |
| | | this.topicobj.type = "cymyd"; |
| | | } else if (targetOption.name.includes('常ç¨')) { |
| | | this.topicobj.type = "cymyd"; // 注æï¼è¿éåâåºé¢âéå¤äºï¼ç¡®è®¤æ¯å¦éåºå |
| | | } |
| | | } |
| | | }, |
| | | // æ°å¢æä¿®æ¹è¯¦æ
|
| | | compileissue() { |
| | | this.$refs["topicobj"].validate((valid) => { |
| | |
| | | {{ item.sort }}ã[å¤é]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="qremark"> |
| | | <el-checkbox-group v-model="item.qremark"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.svyLibTemplateTargetoptions" |
| | | :key="index" |
| | |
| | | goQRCode(row) { |
| | | getQtemplateobj({ svyid: row.svyid }).then((res) => { |
| | | this.topicform = res.rows[0]; |
| | | if (this.topicform.svyTemplateLibScripts) { |
| | | this.topicform.svyTemplateLibScripts.forEach(item=>{ |
| | | item.qremark=[] |
| | | }) |
| | | } |
| | | console.log(this.topicform); |
| | | this.topicVisible = true; |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="login"> |
| | | <el-form |
| | | ref="loginForm" |
| | | :model="loginForm" |
| | | :rules="loginRules" |
| | | class="login-form" |
| | | > |
| | | <h3 class="title">æºæ
§é访系ç»</h3> |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | | v-model="loginForm.username" |
| | | type="text" |
| | | auto-complete="off" |
| | | placeholder="è´¦å·" |
| | | > |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="user" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | | <el-input |
| | | v-model="loginForm.password" |
| | | type="password" |
| | | auto-complete="off" |
| | | placeholder="å¯ç " |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="password" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 丽===================水 --> |
| | | <el-form-item prop="orgid"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="loginForm.orgid" |
| | | placeholder="è¯·éæ©é¢åº" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | <i slot="prefix" class="el-icon-mobile"></i> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item prop="code" v-if="captchaEnabled"> |
| | | <el-input |
| | | v-model="loginForm.code" |
| | | auto-complete="off" |
| | | placeholder="éªè¯ç " |
| | | style="width: 63%" |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="validCode" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | <div class="login-code"> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img" /> |
| | | </div> |
| | | </el-form-item> --> |
| | | <el-checkbox |
| | | v-model="loginForm.rememberMe" |
| | | style="margin: 0px 0px 25px 0px" |
| | | >è®°ä½å¯ç </el-checkbox |
| | | > |
| | | <el-form-item style="width: 100%"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="medium" |
| | | type="primary" |
| | | style="width: 100%" |
| | | @click.native.prevent="handleLogin" |
| | | > |
| | | <span v-if="!loading">ç» å½</span> |
| | | <span v-else>ç» å½ ä¸...</span> |
| | | </el-button> |
| | | <div style="float: right" v-if="register"> |
| | | <router-link class="link-type" :to="'/register'" |
| | | >ç«å³æ³¨å1</router-link |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- åºé¨ --> |
| | | <!-- <div class="el-login-footer"> |
| | | <span style="color: #568FBD; font-size: 25px;">Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getCodeImg } from "@/api/login"; |
| | | import Cookies from "js-cookie"; |
| | | import { encrypt, decrypt } from "@/utils/jsencrypt"; |
| | | import { getorganization } from "@/api/AiCentre/index"; |
| | | |
| | | export default { |
| | | name: "Login", |
| | | data() { |
| | | return { |
| | | codeUrl: "", |
| | | loginForm: { |
| | | username: "", |
| | | password: "", |
| | | rememberMe: false, |
| | | code: "", |
| | | orgid: "H41010500003", |
| | | }, |
| | | options: [], |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" }, |
| | | ], |
| | | password: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " }, |
| | | ], |
| | | orgid: [{ required: true, trigger: "blur", message: "è¯·éæ©é¢åº" }], |
| | | }, |
| | | loading: false, |
| | | // éªè¯ç å¼å
³ |
| | | captchaEnabled: true, |
| | | // 注åå¼å
³ |
| | | register: false, |
| | | redirect: undefined, |
| | | }; |
| | | }, |
| | | watch: { |
| | | $route: { |
| | | handler: function (route) { |
| | | this.redirect = route.query && route.query.redirect; |
| | | }, |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getorganization(); |
| | | this.getCode(); |
| | | this.getCookie(); |
| | | // if (localStorage.getItem('orgid')) { |
| | | // this.loginForm.orgid = localStorage.getItem('orgid'); |
| | | // } |
| | | }, |
| | | methods: { |
| | | getCode() { |
| | | getCodeImg().then((res) => { |
| | | this.captchaEnabled = |
| | | res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | if (this.captchaEnabled) { |
| | | this.codeUrl = "data:image/gif;base64," + res.img; |
| | | this.loginForm.uuid = res.uuid; |
| | | } |
| | | }); |
| | | }, |
| | | getorganization() { |
| | | getorganization({ pageSize: 30 }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.options = res.rows.map((item) => ({ |
| | | value: item.orgid, |
| | | label: item.organizationName, |
| | | campusid: item.organizationID, |
| | | })); |
| | | } |
| | | }); |
| | | }, |
| | | getCookie() { |
| | | const username = Cookies.get("username"); |
| | | const password = Cookies.get("password"); |
| | | const rememberMe = Cookies.get("rememberMe"); |
| | | this.loginForm = { |
| | | username: username === undefined ? this.loginForm.username : username, |
| | | password: |
| | | password === undefined ? this.loginForm.password : decrypt(password), |
| | | rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), |
| | | }; |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | |
| | | if (this.loginForm.rememberMe) { |
| | | Cookies.set("username", this.loginForm.username, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { |
| | | expires: 30, |
| | | }); |
| | | Cookies.set("rememberMe", this.loginForm.rememberMe, { |
| | | expires: 30, |
| | | }); |
| | | } else { |
| | | Cookies.remove("username"); |
| | | Cookies.remove("password"); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | |
| | | // å¨æè®¾ç½® campusid åæ° |
| | | const selectedOrg = this.options.find( |
| | | (item) => item.value === this.loginForm.orgid |
| | | ); |
| | | console.log(selectedOrg,'selectedOrg'); |
| | | |
| | | this.loginForm.campusid = selectedOrg.campusid || 1; |
| | | // å¸ä¸å¤ç----------------- |
| | | // if (selectedOrg) { |
| | | // if (selectedOrg.label.includes("æ¹æ»¨")) { |
| | | // this.loginForm.campusid = 1; |
| | | // } else if (selectedOrg.label.includes("å´å±±")) { |
| | | // this.loginForm.campusid = 2; |
| | | // } else { |
| | | // this.loginForm.campusid = 1; // é»è®¤å¼æå
¶ä»å¤ç |
| | | // } |
| | | // } |
| | | // -------------------------------- |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then((res) => { |
| | | if (this.loginForm.username == "admin") { |
| | | this.$router.push({ path: "/index" }).catch(() => {}); |
| | | } else { |
| | | this.$router |
| | | .push({ path: "/followvisit/discharge" }) |
| | | .catch(() => {}); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style rel="stylesheet/scss" lang="scss"> |
| | | .login { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 100%; |
| | | overflow: hidden !important; |
| | | background-position: center center; |
| | | |
| | | /* èæ¯å¾ä¸å¹³éº */ |
| | | background-repeat: no-repeat; |
| | | /* å½å
容é«åº¦å¤§äºå¾çé«åº¦æ¶ï¼èæ¯å¾åçä½ç½®ç¸å¯¹äºviewportåºå® */ |
| | | background-attachment: fixed; |
| | | /* è®©èæ¯å¾åºäºå®¹å¨å¤§å°ä¼¸ç¼© */ |
| | | background-size: cover; |
| | | /* è®¾ç½®èæ¯é¢è²ï¼èæ¯å¾å è½½è¿ç¨ä¸ä¼æ¾ç¤ºèæ¯è² */ |
| | | background-color: #464646; |
| | | background-image: url("../assets/images/login-background.jpg"); |
| | | background-size: cover; |
| | | } |
| | | .title { |
| | | margin: 0px auto 30px auto; |
| | | text-align: center; |
| | | color: #707070; |
| | | } |
| | | |
| | | .login-form { |
| | | border-radius: 6px; |
| | | background: #ffffff; |
| | | width: 400px; |
| | | padding: 25px 25px 5px 25px; |
| | | .el-input { |
| | | height: 38px; |
| | | input { |
| | | height: 38px; |
| | | } |
| | | } |
| | | .input-icon { |
| | | height: 39px; |
| | | width: 14px; |
| | | margin-left: 2px; |
| | | } |
| | | } |
| | | .login-tip { |
| | | font-size: 13px; |
| | | text-align: center; |
| | | color: #bfbfbf; |
| | | } |
| | | .login-code { |
| | | width: 33%; |
| | | height: 38px; |
| | | float: right; |
| | | img { |
| | | cursor: pointer; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | .el-login-footer { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | position: fixed; |
| | | bottom: 0; |
| | | width: 100%; |
| | | text-align: center; |
| | | color: #fff; |
| | | font-family: Arial; |
| | | font-size: 12px; |
| | | letter-spacing: 1px; |
| | | } |
| | | |
| | | .login-code-img { |
| | | height: 38px; |
| | | } |
| | | </style> |
| | |
| | | |
| | | |
| | | <template> |
| | | <div class="login"> |
| | | <el-form |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 丽===================水 --> |
| | | <el-form-item prop="orgid"> |
| | | <el-form-item prop="campusid"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="loginForm.orgid" |
| | | v-model="loginForm.campusid" |
| | | placeholder="è¯·éæ©é¢åº" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :value="item.campusid" |
| | | > |
| | | </el-option> |
| | | <i slot="prefix" class="el-icon-mobile"></i> |
| | |
| | | |
| | | // å¨æè®¾ç½® campusid åæ° |
| | | const selectedOrg = this.options.find( |
| | | (item) => item.value === this.loginForm.orgid |
| | | (item) => item.campusid === this.loginForm.campusid |
| | | ); |
| | | console.log(selectedOrg,'selectedOrg'); |
| | | |
| | | this.loginForm.campusid = selectedOrg.campusid || 1; |
| | | this.loginForm.orgid = selectedOrg.value || 1; |
| | | this.loginForm.orgname = selectedOrg.label || ''; |
| | | // å¸ä¸å¤ç----------------- |
| | | // if (selectedOrg) { |
| | | // if (selectedOrg.label.includes("æ¹æ»¨")) { |
| | |
| | | |
| | | }, |
| | | addStyleToImages(html) { |
| | | return html.replace( |
| | | if (!html) return html; |
| | | |
| | | // 1. å
ä¿®å¤è·¯å¾ |
| | | let processedHtml = html.replace( |
| | | /\/aifollowup\/aifollowup\//g, |
| | | "/aifollowup/" |
| | | ); |
| | | |
| | | // 2. åä¿®å¤æ ·å¼ |
| | | processedHtml = processedHtml.replace( |
| | | /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g, |
| | | '<img$1style="width:100%;height:auto;"$3>' |
| | | ); |
| | | |
| | | return processedHtml; |
| | | }, |
| | | // å å¯å½æ° |
| | | encrypt(txt) { |
| | |
| | | <div class="preview-left"> |
| | | <div class="toptitle"> |
| | | <div class="title"> |
| | | {{ |
| | | taskname |
| | | ? taskname |
| | | : "廿¤ç¥è¯å®£æ" |
| | | }} |
| | | {{ taskname ? taskname : "廿¤ç¥è¯å®£æ" }} |
| | | </div> |
| | | <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> |
| | | {{ |
| | |
| | | ); |
| | | }, |
| | | addStyleToImages(html) { |
| | | return html.replace( |
| | | if (!html) return html; |
| | | |
| | | // 1. å
ä¿®å¤è·¯å¾ |
| | | let processedHtml = html.replace( |
| | | /\/aifollowup\/aifollowup\//g, |
| | | "/aifollowup/" |
| | | ); |
| | | |
| | | // 2. åä¿®å¤æ ·å¼ |
| | | processedHtml = processedHtml.replace( |
| | | /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g, |
| | | '<img$1style="width:100%;height:auto;"$3>' |
| | | ); |
| | | |
| | | return processedHtml; |
| | | }, |
| | | // å å¯å½æ° |
| | | encrypt(txt) { |
| | |
| | | questionList: [], |
| | | uploadingData: [], |
| | | deptcodesWards: [], //ç§å®¤æ°æ® |
| | | deptlist: [], |
| | | hosplist: [], |
| | | leavehospitaldistrictcodes: [], //ç
åºæ°æ® |
| | | operationcodes: [], //ææ¯æ°æ® |
| | | illnesscodes: [], //ç¾ç
æ°æ® |
| | |
| | | "ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼è§çè¿ä»½å®£æèµè®¯ã", |
| | | jsy: "çæ´»ä¸è¦å³é¸ç»åï¼æ³¨æä¼æ¯åè¥å
»ï¼éå½é»ç¼ï¼æçéé
ï¼ä¿æå¿æ
èç
ï¼å®æå¤è¯ã飿¬æ¬¡å®£æå
容就å°è¿éï¼ç¥æ¨èº«ä½å¥åº·ï¼", |
| | | }, |
| | | queryParamsdept: { |
| | | tempid: "", |
| | | type: 2, |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | | value: "4", |
| | |
| | | this.currenttype = this.$route.query.type; |
| | | this.title = "宣æå
容å表"; |
| | | this.tableLabel = this.tableLabelxj; |
| | | if (this.form.serviceType == 4) { |
| | | if (this.form.serviceType == 4 || this.form.serviceType == 17) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "2", |
| | |
| | | }); |
| | | }, |
| | | addStyleToImages(html) { |
| | | return html.replace( |
| | | if (!html) return html; |
| | | |
| | | // 1. å
ä¿®å¤è·¯å¾ |
| | | let processedHtml = html.replace( |
| | | /\/aifollowup\/aifollowup\//g, |
| | | "/aifollowup/" |
| | | ); |
| | | |
| | | // 2. åä¿®å¤æ ·å¼ |
| | | processedHtml = processedHtml.replace( |
| | | /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g, |
| | | '<img$1style="width:100%;height:auto;"$3>' |
| | | ); |
| | | |
| | | return processedHtml; |
| | | }, |
| | | |
| | | // åä»»å¡äºçº§å¼¹æ¡ |
| | |
| | | this.time1 = this.form.showTimeMorn.split(","); |
| | | } |
| | | } |
| | | if (this.form.taskid) { |
| | | this.listDept(); |
| | | } |
| | | if (this.form.showTimeNoon) |
| | | this.time2 = this.form.showTimeNoon.split(","); |
| | | if (this.form.showTimeNight) |
| | |
| | | this.leavehospitaldistrictcodes = []; |
| | | this.deptcodesWards = []; |
| | | this.queryParamsdept.taskId = this.form.taskid; |
| | | console.log(1, this.queryParamsdept); |
| | | |
| | | taskdepthospgetsonlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | if (item.deptType == 1) { |
| | | console.log(1); |
| | | |
| | | this.deptlist.push(item); |
| | | this.deptcodesWards.push(item.deptCode); |
| | | } else if (item.deptType == 2) { |
| | | console.log(2, this.hosplist); |
| | | |
| | | this.hosplist.push(item); |
| | | this.leavehospitaldistrictcodes.push(item.deptCode); |
| | | } |
| | |
| | | this.form.serviceType == 3 || |
| | | this.form.serviceType == 5 || |
| | | this.form.serviceType == 16 || |
| | | this.form.serviceType == 18 || |
| | | this.form.serviceType == 4 |
| | | ) { |
| | | this.checkboxlist = [ |
| | |
| | | ]; |
| | | } else if ( |
| | | this.form.serviceType == 2 || |
| | | this.form.serviceType == 18 || |
| | | this.form.serviceType == 3 || |
| | | this.form.serviceType == 16 || |
| | | this.form.serviceType == 4 |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="çä¿¡" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="çä¿¡" align="center" key="sms" prop="sms"> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="çä¿¡" align="center" key="sms" prop="sms"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | |
| | | return isNaN(num) ? null : num; |
| | | }, |
| | | |
| | | selectTimelyRate(row, dateRange) { |
| | | console.log(row, dateRange, 88); |
| | | selectTimelyRate(row, queryParams) { |
| | | console.log(row, queryParams, 88); |
| | | |
| | | // const params = { |
| | | // ...this.patientqueryParams, |
| | |
| | | // endtime: this.parseTime(dateRange[1]), |
| | | // deptcode: row.deptcode, |
| | | // }; |
| | | this.patientqueryParams.starttime = this.parseTime(dateRange[0]); |
| | | this.patientqueryParams.endtime = this.parseTime(dateRange[1]); |
| | | this.patientqueryParams.starttime = this.parseTime( |
| | | queryParams.dateRange[0] |
| | | ); |
| | | this.patientqueryParams.endtime = this.parseTime( |
| | | queryParams.dateRange[1] |
| | | ); |
| | | this.patientqueryParams.deptcode = row.deptcode; |
| | | console.log(1); |
| | | |
| | | this.patientqueryParams.serviceTypes = queryParams.serviceType |
| | | ? queryParams.serviceType.join(",") |
| | | : null; |
| | | console.log(2); |
| | | |
| | | return selectTimelyRate(this.patientqueryParams); |
| | | }, |
| | | selectTimelyRates(dateRange) { |
| | |
| | | <el-table-column label="é访æå" align="center" key="followUpSuccessAgain" prop="followUpSuccessAgain" /> |
| | | <el-table-column label="é访失败" align="center" key="followUpFailAgain" prop="followUpFailAgain" /> |
| | | <el-table-column label="é访ç" align="center" width="120" key="followUpRateAgain" prop="followUpRateAgain" /> |
| | | <el-table-column label="人工" align="center" key="manualAgain" prop="manualAgain" /> |
| | | <el-table-column label="çä¿¡" align="center" key="smsAgain" prop="smsAgain" /> |
| | | <el-table-column label="微信" align="center" key="weChatAgain" prop="weChatAgain" /> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="人工" align="center" key="manualAgain" prop="manualAgain" /> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="çä¿¡" align="center" key="smsAgain" prop="smsAgain" /> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="微信" align="center" key="weChatAgain" prop="weChatAgain" /> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="é访ç" align="center" width="120" key="followUpRateAgain" prop="followUpRateAgain" /> |
| | | <el-table-column label="人工" align="center" key="manualAgain" prop="manualAgain"> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="人工" align="center" key="manualAgain" prop="manualAgain"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'manualAgainInfo', '忬¡é访人工é访å表')"> |
| | | <span class="button-zx">{{ scope.row.manualAgain }}</span> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="çä¿¡" align="center" key="smsAgain" prop="smsAgain"> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="çä¿¡" align="center" key="smsAgain" prop="smsAgain"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'smsAgainInfo', '忬¡é访çä¿¡é访å表')"> |
| | | <span class="button-zx">{{ scope.row.smsAgain }}</span> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="微信" align="center" key="weChatAgain" prop="weChatAgain"> |
| | | <el-table-column v-if="orgname != '丽水å¸ä¸å»é¢'" label="微信" align="center" key="weChatAgain" prop="weChatAgain"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'weChatAgainInfo', '忬¡é访微信é访å表')"> |
| | | <span class="button-zx">{{ scope.row.weChatAgain }}</span> |
| | |
| | | this.SeedetailsVisible = true |
| | | this.Seedloading = true |
| | | |
| | | this.$refs.firstFollowUp.selectTimelyRate(row, this.queryParams.dateRange) |
| | | this.$refs.firstFollowUp.selectTimelyRate(row, this.queryParams) |
| | | .then(response => { |
| | | this.logsheetlist = response.data.detail |
| | | this.patienttotal = response.data.total |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">æ£è
èå´</div> |
| | | </div> |
| | | |
| | | <div class="bottom-fl"> |
| | | <el-tabs |
| | | tab-position="right" |
| | | v-model="activeName" |
| | | @tab-click="handleClick" |
| | | > |
| | | <el-tab-pane label="å
¨é¨" name="first"></el-tab-pane> |
| | | <el-tab-pane label="ä½é¢" name="bhospitalized"></el-tab-pane> |
| | | <el-tab-pane label="å¨é¢" name="Inhospital"></el-tab-pane> |
| | | <el-tab-pane label="é¨è¯" name="outpatient"></el-tab-pane> |
| | | <el-tab-pane label="使£" name="physical"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"> |
| | | <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> |
| | | <el-tab-pane name="Local"> |
| | | <span class="mulsz" slot="label">æåºé¢ç
åºç»è®¡ </span> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="sharing"> |
| | | <span class="mulsz" slot="label">æåºé¢ç§å®¤ç»è®¡ </span> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--æ ç¾æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <div class="education-statistics"> |
| | | <!-- æç´¢åºå --> |
| | | <div class="search-container"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="å»é¢" prop="userName"> |
| | | <el-form-item label="ç»è®¡ç»´åº¦" prop="groupType"> |
| | | <el-select |
| | | v-model="queryParams.value1" |
| | | placeholder="é»è®¤æ¯è¯¥è´¦å·æå±å»é¢" |
| | | v-model="queryParams.groupType" |
| | | placeholder="è¯·éæ©ç»è®¡ç»´åº¦" |
| | | @change="handleGroupTypeChange" |
| | | style="width: 180px" |
| | | > |
| | | <el-option label="æç§å®¤ç»è®¡" value="1"></el-option> |
| | | <el-option label="æç
åºç»è®¡" value="2"></el-option> |
| | | </el-select> |
| | | <el-select |
| | | style="margin-left: 10px" |
| | | v-if="queryParams.groupType == '2'" |
| | | v-model="queryParams.hospitaldistrictcodes" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="è¯·éæ©ç
åº" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in flatArrayhospit" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºé¢ç
åº" prop="userName"> |
| | | <el-select v-model="queryParams.value2" placeholder="è¯·éæ©"> |
| | | <el-select |
| | | v-else-if="queryParams.groupType == '1'" |
| | | v-model="queryParams.deptcodes" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="è¯·éæ©ç§å®¤" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in flatArraydept" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç®¡çæ¹æ¡" prop="userName"> |
| | | <el-select v-model="queryParams.value3" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | |
| | | <el-form-item label="å°±è¯ç±»å" prop="hospType"> |
| | | <el-select |
| | | v-model="queryParams.hospType" |
| | | placeholder="è¯·éæ©å°±è¯ç±»å" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | </el-option> |
| | | <el-option label="é¨è¯" value="1"></el-option> |
| | | <el-option label="åºé¢" value="2"></el-option> |
| | | <el-option label="ä¸ç
" value="3"></el-option> |
| | | <el-option label="å
¥é¢/å¤é¨å¯¼å
¥" value="4"></el-option> |
| | | <el-option label="使£" value="5"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºé¢æ¥æ" prop="userName"> |
| | | |
| | | <el-form-item label="å
¥é¢æ¶é´" prop="dateRange"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime1" |
| | | align="right" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | :picker-options="pickerOptionsa" |
| | | v-model="queryParams.dateRange" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 280px" |
| | | :picker-options="datePickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ§è¡æ¥æ" prop="userName"> |
| | | |
| | | <el-form-item label="宣æåéæ¶é´" prop="visittime"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime2" |
| | | align="right" |
| | | v-model="queryParams.visittime" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å®é
å®ææ¥æ" prop="userName"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime2" |
| | | align="right" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | :picker-options="pickerOptions" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 180px" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | :loading="loading" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </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="addladeltag" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</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"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | v-hasPermi="['system:statistics:export']" |
| | | >导åº</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <!-- ç»è®¡æ°æ®æ¦è§ --> |
| | | <div class="summary-cards" v-if="statisticsData.total > 0"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <div class="summary-card"> |
| | | <div class="card-title">åéæ»é</div> |
| | | <div class="card-value">{{ totalCount }}</div> |
| | | <div class="card-desc">æ»å®£æå鿬¡æ°</div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | <el-col :span="6"> |
| | | <div class="summary-card"> |
| | | <div class="card-title">åéæåé</div> |
| | | <div class="card-value">{{ sendSuccessCount }}</div> |
| | | <div class="card-desc">å·²æååéç宣æ</div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="summary-card"> |
| | | <div class="card-title">已读é</div> |
| | | <div class="card-value">{{ readCount }}</div> |
| | | <div class="card-desc">æ£è
å·²é
读ç宣æ</div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="summary-card"> |
| | | <div class="card-title">å¹³ååéæåç</div> |
| | | <div class="card-value">{{ avgSendSuccessRate }}%</div> |
| | | <div class="card-desc">æ´ä½åéæåæ¯ä¾</div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | </div> |
| | | |
| | | <!-- æ°æ®è¡¨æ ¼ --> |
| | | <div class="table-container"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :data="statisticsData.list" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | style="width: 100%" |
| | | :default-sort="{ prop: 'totalCount', order: 'descending' }" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | fixed |
| | | label="åºå·" |
| | | align="center" |
| | | key="tagid" |
| | | prop="tagid" |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | fixed |
| | | label="åºé¢ç
åº" |
| | | align="center" |
| | | key="tagname" |
| | | prop="tagname" |
| | | width="100" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="宣æ" |
| | | align="center" |
| | | key="updateTime" |
| | | prop="updateTime" |
| | | > |
| | | <el-table-column prop="groupName" label="åç»åç§°" align="center" fixed> |
| | | <!-- <template slot-scope="scope"> |
| | | <span class="group-name" @click="handleGroupDetail(scope.row)"> |
| | | {{ scope.row.groupName }} |
| | | </span> |
| | | </template> --> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="å®£ææ´æ°æ¥æ" |
| | | prop="groupCode" |
| | | label="åç»ç¼ç " |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="110" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç®¡çæ¹æ¡" |
| | | align="center" |
| | | key="isupload" |
| | | prop="isupload" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="éè®¿ä»»å¡æ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="éè®¿å®ææ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="éè®¿å®æç" |
| | | align="center" |
| | | key="isupload" |
| | | prop="isupload" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AIå¤å¼æ¬¡æ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AIéè®¿å®ææ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AIéè®¿å®æç" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信å鿬¡æ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信éè®¿å®ææ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信éè®¿å®æç" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡å鿬¡æ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡éè®¿å®ææ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡éè®¿å®æç" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工é访次æ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工éè®¿å®ææ°" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工éè®¿å®æç" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | ></el-table-column> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | prop="totalCount" |
| | | label="宣æåéæ»é" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-s-data"></i>åé¢ç»è®¡</span |
| | | ></el-button |
| | | <span class="count-highlight">{{ scope.row.totalCount }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="sendSuccessCount" |
| | | label="åéæåé" |
| | | align="center" |
| | | sortable="custom" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-share"></i>éè®¿ç»ææç»</span |
| | | ></el-button |
| | | <template slot-scope="scope"> |
| | | <span class="success-count">{{ scope.row.sendSuccessCount }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="readCount" |
| | | label="已读é" |
| | | align="center" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span class="read-count">{{ scope.row.readCount }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="sendSuccessRate" |
| | | label="åéæåç" |
| | | align="center" |
| | | width="200" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-progress |
| | | :percentage="scope.row.sendSuccessRate * 100" |
| | | :stroke-width="8" |
| | | :show-text="false" |
| | | style="width: 80px; margin: 0 auto" |
| | | :color="getRateColor(scope.row.sendSuccessRate)" |
| | | /> |
| | | <span class="rate-text" |
| | | >{{ (scope.row.sendSuccessRate * 100).toFixed(1) }}%</span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="readRate" |
| | | label="已读ç" |
| | | align="center" |
| | | width="200" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-progress |
| | | :percentage="scope.row.readRate * 100" |
| | | :stroke-width="8" |
| | | :show-text="false" |
| | | style="width: 80px; margin: 0 auto" |
| | | :color="getRateColor(scope.row.readRate)" |
| | | /> |
| | | <span class="rate-text" |
| | | >{{ (scope.row.readRate * 100).toFixed(1) }}%</span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column label="æä½" align="center" width="200" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | @click="handleDetail(scope.row)" |
| | | icon="el-icon-document" |
| | | v-hasPermi="['system:statistics:detail']" |
| | | >è¯¦ç»æ°æ®</el-button |
| | | > |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | @click="handleExportGroup(scope.row)" |
| | | icon="el-icon-download" |
| | | v-hasPermi="['system:statistics:export']" |
| | | >导åº</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | |
| | | <!-- å页 --> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | v-show="statisticsData.total > 0" |
| | | :total="statisticsData.total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | |
| | | <!-- åç»è¯¦æ
å¼¹çª --> |
| | | <el-dialog |
| | | :title="detailTitle" |
| | | :visible.sync="detailVisible" |
| | | width="80%" |
| | | :before-close="handleCloseDetail" |
| | | > |
| | | <div v-loading="detailLoading"> |
| | | <el-row :gutter="20" class="detail-header"> |
| | | <el-col :span="6"> |
| | | <div class="detail-item"> |
| | | <label>åç»åç§°ï¼</label> |
| | | <span>{{ currentGroup.groupName }}</span> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="detail-item"> |
| | | <label>åç»ç¼ç ï¼</label> |
| | | <span>{{ currentGroup.groupCode }}</span> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="detail-item"> |
| | | <label>åéæåçï¼</label> |
| | | <span class="rate-highlight" |
| | | >{{ (currentGroup.sendSuccessRate * 100).toFixed(1) }}%</span |
| | | > |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div class="detail-item"> |
| | | <label>已读çï¼</label> |
| | | <span class="rate-highlight" |
| | | >{{ (currentGroup.readRate * 100).toFixed(1) }}%</span |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-tabs v-model="detailActiveTab" class="detail-tabs"> |
| | | <el-tab-pane label="è¶å¿åæ" name="trend"> |
| | | <!-- è¿éå¯ä»¥æ¾ç½®å¾è¡¨ç»ä»¶ --> |
| | | <div class="chart-placeholder"> |
| | | è¶å¿å¾è¡¨ï¼å¯æ ¹æ®éæ±æ¥å
¥EChartsï¼ |
| | | </div> |
| | | </div> |
| | | <!-- åé¢å±ç¤ºå¼¹æ¡ --> |
| | | <el-dialog :visible.sync="topicVisible" width="45%"> |
| | | <div class="topicdia"> |
| | | <div class="top-text">{{ topicvalue.name }}</div> |
| | | <div class="top-mintext">éè®¿å®ææ°{{ topicvalue.number }}</div> |
| | | <div style="overflow-x: hidden; overflow-y: auto; max-height: 65vh"> |
| | | <div class="ttaabbcc" v-for="item in topiclist" :key="item.name"> |
| | | <div class="describe"> |
| | | 第{{ item.number }}é¢ï¼ {{ item.name }}?<span |
| | | >[{{ item.type == 1 ? "åéé¢" : "å¤éé¢" }}]</span |
| | | </el-tab-pane> |
| | | <el-tab-pane label="æç»æ°æ®" name="detail"> |
| | | <el-table |
| | | :data="detailList" |
| | | border |
| | | style="width: 100%; margin-top: 20px" |
| | | > |
| | | </div> |
| | | <div> |
| | | <el-table :data="tableData" style="width: 100%"> |
| | | <el-table-column prop="date" label="é®é¢é项"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="éæ©äººæ°"> |
| | | </el-table-column> |
| | | <el-table-column prop="address" label="æ¯ä¾"> </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="topicVisible = false">å
³ é</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- ç»æç»è®¡å¼¹æ¡ --> |
| | | <el-dialog title="æç¤º" :visible.sync="consequenceVisible" width="50%"> |
| | | <div class="topicdia"> |
| | | <div class="top-text" style="margin-bottom: 20px">宣æç»è®¡ç»æ</div> |
| | | <div> |
| | | <el-table :data="tableData" style="width: 100%"> |
| | | <el-table-column prop="date" label="æ£è
å§å"> </el-table-column> |
| | | <el-table-column prop="namea" label="æ§å«"width="100"> </el-table-column> |
| | | <el-table-column prop="namec" label="å¹´é¾"> </el-table-column> |
| | | <el-table-column prop="named" label="èç³»æ¹å¼"> </el-table-column> |
| | | <el-table-column prop="namee" label="è®¡åæ§è¡æ¶é´" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="namex" label="å®é
宿æ¶é´" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="namez" label="宿æ¹å¼"> </el-table-column> |
| | | <el-table-column prop="nameh" label="宣æ"> </el-table-column> |
| | | <el-table-column prop="namej" label="å¾å"> </el-table-column> |
| | | <!-- æªåå åé项屿§åç»´æ¤æ°ç»éå --> |
| | | <!-- <el-table-column prop="namet"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div>{{ scope.row.name }}<span>[åéé¢]</span></div> |
| | | <el-table-column |
| | | prop="patientName" |
| | | label="æ£è
å§å" |
| | | align="center" |
| | | width="120" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="patientNo" |
| | | label="æ£è
ç¼å·" |
| | | align="center" |
| | | width="120" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sendTime" |
| | | label="åéæ¶é´" |
| | | align="center" |
| | | width="180" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="readTime" |
| | | label="é
读æ¶é´" |
| | | align="center" |
| | | width="180" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="educationTitle" |
| | | label="å®£ææ é¢" |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="status" |
| | | label="ç¶æ" |
| | | align="center" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag |
| | | :type=" |
| | | scope.row.status === '已读' |
| | | ? 'success' |
| | | : scope.row.status === 'åéæå' |
| | | ? 'info' |
| | | : 'danger' |
| | | " |
| | | size="small" |
| | | > |
| | | {{ scope.row.status }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="consequenceVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="consequenceVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button @click="detailVisible = false">å
³ é</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | toamendtag, |
| | | addapitag, |
| | | deletetag, |
| | | changetagcategory, |
| | | listtag, |
| | | } from "@/api/system/label"; |
| | | import { gethelibraryCount } from "@/api/AiCentre/index"; |
| | | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | | name: "questionnaire", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | name: "EducationStatistics", |
| | | data() { |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | | activeName: "first", |
| | | // é®ç½©å± |
| | | loading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | idds: "", //åç±»id |
| | | // æ»æ¡æ° |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | groupType: "1", // 1-ç§å®¤ï¼2-ç
åº |
| | | deptcodes: ['all'], // ç§å®¤codeæ°ç» |
| | | hospitaldistrictcodes: [], // ç
åºcodeæ°ç» |
| | | hospType: undefined, // å°±è¯ç±»å |
| | | starttime: undefined, // å
¥é¢å¼å§æ¶é´ |
| | | endtime: undefined, // å
¥é¢ç»ææ¶é´ |
| | | visittime: undefined, // 宣æåéæ¶é´ |
| | | dateRange: [], // å
¥é¢æ¶é´èå´ |
| | | orderBy: "totalCount", // æåºå段 |
| | | order: "descending", // æåºæ¹å¼ |
| | | }, |
| | | |
| | | // ç»è®¡æ°æ® |
| | | statisticsData: { |
| | | total: 0, |
| | | lstamendtag: false, //æ¯å¦ä¿®æ¹æ ç¾ |
| | | topicVisible: false, //æ§å¶åé¢å¼¹æ¡ |
| | | consequenceVisible: false, //æ§å¶ç»æå¼¹æ¡ |
| | | //ä¿®æ¹æ·»å æ ç¾å¼¹æ¡æ°æ® |
| | | tagform: { |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | list: [], |
| | | }, |
| | | topicvalue: { |
| | | name: "骨ç§é访模æ¿", |
| | | number: 222, |
| | | }, |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, |
| | | topiclist: [ |
| | | { |
| | | name: "æ¨ç身ä½åº·å¤æ
åµå¦ä½", |
| | | number: 1, |
| | | type: 1, |
| | | }, |
| | | { |
| | | name: "æ¨ç饮飿
åµå¦ä½", |
| | | number: 2, |
| | | type: 2, |
| | | }, |
| | | { |
| | | name: "æ¨çæ¢å¤æ
åµå¦ä½", |
| | | number: 3, |
| | | type: 1, |
| | | }, |
| | | ], |
| | | tableData: [ |
| | | { |
| | | date: "好", |
| | | name: 12, |
| | | address: "50%", |
| | | }, |
| | | { |
| | | date: "ä¸è¬", |
| | | name: 2, |
| | | address: "6.2%", |
| | | }, |
| | | { |
| | | date: "å·®", |
| | | name: 0, |
| | | address: "0%", |
| | | }, |
| | | ], |
| | | // æ ç¾è¡¨æ ¼æ°æ® |
| | | userList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | forms: { |
| | | name: "", |
| | | }, |
| | | numberlb: 22, |
| | | dialogFormVisible: false, //æ·»å ãä¿®æ¹ç±»å«å¼¹æ¡ |
| | | lstamendtagVisible: false, //æ·»å ãä¿®æ¹æ ç¾å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | topqueryParams: {}, //导åºç鿡件 |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | pickerOptions: { |
| | | disabledDate(time) { |
| | | return time.getTime() < Date.now() - 3600 * 1000 * 24; |
| | | }, |
| | | shortcuts: [ |
| | | { |
| | | text: "ä»å¤©", |
| | | onClick(picker) { |
| | | picker.$emit("pick", new Date()); |
| | | }, |
| | | }, |
| | | { |
| | | text: "æ¨å¤©", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "ä¸å¨å", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | pickerOptionsa: { |
| | | |
| | | // 䏿é项 |
| | | flatArraydept: [], |
| | | |
| | | flatArrayhospit: [], |
| | | |
| | | // å è½½ç¶æ |
| | | loading: false, |
| | | detailLoading: false, |
| | | |
| | | // 详æ
å¼¹çª |
| | | detailVisible: false, |
| | | detailTitle: "", |
| | | detailActiveTab: "trend", |
| | | currentGroup: {}, |
| | | detailList: [], |
| | | |
| | | // æ¥æéæ©å¨é
ç½® |
| | | datePickerOptions: { |
| | | disabledDate(time) { |
| | | return time.getTime() > Date.now(); |
| | | }, |
| | | shortcuts: [ |
| | | { |
| | | text: "ä»å¤©", |
| | | text: "æè¿ä¸å¨", |
| | | onClick(picker) { |
| | | picker.$emit("pick", new Date()); |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "æ¨å¤©", |
| | | text: "æè¿ä¸ä¸ªæ", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24); |
| | | picker.$emit("pick", date); |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "ä¸å¨å", |
| | | text: "æè¿ä¸ä¸ªæ", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", date); |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | // æ¥è¯¢æ ç¾åè¡¨åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `æ ç¾ç¼å·`, visible: true }, |
| | | { key: 1, label: `æ ç¾åç§°`, visible: true }, |
| | | { key: 2, label: `æ ç¾æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | // 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: {}, |
| | | |
| | | computed: { |
| | | // è®¡ç®æ»åéé |
| | | totalCount() { |
| | | return this.statisticsData.list.reduce( |
| | | (sum, item) => sum + item.totalCount, |
| | | 0 |
| | | ); |
| | | }, |
| | | |
| | | // è®¡ç®æ»åéæåé |
| | | sendSuccessCount() { |
| | | return this.statisticsData.list.reduce( |
| | | (sum, item) => sum + item.sendSuccessCount, |
| | | 0 |
| | | ); |
| | | }, |
| | | |
| | | // è®¡ç®æ»å·²è¯»é |
| | | readCount() { |
| | | return this.statisticsData.list.reduce( |
| | | (sum, item) => sum + item.readCount, |
| | | 0 |
| | | ); |
| | | }, |
| | | |
| | | // 计ç®å¹³ååéæåç |
| | | avgSendSuccessRate() { |
| | | if (this.statisticsData.list.length === 0) return 0; |
| | | const totalRate = this.statisticsData.list.reduce( |
| | | (sum, item) => sum + item.sendSuccessRate, |
| | | 0 |
| | | ); |
| | | return ((totalRate / this.statisticsData.list.length) * 100).toFixed(1); |
| | | }, |
| | | }, |
| | | |
| | | created() { |
| | | this.flatArrayhospit = this.$store.getters.belongWards.map((ward) => { |
| | | return { |
| | | label: ward.districtName, |
| | | value: ward.districtCode, |
| | | }; |
| | | }); |
| | | this.flatArraydept = this.$store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | console.log(this.flatArrayhospit,'this.flatArrayhospit'); |
| | | |
| | | this.flatArraydept.push({ label: "å
¨é¨", value: "all" }); |
| | | this.flatArrayhospit.push({ label: "å
¨é¨", value: "all" }); |
| | | this.getList(); |
| | | this.gitclasify(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | getList() { |
| | | listtag(this.addDateRange(this.queryParams)).then((response) => { |
| | | console.log(response); |
| | | this.total = response.total; |
| | | this.userList = response.rows; |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æ ç¾ */ |
| | | handleUpdate(row) { |
| | | console.log(row, "ä¿®æ¹æ ç¾"); |
| | | this.lstamendtagVisible = true; |
| | | this.lstamendtag = true; |
| | | this.tagform = { |
| | | isupload: row.isupload, |
| | | tagname: row.tagname, |
| | | tagcategoryid: row.tagcategoryid, |
| | | tagdescription: row.tagdescription, |
| | | tagid: row.tagid, |
| | | // è·åç»è®¡æ°æ®å表 |
| | | async getList() { |
| | | this.loading = true; |
| | | try { |
| | | console.log(this.queryParams.hospitaldistrictcodes); |
| | | |
| | | // æå»ºè¯·æ±åæ° |
| | | const params = { |
| | | pageNum: this.queryParams.pageNum, |
| | | pageSize: this.queryParams.pageSize, |
| | | hospitaldistrictcodes: |
| | | this.queryParams.hospitaldistrictcodes.includes("all") |
| | | ? this.getAllWardCodes() |
| | | : this.queryParams.hospitaldistrictcodes, |
| | | deptcodes: this.queryParams.deptcodes.includes("all") |
| | | ? this.getAllDeptCodes() |
| | | : this.queryParams.deptcodes, |
| | | }; |
| | | }, |
| | | addladeltag() { |
| | | this.lstamendtagVisible = true; |
| | | this.lstamendtag = false; |
| | | this.tagform = { |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | tagid: "", |
| | | }; |
| | | }, |
| | | // æ·»å /ä¿®æ¹æ ç¾ |
| | | Maintenancetag() { |
| | | if (this.lstamendtag) { |
| | | toamendtag(this.addDateRange(this.tagform)).then((response) => { |
| | | console.log(response); |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addapitag(this.addDateRange(this.tagform)).then((response) => { |
| | | console.log(response); |
| | | this.getList(); |
| | | }); |
| | | |
| | | // æ ¹æ®ç»è®¡ç»´åº¦è®¾ç½®åæ° |
| | | if (this.queryParams.groupType == "1") { |
| | | params.hospitaldistrictcodes = []; |
| | | } else if (this.queryParams.groupType == "2") { |
| | | params.deptcodes = []; |
| | | } |
| | | this.tagform = { |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | tagid: "", |
| | | |
| | | // 设置æ¶é´åæ° |
| | | if ( |
| | | this.queryParams.dateRange && |
| | | this.queryParams.dateRange.length === 2 |
| | | ) { |
| | | params.starttime = this.queryParams.dateRange[0]; |
| | | params.endtime = this.queryParams.dateRange[1]; |
| | | } |
| | | |
| | | // 设置å
¶ä»åæ° |
| | | if (this.queryParams.hospType) { |
| | | params.hospType = this.queryParams.hospType; |
| | | } |
| | | if (this.queryParams.visittime) { |
| | | params.visittime = this.queryParams.visittime; |
| | | } |
| | | |
| | | // è°ç¨æ¥å£ |
| | | const response = await gethelibraryCount(params); |
| | | this.statisticsData = { |
| | | total: response.total || 0, |
| | | list: response.list || [], |
| | | }; |
| | | } catch (error) { |
| | | console.error("è·åç»è®¡æ°æ®å¤±è´¥:", error); |
| | | this.$message.error("è·åç»è®¡æ°æ®å¤±è´¥"); |
| | | this.statisticsData = { total: 0, list: [] }; |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | getAllWardCodes() { |
| | | return this.flatArrayhospit |
| | | .filter((item) => item.value !== "all") |
| | | .map((item) => item.value); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | 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"); |
| | | getAllDeptCodes() { |
| | | return this.flatArraydept |
| | | .filter((item) => item.value !== "all") |
| | | .map((item) => item.value); |
| | | }, |
| | | //åé¢å¼¹æ¡ |
| | | handleUpdate() { |
| | | this.topicVisible = true; |
| | | // ç»è®¡ç»´åº¦åæ´ |
| | | handleGroupTypeChange(value) { |
| | | // åæ¢ç»´åº¦æ¶æ¸
空对åºçéæ© |
| | | if (value === "dept") { |
| | | this.queryParams.hospitaldistrictcodes = []; |
| | | } else if (value === "ward") { |
| | | this.queryParams.deptcodes = []; |
| | | } |
| | | }, |
| | | //ç»æå¼¹æ¡ |
| | | handleDelete() { |
| | | this.consequenceVisible = true; |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | |
| | | // å¤çæç´¢ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | |
| | | // éç½®æç´¢æ¡ä»¶ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.tagname = ""; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.tagid); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | groupType: "dept", |
| | | deptcodes: [], |
| | | hospitaldistrictcodes: [], |
| | | hospType: undefined, |
| | | starttime: undefined, |
| | | endtime: undefined, |
| | | visittime: undefined, |
| | | dateRange: [], |
| | | orderBy: "totalCount", |
| | | order: "descending", |
| | | }; |
| | | this.getList(); |
| | | }, |
| | | |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "base/tag/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | // è¡¨æ ¼æåº |
| | | handleSortChange({ column, prop, order }) { |
| | | if (prop) { |
| | | this.queryParams.orderBy = prop; |
| | | this.queryParams.order = order; |
| | | this.getList(); |
| | | } |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | |
| | | // æ ¹æ®æåçè·åè¿åº¦æ¡é¢è² |
| | | getRateColor(rate) { |
| | | const percentage = rate * 100; |
| | | if (percentage >= 90) return "#67C23A"; |
| | | if (percentage >= 80) return "#E6A23C"; |
| | | if (percentage >= 60) return "#409EFF"; |
| | | return "#F56C6C"; |
| | | }, |
| | | |
| | | // æ¥çåç»è¯¦æ
|
| | | handleGroupDetail(row) { |
| | | this.currentGroup = row; |
| | | this.detailTitle = `${row.groupName} - 宣æç»è®¡è¯¦æ
`; |
| | | this.detailActiveTab = "trend"; |
| | | this.detailVisible = true; |
| | | this.loadDetailData(); |
| | | }, |
| | | |
| | | // å 载详æ
æ°æ® |
| | | async loadDetailData() { |
| | | this.detailLoading = true; |
| | | try { |
| | | // è¿éåºè¯¥è°ç¨è·å详æ
çæ¥å£ |
| | | // æ¨¡ææ°æ® |
| | | setTimeout(() => { |
| | | this.detailList = [ |
| | | { |
| | | patientName: "å¼ ä¸", |
| | | patientNo: "P202312001", |
| | | sendTime: "2023-12-01 10:30:00", |
| | | readTime: "2023-12-01 14:20:00", |
| | | educationTitle: "éª¨ç§æ¯ååº·å¤æå¯¼", |
| | | status: "已读", |
| | | }, |
| | | { |
| | | patientName: "æå", |
| | | patientNo: "P202312002", |
| | | sendTime: "2023-12-01 11:15:00", |
| | | readTime: "", |
| | | educationTitle: "å¿è¡ç®¡ç¾ç
é¢é²", |
| | | status: "åéæå", |
| | | }, |
| | | { |
| | | patientName: "çäº", |
| | | patientNo: "P202312003", |
| | | sendTime: "2023-12-02 09:45:00", |
| | | readTime: "2023-12-02 16:10:00", |
| | | educationTitle: "ç³å°¿ç
饮飿坼", |
| | | status: "已读", |
| | | }, |
| | | ]; |
| | | this.detailLoading = false; |
| | | }, 500); |
| | | } catch (error) { |
| | | console.error("å 载详æ
æ°æ®å¤±è´¥:", error); |
| | | this.$message.error("å 载详æ
æ°æ®å¤±è´¥"); |
| | | this.detailLoading = false; |
| | | } |
| | | }, |
| | | |
| | | // æ¥ç详æ
|
| | | handleDetail(row) { |
| | | this.currentGroup = row; |
| | | this.detailTitle = `${row.groupName} - æç»æ°æ®`; |
| | | this.detailActiveTab = "detail"; |
| | | this.detailVisible = true; |
| | | this.loadDetailData(); |
| | | }, |
| | | |
| | | // 导åºå½ååç»æ°æ® |
| | | handleExportGroup(row) { |
| | | this.$confirm(`ç¡®å®è¦å¯¼åº "${row.groupName}" çç»è®¡æ°æ®å?`, "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // è¿éè°ç¨å¯¼åºæ¥å£ |
| | | this.$message.success("导åºä»»å¡å·²å¼å§ï¼è¯·ç¨åå¨ä¸è½½ä¸å¿æ¥ç"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 导åºå
¨é¨æ°æ® |
| | | handleExport() { |
| | | this.$confirm("ç¡®å®è¦å¯¼åºå
¨é¨ç»è®¡æ°æ®å?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // æå»ºå¯¼åºåæ° |
| | | const exportParams = { ...this.queryParams }; |
| | | delete exportParams.pageNum; |
| | | delete exportParams.pageSize; |
| | | |
| | | // è¿éè°ç¨å¯¼åºæ¥å£ |
| | | this.$message.success("导åºä»»å¡å·²å¼å§ï¼è¯·ç¨åå¨ä¸è½½ä¸å¿æ¥ç"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // å
³é详æ
å¼¹çª |
| | | handleCloseDetail(done) { |
| | | this.$confirm("确认å
³éï¼", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | done(); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 180px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | 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); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | .education-statistics { |
| | | padding: 20px; |
| | | background: #fff; |
| | | min-height: calc(100vh - 84px); |
| | | |
| | | color: rgb(0, 89, 255); |
| | | .search-container { |
| | | background: #f8f9fa; |
| | | padding: 20px; |
| | | border-radius: 8px; |
| | | margin-bottom: 20px; |
| | | border: 1px solid #ebeef5; |
| | | } |
| | | |
| | | .summary-cards { |
| | | margin-bottom: 20px; |
| | | |
| | | .summary-card { |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | padding: 20px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | | text-align: center; |
| | | border: 1px solid #ebeef5; |
| | | transition: all 0.3s ease; |
| | | |
| | | &:hover { |
| | | transform: translateY(-5px); |
| | | box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15); |
| | | } |
| | | |
| | | .card-title { |
| | | font-size: 14px; |
| | | color: #909399; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .card-value { |
| | | font-size: 28px; |
| | | font-weight: 600; |
| | | color: #409eff; |
| | | margin-bottom: 5px; |
| | | } |
| | | |
| | | .card-desc { |
| | | font-size: 12px; |
| | | color: #c0c4cc; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .table-container { |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | padding: 20px; |
| | | border: 1px solid #ebeef5; |
| | | |
| | | .group-name { |
| | | color: #409eff; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .topicdia { |
| | | text-align: center; |
| | | margin: 0 20px; |
| | | text-decoration: underline; |
| | | transition: color 0.3s; |
| | | |
| | | // overflow: scroll; |
| | | &:hover { |
| | | color: #66b1ff; |
| | | } |
| | | } |
| | | |
| | | .top-text { |
| | | font-size: 25px; |
| | | .count-highlight { |
| | | font-weight: 600; |
| | | color: #606266; |
| | | } |
| | | |
| | | .success-count { |
| | | color: #67c23a; |
| | | font-weight: 600; |
| | | } |
| | | .top-mintext { |
| | | color: #bdae25; |
| | | font-size: 15px; |
| | | margin: 10px 0; |
| | | |
| | | .read-count { |
| | | color: #e6a23c; |
| | | font-weight: 600; |
| | | } |
| | | .ttaabbcc { |
| | | // 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); |
| | | margin: 15px 0; |
| | | margin-top: 30px; |
| | | padding: 30px; |
| | | } |
| | | .describe { |
| | | text-align: left; |
| | | margin-bottom: 20px; |
| | | span { |
| | | color: rgb(23, 140, 235); |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | |
| | | .rate-text { |
| | | display: block; |
| | | text-align: left; |
| | | font-size: 20px; |
| | | margin-top: 5px; |
| | | font-size: 12px; |
| | | color: #606266; |
| | | } |
| | | } |
| | | |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | .detail-header { |
| | | margin-bottom: 20px; |
| | | padding: 20px; |
| | | background: #f8f9fa; |
| | | border-radius: 8px; |
| | | |
| | | .detail-item { |
| | | label { |
| | | color: #909399; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | color: #303133; |
| | | } |
| | | |
| | | .rate-highlight { |
| | | color: #409eff; |
| | | font-weight: 600; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .detail-tabs { |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | | .button-textck { |
| | | color: rgb(39, 167, 67); |
| | | } |
| | | .button-textxg { |
| | | font-size: 18px; |
| | | color: rgb(35, 81, 233); |
| | | } |
| | | .button-textsc { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(23, 140, 235); |
| | | .chart-placeholder { |
| | | height: 300px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background: #f8f9fa; |
| | | border-radius: 8px; |
| | | color: #909399; |
| | | border: 1px dashed #dcdfe6; |
| | | } |
| | | } |
| | | |
| | | // ååºå¼è°æ´ |
| | | @media (max-width: 1200px) { |
| | | .education-statistics { |
| | | padding: 10px; |
| | | } |
| | | |
| | | .summary-cards { |
| | | .el-col { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `https://www.health-y.cn/lssf`, |
| | | // target: `http://192.168.100.10:8096`, |
| | | target: `http://192.168.100.10:8096`, |
| | | // target: `http://192.168.100.10:8094`,//çç«åå¾· |
| | | // target: `http://192.168.100.10:8095`,//æ°å |
| | | // target: `http://192.168.100.10:8098`,//å¸ä¸ |
| | | target:`http://localhost:8095`, |
| | | // target:`http://localhost:8095`, |
| | | // target:`http://35z1t16164.qicp.vip`, |
| | | // target: `http://192.168.100.172:8095`, |
| | | // target: `http://192.168.101.166:8093`, |