|
@@ -1,13 +1,26 @@
|
|
|
<template>
|
|
|
<div v-show="visibleTree" class="container">
|
|
|
-
|
|
|
- <!-- <a-button style="margin: 20px;float:right;" type="primary" @click="handleBack()">返回</a-button> -->
|
|
|
-
|
|
|
<work-tree :list="list"></work-tree>
|
|
|
+ <div class="direction">
|
|
|
+ <div style="display:flex;">
|
|
|
+ <div class="part-background sphere"></div>
|
|
|
+ <div>设备部位</div>
|
|
|
+ </div>
|
|
|
+ <div style="display:flex;">
|
|
|
+ <div class="spare-background sphere"></div>
|
|
|
+ <div>设备备件</div>
|
|
|
+ </div>
|
|
|
+ <div style="display:flex;">
|
|
|
+ <div class="child-background sphere"></div>
|
|
|
+ <div>子设备</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { getSbTreeInfo } from '@/api/sb/modelbom'
|
|
|
+
|
|
|
import WorkTree from '@/components/WorkTree/WorkTree.vue'
|
|
|
export default {
|
|
|
name: 'SbTreeModel',
|
|
@@ -19,46 +32,64 @@ export default {
|
|
|
visibleTree: true,
|
|
|
list:
|
|
|
{
|
|
|
- taskName: '流程1',
|
|
|
- approverName: '审计测试人员,test1',
|
|
|
- children: [
|
|
|
- {
|
|
|
- taskName: '流程2',
|
|
|
- approverName: 'admin,审计局',
|
|
|
- children: [
|
|
|
- { taskName: '流程2', approverName: 'admin,审计局' },
|
|
|
- {
|
|
|
- taskName: '流程2',
|
|
|
- approverName: 'admin,审计局',
|
|
|
- children: [
|
|
|
- { taskName: '流程2', approverName: 'admin,审计局' },
|
|
|
- { taskName: '流程2', approverName: 'admin,审计局' }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- taskName: '流程2',
|
|
|
- approverName: 'admin,审计局',
|
|
|
- children: [
|
|
|
- {
|
|
|
- taskName: '流程2',
|
|
|
- approverName: 'admin,审计局',
|
|
|
- children: [
|
|
|
- { taskName: '流程2', approverName: 'admin,审计局' },
|
|
|
- { taskName: '流程2', approverName: 'admin,审计局' }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ created () {
|
|
|
+ this.base()
|
|
|
+ },
|
|
|
methods: {
|
|
|
- base (record) {
|
|
|
- this.visibleTree = true
|
|
|
- console.log(record)
|
|
|
+ base () {
|
|
|
+ getSbTreeInfo(this.$route.query.id).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ const list = this.formatTreeData(res.data)
|
|
|
+ this.list = list
|
|
|
+ console.log(list)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ formatTreeData (data, type = 3) {
|
|
|
+ const tree = {
|
|
|
+ name: data.name,
|
|
|
+ id: data.id,
|
|
|
+ type: type,
|
|
|
+ children: []
|
|
|
+ }
|
|
|
+ if (data.partInfoList.length > 0) {
|
|
|
+ data.partInfoList.forEach(item => {
|
|
|
+ const children = []
|
|
|
+ if (item.sparePartInfoVOList.length > 0) {
|
|
|
+ item.sparePartInfoVOList.forEach(item1 => {
|
|
|
+ children.push({
|
|
|
+ name: item1.spareName,
|
|
|
+ type: 2,
|
|
|
+ id: item1.id
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ tree.children.push({
|
|
|
+ name: item.name,
|
|
|
+ type: 1,
|
|
|
+ id: item.id,
|
|
|
+ children: children
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (data.sbModelSpareBomVOList.length > 0) {
|
|
|
+ data.sbModelSpareBomVOList.forEach(item => {
|
|
|
+ tree.children.push({
|
|
|
+ name: item.spareName,
|
|
|
+ id: item.id,
|
|
|
+ type: 2
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (data.subSbTreeVOList.length > 0) {
|
|
|
+ data.subSbTreeVOList.forEach(item => {
|
|
|
+ tree.children.push(this.formatTreeData(item, 4))
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return tree
|
|
|
},
|
|
|
handleBack () {
|
|
|
this.visibleTree = false
|
|
@@ -74,7 +105,32 @@ export default {
|
|
|
.container{
|
|
|
position: relative;
|
|
|
width: 100%;
|
|
|
-overflow-x:scroll;
|
|
|
-overflow-y: hidden;
|
|
|
+}
|
|
|
+.direction{
|
|
|
+ position: fixed;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-around;
|
|
|
+ top:20px;
|
|
|
+ right: 40px;
|
|
|
+ width: 100px;
|
|
|
+ height: 150px;
|
|
|
+}
|
|
|
+.sphere{
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ border-radius: 50%;
|
|
|
+}
|
|
|
+.sb-background {
|
|
|
+ background: linear-gradient(89.96deg, #fa6f32 0.05%, #fb9337 79.83%);
|
|
|
+}
|
|
|
+.child-background {
|
|
|
+ background: linear-gradient(89.96deg, #ec0808 0.05%, #ec6409 79.83%);
|
|
|
+}
|
|
|
+.part-background {
|
|
|
+ background: linear-gradient(90.04deg, #268bfb -16.37%, #33e1ae 137.34%);
|
|
|
+}
|
|
|
+.spare-background {
|
|
|
+ background: linear-gradient(90.04deg, #5c1ac7 -16.37%, #d11764 137.34%);
|
|
|
}
|
|
|
</style>
|