68 lines
1.1 KiB
Vue
68 lines
1.1 KiB
Vue
<template>
|
|
<view class="main">
|
|
<movable-area class="tree" :style="'width:'+screen.width*4+'px;height:'+screen.height*4+'px;'">
|
|
<movable-view class="canvas" direction="all" out-of-bounds scale :x="screen.width/2">
|
|
<Node :data="treeData" isTop></Node>
|
|
</movable-view>
|
|
</movable-area>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import Node from "./Node.vue"
|
|
export default {
|
|
name: 'BuTingTree',
|
|
props: {
|
|
data: {
|
|
type: Array,
|
|
default: []
|
|
}
|
|
},
|
|
components:{
|
|
Node
|
|
},
|
|
data() {
|
|
return {
|
|
screen: {
|
|
height: 1920,
|
|
width: 1080
|
|
},
|
|
treeData: []
|
|
}
|
|
},
|
|
mounted() {
|
|
let system = uni.getSystemInfoSync()
|
|
this.screen = {
|
|
height: system.screenHeight,
|
|
width: system.screenWidth
|
|
}
|
|
console.log(this.screen)
|
|
},
|
|
watch:{
|
|
data(newData,old){
|
|
this.treeData = newData
|
|
}
|
|
},
|
|
methods: {
|
|
|
|
filterTree(tree) {
|
|
return tree.map(item => {
|
|
|
|
if (item.children.length > 0) {
|
|
item.children = this.filterTree(item.children)
|
|
}
|
|
return item
|
|
})
|
|
},
|
|
onChange(e) {
|
|
console.log(e)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
</style>
|