| | |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useWmsMaterialDrawer = (props: any, ctx?: any) => { |
| | | const wmsmaterialDrawer = |
| | | injectModel<WmsMaterialDrawer>('wmsmaterialDrawer') |
| | | const wmsMaterialDrawer = injectModel<WmsMaterialDrawer>('wmsMaterialDrawer') |
| | | /** |
| | | * 用来对比的初始化数据 |
| | | */ |
| | |
| | | */ |
| | | 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: '请输入备注', |
| | | }, |
| | | ]) |
| | |
| | | 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') |
| | |
| | | */ |
| | | 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, |
| | | } |