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: { sysConfig: { apiurl: '' }, // pickerOptions: { disabledDate(time) { return time.getTime() > Date.now(); }, shortcuts: [{ text: '今天', onClick(picker) { picker.$emit('pick', new Date()); } }, { text: '昨天', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24); picker.$emit('pick', date); } }, { text: '一周前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); picker.$emit('pick', date); } }, { text: '半月前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 15); picker.$emit('pick', date); } }, { text: '一月前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 30); picker.$emit('pick', date); } }, { text: '三月前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 92); picker.$emit('pick', date); } }, { text: '半年前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 183); picker.$emit('pick', date); } }, { text: '一年前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 365); picker.$emit('pick', date); } }, { text: '三年前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 1096); picker.$emit('pick', date); } }] }, 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键 export: false //是否导出excel }, elProgress: { //通用进度条相关参数 display: false, //是否显示 textInside: true, strokeWidth: 30, percentage: 0 }, customerOrg: { //体检单位设置 oprStatus: '', //空,add,edit 三种状态 customerOrgTree: [], //体检单位列表 customerOrgTreeBak: [], //体检单位列表 defaultExpandedKeys: [], //当前选中树的节点 treeCurrentNodekey: '', //当前选中树的节点 treeprops: { label: "displayName", //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: { customerOrgs: [], // 体检单位列表(含个人)列表 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: '' }, //单位体检次数 customerOrgGroupIds: [], //体检分组 checkAsbs: null, patientRegisterNo: '', pacsNo: '', lisNo: '', patientName: '', //姓名 sex: '', //性别 idCardNo: '', //身份证号 isSeries: 'N', isSmsComplete: "N", isPhoneComplete: "N", diagnosisLevelId: [], medicalTypeIds: [], completeFlags: [] }, //查询条件 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: {}, //单项目记录 preResult: {}, // 上次结果 checkSummaryList: [], //小结 checkSuggestionList: [], //建议 singleDetailedProject: {}, //单明细项目记录 combinationCriticalValue: true //是否组合项目危急弹窗 }, //总检医生 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: [], //籍惯 ,出生地 diagnosisLevel: [], //诊断级别 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: "继承项目类别换行属性" }, ], qztlType: [ { id: "0", displayName: "高原" }, { id: "1", displayName: "健康" } ], occCheckType: [ { id: "0", displayName: "上岗前" }, { id: "1", displayName: "在岗期间" }, { id: "2", displayName: "离岗时" }, { id: "3", displayName: "离岗后" }, ], degree: [ { id: "/", displayName: "/" }, { id: "-", displayName: "-" }, { id: "+-", displayName: "+-" }, { id: "+", displayName: "+" }, { id: "++", displayName: "++" }, { id: "+++", displayName: "+++" }, { id: "++++", displayName: "++++" }, { id: "+++++", displayName: "+++++" }, ], poison: [], //毒害因素 poisonList: [], //毒害因素 不分组 symptom: [], //症状 medicalPackage: [], //所有套餐 customerOrgGroupAll: [], //所有分组,不限单位,不限次数 customerOrg: [], //所有单位,非树结构 payMode: [], //支付方式 itemTypeTree: [], //体检类别 树结构 asbItemAll: [], //所有组合项目 asbItem: [], //显示的 未选组合项目 asbItemQuick: [], //显示的 未选组合项目(供快速选择) diagnosisLevel: [], //诊断级别 medicalCenter: [], // 体检中心 roomType: [ { id: "0", displayName: "普通" }, { id: "1", displayName: "采血室" } ], queueFlag: [ { id: "0", displayName: "候诊" }, { id: "1", displayName: "已呼" }, { id: "2", displayName: "过号" }, ], }, // 项目特有的对象数据 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 }, // 菜单与页面 lis_request: { S: 0, M: 0 }, // 检验申请(条码) patient_register: { S: 0, M: 0 }, // 体检人员记录 register_check_asbitem: { S: 0, M: 0, D: 0, OnlyRefreshAsbitem: 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 合并包含:综述、建议、对比、历史等,不包含总检诊断) room: { S: 0, M: 0 }, // 房间 room_detail: { S: 0, M: 0 }, // 房间关联的组合项目 common_table: { S: 0, M: 0 }, // 公共表 common_table_type: { S: 0, M: 0 }, // third_medical_center: { S: 0, M: 0 }, // third_medical_center_booking_date: { S: 0, M: 0 }, // bigtext_result_type: { S: 0, M: 0 }, // bigtext_result_template: { S: 0, M: 0 }, }, //表当前数据(单条记录 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: '' }, // 菜单与页面 lis_request: { id: '' }, // 检验申请(条码) patient_register: { id: '', patientRegisterNo: '' }, // 体检人员记录 register_check_asbitem: { id: '' }, // 体检人员登记的项目(合并前) register_check: { id: '' }, // 体检人员登记的项目(合并后) register_check_item: { id: '' }, // 体检人员登记的明细项目 role_menu_info: { id: '' }, // 角色对应的菜单 sum_diagnosis: { id: '' }, // 总检诊断 patient_occupational_disease: { id: '', patientRegisterId: '' }, // 职业病基本信息 occModifiable: { //虚拟职业病允许修改表 isPatientOccupationalDiseaseUpdate: "N", //基本信息 isPatientPoisonsUpdate: "N", //接害因素 isPatientPastMedicalHistorysUpdate: "N", // 既往病史 isPatientOccupationalMedicalHistorysUpdate: "N", // 职业病史 isPatientOccupationalHistorysUpdate: "N", // 职业史 isPatientSymptomsUpdate: "N", // 症状 isOccSummary: 'N', // 修改总检结论 }, appoint_patient_register: {}, // 预约登记数据 room: { id: '' }, // 房间 room_detail: { id: '' }, // 房间关联组合项目 common_table: { id: '' }, // 公共表 common_table_type: { id: '' }, // 公共表 third_medical_center: { id: '' }, // 公共表 third_medical_center_booking_date: { id: '' }, // 公共表 bigtext_result_type: { id: '' }, bigtext_result_template: { 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: [], // 菜单与页面 lis_request: [], // 检验申请(条码) patient_register: [], // 体检人员记录 register_check_asbitem: [], // 体检人员登记的项目(合并前) register_check: [], // 体检人员登记的项目(合并后) register_check_item: [], // 体检人员登记的明细项目 role_menu_info: [], // 角色对应的菜单 sum_diagnosis: [], // 总检诊断 patient_poison: [], // 病人毒害因素 patient_occupational_history: [], // 病人职业史 patient_symptom: [], // 病人症状 patient_past_medical_history: [], // 既往病史 patient_occupational_medical_history: [], // 职业病史 appoint_register_asbitem: [], // 预约所选组合项目 room: [], // 房间 room_detail: [], // 房间关联组合项目 common_table: [], // 公共表 }, plus: { PatientRegisterEditQuery: 0, // 更新查询条件 clearPatientRegisterQuery: 0, // 清空人员登记界面查询条件(重新赋值体检单位) PatientRegisterEditGroupBatch: 0, // 刷新批量调整分组窗口 PatientRegisterEditItemBatch: 0, // 刷新批量调整项目窗口 PatientRegisterEditDoctorBatch: 0, // 刷新批量调整项目检查医生窗口 PatientRegisterForChoose: 0, // 体检人员查询窗口 OccDisease: 0, // 职业病 WebBooking: 0, // 网上预约 WebBookingMzak: 0, // 人寿预约 ImportOrgData: 0, // 导入企业(青藏公司)数据 queue: 0, // 排队信息 } }, // 弹窗控制 dialogWin: { ContactPersonEdit: false, // 联系人 CustomerOrgGroupEdit: false, // 单位分组 新增/编辑 charge: false, // 收费窗口 PatientList: false, // 体检人员档案列表 PatientRegisterEdit: false, // 体检人员登记 新增/编辑 PatientRegisterForChoose: false, // 体检人员登记列表 PatientRegisterEditItemBatch: false, //批量调整项目 PatientRegisterEditGroupBatch: false, //批量调整分组 PatientRegisterEditDoctorBatch: false, // 批量调整检查项目医生 MenuPageSet: false, // 设置角色菜单权限 LocalConfig: false, // 设置窗口 AsbChargeRequest: false, // 收费申请 OccDisease: false, // 职业病 Label: false, // 补打条码 WebBooking: false, // 网上预约 WebBookingMzak: false, // 网上预约--人寿 ImportOrgData: false, // 导入企业(青藏公司)数据 RoomEdit: false, //房间 queue: false, // 排队信息 FollowCriticalCheck: false, // 危急值 CommonTableTypeEdit: false, //公共表类别 CommonTableEdit: false, //公共表 PacsTemplate: false, // pacs结果模版 ThirdMedicalCenterEdit: false, BigtextResultTypeEdit: false, BigtextResultTemplateEdit: 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: {}, });