This commit is contained in:
parent
d99bc93ed5
commit
c4bc0b7c8e
|
|
@ -1504,6 +1504,15 @@ export default {
|
||||||
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表
|
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') { //抽屉 如果不是主柜
|
if (row.type != '1' && row.type != '3') { //抽屉 如果不是主柜
|
||||||
|
|
||||||
this.drawer_detailsData.push({ // 添加抽屉数据
|
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: materialList, detailsData: this.material_detailsData }); // 把来源数据添加到目标表格数据
|
||||||
this.addToList({ scheme_id, listData: paintLaborList, detailsData: this.paintLabor_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: 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.materialHeightInit(); // 初始化材料高度
|
||||||
this.fittingsListInit();
|
this.fittingsListInit();
|
||||||
|
|
|
||||||
|
|
@ -226,9 +226,32 @@
|
||||||
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
|
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
|
||||||
|
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
|
</a-collapse-panel>
|
||||||
|
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
||||||
|
<vxe-table border show-overflow keep-source ref="expense_xTable" :data="expense_detailsData" :keyboard-config="{
|
||||||
|
isArrow: true, isDel: true,
|
||||||
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
|
}" :mouse-config="{ selected: true }" @pulldownSelected="expense_onPulldownSelected"
|
||||||
|
@popupSelected="expense_onPopupSelected" :export-config="{}" @edit-closed="expense_afterEditEvent"
|
||||||
|
@edit-actived="expense_beforeEditEvent"
|
||||||
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: expense_beforeEditMethod }">
|
||||||
|
<vxe-column width="60" v-if="!isReadonly">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div class="oplinks2">
|
||||||
|
<a @click.stop="expense_pageAdd(row)" title="新增">
|
||||||
|
<a-icon type="plus-circle" />
|
||||||
|
</a>
|
||||||
|
<a @click.stop="expense_pageDelete(row)" title="删除">
|
||||||
|
<a-icon type="delete" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column type="seq" title="序号" width="48"></vxe-column>
|
||||||
|
<vxe-column field="item_name" title="项目" width="220" :edit-render="{ name: '$input' }"></vxe-column>
|
||||||
|
<vxe-column field="amount_formula" title="金额(公式)" width="220"
|
||||||
|
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
|
||||||
|
</vxe-table>
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
</a-collapse>
|
</a-collapse>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -305,6 +328,37 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</a-collapse-panel>
|
||||||
|
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
||||||
|
<vxe-table border show-overflow keep-source ref="paintExpense_xTable" :data="paintExpense_detailsData"
|
||||||
|
:keyboard-config="{
|
||||||
|
isArrow: true, isDel: true,
|
||||||
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
|
}" :mouse-config="{ selected: true }" @pulldownSelected="paintExpense_onPulldownSelected"
|
||||||
|
@popupSelected="paintExpense_onPopupSelected" :export-config="{}" @edit-closed="paintExpense_afterEditEvent"
|
||||||
|
@edit-actived="paintExpense_beforeEditEvent"
|
||||||
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintExpense_beforeEditMethod }">
|
||||||
|
<vxe-column width="60" v-if="!isReadonly">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div class="oplinks2">
|
||||||
|
<a @click.stop="paintExpense_pageAdd(row)" title="新增">
|
||||||
|
<a-icon type="plus-circle" />
|
||||||
|
</a>
|
||||||
|
<a @click.stop="paintExpense_pageDelete(row)" title="删除">
|
||||||
|
<a-icon type="delete" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column type="seq" title="序号" width="48"></vxe-column>
|
||||||
|
<vxe-column field="item_name" title="项目" width="220" :edit-render="{ name: '$input' }"></vxe-column>
|
||||||
|
<vxe-column field="amount_formula" title="金额(公式)" width="220"
|
||||||
|
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
|
||||||
|
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
</a-collapse>
|
</a-collapse>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -480,6 +534,39 @@ export default {
|
||||||
bathroomMaterial_list: [],//材料的数据
|
bathroomMaterial_list: [],//材料的数据
|
||||||
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
||||||
moreExpressionsList_fittings: [],
|
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,
|
uploadDefaultImg: null,
|
||||||
detailDataFieldName: "bathroom_scheme",
|
detailDataFieldName: "bathroom_scheme",
|
||||||
|
|
||||||
|
|
@ -729,6 +816,8 @@ export default {
|
||||||
this.paintMaterial_detailsData = JSON.parse(data.paintMaterialList || "[]");
|
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.materialHeightInit();
|
||||||
this.fittingsListInit();
|
this.fittingsListInit();
|
||||||
|
|
@ -874,6 +963,14 @@ export default {
|
||||||
this.paintLabor_detailsData.push({});
|
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参数
|
// 获取路由的id参数
|
||||||
getDataId() {
|
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 }) {
|
paintMaterial_onPulldownSelected({ row, name, params }) {
|
||||||
console.log(row, name, params);
|
console.log(row, name, params);
|
||||||
|
|
@ -1210,7 +1370,61 @@ export default {
|
||||||
const $table = this.$refs.paintLabor_xTable;
|
const $table = this.$refs.paintLabor_xTable;
|
||||||
this.paintLabor_detailsData.splice($table.getRowSeq(row) - 1, 1);
|
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.paintLaborList = JSON.parse(JSON.stringify(this.paintLabor_detailsData));
|
||||||
postdata.paintMaterialList = JSON.parse(JSON.stringify(this.paintMaterial_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.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);
|
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.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.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.fittingsList);
|
||||||
this.formatDetailsData(postdata.partsList);
|
this.formatDetailsData(postdata.partsList);
|
||||||
|
|
@ -1410,6 +1629,8 @@ export default {
|
||||||
postdata.materialList = JSON.stringify(postdata.materialList);
|
postdata.materialList = JSON.stringify(postdata.materialList);
|
||||||
postdata.paintLaborList = JSON.stringify(postdata.paintLaborList);
|
postdata.paintLaborList = JSON.stringify(postdata.paintLaborList);
|
||||||
postdata.paintMaterialList = JSON.stringify(postdata.paintMaterialList);
|
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 });
|
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
|
||||||
|
|
@ -1518,7 +1739,6 @@ export default {
|
||||||
this.paintMaterial_detailsData = paintMaterialList;
|
this.paintMaterial_detailsData = paintMaterialList;
|
||||||
|
|
||||||
this.detailDataInit();
|
this.detailDataInit();
|
||||||
this.calculateAll();
|
|
||||||
|
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue