schangxiang@126.com
2025-05-20 7e412efefa7ebb636cd591e5121ce4e9e54836c2
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx
@@ -14,6 +14,12 @@
import isEqual from 'lodash/isEqual'
import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
import { cloneDeep } from 'lodash'
import { getAreaAreaDataList } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
import {
  FILTER_MODE_OPTIONS_STRING,
  FILTER_MODE_OPTIONS_NUM,
  FILTER_MODE_OPTIONS_BOOL,
} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'
export const useWmsMaterialStockQueryDrawer = (props: any, ctx?: any) => {
  const wmsMaterialStockDrawer = injectModel<WmsMaterialStockDrawer>(
@@ -86,6 +92,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料名称',
      highSelectAttrs: {
        prop: 'materialName_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '容器编号',
@@ -118,6 +130,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料编号',
      highSelectAttrs: {
        prop: 'materialNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '库存数量',
@@ -141,6 +159,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料批次',
      highSelectAttrs: {
        prop: 'materialBatch_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '供应商编号',
@@ -155,6 +179,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入型号',
      highSelectAttrs: {
        prop: 'materialModel_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '库位编号',
@@ -162,15 +192,27 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入库位编号',
      highSelectAttrs: {
        prop: 'placeNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '库位状态;',
      label: '库位状态',
      prop: 'placeStatus',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入库位状态;',
      highSelectAttrs: {
        prop: 'placeStatus_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '库位类型',
@@ -180,13 +222,26 @@
      option: [],
      //disabled: disabled,
      placeholder: '请输入库位类型',
      highSelectAttrs: {
        prop: 'storageTypeNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '区域编号',
      prop: 'areaCode',
      el: 'input',
      el: 'select',
      option: [],
      //disabled: disabled,
      placeholder: '请输入区域编号',
      highSelectAttrs: {
        prop: 'areaCode_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '库区名称',
@@ -212,6 +267,12 @@
      option: [],
      //disabled: disabled,
      placeholder: '请输入是否锁定',
      highSelectAttrs: {
        prop: 'isLock_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    // {
    //   label: '是否空托(2:否,1:是)',
@@ -222,27 +283,27 @@
    //   //disabled: disabled,
    //   placeholder: '请输入是否空托(2:否,1:是)',
    // },
    {
      label: '入库时间',
      prop: 'inStockTime',
      el: (props: any, { attrs }: SetupContext) => {
        return h(dateTimePickerRange, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      //disabled: disabled,
      placeholder: '请输入入库时间',
    },
    {
      label: '备注',
      prop: 'remark',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入备注',
    },
    // {
    //   label: '入库时间',
    //   prop: 'inStockTime',
    //   el: (props: any, { attrs }: SetupContext) => {
    //     return h(dateTimePickerRange, {
    //       ...props,
    //       clearable: true,
    //       ...attrs,
    //     })
    //   },
    //   width: '100%',
    //   //disabled: disabled,
    //   placeholder: '请输入入库时间',
    // },
    // {
    //   label: '备注',
    //   prop: 'remark',
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入备注',
    // },
    // {
    //   label: '冗余字段1 - 预留扩展用途',
    //   prop: 'redundantField1',
@@ -305,31 +366,39 @@
  }
  const commonGetFormData = () => {
    const data = {
      materialId: formData.value.materialId || '',
      materialName: formData.value.materialName || '',
      materialName_FilterMode: formData.value.materialName_FilterMode || '',
      containerNo: formData.value.containerNo || '',
      containerNo_FilterMode: formData.value.containerNo_FilterMode || '',
      containerStatus: formData.value.containerStatus || '',
      containerStatus_FilterMode:
        formData.value.containerStatus_FilterMode || '',
      containerType: formData.value.containerType || '',
      containerType_FilterMode: formData.value.containerType_FilterMode || '',
      materialNo: formData.value.materialNo || '',
      materialNo_FilterMode: formData.value.materialNo_FilterMode || '',
      stockNumber: formData.value.stockNumber || '',
      materialBatch: formData.value.materialBatch || '',
      stockNumber_FilterMode: formData.value.stockNumber_FilterMode || '',
      supplierCode: formData.value.supplierCode || '',
      supplierCode_FilterMode: formData.value.supplierCode_FilterMode || '',
      materialModel: formData.value.materialModel || '',
      materialModel_FilterMode: formData.value.materialModel_FilterMode || '',
      placeNo: formData.value.placeNo || '',
      placeNo_FilterMode: formData.value.placeNo_FilterMode || '',
      placeStatus: formData.value.placeStatus || '',
      storageTypeNo: formData.value.storageTypeNo || 1,
      placeStatus_FilterMode: formData.value.placeStatus_FilterMode || '',
      storageTypeNo: formData.value.storageTypeNo || '',
      storageTypeNo_FilterMode: formData.value.storageTypeNo_FilterMode || '',
      areaCode: formData.value.areaCode || '',
      areaCode_FilterMode: formData.value.areaCode_FilterMode || '',
      areaName: formData.value.areaName || '',
      checkStatus: formData.value.checkStatus || '',
      areaName_FilterMode: formData.value.areaName_FilterMode || '',
      isLock: formData.value.isLock || '',
      emptyContainer: formData.value.emptyContainer || '',
      isLock_FilterMode: formData.value.isLock_FilterMode || '',
      inStockTime: formData.value.inStockTime || '',
      remark: formData.value.remark || '',
      redundantField1: formData.value.redundantField1 || '',
      redundantField2: formData.value.redundantField2 || '',
      redundantField3: formData.value.redundantField3 || '',
      remark_FilterMode: formData.value.remark_FilterMode || '',
      creationTime: formData.value.creationTime || '',
      lastModificationTime: formData.value.lastModificationTime || '',
    }
    return data
  }
@@ -351,6 +420,7 @@
   * 重置查询
   */
  const onReset = async () => {
    onResetForHighSelect() //重置公共select查询
    formData.value = {}
    formData.value.materialId = ''
    formData.value.materialName = ''
@@ -396,6 +466,15 @@
      }))
    }
  }
  const updateFormAreaOptions = (propName: string, enumData: any[]) => {
    const item = formItems.find((item) => item.prop === propName)
    if (item && enumData) {
      item.options = enumData.map((item) => ({
        label: item.areaName,
        value: item.areaNo,
      }))
    }
  }
  /**
   * 通用查询枚举
   */
@@ -431,6 +510,8 @@
      EnumName: 'YesNoEnum',
    })
    updateFormItemOptions('emptyContainer', yesNoEnumEnum2)
    const areaList = await getAreaAreaDataList()
    updateFormAreaOptions('areaCode', areaList)
  }
  commonQueryEnumForFrom()
  formData.value.storageTypeNo = 1
@@ -442,6 +523,36 @@
    updateCheckData()
  }
  const onResetForHighSelect = async () => {
    formData.value.materialName_FilterMode = 1
    formData.value.containerNo_FilterMode = 1
    formData.value.containerStatus_FilterMode = 2
    formData.value.containerType_FilterMode = 2
    formData.value.materialNo_FilterMode = 1
    formData.value.stockNumber_FilterMode = 2
    formData.value.materialBatch_FilterMode = 1
    formData.value.supplierCode_FilterMode = 1
    formData.value.materialModel_FilterMode = 1
    formData.value.placeNo_FilterMode = 1
    formData.value.placeStatus_FilterMode = 2
    formData.value.storageTypeNo_FilterMode = 2
    formData.value.areaCode_FilterMode = 1
    formData.value.areaName_FilterMode = 1
    formData.value.checkStatus_FilterMode = 2
    formData.value.isLock_FilterMode = 2
    formData.value.emptyContainer_FilterMode = 2
    formData.value.remark_FilterMode = 1
    formData.value.redundantField1_FilterMode = 1
    formData.value.redundantField2_FilterMode = 1
    formData.value.redundantField3_FilterMode = 1
  }
  commonQueryEnumForFrom()
  onResetForHighSelect() //重置公共select查询
  /**
   * 弹窗打开获取详情
   */
  watch(() => current.value, onOpen)
  return {