This commit is contained in:
parent
5db9f23c38
commit
ca424afc79
|
|
@ -26,7 +26,7 @@
|
|||
</div>
|
||||
|
||||
<a-tabs v-model="tabKey" hide-add @edit="onTabEdit" @change="tabChange">
|
||||
<a-tab-pane key="main" tab="主柜">
|
||||
<a-tab-pane key="main" :tab="mainTabTitle">
|
||||
|
||||
|
||||
<a-button @click="reloadMain()" style="margin-bottom: 5px;">重新加载方案</a-button>
|
||||
|
|
@ -794,6 +794,7 @@ export default {
|
|||
var pageData = {
|
||||
// 当前项目名称
|
||||
currentConfigName: "",
|
||||
mainTabTitle: '主柜',
|
||||
// 当前项目ID
|
||||
currentBeid: 0, // 当前项目ID
|
||||
settignsValues: {}, // 当前项目配置
|
||||
|
|
@ -1217,7 +1218,11 @@ export default {
|
|||
this.fittingsListInit();
|
||||
this.detailDataInit(); // 初始化详情数据
|
||||
|
||||
|
||||
if (this.fittings_detailsData[0] && this.fittings_detailsData[0].scheme_id) {
|
||||
this.loadSchemeDataById(this.fittings_detailsData[0].scheme_id, (row) => {
|
||||
this.mainTabTitle = row.type == '1' ? '主柜' : '镜柜';
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
this.calculateAll(); // 计算所有数据
|
||||
|
|
@ -1330,7 +1335,7 @@ export default {
|
|||
},
|
||||
formatShowNumber(value, points) { // 格式化显示数字
|
||||
if (!value) {
|
||||
return '<span style="color:red;">' + (0.0).toFixed(points || 0) + '</span>';
|
||||
return '<span >' + (0.0).toFixed(points || 0) + '</span>';
|
||||
}
|
||||
return parseFloat(value).toFixed(points || 0)
|
||||
},
|
||||
|
|
@ -1502,7 +1507,7 @@ export default {
|
|||
|
||||
});
|
||||
},
|
||||
loadSchemeDataById(dataId) { // 加载方案数据
|
||||
loadSchemeDataById(dataId, callback) { // 加载方案数据
|
||||
const json = `{"id":${dataId}}`; // 构造json
|
||||
this.$mk.post({ // 获取详情数据
|
||||
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detail`, // 详情接口地址
|
||||
|
|
@ -1514,8 +1519,12 @@ export default {
|
|||
}
|
||||
}
|
||||
}).then(a => {
|
||||
if (callback) {
|
||||
callback(a.data.bathroom_scheme); // 加载方案数据
|
||||
} else {
|
||||
this.loadSchemeData(a.data.bathroom_scheme); // 加载方案数据
|
||||
}
|
||||
|
||||
this.loadSchemeData(a.data.bathroom_scheme); // 加载方案数据
|
||||
|
||||
});
|
||||
},
|
||||
|
|
@ -1542,7 +1551,8 @@ export default {
|
|||
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表
|
||||
|
||||
|
||||
if (row.type != settings.schemeType_main) { //抽屉 如果不是主柜
|
||||
if (row.type != '1' && row.type != '3') { //抽屉 如果不是主柜
|
||||
|
||||
this.drawer_detailsData.push({ // 添加抽屉数据
|
||||
scheme_id: scheme_id,
|
||||
name: row.name, // 名称
|
||||
|
|
@ -1564,6 +1574,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 }); // 把来源数据添加到目标表格数据
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@
|
|||
<vxe-column field="paint_material" title="材料(油漆)" width="160" :params="editorMaterial" formatter="formatRef"
|
||||
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
||||
|
||||
<vxe-column field="long_formula" title="长" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<vxe-column field="long_formula" title="长" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.long_formula || '' }}
|
||||
</template>
|
||||
|
|
@ -60,9 +60,9 @@
|
|||
</a-tooltip>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="width_formula" title="宽" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }">
|
||||
<template #default="{ row }">
|
||||
<vxe-column field="width_formula" title="宽" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.width_formula || '' }}
|
||||
|
|
@ -74,9 +74,9 @@
|
|||
</a-tooltip>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="height_formula" title="厚" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }">
|
||||
<template #default="{ row }">
|
||||
<vxe-column field="height_formula" title="厚" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.height_formula || '' }}
|
||||
|
|
@ -112,23 +112,25 @@
|
|||
<vxe-column field="rate_materials" title="主材利用率" width="80"
|
||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||
<vxe-column field="paint_number" title="油漆面" width="80"
|
||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||
<vxe-column field="board_length_formula" title="板材用量(块)" width="220" :edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.board_length_formula || '' }}
|
||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||
<vxe-column field="board_length_formula" title="板材用量(块)" width="220"
|
||||
:edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.board_length_formula || '' }}
|
||||
</template>
|
||||
<span v-if="showExp">
|
||||
{{ row.board_length_formula || '' }}
|
||||
</span>
|
||||
<span v-else v-html="formatShowNumber(row.board_length, 3)"></span>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
<span v-if="showExp">
|
||||
{{ row.board_length_formula || '' }}
|
||||
</span>
|
||||
<span v-else v-html="formatShowNumber(row.board_length, 3)"></span>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
</vxe-column>
|
||||
<vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220" :edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
</vxe-column>
|
||||
<vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220"
|
||||
:edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.paint_area_formula || '' }}
|
||||
|
|
@ -285,8 +287,21 @@
|
|||
</a-tooltip>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="price" title="单价" width="120"
|
||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||
|
||||
<vxe-column field="price_formula" title="单价" width="200" :edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
<template slot="title">
|
||||
{{ row.price_formula || '' }}
|
||||
</template>
|
||||
<span v-if="showExp">
|
||||
{{ row.price_formula || '' }}
|
||||
</span>
|
||||
<span v-else v-html="formatShowNumber(row.price, 2)"></span>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</vxe-column>
|
||||
|
||||
<vxe-column field="amount_formula" title="金额" width="200" :edit-render="{ name: 'EditExpressions' }">
|
||||
<template #default="{ row }">
|
||||
<a-tooltip>
|
||||
|
|
@ -712,9 +727,7 @@ export default {
|
|||
fittings_detailsData: [],
|
||||
parts_detailsData: [],
|
||||
|
||||
|
||||
bathroomMaterial_list: [],//材料的数据
|
||||
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
||||
|
||||
|
||||
editorFittings: {
|
||||
dataUrl: `${BASE_URL.BASE_URL}/BathroomFittings/v1/bathroom/fittings/list`,
|
||||
|
|
@ -806,7 +819,10 @@ export default {
|
|||
labor_detailsData: [],
|
||||
paintMaterial_detailsData: [],
|
||||
paintLabor_detailsData: [],
|
||||
|
||||
bathroomMaterial_list: [],//材料的数据
|
||||
fittings_list: [],//材料的数据
|
||||
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
||||
moreExpressionsList_fittings: [],
|
||||
expense_detailsData: [
|
||||
{
|
||||
item_name: "材料小计", amount_formula: "{免漆材料总费用}+{配件总费用}+{包装总费用}"
|
||||
|
|
@ -916,6 +932,7 @@ export default {
|
|||
//this.paintExpense_detailsData = data.paint_expenseList;
|
||||
|
||||
this.materialHeightInit()
|
||||
this.fittingsListInit();
|
||||
this.detailDataInit();
|
||||
this.resetMaterial();
|
||||
this.resetPaintMaterial();
|
||||
|
|
@ -925,6 +942,27 @@ export default {
|
|||
methods: {
|
||||
|
||||
|
||||
fittingsListInit() { // 获取部件数据
|
||||
|
||||
this.$mk.post({ // 获取材料列表
|
||||
url: `${BASE_URL.BASE_URL}//BathroomFittings/v1/bathroom/fittings/list`,
|
||||
data: { "page": 1, "limit": 100, "order_bys": [], "search_rules": [] }
|
||||
}).then(a => {
|
||||
|
||||
this.fittings_list = a.data.BathroomFittings || [];
|
||||
this.moreExpressionsList_fittings = [];
|
||||
|
||||
|
||||
this.fittings_list.forEach(o => {
|
||||
|
||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的长");
|
||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的宽");
|
||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的厚");
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
},
|
||||
materialHeightInit() {
|
||||
|
||||
this.$mk.post({
|
||||
|
|
@ -958,8 +996,8 @@ export default {
|
|||
},
|
||||
|
||||
|
||||
getMoreExpressionsList_material_height() {
|
||||
return this.moreExpressionsList_material_height;
|
||||
getMoreExpressionsList() {
|
||||
return [...this.moreExpressionsList_material_height, ...this.moreExpressionsList_fittings]
|
||||
},
|
||||
|
||||
loadSettings() {
|
||||
|
|
@ -990,7 +1028,7 @@ export default {
|
|||
},
|
||||
formatShowNumber(value, points) {
|
||||
if (!value) {
|
||||
return '<span style="color:red;">' + (0.0).toFixed(points || 0) + '</span>';
|
||||
return '<span>' + (0.0).toFixed(points || 0) + '</span>';
|
||||
}
|
||||
return parseFloat(value).toFixed(points || 0)
|
||||
},
|
||||
|
|
@ -1903,6 +1941,24 @@ export default {
|
|||
});
|
||||
return v;
|
||||
|
||||
}
|
||||
let nn = [{ n: '的长', name: 'long' }, { n: '的宽', name: 'width' }, { n: '的厚', name: 'height' }];
|
||||
for (let i = 0; i < nn.length; i++) {
|
||||
|
||||
if (name.indexOf(nn[i].n) > 0 &&
|
||||
this.fittings_list.filter(a => this.formatName(a.name) + nn[i].n == name).length) {
|
||||
name = this.formatName(name);
|
||||
name = name.substr(0, name.length - 2);
|
||||
console.log(name);
|
||||
let v = 0;
|
||||
this.fittings_detailsData.forEach(o => {
|
||||
if (o.fittings && name == this.formatName(o.fittings[1])) {
|
||||
v = parseFloat(o[nn[i].name] || 0);
|
||||
}
|
||||
});
|
||||
return v;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let fun = settings.expressionsDefines[name];
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue