|
@@ -23,7 +23,10 @@ interface WidgetTableItem {
|
|
|
interface defaultState {
|
|
|
tableData: any;
|
|
|
oriTableData: WidgetTableItem[];
|
|
|
+ newTableData: WidgetTableItem[];
|
|
|
enumMap: any;
|
|
|
+ // tabldId: number;
|
|
|
+ bednet_qingdan: any;
|
|
|
}
|
|
|
|
|
|
interface wfQingdanProps {
|
|
@@ -38,13 +41,20 @@ interface wfQingdanProps {
|
|
|
*/
|
|
|
fabricMx?: any;
|
|
|
formulakindenum?: any;
|
|
|
+ dannum_type?: number;
|
|
|
+ formula?: any;
|
|
|
+ // replace?: any;
|
|
|
+ // formula_ori?: any;
|
|
|
+ differ?: any;
|
|
|
}
|
|
|
|
|
|
export const useHooksCpQuote = (t?: any) => {
|
|
|
const { userInfo } = useUserStore();
|
|
|
|
|
|
const state = reactive<defaultState>({
|
|
|
+ // tabldId: 0,
|
|
|
tableData: [],
|
|
|
+ bednet_qingdan: [],
|
|
|
oriTableData: [
|
|
|
{
|
|
|
label: "核价编码",
|
|
@@ -114,6 +124,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
price: ""
|
|
|
}
|
|
|
],
|
|
|
+ newTableData: [],
|
|
|
enumMap: null
|
|
|
});
|
|
|
|
|
@@ -121,13 +132,18 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
return formatAmount3({ val: data });
|
|
|
};
|
|
|
|
|
|
- const wf_retrieve_qingdan_bednet = async (data: any) => {
|
|
|
+ const wf_retrieve_qingdan_bednet = async (data: any, index: any) => {
|
|
|
const { getDataMxAdd, getDataMxSpring, dataCallback } = useHooks(t);
|
|
|
let s_bednet_qingdan = [];
|
|
|
+ let bednet_qingdan_item = [];
|
|
|
+ let default_bednet_qingdan = {
|
|
|
+ level: "车间成本",
|
|
|
+ group: `床网${index + 1}-总材料成本`
|
|
|
+ };
|
|
|
|
|
|
// let bednetMxData = [];
|
|
|
// let bednetMxSpringData = [];
|
|
|
- console.log("data :>> ", data);
|
|
|
+ console.log("wf_retrieve_qingdan_bednet data :>> ", data);
|
|
|
let res = await getDataMxAdd({ arg_bednetid: data.list[0].bednetid });
|
|
|
let mxResult = dataCallback(res);
|
|
|
console.log("wf_retrieve_qingdan_bednet mxResult :>> ", mxResult);
|
|
@@ -209,7 +225,6 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
useqty: 0
|
|
|
};
|
|
|
|
|
|
- console.log("mxResult.list[0].if_part :>> ", mxResult.list[0].if_part, springResult);
|
|
|
//弹簧线径/高度/口径/中心直径/圈数
|
|
|
if (Number(mxResult.list[0].if_part) == 0) {
|
|
|
item.pznamemx = mxResult.list[0].springname;
|
|
@@ -243,6 +258,23 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
ls_弹簧 = ls_t_temp + "/" + ls_right;
|
|
|
}
|
|
|
s_bednet_qingdan.push(item);
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "弹簧";
|
|
|
+ result.dscrp = ls_弹簧;
|
|
|
+ result.costamt = mxResult.list[0].spring_mtrl_cost;
|
|
|
+ result.costamt_1 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].spring_mtrl_cost ?? 0, 1 + mxResult.list[0].dannum1_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_2 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].spring_mtrl_cost ?? 0, 1 + mxResult.list[0].dannum2_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_3 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].spring_mtrl_cost ?? 0, 1 + mxResult.list[0].dannum3_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_4 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].spring_mtrl_cost ?? 0, 1 + mxResult.list[0].dannum4_rate) })
|
|
|
+ );
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
console.log("s_bednet_qingdan ls_弹簧:>> ", ls_弹簧);
|
|
|
|
|
|
//多区弹簧/高度/口径/中心直径/圈数
|
|
@@ -273,6 +305,16 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
if (Number(mxResult.list[0].side_iron_qty) > 0) {
|
|
|
item.pznamemx = mxResult.list[0].side_iron_qty + "条";
|
|
|
ls_边铁 = Number(mxResult.list[0].side_iron_qty) + "条边铁";
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "边铁";
|
|
|
+ result.dscrp = ls_边铁;
|
|
|
+ result.costamt = mxResult.list[0].side_iron_mtrl_cost;
|
|
|
+ result.costamt_1 = mxResult.list[0].side_iron_mtrl_cost;
|
|
|
+ result.costamt_2 = mxResult.list[0].side_iron_mtrl_cost;
|
|
|
+ result.costamt_3 = mxResult.list[0].side_iron_mtrl_cost;
|
|
|
+ result.costamt_4 = mxResult.list[0].side_iron_mtrl_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_边铁 = "无边铁";
|
|
|
}
|
|
@@ -288,13 +330,33 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
if (Number(mxResult.list[0].fabrics2_mtrlid) > 0) {
|
|
|
let enumItem = mxResult.tableinfo.columns.find((item: any) => item.field == "fabrics2_mtrlid");
|
|
|
let _pznamemx = "";
|
|
|
+ let enumItem_enum = null;
|
|
|
|
|
|
console.log("fabrics2_mtrlid enumItem :>> ", enumItem);
|
|
|
if (enumItem) {
|
|
|
- _pznamemx = enumItem.enum.find((item: any) => item.value == mxResult.list[0].fabrics2_mtrlid)?.label;
|
|
|
+ enumItem_enum = enumItem.enum.find((item: any) => item.value == mxResult.list[0].fabrics2_mtrlid);
|
|
|
+ _pznamemx = enumItem_enum?.label;
|
|
|
}
|
|
|
item.pznamemx = _pznamemx;
|
|
|
ls_底面无纺布 = _pznamemx;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "底面无纺布";
|
|
|
+ result.dscrp = ls_底面无纺布;
|
|
|
+ result.costamt = mxResult.list[0].fabrics2_mtrl_cost;
|
|
|
+ result.costamt_1 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics2_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum1_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_2 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics2_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum2_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_3 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics2_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum3_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_4 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics2_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum4_rate) })
|
|
|
+ );
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_底面无纺布 = "";
|
|
|
}
|
|
@@ -308,14 +370,35 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
amt: 0,
|
|
|
useqty: 0
|
|
|
};
|
|
|
+ console.log("Number(data.list[0].fabrics1_mtrlid) :>> ", Number(mxResult.list[0].fabrics1_mtrlid), mxResult.list[0]);
|
|
|
if (Number(mxResult.list[0].fabrics1_mtrlid) > 0) {
|
|
|
let enumItem = mxResult.tableinfo.columns.find((item: any) => item.field == "fabrics1_mtrlid");
|
|
|
+ let enumItem_enum = null;
|
|
|
let _pznamemx = "";
|
|
|
if (enumItem) {
|
|
|
- _pznamemx = enumItem.enum.find((item: any) => item.value == mxResult.list[0].fabrics1_mtrlid)?.label;
|
|
|
+ enumItem_enum = enumItem.enum.find((item: any) => item.value == mxResult.list[0].fabrics1_mtrlid);
|
|
|
+ _pznamemx = enumItem_enum?.label;
|
|
|
}
|
|
|
item.pznamemx = _pznamemx;
|
|
|
ls_入袋无纺布 = _pznamemx;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "入袋无纺布";
|
|
|
+ result.dscrp = ls_入袋无纺布;
|
|
|
+ result.costamt = mxResult.list[0].fabrics1_mtrl_cost;
|
|
|
+ result.costamt_1 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics1_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum1_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_2 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics1_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum2_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_3 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics1_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum3_rate) })
|
|
|
+ );
|
|
|
+ result.costamt_4 = isFilterPrice(
|
|
|
+ formatCutNumber({ val: floatMul(mxResult.list[0].fabrics1_mtrl_cost ?? 0, 1 + enumItem_enum?.dannum4_rate) })
|
|
|
+ );
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_入袋无纺布 = "";
|
|
|
}
|
|
@@ -328,9 +411,19 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
amt: 0,
|
|
|
useqty: 0
|
|
|
};
|
|
|
- if (data.list[0].mtrl_felt_name) {
|
|
|
+ if (Number(data.list[0].felt_mtrlid) > 0) {
|
|
|
item.pznamemx = data.list[0].mtrl_felt_name;
|
|
|
ls_上垫层物料 = data.list[0].mtrl_felt_name;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "上垫层物料";
|
|
|
+ result.dscrp = ls_上垫层物料;
|
|
|
+ result.costamt = data.list[0].felt_mtrl_cost;
|
|
|
+ result.costamt_1 = data.list[0].felt_mtrl_cost;
|
|
|
+ result.costamt_2 = data.list[0].felt_mtrl_cost;
|
|
|
+ result.costamt_3 = data.list[0].felt_mtrl_cost;
|
|
|
+ result.costamt_4 = data.list[0].felt_mtrl_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_上垫层物料 = "";
|
|
|
}
|
|
@@ -343,9 +436,19 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
amt: 0,
|
|
|
useqty: 0
|
|
|
};
|
|
|
- if (data.list[0].mtrl_felt_x_name) {
|
|
|
+ if (Number(data.list[0].felt_x_mtrlid) > 0) {
|
|
|
item.pznamemx = data.list[0].mtrl_felt_x_name;
|
|
|
ls_下垫层物料 = data.list[0].mtrl_felt_x_name;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "下垫层物料";
|
|
|
+ result.dscrp = ls_下垫层物料;
|
|
|
+ result.costamt = data.list[0].felt_mtrl_x_cost;
|
|
|
+ result.costamt_1 = data.list[0].felt_mtrl_x_cost;
|
|
|
+ result.costamt_2 = data.list[0].felt_mtrl_x_cost;
|
|
|
+ result.costamt_3 = data.list[0].felt_mtrl_x_cost;
|
|
|
+ result.costamt_4 = data.list[0].felt_mtrl_x_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_下垫层物料 = "";
|
|
|
}
|
|
@@ -374,6 +477,16 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
};
|
|
|
if (Number(mxResult.list[0].if_hard_around) > 0) {
|
|
|
item.pznamemx = mxResult.list[0].hard_around_springname;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "四周加硬弹簧";
|
|
|
+ result.dscrp = mxResult.list[0].hard_around_springname;
|
|
|
+ result.costamt = mxResult.list[0].hard_around_mtrl_cost;
|
|
|
+ result.costamt_1 = mxResult.list[0].hard_around_mtrl_cost;
|
|
|
+ result.costamt_2 = mxResult.list[0].hard_around_mtrl_cost;
|
|
|
+ result.costamt_3 = mxResult.list[0].hard_around_mtrl_cost;
|
|
|
+ result.costamt_4 = mxResult.list[0].hard_around_mtrl_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
}
|
|
|
s_bednet_qingdan.push(item);
|
|
|
|
|
@@ -387,6 +500,16 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
if (data.list[0].mtrl_sponge_name) {
|
|
|
item.pznamemx = data.list[0].mtrl_sponge_name;
|
|
|
ls_海绵包边物料 = data.list[0].sponge_thickness + "分" + data.list[0].sponge_height + "高" + data.list[0].mtrl_sponge_name;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "海绵包边物料:" + data.list[0].mtrl_sponge_name;
|
|
|
+ result.dscrp = ls_海绵包边物料;
|
|
|
+ result.costamt = data.list[0].sponge_mtrl_cost;
|
|
|
+ result.costamt_1 = data.list[0].sponge_mtrl_cost;
|
|
|
+ result.costamt_2 = data.list[0].sponge_mtrl_cost;
|
|
|
+ result.costamt_3 = data.list[0].sponge_mtrl_cost;
|
|
|
+ result.costamt_4 = data.list[0].sponge_mtrl_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
}
|
|
|
s_bednet_qingdan.push(item);
|
|
|
|
|
@@ -413,6 +536,16 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
item.pznamemx = data.list[0].mtrl_sponge_tc_name;
|
|
|
ls_填充海绵物料 =
|
|
|
data.list[0].sponge_tc_thickness + "分" + data.list[0].sponge_tc_height + "高" + data.list[0].mtrl_sponge_tc_name;
|
|
|
+
|
|
|
+ let result = cloneDeep(default_bednet_qingdan);
|
|
|
+ result.label = "填充海绵物料:" + data.list[0].mtrl_sponge_tc_name;
|
|
|
+ result.dscrp = ls_填充海绵物料;
|
|
|
+ result.costamt = data.list[0].sponge_mtrl_tc_cost;
|
|
|
+ result.costamt_1 = data.list[0].sponge_mtrl_tc_cost;
|
|
|
+ result.costamt_2 = data.list[0].sponge_mtrl_tc_cost;
|
|
|
+ result.costamt_3 = data.list[0].sponge_mtrl_tc_cost;
|
|
|
+ result.costamt_4 = data.list[0].sponge_mtrl_tc_cost;
|
|
|
+ bednet_qingdan_item.push(result);
|
|
|
} else {
|
|
|
ls_填充海绵物料 = "";
|
|
|
}
|
|
@@ -525,8 +658,8 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
amt: 0,
|
|
|
useqty: 0
|
|
|
};
|
|
|
- if (Number(mxResult.list[0].pocket_around_row) > 0) {
|
|
|
- item.pznamemx = mxResult.list[0].pocket_around_row + "排";
|
|
|
+ if (Number(data.list[0].pocket_around_row) > 0) {
|
|
|
+ item.pznamemx = data.list[0].pocket_around_row + "排";
|
|
|
}
|
|
|
s_bednet_qingdan.push(item);
|
|
|
|
|
@@ -537,8 +670,8 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
amt: 0,
|
|
|
useqty: 0
|
|
|
};
|
|
|
- if (Number(mxResult.list[0].if_pocket_around) > 0) {
|
|
|
- item.pznamemx = mxResult.list[0].pocket_around_springname;
|
|
|
+ if (Number(data.list[0].if_pocket_around) > 0) {
|
|
|
+ item.pznamemx = data.list[0].pocket_around_springname;
|
|
|
}
|
|
|
s_bednet_qingdan.push(item);
|
|
|
|
|
@@ -547,7 +680,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
//床网类型丨规格丨排列丨高度丨单/多区丨线径丨边铁丨海绵包边丨四周加硬丨弹叉丨底面物料
|
|
|
let ls_temp_name = s_bednet_qingdan[1].pznamemx + "丨" + s_bednet_qingdan[3].pznamemx + "丨" + s_bednet_qingdan[4].pznamemx; // + s_bednet_qingdan[3].pznamemx + '丨'
|
|
|
|
|
|
- if (Number(mxResult.list[0].if_part) > 0) {
|
|
|
+ if (Number(data.list[0].if_part) > 0) {
|
|
|
ls_temp_name += "丨" + data.list[0].duo_qv_str + "区";
|
|
|
} else {
|
|
|
if (s_bednet_qingdan[5].pznamemx != "") {
|
|
@@ -557,7 +690,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (Number(mxResult.list[0].if_part) > 0) {
|
|
|
+ if (Number(data.list[0].if_part) > 0) {
|
|
|
ls_区区 = data.list[0].duo_qv_str + "区";
|
|
|
} else {
|
|
|
ls_区区 = "单区";
|
|
@@ -665,11 +798,14 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
s_bednet_qingdan[0].amt = data.list[0].nottax_factory_cost;
|
|
|
s_bednet_qingdan[0].useqty = 0;
|
|
|
|
|
|
+ state.bednet_qingdan.push(bednet_qingdan_item);
|
|
|
+
|
|
|
console.log("s_bednet_qingdan :>> ", s_bednet_qingdan);
|
|
|
+ console.log("bednet_qingdan_item :>> ", bednet_qingdan_item);
|
|
|
return s_bednet_qingdan;
|
|
|
};
|
|
|
|
|
|
- const f_get_bednet_qingdan = async (bednetid: any) => {
|
|
|
+ const f_get_bednet_qingdan = async (bednetid: any, index: any) => {
|
|
|
if (!Number(bednetid)) return [];
|
|
|
let _params = {
|
|
|
dsname: "web_bednet_define",
|
|
@@ -711,17 +847,130 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
throw new Error(_data.bednetcode + ", pricelistid错误!");
|
|
|
}
|
|
|
|
|
|
- let rtStr = await wf_retrieve_qingdan_bednet(result);
|
|
|
+ let rtStr = await wf_retrieve_qingdan_bednet(result, index);
|
|
|
|
|
|
//带上erpcode?
|
|
|
return rtStr;
|
|
|
};
|
|
|
|
|
|
+ /**
|
|
|
+ * @description 新报价清单列
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ const set_new_table_data = (params: any) => {
|
|
|
+ let { data, mxdata, fabricMx, formulakindenum, enumMap } = params;
|
|
|
+
|
|
|
+ console.log("set_new_table_data params :>> ", params);
|
|
|
+
|
|
|
+ let arr = [];
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description 车间成本
|
|
|
+ */
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【车间成本】", "床垫-"));
|
|
|
+
|
|
|
+ let cushionsItem = mxdata.find((itm: any) => itm.field == "cushions");
|
|
|
+ if (cushionsItem) {
|
|
|
+ if (cushionsItem.data.bednet.length > 0) {
|
|
|
+ cushionsItem.data.bednet.map((itm: any, index: any) => {
|
|
|
+ if (itm.mtrlid > 0) {
|
|
|
+ arr = arr.concat(
|
|
|
+ init_new_formula_item(
|
|
|
+ { ...params, formula: params.formula_bednet },
|
|
|
+ "【车间成本】",
|
|
|
+ `床网${index + 1}-`,
|
|
|
+ "replace_bednet"
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // arr = arr.concat(
|
|
|
+ // init_new_formula_item({ ...params, formula: params.formula_bednet }, "【车间成本】", "床网-", "replace_bednet")
|
|
|
+ // );
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【不含税出厂价】"));
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【部门不含税价】"));
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【部门含税价】"));
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【外币价】"));
|
|
|
+ arr = arr.concat(init_new_formula_item(params, "【佣金】"));
|
|
|
+
|
|
|
+ console.log("set_new_table_data arr :>> ", arr);
|
|
|
+ return arr;
|
|
|
+ };
|
|
|
+
|
|
|
+ const init_new_formula_item = ({ formula, differ, dannum_type }: any, target: string, prefix = "", replaceKey = "replace") => {
|
|
|
+ let formulaItem = formula.find((item: any) => item.label == target);
|
|
|
+ console.log("init_new_formula_item formulaItem :>> ", formulaItem);
|
|
|
+ let arr = [];
|
|
|
+ let item = {
|
|
|
+ level: target.replace("【", "").replace("】", ""),
|
|
|
+ group: "",
|
|
|
+ label: "",
|
|
|
+ dscrp: "",
|
|
|
+ qty: "",
|
|
|
+ costamt: "",
|
|
|
+ costamt_1: "",
|
|
|
+ costamt_2: "",
|
|
|
+ costamt_3: "",
|
|
|
+ costamt_4: "",
|
|
|
+ useqty: "",
|
|
|
+ price: ""
|
|
|
+ };
|
|
|
+ if (formulaItem) {
|
|
|
+ let reg = /\【(.*?)\】/g;
|
|
|
+ let formulaItemArr = formulaItem.value.match(reg);
|
|
|
+
|
|
|
+ if (formulaItemArr.length) {
|
|
|
+ formulaItemArr.map(fName => {
|
|
|
+ let _item = {
|
|
|
+ level: target.replace("【", "").replace("】", ""),
|
|
|
+ group: prefix + fName.replace("【", "").replace("】", ""),
|
|
|
+ label: "",
|
|
|
+ dscrp: "",
|
|
|
+ qty: "",
|
|
|
+ costamt: "",
|
|
|
+ costamt_1: "",
|
|
|
+ costamt_2: "",
|
|
|
+ costamt_3: "",
|
|
|
+ costamt_4: "",
|
|
|
+ useqty: "",
|
|
|
+ price: ""
|
|
|
+ };
|
|
|
+ differ.map((itm: any) => {
|
|
|
+ let _valueReplace = itm[replaceKey].find((t: any) => t.label == fName);
|
|
|
+ _item["costamt_" + itm.type] = isFilterPrice(_valueReplace?.value ?? 0);
|
|
|
+ if (dannum_type == itm.type) {
|
|
|
+ _item.costamt = isFilterPrice(_valueReplace?.value ?? 0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ arr.push(_item);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ differ.map((itm: any) => {
|
|
|
+ let _valueReplace = itm[replaceKey].find((t: any) => t.label == target);
|
|
|
+ item["costamt_" + itm.type] = isFilterPrice(_valueReplace?.value ?? 0);
|
|
|
+ if (dannum_type == itm.type) {
|
|
|
+ item.costamt = isFilterPrice(_valueReplace?.value ?? 0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ item.group = "小计";
|
|
|
+ console.log("item :>> ", item);
|
|
|
+ arr.push(item);
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
+ };
|
|
|
+
|
|
|
/**
|
|
|
* @description 刷新报价清单
|
|
|
*/
|
|
|
- const wf_retrieve_qingdan = async (params: wfQingdanProps) => {
|
|
|
+ const wf_retrieve_qingdan = async (params: wfQingdanProps, isNew?: boolean, ifExpandAll?: boolean) => {
|
|
|
let { data, mxdata, fabricMx, formulakindenum, enumMap } = params;
|
|
|
+ state.bednet_qingdan = [];
|
|
|
+ let _isNew = isNew ?? false;
|
|
|
+ let _ifExpandAll = ifExpandAll ?? false;
|
|
|
state.enumMap = enumMap;
|
|
|
state.tableData = [];
|
|
|
let _tData = cloneDeep(state.oriTableData);
|
|
@@ -734,8 +983,20 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
return item;
|
|
|
});
|
|
|
|
|
|
+ console.log("wf_retrieve_qingdan isNew :>> ", isNew);
|
|
|
+ if (_isNew) {
|
|
|
+ state.tableData = set_new_table_data(params);
|
|
|
+ }
|
|
|
+
|
|
|
console.log("mxdata data:>> ", mxdata, data);
|
|
|
let _mxitm = null;
|
|
|
+ let level_mattress = "车间成本";
|
|
|
+ let group_mattress = "床垫-总材料成本";
|
|
|
+ let result_default: any = {
|
|
|
+ level: level_mattress,
|
|
|
+ group: group_mattress
|
|
|
+ };
|
|
|
+ let mattressArr: any = [];
|
|
|
for (let index = 0; index < mxdata.length; index++) {
|
|
|
let item = mxdata[index];
|
|
|
switch (item.field) {
|
|
@@ -747,7 +1008,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
_mxitm = fabricMx.find(t => t.name == item.field);
|
|
|
item.data.map(itm => {
|
|
|
if ((Number(itm.mtrlid ?? 0) > 0 || Number(itm.costamt ?? 0) != 0) && _mxitm.type.includes(Number(itm.formulakind))) {
|
|
|
- let result: any = {};
|
|
|
+ let result: any = cloneDeep(result_default);
|
|
|
result.label = itm.chastr != "" ? itm.chastr : item.label;
|
|
|
let _formulaName = "";
|
|
|
if (formulakindenum) {
|
|
@@ -773,7 +1034,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
result.price = isFilterPrice(itm.price ?? 0);
|
|
|
}
|
|
|
result.index = index;
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -784,7 +1045,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
(Number(itm.mtrlid ?? 0) > 0 || Number(itm.costamt ?? 0) != 0) &&
|
|
|
!_mxitm.type.includes(Number(itm.formulakind))
|
|
|
) {
|
|
|
- let result: any = {};
|
|
|
+ let result: any = cloneDeep(result_default);
|
|
|
// result.label = itm.label;
|
|
|
result.label = "其他工艺";
|
|
|
let _formulaName = "";
|
|
@@ -809,7 +1070,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
result.price = isFilterPrice(itm.price ?? 0);
|
|
|
}
|
|
|
result.index = index;
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -824,7 +1085,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
for (let k = 0; k < item.data.cushions.length; k++) {
|
|
|
let itm = item.data.cushions[k];
|
|
|
if (Number(itm.mtrlid ?? 0) > 0 || Number(itm.costamt ?? 0) != 0 || [999].includes(Number(itm.formulakind))) {
|
|
|
- let result: any = {};
|
|
|
+ let result: any = cloneDeep(result_default);
|
|
|
let _formulaName = "";
|
|
|
if (formulakindenum) {
|
|
|
_formulaName = formulakindenum.find(t => t.value == itm.formulakind)?.label ?? "";
|
|
@@ -849,7 +1110,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
}
|
|
|
|
|
|
result.index = _index;
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
} else {
|
|
|
// 999是床网
|
|
|
|
|
@@ -863,7 +1124,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
if (item.data.bednet.length == 1) {
|
|
|
//单床网
|
|
|
ll_bednetid = item.data.bednet[0].mtrlid;
|
|
|
- let s_bednet_qingdan = await f_get_bednet_qingdan(ll_bednetid);
|
|
|
+ let s_bednet_qingdan = await f_get_bednet_qingdan(ll_bednetid, 0);
|
|
|
console.log("cushions item.data.bednet s_bednet_qingdan :>> ", s_bednet_qingdan);
|
|
|
if (s_bednet_qingdan.length) {
|
|
|
result.dscrp = s_bednet_qingdan[0].pznamemx;
|
|
@@ -878,7 +1139,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
//多床网
|
|
|
ll_bednetid = item.data.bednet[bendet999Index].mtrlid;
|
|
|
console.log("f_get_bednet_qingdan t ll_bednetid:>> ", bendet999Index, item.data.bednet[bendet999Index]);
|
|
|
- let s_bednet_qingdan = await f_get_bednet_qingdan(ll_bednetid);
|
|
|
+ let s_bednet_qingdan = await f_get_bednet_qingdan(ll_bednetid, bendet999Index);
|
|
|
if (s_bednet_qingdan.length) {
|
|
|
result.dscrp = s_bednet_qingdan[0].pznamemx;
|
|
|
result.qty = 1;
|
|
@@ -895,12 +1156,12 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
|
|
|
result.index = _index;
|
|
|
// 查找数组中,从结尾数起最后出现的index=_index的元素的索引,在起后面插入result
|
|
|
- let _arrData = cloneDeep(state.tableData);
|
|
|
+ let _arrData = cloneDeep(mattressArr);
|
|
|
let _last = _arrData.reverse().findIndex(t => t.index == _index);
|
|
|
if (_last == -1) {
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
} else {
|
|
|
- state.tableData.splice(state.tableData.length - _last, 0, result);
|
|
|
+ mattressArr.splice(mattressArr.length - _last, 0, result);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -911,7 +1172,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
case "accessories": // 辅料
|
|
|
item.data.map(itm => {
|
|
|
if (Number(itm.mtrlid ?? 0) > 0 || Number(itm.costamt ?? 0) != 0) {
|
|
|
- let result: any = {};
|
|
|
+ let result: any = cloneDeep(result_default);
|
|
|
result.label = itm.label;
|
|
|
let _formulaName = "";
|
|
|
if (formulakindenum) {
|
|
@@ -935,7 +1196,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
result.price = isFilterPrice(itm.price ?? 0);
|
|
|
}
|
|
|
result.index = index;
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
@@ -956,7 +1217,7 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
Number(itm.mtrlid) > 0 || Number(itm.costamt) != 0
|
|
|
);
|
|
|
if (Number(itm.mtrlid ?? 0) > 0 || Number(itm.costamt ?? 0) != 0) {
|
|
|
- let result: any = {};
|
|
|
+ let result: any = cloneDeep(result_default);
|
|
|
result.label = itm.label;
|
|
|
let _formulaName = "";
|
|
|
if (formulakindenum) {
|
|
@@ -980,31 +1241,68 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
result.price = isFilterPrice(itm.price ?? 0);
|
|
|
}
|
|
|
result.index = index;
|
|
|
- state.tableData.push(result);
|
|
|
+ mattressArr.push(result);
|
|
|
}
|
|
|
});
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- console.log("wf_retrieve_qingdan state.tableData :>> ", JSON.stringify(state.tableData));
|
|
|
+ if (!isNew) {
|
|
|
+ state.tableData = state.tableData.concat(mattressArr);
|
|
|
+ state.tableData.push({
|
|
|
+ label: "地区",
|
|
|
+ dscrp: data.area ?? "",
|
|
|
+ qty: "",
|
|
|
+ costamt: "",
|
|
|
+ useqty: "",
|
|
|
+ price: ""
|
|
|
+ });
|
|
|
+ state.tableData.push({
|
|
|
+ label: "柜型",
|
|
|
+ dscrp: data.cabinet_type ?? "",
|
|
|
+ qty: "",
|
|
|
+ costamt: "",
|
|
|
+ useqty: "",
|
|
|
+ price: ""
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ if (_ifExpandAll) {
|
|
|
+ console.log("state.tableData bf:>> ", state.tableData);
|
|
|
+ console.log("smattressArr bf:>> ", mattressArr);
|
|
|
+
|
|
|
+ // 插入床垫车间成本-总材料成本明细
|
|
|
+ let _idx = state.tableData.findIndex(t => t.group === "床垫-总材料成本");
|
|
|
+ if (_idx > -1) {
|
|
|
+ state.tableData[_idx].label = "小计";
|
|
|
+ state.tableData.splice(_idx, 0, ...mattressArr);
|
|
|
+ }
|
|
|
|
|
|
- state.tableData.push({
|
|
|
- label: "地区",
|
|
|
- dscrp: data.area ?? "",
|
|
|
- qty: "",
|
|
|
- costamt: "",
|
|
|
- useqty: "",
|
|
|
- price: ""
|
|
|
- });
|
|
|
- state.tableData.push({
|
|
|
- label: "柜型",
|
|
|
- dscrp: data.cabinet_type ?? "",
|
|
|
- qty: "",
|
|
|
- costamt: "",
|
|
|
- useqty: "",
|
|
|
- price: ""
|
|
|
- });
|
|
|
+ // 插入床网车间成本-总材料成本明细
|
|
|
+ let cushionsItem = mxdata.find((itm: any) => itm.field == "cushions");
|
|
|
+ if (cushionsItem) {
|
|
|
+ if (cushionsItem.data.bednet.length > 0) {
|
|
|
+ cushionsItem.data.bednet.map((itm: any, index: any) => {
|
|
|
+ if (itm.mtrlid > 0) {
|
|
|
+ let _idx = state.tableData.findIndex(t => t.group === `床网${index + 1}-总材料成本`);
|
|
|
+ if (_idx > -1) {
|
|
|
+ state.tableData[_idx].label = "小计";
|
|
|
+ state.bednet_qingdan[index] && state.tableData.splice(_idx, 0, ...state.bednet_qingdan[index]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // state.tableData = state.tableData.map(item => {
|
|
|
+ // item.id = item.id ?? null;
|
|
|
+ // item.parentId = item.parentId ?? null;
|
|
|
+ // return item;
|
|
|
+ // });
|
|
|
+
|
|
|
+ console.log("state.tableData state.tableData:>> ", state.tableData);
|
|
|
};
|
|
|
|
|
|
const formatAmount = (value: any) => {
|
|
@@ -1209,7 +1507,18 @@ export const useHooksCpQuote = (t?: any) => {
|
|
|
// cellESum.value = getSummaries(state.tableData, "costamt");
|
|
|
const footerRows = worksheet.insertRow(
|
|
|
9 + state.tableData.length,
|
|
|
- { label: "材料合计:", dscrp: "", qty: "", costamt: getSummaries(state.tableData, "costamt"), useqty: "", price: "" },
|
|
|
+ {
|
|
|
+ label: "材料合计:",
|
|
|
+ dscrp: "",
|
|
|
+ qty: "",
|
|
|
+ costamt: getSummaries(state.tableData, "costamt"),
|
|
|
+ costamt_1: getSummaries(state.tableData, "costamt_1"),
|
|
|
+ costamt_2: getSummaries(state.tableData, "costamt_2"),
|
|
|
+ costamt_3: getSummaries(state.tableData, "costamt_3"),
|
|
|
+ costamt_4: getSummaries(state.tableData, "costamt_4"),
|
|
|
+ useqty: "",
|
|
|
+ price: ""
|
|
|
+ },
|
|
|
"n"
|
|
|
);
|
|
|
|