zs
2025-04-29 716eeb4b87efbdc5b149410bbea4c1f35ac116ac
HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.ts
@@ -7,8 +7,7 @@
import { cloneDeep } from 'lodash'
export const useWmsMaterialDrawer = (props: any, ctx?: any) => {
  const wmsmaterialDrawer =
    injectModel<WmsMaterialDrawer>('wmsmaterialDrawer')
  const wmsMaterialDrawer = injectModel<WmsMaterialDrawer>('wmsMaterialDrawer')
  /**
   * 用来对比的初始化数据
   */
@@ -33,23 +32,111 @@
   */
  const formItems = reactive([
    {
      label: '名称',
      prop: 'name',
      label: '物料编码',
      prop: 'materialCode',
      el: 'input',
      placeholder: '请输入名称',
      rules: [{ required: true, message: '名称', trigger: 'blur' }],
      placeholder: '请输入物料编码',
      rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
    },
    {
      label: '编号',
      prop: 'code',
      label: '物料名称',
      prop: 'materialName',
      el: 'input',
      placeholder: '请输入编号',
      rules: [{ required: true, message: '编号', trigger: 'blur' }],
      placeholder: '请输入物料名称',
      rules: [{ required: true, message: '物料名称不能为空', trigger: 'blur' }],
    },
    {
      label: '采购类型',
      prop: 'purchaseType',
      el: 'select',
      placeholder: '请选择采购类型',
      options: [
        { label: '类型1', value: 1 },
        { label: '类型2', value: 2 },
        // Add all enum values
      ],
      rules: [{ required: true, message: '请选择采购类型', trigger: 'change' }],
    },
    {
      label: '物料类型',
      prop: 'materialType',
      el: 'select',
      placeholder: '请选择物料类型',
      options: [
        { label: '类型A', value: 1 },
        { label: '类型B', value: 2 },
        // Add all enum values
      ],
      rules: [{ required: true, message: '请选择物料类型', trigger: 'change' }],
    },
    {
      label: '主单位',
      prop: 'primaryUnit',
      el: 'input',
      placeholder: '请输入主单位(如: kg, m, 个)',
    },
    {
      label: '规格/标准',
      prop: 'standard',
      el: 'input',
      placeholder: '请输入规格/标准(如: GB/T 8163-2018)',
    },
    {
      label: '外径(mm)',
      prop: 'outerDiameter',
      el: 'input-number',
      placeholder: '请输入外径',
      step: 0.01,
      precision: 2,
    },
    {
      label: '壁厚(mm)',
      prop: 'wallThickness',
      el: 'input-number',
      placeholder: '请输入壁厚',
      step: 0.01,
      precision: 2,
    },
    {
      label: '材质',
      prop: 'materialQuality',
      el: 'input',
      placeholder: '请输入材质(如: 304不锈钢)',
    },
    {
      label: '长度(m)',
      prop: 'length',
      el: 'input-number',
      placeholder: '请输入长度',
      step: 0.1,
      precision: 2,
    },
    {
      label: '是否主支管',
      prop: 'isMainBranch',
      el: 'select',
      options: [
        { label: '是', value: 1 },
        { label: '否', value: 2 },
      ],
    },
    {
      label: '生产工厂',
      prop: 'factory',
      el: 'input',
      placeholder: '请输入生产工厂',
    },
    {
      label: '证书编号',
      prop: 'certification',
      el: 'input',
      placeholder: '请输入证书编号',
    },
    {
      label: '备注',
      prop: 'remark',
      el: 'input',
      type: 'textarea',
      placeholder: '请输入备注',
    },
  ])
@@ -87,16 +174,26 @@
  const onConfirm = async () => {
    await formRef.value?.validate()
    const data = {
      name: formData.value.name,
      code: formData.value.code,
      materialCode: formData.value.materialCode,
      materialName: formData.value.materialName,
      purchaseType: formData.value.purchaseType,
      materialType: formData.value.materialType,
      primaryUnit: formData.value.primaryUnit,
      standard: formData.value.standard,
      outerDiameter: formData.value.outerDiameter,
      wallThickness: formData.value.wallThickness,
      materialQuality: formData.value.materialQuality,
      length: formData.value.length,
      isMainBranch: formData.value.isMainBranch === 1,
      factory: formData.value.factory,
      certification: formData.value.certification,
      remark: formData.value.remark,
      sort: props.sort,
    }
    if (!current.value) {
      await wmsmaterialDrawer.addWmsMaterial(data)
      await wmsMaterialDrawer.addWmsMaterial(data)
    } else {
      const id = current.value.id
      await wmsmaterialDrawer.updateWmsMaterial(id, data)
      await wmsMaterialDrawer.updateWmsMaterial(id, data)
    }
    ElMessage.success('保存成功')
    ctx.emit('confirm')
@@ -114,11 +211,22 @@
   */
  const onOpen = async () => {
    if (current.value) {
      const res = await wmsmaterialDrawer.getWmsMaterialDetail(current.value)
      const res = await wmsMaterialDrawer.getWmsMaterialDetail(current.value)
      formData.value = {
        name: res.name,
        code: res.code,
        materialCode: res.materialCode,
        materialName: res.materialName,
        purchaseType: res.purchaseType,
        materialType: res.materialType,
        primaryUnit: res.primaryUnit,
        standard: res.standard,
        outerDiameter: res.outerDiameter,
        wallThickness: res.wallThickness,
        materialQuality: res.materialQuality,
        length: res.length,
        isMainBranch: res.isMainBranch ? 1 : 2,
        factory: res.factory,
        certification: res.certification,
        remark: res.remark,
        id: res.id,
      }