zs
2025-04-30 3933f3629ec6282e5f070923f04bbf2c1add6687
HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
ÎļþÃû´Ó HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.ts ÐÞ¸Ä
@@ -1,4 +1,13 @@
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 { WmsMaterialDrawer } from '../Models/WmsMaterialDrawer'
import { ElMessage } from 'element-plus'
@@ -16,9 +25,23 @@
  // ref
  const formRef = ref()
  const disabled = ref(false)
  const current = computed(() => {
    return props.row || null
  })
  const inputNumber = (attrs) => {
    return (
      <el-input-number
        min="1"
        step="1"
        precision="0"
        {...attrs}
      ></el-input-number>
    )
  }
  const visible = computed({
    get() {
      return props.modelValue
@@ -35,6 +58,7 @@
      label: '物料编码',
      prop: 'materialCode',
      el: 'input',
      disabled: disabled,
      placeholder: '请输入物料编码',
      rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
    },
@@ -50,11 +74,7 @@
      prop: 'purchaseType',
      el: 'select',
      placeholder: '请选择采购类型',
      options: [
        { label: '类型1', value: 1 },
        { label: '类型2', value: 2 },
        // Add all enum values
      ],
      options: [],
      rules: [{ required: true, message: '请选择采购类型', trigger: 'change' }],
    },
    {
@@ -62,11 +82,7 @@
      prop: 'materialType',
      el: 'select',
      placeholder: '请选择物料类型',
      options: [
        { label: '类型A', value: 1 },
        { label: '类型B', value: 2 },
        // Add all enum values
      ],
      options: [],
      rules: [{ required: true, message: '请选择物料类型', trigger: 'change' }],
    },
    {
@@ -84,7 +100,14 @@
    {
      label: '外径(mm)',
      prop: 'outerDiameter',
      el: 'input-number',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入外径',
      step: 0.01,
      precision: 2,
@@ -92,7 +115,14 @@
    {
      label: '壁厚(mm)',
      prop: 'wallThickness',
      el: 'input-number',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入壁厚',
      step: 0.01,
      precision: 2,
@@ -106,7 +136,14 @@
    {
      label: '长度(m)',
      prop: 'length',
      el: 'input-number',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '请输入长度',
      step: 0.1,
      precision: 2,
@@ -115,10 +152,7 @@
      label: '是否主支管',
      prop: 'isMainBranch',
      el: 'select',
      options: [
        { label: '是', value: 1 },
        { label: '否', value: 2 },
      ],
      options: [],
    },
    {
      label: '生产工厂',
@@ -184,7 +218,7 @@
      wallThickness: formData.value.wallThickness,
      materialQuality: formData.value.materialQuality,
      length: formData.value.length,
      isMainBranch: formData.value.isMainBranch === 1,
      isMainBranch: formData.value.isMainBranch,
      factory: formData.value.factory,
      certification: formData.value.certification,
      remark: formData.value.remark,
@@ -206,10 +240,34 @@
      },
    }
  }
  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 materialTypeEnum = await wmsMaterialDrawer.getWmsEnumData({
      EnumName: 'MaterialTypeEnum',
    })
    updateFormItemOptions('materialType', materialTypeEnum)
    const purchaseTypeEnum = await wmsMaterialDrawer.getWmsEnumData({
      EnumName: 'PurchaseTypeEnum',
    })
    updateFormItemOptions('purchaseType', purchaseTypeEnum)
    const yesOrNoTypeEnum = await wmsMaterialDrawer.getWmsEnumData({
      EnumName: 'YesNoEnum',
    })
    updateFormItemOptions('isMainBranch', yesOrNoTypeEnum)
    if (current.value) {
      const res = await wmsMaterialDrawer.getWmsMaterialDetail(current.value)
@@ -224,15 +282,18 @@
        wallThickness: res.wallThickness,
        materialQuality: res.materialQuality,
        length: res.length,
        isMainBranch: res.isMainBranch ? 1 : 2,
        isMainBranch: res.isMainBranch,
        factory: res.factory,
        certification: res.certification,
        remark: res.remark,
        id: res.id,
      }
      disabled.value = true
      updateCheckData()
    } else {
      formData.value = {}
      disabled.value = false
      updateCheckData()
    }
  }