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

413
src/components/common/MedicalPackageAsbitem.vue

@ -4,25 +4,23 @@
<!--未选组合项目-->
<div style="display: block; width:260px;">
<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"
: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>
</div>
<div class="box">
<el-table :data="dict.asbItem" size="small" highlight-current-row
: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">
<el-table :data="dict.asbItem" size="small" highlight-current-row
: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">
<!--
<el-table-column type="selection" align="center" ></el-table-column>
-->
<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 type="index" align="center" min-width="40" label="序号" />
<el-table-column label="未选组合项目" min-width="170" prop="displayName" align="center"></el-table-column>
</el-table>
</div>
</div>
@ -30,74 +28,59 @@
<!--中间操作按钮-->
<div style="display: flex;margin: 0px 10px 0px;flex-direction: column;justify-content: center;">
<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 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 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 style="margin-top: 10px">
<el-button class="difference" @click="delAbs(medicalPackageAsbitemsChoosed,'all')">全部移除</el-button>
</div>
<el-button class="difference" @click="delAbs(medicalPackageAsbitemsChoosed, 'all')">全部移除</el-button>
</div>
</div>
<!--已选组合项目-->
<div :style="'display: block; width:' + (window.pageWidth - 280 - 120 - 45 - 110) + 'px;'">
<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">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select>
</div>
<div class="box">
<el-table :data="medicalPackageAsbitems" size="small"
@selection-change="selectRight" highlight-current-row
:height="window.pageHeight < 600 ? 200:Math.floor((window.pageHeight - 210) / 2)"
:summary-method="getSummaries" show-summary
:row-class-name="handleRowClassName" @row-dblclick="removeAbs"
<el-table :data="medicalPackageAsbitems" size="small" @selection-change="selectRight" highlight-current-row
:height="window.pageHeight < 600 ? 200 : Math.floor((window.pageHeight - 210) / 2)"
:summary-method="getSummaries" show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs"
@row-click="removeAsbItem" ref="tablemedicalPackageAsbitems">
<!--
<el-table-column type="selection"></el-table-column>
-->
<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="标准价格" prop="price" min-width="60" align="center"/>
<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="标准价格" prop="price" min-width="60" align="center" />
<el-table-column label="折扣" min-width="60" 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="medicalPackageDetailPrice" min-width="60" align="center">
<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>
</el-table-column>
<el-table-column label="数量" prop="medicalPackageDetailAmount" min-width="40" align="center">
<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>
</el-table-column>
<el-table-column label="标准金额" prop="asbitemMoney" min-width="60" align="center">
@ -117,13 +100,13 @@
<el-button class="commonbutton" @click="btnSave">保存</el-button>
</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": "健康体检套餐",
"price": 20.00,
"forSexId": "0",
@ -139,8 +122,8 @@
"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="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>
@ -148,8 +131,8 @@
</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="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">
@ -157,14 +140,14 @@
</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人员" width="80"/>
<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-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="medicalPackageVisble = false" class="difference">取消</el-button>
@ -172,36 +155,36 @@
</span>
</el-dialog>
</div>
</template>
<script>
import moment from 'moment';
import { mapState } from "vuex";
import { getapi, postapi, putapi } from "@/api/api";
import { arrayExistObj, tcdate, arrayFilter, arrayReduce, deepCopy,dddw } from "../../utlis/proFunc";
import { arrayExistObj, tcdate, arrayFilter, arrayReduce, deepCopy, dddw } from "../../utlis/proFunc";
export default {
props:['formData','refreshMoney'],
props: ['formData', 'refreshMoney'],
data() {
return {
packagePrice:0, //
medicalPackageAsbitems:[], //
medicalPackageAsbitemsChoosed:[], //()
itemTypeIds:[], //
asbItemId:'', //ID
quickAsb:[], //
packagePrice: 0, //
medicalPackageAsbitems: [], //
medicalPackageAsbitemsChoosed: [], //()
itemTypeIds: [], //
asbItemId: '', //ID
quickAsb: [], //
asbItemChoosed: [], //
startPoint:-1,
PstartPoint:-1,
startPoint: -1,
PstartPoint: -1,
medicalPackageVisble: false, //
curPackageId: '', //ID
packageAsbitems: [], //
medicalPackageVisble:false, //
curPackageId:'', //ID
packageAsbitems:[], //
selecteddata: [], //
unselecteddata: [], //
rightselctedata: [], //
@ -219,27 +202,27 @@ export default {
};
},
computed: {
...mapState(["window","dict","customerOrg"]),
...mapState(["window", "dict", "customerOrg"]),
},
created() {
this.dictInit()
},
updated () {
updated() {
this.refreshTable('tablemedicalPackageAsbitems')
},
methods: {
moment,dddw,deepCopy,
moment, dddw, deepCopy,
//
refreshTable(tableRef){
refreshTable(tableRef) {
this.$nextTick(() => {
this.$refs[tableRef].doLayout()
})
},
//
dictInit(){
dictInit() {
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code != -1) {
@ -249,7 +232,7 @@ export default {
});
//
postapi("/api/app/asbitem/GetBasicList",{isFilterActive:'Y'}).then((res) => {
postapi("/api/app/asbitem/GetBasicList", { isFilterActive: 'Y' }).then((res) => {
if (res.code != -1) {
this.dict.asbItemAll = res.data;
this.dict.asbItemAll.forEach(e => {
@ -262,7 +245,7 @@ export default {
});
//
postapi("/api/app/medicalpackage/getmedicalpackagelist",{}).then((res) => {
postapi("/api/app/medicalpackage/getmedicalpackagelist", {}).then((res) => {
if (res.code != -1) {
this.dict.medicalPackage = res.data;
}
@ -307,7 +290,7 @@ export default {
arrayReduce(this.dict.asbItem, [...this.medicalPackageAsbitems], "id=id");
arrayReduce(this.dict.asbItemQuick, [...this.medicalPackageAsbitems], "id=id");
this.quickAsb = Object.assign(this.dict.asbItemQuick)
if(e){
if (e) {
this.$refs.itemTypeIds.toggleDropDownVisible();
}
},
@ -331,29 +314,29 @@ export default {
//
///api/app/register-asbitem/many/3fa85f64-5717-4562-b3fc-2c963f66afa6'
async addAbs(asbItemChoosed,oprType) {
async addAbs(asbItemChoosed, oprType) {
// console.log('this.medicalPackage',this.medicalPackage)
// console.log('asbItemChoosed', asbItemChoosed)
if(!this.formData.id){
this.$message.warning({ showClose: true, message: "请先选中单位分组"})
if (!this.formData.id) {
this.$message.warning({ showClose: true, message: "请先选中单位分组" })
return
}
if(this.formData.isComplete && this.formData.isComplete.toUpperCase() == 'Y'){
this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"})
if (this.formData.isComplete && this.formData.isComplete.toUpperCase() == 'Y') {
this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" })
return
}
let message = []
let checked = true
let checked = true
let lfind = -1
//oprType
// start
if(oprType && oprType == 'all'){
if (oprType && oprType == 'all') {
asbItemChoosed = deepCopy(this.dict.asbItem)
}else if(oprType && oprType == 'choosed'){
asbItemChoosed = []
this.dict.asbItem.forEach(e =>{
if(e.choosed){
} else if (oprType && oprType == 'choosed') {
asbItemChoosed = []
this.dict.asbItem.forEach(e => {
if (e.choosed) {
asbItemChoosed.push(e)
e.choosed = false
}
@ -362,7 +345,7 @@ export default {
// end
if (asbItemChoosed.length < 1) {
this.$message.warning({ showClose: true, message: "请选择要添加的组合项目"})
this.$message.warning({ showClose: true, message: "请选择要添加的组合项目" })
return
}
@ -372,7 +355,7 @@ export default {
// "forSexId": "F",
// "itemTypeId": "3a0b16de-75b9-c910-c61b-844709a88940",
// "price": 0,
// for (let i = 0; i < asbItemChoosed.length; i++) {
// if (this.formData.forSexId == 'A') break //
// if (asbItemChoosed[i].forSexId == 'A' || asbItemChoosed[i].forSexId == 'U') continue
@ -394,28 +377,29 @@ export default {
if (asbItemChoosed[i].forSexId != this.formData.forSexId) {
message.push(asbItemChoosed[i].displayName) //.warning(`${asbItemChoosed[i].displayName}`)
checked = false
asbItemChoosed.splice(i,1)
asbItemChoosed.splice(i, 1)
}
}
//console.log(222,checked)
if (!checked) this.$message.warning({ showClose: true, message: `所选项目【${JSON.stringify(message)}】不适合当前人员性别`})
if (!checked) this.$message.warning({ showClose: true, message: `所选项目【${JSON.stringify(message)}】不适合当前人员性别` })
for (let i = 0; i < asbItemChoosed.length; i++) {
let pojo = {
id: asbItemChoosed[i].id,
asbitemId: asbItemChoosed[i].id,
displayName:asbItemChoosed[i].displayName,
discount:100,
medicalPackageDetailAmount:1,
price:asbItemChoosed[i].price,
medicalPackageDetailPrice:asbItemChoosed[i].price,
displayName: asbItemChoosed[i].displayName,
discount: 100,
medicalPackageDetailAmount: 1,
price: asbItemChoosed[i].price,
medicalPackageDetailPrice: asbItemChoosed[i].price,
medicalPackageDetailMoney: asbItemChoosed[i].price,
asbitemMoney: asbItemChoosed[i].price,
}
this.medicalPackageAsbitems.push(pojo)
//this.medicalPackageAsbitems.push({ ...pojo, asbitemName: asbItemChoosed[i].displayName })
lfind = arrayExistObj(this.dict.asbItem, 'id', asbItemChoosed[i].id)
if (lfind > -1) this.dict.asbItem.splice(lfind, 1)
@ -424,7 +408,7 @@ export default {
}
},
//
@ -440,28 +424,28 @@ export default {
if (lfind > -1) {
this.addAbs([this.dict.asbItemQuick[lfind]])
}
}
}
this.$nextTick(() => {
this.$nextTick(() => {
this.$refs['quickAsbOCX'].blur(); //total asbItemId
this.asbItemId = ''
this.quickAsb = deepCopy(this.dict.asbItemQuick)
this.quickAsb = deepCopy(this.dict.asbItemQuick)
this.$refs['quickAsbOCX'].focus(); //total asbItemId
});
},
//
chooseAsbItem(row){
this.dict.asbItem.forEach((e,index) => {
e.index = index;
chooseAsbItem(row) {
this.dict.asbItem.forEach((e, index) => {
e.index = index;
return e
});
// shift
if (this.window.shift) {
if (this.window.shift) {
//
this.dict.asbItem.forEach(e => {
e.choosed = false;
e.choosed = false;
return e
});
@ -484,30 +468,30 @@ export default {
}
// ctrl
if (this.window.ctrl) {
console.log('this.window.ctrl',this.window.ctrl,this.dict.asbItem)
if (this.window.ctrl) {
console.log('this.window.ctrl', this.window.ctrl, this.dict.asbItem)
this.dict.asbItem[row.index].choosed = true;
this.startPoint = row.index;
return
return
}
// ctrl shift
//
//console.log('')
this.dict.asbItem.forEach(e => {
e.choosed = false;
e.choosed = false;
return e
});
this.dict.asbItem[row.index].choosed = true;
this.startPoint = row.index;
this.startPoint = row.index;
},
//
///api/app/register-asbitem/many?RegisterAsbitemIds=3fa85f64-5717-4562-b3fc-2c963f66afa6
delAbs(absForDel,oprType) {
if(!this.formData.id){
this.$message.warning({ showClose: true, message: "请先选中体检套餐"})
delAbs(absForDel, oprType) {
if (!this.formData.id) {
this.$message.warning({ showClose: true, message: "请先选中体检套餐" })
return
}
// if(this.formData.isComplete && this.formData.isComplete.toUpperCase() == 'Y'){
@ -519,37 +503,37 @@ export default {
let lfind = -1
// 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
if (absForDel.length < 1) {
this.$message.warning({ showClose: true, message: "请选择要移除的组合项目"})
this.$message.warning({ showClose: true, message: "请选择要移除的组合项目" })
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)
absForDel.splice(i, 1)
i--
continue
//absForDel.splice(i, 1)
//continue
}
//
this.getAsbItemByItemType()
this.getAsbItemByItemType()
},
@ -559,7 +543,7 @@ export default {
},
//
removeAsbItem(row){
removeAsbItem(row) {
this.medicalPackageAsbitemsChoosed = [row]
/*
@ -613,42 +597,42 @@ export default {
*/
},
changeDiscount(index){
changeDiscount(index) {
this.medicalPackageAsbitems[index].medicalPackageDetailPrice =
(this.medicalPackageAsbitems[index].discount * this.medicalPackageAsbitems[index].price / 100).toFixed(2)
this.medicalPackageAsbitems[index].medicalPackageDetailPrice =
(this.medicalPackageAsbitems[index].discount * this.medicalPackageAsbitems[index].price/100).toFixed(2)
this.medicalPackageAsbitems[index].medicalPackageDetailMoney =
(this.medicalPackageAsbitems[index].medicalPackageDetailPrice * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
this.medicalPackageAsbitems[index].medicalPackageDetailMoney =
(this.medicalPackageAsbitems[index].medicalPackageDetailPrice * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
//this.getSummaries()
},
//
changePrices(index){
this.medicalPackageAsbitems[index].medicalPackageDetailMoney =
(this.medicalPackageAsbitems[index].medicalPackageDetailPrice * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
changePrices(index) {
this.medicalPackageAsbitems[index].medicalPackageDetailMoney =
(this.medicalPackageAsbitems[index].medicalPackageDetailPrice * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
this.medicalPackageAsbitems[index].asbitemMoney =
(this.medicalPackageAsbitems[index].price * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
this.medicalPackageAsbitems[index].asbitemMoney =
(this.medicalPackageAsbitems[index].price * this.medicalPackageAsbitems[index].medicalPackageDetailAmount).toFixed(2)
this.medicalPackageAsbitems[index].discount = (this.medicalPackageAsbitems[index].medicalPackageDetailPrice * 100 / this.medicalPackageAsbitems[index].price).toFixed(2)
//this.getSummaries()
},
//
getSummaries(param) {
console.log('getSummaries param',param)
console.log('getSummaries param', param)
// if(!param){
// param = {
// columns:[{}, {}, {}, {}, {}, {}, {property: 'asbitemMoney'},{property: 'medicalPackageDetailMoney'}],
// data:this.medicalPackageAsbitems
// }
// }
const { columns, data } = param;
const sumCol = [6, 7] //
const sums = [];
@ -656,7 +640,7 @@ export default {
//console.log('column, index,data',column, index,data)
//
if (index === 1) {
sums[index] = '合计:'+data.length;
sums[index] = '合计:' + data.length;
return;
}
@ -679,61 +663,61 @@ export default {
// if (!this.discountFoucs) this.discount = Number(this.total * 100 / this.totalStand).toFixed(2);
return sums;
},
//
btnCopyMedicalPackage(){
if(!this.formData.id){
this.$message.warning({ showClose: true, message: "请先选中单位分组"})
btnCopyMedicalPackage() {
if (!this.formData.id) {
this.$message.warning({ showClose: true, message: "请先选中单位分组" })
return
}
if(this.formData.isComplete && this.formData.isComplete.toUpperCase() == 'Y'){
this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作"})
}
if (this.formData.isComplete && this.formData.isComplete.toUpperCase() == 'Y') {
this.$message.warning({ showClose: true, message: "体检次数已完成,不允许操作" })
return
}
this.medicalPackageVisble = true
},
//
async packageRowClick(row){
async packageRowClick(row) {
this.curPackageId = row.id
this.packageAsbitems = []
try {
let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem',{medicalPackageId:row.id})
let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem', { medicalPackageId: row.id })
this.packageAsbitems = res.data
} catch (error) {
console.log(error)
}
}
},
//
async rowDblclick(row){
async rowDblclick(row) {
await this.packageRowClick(row)
this.copyMedicalPackage()
},
//()
copyMedicalPackage(){
if(!this.curPackageId){
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!"})
copyMedicalPackage() {
if (!this.curPackageId) {
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" })
return
}
console.log('this.packageAsbitems',this.packageAsbitems)
console.log('this.packageAsbitems', this.packageAsbitems)
this.addAbs(deepCopy(this.packageAsbitems))
this.medicalPackageVisble = false
},
//
btnSave() {
if(!this.formData.id){
this.$message.warning({ showClose: true, message: "请先选中套餐"})
if (!this.formData.id) {
this.$message.warning({ showClose: true, message: "请先选中套餐" })
return
}
}
let body = {
medicalPackageId:this.formData.id,
details:[]
medicalPackageId: this.formData.id,
details: []
}
// {
// "medicalPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
@ -746,72 +730,72 @@ export default {
// }
// ]
// }
this.medicalPackageAsbitems.forEach(e =>{
this.medicalPackageAsbitems.forEach(e => {
body.details.push({
medicalPackageId:this.formData.id,
asbitemId:e.id||e.asbitemId,
price:e.medicalPackageDetailPrice,
amount:e.medicalPackageDetailAmount
medicalPackageId: this.formData.id,
asbitemId: e.id || e.asbitemId,
price: e.medicalPackageDetailPrice,
amount: e.medicalPackageDetailAmount
})
})
let Package = deepCopy(this.formData);
// /api/app/medical-package-detail/many
postapi('/api/app/medicalpackagedetail/createmedicalpackagedetailmany',body
).then(res => {
if(res.code != -1){
delete Package.id;
Package.price = this.packagePrice
postapi('/api/app/medicalpackagedetail/createmedicalpackagedetailmany', body
).then(res => {
if (res.code != -1) {
delete Package.id;
Package.price = this.packagePrice
return postapi(`/api/app/medicalpackage/update?id=${this.formData.id}`, Package)
}
}).then(res =>{
if(res && res.code != -1){
}).then(res => {
if (res && res.code != -1) {
console.log("操作成功");
Package.id = this.formData.id
this.refreshMoney(Package)
}
})
},
//
selectRight(val) {
this.medicalPackageAsbitemsChoosed = val;
},
//
selectLeft(val) {
selectLeft(val) {
this.asbItemChoosed = val;
},
//
getmedicalPackageAsbitems(medicalPackageId) {
if(medicalPackageId){
postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem',{medicalPackageId}).then((res) => {
if(res.code != -1){
if (medicalPackageId) {
postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem', { medicalPackageId }).then((res) => {
if (res.code != -1) {
this.medicalPackageAsbitems = res.data;
this.getAsbItemByItemType()
}
}
});
}else{
} else {
this.medicalPackageAsbitems = []
this.getAsbItemByItemType()
}
}
},
},
//
watch: {
//
"formData.id"(newVal, oldVal) {
console.log("formData.id ",newVal,oldVal);
console.log("formData.id ", newVal, oldVal);
if (newVal != oldVal) {
this.getmedicalPackageAsbitems(newVal);
}
@ -820,10 +804,7 @@ export default {
};
</script>
<style scoped>
.box {
.box {
margin-top: 5px;
}
</style>

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

@ -2621,8 +2621,9 @@ export default {
Onsubmit() {
this.$refs.form.validate((v) => {
if (v) {
if(!this.form.unitId) this.form.unitId = null
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];
addproject(this.form).then((res) => {
if (res.code != -1) {

Loading…
Cancel
Save