From f4a636cb8848a0032ea240a52f7aab710fb4c179 Mon Sep 17 00:00:00 2001 From: xs Date: Thu, 27 Feb 2025 19:00:28 +0800 Subject: [PATCH] =?UTF-8?q?1.2.2=20=E7=94=9F=E4=BA=A7bom=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/baseStructureBom/types.ts | 42 +- src/api/mes/materialBom/index.ts | 27 + src/api/mes/materialBom/types.ts | 68 +- .../mes/baseMaterialInfo/addMaterial.vue | 8 + src/views/mes/baseStructureBom/index.vue | 18 +- src/views/mes/materialBom/index.vue | 1140 +++++++---------- 6 files changed, 613 insertions(+), 690 deletions(-) diff --git a/src/api/mes/baseStructureBom/types.ts b/src/api/mes/baseStructureBom/types.ts index 6a52171..3b663b7 100644 --- a/src/api/mes/baseStructureBom/types.ts +++ b/src/api/mes/baseStructureBom/types.ts @@ -84,10 +84,10 @@ export interface BaseStructureBomVO { */ updateTime: string; - /** - * 子对象 - */ - children: BaseStructureBomVO[]; + /** + * 子对象 + */ + children: BaseStructureBomVO[]; } export interface BaseStructureBomForm extends BaseEntity { @@ -200,11 +200,37 @@ export interface BaseStructureBomQuery { */ activeFlag?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; + + /** + * 物料类型名称 + */ + materialTypeCode?: string; } +export interface BaseStructureBomTreeVO { + /** + * 主键标识 + */ + id: string | number; + /** + * 父级标识 + */ + parentId: string | number; + + /** + * 物料类型ID + */ + materialTypeId: string | number; + + /** + * 物料类型名称 + */ + label: string; + +} diff --git a/src/api/mes/materialBom/index.ts b/src/api/mes/materialBom/index.ts index d32797f..cf70a9e 100644 --- a/src/api/mes/materialBom/index.ts +++ b/src/api/mes/materialBom/index.ts @@ -88,3 +88,30 @@ export const addBatchMaterialBom = (data) => { data: data }); }; + + + +/** + * 查询生产bom下拉树结构 + */ +export const materialBomTreeSelect = (): AxiosPromise => { + return request({ + url: '/mes/materialBom/materialBomTree', + method: 'get' + }); +}; + + +/** + * 查询物料BOM信息列表 + * @param query + * @returns {*} + */ + +export const listMaterialBomJoinStructure = (query?: MaterialBomQuery): AxiosPromise => { + return request({ + url: '/mes/materialBom/joinStructureList', + method: 'get', + params: query + }); +}; diff --git a/src/api/mes/materialBom/types.ts b/src/api/mes/materialBom/types.ts index d03cc3a..8f6abc4 100644 --- a/src/api/mes/materialBom/types.ts +++ b/src/api/mes/materialBom/types.ts @@ -104,10 +104,35 @@ export interface MaterialBomVO { */ updateTime: string; - /** - * 子对象 - */ - children: MaterialBomVO[]; + /** + * 子对象 + */ + children: MaterialBomVO[]; + + /** + * 物料类型ID + */ + materialTypeId: number; + + /** + * 物料类型编号 + */ + materialTypeCode: string; + + /** + * 物料类型名称 + */ + materialTypeName: string; + + /** + * 物料单位名称 + */ + unitName: string; + + /** + * 主键标识(tree转换) + */ + id: string | number; } export interface MaterialBomForm extends BaseEntity { @@ -131,6 +156,11 @@ export interface MaterialBomForm extends BaseEntity { */ materialName?: string; + /** + * 物料类型ID + */ + materialTypeId?: string | number; + /** * bom说明 */ @@ -192,6 +222,12 @@ export interface MaterialBomForm extends BaseEntity { remark?: string; materialBomList?: any[];//批量新增 + + /** + * 物料类型名称 + */ + materialTypeName?: string; + } export interface MaterialBomQuery { @@ -271,10 +307,26 @@ export interface MaterialBomQuery { */ activeFlag?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; + + /** + * 物料类型代码 + */ + materialTypeCode?: string; + + /** + * 物料类型名称 + */ + materialTypeName?: string; + + /** + * 结构树的parentId + */ + bomStructureParentId?: string | number; + } diff --git a/src/views/mes/baseMaterialInfo/addMaterial.vue b/src/views/mes/baseMaterialInfo/addMaterial.vue index d557fe6..11e7737 100644 --- a/src/views/mes/baseMaterialInfo/addMaterial.vue +++ b/src/views/mes/baseMaterialInfo/addMaterial.vue @@ -370,6 +370,13 @@ const data = reactive>({ const { queryParams, form, rules } = toRefs(data); +const props = defineProps({ + materialTypeId: Object +}); + +const { materialTypeId } = toRefs(props); + + /** 下拉框查询工厂信息列表 */ let factoryList = ref([]) const getFactorySelect = async () => { @@ -381,6 +388,7 @@ const getFactorySelect = async () => { const getList = async () => { loading.value = true; queryParams.value.params = {}; + queryParams.value.materialTypeId = materialTypeId.value; proxy?.addDateRange(queryParams.value, dateRangeApproveDate.value, 'ApproveDate'); const res = await listBaseMaterialInfo(queryParams.value); baseMaterialInfoList.value = res.rows; diff --git a/src/views/mes/baseStructureBom/index.vue b/src/views/mes/baseStructureBom/index.vue index 5a65319..42a6354 100644 --- a/src/views/mes/baseStructureBom/index.vue +++ b/src/views/mes/baseStructureBom/index.vue @@ -2,7 +2,7 @@
- + - + 物料类型 @@ -83,7 +83,7 @@ - + @@ -168,7 +168,7 @@ import { addBaseStructureBom, updateBaseStructureBom, getMaterialTypeList } from "@/api/mes/baseStructureBom"; -import {BaseStructureBomVO, BaseStructureBomQuery, BaseStructureBomForm} from '@/api/mes/baseStructureBom/types'; +import {BaseStructureBomVO, BaseStructureBomTreeVO,BaseStructureBomQuery, BaseStructureBomForm} from '@/api/mes/baseStructureBom/types'; import {BaseMaterialTypeVO} from '@/api/mes/baseMaterialType/types'; import {to} from 'await-to-js'; import {nextTick} from "vue"; @@ -177,6 +177,7 @@ const router = useRouter(); const {proxy} = getCurrentInstance() as ComponentInternalInstance; const {sys_normal_disable, sys_user_sex} = toRefs(proxy?.useDict('sys_normal_disable', 'sys_user_sex')); const structureBomList = ref(); +const treeLoading = ref(false); const loading = ref(false); const submitLoading = ref(false); const showSearch = ref(true); @@ -186,7 +187,7 @@ const multiple = ref(true); const total = ref(0); const dateRange = ref<[DateModelType, DateModelType]>(['', '']); const materialTypeName = ref(''); -const structureBomOptions = ref([]); +const structureBomOptions = ref([]); const materialTypeOptions = ref([]); const parentMaterialTypeName = ref(''); const parentParentMaterialTypeName = ref(''); @@ -266,6 +267,8 @@ watchEffect( /** 查询物料类型bom结构树下拉树结构 */ const getTreeSelect = async () => { + treeLoading.value = true; + loading.value = true; const res = await structureBomTreeSelect(); // alert(JSON.stringify(res)) structureBomOptions.value = res.data; @@ -292,13 +295,14 @@ const getList = async () => { loading.value = true; const res = await listBaseStructureBom(queryParams.value); // alert(JSON.stringify(res)) - loading.value = false; structureBomList.value = res.data; + loading.value = false; + treeLoading.value = false; // total.value = res.total; }; /** 节点单击事件 */ -const handleNodeClick = (data: BaseStructureBomVO) => { +const handleNodeClick = (data: BaseStructureBomTreeVO) => { queryParams.value.parentId = data.id; parentMaterialTypeName.value = data.label; if (data.parentId === 0) { diff --git a/src/views/mes/materialBom/index.vue b/src/views/mes/materialBom/index.vue index 79a51f8..df76284 100644 --- a/src/views/mes/materialBom/index.vue +++ b/src/views/mes/materialBom/index.vue @@ -1,370 +1,274 @@ - + +