From 37d497d48aa64bb56ae05cc7fe9bf16ff85e3592 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 03 5月 2025 06:38:14 +0800
Subject: [PATCH] 222

---
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx                                              |  102 ++++++++
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts                                             |   44 +++
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts                                                   |   18 +
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx                                       |  311 +++++++++++++++++++++++++
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx         |   64 +++++
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss |    3 
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx                                      |   20 +
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss                                      |   78 ++++++
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts                                     |   58 ++++
 9 files changed, 698 insertions(+), 0 deletions(-)

diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss"
new file mode 100644
index 0000000..a0393bb
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss"
@@ -0,0 +1,78 @@
+.informationDrawerPosition {
+  position: relative;
+}
+.informationDrawer {
+  background: linear-gradient(180deg, #dee4ff 0%, #ffffff 40%, #ffffff 100%);
+  box-shadow: 0px -4px 30px 1px rgba(0, 0, 0, 0.16);
+
+  border-radius: 6px 6px 0px 0px;
+  opacity: 1;
+  border: 1px solid #f0f3fd;
+
+  @keyframes iconFrames {
+    0% {
+      opacity: 1;
+    }
+    25% {
+      opacity: 0.66;
+    }
+    50% {
+      opacity: 0.33;
+    }
+    75% {
+      opacity: 0.66;
+    }
+
+    100% {
+      opacity: 1;
+    }
+  }
+  .iconPosition {
+    position: absolute;
+    top: 38px;
+    right: 111px;
+    user-select: none;
+    -webkit-user-drag: none;
+    animation: iconFrames 2s infinite linear;
+  }
+  :global(.cs-drawer__header) {
+    padding-top: 36px;
+    .cs-drawer__close-btn {
+      margin-top: -16px;
+      font-size: 16px;
+    }
+
+    > span {
+      font-size: 18px;
+      font-family: Source Han Sans CN, Source Han Sans CN;
+      font-weight: bold;
+      color: #464e54;
+      line-height: 0px;
+    }
+  }
+  :global(.cs-drawer__close-btn) {
+    margin-top: -16px;
+    font-size: 16px;
+  }
+  :global(.cs-drawer__body) {
+    padding: 30px;
+    padding-top: 13px;
+  }
+}
+
+.modal {
+  width: var(--drawer-width);
+  left: calc(100% - var(--drawer-width)) !important;
+}
+
+.csDialogFooter {
+  padding: 0 18px;
+  .csBaseBtn {
+    width: 98px;
+    height: 26px;
+  }
+  .dialogBtn {
+    background: #efeded;
+    color: #666666;
+  }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx"
new file mode 100644
index 0000000..29201fd
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx"
@@ -0,0 +1,102 @@
+import { computed, defineComponent, onMounted, ref } from 'vue'
+import styles from './BaseQueryDrawer.module.scss'
+import Icon from '../Icon/Icon'
+//@ts-ignore
+export default defineComponent<{
+  [key: string]: any
+}>({
+  // @ts-ignore
+  name: 'BaseDrawer',
+  props: {
+    // 閬僵鏄惁鍙偣鍑�
+    clickable: {
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      type: String,
+      default: '',
+    },
+    width: {
+      type: String,
+      default: '',
+    },
+    // modelValue: {
+    //   type: Boolean,
+    //   default: false,
+    // },
+  },
+  emits: ['close', 'confirm', 'update:modelValue', 'open', 'beforeClose'],
+  setup(props: any, { emit, slots, attrs }: any) {
+    // const size = computed(() => {
+    //   if (attrs.size.includes('px')) {
+    //     return attrs.size
+    //   }
+    // })
+
+    // const model = computed(() => {
+    //   if (attrs.model.includes('')) {
+    //     return attrs.model
+    //   }
+    // })
+
+    return () => {
+      return (
+        <div
+          class={styles.drawContent}
+          //@ts-ignore
+          // style={props.clickable ? { '--drawer-width': size.value } : {}}
+        >
+          <el-drawer
+            // modal-class={props.clickable ? styles.modal : ''}
+            class={{
+              [styles.informationDrawer]: true,
+              // [styles.informationDrawerPosition]: props.clickable,
+            }}
+            onOpen={() => emit('open')}
+            onClose={() => emit('close')}
+            v-slots={{
+              footer() {
+                return (
+                  <div class={styles.csDialogFooter}>
+                    <el-button
+                      onClick={() => emit('close')}
+                      type="info"
+                      plain
+                      class={{
+                        [styles.dialogBtn]: true,
+                        [styles.csBaseBtn]: true,
+                      }}
+                    >
+                      鍏抽棴
+                    </el-button>
+                    <el-button
+                      onClick={() => emit('confirm')}
+                      type="primary"
+                      class={{
+                        [styles.csBaseBtn]: true,
+                      }}
+                    >
+                      鏌ヨ
+                    </el-button>
+                  </div>
+                )
+              },
+            }}
+            {...attrs}
+            title={props.title}
+            size={props.width || attrs.size}
+          >
+            <Icon
+              width={167}
+              height={54}
+              class={styles.iconPosition}
+              icon="drawer_bg"
+            />
+            {slots.default?.()}
+          </el-drawer>
+        </div>
+      )
+    }
+  },
+})
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts"
index 3684341..1279e69 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts"
@@ -51,6 +51,12 @@
     title: '',
     isAdd: false,
   })
