大屏页面开发。

master
kevin jiang 6 years ago
parent b45e1ad118
commit 5d2fc9132b

@ -12,6 +12,7 @@
"core-js": "^3.6.4", "core-js": "^3.6.4",
"echarts": "^4.7.0", "echarts": "^4.7.0",
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"jquery": "^3.5.1",
"lib-flexible": "^0.3.2", "lib-flexible": "^0.3.2",
"moment": "^2.24.0", "moment": "^2.24.0",
"postcss-px2rem-exclude": "0.0.6", "postcss-px2rem-exclude": "0.0.6",

@ -14,4 +14,5 @@
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
</body> </body>
</html> </html>

@ -0,0 +1,606 @@
<template>
<div>
<div >
</div>
<div class="loading">
<div class="loadbox"> <img src="../../public/images/loading.gif"> 页面加载中... </div>
</div>
<div class="head">
<h1>
<img src="../../static/img/bsd-logo.png" class="title-logo"/>
</h1>
</div>
<div class="mainbox">
<ul class="clearfix">
<li>
<div class="boxall" style="height: 3.2rem">
<div class="alltitle">模块标题样式</div>
<div class="allnav" id="echart1"></div>
<div class="boxfoot"></div>
</div>
<div class="boxall" style="height: 3.2rem">
<div class="alltitle">模块标题样式</div>
<div class="allnav" id="echart2"></div>
<div class="boxfoot"></div>
</div>
<div class="boxall" style="height: 3.2rem">
<div style="height:100%; width: 100%;">
<div class="sy" id="fb1"></div>
<div class="sy" id="fb2"></div>
<div class="sy" id="fb3"></div>
</div>
<div class="boxfoot">
</div>
</div>
</li>
<li>
<div class="bar">
<div class="barbox">
<ul class="clearfix">
<li class="pulll_left counter">12581189</li>
<li class="pulll_left counter">3912410</li>
</ul>
</div>
<div class="barbox2">
<ul class="clearfix">
<li class="pulll_left">2018年总收入情况 </li>
<li class="pulll_left">2018年总支出情况</li>
</ul>
</div>
</div>
<div class="map">
<div class="map1"><img src="../../public/images/lbx.png"></div>
<div class="map2"><img src="../../public/images/jt.png"></div>
<div class="map3"><img src="../../public/images/map.png"></div>
<div class="map4" id="map_1"></div>
</div>
</li>
<li>
<div class="boxall" style="height:3.4rem">
<div class="alltitle">模块标题样式</div>
<div class="allnav" id="echart4"></div>
<div class="boxfoot"></div>
</div>
<div class="boxall" style="height: 3.2rem">
<div class="alltitle">模块标题样式</div>
<div class="allnav" id="echart5"></div>
<div class="boxfoot"></div>
</div>
<div class="boxall" style="height: 3rem">
<div class="alltitle">模块标题样式</div>
<div class="allnav" id="echart6"></div>
<div class="boxfoot"></div>
</div>
</li>
</ul>
</div>
<div class="back"></div>
</div>
</template>
<script>
import $ from 'jquery';
// import "../../public/js/jquery"
// import "../../public/js/area_echarts"
// import "../../public/js/china"
// import "../../public/js/echarts.min"
// import "../../public/js/js"
export default {
data() {
return {
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
dateBtnValue: "今日",
viewDate: this.$moment(new Date()).format("YYYY-MM-DD"),
//
recentName: "近七天",
//
selectStartTime: "",
selectEndTime: "",
//
startTime: "",
endTime: "",
currentDate: this.$moment().format("yyyy/MM/dd"),
}
},
mounted: function () {
$(".loading").fadeOut();
this.dateBtnClick('今日');
// this.timingRefresh();
let whei = $(window).width();
$("html").css({ fontSize: whei / 20 });
$(window).resize(function () {
let whei = $(window).width();
$("html").css({ fontSize: whei / 20 });
});
},
methods: {
//0null
checkZero: function (value) {
if (value === 0) {
return null;
}
return value;
},
//
dateBtnClick: function (value) {
switch (value) {
case '今日':
this.dateBtnValue = "今日";
this.recentName = "近七天";
// this.dateSelectChange('');
break;
case '本周':
this.dateBtnValue = "本周";
this.recentName = "本周";
// this.dateSelectChange('');
break;
case '本月':
this.dateBtnValue = "本月";
this.recentName = "本月";
// this.dateSelectChange('');
break;
case '自定义':
this.dateBtnValue = "自定义";
this.recentName = "自定义";
// this.diyDateChange();
break;
}
},
}
}
</script>
<style scoped>
/*日期按钮*/
.date-btn {
display: inline-block;
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
border-radius: 8px;
cursor: pointer;
border: 1px #00B1F7 solid;
color: #00B1F7;
}
.date-btn-active {
display: inline-block;
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
border-radius: 8px;
cursor: pointer;
border: 1px #060321 solid;
color: #FFFFFF;
}
/*概览字体*/
.view-text {
font-size: 18px;
font-weight: 600;
font-family: "Microsoft YaHei";
}
/*概览日期*/
.view-date {
font-size: 16px;
color: #97A4B3;
margin-left: 10px;
}
/*5大块客户数*/
.huge-blank-font {
color: #EC6A2F;
font-size: 40px;
font-weight: 700;
font-family: 'Microsoft YaHei';
}
.big-blank {
min-height: 100px;
border-radius: 4px;
}
.big-blank-font {
color: #2D8CF0;
font-size: 28px;
font-weight: 700;
font-family: 'Microsoft YaHei';
}
.weight-700 {
font-weight: 700;
}
/*蓝色logo*/
.blue-logo {
background: #1A80D2;
height: 26px;
width: 6px;
border-radius: 3px;
display: inline-block;
vertical-align: middle;
}
/*外面的边框*/
.outline {
border: #e8ecf2 2px solid;
padding: 10px;
border-radius: 4px;
}
.left-10 {
margin-left: 10px;
}
.left-15 {
margin-left: 15px;
}
.left-25 {
margin-left: 25px;
}
.top-5 {
margin-top: 5px;
}
.top-10 {
margin-top: 10px;
}
.top-15 {
margin-top: 15px;
}
.top-20 {
margin-top: 20px;
}
.top-30 {
margin-top: 30px;
}
.padding-12 {
padding: 12px;
}
.padding-left-10 {
padding-left: 10px;
}
/*占比样式*/
.percent-text {
height: 38px;
line-height: 38px;
text-align: right;
padding-right: 8px;
}
.percent-span {
display: inline-block;
vertical-align: middle;
height: 38px;
line-height: 38px;
margin-right: 5px;
}
/*文字过长...*/
.text-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/*top10,占比样式*/
.top10-percent-span {
display: inline-block;
vertical-align: middle;
height: 18px;
line-height: 18px;
margin-right: 5px;
}
.title-span {
width: 330px;
border: 1px solid #E8ECF2;
border-radius: 8px;
padding: 3px;
display: inline-block;
}
.title-select-date {
height: 38px;
line-height: 38px;
margin-left: 25px;
}
.date-picker {
width: 120px;
}
.title-logo {
text-align: center;
align-items: center;
align-content: center;
}
.text-center {
text-align: center;
}
.chart-title-date {
display: inline-block;
margin-left: 5px;
}
.chart-title-span {
display: inline-block;
margin-left: 5px;
}
.chart-row {
height: 399px;
padding: 99px 15px;
}
.chart-row-customer-row1 {
height: 50px;
}
.chart-row-customer-row2 {
height: 25px;
}
.chart-row-customer-row3 {
height: 50px;
}
.chart-top-10-row {
min-height: 425px;
}
.chart-top-10-title-span {
display: inline-block;
margin-left: 5px;
}
.text-color{
color: #00B1F7;
}
/** big data screen style */
*{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box}
*,body{padding:0px; margin:0px;color: #222;font-family: "微软雅黑";}
@font-face{font-family:electronicFont;src:url('../../public/font/DS-DIGIT.TTF')}
body{ background:#000d4a url('../../public/images/bg.jpg') center top; background-size:cover;color:#666;font-size: .1rem;}
li{ list-style-type:none;}
table{}
i{ margin:0px; padding:0px; text-indent:0px;}
img{ border:none; max-width: 100%;}
a{ text-decoration:none; color:#399bff;}
a.active,a:focus{ outline:none!important; text-decoration:none;}
ol,ul,p,h1,h2,h3,h4,h5,h6{ padding:0; margin:0}
a:hover{ color:#06c; text-decoration: none!important}
.clearfix:after, .clearfix:before {
display: table;
content: " "
}
.clearfix:after {
clear: both
}
.pulll_left{float:left;}
.pulll_right{float:right;}
/*谷哥滚动条样式*/
::-webkit-scrollbar {width:5px;height:5px;position:absolute}
::-webkit-scrollbar-thumb {background-color:#5bc0de}
::-webkit-scrollbar-track {background-color:#ddd}
/***/
.canvas{position: absolute; width:100%; left: 0; top: 0; height: 99%; z-index: 1;}
.allnav{height: calc(100% - 30px);}
.loading{position:fixed; left:0; top:0; font-size:18px; z-index:100000000;width:100%; height:100%; background:#1a1a1c; text-align:center;}
.loadbox{position:absolute; width:160px;height:150px; color: #aaa; left:50%; top:50%; margin-top:-100px; margin-left:-75px;}
.loadbox img{ margin:10px auto; display:block; width:40px;}
.copyright{ background:rgba(19,31,64,.32); border: 1px solid rgba(255,255,255,.05); line-height:.5rem; text-align: center; padding-right: 15px; bottom: 0; color:rgba(255,255,255,.7); font-size: .16rem; }
.head{ height:1.05rem; background: url(../../public/images/head_bg.png) no-repeat center center; background-size: 100% 100%; position: relative; z-index: 100;}
.head h1{ color:#fff; text-align: center; font-size: .4rem; line-height:.8rem;}
.head h1 img{ width:1.5rem; display: inline-block; vertical-align: middle; margin-right: .2rem}
.weather{ position:absolute; right:.3rem; top:0; line-height: .75rem;}
.weather img{ width:.37rem; display: inline-block; vertical-align: middle;}
.weather span{color:rgba(255,255,255,.7); font-size: .18rem; padding-right: .1rem;}
.mainbox{ padding:.1rem .1rem 0rem .1rem;}
.mainbox>ul{}
.mainbox>ul>li{ float: left; padding: 0 .1rem}
.mainbox>ul>li{ width: 30%}
.mainbox>ul>li:nth-child(2){ width: 40%;padding: 0}
.boxall{ border: 1px solid rgba(25,186,139,.17); padding:0 .2rem .4rem .15rem; background: rgba(255,255,255,.04) url(../../public/images/line.png); background-size: 100% auto; position: relative; margin-bottom: .15rem; z-index: 10;}
.boxall:before,
.boxall:after{ position:absolute; width: .1rem; height: .1rem; content: ""; border-top: 2px solid #02a6b5; top: 0;}
.boxall:before,.boxfoot:before{border-left: 2px solid #02a6b5;left: 0;}
.boxall:after,.boxfoot:after{border-right: 2px solid #02a6b5; right: 0;}
.alltitle{ font-size:.2rem; color:#fff; text-align: center; line-height: .5rem;}
.boxfoot{ position:absolute; bottom: 0; width: 100%; left: 0;}
.boxfoot:before,
.boxfoot:after{ position:absolute; width: .1rem; height: .1rem; content: "";border-bottom: 2px solid #02a6b5; bottom: 0;}
.bar{background:rgba(101,132,226,.1); padding: .15rem;}
.barbox li,.barbox2 li{ width:50%; text-align: center; position: relative; z-index: 100;}
.barbox:before,
.barbox:after{ position:absolute; width: .3rem; height: .1rem; content: ""; }
.barbox:before{border-left: 2px solid #02a6b5;left: 0;border-top: 2px solid #02a6b5; }
.barbox:after{border-right: 2px solid #02a6b5; right: 0; bottom: 0;border-bottom: 2px solid #02a6b5; }
.barbox li:first-child:before{ position:absolute; content: ""; height:50%; width: 1px; background: rgba(255,255,255,.2); right: 0; top: 25%;}
.barbox{ border: 1px solid rgba(25,186,139,.17); position: relative;}
.barbox li{ font-size: .7rem; color: #ffeb7b; padding: .05rem 0; font-family:electronicFont; font-weight: bold;}
.barbox2 li{ font-size: .19rem; color:rgba(255,255,255,.7); padding-top: .1rem;}
.map{ position:relative; height: 7.2rem; z-index: 9;}
.map4{ width: 200%; height:7rem; position: relative; left: -50%; top: 4%; margin-top: .2rem; z-index: 5;}
.map1,.map2,.map3{ position:absolute; opacity: .5}
.map1{ width:6.43rem; z-index: 2;top:.45rem; left: .7rem; animation: myfirst2 15s infinite linear;}
.map2{ width:5.66rem; top:.85rem; left:1.2rem; z-index: 3; opacity: 0.2; animation: myfirst 10s infinite linear;}
.map3{ width:5.18rem; top:1.07rem; left: 1.4rem; z-index: 1;}
.tabs { text-align: center; padding: .1rem 0 0 0;}
.tabs a {
position: relative;
display: inline-block;
margin-left: 1px;
padding:.05rem .2rem;
color: #898989;
transition: all .3s ease-out 0s;
font-size: 14px;
}
.tabs li{ display:inline-block;}
.tabs a:after {
position: absolute;
width: 1px;
height: 10px;
background-color: rgba(255,255,255,.1);
content: '';
margin-left:0; right:-1px; margin-top: 7px;
}
.tabs li a.active {border: 1px solid rgba(25,186,139,.17); background: rgba(255,255,255,.05); color:#fff;}
.tit02{ text-align:center; margin: .1rem 0; position: relative}
.tit02 span{border: 1px solid rgba(25,186,139,.17); letter-spacing: 2px; padding: .01rem .2rem; background: rgba(255,255,255,.05); font-size: .18rem; color: #49bcf7;}
.tit02:before,.tit02:after{ position:absolute; width:26%; height: 1px;background: rgba(25,186,139,.2); content: ""; top: .12rem;}
.tit02:after{ right:0;}
.tit02:before{ left:0;}
.wrap{ height:2.54rem; overflow: hidden;}
.wrap li{ line-height:.42rem; height:.42rem; font-size: .18rem; text-indent: .24rem; margin-bottom: .1rem; }
.wrap li p{border: 1px solid rgba(25,186,139,.17);color: rgba(255,255,255,.6); }
.sy{ float:left; width: 33%; height:95%; margin-top: .25rem;}
.adduser{ height:1.5rem; overflow: hidden;}
.adduser li{height:.5rem;}
.adduser img{ width: .40rem; border-radius: .5rem; margin-right: .1rem; display: inline-block; vertical-align: middle;}
.adduser span{ line-height:.5rem; font-size: .18rem;color: rgba(255,255,255,.6); }
.sycm ul{ margin-left:-.5rem;margin-right:-.5rem; padding: .16rem 0;}
.sycm li{ float: left; width: 33.33%; text-align: center; position: relative}
.sycm li:before{ position:absolute; content: ""; height:30%; width: 1px; background: rgba(255,255,255,.1); right: 0; top: 15%;}
.sycm li:last-child:before{ width: 0;}
.sycm li h2{ font-size:.3rem; color: #c5ccff;}
.sycm li span{ font-size:.18rem; color: #fff; opacity: .5;}
@keyframes myfirst2
{
from {transform: rotate(0deg);}
to {transform: rotate(359deg);}
}
@keyframes myfirst
{
from {transform: rotate(0deg);}
to {transform: rotate(-359deg);}
}
/*Plugin CSS*/
.str_wrap {
overflow:hidden;
width:100%;
position:relative;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
white-space:nowrap;
}
.str_move {
white-space:nowrap;
position:absolute;
top:0;
left:0;
cursor:move;
}
.str_move_clone {
display:inline-block;
vertical-align:top;
position:absolute;
left:100%;
top:0;
}
.str_vertical .str_move_clone {
left:0;
top:100%;
}
.str_down .str_move_clone {
left:0;
bottom:100%;
}
.str_vertical .str_move,
.str_down .str_move {
white-space:normal;
width:100%;
}
.str_static .str_move,
.no_drag .str_move,
.noStop .str_move{
cursor:inherit;
}
.str_wrap img {
max-width:none !important;
}
/** 背景 */
html {
height: 100%;
background-image: -webkit-radial-gradient(ellipse farthest-corner at center center, #1b44e4 0%, #020f3a 100%);
background-image: radial-gradient(ellipse farthest-corner at center center, #1b44e4 0%, #020f3a 100%);
cursor: move;
}
body {
width: 100%;
margin: 0;
overflow: hidden;
}
</style>

@ -18,17 +18,14 @@
<Menu ref="menu" :active-name="selectedItemName" :open-names="openName" theme="dark" width="auto" <Menu ref="menu" :active-name="selectedItemName" :open-names="openName" theme="dark" width="auto"
@on-select="onSelectLister" :accordion="true"> @on-select="onSelectLister" :accordion="true">
<MenuItem v-if="roleCode === 'GLY-ADMIN' || roleCode === 'DG-YUNYING' || roleCode === 'GL-YUNYING'" :name="0" to="/customer/view">
<Icon type="ios-paper"/>
<span style="margin-left: 7px">首页</span>
</MenuItem>
<Submenu :name="item.id" v-for="item in onePermissionList" :key="item.id"> <Submenu :name="item.id" v-for="item in onePermissionList" :key="item.id">
<template slot="title"> <template slot="title">
<Icon type="ios-paper"/> <Icon type="ios-paper"/>
{{item.name}} {{item.name}}
</template> </template>
<MenuItem :name="cItem.id" :to="cItem.resource" v-for="cItem in item.subMenuList" <MenuItem :name="cItem.id" :to="cItem.resource" v-for="cItem in item.subMenuList"
:key="cItem.id"> :key="cItem.id" :target="cItem.name === '大屏' ? '_blank' : '_self'">
{{cItem.name}} {{cItem.name}}
</MenuItem> </MenuItem>
</Submenu> </Submenu>
@ -64,7 +61,6 @@
data() { data() {
return { return {
roleCode: JSON.parse(sessionStorage.getItem("loginInfo")).roleCode, roleCode: JSON.parse(sessionStorage.getItem("loginInfo")).roleCode,
mainUrl: "/customer/view",
isCollapsed: false, isCollapsed: false,
mHeight: 600, mHeight: 600,
selectedItemName: "", selectedItemName: "",
@ -115,34 +111,25 @@
}, },
methods: { methods: {
//
onSelectLister(val) { onSelectLister(val) {
let i;
this.onePermissionList.forEach(function (data) {
data.subMenuList.forEach(function (dta) {
if(dta.id === val){
i = dta;
}
})
});
if(i){
sessionStorage.setItem("threeLevel",JSON.stringify(i.subMenuList));
}
//
if(val === 0){
this.selectedMenu = "首页";
this.selectedSubMenu = "";
this.breadcrumbUrl = this.mainUrl;
}
for (let i = 0; i < this.onePermissionList.length; i++) { for (let i = 0; i < this.onePermissionList.length; i++) {
let item = this.onePermissionList[i]; let item = this.onePermissionList[i];
for (let k = 0; k < item.subMenuList.length; k++) { for (let k = 0; k < item.subMenuList.length; k++) {
let cItem = item.subMenuList[k]; let cItem = item.subMenuList[k];
if (cItem.id === val) { if (cItem.id === val) {
if(cItem.name === '大屏'){
this.$router.push("")
}
this.selectedMenu = item.name; this.selectedMenu = item.name;
this.selectedSubMenu = cItem.name; this.selectedSubMenu = cItem.name;
this.selectedItemName = cItem.id; this.selectedItemName = cItem.id;
this.breadcrumbUrl = cItem.resource; this.breadcrumbUrl = cItem.resource;
// 3
sessionStorage.setItem("threeLevel",JSON.stringify(cItem.subMenuList));
} }
} }
} }
@ -258,25 +245,18 @@
// //
menuInit: function () { menuInit: function () {
let that = this; let that = this;
if(this.roleCode === 'GLY-ADMIN' || this.roleCode === 'DG-YUNYING' || this.roleCode === 'GL-YUNYING'){
//
that.selectedItemName = 0;
this.$router.push({path: that.mainUrl});
this.selectedMenu = "首页";
this.breadcrumbUrl = this.mainUrl;
}else{
that.selectedItemName = that.onePermissionList[0].subMenuList[0].id; that.selectedItemName = that.onePermissionList[0].subMenuList[0].id;
that.openName = [that.onePermissionList[0].id]; that.openName = [that.onePermissionList[0].id];
this.selectedMenu = this.onePermissionList[0].name; this.selectedMenu = this.onePermissionList[0].name;
this.selectedSubMenu = this.onePermissionList[0].subMenuList[0].name; this.selectedSubMenu = this.onePermissionList[0].subMenuList[0].name;
sessionStorage.setItem("threeLevel",JSON.stringify(this.onePermissionList[0].subMenuList[0].subMenuList)); sessionStorage.setItem("threeLevel",JSON.stringify(this.onePermissionList[0].subMenuList[0].subMenuList));
// this.$nextTick(() => { this.$nextTick(() => {
// this.$refs.menu.updateOpened(); this.$refs.menu.updateOpened();
// this.$refs.menu.updateActiveName(); // this.$refs.menu.updateActiveName();
// }); });
this.$router.push({path: that.onePermissionList[0].subMenuList[0].resource}); this.$router.push({path: that.onePermissionList[0].subMenuList[0].resource});
}
}, },
// //

@ -27,6 +27,7 @@ import IncreaseGroupSendConfigure from '@/pages/shop/IncreaseGroupSendConfigure'
import IncreaseWelcomeConfigure from '@/pages/shop/IncreaseWelcomeConfigure'; import IncreaseWelcomeConfigure from '@/pages/shop/IncreaseWelcomeConfigure';
import IncreaseGroupSendConfigureAdd from '@/pages/shop/IncreaseGroupSendConfigureAdd'; import IncreaseGroupSendConfigureAdd from '@/pages/shop/IncreaseGroupSendConfigureAdd';
import NoPermission from '@/pages/shop/NoPermission'; import NoPermission from '@/pages/shop/NoPermission';
import CustomerViewHome from "@/pages/CustomerViewHome";
Vue.use(Router); Vue.use(Router);
@ -197,9 +198,15 @@ const router = new Router({
path: '/no/permission', path: '/no/permission',
name: 'NoPermission', name: 'NoPermission',
component: NoPermission, component: NoPermission,
} },
] ]
} },
{
path: '/customer/view/home',
name: 'CustomerViewHome',
component: CustomerViewHome,
},
] ]
}); });
/* /*

Loading…
Cancel
Save