diff --git a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue index e54e2f7..9aa1957 100644 --- a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue +++ b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue @@ -1504,6 +1504,15 @@ export default { paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表 + console.log(row.expense_list); + console.log(row.paint_expenseList); + + let expense_list = JSON.parse(row.expense_list || "[]"); + expense_list = expense_list.filter(a => a.item_name); + + let paint_expenseList = JSON.parse(row.paint_expenseList || "[]"); + paint_expenseList = paint_expenseList.filter(a => a.item_name); + if (row.type != '1' && row.type != '3') { //抽屉 如果不是主柜 this.drawer_detailsData.push({ // 添加抽屉数据 @@ -1537,8 +1546,8 @@ export default { this.addToList({ scheme_id, listData: materialList, detailsData: this.material_detailsData }); // 把来源数据添加到目标表格数据 this.addToList({ scheme_id, listData: paintLaborList, detailsData: this.paintLabor_detailsData }); // 把来源数据添加到目标表格数据 this.addToList({ scheme_id, listData: paintMaterialList, detailsData: this.paintMaterial_detailsData }); // 把来源数据添加到目标表格数据 - - + this.addToList({ scheme_id, listData: expense_list, detailsData: this.expense_detailsData }); + this.addToList({ scheme_id, listData: paint_expenseList, detailsData: this.paintExpense_detailsData }); this.materialHeightInit(); // 初始化材料高度 this.fittingsListInit(); diff --git a/src/pages/Middle/bathroom/BathroomScheme/BathroomScheme/Edit.vue b/src/pages/Middle/bathroom/BathroomScheme/BathroomScheme/Edit.vue index b63098e..4a8f577 100644 --- a/src/pages/Middle/bathroom/BathroomScheme/BathroomScheme/Edit.vue +++ b/src/pages/Middle/bathroom/BathroomScheme/BathroomScheme/Edit.vue @@ -226,9 +226,32 @@ :edit-render="{ name: 'EditExpressions' }"> - - - + + + + + + + + + + @@ -305,6 +328,37 @@ + + + + + + + + + + + + + + @@ -480,6 +534,39 @@ export default { bathroomMaterial_list: [],//材料的数据 moreExpressionsList_material_height: [],//材料的厚度 变量列表 moreExpressionsList_fittings: [], + + expense_detailsData: [ // 费用结算 + { + item_name: "材料小计", amount_formula: "{免漆材料总费用}+{配件总费用}+{包装总费用}" + }, + { + item_name: "人工费", amount_formula: "{免漆人工总费用}" + }, + { + item_name: "抽屉费用", amount_formula: "{免漆抽屉总费用}" + }, + + { + item_name: "制,造,费,用", amount_formula: "({免漆材料总费用}+{配件总费用}+{包装总费用} + {免漆人工总费用}+{免漆抽屉总费用})*0.22" + } + ], + paintExpense_detailsData: [ // 油漆费用结算 + { + item_name: "材料小计", amount_formula: "{油漆材料总费用}+{配件总费用}+{包装总费用}" + }, + { + item_name: "人工费", amount_formula: "{油漆人工总费用}" + }, + + { + item_name: "抽屉费用", amount_formula: "{油漆抽屉总费用}" + }, + { + item_name: "制,造,费,用", amount_formula: "({油漆材料总费用}+{配件总费用}+{包装总费用} + {油漆人工总费用}+{油漆抽屉总费用})*0.22" + } + + ], + uploadDefaultImg: null, detailDataFieldName: "bathroom_scheme", @@ -729,6 +816,8 @@ export default { this.paintMaterial_detailsData = JSON.parse(data.paintMaterialList || "[]"); + this.expense_detailsData = JSON.parse(data.expense_list || "[]"); // 费用结算 + this.paintExpense_detailsData = JSON.parse(data.paint_expenseList || "[]"); // 油漆费用结算 this.materialHeightInit(); this.fittingsListInit(); @@ -874,6 +963,14 @@ export default { this.paintLabor_detailsData.push({}); } + + for (let i = this.expense_detailsData.length; i < settings.table_min_count; i++) { // 遍历费用结算列表 + this.expense_detailsData.push({}); + } + for (let i = this.paintExpense_detailsData.length; i < settings.table_min_count; i++) { // 遍历油漆费用结算列表 + this.paintExpense_detailsData.push({}); + } + }, // 获取路由的id参数 getDataId() { @@ -1142,6 +1239,69 @@ export default { }, + + // 油漆人工下拉选择事件 + expense_onPulldownSelected({ row, name, params }) { + console.log(row, name, params); + + }, + // 油漆人工弹出选择事件 + expense_onPopupSelected({ rows, name, params }) { + console.log(rows, name, params); + }, + // 油漆人工编辑前事件 + expense_beforeEditMethod({ column, row }) { + console.log(row, column); + return true; + }, + // 油漆人工编辑后事件 + expense_afterEditEvent({ column, row }) { + console.log(row, column); + }, + // 油漆人工编辑前事件 + expense_beforeEditEvent({ column, row }) { + console.log(row, column); + }, + // 油漆人工表格添加事件 + expense_pageAdd(row) { + const $table = this.$refs.expense_xTable + const record = { + } + if (row) { + this.expense_detailsData.splice($table.getRowSeq(row), 0, record); + } else { + this.expense_detailsData.push(record) + } + }, + // 油漆人工表格删除事件 + expense_pageDelete(row) { + const $table = this.$refs.expense_xTable; + this.expense_detailsData.splice($table.getRowSeq(row) - 1, 1); + }, + // 油漆人工表格添加事件 + expense_footerCellClassName({ columnIndex }) { + if (columnIndex === 0) { + return 'col-blue' + } + }, + expense_footerMethod({ columns }) { + const sums = [] + columns.forEach((column, columnIndex) => { + if (columnIndex === 0) { + sums.push('') + } else { + let sumCell = '' + switch (column.field) { + case 'amount_formula': + sumCell = parseFloat(this.formOptions.data.expense_total_amount || 0).toFixed(2) + break + } + sums.push(sumCell) + } + }) + return [sums] + }, + paintMaterial_onPulldownSelected({ row, name, params }) { console.log(row, name, params); @@ -1210,7 +1370,61 @@ export default { const $table = this.$refs.paintLabor_xTable; this.paintLabor_detailsData.splice($table.getRowSeq(row) - 1, 1); }, + + paintExpense_onPulldownSelected({ row, name, params }) { + console.log(row, name, params); + + }, + paintExpense_onPopupSelected({ rows, name, params }) { + console.log(rows, name, params); + }, + paintExpense_beforeEditMethod({ column, row }) { + console.log(row, column); + return true; + }, + paintExpense_afterEditEvent({ column, row }) { + console.log(row, column); + }, + paintExpense_beforeEditEvent({ column, row }) { + console.log(row, column); + }, + paintExpense_pageAdd(row) { + const $table = this.$refs.paintExpense_xTable + const record = { + } + if (row) { + this.paintExpense_detailsData.splice($table.getRowSeq(row), 0, record); + } else { + this.paintExpense_detailsData.push(record) + } + }, + paintExpense_pageDelete(row) { + const $table = this.$refs.paintExpense_xTable; + this.paintExpense_detailsData.splice($table.getRowSeq(row) - 1, 1); + }, + paintExpense_footerCellClassName({ columnIndex }) { + if (columnIndex === 0) { + return 'col-blue' + } + }, + paintExpense_footerMethod({ columns }) { + const sums = [] + columns.forEach((column, columnIndex) => { + if (columnIndex === 0) { + sums.push('') + } else { + let sumCell = '' + switch (column.field) { + case 'amount_formula': + sumCell = parseFloat(this.formOptions.data.paintExpense_total_amount || 0).toFixed(2) + break + } + sums.push(sumCell) + } + }) + return [sums] + }, @@ -1381,6 +1595,9 @@ export default { postdata.paintLaborList = JSON.parse(JSON.stringify(this.paintLabor_detailsData)); postdata.paintMaterialList = JSON.parse(JSON.stringify(this.paintMaterial_detailsData)); + postdata.expense_list = JSON.parse(JSON.stringify(this.expense_detailsData)); + postdata.paint_expenseList = JSON.parse(JSON.stringify(this.paintExpense_detailsData)); + postdata.fittingsList = postdata.fittingsList.filter(item => item.fittings && item.fittings[1] ? true : false); postdata.partsList = postdata.partsList.filter(item => item.parts && item.parts[1] ? true : false); @@ -1392,7 +1609,9 @@ export default { postdata.paintLaborList = postdata.paintLaborList.filter(item => item.labor && item.labor[1] ? true : false); postdata.paintMaterialList = postdata.paintMaterialList.filter(item => item.material && item.material[1] ? true : false); - + + postdata.expense_list = postdata.expense_list.filter(item => item.item_name ? true : false); + postdata.paint_expenseList = postdata.paint_expenseList.filter(item => item.item_name ? true : false); this.formatDetailsData(postdata.fittingsList); this.formatDetailsData(postdata.partsList); @@ -1410,6 +1629,8 @@ export default { postdata.materialList = JSON.stringify(postdata.materialList); postdata.paintLaborList = JSON.stringify(postdata.paintLaborList); postdata.paintMaterialList = JSON.stringify(postdata.paintMaterialList); + postdata.expense_list = JSON.stringify(postdata.expense_list); + postdata.paint_expenseList = JSON.stringify(postdata.paint_expenseList); // 格式化提交的数据 this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items }); @@ -1518,7 +1739,6 @@ export default { this.paintMaterial_detailsData = paintMaterialList; this.detailDataInit(); - this.calculateAll(); this.modalVisible = false; },