+  const dialogConfigForQuery = reactive({
+    visible: false,
+    title: '',
+    isAdd: false,
+  })
+
 
   const dialogSettingConfig = reactive({
     visible: false,
@@ -149,6 +155,16 @@
     sort.value = params.totalCount + 1
   }
 
+  //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€��
+  const onAdvancedQuery = () => {
+    const params = tableRef.value?.getPaginationParams()
+    current.value = null
+    dialogConfigForQuery.visible = true
+    dialogConfigForQuery.isAdd = true
+    dialogConfigForQuery.title = '楂樼骇鏌ヨ'
+    sort.value = params.totalCount + 1
+  }
+
   const onConfirmWmsMaterial = async () => {
     dialogConfig.visible = false
     if (dialogConfig.isAdd) {
@@ -236,6 +252,7 @@
     dataSource,
     contextMenu,
     dialogConfig,
+    dialogConfigForQuery,
     dialogSettingConfig,
     tableRef,
     current,
@@ -254,5 +271,6 @@
     onConfirmWmsMaterial,
     onCheck,
     onAddWmsMaterial,
+    onAdvancedQuery
   }
 }
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx"
new file mode 100644
index 0000000..9fa83da
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx"
@@ -0,0 +1,311 @@
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsMaterialQueryDrawer } from '../Models/WmsMaterialQueryDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsMaterialQueryDrawer = (props: any, ctx?: any) => {
+  const WmsMaterialQueryDrawer = injectModel<WmsMaterialQueryDrawer>('WmsMaterialQueryDrawer')
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  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 inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '鐗╂枡缂栫爜',
+      prop: 'materialCode',
+      el: 'input',
+      disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮�',
+    },
+    {
+      label: '鐗╂枡鍚嶇О',
+      prop: 'materialName',
+      el: 'input',
+      placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+      rules: [{ required: true, message: '鐗╂枡鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '閲囪喘绫诲瀷',
+      prop: 'purchaseType',
+      el: 'select',
+      placeholder: '璇烽�夋嫨閲囪喘绫诲瀷',
+      options: [],
+      rules: [{ required: true, message: '璇烽�夋嫨閲囪喘绫诲瀷', trigger: 'change' }],
+    },
+    {
+      label: '鐗╂枡绫诲瀷',
+      prop: 'materialType',
+      el: 'select',
+      placeholder: '璇烽�夋嫨鐗╂枡绫诲瀷',
+      options: [],
+      rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡绫诲瀷', trigger: 'change' }],
+    },
+    {
+      label: '涓诲崟浣�',
+      prop: 'primaryUnit',
+      el: 'input',
+      placeholder: '璇疯緭鍏ヤ富鍗曚綅(濡�: kg, m, 涓�)',
+    },
+    {
+      label: '瑙勬牸/鏍囧噯',
+      prop: 'standard',
+      el: 'input',
+      placeholder: '璇疯緭鍏ヨ鏍�/鏍囧噯(濡�: GB/T 8163-2018)',
+    },
+    {
+      label: '澶栧緞(mm)',
+      prop: 'outerDiameter',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      placeholder: '璇疯緭鍏ュ寰�',
+      step: 0.01,
+      precision: 2,
+    },
+    {
+      label: '澹佸帤(mm)',
+      prop: 'wallThickness',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      placeholder: '璇疯緭鍏ュ鍘�',
+      step: 0.01,
+      precision: 2,
+    },
+    {
+      label: '鏉愯川',
+      prop: 'materialQuality',
+      el: 'input',
+      placeholder: '璇疯緭鍏ユ潗璐�(濡�: 304涓嶉攬閽�)',
+    },
+    {
+      label: '闀垮害(m)',
+      prop: 'length',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      placeholder: '璇疯緭鍏ラ暱搴�',
+      step: 0.1,
+      precision: 2,
+    },
+    {
+      label: '鏄惁涓绘敮绠�',
+      prop: 'isMainBranch',
+      el: 'select',
+      options: [],
+    },
+    {
+      label: '鐢熶骇宸ュ巶',
+      prop: 'factory',
+      el: 'input',
+      placeholder: '璇疯緭鍏ョ敓浜у伐鍘�',
+    },
+    {
+      label: '璇佷功缂栧彿',
+      prop: 'certification',
+      el: 'input',
+      placeholder: '璇疯緭鍏ヨ瘉涔︾紪鍙�',
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      type: 'textarea',
+      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 = {
+      materialCode: formData.value.materialCode,
+      materialName: formData.value.materialName,
+      purchaseType: formData.value.purchaseType,
+      materialType: formData.value.materialType,
+      primaryUnit: formData.value.primaryUnit,
+      standard: formData.value.standard,
+      outerDiameter: formData.value.outerDiameter,
+      wallThickness: formData.value.wallThickness,
+      materialQuality: formData.value.materialQuality,
+      length: formData.value.length,
+      isMainBranch: formData.value.isMainBranch,
+      factory: formData.value.factory,
+      certification: formData.value.certification,
+      remark: formData.value.remark,
+    }
+    if (!current.value) {
+      await WmsMaterialQueryDrawer.addWmsMaterial(data)
+    } else {
+      const id = current.value.id
+      await WmsMaterialQueryDrawer.updateWmsMaterial(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 onOpen = async () => {
+    const materialTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({
+      EnumName: 'MaterialTypeEnum',
+    })
+    updateFormItemOptions('materialType', materialTypeEnum)
+
+    const purchaseTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({
+      EnumName: 'PurchaseTypeEnum',
+    })
+    updateFormItemOptions('purchaseType', purchaseTypeEnum)
+
+    const yesOrNoTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({
+      EnumName: 'YesNoEnum',
+    })
+    updateFormItemOptions('isMainBranch', yesOrNoTypeEnum)
+
+    if (current.value) {
+      const res = await WmsMaterialQueryDrawer.getWmsMaterialDetail(current.value)
+
+      formData.value = {
+        materialCode: res.materialCode,
+        materialName: res.materialName,
+        purchaseType: res.purchaseType,
+        materialType: res.materialType,
+        primaryUnit: res.primaryUnit,
+        standard: res.standard,
+        outerDiameter: res.outerDiameter,
+        wallThickness: res.wallThickness,
+        materialQuality: res.materialQuality,
+        length: res.length,
+        isMainBranch: res.isMainBranch,
+        factory: res.factory,
+        certification: res.certification,
+        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,
+  }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts"
new file mode 100644
index 0000000..a31f0fa
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts"
@@ -0,0 +1,58 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsMaterial = (data: any) => {
+  return request.post('/api/v1/hIAWms/wmsMaterial', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsMaterial = (id: string) => {
+  return request.get(`/api/v1/hIAWms/wmsMaterial/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsMaterial = (id: string, data: Record<string, any>) => {
+  return request.put(`/api/v1/hIAWms/wmsMaterial/${id}`, data)
+}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+  return request.post('/api/v1/hIAWms/WmsEnum', data)
+}
+
+/**
+ * 鑾峰彇鐗╂枡鍩虹鍒楄〃
+ * @returns
+ */
+export const getWmsDataList = (data: any) => {
+  return request.post('/api/v1/hIAWms/wmsmaterial/page', data)
+}
+
+/**
+ * 鑾峰彇浠撳簱鍒楄〃
+ * @returns
+ */
+export const getStoreDataList = () => {
+  return request.get('/api/v1/hIAWms/WmsEnum/StoreList')
+}
+
+/**
+ * 鑾峰彇搴撳尯鍒楄〃
+ * @returns
+ */
+export const getAreaAreaDataList = () => {
+  return request.get('/api/v1/hIAWms/WmsEnum/AreaList')
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts"
new file mode 100644
index 0000000..9818421
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts"
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base'
+import {
+  addWmsMaterial,
+  getWmsMaterial,
+  updateWmsMaterial,
+  getWmsEnumData,
+} from './Service/WmsMaterialQueryDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsMaterialQueryDrawer extends Base<{ [key: string]: any }> {
+  constructor() {
+    super({
+      data: [],
+      wmsMaterial: {},
+    })
+  }
+
+  /**
+   * 娣诲姞
+   * @param data
+   */
+  async addWmsMaterial(data: Record<string, any>) {
+    return addWmsMaterial(data)
+  }
+  /**
+   * 鏇存柊
+   * @param data
+   */
+  async updateWmsMaterial(id: string, data: Record<string, any>) {
+    return updateWmsMaterial(id, data)
+  }
+
+  /**
+   * 鑾峰彇璇︽儏
+   */
+  async getWmsMaterialDetail(current: any, id?: string) {
+    return getWmsMaterial(id || current?.id)
+  }
+
+  //  鑾峰彇鏋氫妇鍊�
+  async getWmsEnumData(data: Record<string, any>) {
+    return getWmsEnumData(data)
+  }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss"
new file mode 100644
index 0000000..98607dd
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss"
@@ -0,0 +1,3 @@
+.drawer {
+  width: 800px;
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx"
new file mode 100644
index 0000000..14fba7a
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx"
@@ -0,0 +1,64 @@
+/*
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗�
+*/
+import { SetupContext, defineComponent } from 'vue'
+import BaseDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer'
+import styles from './WmsMaterialQueryDrawer.module.scss'
+import { useWmsMaterialQueryDrawer } from '../../../../Controllers/WmsMaterialQueryDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+  [key: string]: any
+}>({
+  name: '寮圭獥',
+  props: {
+    modelValue: {
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      type: String,
+      default: '',
+    },
+    row: {
+      type: Object,
+    },
+    sort: {
+      type: Number,
+      default: 0,
+    },
+  },
+  emits: ['update:modelValue', 'close', 'submit', 'confirm'],
+  setup(props: Record<string, any>, ctx: SetupContext) {
+    const {
+      onClose,
+      onConfirm,
+      onOpen,
+      formRef,
+      visible,
+      formItems,
+      formData,
+    } = useWmsMaterialQueryDrawer(props, ctx)
+    return () => (
+      <BaseDrawer
+        class={styles.drawer}
+        size="800px"
+        title={props.title || '楂樼骇鏌ヨ'}
+        v-model={visible.value}
+        close-on-click-modal={true}
+        onConfirm={onConfirm}
+        onOpen={onOpen}
+        before-close={onClose}
+        onClose={onClose}
+      >
+        <DyForm
+          ref={formRef}
+          formData={formData.value}
+          labelWidth="106px"
+          formItemProps={formItems}
+        ></DyForm>
+      </BaseDrawer>
+    )
+  },
+})
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx"
index a2e2c16..455d508 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx"
@@ -5,6 +5,7 @@
 import { useWmsMaterial } from '../../../Controllers/WmsMaterial'
 import IconButton from '@/components/IconButton/IconButton'
 import WmsMaterialDrawer from '../Dialog/WmsMaterialDrawer/WmsMaterialDrawer'
+import WmsMaterialQueryDrawer from '../Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer'
 import Search from '@/components/Search/Search'
 import { columns } from './Config'
 import TdButton from '@/components/TdButton/TdButton'
@@ -43,6 +44,7 @@
       dataSource,
       contextMenu,
       dialogConfig,
+      dialogConfigForQuery,
       tableRef,
       current,
       search,
@@ -54,6 +56,7 @@
       onConfirmWmsMaterial,
       onCheck,
       onAddWmsMaterial,
+      onAdvancedQuery,
       onExport,
       openDetail,
       onSuccess,
@@ -198,6 +201,14 @@
             sort={sort.value}
             onConfirm={onConfirmWmsMaterial}
           />
+           {/* 楂樼骇鏌ヨ */}
+           <WmsMaterialQueryDrawer
+            v-model={dialogConfigForQuery.visible}
+            title={dialogConfigForQuery.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirm={onConfirmWmsMaterial}
+          />
 
           {/* 鏂板鐨勬煡璇㈣〃鍗� */}
           <ElForm
@@ -299,6 +310,15 @@
                 娣诲姞
               </IconButton>
               <el-divider direction="vertical" />
+              <IconButton
+                v-permission="wmsMaterial-add"
+                icon="add-p"
+                onClick={onAdvancedQuery}
+                type="primary"
+              >
+                楂樼骇鏌ヨ
+              </IconButton>
+              <el-divider direction="vertical" />
               <el-upload
                 v-permission="wmsMaterial-import"
                 name="file"

--
Gitblit v1.9.3