diff --git a/src/api/mes/md/item/batchConfig/index.ts b/src/api/mes/md/item/batchConfig/index.ts new file mode 100644 index 000000000..8a36e96bd --- /dev/null +++ b/src/api/mes/md/item/batchConfig/index.ts @@ -0,0 +1,34 @@ +import request from '@/config/axios' + +// MES 物料批次属性配置 VO +export interface MdItemBatchConfigVO { + id?: number // 编号 + itemId: number // 物料编号 + produceDateFlag: boolean // 批次属性-生产日期 + expireDateFlag: boolean // 批次属性-有效期 + receiptDateFlag: boolean // 批次属性-入库日期 + vendorFlag: boolean // 批次属性-供应商 + clientFlag: boolean // 批次属性-客户 + salesOrderCodeFlag: boolean // 批次属性-销售订单编号 + purchaseOrderCodeFlag: boolean // 批次属性-采购订单编号 + workorderFlag: boolean // 批次属性-生产工单 + taskFlag: boolean // 批次属性-生产任务 + workstationFlag: boolean // 批次属性-工位 + toolFlag: boolean // 批次属性-工具 + moldFlag: boolean // 批次属性-模具 + lotNumberFlag: boolean // 批次属性-生产批号 + qualityStatusFlag: boolean // 批次属性-质量状态 +} + +// MES 物料批次属性配置 API +export const MdItemBatchConfigApi = { + // 根据物料编号获取批次属性配置 + getBatchConfigByItemId: async (itemId: number) => { + return await request.get({ url: `/mes/md/item-batch-config/get-by-item-id?itemId=` + itemId }) + }, + + // 保存批次属性配置(新增或更新) + saveBatchConfig: async (data: MdItemBatchConfigVO) => { + return await request.post({ url: `/mes/md/item-batch-config/save`, data }) + } +} diff --git a/src/views/mes/md/item/MdItemBatchConfigForm.vue b/src/views/mes/md/item/MdItemBatchConfigForm.vue new file mode 100644 index 000000000..f534374e0 --- /dev/null +++ b/src/views/mes/md/item/MdItemBatchConfigForm.vue @@ -0,0 +1,122 @@ + + + + + 保存批次属性 + + + + 生产日期 + 质量状态 + + + + 供应商 + 采购订单编号 + 生产批号 + 有效期 + 入库日期 + + + + + 客户 + 销售订单编号 + 生产工单 + 生产任务 + 工位 + 工具 + 模具 + + + + + + + + diff --git a/src/views/mes/md/item/MdItemForm.vue b/src/views/mes/md/item/MdItemForm.vue index 41a2f38e9..0ed263799 100644 --- a/src/views/mes/md/item/MdItemForm.vue +++ b/src/views/mes/md/item/MdItemForm.vue @@ -46,7 +46,7 @@ - - - + + @@ -145,6 +144,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { generateRandomStr } from '@/utils' import { MdItemApi, MdItemVO } from '@/api/mes/md/item' import { MdItemTypeApi, MdItemTypeVO } from '@/api/mes/md/item/type' +import MdItemBatchConfigForm from './MdItemBatchConfigForm.vue' import { MdUnitMeasureApi, MdUnitMeasureVO } from '@/api/mes/md/unitmeasure' import { CommonStatusEnum } from '@/utils/constants' import { defaultProps, handleTree } from '@/utils/tree' @@ -183,9 +183,19 @@ const formRules = reactive({ status: [{ required: true, message: '状态不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref -const itemTypeList = ref([]) // 物料分类列表 +const itemTypeTree = ref([]) // 物料分类树 +const itemTypeList = ref([]) // 物料分类列表(扁平) const unitMeasureList = ref([]) // 计量单位列表 +/** 当前物料的「物料/产品」标识 */ +const currentItemOrProduct = computed(() => { + if (!formData.value.itemTypeId) { + return '' + } + const itemType = itemTypeList.value.find((t) => t.id === formData.value.itemTypeId) + return itemType?.itemOrProduct || '' +}) + /** 生成物料编码 */ const generateCode = () => { // TODO @芋艿:后续对接后端编码生成接口 @@ -209,8 +219,8 @@ const open = async (type: string, id?: number) => { } } // 物料分类 - const categoryData = await MdItemTypeApi.getItemTypeSimpleList() - itemTypeList.value = handleTree(categoryData, 'id', 'parentId') + itemTypeList.value = await MdItemTypeApi.getItemTypeSimpleList() + itemTypeTree.value = handleTree(itemTypeList.value) // 计量单位 unitMeasureList.value = await MdUnitMeasureApi.getUnitMeasureSimpleList() }