You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
510 lines
23 KiB
510 lines
23 KiB
import Vue from "vue";
|
|
import Vuex from "vuex";
|
|
// import { getapi, postapi, putapi, deletapi } from "@/api/api";
|
|
// import { arrayReduce } from "@/utlis/proFunc";
|
|
|
|
Vue.use(Vuex);
|
|
|
|
export default new Vuex.Store({
|
|
state: {
|
|
changepassword: '', //用户密码
|
|
set: "qqqq",
|
|
importexcel: {
|
|
|
|
},
|
|
router: {
|
|
path: '',
|
|
},
|
|
window: {
|
|
pageHeight: 960, //页面高度
|
|
pageWidth: 1920, //页面宽度
|
|
pageHeaderHeight: 50, //container-header 高度
|
|
pageMarginWidth: 10, //container-左右边距和
|
|
pageMarginHeight: 10, //container-上下边距和
|
|
cardHeaderHeight: 45, //card-header 高度
|
|
|
|
shift: false, //是否按下 shift键
|
|
ctrl: false, //是否按下 ctrl键
|
|
},
|
|
elProgress: { //通用进度条相关参数
|
|
display: false, //是否显示
|
|
textInside: true,
|
|
strokeWidth: 30,
|
|
percentage: 0
|
|
},
|
|
customerOrg: {
|
|
//体检单位设置
|
|
oprStatus: '', //空,add,edit 三种状态
|
|
customerOrgTree: [], //体检单位列表
|
|
defaultExpandedKeys: [], //当前选中树的节点
|
|
treeCurrentNodekey: '', //当前选中树的节点
|
|
treeprops: {
|
|
label: "displayName",
|
|
value: "id",
|
|
id: "id",
|
|
children: "treeChildren",
|
|
}, //树形组件的数据结构
|
|
customerOrgId: "", //当前单位ID(可根据此值是否为空,判断是新增还是编辑)
|
|
customerOrgRd: { id: "", isLock: "N", isActive: "Y", isLockBox: false, isActiveBox: true, }, //单个体检单位记录值
|
|
customerOrgRegisterList: [{ id: 'uuid' }], //单位体检次数登记列表
|
|
contactPersonList: [], //联系人列表
|
|
contactMethodList: [], //联系方式列表
|
|
orgEditStyle: '', //编辑表单样式
|
|
orgDetailStyle: '', //体检次数样式
|
|
orgDetailHeight: 300, //体检次数LIST表格高度
|
|
personStyle: '', //联系人样式
|
|
},
|
|
//体检单位分组
|
|
personnelUnit: {
|
|
customerOrgGroupId: "",
|
|
personnelgrouping: [], //人员分组
|
|
id: "", //根据Id选择的数据
|
|
form: { id: "" }, //列表每一项
|
|
nogroupselected: [], //已选分组
|
|
},
|
|
|
|
//体检人员登记 add by pengjun
|
|
patientRegister: {
|
|
customerOrgTreeAll: [], //体检单位列表(含个人)
|
|
patientRegisterId: "", //当前人员ID(可根据此值是否为空,判断是新增还是编辑)
|
|
patientRegisterTimes: 0, //体检人员登记窗口显示次数(弃用)
|
|
addTimes: 0, //用于触发新增时初始化赋值
|
|
saveTimes: 0, //用于体检登记时,触发分组调整保存
|
|
photo: "/pic/Photo.jpg", //单独抽出,拍照时会更新
|
|
cameraVisble: false, //拍照控件显示
|
|
lisRequestVisble: false, //检验条码补打
|
|
mergeAsbitemVisble: false, //合并项目
|
|
patientRegisterRd: { id: "" }, //体检人员记录
|
|
patientRegisterRdInit: {
|
|
id: "", //id
|
|
patientId: "00000000-0000-0000-0000-000000000000", //档案号ID 选择了档案就传档案号,未选就传00000-0000...
|
|
patientNo: "", //档案号
|
|
customerOrgId: null, //单位编号
|
|
customerOrgGroupId: null, //分组
|
|
medicalPackageId: null, //套餐
|
|
patientName: "", //姓名
|
|
birthDate: "", //字符串 如:2012-01-29
|
|
sexId: "U", //性别 默认未知U
|
|
age: null, //年龄
|
|
jobCardNo: "", //工卡号
|
|
medicalCardNo: "", //体检卡号
|
|
maritalStatusId: "9", //婚姻状况 默认未知
|
|
medicalTypeId: null, //体检类别
|
|
personnelTypeId: null, //人员类别
|
|
jobPost: "", //职务
|
|
jobTitle: "", //职称
|
|
photo: "/pic/Photo.jpg", //照片
|
|
salesman: "", //介绍人
|
|
sexHormoneTermId: null, //性激素期限
|
|
isNameHide: "N", //隐藏姓名
|
|
isPhoneFollow: "N", //电话随访
|
|
isVip: "N", //vip客户
|
|
remark: "", //
|
|
isLock: "N", //是否锁住
|
|
completeFlag: "1", //完成标志 0:预登记,1:未检,2:部份已检,3:已总检 【创建编辑时不操作】
|
|
isMedicalStart: "N", //体检开始标志 【创建编辑时不操作】
|
|
patientRegisterNo: "", //条码号 【创建编辑时不操作】
|
|
medicalTimes: 1, //条码号 【创建编辑时不操作】
|
|
medicalCenterId: null, //体检中心
|
|
address: "", //地址
|
|
email: "", //email
|
|
idNo: "", //身份证号
|
|
telephone: "", //电话
|
|
mobileTelephone: "", //手机号
|
|
nationId: null, //民族编号
|
|
postalCode: "", //邮编
|
|
creatorId: null,
|
|
creationTime: "",
|
|
lastModificationTime: "",
|
|
lastModifierId: null,
|
|
}, //体检人员记录(初始值)一般创建用
|
|
customerOrgGroupAsb: [], //选中分组所包含的组合项目
|
|
medicalPackageAsb: [], //选中套餐所包含的组合项目
|
|
customerOrgGroupChange: 0, //控制体检列表记录切换时,0 无需触发更换分组操作
|
|
medicalPackageChange: 0, //控制体检列表记录切换时,0 无需触发更换套餐操作
|
|
query: {
|
|
dateType: 'creationTime', //登记日期
|
|
dateRange: null, //日期范围
|
|
startDate: null,
|
|
endDate: null,
|
|
containRefuse: true, //包含弃检项目
|
|
times: 0, //触发查询次数
|
|
customerOrgId: "", //体检单位ID
|
|
CustomerOrgParentId: "", //单位父级ID
|
|
customerOrgFlag: true, //单位作为查询条件
|
|
customerOrgRegister: { id: '' }, //单位体检次数
|
|
checkAsbs: null,
|
|
patientName: '', //姓名
|
|
sex: '', //性别
|
|
idCardNo: '', //身份证号
|
|
}, //查询条件
|
|
customerOrgGroup: [], //分组(针对单位)
|
|
patientRegisterAbs: [], //人员已选组合项目
|
|
prList: [], //体检登记记录
|
|
},
|
|
|
|
//体检医生诊台
|
|
doctorCheck: {
|
|
prBase: {
|
|
id: '', //体检登记ID
|
|
}, //人员体检登记显示基本信息
|
|
|
|
RegisterCheckEdit: {
|
|
id: '',
|
|
checkDoctorId: null,
|
|
checkDate: '',
|
|
completeFlag: '0',
|
|
LastModificationTime: '',
|
|
LastModifierId: null,
|
|
isLock: 'N',
|
|
isAudit: 'N',
|
|
auditorUserId: null,
|
|
auditTime: '',
|
|
}, //组合项目详情
|
|
doctorCheckDialogVisible: false,
|
|
RegisterCheckList: [], //人员体检 组合项目列表
|
|
RegisterCheck: {}, //单组合项目记录
|
|
RegisterCheckId: '', //
|
|
checkItemList: [], //组合项目包含的明细项目
|
|
checkItem: {}, //单项目记录
|
|
checkSummaryList: [], //小结
|
|
checkSuggestionList: [], //建议
|
|
},
|
|
|
|
//总检医生
|
|
sumDoctorCheck: {
|
|
sumDoctorCheckDialogVisible: false,
|
|
sumDiagnosisVisible: false,
|
|
sumPREdit: {}, //总检医生时间等相关信息(sumPREditInit)
|
|
summaryList: [], //综述
|
|
suggestionList: [], //建议
|
|
diagnosisList: [], //诊断
|
|
},
|
|
|
|
report: {
|
|
dialogCusOrgOCX: false, //通用单位查询控件显示
|
|
dataCusOrgOCX: [], //通用单位查询的数据
|
|
dialogAsbitemOCX: false,
|
|
dataAsbitemOCX: [], //通用组合项目查询的数据
|
|
},
|
|
diagnosis: {
|
|
dialogCusOrgOCX: false, //通用单位查询控件显示
|
|
dataCusOrgOCX: [], //通用单位查询的数据
|
|
dialogAsbitemOCX: false,
|
|
dataAsbitemOCX: [], //通用诊断查询的数据
|
|
},
|
|
project: {
|
|
dialogCusOrgOCX: false, //通用单位查询控件显示
|
|
dataCusOrgOCX: [], //通用单位查询的数据
|
|
dialogAsbitemOCX: false,
|
|
dataAsbitemOCX: [], //通用项目查询的数据
|
|
},
|
|
|
|
//公共字典数据(量大的数据字典推荐用 indexedDB ) add by pengjun
|
|
dict: {
|
|
personOrgId: "00000000-0000-0000-0000-000000000001", //个人体检单位ID
|
|
organization: [], //体检中心
|
|
sex: [], //性别(人员档案用)
|
|
forSex: [], //适用性别
|
|
medicalType: [], //体检类别
|
|
personnelType: [], //人员类别
|
|
maritalStatus: [], //婚姻状况
|
|
forMaritalStatus: [{ id: '0', displayName: '未婚' }, { id: '1', displayName: '已婚' }, { id: 'A', displayName: '全部' }], //适用婚姻
|
|
sexHormoneTerm: [], //性激素期
|
|
nation: [], //民族
|
|
birthPlace: [], //籍惯 ,出生地
|
|
completeFlag: [
|
|
//体检完成标志
|
|
{ id: "0", displayName: "预登记" },
|
|
{ id: "1", displayName: "正式登记" },
|
|
{ id: "2", displayName: "部份已检" },
|
|
{ id: "3", displayName: "已总检" },
|
|
],
|
|
checkCompleteFlag: [
|
|
//体检完成标志
|
|
{ id: "0", displayName: "未检" },
|
|
{ id: "1", displayName: "已检" },
|
|
{ id: "2", displayName: "弃检" },
|
|
],
|
|
sumAudit: [
|
|
//总检审核
|
|
{ id: "Y", displayName: "已审核" },
|
|
{ id: "N", displayName: "未审核" }
|
|
],
|
|
payType: [
|
|
//支付方式,比如是0自费、2免费、1单位支付
|
|
{ id: "0", displayName: "个人支付" },
|
|
{ id: "1", displayName: "单位支付" },
|
|
{ id: "2", displayName: "免费" },
|
|
],
|
|
cardMode: [
|
|
{ id: "0", displayName: "充值卡" },
|
|
{ id: "1", displayName: "积分卡" },
|
|
],
|
|
cardType: [], //会员卡类别
|
|
billFlag: [
|
|
{ id: "0", displayName: "收费" },
|
|
{ id: "1", displayName: "退费" },
|
|
{ id: "2", displayName: "充值" },
|
|
],
|
|
checkTypeFlag: [
|
|
{ id: "0", displayName: "检验" },
|
|
{ id: "1", displayName: "功能检查" },
|
|
],
|
|
menuType: [
|
|
{ id: "0", displayName: "仅菜单节点" },
|
|
{ id: "1", displayName: "菜单及页面" },
|
|
{ id: "2", displayName: "仅页面节点" },
|
|
{ id: "3", displayName: "按钮或事件" },
|
|
],
|
|
lineModeFlag: [
|
|
{ id: "0", displayName: "不换行" },
|
|
{ id: "1", displayName: "换行" },
|
|
{ id: "2", displayName: "继承项目类别换行属性" },
|
|
],
|
|
medicalPackage: [], //所有套餐
|
|
customerOrgGroupAll: [], //所有分组,不限单位,不限次数
|
|
customerOrg: [], //所有单位,非树结构
|
|
payMode: [], //支付方式
|
|
itemTypeTree: [], //体检类别 树结构
|
|
asbItemAll: [], //所有组合项目
|
|
asbItem: [], //显示的 未选组合项目
|
|
asbItemQuick: [], //显示的 未选组合项目(供快速选择)
|
|
diagnosisLevel: [], //诊断级别
|
|
},
|
|
|
|
// 项目特有的对象数据 project private
|
|
projPriv: {
|
|
idNos: {
|
|
Code: "Success", //读取成功/失败
|
|
Name: "刘滔",
|
|
Sex: "男",
|
|
Nation: "汉",
|
|
Birthday: "1986-01-22",
|
|
Address: "湖南省长沙县春华镇九木村新元组367号",
|
|
DepartmentIC: "长沙县公安局",
|
|
StartDateIC: "2019-11-25",
|
|
EndDateIC: "2039-11-25",
|
|
IDCode: "430121198601223693",
|
|
Photo: "base64编码字符串"
|
|
}, //读取身份证信息
|
|
},
|
|
|
|
// 多层数据传递时使用(统一归结在此,便于管理)
|
|
dataTransOpts: {
|
|
// 强制刷新(如触发数据刷新的ID值没有变化时,但也想强制刷新数据:
|
|
// S--single 单记录刷新,M--more 多记录刷新,D--detail
|
|
// 当父子组件都在存在多记录刷新时 父组件用 M,子组件用 D
|
|
refresh: {
|
|
adp_roles: { S: 0, M: 0 }, // 角色
|
|
adp_users: { S: 0, M: 0 }, // 用户
|
|
asbitem: { S: 0, M: 0 }, // 组合项目
|
|
customer_org: { S: 0, M: 0 }, // 体检单位
|
|
contact_method: { S: 0, M: 0 }, // 联系方式
|
|
contact_person: { S: 0, M: 0 }, // 体检单位联系人
|
|
customer_org_register: { S: 0, M: 0 }, // 单位体检次数
|
|
customer_org_group: { S: 0, M: 0 }, // 单位分组
|
|
customer_org_group_detail: { S: 0, M: 0 }, // 单位分组包含的组合项目明细
|
|
charge: { S: 0, M: 0 }, // 收费
|
|
menu_info: { S: 0, M: 0 }, // 菜单与页面
|
|
patient_register: { S: 0, M: 0 }, // 体检人员记录
|
|
register_check_asbitem: { S: 0, M: 0, D: 0 }, // 体检人员登记的项目(合并前)
|
|
register_check: { S: 0, M: 0 }, // 体检人员登记的项目(合并后)
|
|
register_check_item: { S: 0, M: 0 }, // 体检人员登记的明细项目
|
|
role_menu_info: { S: 0, M: 0 }, // 角色对应的菜单
|
|
sum_diagnosis: { S: 0, M: 0 }, // 总检诊断
|
|
|
|
sumDoctor: { S: 0, M: 0 }, // 虚拟表 触发强制刷新 (sumDoctor.M 合并包含:综述、建议、对比、历史等,不包含总检诊断)
|
|
},
|
|
//表当前数据(单条记录 S--single)
|
|
tableS: {
|
|
adp_roles: { id: '' }, // 角色
|
|
adp_users: { id: '' }, // 用户
|
|
asbitem: { id: '' }, // 组合项目
|
|
customer_org: { id: '', parent_id: '' }, // 体检单位
|
|
contact_method: { id: '' }, // 联系方式
|
|
contact_person: { id: '' }, // 体检单位联系人
|
|
customer_org_register: { id: '' }, // 单位体检次数 pid/单位一级节点
|
|
customer_org_group: { id: '' }, // 单位分组
|
|
customer_org_group_detail: { id: '' }, // 单位分组包含的组合项目明细
|
|
charge: { id: '' }, // 收费
|
|
menu_info: { id: '' }, // 菜单与页面
|
|
patient_register: { id: '', patientRegisterNo: ''}, // 体检人员记录
|
|
register_check_asbitem: { id: '' }, // 体检人员登记的项目(合并前)
|
|
register_check: { id: '' }, // 体检人员登记的项目(合并后)
|
|
register_check_item: { id: '' }, // 体检人员登记的明细项目
|
|
role_menu_info: { id: '' }, // 角色对应的菜单
|
|
sum_diagnosis: { id: '' }, // 总检诊断
|
|
},
|
|
//表当前数据(多条记录 M--more)
|
|
tableM: {
|
|
adp_roles: [], // 角色
|
|
adp_users: [], // 用户
|
|
asbitem: [], // 组合项目
|
|
customer_org: [], // 体检单位
|
|
contact_method: [], // 联系方式
|
|
contact_person: [], // 体检单位联系人
|
|
customer_org_register: [], // 单位体检次数
|
|
customer_org_group: [], // 单位分组
|
|
customer_org_group_detail: [], // 单位分组包含的组合项目明细
|
|
charge: [], // 收费
|
|
menu_info: [], // 菜单与页面
|
|
patient_register: [], // 体检人员记录
|
|
register_check_asbitem: [], // 体检人员登记的项目(合并前)
|
|
register_check: [], // 体检人员登记的项目(合并后)
|
|
register_check_item: [], // 体检人员登记的明细项目
|
|
role_menu_info: [], // 角色对应的菜单
|
|
sum_diagnosis: [], // 总检诊断
|
|
},
|
|
plus: {
|
|
clearPatientRegisterQuery: 0, //清空人员登记界面查询条件(重新赋值体检单位)
|
|
PatientRegisterEditGroupBatch: 0, //刷新批量调整分组窗口
|
|
PatientRegisterEditItemBatch: 0, //刷新批量调整项目窗口
|
|
PatientRegisterForChoose:0, // 体检人员查询窗口
|
|
}
|
|
|
|
},
|
|
|
|
// 弹窗控制
|
|
dialogWin: {
|
|
ContactPersonEdit: false, // 联系人
|
|
CustomerOrgGroupEdit: false, // 单位分组 新增/编辑
|
|
charge: false, // 收费窗口
|
|
PatientList: false, // 体检人员档案列表
|
|
PatientRegisterEdit: false, // 体检人员登记 新增/编辑
|
|
PatientRegisterForChoose: false, // 体检人员登记列表
|
|
PatientRegisterEditItemBatch: false, //批量调整项目
|
|
PatientRegisterEditGroupBatch: false, //批量调整分组
|
|
MenuPageSet: false, // 设置角色菜单权限
|
|
}
|
|
|
|
},
|
|
getters: {
|
|
|
|
},
|
|
|
|
mutations: {
|
|
//同步更改状态
|
|
//通用设置 state 值 option {key:,value:} add by pengjun
|
|
setData(state, option) {
|
|
let array = option.key.split(".");
|
|
switch (array.length) {
|
|
case 1:
|
|
state[array[0]] = option.value;
|
|
break;
|
|
case 2:
|
|
state[array[0]][array[1]] = option.value;
|
|
break;
|
|
case 3:
|
|
state[array[0]][array[1]][array[2]] = option.value;
|
|
break;
|
|
case 4:
|
|
state[array[0]][array[1]][array[2]][array[3]] = option.value;
|
|
break;
|
|
}
|
|
},
|
|
|
|
doctorCheckPrBaseInit(state) {
|
|
state.doctorCheck.prBase = {
|
|
id: '', //体检登记ID
|
|
patientRegisterNo: '', //条码号
|
|
patientNo: '', //档案号
|
|
patientName: '', //姓名
|
|
sexId: '', //性别
|
|
medicalTimes: '', //体检次数
|
|
maritalStatusId: '', //婚姻
|
|
creationTime: '', //体检日期
|
|
customerOrgParentName: '', //单位
|
|
customerOrgName: '', //部门
|
|
medicalTypeId: '', //体检类别
|
|
personnelTypeId: '', //人员类别
|
|
nationId: '', //民族
|
|
mobileTelephone: '', //手机
|
|
} //人员体检登记显示基本信息
|
|
},
|
|
|
|
sumPREditInit(state) {
|
|
state.dataTransOpts.tableS.patient_register = {
|
|
id: '', //体检登记ID
|
|
completeFlag: '', //完成状态
|
|
summaryDoctor: '', //总检医生
|
|
summaryDate: '', //总检日期
|
|
isAudit: '', //审核状态
|
|
auditDoctor: '', //审核医生
|
|
auditDate: '', //审核日期
|
|
isLock: '', //锁定状态
|
|
patientId: '', //人员档案ID
|
|
} //人员体检登记显示基本信息
|
|
},
|
|
},
|
|
|
|
actions: {
|
|
// //获取体检人员所选组合项目
|
|
// getPatientRegisterAbs(context, id) {
|
|
// //console.log(`vuex getPatientRegisterAbs /api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, context.state.dict.asbItemAll)
|
|
// if (id) {
|
|
// getapi(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`).then(
|
|
// (res) => {
|
|
// console.log(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, res)
|
|
// if (res.code == 1) {
|
|
// let patientRegisterAbs = []
|
|
// res.data.forEach(e => {
|
|
// e.standTotal = e.amount * e.standardPrice
|
|
// e.total = e.amount * e.chargePrice
|
|
// patientRegisterAbs.push(e)
|
|
// });
|
|
// context.commit("setData", {
|
|
// key: "patientRegister.patientRegisterAbs",
|
|
// value: patientRegisterAbs,
|
|
// });
|
|
|
|
// context.commit("setData", {
|
|
// key: "dict.asbItem",
|
|
// value: arrayReduce(
|
|
// [...context.state.dict.asbItem], [...context.state.patientRegister.patientRegisterAbs],
|
|
// "id=asbitemId"
|
|
// ),
|
|
// });
|
|
// context.commit("setData", {
|
|
// key: "dict.asbItemQuick",
|
|
// value: arrayReduce([...context.state.dict.asbItemAll], [...context.state.patientRegister.patientRegisterAbs], "id=asbitemId"),
|
|
// });
|
|
// //console.log(`getPatientRegisterAbs ${id}`,context.state.dict.asbItemQuick)
|
|
// }
|
|
// }
|
|
// );
|
|
// } else {
|
|
// context.commit("setData", {
|
|
// key: "patientRegister.patientRegisterAbs",
|
|
// value: [],
|
|
// });
|
|
|
|
// context.commit("setData", {
|
|
// key: "dict.asbItem",
|
|
// value: [...context.state.dict.asbItemAll],
|
|
// });
|
|
// context.commit("setData", {
|
|
// key: "dict.asbItemQuick",
|
|
// value: [...context.state.dict.asbItemAll],
|
|
// });
|
|
// }
|
|
// },
|
|
|
|
// //获取单位分组 /api/app/customer-org-group/in-customer-org-id/3a0c0444-d7a0-871f-4074-19faf1655caf
|
|
// getCustomerOrgGroup(context, customerOrgld) {
|
|
// console.log(`vuex /api/app/customer-org-group/in-customer-org-id/${customerOrgld}`);
|
|
// getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`)
|
|
// .then((res) => {
|
|
// console.log("vuex getCustomerOrgGroup", res.data);
|
|
// if (res.code == 1) {
|
|
// //this.patientRegister.customerOrgGroup = res.data
|
|
// context.commit("setData", {
|
|
// key: "patientRegister.customerOrgGroup",
|
|
// value: res.data,
|
|
// });
|
|
// }
|
|
// });
|
|
// },
|
|
},
|
|
modules: {},
|
|
});
|