Browse Source

改版

lite
luyisha 2 years ago
parent
commit
be89620f3a
  1. 3
      bak/public/config.js
  2. 2
      bak/src/utils/request.js
  3. 4
      public/config.js
  4. 48
      src/App.vue
  5. BIN
      src/assets/g_footbg.png
  6. BIN
      src/assets/index/bg.png
  7. BIN
      src/assets/index/left_t3_bg.png
  8. BIN
      src/assets/index/mid_bg.png
  9. BIN
      src/assets/index/right_t1_bg.png
  10. BIN
      src/assets/index/top_title.png
  11. BIN
      src/assets/index/topnav.png
  12. BIN
      src/assets/ty/active.png
  13. BIN
      src/assets/ty/bg.png
  14. BIN
      src/assets/ty/c_bg_l.png
  15. BIN
      src/assets/ty/c_bg_r.png
  16. BIN
      src/assets/ty/c_bg_t.png
  17. BIN
      src/assets/ty/ins_count.png
  18. BIN
      src/assets/ty/ins_title_bg.png
  19. BIN
      src/assets/ty/l_t_bg.png
  20. BIN
      src/assets/ty/no_active.png
  21. BIN
      src/assets/ty/r_t_bg_1.png
  22. BIN
      src/assets/ty/r_t_bg_2.png
  23. BIN
      src/assets/ty/ty_pcb_item_bg.png
  24. BIN
      src/assets/ty/vbig_bg.png
  25. BIN
      src/assets/wh/center_bg.png
  26. BIN
      src/assets/wh/ins_count.png
  27. BIN
      src/assets/wh/l_t_bg.png
  28. BIN
      src/assets/wh/r_t_bg_1.png
  29. BIN
      src/assets/wh/r_t_bg_2.png
  30. BIN
      src/assets/wh/whbg.jpg
  31. BIN
      src/assets/wh/whbg.png
  32. BIN
      src/assets/wh/wht_bg.png
  33. 215
      src/views/cultrue/index.vue
  34. 449
      src/views/index.vue
  35. 638
      src/views/ty/index.vue

3
bak/public/config.js

@ -1,6 +1,7 @@
window.publicConfig = {
// 必填: api地址, 换成自己的域名即可
// BASE_API: '../index.php?s=/store'
BASE_API: 'http://btgym.xingtongworld.com/'
// BASE_API: 'http://btgym.xingtongworld.com/'
BASE_API: 'http://192.168.66.16/'
}

2
bak/src/utils/request.js

