|
|
|
@ -3,16 +3,17 @@ |
|
|
|
<div style="width:220px;"> |
|
|
|
<div> |
|
|
|
<span>项目类别</span> |
|
|
|
<el-cascader :options="dict.itemTypeTree" v-model="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 :options="dict.itemTypeTree" v-model="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="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" @row-dblclick="dbClickChoosedAsb" highlight-current-row |
|
|
|
@selection-change="handleSelectionChange" size="small" :row-class-name="handleRowClassName" |
|
|
|
@row-click="chooseAsbItem"> |
|
|
|
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" @row-dblclick="dbClickChoosedAsb" |
|
|
|
highlight-current-row @selection-change="handleSelectionChange" size="small" |
|
|
|
:row-class-name="handleRowClassName" @row-click="chooseAsbItem"> |
|
|
|
<!-- |
|
|
|
<el-table-column type="selection" align="center" width="40" /> |
|
|
|
--> |
|
|
|
@ -35,19 +36,23 @@ |
|
|
|
|
|
|
|
<div style="width:100px;margin-top: 70px;"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '添加')" class="btnList"> |
|
|
|
<el-button class="commonbutton" @click="addAbs(asbItemChoosed,'choosed')" style="width:90px;" :disabled="isComplete">添加 <i class="el-icon-arrow-right"></i> |
|
|
|
<el-button class="commonbutton" @click="addAbs(asbItemChoosed, 'choosed')" style="width:90px;" |
|
|
|
:disabled="isComplete">添加 <i class="el-icon-arrow-right"></i> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '全添加')" class="btnList"> |
|
|
|
<el-button type="success" class="difference" @click="addAbs(asbItemChoosed,'all')" style="width:90px;" :disabled="isComplete">全添加 <i class="el-icon-d-arrow-right"></i> |
|
|
|
<el-button type="success" class="difference" @click="addAbs(asbItemChoosed, 'all')" style="width:90px;" |
|
|
|
:disabled="isComplete">全添加 <i class="el-icon-d-arrow-right"></i> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '移除')" class="btnList"> |
|
|
|
<el-button type="warning" class="commonbutton" @click="delAbs(patientRegisterAbsChoosed,'choosed')" style="width:90px;" :disabled="isComplete"><i class="el-icon-arrow-left"> 移除</i> |
|
|
|
<el-button type="warning" class="commonbutton" @click="delAbs(patientRegisterAbsChoosed, 'choosed')" |
|
|
|
style="width:90px;" :disabled="isComplete"><i class="el-icon-arrow-left"> 移除</i> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '全移除')" class="btnList"> |
|
|
|
<el-button type="danger" class="difference" @click="delAbs(patientRegisterAbsChoosed,'all')" style="width:90px;" :disabled="isComplete"><i class="el-icon-d-arrow-left"> 全移除</i> |
|
|
|
<el-button type="danger" class="difference" @click="delAbs(patientRegisterAbsChoosed, 'all')" style="width:90px;" |
|
|
|
:disabled="isComplete"><i class="el-icon-d-arrow-left"> 全移除</i> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<!-- 不显示保存,当已选组合有修改时,失去焦点自动保存 |
|
|
|
@ -75,29 +80,29 @@ |
|
|
|
@focus="totalFoucs = true" @blur="totalFoucs = false" /> |
|
|
|
</div> |
|
|
|
<div class="disTotal"> |
|
|
|
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small" |
|
|
|
filterable :filter-method="filterMethod" :disabled="isComplete" |
|
|
|
clearable @clear="quickAsb = deepCopy(asbItemQuick)" |
|
|
|
@change="quickChoosedAsb" default-first-option ref="quickAsbOCX" |
|
|
|
style="width:240px;text-align: left;padding-right: 15px;"> |
|
|
|
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small" filterable :filter-method="filterMethod" |
|
|
|
:disabled="isComplete" clearable @clear="quickAsb = deepCopy(asbItemQuick)" @change="quickChoosedAsb" |
|
|
|
default-first-option ref="quickAsbOCX" style="width:240px;text-align: left;padding-right: 15px;"> |
|
|
|
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="mainareaBox"> |
|
|
|
<el-table :data="dataTransOpts.tableM.register_check_asbitem" highlight-current-row border ref="patientRegister_patientRegisterAbs" style="border-radius: 5px;" |
|
|
|
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" width="100%" :summary-method="getSummaries" |
|
|
|
show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs" @selection-change="selecteditems" size="small" |
|
|
|
@row-click="removeAsbItem"> |
|
|
|
<el-table :data="dataTransOpts.tableM.register_check_asbitem" highlight-current-row border |
|
|
|
ref="patientRegister_patientRegisterAbs" style="border-radius: 5px;" |
|
|
|
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" width="100%" |
|
|
|
:summary-method="getSummaries" show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs" |
|
|
|
@selection-change="selecteditems" size="small" @row-click="removeAsbItem"> |
|
|
|
<!-- temporaryselection personnelUnit.nogroupselected--> |
|
|
|
<!-- 取消勾选,换成选中 |
|
|
|
<el-table-column type="selection" align="center"/> |
|
|
|
--> |
|
|
|
<el-table-column label="已选组合项目" min-width="120" prop="asbitemName" > |
|
|
|
<el-table-column label="已选组合项目" min-width="150" prop="asbitemName"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div> |
|
|
|
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="top"> |
|
|
|
<i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 14px;color: purple;"></i> |
|
|
|
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on" |
|
|
|
style="font-size: 14px;color: purple;"></i> |
|
|
|
</el-tooltip> |
|
|
|
{{ scope.row.asbitemName }} |
|
|
|
</div> |
|
|
|
@ -116,13 +121,13 @@ |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="实收价格" prop="chargePrice" min-width="70"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input type="number" v-model="scope.row.chargePrice" size="small" |
|
|
|
@input="changePrice(scope.$index)" /> <!--立即触发保存 @blur="onSubmit('')" --> |
|
|
|
<el-input type="number" v-model="scope.row.chargePrice" size="small" @input="changePrice(scope.$index)" /> |
|
|
|
<!--立即触发保存 @blur="onSubmit('')" --> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="total" label="金额" min-width="70" align="center" /> |
|
|
|
<el-table-column prop="standardPrice" label="标准金额" min-width="70" v-if="false" /> |
|
|
|
<el-table-column label="支付方式" prop="payTypeFlag" min-width="100"> |
|
|
|
<el-table-column label="支付方式" prop="payTypeFlag" width="80"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-select v-model="scope.row.payTypeFlag" size="small"> |
|
|
|
<el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
@ -152,6 +157,9 @@ |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
<div style="position: absolute;bottom:28px;right:125px;font-size: 10px;"> |
|
|
|
{{ asbDesc }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
@ -185,8 +193,8 @@ export default { |
|
|
|
//patientRegisterAbsDel: [], //体检人员 待删除的组合项目 |
|
|
|
|
|
|
|
|
|
|
|
prAsb:[], //当前显示的已选组合项目(新增与编辑的在一起) |
|
|
|
prAsbDels:[], //待提交 删除的组合项目 |
|
|
|
// prAsb:[], //当前显示的已选组合项目(新增与编辑的在一起) |
|
|
|
// prAsbDels:[], //待提交 删除的组合项目 |
|
|
|
|
|
|
|
groupAsbs: [], //分组包含的项目 |
|
|
|
packageAsbs: [], //套餐包含的项目 |
|
|
|
@ -200,6 +208,8 @@ export default { |
|
|
|
asbItemQuick: [], |
|
|
|
totalFoucs: false, //总价是否获取焦点 |
|
|
|
discountFoucs: false, //总折扣是否获取焦点 |
|
|
|
|
|
|
|
asbDesc:'', //所选套餐描述 |
|
|
|
}; |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
@ -259,12 +269,15 @@ export default { |
|
|
|
// debugger |
|
|
|
// 清空待删除、分组、套餐 |
|
|
|
console.log('getPrAsb(id)', `getPrAsb(${id})`) |
|
|
|
this.prAsbDels = [] |
|
|
|
// this.prAsbDels = [] |
|
|
|
this.groupAsbs = [] |
|
|
|
this.packageAsbs = [] |
|
|
|
|
|
|
|
if (!id) { |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem = [] |
|
|
|
} else { |
|
|
|
let result = await proApi.getPrAsb(id) |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem = result.data |
|
|
|
} |
|
|
|
this.refreshAsbitem() |
|
|
|
}, |
|
|
|
|
|
|
|
@ -601,22 +614,22 @@ export default { |
|
|
|
//批量提交删除组合项目 |
|
|
|
async batchDelAsb() { |
|
|
|
let ret = false |
|
|
|
if(this.prAsbDels.length == 0) return true |
|
|
|
// if(this.prAsbDels.length == 0) return true |
|
|
|
|
|
|
|
let registerAsbitemIds=[] |
|
|
|
// let registerAsbitemIds=[] |
|
|
|
|
|
|
|
this.prAsbDels.forEach(e => { |
|
|
|
registerAsbitemIds.push(e.id) |
|
|
|
}) |
|
|
|
// this.prAsbDels.forEach(e => { |
|
|
|
// registerAsbitemIds.push(e.id) |
|
|
|
// }) |
|
|
|
|
|
|
|
console.log(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds}) |
|
|
|
// console.log(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds}) |
|
|
|
|
|
|
|
try { |
|
|
|
let res = await postapi(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds}) |
|
|
|
if(res.code != -1) ret = true |
|
|
|
} catch (error) { |
|
|
|
console.log('批量删除组合项目失败',error) |
|
|
|
} |
|
|
|
// try { |
|
|
|
// let res = await postapi(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds}) |
|
|
|
// if(res.code != -1) ret = true |
|
|
|
// } catch (error) { |
|
|
|
// console.log('批量删除组合项目失败',error) |
|
|
|
// } |
|
|
|
|
|
|
|
return ret |
|
|
|
}, |
|
|
|
@ -752,6 +765,7 @@ export default { |
|
|
|
//找到了则更新此项目 |
|
|
|
tempRd = Object.assign({}, this.groupAsbs.splice(lfind, 1)[0]) |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].isBelongGroupPackage = 'Y' |
|
|
|
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') { |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.customerOrgGroupDetailAmount |
|
|
|
@ -773,23 +787,24 @@ export default { |
|
|
|
// debugger |
|
|
|
//未找到则添加(如果在待删除中找到记录,则待删除中记录移至当前显示记录中来) |
|
|
|
this.groupAsbs.forEach(e => { |
|
|
|
lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.asbitemId) |
|
|
|
if(lfind > -1){ |
|
|
|
tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0], |
|
|
|
{ |
|
|
|
groupPackageId:newId, |
|
|
|
standardPrice:e.price, |
|
|
|
chargePrice:e.customerOrgGroupDetailPrice, |
|
|
|
payTypeFlag, |
|
|
|
isCharge: "N", |
|
|
|
discount:e.discount, |
|
|
|
amount:e.customerOrgGroupDetailAmount, |
|
|
|
total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100)/100 |
|
|
|
} |
|
|
|
) |
|
|
|
}else{ |
|
|
|
// lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.asbitemId) |
|
|
|
// if(lfind > -1){ |
|
|
|
// tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0], |
|
|
|
// { |
|
|
|
// groupPackageId:newId, |
|
|
|
// standardPrice:e.price, |
|
|
|
// chargePrice:e.customerOrgGroupDetailPrice, |
|
|
|
// payTypeFlag, |
|
|
|
// isCharge: "N", |
|
|
|
// discount:e.discount, |
|
|
|
// amount:e.customerOrgGroupDetailAmount, |
|
|
|
// total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100)/100 |
|
|
|
// } |
|
|
|
// ) |
|
|
|
// }else{ |
|
|
|
tempRd = { |
|
|
|
groupPackageId: newId, |
|
|
|
isBelongGroupPackage:'Y', |
|
|
|
asbitemId: e.asbitemId, |
|
|
|
asbitemName: e.displayName, |
|
|
|
patientRegisterId: this.prForm.id, |
|
|
|
@ -801,7 +816,7 @@ export default { |
|
|
|
amount: e.customerOrgGroupDetailAmount, |
|
|
|
total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100) / 100 |
|
|
|
} |
|
|
|
} |
|
|
|
// } |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem.push(tempRd) |
|
|
|
}) |
|
|
|
|
|
|
|
@ -828,6 +843,7 @@ export default { |
|
|
|
//找到了则更新此项目 |
|
|
|
tempRd = Object.assign({}, this.packageAsbs.splice(lfind, 1)[0]) |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].isBelongGroupPackage = 'Y' |
|
|
|
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') { |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.medicalPackageDetailAmount |
|
|
|
@ -848,23 +864,24 @@ export default { |
|
|
|
|
|
|
|
//未找到则添加(如果在待删除中找到记录,则待删除中记录移至当前显示记录中来) |
|
|
|
this.packageAsbs.forEach(e => { |
|
|
|
lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.id) |
|
|
|
if(lfind > -1){ |
|
|
|
tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0], |
|
|
|
{ |
|
|
|
groupPackageId:newId, |
|
|
|
standardPrice:e.price, |
|
|
|
chargePrice:e.medicalPackageDetailPrice, |
|
|
|
payTypeFlag, |
|
|
|
isCharge: "N", |
|
|
|
discount:e.discount, |
|
|
|
amount:e.medicalPackageDetailAmount, |
|
|
|
total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100)/100 |
|
|
|
} |
|
|
|
) |
|
|
|
}else{ |
|
|
|
// lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.id) |
|
|
|
// if(lfind > -1){ |
|
|
|
// tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0], |
|
|
|
// { |
|
|
|
// groupPackageId:newId, |
|
|
|
// standardPrice:e.price, |
|
|
|
// chargePrice:e.medicalPackageDetailPrice, |
|
|
|
// payTypeFlag, |
|
|
|
// isCharge: "N", |
|
|
|
// discount:e.discount, |
|
|
|
// amount:e.medicalPackageDetailAmount, |
|
|
|
// total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100)/100 |
|
|
|
// } |
|
|
|
// ) |
|
|
|
// }else{ |
|
|
|
tempRd = { |
|
|
|
groupPackageId: newId, |
|
|
|
isBelongGroupPackage: 'Y', |
|
|
|
asbitemId: e.id, |
|
|
|
asbitemName: e.displayName, |
|
|
|
patientRegisterId: this.prForm.id, |
|
|
|
@ -876,7 +893,7 @@ export default { |
|
|
|
amount: e.medicalPackageDetailAmount, |
|
|
|
total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100) / 100 |
|
|
|
} |
|
|
|
} |
|
|
|
// } |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem.push(tempRd) |
|
|
|
}) |
|
|
|
|
|
|
|
@ -887,6 +904,7 @@ export default { |
|
|
|
setGroupPackageNull() { |
|
|
|
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => { |
|
|
|
e.groupPackageId = null |
|
|
|
e.isBelongGroupPackage = 'N' |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
@ -1015,11 +1033,17 @@ export default { |
|
|
|
const { columns, data } = param; |
|
|
|
const sumCol = [1, 5] //需合计的列 |
|
|
|
const sums = []; |
|
|
|
|
|
|
|
let count = this.dataTransOpts.tableM.register_check_asbitem.length |
|
|
|
let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y'}).length |
|
|
|
|
|
|
|
this.asbDesc = `共选 ${count} 个项目,其中套餐/分组 ${pack} 个,加做 ${count - pack} 个` |
|
|
|
|
|
|
|
columns.forEach((column, index) => { |
|
|
|
//console.log('column, index,data',column, index,data) |
|
|
|
//显示合计列 |
|
|
|
if (index === 0) { |
|
|
|
sums[index] = '合计'; |
|
|
|
sums[index] = `合计`; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1182,7 +1206,5 @@ export default { |
|
|
|
|
|
|
|
.disTotal { |
|
|
|
margin-left: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
</style> |
|
|
|
}</style> |
|
|
|
|