Bläddra i källkod

JLHWEB: 1、内布套自动带出特殊工艺费用项目;

JohnnyChan 5 dagar sedan
förälder
incheckning
3dba019ec0

+ 28 - 11
JLHWEB/src/views/quote/bednetQuote/hooks/index.tsx

@@ -439,6 +439,8 @@ export const useHooks = (t?: any, props?: any) => {
       data.sponge_price = item.pricelistprice;
       data.mtrl_sponge_name = item.mtrlname;
     }
+
+    refreshSpringWL();
     console.log("rModelSetMtrlSponge after data :>> ", data);
   };
 
@@ -769,6 +771,16 @@ export const useHooks = (t?: any, props?: any) => {
     }
   };
 
+  /**
+   * @description 获取弹簧宽度和长度
+   */
+  const refreshSpringWL = async () => {
+    const $table = state.vxeTableMxRef.element;
+    let { visibleData } = $table.getTableData();
+    setMxSpringQtyWidthAndLength(visibleData[0]);
+    await $table.reloadData(visibleData);
+  };
+
   const columns: ColumnProps<any>[] = [
     { type: "checkbox", width: 50, fixed: "left" },
     { title: "#", field: "pid", fixed: "left", width: 80 },
@@ -862,10 +874,7 @@ export const useHooks = (t?: any, props?: any) => {
       basicinfo: {
         el: "input",
         props: {
-          onChange: () => {
-            let { visibleData } = state.vxeTableMxRef.element.getTableData();
-            setMxSpringQtyWidthAndLength(visibleData[0]);
-          }
+          onChange: () => refreshSpringWL()
         },
         editable: (scope: any) => {
           if (ALLOW_EDIT_STATE.includes(scope.status)) {
@@ -882,11 +891,7 @@ export const useHooks = (t?: any, props?: any) => {
       basicinfo: {
         el: "input",
         props: {
-          onChange: () => {
-            let { visibleData } = state.vxeTableMxRef.element.getTableData();
-            console.log("onChange visibleData :>> ", visibleData);
-            setMxSpringQtyWidthAndLength(visibleData[0]);
-          }
+          onChange: () => refreshSpringWL()
         },
         editable: (scope: any) => {
           if (ALLOW_EDIT_STATE.includes(scope.status)) {
@@ -955,7 +960,14 @@ export const useHooks = (t?: any, props?: any) => {
                 label="海绵打孔"
               />
               <el-checkbox v-model={scope.searchParam.iffork} disabled={_disabled} true-value={1} false-value={0} label="弹叉" />
-              <el-checkbox v-model={scope.searchParam.if_jb} disabled={_disabled} true-value={1} false-value={0} label="卷包" />
+              <el-checkbox
+                v-model={scope.searchParam.if_jb}
+                disabled={_disabled}
+                true-value={1}
+                false-value={0}
+                label="卷包"
+                onChange={() => refreshSpringWL()}
+              />
             </>
           );
         }
@@ -1026,7 +1038,10 @@ export const useHooks = (t?: any, props?: any) => {
       basicinfo: {
         el: "input",
         editable: ALLOW_EDIT_STATE,
-        rules: [{ validator: numCheck, trigger: "blur" }]
+        rules: [{ validator: numCheck, trigger: "blur" }],
+        props: {
+          onchange: (val: any) => refreshSpringWL()
+        }
       }
     },
     {
@@ -1827,6 +1842,8 @@ export const useHooks = (t?: any, props?: any) => {
 
       setMxSpringWidth(row);
       setMxSpringLength();
+
+      ElMessage.success("已刷新弹簧排列");
     }
     // }
   };

+ 3 - 84
JLHWEB/src/views/quote/mattressQuote/detail.vue

@@ -794,7 +794,7 @@ import BednetDialog from "@/views/system/selector/bednet/index.vue";
 import LjDrawerQuoteList from "./components/QuoteListNew.vue";
 import mittBus from "@/utils/mittBus";
 import { MittEnum } from "@/enums/mittEnum";
-import { getCurrentRecords, floatAdd, floatMul, text2Formula } from "@/utils/index";
+import { getCurrentRecords, floatAdd, floatMul } from "@/utils/index";
 import { useUserStore } from "@/stores/modules/user";
 import AllFormula from "./components/AllFormula.vue";
 import LjDrawer from "@/components/LjDrawer/index.vue";
@@ -938,7 +938,8 @@ const {
   wf_rtr_cwdc,
   resetSpecialProcesses,
   gotoErpapi,
-  updateSubspecsTable
+  updateSubspecsTable,
+  autoLoadExtraData
 } = useHooks(t);
 const { toExcelQuote, toExcelQuoteNew } = useHooksCpQuote();
 const { CheckPower, CheckOption, buttonNew, buttonDefault } = useAuthButtons(t);
@@ -2450,88 +2451,6 @@ const handleSelFabricMxNewMtrlGroup = async (target: string, item: any) => {
   }
 };
 
-/**
- * @description 判断目前选择的拼接数据量,自动导入修改特殊工艺费用
- */
-const autoLoadExtraData = (tableRef?: any, targetRef?: any) => {
-  //计算拼侧数量
-
-  const $table = tableRef.element;
-  const { visibleData } = $table.getTableData();
-  const $tableTarget = targetRef.element;
-  const { visibleData: tgVisibleData } = $tableTarget.getTableData();
-
-  let arr = [];
-  // 收集拼侧,并去重
-  visibleData.map(t => arr.push(t.sortcode));
-  arr = Array.from(new Set(arr));
-
-  //
-  let _remove = [];
-  tgVisibleData.map(t => {
-    if (t.extraid == 1) {
-      _remove.push(t);
-    }
-  });
-  $tableTarget.remove(_remove);
-  if (!arr.includes("普通大侧")) {
-    let result = [];
-    result = result.concat(computedExtraSizeNum(specialProcessesMxData.value, arr, "上下"));
-    result = result.concat(computedExtraSizeNum(specialProcessesMxData.value, arr, "左右"));
-
-    console.log("autoLoadExtraData result :>> ", result);
-
-    if (result.length) {
-      let _arr = [];
-      let _mattressId = LjDetailRef.value._mainData.mattressid;
-      result.map(o => {
-        let _itm = {
-          mattressid: _mattressId,
-          mattressmxid: 0,
-          extraid: o.extraid,
-          extramxid: o.extramxid,
-          // extratypename: "",
-          extraname: o.extramxname,
-          price: o.price,
-          qty: o.qty,
-          dscrp: o.dscrp,
-          inputtype: o.inputtype,
-          typeid: o.typeid
-        };
-        _arr.push(_itm);
-      });
-      $tableTarget.insertAt(_arr, -1);
-    }
-  }
-};
-
-/**
- * @description 计算拼侧数量
- */
-const computedExtraSizeNum = (enumarr: any, arr: any, key: string) => {
-  console.log("computedExtraSizeNum specialProcessesEnum.value :>> ", enumarr);
-  let extraArr = enumarr.filter(item => item.typeid == 1 && item.extraid == 1 && item.extramxname.includes(key));
-
-  let arrNum = arr.filter(item => item.includes(key)).length;
-
-  let result = [];
-  extraArr.forEach(o => {
-    // 判断名称中出现的数量
-    try {
-      const checker = new Function("value", `return ${text2Formula(o.extramxname)};`);
-
-      if (checker(arrNum)) {
-        result.push(o);
-      }
-    } catch (error) {
-      console.log("error :>> ", error);
-      ElMessage.error(`${t("sys.api.operationFailed")}特殊工艺名称: ${error}`);
-    }
-  });
-
-  return result;
-};
-
 const handleDelFabricMxNewMtrlGroup = (target: string) => {
   let sameMx = [];
   let $table = null;

+ 105 - 5
JLHWEB/src/views/quote/mattressQuote/hooks/index.tsx

@@ -7,7 +7,7 @@ import { GetComputeMattress, GetMattressImportDW2, GetMattressPackagMx, GetCompu
 import { useUserStore } from "@/stores/modules/user";
 import MtrldefSelect from "@/views/system/selector/mtrldef/select.vue";
 import BednetSelect from "@/views/system/selector/bednet/select.vue";
-import { handleRowAccordingToProp } from "@/utils";
+import { handleRowAccordingToProp, text2Formula } from "@/utils";
 import { ElButton, ElMessage, ElPopconfirm, ElMessageBox, ElNotification, ElTag } from "element-plus";
 import { Minus, Plus, InfoFilled } from "@element-plus/icons-vue";
 import { DwnameEnum } from "@/enums/dwnameEnum";
@@ -5348,6 +5348,8 @@ export const useHooks = (t?: any) => {
       await $table.insertAt(_rows, -1);
 
       ElMessage.success("导入成功");
+
+      autoLoadExtraData(state.innerClothLayerMxRef, state.specialProcessesMxRef, 4, "chastr");
     }
     resetMergeCellsInner();
   };
@@ -5377,12 +5379,12 @@ export const useHooks = (t?: any) => {
     // }, 200);
   };
 
-  const hanleDelMxInner = (type: number) => {
+  const hanleDelMxInner = async (type: number) => {
     const $table = state.innerClothLayerMxRef.element;
     if ($table) {
       if (type == 1) {
         // 全部
-        $table.remove();
+        await $table.remove();
       } else if (type == 0) {
         // 删除选中
         const curRow = $table.getCurrentRecord();
@@ -5391,8 +5393,17 @@ export const useHooks = (t?: any) => {
           ElMessage.warning("请先选择要删除的行");
           return;
         }
-        $table.remove(curRow);
+        let _chastr = curRow?.chastr;
+        const { visibleData } = $table.getTableData();
+
+        let _vData = visibleData.filter((o: any) => o.chastr != _chastr);
+        await $table.reloadData(_vData);
+
+        ElMessage.success("成功删除" + _chastr);
       }
+      autoLoadExtraData(state.innerClothLayerMxRef, state.specialProcessesMxRef, 4, "chastr");
+
+      resetMergeCellsInner();
     }
   };
 
@@ -5607,6 +5618,94 @@ export const useHooks = (t?: any) => {
     }
   };
 
+  /**
+   * @description 计算拼侧数量
+   */
+  const computedExtraSizeNum = (enumarr: any, arr: any, key: string, arg_extraid: number) => {
+    console.log("computedExtraSizeNum specialProcessesEnum.value :>> ", enumarr);
+    let extraArr = enumarr.filter(item => item.typeid == 1 && item.extraid == arg_extraid && item.extramxname.includes(key));
+
+    let arrNum = arr.filter(item => item.includes(key)).length;
+
+    let result = [];
+    extraArr.forEach(o => {
+      // 判断名称中出现的数量
+      try {
+        const checker = new Function("value", `return ${text2Formula(o.extramxname)};`);
+
+        if (checker(arrNum)) {
+          result.push(o);
+        }
+      } catch (error) {
+        console.log("error :>> ", error);
+        ElMessage.error(`${t("sys.api.operationFailed")}特殊工艺名称: ${error}`);
+      }
+    });
+
+    return result;
+  };
+
+  /**
+   * @description 判断目前选择的拼接数据量,自动导入修改特殊工艺费用
+   * @params tableRef 表格实例
+   * @params targetRef 目标表格实例
+   * @params arg_extraid 数据库建立的特殊费用id,1:特殊费用,4:内布套
+   * @params matchAttr 匹配字段
+   */
+  const autoLoadExtraData = (tableRef?: any, targetRef?: any, arg_extraid = 1, matchAttr = "sortcode") => {
+    //计算拼侧数量
+
+    const $table = tableRef.element;
+    const { visibleData } = $table.getTableData();
+    const $tableTarget = targetRef.element;
+    const { visibleData: tgVisibleData } = $tableTarget.getTableData();
+
+    console.log();
+    let arr = [];
+    // 收集拼侧,并去重
+    visibleData.map(t => arr.push(t[matchAttr]));
+    arr = Array.from(new Set(arr));
+
+    console.log("autoLoadExtraData 收集拼侧,并去重 arr :>> ", arr, visibleData);
+
+    //
+    let _remove = [];
+    tgVisibleData.map(t => {
+      if (t.extraid == arg_extraid) {
+        _remove.push(t);
+      }
+    });
+    $tableTarget.remove(_remove);
+    let result = [];
+    if (!arr.includes("普通大侧")) {
+      result = result.concat(computedExtraSizeNum(state.specialProcessesMxData, arr, "上下", arg_extraid));
+      result = result.concat(computedExtraSizeNum(state.specialProcessesMxData, arr, "左右", arg_extraid));
+      result = result.concat(computedExtraSizeNum(state.specialProcessesMxData, arr, "内布套", arg_extraid));
+
+      console.log("autoLoadExtraData result :>> ", result, state.specialProcessesMxData);
+    }
+    if (result.length) {
+      let _arr = [];
+      let _mattressId = state.LjDetailRef._mainData.mattressid;
+      result.map(o => {
+        let _itm = {
+          mattressid: _mattressId,
+          mattressmxid: 0,
+          extraid: o.extraid,
+          extramxid: o.extramxid,
+          // extratypename: "",
+          extraname: o.extramxname,
+          price: o.price,
+          qty: o.qty,
+          dscrp: o.dscrp,
+          inputtype: o.inputtype,
+          typeid: o.typeid
+        };
+        _arr.push(_itm);
+      });
+      $tableTarget.insertAt(_arr, -1);
+    }
+  };
   /**
    * @description 自动导入修改特殊工艺费用
    */
@@ -5913,6 +6012,7 @@ export const useHooks = (t?: any) => {
     gotoErpapi,
     updateSubspecsTable,
     funcChaifenTabPro,
-    getQuoteListMxData
+    getQuoteListMxData,
+    autoLoadExtraData
   };
 };