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 0000000..c9c5956
Binary files /dev/null and b/src/assets/img/pcg_bg2.png differ
diff --git a/src/views/HomeView - 副本.vue b/src/views/HomeView - 副本.vue
deleted file mode 100644
index 3daa81d..0000000
--- a/src/views/HomeView - 副本.vue
+++ /dev/null
@@ -1,1191 +0,0 @@
-
-
-
总览
-
-
-
-

-
-
-
年度进馆总人数
-
{{ 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 @@
+
+
+
文化
+
+
+
+
+
总计进馆人数
+
+
+
+
+
{{ tdjg }}
+
今日进馆人数
+
+
+
+
{{ tmjg }}
+
本月进馆人数
+
+
+
+
{{ tyjg }}
+
本年进馆人数
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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