| | |
| | | data: query |
| | | }) |
| | | } |
| | | // æ¥è¯¢å¾
å
¥é¢è®°å½å表 |
| | | export function listPatMedInhosp(query) { |
| | | return request({ |
| | | url: '/smartor/patinhosp/selectPatMedInhospList', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢æ£è
é¨è¯è®°å½è¯¦ç» |
| | | export function getPatouthosp(id) { |
| | |
| | | import JsSIP from "jssip"; |
| | | import { Notification, MessageBox, Message, Loading } from "element-ui"; |
| | | // å»é¢æºæä¸SIPæå¡å¨æ å°é
ç½® |
| | | // å
¬å¸æå¡å¨192.168.100.6 |
| | | const HOSPITAL_CONFIG = { |
| | | 丽水å¸ä¸å»é¢: { |
| | | wsUrl: "wss://192.168.10.124:7443", |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="medicalCode"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="loginForm.medicalCode" |
| | | 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().then((res) => { |
| | | if (res.code == 200) { |
| | | this.options = res.rows.map((item) => ({ |
| | | value: item.medicalCode, |
| | | // value: item.medicalCode, |
| | | label: item.organizationName, |
| | | })); |
| | | } |
| | | }); |
| | | }, |
| | | 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.medicalCode); |
| | | console.log(selectedOrg); |
| | | |
| | | if (selectedOrg) { |
| | | if (selectedOrg.label.includes('æ¹æ»¨')) { |
| | | this.loginForm.campusid = 1; |
| | | this.loginForm.orgid = 1; |
| | | } else if (selectedOrg.label.includes('å´å±±')) { |
| | | this.loginForm.campusid = 2; |
| | | this.loginForm.orgid = 1; |
| | | } else { |
| | | this.loginForm.campusid = 1; // é»è®¤å¼æå
¶ä»å¤ç |
| | | this.loginForm.orgid = 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> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="å§å" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.patname" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="è¯æ" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.diagname" |
| | | placeholder="请è¾å
¥è¯æ" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.deptname" |
| | | placeholder="请è¾å
¥ç§å®¤åç§°" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å»ç" width="100" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.drname" |
| | | placeholder="请è¾å
¥å»çå§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç
æ¡å·" prop="outhospno"> |
| | | <el-input |
| | | v-model="queryParams.outhospno" |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
èå´" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.scopetype" |
| | | placeholder="é»è®¤å
¨é¨" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="å°±è¯æ¥æ"> |
| | | <el-form-item label="é¢çº¦ä½é¢æ¥æ"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | <!-- <el-date-picker |
| | | v-model="dateRange" |
| | | type="datetimerange" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :default-time="['12:00:00']" |
| | | </el-form-item> |
| | | <el-form-item label="ææ é¢åæ£æ¥" prop="status"> |
| | | <el-select v-model="queryParams.examine" placeholder="è¯·éæ©"> |
| | | <el-option label="æ" :value="1"> </el-option> |
| | | <el-option label="æ " :value="2"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶æ²»ç±»å" prop="status"> |
| | | <el-select v-model="queryParams.cureType" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in dict.type.receive_and_cure" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-date-picker> --> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å®æç¶æ" prop="status"> |
| | | <el-select v-model="queryParams.arrange" placeholder="è¯·éæ©"> |
| | | <el-option label="已宿" :value="1"> </el-option> |
| | | <el-option label="æªå®æ" :value="2"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row> |
| | | <!-- <el-form-item label=" å°±è¯æ¥æ " prop="admitdate"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="queryParams.admitdate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ© å°±è¯æ¥æ " |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | label="ç
æ¡å·" |
| | | align="center" |
| | | key="outhospno" |
| | | prop="outhospno" |
| | | /> |
| | | <el-table-column |
| | | label="å°±è¯æ¶é´" |
| | | align="center" |
| | | key="admitdate" |
| | |
| | | <span>{{ formatTime(scope.row.admitdate) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ç
æ¡å·" |
| | | align="center" |
| | | key="patno" |
| | | prop="patno" |
| | | /> --> |
| | | <el-table-column |
| | | label="ç
æ¡å·" |
| | | label="é¢çº¦ä½é¢æ¥æ" |
| | | align="center" |
| | | key="outhospno" |
| | | prop="outhospno" |
| | | /> |
| | | key="admitdate" |
| | | prop="admitdate" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.admitdate) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é¢çº¦è¯ææ¥æ" |
| | | align="center" |
| | | key="admitdate" |
| | | prop="admitdate" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.admitdate) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="身份è¯å·" |
| | | align="center" |
| | | key="idcardno" |
| | | prop="idcardno" |
| | | width="220" |
| | | /> |
| | | <el-table-column |
| | | label="èç³»çµè¯" |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="æ£è
æ ç¾ï¼ç¼ºï¼" |
| | | align="center" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.tagList">{{ item }} </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="è¯æ" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="主述" |
| | | align="center" |
| | | key="mainsuit" |
| | | prop="mainsuit" |
| | | width="120" |
| | | /> --> |
| | | <el-table-column |
| | | label="å°±è¯ç§å®¤" |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æ¥è¯å»ç" |
| | | label="ææ é¢åæ£æ¥" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æ¶æ²»ç±»å" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.receive_and_cure" |
| | | :value="scope.row.sendState" |
| | | /> </template |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="å®æç¶æ" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | |
| | | import { delUser } from "@/api/system/user"; |
| | | |
| | | import { |
| | | listPatouthosp, |
| | | listPatMedInhosp, |
| | | getPatouthosp, |
| | | addPatouthosp, |
| | | updatePatouthosp, |
| | |
| | | |
| | | export default { |
| | | name: "Userhuanze", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "receive_and_cure"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | searchscope: 3, |
| | | scopetype: [], |
| | | deptcodes: [], |
| | | |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | |
| | | /** æ¥è¯¢æ£è
å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.queryParams.searchscope == 3) { |
| | | this.queryParams.deptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | // this.queryParams.leavehospitaldistrictcodes = |
| | | // store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if (this.dateRange) { |
| | | this.queryParams.beginTime = this.dateRange[0]; |
| | | this.queryParams.endTime = this.dateRange[1]; |
| | |
| | | this.queryParams.beginTime = ""; |
| | | this.queryParams.endTime = ""; |
| | | } |
| | | listPatouthosp(this.queryParams).then((response) => { |
| | | this.loading = false; |
| | | |
| | | listPatMedInhosp(this.queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | // this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.deptcodes = []; |
| | | |
| | | if (type == 1) { |
| | | this.queryParams.deptcodes.push(code); |
| | | // this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | // this.queryParams.leavehospitaldistrictcodes.push(code); |
| | | this.queryParams.deptcodes = []; |
| | | this.queryParams.searchscope = 2; |
| | | } else { |
| | | this.queryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | | geterryList() { |
| | | this.loading = true; |
| | |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | searchscope: 3, |
| | | scopetype: [], |
| | | deptcodes: [], |
| | | |
| | | // leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(); |
| | |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.needFollowUpInfo, |
| | | scope.row.leavehospitaldistrictname + 'éé访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.needFollowUp |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.followUpSuccessInfo, |
| | | scope.row.leavehospitaldistrictname + 'é访æåå表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.followUpSuccess |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.manualInfo, |
| | | scope.row.leavehospitaldistrictname + '人工é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.manual |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.smsInfo, |
| | | scope.row.leavehospitaldistrictname + 'çä¿¡é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.sms |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | |
| | | key="weChat" |
| | | prop="weChat" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.weChatInfo, |
| | | scope.row.leavehospitaldistrictname + '微信é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.weChat |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="忬¡åºé¢é访"> |
| | |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.needFollowUpAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访éé访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.needFollowUpAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å¾
é访" |
| | |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.pendingFollowUpAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访å¾
é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.pendingFollowUpAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访æå" |
| | |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.followUpSuccessAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访é访æåå表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.followUpSuccessAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访失败" |
| | |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.followUpFailAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访é访失败å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.followUpFailAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é访ç" |
| | |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.manualAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访人工é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.manualAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="çä¿¡" |
| | |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.smsAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访çä¿¡é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.smsAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | viewDetails( |
| | | scope.row.weChatAgainInfo, |
| | | scope.row.leavehospitaldistrictname + |
| | | '忬¡é访微信é访å表' |
| | | ) |
| | | " |
| | | ><span class="button-zx">{{ |
| | | scope.row.weChatAgain |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | width="70%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div style="margin-bottom: 16px; display: flex; align-items: center"> |
| | | <span style="margin-right: 10px; font-weight: bold">æ£è
å§åæ¥è¯¢:</span> |
| | | <el-input |
| | | v-model="searchName" |
| | | placeholder="请è¾å
¥æ£è
å§åè¿è¡çé" |
| | | clearable |
| | | style="width: 300px" |
| | | @input="handleSearch" |
| | | @clear="handleSearch" |
| | | > |
| | | </el-input> |
| | | <span |
| | | style="margin-left: 10px; color: rgb(35, 81, 233); font-size: 16px" |
| | | > |
| | | å
± {{ infotitlelist.length }} æ¡è®°å½ |
| | | </span> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <el-row :gutter="20"> |
| | | <!-- éæ©æ£è
å表 --> |
| | | <el-table :data="infotitlelist" height="660" style="width: 100%"> |
| | | <div |
| | | class="data-list" |
| | | ref="dataList" |
| | | @scroll="handleScroll" |
| | | v-loading="infotitloading" |
| | | > |
| | | <el-table |
| | | :data="currentDisplayList" |
| | | height="660" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | prop="sendname" |
| | | align="center" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-row> |
| | | <pagination |
| | | v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6" |
| | |
| | | orgname: "", |
| | | expands: [], |
| | | infotitlelist: [], |
| | | currentDisplayList: [], // å½åæ¾ç¤ºçæ°æ® |
| | | loadIndex: 0, // å½åå·²å è½½çæ°æ®ç´¢å¼ |
| | | pageSize: 100, // æ¯æ¬¡å è½½çæ°æ®é |
| | | isLoading: false, // 鲿¢æ»å¨æ¶éå¤å è½½ |
| | | // é®ç½©å± |
| | | loading: false, |
| | | Seedloading: false, |
| | | chartDialogVisible: false, |
| | | infotitleVisible: false, |
| | | searchName: "", // æç´¢å
³é®è¯ |
| | | infotitloading: false, |
| | | infotitle: "", |
| | | pieChart: null, |
| | |
| | | getSfStatistics(params).then((response) => { |
| | | console.log(response); |
| | | // this.total = response.total; |
| | | this.userList = response.data; |
| | | this.userList = this.customSort(response.data); |
| | | }); |
| | | }, |
| | | // æç´¢å¤ç彿° |
| | | handleSearch() { |
| | | if (!this.searchName.trim()) { |
| | | // 妿æç´¢æ¡ä¸ºç©ºï¼æ¾ç¤ºæææ°æ® |
| | | this.currentDisplayList = [...this.infotitlelist]; |
| | | } else { |
| | | // æ ¹æ®æ£è
å§åè¿è¡çéï¼ä¸åºå大å°åï¼ |
| | | const keyword = this.searchName.toLowerCase(); |
| | | this.currentDisplayList = this.infotitlelist.filter((item) => { |
| | | return item.sendname && item.sendname.toLowerCase().includes(keyword); |
| | | }); |
| | | } |
| | | }, |
| | | customSort(data) { |
| | | // å®ä¹æ¨ææçç
åºé¡ºåºï¼æ©å±å°ä¸åï¼ |
| | | const order = [ |
| | | "äº", |
| | | "ä¸", |
| | | "å", |
| | | "äº", |
| | | "å
", |
| | | "ä¸", |
| | | "å
«", |
| | | "ä¹", |
| | | "å", |
| | | "åä¸", |
| | | "åäº", |
| | | "åä¸", |
| | | "åå", |
| | | "åäº", |
| | | "åå
", |
| | | "åä¸", |
| | | "åå
«", |
| | | "åä¹", |
| | | "äºå", |
| | | "äºåä¸", |
| | | "äºåäº", |
| | | "äºåä¸", |
| | | "äºåå", |
| | | "äºåäº", |
| | | "äºåå
", |
| | | "äºåä¸", |
| | | "äºåå
«", |
| | | "äºåä¹", |
| | | "ä¸å", |
| | | ]; |
| | | |
| | | return data.sort((a, b) => { |
| | | // æåç
åºåç§°ä¸ç䏿æ°åé¨å[6](@ref) |
| | | const getIndex = (name) => { |
| | | const numStr = name.match( |
| | | /^(äº|ä¸|å|äº|å
|ä¸|å
«|ä¹|å|åä¸|åäº|åä¸|åå|åäº|åå
|åä¸|åå
«|åä¹|äºå|äºåä¸|äºåäº|äºåä¸|äºåå|äºåäº|äºåå
|äºåä¸|äºåå
«|äºåä¹|ä¸å)/ |
| | | )?.[1]; |
| | | return order.indexOf(numStr); |
| | | }; |
| | | |
| | | const indexA = getIndex(a.leavehospitaldistrictname); |
| | | const indexB = getIndex(b.leavehospitaldistrictname); |
| | | |
| | | // 妿é½å¨å®ä¹ç顺åºä¸ï¼æå®ä¹é¡ºåºæï¼å¦åï¼æªå®ä¹çæå¨åé¢[2](@ref) |
| | | if (indexA === -1) return 1; |
| | | if (indexB === -1) return -1; |
| | | return indexA - indexB; |
| | | }); |
| | | }, |
| | | getRowKey(row) { |
| | |
| | | const params = { |
| | | ...this.queryParams, |
| | | // 妿鿩äº"å
¨é¨"ï¼åä¼ ææç
åº/ç§å®¤ä»£ç |
| | | deptcodes: this.queryParams.deptcodes.includes("all") |
| | | ? this.allDeptCodes |
| | | : this.queryParams.deptcodes, |
| | | leavehospitaldistrictcodes: [row.leavehospitaldistrictcode], |
| | | drcode: "1", |
| | | }; |
| | | |
| | | // ç§»é¤å¯è½åå¨ç"all"å¼ |
| | | delete params.leavehospitaldistrictcodes.all; |
| | | delete params.deptcodes.all; |
| | | // å¦æè¯¥è¡è¿æ²¡æå è½½å»çæ°æ®ï¼åå è½½ |
| | | if (!row.doctorStats) { |
| | | this.loading = true; |
| | |
| | | viewDetails(row, title) { |
| | | this.infotitleVisible = true; |
| | | this.infotitle = title; |
| | | this.infotitlelist = row; |
| | | this.infotitlelist = row; // å设rowå°±æ¯éè¦å±ç¤ºçè¯¦ç»æ°ç» |
| | | |
| | | // åå§åå è½½ |
| | | this.loadIndex = 0; |
| | | this.currentDisplayList = []; |
| | | this.$nextTick(() => { |
| | | this.loadMoreData(); |
| | | }); |
| | | }, |
| | | loadMoreData() { |
| | | if (this.isLoading) return; |
| | | this.isLoading = true; |
| | | |
| | | // 模æå¼æ¥å è½½ï¼å®é
å¯è½æ¯ç´æ¥åçæ¬å°æ°æ® |
| | | setTimeout(() => { |
| | | const nextChunk = this.infotitlelist.slice( |
| | | this.loadIndex, |
| | | this.loadIndex + this.pageSize |
| | | ); |
| | | this.currentDisplayList = this.currentDisplayList.concat(nextChunk); |
| | | this.loadIndex += this.pageSize; |
| | | this.isLoading = false; |
| | | }, 200); |
| | | }, |
| | | handleScroll(event) { |
| | | const scrollContainer = event.target; |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | const isAtBottom = |
| | | scrollContainer.scrollTop + scrollContainer.clientHeight >= |
| | | scrollContainer.scrollHeight - 10; |
| | | |
| | | if ( |
| | | isAtBottom && |
| | | !this.isLoading && |
| | | this.loadIndex < this.infotitlelist.length |
| | | ) { |
| | | this.loadMoreData(); |
| | | } |
| | | }, |
| | | SeedetailsgGo(row) { |
| | | this.SeedetailsVisible = false; |
| | |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .data-list { |
| | | max-height: 800px; |
| | | overflow-y: auto; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | |
| | | // 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://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`, |