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