pengjun 6 months ago
parent
commit
3ab4896ab2
  1. 4
      public/sysConfig.json
  2. 2
      src/components/common/LocalConfig.vue
  3. 275
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  4. 65
      src/components/doctorCheck/CheckPicture.vue
  5. 2
      src/components/doctorCheck/CheckPictureUpload.vue
  6. 2
      src/components/patientRegister/PatientRegisterEditGroupBatch.vue
  7. 152
      src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue
  8. 21
      src/components/patientRegister/PatientRegisterList.vue
  9. 9
      src/main.js
  10. 2
      src/store/index.js
  11. 9
      src/views/customerOrg/customerOrgGroup.vue
  12. 1
      src/views/doctorCheck/doctorCheck.vue

4
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"
}

2
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;
}
});
*/
},
},

275
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -5,25 +5,21 @@
<div style="display: block; width:300px;">
<div>
<span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example" style="margin-left: 3px;width:240px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
clearable filterable @change="getAsbItemByItemType" size="small">
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example"
style="margin-left: 3px;width:240px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable
@change="getAsbItemByItemType" size="small">
</el-cascader>
</div>
<div class="box">
<el-table :data="dict.asbItem" border size="small" highlight-current-row
:height="tableHeight"
@row-dblclick="dbClickChoosedAsb" row-key="id"
@selection-change="selectLeft" :row-class-name="handleRowClassName"
@row-click="chooseAsbItem">
<el-table :data="dict.asbItem" border size="small" highlight-current-row :height="tableHeight"
@row-dblclick="dbClickChoosedAsb" row-key="id" @selection-change="selectLeft"
:row-class-name="handleRowClassName" @row-click="chooseAsbItem">
<!--
<el-table-column type="selection" align="center" ></el-table-column>
-->
<el-table-column type="index" align="center" width="40" />
<el-table-column
label="未选组合项目" min-width="170"
prop="displayName" align="center"
></el-table-column>
<el-table-column label="未选组合项目" min-width="170" prop="displayName" align="center"></el-table-column>
</el-table>
</div>
</div>
@ -31,15 +27,15 @@
<!--中间操作按钮-->
<div style="display: block;margin: 40px 10px 0 15px;width:110px;">
<div v-show="checkPagePriv(pagePriv.privs, '添加')" style="padding: 5px 0;">
<el-button class="commonbutton" @click="addAbs(asbItemChoosed,'choosed')" >添加 <i class="el-icon-arrow-right"></i></el-button>
<el-button class="commonbutton" @click="addAbs(asbItemChoosed, 'choosed')">添加 <i
class="el-icon-arrow-right"></i></el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '全部添加')" style="padding: 5px 0;">
<el-button class="difference" @click="addAbs(asbItemChoosed, 'all')">全部添加</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '移除')" style="padding: 5px 0;">
<el-button class="commonbutton"
@click="delAbs(customerOrgGroupAsbitemsChoosed,'choosed')">移除 <i class="el-icon-arrow-left"></i
></el-button>
<el-button class="commonbutton" @click="delAbs(customerOrgGroupAsbitemsChoosed, 'choosed')">移除 <i
class="el-icon-arrow-left"></i></el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '全部移除')" style="padding: 5px 0;">
<el-button class="difference" @click="delAbs(customerOrgGroupAsbitemsChoosed, 'all')">全部移除</el-button>
@ -47,61 +43,45 @@
</div>
<!--已选组合项目-->
<div :style="'display: block; width:' + (window.pageWidth - 300 - 120 - window.pageMarginWidth - 110 - 5) + 'px;'">
<div
:style="'display: block; width:' + (window.pageWidth - 300 - 120 - window.pageMarginWidth - 110 - 5) + 'px;'">
<div style="height:32px;">
<div v-show="checkPagePriv(pagePriv.privs, '快速选择')">
<span>快速选择</span>
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small"
filterable default-first-option :filter-method="filterMethod"
clearable @clear="quickAsb = deepCopy(dict.asbItemQuick)"
@change="quickChoosedAsb" ref="quickAsbOCX"
style="margin-left: 3px;width:240px;">
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small" filterable default-first-option
:filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(dict.asbItemQuick)"
@change="quickChoosedAsb" ref="quickAsbOCX" style="margin-left: 3px;width:240px;">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select>
</div>
</div>
<div class="box">
<el-table :data="customerOrgGroupAsbitems" border size="small"
@selection-change="selectRight" highlight-current-row
:height="tableHeight"
:summary-method="getSummaries" show-summary
:row-class-name="handleRowClassName" @row-dblclick="removeAbs"
@row-click="removeAsbItem" ref="tableCustomerOrgGroupAsbitems">
<el-table :data="customerOrgGroupAsbitems" border size="small" @selection-change="selectRight"
highlight-current-row :height="tableHeight" :summary-method="getSummaries" show-summary
:row-class-name="handleRowClassName" @row-dblclick="removeAbs" @row-click="removeAsbItem"
ref="tableCustomerOrgGroupAsbitems">
<!--
<el-table-column type="selection"></el-table-column>
-->
<el-table-column type="index" width="40" align="center" />
<el-table-column
label="已选组合项目"
min-width="140"
prop="displayName"
></el-table-column>
<el-table-column label="已选组合项目" min-width="140" prop="displayName"></el-table-column>
<el-table-column label="标准价格" prop="price" min-width="60" align="center" />
<el-table-column label="折扣" min-width="40" align="center">
<template slot-scope="scope">
<el-input
@input="changeDiscount(scope.$index)"
type="number" size="small"
v-model="scope.row.discount"
/>
<el-input @input="changeDiscount(scope.$index)" type="number" size="small"
v-model="scope.row.discount" />
</template>
</el-table-column>
<el-table-column label="应收价格" prop="customerOrgGroupDetailPrice" min-width="60" align="center">
<template slot-scope="scope">
<el-input
@input="changePrices(scope.$index)"
type="number" size="small"
v-model="scope.row.customerOrgGroupDetailPrice"
/>
<el-input @input="changePrices(scope.$index)" type="number" size="small"
v-model="scope.row.customerOrgGroupDetailPrice" />
</template>
</el-table-column>
<el-table-column label="数量" prop="customerOrgGroupDetailAmount" width="50" align="center">
<template slot-scope="scope">
<el-input
@input="changePrices(scope.$index)"
type="number" size="small"
v-model="scope.row.customerOrgGroupDetailAmount"
/>
<el-input @input="changePrices(scope.$index)" type="number" size="small"
v-model="scope.row.customerOrgGroupDetailAmount" />
</template>
</el-table-column>
<el-table-column label="标准金额" prop="asbitemMoney" min-width="60" align="center">
@ -126,10 +106,10 @@
</div>
<!--复制套餐-->
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="600px" height="400"
:show-close="false" :close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.medicalPackage" border height="350" row-key="id" size="small"
highlight-current-row @row-click="packageRowClick" @row-dblclick="rowDblclick" ref="patientList" >
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.medicalPackage" border height="350" row-key="id" size="small" highlight-current-row
@row-click="packageRowClick" @row-dblclick="rowDblclick" ref="patientList">
<!-- "displayName": "健康体检套餐",
"price": 20.00,
@ -180,47 +160,42 @@
</el-dialog>
<!--复制分组-->
<el-dialog title="单位分组" :visible.sync="groupVisble" width="700px" height="500"
:show-close="false" :close-on-click-modal="false" :append-to-body="true">
<el-table
:data="customerOrgGroups" ref="customerOrgGroups"
style="margin-top: 2px"
row-key="id"
border
height="240px"
size="small"
highlight-current-row :row-class-name="handleRowClassName"
<el-dialog title="单位分组" :visible.sync="groupVisble" width="800px" height="500" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<div>
<div style="display: flex">
<div>
<span>体检单位</span>
<el-select v-model="customerOrgId" placeholder="请选择体检单位" :filter-method="filterMethodOrg" default-first-option
clearable filterable @clear="customerOrgDisp = deepCopy(customerOrgAll)" style="margin-left: 10px"
@change="changeCustomerOrg" size="small">
<el-option v-for="item in customerOrgDisp" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }}
</el-option>
</el-select>
</div>
<div style="margin-left: 20px">
<span>单位体检次数</span>
<el-select v-model="customerOrgRegister" placeholder="次数" style="width: 60px; margin-left: 10px"
size="small" @change="changeTimes" value-key="id">
<el-option v-for="item in customerOrgRegisterList" :key="item.id" :label="item.medicalTimes"
:value="item" />
</el-select>
</div>
</div>
<el-table :data="customerOrgGroups" ref="customerOrgGroups" style="margin-top: 2px" row-key="id" border
height="450px" size="small" highlight-current-row :row-class-name="handleRowClassName"
@row-click="groupRowClick" @row-dblclick="groupRowDblclick">
>
<el-table-column
type="index"
label="序号"
min-width="50"
align="center"
/>
<el-table-column type="index" label="序号" min-width="50" align="center" />
<el-table-column prop="displayName" label="名称" min-width="150" />
<el-table-column
prop="price"
label="价格"
min-width="60"
align="center"
/>
<el-table-column
prop="forSexId"
label="适用性别"
min-width="60"
align="center"
>
<el-table-column prop="price" label="价格" min-width="60" align="center" />
<el-table-column prop="forSexId" label="适用性别" min-width="60" align="center">
<template slot-scope="scope">
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</template>
</el-table-column>
<el-table-column
prop="maritalStatusId"
label="适用婚姻状况"
min-width="80"
align="center"
>
<el-table-column prop="maritalStatusId" label="适用婚姻状况" min-width="80" align="center">
<template slot-scope="scope">
{{
dddw(
@ -232,12 +207,7 @@
}}
</template>
</el-table-column>
<el-table-column
prop="creatorName"
label="创建者"
min-width="60"
align="center"
/>
<el-table-column prop="creatorName" label="创建者" min-width="60" align="center" />
<el-table-column label="创建时间" min-width="150" align="center">
<template slot-scope="scope">
{{
@ -249,20 +219,20 @@
</el-table-column>
<el-table-column label="操作">
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true">
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i>
</el-tag>
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content: space-between;margin-top: 10px;">
<div></div>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
<el-button class="commonbutton" type="primary" @click="copyGroup" style="width:90px;">确定</el-button>
</span>
</div>
</div>
</el-dialog>
</div>
</template>
@ -270,11 +240,10 @@
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: {
@ -300,6 +269,10 @@ export default {
customerOrgGroups: [], //
curGroupId: '', //ID
groupAsbitems: [], //
customerOrgId:'', // ID
customerOrgDisp:[], //
customerOrgRegisterList:[], //
customerOrgRegister:'', //
dialogVisible: false,
@ -322,13 +295,14 @@ export default {
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))
@ -336,7 +310,9 @@ export default {
this.dictInit()
},
mounted() {
this.getCustomerOrgGroupAsbitems(this.customerOrgGroup.id);
},
updated() {
@ -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)
@ -794,11 +846,14 @@ export default {
this.$message.warning({ showClose: true, message: "请先选中单位分组" })
return
}
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) => {
@ -811,7 +866,7 @@ export default {
}
}
});
*/
},
//
@ -995,11 +1050,24 @@ export default {
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)
}
}
}
},
};
</script>
<style scoped>
.box {
margin-top: 5px;
/* border: 1px solid #000; */
@ -1009,5 +1077,4 @@ export default {
width: 100px;
margin-bottom: 5px
}
</style>

65
src/components/doctorCheck/CheckPicture.vue

@ -5,9 +5,9 @@
<el-button type="primary" class="btnClass" @click="btnGetPic" :disabled="doctorBtnDisabled('btnGetPic')"
size="small">采图</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, 'Dcm')">
<el-button type="primary" class="btnClass" @click="btnBrowseDcm" :disabled="doctorBtnDisabled('btnBrowseDcm')"
size="small">Dcm</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '导图')">
<el-button type="primary" class="btnClass" @click="btnExpPic" :disabled="doctorBtnDisabled('btnExpPic')"
size="small">导图</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '保存')">
<el-button type="primary" class="btnClass" @click="btnSavePic" :disabled="doctorBtnDisabled('btnSavePic')"
@ -18,8 +18,8 @@
<el-button type="primary" class="btnClass" :disabled="doctorBtnDisabled('btnExpPic')">更多</el-button>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '导图')" @click.native="btnExpPic"
:disabled="doctorBtnDisabled('btnExpPic')">导入图片</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, 'Dcm')" @click.native="btnBrowseDcm"
:disabled="doctorBtnDisabled('btnBrowseDcm')">Dcm</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '裁图')" @click.native="btnCutPic"
:disabled="doctorBtnDisabled('btnCutPic')">裁剪图片</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '清理pacs结果')" @click.native="btnClean"
@ -275,7 +275,16 @@ export default {
//
mounted() {
// Electron
if (this.$peisAPI) {
this.$peisAPI.onEventFromPictureHotKeyMain((data) => {
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' //01 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

2
src/components/doctorCheck/CheckPictureUpload.vue

@ -1,7 +1,7 @@
<template>
<div>
<div>
<el-upload action="#" multiple :file-list="fileList" accept=".jpg,.png,.bmp,.gif" list-type="picture-card"
<el-upload action="#" multiple :file-list="fileList" accept=".jpg,.png,.bmp,.gif,.pdf" list-type="picture-card"
:on-change="onChange" :auto-upload="false">
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{file}">

2
src/components/patientRegister/PatientRegisterEditGroupBatch.vue

@ -70,7 +70,7 @@ export default {
patientRegisterId: null,
customerOrgGroupId: null,
payTypeFlag: "1", //01 2
isReserveAddAsbitem: true, //
isReserveAddAsbitem: false, //
},
groupBatchInit: {},
};

152
src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue

@ -0,0 +1,152 @@
<template>
<div>
<div>
<div style="margin-top: 2px">
<el-select v-model="medicalTypeId" placeholder="请选择" filterable clearable style="width:300px;" size="small">
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
<div style="margin: 10px; display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" type="primary" @click="btnOk"> </el-button>
<el-button class="commonbutton" @click="dialogWin.PatientRegisterEditMedicalTypeBatch = false"> </el-button>
</div>
</div>
</div>
</div>
<div>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX />
</el-dialog>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import {
dddw,
arrayReduce,
arrayExistObj,
deepCopy,
} from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
export default {
components: {
ElProgressOCX,
},
props: ["multipleSelection", "doctorType"],
data() {
return {
tableData: [],
users: [],
patientRegisterIds: [],
medicalTypeId:'',
};
},
//
created() {
this.asbitemBatchInit = deepCopy(this.asbitemBatch)
},
//
mounted() {
//
this.dictInit()
},
computed: {
...mapState([
"window",
"dataTransOpts",
"dialogWin",
"dict",
"elProgress",
"patientRegister",
"customerOrg",
]),
},
methods: {
moment, dddw, deepCopy,
//()
btnOk() {
this.$message.warning({showClose:true,message:'开发中.....'})
return
let url = '/api/app/RegisterCheck/UpdateBatchCheckDoctor'
//if(this.doctorType == 'audit') url = '/api/app/RegisterCheck/UpdateBatchAuditDoctor'
postapi(url, { patientRegisterIds: this.patientRegisterIds, medicalTypeId })
.then(res => {
if (res.code > -1) {
this.dialogWin.PatientRegisterEditMedicalTypeBatch = false;
}
})
},
//
dictInit() {
this.patientRegisterIds = []
this.multipleSelection.forEach(e => {
this.patientRegisterIds.push(e.id)
});
//
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code > -1) {
this.dict.medicalType = res.data;
}
});
},
},
//
watch: {
"dataTransOpts.plus.PatientRegisterEditMedicalTypeBatch": {
// immediate: true, //
// deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 刷新在用组合体检类别 newVal: ${newVal} oldVal:${oldVal}`)
if (newVal != oldVal) this.dictInit()
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 100px;
}
</style>

21
src/components/patientRegister/PatientRegisterList.vue

@ -398,6 +398,12 @@
<PatientRegisterEditDoctorBatch :multipleSelection="multipleSelection" :doctorType="doctorType" />
</el-dialog>
<!-- 批量调整体检类别 -->
<el-dialog title="批量调整体检类别" :visible.sync="dialogWin.PatientRegisterEditMedicalTypeBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditMedicalTypeBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
@ -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,
@ -1922,6 +1930,19 @@ export default {
},
});
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, "查看云胶片二维码")
)

