From 3ab4896ab2294691d6b11afb87912ede8722b4e9 Mon Sep 17 00:00:00 2001 From: pengjun <158915633@qq.com> Date: Sat, 1 Nov 2025 22:44:37 +0800 Subject: [PATCH] org --- public/sysConfig.json | 4 +- src/components/common/LocalConfig.vue | 2 + .../customerOrg/customerOrgGroupAsbitem.vue | 785 ++++++++++-------- src/components/doctorCheck/CheckPicture.vue | 71 +- .../doctorCheck/CheckPictureUpload.vue | 2 +- src/components/doctorCheck/QueueCheckList.vue | 2 +- .../PatientRegisterEditGroupBatch.vue | 2 +- .../PatientRegisterEditMedicalTypeBatch.vue | 152 ++++ .../patientRegister/PatientRegisterList.vue | 23 +- src/main.js | 9 +- src/store/index.js | 2 + src/views/customerOrg/customerOrgGroup.vue | 9 +- src/views/doctorCheck/doctorCheck.vue | 1 + 13 files changed, 689 insertions(+), 375 deletions(-) create mode 100644 src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue diff --git a/public/sysConfig.json b/public/sysConfig.json index 79aff5e..b434743 100644 --- a/public/sysConfig.json +++ b/public/sysConfig.json @@ -1,7 +1,7 @@ { - "apiurl": "http://192.168.0.188:9530", + "apiurl": "http://140.143.162.39:9529", "softName": "神豚体检管理系统", - "pacsApi": "http://140.143.162.39:9530", + "pacsApi": "http://192.168.0.188:9530", "dcmViewers": "https://app.mzaktj.com:4436", "pacsApiHttps": "https://app.mzaktj.com:8042" } \ No newline at end of file diff --git a/src/components/common/LocalConfig.vue b/src/components/common/LocalConfig.vue index b7f023a..541c192 100644 --- a/src/components/common/LocalConfig.vue +++ b/src/components/common/LocalConfig.vue @@ -341,11 +341,13 @@ export default { }); // 设备列表 + /* postapi("/api/app/PacsBusiness/GetDeviceListByCheckTypeFlag",{checkTypeFlag:'1'}).then((res) => { if (res.code != -1) { this.localDict.deviceList = res.data; } }); + */ }, }, diff --git a/src/components/customerOrg/customerOrgGroupAsbitem.vue b/src/components/customerOrg/customerOrgGroupAsbitem.vue index 3f8f630..1201115 100644 --- a/src/components/customerOrg/customerOrgGroupAsbitem.vue +++ b/src/components/customerOrg/customerOrgGroupAsbitem.vue @@ -5,103 +5,83 @@
项目类别 - +
- + - - + +
-
- 添加 +
+ 添加
-
- 全部添加 +
+ 全部添加
-
- 移除 +
+ 移除 +
+
+ 全部移除
-
- 全部移除 -
-
+
-
+
快速选择 - +
- + - - - + + + @@ -114,23 +94,23 @@
-
+
复制分组
-
- 复制套餐 +
+ 复制套餐
-
- 保存 +
+ 保存
- + - - - + + + - - + + - - + + - + - + 取消 @@ -180,89 +160,79 @@ - - - > - - - - - - - - - - - - - - - - - - - 取消 - 确定 - + +
+
+
+ 体检单位: + + + {{ item.displayName }} + + +
+
+ 单位体检次数: + + + +
+
+ + > + + + + + + + + + + + + + + + + + +
+
+ + 取消 + 确定 + +
+
@@ -270,37 +240,40 @@ import moment from 'moment'; import { mapState } from "vuex"; import { getapi, postapi, putapi } from "@/api/api"; -import { getPagePriv,checkPagePriv, arrayExistObj, tcdate, arrayFilter, arrayReduce, deepCopy,dddw } from "../../utlis/proFunc"; - +import { getPagePriv, checkPagePriv, arrayExistObj, tcdate, arrayFilter, arrayReduce, deepCopy, objCopy,dddw } from "../../utlis/proFunc"; export default { - props:['customerOrgGroup','refreshMoney'], + props: ['customerOrgGroup', 'curOrgGroups','customerOrgAll','curOrgRegister','curOrgRegisterList','refreshMoney'], data() { return { - pagePriv:{ - routeUrlorPageName:'customerOrgGroup', //当前页面归属路由或归属页面权限名称 - privs:[] // 页面权限 - }, - groupPrice:0, //分组总价 - customerOrgGroupAsbitems:[], //分组包含组合项目(显示) - customerOrgGroupAsbitemsChoosed:[], //分组包含组合项目(显示) 被选中 - itemTypeIds:[], //项目类别 - asbItemId:'', //当前快速选到的给合项目ID - quickAsb:[], //过滤显示的组合项目 + pagePriv: { + routeUrlorPageName: 'customerOrgGroup', //当前页面归属路由或归属页面权限名称 + privs: [] // 页面权限 + }, + groupPrice: 0, //分组总价 + customerOrgGroupAsbitems: [], //分组包含组合项目(显示) + customerOrgGroupAsbitemsChoosed: [], //分组包含组合项目(显示) 被选中 + itemTypeIds: [], //项目类别 + asbItemId: '', //当前快速选到的给合项目ID + quickAsb: [], //过滤显示的组合项目 asbItemChoosed: [], //勾选的 未选组合项目 - startPoint:-1, - PstartPoint:-1, + startPoint: -1, + PstartPoint: -1, + + medicalPackageVisble: false, //复制套餐 + curPackageId: '', //当前选中套餐ID + packageAsbitems: [], //套餐中包含的组合项目 - medicalPackageVisble:false, //复制套餐 - curPackageId:'', //当前选中套餐ID - packageAsbitems:[], //套餐中包含的组合项目 + groupVisble: false, //复制分组 + customerOrgGroups: [], //历次分组 + curGroupId: '', //当前选中套餐ID + groupAsbitems: [], //选中分组包含组合项目 + customerOrgId:'', // 当前选中企业ID + customerOrgDisp:[], // 显示单位 + customerOrgRegisterList:[], //当前体检次数集合 + customerOrgRegister:'', // 当前选择体检次数 - groupVisble:false, //复制分组 - customerOrgGroups:[], //历次分组 - curGroupId:'', //当前选中套餐ID - groupAsbitems:[], //选中分组包含组合项目 - dialogVisible: false, copyGroupdialogVisible: false, @@ -314,45 +287,48 @@ export default { }; }, computed: { - ...mapState(["window","dict","dataTransOpts", "customerOrg"]), + ...mapState(["window", "dict", "dataTransOpts", "customerOrg"]), - tableHeight(){ - let height = 600 - if(this.window.pageHeight > 600){ + tableHeight() { + let height = 600 + if (this.window.pageHeight > 600) { height = this.window.pageHeight - } + } // console.log(height - this.window.pageHeaderHeight - this.window.pageMarginHeight - 240 - 96 - 10) - return height - this.window.pageHeaderHeight - this.window.pageMarginHeight - 240 - 96 - 16 - } + return height - this.window.pageHeaderHeight - this.window.pageMarginHeight - 240 - 96 - 36 + } }, created() { + //获取用户当前页面的权限 let userPriv = window.sessionStorage.getItem('userPriv') - if(userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) + if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) this.dictInit() }, mounted() { + this.getCustomerOrgGroupAsbitems(this.customerOrgGroup.id); - }, + + }, - updated () { + updated() { this.refreshTable('tableCustomerOrgGroupAsbitems') }, methods: { - moment,dddw,deepCopy,checkPagePriv, + moment, dddw, deepCopy, checkPagePriv, //表格强制刷新 - refreshTable(tableRef){ + refreshTable(tableRef) { this.$nextTick(() => { this.$refs[tableRef].doLayout() }) }, //初始数据 - dictInit(){ + dictInit() { //体检类别 树结构 getapi("/api/app/item-type/by-code-all").then((res) => { if (res.code != -1) { @@ -362,7 +338,7 @@ export default { }); //获取所有组合项目 api/app/asbitem/GetBasicList - postapi("/api/app/asbitem/GetBasicList",{isFilterActive:'Y'}).then((res) => { + postapi("/api/app/asbitem/GetBasicList", { isFilterActive: 'Y' }).then((res) => { if (res.code != -1) { this.dict.asbItemAll = res.data; this.dict.asbItemAll.forEach(e => { @@ -375,7 +351,7 @@ export default { }); //套餐 () - postapi("/api/app/medicalpackage/getmedicalpackagelist",{}).then((res) => { + postapi("/api/app/medicalpackage/getmedicalpackagelist", {}).then((res) => { if (res.code != -1) { this.dict.medicalPackage = res.data; } @@ -383,6 +359,82 @@ export default { }, + // 过滤体检单位 + filterMethodOrg(keyWords) { + if (keyWords) { + this.customerOrgDisp = []; + this.customerOrgAll.forEach((item) => { + if ( + item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 || + item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 + // || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 + ) { + this.customerOrgDisp.push(item); + } + }); + } else { + this.customerOrgDisp = deepCopy(this.customerOrgAll); + } + }, + + //选择单位 + changeCustomerOrg(v) { + if (!v) { + this.customerOrgRegisterList = []; + this.customerOrgRegister = {}; + this.customerOrgGroups = []; + this.isDrag = false; + this.form.id = ""; + setTimeout(() => { + this.dataTransOpts.refresh.customer_org_group_detail.M++; + }, 20); + return; + } + getapi( + `/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${v}` + ).then((res) => { + if (res.code != -1) { + this.customerOrgRegisterList = res.data; + if (res.data.length > 0) { + this.customerOrgRegister = res.data[res.data.length - 1]; + this.getCustomerOrgGroup(this.customerOrgRegister.id); + } else { + this.customerOrgRegister = {}; + this.customerOrgGroups = []; + this.isDrag = false; + } + objCopy(this.formInit, this.form); + setTimeout(() => { + this.dataTransOpts.refresh.customer_org_group_detail.M++; + }, 20); + } + }); + }, + + //选择体检次数 + changeTimes(v) { + this.getCustomerOrgGroup(v.id); + }, + + + //获取体检次数下的分组 + getCustomerOrgGroup(customerOrgRegisterId) { + // this.isDrag = false; + // objCopy(this.formInit, this.form); + // this.form.customerOrgRegisterId = customerOrgRegisterId; + this.customerOrgGroups = []; + getapi( + `/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${customerOrgRegisterId}` + ).then((res) => { + if (res.code != -1) { + this.customerOrgGroups = res.data; + this.customerOrgGroups.forEach((e) => { + e.customerOrgRegisterId = customerOrgRegisterId; + }); + } + }); + }, + handleRowClassName({ row, rowIndex }) { // highLightBg 为 'selected'的高亮 //console.log(rowIndex, row) @@ -441,29 +493,29 @@ export default { // 添加组合项目 ///api/app/register-asbitem/many/3fa85f64-5717-4562-b3fc-2c963f66afa6' - async addAbs(asbItemChoosed,oprType) { + async addAbs(asbItemChoosed, oprType) { // console.log('this.customerOrgGroup',this.customerOrgGroup) // console.log('asbItemChoosed', asbItemChoosed) - if(!this.customerOrgGroup.id){ - this.$message.warning({ showClose: true, message: "请先选中单位分组"}) + if (!this.customerOrgGroup.id) { + this.$message.warning({ showClose: true, message: "请先选中单位分组" }) return } - if(this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y'){ - this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"}) + if (this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y') { + this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" }) return } let message = [] - let checked = true + let checked = true let lfind = -1 //oprType 不传值时,兼容勾选方式 //勾选时不需要此操作 start - if(oprType && oprType == 'all'){ + if (oprType && oprType == 'all') { asbItemChoosed = deepCopy(this.dict.asbItem) - }else if(oprType && oprType == 'choosed'){ - asbItemChoosed = [] - this.dict.asbItem.forEach(e =>{ - if(e.choosed){ + } else if (oprType && oprType == 'choosed') { + asbItemChoosed = [] + this.dict.asbItem.forEach(e => { + if (e.choosed) { asbItemChoosed.push(e) e.choosed = false } @@ -472,7 +524,7 @@ export default { //勾选时不需要此操作 end if (asbItemChoosed.length < 1) { - this.$message.warning({ showClose: true, message: "请选择要添加的组合项目"}) + this.$message.warning({ showClose: true, message: "请选择要添加的组合项目" }) return } @@ -482,7 +534,7 @@ export default { // "forSexId": "F", // "itemTypeId": "3a0b16de-75b9-c910-c61b-844709a88940", // "price": 0, - + // for (let i = 0; i < asbItemChoosed.length; i++) { // if (this.customerOrgGroup.forSexId == 'A') break //未选性别时,无需判断组合项目性别限制 // if (asbItemChoosed[i].forSexId == 'A' || asbItemChoosed[i].forSexId == 'U') continue @@ -504,7 +556,7 @@ export default { if (asbItemChoosed[i].forSexId != this.customerOrgGroup.forSexId) { message.push(asbItemChoosed[i].displayName) //.warning(`所选项目:${asbItemChoosed[i].displayName},不适合当前人员性别`) checked = false - asbItemChoosed.splice(i,1) + asbItemChoosed.splice(i, 1) } } //console.log(222,checked) @@ -513,19 +565,19 @@ export default { for (let i = 0; i < asbItemChoosed.length; i++) { let pojo = { asbitemId: asbItemChoosed[i].id, - displayName:asbItemChoosed[i].displayName, - discount:100, - customerOrgGroupDetailAmount:1, - price:asbItemChoosed[i].price, - customerOrgGroupDetailPrice:asbItemChoosed[i].price, + displayName: asbItemChoosed[i].displayName, + discount: 100, + customerOrgGroupDetailAmount: 1, + price: asbItemChoosed[i].price, + customerOrgGroupDetailPrice: asbItemChoosed[i].price, customerOrgGroupDetailMoney: asbItemChoosed[i].price, asbitemMoney: asbItemChoosed[i].price, } - + this.customerOrgGroupAsbitems.push(pojo) //this.customerOrgGroupAsbitems.push({ ...pojo, asbitemName: asbItemChoosed[i].displayName }) - + lfind = arrayExistObj(this.dict.asbItem, 'id', asbItemChoosed[i].id) if (lfind > -1) this.dict.asbItem.splice(lfind, 1) @@ -534,7 +586,7 @@ export default { } - + }, //双击选择组合项目 @@ -550,28 +602,28 @@ export default { if (lfind > -1) { this.addAbs([this.dict.asbItemQuick[lfind]]) } - } + } - this.$nextTick(() => { + this.$nextTick(() => { this.$refs['quickAsbOCX'].blur(); //total asbItemId this.asbItemId = '' - this.quickAsb = deepCopy(this.dict.asbItemQuick) + this.quickAsb = deepCopy(this.dict.asbItemQuick) this.$refs['quickAsbOCX'].focus(); //total asbItemId }); }, //选择 未选的组合项目 - chooseAsbItem(row){ - this.dict.asbItem.forEach((e,index) => { - e.index = index; + chooseAsbItem(row) { + this.dict.asbItem.forEach((e, index) => { + e.index = index; return e }); // 按住了shift键 - if (this.window.shift) { + if (this.window.shift) { //清除所有选择 this.dict.asbItem.forEach(e => { - e.choosed = false; + e.choosed = false; return e }); @@ -594,34 +646,34 @@ export default { } // 按住了ctrl 键 - if (this.window.ctrl) { - console.log('this.window.ctrl',this.window.ctrl,this.dict.asbItem) + if (this.window.ctrl) { + console.log('this.window.ctrl', this.window.ctrl, this.dict.asbItem) this.dict.asbItem[row.index].choosed = true; this.startPoint = row.index; - return + return } // 未按住了ctrl 、shift 键 //清除所有选择 //console.log('清除所有选择') this.dict.asbItem.forEach(e => { - e.choosed = false; + e.choosed = false; return e }); this.dict.asbItem[row.index].choosed = true; - this.startPoint = row.index; + this.startPoint = row.index; }, //删除 人员已选中的组合项目 ///api/app/register-asbitem/many?RegisterAsbitemIds=3fa85f64-5717-4562-b3fc-2c963f66afa6 - delAbs(absForDel,oprType) { - if(!this.customerOrgGroup.id){ - this.$message.warning({ showClose: true, message: "请先选中单位分组"}) + delAbs(absForDel, oprType) { + if (!this.customerOrgGroup.id) { + this.$message.warning({ showClose: true, message: "请先选中单位分组" }) return } - if(this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y'){ - this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"}) + if (this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y') { + this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" }) return } @@ -629,12 +681,12 @@ export default { let lfind = -1 //勾选时不需要此操作 start - if(oprType && oprType == 'all'){ + if (oprType && oprType == 'all') { absForDel = deepCopy(this.customerOrgGroupAsbitems) - }else if(oprType && oprType == 'choosed'){ - absForDel = [] - this.customerOrgGroupAsbitems.forEach(e =>{ - if(e.choosed){ + } else if (oprType && oprType == 'choosed') { + absForDel = [] + this.customerOrgGroupAsbitems.forEach(e => { + if (e.choosed) { absForDel.push(deepCopy(e)) e.choosed = false } @@ -643,23 +695,23 @@ export default { //勾选时不需要此操作 end if (absForDel.length < 1) { - this.$message.warning({ showClose: true, message: "请选择要移除的组合项目"}) + this.$message.warning({ showClose: true, message: "请选择要移除的组合项目" }) return } for (let i = 0; i < absForDel.length; i++) { - + lfind = arrayExistObj(this.customerOrgGroupAsbitems, 'asbitemId', absForDel[i].asbitemId) if (lfind > -1) this.customerOrgGroupAsbitems.splice(lfind, 1) absForDel.splice(i, 1) i-- continue - + } //刷新 - this.getAsbItemByItemType() + this.getAsbItemByItemType() }, @@ -669,16 +721,16 @@ export default { }, //选择 已选的组合项目 - removeAsbItem(row){ - this.customerOrgGroupAsbitems.forEach((e,index) => { - e.index = index; + removeAsbItem(row) { + this.customerOrgGroupAsbitems.forEach((e, index) => { + e.index = index; return e }); // 按住了shift键 - if (this.window.shift) { + if (this.window.shift) { //清除所有选择 this.customerOrgGroupAsbitems.forEach(e => { - e.choosed = false; + e.choosed = false; return e }); @@ -701,61 +753,61 @@ export default { } // 按住了ctrl 键 - if (this.window.ctrl) { - console.log('this.window.ctrl',this.window.ctrl,this.customerOrgGroupAsbitems) + if (this.window.ctrl) { + console.log('this.window.ctrl', this.window.ctrl, this.customerOrgGroupAsbitems) this.customerOrgGroupAsbitems[row.index].choosed = true; this.PstartPoint = row.index; - return + return } // 未按住了ctrl 、shift 键 //清除所有选择 //console.log('清除所有选择') this.customerOrgGroupAsbitems.forEach(e => { - e.choosed = false; + e.choosed = false; return e }); this.customerOrgGroupAsbitems[row.index].choosed = true; - this.PstartPoint = row.index; + this.PstartPoint = row.index; }, - changeDiscount(index){ + changeDiscount(index) { - this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice = - (this.customerOrgGroupAsbitems[index].discount * this.customerOrgGroupAsbitems[index].price/100).toFixed(2) - + this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice = + (this.customerOrgGroupAsbitems[index].discount * this.customerOrgGroupAsbitems[index].price / 100).toFixed(2) - this.customerOrgGroupAsbitems[index].customerOrgGroupDetailMoney = - (this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) + + this.customerOrgGroupAsbitems[index].customerOrgGroupDetailMoney = + (this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) //this.getSummaries() - + }, //修改价格或数量 - changePrices(index){ - this.customerOrgGroupAsbitems[index].customerOrgGroupDetailMoney = - (this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) + changePrices(index) { + this.customerOrgGroupAsbitems[index].customerOrgGroupDetailMoney = + (this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) - this.customerOrgGroupAsbitems[index].asbitemMoney = - (this.customerOrgGroupAsbitems[index].price * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) + this.customerOrgGroupAsbitems[index].asbitemMoney = + (this.customerOrgGroupAsbitems[index].price * this.customerOrgGroupAsbitems[index].customerOrgGroupDetailAmount).toFixed(2) this.customerOrgGroupAsbitems[index].discount = (this.customerOrgGroupAsbitems[index].customerOrgGroupDetailPrice * 100 / this.customerOrgGroupAsbitems[index].price).toFixed(2) //this.getSummaries() }, - + //合计 getSummaries(param) { - console.log('getSummaries param',param) + console.log('getSummaries param', param) // if(!param){ // param = { // columns:[{}, {}, {}, {}, {}, {}, {property: 'asbitemMoney'},{property: 'customerOrgGroupDetailMoney'}], // data:this.customerOrgGroupAsbitems // } // } - + const { columns, data } = param; const sumCol = [6, 7] //需合计的列 const sums = []; @@ -788,59 +840,62 @@ export default { }, //复制分组 - btnCopyGroup(){ - console.log('this.customerOrgGroup',this.customerOrgGroup) - if(!this.customerOrgGroup.id){ - this.$message.warning({ showClose: true, message: "请先选中单位分组"}) + btnCopyGroup() { + console.log('this.customerOrgGroup', this.customerOrgGroup) + if (!this.customerOrgGroup.id) { + this.$message.warning({ showClose: true, message: "请先选中单位分组" }) return - } - if(this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y'){ - this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"}) + } + + if (this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y') { + this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" }) return } - + + this.groupVisble = true + /* 允许复制其他单位的分组 故屏蔽此段代码 getapi( `/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${this.customerOrgGroup.customerOrgRegisterId}` ).then((res) => { if (res.code != -1) { this.customerOrgGroups = res.data; - if(this.customerOrgGroups.length <2){ - this.$message.warning({ showClose: true, message: "暂无其他分组可供复制"}) - }else{ + if (this.customerOrgGroups.length < 2) { + this.$message.warning({ showClose: true, message: "暂无其他分组可供复制" }) + } else { this.groupVisble = true - } + } } }); - + */ }, //选中分组 - async groupRowClick(row){ + async groupRowClick(row) { this.curGroupId = row.id this.groupAsbitems = [] try { let res = await getapi(`/api/app/customerorggroupdetail/getcustomerorggroupdetailinasbitem?CustomerOrgGroupId=${row.id}`) - if(res.code != -1) this.groupAsbitems = res.data + if (res.code != -1) this.groupAsbitems = res.data } catch (error) { console.log(error) - } + } }, - + //双击选分组,并确认复制 - async groupRowDblclick(row){ + async groupRowDblclick(row) { await this.groupRowClick(row) this.copyGroup() }, //复制分组(确认选中分组) - copyGroup(){ - if(!this.curGroupId){ - this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!"}) + copyGroup() { + if (!this.curGroupId) { + this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" }) return } - console.log('this.packageAsbitems',this.groupAsbitems) + console.log('this.packageAsbitems', this.groupAsbitems) this.addAbs(deepCopy(this.groupAsbitems)) this.groupVisble = false }, @@ -848,65 +903,65 @@ export default { //复制套餐 - btnCopyMedicalPackage(){ + btnCopyMedicalPackage() { // console.log('this.customerOrgGroup',this.customerOrgGroup) - if(!this.customerOrgGroup.id){ - this.$message.warning({ showClose: true, message: "请先选中单位分组"}) + if (!this.customerOrgGroup.id) { + this.$message.warning({ showClose: true, message: "请先选中单位分组" }) return - } - if(this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y'){ - this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"}) + } + if (this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y') { + this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" }) return } this.medicalPackageVisble = true }, //选中套餐 - async packageRowClick(row){ + async packageRowClick(row) { this.curPackageId = row.id this.packageAsbitems = [] try { - let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem',{medicalPackageId:row.id}) + let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem', { medicalPackageId: row.id }) this.packageAsbitems = res.data } catch (error) { console.log(error) - } + } }, //双击选套餐,并确认复制 - async rowDblclick(row){ + async rowDblclick(row) { await this.packageRowClick(row) this.copyMedicalPackage() }, //复制套餐(确认选中套餐) - copyMedicalPackage(){ - if(!this.curPackageId){ - this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!"}) + copyMedicalPackage() { + if (!this.curPackageId) { + this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" }) return } - console.log('this.packageAsbitems',this.packageAsbitems) + console.log('this.packageAsbitems', this.packageAsbitems) this.addAbs(deepCopy(this.packageAsbitems)) this.medicalPackageVisble = false }, - + //保存按钮 btnSave() { - if(!this.customerOrgGroup.id){ - this.$message.warning({ showClose: true, message: "请先选中单位分组"}) + if (!this.customerOrgGroup.id) { + this.$message.warning({ showClose: true, message: "请先选中单位分组" }) return - } - if(this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y'){ - this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"}) + } + if (this.customerOrgGroup.isComplete && this.customerOrgGroup.isComplete.toUpperCase() == 'Y') { + this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" }) return } let body = { - customerOrgGroupId:this.customerOrgGroup.id, - details:[] + customerOrgGroupId: this.customerOrgGroup.id, + details: [] } // { // "customerOrgGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", @@ -919,95 +974,107 @@ export default { // } // ] // } - this.customerOrgGroupAsbitems.forEach(e =>{ + this.customerOrgGroupAsbitems.forEach(e => { body.details.push({ - customerOrgGroupId:this.customerOrgGroup.id, - asbitemId:e.asbitemId, - price:e.customerOrgGroupDetailPrice, - amount:e.customerOrgGroupDetailAmount + customerOrgGroupId: this.customerOrgGroup.id, + asbitemId: e.asbitemId, + price: e.customerOrgGroupDetailPrice, + amount: e.customerOrgGroupDetailAmount }) }) - + let group = deepCopy(this.customerOrgGroup); - postapi('/api/app/customerorggroupdetail/createcustomerorggroupdetailmany',body - ) - // .then(res => { - // if(res.code != -1){ - // delete group.id; - // delete group.customerOrgId; - // delete group.isComplete; - // group.price = this.groupPrice - // // console.log('this.customerOrgGroup',this.customerOrgGroup) - // // console.log('group',group) - // return putapi(`/api/app/customer-org-group/${this.customerOrgGroup.id}`, group) - // } - // }) 后台合并事务 - .then(res =>{ - if(res && res.code != -1){ - console.log("操作成功"); - group.price = this.groupPrice - group.id = this.customerOrgGroup.id - this.refreshMoney(group) - } - }) - + postapi('/api/app/customerorggroupdetail/createcustomerorggroupdetailmany', body + ) + // .then(res => { + // if(res.code != -1){ + // delete group.id; + // delete group.customerOrgId; + // delete group.isComplete; + // group.price = this.groupPrice + // // console.log('this.customerOrgGroup',this.customerOrgGroup) + // // console.log('group',group) + // return putapi(`/api/app/customer-org-group/${this.customerOrgGroup.id}`, group) + // } + // }) 后台合并事务 + .then(res => { + if (res && res.code != -1) { + console.log("操作成功"); + group.price = this.groupPrice + group.id = this.customerOrgGroup.id + this.refreshMoney(group) + } + }) + }, - + //右侧勾选按钮 selectRight(val) { this.customerOrgGroupAsbitemsChoosed = val; }, - + // 左侧未选 selectLeft(val) { this.asbItemChoosed = val; }, - + //获取当前列列表数据 getCustomerOrgGroupAsbitems(customerOrgGroupId) { - if(customerOrgGroupId){ + if (customerOrgGroupId) { getapi( `/api/app/customerorggroupdetail/getcustomerorggroupdetailinasbitem?CustomerOrgGroupId=${customerOrgGroupId}` - ).then((res) => { - if(res.code != -1){ + ).then((res) => { + if (res.code != -1) { this.customerOrgGroupAsbitems = res.data; this.getAsbItemByItemType() - } + } }); - }else{ + } else { this.customerOrgGroupAsbitems = [] this.getAsbItemByItemType() - } + } }, - + }, //监听事件 watch: { // 体检分组ID未切换换时 也可以强制刷新数据 - "dataTransOpts.refresh.customer_org_group_detail.M":{ + "dataTransOpts.refresh.customer_org_group_detail.M": { // immediate:true, handler(newVal, oldVal) { - console.log(`watch 体检分组 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.customerOrgGroup.id}`); + console.log(`watch 体检分组 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.customerOrgGroup.id}`); this.getCustomerOrgGroupAsbitems(this.customerOrgGroup.id); } }, + + // 显示复制分组页面时,刷单位与体检次数数据 + "groupVisble":{ + handler(newVal, oldVal) { + if(newVal){ + console.log('customerOrgGroup',this.customerOrgGroup,this.customerOrgAll,this.curOrgRegisterList) + this.customerOrgDisp = deepCopy(this.customerOrgAll) + this.customerOrgRegisterList = deepCopy(this.curOrgRegisterList) + this.customerOrgRegister = deepCopy(this.curOrgRegister) + this.customerOrgId = this.customerOrgGroup.customerOrgId + this.customerOrgGroups = deepCopy(this.curOrgGroups) + } + } + } }, }; diff --git a/src/components/doctorCheck/CheckPicture.vue b/src/components/doctorCheck/CheckPicture.vue index d05471a..fb73c41 100644 --- a/src/components/doctorCheck/CheckPicture.vue +++ b/src/components/doctorCheck/CheckPicture.vue @@ -5,9 +5,9 @@ 采图
-
- Dcm +
+ 导图
更多 - 导入图片 + Dcm 裁剪图片 { + this.acceptHotKeyData(data) + }); + } + + if (this.dataTransOpts.tableS.register_check.id) { + this.getCheckPictures(this.dataTransOpts.tableS.register_check.id); + } }, computed: { @@ -454,6 +463,52 @@ export default { }, + // 接收热键采图 + // windows.peisAPI.receive("acceptHotKeyData",() => { + // this.$message.success({showClose:true,message:'调用热键成功'}) + // }), + acceptHotKeyData(data) { + console.log('acceptHotKeyData', data) + //this.$message.success({ showClose: true, message: '调用热键成功' }) + if (!this.dataTransOpts.tableS.register_check.id) { + console.log("没有选中检查项目") + return + } + + let baseHead = 'data:image/jpeg;base64,' + switch (item.ImageFormat) { + case 'png': + case 'bmp': + baseHead = `data:image/${item.ImageFormat};base64,` + break; + default: + break; + } + // item.isPrintTrans 是否打印 + this.checkPictures.push({ pictureFilename: baseHead + item.Image }) + + let body = { + registerCheckId: this.dataTransOpts.tableS.register_check.id, + pictureBaseStrs: [{ + fileName, + localPathName: item.FilePath, + pictureBaseStr: baseHead + item.Image + }], + pictureFileType: '0' //采图暂定图0,上传暂定报告1 this.pictureFileType + } + + hadoopPost('pacsApi', '/api/app/RegisterCheckPicture/InstrumentMapping', body) + .then(() => { + + }) + .catch(err => { + console.log('err', err) + this.$message.error({ showClose: true, message: '热键采图失败' + err.message }) + }) + + }, + + // 显示tab标签名称,过长处理 dispLabel(itemName) { return itemName.length > 5 ? (itemName.substring(0, 4) + "…") : itemName @@ -520,8 +575,8 @@ export default { summaryFlag: 'N', }] */ - if(this.doctorCheck.checkSummaryList.length == 0){ - this.$message.warning({showClose:true,message:"请填写检查结论"}) + if (this.doctorCheck.checkSummaryList.length == 0) { + this.$message.warning({ showClose: true, message: "请填写检查结论" }) return } this.save() diff --git a/src/components/doctorCheck/CheckPictureUpload.vue b/src/components/doctorCheck/CheckPictureUpload.vue index 0c2dce7..dc92c5d 100644 --- a/src/components/doctorCheck/CheckPictureUpload.vue +++ b/src/components/doctorCheck/CheckPictureUpload.vue @@ -1,7 +1,7 @@ + + diff --git a/src/components/patientRegister/PatientRegisterList.vue b/src/components/patientRegister/PatientRegisterList.vue index 54e6ab6..8f762da 100644 --- a/src/components/patientRegister/PatientRegisterList.vue +++ b/src/components/patientRegister/PatientRegisterList.vue @@ -398,6 +398,12 @@ + + + + + @@ -449,6 +455,7 @@ import ElProgressOCX from "../../components/report/ElProgressOCX.vue"; import PatientRegisterEditGroupBatch from "./PatientRegisterEditGroupBatch.vue"; import PatientRegisterEditItemBatch from "./PatientRegisterEditItemBatch.vue"; import PatientRegisterEditDoctorBatch from "./PatientRegisterEditDoctorBatch.vue"; +import PatientRegisterEditMedicalTypeBatch from "./PatientRegisterEditMedicalTypeBatch.vue"; import ImportOrgData from "./ImportOrgData.vue"; import LocalConfig from "../../components/common/LocalConfig.vue"; import Queue from "../../components/queue/Queue.vue"; @@ -461,6 +468,7 @@ export default { PatientRegisterEditGroupBatch, // 批量调整分组 PatientRegisterEditItemBatch, // 批量调整项目 PatientRegisterEditDoctorBatch, // 批量调整检查项目医生 + PatientRegisterEditMedicalTypeBatch, // 批量调整体检类别 ElProgressOCX, LocalConfig, ImportOrgData, @@ -1921,7 +1929,20 @@ export default { this.dialogWin.PatientRegisterEditDoctorBatch = true; }, }); - + + if ( + checkPagePriv(this.pagePriv.privs, "批量调整体检类别") && + this.multipleSelection.length > 0 + ){ + items.push({ + label: "批量调整体检类别", + onClick: () => { + // this.doctorType = 'check' + this.dataTransOpts.plus.PatientRegisterEditMedicalTypeBatch++; //如果放在弹窗显示后面,在首次加载子组件时,会触发两次数据处理 + this.dialogWin.PatientRegisterEditMedicalTypeBatch = true; + }, + }); + } if ( checkPagePriv(this.pagePriv.privs, "查看云胶片二维码") ) diff --git a/src/main.js b/src/main.js index 27f0171..5da432c 100644 --- a/src/main.js +++ b/src/main.js @@ -13,11 +13,18 @@ import 'umy-ui/lib/theme-chalk/index.css'; // 引入样式 import "element-ui/lib/theme-chalk/index.css"; - Vue.use(Contextmenu); Vue.use(Meta); Vue.use(ElementUI); Vue.prototype.$axios = axios +Vue.prototype.Window = { + peisAPI:{ + receive: function (args) { + // 函数逻辑 + //console.log('这是全局函数', args); + } + } +} //全局注册外壳的 peisAPI 对象 try { diff --git a/src/store/index.js b/src/store/index.js index 1768ac4..0ca1928 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -527,6 +527,7 @@ export default new Vuex.Store({ PatientRegisterEditGroupBatch: 0, // 刷新批量调整分组窗口 PatientRegisterEditItemBatch: 0, // 刷新批量调整项目窗口 PatientRegisterEditDoctorBatch: 0, // 刷新批量调整项目检查医生窗口 + PatientRegisterEditMedicalTypeBatch:0, // 刷新批量调整体检类别窗口 PatientRegisterForChoose: 0, // 体检人员查询窗口 OccDisease: 0, // 职业病 WebBooking: 0, // 网上预约 @@ -548,6 +549,7 @@ export default new Vuex.Store({ PatientRegisterEditItemBatch: false, //批量调整项目 PatientRegisterEditGroupBatch: false, //批量调整分组 PatientRegisterEditDoctorBatch: false, // 批量调整检查项目医生 + PatientRegisterEditMedicalTypeBatch: false, // 批量调整体检类别 MenuPageSet: false, // 设置角色菜单权限 LocalConfig: false, // 设置窗口 AsbChargeRequest: false, // 收费申请 diff --git a/src/views/customerOrg/customerOrgGroup.vue b/src/views/customerOrg/customerOrgGroup.vue index 28890f4..c02d482 100644 --- a/src/views/customerOrg/customerOrgGroup.vue +++ b/src/views/customerOrg/customerOrgGroup.vue @@ -104,7 +104,13 @@
- +
@@ -144,6 +150,7 @@ export default { routeUrlorPageName: "customerOrgGroup", //当前页面归属路由或归属页面权限名称 privs: [], // 页面权限 }, + customerOrgAll:[], // 所有顶级单位 customerOrg: [], //体检单位 customerOrgGroups: [], //体检单位分组 customerOrgId: "", //当前选中的体检单位id diff --git a/src/views/doctorCheck/doctorCheck.vue b/src/views/doctorCheck/doctorCheck.vue index 5a45c9e..5b8267b 100644 --- a/src/views/doctorCheck/doctorCheck.vue +++ b/src/views/doctorCheck/doctorCheck.vue @@ -37,6 +37,7 @@
+