From 33a19dd061c58281abdf2d34399fb6fe39bfd676 Mon Sep 17 00:00:00 2001 From: "453530270@qq.com" Date: Fri, 11 Aug 2023 20:41:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/config.js | 11 +- src/api/home.js | 9 + src/api/home.js_bak | 67 ++ src/assets/img/pcg_bg2.png | Bin 0 -> 33097 bytes src/views/HomeView - 副本.vue | 1191 ------------------------------- src/views/WhView - 副本.vue | 984 +++++++++++++++++++++++++ src/views/WhView.vue | 557 +++++++++++---- 7 files changed, 1498 insertions(+), 1321 deletions(-) create mode 100644 src/api/home.js_bak create mode 100644 src/assets/img/pcg_bg2.png delete mode 100644 src/views/HomeView - 副本.vue create mode 100644 src/views/WhView - 副本.vue diff --git a/public/config.js b/public/config.js index 3ac41dd..400c452 100644 --- a/public/config.js +++ b/public/config.js @@ -1,11 +1,8 @@ window.publicConfig = { // 请求地址 - // BASE_API:'http://10.97.121.2/api', - // BASE_API:'http://192.168.66.16/api', - BASE_API:'http://61.144.224.21:8442/api', + BASE_API:'http://61.144.224.21:8443/api', // socket url - // WS_URL_TY: 'ws://10.97.121.2/ty', - WS_URL_TY: 'ws://192.168.66.16/ty', - WS_URL_WH: 'ws://192.168.66.16/wh', - WS_URL_ZL: 'ws://192.168.66.16/zl' + WS_URL_TY: 'ws://61.144.224.21:8443/ty', + WS_URL_WH: 'ws://61.144.224.21:8443/wh', + WS_URL_ZL: 'ws://61.144.224.21:8443/zl' } \ No newline at end of file diff --git a/src/api/home.js b/src/api/home.js index 48ff4e2..3640539 100644 --- a/src/api/home.js +++ b/src/api/home.js @@ -83,4 +83,13 @@ export function libLeaseData(param){ method: 'post', param, }) +} + +// 文化板块今日人流量趋势 +export function whtdrs(param){ + return request({ + url:'/library.pass/getLibraryGroupHoursList', + method: 'post', + param, + }) } \ No newline at end of file diff --git a/src/api/home.js_bak b/src/api/home.js_bak new file mode 100644 index 0000000..8bbec22 --- /dev/null +++ b/src/api/home.js_bak @@ -0,0 +1,67 @@ +// 导入axios实例 +import request from '@/utils/request' + +// 定义接口的传参 +const api={ + // 日客流趋势 + daily_klqs:'/pass.passcc/allGroupTimeNum', + +} + +// 获取群组 +export function allGroupTimeNum(param) { + return request({ + url: api.daily_klqs, + method: 'get', + params:param, + }) +} + +export function homeBarData(param) { + return request({ + url: '/pass.passcc/allGroupTimeNum&granularity=daily', + method: 'post', + param, + }) +} +// ge +export function allGroupNum(param) { + return request({ + url: '/pass.passcc/allGroupNum', + method: 'post', + param, + }) +} +// 实时进馆人数 +export function allInfoDatas(param) { + return request({ + url: '/pass.passcc/realTimeData', + method: 'post', + param, + }) +} +// 今日各场馆的趋势 +export function tdGroupRealTimeEnter(param) { + return request({ + url: '/pass.passcc/toDayGroupsEnterNum', + method: 'get', + param, + }) +} +// 图书馆人流趋势 +export function tsgTrends(param) { + return request({ + url: '/library.pass/allFlowTrends', + method: 'get', + param, + }) +} + +// 借书信息 +export function tsgbr(param){ + return request({ + url: '/library.pass/allFlowTrends', + method: 'post', + param, + }) +} diff --git a/src/assets/img/pcg_bg2.png b/src/assets/img/pcg_bg2.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c5956b8ec13d2d350bbbc26bbcfdbc1a2039d8 GIT binary patch literal 33097 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 -

-
总览
- -
-
- -
-
- 年度进馆总人数 -

{{ year_num }}

-
-
- -
- -
-

{{ day_num }}

-

今日进馆总人数

-
-
- -
- -
-

{{ week_num }}

-

本周进馆总人数

-
-
- -
- -
-

{{ mon_num }}

-

本月进馆总人数

-
-
- - -
-
客流趋势
-
- - - -
- -
-
- - -
- -
-
    -
  • - {{ tycra.name }} - {{ tycra.value }} - -
  • -
  • - {{tygra.name}} - {{ tygra.value }} - -
  • -
  • - {{yygra.name}} - {{ yygra.value }} - -
  • -
-
- -
- -
-
    -
  • - - 20% - 图书馆 -
  • -
  • - - 12% - 文化馆 -
  • -
  • - - {{bwgra.value}} - {{bwgra.name}} -
  • -
-
- -
- - -
-
- 今日各馆趋势 -
-
-
- - -
-
各场馆实时进馆人数
- -
- {{item.groupName}} -

{{ item.allEnter }}

- {{ - item.proportion }} -
-
- - -
- - - - - \ No newline at end of file diff --git a/src/views/WhView - 副本.vue b/src/views/WhView - 副本.vue new file mode 100644 index 0000000..4158b31 --- /dev/null +++ b/src/views/WhView - 副本.vue @@ -0,0 +1,984 @@ + + + \ No newline at end of file diff --git a/src/views/WhView.vue b/src/views/WhView.vue index dd6487b..44c9e2b 100644 --- a/src/views/WhView.vue +++ b/src/views/WhView.vue @@ -155,20 +155,23 @@ animation: ani_sc 8s infinite forwards; } -.jgbox .jgcon .jgitem .jgimg img{ +.jgbox .jgcon .jgitem .jgimg img { width: 100%; height: 100%; } + /** 呼吸效果 */ @keyframes ani_sc { - 0%{ + 0% { transform: scale(0.8); transition: all; } - 50%{ + + 50% { transform: scale(1); } - 100%{ + + 100% { transform: scale(0.8); } } @@ -187,7 +190,8 @@ -webkit-animation: ani_sc 6s infinite; animation: ani_sc 6s infinite; } -.jgbox .jgcon .jgitem .jgival::after{ + +.jgbox .jgcon .jgitem .jgival::after { content: ""; } @@ -236,7 +240,7 @@ text-align: center; /* 动画效果 */ -webkit-animation: ani_sc 5s infinite forwards; - animation: ani_sc 5s infinite forwards; + animation: ani_sc 5s infinite forwards; } .dgins .dgins_con .dgitem span { @@ -250,7 +254,7 @@ font-size: 1.06rem; /* 动画效果 */ -webkit-animation: ani_sc 5s infinite forwards; - animation: ani_sc 5s infinite forwards; + animation: ani_sc 5s infinite forwards; } .dgins .dgins_con .dgitem .dgdesc { @@ -322,25 +326,35 @@ import * as echarts from 'echarts'; // 引入api import * as homeApi from '@/api/home' -import { ecMaxVal,numGrow } from '@/utils/comm'; +import { ecMaxVal, numGrow } from '@/utils/comm'; export default { name: 'TycView', data() { return { //三馆人数概况 - tdjg:0, - tmjg:0, - tyjg:0, + tdjg: 0, + tmjg: 0, + tyjg: 0, // - gkbwg:0, - gktsg:0, - gkwhg:0, + gkbwg: 0, + gktsg: 0, + gkwhg: 0, + + // 柱子图 + ecbardata: [], + // 24小时总服务人次趋势 - wh24xdata:[], - wh24ydata:[], + wh24xdata: [], + wh24ydata: [], + //折线区域的数据 + zxliddata: [], + // 折线名称 + zxlindata: [], // 图书馆借阅 - libleaData:[], + libleaData: [], + // ws + ws:null, } }, @@ -351,26 +365,29 @@ export default { // 24小时总服务人次趋势 this.getWh24hdata() // - this.gc_line() + this.whtdrs() + // this.gc_line() // this.libinfoData() - //this.tsg_line() - this.getTsgInfoDatas() + // websocket + this.ws = new WebSocket(publicConfig.WS_URL_WH); + // this.getsckdata() + }, methods: { // 三馆人数概况 - sgrsStat(){ - homeApi.allGroupNum({type:2}).then(res=>{ + sgrsStat() { + homeApi.allGroupNum({ type: 2 }).then(res => { const tdata = res.data.returnData; this.tdjg = tdata.day.noRepeatInNum this.tmjg = tdata.month.noRepeatInNum this.tyjg = tdata.year.noRepeatInNum }); - homeApi.tsgTrends().then(res=>{ + homeApi.tsgTrends().then(res => { const tdata = res.data.data; - // //24小时的情况 + // //24小时的情况 const sgdata = tdata.hour24 this.gktsg = sgdata[0].incount this.gkbwg = sgdata[1].incount @@ -378,33 +395,60 @@ export default { }); }, // 24 小时总服务人次趋势 - getWh24hdata(){ - homeApi.wh24ServiceTrends().then(res=>{ - const whtdata = res.data.data - this.wh24xdata=whtdata.dkeys - this.wh24ydata=whtdata.dvalue - // console.log("dvv",whtdata.dvalue) - //this.wh24hdata = res.data.data + getWh24hdata() { + homeApi.wh24ServiceTrends().then(res => { + // const whtdata = res.data.data + // this.wh24xdata = whtdata.dkeys + // this.wh24ydata = whtdata.dvalue + const temcgData = res.data.data + // 24 小时 + const vkdata = new Array; + const vvdata = new Array; + // + const dkeys = temcgData.dkeys + dkeys.forEach(function(item,idx){ + vvdata.push( item) + }); + + vkdata.push({ + xname: dkeys, + xval: vvdata + }) + + this.ecbardata = vkdata // do line this.cgsf_line() }) }, // 山峰图---24小时总服务人次趋势 + // 24H 服务人次绘制柱形图 cgsf_line() { var chartDom = document.getElementById('gcins_charts'); var myChart = echarts.init(chartDom); var option; option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + }, + formatter: function (params) { + return params[0].name + "
" + params[0].value + } + }, grid: { - left: '-8%', - right: '4%', + left: '3%', + right: '3%', bottom: '3%', top: '10%', containLabel: true }, xAxis: [{ - data:this.wh24xdata, + data: this.ecbardata[0].xname, + // data: [ + // '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', + // ], axisLine: { lineStyle: { color: '#0095FF', @@ -443,9 +487,7 @@ export default { }, axisLabel: { color: '#0095FF', - align: 'left', - margin: 40 - }, + } }], series: [{ type: 'bar', @@ -453,6 +495,10 @@ export default { barWidth: '10%', barCategoryGap: '60%', stack: 1, + // animation + animationDurationUpdate: 3000, + animationEasingUpdate: 'quintcInOut', + itemStyle: { normal: { barBorderRadius: [30, 30, 0, 0], @@ -469,7 +515,7 @@ export default { ) } }, - data: this.wh24ydata, + data: this.ecbardata[0].xval, zlevel: 11 }, { @@ -477,24 +523,23 @@ export default { stack: 1, xAxisIndex: 0, symbolOffset: [0, 0], //相对于原本位置的偏移量 - data: this.wh24ydata, - // data: [0, 0, 0, 0, 0, 0, 0, 0, 0], + data: [0, 0, 0, 0, 0, 0, 0, 0, 0], itemStyle: { normal: { - color: '#f0f0f0' + color: '#fff' } }, symbolSize: 13, zlevel: 10, z: 2, }, - // 背景柱 { + name: '背景', type: 'bar', barWidth: '10%', barGap: '-100%', - data: ecMaxVal(this.wh24ydata), - // data: [15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000], + data: ecMaxVal(this.ecbardata[0].xval), + //data: [15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000], itemStyle: { normal: { color: '#004298', @@ -506,23 +551,65 @@ export default { ] } + // option && myChart.setOption(option); + //消停几秒后开始,动画 + + // setInterval(()=>{ + myChart.clear() option && myChart.setOption(option); + // },4000); }, + // 今日人流 + whtdrs() { + homeApi.whtdrs().then(res => { + console.log("whtd", res) + // const tmpdata = res.data.data + // this.xData.push(res.data.data[0].list.dkeys) + + // // X 轴的名称字段 + // const darr =new Array; + // tmpdata.forEach(function(item,idx){ + // // 读取list + // const list = item.list + // darr.push(list.dvalue) + // }) + // this.whfwdata = darr + + // get allTimeData + const tmpdata = res.data.data + // X 轴的名称字段 + const xarr = new Array + const darr = new Array; + tmpdata.forEach(function (item, idx) { + // 读取list + const list = item.list + xarr.push(list.dkeys) + darr.push(list.dvalue) + }) + + // console.log(darr) + + this.zxlindata = xarr + this.zxliddata = darr + + // + this.gc_line() + }); + }, // 各场馆人数趋势 gc_line() { var chartDom = document.getElementById("gc_charts"); 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',]; + var xData = this.xData + //var xData = ['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',]; var color = ['#FF99CC', '#6666FF', '#FF6600', '#7049f0', '#fa704d', '#01babc',] var name = ['图书馆', '文化馆', '博物馆'] - var data = [ - [137, 34, 135, 161, 74, 152, 110, 100, 150], - [174, 137, 135, 34, 152, 135, 140, 160, 100], - [134, 74, 137, 135, 161, 137, 300, 220, 250], - ] + var xData = this.zxlindata + var data = this.zxliddata + var series = []; for (var i = 0; i < 3; i++) { @@ -677,8 +764,8 @@ export default { option && myChart.setOption(option); }, // 图书馆借阅查询 - libinfoData(){ - homeApi.libLeaseData().then(res=>{ + libinfoData() { + homeApi.libLeaseData().then(res => { this.libleaData = res.data.data // this.tsg_line() @@ -705,9 +792,9 @@ export default { ]; // 值颜色 let valueColor = [ - { color1: '#15224C', color2: '#FF0042', unit: ' 人 '}, - { color1: '#15224C', color2: '#FED700', unit: ' 册 '}, - { color1: '#15224C', color2: '#00FEC5', unit: ' 册 '} + { color1: '#15224C', color2: '#FF0042', unit: ' 人 ' }, + { color1: '#15224C', color2: '#FED700', unit: ' 册 ' }, + { color1: '#15224C', color2: '#00FEC5', unit: ' 册 ' } ] // 前缀图标 var libraryIcons = { @@ -857,89 +944,313 @@ export default { } }], series: [ - // 光圈 - { - type: 'pictorialBar', - symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAAZlBMVEUAAABe3uVe3+Vf3uVf3+Zf3uVg3+Zg3+Zf3+Vi4OZh4OZg3+Z86/Bh3+Zi4Odj4Odi4OZ86/B76/B86/Bj4ed56+9x5+xn4umB7/N87PB36e+A7/N+7fF/7vJ/7vJ+7fGA7/OB7/PReX+lAAAAIXRSTlMABQkVDREmIhk3MR10LEFFPHh7cUprXE35h2XnqMLAp+mHAG9cAAAB5ElEQVRIx83WjU7CMBQFYIoiKMqU/XUboHv/l/Tce7t2XamDNSacETEmX86tlK2rx4py150o+MstMBLwWRfHKo6JCVxLnvmFGBjFQ58oF1//sUZhGy/ClSTWObgnL4O+bkeN4nY2okfNMbkRt9/vtxz8InoTsWplJSCzFxPmO8+GpSIByX3YQAuGDWtRKhKjCnxDXhF6Z4yxnZ20Wgko7BMRDmxtSGVaI4kdTIgb+zTYoJQlIMlDlmUFgrcDWWC201qSayqlTkiCddWWeV62VU0YlnpRi9VOKaSUsiyq/N0krwq2Ugt7lVpZl5BfHNiytjagMi+XYp0kCR45hMlivVQrE/uU5pXSrCB5bM6d1t2lOZItMqmliT3q5uVxqxzyW/ccfYLNKx7ZTeykMvNyac2yt2Fbc61MHLSC0rwoxbiNdlQ3GBm1NLHQsHUrtEXppR/ljNpW6DbSCoqlFiVoN6YdaFlgsSFVPs1BdT8OaB5QyQzVcaqWDows/zepxR8ObLglTrdtCRVuRNj4Rrxh+//0ke2f8KVL+Kon3GCSbmsJN9OUW3j6g0Ns+LgCij2u0h+Sghc8mlMPBMgdx5DFh59VmOVHrvmDnoNxCz3J7MFWsMuaLyR089xz/xhlfijvwutR8gv3zk6BLUUeCgAAAABJRU5ErkJggg==', - symbolSize: [50, 50], - symbolOffset: [20, 0], - z: 12, - itemStyle: { - normal: { - color: '#14b1eb' - } - }, - animationDelay:function(idx){ - return idx*10 + // 光圈 + { + type: 'pictorialBar', + symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAAZlBMVEUAAABe3uVe3+Vf3uVf3+Zf3uVg3+Zg3+Zf3+Vi4OZh4OZg3+Z86/Bh3+Zi4Odj4Odi4OZ86/B76/B86/Bj4ed56+9x5+xn4umB7/N87PB36e+A7/N+7fF/7vJ/7vJ+7fGA7/OB7/PReX+lAAAAIXRSTlMABQkVDREmIhk3MR10LEFFPHh7cUprXE35h2XnqMLAp+mHAG9cAAAB5ElEQVRIx83WjU7CMBQFYIoiKMqU/XUboHv/l/Tce7t2XamDNSacETEmX86tlK2rx4py150o+MstMBLwWRfHKo6JCVxLnvmFGBjFQ58oF1//sUZhGy/ClSTWObgnL4O+bkeN4nY2okfNMbkRt9/vtxz8InoTsWplJSCzFxPmO8+GpSIByX3YQAuGDWtRKhKjCnxDXhF6Z4yxnZ20Wgko7BMRDmxtSGVaI4kdTIgb+zTYoJQlIMlDlmUFgrcDWWC201qSayqlTkiCddWWeV62VU0YlnpRi9VOKaSUsiyq/N0krwq2Ugt7lVpZl5BfHNiytjagMi+XYp0kCR45hMlivVQrE/uU5pXSrCB5bM6d1t2lOZItMqmliT3q5uVxqxzyW/ccfYLNKx7ZTeykMvNyac2yt2Fbc61MHLSC0rwoxbiNdlQ3GBm1NLHQsHUrtEXppR/ljNpW6DbSCoqlFiVoN6YdaFlgsSFVPs1BdT8OaB5QyQzVcaqWDows/zepxR8ObLglTrdtCRVuRNj4Rrxh+//0ke2f8KVL+Kon3GCSbmsJN9OUW3j6g0Ns+LgCij2u0h+Sghc8mlMPBMgdx5DFh59VmOVHrvmDnoNxCz3J7MFWsMuaLyR089xz/xhlfijvwutR8gv3zk6BLUUeCgAAAABJRU5ErkJggg==', + symbolSize: [50, 50], + symbolOffset: [20, 0], + z: 12, + itemStyle: { + normal: { + color: '#14b1eb' + } + }, + animationDelay: function (idx) { + return idx * 10 + }, + data: getSymbolData(data) }, - data: getSymbolData(data) - }, - { - type: 'bar', - showBackground: true, - barBorderRadius: 30, - yAxisIndex: 0, - data: data, - barWidth: 10, - barGap:20, - itemStyle: { - normal: { - color: (params) => { - var index = params.dataIndex; - if (params.dataIndex >= valueColor.length) { - index = params.dataIndex - valueColor.length; - } - return new echarts.graphic.LinearGradient(0, 0, 1, 0, [{ - offset: 0, - color: valueColor[index].color1 + { + type: 'bar', + showBackground: true, + barBorderRadius: 30, + yAxisIndex: 0, + data: data, + barWidth: 10, + barGap: 20, + itemStyle: { + normal: { + color: (params) => { + var index = params.dataIndex; + if (params.dataIndex >= valueColor.length) { + index = params.dataIndex - valueColor.length; + } + return new echarts.graphic.LinearGradient(0, 0, 1, 0, [{ + offset: 0, + color: valueColor[index].color1 + }, + { + offset: 0.8, + color: valueColor[index].color2 + }, { + offset: 1, + color: valueColor[index].color2 + }]); }, - { - offset: 0.8, - color: valueColor[index].color2 - },{ - offset: 1, - color: valueColor[index].color2 - }]); + barBorderRadius: 0 }, - barBorderRadius: 0 + // color: '#A71A2B', + barBorderRadius: 4, }, - // color: '#A71A2B', - barBorderRadius: 4, + // 标签 + label: { + normal: { + color: '#fff', + show: true, + position: [0, '-20px'], + textStyle: { + fontSize: 16 + }, + formatter: function (a) { + return a.name + } + } + } + }], + animationEasing: 'elasticOut', + animationDelayUpdate: function (idx) { + return idx * 5 + } + }; + + option && myChart.setOption(option); + }, + // 场馆人流趋势绘制线图 + // 场馆人流趋势绘制线图 + cg_line() { + let that = this; + var chartDom = document.getElementById("gc_charts"); + 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',]; + var color = ['#FF99CC', '#6666FF', '#FF6600', '#7049f0', '#fa704d', '#01babc',] + var name = this.zxlindata.slice(-10, this.zxlindata.length) + var data = this.zxliddata.slice(-10, this.zxliddata.length) + + var series = []; + for (var i = 0; i < data.length; i++) { + series.push({ + name: name[i], + type: "line", + symbolSize: 3,//标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10[ default: 4 ] + symbol: 'circle',//标记的图形。ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow' + smooth: true, //是否平滑曲线显示 + showSymbol: false, //是否显示 symbol, 如果 false 则只有在 tooltip hover 的时候显示 + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: color[i] + }, { + offset: 0.8, + color: 'rgba(255,255,255,0)' + }], false), + // shadowColor: 'rgba(255,255,255, 0.1)', + shadowBlur: 10, + opacity: 0.3, + } }, - // 标签 - label: { + itemStyle: { normal: { - color: '#fff', - show: true, - position: [0, '-20px'], - textStyle: { - fontSize: 16 + color: color[i], + lineStyle: { + width: 1, + type: 'solid' //'dotted'虚线 'solid'实线 }, - formatter: function (a) { - return a.name - } + borderColor: color[i], //图形的描边颜色。支持的格式同 color + borderWidth: 8,//描边线宽。为 0 时无描边。[ default: 0 ] + barBorderRadius: 0, + label: { + show: false, + }, + opacity: 0.5, } + }, + data: data[i], + + }) + } + option = { + // backgroundColor: "#141f56", + legend: { + bottom: 0, + right: 20, + itemGap: 20, + itemWidth: 20, + itemHeight: 20, + textStyle: { + color: '#fff', + fontSize: '14' + }, + data: [ + { icon: 'image://img/tyc_icon.png', name: '体育场' }, + { icon: 'image://img/tyg_icon.png', name: '体育馆' }, + { icon: 'image://img/yyg_icon.png', name: '游泳场馆' }, + ] + }, + title: { + // text: "负面言论分领域趋势", + textStyle: { + color: '#fff', + fontSize: '22', + fontWeight: 'normal', + }, + subtextStyle: { + color: '#90979c', + fontSize: '16', + + }, + }, + tooltip: { + trigger: "axis", + axisPointer: { // 坐标轴指示器,坐标轴触发有效 + type: 'line', // 默认为直线,可选为:'line' | 'shadow' + lineStyle: { + color: '#57617B' + } + }, + formatter: '{b}
{a0}: {c0}
{a1}: {c1}
{a2}: {c2}', + backgroundColor: 'rgba(0,0,0,0.7)', // 背景 + padding: [8, 10], //内边距 + extraCssText: 'box-shadow: 0 0 3px rgba(255, 255, 255, 0.4);', //添加阴影 + }, + grid: { + borderWidth: 0, + top: 240, + bottom: 240, + right: 20, + textStyle: { + color: "#fff" } + }, + xAxis: [{ + type: "category", + axisLine: { + show: false, + }, + splitLine: { + show: false, + }, + boundaryGap: false, //坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样 + axisTick: { + show: false + }, + splitArea: { + show: false + }, + axisLabel: { + inside: false, + interval: 0, + textStyle: { + color: '#FFFFFF', + fontWeight: 'normal', + fontSize: '12', + }, + }, + data: name, }], - animationEasing:'elasticOut', - animationDelayUpdate:function(idx){ - return idx*5 - } - }; + yAxis: { + type: 'value', + axisTick: { + show: false + }, + axisLine: { + show: false, + }, + splitLine: { + show: true, + lineStyle: { + color: '#32346c ', + } + }, + axisLabel: { + textStyle: { + color: '#0095FF', + fontWeight: 'normal', + fontSize: '12', + }, + formatter: '{value}', + }, + }, + series: series, + } + myChart.clear() option && myChart.setOption(option); }, - getTsgInfoDatas() { - let that = this - console.log(that); - homeApi.tsgTrends().then(res => { - // get allTimeData - const tmpdata = res.data - console.log(tmpdata) + // 从ws 中实时获取数据 + getsckdata() { + let that = this; + + this.ws.onopen = function () { + // console.log("ws connected success!") + }; + this.ws.onclose = function (event) { + // console.log('WebSocket连接已关闭'); + }; + this.ws.onmessage = (e) => { + var jstr = JSON.parse(e.data); + if (!jstr) { + return; + } + + // 总计进馆人数 + const allFlowTrends = jstr.allFlowTrends.data + that.tdjg = allFlowTrends.today.incount + that.tmjg = allFlowTrends.month.incount + that.tyjg = allFlowTrends.year.incount + // 今日进馆 + const hour24 = allFlowTrends.hour24 + that.gktsg = hour24[0].incount + that.gkbwg = hour24[1].incount + that.gkwhg = hour24[2].incount + + // 图书借阅信息 + const libleas = jstr.getLibraryLeaseData.data + that.libleaData = libleas + + // 24 小时柱形图数据 + const vkdata = new Array; + vkdata.push({ + xname: jstr.getLibraryHours24List.data.dkeys.slice(-8, jstr.getLibraryHours24List.data.dkeys.length), + xval: jstr.getLibraryHours24List.data.dvalue.slice(-8, jstr.getLibraryHours24List.data.dvalue.length) + }) + that.ecbardata = vkdata; + that.cgsf_line(); + + // 线图数据 + function linedata() { + that.zxliddata = []; + that.rsqsDataName = [], that.rsqsDatas = []; + const tmpdata = jstr.getLibraryGroupHoursList.data; + tmpdata.forEach((item) => { + that.rsqsDataName.push(item.groupName); + that.rsqsDatas.push(item.list) + }) + + that.zxlindata = jstr.toDayGroupsEnterNum.data[0].list.dkeys; + that.rsqsDatas.forEach((item) => { + let rsqsData = [] + Object.getOwnPropertyNames(item).forEach((value) => { + if (value == 'dvalue') { + rsqsData = item[value]; + } + }); + that.zxliddata.push(rsqsData) + }) + that.cg_line() + } + linedata(); + + } + }, - }); - } }, + beforeUnmount() { + this.ws.close(); + } } \ No newline at end of file