This commit is contained in:
parent
d99bc93ed5
commit
c4bc0b7c8e
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -226,9 +226,32 @@
|
|||
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
|
||||
|
||||
</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>
|
||||
</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>
|
||||
</div>
|
||||
|
|
@ -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() {
|
||||
|
|
@ -1143,6 +1240,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);
|
||||
|
||||
|
|
@ -1212,6 +1372,60 @@ export default {
|
|||
},
|
||||
|
||||
|
||||
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]
|
||||
},
|
||||
|
||||
|
||||
|
||||
formatName(v) {
|
||||
|
|
@ -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);
|
||||
|
|
@ -1393,6 +1610,8 @@ export default {
|
|||
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;
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue