pengjun 1 month ago
parent
commit
77d1abb2fb
  1. 21
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  2. 452
      src/components/patientRegister/PatientRegisterEdit.vue
  3. 58
      src/components/patientRegister/PatientRegisterItem.vue
  4. 110
      src/components/patientRegister/PatientRegisterList.vue
  5. 65
      src/components/patientRegister/patientRegisterAsbItem.vue
  6. 7
      src/store/index.js
  7. 3
      src/views/customerOrg/patientRegister.vue

21
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -106,7 +106,7 @@
</div>
<!--复制套餐-->
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="600px" height="400" :show-close="false"
<el-dialog title="复制体检套餐" :visible.sync="medicalPackageVisble" width="800px" height="500" :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">
@ -154,13 +154,13 @@
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
<el-button class="commonbutton" type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
</span>
</el-dialog>
<!--复制分组-->
<el-dialog title="单位分组" :visible.sync="groupVisble" width="800px" height="500" :show-close="false"
<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">
@ -216,20 +216,13 @@
: ""
}}
</template>
</el-table-column>
<el-table-column label="操作">
<template>
<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-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>
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
</span>
</div>
</div>
@ -272,7 +265,7 @@ export default {
customerOrgId:'', // ID
customerOrgDisp:[], //
customerOrgRegisterList:[], //
customerOrgRegister:'', //
customerOrgRegister:{}, //
dialogVisible: false,
@ -881,8 +874,6 @@ export default {
}
},
//
async groupRowDblclick(row) {
await this.groupRowClick(row)

452
src/components/patientRegister/PatientRegisterEdit.vue

@ -525,11 +525,12 @@
<el-button type="success" class="commonbutton" @click="chargeRequest(form)"
:disabled="!form.id">收费申请</el-button>
</div>
<!--
<div class="btn">
<el-button type="success" class="commonbutton" @click="btnTest">test</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '复制分组')" class="btn">
<el-button class="commonbutton" @click="btnCopyGroup" :disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true:false">复制分组</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '复制套餐')" class="btn">
<el-button class="commonbutton" @click="btnCopyMedicalPackage" :disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true:false">复制套餐</el-button>
</div>
-->
</div>
</div>
@ -672,6 +673,129 @@
:close-on-click-modal="false">
<Queue :refParams="queueParams" />
</el-dialog>
<!--复制套餐-->
<el-dialog title="复制体检套餐" :visible.sync="medicalPackageVisble" width="800px" height="500" :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,
"forSexId": "0",
"isActive": "Y",
"remark": "2",
"displayOrder": 1,
"simpleCode": "JKTJTC",
"creatorName": "admin",
"lastModifierName": "users",
"lastModificationTime": "2023-08-04T16:34:02.94408",
"lastModifierId": "3a0ca83b-3116-da05-3916-dfd4c0c548cb",
"creationTime": "2023-07-10T19:53:30.210553",
"creatorId": "3a0c4180-107c-0c89-b25b-0bd34666dcec",
"id": "3a0c51d3-2345-38df-ba0b-1862a3c3606f" -->
<el-table-column type="index" width="50" />
<el-table-column prop="displayName" label="套餐名称" width="180" />
<el-table-column prop="price" label="价格" width="80" />
<el-table-column prop="forSexId" label="适用性别" width="80">
<template slot-scope="scope">
<div>
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" width="100" />
<el-table-column prop="creatorName" label="创建人员" width="80" />
<el-table-column prop="creationTime" label="创建日期" width="100">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人员" width="80" />
<el-table-column prop="lastModificationTime" label="修改日期" width="100">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
</span>
</el-dialog>
<!--复制分组-->
<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 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">
<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">
<template slot-scope="scope">
{{
dddw(
dict.forMaritalStatus,
"id",
scope.row.maritalStatusId,
"displayName"
)
}}
</template>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" min-width="60" align="center" />
<el-table-column label="创建时间" min-width="150" align="center">
<template slot-scope="scope">
{{
scope.row.creationTime
? moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss")
: ""
}}
</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" type="primary" @click="copyGroup" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
</span>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
@ -897,6 +1021,24 @@ export default {
thirdInterfaceId: '', //
queueParams: {}, //
//**
//
medicalPackageVisble: false,
groupVisble: false,
customerOrgGroups: [],
//
curPackageId: '',
curGroupId: '',
packageAsbitems: [],
groupAsbitems: [],
customerOrgId: '',
customerOrgDisp: [],
customerOrgAll: [],
customerOrgRegisterList: [], //
customerOrgRegister: {}, //
};
},
@ -1357,24 +1499,25 @@ export default {
getParentCustomerOrgId(v) {
return new Promise((resolve, reject) => {
let customerOrgParentId = null
if (Array.isArray(v) && v.length > 1) {
if (Array.isArray(v) && v.length > 0) {
customerOrgParentId = v[0]
return resolve(customerOrgParentId)
} else {
let customerOrgId = v
if (Array.isArray(v) && v.length == 1) customerOrgId = v[0]
if (!customerOrgId) return resolve(customerOrgParentId)
if (typeof customerOrgId == 'string') {
getapi(`/api/app/customer-org/parent/${customerOrgId}`)
.then(res => {
if (res.code > -1) customerOrgParentId = res.data
})
.finally(() => {
return resolve(customerOrgParentId)
})
} else if (customerOrgId.length > 0) {
customerOrgParentId = customerOrgId[0]
if (!v) {
return resolve(customerOrgParentId)
} else {
if (v == this.dict.personOrgId) {
return resolve(v) //
} else {
getapi(`/api/app/customer-org/parent/${v}`)
.then(res => {
if (res.code > -1) customerOrgParentId = res.data
})
.finally(() => {
return resolve(customerOrgParentId)
})
}
}
}
})
@ -3026,6 +3169,279 @@ export default {
this.dialogWin.Label = true
},
//
setCurParentOrgId() {
//
console.log('setCurParentOrgId_this.form.customerOrgId',this.form.customerOrgId)
this.getParentCustomerOrgId(this.form.customerOrgId)
.then(res => {
if (res) {
if (res != this.dict.personOrgId) {
this.customerOrgId = res
//
getapi(`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${res}`)
.then(res => {
if (res.code > -1) {
this.customerOrgRegisterList = res.data
if (res.data.length > 0) {
this.customerOrgRegister = res.data[res.data.length - 1]
this.getCustomerOrgGroupCopy(this.customerOrgRegister.id)
}
}
})
}
}
})
},
//
btnCopyGroup() {
console.log('this.customerOrgGroup', this.customerOrgGroup)
this.customerOrgRegisterList = [];
this.customerOrgRegister = {};
this.customerOrgGroups = [];
//
if (this.customerOrgAll.length == 0) {
getapi("/api/app/customer-org/parent-all")
.then(res => {
if (res.code > -1) {
this.customerOrgAll = res.data
this.customerOrgDisp = res.data
this.groupVisble = true
//
this.setCurParentOrgId()
}
})
} else {
//
this.setCurParentOrgId()
this.groupVisble = true
}
},
//
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
} catch (error) {
console.log(error)
}
},
//
async groupRowDblclick(row) {
await this.groupRowClick(row)
this.copyGroup()
},
//()
copyGroup() {
if (!this.curGroupId) {
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" })
return
}
console.log('this.packageAsbitems', this.groupAsbitems)
this.addAbs(deepCopy(this.groupAsbitems))
this.groupVisble = false
},
//
btnCopyMedicalPackage() {
this.medicalPackageVisble = true
},
//
async packageRowClick(row) {
this.curPackageId = row.id
this.packageAsbitems = []
try {
let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem', { medicalPackageId: row.id })
this.packageAsbitems = res.data
} catch (error) {
console.log(error)
}
},
//
async rowDblclick(row) {
await this.packageRowClick(row)
this.copyMedicalPackage()
},
//()
copyMedicalPackage() {
if (!this.curPackageId) {
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" })
return
}
console.log('this.packageAsbitems', this.packageAsbitems)
this.addAbs(deepCopy(this.packageAsbitems))
this.medicalPackageVisble = false
},
//
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 = [];
} else {
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.getCustomerOrgGroupCopy(this.customerOrgRegister.id);
}
}
});
}
},
//
changeTimes(v) {
this.getCustomerOrgGroup(v.id);
},
//
getCustomerOrgGroupCopy(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)
//return row.highLightBg == 'selected' ? 'high-light-bg' : '';
if (row.choosed) {
return 'current-row';
} else {
return '';
}
},
//
///api/app/register-asbitem/many/3fa85f64-5717-4562-b3fc-2c963f66afa6'
addAbs(asbItemChoosed) {
if (asbItemChoosed.length < 1) {
this.$message.warning({ showClose: true, message: "该套餐或分组下无可复制的组合项目" })
return
}
//
// "displayName": "",
// "shortName": "f",
// "forSexId": "F",
// "itemTypeId": "3a0b16de-75b9-c910-c61b-844709a88940",
// "price": 0,
console.log('asbItemChoosed.length', asbItemChoosed.length)
let unChecks = [] //
for (let i = 0; i < asbItemChoosed.length; i++) {
if (this.form.sexId == 'U') break //
if (asbItemChoosed[i].forSexId == 'A') continue
if (asbItemChoosed[i].forSexId != this.form.sexId) {
unChecks.push(asbItemChoosed[i].displayName)
asbItemChoosed[i].unCheck = true
}
}
if (unChecks.length > 0) {
this.$message.warning({ showClose: true, message: `所选项目:${unChecks.toString()},不适合当前人员性别` })
if (asbItemChoosed.length == unChecks.length) return
}
let payTypeFlag = '0' // 0: 12
if (this.form.customerOrgId != this.dict.personOrgId) payTypeFlag = '1'
asbItemChoosed.forEach(e => {
if (!e.unCheck) {
//
let lfind = arrayExistObj(this.dataTransOpts.tableM.register_check_asbitem, 'asbitemId', e.id)
if (lfind < 0) {
let pojo = {
asbitemId: e.id,
asbitemName: e.displayName,
patientRegisterId: this.form.id,
standardPrice: e.price,
chargePrice: e.price,
payTypeFlag,
isCharge: "N",
checkCompleteFlag: '0',
discount: 100,
amount: 1,
total: e.price,
}
this.dataTransOpts.tableM.register_check_asbitem.push(pojo)
}
}
});
//
this.changeItemType(deepCopy(this.dataTransOpts.copyGroup.itemTypeIds))
},
//
changeItemType(data) {
//console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds)
this.dataTransOpts.copyGroup.itemTypeIds = data
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let lv = "";
if (typeof this.dataTransOpts.copyGroup.itemTypeIds == "object") {
if (this.dataTransOpts.copyGroup.itemTypeIds.length > 0) lv = this.dataTransOpts.copyGroup.itemTypeIds[this.dataTransOpts.copyGroup.itemTypeIds.length - 1];
}
if (lv) {
this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
} else {
this.dataTransOpts.copyGroup.asbItem = deepCopy(asbItemAll);
}
arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
//console.log('this.dataTransOpts.copyGroup.asbItem',this.dataTransOpts.copyGroup.asbItem,this.dataTransOpts.tableM.register_check_asbitem)
},
//tab
enterToTab() {
this.$nextTick(() => {

58
src/components/patientRegister/PatientRegisterItem.vue

@ -3,14 +3,14 @@
<div style="width:220px;">
<div>
<span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example"
<el-cascader :options="dict.itemTypeTree" v-model="dataTransOpts.copyGroup.itemTypeIds" popper-class="example"
style="margin-left: 3px;width:160px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable
@change="changeItemType" size="small" :disabled="isComplete">
</el-cascader>
</div>
<div class="mainareaBox">
<el-table :data="asbItem" style="border-radius: 5px;" :height="tableHeight" @row-dblclick="dbClickChoosedAsb"
<el-table :data="dataTransOpts.copyGroup.asbItem" style="border-radius: 5px;" :height="tableHeight" @row-dblclick="dbClickChoosedAsb"
highlight-current-row @selection-change="handleSelectionChange" size="small"
:row-class-name="handleRowClassName" @row-click="chooseAsbItem">
<!--
@ -195,9 +195,10 @@ export default {
},
oldFormId: '', //使
itemType: [], //
itemTypeIds: '', //ID
asbItem: [], //
asbItemAll: [], //
// itemTypeIds: '', //ID
// asbItem: [], //
// asbItemAll: [], //
asbItemChoosed: [], //
startPoint: -1,
@ -257,6 +258,7 @@ export default {
console.log("window.localStorage.getItem('LocalConfig')", error)
}
this.dictInit()
},
updated() {
@ -287,8 +289,8 @@ export default {
//
postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => {
if (res.code != -1) {
this.asbItem = res.data
this.asbItemAll = res.data
this.dataTransOpts.copyGroup.asbItem = res.data
this.dataTransOpts.copyGroup.asbItemAll = res.data
this.asbItemQuick = res.data
this.quickAsb = res.data
}
@ -297,7 +299,7 @@ export default {
//
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
if (res.code > -1) this.dataTransOpts.copyGroup.asbItems = res.data
})
},
@ -367,13 +369,13 @@ export default {
//
refreshAsbitem() {
let asbItemAll = deepCopy(this.asbItemAll)
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let choosedAsb = this.dataTransOpts.tableM.register_check_asbitem.filter(e => {
return e.checkCompleteFlag == '0' || !(e.checkCompleteFlag)
}) //
arrayReduce(asbItemAll, choosedAsb, "id=asbitemId");
this.changeItemType();
this.changeItemType(deepCopy(this.itemTypeIds));
this.asbItemQuick = deepCopy(asbItemAll);
this.quickAsb = deepCopy(asbItemAll);
},
@ -388,31 +390,31 @@ export default {
//
chooseAsbItem(row) {
this.asbItem.forEach((e, index) => {
this.dataTransOpts.copyGroup.asbItem.forEach((e, index) => {
e.index = index;
return e
});
// shift
if (this.window.shift) {
//
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
e.choosed = false;
return e
});
if (this.startPoint == - 1) {
this.asbItem[row.index].choosed = true;
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index;
return
}
if (this.startPoint > row.index) {
for (let i = row.index; i <= this.startPoint; i++) {
this.asbItem[i].choosed = true
this.dataTransOpts.copyGroup.asbItem[i].choosed = true
}
} else if (this.startPoint <= row.index) {
for (let i = this.startPoint; i <= row.index; i++) {
this.asbItem[i].choosed = true
this.dataTransOpts.copyGroup.asbItem[i].choosed = true
}
}
return
@ -420,8 +422,8 @@ export default {
// ctrl
if (this.window.ctrl) {
console.log('this.window.ctrl', this.window.ctrl, this.asbItem)
this.asbItem[row.index].choosed = true;
console.log('this.window.ctrl', this.window.ctrl, this.dataTransOpts.copyGroup.asbItem)
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index;
return
}
@ -429,11 +431,11 @@ export default {
// ctrl shift
//
//console.log('')
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
e.choosed = false;
return e
});
this.asbItem[row.index].choosed = true;
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index;
},
@ -540,10 +542,10 @@ export default {
// start
if (oprType && oprType == 'all') {
asbItemChoosed = deepCopy(this.asbItem)
asbItemChoosed = deepCopy(this.dataTransOpts.copyGroup.asbItem)
} else if (oprType && oprType == 'choosed') {
asbItemChoosed = []
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
if (e.choosed) {
asbItemChoosed.push(e)
e.choosed = false
@ -760,20 +762,22 @@ export default {
},
//
changeItemType() {
changeItemType(data) {
//console.log('changeItemType.data',data)
this.itemTypeIds = data
//console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds)
let asbItemAll = deepCopy(this.asbItemAll)
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let lv = "";
if (typeof this.itemTypeIds == "object") {
if (this.itemTypeIds.length > 0) lv = this.itemTypeIds[this.itemTypeIds.length - 1];
}
if (lv) {
this.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
} else {
this.asbItem = deepCopy(asbItemAll);
this.dataTransOpts.copyGroup.asbItem = deepCopy(asbItemAll);
}
arrayReduce(this.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
},
@ -1159,7 +1163,7 @@ export default {
//
getAsbItems(row) {
let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let asbItems = this.dataTransOpts.copyGroup.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let content = ""

110
src/components/patientRegister/PatientRegisterList.vue

@ -90,28 +90,15 @@
scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId === dict.personOrgId
">
{{
dddw(
dict.medicalPackage,
"id",
scope.row.medicalPackageId,
"displayName"
)
}}
{{ scope.row.medicalPackageName }}
</div>
<div v-if="
scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId !== dict.personOrgId
">
{{
dddw(
dict.customerOrgGroupAll,
"id",
scope.row.customerOrgGroupId,
"displayName"
)
}}
{{ scope.row.customerOrgGroupName }}
</div>
</div>
<div v-else-if="dragCol[index].prop == 'nationId'">
{{
@ -644,7 +631,7 @@ export default {
LocalConfigInit: {},
tableName: "", //
doctorType: "check", //check: audit
merge_lis_pacs_label:"0", //0 01
merge_lis_pacs_label: "0", //0 01
qrCode: {
winDisplay: false, //
url: 'https://ccjktj.cn:5081/', //
@ -672,7 +659,7 @@ export default {
JSON.parse(LocalConfig) || {}
);
} catch (error) {
console.log('window.localStorage.getItem("LocalConfig")', error);
}
@ -683,20 +670,20 @@ export default {
this.loadOptsInit = Object.assign({}, this.loadOpts);
// --
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId:'merge_lis_pacs_label' })
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'merge_lis_pacs_label' })
.then(res => {
if(res.code > -1){
this.merge_lis_pacs_label = res.data||"0"
if (res.code > -1) {
this.merge_lis_pacs_label = res.data || "0"
}
})
// --
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId:'pacs_cloud_url' })
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'pacs_cloud_url' })
.then(res => {
if(res.code > -1){
this.qrCode.url = res.data||"https://ccjktj.cn:5081/"
if (res.code > -1) {
this.qrCode.url = res.data || "https://ccjktj.cn:5081/"
}
})
})
},
@ -967,37 +954,37 @@ export default {
printGuideLisPacs(row) {
return new Promise((resolve, reject) => {
// this.merge_lis_pacs_label == '1'
if(this.merge_lis_pacs_label == '1'){
this.guidePrintPromise("0008", false, row)
.then((res) => {
return this.lisPrint(row, "0002", false);
})
// .then((res) => {
// return this.pacsPrint(row, "0004", false);
// })
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
}else{
this.guidePrintPromise("0008", false, row)
.then((res) => {
return this.lisPrint(row, "0002", false);
})
.then((res) => {
return this.pacsPrint(row, "0004", false);
})
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
}
// this.merge_lis_pacs_label == '1'
if (this.merge_lis_pacs_label == '1') {
this.guidePrintPromise("0008", false, row)
.then((res) => {
return this.lisPrint(row, "0002", false);
})
// .then((res) => {
// return this.pacsPrint(row, "0004", false);
// })
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
} else {
this.guidePrintPromise("0008", false, row)
.then((res) => {
return this.lisPrint(row, "0002", false);
})
.then((res) => {
return this.pacsPrint(row, "0004", false);
})
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
}
});
},
@ -1193,6 +1180,7 @@ export default {
// this.getPatientRegisterAbs();
this.dataTransOpts.tableS.patient_register.id = "";
this.dataTransOpts.copyGroup.itemTypeIds = [] //
this.dialogWin.PatientRegisterEdit = true;
this.dataTransOpts.plus.clearPatientRegisterQuery++; //
setTimeout(() => {
@ -1269,7 +1257,7 @@ export default {
//
this.dataTransOpts.refresh.patient_register.S++; //()
this.dataTransOpts.plus.clearPatientRegisterQuery++; //
this.dataTransOpts.copyGroup.itemTypeIds = [] //
this.dialogWin.PatientRegisterEdit = true;
},
@ -1792,7 +1780,7 @@ export default {
this.fnQueue(row);
},
});
if (
checkPagePriv(this.pagePriv.privs, "发送检验申请") &&
row.completeFlag != "0"
@ -1929,11 +1917,11 @@ export default {
this.dialogWin.PatientRegisterEditDoctorBatch = true;
},
});
if (
checkPagePriv(this.pagePriv.privs, "批量调整体检类别") &&
this.multipleSelection.length > 0
){
) {
items.push({
label: "批量调整体检类别",
onClick: () => {
@ -1942,7 +1930,7 @@ export default {
this.dialogWin.PatientRegisterEditMedicalTypeBatch = true;
},
});
}
}
if (
checkPagePriv(this.pagePriv.privs, "查看云胶片二维码")
)

65
src/components/patientRegister/patientRegisterAsbItem.vue

@ -3,11 +3,12 @@
<el-table :data="dataTransOpts.tableM.register_check_asbitem" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row :summary-method="getSummaries" show-summary ref="patientRegister.patientRegisterAbs">
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="asbitemName" label="已选组合项目" min-width="150">
<template slot-scope="scope">
<template slot-scope="scope">
<div>
<i class="el-icon-view" style="font-size: 14px;color: black;cursor: pointer;" @click="getAsbItems(scope.row)" />
<i class="el-icon-view" style="font-size: 14px;color: black;cursor: pointer;"
@click="getAsbItems(scope.row)" />
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left">
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on"
style="padding: 3px; font-size: 16px;color: purple;" />
@ -89,52 +90,76 @@ export default {
//
dictInit() {
//
/*
// ()
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
})
*/
},
//
getAsbItems(row) {
if (this.asbItems.length == 0) {
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1){
this.asbItems = res.data
this.getAsbItemsDetail(row)
}
})
} else {
this.getAsbItemsDetail(row)
}
},
getAsbItemsDetail(row) {
if (this.asbItems.length == 0) {
} else {
}
let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let content = ""
let length = asbItems.length
let modeBase = 1,count = 0,pWidth=390
let modeBase = 1, count = 0, pWidth = 390
if(length >= 39){
if (length >= 39) {
modeBase = 3
pWidth=130
}else if(length >= 20){
pWidth = 130
} else if (length >= 20) {
modeBase = 2
pWidth=195
pWidth = 195
}
//
asbItems.forEach((e,i) => {
if(modeBase == 1){
asbItems.forEach((e, i) => {
if (modeBase == 1) {
content += '<p>' + e.itemName + '</p>'
}else{
if(i==0){
} else {
if (i == 0) {
count = 1
content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>'
}else if((i+1)%modeBase == 0){
} else if ((i + 1) % modeBase == 0) {
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">'
count = 1
}else{
} else {
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>'
count++
}
}
});
if(modeBase > 1){
for (let index = 0; index < 3; index++) {
if(modeBase == count) break
if (modeBase > 1) {
for (let index = 0; index < 3; index++) {
if (modeBase == count) break
content += '<p></p>'
count++
}
@ -223,7 +248,7 @@ export default {
return prev;
}
}, 0);
sums[index] = Math.floor(sums[index]*100)/100;
sums[index] = Math.floor(sums[index] * 100) / 100;
sums[index] += " 元";
} else {
sums[index] = "N/A";

7
src/store/index.js

@ -534,6 +534,13 @@ export default new Vuex.Store({
WebBookingMzak: 0, // 人寿预约
ImportOrgData: 0, // 导入企业(青藏公司)数据
queue: 0, // 排队信息
},
// 登记时复制分组与套餐用
copyGroup:{
itemTypeIds: '', //被选中的项目类别ID
asbItem: [], //左侧显示的未选组合项目
asbItemAll: [], //所有未选组合项目
}
},

3
src/views/customerOrg/patientRegister.vue

@ -108,6 +108,7 @@ export default {
}
});
/*
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
@ -163,7 +164,7 @@ export default {
this.dict.payMode = res.data;
}
});
*/
//
// getapi("/api/app/item-type/by-code-all").then((res) => {
// if (res.code != -1) {

Loading…
Cancel
Save