This commit is contained in:
xielue 2023-07-12 22:35:28 +08:00
parent ca424afc79
commit 159fb22134
2 changed files with 74 additions and 60 deletions

View File

@ -1449,63 +1449,14 @@ export default {
this.loadSchemeDataById(scheme_id);
},
reloadDrawer(index) {
let drawer_detailData = this.drawer_detailsData[index];
if (!drawer_detailData.scheme_id) return;
const json = `{"id":${drawer_detailData.scheme_id}}`; // json
this.$mk.post({ //
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detail`, //
loading: "加载中...",
data: json,
config: {
headers: {
'Content-Type': 'application/json'
}
let drawers = this.$refs['drawer']; //
if (drawers && drawers[index] && drawers[index].reloadDrawer) {
drawers[index].reloadDrawer();
}
}).then(a => {
let row = a.data.bathroom_scheme; //
let fittingsList = JSON.parse(row.fittingsList || "[]"); //
fittingsList = fittingsList.filter(a => a.fittings && a.fittings[0]); //
let partsList = JSON.parse(row.partsList || "[]"); //
partsList = partsList.filter(a => a.parts && a.parts[0]); //
let packagingList = JSON.parse(row.packagingList || "[]"); //
packagingList = packagingList.filter(a => a.packaging && a.packaging[0]); //
let laborList = JSON.parse(row.laborList || "[]"); //
laborList = laborList.filter(a => a.labor && a.labor[0]); //
let materialList = JSON.parse(row.materialList || "[]"); //
materialList = materialList.filter(a => a.material && a.material[0]); //
let paintLaborList = JSON.parse(row.paintLaborList || "[]"); //
paintLaborList = paintLaborList.filter(a => a.labor && a.labor[0]); //
let paintMaterialList = JSON.parse(row.paintMaterialList || "[]"); //
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); //
let updateToList = ({ sourceList, targetList }) => {
sourceList.forEach(item => {
let oldItem = targetList.filter(a => a.id == item.id);
if (oldItem.length) { //
//
Object.assign(oldItem[0], item);
}
});
};
updateToList({ sourceList: fittingsList, targetList: drawer_detailData.fittingsList })
updateToList({ sourceList: partsList, targetList: drawer_detailData.partsList })
updateToList({ sourceList: packagingList, targetList: drawer_detailData.packagingList })
updateToList({ sourceList: laborList, targetList: drawer_detailData.laborList })
updateToList({ sourceList: materialList, targetList: drawer_detailData.materialList })
updateToList({ sourceList: paintLaborList, targetList: drawer_detailData.paintLaborList })
updateToList({ sourceList: paintMaterialList, targetList: drawer_detailData.paintMaterialList })
this.calculateAll();
});
},
loadSchemeDataById(dataId, callback) { //
const json = `{"id":${dataId}}`; // json
@ -1574,9 +1525,9 @@ export default {
} else { //
this.mainTabTitle = row.type == '1' ? '主柜' : '镜柜';
this.addToList({ scheme_id, listData: fittingsList, detailsData: this.fittings_detailsData }); //
this.addToList({ scheme_id, listData: partsList, detailsData: this.parts_detailsData }); //
this.addToList({ scheme_id, listData: packagingList, detailsData: this.packaging_detailsData }); //

View File

@ -1026,6 +1026,68 @@ export default {
this.$mk.error(a.data.msg);
});
},
reloadDrawer() {
let drawer_detailData = this.item;
if (!drawer_detailData.scheme_id) return;
const json = `{"id":${drawer_detailData.scheme_id}}`; // json
this.$mk.post({ //
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detail`, //
loading: "加载中...",
data: json,
config: {
headers: {
'Content-Type': 'application/json'
}
}
}).then(a => {
let row = a.data.bathroom_scheme; //
let fittingsList = JSON.parse(row.fittingsList || "[]"); //
fittingsList = fittingsList.filter(a => a.fittings && a.fittings[0]); //
let partsList = JSON.parse(row.partsList || "[]"); //
partsList = partsList.filter(a => a.parts && a.parts[0]); //
let packagingList = JSON.parse(row.packagingList || "[]"); //
packagingList = packagingList.filter(a => a.packaging && a.packaging[0]); //
let laborList = JSON.parse(row.laborList || "[]"); //
laborList = laborList.filter(a => a.labor && a.labor[0]); //
let materialList = JSON.parse(row.materialList || "[]"); //
materialList = materialList.filter(a => a.material && a.material[0]); //
let paintLaborList = JSON.parse(row.paintLaborList || "[]"); //
paintLaborList = paintLaborList.filter(a => a.labor && a.labor[0]); //
let paintMaterialList = JSON.parse(row.paintMaterialList || "[]"); //
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); //
let updateToList = ({ sourceList, targetList }) => {
sourceList.forEach(item => {
targetList.forEach(targetItem=>{
if(targetItem.id == item.id){
Object.assign(targetItem, item);
}
})
});
};
updateToList({ sourceList: fittingsList, targetList: this.fittings_detailsData })
updateToList({ sourceList: partsList, targetList: this.parts_detailsData })
updateToList({ sourceList: packagingList, targetList: this.packaging_detailsData })
updateToList({ sourceList: laborList, targetList: this.labor_detailsData})
updateToList({ sourceList: materialList, targetList: this.material_detailsData })
updateToList({ sourceList: paintLaborList, targetList: this.paintLabor_detailsData })
updateToList({ sourceList: paintMaterialList, targetList: this.paintMaterial_detailsData })
this.calculateAll();
});
},
formatShowNumber(value, points) {
if (!value) {
return '<span>' + (0.0).toFixed(points || 0) + '</span>';
@ -1999,6 +2061,8 @@ export default {
},
_calculateAll() {
this.calculateRows({ detailsData: this.fittings_detailsData, names: ["long", "width", "height", "seal", "board_length", "paint_area"], totalPrev: "fittings" });
this.totalRows({ detailsData: this.fittings_detailsData, names: ["quantity"], totalPrev: "fittings" });
@ -2023,8 +2087,7 @@ export default {
this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2);
this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2);
let postdata = this.item;