9
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 {

2
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, // 收费申请

9
src/views/customerOrg/customerOrgGroup.vue

@ -104,7 +104,13 @@
<!--分组项目信息 -->
<div>
<CustomerOrgGroupAsbitem :customerOrgGroup="curCustomerOrgGroup" :refreshMoney="refreshMoney" />
<CustomerOrgGroupAsbitem
:customerOrgGroup="curCustomerOrgGroup"
:curOrgGroups="customerOrgGroups"
:customerOrgAll="customerOrgAll"
:curOrgRegister="customerOrgRegister"
:curOrgRegisterList="customerOrgRegisterList"
:refreshMoney="refreshMoney" />
</div>
</div>
@ -144,6 +150,7 @@ export default {
routeUrlorPageName: "customerOrgGroup", //
privs: [], //
},
customerOrgAll:[], //
customerOrg: [], //
customerOrgGroups: [], //
customerOrgId: "", //id

1
src/views/doctorCheck/doctorCheck.vue

@ -37,6 +37,7 @@
<CheckItemList :isCheckPicture="isCheckPicture" :doctor_check_check_charge="doctor_check_check_charge"
:registerCheckId="dataTransOpts.tableS.register_check.id" />
</div>
<!--采图导图图片预览组件-->
<div v-if="isCheckPicture" class="demo-image__preview"
:style="'margin-top: 2px;margin-left: 2px;'">
<CheckPicture :doctorBtnDisabled="doctorBtnDisabled" :save="save" />

Loading…
Cancel
Save