| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 登录方法 |
| | | export function login(username, password, code, uuid) { |
| | | export function login(username, password, code, uuid,guid) { |
| | | const data = { |
| | | username, |
| | | password, |
| | | code, |
| | | uuid |
| | | uuid, |
| | | guid, |
| | | } |
| | | return request({ |
| | | url: '/login', |
| | |
| | | method: 'get', |
| | | timeout: 20000 |
| | | }) |
| | | } |
| | | } |
| | |
| | | data: data, |
| | | }); |
| | | } |
| | | // 修改用户个人信息 |
| | | export function getSfStatistics(data) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtask/getSfStatistics", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 用户密码重置 |
| | | export function updateUserPwd(oldPassword, newPassword) { |
| | |
| | | const password = userInfo.password |
| | | const code = userInfo.code |
| | | const uuid = userInfo.uuid |
| | | const guid = userInfo.guid |
| | | return new Promise((resolve, reject) => { |
| | | login(username, password, code, uuid).then(res => { |
| | | login(username, password, code, uuid,guid).then(res => { |
| | | setToken(res.token) |
| | | commit('SET_TOKEN', res.token) |
| | | localStorage.setItem('guid', guid); |
| | | resolve() |
| | | }).catch(error => { |
| | | reject(error) |
| | |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="ysfleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>已发送未领取</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ yfsvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="errleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>异常</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ ycvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-row :gutter="20"> |
| | |
| | | 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-cascader |
| | | v-model="topqueryParams.scopetype" |
| | | placeholder="默认全部" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="任务状态" prop="status"> |
| | |
| | | }, |
| | | dynamicTags: ["选项一", "选项二", "选项三"], //选项 |
| | | inputVisible: false, |
| | | ycvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | | preachform: "", |
| | | previewVisible: false, //门诊随访预览弹框 |
| | |
| | | }, |
| | | value: [], |
| | | list: [], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所属患者", |
| | | }, |
| | | |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | label: "科室", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | label: "病区", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "全部", |
| | | }, |
| | | ], |
| | | loading: false, |
| | |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "应随访", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "患者过滤", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "异常", |
| | | name: "应随访", |
| | | value: 0, |
| | | }, |
| | | |
| | | // { |
| | | // name: "异常", |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "发送失败", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "已完成", |
| | | name: "待发送", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "已发送", |
| | | value: 0, |
| | | }, |
| | | |
| | | // { |
| | | // name: "已发送未领取", |
| | | // value: 0, |
| | | // }, |
| | | ], |
| | | 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: "", |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serviceType: 2, |
| | | searchscope: 2, |
| | | searchscope: 3, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | propss: { multiple: true }, |
| | | options: [], |
| | |
| | | label: "正常", |
| | | }, |
| | | ], |
| | | errtype: "", |
| | | leavehospitaldistrictcode: "", |
| | | serviceState: [], |
| | | checkboxlist: [], |
| | | // 表单校验 |
| | |
| | | created() { |
| | | this.serviceState = store.getters.serviceState; |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | |
| | | this.getList(1); |
| | | this.errtype = this.$route.query.errtype; |
| | | this.leavehospitaldistrictcode = |
| | | this.$route.query.leavehospitaldistrictcode; |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.sourcetype[1].children = store.getters.belongWards.map((dept) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | if (this.errtype) { |
| | | this.toleadExport(2); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | |
| | | methods: { |
| | | /** 查询门诊随访服务列表 */ |
| | | getList(refresh) { |
| | | 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 { |
| | | // 默认全部 |
| | | 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 |
| | | ); |
| | | console.log(this.topqueryParams.leavehospitaldistrictcodes, "11"); |
| | | } |
| | | this.loading = true; |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | this.cardlist[1].value = response.rows[0].ysf; |
| | | this.cardlist[2].value = response.rows[0].wzx; |
| | | this.cardlist[3].value = response.rows[0].yc; |
| | | this.cardlist[4].value = response.rows[0].fssb; |
| | | this.cardlist[5].value = response.rows[0].blq; |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dfs; |
| | | this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | // this.cardlist[6].value = response.rows[0].yfs; |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | console.log(item.endDay, "时间"); |
| | | } |
| | | console.log(item, "item"); |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | console.log(idArray, "idArray111"); |
| | | } |
| | | console.log(idArray, "idArray222"); |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // 查找id对应的对象 |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery(refresh) { |
| | | |
| | | 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 { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | |
| | | this.topqueryParams.endOutHospTime = this.dateRange[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() { |
| | |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.download( |
| | | "system/user/export", |
| | | "smartor/serviceSubtask/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | |
| | | background: #8dc8f8; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body { |
| | | background: #fdd0d7; |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body:hover { |
| | | background: #f88d96; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | | |
| | | ::v-deep.ysfleftvlue .el-card__body { |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #8df8a4; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | | .button-bb { |
| | | font-weight: 500; |
| | | background-color: #2ba05c; |
| | |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="guid"> |
| | | <el-select style="width: 100%;" v-model="loginForm.guid" placeholder="请选择院区"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :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" |
| | |
| | | rememberMe: false, |
| | | code: "", |
| | | uuid: "", |
| | | guid:'', |
| | | }, |
| | | options: [ |
| | | { value: "1", label: "中医大二院" }, |
| | | { value: "2", label: "中医大三院" }, |
| | | { value: "3", label: "中医大四院" }, |
| | | { value: "4", label: "中医大五院" },], |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请输入您的账号" }, |
| | |
| | | password: [ |
| | | { required: true, trigger: "blur", message: "请输入您的密码" }, |
| | | ], |
| | | // code: [{ required: true, trigger: "change", message: "请输入验证码" }], |
| | | guid: [{ required: true, trigger: "blur", message: "请选择院区" }], |
| | | }, |
| | | loading: false, |
| | | // 验证码开关 |
| | |
| | | created() { |
| | | this.getCode(); |
| | | this.getCookie(); |
| | | if (localStorage.getItem('guid')) { |
| | | this.loginForm.guid = localStorage.getItem('guid'); |
| | | } |
| | | }, |
| | | methods: { |
| | | getCode() { |
| | |
| | | Cookies.remove("password"); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | localStorage.removeItem('guid'); |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then(() => { |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 100%; |
| | | overflow:hidden !important; |
| | | overflow: hidden !important; |
| | | background-position: center center; |
| | | |
| | | /* 背景图不平铺 */ |
| | | background-repeat: no-repeat; |
| | | /* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ |
| | | background-attachment: fixed; |
| | | /* 让背景图基于容器大小伸缩 */ |
| | | background-size: cover; |
| | | /* 设置背景颜色,背景图加载过程中会显示背景色 */ |
| | | background-color: #464646; |
| | | 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; |
| | | } |
| | |
| | | font-size: 12px; |
| | | letter-spacing: 1px; |
| | | } |
| | | |
| | | .login-code-img { |
| | | height: 38px; |
| | | } |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.endDay ? scope.row.endDay + "天" : "日期缺失" |
| | | scope.row.endDay ? scope.row.endDay + "天" : "" |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.endDay ? scope.row.endDay + "天" : "日期缺失" |
| | | scope.row.endDay ? scope.row.endDay + "天" : "" |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <!-- <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">患者范围</div> |
| | | </div> |
| | |
| | | <el-tab-pane label="体检" name="physical"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <!-- 右侧数据 --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"> |
| | | <!-- <div class="leftvlue-top"> |
| | | <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> |
| | | <el-tab-pane name="Local"> |
| | | <span class="mulsz" slot="label">按出院病区统计 </span> |
| | |
| | | <span class="mulsz" slot="label">按出院科室统计 </span> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> --> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--标签数据--> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="医院" prop="userName"> |
| | | <!-- <el-form-item label="医院" prop="userName"> |
| | | <el-select v-model="queryParams.value1" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="出院病区" prop="userName"> |
| | | <el-select v-model="queryParams.value2" placeholder="请选择"> |
| | | <!-- <el-select v-model="queryParams.leavehospitaldistrictcodes" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> --> |
| | | <el-select |
| | | v-model="queryParams.leavehospitaldistrictcodes" |
| | | |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择病区" |
| | | > |
| | | <el-option |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="管理方案" prop="userName"> |
| | | <!-- <el-form-item label="管理方案" prop="userName"> |
| | | <el-select v-model="queryParams.value3" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="出院日期" prop="userName"> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="出院日期" prop="userName"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime1" |
| | | align="right" |
| | |
| | | :picker-options="pickerOptionsa" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="计划随访日期" prop="userName"> |
| | | </el-form-item> --> |
| | | <el-form-item label="统计日期" prop="userName"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime2" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | v-model="queryParams.dateRange" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | fixed |
| | | label="序号" |
| | | align="center" |
| | | key="tagid" |
| | | prop="tagid" |
| | | width="50" |
| | | /> |
| | | /> --> |
| | | <el-table-column |
| | | fixed |
| | | label="出院病区" |
| | | align="center" |
| | | key="tagname" |
| | | prop="tagname" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="100" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="应随访数" |
| | | label="服务总量" |
| | | align="center" |
| | | key="updateTime" |
| | | prop="updateTime" |
| | | key="serviceCount" |
| | | prop="serviceCount" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span |
| | | >{{ scope.row.updateBy }} |
| | | <p>{{ scope.row.updateTime }}</p></span |
| | | <p>{{ scope.row.serviceCount }}</p></span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="随访完成数" |
| | | label="患者过滤数量" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="bzxCount" |
| | | prop="bzxCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="应随访量" |
| | | align="center" |
| | | key="ysfCount" |
| | | prop="ysfCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="发送失败" |
| | | align="center" |
| | | key="fssbCount" |
| | | prop="fssbCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="待发送" |
| | | align="center" |
| | | key="dfsCount" |
| | | prop="dfsCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="已发送" |
| | | align="center" |
| | | key="yfsCount" |
| | | prop="yfsCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="已完成" |
| | | align="center" |
| | | key="ywcCount" |
| | | prop="ywcCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访完成率" |
| | | align="center" |
| | | key="isupload" |
| | | prop="isupload" |
| | | width="120" |
| | | key="sfwcl" |
| | | prop="sfwcl" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ Number(scope.row.sfwcl)*100 }}%</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI外呼次数" |
| | | <!-- <el-table-column |
| | | label="公众号发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI随访完成数" |
| | | label="公众号随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI随访完成率" |
| | | label="公众号随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="短信发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxfscs" |
| | | prop="dxfscs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxsfwccs" |
| | | prop="dxsfwccs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxsfwcl" |
| | | prop="dxsfwcl" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="人工随访次数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | </el-table-column> --> |
| | | <!-- <el-table-column |
| | | label="失访数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | > --> |
| | | <!-- </el-table-column> --> |
| | | <el-table-column |
| | | label="异常总数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | key="yczs" |
| | | prop="yczs" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="danger" |
| | | plain |
| | | @click="routerErr(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{scope.row.yczs}}</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="总异常率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="回复异常数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | key="hfycs" |
| | | prop="hfycs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="回复异常及时处理数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="操作" |
| | |
| | | </el-table-column> --> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | <!-- <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | /> --> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | listtag, |
| | | tagclassifylist, |
| | | } from "@/api/system/label"; |
| | | import { |
| | | getSfStatistics,deptTreeSelect |
| | | } from "@/api/system/user"; |
| | | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | |
| | | idds: "", //分类id |
| | | // 总条数 |
| | | total: 0, |
| | | flatArray:[], |
| | | amendtag: false, //是否修改类别 |
| | | lstamendtag: false, //是否修改标签 |
| | | scavisible: false, //删除弹框 |
| | |
| | | goQRCodeVisible: false, //二维码弹框 |
| | | sidecolumnval: "", //类别搜索 |
| | | propss: { multiple: true }, |
| | | topqueryParams: {}, //导出筛选条件 |
| | | |
| | | options: [ |
| | | { |
| | | value: 1, |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | serviceType:[2], |
| | | dateRange: [], |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | this.gitclasify(); |
| | | this.getDeptTree(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** 查询标签列表 */ |
| | | getList() { |
| | | listtag(this.addDateRange(this.queryParams)).then((response) => { |
| | | getSfStatistics(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.total = response.total; |
| | | this.userList = response.rows; |
| | | // this.total = response.total; |
| | | this.userList = response.data; |
| | | }); |
| | | }, |
| | | /** 修改标签 */ |
| | |
| | | tagdescription: row.tagdescription, |
| | | tagid: row.tagid, |
| | | }; |
| | | }, |
| | | // 获取科室树 |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | console.log( this.deptOptions,' this.deptOptions'); |
| | | |
| | | this.flatArray = this.flattenArray(response.data); |
| | | console.log(this.flatArray,'this.flatArray'); |
| | | }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | | |
| | | // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 |
| | | function flatten(element) { |
| | | // 如果当前元素有子元素,继续递归 |
| | | if (element.children && element.children.length > 0) { |
| | | element.children.forEach((child) => flatten(child)); |
| | | } else { |
| | | // 克隆元素以避免修改原始数据 |
| | | let item = JSON.parse(JSON.stringify(element)); |
| | | result.push(item); // 将最底层的元素添加到结果数组 |
| | | } |
| | | } |
| | | |
| | | // 从顶层元素开始递归 |
| | | multiArray.forEach((element) => flatten(element)); |
| | | return result; // 返回只包含最底层元素的一维数组 |
| | | }, |
| | | addladeltag() { |
| | | this.lstamendtagVisible = true; |
| | |
| | | tagdescription: "", |
| | | tagid: "", |
| | | }; |
| | | }, |
| | | routerErr(row) { |
| | | console.log(row,'跳转异常'); |
| | | this.$router.push({ |
| | | path: "/followvisit/discharge", |
| | | query: { |
| | | errtype: 1, |
| | | leavehospitaldistrictcode: row.leavehospitaldistrictcode, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 表单重置 |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | console.log(); |
| | | this.queryParams.startTime = this.parseTime(this.queryParams.dateRange[0]); |
| | | this.queryParams.endTime = this.parseTime(this.queryParams.dateRange[1]); |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.tagname = ""; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.queryParams.dateRange = []; |
| | | this.queryParams.leavehospitaldistrictcodes=[]; |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | |
| | | this.download( |
| | | "base/tag/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 180px; |
| | | min-height: 100vh; |
| | |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | // width: 80%; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `http://192.168.168.60:8095`, |
| | | // target: `http://10.202.20.185:8095`, |
| | | // target: `http://192.168.2.10:8095`, |
| | | target: `http://192.168.2.10:8095`, |
| | | // target:`http://localhost:8095`, |
| | | // target: `http://192.168.101.135:8095`, |
| | | // target: `http://192.168.101.166:8093`, |
| | | target: `http://192.168.191.181:8095`, |
| | | // target: `http://192.168.191.181:8095`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |