This commit is contained in:
xielue 2023-07-03 18:22:39 +08:00
parent 937d0307d8
commit 7e833a5d3f
5 changed files with 233 additions and 87 deletions

View File

@ -74,7 +74,8 @@
<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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -87,7 +88,8 @@
</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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -100,7 +102,8 @@
</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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -313,8 +316,24 @@
</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>
@ -383,10 +402,10 @@
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: material_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: material_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
<template #default="{ row }"> <template #default="{ row }">
<div class="oplinks2"> <div class="oplinks2">
<a @click.stop="material_pageAdd(row)" title="新增"> <a @click.stop="material_pageAdd(row)" title="新增">
<a-icon type="plus-circle" /> <a-icon type="plus-circle" />
</a> </a>
<a @click.stop="material_pageDelete(row)" title="删除"> <a @click.stop="material_pageDelete(row)" title="删除">
<a-icon type="delete" /> <a-icon type="delete" />
</a> </a>
@ -397,8 +416,8 @@
<vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef" <vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column> :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="quantity_formula" title="总用量" width="200" <vxe-column field="quantity_formula" title="总用量" width="200" :params="{ hasTotalQuantity: true }"
:params="{hasTotalQuantity:true}" :edit-render="{ name: 'EditExpressions' }"> :edit-render="{ name: 'EditExpressions' }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -414,6 +433,8 @@
</vxe-column> </vxe-column>
<vxe-column field="price" title="单价" width="120" <vxe-column field="price" title="单价" width="120"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></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>
@ -566,8 +587,8 @@
<vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef" <vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column> :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="quantity_formula" title="总用量" width="200" <vxe-column field="quantity_formula" title="总用量" width="200" :params="{ hasTotalQuantity: true }"
:params="{hasTotalQuantity:true}" :edit-render="{ name: 'EditExpressions' }"> :edit-render="{ name: 'EditExpressions' }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -723,9 +744,9 @@
v-model="modalVisible" @confirm="confirmSelectScheme"> v-model="modalVisible" @confirm="confirmSelectScheme">
<template #default> <template #default>
<vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="scheme_grid" <vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="scheme_grid"
@cell-dblclick="dblClickEvent" @cell-dblclick="dblClickEvent" :row-config="{ isCurrent: true, isHover: true }" :loading="scheme_loading"
:row-config="{ isCurrent: true, isHover: true }" :loading="scheme_loading" :pager-config="scheme_tablePage" :pager-config="scheme_tablePage" :data="scheme_tableData" :columns="scheme_tableColumn"
:data="scheme_tableData" :columns="scheme_tableColumn" @page-change="scheme_pageChangeEvent"> @page-change="scheme_pageChangeEvent">
</vxe-grid> </vxe-grid>
</template> </template>
</vxe-modal> </vxe-modal>
@ -778,7 +799,7 @@ export default {
showExp: false, // showExp: false, //
showType: "1", // showType: "1", //
modalVisible: false, // modalVisible: false, //
isPreview:false, // isPreview: false, //
scheme_loading: false, // scheme_loading: false, //
scheme_tableData: [], // scheme_tableData: [], //
scheme_tableColumn: [ // scheme_tableColumn: [ //
@ -818,10 +839,10 @@ export default {
{ field: 'remark', title: '备注' } { field: 'remark', title: '备注' }
], ],
placeholder: "请输入名称", placeholder: "请输入名称",
searchFieldNames: ['name'], searchFieldNames: ['name'],
textField: 'name' textField: 'name'
}, },
editorMaterial2: { editorMaterial2: {
dataUrl: `${BASE_URL.BASE_URL}/BathroomMaterial/v1/bathroom/material/list`, dataUrl: `${BASE_URL.BASE_URL}/BathroomMaterial/v1/bathroom/material/list`,
listdataFieldName: 'BathroomMaterial', listdataFieldName: 'BathroomMaterial',
@ -831,7 +852,7 @@ export default {
], ],
placeholder: "请输入名称", placeholder: "请输入名称",
searchFieldNames: ['name'], searchFieldNames: ['name'],
extendData : [{id:'封边条', name : '封边条'}], extendData: [{ id: '封边条', name: '封边条' }],
textField: 'name' textField: 'name'
}, },
editorBanding: { editorBanding: {
@ -883,12 +904,14 @@ export default {
packaging_detailsData: [], // packaging_detailsData: [], //
material_detailsData: [], // material_detailsData: [], //
labor_detailsData: [], // labor_detailsData: [], //
paintMaterial_detailsData: [], // paintMaterial_detailsData: [], //
paintLabor_detailsData: [], // paintLabor_detailsData: [], //
bathroomMaterial_list: [],//
moreExpressionsList_material_height:[],//
expense_detailsData: [ // expense_detailsData: [ //
{ {
@ -1139,7 +1162,7 @@ export default {
// id // id
let dataId = this.getDataId(); // id let dataId = this.getDataId(); // id
if(dataId && dataId.indexOf && dataId.indexOf('d') == 0){ // id if (dataId && dataId.indexOf && dataId.indexOf('d') == 0) { // id
this.isPreview = true; // this.isPreview = true; //
this.loadSchemeDataById(dataId.substr(1)); // this.loadSchemeDataById(dataId.substr(1)); //
} }
@ -1187,7 +1210,7 @@ export default {
this.drawer_detailsData = JSON.parse(data.drawer_list || "[]"); // this.drawer_detailsData = JSON.parse(data.drawer_list || "[]"); //
this.materialHeightInit(); // this.materialHeightInit(); //
this.detailDataInit(); // this.detailDataInit(); //
@ -1225,26 +1248,38 @@ export default {
data: { "page": 1, "limit": 100, "order_bys": [], "search_rules": [] } data: { "page": 1, "limit": 100, "order_bys": [], "search_rules": [] }
}).then(a => { }).then(a => {
this.bathroomMaterial_list = a.data.BathroomMaterial || [];
this.moreExpressionsList_material_height = [];
this.bathroomMaterial_list.forEach(o => { //
a.data.BathroomMaterial.forEach(o => { //
this.fittings_detailsData.forEach(item => { // this.fittings_detailsData.forEach(item => { //
if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) { // idid
if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) { // idid
item.material_default_height = o.spec || "15"; // item.material_default_height = o.spec || "15"; //
} }
}); });
}); });
this.bathroomMaterial_list.forEach(o => { //
this.moreExpressionsList_material_height.push(this.formatName(o.name) +"的厚度");
});
}); });
}, },
getMoreExpressionsList_material_height(){
return this.moreExpressionsList_material_height;
},
loadSettings() { // loadSettings() { //
this.$mk.post({ // this.$mk.post({ //
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`, url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`,
data: { data: {
@ -1273,7 +1308,7 @@ export default {
if (!value) { if (!value) {
return '<span style="color:red;">' + (0.0).toFixed(points || 0) + '</span>'; return '<span style="color:red;">' + (0.0).toFixed(points || 0) + '</span>';
} }
return parseFloat(value).toFixed(points || 0) return parseFloat(value).toFixed(points || 0)
}, },
toggleAll() { // / toggleAll() { // /
@ -1336,7 +1371,7 @@ export default {
let o = item[name]; // let o = item[name]; //
if (Array.isArray(o) && o[1]) { // if (Array.isArray(o) && o[1]) { //
item[name] = o[1]; // item[name] = o[1]; //
} }
if (typeof (o) == "number") { // if (typeof (o) == "number") { //
item[name] = parseFloat(o || 0).toFixed(2) // item[name] = parseFloat(o || 0).toFixed(2) //
} }
@ -1366,23 +1401,23 @@ export default {
this.modalVisible = true; // this.modalVisible = true; //
this.scheme_load(); // this.scheme_load(); //
}, },
dblClickEvent( ) { // dblClickEvent() { //
this.confirmSelectScheme(); // this.confirmSelectScheme(); //
}, },
confirmSelectScheme() { // confirmSelectScheme() { //
let row = this.$refs.scheme_grid.getCurrentRecord(); // let row = this.$refs.scheme_grid.getCurrentRecord(); //
this.loadSchemeData(row); // this.loadSchemeData(row); //
this.modalVisible = false; // this.modalVisible = false; //
}, },
loadSchemeDataById(dataId){ // loadSchemeDataById(dataId) { //
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`, //
loading: "加载中...", loading: "加载中...",
data: json, data: json,
config: { config: {
headers: { headers: {
@ -1390,12 +1425,12 @@ export default {
} }
} }
}).then(a => { }).then(a => {
this.loadSchemeData(a.data.bathroom_scheme); // this.loadSchemeData(a.data.bathroom_scheme); //
}); });
}, },
loadSchemeData(row){ // loadSchemeData(row) { //
let scheme_id = row.id.toString() // id let scheme_id = row.id.toString() // id
@ -1431,7 +1466,7 @@ export default {
paintMaterialList // paintMaterialList //
}); });
this.materialHeightInit(); // this.materialHeightInit(); //
this.$forceUpdate(); // this.$forceUpdate(); //
@ -1447,7 +1482,7 @@ export default {
this.addToList({ scheme_id, listData: paintMaterialList, detailsData: this.paintMaterial_detailsData }); // this.addToList({ scheme_id, listData: paintMaterialList, detailsData: this.paintMaterial_detailsData }); //
this.materialHeightInit(); // this.materialHeightInit(); //
this.calculateAll(); // this.calculateAll(); //
@ -1471,7 +1506,7 @@ export default {
if (oldDetailItem.length) { // if (oldDetailItem.length) { //
// //
Object.assign(oldDetailItem[0], info); Object.assign(oldDetailItem[0], info);
} else { // } else { //
// //
newInfos.push(info); newInfos.push(info);
@ -1484,7 +1519,7 @@ export default {
let item = detailsData[i]; // let item = detailsData[i]; //
// //
if (!item.fittings || !item.fittings[0]) { if (!item.fittings || !item.fittings[0]) {
Object.assign(detailsData[i], newInfos[j]); // Object.assign(detailsData[i], newInfos[j]); //
j++; // +1 j++; // +1
} }
@ -1506,7 +1541,7 @@ export default {
"page": this.scheme_tablePage.currentPage, // "page": this.scheme_tablePage.currentPage, //
"limit": this.scheme_tablePage.pageSize, // "limit": this.scheme_tablePage.pageSize, //
"order_bys": [ // "order_bys": [ //
], ],
"search_rules": [ // "search_rules": [ //
], ],
"start_time": 0, // "start_time": 0, //
@ -1516,7 +1551,7 @@ export default {
this.$mk.post({ // this.$mk.post({ //
url: this.actions.BathroomSchemeList, // url: this.actions.BathroomSchemeList, //
data: parms // data: parms //
}).then(r => { }).then(r => {
this.scheme_loading = false // this.scheme_loading = false //
let data = r.data; // let data = r.data; //
this.scheme_tablePage.total = data.total; // this.scheme_tablePage.total = data.total; //
@ -1535,13 +1570,13 @@ export default {
} }
for (let i = this.packaging_detailsData.length; i < settings.table_min_count; i++) { // for (let i = this.packaging_detailsData.length; i < settings.table_min_count; i++) { //
this.packaging_detailsData.push({}); this.packaging_detailsData.push({});
} }
for (let i = this.material_detailsData.length; i < settings.table_min_count; i++) { // for (let i = this.material_detailsData.length; i < settings.table_min_count; i++) { //
this.material_detailsData.push({}); this.material_detailsData.push({});
} }
for (let i = this.labor_detailsData.length; i < settings.table_min_count; i++) { // for (let i = this.labor_detailsData.length; i < settings.table_min_count; i++) { //
this.labor_detailsData.push({}); this.labor_detailsData.push({});
} }
@ -1562,7 +1597,7 @@ export default {
}, },
// id // id
getDataId() { getDataId() {
let dataId = this.dataId; let dataId = this.dataId;
if (this.$route.params.id) { if (this.$route.params.id) {
dataId = this.$route.params.id; dataId = this.$route.params.id;
@ -1606,7 +1641,7 @@ export default {
if (column.field == "material") { // if (column.field == "material") { //
this.resetMaterial(); // this.resetMaterial(); //
if (selectedData.spec) { // if (selectedData && selectedData.spec) { //
row.material_default_height = selectedData.spec; // row.material_default_height = selectedData.spec; //
} }
} }
@ -1626,8 +1661,9 @@ export default {
} }
}, },
// //
fittings_onPopupSelected({ rows, name, params }) { // rows name params fittings_onPopupSelected({ rows, name, params }) { // rows name params
console.log(rows, name, params); // console.log(rows, name, params); //
}, },
// //
fittings_beforeEditMethod({ column, row }) { // column row fittings_beforeEditMethod({ column, row }) { // column row
@ -1643,7 +1679,7 @@ export default {
}, },
// //
fittings_beforeEditEvent({ column, row }) { // column row fittings_beforeEditEvent({ column, row }) { // column row
console.log(row, column); console.log(row, column);
}, },
// //
@ -1680,15 +1716,15 @@ export default {
} }
}) })
// //
return [sums] return [sums]
}, },
// //
fittings_pageAdd(row) { // row fittings_pageAdd(row) { // row
const $table = this.$refs.fittings_xTable // const $table = this.$refs.fittings_xTable //
const record = { // const record = { //
} }
if (row) { // if (row) { //
this.fittings_detailsData.splice($table.getRowSeq(row), 0, record); // this.fittings_detailsData.splice($table.getRowSeq(row), 0, record); //
} else { // } else { //
this.fittings_detailsData.push(record) // this.fittings_detailsData.push(record) //
@ -1706,7 +1742,7 @@ export default {
// //
parts_onPulldownSelected({ selectedData, row }) { // selectedData row parts_onPulldownSelected({ selectedData, row }) { // selectedData row
console.log(row, selectedData); console.log(row, selectedData);
if (selectedData.spec) { // if (selectedData.spec) { //
row.spec = selectedData.spec; // row.spec = selectedData.spec; //
} }
@ -1779,9 +1815,16 @@ export default {
// //
packaging_onPulldownSelected({ row, name, params }) { packaging_onPulldownSelected({ row, name, column,params, selectedData }) {
console.log(row, name, params); console.log(row, name, params);
if (column.field == "packaging") {
if (selectedData && selectedData.default_quantity) {
row.quantity = selectedData.default_quantity; //
}
}
}, },
// //
packaging_onPopupSelected({ rows, name, params }) { packaging_onPopupSelected({ rows, name, params }) {
@ -1855,7 +1898,7 @@ export default {
}, },
// //
material_beforeEditMethod({ column, row }) { material_beforeEditMethod({ column, row }) {
console.log(row, column); console.log(row, column);
return true; return true;
}, },
// //
@ -2047,7 +2090,7 @@ export default {
console.log(rows, name, params); console.log(rows, name, params);
}, },
paintMaterial_beforeEditMethod({ column, row }) { paintMaterial_beforeEditMethod({ column, row }) {
console.log(row, column); console.log(row, column);
return true; return true;
}, },
paintMaterial_afterEditEvent({ column, row }) { paintMaterial_afterEditEvent({ column, row }) {
@ -2571,6 +2614,26 @@ export default {
return sum; return sum;
} }
//
if (name.indexOf('的厚度') > 0) {
name = this.formatName(name);
name = name.substr(0, name.length - 3);
console.log(name);
let v = 0;
this.bathroomMaterial_list.forEach(o => { //
if (name == this.formatName(o.name)) {
v = parseFloat(o.spec || 15);
}
});
return v;
}
let fun = settings.expressionsDefines[name]; let fun = settings.expressionsDefines[name];
if (!fun) { if (!fun) {
return defaultValue || 0; return defaultValue || 0;
@ -2625,7 +2688,7 @@ export default {
this.calculateRows({ detailsData: this.material_detailsData, names: ["quantity", "amount"], totalPrev: "material" }); this.calculateRows({ detailsData: this.material_detailsData, names: ["quantity", "amount"], totalPrev: "material" });
// //
this.calculateRows({ detailsData: this.labor_detailsData, names: ["amount"], totalPrev: "labor" }); this.calculateRows({ detailsData: this.labor_detailsData, names: ["amount"], totalPrev: "labor" });
// //
this.calculateRows({ detailsData: this.paintMaterial_detailsData, names: ["quantity", "amount"], totalPrev: "paintMaterial" }); this.calculateRows({ detailsData: this.paintMaterial_detailsData, names: ["quantity", "amount"], totalPrev: "paintMaterial" });
// //
this.calculateRows({ detailsData: this.paintLabor_detailsData, names: ["amount"], totalPrev: "paintLabor" }); this.calculateRows({ detailsData: this.paintLabor_detailsData, names: ["amount"], totalPrev: "paintLabor" });
@ -2634,11 +2697,11 @@ export default {
this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" }); this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" });
// //
this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" }); this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" });
console.log("this.formOptions.data.expense_total_amount:" + this.formOptions.data.expense_total_amount) console.log("this.formOptions.data.expense_total_amount:" + this.formOptions.data.expense_total_amount)
this.formOptions.data.expense = this.formOptions.data.expense_total_amount; // this.formOptions.data.expense = this.formOptions.data.expense_total_amount; //
this.formOptions.data.paint_expense = this.formOptions.data.paintExpense_total_amount; // this.formOptions.data.paint_expense = this.formOptions.data.paintExpense_total_amount; //
this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2); // this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2); //
this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2); // this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2); //

View File

@ -46,7 +46,8 @@
<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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -59,7 +60,8 @@
</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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -72,7 +74,8 @@
</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 }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -710,6 +713,9 @@ export default {
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`,
listdataFieldName: 'BathroomFittings', listdataFieldName: 'BathroomFittings',
@ -927,8 +933,10 @@ export default {
}).then(a => { }).then(a => {
this.bathroomMaterial_list = a.data.BathroomMaterial || [];
this.moreExpressionsList_material_height = [];
a.data.BathroomMaterial.forEach(o => { this.bathroomMaterial_list.forEach(o => {
this.fittings_detailsData.forEach(item => { this.fittings_detailsData.forEach(item => {
if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) { if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) {
@ -938,11 +946,22 @@ export default {
}); });
this.bathroomMaterial_list.forEach(o => { //
this.moreExpressionsList_material_height.push(this.formatName(o.name) + "的厚度");
});
}); });
}, },
getMoreExpressionsList_material_height() {
return this.moreExpressionsList_material_height;
},
loadSettings() { loadSettings() {
this.$mk.post({ this.$mk.post({
@ -1271,9 +1290,17 @@ export default {
packaging_onPulldownSelected({ row, name, params }) { //
packaging_onPulldownSelected({ row, name, column,params, selectedData }) {
console.log(row, name, params); console.log(row, name, params);
if (column.field == "packaging") {
if (selectedData && selectedData.default_quantity) {
row.quantity = selectedData.default_quantity; //
}
}
}, },
packaging_onPopupSelected({ rows, name, params }) { packaging_onPopupSelected({ rows, name, params }) {
console.log(rows, name, params); console.log(rows, name, params);
@ -1857,6 +1884,27 @@ export default {
return sum; return sum;
} }
//
if (name.indexOf('的厚度') > 0) {
name = this.formatName(name);
name = name.substr(0, name.length - 3);
console.log(name);
let v = 0;
this.bathroomMaterial_list.forEach(o => { //
if (name == this.formatName(o.name)) {
v = parseFloat(o.spec || 15);
}
});
return v;
}
let fun = settings.expressionsDefines[name]; let fun = settings.expressionsDefines[name];
if (!fun) { if (!fun) {
return defaultValue || 0; return defaultValue || 0;
@ -2075,5 +2123,4 @@ p.tip {
h3 { h3 {
font-weight: bold; font-weight: bold;
} }
} }</style>
</style>

View File

@ -7,9 +7,9 @@
<a-button type="primary" @click="ok">保存</a-button> <a-button type="primary" @click="ok">保存</a-button>
<a-button @click="selectScheme">复制方案</a-button> <a-button @click="selectScheme">复制方案</a-button>
<a-button @click="cancel">取消</a-button> <a-button @click="cancel">取消</a-button>
<a-button @click="previewScheme" >预览方案</a-button> <a-button @click="previewScheme">预览方案</a-button>
</div> </div>
<a-collapse v-model="groupbox1_activeKey"> <a-collapse v-model="groupbox1_activeKey">
@ -48,10 +48,13 @@
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column> :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="long_formula" title="长(公式)" width="220" <vxe-column field="long_formula" title="长(公式)" width="220"
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }"
:edit-render="{ name: 'EditExpressions' }"></vxe-column> :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="width_formula" title="宽(公式)" width="220" <vxe-column field="width_formula" title="宽(公式)" width="220"
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }"
:edit-render="{ name: 'EditExpressions' }"></vxe-column> :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="height_formula" title="厚(公式)" width="220" <vxe-column field="height_formula" title="厚(公式)" width="220"
:params="{ moreExpressionsList: getMoreExpressionsList_material_height }"
:edit-render="{ name: 'EditExpressions' }"></vxe-column> :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="quantity" title="数量" width="80" <vxe-column field="quantity" title="数量" width="80"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
@ -184,8 +187,7 @@
<vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef" <vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column> :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="quantity_formula" title="总用量(公式)" width="220" <vxe-column field="quantity_formula" title="总用量(公式)" width="220" :params="{ hasTotalQuantity: true }"
:params="{hasTotalQuantity:true}"
:edit-render="{ name: 'EditExpressions' }"></vxe-column> :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="price" title="单价" width="120" <vxe-column field="price" title="单价" width="120"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
@ -260,8 +262,7 @@
<vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef" <vxe-column field="material" title="材料" width="260" :params="editorMaterial2" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column> :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="quantity_formula" title="总用量(公式)" width="220" <vxe-column field="quantity_formula" title="总用量(公式)" width="220" :params="{ hasTotalQuantity: true }"
:params="{hasTotalQuantity:true}"
:edit-render="{ name: 'EditExpressions' }"></vxe-column> :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="price" title="单价" width="120" <vxe-column field="price" title="单价" width="120"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
@ -404,10 +405,10 @@ export default {
{ field: 'remark', title: '备注' } { field: 'remark', title: '备注' }
], ],
placeholder: "请输入名称", placeholder: "请输入名称",
searchFieldNames: ['name'], searchFieldNames: ['name'],
textField: 'name' textField: 'name'
}, },
editorMaterial2: { editorMaterial2: {
dataUrl: `${BASE_URL.BASE_URL}/BathroomMaterial/v1/bathroom/material/list`, dataUrl: `${BASE_URL.BASE_URL}/BathroomMaterial/v1/bathroom/material/list`,
listdataFieldName: 'BathroomMaterial', listdataFieldName: 'BathroomMaterial',
@ -417,7 +418,7 @@ export default {
], ],
placeholder: "请输入名称", placeholder: "请输入名称",
searchFieldNames: ['name'], searchFieldNames: ['name'],
extendData : [{id:'封边条', name : '封边条'}], extendData: [{ id: '封边条', name: '封边条' }],
textField: 'name' textField: 'name'
}, },
editorBanding: { editorBanding: {
@ -476,6 +477,9 @@ export default {
paintMaterial_detailsData: [], paintMaterial_detailsData: [],
paintLabor_detailsData: [], paintLabor_detailsData: [],
bathroomMaterial_list: [],//
moreExpressionsList_material_height: [],//
uploadDefaultImg: null, uploadDefaultImg: null,
detailDataFieldName: "bathroom_scheme", detailDataFieldName: "bathroom_scheme",
@ -759,24 +763,36 @@ export default {
data: { "page": 1, "limit": 100, "order_bys": [], "search_rules": [] } data: { "page": 1, "limit": 100, "order_bys": [], "search_rules": [] }
}).then(a => { }).then(a => {
a.data.BathroomMaterial.forEach(o => { this.bathroomMaterial_list = a.data.BathroomMaterial || [];
this.moreExpressionsList_material_height = [];
this.bathroomMaterial_list.forEach(o => {
this.fittings_detailsData.forEach(item => { this.fittings_detailsData.forEach(item => {
if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) { if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) {
item.material_default_height = o.spec || "15"; item.material_default_height = o.spec || "15";
} }
}); });
}); });
this.bathroomMaterial_list.forEach(o => { //
console.log(this.fittings_detailsData)
this.moreExpressionsList_material_height.push(this.formatName(o.name) + "的厚度");
});
console.log(this.fittings_detailsData)
}); });
}, },
getMoreExpressionsList_material_height() {
return this.moreExpressionsList_material_height;
},
loadSettings() { loadSettings() {
this.$mk.post({ this.$mk.post({
@ -988,9 +1004,17 @@ export default {
packaging_onPulldownSelected({ row, name, params }) { //
packaging_onPulldownSelected({ row, name, column,params, selectedData }) {
console.log(row, name, params); console.log(row, name, params);
if (column.field == "packaging") {
if (selectedData && selectedData.default_quantity) {
row.quantity = selectedData.default_quantity; //
}
}
}, },
packaging_onPopupSelected({ rows, name, params }) { packaging_onPopupSelected({ rows, name, params }) {
console.log(rows, name, params); console.log(rows, name, params);
@ -1033,7 +1057,7 @@ export default {
}, },
material_beforeEditMethod({ column, row }) { material_beforeEditMethod({ column, row }) {
console.log(row, column); console.log(row, column);
return true; return true;
}, },
material_afterEditEvent({ column, row }) { material_afterEditEvent({ column, row }) {
@ -1103,7 +1127,7 @@ export default {
paintMaterial_beforeEditMethod({ column, row }) { paintMaterial_beforeEditMethod({ column, row }) {
console.log(row, column); console.log(row, column);
return true; return true;
}, },
paintMaterial_afterEditEvent({ column, row }) { paintMaterial_afterEditEvent({ column, row }) {
@ -1433,7 +1457,7 @@ export default {
this.modalVisible = true; this.modalVisible = true;
this.scheme_load(); this.scheme_load();
}, },
previewScheme(){ previewScheme() {
let dataId = this.getDataId(); let dataId = this.getDataId();
this.$openPage("/BathroomQuotation/BathroomQuotationUpdate/d" + dataId); // this.$openPage("/BathroomQuotation/BathroomQuotationUpdate/d" + dataId); //
}, },

View File

@ -15,7 +15,7 @@
</div> </div>
<h4>选择变量</h4> <h4>选择变量</h4>
<ul> <ul>
<li v-for="item in expressions_list" :key="item"> <li v-for="(item,index) in expressions_list" :key="index">
<a @click="addText(item)">{{ item }}</a> <a @click="addText(item)">{{ item }}</a>
</li> </li>
</ul> </ul>
@ -107,6 +107,10 @@ export default {
} }
} }
if (column.params && typeof(column.params.moreExpressionsList)=="function") {
this.expressions_list = [ ... this.expressions_list,...column.params.moreExpressionsList()]
}
}, },
formatName(v) { formatName(v) {
return (v || "").replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", ""); return (v || "").replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", "");

View File

@ -131,6 +131,14 @@ var config = {
return row.height; return row.height;
}, },
"无妨布袋的默认单价" : ({ data }) => {
if(data.main_cabinet_length +60 < 1000){
return 3;
}
return 4;
},
}, },