zs
2025-06-04 5a149d626ae8bc3fa4bddbb53f8caf40f51f6da6
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx
@@ -9,16 +9,23 @@
  h,
} from 'vue'
import { injectModel } from '@/libs/Provider/Provider'
import { WmsMaterialStockDrawer } from '../Models/WmsMaterialStockDrawer'
import { WmsMaterialStockDetailQueryDrawer } from '../Models/WmsMaterialStockDetailQueryDrawer'
import { ElMessage } from 'element-plus'
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'
import { BOOLEAN_OPTIONS } from '@/utils/commonOptionConstants'
export const useWmsMaterialStockDetalQueryDrawer = (props: any, ctx?: any) => {
  const wmsMaterialStockDetailDrawer = injectModel<WmsMaterialStockDrawer>(
    'WmsMaterialStockDrawer'
  )
export const useWmsMaterialStockDetailQueryDrawer = (props: any, ctx?: any) => {
  const wmsMaterialStockDetailDrawer =
    injectModel<WmsMaterialStockDetailQueryDrawer>('wmsMaterialStockDrawer')
  /**
   * 用来对比的初始化数据
   */
@@ -86,6 +93,12 @@
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入物料ID',
    //   highSelectAttrs: {
    //     prop: 'materialId_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_STRING,
    //   },
    // },
    {
      label: '物料名称',
@@ -93,14 +106,26 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料名称',
      highSelectAttrs: {
        prop: 'materialName_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '容器编号',
    //   prop: 'containerNo',
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入容器编号',
    // },
    {
      label: '容器编号',
      prop: 'containerNo',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入容器编号',
      highSelectAttrs: {
        prop: 'containerNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '容器状态',
    //   prop: 'containerStatus',
@@ -109,6 +134,12 @@
    //   option: [],
    //   //disabled: disabled,
    //   placeholder: '请输入容器状态',
    //   highSelectAttrs: {
    //     prop: 'containerStatus_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_BOOL,
    //   },
    // },
    // {
    //   label: '容器类型',
@@ -118,6 +149,12 @@
    //   option: [],
    //   //disabled: disabled,
    //   placeholder: '请输入容器类型',
    //   highSelectAttrs: {
    //     prop: 'containerType_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_BOOL,
    //   },
    // },
    {
      label: '物料编号',
@@ -125,6 +162,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料编号',
      highSelectAttrs: {
        prop: 'materialNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '库存数量',
@@ -141,6 +184,12 @@
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入库存数量',
      highSelectAttrs: {
        prop: 'stockNumber_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '物料批次',
@@ -148,6 +197,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入物料批次',
      highSelectAttrs: {
        prop: 'materialBatch_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '供应商编号',
@@ -155,6 +210,12 @@
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入供应商编号',
    //   highSelectAttrs: {
    //     prop: 'supplierCode_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_STRING,
    //   },
    // },
    {
      label: '型号',
@@ -162,6 +223,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入型号',
      highSelectAttrs: {
        prop: 'materialModel_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '库位编号',
@@ -169,31 +236,56 @@
      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: '库位类型',
      prop: 'storageTypeNo',
      el: 'select',
      clearable: false,
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入库位类型',
      highSelectAttrs: {
        prop: 'storageTypeNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '区域编号',
      label: '库区',
      prop: 'areaCode',
      el: 'input',
      el: 'select',
      option: [],
      //disabled: disabled,
      placeholder: '请输入区域编号',
      placeholder: '请输入库区',
      highSelectAttrs: {
        prop: 'areaCode_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    // {
    //   label: '库区名称',
@@ -201,16 +293,28 @@
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入库区名称',
    //   highSelectAttrs: {
    //     prop: 'areaName_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_STRING,
    //   },
    // },
    // {
    //   label: '检验状态(1:未检验,2:检验通过,3:检验不通过)',
    //   prop: 'checkStatus',
    //   el: 'select',
    //   clearable: true,
    //   option: [],
    //   //disabled: disabled,
    //   placeholder: '请输入检验状态(1:未检验,2:检验通过,3:检验不通过)',
    // },
    {
      label: '检验状态',
      prop: 'checkStatus',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入检验状态',
      highSelectAttrs: {
        prop: 'checkStatus_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '是否锁定',
      prop: 'isLock',
@@ -219,16 +323,28 @@
      option: [],
      //disabled: disabled,
      placeholder: '请输入是否锁定',
      highSelectAttrs: {
        prop: 'isLock_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    // {
    //   label: '是否空托(2:否,1:是)',
    //   prop: 'emptyContainer',
    //   el: 'select',
    //   clearable: true,
    //   option: [],
    //   //disabled: disabled,
    //   placeholder: '请输入是否空托(2:否,1:是)',
    // },
    {
      label: '是否空托',
      prop: 'emptyContainer',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入是否空托',
      highSelectAttrs: {
        prop: 'emptyContainer_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '入库时间',
      prop: 'inStockTime',
@@ -242,21 +358,60 @@
      width: '100%',
      //disabled: disabled,
      placeholder: '请输入入库时间',
      isDateControl: true, // 显式标记为日期控件
    },
    // {
    //   label: '冗余字段1 - 预留扩展用途',
    //   prop: 'redundantField1',
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入冗余字段1 - 预留扩展用途',
    // },
    // {
    //   label: '冗余字段2 - 预留扩展用途',
    //   prop: 'redundantField2',
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入冗余字段2 - 预留扩展用途',
    // },
    {
      label: '工艺流向编号',
      prop: 'redundantField1',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入工艺流向编号',
      highSelectAttrs: {
        prop: 'redundantField1_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '管段编码',
      prop: 'redundantField2',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入管段编码',
      highSelectAttrs: {
        prop: 'redundantField2_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '管段名称',
      prop: 'redundantField3',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入redundantField3',
      highSelectAttrs: {
        prop: 'redundantField3_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '备注',
      prop: 'remark',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入备注',
      highSelectAttrs: {
        prop: 'remark_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '创建时间',
      prop: 'creationTime',
@@ -270,13 +425,7 @@
      width: '100%',
      //disabled: disabled,
      placeholder: '请输入',
    },
    {
      label: '备注',
      prop: 'remark',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入备注',
      isDateControl: true, // 显式标记为日期控件
    },
  ])
  /**
@@ -292,28 +441,54 @@
  const commonGetFormData = () => {
    const data = {
      materialId: formData.value.materialId || '',
      materialId_FilterMode: formData.value.materialId_FilterMode || '',
      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 || '',
      stockNumber_FilterMode: formData.value.stockNumber_FilterMode || '',
      materialBatch: formData.value.materialBatch || '',
      materialBatch_FilterMode: formData.value.materialBatch_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 || '',
      areaName_FilterMode: formData.value.areaName_FilterMode || '',
      checkStatus: formData.value.checkStatus || '',
      checkStatus_FilterMode: formData.value.checkStatus_FilterMode || '',
      isLock: formData.value.isLock || '',
      isLock_FilterMode: formData.value.isLock_FilterMode || '',
      emptyContainer: formData.value.emptyContainer || '',
      emptyContainer_FilterMode: formData.value.emptyContainer_FilterMode || '',
      inStockTime: formData.value.inStockTime || '',
      remark: formData.value.remark || '',
      remark_FilterMode: formData.value.remark_FilterMode || '',
      redundantField1: formData.value.redundantField1 || '',
      redundantField1_FilterMode:
        formData.value.redundantField1_FilterMode || '',
      redundantField2: formData.value.redundantField2 || '',
      redundantField2_FilterMode:
        formData.value.redundantField2_FilterMode || '',
      redundantField3: formData.value.redundantField3 || '',
      redundantField3_FilterMode:
        formData.value.redundantField3_FilterMode || '',
      creationTime: formData.value.creationTime || '',
      lastModificationTime: formData.value.lastModificationTime || '',
    }
@@ -334,10 +509,38 @@
    ctx.emit('confirmQuery', data)
  }
  /**
   * 重置公共select查询
   */
  const onResetForHighSelect = async () => {
    formData.value.materialId_FilterMode = 1
    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
  }
  /**
   * 重置查询
   */
  const onReset = async () => {
    formData.value = {}
    onResetForHighSelect() //重置公共select查询
    formData.value.materialId = ''
    formData.value.materialName = ''
    formData.value.containerNo = ''
@@ -350,7 +553,7 @@
    formData.value.materialModel = ''
    formData.value.placeNo = ''
    formData.value.placeStatus = ''
    formData.value.storageTypeNo = 1
    formData.value.storageTypeNo = ''
    formData.value.areaCode = ''
    formData.value.areaName = ''
    formData.value.checkStatus = ''
@@ -361,7 +564,8 @@
    formData.value.redundantField1 = ''
    formData.value.redundantField2 = ''
    formData.value.redundantField3 = ''
    formData.value.deletionTime = ''
    formData.value.creationTime = ''
    formData.value.lastModificationTime = ''
    //向父组件发送自定义事件
    ctx.emit('restQuery')
  }
@@ -379,6 +583,15 @@
      item.options = enumData.map((item) => ({
        label: item.description,
        value: item.value,
      }))
    }
  }
  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,
      }))
    }
  }
@@ -415,13 +628,12 @@
    const yesNoEnumEnum = await wmsMaterialStockDetailDrawer.getWmsEnumData({
      EnumName: 'YesNoEnum',
    })
    updateFormItemOptions('isLock', yesNoEnumEnum)
    const yesNoEnumEnum2 = await wmsMaterialStockDetailDrawer.getWmsEnumData({
      EnumName: 'YesNoEnum',
    })
    updateFormItemOptions('emptyContainer', yesNoEnumEnum2)
    updateFormItemOptions('emptyContainer', yesNoEnumEnum)
    const areaList = await getAreaAreaDataList()
    updateFormAreaOptions('areaCode', areaList)
  }
  commonQueryEnumForFrom()
  onResetForHighSelect() //重置公共select查询
  /**
   * 弹窗打开获取详情
   */