pengjun 2 weeks ago
parent
commit
a1b6f51081
  1. 113
      src/components/common/MedicalPackageAsbitem.vue
  2. 1
      src/views/fee-settings/Item.vue

113
src/components/common/MedicalPackageAsbitem.vue

@ -4,25 +4,23 @@
<!--未选组合项目--> <!--未选组合项目-->
<div style="display: block; width:260px;"> <div style="display: block; width:260px;">
<div> <div>
<span style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">项目类别</span>
<span
style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" <el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" popper-class="example" @change="getAsbItemByItemType" size="small" ref="itemTypeIds">
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" popper-class="example"
@change="getAsbItemByItemType" size="small" ref="itemTypeIds">
</el-cascader> </el-cascader>
</div> </div>
<div class="box"> <div class="box">
<el-table :data="dict.asbItem" size="small" highlight-current-row <el-table :data="dict.asbItem" size="small" highlight-current-row
:height="window.pageHeight < 600 ? 200 : Math.floor((window.pageHeight - 210) / 2)" :height="window.pageHeight < 600 ? 200 : Math.floor((window.pageHeight - 210) / 2)"
@row-dblclick="dbClickChoosedAsb" row-key="id"
@selection-change=" selectLeft" :row-class-name="handleRowClassName"
@row-click="chooseAsbItem">
@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="selection" align="center" ></el-table-column>
--> -->
<el-table-column type="index" align="center" min-width="40" label="序号" /> <el-table-column type="index" align="center" min-width="40" label="序号" />
<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> </el-table>
</div> </div>
</div> </div>
@ -30,15 +28,15 @@
<!--中间操作按钮--> <!--中间操作按钮-->
<div style="display: flex;margin: 0px 10px 0px;flex-direction: column;justify-content: center;"> <div style="display: flex;margin: 0px 10px 0px;flex-direction: column;justify-content: center;">
<div> <div>
<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>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<el-button class="difference" @click="addAbs(asbItemChoosed, 'all')">全部添加</el-button> <el-button class="difference" @click="addAbs(asbItemChoosed, 'all')">全部添加</el-button>
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<el-button class="commonbutton"
@click="delAbs(medicalPackageAsbitemsChoosed,'choosed')">移除 <i class="el-icon-arrow-left"></i
></el-button>
<el-button class="commonbutton" @click="delAbs(medicalPackageAsbitemsChoosed, 'choosed')">移除 <i
class="el-icon-arrow-left"></i></el-button>
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<el-button class="difference" @click="delAbs(medicalPackageAsbitemsChoosed, 'all')">全部移除</el-button> <el-button class="difference" @click="delAbs(medicalPackageAsbitemsChoosed, 'all')">全部移除</el-button>
@ -48,56 +46,41 @@
<!--已选组合项目--> <!--已选组合项目-->
<div :style="'display: block; width:' + (window.pageWidth - 280 - 120 - 45 - 110) + 'px;'"> <div :style="'display: block; width:' + (window.pageWidth - 280 - 120 - 45 - 110) + 'px;'">
<div style="height:32px;"> <div style="height:32px;">
<span style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">快速选择</span>
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small"
filterable default-first-option :filter-method="filterMethod"
clearable @clear="quickAsb = deepCopy(dict.asbItemQuick)"
<span
style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">快速选择</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"> @change="quickChoosedAsb" ref="quickAsbOCX">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" /> <el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select> </el-select>
</div> </div>
<div class="box"> <div class="box">
<el-table :data="medicalPackageAsbitems" size="small"
@selection-change="selectRight" highlight-current-row
<el-table :data="medicalPackageAsbitems" size="small" @selection-change="selectRight" highlight-current-row
:height="window.pageHeight < 600 ? 200 : Math.floor((window.pageHeight - 210) / 2)" :height="window.pageHeight < 600 ? 200 : Math.floor((window.pageHeight - 210) / 2)"
:summary-method="getSummaries" show-summary
:row-class-name="handleRowClassName" @row-dblclick="removeAbs"
:summary-method="getSummaries" show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs"
@row-click="removeAsbItem" ref="tablemedicalPackageAsbitems"> @row-click="removeAsbItem" ref="tablemedicalPackageAsbitems">
<!-- <!--
<el-table-column type="selection"></el-table-column> <el-table-column type="selection"></el-table-column>
--> -->
<el-table-column type="index" min-width="40" align="center" label="序号" /> <el-table-column type="index" min-width="40" align="center" label="序号" />
<el-table-column
label="已选组合项目"
min-width="120"
prop="displayName"
></el-table-column>
<el-table-column label="已选组合项目" min-width="120" prop="displayName"></el-table-column>
<el-table-column label="标准价格" prop="price" min-width="60" align="center" /> <el-table-column label="标准价格" prop="price" min-width="60" align="center" />
<el-table-column label="折扣" min-width="60" align="center"> <el-table-column label="折扣" min-width="60" align="center">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column label="应收价格" prop="medicalPackageDetailPrice" min-width="60" align="center"> <el-table-column label="应收价格" prop="medicalPackageDetailPrice" min-width="60" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input
@input="changePrices(scope.$index)"
type="number" size="small"
v-model="scope.row.medicalPackageDetailPrice"
/>
<el-input @input="changePrices(scope.$index)" type="number" size="small"
v-model="scope.row.medicalPackageDetailPrice" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="数量" prop="medicalPackageDetailAmount" min-width="40" align="center"> <el-table-column label="数量" prop="medicalPackageDetailAmount" min-width="40" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input
@input="changePrices(scope.$index)"
type="number" size="small"
v-model="scope.row.medicalPackageDetailAmount"
/>
<el-input @input="changePrices(scope.$index)" type="number" size="small"
v-model="scope.row.medicalPackageDetailAmount" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="标准金额" prop="asbitemMoney" min-width="60" align="center"> <el-table-column label="标准金额" prop="asbitemMoney" min-width="60" align="center">
@ -119,10 +102,10 @@
</div> </div>
<!--复制套餐--> <!--复制套餐-->
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="50%" height="400"
:show-close="false" :close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.medicalPackage" height="350" row-key="id"
highlight-current-row @row-click="packageRowClick" @row-dblclick="rowDblclick" ref="patientList" >
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="50%" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.medicalPackage" height="350" row-key="id" highlight-current-row @row-click="packageRowClick"
@row-dblclick="rowDblclick" ref="patientList">
<!-- "displayName": "健康体检套餐", <!-- "displayName": "健康体检套餐",
"price": 20.00, "price": 20.00,
@ -402,6 +385,7 @@ export default {
for (let i = 0; i < asbItemChoosed.length; i++) { for (let i = 0; i < asbItemChoosed.length; i++) {
let pojo = { let pojo = {
id: asbItemChoosed[i].id,
asbitemId: asbItemChoosed[i].id, asbitemId: asbItemChoosed[i].id,
displayName: asbItemChoosed[i].displayName, displayName: asbItemChoosed[i].displayName,
discount: 100, discount: 100,
@ -519,32 +503,32 @@ export default {
let lfind = -1 let lfind = -1
// start // start
// if(oprType && oprType == 'all'){
// absForDel = deepCopy(this.medicalPackageAsbitems)
// }else if(oprType && oprType == 'choosed'){
// absForDel = []
// this.medicalPackageAsbitems.forEach(e =>{
// if(e.choosed){
// absForDel.push(deepCopy(e))
// e.choosed = false
// }
// })
// }
if (oprType && oprType == 'all') {
absForDel = deepCopy(this.medicalPackageAsbitems)
} else if (oprType && oprType == 'choosed') {
absForDel = []
this.medicalPackageAsbitems.forEach(e => {
if (e.choosed) {
absForDel.push(deepCopy(e))
e.choosed = false
}
})
}
// end // end
if (absForDel.length < 1) { if (absForDel.length < 1) {
this.$message.warning({ showClose: true, message: "请选择要移除的组合项目" }) this.$message.warning({ showClose: true, message: "请选择要移除的组合项目" })
return return
} }
for (let i = 0; i < absForDel.length; i++) {
lfind = arrayExistObj(this.medicalPackageAsbitems, 'asbitemId', absForDel[i].asbitemId)
console.log('absForDel', absForDel)
for (let i = absForDel.length - 1; i > -1; i--) {
//lfind = arrayExistObj(this.medicalPackageAsbitems, 'asbitemId', absForDel[i].id || absForDel[i].asbitemId)
lfind = arrayExistObj(this.medicalPackageAsbitems, 'id', absForDel[i].id || absForDel[i].asbitemId)
if (lfind > -1) this.medicalPackageAsbitems.splice(lfind, 1) if (lfind > -1) this.medicalPackageAsbitems.splice(lfind, 1)
absForDel.splice(i, 1)
i--
continue
//absForDel.splice(i, 1)
//continue
} }
@ -820,10 +804,7 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.box { .box {
margin-top: 5px; margin-top: 5px;
} }
</style> </style>

1
src/views/fee-settings/Item.vue

@ -2621,6 +2621,7 @@ export default {
Onsubmit() { Onsubmit() {
this.$refs.form.validate((v) => { this.$refs.form.validate((v) => {
if (v) { if (v) {
if(!this.form.unitId) this.form.unitId = null
if (this.title == 1) { if (this.title == 1) {
this.form.price = Number(this.form.price); this.form.price = Number(this.form.price);
// this.form.itemTypeId = this.form.itemTypeId.slice(-1)[0]; // this.form.itemTypeId = this.form.itemTypeId.slice(-1)[0];

Loading…
Cancel
Save