diff --git a/bak/public/config.js b/bak/public/config.js index 034da03..895d130 100644 --- a/bak/public/config.js +++ b/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/' } \ No newline at end of file diff --git a/bak/src/utils/request.js b/bak/src/utils/request.js index 5d4ec23..91b5e0f 100644 --- a/bak/src/utils/request.js +++ b/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', diff --git a/public/config.js b/public/config.js index 48ec1e8..ae464fa 100644 --- a/public/config.js +++ b/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", } diff --git a/src/App.vue b/src/App.vue index 7333ad7..d61d9cd 100644 --- a/src/App.vue +++ b/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(){ + // 假设服务端ip为127.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) + } }, }; @@ -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; diff --git a/src/assets/g_footbg.png b/src/assets/g_footbg.png index e402cda..cc2ea5e 100644 Binary files a/src/assets/g_footbg.png and b/src/assets/g_footbg.png differ diff --git a/src/assets/index/bg.png b/src/assets/index/bg.png new file mode 100644 index 0000000..4f4c020 Binary files /dev/null and b/src/assets/index/bg.png differ diff --git a/src/assets/index/left_t3_bg.png b/src/assets/index/left_t3_bg.png index 65a4e69..7c7e031 100644 Binary files a/src/assets/index/left_t3_bg.png and b/src/assets/index/left_t3_bg.png differ diff --git a/src/assets/index/mid_bg.png b/src/assets/index/mid_bg.png index 4e8e35e..a5dfc7b 100644 Binary files a/src/assets/index/mid_bg.png and b/src/assets/index/mid_bg.png differ diff --git a/src/assets/index/right_t1_bg.png b/src/assets/index/right_t1_bg.png index b1b1f20..8210fd4 100644 Binary files a/src/assets/index/right_t1_bg.png and b/src/assets/index/right_t1_bg.png differ diff --git a/src/assets/index/top_title.png b/src/assets/index/top_title.png index 2b78ae1..c459b97 100644 Binary files a/src/assets/index/top_title.png and b/src/assets/index/top_title.png differ diff --git a/src/assets/index/topnav.png b/src/assets/index/topnav.png index 3384126..58b9515 100644 Binary files a/src/assets/index/topnav.png and b/src/assets/index/topnav.png differ diff --git a/src/assets/ty/active.png b/src/assets/ty/active.png new file mode 100644 index 0000000..b43192b Binary files /dev/null and b/src/assets/ty/active.png differ diff --git a/src/assets/ty/bg.png b/src/assets/ty/bg.png new file mode 100644 index 0000000..4f4c020 Binary files /dev/null and b/src/assets/ty/bg.png differ diff --git a/src/assets/ty/c_bg_l.png b/src/assets/ty/c_bg_l.png new file mode 100644 index 0000000..2c34723 Binary files /dev/null and b/src/assets/ty/c_bg_l.png differ diff --git a/src/assets/ty/c_bg_r.png b/src/assets/ty/c_bg_r.png new file mode 100644 index 0000000..50b77c0 Binary files /dev/null and b/src/assets/ty/c_bg_r.png differ diff --git a/src/assets/ty/c_bg_t.png b/src/assets/ty/c_bg_t.png new file mode 100644 index 0000000..af6c0a5 Binary files /dev/null and b/src/assets/ty/c_bg_t.png differ diff --git a/src/assets/ty/ins_count.png b/src/assets/ty/ins_count.png new file mode 100644 index 0000000..5944d13 Binary files /dev/null and b/src/assets/ty/ins_count.png differ diff --git a/src/assets/ty/ins_title_bg.png b/src/assets/ty/ins_title_bg.png index e4eb1c0..70f719d 100644 Binary files a/src/assets/ty/ins_title_bg.png and b/src/assets/ty/ins_title_bg.png differ diff --git a/src/assets/ty/l_t_bg.png b/src/assets/ty/l_t_bg.png new file mode 100644 index 0000000..e39c0c6 Binary files /dev/null and b/src/assets/ty/l_t_bg.png differ diff --git a/src/assets/ty/no_active.png b/src/assets/ty/no_active.png new file mode 100644 index 0000000..91d864f Binary files /dev/null and b/src/assets/ty/no_active.png differ diff --git a/src/assets/ty/r_t_bg_1.png b/src/assets/ty/r_t_bg_1.png new file mode 100644 index 0000000..33248a7 Binary files /dev/null and b/src/assets/ty/r_t_bg_1.png differ diff --git a/src/assets/ty/r_t_bg_2.png b/src/assets/ty/r_t_bg_2.png new file mode 100644 index 0000000..e08d859 Binary files /dev/null and b/src/assets/ty/r_t_bg_2.png differ diff --git a/src/assets/ty/ty_pcb_item_bg.png b/src/assets/ty/ty_pcb_item_bg.png new file mode 100644 index 0000000..4913362 Binary files /dev/null and b/src/assets/ty/ty_pcb_item_bg.png differ diff --git a/src/assets/ty/vbig_bg.png b/src/assets/ty/vbig_bg.png index a6c7d99..5d908bd 100644 Binary files a/src/assets/ty/vbig_bg.png and b/src/assets/ty/vbig_bg.png differ diff --git a/src/assets/wh/center_bg.png b/src/assets/wh/center_bg.png index 7823791..b00e88b 100644 Binary files a/src/assets/wh/center_bg.png and b/src/assets/wh/center_bg.png differ diff --git a/src/assets/wh/ins_count.png b/src/assets/wh/ins_count.png index a977575..fc17f8b 100644 Binary files a/src/assets/wh/ins_count.png and b/src/assets/wh/ins_count.png differ diff --git a/src/assets/wh/l_t_bg.png b/src/assets/wh/l_t_bg.png new file mode 100644 index 0000000..e0f0d75 Binary files /dev/null and b/src/assets/wh/l_t_bg.png differ diff --git a/src/assets/wh/r_t_bg_1.png b/src/assets/wh/r_t_bg_1.png new file mode 100644 index 0000000..921244b Binary files /dev/null and b/src/assets/wh/r_t_bg_1.png differ diff --git a/src/assets/wh/r_t_bg_2.png b/src/assets/wh/r_t_bg_2.png new file mode 100644 index 0000000..d97a721 Binary files /dev/null and b/src/assets/wh/r_t_bg_2.png differ diff --git a/src/assets/wh/whbg.jpg b/src/assets/wh/whbg.jpg deleted file mode 100644 index 78ff60c..0000000 Binary files a/src/assets/wh/whbg.jpg and /dev/null differ diff --git a/src/assets/wh/whbg.png b/src/assets/wh/whbg.png new file mode 100644 index 0000000..4f4c020 Binary files /dev/null and b/src/assets/wh/whbg.png differ diff --git a/src/assets/wh/wht_bg.png b/src/assets/wh/wht_bg.png index ba9c10e..70e7c57 100644 Binary files a/src/assets/wh/wht_bg.png and b/src/assets/wh/wht_bg.png differ diff --git a/src/views/cultrue/index.vue b/src/views/cultrue/index.vue index 89d1a2e..d67d39b 100644 --- a/src/views/cultrue/index.vue +++ b/src/views/cultrue/index.vue @@ -9,7 +9,7 @@
- 总计进馆人数 + 总计服务人数
@@ -40,14 +40,14 @@
- 24小时总进馆人流趋势 + 24小时总服务人次趋势 -
+
-
24小时进馆人数
+
24小时服务人次
{{bwg_num}} @@ -67,13 +67,13 @@
- 各场馆人流趋势 -
+ 各场馆服务人次趋势 +
图书馆数据统计 -
+
@@ -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 { }, }; + \ No newline at end of file diff --git a/src/views/index.vue b/src/views/index.vue index 9b5ea0f..6b21123 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -5,98 +5,97 @@
- 客流趋势 + 总服务人次趋势
- -
- -
- -
- -
- -
- {{ groupNameData[0] }} - {{ proportionData[0] }} - -
- -
- {{ groupNameData[1] }} - {{ proportionData[1] }} - -
- -
- {{ groupNameData[2] }} - {{ proportionData[2] }} - -
+
+ +
+ +
+ +
+ +
+ +
+ {{ groupNameData[0] }} + {{ proportionData[0] }} + +
+ +
+ {{ groupNameData[1] }} + {{ proportionData[1] }} +
- -
- -
- - {{ proportionData[3] }} - {{ groupNameData[3] }} -
- -
- - {{ proportionData[4] }} - {{ groupNameData[4] }} -
- -
- - {{ proportionData[5] }} - {{ groupNameData[5] }} -
+ +
+ {{ groupNameData[2] }} + {{ proportionData[2] }} +
- - -
-
今日各场馆人数趋势
-
+ +
+ +
+ + {{ proportionData[3] }} + {{ groupNameData[3] }} +
+ +
+ + {{ proportionData[4] }} + {{ groupNameData[4] }} +
+ +
+ + {{ proportionData[5] }} + {{ groupNameData[5] }} +
+
+ +
+
今日各场馆服务人次趋势
+
-
- {{ day_num }} - 今日进馆人数 +
+ {{ day_num }} + 今日进馆人数
-
+
{{ week_num }} 本周进馆人数
-
- {{ mon_num }} - 本月进馆人数 +
+ {{ mon_num }} + 本月进馆人数
- 年度进馆人数 + 年度服务人数 {{ year_num }}
-
各场馆实时进馆人数
+
各场馆实时服务人次
@@ -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 { }; + \ No newline at end of file diff --git a/src/views/ty/index.vue b/src/views/ty/index.vue index 18ffddd..88b1f5d 100644 --- a/src/views/ty/index.vue +++ b/src/views/ty/index.vue @@ -5,48 +5,76 @@
-
体育
- 体育场   |   +
体育
+
STADIUM
+ 体育场   |   体育馆   |   游泳场馆
- 总计进馆人数 + 累计服务人数
- {{todayNum}} - 今日进馆人数 +
+ {{todayNum}} + 今日进馆人数 +
+
+ +
+ +
+ {{weekNum}} + 本周进馆人数 +
- {{monthNum}} - 本月进馆人数 +
+ {{monthNum}} + 本月进馆人数 +
- {{ yearNum }} - 本年进馆人数 +
+ {{ yearNum }} + 本年进馆人数 +
- 24小时总进馆人流趋势 + 24小时总服务人次趋势 -
+
+
24小时进馆人数
+
+
+ 21312 + 体育场 + 21312 + 体育馆 + 21312 + 游泳场馆 +
-
+
- 各场馆人次占比 -
+
+ 各场馆服务人次占比 + + +
+
+ +
+
- - {{ cgp_1 }} - - - -
+
25%
+
- {{ cgn_1 }} + {{ cgn_1||0 }}
- - {{ cgp_2 }} - - - -
+
25%
+
@@ -102,11 +131,11 @@
- {{ cgp_3 }} - -
+
25%
+
@@ -118,10 +147,10 @@
- +
- 各场馆人流趋势 -
+ 各场馆服务人次趋势 +
@@ -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 { \ No newline at end of file