From 330f064f296b25578fb3175206f11e6d563151f3 Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Wed, 2 Mar 2022 22:15:35 +1100 Subject: Add basic code for arrangement via absolute positioning --- src/App.vue | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/App.vue b/src/App.vue index 10537d6..7e5518d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,18 +3,52 @@ import tol from './tol.json'; export default { data() { return { - tol: tol, - tiles: tol.map(e => ({name: e.name})) + drawnTol: tol.map(e => ({...e, children:[]})), + mode: 'row' + } + }, + computed: { + tiles(){ + //minSize, maxSize, + let nodes = this.drawnTol; + let width = document.documentElement.clientWidth; + let height = document.documentElement.clientHeight; + let spacing = 5; + if (this.mode == 'row'){ + return nodes.map((el, idx) => ({ + name: el.name, + x: idx*((width - spacing) / nodes.length) + spacing, + y: spacing, + w: ((width - spacing) / nodes.length) - spacing, + h: ((width - spacing) / nodes.length) - spacing, + })); + } else if (this.mode == 'col'){ + return nodes.map((el, idx) => ({ + name: el.name, + x: spacing, + y: idx*((height - spacing) / nodes.length) + spacing, + w: ((height - spacing) / nodes.length) - spacing, + h: ((height - spacing) / nodes.length) - spacing, + })); + } + } + }, + methods: { + toggleMode(){ + this.mode = this.mode == 'row' ? 'col' : 'row'; } } } -- cgit v1.2.3