zs
2025-04-30 2f3617a5147d025ac13a70938859974f4b369b4b
HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
@@ -5,6 +5,10 @@
import isEqual from 'lodash/isEqual'
import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
import { cloneDeep } from 'lodash'
import {
  getWmsEnumData,
  getStoreDataList,
} from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
export const useWmsAreaDrawer = (props: any, ctx?: any) => {
  const wmsAreaDrawer = injectModel<WmsAreaDrawer>('wmsAreaDrawer')
@@ -15,6 +19,7 @@
  const formData = ref<Record<string, any>>({})
  // ref
  const formRef = ref()
  const disabled = ref(false)
  const current = computed(() => {
    return props.row || null
@@ -35,6 +40,7 @@
      label: '库区编号',
      prop: 'areaNo',
      el: 'input',
      disabled: disabled,
      placeholder: '请输入库区编号',
      rules: [{ required: true, message: '库区编号不能为空', trigger: 'blur' }],
    },
@@ -55,11 +61,7 @@
      label: '库区状态',
      prop: 'areaStatus',
      el: 'select',
      options: [
        { label: '启用', value: 'Active' },
        { label: '禁用', value: 'Inactive' },
        // 根据实际的 AreaStatusEnum 添加更多选项
      ],
      options: [],
      placeholder: '请选择库区状态',
      rules: [
        { required: true, message: '库区状态不能为空', trigger: 'change' },
@@ -69,11 +71,7 @@
      label: '库区类型',
      prop: 'areaType',
      el: 'select',
      options: [
        { label: '存储区', value: 'Storage' },
        { label: '装卸区', value: 'Loading' },
        // 根据实际的 AreaTypeEnum 添加更多选项
      ],
      options: [],
      placeholder: '请选择库区类型',
      rules: [
        { required: true, message: '库区类型不能为空', trigger: 'change' },
@@ -82,7 +80,8 @@
    {
      label: '仓库代码',
      prop: 'storeCode',
      el: 'input',
      el: 'select',
      options: [],
      placeholder: '请输入仓库代码',
    },
    {
@@ -173,10 +172,40 @@
      },
    }
  }
  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 updateFormStoreOptions = (propName: string, enumData: any[]) => {
    const item = formItems.find((item) => item.prop === propName)
    if (item && enumData) {
      item.options = enumData.map((item) => ({
        label: item.StoreCode,
        value: item.StoreName,
      }))
    }
  }
  /**
   * 弹窗打开获取详情
   */
  const onOpen = async () => {
    const areaStatusEnum = await getWmsEnumData({
      EnumName: 'AreaStatusEnum',
    })
    updateFormItemOptions('areaStatus', areaStatusEnum)
    const areaTypeEnum = await getWmsEnumData({
      EnumName: 'AreaTypeEnum',
    })
    updateFormItemOptions('areaType', areaTypeEnum)
    const storeList = await getStoreDataList()
    updateFormItemOptions('storeCode', storeList)
    if (current.value) {
      const res = await wmsAreaDrawer.getWmsAreaDetail(current.value)
@@ -191,8 +220,10 @@
        remark: res.remark, // 备注
        id: res.id,
      }
      disabled.value = true
      updateCheckData()
    } else {
      disabled.value = false
      formData.value = {}
      updateCheckData()
    }