zs
2025-04-30 98749f73549cbbb1eb1db0916f3f2073e006384e
HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
ÎļþÃû´Ó HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.ts ÐÞ¸Ä
@@ -1,10 +1,20 @@
import { ref, onMounted, reactive, computed, Ref, watch } from 'vue'
import {
  ref,
  onMounted,
  reactive,
  computed,
  Ref,
  watch,
  SetupContext,
  h,
} from 'vue'
import { injectModel } from '@/libs/Provider/Provider'
import { WmsContainerDrawer } from '../Models/WmsContainerDrawer'
import { ElMessage } from 'element-plus'
import isEqual from 'lodash/isEqual'
import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
import { cloneDeep } from 'lodash'
import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
export const useWmsContainerDrawer = (props: any, ctx?: any) => {
  const wmsContainerDrawer =
@@ -16,6 +26,18 @@
  const formData = ref<Record<string, any>>({})
  // ref
  const formRef = ref()
  const disabled = ref(false)
  const inputNumber = (attrs) => {
    return (
      <el-input-number
        min="1"
        step="1"
        precision="0"
        {...attrs}
      ></el-input-number>
    )
  }
  const current = computed(() => {
    return props.row || null
@@ -44,11 +66,7 @@
      prop: 'containerType',
      el: 'select',
      placeholder: '请选择托盘类型',
      options: [
        { label: '类型1', value: 0 },
        { label: '类型2', value: 1 },
        // æ·»åŠ æ‰€æœ‰æžšä¸¾å€¼
      ],
      options: [],
      rules: [{ required: true, message: '请选择托盘类型', trigger: 'change' }],
    },
    {
@@ -56,17 +74,20 @@
      prop: 'containerStatus',
      el: 'select',
      placeholder: '请选择托盘状态',
      options: [
        { label: '状态1', value: 0 },
        { label: '状态2', value: 1 },
        // æ·»åŠ æ‰€æœ‰æžšä¸¾å€¼
      ],
      options: [],
      rules: [{ required: true, message: '请选择托盘状态', trigger: 'change' }],
    },
    {
      label: '长度(mm)',
      prop: 'specLength',
      el: 'input',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入长度',
      step: 0.01,
      precision: 2,
@@ -74,7 +95,14 @@
    {
      label: '宽度(mm)',
      prop: 'specWidth',
      el: 'input',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入宽度',
      step: 0.01,
      precision: 2,
@@ -82,15 +110,74 @@
    {
      label: '高度(mm)',
      prop: 'specHeight',
      el: 'input',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入高度',
      step: 0.01,
      precision: 2,
    },
    {
      label: '限长(mm)',
      prop: 'limitLength',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入载重上限',
      step: 0.1,
      precision: 2,
    },
    {
      label: '限宽(mm)',
      prop: 'limitWidth',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入载重上限',
      step: 0.1,
      precision: 2,
    },
    {
      label: '限高(mm)',
      prop: 'limitHeight',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入载重上限',
      step: 0.1,
      precision: 2,
    },
    {
      label: '载重上限(kg)',
      prop: 'maxWeight',
      el: 'input',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入载重上限',
      step: 0.1,
      precision: 2,
@@ -168,10 +255,31 @@
      },
    }
  }
  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 containerTypeEnum = await getWmsEnumData({
      EnumName: 'ContainerTypeEnum',
    })
    updateFormItemOptions('containerType', containerTypeEnum)
    const containerStatusEnum = await getWmsEnumData({
      EnumName: 'ContainerStatusEnum',
    })
    updateFormItemOptions('containerStatus', containerStatusEnum)
    if (current.value) {
      const res = await wmsContainerDrawer.getWmsContainerDetail(current.value)
@@ -190,8 +298,10 @@
        id: res.id,
      }
      updateCheckData()
      disabled.value = true
    } else {
      formData.value = {}
      disabled.value = false
      updateCheckData()
    }
  }