zs
2025-05-05 6ecd5b23904d2e862dd572ab7feb1a85824fc9ad
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' }],
    },
@@ -46,20 +52,10 @@
      rules: [{ required: true, message: '库区名称不能为空', trigger: 'blur' }],
    },
    {
      label: '描述',
      prop: 'areaDesc',
      el: 'input',
      placeholder: '请输入描述',
    },
    {
      label: '库区状态',
      prop: 'areaStatus',
      el: 'select',
      options: [
        { label: '启用', value: 'Active' },
        { label: '禁用', value: 'Inactive' },
        // 根据实际的 AreaStatusEnum 添加更多选项
      ],
      options: [],
      placeholder: '请选择库区状态',
      rules: [
        { required: true, message: '库区状态不能为空', trigger: 'change' },
@@ -69,11 +65,7 @@
      label: '库区类型',
      prop: 'areaType',
      el: 'select',
      options: [
        { label: '存储区', value: 'Storage' },
        { label: '装卸区', value: 'Loading' },
        // 根据实际的 AreaTypeEnum 添加更多选项
      ],
      options: [],
      placeholder: '请选择库区类型',
      rules: [
        { required: true, message: '库区类型不能为空', trigger: 'change' },
@@ -82,35 +74,35 @@
    {
      label: '仓库代码',
      prop: 'storeCode',
      el: 'input',
      el: 'select',
      options: [],
      // storeValueAndLabel: true,
      placeholder: '请输入仓库代码',
    },
    // {
    //   label: '仓库名称',
    //   prop: 'storeName',
    //   el: 'input',
    //   placeholder: '请输入仓库名称',
    // },
    // {
    //   label: '排序',
    //   prop: 'sort',
    //   el: 'input-number',
    //   placeholder: '请输入排序',
    //   rules: [{ required: true, message: '排序不能为空', trigger: 'blur' }],
    // },
    {
      label: '仓库名称',
      prop: 'storeName',
      label: '描述',
      prop: 'areaDesc',
      el: 'input',
      placeholder: '请输入仓库名称',
    },
    {
      label: '排序',
      prop: 'sort',
      el: 'input-number',
      placeholder: '请输入排序',
      rules: [{ required: true, message: '排序不能为空', trigger: 'blur' }],
      placeholder: '请输入描述',
    },
    {
      label: '备注',
      prop: 'remark',
      el: 'input',
      placeholder: '请输入备注',
    },
    {
      label: '是否禁用',
      prop: 'isDisabled',
      el: 'switch',
      rules: [
        { required: true, message: '是否禁用不能为空', trigger: 'change' },
      ],
    },
  ])
  /**
@@ -146,6 +138,7 @@
   */
  const onConfirm = async () => {
    await formRef.value?.validate()
    console.log(formData.value)
    const data = {
      areaNo: formData.value.areaNo, // 库区编号
      areaName: formData.value.areaName, // 库区名称
@@ -153,7 +146,7 @@
      areaStatus: formData.value.areaStatus, // 库区状态
      areaType: formData.value.areaType, // 库区类型
      storeCode: formData.value.storeCode, // 仓库代码
      storeName: formData.value.storeName, // 仓库名称
      // storeName: formData.value.storeName, // 仓库名称
      remark: formData.value.remark, // 备注
    }
    if (!current.value) {
@@ -173,10 +166,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.storeName,
        value: item.storeCode,
      }))
    }
  }
  /**
   * 弹窗打开获取详情
   */
  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()
    updateFormStoreOptions('storeCode', storeList)
    if (current.value) {
      const res = await wmsAreaDrawer.getWmsAreaDetail(current.value)
@@ -187,13 +210,19 @@
        areaStatus: res.areaStatus, // 库区状态
        areaType: res.areaType, // 库区类型
        storeCode: res.storeCode, // 仓库代码
        storeName: res.storeName, // 仓库名称
        // storeName: res.storeName, // 仓库名称
        remark: res.remark, // 备注
        id: res.id,
      }
      disabled.value = true
      updateCheckData()
    } else {
      formData.value = {}
      disabled.value = false
      formData.value = {
        areaStatus: 1, // 库区状态
        areaType: 1, // 库区类型
        storeCode: storeList[0],
      }
      updateCheckData()
    }
  }