2018-01-17 17:59:50 +01:00
|
|
|
<template>
|
|
|
|
<div id="app">
|
|
|
|
<div id="menu-wrap">
|
2019-11-01 10:22:18 +01:00
|
|
|
<Sidebar ref="sidebar" @params="setParams" :slice="slice" :offset="offset" @loadImage="loadImage"/>
|
2018-01-17 17:59:50 +01:00
|
|
|
</div>
|
|
|
|
<div id="canvas-wrap">
|
2019-11-01 10:22:18 +01:00
|
|
|
<Canvas ref="canvas" @params="setParams" :slice="slice" :offset="offset"/>
|
2018-01-17 17:59:50 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2019-10-31 15:51:31 +01:00
|
|
|
import Canvas from "./components/Canvas";
|
|
|
|
import Sidebar from "./components/Sidebar";
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: "app",
|
|
|
|
components: {
|
|
|
|
Canvas, Sidebar,
|
|
|
|
},
|
2019-11-01 10:22:18 +01:00
|
|
|
data () {
|
|
|
|
return {
|
|
|
|
slice: [64, 64],
|
|
|
|
offset: [0, 0],
|
|
|
|
};
|
|
|
|
},
|
2019-10-31 15:51:31 +01:00
|
|
|
methods: {
|
|
|
|
loadImage: function (url) {
|
|
|
|
this.$refs.canvas.imageUrl = url;
|
|
|
|
},
|
2019-10-31 17:56:56 +01:00
|
|
|
setParams: function (coords) {
|
2019-11-01 10:22:18 +01:00
|
|
|
switch (coords.type) {
|
|
|
|
case "slice":
|
|
|
|
this.slice = [Math.max(2, coords.x), Math.max(2, coords.y)];
|
|
|
|
break;
|
|
|
|
case "offset":
|
|
|
|
this.offset = [coords.x, coords.y];
|
|
|
|
break;
|
|
|
|
}
|
2019-10-31 17:56:56 +01:00
|
|
|
},
|
2019-10-31 15:51:31 +01:00
|
|
|
},
|
|
|
|
};
|
2018-01-17 17:59:50 +01:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
2019-10-31 15:51:31 +01:00
|
|
|
html, body, #app {
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
border: 0;
|
|
|
|
margin: 0;
|
|
|
|
|
|
|
|
font-family: Consolas, Inconsolata, monospace, serif;
|
|
|
|
line-height: .97em;
|
|
|
|
font-size: .95em;
|
|
|
|
}
|
|
|
|
|
2019-11-01 19:31:15 +01:00
|
|
|
input, button {
|
|
|
|
font-family: Consolas, Inconsolata, monospace, serif;
|
|
|
|
}
|
|
|
|
|
2019-10-31 15:51:31 +01:00
|
|
|
input {
|
|
|
|
font-size: .95em;
|
2019-11-01 19:31:15 +01:00
|
|
|
padding: 4px 0;
|
|
|
|
background: white;
|
|
|
|
border: 1px solid black;
|
|
|
|
}
|
|
|
|
|
|
|
|
input[type="file"] {
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
button {
|
|
|
|
background: white;
|
|
|
|
border: 1px solid black;
|
|
|
|
box-shadow: 2px 2px #272727;
|
2019-10-31 15:51:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#menu-wrap, #canvas-wrap {
|
|
|
|
display: inline-block;
|
|
|
|
}
|
|
|
|
|
|
|
|
#menu-wrap {
|
|
|
|
width: 20%;
|
|
|
|
height: 100%;
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
#canvas-wrap {
|
|
|
|
width: 80%;
|
|
|
|
height: 100%;
|
|
|
|
}
|
2018-01-17 17:59:50 +01:00
|
|
|
</style>
|