diff --git a/src/api/quote/quoteDetailBom.js b/src/api/quote/quoteDetailBom.js
new file mode 100644
index 0000000..d89e7b3
--- /dev/null
+++ b/src/api/quote/quoteDetailBom.js
@@ -0,0 +1,3 @@
+import {createAPI} from "../../utils/httpRequest";
+
+export const queryQuoteDetailBom = (data) => createAPI("/quote/detail/bom", "post", data);
diff --git a/src/api/quote/quoteDetailBomTree.js b/src/api/quote/quoteDetailBomTree.js
new file mode 100644
index 0000000..ebed5bf
--- /dev/null
+++ b/src/api/quote/quoteDetailBomTree.js
@@ -0,0 +1,11 @@
+import {createAPI} from "../../utils/httpRequest";
+
+
+export const queryQuoteDetailBomTree = (data) => createAPI("/quote/detail/bom/tree", "post", data);
+
+export const queryQuoteDetailBomTreeLevel = (data) => createAPI(`/quote/detail/bom/tree/level`,'post',data)
+
+
+export const queryQuoteDetailBomTreeAlternative = (data) => createAPI("/quote/detail/bom/tree/alternative", "post", data);
+
+export const changeQuoteDetailBomTree = (data) => createAPI(`quote/detail/bom/tree/change`, "post", data)
diff --git a/src/views/modules/quote/detail/primary/quoteDetailBom.vue b/src/views/modules/quote/detail/primary/quoteDetailBom.vue
index eb3bdeb..20dd9c2 100644
--- a/src/views/modules/quote/detail/primary/quoteDetailBom.vue
+++ b/src/views/modules/quote/detail/primary/quoteDetailBom.vue
@@ -1,4 +1,7 @@
@@ -229,18 +389,24 @@ export default {
- 切换版本
+ 切换版本
全级BOM结构
-
+
+ :data="treeData"
+ :props="props"
+ :default-expand-all="true"
+ :expand-on-click-node="false"
+ node-key="id"
+ highlight-current
+ @node-click="nodeClick" ref="tree">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
diff --git a/src/views/modules/quote/detail/primary/quoteDetailRouting.vue b/src/views/modules/quote/detail/primary/quoteDetailRouting.vue
index 223ba7b..e1238e9 100644
--- a/src/views/modules/quote/detail/primary/quoteDetailRouting.vue
+++ b/src/views/modules/quote/detail/primary/quoteDetailRouting.vue
@@ -1,4 +1,6 @@