This commit is contained in:
xielue 2023-07-12 20:14:44 +08:00
parent 5db9f23c38
commit ca424afc79
3 changed files with 111 additions and 42 deletions

View File

@ -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 }); //

View File

@ -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