@ -8,7 +8,7 @@ const service = axios.create({
//baseURL: publicConfig.BASE_API,
//baseURL:ahost,
timeout: 60000, // 请求超时时间毫秒
withCredentials: true, // 异步请求携带cookie
withCredentials: false, // 异步请求携带cookie
headers: {
// 设置后端需要的传参类型
'Content-Type': 'application/json',

4
public/config.js

@ -1,4 +1,4 @@
window.publicConfig={
// BASE_API:"http://192.168.66.16/api",
BASE_API:"http://10.97.121.2/api",
BASE_API:"http://192.168.66.16/api",
// BASE_API:"http://10.97.121.2/api",
}

48
src/App.vue

@ -58,7 +58,8 @@ export default {
},
mounted() {
this.getTimespan();
this.getStat()
this.getStat();
this.getWS()
},
methods: {
//
@ -90,6 +91,27 @@ export default {
});
},
getWS(){
// ip127.0.0.1
let ws = new WebSocket("ws://192.168.66.16:2000");
ws.onopen = function() {
alert("连接成功");
let aa = {
type: 'allGroupTimeNum',
request: {
granularity: 'daily',
groupsId: ''
}
};
ws.send(JSON.stringify(aa));
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
console.log(JSON.parse(e.data));
alert("收到服务端的消息:" + e.data);
};
console.log(11111)
}
},
};
</script>
@ -105,21 +127,23 @@ body {
}
#app {
height: 100vh;
// height: 100vh;
height: 13.5rem;
}
//
.btgym {
width: 100vw;
// width: 100vw;
// height: 100%;
position: relative;
background-size: 100%;
background-repeat: no-repeat;
// background-size: 100%;
// background-repeat: no-repeat;
//
.topnav {
width: 100%;
height: 14vh;
height: 14vh;
height: 2.79rem;
background-image: url("assets/index/topnav.png");
background-size: 100% 100%;
background-repeat: no-repeat;
@ -131,9 +155,9 @@ body {
justify-content: space-between;
.topImg {
margin-top: 0.6%;
width: 24%;
height: 3vh;
margin-top: 0.33rem;
width: 11.83rem;
height: 0.52rem;
margin-left: auto;
margin-right: auto;
}
@ -151,7 +175,7 @@ body {
width: 24%;
height: 36%;
// border: 1px solid red;
margin: 16px auto;
margin: 0.6rem auto 10px;
display: flex;
justify-content: space-between;
font-weight: bold;
@ -161,8 +185,8 @@ body {
a {
text-decoration: none;
display: block;
width: 33.33%;
height: 86%;
width: 2.19rem;
height: 0.76rem;
background-size: 100% 100%;
background-repeat: no-repeat;
color: #00bdf9;

BIN
src/assets/g_footbg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 213 KiB

BIN
src/assets/index/bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

BIN
src/assets/index/left_t3_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 451 KiB

BIN
src/assets/index/mid_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 303 KiB

BIN
src/assets/index/right_t1_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 77 KiB

BIN
src/assets/index/top_title.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 183 KiB

BIN
src/assets/index/topnav.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 706 KiB

BIN
src/assets/ty/active.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

BIN
src/assets/ty/bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

BIN
src/assets/ty/c_bg_l.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

BIN
src/assets/ty/c_bg_r.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

BIN
src/assets/ty/c_bg_t.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
src/assets/ty/ins_count.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
src/assets/ty/ins_title_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 204 KiB

BIN
src/assets/ty/l_t_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
src/assets/ty/no_active.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/ty/r_t_bg_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
src/assets/ty/r_t_bg_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
src/assets/ty/ty_pcb_item_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
src/assets/ty/vbig_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 345 KiB

BIN
src/assets/wh/center_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
src/assets/wh/ins_count.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 33 KiB

BIN
src/assets/wh/l_t_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
src/assets/wh/r_t_bg_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
src/assets/wh/r_t_bg_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
src/assets/wh/whbg.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

BIN
src/assets/wh/whbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

BIN
src/assets/wh/wht_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 186 KiB

215
src/views/cultrue/index.vue

@ -9,7 +9,7 @@
</div>
<!-- 总计进馆总人数 -->
<div class="inszone">
<span class="institle">总计进馆人数</span>
<span class="institle">总计服务人数</span>
<!-- 今日进馆人数 -->
<div class="insval">
<img src="../../assets/wh/td_ins.png" />
@ -40,14 +40,14 @@
</div>
<!-- 24h ins 统计图 -->
<div class="dinszone">
<span class="dins_title">24小时总进馆人流趋势</span>
<span class="dins_title">24小时总服务人次趋势</span>
<!-- 柱状统计图 -->
<div class="dins_chart" id="dinschart" style="height: 200px; width: 100%"></div>
<div class="dins_chart" id="dinschart" style="height: 3rem; width: 100%"></div>
</div>
</div>
<!-- 中间 -->
<div class="center">
<div class="ctop">24小时进馆人数</div>
<div class="ctop">24小时服务人次</div>
<div class="cmid">
<div class="cmdiv">
<span id="cmdval1" class="cmdval">{{bwg_num}}</span>
@ -67,13 +67,13 @@
<div class="rightbox">
<!-- 各场馆人流趋势 -->
<div class="pcgrliu">
<span class="pcg_title">各场馆人流趋势</span>
<div id="pcgchart" style="width: 100%;height: 32vh;margin-top: 20px;"></div>
<span class="pcg_title">各场馆服务人次趋势</span>
<div id="pcgchart" style="width: 100%;height: 3.2rem;margin-top: 0.1rem;"></div>
</div>
<!-- 图书馆数据统计 -->
<div class="tsgrliu">
<span class="tsg_title">图书馆数据统计</span>
<div id="tsgchart" style="width: 100%;height: 30vh;margin-top: 20px;"></div>
<div id="tsgchart" ></div>
</div>
</div>
@ -105,11 +105,13 @@ export default {
mounted() {
let cc = window.document.getElementById("app");
// classname
if (cc.className.indexOf("wh_bg") > -1) {
cc.className = "btgym";
} else {
cc.classList.add("wh_bg");
}
setTimeout(() => {
if (cc.className.indexOf("wh_bg") > -1) {
cc.className = "btgym";
} else {
cc.classList.add("wh_bg");
}
}, 200);
//
this.bwugrs()
@ -130,7 +132,6 @@ export default {
methods: {
cultrue_bar1() {
var chartDom = document.getElementById("dinschart");
var myChart = echarts.init(chartDom);
// var option;
// var xData = ['09:00', '10:00', '11:00','12:00', '13:00', '14:00','15:00', '16:00', '17:00','18:00', '20:00', '21:00', '22:00'];
@ -278,12 +279,14 @@ export default {
]
}
option && myChart.setOption(option);
// 使
setTimeout(() => {
var myChart = echarts.init(chartDom);
option && myChart.setOption(option);
}, 200);
},
cultrue_bar2() {
var chartDom = document.getElementById("pcgchart");
var myChart = echarts.init(chartDom);
var option
// var xData = function() {
@ -399,9 +402,9 @@ export default {
},
grid: {
borderWidth: 0,
top: 250,
bottom: 250,
right: 15,
top: 50,
bottom: 30,
right: 0,
left: 30,
textStyle: {
color: "#fff"
@ -458,7 +461,10 @@ export default {
series: series,
}
option && myChart.setOption(option);
setTimeout(() => {
var myChart = echarts.init(chartDom);
option && myChart.setOption(option);
}, 200);
},
//
@ -469,7 +475,6 @@ export default {
});
var chartDom = document.getElementById("tsgchart");
var myChart = echarts.init(chartDom);
var option;
var data = [{
@ -530,11 +535,11 @@ export default {
option = {
// backgroundColor: '#000000',
grid: {
top: '2%',
bottom: -15,
right: -48,
left: 40,
containLabel: true
top: 20,
bottom: -5,
right: 0,
left: 50,
// containLabel: true
},
xAxis: {
show: false
@ -624,7 +629,7 @@ export default {
interval: 0,
color: '#fff',
align: 'left',
margin: 80,
margin: 10,
fontSize: 12,
formatter: function (value) {
return '{title|' + value + '}'
@ -652,6 +657,7 @@ export default {
verticalAlign: 'bottom',
lineHeight: 30,
fontSize: 16,
margin: -4,//
formatter: function (value, index) {
return data[index].value + valueColor[index].unit
},
@ -731,8 +737,10 @@ export default {
}
}]
};
option && myChart.setOption(option);
setTimeout(() => {
var myChart = echarts.init(chartDom);
option && myChart.setOption(option);
}, 200);
},
addNumber(start, end, id) {
var o = document.getElementById(id);
@ -805,19 +813,33 @@ export default {
},
};
</script>
<style>
/* 全局背景 */
.wh_bg {
clear: both;
background-image: url("../../assets/wh/whbg.png") !important;
}
.screen-box {
background: none !important;
}
</style>
<style lang="scss" scoped="scoped">
#cultrue {
width: 100%;
// height: 100%;
/* float: left; */
margin: 0 auto;
display: flex;
justify-content: space-between;
}
/* 左边 */
.leftbox {
width: 25%;
width: 5.65rem;
float: left;
color: #fff;
margin-top: calc(-3.86rem + 2.16rem);
}
.leftbox .lb_wht {
@ -825,8 +847,9 @@ export default {
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: 0 0;
height: 3.8rem;
// height: vh(142.5);
height: 3.86rem;
position: relative;
margin-left: -0.4rem;
}
.leftbox .lb_wht span {
@ -834,19 +857,17 @@ export default {
}
.leftbox .lb_wht .wh_big_tit {
font-size: 0.48rem;
/* line-height: 4.2rem; */
text-align: right;
padding-top: 2rem;
margin-right: 1.05rem;
/* padding-top: 3.2rem; */
font-size: 0.56rem;
position: absolute;
top: 2rem;
right: 0.94rem;
}
.leftbox .lb_wht .wh_small {
padding-top: 12px;
font-size: 14px;
text-align: right;
padding-right: 0.2rem;
font-size: 0.19rem;
position: absolute;
top: 2.9rem;
right: 0.06rem;
}
/* 总计进馆人数 */
@ -857,7 +878,7 @@ export default {
background-image: url("../../assets/wh/ins_count.png");
background-repeat: no-repeat;
background-size: 100% 100%;
margin-top: 0.48rem;
margin-top: 0.29rem;
}
.inszone .institle {
@ -884,7 +905,8 @@ export default {
padding-top: 0.268rem;
display: block;
text-align: center;
height: 0.78rem;
width: 1.37rem;
height: 1.02rem;
margin-left: auto;
margin-right: auto;
}
@ -899,6 +921,7 @@ export default {
height: 0.48rem;
line-height: 0.48rem;
font-size: 22px;
margin-top: -0.3rem;
}
.inszone .insval .inst {
@ -910,7 +933,7 @@ export default {
/* 24小时进馆总趋势 */
.dinszone {
margin-top: 0.22rem;
margin-top: 0.14rem;
width: 100%;
height: 0.48rem;
float: left;
@ -931,11 +954,10 @@ export default {
/* 中间部位 */
.center {
margin-top: 4vh;
width: 50%;
margin-top: 0.59rem;
width: 11.5rem;
height: 8.94rem;
float: left;
height: 74vh;
padding-top: 2vh;
background-image: url('../../assets/wh/center_bg.png');
background-repeat: no-repeat;
background-position: 0 0;
@ -943,37 +965,34 @@ export default {
}
.center .ctop {
margin-top: 0.5vh;
height: 4vh;
line-height: 4vh;
margin-top: 0.3rem;
line-height: 0.4rem;
color: #fff;
font-size: 24px;
font-size: 0.4rem;
text-align: center;
}
/* 中间中部 */
.center .cmid {
padding-top: 32vh;
padding-top: 4rem;
width: 100%;
height: 12vh;
}
.center .cmid .cmdiv {
width: 60%;
float: left;
padding-top: 3vh;
// padding-top: 3vh;
display: inline-block;
box-sizing: border-box;
text-align: center;
width: 50%;
}
.center .cmid .cmdiv span {
display: block;
width: 100%;
float: left;
}
.center .cmid .cmdiv .cmdval {
color: #fff;
font-size: 36px;
padding-left: 12%;
}
.center .cmid .cmdiv .cmdt {
@ -985,40 +1004,44 @@ export default {
background: url('../../assets/wh/ct_bg.png') no-repeat;
background-size: 100% 100%;
background-position: center center;
margin-left: 15%;
margin: 0 auto;
}
.center .cmid .cmdiv:nth-child(1) {
padding-right: 2rem;
}
.center .cmid .cmdiv:nth-child(1) .cmdval {
// padding-left: 12%;
}
.center .cmid .cmdiv:nth-child(1) .cmdt {
// margin-left: 15%;
}
.center .cmid .cmdiv:nth-child(2) {
padding-right: 10%;
text-align: right;
width: 20%;
padding-left: 9.8%;
padding-left: 2rem;
}
.center .cmid .cmdiv:nth-child(2) .cmdval {
text-align: right;
padding-right: 30% !important;
margin-right: 16%;
// text-align: center;
// padding-right: 30% !important;
// margin-right: 16%;
}
.center .cmid .cmdiv:nth-child(2) .cmdt {
/* padding-right:30% !important; */
margin-right: 25%;
margin-left: 40%;
// margin-right: 25%;
// margin-left: 40%;
}
/* 中间底部 */
.center .cbuttom {
margin-top: 12vh;
padding-top: 3.5vh;
height: 6vh;
line-height: 6vh;
margin-top: 1.3rem;
text-align: center;
}
.center .cbuttom span {
display: block;
float: left;
}
.center .cbuttom .cbval {
@ -1038,26 +1061,25 @@ export default {
background-size: 100% 100%;
background-position: center center;
width: 6vw;
margin-left: 45%;
margin-top: 1vh;
margin: 2vh auto;
}
/* 右边 */
.rightbox {
width: 25%;
width: 5.63rem;
float: left;
}
.rightbox .pcgrliu {
margin-top: 10vh;
margin-top: 0.76rem;
height: 26vh;
}
.rightbox .pcgrliu .pcg_title {
display: block;
height: 0.68rem;
height: 0.76rem;
line-height: 0.48rem;
background: url('../../assets/wh/pcg_t_bg.png') no-repeat;
background: url('../../assets/wh/r_t_bg_1.png') no-repeat;
background-size: 100% 100%;
background-position: 0 center;
padding-left: 0.68rem;
@ -1066,15 +1088,15 @@ export default {
}
.rightbox .tsgrliu {
margin: 14vh 0 0 0;
margin-top: 0.45rem;
height: 26vh;
}
.rightbox .tsgrliu .tsg_title {
display: block;
height: 0.68rem;
height: 0.76rem;
line-height: 0.48rem;
background: url('../../assets/wh/tsg_t_bg.png') no-repeat;
background: url('../../assets/wh/r_t_bg_2.png') no-repeat;
background-size: 100% 100%;
background-position: 0 center;
padding-left: 0.68rem;
@ -1082,14 +1104,23 @@ export default {
font-size: 16px;
}
/* 全局背景 */
.wh_bg {
clear: both;
background-image: url("../../assets/wh/whbg.jpg") !important;
}
.screen-box {
background: none !important;
#tsgchart{
width: 100%;height: 3.1rem;margin-top: 0.3rem;
}
.screen-box{
overflow: visible !important;
::v-deep .screen-wrapper{
width: calc(24rem - 1.14rem) !important;
height: 10.71rem !important;
overflow: visible !important;
margin: 0px 0.57rem 0px 0.57rem !important;
box-sizing: border-box !important;
}
}
#cultrue{
// transform: scale(1.25);//1536transform: scale(0.8, 0.8)
transform-origin: 0 0;
}
</style>

449
src/views/index.vue

@ -5,98 +5,97 @@
<div class="leftbox">
<!-- 客流 -->
<div class="keliu">
<span class="kliu_title">客流趋势</span>
<span class="kliu_title">总服务人次趋势</span>
<div class="kliu_st">
<span id="yitem" :class="klselt == 'y' ? 'spactive' : ''" @click="selitem('y')"></span>
<span id="mitem" :class="klselt == 'm' ? 'spactive' : ''" @click="selitem2('m')"></span>
<span id="ditem" :class="klselt == 'd' ? 'spactive' : ''" @click="selitem3('d')"></span>
</div>
<!-- 柱状图 -->
<div class="tongjitu" id="homebar" style="height: 230px; width: 100%;">
<!-- 柱图注意样式 -->
</div>
<!-- 几大场馆预警图 -->
<div class="cgflow">
<!-- 左边的流量预警 -->
<div class="cgflow_leftbox">
<!-- 体育场的流量预警 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[0] }}</span>
<span class="cgval">{{ proportionData[0] }}</span>
<span class="cgimg"><img src="../assets/index/tyc_icon.png" /></span>
</div>
<!-- 体育馆 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[1] }}</span>
<span class="cgval">{{ proportionData[1] }}</span>
<span class="cgimg"><img src="../assets/index/tyg_icon.png" /></span>
</div>
<!-- 游泳馆 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[2] }}</span>
<span class="cgval">{{ proportionData[2] }}</span>
<span class="cgimg"><img src="../assets/index/yyg_icon.png" /></span>
</div>
</div>
<!-- 立体柱状图 -->
<div class="tongjitu" id="homebar">
<!-- 柱图注意样式 -->
</div>
<!-- 几大场馆预警图 -->
<div class="cgflow">
<!-- 左边的流量预警 -->
<div class="cgflow_leftbox">
<!-- 体育场的流量预警 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[0] }}</span>
<span class="cgval">{{ proportionData[0] }}</span>
<span class="cgimg"><img src="../assets/index/tyc_icon.png" /></span>
</div>
<!-- 体育馆 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[1] }}</span>
<span class="cgval">{{ proportionData[1] }}</span>
<span class="cgimg"><img src="../assets/index/tyg_icon.png" /></span>
</div>
<!-- 右边流量预警 -->
<div class="cgflow_rightbox">
<!-- 图书馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/tsg_icon.png" /></span>
<span class="cgval">{{ proportionData[3] }}</span>
<span class="cgtitle">{{ groupNameData[3] }}</span>
</div>
<!-- 文化馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/whg_icon.png" /></span>
<span class="cgval">{{ proportionData[4] }}</span>
<span class="cgtitle">{{ groupNameData[4] }}</span>
</div>
<!-- 博物馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/bwg_icon.png" /></span>
<span class="cgval">{{ proportionData[5] }}</span>
<span class="cgtitle">{{ groupNameData[5] }}</span>
</div>
<!-- 游泳馆 -->
<div class="cgfitem">
<span class="cgtitle">{{ groupNameData[2] }}</span>
<span class="cgval">{{ proportionData[2] }}</span>
<span class="cgimg"><img src="../assets/index/yyg_icon.png" /></span>
</div>
</div>
<!-- 今日各场馆人数趋势 -->
<div class="gcgqs">
<div class="gcg_title">今日各场馆人数趋势</div>
<div id="kl-line" style="width: 100%; height: 20vh"></div>
<!-- 右边流量预警 -->
<div class="cgflow_rightbox">
<!-- 图书馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/tsg_icon.png" /></span>
<span class="cgval">{{ proportionData[3] }}</span>
<span class="cgtitle">{{ groupNameData[3] }}</span>
</div>
<!-- 文化馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/whg_icon.png" /></span>
<span class="cgval">{{ proportionData[4] }}</span>
<span class="cgtitle">{{ groupNameData[4] }}</span>
</div>
<!-- 博物馆 -->
<div class="cgfitem">
<span class="cgimg"><img src="../assets/index/bwg_icon.png" /></span>
<span class="cgval">{{ proportionData[5] }}</span>
<span class="cgtitle">{{ groupNameData[5] }}</span>
</div>
</div>
</div>
<!-- 今日各场馆服务人次趋势 -->
<div class="gcgqs">
<div class="gcg_title">今日各场馆服务人次趋势</div>
<div id="kl-line" style="width: 90%; height: 2.3rem;margin-left: 10%;"></div>
</div>
</div>
<!-- 中间 -->
<div class="centerbox">
<!-- 今日进馆人数 -->
<div class="jgrs">
<span id="jgval1" class="jgval jgval1">{{ day_num }}</span>
<span class="jgdesc jgdesc1">今日进馆人数</span>
<div class="jgrs jgrs1">
<span id="jgval1" class="jgval">{{ day_num }}</span>
<span class="jgdesc">今日进馆人数</span>
</div>
<!-- 本周进馆人数 -->
<div class="jgrs">
<div class="jgrs jgrs2">
<span id="jgval2" class="jgval">{{ week_num }}</span>
<span class="jgdesc">本周进馆人数</span>
</div>
<!-- 本月进馆人数 -->
<div class="jgrs">
<span id="jgval3" class="jgval jgval3">{{ mon_num }}</span>
<span class="jgdesc jgdesc3">本月进馆人数</span>
<div class="jgrs jgrs3">
<span id="jgval3" class="jgval">{{ mon_num }}</span>
<span class="jgdesc">本月进馆人数</span>
</div>
<!-- 会动的体育馆image -->
<div class="tygpic"><img src="../assets/index/zt.png" /></div>
<!-- 年度进馆人数 -->
<div class="ndjgrs">
<span class="nddesc">年度进馆人数</span>
<span class="nddesc">年度服务人数</span>
<span class="ndval">{{ year_num }}</span>
</div>
</div>
<!-- 右边 -->
<div class="rbox">
<div class="rbox_title">各场馆实时进馆人数</div>
<div class="rbox_title">各场馆实时服务人次</div>
<div class="rbox_con">
<!-- 各场馆实时人数 cg1 -->
<!-- v-for="(item, index) in 6" :key="index" -->
@ -171,6 +170,7 @@ export default {
week_num: 0,
mon_num: 0,
year_num: 0,
klqsXDatas: [],
klqsDatas: [],
ssjgNumDatas: [],
rsqsDatas: [],
@ -294,17 +294,27 @@ export default {
//
home_bar() {
let that = this;
var chartDom = document.getElementById("homebar");
var myChart = echarts.init(chartDom);
var option;
// var xData = ['09:00', '10:00', '11:00','12:00', '13:00', '14:00','15:00', '16:00', '17:00','18:00', '20:00', '21:00', '22:00'];
// var data = [100, 200, 100, 200, 100, 200, 250, 50, 30, 130, 150, 110, 120]
console.log(this.klqsDatas);
var data = this.klqsDatas
// var data = [Math.random() * 300]
var data = this.klqsDatas;
let max=this.klqsDatas[0];
for (let i = 0; i < this.klqsDatas.length; i++) {
if (this.klqsDatas[i]>max) {
max = this.klqsDatas[i];
}
}
let dataLenArr = [], dataBGArr = [];
this.klqsDatas.map(item=>{
dataLenArr.push(1);//
dataBGArr.push(max);//
})
option = {
// backgroundColor: '#031245',
color: [
@ -331,8 +341,8 @@ export default {
containLabel: true,
left: 30,
right: 0,
bottom: 0,
top: 60,
bottom: 10,
top: 20,
},
xAxis: {
axisLabel: {
@ -358,7 +368,7 @@ export default {
},
show: true,
},
data: ['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '20:00', '21:00', '22:00'],
data: this.klqsXDatas,
type: 'category',
},
yAxis: {
@ -396,7 +406,7 @@ export default {
data: data,
type: 'bar',
barMaxWidth: 'auto',
barWidth: 15,
barWidth: 10,
itemStyle: {
normal: {
color: function () {
@ -418,57 +428,50 @@ export default {
color: '#fff',
},
},
{
data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
type: 'bar',
barMaxWidth: '15',
symbol: 'circle',
symbolOffset: [0, '50%'],
symbolSize: [10, 5],
color: '#fff',
},
// {
// data: dataLenArr,
// type: 'pictorialBar',
// barMaxWidth: '15',
// symbol: 'circle',
// symbolOffset: [0, '50%'],
// symbolSize: [10, 5],
// color: '#fff',
// zlevel: 0,
// //
// },
{
data: data,
type: 'pictorialBar',
barMaxWidth: '15',
barMaxWidth: '10',
symbolPosition: 'end',
symbol: 'circle',
symbolOffset: [0, '-50%'],
symbolSize: [15, 7],
symbolSize: [10, 5],
zlevel: 2,
color: 'rgba(255,255,255,0.7)',
//
},
{
data: data,
data: dataBGArr,
type: 'bar',
barMaxWidth: 'auto',
barWidth: 15,
barGap: '-100%',
// barGap: '40%',
barMaxWidth: 'auto',
barWidth: 10,
zlevel: -1,
},
{
data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
type: 'pictorialBar',
barMaxWidth: '15',
symbol: 'circle',
symbolOffset: [0, '50%'],
symbolSize: [15, 7],
zlevel: -2,
color: 'rgba(0, 75, 187, 0.2)',
//
},
{
data: [300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300],
data: dataBGArr,
type: 'pictorialBar',
barMaxWidth: '15',
barMaxWidth: '10',
symbolPosition: 'end',
symbol: 'circle',
symbolOffset: [0, '-50%'],
symbolSize: [15, 7],
zlevel: -1,
itemStyle: {
shadowColor: 'rgba(0, 0, 0, 0.5)',
shadowBlur: 15
}
symbolSize: [10, 5],
zlevel: 2,
color: 'rgba(0, 75, 187, 0.5)',
//
},
],
tooltip: {
@ -484,8 +487,55 @@ export default {
},
};
option && myChart.setOption(option);
function run() {
that.getHomeBarData();
console.log('重新绘制');
that.klqsDatas = that.klqsDatas.sort(function(a,b){
return Math.random() - 0.5;
});
let max=that.klqsDatas[0];
for (let i = 0; i < that.klqsDatas.length; i++) {
if (that.klqsDatas[i]>max) {
max = that.klqsDatas[i];
}
}
let dataLenArr = [], dataBGArr = [];
that.klqsDatas.map(item=>{
dataLenArr.push(1);//
dataBGArr.push(max);//
})
myChart.setOption({
xAxis: {
data: that.klqsXDatas
},
series: [
{
type: 'bar',
data: that.klqsDatas
},
// {
// type: 'pictorialBar',
// data: dataLenArr
// },
{
type: 'pictorialBar',
data: that.klqsDatas
},
{
type: 'bar',
data: dataBGArr
},
{
type: 'pictorialBar',
data: dataBGArr
}
]
});
}
setInterval(function () {
run();
}, 3000);
},
//
@ -591,9 +641,9 @@ export default {
},
grid: {
borderWidth: 0,
top: 160,
bottom: 160,
right: 15,
top: 10,
bottom: 20,
right: 0,
left: 50,
textStyle: {
color: "#fff"
@ -704,6 +754,7 @@ export default {
});
that.klqsDatas = datas
that.klqsXDatas = dkeys
// groupsData.forEach((item) => {
// that.proportionData.push(item.proportion)
@ -718,6 +769,7 @@ export default {
getInfoDatas() {
let that = this
homeApi.allInfoDatas().then(res => {
return;//Cannot read properties of undefined (reading 'returnData')
that.ssjgNumDatas = res.data.returnData
ssjgNumDatas.forEach(item => {
@ -757,6 +809,19 @@ export default {
};
</script>
<style>
.screen-box {
background: none !important;
}
.btgym {
width: 100%;
height: 100%;
background-image: url('../assets/index/bg.png') !important;
background-size: 100% 100%;
background-position: 100% 100%;
background-repeat: no-repeat;
}
</style>
<style lang="less">
#index {
width: 100%;
height: 100%;
@ -764,9 +829,12 @@ export default {
}
.leftbox {
width: 30%;
width: 7.48rem;
float: left;
/* height: 100%; */
display: flex;
flex-wrap: wrap;
justify-content: end;
margin-top: calc(-1.04rem + 0.16rem);
}
.leftbox .keliu {
@ -774,12 +842,13 @@ export default {
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: 0 0;
width: 100%;
height: 7vh;
color: #b5b7c5;
}
/* 客流趋势 */
.leftbox .keliu .kliu_title {
.leftbox .kliu_title {
line-height: 0.88rem;
font-size: 20px;
padding-left: 2rem;
@ -787,14 +856,14 @@ export default {
float: left;
}
.leftbox .keliu .kliu_st {
.leftbox .kliu_st {
float: right;
line-height: 0.88rem;
font-size: 0.26rem;
padding-top: 0.18rem;
}
.leftbox .keliu .kliu_st span {
.leftbox .kliu_st span {
display: block;
background: url("../assets/index/sel_zone_bg.png") no-repeat 0 0;
background-position: 0 0;
@ -808,25 +877,26 @@ export default {
cursor: pointer;
}
.leftbox .keliu .kliu_st .spactive {
.leftbox .kliu_st .spactive {
background-image: url("../assets/index/sel_zone_active_bg.png");
}
/* 统计图 */
.leftbox .keliu .tongjitu {
/* padding-top: 0.56rem; */
width: 100%;
top: 0.56rem;
.leftbox .tongjitu {
margin-top: 0.2rem;
width: 7.03rem;
height: 2.3rem;
}
/* 场馆流量预警 */
.leftbox .cgflow {
margin-top: 0.8rem;
margin-top: 0.3rem;
background-image: url("../assets/index/left_t3_bg.png");
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: 0 center;
height: 30vh;
width: 7.03rem;
height: 3.53rem;
display: flex;
align-items: center;
justify-content: space-between;
@ -899,7 +969,7 @@ export default {
/* 各场馆人流趋势 */
.leftbox .gcgqs {
float: left;
// float: left;
width: 100%;
height: 30vh;
}
@ -908,10 +978,11 @@ export default {
background-image: url('../assets/index/left_t2_bg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
height: 0.88rem;
height: 0.99rem;
font-size: 20px;
line-height: 0.88rem;
padding-left: 2rem;
color: #fff;
}
/* 中间的数据 */
@ -919,106 +990,116 @@ export default {
background-image: url('../assets/index/mid_bg.png');
background-position: 0 0;
background-size: 100% 100%;
width: 30%;
width: 8.07rem;
height: 9.12rem;
float: left;
margin-left: 3%;
margin-left: 0.34rem;
padding: 2%;
margin-top: 5%;
margin-top: 0.53rem;
position: relative;
box-sizing: border-box;
}
.centerbox .jgrs {
width: 33.33%;
float: left;
height: 120px;
position: relative;
}
.centerbox .jgval {
display: block;
color: white;
font-size: 26px;
/* position: absolute;
bottom: 54px;
left: 48px; */
width: 1.8rem;
color: #fff;
position: absolute;
text-align: center;
margin-top: 32px;
}
.centerbox .jgdesc {
display: block;
color: gray;
font-size: 16px;
position: absolute;
bottom: 14px;
left: 50px;
.centerbox .jgrs1{
top: 1rem;
left: 1.03rem;
}
.centerbox .jgval1 {
bottom: 54px;
left: 70px;
margin-left: 44px;
.centerbox .jgrs2{
top: 1rem;
left: 3.135rem;
}
.centerbox .jgdesc1 {
bottom: 16px;
left: 70px;
.centerbox .jgrs3{
top: 1rem;
right: 1.03rem;
}
.centerbox .jgval3 {
bottom: 54px;
left: 25px;
margin-right: 44px;
.centerbox .jgval {
font-size: 0.3rem;
display: block;
line-height: 0.28rem;
margin-bottom: 0.18rem;
}
.centerbox .jgdesc3 {
bottom: 14px;
left: 26px;
.centerbox .jgdesc {
font-size: 0.18rem;
}
@keyframes tygpicmove {
0%{
transform: translateY(-10px);
opacity: 0.6;
}
25%{
transform: translateY(0px);
opacity: 1;
}
50%{
transform: translateY(10px);
opacity: 0.6;
}
75%{
transform: translateY(0px);
opacity: 1;
}
100%{
transform: translateY(-10px);
opacity: 0.6;
}
}
.centerbox .tygpic {
clear: both;
width: 100%;
width: 5.93rem;
height: 4.44rem;
text-align: center;
margin: 1rem auto 0px;
animation: tygpicmove 2s ease-out infinite;
}
.centerbox .tygpic img {
height: 4.5rem;
margin: 12% auto;
margin: 1rem auto;
}
.ndjgrs {
width: 100%;
text-align: center;
color: white;
text-align: center;
position: absolute;
bottom: 8%;
left: 41%;
bottom: 0.57rem;
left: 0;
}
.ndjgrs .nddesc {
font-size: 18px;
font-size: 0.28rem;
display: block;
margin-bottom: 19px;
margin-bottom: 0.1rem;
}
.ndjgrs .ndval {
display: block;
font-size: 24px;
font-size: 0.5rem;
}
/* 右边 */
.rbox {
width: 30%;
width: 7.34rem;
float: left;
margin-left: 3%;
margin-left: 0.34rem;
color: #fff;
margin-top: calc(-0.97rem + 0.16rem);
}
.rbox .rbox_title {
background-image: url('../assets/index/right_t1_bg.png');
background-size: 100%;
background-repeat: no-repeat;
height: 0.86rem;
height: 0.97rem;
line-height: 0.86rem;
font-weight: 600;
font-size: 20px;
@ -1111,16 +1192,22 @@ export default {
background-position: 100% 100%;
background-repeat: no-repeat;
} */
.btgym {
width: 100%;
height: 100%;
background-image: url('../assets/index/bg.jpg') !important;
background-size: 100% 100%;
background-position: 100% 100%;
background-repeat: no-repeat;
}
.screen-box {
background: none !important;
overflow: visible !important;
}
.screen-box .screen-wrapper{
// width: calc(24rem - 0.44rem) !important;
height: 10.71rem !important;
overflow: visible !important;
// margin: 0px 0.29rem 0px 0.15rem !important;
margin: 0px !important;
box-sizing: border-box !important;
}
#index{
// transform: scale(1.25);
/* //浏览器缩小至1536时,匹配外盒子逻辑赋予的transform: scale(0.8, 0.8) */
transform-origin: 0 0;
}
</style>

638
src/views/ty/index.vue

@ -5,48 +5,76 @@
<div class="main">
<div class="left">
<div class="tiyuBla">
<div style="position: absolute; right: 32%; top: 52%">体育</div>
<span style="position: absolute; right: 12%; top: 72%;font-size: 16px;" class="wh_small">体育场 &nbsp; | &nbsp;
<div style="position: absolute; right: 2.82rem; top: 1.66rem">体育</div>
<div style="position: absolute; right: 1.2rem; top: 2.02rem;font-size: 0.3rem;
background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,0.2),rgba(255,255,255,0.2));
-webkit-background-clip:text;
-webkit-text-fill-color:transparent; ">STADIUM</div>
<span style="right: 1.66rem; top: 2.53rem;" class="wh_small">体育场 &nbsp; | &nbsp;
体育馆 &nbsp; | &nbsp; 游泳场馆</span>
</div>
<div class="tongji">
<span class="institle">总计进馆人数</span>
<span class="institle">累计服务人数</span>
<!-- 今日进馆人数 -->
<div class="insval">
<img src="../../assets/wh/td_ins.png" />
<span id="insv" class="insv">{{todayNum}}</span>
<span class="inst">今日进馆人数</span>
<div>
<span id="insv" class="insv">{{todayNum}}</span>
<span class="inst">今日进馆人数</span>
</div>
</div>
<!-- 本周进馆人数 -->
<div class="insval">
<img src="../../assets/wh/tm_ins.png" />
<div>
<span id="insv2" class="insv">{{weekNum}}</span>
<span class="inst">本周进馆人数</span>
</div>
</div>
<!-- 本月进馆人数 -->
<div class="insval">
<img src="../../assets/wh/tm_ins.png" />
<span id="insv2" class="insv">{{monthNum}}</span>
<span class="inst">本月进馆人数</span>
<div>
<span id="insv2" class="insv">{{monthNum}}</span>
<span class="inst">本月进馆人数</span>
</div>
</div>
<!-- 本年进馆人数 -->
<div class="insval">
<img src="../../assets/wh/tyear_ins.png" />
<span id="insv3" class="insv">{{ yearNum }}</span>
<span class="inst">本年进馆人数</span>
<div>
<span id="insv3" class="insv">{{ yearNum }}</span>
<span class="inst">本年进馆人数</span>
</div>
</div>
</div>
<div class="dinszone">
<span class="dins_title">24小时总进馆人流趋势</span>
<span class="dins_title">24小时总服务人次趋势</span>
<!-- 柱状统计图 -->
<div class="dins_chart" ref="dinschart" style="height: 22vh; width: 100%"></div>
<div class="dins_chart" ref="dinschart"></div>
</div>
</div>
<div class="center">
<div class="c_title">24小时进馆人数</div>
<div class="c_l"></div>
<div class="c_r">
<span class="c_r_num">21312</span>
<span class="c_r_txt">体育场</span>
<span class="c_r_num">21312</span>
<span class="c_r_txt">体育馆</span>
<span class="c_r_num">21312</span>
<span class="c_r_txt">游泳场馆</span>
</div>
<!-- v-for=" item in videoData" :key="item.key" -->
<!-- <div class="item" v-for=" item in videoData" :key="item.key" style="position: relative;">
<video style="width: 68%;height: 70%;position: absolute;left: 0.3rem;top: 0.3rem;" :id="item.key"
autoplay></video>
</div> -->
<div class="item" style="position: relative;">
<!-- <div class="item" style="position: relative;">
<video style="width: 68%;height: 70%;position: absolute;top: 0.3rem;left: 0.3rem;" id="camera0"
autoplay></video>
</div>
@ -55,43 +83,44 @@
</div>
<div class="item">
<video style="width: 68%;margin-top: 0.3rem;height: 70%;margin-left: 0.3rem;" id="camera2" autoplay></video>
</div>
</div> -->
</div>
<div class="right">
<!-- <div class="item"></div> -->
<div class="pcgrliu">
<span class="pcg_title">各场馆人次占比</span>
<div class="venue_proportion_box" style="width: 100%; height: 290px">
<div class="pcg_title">
各场馆服务人次占比
<span @click="rightTab=2" :class="rightTab==2?'current':'no-current'" style="margin-right: 0.21rem;"></span>
<span @click="rightTab=1" :class="rightTab==1?'current':'no-current'" style="margin-right: 0.21rem;"></span>
</div>
<div class="iframe_box" v-if="rightTab==2">
<iframe src="https://www.js365.org.cn/pages/reserve/index " style="width: 100%; height: 6.96rem;transform: scale(0.3333);transform-origin: 0 0;"></iframe>
</div>
<div class="venue_proportion_box" style="width: 100%; height: 2.32rem;margin-top: 0.13rem;" v-if="rightTab==1">
<div class="venue_proportion">
<div class="venue_proportion_top" style="cursor: pointer;" @click="istygShowfn">
<span class="venue_proportion_box_num" style="position: relative;cursor: pointer;">
<a target="tyg" style="text-decoration: none;color: #fff;z-index: 9999;">
{{ cgp_1 }}
</a>
<!-- v-show="istygShow == true" -->
<div v-show="istygShow == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
<div id="pieChart1" style="height: 1.55rem;width: 1.55rem;margin: 0px auto;"></div>
<div class="" style="position: absolute;top: 0;width: 100%;line-height: 1.55rem;">25%</div>
<!-- <div v-show="istygShow == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
@click="istygShowfn">
</div>
</div> -->
</span>
</div>
<div class="venue_proportion_bo">
<span>{{ cgn_1 }}</span>
<span>{{ cgn_1||0 }}</span>
</div>
</div>
<div class="venue_proportion">
<div class="venue_proportion_top" style="cursor: pointer;" @click="istygShowfn2">
<span class="venue_proportion_box_num" style="position: relative;cursor: pointer;">
<a target="tyg" style="text-decoration: none;color: #fff;z-index: 9999;">
{{ cgp_2 }}
</a>
<!-- v-show="istygShow == true" -->
<div v-show="istygShow2 == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
<div id="pieChart2" style="height: 1.55rem;width: 1.55rem;margin: 0px auto;"></div>
<div class="" style="position: absolute;top: 0;width: 100%;line-height: 1.55rem;">25%</div>
<!-- <div v-show="istygShow2 == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
@click="istygShowfn2">
</div>
</div> -->
</span>
</div>
@ -102,11 +131,11 @@
<div class="venue_proportion">
<div class="venue_proportion_top" style="cursor: pointer;" @click="istygShowfn3">
<span class="venue_proportion_box_num" style="position: relative;cursor: pointer;">
{{ cgp_3 }}
<!-- v-show="istygShow == true" -->
<div v-show="istygShow3 == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
<div id="pieChart3" style="height: 1.55rem;width: 1.55rem;margin: 0px auto;"></div>
<div class="" style="position: absolute;top: 0;width: 100%;line-height: 1.55rem;">25%</div>
<!-- <div v-show="istygShow3 == true" style="cursor: pointer;overflow-y: hidden;padding: 0.5rem;"
@click="istygShowfn3">
</div>
</div> -->
</span>
</div>
@ -118,10 +147,10 @@
</div>
<!-- <div id="pcgchart1" style="width: 100%;height: 25vh;margin-top: 20px;"></div> -->
</div>
<!-- 各场馆人流趋势 -->
<!-- 各场馆服务人次趋势 -->
<div class="pcgrliu">
<span class="pcg_title2">各场馆人流趋势</span>
<div id="pcgchart2" style="width: 100%; height: 290px"></div>
<span class="pcg_title2">各场馆服务人次趋势</span>
<div id="pcgchart2" style="width: 100%; height: 5.2rem"></div>
</div>
<!-- <div class="item"></div> -->
</div>
@ -153,10 +182,12 @@ export default {
istygShow3: false,
//
todayNum:0,
weekNum: 0,
monthNum:0,
yearNum:0,
//
daData:[],
data24h: [],
//
cgp_1:'',
cgp_2:'',
@ -172,7 +203,8 @@ export default {
oWebControl0: '',
oWebControl1: '',
oWebControl2: '',
videoData: []
videoData: [],
rightTab: 1
};
},
@ -189,11 +221,13 @@ export default {
mounted() {
let cc = window.document.getElementById("app");
// classname
if (cc.className.indexOf('ty_bg') > -1) {
cc.className = "btgym";
} else {
cc.classList.add("ty_bg");
}
setTimeout(() => {
if (cc.className.indexOf("ty_bg") > -1) {
cc.className = "btgym";
} else {
cc.classList.add("ty_bg");
}
}, 200);
// //
this.$nextTick( ()=>{
this.getStat()
@ -204,7 +238,8 @@ export default {
this.ty_bar1()
// this.ty_bar2()
this.ty_bar3()
})
this.ty_pie1()
})
// this.$nextTick(()=>{
@ -252,11 +287,22 @@ export default {
},
ty_bar1() {
var myChart = echarts.init(this.$refs.dinschart);
var xData = ['09:00', '10:00', '11:00','12:00', '13:00', '14:00','15:00', '16:00', '17:00','18:00', '20:00', '21:00', '22:00'];
var data = [10000, 20000, 10000, 20000, 10000, 20000, 25000, 50000, 30000, 13000, 15000, 11000, 12000]
let that = this;
var xData = ['09:00', '10:00', '11:00','12:00', '13:00', '14:00','15:00', '16:00', '17:00','18:00', '20:00', '21:00', '22:00'];
// console.log(that.daData.dkeys, 'that.daData.dkeys')
var data24h = [10000, 20000, 10000, 20000, 10000, 20000, 25000, 50000, 30000, 13000, 15000, 11000, 12000, 10000];
// data24h = that.data24h;
let max=data24h[0];
for (let i = 0; i < data24h.length; i++) {
if (data24h[i]>max) {
max = data24h[i];
}
}
let dataLenArr = [], dataBGArr = [];
data24h.map(item=>{
dataLenArr.push(0);//
dataBGArr.push(max);//
})
var option = {
tooltip: {
@ -274,6 +320,7 @@ export default {
containLabel: true
},
xAxis: [{
// data: that.daData.dkeys,
data: xData,
axisLine: {
lineStyle: {
@ -339,7 +386,7 @@ export default {
)
}
},
data: data,
data: data24h,
zlevel: 11
},
{
@ -347,7 +394,7 @@ export default {
stack: 1,
xAxisIndex: 0,
symbolOffset: [0, 0], //
data: [0, 0, 0, 0, 0, 0, 0, 0, 0],
data: dataLenArr,
itemStyle: {
normal: {
color: '#fff'
@ -362,7 +409,7 @@ export default {
type: 'bar',
barWidth: '10%',
barGap: '-100%',
data: [15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000],
data: dataBGArr,
itemStyle: {
normal: {
color: '#004298',
@ -376,13 +423,55 @@ export default {
]
}
option && myChart.setOption(option);
function run(myChart){
that.getStat();
// console.log('', that.daData.dkeys, that.data24h, data24h);
data24h = data24h.sort(function(a,b){
return Math.random() - 0.5;
});
let max=data24h[0];
for (let i = 0; i < data24h.length; i++) {
if (data24h[i]>max) {
max = data24h[i];
}
}
let dataLenArr = [], dataBGArr = [];
data24h.map(item=>{
dataLenArr.push(0);//
dataBGArr.push(max);//
})
myChart.setOption({
xAxis: {
data: that.daData.dkeys
},
series: [{
type: 'bar',
data: data24h,
},
{
type: 'scatter',
data: dataLenArr
},
{
name: '背景',
type: 'bar',
data: dataBGArr
},
]
});
}
// 使
setTimeout(()=>{
var myChart = echarts.init(this.$refs.dinschart);
option && myChart.setOption(option);
setInterval(function () {
run(myChart);
}, 3000);
}, 200)
},
ty_bar2() {
var chartDom = document.getElementById("pcgchart1");
var myChart = echarts.init(chartDom);
var option
// var xData = function() {
@ -547,11 +636,13 @@ export default {
series: series,
}
option && myChart.setOption(option);
setTimeout(()=>{
var myChart = echarts.init(chartDom);
option && myChart.setOption(option);
}, 200)
},
ty_bar3() {
var chartDom = document.getElementById("pcgchart2");
var myChart = echarts.init(chartDom);
var option
// var xData = function() {
@ -631,7 +722,8 @@ export default {
option = {
// backgroundColor: "#141f56",
legend: {
top: 260,
// top: 390,
bottom: 0,
right: 0,
itemGap: 35,
itemWidth: 20,
@ -674,9 +766,9 @@ export default {
},
grid: {
borderWidth: 0,
top: 230,
bottom: 240,
right: 20,
top: 50,
// bottom: '2rem',
right: 0,
left: 50,
textStyle: {
color: "#fff"
@ -736,8 +828,188 @@ export default {
},
series: series,
}
setTimeout(()=>{
var myChart = echarts.init(chartDom);
option && myChart.setOption(option);
}, 200)
},
ty_pie1(){
let that = this;
var dataP = [{
name: '谷峰差收益',
value: 25,
},
{
name: '充电桩收益',
value: 75,
}
];
function hexToRgba(hex, opacity) {
return (
'rgba(' +
parseInt('0x' + hex.slice(1, 3)) +
',' +
parseInt('0x' + hex.slice(3, 5)) +
',' +
parseInt('0x' + hex.slice(5, 7)) +
',' +
opacity +
')'
);
}
let color = ['#00d2ff', '#22e5d1', '#f4d64e', '#0072ff'];
let color1=[], color2=[], color3=[];
//
color.forEach((item) => {
color1.push(item, 'transparent');
color2.push(hexToRgba(item, 0.4), 'transparent');
color3.push(hexToRgba(item, 0.7), 'transparent');
});
let data1 = [];
let sum = 0;
//
dataP.forEach((item) => {
sum += Number(item.value);
});
//
dataP.forEach((item, index) => {
if (item.value !== 0) {
data1.push(item, {
name: '',
value: sum / 70,
labelLine: {
show: false,
lineStyle: {
color: 'transparent',
},
},
itemStyle: {
color: 'transparent',
},
});
}
});
var option = {
tooltip: {
formatter: (params) => {
if (params.name !== '') {
return params.name + ' : ' + params.value + '\n' + '%';
}
},
},
grid: {
top: 0,
bottom: 0,
left: 0,
right: 0,
containLabel: true,
},
series: [
{
type: 'pie',
radius: ['90%', '80%'],
center: ['50%', '50%'],
hoverAnimation: false,
startAngle: 90,
selectedMode: 'single',
selectedOffset: 0,
itemStyle: {
normal: {
color: (params) => {
console.log('params', params)
return color2[params.dataIndex];
},
},
},
label: {
show: false,
formatter: '{b}' + ' ' + '{c}',
},
data: data1,
z: 666,
},
{
type: 'pie',
radius: ['90%', '100%'],
center: ['50%', '50%'],
hoverAnimation: false,
startAngle: 90,
selectedMode: 'single',
selectedOffset: 0,
itemStyle: {
normal: {
color: (params) => {
return color3[params.dataIndex];
},
},
},
label: {
show: false,
formatter: '{b}' + ' ' + '{c}',
},
data: data1,
z: 666,
},
],
}
option && myChart.setOption(option);
function run(myChart){
that.getStat();
// console.log('', that.daData.dkeys, that.data24h, data24h);
data24h = data24h.sort(function(a,b){
return Math.random() - 0.5;
});
let max=data24h[0];
for (let i = 0; i < data24h.length; i++) {
if (data24h[i]>max) {
max = data24h[i];
}
}
let dataLenArr = [], dataBGArr = [];
data24h.map(item=>{
dataLenArr.push(0);//
dataBGArr.push(max);//
})
myChart.setOption({
xAxis: {
data: that.daData.dkeys
},
series: [{
type: 'bar',
data: data24h,
},
{
type: 'scatter',
data: dataLenArr
},
{
name: '背景',
type: 'bar',
data: dataBGArr
},
]
});
}
// 使
setTimeout(()=>{
var pieDom1 = document.getElementById("pieChart1");
var myChart = echarts.init(pieDom1);
option && myChart.setOption(option);
var pieDom2 = document.getElementById("pieChart2");
var myChart = echarts.init(pieDom2);
option && myChart.setOption(option);
var pieDom3 = document.getElementById("pieChart3");
var myChart = echarts.init(pieDom3);
option && myChart.setOption(option);
// setInterval(function () {
// run(myChart);
// }, 3000);
}, 200)
},
//
@ -747,7 +1019,13 @@ export default {
// DAILY
homeApi.allTygGroupTimeNum({granularity:"daily",groupsId:groups}).then(res=>{
// 24h
that.daData = res.data.data
that.daData = res.data.data;
const tmpdata = res.data.data.allTimeData;
let datas = []
Object.values(tmpdata).forEach((value) => {
datas.push(value.num)
});
that.data24h = datas;
const day_tmp=res.data.data.groupsData
//
@ -755,12 +1033,14 @@ export default {
that.todayNum =+ item.noRepeatInNum
});
//
that.cgp_1 = day_tmp[0].proportion
that.cgn_1 = day_tmp[0].groupName
that.cgp_2 = day_tmp[1].proportion
that.cgn_2 = day_tmp[1].groupName
that.cgp_3 = day_tmp[2].proportion
that.cgn_3 = day_tmp[2].groupName
if(day_tmp.length>0){
that.cgp_1 = day_tmp[0].proportion
that.cgn_1 = day_tmp[0].groupName
that.cgp_2 = day_tmp[1].proportion
that.cgn_2 = day_tmp[1].groupName
that.cgp_3 = day_tmp[2].proportion
that.cgn_3 = day_tmp[2].groupName
}
})
// MONTHLY
@ -1346,7 +1626,7 @@ export default {
<style>
.ty_bg {
clear: both;
background-image: url("../../assets/ty/tybg.jpg") !important;
background-image: url("../../assets/ty/bg.png") !important;
}
.screen-box {
@ -1356,37 +1636,31 @@ export default {
<style lang="less" scoped>
.main {
display: flex;
justify-content: space-around;
justify-content: space-between;
.left {
width: 33%;
height: 75vh;
// height: 100%;
// border: 1px solid red;
// margin-left: 2%;
margin-top: -4%;
width: 30%;
width: 7.08rem;
// height: 75vh;
margin-top: calc(-3.32rem + 2.09rem);
.tiyuBla {
width: 100%;
height: 40%;
width: 7.48rem;
height: 3.32rem;
background-image: url("../../assets/ty/ins_title_bg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
color: white;
font-size: 38px;
font-size: 0.56rem;
font-weight: bold;
position: relative;
margin-left: -0.4rem;
.wh_small {
padding-top: 12px;
font-size: 12px;
text-align: right;
padding-right: 10px;
font-size: 0.19rem;
color: white;
position: absolute;
right: 0;
top: 0;
}
}
@ -1394,11 +1668,15 @@ export default {
.tongji {
width: 100%;
// float: left;
height: 2.4rem;
background-image: url("../../assets/wh/ins_count.png");
height: 2.69rem;//1920==216px
// height: 216px;
background-image: url("../../assets/ty/ins_count.png");
background-repeat: no-repeat;
background-size: 100% 100%;
margin-top: 0.48rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.institle {
color: #00c6ff;
@ -1407,13 +1685,16 @@ export default {
height: 0.38rem;
display: block;
font-size: 16px;
width: 100%;
}
.insval {
width: 30%;
height: 1.68rem;
float: left;
margin-left: 0.16rem;
width: 46%;
height: 1.06rem;
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 20px;
}
.insval:first {
@ -1422,53 +1703,60 @@ export default {
.insval img {
padding-top: 0.268rem;
display: block;
// display: block;
text-align: center;
height: 0.78rem;
margin-left: auto;
margin-right: auto;
// margin-left: auto;
// margin-right: auto;
}
.insval span {
display: block;
width: 100%;
text-align: center;
text-align: left;
}
.insval .insv {
height: 0.48rem;
// height: 0.24rem;
line-height: 0.18rem;
font-size: 22px;
font-size: 0.34rem;
color: white;
margin-bottom: 0.13rem;
margin-top: -0.1rem;
}
.insval .inst {
color: #6a6c7c;
font-size: 12px;
height: 0.12rem;
line-height: 0.12rem;
color: #fff;
font-size: 0.19rem;
height: 0.18rem;
line-height: 0.18rem;
}
}
.dinszone {
margin-top: 0.22rem;
margin-top: 0.28rem;
width: 100%;
height: 0.48rem;
// height: 0.48rem;
float: left;
}
.dinszone .dins_title {
display: block;
height: 0.78rem;
height: 0.76rem;
line-height: 0.58rem;
color: #fff;
font-size: 0.2rem;
background-image: url('../../assets/wh/dins_title_bg.png');
background-image: url('../../assets/ty/l_t_bg.png');
background-size: 100% 100%;
background-position: 0 0;
background-repeat: no-repeat;
padding-left: 0.96rem;
}
.dins_chart{
margin-top: 0.2rem;
width: 100%;
height: 2.76rem;
}
.bfb {
width: 100%;
@ -1538,19 +1826,72 @@ export default {
}
.center {
margin-top: 3%;
width: 30%;
height: 72vh;
margin-top: 0.72rem;
width: 35%;
width: 7.63rem;
height: 85vh;
height: 8.41rem;
// border: 1px solid #019ade;
display: flex;
flex-wrap: wrap;
// align-items: center;
align-content: center;
justify-content: center;
// justify-content: center;
background-image: url("../../assets/ty/vbig_bg.png");
background-size: 100% 90%;
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
.c_title{
width: 4.63rem;
height: 1.01rem;
line-height: 1.01rem;
background-image: url("../../assets/ty/c_bg_t.png");
background-size: 100% 100%;
background-repeat: no-repeat;
color: #fff;
font-size: 0.41rem;
font-weight: bold;
text-align: center;
position: absolute;
top: -0.5rem;
left: 1.62rem;
}
.c_l{
width: 4.08rem;
height: 7.62rem;
background-image: url("../../assets/ty/c_bg_l.png");
background-size: 100% 100%;
background-repeat: no-repeat;
margin: 1rem 0.15rem auto 0.49rem;
}
.c_r{
width: 2.46rem;
height: 6.33rem;
margin-top: 1.81rem;
background-image: url("../../assets/ty/c_bg_r.png");
background-size: 100% 100%;
background-repeat: no-repeat;
.c_r_num{
display: block;
width: 100%;
color: #fff;
font-size: 0.38rem;
font-weight: bold;
line-height: 0.45rem;
text-align: center;
margin-top: 0.2rem;
}
.c_r_txt{
width: 100%;
color: #00A7FF;
font-size: 0.27rem;
display: block;
text-align: center;
margin-bottom: 1.72rem;
}
}
.item {
width: 70%;
height: 34%;
@ -1566,8 +1907,9 @@ export default {
}
.right {
margin-top: 3%;
width: 33%;
margin-top: 0.41rem;
width: 30%;
width: 7.08rem;
height: 76vh;
.pcgrliu {
@ -1578,25 +1920,25 @@ export default {
.venue_proportion_box {
display: flex;
justify-content: space-around;
justify-content: space-between;
align-items: center;
color: #00A7FF;
font-size: 13px;
.venue_proportion {
flex: 1;
// flex: 1;
// text-align: center;
.venue_proportion_top {
text-align: center;
width: 85%;
height: 13vh;
width: 2.04rem;
height: 1.55rem;
line-height: 13vh;
margin: 0 auto;
background-image: url('../../assets/ty/右1-4.png');
background-size: 100% 100%;
background-position: 100% 100%;
background-size: contain;
background-position: 100% 50%;
background-repeat: no-repeat;
.venue_proportion_box_num {
@ -1604,11 +1946,11 @@ export default {
font-size: 16px;
font-weight: bold;
display: block;
width: 60%;
height: 12vh;
// width: 60%;
// height: 12vh;
line-height: 12vh;
margin: 0 auto;
background-image: url('../../assets/ty/右1-3.png');
// background-image: url('../../assets/ty/1-3.png');
background-size: 100% 100%;
background-position: 100% 100%;
background-repeat: no-repeat;
@ -1621,7 +1963,7 @@ export default {
width: 50%;
height: 3vh;
margin: 0 auto;
margin-top: 20px;
margin-top: 0.15rem;
background-image: url('../../assets/ty/右1-5.png');
background-size: 100% 100%;
background-position: 100% 100%;
@ -1641,25 +1983,53 @@ export default {
.pcg_title {
display: block;
height: 0.78rem;
height: 0.76rem;
line-height: 0.58rem;
background: url('../../assets/wh/pcg_t_bg.png') no-repeat;
background: url('../../assets/ty/r_t_bg_1.png') no-repeat;
background-size: 100% 100%;
background-position: 0 center;
padding-left: 0.98rem;
color: #fff;
font-size: 16px;
// display: flex;
// align-items: center;
// justify-content: space-between;
.current{
display: block;
width: 0.21rem;
height: 0.21rem;
background: url('../../assets/ty/active.png') no-repeat;
background-size: 100% 100%;
margin-top: 0.21rem;
float: right;
}
.no-current{
display: block;
width: 0.21rem;
height: 0.21rem;
background: url('../../assets/ty/no_active.png') no-repeat;
background-size: 100% 100%;
margin-top: 0.21rem;
float: right;
}
}
.iframe_box{
width: 300%;
height: 2.32rem;
margin-top: 0.13rem;
}
.pcg_title2 {
display: block;
height: 0.78rem;
height: 0.76rem;
line-height: 0.58rem;
background: url('../../assets/ty/右2-1.png') no-repeat;
background: url('../../assets/ty/r_t_bg_2.png') no-repeat;
background-size: 100% 100%;
background-position: 0 center;
padding-left: 0.98rem;
color: #fff;
font-size: 16px;
margin-top: 0.19rem;
}
}
@ -1676,4 +2046,18 @@ export default {
}
}
.screen-box{
overflow: visible !important;
/deep/ .screen-wrapper{
width: calc(24rem - 1.14rem) !important;
height: 10.71rem !important;
overflow: visible !important;
margin: 0px 0.57rem 0px 0.57rem !important;
box-sizing: border-box !important;
}
}
#ty{
// transform: scale(1.25);//1536transform: scale(0.8, 0.8)
transform-origin: 0 0;
}
</style>
Loading…
Cancel
Save