Explorar el Código

JLHWEB: 1、修改物料特殊人工费用带出逻辑;
2、骨条物料选择,默认带出数量2

JohnnyChan hace 3 días
padre
commit
3235f9026d
Se han modificado 1 ficheros con 63 adiciones y 11 borrados
  1. 63 11
      JLHWEB/src/views/quote/mattressQuote/hooks/index.tsx

+ 63 - 11
JLHWEB/src/views/quote/mattressQuote/hooks/index.tsx

@@ -1383,6 +1383,7 @@ export const useHooks = (t?: any) => {
       data.mtrlname = item.mtrlname;
       data.priceunit = item.priceunit;
       data.shrinkage = item.price; // 收缩率
+      data.extra_cost = item.extra_cost;
       if (item.if_inputqty == 1 || Number(data.thickness) == 0) {
         data.thickness = Number(item.thickness);
       }
@@ -1397,6 +1398,8 @@ export const useHooks = (t?: any) => {
         let mattress_width = state.LjDetailRef._mainData.mattress_width ?? 0;
         let mattress_length = state.LjDetailRef._mainData.mattress_length ?? 0;
         _qty = (mattress_width / 100 + mattress_length / 100) * 2;
+      } else if ([206].includes(data.formulakind)) {
+        _qty = 2;
       }
       data.qty = _qty;
 
@@ -1411,13 +1414,18 @@ export const useHooks = (t?: any) => {
             // 床网与主副规格互联
             updateSubspecsTable();
           }
-          autoLoadMtrlExtra(item, state.specialProcessesMxRef);
+          autoLoadMtrlExtra(item);
         });
       }
     }
   };
 
   const rModelClearMtrl = (data: any, $table?: any) => {
+    const _item = {
+      mtrlid: data.mtrlid,
+      mtrlname: data.mtrlname,
+      extra_cost: data.extra_cost
+    };
     console.log("rModelClearMtrl data :>> ", data);
     data.mattressid = state.LjDetailRef._mainData.mattressid;
     data.mattressmxid = 0;
@@ -1444,6 +1452,8 @@ export const useHooks = (t?: any) => {
           // 床网与主副规格互联
           updateSubspecsTable();
         }
+
+        autoLoadMtrlExtra(_item, 5, "del");
       });
     }
   };
@@ -3675,8 +3685,20 @@ export const useHooks = (t?: any) => {
         ];
 
         let _disabled = arr.some(t => t.type.includes(row.formulakind));
+        let _mtrlItem = {
+          mtrlid: row.mtrlid,
+          mtrlname: row.mtrlname,
+          extra_cost: row.extra_cost
+        };
 
-        return <el-input v-model={scope.row.qty} type="number" disabled={row.mtrlid == 0 || _disabled}></el-input>;
+        return (
+          <el-input
+            v-model={scope.row.qty}
+            type="number"
+            disabled={row.mtrlid == 0 || _disabled}
+            onChange={val => autoLoadMtrlExtra({ ..._mtrlItem, qty: val })}
+          ></el-input>
+        );
       }
     },
     {
@@ -5725,17 +5747,14 @@ export const useHooks = (t?: any) => {
   /**
    * @description 获取特殊工艺数据
    * @params mtrlItem 物料
-   * @params targetRef 目标表格实例
    * @params arg_extraid 数据库建立的特殊费用id,5: 物料的特殊工艺费用
    */
-  const autoLoadMtrlExtra = (mtrlItem?: any, targetRef?: any, arg_extraid = 5) => {
-    //计算拼侧数量
-    if (mtrlItem?.extra_cost == 0) return;
-
-    // const $table = tableRef.element;
-    // const { visibleData } = $table.getTableData();
-    const $tableTarget = targetRef.element;
+  const autoLoadMtrlExtra = (mtrlItem?: any, arg_extraid = 5, action = "add") => {
+    const $tableTarget = state.specialProcessesMxRef.element;
     const { visibleData: tgVisibleData } = $tableTarget.getTableData();
+    let _sum = getSumMtrlQty(mtrlItem?.mtrlid);
+
+    console.log("autoLoadMtrlExtra _sum :>> ", _sum, mtrlItem);
 
     let _remove = [];
     tgVisibleData.map(t => {
@@ -5744,6 +5763,15 @@ export const useHooks = (t?: any) => {
       }
     });
     $tableTarget.remove(_remove);
+
+    //计算拼侧数量
+    if (action == "add") {
+      if (mtrlItem?.extra_cost == 0) return;
+    } else if (action == "del") {
+      if (_sum <= 0) {
+        return;
+      }
+    }
     let result = [];
 
     let extraArr = state.specialProcessesMxData.filter(item => item.typeid == 1 && item.extraid == arg_extraid);
@@ -5763,7 +5791,7 @@ export const useHooks = (t?: any) => {
           extramxid: o.extramxid,
           extraname: mtrlItem.mtrlname,
           price: mtrlItem.extra_cost,
-          qty: o.qty,
+          qty: _sum,
           dscrp: o.dscrp,
           inputtype: o.inputtype,
           typeid: o.typeid,
@@ -5774,6 +5802,30 @@ export const useHooks = (t?: any) => {
       $tableTarget.insertAt(_arr, -1);
     }
   };
+
+  /**
+   * @description 统计物料使用数量
+   * @param mtrlid
+   * @returns
+   */
+  const getSumMtrlQty = (mtrlid?: number) => {
+    let sum = 0;
+    state.fabricMxTabList.map(t => {
+      if (t.ref) {
+        if (dynamicRef(t.ref) && !["specialProcessesMxRef", "additionalCostsMxRef"].includes(t.ref)) {
+          let $table = dynamicRef(t.ref)?.element;
+          $table.clearEdit();
+          let { visibleData } = $table.getTableData();
+          visibleData.map((itm, idx) => {
+            if (itm.mtrlid == mtrlid) {
+              sum += Number(itm.qty ?? 0);
+            }
+          });
+        }
+      }
+    });
+    return sum;
+  };
   /**
    * @description 自动导入修改特殊工艺费用
    */