diff --git a/src/api/mes/bom/index.ts b/src/api/mes/bom/index.ts
new file mode 100644
index 00000000..12687d0a
--- /dev/null
+++ b/src/api/mes/bom/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+// 产品BOM VO
+export interface BomVO {
+ id: number // ID
+ code: string // BOM编码
+ version: string // BOM版本
+ productId: number // 产品ID
+ unitId: number // 单位ID
+ yieldRate: number // 成品率%
+ remark: string // 备注
+ isEnable: boolean // 是否启用
+}
+
+// 产品BOM API
+export const BomApi = {
+ // 查询产品BOM分页
+ getBomPage: async (params: any) => {
+ return await request.get({ url: `/mes/bom/page`, params })
+ },
+
+ // 查询产品BOM详情
+ getBom: async (id: number) => {
+ return await request.get({ url: `/mes/bom/get?id=` + id })
+ },
+
+ // 新增产品BOM
+ createBom: async (data: BomVO) => {
+ return await request.post({ url: `/mes/bom/create`, data })
+ },
+
+ // 修改产品BOM
+ updateBom: async (data: BomVO) => {
+ return await request.put({ url: `/mes/bom/update`, data })
+ },
+
+ // 删除产品BOM
+ deleteBom: async (id: number) => {
+ return await request.delete({ url: `/mes/bom/delete?id=` + id })
+ },
+
+ // 导出产品BOM Excel
+ exportBom: async (params) => {
+ return await request.download({ url: `/mes/bom/export-excel`, params })
+ },
+
+// ==================== 子表(产品BOM明细) ====================
+
+ // 获得产品BOM明细列表
+ getBomDetailListByBomId: async (bomId) => {
+ return await request.get({ url: `/mes/bom/bom-detail/list-by-bom-id?bomId=` + bomId })
+ }
+}
\ No newline at end of file
diff --git a/src/views/mes/bom/BomForm.vue b/src/views/mes/bom/BomForm.vue
new file mode 100644
index 00000000..351ee72f
--- /dev/null
+++ b/src/views/mes/bom/BomForm.vue
@@ -0,0 +1,155 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/mes/bom/components/BomDetailForm.vue b/src/views/mes/bom/components/BomDetailForm.vue
new file mode 100644
index 00000000..8935de1f
--- /dev/null
+++ b/src/views/mes/bom/components/BomDetailForm.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+ —
+
+
+
+
+
+ + 添加产品BOM明细
+
+
+
\ No newline at end of file
diff --git a/src/views/mes/bom/components/BomDetailList.vue b/src/views/mes/bom/components/BomDetailList.vue
new file mode 100644
index 00000000..46d0a1ae
--- /dev/null
+++ b/src/views/mes/bom/components/BomDetailList.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/mes/bom/index.vue b/src/views/mes/bom/index.vue
new file mode 100644
index 00000000..c15b575a
--- /dev/null
+++ b/src/views/mes/bom/index.vue
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file