|
|
@ -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> |