diff --git a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue
index defa34e..c741982 100644
--- a/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue
+++ b/src/pages/Middle/bathroom/BathroomQuotation/BathroomQuotation/Edit.vue
@@ -29,6 +29,7 @@
+ 重新加载方案
@@ -75,7 +76,7 @@
:edit-render="{ name: 'MkGridDataSelector' }">
+ :params="{ moreExpressionsList: getMoreExpressionsList }">
@@ -89,7 +90,7 @@
+ :params="{ moreExpressionsList: getMoreExpressionsList }">
@@ -103,7 +104,7 @@
+ :params="{ moreExpressionsList: getMoreExpressionsList }">
@@ -727,6 +728,8 @@
移除
+ 重新加载方案
+
@@ -911,8 +914,9 @@ export default {
paintMaterial_detailsData: [], // 油漆材料
paintLabor_detailsData: [], // 油漆人工
bathroomMaterial_list: [],//材料的数据
- moreExpressionsList_material_height:[],//材料的厚度 变量列表
-
+ fittings_list: [],//材料的数据
+ moreExpressionsList_material_height: [],//材料的厚度 变量列表
+ moreExpressionsList_fittings: [],
expense_detailsData: [ // 费用结算
{
item_name: "材料小计", amount_formula: "{免漆材料总费用}+{配件总费用}+{包装总费用}"
@@ -1210,7 +1214,7 @@ export default {
this.drawer_detailsData = JSON.parse(data.drawer_list || "[]"); // 抽屉
this.materialHeightInit(); // 初始化材料高度
-
+ this.fittingsListInit();
this.detailDataInit(); // 初始化详情数据
@@ -1240,7 +1244,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({ // 获取材料列表
@@ -1253,7 +1277,7 @@ export default {
this.bathroomMaterial_list.forEach(o => { // 遍历材料列表
this.fittings_detailsData.forEach(item => { // 遍历部件列表
-
+
if (item.material && item.material[0] && item.material[0].toString() == o.id.toString()) { // 如果部件的材料id和材料列表的id相同
@@ -1265,16 +1289,16 @@ export default {
this.bathroomMaterial_list.forEach(o => { // 遍历材料列表
-
- this.moreExpressionsList_material_height.push(this.formatName(o.name) +"的厚度");
+
+ this.moreExpressionsList_material_height.push(this.formatName(o.name) + "的厚度");
});
});
},
- getMoreExpressionsList_material_height(){
- return this.moreExpressionsList_material_height;
+ getMoreExpressionsList() {
+ return [...this.moreExpressionsList_material_height, ...this.moreExpressionsList_fittings]
},
@@ -1412,7 +1436,72 @@ export default {
this.modalVisible = false; // 隐藏模态框
},
+ reloadMain() {
+ if (!this.fittings_detailsData.length) {
+ return;
+ }
+ let scheme_id = this.fittings_detailsData[0].scheme_id;
+ this.loadSchemeDataById(scheme_id);
+ },
+ reloadDrawer(index) {
+ let drawer_detailData = this.drawer_detailsData[index];
+ if (!drawer_detailData.scheme_id) return;
+ const json = `{"id":${drawer_detailData.scheme_id}}`; // 构造json
+ this.$mk.post({ // 获取详情数据
+ url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detail`, // 详情接口地址
+ loading: "加载中...",
+ data: json,
+ config: {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }
+ }).then(a => {
+ let row = a.data.bathroom_scheme; // 重新加载方案数据
+
+
+ let fittingsList = JSON.parse(row.fittingsList || "[]"); // 获取部件列表
+ fittingsList = fittingsList.filter(a => a.fittings && a.fittings[0]); // 过滤部件列表
+ let partsList = JSON.parse(row.partsList || "[]"); // 获取配件列表
+ partsList = partsList.filter(a => a.parts && a.parts[0]); // 过滤配件列表
+ let packagingList = JSON.parse(row.packagingList || "[]"); // 获取包装列表
+ packagingList = packagingList.filter(a => a.packaging && a.packaging[0]); // 过滤包装列表
+
+ let laborList = JSON.parse(row.laborList || "[]"); // 获取人工列表
+ laborList = laborList.filter(a => a.labor && a.labor[0]); // 过滤人工列表
+ let materialList = JSON.parse(row.materialList || "[]"); // 获取材料列表
+ materialList = materialList.filter(a => a.material && a.material[0]); // 过滤材料列表
+
+
+ let paintLaborList = JSON.parse(row.paintLaborList || "[]"); // 获取油漆人工列表
+ paintLaborList = paintLaborList.filter(a => a.labor && a.labor[0]); // 过滤油漆人工列表
+ let paintMaterialList = JSON.parse(row.paintMaterialList || "[]"); // 获取油漆材料列表
+ paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表
+
+
+ let updateToList = ({ sourceList, targetList }) => {
+ sourceList.forEach(item => {
+ let oldItem = targetList.filter(a => a.id == item.id);
+ if (oldItem.length) { // 如果有原来行
+ //覆盖 更新 原来行的数据
+ Object.assign(oldItem[0], item);
+ }
+ });
+
+ };
+ updateToList({ sourceList: fittingsList, targetList: drawer_detailData.fittingsList })
+ updateToList({ sourceList: partsList, targetList: drawer_detailData.partsList })
+ updateToList({ sourceList: packagingList, targetList: drawer_detailData.packagingList })
+ updateToList({ sourceList: laborList, targetList: drawer_detailData.laborList })
+ updateToList({ sourceList: materialList, targetList: drawer_detailData.materialList })
+ updateToList({ sourceList: paintLaborList, targetList: drawer_detailData.paintLaborList })
+ updateToList({ sourceList: paintMaterialList, targetList: drawer_detailData.paintMaterialList })
+
+ this.calculateAll();
+
+ });
+ },
loadSchemeDataById(dataId) { // 加载方案数据
const json = `{"id":${dataId}}`; // 构造json
this.$mk.post({ // 获取详情数据
@@ -1455,6 +1544,7 @@ export default {
if (row.type != settings.schemeType_main) { //抽屉 如果不是主柜
this.drawer_detailsData.push({ // 添加抽屉数据
+ scheme_id: scheme_id,
name: row.name, // 名称
quantity: 1, // 数量
fittingsList, // 部件列表
@@ -1468,7 +1558,8 @@ export default {
this.materialHeightInit(); // 初始化材料高度
-
+ this.fittingsListInit();
+ this.tabKey = this.drawer_detailsData.length - 1;
this.$forceUpdate(); // 强制更新
} else { //主柜
@@ -1484,7 +1575,7 @@ export default {
this.materialHeightInit(); // 初始化材料高度
-
+ this.fittingsListInit();
this.calculateAll(); // 计算所有数据
@@ -1661,9 +1752,9 @@ export default {
}
},
// 部件弹出选择事件
- fittings_onPopupSelected({ rows, name, params }) { // rows 当前行 name 当前列 params 参数
+ fittings_onPopupSelected({ rows, name, params }) { // rows 当前行 name 当前列 params 参数
console.log(rows, name, params); // 打印参数
-
+
},
// 部件编辑前事件
fittings_beforeEditMethod({ column, row }) { // column 当前列 row 当前行
@@ -1815,14 +1906,14 @@ export default {
// 包装下拉选择事件
- packaging_onPulldownSelected({ row, name, column,params, selectedData }) {
+ packaging_onPulldownSelected({ row, name, column, params, selectedData }) {
console.log(row, name, params);
if (column.field == "packaging") {
if (selectedData && selectedData.default_quantity) {
row.quantity = selectedData.default_quantity; // 设置默认数量
- row.quantity_formula = selectedData.default_quantity;
+ row.quantity_formula = selectedData.default_quantity;
}
}
@@ -2459,7 +2550,7 @@ export default {
}
});
},
- // 保存
+ // 保存update
ok() {
let save = () => {
@@ -2471,6 +2562,7 @@ export default {
let postdata = Object.assign({}, this.formOptions.data);
// 如果是编辑模式
if (this.isEdit) {
+ postdata.id = this.$mk.toBigInt(postdata.id)
// postdata = { BathroomQuotation: postdata }
}
@@ -2624,9 +2716,9 @@ export default {
let v = 0;
this.bathroomMaterial_list.forEach(o => { // 遍历材料列表
- if (name == this.formatName(o.name)) {
+ if (name == this.formatName(o.name)) {
- v = parseFloat(o.spec || 15);
+ v = parseFloat(o.spec || 15);
}
@@ -2634,6 +2726,25 @@ 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];
if (!fun) {
@@ -2684,7 +2795,7 @@ export default {
// 计算所有 配件
this.calculateRows({ detailsData: this.parts_detailsData, names: ["amount"], totalPrev: "parts" });
// 计算所有 包装
- this.calculateRows({ detailsData: this.packaging_detailsData, names: ["long", "width", "height", "quantity", "amount"], totalPrev: "packaging" });
+ this.calculateRows({ detailsData: this.packaging_detailsData, names: ["long", "width", "height", "quantity", "amount", "price"], totalPrev: "packaging" });
// 计算所有 材料
this.calculateRows({ detailsData: this.material_detailsData, names: ["quantity", "amount"], totalPrev: "material" });
// 计算所有 人工