diff --git a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue index ca6b760..9481712 100644 --- a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue +++ b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue @@ -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 }); // 把来源数据添加到目标表格数据 diff --git a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/drawer.vue b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/drawer.vue index fff7bfe..8350a6d 100644 --- a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/drawer.vue +++ b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/drawer.vue @@ -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 '' + (0.0).toFixed(points || 0) + ''; @@ -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;