diff --git a/source/src/devtools/index.vue b/source/src/devtools/index.vue index c11ca35..d4db8b5 100644 --- a/source/src/devtools/index.vue +++ b/source/src/devtools/index.vue @@ -17,11 +17,16 @@
@@ -43,6 +48,7 @@ import SceneProperty from "@/devtools/ccType/SceneProperty.vue"; import ComponentsProperty from "@/devtools/ccType/ComponentsProperty.vue"; import NodeBaseProperty from "@/devtools/ccType/NodeBaseProperty.vue"; import {DataType, testData} from "./data" +import {NodeData} from "@/devtools/type"; const PluginMsg = require("../core/plugin-msg"); @Component({ @@ -53,8 +59,10 @@ const PluginMsg = require("../core/plugin-msg"); export default class Index extends Vue { private isShowDebug: boolean = false; treeItemData: Array> = []; - treeData: Array> = [] + treeData: Array = [] bgConn: chrome.runtime.Port | null = null// 与background.js的链接 + expandedKeys: Array = []; + selectedUUID: string | null = null; // el-tree的渲染key defaultProps = { @@ -89,7 +97,7 @@ export default class Index extends Vue { if (!data) { return; } - let eventData = data.data; + let eventData: Array = data.data; let eventMsg = data.msg; if (eventMsg === PluginMsg.Msg.ListInfo) { this.isShowDebug = true; @@ -97,6 +105,12 @@ export default class Index extends Vue { eventData = [eventData] } this.treeData = eventData; + if (this.selectedUUID) { + this.$nextTick(() => { + this.$refs.tree.setCurrentKey(this.selectedUUID); + // todo 需要重新获取下node的数据 + }) + } } else if (eventMsg === PluginMsg.Msg.Support) { this.isShowDebug = eventData.support; } else if (eventMsg === PluginMsg.Msg.NodeInfo) { @@ -119,7 +133,8 @@ export default class Index extends Vue { this.treeItemData = testData; } - handleNodeClick(data: any) { + handleNodeClick(data: NodeData) { + this.selectedUUID = data.uuid; // todo 去获取节点信息 // console.log(data); let uuid = data.uuid; @@ -183,6 +198,20 @@ export default class Index extends Vue { this.evalInspectorFunction("onMemoryInfo"); } + onNodeExpand(data: NodeData, a, b) { + if (data.hasOwnProperty('uuid')) { + this.expandedKeys.push(data.uuid) + } + } + + onNodeCollapse(data: NodeData) { + if (data.hasOwnProperty('uuid')) { + let index = this.expandedKeys.findIndex(el => el === data.uuid); + if (index !== -1) { + this.expandedKeys.splice(index, 1) + } + } + } } @@ -258,6 +287,7 @@ export default class Index extends Vue { border-radius: 2px; height: 6px; } + &::-webkit-scrollbar-thumb { background-color: #333; border-radius: 2px; diff --git a/source/src/devtools/type.ts b/source/src/devtools/type.ts new file mode 100644 index 0000000..34cf6bc --- /dev/null +++ b/source/src/devtools/type.ts @@ -0,0 +1,5 @@ +export class NodeData { + uuid: string | null = null; + name: string = ''; + children: Array = [] +}