After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 440 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<div class="ycl">
|
||||
<template v-for="(item,index) in gxNames">
|
||||
<div class="gxcl">
|
||||
<div class="gxcl__title">{{item}}</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'MainGxChanLiang',
|
||||
data(){
|
||||
return {
|
||||
gxNames:['上料','抛丸','理料','划线','切割']
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.ycl{
|
||||
width: 1470px;
|
||||
height: 342px;
|
||||
background: url('../../../assets/kban/yclbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.gxcl{
|
||||
width: 278px;
|
||||
height: 300px;
|
||||
background: url('../../../assets/kban/yclbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
|
||||
.gxcl__title{
|
||||
width: 231px;
|
||||
height: 41px;
|
||||
background: url('../../../assets/kban/cltitle.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding: 12px 26px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div class="chanlian">
|
||||
<div class="chanlian__title">本月各垮产量(吨)</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "MainChanLian",
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.chanlian{
|
||||
width: 369px;
|
||||
height: 688px;
|
||||
background: url('../../../assets/kban/clbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-left: 41px;
|
||||
text-align: center;
|
||||
|
||||
.chanlian__title{
|
||||
width: 231px;
|
||||
height: 41px;
|
||||
background: url('../../../assets/kban/cltitle.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding: 12px 26px;
|
||||
margin-left: 71px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<div class="cq">
|
||||
<div class="cq__title">出勤情况</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'Cq'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.cq{
|
||||
width: 369px;
|
||||
height: 294px;
|
||||
background: url('../../../assets/kban/cqbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-left: 41px;
|
||||
margin-top: 14px;
|
||||
text-align: center;
|
||||
|
||||
.cq__title{
|
||||
width: 231px;
|
||||
height: 41px;
|
||||
background: url('../../../assets/kban/cltitle.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding: 12px 26px;
|
||||
margin-left: 71px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div class="ycl">
|
||||
<div class="ycl__title">各月份产量(吨)</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'MainGeYueChanLiang'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.ycl{
|
||||
width: 1070px;
|
||||
height: 342px;
|
||||
background: url('../../../assets/kban/gyclbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
|
||||
.ycl__title{
|
||||
width: 231px;
|
||||
height: 41px;
|
||||
background: url('../../../assets/kban/cltitle.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding: 12px 26px;
|
||||
margin-left: 425px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,71 @@
|
||||
<template>
|
||||
<div class="video">
|
||||
<div class="video-info">
|
||||
<div class="webcam">
|
||||
<img src="../../../assets/kban/webcam.png" alt=""/>
|
||||
<span class="title">01</span>
|
||||
</div>
|
||||
<img src="../../../assets/kban/无视频.png" alt=""/>
|
||||
</div>
|
||||
<div class="video-info">
|
||||
<div class="webcam">
|
||||
<img src="../../../assets/kban/webcam.png" alt=""/>
|
||||
<span class="title">02</span>
|
||||
</div>
|
||||
<img src="../../../assets/kban/无视频.png" alt=""/>
|
||||
</div>
|
||||
<div class="video-info">
|
||||
<div class="webcam">
|
||||
<img src="../../../assets/kban/webcam.png" alt=""/>
|
||||
<span class="title">03</span>
|
||||
</div>
|
||||
<img src="../../../assets/kban/无视频.png" alt=""/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "MainVideo",
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.video{
|
||||
width: 1470px;
|
||||
height: 294px;
|
||||
background: url('../../../assets/kban/videobg.png') no-repeat;
|
||||
background-size: 1470px 100%;
|
||||
margin-top: 14px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.video-info{
|
||||
border: 1px solid #0d84ff;
|
||||
width: 464px;
|
||||
height: 245px;
|
||||
background: #001846;
|
||||
margin: 25px 0 0 19px;
|
||||
padding: 74px 180px;
|
||||
position: relative;
|
||||
|
||||
.webcam{
|
||||
position: absolute;
|
||||
top:12px;
|
||||
left: 17px;
|
||||
|
||||
img{
|
||||
width: 16px;
|
||||
height: 21px;
|
||||
}
|
||||
|
||||
span{
|
||||
font-size: 16px;
|
||||
line-height: 21px;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div class="ycl">
|
||||
<div class="ycl__title">计划完成情况</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'MainYueChanLiang'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.ycl{
|
||||
width: 396px;
|
||||
height: 342px;
|
||||
background: url('../../../assets/kban/yclbg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
|
||||
.ycl__title{
|
||||
width: 231px;
|
||||
height: 41px;
|
||||
background: url('../../../assets/kban/cltitle.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding: 12px 26px;
|
||||
margin-left: 85px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<div class="menu">
|
||||
<img class="ico" src="../../../assets/kban/收起.png" alt="">
|
||||
<div class="title" @click="menuClick">主菜单</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Menu",
|
||||
data(){
|
||||
return{
|
||||
showMenu:false
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
menuClick(){
|
||||
this.menuControl()
|
||||
},
|
||||
menuControl(){
|
||||
this.showMenu=!this.showMenu;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.menu{
|
||||
width: 43px;
|
||||
height: 100vh;
|
||||
background: url('../../../assets/kban/menu.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 1px;
|
||||
text-align: center;
|
||||
|
||||
.ico {
|
||||
width: 19px;
|
||||
height: 17px;
|
||||
position: absolute;
|
||||
top:39%;
|
||||
left: 25%;
|
||||
}
|
||||
|
||||
.title{
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
position: absolute;
|
||||
top:44%;
|
||||
text-align: center;
|
||||
vertical-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<div id="data-view">
|
||||
<dv-full-screen-container>
|
||||
<top-header />
|
||||
<div class="main-content">
|
||||
<digital-flop />
|
||||
<div class="block-left-right-content">
|
||||
<ranking-board />
|
||||
<div class="block-top-bottom-content">
|
||||
<div class="block-top-content">
|
||||
<rose-chart />
|
||||
<water-level-chart />
|
||||
<scroll-board />
|
||||
</div>
|
||||
<cards />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dv-full-screen-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import topHeader from './comps/topHeader'
|
||||
import digitalFlop from './comps/digitalFlop'
|
||||
import rankingBoard from './comps/rankingBoard'
|
||||
import roseChart from './comps/roseChart'
|
||||
import waterLevelChart from './comps/waterLevelChart'
|
||||
import scrollBoard from './comps/scrollBoard'
|
||||
import cards from './comps/cards'
|
||||
|
||||
export default {
|
||||
name: 'DataView',
|
||||
components: {
|
||||
topHeader,
|
||||
digitalFlop,
|
||||
rankingBoard,
|
||||
roseChart,
|
||||
waterLevelChart,
|
||||
scrollBoard,
|
||||
cards
|
||||
},
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
#data-view {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #030409;
|
||||
color: #fff;
|
||||
|
||||
#dv-full-screen-container {
|
||||
background-image: url('img/bg.png');
|
||||
background-size: 100% 100%;
|
||||
box-shadow: 0 0 3px blue;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.block-left-right-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.block-top-bottom-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.block-top-content {
|
||||
height: 55%;
|
||||
display: flex;
|
||||
flex-grow: 0;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,18 +1,40 @@
|
||||
import Konva from "konva";
|
||||
|
||||
const title=function (width,height,title) {
|
||||
return new Konva.Text({
|
||||
const group=new Konva.Group({
|
||||
x: 0,
|
||||
y: 8,
|
||||
width: width,
|
||||
height: 20,
|
||||
})
|
||||
|
||||
const imageObj = new Image();
|
||||
imageObj.src = require('@/assets/kban/logo.png');
|
||||
imageObj.onload = function () {
|
||||
const shape = new Konva.Image({
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: width*0.86,
|
||||
height:41,
|
||||
image: imageObj,
|
||||
});
|
||||
group.add(shape)
|
||||
}
|
||||
|
||||
const text=new Konva.Text({
|
||||
x: 0,
|
||||
y: 8,
|
||||
width: width,
|
||||
height: 20,
|
||||
lineHeight: 1,
|
||||
stroke: 'blue',
|
||||
strokeWidth: 2,
|
||||
text: title,
|
||||
align: 'center',
|
||||
fill:'#fff',
|
||||
fontSize: 32,
|
||||
fontStyle:'bold'
|
||||
})
|
||||
group.add(text)
|
||||
|
||||
return group
|
||||
}
|
||||
|
||||
export default title
|
||||
|