Commit 0166dfee authored by luo ying's avatar luo ying

引导页画图

parent 076ee6b1
<template> <template>
<div class="router-main flex fc-m fa-m pr"> <div class="router-main flex fc-m fa-m pr">
<ul class="pa navMenu"> <!-- <ul class="pa navMenu">
<li <li
class="navMenuLi flex fc-m fa-m pr" class="navMenuLi flex fc-m fa-m pr cursor"
v-for="(item, index) in menus" v-for="(item, indx) in menus"
:key="index" :key="indx"
@mouseenter="navClick(item,index)" @mouseenter="navClick(item, indx)"
> >
<Icon :type="item.icons" class="f16" />{{ item.name }} <Icon :type="item.icons" class="f16" />{{ item.name }}
</li> </li>
</ul> -->
</ul>
<div class="bdImg pr" @click="pageClick"> <div class="bdImg pr" @click="pageClick">
<div <!-- <div
class="one pa cursor" class="one pa cursor"
:class="{ oneHover: oneShow && isIndex == index }" :class="{ oneHover: oneShow && isIndex == index }"
v-for="(item, index) in arrList" v-for="(item, index) in arrList"
:key="index" :key="index"
v-bind:style="item.style" v-bind:style="item.style"
@mouseenter="getPosition(item, index)" @mouseenter="getPosition(item, index)"
></div> ></div> -->
<div class="pa menu" v-bind:style="menuPos" v-show="menu"> <div class="pa menu" v-bind:style="menuPos" v-show="menu">
<ul class="bdTitleBox" @mouseleave="leavePosition"> <ul class="bdTitleBox" @mouseleave="leavePosition">
<li <li
...@@ -32,16 +31,41 @@ ...@@ -32,16 +31,41 @@
</li> </li>
</ul> </ul>
</div> </div>
<!-- @mouseenter="a()" -->
<div
v-for="(line, s) in lines"
class="pa line"
:style="lineStyles(line,s)"
:key="'s'+s"
:title="line.start.join()+':'+line.end.join()"
>
<div class="lineMarker pa"></div>
</div>
<div v-for="(dot,iv) in dots" class="pa dot" :style="dot" :key="'v'+iv"></div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { isInteger } from "lodash"; import { has, hasIn, isInteger } from "lodash";
import viewerVue from "../test/viewer.vue"; import viewerVue from "../test/viewer.vue";
export default { export default {
data() { data() {
return { return {
lines: [
{
start: [100, 100],
end: [250, 100],
},
{
start: [100, 100],
end: [250, 100],
},
],
start:0,
dotA:[],
dotB:[],
dots:[],
menus: [], menus: [],
list: [], list: [],
arrList: [], arrList: [],
...@@ -56,37 +80,81 @@ export default { ...@@ -56,37 +80,81 @@ export default {
}, },
mounted() { mounted() {
this.load(); this.load();
// this.lineClick();
}, },
methods: { methods: {
lineList(event) {
console.log(event);
},
// lineClick() {
// let pos = -6;
// var id;
// let idx;
// this.lineList.map((z, i) => {
// if (z.left == "-6px") {
// idx = i;
// id = setInterval(frame, 100); //无限循环
// }
// });
// var _this = this;
// function frame() {
// if (pos == 38) {
// pos = 0;
// } else {
// pos++;
// _this.$nextTick(() => {
// _this.lineList[idx].left = pos + "px";
// });
// }
// }
// },
load() { load() {
this.$api.get(`${systemUrl}/menu/getusermenu?id=mes_roter`).then((r) => { this.$api.get(`${systemUrl}/menu/getusermenu?id=mes_roter`).then((r) => {
if (r.result) { if (r.result) {
let arr = r.result[0].children.map((l) => { let arr = r.result[0].children.map((l) => {
if ( !this.$u.isNull(l.description) && l.description.indexOf("{") > -1 ) { if (
!this.$u.isNull(l.description) &&
l.description.indexOf("{") > -1
) {
l.style = eval("(" + l.description + ")"); l.style = eval("(" + l.description + ")");
} }
return l; return l;
}); });
this.arrList = arr; this.arrList = arr;
this.arrList.map(v=>{ this.arrList.map((v) => {
if(v.name=='项目管理'){ if (v.name == "项目管理") {
this.menus[0]=v; this.menus[0] = v;
this.menus[0].icons='ios-list-box-outline'; this.menus[0].icons = "ios-list-box-outline";
}else if(v.name=='文档管理'){ } else if (v.name == "文档管理") {
this.menus[1]=v; this.menus[1] = v;
this.menus[1].icons='md-document'; this.menus[1].icons = "md-document";
}else if(v.name=='大屏展示'){ } else if (v.name == "大屏展示") {
this.menus[2]=v; this.menus[2] = v;
this.menus[2].icons='ios-stats'; this.menus[2].icons = "ios-stats";
} }
}) });
console.log(this.menus)
} }
}); });
}, },
pageClick() { pageClick(event) {
this.menu = false; // console.log("event", event);
this.oneShow = false; // console.log(event.pageX, event.pageY);
// this.menu = false;
// this.oneShow = false;
this.dots.push({
left:event.layerX+'px',top:event.layerY+'px'
})
if(this.start===0){
this.dotA=[event.layerX,event.layerY];
this.start=1;
}else{
this.dotB=[event.layerX,event.layerY];
this.start=0;
this.lines.push({
start:this.dotA,
end:this.dotB
})
}
}, },
clickLi(v) { clickLi(v) {
if (v) { if (v) {
...@@ -95,28 +163,52 @@ export default { ...@@ -95,28 +163,52 @@ export default {
this.menu = false; this.menu = false;
}, },
getPosition(item, index) { getPosition(item, index) {
if (item) { // if (item) {
this.isIndex = index; // this.isIndex = index;
this.oneShow = true; // this.oneShow = true;
this.list = item.children; // this.list = item.children;
this.menu = true; // this.menu = true;
var { left, top } = item.style; // var { left, top } = item.style;
this.menuPos = { left, top }; // this.menuPos = { left, top };
} // }
}, },
navClick(v,index) { navClick(v, index) {
if (v.children && v.children.length > 0) { // if (v.children && v.children.length > 0) {
var { left, top } = v.style; // var { left, top } = v.style;
this.list = v.children; // this.list = v.children;
this.menuPos = { left, top }; // this.menuPos = { left, top };
this.menu = true; // this.menu = true;
}else{ // } else {
this.menu = false; // this.menu = false;
} // }
}, },
leavePosition() { leavePosition() {
this.oneShow = false; // this.oneShow = false;
this.menu = false; // this.menu = false;
},
lineStyles(line,s) {
// console.log(line);
let w = (line.end[0] - line.start[0]);
let h =line.end[1] - line.start[1];
let l = Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2));
let sinA =Math.sin(h/l)* 180 / Math.PI;
// // if(line.end[1]>line.start[1]){
// // sinA=-sinA;
// // }
// var sinA=0;
// if(s>0){
// sinA=45;
// }
let sinB =Math.cos(w/l)* 180 / Math.PI;
console.warn("line",w,h,sinA,sinB);
console.log(sinA);
return {
width: l + "px",
transform: "rotate(" + sinA + "deg)",
top: line.start[1] + "px",
left: line.start[0] + "px",
};
}, },
}, },
}; };
...@@ -130,7 +222,6 @@ export default { ...@@ -130,7 +222,6 @@ export default {
top: 90px; top: 90px;
left: 95px; left: 95px;
.navMenuLi { .navMenuLi {
cursor: pointer;
width: 185px; width: 185px;
height: 99px; height: 99px;
color: #ffffff; color: #ffffff;
...@@ -165,7 +256,42 @@ export default { ...@@ -165,7 +256,42 @@ export default {
.bdImg { .bdImg {
height: 822px; height: 822px;
width: 1700px; width: 1700px;
background: url("../../assets/images/home/router/routerMain.png") no-repeat; background: url("../../assets/images/home/router/welcome.png") no-repeat;
.line {
height: 2px;
// top: 50px;
// left: 50px;
// width: 200px;
background: linear-gradient(to right, #A7C4D8, #24BDDD);
transform-origin:left;
.lineMarker {
display: inline-block;
width: 7px;
height: 7px;
left: 0;
top: 0;
transform: rotate(50deg) translateY(-4px);
animation: myfirst 1s infinite;
background: url("../../assets/images/home/router/linemarker.png")
no-repeat;
}
@keyframes myfirst {
from {
left: 0%;
}
to {
left: 95%;
}
}
// }
}
.dot{
width: 8px;
height: 8px;
background: red;
border-radius: 50%;
}
} }
.menu { .menu {
width: 100px; width: 100px;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment