| | |
| | | <div id="app"> |
| | | <router-view /> |
| | | <theme-picker /> |
| | | <Assistant v-if="routertf" /> |
| | | <!-- <Assistant v-if="routertf" /> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | data: data, |
| | | }); |
| | | } |
| | | // 删除问卷模板分类 |
| | | export function deleteTaskQuestioncomit(svyid) { |
| | | return request({ |
| | | url: "/smartor/svytemplateTask/remove/" + svyid, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | export function getTaskQuestioncomit(svyid) { |
| | | return request({ |
| | | url: "/smartor/svytemplateTask/" + svyid, |
| | | method: "get", |
| | | }); |
| | | } |
| | | //科室病区模板关联新增 |
| | | export function depthospgetson(data) { |
| | | return request({ |
| | | url: "/smartor/td/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | //科室病区模板关联查询 |
| | | export function depthospgetsonlist(data) { |
| | | return request({ |
| | | url: "/smartor/td/list", |
| | | method: "get", |
| | | params: data, |
| | | }); |
| | | } |
| | | // 删除科室病区模板分类 |
| | | export function depthospgetsondel(id) { |
| | | return request({ |
| | | url: "/smartor/td/remove/" + id, |
| | | method: "get", |
| | | }); |
| | | } |
| | | // 医护保存数据 |
| | | |
| | | export function serviceSubtaskDetailedit(data) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtaskDetail/editByCondition", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | export function serviceSubtaskDetailadd(data) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtaskDetail/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | |
| | | data: data, |
| | | }); |
| | | } |
| | | // 新增或修改单个服务 |
| | | export function Editsingletaskson(data) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtask/update", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | // 删除任务并删除关联的患者服务 |
| | | export function delTaskInfo(taskid) { |
| | | return request({ |
| | |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串 |
| | | |
| | | // 查询用户列表 |
| | | export function listUser(query) { |
| | | return request({ |
| | | url: '/system/user/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/system/user/list", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 查询用户详细 |
| | | export function getUser(userId) { |
| | | return request({ |
| | | url: '/system/user/getInfo/' + parseStrEmpty(userId), |
| | | method: 'get' |
| | | }) |
| | | url: "/system/user/getInfo/" + parseStrEmpty(userId), |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 新增用户 |
| | | export function addUser(data) { |
| | | return request({ |
| | | url: '/system/user/add', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 修改用户 |
| | | export function updateUser(data) { |
| | | return request({ |
| | | url: '/system/user/edit', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/edit", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 删除用户 |
| | | export function delUser(userId) { |
| | | return request({ |
| | | url: '/system/user/remove/' + userId, |
| | | method: 'get' |
| | | }) |
| | | url: "/system/user/remove/" + userId, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 用户密码重置 |
| | | export function resetUserPwd(userId, password) { |
| | | const data = { |
| | | userId, |
| | | password |
| | | } |
| | | password, |
| | | }; |
| | | return request({ |
| | | url: '/system/user/resetPwd', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/resetPwd", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 用户状态修改 |
| | | export function changeUserStatus(userId, status) { |
| | | const data = { |
| | | userId, |
| | | status |
| | | } |
| | | status, |
| | | }; |
| | | return request({ |
| | | url: '/system/user/changeStatus/edit', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/changeStatus/edit", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 查询用户个人信息 |
| | | export function getUserProfile() { |
| | | return request({ |
| | | url: '/system/user/profile', |
| | | method: 'get' |
| | | }) |
| | | url: "/system/user/profile", |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 修改用户个人信息 |
| | | export function updateUserProfile(data) { |
| | | return request({ |
| | | url: '/system/user/profile/edit', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/profile/edit", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 用户密码重置 |
| | | export function updateUserPwd(oldPassword, newPassword) { |
| | | const data = { |
| | | oldPassword, |
| | | newPassword |
| | | } |
| | | newPassword, |
| | | }; |
| | | return request({ |
| | | url: '/system/user/profile/updatePwd', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | url: "/system/user/profile/updatePwd", |
| | | method: "post", |
| | | params: data, |
| | | }); |
| | | } |
| | | |
| | | // 用户头像上传 |
| | | export function uploadAvatar(data) { |
| | | return request({ |
| | | url: '/system/user/profile/avatar', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | url: "/system/user/profile/avatar", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 查询授权角色 |
| | | export function getAuthRole(userId) { |
| | | return request({ |
| | | url: '/system/user/authRole/' + userId, |
| | | method: 'get' |
| | | }) |
| | | url: "/system/user/authRole/" + userId, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 保存授权角色 |
| | | export function updateAuthRole(data) { |
| | | return request({ |
| | | url: '/system/user/authRole', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | url: "/system/user/authRole", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | // 保存授权角色 |
| | | export function removeusertd(userid,deptcode) { |
| | | return request({ |
| | | url: "/smartor/userdept/removeByCode/" + userid + "/" + deptcode, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 查询部门下拉树结构 |
| | | export function deptTreeSelect() { |
| | | return request({ |
| | | url: '/system/user/deptTree', |
| | | method: 'get' |
| | | }) |
| | | url: "/system/user/deptTree", |
| | | method: "get", |
| | | }); |
| | | } |
| | | // 新增科室/病区 |
| | | export function adduserdept(data) { |
| | | return request({ |
| | | url: '/smartor/userdept/add', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | url: "/smartor/userdept/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="预警提醒"> |
| | | ><el-form-item label="异常提醒"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">是</el-radio> |
| | | <el-radio :label="6">否</el-radio> |
| | |
| | | <div |
| | | v-for="(item, index) in powerList" |
| | | :key="index" |
| | | @click.stop="activeHandle(index)" |
| | | @click.stop="activeHandle(index,item.url)" |
| | | > |
| | | <div |
| | | :class="activeIndex == index ? 'active power-item' : 'power-item'" |
| | |
| | | powerList: [ |
| | | { |
| | | path: require("@/assets/images/huanzheliebiao.png"), |
| | | url:'/patient/patient/', |
| | | label: "患者", |
| | | }, |
| | | { |
| | | path: require("@/assets/images/fwwu.png"), |
| | | label: "服务", |
| | | url:'/followvisit/tasklist/', |
| | | label: "任务", |
| | | }, |
| | | { |
| | | path: require("@/assets/images/duanxinjilu.png"), |
| | | url:'', |
| | | label: "短信", |
| | | }, |
| | | { |
| | | path: require("@/assets/images/dianhua.png"), |
| | | url:'', |
| | | label: "电话", |
| | | }, |
| | | { |
| | | path: require("@/assets/images/zxlt.png"), |
| | | url:'', |
| | | label: "在线聊天", |
| | | }, |
| | | ], |
| | |
| | | // 获取元素位置属性 |
| | | this.floatDragDom = this.floatDrag.getBoundingClientRect(); |
| | | // 设置初始位置 |
| | | // this.left = this.clientWidth - this.floatDragDom.width - this.distanceRight; |
| | | this.right = 0; |
| | | this.left = this.clientWidth - this.floatDragDom.width - this.distanceRight; |
| | | // this.right = 0; |
| | | this.top = |
| | | this.clientHeight - this.floatDragDom.height - this.distanceBottom; |
| | | this.initDraggable(); |
| | |
| | | console.log("是否展开", this.flag); |
| | | }, |
| | | // 点击哪个power |
| | | activeHandle(index) { |
| | | activeHandle(index,url) { |
| | | //把我们自定义的下标赋值 |
| | | this.activeIndex = index; |
| | | this.$router.push({ |
| | | path: url, |
| | | }) |
| | | console.log("HHHH", index); |
| | | }, |
| | | // 获取要改变得样式属性 |
| | |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="预警提醒"> |
| | | ><el-form-item label="异常提醒"> |
| | | <el-radio-group v-model="item.isabnormal"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | |
| | | > |
| | | <el-table-column |
| | | v-if="multiplechoice" |
| | | fixed="left" |
| | | type="selection" |
| | | width="50" |
| | | align="center" |
| | |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | <div v-for="(item, index) in tableLabel"> |
| | | <el-table-column |
| | | v-for="(item, index) in tableLabel" |
| | | v-if="item.label == '出院日期'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.endtime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="item.label == '性别'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | v-if="item.label != '性别' && item.label != '出院日期'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | |
| | | :formatter="formatData" |
| | | > |
| | | </el-table-column> |
| | | </div> |
| | | <!-- <el-table-column |
| | | v-for="(item, index) in tableLabel" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | </el-table-column> --> |
| | | <!-- <el-table-column |
| | | label="是否可用" |
| | | align="center" |
| | |
| | | clearSelection() { |
| | | // 在这里编写清除选择的逻辑 |
| | | this.$refs.multipleTableson.clearSelection(); |
| | | |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | selectDictLabel, |
| | | selectDictLabels, |
| | | handleTree, |
| | | daysBetween, |
| | | } from "@/utils/ruoyi"; |
| | | import LemonMessageVoice from './websocket/lemon-message-voice'; |
| | | Vue.component(LemonMessageVoice.name,LemonMessageVoice); |
| | |
| | | Vue.prototype.getConfigKey = getConfigKey; |
| | | Vue.prototype.parseTime = parseTime; |
| | | Vue.prototype.formatTime = formatTime; |
| | | Vue.prototype.daysBetween = daysBetween; |
| | | Vue.prototype.resetForm = resetForm; |
| | | Vue.prototype.addDateRange = addDateRange; |
| | | Vue.prototype.selectDictLabel = selectDictLabel; |
| | |
| | | introduction: (state) => state.user.introduction, |
| | | roles: (state) => state.user.roles, |
| | | permissions: (state) => state.user.permissions, |
| | | leavehospitaldistrictcodes: (state) => state.user.leavehospitaldistrictcodes, |
| | | leaveldeptcodes: (state) => state.user.leaveldeptcodes, |
| | | belongWards: (state) => state.user.belongWards, |
| | | belongDepts: (state) => state.user.belongDepts, |
| | | permission_routes: (state) => state.permission.routes, |
| | | topbarRouters: (state) => state.permission.topbarRouters, |
| | | defaultRoutes: (state) => state.permission.defaultRoutes, |
| | |
| | | token: getToken(), |
| | | name: '', |
| | | avatar: '', |
| | | leavehospitaldistrictcodes:[], |
| | | leaveldeptcodes:[], |
| | | belongWards:[], |
| | | belongDepts:[], |
| | | roles: [], |
| | | permissions: [], |
| | | // 服务类型 |
| | |
| | | SET_Serviceauthority: (state, Serviceauthority) => { |
| | | state.Serviceauthority = Serviceauthority |
| | | }, |
| | | SET_leavehospitaldistrictcodes: (state, leavehospitaldistrictcodes) => { |
| | | state.leavehospitaldistrictcodes = leavehospitaldistrictcodes |
| | | SET_leavehospitaldistrictcodes: (state, belongWards) => { |
| | | state.belongWards = belongWards |
| | | }, |
| | | SET_leaveldeptcodes: (state, leaveldeptcodes) => { |
| | | state.leaveldeptcodes = leaveldeptcodes |
| | | SET_leaveldeptcodes: (state, belongDepts) => { |
| | | state.belongDepts = belongDepts |
| | | } |
| | | }, |
| | | |
| | |
| | | commit('SET_ROLES', ['ROLE_DEFAULT']) |
| | | } |
| | | commit('SET_NAME', user.userName) |
| | | commit('SET_leavehospitaldistrictcodes', user.leavehospitaldistrictcodes) |
| | | commit('SET_leaveldeptcodes', user.leaveldeptcodes) |
| | | commit('SET_leavehospitaldistrictcodes', user.belongWards) |
| | | commit('SET_leaveldeptcodes', user.belongDepts) |
| | | commit('SET_AVATAR', avatar) |
| | | resolve(res) |
| | | }).catch(error => { |
| | |
| | | const s_url = sessionObj.url; // 请求地址 |
| | | const s_data = sessionObj.data; // 请求数据 |
| | | const s_time = sessionObj.time; // 请求时间 |
| | | const interval = 10; // 间隔时间(ms),小于此时间视为重复提交 |
| | | const interval = 4; // 间隔时间(ms),小于此时间视为重复提交 |
| | | if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { |
| | | const message = '数据正在处理,请勿重复提交'; |
| | | console.warn(`[${s_url}]: ` + message) |
| | |
| | | return time_str; |
| | | } |
| | | // 出院/入院天数计算 |
| | | export function Daycount(dateString1, dateString2){ |
| | | // 将日期字符串转换为日期对象 |
| | | var date1 = new Date(dateString1); |
| | | var date2 = new Date(dateString2); |
| | | |
| | | // 计算时间差(毫秒) |
| | | var timeDifference = date2 - date1; |
| | | |
| | | export function daysBetween(dateString) { |
| | | // 将输入的日期字符串转换为Date对象 |
| | | var startDate = new Date(dateString); |
| | | // 获取当前日期 |
| | | var currentDate = new Date(); |
| | | // 计算两个日期之间的时间差(毫秒) |
| | | var differenceInTime = currentDate - startDate; |
| | | // 将时间差转换为天数 |
| | | var daysDifference = Math.ceil(timeDifference / (1000 * 3600 * 24)); |
| | | |
| | | return daysDifference; |
| | | var differenceInDays = differenceInTime / (1000 * 3600 * 24); |
| | | // 返回天数,四舍五入到最接近的整数 |
| | | return Math.round(differenceInDays); |
| | | } |
| | | // 过滤器 |
| | | export function formatTime(val) { |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="模板名称" prop="status"> |
| | | <el-input v-model="topqueryParams.templatename"></el-input> |
| | | <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-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" |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | width="120" |
| | | width="180" |
| | | /> |
| | | <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | | label="姓名" |
| | | |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | /> |
| | | <el-table-column |
| | | label="身份证号码" |
| | | |
| | | width="200" |
| | | align="center" |
| | | key="sfzh" |
| | | prop="sfzh" |
| | | /> |
| | | <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="longSendTime" |
| | | prop="longSendTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.longSendTime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="出院天数" |
| | | width="120" |
| | | align="center" |
| | | key="endDay" |
| | | prop="endDay" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.endDay ? scope.row.endDay + "天" : "日期缺失" |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <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="随访异常记录" |
| | | width="120" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | /> |
| | | |
| | | |
| | | <!-- <el-table-column |
| | | label="病历号" |
| | | align="center" |
| | |
| | | <!-- <el-table-column label="年龄" align="center" key="age" prop="age" /> --> |
| | | <!-- <el-table-column label="性别" align="center" key="sex" prop="sex" /> --> |
| | | <!-- <el-table-column label="床号" align="center" key="badNo" prop="badNo" /> --> |
| | | <!-- <el-table-column |
| | | <el-table-column |
| | | label="科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="病区" |
| | | align="center" |
| | |
| | | prop="createBy" |
| | | width="120" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="责任医师" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="出院时间" |
| | |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.finishtime) }}</span> |
| | | <span>{{ parseTime(scope.row.finishtime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | |
| | | ><span class="button-zx"><i class="el-icon-s-order"></i></span |
| | | ></el-button> |
| | | </el-tooltip> --> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | <el-button size="medium" type="text" @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>查看详情</span |
| | | ></el-button |
| | |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "User", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | name: "Discharge", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | value: [], |
| | | list: [], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所属患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | }, |
| | | ], |
| | | loading: false, |
| | | states: [ |
| | | "Alabama", |
| | |
| | | value: 3, |
| | | label: "已发送", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "不执行", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "发送失败", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "已完成", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "异常", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "正常", |
| | | }, |
| | | ], |
| | | serviceState: [], |
| | | // 表单校验 |
| | |
| | | methods: { |
| | | /** 查询门诊随访服务列表 */ |
| | | getList() { |
| | | 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.loading = true; |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.userList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | 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.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.topqueryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.topqueryParams = {}; |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | |
| | | Seedetails(row) { |
| | | this.$router.push({ |
| | | path: "/followvisit/record/detailpage/", |
| | | query: { taskid: row.taskid, patid: row.patid }, |
| | | query: { taskid: row.taskid, patid: row.patid,id: row.id}, |
| | | }); |
| | | }, |
| | | // 导入按钮 |
| | |
| | | v-if="!Whetherall" |
| | | type="primary" |
| | | @click="getTaskservelist()" |
| | | >查看患者全部服务</el-button> |
| | | <el-button |
| | | v-else |
| | | type="success" |
| | | @click="getTaskservelist(taskid)" |
| | | >查看患者本次服务信息</el-button> |
| | | >查看患者全部服务</el-button |
| | | > |
| | | <el-button v-else type="success" @click="getTaskservelist(taskid)" |
| | | >查看患者本次服务信息</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <!-- <el-button type="success">随访后短信</el-button> --> |
| | |
| | | <el-table-column prop="sendname" align="center" label="姓名"> |
| | | </el-table-column> |
| | | <el-table-column prop="sendstate" align="center" label="服务状态"> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="finishtime" |
| | |
| | | > |
| | | </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="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" |
| | | key="excep" |
| | | prop="excep" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_yujing" |
| | | :value="scope.row.excep" |
| | | /> |
| | | </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 |
| | | prop="taskName" |
| | | align="center" |
| | | width="200" |
| | |
| | | label="任务名称" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="templatename" |
| | | align="center" |
| | |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <div class="Followuserinfo"> |
| | | <div> |
| | | <div class="headline"> |
| | | <div>人工处理意见</div> |
| | | </div> |
| | | <div style="margin-left: 30px"> |
| | | <el-button type="warning" @click="Editsingletaskson('1')" |
| | | >暂不处理</el-button |
| | | > |
| | | <el-button type="success" @click="Editsingletaskson('2')" |
| | | >病情稳定</el-button |
| | | > |
| | | <el-button type="primary" @click="Editsingletaskson('3')" |
| | | >通知就诊</el-button |
| | | > |
| | | <el-button type="danger" @click="Editsingletaskson('4')" |
| | | >失访</el-button |
| | | > |
| | | <el-button type="info" @click="Editsingletaskson('5')" |
| | | >人工随访</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-tabs type="border-card"> |
| | | <el-tab-pane> |
| | |
| | | :key="item.aaa" |
| | | > |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :class=" |
| | | item.isabnormal |
| | | ? 'scriptTopic-isabnormal' |
| | | : 'scriptTopic-dev' |
| | | " |
| | | :key="index" |
| | | v-if="item.scriptType == 1" |
| | | > |
| | |
| | | v-for="( |
| | | items, index |
| | | ) in item.svyLibTemplateTargetoptions" |
| | | :class="items.isabnormal ? 'red-star' : ''" |
| | | :key="index" |
| | | :label="items.optioncontent" |
| | | >{{ items.optioncontent }}</el-radio |
| | |
| | | </div> |
| | | <!-- 多选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :class=" |
| | | item.isabnormal |
| | | ? 'scriptTopic-isabnormal' |
| | | : 'scriptTopic-dev' |
| | | " |
| | | :key="index" |
| | | v-if="item.scriptType == 2" |
| | | > |
| | |
| | | @change="updateScore($event, index, item)" |
| | | > |
| | | <el-checkbox |
| | | :class="items.isabnormal ? 'red-star' : ''" |
| | | @change="$forceUpdate()" |
| | | v-for="( |
| | | items, indexs |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-button type="primary" @click="getdetail">保存问卷</el-button> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index"; |
| | | import { |
| | | getsearchrResults, |
| | | getTaskservelist, |
| | | Editsingletaskson, |
| | | serviceSubtaskDetailedit, |
| | | serviceSubtaskDetailadd, |
| | | } from "@/api/AiCentre/index"; |
| | | export default { |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | data() { |
| | | return { |
| | | radio: "1", |
| | |
| | | logsheetlist: [], |
| | | sendname: null, |
| | | serviceType: null, |
| | | id: null, |
| | | taskid: null, |
| | | patid: null, |
| | | }; |
| | |
| | | |
| | | created() { |
| | | this.taskid = this.$route.query.taskid; |
| | | this.id = this.$route.query.id; |
| | | this.sendname = this.$route.query.sendname; |
| | | this.patid = this.$route.query.patid; |
| | | this.serviceType = this.$route.query.serviceType; |
| | |
| | | getsearchrResults({ |
| | | taskid: this.taskid, |
| | | patid: this.patid, |
| | | subId: this.id, |
| | | isFinish:false, |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.tableDatatop = res.data.scriptResult.script; |
| | | this.tableDatatop.forEach((item) => { |
| | | if (item.scriptResult && item.scriptType != 2) { |
| | | item.isoption = 3; |
| | | item.scriptResult = JSON.parse(item.scriptResult); |
| | | } else if (item.scriptResult && item.scriptType == 2) { |
| | | item.scriptResult = item.scriptResult.split("&"); |
| | | item.isoption = 3; |
| | | } |
| | | }); |
| | | this.taskname = res.data.taskName; |
| | | this.overdata(); |
| | | } |
| | | }); |
| | | }, |
| | | // 医护人员存储数据 |
| | | getdetail() { |
| | | let excep = ""; |
| | | this.tableDatatop.forEach((item) => { |
| | | var objs = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | |
| | | if (objs.isabnormal) { |
| | | excep = 1; |
| | | } |
| | | |
| | | let obj = { |
| | | asrtext: null, |
| | | patid: this.patid, |
| | | subId: this.id, |
| | | taskid: this.taskid, |
| | | scriptid: item.id, |
| | | questiontext: item.scriptContent, |
| | | }; |
| | | if (item.scriptType == 2 && item.scriptResult[0]) { |
| | | obj.asrtext = item.scriptResult.join("&"); |
| | | } else if (item.scriptType != 2 && item.scriptResult) { |
| | | obj.asrtext = JSON.stringify(item.scriptResult); |
| | | } |
| | | |
| | | if (item.isoption == 3) { |
| | | serviceSubtaskDetailedit(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | } else { |
| | | this.$modal.error("修改失败"); |
| | | } |
| | | }); |
| | | } else { |
| | | serviceSubtaskDetailadd(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res); |
| | | } else { |
| | | this.$modal.error("修改失败"); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | this.Editsingletasksonyic(excep); |
| | | }, |
| | | // 获取患者记录 |
| | | getTaskservelist(taskid) { |
| | | this.taskid = taskid; |
| | | if (taskid) { |
| | | this.Whetherall=false; |
| | | }else{ |
| | |
| | | } |
| | | }); |
| | | }, |
| | | Editsingletaskson(son) { |
| | | let objson = {}; |
| | | getTaskservelist({ |
| | | patid: this.patid, |
| | | taskid: this.taskid, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | objson = res.rows[0]; |
| | | objson.suggest = son; |
| | | Editsingletaskson(objson).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("记录成功"); |
| | | this.getTaskservelist(this.taskid); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | Editsingletasksonyic(excep) { |
| | | let objson = {}; |
| | | getTaskservelist({ |
| | | patid: this.patid, |
| | | taskid: this.taskid, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | objson = res.rows[0]; |
| | | objson.excep = excep; |
| | | Editsingletaskson(objson).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("服务修改成功"); |
| | | this.getTaskservelist(this.taskid); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 更改异常状态 |
| | | Seedetails(row) { |
| | | this.$modal.confirm('是否查看任务为"' + optionids + '"的服务项?').then(function () { |
| | | }).then(() => { |
| | | this.$modal |
| | | .confirm('是否查看任务为"' + optionids + '"的服务项?') |
| | | .then(function () {}) |
| | | .then(() => { |
| | | this.getList(); |
| | | }).catch(() => { }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | handleOptionChange(a, b, c) { |
| | | var obj = this.tableDatatop[b].svyLibTemplateTargetoptions.find( |
| | | (item) => item.optioncontent == a |
| | | ); |
| | | if (obj.isabnormal) { |
| | | this.tableDatatop[b].isabnormal = true; |
| | | } else { |
| | | this.tableDatatop[b].isabnormal = false; |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | overdata() { |
| | | this.tableDatatop.forEach((item, index) => { |
| | | console.log(item.svyLibTemplateTargetoptions); |
| | | |
| | | var obj = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | if (obj) { |
| | | if (obj.isabnormal) { |
| | | this.tableDatatop[index].isabnormal = true; |
| | | } else { |
| | | this.tableDatatop[index].isabnormal = false; |
| | | } |
| | | this.$forceUpdate(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | updateScore(a, b, c) { |
| | | console.log(a); |
| | | console.log(b); |
| | | console.log(c); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | } |
| | | } |
| | | } |
| | | .scriptTopic-isabnormal { |
| | | color: red; |
| | | } |
| | | .headline { |
| | | font-size: 24px; |
| | | height: 40px; |
| | |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .red-star { |
| | | ::v-deep.el-radio__label { |
| | | position: relative; |
| | | padding-right: 10px; /* 根据需要调整 */ |
| | | } |
| | | ::v-deep.el-radio__label::after { |
| | | content: "*"; |
| | | color: red; |
| | | position: absolute; |
| | | right: -5px; /* 根据需要调整 */ |
| | | top: 0; |
| | | } |
| | | ::v-deep.el-checkbox__label { |
| | | position: relative; |
| | | padding-right: 10px; /* 根据需要调整 */ |
| | | } |
| | | ::v-deep.el-checkbox__label::after { |
| | | content: "*"; |
| | | color: red; |
| | | position: absolute; |
| | | right: -5px; /* 根据需要调整 */ |
| | | top: 0; |
| | | } |
| | | } |
| | | ::v-deep.offside-value .el-radio__label { |
| | | color: #fff; |
| | | } |
| | |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="服务项目" prop="status"> |
| | | <el-form-item label="任务模板" prop="status"> |
| | | <el-input |
| | | v-model="topqueryParams.templatename" |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-select |
| | | v-model="longTask" |
| | | placeholder="请选择任务类型" |
| | | > |
| | | <el-option |
| | | v-for="item in longtermlist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | |
| | | size="medium" |
| | | @click="handleAdd" |
| | | :disabled="!tasktopic" |
| | | >新增</el-button |
| | | >新建任务</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="19"> |
| | | <!-- <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-col> --> |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | |
| | | <el-table-column |
| | | label="任务名称" |
| | | fixed |
| | | width="120" |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | |
| | | /> |
| | | <el-table-column |
| | | label="任务描述" |
| | | width="280" |
| | | align="center" |
| | | key="taskDesc" |
| | | prop="taskDesc" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="服务项目" |
| | | width="120" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="待执行/总任务" |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="是否长期任务" |
| | | align="center" |
| | | key="longTask" |
| | | prop="longTask" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.longTask?'长期任务':'非长期' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | v-if="scope.row.sendState == 1 || scope.row.sendState == 3" |
| | | v-if="(scope.row.sendState == 1 || scope.row.sendState == 3)&&!scope.row.longTask" |
| | | size="medium" |
| | | type="text" |
| | | @click="sponsor(scope.row)" |
| | |
| | | ><i class="el-icon-s-promotion"></i>发起</span |
| | | ></el-button |
| | | > |
| | | |
| | | <el-button size="medium" type="text" @click="newAdd(scope.row)" |
| | | <!-- <el-button size="medium" type="text" @click="newAdd(scope.row)" |
| | | ><span class="button-xj" |
| | | ><i class="el-icon-circle-plus-outline"></i>终止</span |
| | | ></el-button |
| | | > --> |
| | | <el-button size="medium" type="text" @click="handleUpdate(scope.row,1)" |
| | | ><span class="button-xj" |
| | | ><i class="el-icon-circle-plus-outline"></i>依照新增</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | |
| | | postOptions: [], |
| | | // 角色选项 |
| | | roleOptions: [], |
| | | longTask:0, |
| | | taskform: { |
| | | showDate: [], |
| | | showTimeMorn: [], |
| | |
| | | previewvalue: { |
| | | username: "这个医生对你怎么样", |
| | | }, |
| | | longtermlist:[ |
| | | { |
| | | value: '1', |
| | | label: "长期任务", |
| | | }, |
| | | { |
| | | value: '0', |
| | | label: "普通任务", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | |
| | | propss: { multiple: true }, |
| | | options: [], |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "待审核", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "执行中", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "执行完成", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "已停止", |
| | | }, |
| | | ], |
| | | // 表单校验 |
| | | rules: { |
| | | userName: [ |
| | |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | 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; |
| | |
| | | } |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | handleUpdate(row,newadd) { |
| | | if (this.topqueryParams.type == 1) { |
| | | this.$router.push({ |
| | | path: "/followvisit/particty", |
| | |
| | | id: row.taskid, |
| | | type: this.topqueryParams.type, |
| | | serviceType: this.tasktopic, |
| | | newadd:newadd,//是否依照新建 |
| | | }, |
| | | }); |
| | | } else if (this.topqueryParams.type == 2) { |
| | |
| | | id: row.taskid, |
| | | type: this.topqueryParams.type, |
| | | serviceType: this.tasktopic, |
| | | newadd:newadd, |
| | | }, |
| | | }); |
| | | } else if (this.topqueryParams.type == 3) { |
| | |
| | | id: row.taskid, |
| | | type: this.topqueryParams.type, |
| | | serviceType: this.tasktopic, |
| | | newadd:newadd, |
| | | }, |
| | | }); |
| | | } |
| | |
| | | } |
| | | }, |
| | | |
| | | // 依照新增 |
| | | newAdd(row) { |
| | | this.$modal |
| | | .confirm("是否依照当前任务创建新任务?") |
| | | .then(() => { |
| | | if (this.tasktopic == 5) { |
| | | this.$router.push({ |
| | | path: "/followvisit/particty", |
| | | query: { type: 1, id: row.taskid, nhh: 1 }, |
| | | }); |
| | | } else if ( |
| | | this.tasktopic == 2 || |
| | | this.tasktopic == 3 || |
| | | this.tasktopic == 6 |
| | | ) { |
| | | this.$router.push({ |
| | | path: "/followvisit/QuestionnaireTask", |
| | | query: { type: 2, id: row.taskid, nhh: 1 }, |
| | | }); |
| | | } else if (this.tasktopic == 8 || this.tasktopic == 4) { |
| | | this.$router.push({ |
| | | path: "/followvisit/Missioncreation", |
| | | query: { type: 3, id: row.taskid, nhh: 1 }, |
| | | }); |
| | | } |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 暂停 |
| | | stop(row) { |
| | | console.log(row); |
| | |
| | | console.log(this.ruleForm.richText, "this.ruleForm.richText"); |
| | | // 处理内网html |
| | | addrichText({ |
| | | // content: this.content, |
| | | content: this.content, |
| | | fileName: this.generateRandomHtmlFilename(), |
| | | }).then((resf) => { |
| | | this.ruleForm.htmlRichText = resf.msg.replace( |
| | |
| | | <el-dialog title="模板预览" :visible.sync="previewtf" width="60%"> |
| | | <div class="preview-left"> |
| | | <!-- 单选 --> |
| | | <div v-html="richText"></div> |
| | | <div v-html="htmlRichText"></div> |
| | | </div> |
| | | <!-- <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="previewGo">前往模板详情修改</el-button> |
| | |
| | | haoeducation: "", |
| | | indexid: null, |
| | | inputValue: "", |
| | | richText: "", |
| | | htmlRichText: "", |
| | | radio: "主分类", |
| | | inputVisible: false, |
| | | previewtf: false, |
| | |
| | | }, |
| | | // 查看宣教 |
| | | Vieweducation(row) { |
| | | this.richText = null; |
| | | this.htmlRichText = null; |
| | | this.previewtf = true; |
| | | axios |
| | | .get(row.richText) |
| | | .get(row.htmlRichText) |
| | | .then((response) => { |
| | | console.log(response.data, "数据"); // 输出获取到的文件内容 |
| | | this.richText = response.data; |
| | | this.richText = this.addStyleToImages(this.richText); |
| | | this.htmlRichText = response.data; |
| | | this.htmlRichText = this.addStyleToImages(this.htmlRichText); |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("获取富文本失败"); |
| | |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">问题类型</div> |
| | | <div class="top-wj">问题分类</div> |
| | | <div class="top-tj" @click="Newcategory">+添加</div> |
| | | </div> |
| | | <div class="center-ss"> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="问题标题" prop="userName"> |
| | | <el-form-item label="问题主题" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.scriptTopic" |
| | | placeholder="请输入" |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="compileUpdate" |
| | | v-hasPermi="['system:user:add']" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | label="题目标题" |
| | | label="问题主题" |
| | | fixed |
| | | align="center" |
| | | key="scriptTopic" |
| | | prop="scriptTopic" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="问题内容" |
| | | align="center" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="指标名称" |
| | | fixed |
| | | align="center" |
| | | key="targetname" |
| | | prop="targetname" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="题目内容" |
| | | align="center" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | |
| | | /><el-table-column |
| | | label="适用方式" |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="illnessUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-date"></i>详情</span |
| | | ></el-button |
| | |
| | | <el-button type="primary" @click="confirmillness">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="题目预览" :visible.sync="topicVisible" width="50%"> |
| | | <el-dialog title="问题预览" :visible.sync="topicVisible" width="50%"> |
| | | <div class="preview-left"> |
| | | <div class="dev-text"> |
| | | <span>{{ topicform.scriptContent }}</span> |
| | |
| | | <el-divider></el-divider> |
| | | |
| | | <div style="margin-left: 8%"> |
| | | <el-form-item label="问题内容" prop="scriptContent"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | id="scriptContent" |
| | | v-model="topicobj.scriptContent" |
| | | @focus="handleInput('scriptContent')" |
| | | placeholder="请输入问题内容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="问题说明" prop="targetname"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | v-model="topicobj.scriptDesc" |
| | | placeholder="请输入说明" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="问题分类" prop="categoryid"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" v-if="topicobj.scoretype == 1"> |
| | | <el-form-item label="题目得分" prop="score"> |
| | | <el-form-item label="问题得分" prop="score"> |
| | | <el-input |
| | | v-model="topicobj.score" |
| | | placeholder="请输入分数" |
| | |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目标题" prop="scriptTopic"> |
| | | ><el-form-item label="问题标题" prop="scriptTopic"> |
| | | <el-input |
| | | v-model="topicobj.scriptTopic" |
| | | placeholder="请输入标题" |
| | |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="语言" prop="language"> |
| | | <el-select |
| | | v-model="topicobj.language" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="topicobjaa" |
| | | v-for="item in languagelist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目类型" prop="scriptType"> |
| | | ><el-form-item label="问题类型" prop="scriptType"> |
| | | <el-select |
| | | v-model="topicobj.scriptType" |
| | | @change="changefn" |
| | |
| | | > |
| | | </el-option> </el-select></el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="题目内容" prop="scriptContent"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | id="scriptContent" |
| | | v-model="topicobj.scriptContent" |
| | | @focus="handleInput('scriptContent')" |
| | | placeholder="请输入题目内容" |
| | | ></el-input> |
| | | <el-col :span="8"> |
| | | <el-form-item label="语言" prop="language"> |
| | | <el-select |
| | | v-model="topicobj.language" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="topicobjaa" |
| | | v-for="item in languagelist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- <el-form-item |
| | | label="" |
| | | prop="scriptContent" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | <el-form-item label="题目说明" prop="targetname"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | v-model="topicobj.scriptDesc" |
| | | placeholder="请输入说明" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <!-- <el-form-item label="选中指标:"> |
| | | <span style="margin-left: 30px" |
| | |
| | | |
| | | <el-row> |
| | | <el-col :span="10"> |
| | | <el-form-item label="值类型"> |
| | | <el-form-item label="结果类型"> |
| | | <el-radio-group |
| | | :disabled="true" |
| | | v-model="topicobj.valueType" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="题目类型"> |
| | | <el-form-item label="问题题型"> |
| | | <el-radio-group |
| | | :disabled="true" |
| | | v-model="topicobj.scriptType" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="预警提醒"> |
| | | <el-form-item label="异常提醒"> |
| | | <el-radio-group v-model="item.isabnormal"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | |
| | | /> |
| | | </div> |
| | | </el-drawer> |
| | | <el-dialog title="题目预览" :visible.sync="topicVisible" width="50%"> |
| | | <el-dialog title="问题预览" :visible.sync="topicVisible" width="50%"> |
| | | <div class="preview-left"> |
| | | <div class="dev-text"> |
| | | <span>{{ topicobj.scriptContent }}</span> |
| | |
| | | { required: true, message: "可用状态不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptTopic: [ |
| | | { required: true, message: "题目标题不能为空", trigger: "blur" }, |
| | | { required: true, message: "问题标题不能为空", trigger: "blur" }, |
| | | ], |
| | | ismandatory: [ |
| | | { required: true, message: "是否必填不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | { required: true, message: "问题类型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitway: [ |
| | | { required: true, message: "适用方式不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptContent: [ |
| | | { required: true, message: "题目内容不能为空", trigger: "blur" }, |
| | | { required: true, message: "问题内容不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | |
| | | <el-step> |
| | | <template slot="title"> |
| | | <span style="cursor: pointer" @click="Editprogress = 2" |
| | | >问卷题目</span |
| | | >问卷问题</span |
| | | > |
| | | </template> |
| | | </el-step> |
| | |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | label-width="180px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="问卷名称" prop="svyname"> |
| | | <div style="width: 55vw"> |
| | | <el-input v-model="ruleForm.svyname"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="问卷描述" prop="description"> |
| | | <el-input |
| | | style="width: 55vw" |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请输入内容" |
| | | v-model="ruleForm.description" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="问卷分类" prop="categoryid"> |
| | | <el-select |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="评价类型" prop="scoreType"> |
| | | <el-select |
| | | v-model="ruleForm.scoreType" |
| | |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="可用状态" prop="isAvailable"> |
| | | <el-radio-group v-model="ruleForm.isAvailable"> |
| | | <el-form-item label="可用状态" prop="isenable"> |
| | | <el-radio-group v-model="ruleForm.isenable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | | :label="item.value" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="问卷标题" prop="svyname"> |
| | | <div style="width: 55vw"> |
| | | <el-input v-model="ruleForm.svyname"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="问卷描述" prop="description"> |
| | | <el-input |
| | | style="width: 55vw" |
| | | type="textarea" |
| | | :rows="5" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="ruleForm.description" |
| | | <!-- <el-row :gutter="20"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="长期任务" prop="longTemp"> |
| | | <el-radio-group v-model="ruleForm.longTemp"> |
| | | <el-radio |
| | | v-for="(item, index) in longtype" |
| | | :label="item.value" |
| | | >{{ item.label }}</el-radio |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" v-if="ruleForm.longTemp"> |
| | | <el-form-item label="任务周期(几天后)" prop="name"> |
| | | <el-input |
| | | v-model="ruleForm.sendDay" |
| | | placeholder="默认5天后" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | |
| | | <el-row> |
| | | <el-form-item prop="dynamicTags"> |
| | |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-cascader |
| | | style="width: 55vw" |
| | | <el-select |
| | | v-model="tempDetpRelevanceslist" |
| | | :options="deptList" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | | clearable |
| | | @remove-tag="removetag" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.deptName }}</span> |
| | | <span v-if="!node.isLeaf"> |
| | | ({{ data.children.length }}) |
| | | </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item></el-col |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="问卷结束语" prop="conclusion"> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <el-select |
| | | v-model="tempbelongWards" |
| | | @remove-tag="removehpsp" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="结束语" prop="conclusion"> |
| | | <el-input |
| | | style="width: 55vw; line-height: 80px" |
| | | type="textarea" |
| | |
| | | <!-- 问卷设置 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <div class="leftvlue-jbxx"> |
| | | 问卷题目设置 |
| | | 问卷问题设置 |
| | | <span style="" |
| | | ><el-button |
| | | type="warning" |
| | | icon="el-icon-finished" |
| | | round |
| | | @click="test" |
| | | >题目规则效验</el-button |
| | | >问题规则效验</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | |
| | | icon="el-icon-plus" |
| | | round |
| | | @click="getaddtopiclist" |
| | | >添加题目</el-button |
| | | >添加问题</el-button |
| | | > |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-edit-outline" |
| | | round |
| | | @click="Operateit = !Operateit" |
| | | >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button |
| | | >{{ !Operateit ? "编辑问题" : "完整信息展示" }}</el-button |
| | | > |
| | | </div> |
| | | <div style="display: flex" v-if="ruleForm.scoreType==1"> |
| | |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | label="题目标题" |
| | | label="问题主题" |
| | | align="center" |
| | | key="scriptTopic" |
| | | prop="scriptTopic" |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="!Operateit" |
| | | label="题目内容" |
| | | label="问题内容" |
| | | align="center" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | |
| | | :model="topicobj" |
| | | class="demo-form-inline" |
| | | > |
| | | <div class="headline">题目设置详情</div> |
| | | <div class="headline">问题设置详情</div> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="题目标题"> |
| | | <el-form-item label="问题主题"> |
| | | <el-input |
| | | v-model="topicobj.scriptTopic" |
| | | placeholder="请输入标题" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="问题内容"> |
| | | <el-input |
| | | style="width: 600px" |
| | | type="textarea" |
| | | :rows="2" |
| | | autosize |
| | | placeholder="请输入问题内容" |
| | | v-model="topicobj.scriptContent" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="题目类型"> |
| | | ><el-form-item label="问题类型"> |
| | | <el-select |
| | | v-model="topicobj.scriptType" |
| | | disabled |
| | |
| | | ></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | label="题目分值" |
| | | label="问题分值" |
| | | v-if="topicobj.scoretype == 1" |
| | | > |
| | | <el-input |
| | |
| | | > |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否可用"> |
| | | <el-radio-group v-model="topicobj.isavailable"> |
| | | <el-radio-group v-model="topicobj.isenable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | | :label="item.value" |
| | |
| | | > |
| | | <el-row :gutter="5"> |
| | | <el-col :span="16" |
| | | ><el-form-item label="选项"> |
| | | ><el-form-item label="选项名称"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入选项" |
| | |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="异常提醒"> |
| | | <el-radio-group v-model="item.isabnormal"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-row :gutter="10" v-if="topicobj.branchFlag == 1"> |
| | | <el-col :span="20" |
| | |
| | | <el-button type="primary" @click="laststep()">上一步</el-button> |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button @click="Departmenttreatment('ruleForm')" |
| | | >保存题目数据</el-button |
| | | >保存问题数据</el-button |
| | | > |
| | | </div> |
| | | <!-- 问卷预览 --> |
| | |
| | | <el-button type="primary" @click="laststep()">上一步</el-button> |
| | | </div> |
| | | </div> |
| | | <!-- 添加题目弹窗 --> |
| | | <!-- 添加问题弹窗 --> |
| | | <el-drawer |
| | | title="添加题目" |
| | | title="添加问题" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | size="50%" |
| | |
| | | @keyup.enter.native="getaddtopiclist" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="题目类型" prop="scriptTopic"> |
| | | <el-form-item label="问题类型" prop="scriptTopic"> |
| | | <el-select |
| | | v-model="queryParams.scriptType" |
| | | size="medium" |
| | |
| | | class="demo-form-inline" |
| | | > |
| | | <div class="headline"> |
| | | 题目设置详情 |
| | | 问题设置详情 |
| | | <span style="margin-left: 30px" |
| | | ><el-button type="primary" @click="Submittopicobj" |
| | | >保存新增</el-button |
| | |
| | | <el-divider></el-divider> |
| | | <div> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="18" |
| | | ><el-form-item label="问题内容"> |
| | | <el-input |
| | | style="width: 400px" |
| | | type="textarea" |
| | | v-model="indexform.scriptContent" |
| | | placeholder="请输入问题内容" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="题目标题"> |
| | | <el-form-item label="问题主题"> |
| | | <el-input |
| | | v-model="indexform.scriptTopic" |
| | | placeholder="请输入题目标题" |
| | | placeholder="请输入问题主题" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="题目得分"> |
| | | <el-form-item label="问题得分"> |
| | | <el-input |
| | | v-model="indexform.score" |
| | | placeholder="请输入分数" |
| | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="是否可用"> |
| | | <el-radio-group v-model="indexform.isAvailable"> |
| | | <el-radio-group v-model="indexform.isenable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | | :label="item.value" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="18" |
| | | ><el-form-item label="题目内容"> |
| | | <el-input |
| | | style="width: 400px" |
| | | type="textarea" |
| | | v-model="indexform.scriptContent" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | </div> |
| | | <div> |
| | | <el-form-item label="指标名称" prop="deptId"> |
| | | <el-input |
| | | style="width: 250px" |
| | | type="textarea" |
| | | :rows="2" |
| | | v-model="indexform.targetname" |
| | | placeholder="请输入指标名称" |
| | | maxlength="20" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="指标描述" prop="deptId"> |
| | | <el-input |
| | | style="width: 250px" |
| | | type="textarea" |
| | | :rows="2" |
| | | v-model="indexform.targetdesc" |
| | | placeholder="请输入指标描述" |
| | | maxlength="60" |
| | |
| | | |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="值类型"> |
| | | <el-form-item label="结果类型"> |
| | | <el-radio-group v-model="indexform.valueType"> |
| | | <el-radio :label="1">选项</el-radio> |
| | | <el-radio :label="2">文本</el-radio> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="题目类型"> |
| | | <el-form-item label="问题类型"> |
| | | <el-radio-group v-model="indexform.scriptType"> |
| | | <el-radio :label="1">单选</el-radio> |
| | | <el-radio :label="2">多选</el-radio> |
| | |
| | | <el-col :span="11" |
| | | ><el-form-item label="选项名称"> |
| | | <el-input |
| | | style="width: 400px" |
| | | type="text" |
| | | placeholder="请输入选项分值" |
| | | v-model="item.optioncontent" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="预警提醒"> |
| | | <el-form-item label="异常提醒"> |
| | | <el-radio-group v-model="item.isabnormal"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | |
| | | import store from "@/store"; |
| | | import { |
| | | getQtemplateclassify, |
| | | delQtemplateclassify, |
| | | addQtemplateclassify, |
| | | depthospgetson, |
| | | depthospgetsonlist, |
| | | getQtemplateobj, |
| | | compileQtemplate, |
| | | Qtemplateinfo, |
| | |
| | | Followupinfo, |
| | | issueinfo, |
| | | getissuelist, |
| | | depthospgetsondel, |
| | | deltargetillness, |
| | | addtargetillness, |
| | | getillnesslist, |
| | |
| | | tempDetpRelevances: [], |
| | | svyLibTemplateTagList: [], |
| | | scoreType: "4", |
| | | isAvailable: "0", |
| | | isenable: "0", |
| | | longTemp: "0", |
| | | sendDay: "5", |
| | | }, |
| | | indexform: { |
| | | svyLibTemplateTargetoptions: [], |
| | |
| | | { required: true, message: "评价类型不能为空", trigger: "blur" }, |
| | | ], |
| | | svyname: [ |
| | | { required: true, message: "问卷标题不能为空", trigger: "blur" }, |
| | | { required: true, message: "问卷名称不能为空", trigger: "blur" }, |
| | | ], |
| | | isAvailable: [ |
| | | isenable: [ |
| | | { required: true, message: "可用状态不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptTopic: [ |
| | | { required: true, message: "题目标题不能为空", trigger: "blur" }, |
| | | { required: true, message: "问题主题不能为空", trigger: "blur" }, |
| | | ], |
| | | ismandatory: [ |
| | | { required: true, message: "是否必填不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | { required: true, message: "问题类型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitway: [ |
| | | { required: true, message: "问卷方式不能为空", trigger: "blur" }, |
| | |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | addvalue: "添加题目", |
| | | // 题目表格数据 |
| | | addvalue: "添加问题", |
| | | // 问题表格数据 |
| | | userList: [], |
| | | deptList: [], |
| | | props: { multiple: true, value: "deptId", label: "deptName" }, |
| | |
| | | delScriptVOList: [], |
| | | illnesslistapi: [], |
| | | illnesslist: [], |
| | | tempDetpRelevanceslist: [], |
| | | tempDetpRelevanceslist: [], //科室数据 |
| | | tempDetpRelevanceslistform: [], //科室数据 |
| | | tempbelongWards: [], //病区数据 |
| | | tempbelongWardsform: [], //病区数据 |
| | | optionstag: [], |
| | | valuetype: [], |
| | | qremark: [], |
| | | hosplist: [], |
| | | deptlist: [], |
| | | usable: [ |
| | | { value: "0", label: "可用" }, |
| | | { value: "1", label: "停用" }, |
| | | ], |
| | | longtype: [ |
| | | { value: "0", label: "普通任务" }, |
| | | { value: "1", label: "长期任务" }, |
| | | ], |
| | | required: [ |
| | | { value: "1", label: "必填" }, |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | arr: [ |
| | | [ |
| | | { id: 1, grade: "5" }, |
| | | { id: 2, grade: "5" }, |
| | | { id: 3, grade: "5" }, |
| | | { id: 4, grade: "5" }, |
| | | ], |
| | | [ |
| | | { id: 1, grade: "5" }, |
| | | { id: 3, grade: "5" }, |
| | | { id: 4, grade: "5" }, |
| | | ], |
| | | [ |
| | | { id: 1, grade: "5" }, |
| | | { id: 2, grade: "5" }, |
| | | { id: 4, grade: "5" }, |
| | | ], |
| | | ], |
| | | belongWards: [], |
| | | belongDepts: [], |
| | | queryParamsdept: { |
| | | tempid: "", |
| | | type: 1, |
| | | }, |
| | | }; |
| | | }, |
| | | activated() { |
| | | console.log(this.id); |
| | | |
| | | if (this.id != this.$route.query.id) { |
| | | this.getissueinfo(); |
| | | this.gettabList(); |
| | |
| | | this.ruleForm.svyLibTemplateTagList.filter( |
| | | (item) => item.isoperation != 3 |
| | | ); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | this.delScriptVOList = []; |
| | | this.tempDetpRelevanceslistform = []; |
| | | this.tempbelongWardsform = []; |
| | | this.$forceUpdate(); |
| | | console.log(this.ruleForm.svyTemplateLibScripts); |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.courtyardlist = store.getters.courtyardlist; |
| | | this.askvaluetype = store.getters.askvaluetype; |
| | | this.appraiselist = store.getters.appraiselist; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | console.log(this.belongWards, "belongWards"); |
| | | console.log(this.belongDepts, "belongDepts"); |
| | | |
| | | // this.test(); |
| | | }, |
| | |
| | | return this.illnesslist.length - 10; |
| | | }, |
| | | }, |
| | | |
| | | methods: { |
| | | // 公共方法--------------- |
| | | getIndexInArray(arr, obj) { |
| | |
| | | // 获取数据 |
| | | getissueinfo() { |
| | | this.id = this.$route.query.id; |
| | | (this.ruleForm = { |
| | | this.queryParamsdept.tempid = this.id; |
| | | this.ruleForm = { |
| | | svyTemplateLibScripts: [], |
| | | tempDetpRelevances: [], |
| | | svyLibTemplateTagList: [], |
| | | scoreType: "4", |
| | | isAvailable: "0", |
| | | }), |
| | | (this.topicobj = {}); |
| | | isenable: "0", |
| | | longTemp: "0", |
| | | sendDay: "5", |
| | | }; |
| | | this.topicobj = {}; |
| | | |
| | | if (this.id) { |
| | | getQtemplateobj({ svyid: this.id }).then((res) => { |
| | |
| | | this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map( |
| | | this.processElement |
| | | ); |
| | | this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | }); |
| | | getillness({ outid: this.id, type: 5 }).then((res) => { |
| | |
| | | this.ruleForm.isenable = "1"; |
| | | } |
| | | |
| | | listDept(this.queryParams).then((response) => { |
| | | this.deptList = this.handleTree(response.data, "deptId"); |
| | | }); |
| | | // 分类 |
| | | getQtemplateclassify({}).then((res) => { |
| | | this.optionsclass = res.rows; |
| | | }); |
| | | this.tempDetpRelevanceslist = []; |
| | | this.tempbelongWards = []; |
| | | |
| | | depthospgetsonlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | if (item.deptType == 1) { |
| | | this.deptlist.push(item); |
| | | this.tempDetpRelevanceslist.push(item.deptCode); |
| | | } else if (item.deptType == 2) { |
| | | this.hosplist.push(item); |
| | | this.tempbelongWards.push(item.deptCode); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | submitForm(formName) { |
| | |
| | | } |
| | | if (this.id) { |
| | | this.ruleForm.isoperation = 2; |
| | | this.ruleForm.tempDetpRelevances = null; |
| | | compileQtemplate(this.ruleForm).then((res) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.confirmillness(); |
| | | this.putbelongDepts(); |
| | | this.$modal.closeLoading(); |
| | | this.$router.go(-1); |
| | | }); |
| | |
| | | this.ruleForm.version = this.ruleForm.version |
| | | ? this.ruleForm.version |
| | | : "1.0"; |
| | | this.ruleForm.tempDetpRelevances = null; |
| | | compileQtemplate(this.ruleForm).then((res) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.confirmillness(res.data); |
| | | this.putbelongDepts(res.data); |
| | | this.$modal.closeLoading(); |
| | | this.$router.go(-1); |
| | | }); |
| | | } |
| | | }, |
| | | // 科室处理 |
| | | // 科室/院区处理 |
| | | Departmenttreatment() { |
| | | this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); |
| | | this.ruleForm.svyTemplateLibScripts = |
| | | this.ruleForm.svyTemplateLibScripts.concat(this.delScriptVOList); |
| | | const result = this.tempDetpRelevanceslist.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | // id数组查数组对象 |
| | | result.forEach((item) => { |
| | | const condition = this.ruleForm.tempDetpRelevances.some( |
| | | (obj) => obj.deptId === item |
| | | ); |
| | | if (!condition) { |
| | | listDept({ deptId: item }).then((res) => { |
| | | console.log(res.data[0]); |
| | | res.data[0].type = 2; |
| | | this.ruleForm.tempDetpRelevances.push(res.data[0]); |
| | | console.log(this.tempDetpRelevanceslist, "tempDetpRelevanceslist"); |
| | | console.log(this.deptlist, "deptlist"); |
| | | console.log(this.hosplist, "deptlist"); |
| | | this.tempDetpRelevanceslist.forEach((item) => { |
| | | console.log(item); |
| | | let result = this.deptlist.some((obj) => obj.deptCode == item); |
| | | console.log(this.result, "result"); |
| | | |
| | | if (!result) { |
| | | this.tempDetpRelevanceslistform.push({ |
| | | deptType: 1, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 1, |
| | | }); |
| | | } |
| | | }); |
| | | // 数组对象查id数组 |
| | | this.ruleForm.tempDetpRelevances.forEach((item) => { |
| | | const condition = result.some((obj) => obj === item.deptId); |
| | | if (!condition) { |
| | | const index = this.ruleForm.tempDetpRelevances.indexOf(item); |
| | | this.ruleForm.tempDetpRelevances[index].delFlag = 1; |
| | | this.tempbelongWards.forEach((item) => { |
| | | let result = this.hosplist.some((obj) => obj.deptCode == item); |
| | | |
| | | console.log(this.result, "resulthhh"); |
| | | |
| | | if (!result) { |
| | | this.tempbelongWardsform.push({ |
| | | deptType: 2, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 1, |
| | | }); |
| | | } |
| | | }); |
| | | console.log(this.tempbelongWardsform, "tempbelongWardsform"); |
| | | console.log( |
| | | this.tempDetpRelevanceslistform, |
| | | "tempDetpRelevanceslistform" |
| | | ); |
| | | |
| | | // return |
| | | setTimeout(() => { |
| | | this.submitForm(); |
| | | }, 1000); |
| | | }, 500); |
| | | }, |
| | | // 科室删除触发 |
| | | removetag(row) { |
| | | let result = this.deptlist |
| | | .filter((item) => item.deptCode == row) |
| | | .map((item) => item.id); |
| | | console.log(result.length); |
| | | if (result.length) { |
| | | depthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 删除删除触发 |
| | | removehpsp(row) { |
| | | let result = this.hosplist |
| | | .filter((item) => item.deptCode == row) |
| | | .map((item) => item.id); |
| | | if (result.length) { |
| | | depthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 下一步 |
| | | nextstep() { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | // 获取题目列表 |
| | | // 获取问题列表 |
| | | getaddtopiclist() { |
| | | this.drawer = true; |
| | | this.queryParams.scoretype = this.ruleForm.scoreType; |
| | |
| | | console.log(this.userList); |
| | | }); |
| | | }, |
| | | // 新增题目 |
| | | // 新增问题 |
| | | addtopic(row) { |
| | | row.isoperation = 1; |
| | | row.svyLibScriptOptions.forEach((item) => { |
| | |
| | | console.log(this.ruleForm.svyTemplateLibScripts); |
| | | }, |
| | | |
| | | // 修改题目信息 |
| | | // 修改问题信息 |
| | | Submittopicobj() { |
| | | this.$modal |
| | | .confirm( |
| | |
| | | this.drawer = false; |
| | | |
| | | this.sortFn(); |
| | | this.$modal.msgSuccess("题目新增成功,保存模板失效"); |
| | | this.$modal.msgSuccess("问题新增成功,保存模板失效"); |
| | | }); |
| | | }, |
| | | // 新增变量 |
| | |
| | | this.illnessVisible = false; |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | }, |
| | | // 保存科室/病区 |
| | | putbelongDepts(id) { |
| | | if (this.tempDetpRelevanceslistform.length > 0) { |
| | | depthospgetson(this.tempDetpRelevanceslistform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("科室新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | if (this.tempbelongWardsform.length > 0) { |
| | | depthospgetson(this.tempbelongWardsform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("院区新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | resetQuery() { |
| | | this.queryParams = { pageNum: 1, pageSize: 10 }; |
| | | this.getaddtopiclist(); |
| | |
| | | sumArray(arr) { |
| | | // const arrsum = arr; |
| | | // arrsum.forEach((item) => { |
| | | // // 判断题目和模板层级 |
| | | // // 判断问题和模板层级 |
| | | // console.log(item, "一条链路"); |
| | | |
| | | // const totalScore = item.reduce((accumulator, current) => { |
| | |
| | | if (allGreaterThanTen) { |
| | | this.$modal.msgSuccess("分值校验成功"); |
| | | } else { |
| | | this.$modal.msgError("题目分值累加和模板分值不符"); |
| | | this.$modal.msgError("问题分值累加和模板分值不符"); |
| | | } |
| | | }, |
| | | |
| | |
| | | ); |
| | | |
| | | if (notInB.length) { |
| | | this.$modal.msgError("题目未全部使用"); |
| | | this.$modal.msgError("问题未全部使用"); |
| | | } else { |
| | | this.$modal.msgSuccess("题目全部使用"); |
| | | this.$modal.msgSuccess("问题全部使用"); |
| | | } |
| | | }); |
| | | arr.forEach((item) => { |
| | |
| | | return acc; |
| | | }, {}); |
| | | const whether = item.values(idCount).some((count) => count > 1); // 如果有任何 id 的计数大于 1 就返回 true |
| | | if (!whether) this.$modal.msgError("配置项有题目重复"); |
| | | if (!whether) this.$modal.msgError("配置项有问题重复"); |
| | | }); |
| | | }, |
| | | // 题目和选项间的分值判断 |
| | | // 问题和选项间的分值判断 |
| | | Scorejudgment() { |
| | | let scorearr = this.topicobj.svyLibScriptOptions; |
| | | let isValid = scorearr.every((score, index) => { |
| | |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">问卷类型</div> |
| | | <div class="top-wj">问卷分类</div> |
| | | <div class="top-tj" @click="Newcategory">+添加</div> |
| | | </div> |
| | | <div class="center-ss"> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="主要内容" prop="userName"> |
| | | <el-form-item label="问卷描述" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.description" |
| | | placeholder="请输入" |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="版本" |
| | | align="center" |
| | | key="version" |
| | | prop="version" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="主要内容" |
| | | label="问卷描述" |
| | | align="center" |
| | | key="description" |
| | | prop="description" |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="illnessUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-date"></i>详情</span |
| | | ></el-button |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="goQRCode(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | > |
| | | <span class="button-text" |
| | | ><i class="el-icon-edit"></i>预览</span |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="ViewQuestionnaire(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textck" |
| | | ><i class="el-icon-edit"></i>查看</span |
| | | ></el-button |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-edit"></i>修改</span |
| | | ></el-button |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-edit"></i>删除</span |
| | | ></el-button |
| | |
| | | return { |
| | | codeUrl: "", |
| | | loginForm: { |
| | | username: "admin", |
| | | password: "admin123", |
| | | username: "", |
| | | password: "", |
| | | rememberMe: false, |
| | | code: "", |
| | | uuid: "", |
| | |
| | | taskid: 355, |
| | | patid: 265823, |
| | | kcb: "", |
| | | excep:'', |
| | | questionList: [ |
| | | // { |
| | | // scriptType: 1, |
| | |
| | | let form = { |
| | | param1: this.taskid, |
| | | param2: this.patid, |
| | | excep:this.excep, |
| | | serviceSubtaskDetailList: [], |
| | | }; |
| | | const arr = structuredClone(this.questionList); |
| | |
| | | svyLibTemplateScriptVOS: [], |
| | | }; |
| | | const arr = structuredClone(this.questionList); |
| | | console.log(arr,'srr') |
| | | arr.forEach((item, index) => { |
| | | var obj = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | if (obj.isabnormal) { |
| | | console.log(obj.isabnormal); |
| | | form.excep = 1; |
| | | this.excep=1; |
| | | } |
| | | }); |
| | | |
| | | arr.forEach((item) => { |
| | | if (item.scriptType == 2 && item.scriptResult[0]) { |
| | | item.scriptResult = item.scriptResult.join("&"); |
| | |
| | | } |
| | | } |
| | | } |
| | | .red-star { |
| | | position: relative; |
| | | padding-right: 15px; |
| | | } |
| | | |
| | | .red-star { |
| | | ::v-deep.el-radio__label { |
| | | position: relative; |
| | |
| | | <template> |
| | | <div class="questionnaire"> |
| | | <div class="CONTENT"> |
| | | <!-- <div class="CONTENT"> |
| | | <div class="title">新华医院医护知识宣教</div> |
| | | <div class="preview-left"> |
| | | <!-- 单选 --> |
| | | <div v-html="richText"></div> |
| | | </div> |
| | | <!-- <el-form :model="formData" label-width="80px"> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="submitForm">确认查看</el-button> |
| | | </el-form-item> |
| | | </el-form> --> |
| | | |
| | | </div> --> |
| | | <div class="CONTENT" > |
| | | <div class="preview-left"> |
| | | <div class="toptitle"> |
| | | <div class="title">{{ taskname ? taskname : "新华医院医护知识宣教" }}</div> |
| | | <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> |
| | | {{ |
| | | kcb |
| | | ? kcb |
| | | : "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。" |
| | | }} |
| | | <!-- 亲爱的患者/家属您好,为了更好的了解您出院后的康复情况,给您适当及时的健康指导,请您抽一点宝贵时间,完成这份出院随访问卷调查。 --> |
| | | </div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div v-html="richText"></div> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | padding-top: 50px; |
| | | font-size: 24px; |
| | | color: #175997; |
| | | font-weight: 600; |
| | | margin-bottom: 10px; |
| | | " |
| | | > |
| | | 感谢您的阅览! |
| | | </div> |
| | | <div style="font-size: 20px"> |
| | | {{ |
| | | jsy |
| | | ? jsy |
| | | : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!" |
| | | }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | }, |
| | | richText: "<p>Hello, <strong>world</strong>!</p>", |
| | | url:'', |
| | | taskname:'', |
| | | kcb:'', |
| | | jsy:'', |
| | | }; |
| | | }, |
| | | |
| | |
| | | getQuestionnaire() { |
| | | this.taskid = this.$route.query.param1; |
| | | this.patid = this.$route.query.param2; |
| | | this.taskname = this.$route.query.param3; |
| | | // // let taskid = |
| | | // // "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw=="; |
| | | // // let patid = |
| | |
| | | getExternalfollowup({ param1: this.taskid, param2: this.patid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.url = res.data.script[0].richText; |
| | | this.jsy = res.data.jsy; |
| | | this.kcb = res.data.kcb; |
| | | // 临时获取数据 |
| | | axios |
| | | .get(this.url) |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .questionnaire { |
| | | // background-image: url("../assets/images/chainbackground.jpg"); |
| | | // background-repeat: no-repeat; |
| | | // background-position: center center; |
| | | // background-size: cover; |
| | | // height: 100vh; |
| | | background-image: url("../assets/images/chainbackground1.jpg"); |
| | | background-color: #f9f9fb; |
| | | background-size: cover; |
| | | background-attachment: fixed; /* 保持背景固定 */ |
| | | background-position: center; |
| | |
| | | margin: 0; |
| | | padding: 0; |
| | | .CONTENT { |
| | | padding: 10px; |
| | | padding-top: 15px; |
| | | padding-bottom: 15px; |
| | | .title { |
| | | color: #3769f3; |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | margin-bottom: 20px; |
| | |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | margin: 10px; |
| | | margin-bottom: 60px; |
| | | background-color: #fff; |
| | | border-radius: 5px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | padding: 10px; |
| | | padding-bottom: 100px; |
| | | height: 100%; |
| | | // background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | img { |
| | | width: 80vw !important; |
| | | height: 20vh !important; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="是否会员" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.whether" |
| | | multiple |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in whether" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="过滤时间" prop="tagId"> |
| | | <el-date-picker |
| | | v-model="queryParams.value1" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-row> |
| | | <el-form-item label="过滤类型" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.tagIds" |
| | | multiple |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in Filterreason" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | </el-row> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | fixed |
| | | label="姓名" |
| | | align="center" |
| | | key="name" |
| | | prop="name" |
| | | /> |
| | | <el-table-column label="姓名(缺)" align="center" key="name" prop="name" /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column |
| | | label="审核人" |
| | | label="年龄" |
| | | align="center" |
| | | key="checkBy" |
| | | prop="checkBy" |
| | | width="120" |
| | | key="age" |
| | | prop="age" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | label="审核状态" |
| | | label="出生年月" |
| | | align="center" |
| | | key="checkFlag" |
| | | prop="checkFlag" |
| | | width="120" |
| | | /> |
| | | key="birthdate" |
| | | prop="birthdate" |
| | | width="160" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="过滤类型" |
| | | align="center" |
| | | key="filterdesc" |
| | | prop="filterdesc" |
| | | key="notrequiredreason" |
| | | prop="notrequiredreason" |
| | | width="120" |
| | | /><el-table-column |
| | | label="过滤申请说明" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.futter_patient" |
| | | :value="scope.row.notrequiredreason" |
| | | /> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="过滤原因" |
| | | align="center" |
| | | key="filternotes" |
| | | prop="filternotes" |
| | | key="notrequiredreason" |
| | | prop="notrequiredreason" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="居住地" |
| | | align="center" |
| | | key="placeOfResidence" |
| | | prop="placeOfResidence" |
| | | width="180" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <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.tagname }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="证件号码" |
| | | align="center" |
| | | key="idcardno" |
| | | prop="idcardno" |
| | | width="190" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="联系方式" |
| | | align="center" |
| | |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="家庭住址" |
| | | label="建档日期" |
| | | align="center" |
| | | key="idcardno" |
| | | prop="idcardno" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="申请日期" |
| | | align="center" |
| | | key="applyTime" |
| | | prop="applyTime" |
| | | key="createTime" |
| | | prop="createTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.applyTime) }}</span> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="审核日期" |
| | | align="center" |
| | | key="checkTime" |
| | | prop="checkTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.checkTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 添加或修改用户配置对话框 --> |
| | | <el-dialog |
| | | :title="amendtag ? '修改患者信息' : '新增患者'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="证件类型" prop="idcardtype"> |
| | | <el-select v-model="form.idcardtype" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="item in paperstypes" |
| | | :key="item.papersname" |
| | | :label="item.papersname" |
| | | :value="item.papersname" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="证件号" prop="idcardno"> |
| | | <el-input |
| | | v-model="form.idcardno" |
| | | placeholder="请输入证件号" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="本人手机号" prop="telcode"> |
| | | <el-input |
| | | v-model="form.telcode" |
| | | placeholder="请输入手机号" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="亲属手机号" prop="relativetelcode"> |
| | | <el-input |
| | | v-model="form.relativetelcode" |
| | | placeholder="请输入亲属手机号" |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请输入年龄" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="患者标签"> |
| | | <!-- <el-select v-model="form.sex" placeholder="请选择"> --> |
| | | <el-select v-model="form.tagList" multiple placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in optionstag" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- </el-select> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | 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> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { delUser } from "@/api/system/user"; |
| | | |
| | | import { |
| | | listfiltration, |
| | | editfiltration, |
| | | messagelistpatient, |
| | | alterpatient, |
| | | addfiltration, |
| | | particularpatient, |
| | | delfiltration, |
| | |
| | | |
| | | export default { |
| | | name: "Userhuanze", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "futter_patient"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | propss: { multiple: true }, |
| | | optionstag: [], //标签列表 |
| | | Patientrange: [ |
| | | { |
| | | name: "门诊", |
| | | id: 1, |
| | | }, |
| | | // { |
| | | // name: "门诊", |
| | | // id: 1, |
| | | // }, |
| | | { |
| | | name: "住院", |
| | | id: 2, |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | allhosp: "1", |
| | | notrequiredFlag: 1, |
| | | idcardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listfiltration(this.queryParams).then((response) => { |
| | | messagelistpatient(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | |
| | | this.amendtag = false; |
| | | }, |
| | | |
| | | |
| | | //修改/新增患者 |
| | | submitForm() { |
| | | if (this.amendtag) { |
| | | editfiltration(this.form) |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | |
| | | handleDelete(row) { |
| | | const userIds = row.id || this.ids; |
| | | this.$modal |
| | | .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?') |
| | | .then(function () { |
| | | return delfiltration(userIds); |
| | | .confirm('是否确认取消用户编号为"' + userIds + '"的数据项过滤?') |
| | | .then( ()=> { |
| | | row.notrequiredFlag=0 |
| | | alterpatient(row) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | this.$modal.msgSuccess("修改成功"); |
| | | }); |
| | | }) |
| | | |
| | | .catch(() => {}); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | |
| | | v-model="queryParams.patname" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者编号" prop="patid"> |
| | | <el-form-item label="患者住院号" prop="patid"> |
| | | <el-input |
| | | v-model="queryParams.patid" |
| | | placeholder="请输入患者编号" |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="护理等级" prop="tagId"> |
| | | <el-select v-model="queryParams.Patientid" placeholder="请选择"> |
| | | <el-form-item label="患者来源" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.searchscope" |
| | | placeholder="请选择患者来源" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.nursinggrade" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | 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="tagId"> |
| | | <el-select v-model="queryParams.Patientid" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in Patientrange" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label=" 入院日期 " prop="createTime"> |
| | | <el-form-item label=" 入院日期范围 " prop="createTime"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="queryParams.createTime" |
| | | type="date" |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择 就诊日期 " |
| | | > |
| | | </el-date-picker> |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-row> |
| | |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导入</el-button |
| | | > |
| | | </div> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <el-table |
| | |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | label="入院时间" |
| | | label="入院日期" |
| | | align="center" |
| | | key="createTime" |
| | | prop="createTime" |
| | | key="starttime" |
| | | prop="starttime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | <span>{{ formatTime(scope.row.starttime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="住院号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | key="patno" |
| | | prop="patno" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | |
| | | |
| | | |
| | | <el-table-column |
| | | label="病区" |
| | | label="科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="病区" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="Sister" |
| | | prop="Sister" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | |
| | |
| | | query: { id: scope.row.patid }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></i>查看</span |
| | | ></el-button |
| | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import store from "@/store"; |
| | | |
| | | export default { |
| | | name: "behospitalized", |
| | |
| | | { papersname: "护照" }, |
| | | { papersname: "中国港澳居民身份证" }, |
| | | { papersname: "中国台湾居民身份证" }, |
| | | ], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所属患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | }, |
| | | ], |
| | | // 表单参数 |
| | | form: { |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | cry: 0, |
| | | idcardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | |
| | | this.getList(); |
| | | this.listDept(); |
| | | this.gettabList(); |
| | |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.queryParams.searchscope == 1) { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes=null; |
| | | } else if (this.queryParams.searchscope == 2) { |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.queryParams.leaveldeptcodes=null; |
| | | } else { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | listpatient(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="患者范围" prop="tagId"> |
| | | <el-select v-model="queryParams.Patientid" placeholder="请选择"> |
| | | <el-form-item label="患者来源" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.searchscope" |
| | | placeholder="请选择患者来源" |
| | | > |
| | | <el-option |
| | | v-for="item in Patientrange" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | 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="createTime"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="queryParams.createTime" |
| | | type="date" |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择 就诊日期 " |
| | | > |
| | | </el-date-picker> |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-row> |
| | |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导入</el-button |
| | | > |
| | | </div> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <el-table |
| | |
| | | <el-table-column |
| | | label="住院号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | key="patno" |
| | | prop="patno" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | |
| | | width="120" |
| | | /> --> |
| | | <el-table-column |
| | | label="病区" |
| | | label="科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="病区" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="Sister" |
| | | prop="Sister" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | |
| | |
| | | query: { id: scope.row.patid }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></i>查看</span |
| | | ></el-button |
| | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import store from "@/store"; |
| | | |
| | | export default { |
| | | name: "behospitalized", |
| | |
| | | amendtag: false, //是否修改 |
| | | // 日期范围 |
| | | dateRange: [], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所属患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | }, |
| | | ], |
| | | paperstypes: [ |
| | | { papersname: "身份证" }, |
| | | { papersname: "护照" }, |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | cry: 1, |
| | | idcardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | |
| | | }, |
| | | // 表单校验 |
| | | 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", |
| | | // }, |
| | | // ], |
| | | |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | |
| | | this.getList(); |
| | | this.listDept(); |
| | | this.gettabList(); |
| | |
| | | methods: { |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | if (this.queryParams.searchscope == 1) { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes=null; |
| | | } else if (this.queryParams.searchscope == 2) { |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.queryParams.leaveldeptcodes=null; |
| | | } else { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.loading = true; |
| | | listpatient(this.queryParams).then((response) => { |
| | | console.log(response); |
| | |
| | | v-model="queryParams.allhosp" |
| | | @tab-click="handleClick" |
| | | > |
| | | <el-tab-pane label="患者列表" name="0"></el-tab-pane> |
| | | <el-tab-pane label="住院患者" name="1"></el-tab-pane> |
| | | <!-- <el-tab-pane label="患者列表" name="0"></el-tab-pane> --> |
| | | <el-tab-pane label="出入院患者" name="1"></el-tab-pane> |
| | | <el-tab-pane label="门诊患者" name="2"></el-tab-pane> |
| | | <el-tab-pane label="体检患者" name="3"></el-tab-pane> |
| | | </el-tabs> |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-form-item label="患者姓名" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者来源" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.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="telcode"> |
| | | <el-input |
| | |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >修改</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | fixed |
| | | label="序号" |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | /> --> |
| | | <el-table-column |
| | | fixed |
| | | label="姓名" |
| | |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | label="出生年月" |
| | | align="center" |
| | | key="birthdate" |
| | | prop="birthdate" |
| | | width="160" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | key="placeOfResidence" |
| | | prop="placeOfResidence" |
| | | width="120" |
| | | width="150" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="患者标签" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="证件类型" |
| | | align="center" |
| | | key="idcardtype" |
| | | prop="idcardtype" |
| | | width="120" |
| | | /><el-table-column |
| | | label="证件号码" |
| | | align="center" |
| | | key="idcardno" |
| | |
| | | query: { id: scope.row.id }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></i>详情编辑</span |
| | | ></el-button |
| | | > |
| | | <!-- <el-button |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>修改</span |
| | | ><i class="el-icon-edit"></i>患者过滤</span |
| | | ></el-button |
| | | > --> |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Distributionservice(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-menu"></i>服务</span |
| | | ></el-button |
| | |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-row v-if="!amendtag"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="民族" prop="name"> |
| | | <el-input |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="证件类型" prop="idcardtype"> |
| | | <el-select v-model="form.idcardtype" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="item in paperstypes" |
| | | :key="item.papersname" |
| | | :label="item.papersname" |
| | | :value="item.papersname" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="证件号" prop="idcardno"> |
| | | <el-input |
| | | v-model="form.idcardno" |
| | | placeholder="请输入证件号" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | |
| | | <el-row v-if="!amendtag"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="出生地" prop="idcardno"> |
| | | <el-input |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-col :span="amendtag?12:24"v-if="!amendtag" > |
| | | <el-form-item label="患者类型"> |
| | | <el-select v-model="form.pattype" placeholder="请选择类型"> |
| | | <el-option |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12" v-if="amendtag"> |
| | | <el-form-item label="过滤说明"> |
| | | <el-select v-model="form.notrequiredreason" placeholder="请选择过滤类型"> |
| | | <el-option |
| | | v-for="item in dict.type.futter_patient" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-col :span="24" v-if="amendtag"> |
| | | <el-form-item label="过滤原因"> |
| | | <el-input |
| | | v-model="form.notrequiredreason" |
| | | type="textarea" |
| | | placeholder="请输入过滤原因" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24" v-if="!amendtag"> |
| | | <el-form-item label="备注"> |
| | | <el-input |
| | | v-model="form.remark" |
| | |
| | | <el-table-column prop="serial" label="序号"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名"> </el-table-column> |
| | | <el-table-column prop="sex" label="性别"> </el-table-column> |
| | | <el-table-column prop="certificate" label="证件类型"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="certificatenum" label="证件号码"> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="出生日期"> </el-table-column> |
| | |
| | | <el-table-column prop="serial" label="序号"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名"> </el-table-column> |
| | | <el-table-column prop="sex" label="性别"> </el-table-column> |
| | | <el-table-column prop="certificate" label="证件类型"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificatenum" label="证件号码"> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="出生日期"> </el-table-column> |
| | |
| | | |
| | | export default { |
| | | name: "Patient", |
| | | dicts: ["sys_normal_disable", "task_status", "sys_user_sex"], |
| | | dicts: ["sys_normal_disable", "task_status", "sys_user_sex",'futter_patient'], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | value: "1", |
| | | label: "在院患者", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "门诊患者", |
| | | }, |
| | | |
| | | { |
| | | value: "3", |
| | | label: "体检患者", |
| | |
| | | value: "4", |
| | | label: "出院患者", |
| | | }, |
| | | ], |
| | | sextype: [ |
| | | { |
| | | value: 1, |
| | | label: "男", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | |
| | | ], |
| | | |
| | | cardlist: [ |
| | |
| | | router: "/patient/hospital", |
| | | }, |
| | | { |
| | | name: "门诊患者", |
| | | value: 56, |
| | | router: "/patient/outpatient", |
| | | }, |
| | | { |
| | | name: "离世患者", |
| | | value: 0, |
| | | }, |
| | | ], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所属患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | }, |
| | | ], |
| | | // 表单参数 |
| | |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | allhosp: "0", |
| | | allhosp: "1", |
| | | pageSize: 10, |
| | | idcardno: undefined, |
| | | name: undefined, |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | idcardtype: [ |
| | | { required: true, message: "证件类型不能为空", trigger: "blur" }, |
| | | ], |
| | | |
| | | idcardno: [ |
| | | { required: true, message: "证件号能为空", trigger: "blur" }, |
| | | { |
| | |
| | | methods: { |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | console.log(this.dict.type.sys_user_sex); |
| | | this.loading = true; |
| | | messagelistpatient(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | if (this.queryParams.searchscope == 1) { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes=null; |
| | | } else if (this.queryParams.searchscope == 2) { |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.queryParams.leaveldeptcodes=null; |
| | | } else { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | console.log(row); |
| | | const userIds = row.id || this.ids; |
| | | particularpatient(userIds).then((response) => { |
| | | console.log(response); |
| | |
| | | if (valid) { |
| | | if (this.amendtag) { |
| | | this.form.isoperation = 2; |
| | | this.form.notrequiredFlag = 1; |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.$modal.msgSuccess("患者过滤成功"); |
| | | }); |
| | | } else { |
| | | this.form.isoperation = 1; |
| | |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | padding: 15px; |
| | | background: #d0e9fd; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | |
| | | > |
| | | <el-tabs v-model="sonactiveName" @tab-click="handleClickson"> |
| | | <el-tab-pane name="outpatient" |
| | | ><span class="mulsz" slot="label" |
| | | >门诊({{ mznumber }})</span |
| | | ></el-tab-pane |
| | | ><span class="mulsz" slot="label">门诊</span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="inhospital" |
| | | ><span class="mulsz" slot="label" |
| | | >在院({{ zynumber }}) |
| | | </span></el-tab-pane |
| | | ><span class="mulsz" slot="label">在院 </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="checkout" |
| | | ><span class="mulsz" slot="label" |
| | | >出院({{ jynumber }}) |
| | | </span></el-tab-pane |
| | | ><span class="mulsz" slot="label">出院 </span></el-tab-pane |
| | | > |
| | | </el-tabs> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="monitor"> |
| | | <!-- <el-tab-pane name="monitor"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-data"></i> 健康监测</span |
| | | > |
| | |
| | | </span></el-tab-pane |
| | | > |
| | | </el-tabs></el-tab-pane |
| | | > |
| | | > --> |
| | | <el-tab-pane name="serve"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-custom"></i> 服务记录</span |
| | |
| | | key="patname" |
| | | prop="patname" |
| | | /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="年龄" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="诊断" |
| | | label="入院诊断" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="出院诊断" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="190" |
| | | /> |
| | | |
| | |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="接诊医生" |
| | | label="所在病区" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | </el-table> |
| | | |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | |
| | | <el-table-column |
| | | label="住院号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | key="patno" |
| | | prop="patno" |
| | | width="180" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | |
| | | key="patname" |
| | | prop="patname" |
| | | /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="年龄" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | | key="telephone" |
| | | prop="telephone" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="入院诊断" |
| | | align="center" |
| | |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="出院诊断" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="190" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="病区" |
| | | label="就诊科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="床位号" |
| | | label="所在病区" |
| | | align="center" |
| | | key="bedNo" |
| | | prop="bedNo" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="Sister" |
| | | prop="Sister" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="床位号" |
| | | align="center" |
| | | key="bedNo" |
| | | prop="bedNo" |
| | | width="120" |
| | | /> |
| | | |
| | | </el-table> |
| | | </div> |
| | | <!-- 出院 --> |
| | | <div v-if="sonactiveName == 'checkout'"> |
| | | <el-table :data="serviceDatacy" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="体检类型"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="体检套餐名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="体检预约日期"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="体检项目"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="体检报告日"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="体检总检报告"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="住院号" |
| | | align="center" |
| | | key="patno" |
| | | prop="patno" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | key="patname" |
| | | prop="patname" |
| | | /> |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="入院诊断" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="出院诊断" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="190" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="就诊科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="所在病区" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="床位号" |
| | | align="center" |
| | | key="bedNo" |
| | | prop="bedNo" |
| | | width="120" |
| | | /> |
| | | |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | |
| | | border-left: 4px solid rgb(190, 65, 134); |
| | | " |
| | | > |
| | | {{ item.name }} |
| | | <span v-if="item.serviceType==2">出院随访</span> |
| | | <span v-if="item.serviceType==1">监测评估</span> |
| | | <span v-if="item.serviceType==3">门诊随访</span> |
| | | <span v-if="item.serviceType==4">宣教关怀</span> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div style="margin-top: 10px"> |
| | | {{ item.name }}状态:已终止<span style="color: #2775b6" |
| | | >(终止原因:患者痊愈回访结束,终止时间:2023-12-18 12:00)</span |
| | | 服务名称:<span style="color: #2775b6" |
| | | >{{ item.templatename }}</span |
| | | > |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | {{ item.name }}发送时间:<span style="color: #2775b6" |
| | | >2023-11-23 12:00</span |
| | | 创建时间:<span style="color: #2775b6" |
| | | >{{item.createTime}}</span |
| | | > |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | {{ item.name }}完成时间:<span style="color: #2775b6" |
| | | >2023-12-18 12:00</span |
| | | 完成时间:<span style="color: #2775b6" |
| | | >{{ item.finishtime }}</span |
| | | > |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | 疼痛程度:<span style="color: #2775b6">中度</span> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | >科室: |
| | | <span style="color: #2775b6">{{ item.deptname }}</span></el-col |
| | | > |
| | | <el-col :span="12" |
| | | >病区: |
| | | <span style="color: #2775b6">{{ item.leavehospitaldistrictname }}</span></el-col |
| | | > |
| | | |
| | | </el-row> |
| | | </div> |
| | | |
| | | <div |
| | | style=" |
| | | font-size: 20px; |
| | |
| | | border-left: 4px solid rgb(65, 161, 190); |
| | | " |
| | | > |
| | | 人工{{ item.name }}记录 |
| | | 人工记录 |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6" |
| | | >{{ item.name }}日期: |
| | | <span style="color: #2775b6">2023-11-22 11:22</span></el-col |
| | | >负责人: |
| | | <span style="color: #2775b6">{{ item.createBy }}</span></el-col |
| | | > |
| | | <el-col :span="6" |
| | | >{{ item.name }}人: |
| | | <span style="color: #2775b6">吴小龙</span></el-col |
| | | >主治医生: |
| | | <span style="color: #2775b6">{{ item.drname }}</span></el-col |
| | | > |
| | | <el-col :span="6" |
| | | >患者配合度: <span style="color: #2775b6">高</span></el-col |
| | | >责任护士 <span style="color: #2775b6">{{ item.nurseName }}</span></el-col |
| | | > |
| | | </el-row> |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | {{ item.name }}结果: |
| | | <span style="color: #2775b6">患者痊愈,身体倍棒</span> |
| | | 结果状态: |
| | | <span style="color: #2775b6" v-if="item.excep==0">服务正常</span> |
| | | <span style="color: #B55E54" v-if="item.excep==1">异常</span> |
| | | |
| | | </div> |
| | | <div style="margin-top: 10px"> |
| | | {{ item.name }}备注: |
| | | <!-- <div style="margin-top: 10px"> |
| | | 备注: |
| | | <span style="color: #2775b6">提醒注意饮食健康</span> |
| | | </div> |
| | | </div> --> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 健康监测 --> |
| | | <div class="medical-record" v-show="activeName == 'monitor'"> |
| | | <!-- 血压图标 --> |
| | | <!-- <div class="medical-record" v-show="activeName == 'monitor'"> |
| | | <div v-show="sontwoactiveName == 'blood'" style="display: flex"> |
| | | <div |
| | | id="xyeCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 血糖 --> |
| | | <div v-show="sontwoactiveName == 'glucose'" style="display: flex"> |
| | | <div |
| | | id="xteCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 体重 --> |
| | | <div v-show="sontwoactiveName == 'weight'" style="display: flex"> |
| | | <div |
| | | id="tzeCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 心率 --> |
| | | <div v-show="sontwoactiveName == 'heartrate'" style="display: flex"> |
| | | <div |
| | | id="xleCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 血氧 --> |
| | | <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex"> |
| | | <div |
| | | id="xueyangeCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <!-- 体温 --> |
| | | <div v-show="sontwoactiveName == 'animalheat'" style="display: flex"> |
| | | <div |
| | | id="tweCharts" |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <el-dialog :title="titletb" :visible.sync="AddanumberVisible"> |
| | | <el-form :model="numberform" label-width="100px"> |
| | |
| | | alterpatient, |
| | | Patientclinic, |
| | | } from "@/api/patient/homepage"; |
| | | |
| | | import { |
| | | getsearchrResults, |
| | | getTaskservelist, |
| | | } from "@/api/AiCentre/index"; |
| | | import { listPatouthosp } from "@/api/smartor/patouthosp"; |
| | | import { listpatient } from "@/api/patient/record"; |
| | | |
| | |
| | | id: "", |
| | | loading: false, |
| | | activeName: "health", //一类导航 |
| | | sonactiveName: "outpatient", //健康监测导航 |
| | | sonactiveName: "inhospital", //健康监测导航 |
| | | sontwoactiveName: "blood", //医疗档案导航 |
| | | dynamicTags: [], |
| | | record: [ |
| | |
| | | // 门诊记录 |
| | | listPatouthosp({ patid: this.id }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceData = response.rows; |
| | | // this.serviceData = response.rows; |
| | | this.serviceData = []; |
| | | } |
| | | }); |
| | | } else if (type == 1) { |
| | | listpatient({ patid: this.id }).then((response) => { |
| | | listpatient({ patid: this.id, cry: 0 }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceDatary = response.rows; |
| | | } |
| | | }); |
| | | } else if (type == 2) { |
| | | listpatient({ patid: this.id }).then((response) => { |
| | | listpatient({ patid: this.id, cry: 1 }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceDatacy = response.rows; |
| | | console.log(this.serviceDatacy); |
| | | this.$forceUpdate() |
| | | } |
| | | }); |
| | | } |
| | |
| | | // tab切换 |
| | | handleClick(tab, event) { |
| | | if (tab.index == "1") { |
| | | this.getList(0); |
| | | this.getList(1); |
| | | }else if (tab.index == "2") { |
| | | this.handleClickfw(); |
| | | } |
| | | }, |
| | | handleClickson(tab, event) { |
| | | console.log(tab.index, "son"); |
| | | console.log(tab, "son"); |
| | | this.getList(tab.index); |
| | | }, |
| | | // 查询服务记录 |
| | | handleClickfw(){ |
| | | getTaskservelist({ |
| | | patid: this.id, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.record = res.rows; |
| | | } |
| | | }); |
| | | }, |
| | | // 联系方式新增 |
| | | Addanumber() {}, |
| | | // 标签-------------------------- |
| | |
| | | placeholder="请输入任务描述" |
| | | /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | |
| | | <el-select |
| | | v-model="form.deptcode" |
| | | style="width: 400px" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | |
| | | <el-select |
| | | v-model="form.leavehospitaldistrictcode" |
| | | style="width: 400px" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择病区" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="发送设置:" v-if="currenttype != 2"> |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段发送</el-radio> |
| | |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段一</span |
| | | >①</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段二</span |
| | | >②</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段三</span |
| | | >③</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12" |
| | | ><el-form-item label="开场白" prop="kcb"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="form.kcb" |
| | | placeholder="请输入开场白" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="结束语" prop="jsy"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="form.jsy" |
| | | placeholder="请输入结束语" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | |
| | | @details="detailhz" |
| | | @handleUpdate="handleUpdate" |
| | | :currentList="overallCase" |
| | | :tableLabel="tableLabelhz" |
| | | :tableLabel="tableLabelhzwb" |
| | | :serialnumber="false" |
| | | :searchTrue="true" |
| | | :multiplechoice="false" |
| | |
| | | dialogVisiblepatient: false, //添加患者弹框 |
| | | radio: 1, |
| | | checkboxlist: [], |
| | | // 科室/病区 |
| | | belongWards: [], |
| | | belongWards: [], |
| | | tableLabel: [], |
| | | questionList: [], |
| | | htmlRichText: "<p>Hello, <strong>world</strong>!</p>", |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | // { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "出院日期", width: "150", prop: "inhosptime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "240", prop: "dept" }, |
| | | { label: "病区", width: "240", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | | // 患者表单 |
| | | tableLabelhzwb: [ |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "deptName" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | | |
| | | tableLabelxj: [ |
| | | { label: "宣教名称", width: "", prop: "preachname" }, |
| | | { label: "宣教描述", width: "", prop: "note" }, |
| | | { label: "宣教形式", width: "", prop: "playType" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "宣教名称", width: "180", prop: "preachname" }, |
| | | { label: "宣教描述", width: "180", prop: "preachcontent" }, |
| | | // { label: "宣教形式", width: "", prop: "playType" }, |
| | | { label: "适用方式", width: "", prop: "suitway" }, |
| | | { label: "修改日期", width: "", prop: "uploadTime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | ], |
| | | // 变量 |
| | | tableLabelvariable: [ |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb: "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。", |
| | | jsy: "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!", |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | |
| | | created() { |
| | | this.id = this.$route.query.id; |
| | | this.form.type = this.$route.query.type; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | this.form.typename = this.$route.query.typename; |
| | | this.form.serviceType = Number(this.$route.query.serviceType); |
| | | this.listDept(); |
| | |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | | if (!this.form.templatename) { |
| | | this.$modal.msgError("未选择模板"); |
| | | return; |
| | | } |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" |
| | |
| | | if (!this.form.type) { |
| | | this.form.type = this.$route.query.type; |
| | | } |
| | | this.form.leaveldeptcodes = store.getters.belongDepts.map(obj=>obj.deptCode); |
| | | this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(obj=>obj.districtCode); |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabelhz = [ |
| | | { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "主任医师", width: "", prop: "drname" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | this.tableLabelhz = [ |
| | |
| | | }, |
| | | // 获取详情 |
| | | Getdetails() { |
| | | this.form = { |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | serviceType:Number(this.$route.query.serviceType), |
| | | kcb: "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。", |
| | | jsy: "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", |
| | | }; |
| | | if (this.id) { |
| | | getTaskInfo({ taskid: this.id }).then((res) => { |
| | | let filteredArray = ""; |
| | |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="执行设置" prop="sendType"> |
| | | <el-form-item label="是否长期" prop="longTask"> |
| | | <el-radio-group v-model="form.longTask"> |
| | | <el-radio :label="0">普通任务</el-radio> |
| | | <el-radio :label="1">长期任务</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="执行设置" |
| | | prop="sendType" |
| | | v-if="!form.longTask" |
| | | > |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段执行</el-radio> |
| | | <el-radio :label="3">时间点执行</el-radio> |
| | |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="执行日期" |
| | | v-if="form.sendType == 1" |
| | | v-if="form.sendType == 1 && !form.longTask" |
| | | prop="daytime" |
| | | > |
| | | <el-date-picker |
| | |
| | | |
| | | <el-form-item |
| | | label="执行时间点" |
| | | v-if="form.sendType == 3" |
| | | v-if="form.sendType == 3 && !form.longTask" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | |
| | | |
| | | <el-form-item |
| | | label="执行时间段" |
| | | v-if="form.sendType == 1" |
| | | v-if="form.sendType == 1 && !form.longTask" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | |
| | | </div> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | v-model="form.deptcode" |
| | | style="width: 400px" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <!-- <el-cascader |
| | | style="width: 400px" |
| | | v-model="form.leavehospitaldistrictcode" |
| | | :options="topicoptions" |
| | | :props="propstask" |
| | | :show-all-levels="false" |
| | | clearable |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.deptName }}</span> |
| | | <span v-if="!node.isLeaf"> |
| | | ({{ data.children.length }}) |
| | | </span> |
| | | </template> |
| | | </el-cascader> --> |
| | | <el-select |
| | | v-model="form.leavehospitaldistrictcode" |
| | | style="width: 400px" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择病区" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12" |
| | | ><el-form-item label="开场白" prop="kcb"> |
| | | <el-input |
| | |
| | | placeholder="请点击右侧选择" |
| | | /> |
| | | <el-button |
| | | style="margin-left: 10px" |
| | | type="primary" |
| | | icon="el-icon-edit" |
| | | @click="drawermb = true" |
| | |
| | | ></el-button> |
| | | |
| | | <el-button |
| | | v-if="form.libtemplateid" |
| | | v-if="form.templatename" |
| | | type="success" |
| | | icon="el-icon-search" |
| | | @click="previewfnmb" |
| | |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | |
| | | @click="handleDelete" |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | </el-col> --> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-select |
| | | v-model="patientqueryParams.topica" |
| | | v-model="patientqueryParams.searchscope" |
| | | placeholder="请选择患者来源" |
| | | > |
| | | <el-option |
| | |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="模板预览" :visible.sync="previewtf" width="60%"> |
| | | <div class="preview-left"> |
| | | <!-- 模板预览 --> |
| | | <el-dialog title="模板预览" :visible.sync="previewtf" width="70%"> |
| | | <el-tabs type="border-card"> |
| | | <el-tab-pane label="模板基础数据" |
| | | ><div class="preview-left"> |
| | | <el-form :model="objyl" label-width="100px" class="demo-objyl"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="问卷分类" prop="categoryid"> |
| | | <el-select |
| | | v-model="objyl.categoryid" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option-group |
| | | v-for="group in optionsclass" |
| | | :key="group.id" |
| | | :label="group.name" |
| | | > |
| | | <el-option |
| | | v-for="item in group.svyLibTemplateCategoryList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="评价类型" prop="scoreType"> |
| | | <el-select |
| | | v-model="objyl.scoreType" |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | v-for="group in appraiselist" |
| | | :key="group.value" |
| | | :label="group.label" |
| | | :value="group.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="可用状态" prop="isenable"> |
| | | <el-radio-group v-model="objyl.isenable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | | :label="item.value" |
| | | >{{ item.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="版本号" prop="name"> |
| | | <el-input |
| | | v-model="objyl.version" |
| | | placeholder="默认1.0" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="问卷标题" prop="svyname"> |
| | | <div style="width: 400px"> |
| | | <el-input v-model="objyl.svyname"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="问卷方式" prop="suitway"> |
| | | <el-select |
| | | style="width: 400px" |
| | | v-model="objyl.suitway" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in mode" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row :gutter="20" v-if="form.longTask"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="长期任务" prop="longTemp"> |
| | | <el-radio-group v-model="objyl.longTemp"> |
| | | <el-radio |
| | | v-for="(item, index) in longtype" |
| | | :label="item.value" |
| | | >{{ item.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="任务周期" prop="name"> |
| | | <el-input |
| | | v-model="objyl.sendDay" |
| | | placeholder="默认5天后" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | style="width: 400px" |
| | | v-model="tempDetpRelevanceslist" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <el-select |
| | | v-model="tempbelongWards" |
| | | style="width: 400px" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <div class="xinz-infs"> |
| | | <el-form-item> |
| | | <template #label> |
| | | 适用疾病 |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | | content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" |
| | | placement="top-start" |
| | | > |
| | | <i class="el-icon-warning-outline"></i> |
| | | </el-tooltip> |
| | | </template> |
| | | |
| | | <el-tag |
| | | v-for="tag in illnesslist" |
| | | :key="tag.icdid" |
| | | type="warning" |
| | | :disable-transitions="false" |
| | | > |
| | | {{ tag.icdname }} |
| | | </el-tag> |
| | | <!-- <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> --> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="问卷描述" prop="description"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请输入内容" |
| | | v-model="objyl.description" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | |
| | | <el-form-item label="问卷结束语" prop="conclusion"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请输入内容" |
| | | v-model="objyl.conclusion" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | </el-form></div |
| | | ></el-tab-pane> |
| | | <el-tab-pane label="问题展示" |
| | | ><div class="preview-left"> |
| | | <div v-for="item in questionList"> |
| | | <!-- 单选 --> |
| | | <div |
| | |
| | | {{ item.sort }}、[问答]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请输入答案" v-model="radioas" clearable> |
| | | <el-input |
| | | placeholder="请输入答案" |
| | | v-model="item.radioas" |
| | | clearable |
| | | > |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div></div |
| | | ></el-tab-pane> |
| | | </el-tabs> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <!-- <el-button @click="previewGo">前往模板详情修改</el-button> --> |
| | | <el-button type="primary" @click="previewFn">确认使用</el-button> |
| | | <!-- <el-button @click="previewGo">保存模板详情修改</el-button> --> |
| | | <el-button type="primary" @click="Departmenttreatment" |
| | | >保存使用</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-drawer |
| | |
| | | <el-form-item label="问卷名称"> |
| | | <el-input v-model="topqueryParams.svyname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="适用形式" prop="status"> |
| | | <!-- <el-form-item label="适用形式" prop="status"> |
| | | <el-select v-model="topqueryParams.topica" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | getQtemplatelist, |
| | | getQtemplateobj, |
| | | TaskQuestioncomit, |
| | | deleteTaskQuestioncomit, |
| | | Questionnairetaskgetson, |
| | | gethetaskinfo, |
| | | delhetaskinfo, |
| | | getTaskQuestioncomit, |
| | | depthospgetson, |
| | | getillness, |
| | | Editsingletask, |
| | | getQtemplateclassify, |
| | | depthospgetsonlist, |
| | | } from "@/api/AiCentre/index"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | |
| | | import SFtable from "@/components/SFtable"; //表格组件 |
| | | |
| | |
| | | id: "", // |
| | | previewid: "", //任务模板传递id |
| | | libName: "", |
| | | objyl: {}, |
| | | overallCase: [], //选择患者总 |
| | | allpids: [], |
| | | appraiselist: [], |
| | | optionsclass: [], |
| | | illnesslist: [], |
| | | mode: [], |
| | | libId: null, //模板库模板id |
| | | Editprogress: 1, //编辑进度 |
| | | drawermb: false, //选择模板弹窗 |
| | |
| | | checkboxlist: [], |
| | | tableLabel: [], |
| | | questionList: [], |
| | | usable: [ |
| | | { value: "0", label: "可用" }, |
| | | { value: "1", label: "停用" }, |
| | | ], |
| | | required: [ |
| | | { value: "1", label: "必填" }, |
| | | { value: "2", label: "不必填" }, |
| | | ], |
| | | props: { multiple: true, value: "deptCode", label: "deptName" }, |
| | | propstask: { value: "deptCode", label: "deptName" }, |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | { label: "出院日期", width: "150", prop: "inhosptime" }, |
| | |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "240", prop: "deptname" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "240", prop: "dept" }, |
| | | { label: "病区", width: "240", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | | // 患者表单 |
| | | tableLabelhzwb: [ |
| | | { label: "出院日期", width: "150", prop: "inhosptime" }, |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "deptName" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | | |
| | | tableLabelwj: [ |
| | | { label: "序号", width: "", prop: "svyid" }, |
| | | { label: "问卷名称", width: "", prop: "svyname" }, |
| | | { label: "问卷概述", width: "", prop: "description" }, |
| | | { label: "问卷标题", width: "", prop: "svyname" }, |
| | | { label: "问卷描述", width: "", prop: "description" }, |
| | | { label: "修改日期", width: "", prop: "updateTime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | ], |
| | |
| | | patientuserList: [], //选择患者列表 |
| | | sonuserList: [], //选中患者列表 |
| | | delvariableList: [], //删除变量临时存储 |
| | | longtype: [ |
| | | { value: 0, label: "普通任务" }, |
| | | { value: 1, label: "长期任务" }, |
| | | ], |
| | | variableList: [ |
| | | { |
| | | name: "姓名", |
| | |
| | | form: { |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | longTask: 0, |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', |
| | | jsy:'请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!", |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "出院病人", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "在院病人", |
| | | }, |
| | | { |
| | | value: "2", |
| | |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所有患者", |
| | | label: "所属患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | |
| | | label: "其他通知", |
| | | }, |
| | | ], |
| | | // 科室/病区 |
| | | belongWards: [], |
| | | belongWards: [], |
| | | deptlist: [], |
| | | hosplist: [], |
| | | tempDetpRelevanceslist: [], //科室数据 |
| | | tempDetpRelevanceslistform: [], //科室数据 |
| | | tempbelongWards: [], //病区数据 |
| | | tempbelongWardsform: [], //病区数据 |
| | | rules: { |
| | | taskName: [ |
| | | { required: true, message: "任务名称不能为空", trigger: "blur" }, |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | taskDesc: [ |
| | | { required: true, message: "任务描述不能为空", trigger: "blur" }, |
| | | ], |
| | | sendType: [ |
| | | { required: true, message: "发送设置不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 科室院区查询入参 |
| | | queryParamsdept: { |
| | | tempid: "", |
| | | type: 11, |
| | | }, |
| | | quote: false, |
| | | serviceType: null, |
| | |
| | | components: { SFtable }, |
| | | |
| | | created() { |
| | | this.appraiselist = store.getters.appraiselist; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | this.mode = store.getters.Askmode; |
| | | this.id = this.$route.query.id; |
| | | this.newadd = this.$route.query.newadd; |
| | | this.form.type = this.$route.query.type; |
| | | this.form.typename = this.$route.query.typename; |
| | | this.serviceType = Number(this.$route.query.serviceType); |
| | | this.form.serviceType = Number(this.$route.query.serviceType); |
| | | this.listDept(); |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | this.getQtemplateclassify(); |
| | | }, |
| | | activated() { |
| | | if (this.id != this.$route.query.id) { |
| | | this.listDept(); |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | this.getQtemplateclassify(); |
| | | } |
| | | }, |
| | | |
| | |
| | | let queryParams = { |
| | | pageNum: this.topqueryParams.pageNum, |
| | | pageSize: this.topqueryParams.pageSize, |
| | | isavailable: "", |
| | | isenable: "", |
| | | }; |
| | | this.currenttype = this.$route.query.type; |
| | | this.title = "问卷内容列表"; |
| | |
| | | }, |
| | | // 保存 |
| | | submitForm(formName) { |
| | | console.log(this.form.patTaskRelevances,'1.patTaskRelevances'); |
| | | console.log(this.overallCase,'this.form.overallCase'); |
| | | if (this.time4 && this.form.sendType == 3) |
| | | this.form.showTimeMorn = this.time4; |
| | | this.form.sendTimeslot = [ |
| | |
| | | this.$modal.msgError("请选择服务类型"); |
| | | return; |
| | | } |
| | | if (!this.form.patTaskRelevances[0]) { |
| | | if (!this.form.patTaskRelevances[0] && !this.form.longTask) { |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | |
| | | return; |
| | | } |
| | | if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) { |
| | | } else if (this.form.sendType == 3 && this.time4) { |
| | | } else if ( |
| | | (this.form.sendType == 3 && this.time4) || |
| | | this.form.longTask |
| | | ) { |
| | | } else { |
| | | return this.$modal.msgError("时间信息缺失"); |
| | | } |
| | | console.log(this.form.patTaskRelevances,'2.patTaskRelevances'); |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" |
| | |
| | | this.form.type = this.$route.query.type; |
| | | } |
| | | this.form.serviceType = this.serviceType; |
| | | this.form.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.form.leavehospitaldistrictcodes = store.getters.belongWards.map( |
| | | (obj) => obj.districtCode |
| | | ); |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | } else { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | } else { |
| | | this.puttaskid(res.data); |
| | | this.$modal.msgSuccess("新增成功"); |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/tasklist", |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 给任务模板赋值任务id |
| | | puttaskid(data) { |
| | | getTaskQuestioncomit(this.form.templateid).then((res) => { |
| | | if (res.code == 200) { |
| | | this.objyl = res.data; |
| | | this.objyl.isoperation = 2; |
| | | this.objyl.taskid = data.taskId; |
| | | TaskQuestioncomit(this.objyl).then((response) => { |
| | | this.previewtf = false; |
| | | this.form.libtemplateid = this.objyl.svyid; |
| | | this.form.templateid = response.data; |
| | | // this.putbelongDepts(response.data); |
| | | this.form.templatename = this.objyl.svyname; |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // ----------------------表格子组件事件 |
| | | |
| | | // 确认选择模板放入任务模板 |
| | | // 选择预览 |
| | | selectfn(row, type) { |
| | | // 模板情况下获取模板信息 |
| | | if (type == 1) { |
| | | this.libName = row.svyname; |
| | | this.libId = row.svyid; |
| | | this.Tasktemplate = row; |
| | | this.questionList = row.svyTemplateLibScripts; |
| | | getQtemplateobj({ svyid: row.svyid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.objyl = res.rows[0]; |
| | | if (this.form.longTask) { |
| | | this.objyl.longTemp = 1; |
| | | } |
| | | this.queryParamsdept.type = 1; |
| | | this.queryParamsdept.tempid = row.svyid; |
| | | this.listDept(); |
| | | |
| | | this.objyl.suitway = this.objyl.suitway.split(","); |
| | | this.questionList = res.rows[0].svyTemplateLibScripts; |
| | | this.getillness(row.svyid); |
| | | this.previewtf = true; |
| | | } |
| | | }); |
| | |
| | | }, |
| | | // 预览 |
| | | previewfnmb() { |
| | | console.log(this.form); |
| | | |
| | | getTaskQuestioncomit(this.form.templateid).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res, "预览数据"); |
| | | this.objyl = res.data; |
| | | if (this.objyl.suitway) |
| | | this.objyl.suitway = this.objyl.suitway.split(","); |
| | | this.queryParamsdept.tempid = this.form.templateid; |
| | | this.queryParamsdept.type = 11; |
| | | this.getillness(this.form.libtemplateid); |
| | | // 执行获取该任务模板id |
| | | this.listDept(); |
| | | this.previewtf = true; |
| | | getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.questionList = res.rows[0].svyTemplateLibScripts; |
| | | this.previewtf = true; |
| | | this.objyl.svyTemplateLibScripts = |
| | | res.rows[0].svyTemplateLibScripts; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | getillness(id) { |
| | | if (id) { |
| | | getillness({ outid: id, type: 5 }).then((res) => { |
| | | this.illnesslist = res.rows; |
| | | this.illnesslist.forEach((item) => { |
| | | item.icdname = item.icd10name; |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | // 处理问题层变量 |
| | | Variablehandling(arr, type) { |
| | |
| | | } |
| | | }); |
| | | }); |
| | | console.log(Variablist, "Variablist"); |
| | | const Aarr = Variablist.filter( |
| | | (obj, index, self) => |
| | | index === |
| | |
| | | }, |
| | | // 子任务二级弹框 |
| | | handleAddpatient(row) { |
| | | console.log(this.overallCase, "ssaaa"); |
| | | this.allpids = []; |
| | | this.overallCase.forEach((item) => { |
| | | this.allpids.push(item.patid); |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabelhz = [ |
| | | { label: "出院日期", width: "150", prop: "inhosptime" }, |
| | | // { label: "入院日期", width: "170", prop: "starttime" }, |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "deptname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | } else if (this.patientqueryParams.allhosp == 4) { |
| | | this.tableLabelhz = [ |
| | | { label: "入院日期", width: "150", prop: "starttime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "诊断", width: "", prop: "diagname" }, |
| | | { label: "科室", width: "", prop: "deptname" }, |
| | | { label: "病区", width: "", prop: "leavehospitaldistrictname" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } |
| | | if (this.allpids[0]) { |
| | | this.patientqueryParams.pids = this.allpids; |
| | | console.log(this.patientqueryParams.pids); |
| | | } else { |
| | | this.patientqueryParams.pids = null; |
| | | } |
| | | // 类型判断 |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.patientqueryParams.cry = 1; |
| | | } else if (this.patientqueryParams.allhosp == 4) { |
| | | this.patientqueryParams.cry = 0; |
| | | } |
| | | // 来源判断 |
| | | |
| | | if (this.patientqueryParams.searchscope == 1) { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.patientqueryParams.leavehospitaldistrictcodes = []; |
| | | } else if (this.patientqueryParams.searchscope == 2) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.patientqueryParams.leaveldeptcodes = []; |
| | | } else { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | getTaskpatient(this.patientqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.patientuserList = response.rows; |
| | | this.patientuserList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.patienttotal = response.total; |
| | | this.loading = false; |
| | | this.Restorecheck(); |
| | |
| | | handleExport() {}, |
| | | // 选择患者表数据 |
| | | handleSelectionChange(selection) { |
| | | console.log("多选患者",selection); |
| | | this.SelectPatientslist = structuredClone(selection); |
| | | this.multiple = !selection.length; |
| | | |
| | |
| | | item.hospType = this.patientqueryParams.allhosp; |
| | | item.sfzh = item.idcardno; |
| | | item.deptCode = item.deptcode; |
| | | item.deptName = item.deptname; |
| | | item.deptName = item.dept; |
| | | item.admindate = item.inhosptime; |
| | | item.sfzh = item.idcardno; |
| | | console.log(item); |
| | | this.overallCase.push(item); |
| | | this.form.patTaskRelevances.push(item); |
| | | console.log(this.form.patTaskRelevances,'patTaskRelevances'); |
| | | } |
| | | }); |
| | | }, |
| | | // 切换页后恢复选中 |
| | | Restorecheck() { |
| | | console.log(this.overallCase, "this.overallCase"); |
| | | const allid = this.overallCase.map((item) => item.patid); |
| | | const overlap = this.patientuserList.filter((value) => { |
| | | return allid.includes(value.patid); |
| | | }); |
| | | // 保持ids和当前页面的同步性 |
| | | this.SelectPatientslist = overlap; |
| | | console.log(this.SelectPatientslist, "进入分页SelectPatientslist"); |
| | | |
| | | this.toggleSelection(overlap); |
| | | }, |
| | | // 挂载选择状态 |
| | |
| | | }); |
| | | this.decision = false; |
| | | }); |
| | | console.log(123); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | |
| | | }, |
| | | getList() {}, |
| | | handleQuery() { |
| | | // if (this.patientqueryParams.topica == 0) { |
| | | // this.patientqueryParams.leavehospitaldistrictcodes = |
| | | // store.getters.leavehospitaldistrictcodes; |
| | | // this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | // } else if (this.patientqueryParams.topica == 1) { |
| | | // this.patientqueryParams.leavehospitaldistrictcodes = null; |
| | | // this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | // } else if (this.patientqueryParams.topica == 2) { |
| | | // this.patientqueryParams.leavehospitaldistrictcodes = |
| | | // store.getters.leavehospitaldistrictcodes; |
| | | // this.patientqueryParams.leaveldeptcodes = null; |
| | | // } |
| | | if (this.patientqueryParams.topica == 0) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | } else if (this.patientqueryParams.topica == 1) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = null; |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | } else if (this.patientqueryParams.topica == 2) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leaveldeptcodes = null; |
| | | } |
| | | this.handleAddpatient(); |
| | | }, |
| | | resetQuery() {}, |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', |
| | | jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", |
| | | }; |
| | | |
| | | this.questionList = []; |
| | | if (this.id) { |
| | | Questionnairetaskgetson({ taskid: this.id }).then((res) => { |
| | |
| | | : []; |
| | | this.overallCase = this.form.patTaskRelevances.concat(); |
| | | this.checkList = this.form.preachform.split(","); |
| | | console.log(this.form, "this.form"); |
| | | |
| | | this.overallCase.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | if (this.form.showDate) |
| | | this.daytime = this.form.showDate.split(","); |
| | | if (this.form.showTimeMorn) { |
| | | if (this.form.sendType == 3) { |
| | | this.time4 = this.form.showTimeMorn; |
| | | console.log(1122); |
| | | } else { |
| | | this.time1 = this.form.showTimeMorn.split(","); |
| | | } |
| | |
| | | this.time2 = this.form.showTimeNoon.split(","); |
| | | if (this.form.showTimeNight) |
| | | this.time3 = this.form.showTimeNight.split(","); |
| | | console.log(1122); |
| | | filteredArray = this.convertFormat1ToFormat2(this.form.textParam); |
| | | this.variableList = this.transitionList.concat(filteredArray); |
| | | } else { |
| | | this.$modal.msgError(res.code); |
| | | } |
| | | |
| | | if (this.newadd) { |
| | | this.neWaddfn(); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 依照新增时处理 |
| | | neWaddfn(){ |
| | | this.id=null; |
| | | this.form.taskName=''; |
| | | this.form.taskName=''; |
| | | this.overallCase=[]; |
| | | this.form.patTaskRelevances=[]; |
| | | this.daytime=[]; //日期 |
| | | this.applydaytime=[]; //计算日期 |
| | | this.time1=""; //上午时间段 |
| | | this.time2=""; //下午时间段 |
| | | this.time3=""; //晚上时间段 |
| | | this.time4=""; //晚上时间段 |
| | | }, |
| | | // 获取科室列表 |
| | | listDept() { |
| | | listDept().then((res) => { |
| | | this.topicoptions = this.handleTree(res.data, "deptId"); |
| | | console.log(this.topicoptions, "topicoptions"); |
| | | this.tempDetpRelevanceslist = []; |
| | | this.tempbelongWards = []; |
| | | depthospgetsonlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | if (item.deptType == 1) { |
| | | this.deptlist.push(item); |
| | | this.tempDetpRelevanceslist.push(item.deptCode); |
| | | } else if (item.deptType == 2) { |
| | | this.hosplist.push(item); |
| | | this.tempbelongWards.push(item.deptCode); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | getQtemplateclassify() { |
| | | getQtemplateclassify({}).then((res) => { |
| | | this.optionsclass = res.rows; |
| | | }); |
| | | }, |
| | | // 新增派送患者 |
| | |
| | | this.variableList.splice(index, 1); |
| | | row.isoperation = 3; |
| | | this.delvariableList.push(row); |
| | | console.log(index, row); |
| | | }, |
| | | // 时间---------- |
| | | changeTime(row) { |
| | | console.log(row, "时间"); |
| | | this.processingTime(); |
| | | }, |
| | | Totaldate(row) { |
| | | console.log(row, "时间"); |
| | | this.form.sendTimeslot = [{ begantime: row, endtime: row, xh: 1 }]; |
| | | this.form.showTimeMorn = row; |
| | | console.log(this.form.sendTimeslot, "时间"); |
| | | }, |
| | | changeTimeday(row) { |
| | | const startDate = new Date(row[0]); |
| | |
| | | query: { id: this.previewid, task: true, data: this.form }, |
| | | }); |
| | | }, |
| | | // 保存/更新任务模板 |
| | | previewFn() { |
| | | let id = this.Tasktemplate.id; |
| | | this.Tasktemplate.id = null; |
| | | console.log(this.Tasktemplate); |
| | | |
| | | this.Tasktemplate.svyTemplateLibScripts.forEach((item) => { |
| | | if (Array.isArray(this.objyl.suitway)) { |
| | | this.objyl.suitway = this.objyl.suitway.join(","); |
| | | } |
| | | this.objyl.svyTemplateLibScripts.forEach((item) => { |
| | | item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions; |
| | | }); |
| | | this.Tasktemplate.svyTaskTemplateScriptVOS = |
| | | this.Tasktemplate.svyTemplateLibScripts; |
| | | this.Tasktemplate.templateid = id; |
| | | this.Tasktemplate.isoperation = 1; |
| | | TaskQuestioncomit(this.Tasktemplate).then((response) => { |
| | | this.objyl.svyTaskTemplateScriptVOS = this.objyl.svyTemplateLibScripts; |
| | | this.objyl.templateid = this.objyl.svyid; |
| | | |
| | | this.objyl.isoperation = 1; |
| | | console.log(this.objyl.id); |
| | | |
| | | if (this.objyl.id) { |
| | | deleteTaskQuestioncomit(this.objyl.id).then((res) => { |
| | | if (res.code == 200) { |
| | | (this.objyl.id = null), |
| | | TaskQuestioncomit(this.objyl).then((response) => { |
| | | this.previewtf = false; |
| | | this.form.libtemplateid = this.objyl.svyid; |
| | | this.form.templateid = response.data; |
| | | this.form.libtemplateid = this.libId; |
| | | this.form.templatename = this.libName; |
| | | this.putbelongDepts(response.data); |
| | | this.form.templatename = this.objyl.svyname; |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | TaskQuestioncomit(this.objyl).then((response) => { |
| | | this.previewtf = false; |
| | | this.form.libtemplateid = this.objyl.svyid; |
| | | this.form.templateid = response.data; |
| | | this.putbelongDepts(response.data); |
| | | this.form.templatename = this.objyl.svyname; |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | } |
| | | }, |
| | | // 保存科室/病区 |
| | | putbelongDepts(id) { |
| | | this.tempDetpRelevanceslistform.forEach((item) => { |
| | | item.tempid = id; |
| | | }); |
| | | this.tempbelongWardsform.forEach((item) => { |
| | | item.tempid = id; |
| | | }); |
| | | depthospgetson(this.tempDetpRelevanceslistform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("科室更新成功"); |
| | | this.tempDetpRelevanceslistform = []; |
| | | } |
| | | }); |
| | | depthospgetson(this.tempbelongWardsform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("病区更新成功"); |
| | | this.tempbelongWardsform = []; |
| | | } |
| | | }); |
| | | }, |
| | | // 处理服务形式 |
| | | formatFn(type) { |
| | | console.log(this.preachform, "preachform"); |
| | | console.log(this.checkList, "checklist"); |
| | | let list = []; |
| | | let formlist = []; |
| | | if (type == 1) { |
| | |
| | | }); |
| | | this.checkList = list; |
| | | } |
| | | }, |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | | this.tempDetpRelevanceslist.forEach((item) => { |
| | | this.tempDetpRelevanceslistform.push({ |
| | | deptType: 1, |
| | | longTemp: this.form.longTask, |
| | | deptCode: item, |
| | | tempid: null, |
| | | type: 11, |
| | | }); |
| | | }); |
| | | |
| | | this.tempbelongWards.forEach((item) => { |
| | | this.tempbelongWardsform.push({ |
| | | deptType: 2, |
| | | longTemp: this.form.longTask, |
| | | deptCode: item, |
| | | tempid: null, |
| | | type: 11, |
| | | }); |
| | | }); |
| | | console.log(33); |
| | | |
| | | setTimeout(() => { |
| | | this.previewFn(); |
| | | }, 1000); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | } |
| | | } |
| | | } |
| | | .xinz-infs { |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | // .leftvlue-jbxx { |
| | | // margin-bottom: 50px; |
| | | // font-size: 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); |
| | | // 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); |
| | | .scriptTopic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | |
| | | // } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | font-size: 18px; |
| | | } |
| | | } |
| | | ::v-deep.el-input.is-disabled .el-input__inner { |
| | |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | font-size: 18px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">指标类型</div> |
| | | <div class="top-wj">指标分类</div> |
| | | <div class="top-tj" @click="dialogFormVisible = true">+添加</div> |
| | | </div> |
| | | <div class="center-ss"> |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | label="指标类型" |
| | | label="指标名称" |
| | | fixed |
| | | align="center" |
| | | key="targetname" |
| | | prop="targetname" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="指标描述" |
| | | align="center" |
| | | key="targetdesc" |
| | | prop="targetdesc" |
| | | :show-overflow-tooltip="true" |
| | | width="200" |
| | | /> |
| | | <el-table-column |
| | | label="指标类型" |
| | | align="center" |
| | | key="valueType" |
| | | prop="valueType" |
| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="指标名称" |
| | | align="center" |
| | | key="targetname" |
| | | prop="targetname" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | |
| | | |
| | | <!-- <el-table-column |
| | | label="正常值范围" |
| | |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="指标描述" |
| | | align="center" |
| | | key="targetdesc" |
| | | prop="targetdesc" |
| | | width="200" |
| | | /><el-table-column |
| | | label="适用场景" |
| | | align="center" |
| | | key="suitWayList" |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="illnessUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-date"></i>详情</span |
| | | ></el-button |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-edit"></i>修改</span |
| | | ></el-button |
| | |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-delete"></i>删除</span |
| | | ></el-button |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="版本号" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.version" |
| | | placeholder="默认1.0" |
| | | maxlength="40" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- deptOptions --> |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="指标分类" prop="assortid"> |
| | | <el-select |
| | | style="width: 300px;" |
| | | v-model="indexform.assortid" |
| | | size="medium" |
| | | filterable |
| | |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="指标描述" prop="targetdesc"> |
| | | <el-input |
| | | v-model="indexform.targetdesc" |
| | | placeholder="请输入指标描述" |
| | | id="targetdesc" |
| | | @focus="currentInputId = 'targetdesc'" |
| | | maxlength="40" |
| | | /> |
| | | </el-form-item> </el-col |
| | | ></el-row> |
| | | <!-- deptOptions --> |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="版本号" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.version" |
| | | placeholder="默认1.0" |
| | | maxlength="40" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="指标描述" prop="targetdesc"> |
| | | <el-input |
| | | v-model="indexform.targetdesc" |
| | | placeholder="请输入指标描述" |
| | | id="targetdesc" |
| | | @focus="currentInputId = 'targetdesc'" |
| | | maxlength="40" |
| | | /> |
| | | </el-form-item> </el-col |
| | | ></el-row> |
| | | |
| | | <!-- <el-form-item label="插入填空" prop="scriptContent"> |
| | | <div style="display: flex; margin-bottom: 10px"> |
| | | <div class="tsgname" @click="tsgnameto">插入填空</div> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item prop="valueType"> |
| | | <template #label> |
| | | 值类型 |
| | | 结果类型 |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | |
| | | > |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="题目类型" prop="scriptType"> |
| | | <el-form-item label="适用题型" prop="scriptType"> |
| | | <el-radio-group |
| | | @input="Changtype" |
| | | v-model="indexform.scriptType" |
| | |
| | | { required: true, message: "指标描述不能为空", trigger: "blur" }, |
| | | ], |
| | | valueType: [ |
| | | { required: true, message: "值类型不能为空", trigger: "blur" }, |
| | | { required: true, message: "结果类型不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | { required: true, message: "适用题型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitWayList: [ |
| | | { required: true, message: "适用场景不能为空", trigger: "blur" }, |
| | |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form-item label="用户名称" prop="userName"> |
| | | <el-form-item label="用户工号" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请输入用户名称" |
| | | placeholder="请输入用户工号" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="用户昵称" prop="nickName"> |
| | | <el-input |
| | | v-model="queryParams.nickName" |
| | | placeholder="请输入用户昵称" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | /> |
| | | </el-select> |
| | | </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-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | v-if="columns[0].visible" |
| | | /> |
| | | <el-table-column |
| | | label="用户名称" |
| | | label="用户工号" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="归属部门" prop="deptId"> |
| | | <treeselect |
| | | v-model="form.depts" |
| | | :options="deptOptions" |
| | | :multiple="true" |
| | | :show-count="true" |
| | | placeholder="请选择归属部门" |
| | | <el-col :span="12"> |
| | | <el-form-item label="患者范围" prop="status"> |
| | | <el-select |
| | | v-model="form.searchscope" |
| | | placeholder="患者范围" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="dict in searchscopelist" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="适用科室" prop="region"> |
| | | <el-cascader |
| | | style="width: 478px" |
| | | v-model="form.leaveldeptcodes" |
| | | v-model="form.deptCodes" |
| | | @remove-tag="removehpsp" |
| | | :options="deptOptions" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.label }}</span> |
| | | <span v-if="!node.isLeaf"> |
| | | ({{ data.children.length }}) |
| | | </span> |
| | | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="适用院区" prop="region"> |
| | | <el-form-item label="适用病区" prop="region"> |
| | | <el-cascader |
| | | style="width: 478px" |
| | | v-model="form.leavehospitaldistrictcodes" |
| | | @remove-tag="removehpsp" |
| | | v-model="form.wardCodes" |
| | | :options="deptOptions" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.label }}</span> |
| | | <span v-if="!node.isLeaf"> |
| | | ({{ data.children.length }}) |
| | | </span> |
| | | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | v-if="form.userId == undefined" |
| | | label="用户名称" |
| | | label="用户工号" |
| | | prop="userName" |
| | | > |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请输入用户名称" |
| | | placeholder="请输入用户工号" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="岗位"> |
| | |
| | | updateUser, |
| | | resetUserPwd, |
| | | adduserdept, |
| | | removeusertd, |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import { type } from "jquery"; |
| | | |
| | | export default { |
| | | name: "User", |
| | |
| | | status: undefined, |
| | | deptId: undefined, |
| | | }, |
| | | searchscopelist: [ |
| | | { value: "1", label: "科室" }, |
| | | { value: "2", label: "病区" }, |
| | | { value: "0", label: "全部" }, |
| | | { value: "9", label: "无" }, |
| | | ], |
| | | // 列信息 |
| | | columns: [ |
| | | { key: 0, label: `用户编号`, visible: true }, |
| | | { key: 1, 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" }, |
| | | { required: true, message: "用户工号不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "用户名称长度必须介于 2 和 20 之间", |
| | | message: "用户工号长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | |
| | | }, |
| | | /** 查询部门下拉树结构 */ |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | }); |
| | | // 院区列表 |
| | | // deptTreeSelect().then((response) => { |
| | | // this.deptOptions = response.data; |
| | | // }); |
| | | }, |
| | | // 筛选节点 |
| | | filterNode(value, data) { |
| | |
| | | const userId = row.userId || this.ids; |
| | | getUser(userId).then((response) => { |
| | | this.form = response.data; |
| | | |
| | | this.form.leaveldeptcodes = JSON.parse(this.form.hospInfo); |
| | | this.form.leavehospitaldistrictcodes = JSON.parse(this.form.deptInfo); |
| | | console.log(this.form.leavehospitaldistrictcodes,'leavehospitaldistrictcodes'); |
| | | console.log(this.form.leaveldeptcodes,'leaveldeptcodes'); |
| | | this.belongDepts = response.belongDepts; |
| | | this.belongWards = response.belongWards; |
| | | if (this.form.hospInfo) |
| | | this.form.deptCodes = JSON.parse(this.form.hospInfo); |
| | | if (this.form.deptInfo) |
| | | this.form.wardCodes = JSON.parse(this.form.deptInfo); |
| | | console.log(this.form.wardCodes, "wardCodes"); |
| | | console.log(this.form.deptCodes, "deptCodes"); |
| | | |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | |
| | | this.open = true; |
| | | this.title = "修改用户"; |
| | | this.form.password = ""; |
| | | }); |
| | | }, |
| | | // 删除科室 |
| | | removehpsp(valueArray) { |
| | | console.log(valueArray,'删除科室'); |
| | | console.log(this.form.userId,'删除'); |
| | | let code=valueArray[valueArray.length-1]; |
| | | removeusertd(this.form.userId,code).then((res) => { |
| | | if (res.code) { |
| | | } |
| | | }); |
| | | }, |
| | | /** 重置密码按钮操作 */ |
| | |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm: function () { |
| | | this.form.hospInfo = JSON.stringify(this.form.leaveldeptcodes); |
| | | this.form.deptInfo = JSON.stringify(this.form.leavehospitaldistrictcodes); |
| | | this.form.leaveldeptcodes = this.form.leaveldeptcodes.map( |
| | | this.form.hospInfo = JSON.stringify(this.form.deptCodes); |
| | | this.form.deptInfo = JSON.stringify(this.form.wardCodes); |
| | | this.form.deptCodes = this.form.deptCodes.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | this.form.leavehospitaldistrictcodes = this.form.leavehospitaldistrictcodes.map( |
| | | this.form.wardCodes = this.form.wardCodes.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | console.log(this.form.leavehospitaldistrictcodes,'leavehospitaldistrictcodes'); |
| | | console.log(this.form.leaveldeptcodes,'leaveldeptcodes'); |
| | | |
| | | console.log(this.form.wardCodes, "wardCodes"); |
| | | console.log(this.form.deptCodes, "deptCodes"); |
| | | |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | this.adduserdept(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | this.form.userId = response.data; |
| | | console.log("开始加部门"); |
| | | |
| | | this.adduserdept(); |
| | | }); |
| | | } |
| | | } |
| | |
| | | }, |
| | | // 新增数据 |
| | | adduserdept(){ |
| | | if (this.form.leavehospitaldistrictcodes[0]) { |
| | | this.form.leavehospitaldistrictcodes.forEach((dept) => { |
| | | adduserdept({deptCode:dept,deptType:2,userId:this.form.userId}).then((response) => { |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | } |
| | | if (this.form.leaveldeptcodes[0]) { |
| | | this.form.leaveldeptcodes.forEach((dept) => { |
| | | adduserdept({deptCode:dept,deptType:1,userId:this.form.userId}).then((response) => { |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | if (this.form.wardCodes[0]) { |
| | | this.form.wardCodes.forEach((dept) => { |
| | | const containsId8 = null; |
| | | if (this.belongWards) { |
| | | containsId8 = this.belongWards.some( |
| | | (item) => item.deptCode == dept |
| | | ); |
| | | } |
| | | |
| | | adduserdept(this.form).then((response) => { |
| | | this.$modal.msgSuccess("添加成功"); |
| | | if (!containsId8) { |
| | | adduserdept({ |
| | | deptCode: dept, |
| | | deptType: 2, |
| | | userId: this.form.userId, |
| | | }).then((response) => { |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | if (this.form.deptCodes[0]) { |
| | | this.form.deptCodes.forEach((dept) => { |
| | | const containsId8 = null; |
| | | if (this.belongDepts) { |
| | | containsId8 = this.belongDepts.some( |
| | | (item) => item.deptCode == dept |
| | | ); |
| | | } |
| | | if (!containsId8) { |
| | | adduserdept({ |
| | | deptCode: dept, |
| | | deptType: 1, |
| | | userId: this.form.userId, |
| | | }).then((response) => { |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | |
| | | |
| | | const name = process.env.VUE_APP_TITLE || '浙中大二院智慧随访平台' // 网页标题 |
| | | |
| | | const port = process.env.port || process.env.npm_config_port || 8096 // 端口 |
| | | const port = process.env.port || process.env.npm_config_port || 8093 // 端口 |
| | | |
| | | // vue.config.js 配置说明 |
| | | //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions |
| | |
| | | proxy: { |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `http://192.168.168.60:8095`, |
| | | target: `http://192.168.1.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`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |