From 9eaf758e97367dbc2eca2bdbdc92ab39e08be9d0 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周四, 15 5月 2025 13:12:17 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo

---
 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx |  212 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 212 insertions(+), 0 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx
new file mode 100644
index 0000000..c9b0831
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx
@@ -0,0 +1,212 @@
+import { 
+  ref, 
+  onMounted, 
+  reactive, 
+  computed, 
+  Ref, 
+  watch, 
+  SetupContext, 
+  h, 
+} from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsMaterialTypeDrawer } from '../Models/WmsMaterialTypeDrawer' 
+import { ElMessage } from 'element-plus' 
+import isEqual from 'lodash/isEqual' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { cloneDeep } from 'lodash' 
+// 寮曞叆鍏叡閫夐」閰嶇疆  
+import {   
+  BOOLEAN_OPTIONS_AddEdit  
+} from '@/utils/commonOptionConstants';  
+ 
+export const useWmsMaterialTypeDrawer = (props: any, ctx?: any) => { 
+  const wmsMaterialTypeDrawer = injectModel<WmsMaterialTypeDrawer>('wmsMaterialTypeDrawer') 
+  /** 
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 
+   */ 
+  const initiateData: Ref<Record<string, any>> = ref({}) 
+  const formData = ref<Record<string, any>>({}) 
+  // ref 
+  const formRef = ref() 
+ 
+  const disabled = ref(false) 
+ 
+  const current = computed(() => { 
+    return props.row || null 
+  }) 
+ 
+   
+  const datePicker = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="date" 
+        format="YYYY-MM-DD HH:mm:ss" 
+        formatValue="YYYY-MM-DD HH:mm:ss" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+  const inputNumber = (attrs) => { 
+    return ( 
+      <el-input-number 
+        min="1" 
+        step="1" 
+        precision="0" 
+        {...attrs} 
+      ></el-input-number> 
+    ) 
+  } 
+ 
+  const dateTimePicker = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="datetime" 
+        format="YYYY-MM-DD HH:mm:ss" 
+        formatValue="YYYY-MM-DD HH:mm:ss" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+ 
+  const visible = computed({ 
+    get() { 
+      return props.modelValue 
+    }, 
+    set(val) { 
+      ctx.emit('update:modelValue', val) 
+    }, 
+  }) 
+  /** 
+   * 娣诲姞鐨刦orm瀛楁 
+   */ 
+  const formItems = reactive([ 
+                    { 
+                   label: '绫诲瀷鎻忚堪', 
+                   prop: 'materialTypeDesc', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬫弿杩�', 
+              rules: [{required: true, message: '绫诲瀷鎻忚堪涓嶈兘涓虹┖', trigger: 'blur' }], 
+                }, 
+                { 
+                   label: '绫诲瀷缂栫爜', 
+                   prop: 'materialTypeCode', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬬紪鐮�', 
+              rules: [{required: true, message: '绫诲瀷缂栫爜涓嶈兘涓虹┖', trigger: 'blur' }], 
+                }, 
+                { 
+                   label: '澶囨敞', 
+                   prop: 'remark', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ュ娉�', 
+                },  
+  ]) 
+  /** 
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� 
+   */ 
+  const checkIsEqualObject = () => { 
+    const data = { 
+      formData: formData.value, 
+    } 
+    const check = isEqual(initiateData.value, data) 
+    return check 
+  } 
+ 
+  const onClose = (done: () => void) => { 
+    if (visible.value) { 
+      if (checkIsEqualObject()) { 
+        visible.value = false 
+        done && done() 
+      } else { 
+        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') 
+          .then(() => { 
+            onConfirm() 
+          }) 
+          .catch(() => { 
+            visible.value = false 
+            done && done() 
+          }) 
+      } 
+    } 
+  } 
+  /** 
+   * 淇濆瓨 
+   */ 
+  const onConfirm = async () => { 
+    await formRef.value?.validate() 
+    const data = { 
+      materialTypeDesc: formData.value.materialTypeDesc, 
+materialTypeCode: formData.value.materialTypeCode, 
+remark: formData.value.remark,  
+    } 
+    if (!current.value) { 
+      await wmsMaterialTypeDrawer.addWmsMaterialType(data) 
+    } else { 
+      const id = current.value.id 
+      await wmsMaterialTypeDrawer.updateWmsMaterialType(id, data) 
+    } 
+    ElMessage.success('淇濆瓨鎴愬姛') 
+    ctx.emit('confirm') 
+  } 
+ 
+  const updateCheckData = () => { 
+    initiateData.value = { 
+      formData: { 
+        ...formData.value, 
+      }, 
+    } 
+  } 
+  const updateFormItemOptions = (propName: string, enumData: any[]) => { 
+    const item = formItems.find((item) => item.prop === propName) 
+    if (item && enumData) { 
+      item.options = enumData.map((item) => ({ 
+        label: item.description, 
+        value: item.value, 
+      })) 
+    } 
+  } 
+  /** 
+   * 閫氱敤鏌ヨ鏋氫妇 
+   */ 
+  const commonQueryEnumForFrom = async () => { 
+     
+  } 
+  commonQueryEnumForFrom() 
+  /** 
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏 
+   */ 
+  const onOpen = async () => { 
+    if (current.value) { 
+      const res = await wmsMaterialTypeDrawer.getWmsMaterialTypeDetail(current.value) 
+ 
+      formData.value = { 
+        materialTypeDesc: res.materialTypeDesc, 
+materialTypeCode: res.materialTypeCode, 
+remark: res.remark,  
+        id: res.id, 
+      } 
+      disabled.value = true 
+      updateCheckData() 
+    } else { 
+      formData.value = {} 
+ 
+      disabled.value = false 
+      updateCheckData() 
+    } 
+  } 
+ 
+  watch(() => current.value, onOpen) 
+ 
+  return { 
+    formItems, 
+    formData, 
+    visible, 
+    formRef, 
+    onOpen, 
+    onClose, 
+    onConfirm, 
+  } 
+} 

--
Gitblit v1.9.3