日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue實現折線圖 可按時間查詢

瀏覽:220日期:2022-12-04 15:19:55

本文實例為大家分享了vue實現可按時間查詢的折線圖的具體代碼,供大家參考,具體內容如下

1.vue前端

//查詢條件<template><el-date-picker v-model='listQuery.toptime' :picker-options='pickerOptions' type='daterange' clearable range-separator='至' start-placeholder='開始日期' end-placeholder='結束日期'/> <el-select v-model='listQuery.xAxis' placeholder='統計粒度' clearable > <el-option v-for='(item, index) in xAxisList' :key='index' :label='item.value' :value='item.id' /> </el-select>//折線圖 <el-card class='box-card'> <div slot='header' class='clearfix'> <span>折線圖</span> </div> <div : /> </el-card></template>

2.對應script代碼

// 引入基本模板const echarts = require(’echarts/lib/echarts’)// 引入柱狀圖組件require(’echarts/lib/chart/bar’)require(’echarts/lib/chart/pie’)// 引入提示框和title組件require(’echarts/lib/component/tooltip’)require(’echarts/lib/component/title’)require(’echarts/lib/component/legend’)export default {data() { return { listQuery: { page: 0, limit: 20, toptime: null, xAxis: null }, XList: [], XListName: ’’, YList: [], YListName: ’’, xAxisList: [ { id: 1, value: ’年’ }, { id: 2, value: ’月’ }, { id: 3, value: ’周’ } ], temp: { id: undefined, } } }, methods: { handleFilter1() { const listQueryData = Object.assign({}, this.listQuery) if (listQueryData.toptime !== null) { listQueryData.toptime = JSON.stringify(this.listQuery.toptime) } else if (listQueryData.toptime === null) { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)//默認按周查詢 this.listQuery.toptime = [start, end] listQueryData.toptime = JSON.stringify([start, end]) } switch (listQueryData.xAxis) { case 1: { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 365)//按年查詢 this.listQuery.toptime = [start, end] listQueryData.toptime = JSON.stringify([start, end]) break } case 2: { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)//按月查詢 this.listQuery.toptime = [start, end] listQueryData.toptime = JSON.stringify([start, end]) break } case 3: { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)//按周查詢 this.listQuery.toptime = [start, end] listQueryData.toptime = JSON.stringify([start, end]) break } } getShareTripCount(listQueryData).then(response => { this.XList = response.data.data.XList this.YList = response.data.data.YList this.YListName = response.data.data.YListName this.XListName = response.data.data.XListName this.drawLine() })},//重點drawLine() { const myChart3 = echarts.init(document.getElementById(’myChart3’)) myChart3.showLoading() // 數據加載完之前先顯示一段簡單的loading動畫 myChart3.hideLoading() // 隱藏加載動畫 // 繪制折線圖 const option = { title: { text: ’分享行程數據統計’, subtext: ’’ }, // tooltip: { // trigger: ’axis’ // }, legend: { data: [’總分享次數’, ’通過分享注冊用戶數’, ’今日分享次數’, ’今日通過注冊分享數’] }, // toolbox: { // show: true, // feature: { // mark: { show: true }, // dataView: { show: true, readOnly: false }, // magicType: { show: true, type: [’line’, ’bar’] }, // restore: { show: true }, // saveAsImage: { show: true } // } // }, calculable: true, xAxis: { name: this.XListName, type: ’category’, data: this.XList }, yAxis: { name: this.YListName, type: ’value’ }, series: [ { name: ’總分享次數’, type: ’line’, data: this.YList.sharenumList // markPoint: { // data: [ // { type: ’max’, name: ’最大值’ }, // { type: ’min’, name: ’最小值’ } // ] // } // markLine: { // data: [ // { type: ’average’, name: ’平均值’ } // ] // } }, { name: ’通過分享注冊用戶數’, type: ’line’, data: this.YList.shareUserRegisterList // markPoint: { // data: [ // { type: ’max’, name: ’最大值’ }, // { type: ’min’, name: ’最小值’ } // ] // } // markLine: { // data: [ // { type: ’average’, name: ’平均值’ } // ] // } }, { name: ’今日分享次數’, type: ’line’, data: this.YList.shareNumByDayList // markPoint: { // data: [ // { name: ’周最低’, value: -2, xAxis: 1, yAxis: -1.5 } // ] // } // markLine: { // data: [ // { type: ’average’, name: ’平均值’ } // ] // } }, { name: ’今日通過注冊分享數’, type: ’line’, data: this.YList.shareUserRegisterByDayList // markPoint: { // data: [ // { name: ’周最低’, value: -2, xAxis: 1, yAxis: -1.5 } // ] // } // markLine: { // data: [ // { type: ’average’, name: ’平均值’ } // ] // } } ] } myChart3.setOption(option)} }}

3.對應后端controller代碼

@RequestMapping(value = '/getShareTripCount', method = RequestMethod.POST) @ResponseBody public JSONResult getShareTripCount(HttpServletRequest request) { try { String topTime = request.getParameter('toptime'); String xAxis = request.getParameter('xAxis'); Map map = new HashMap(); if(!StringUtils.isEmpty(xAxis)){ switch (xAxis){ case '1':{ break; } case '2':{ map= getShareTripCountByTime(topTime); break; } case '3':{ map= getShareTripCountByTime(topTime); break; } default:{ map= getShareTripCountByTime(topTime); break; } } }else{ map=getShareTripCountByTime(topTime); } return new JSONResult(map, 0, '成功', true); } catch (Exception e) { e.printStackTrace(); return new JSONResult(null, 101, '服務器獲取失敗', false); } }private Map getShareTripCountByTime(String topTime) throws ParseException { Map map=new HashMap(); Sort.Order so = new Sort.Order(Sort.Direction.DESC, 'id'); Sort sort = new Sort(so); if (!StringUtils.isEmpty(topTime)) { topTime = topTime.replace('Z', ' UTC'); Gson gson = new Gson(); List<String> timeList = gson.fromJson(topTime, new TypeToken<List<String>>() { }.getType()); SimpleDateFormat format = new SimpleDateFormat('yyyy-MM-dd’T’HH:mm:ss.SSS Z'); Date endTime = format.parse(timeList.get(1)); Date beginTime = format.parse(timeList.get(0)); List<ShareCount> shareCountList = mongoTemplate.find(Query.query(Criteria.where('createTime').gte(beginTime).lte(endTime)).with(sort), ShareCount.class); Calendar c = Calendar.getInstance(); c.setTime(beginTime); int month = c.get(Calendar.MONTH); int year = c.get(Calendar.YEAR); int day = c.get(Calendar.DATE); int dayMax = DateUtil.daysBetween(beginTime, endTime); List<String> dayList = new ArrayList<>(); int monthMaxDay = DateUtil.getDaysByYearMonth(year, month); List<String> sharenumList = new ArrayList<>(); List<String> shareUserRegisterList = new ArrayList<>(); List<String> shareNumByDayList = new ArrayList<>(); List<String> shareUserRegisterByDayList = new ArrayList<>(); int j = 1; for (int i = 1; i <= dayMax; i++) { String sub = ''; int yue; int di; if (monthMaxDay >= i + day) { di = day + i; yue = month + 1; sub = yue + '-' + di; } else { yue = month + 2; di = j; sub = yue + '-' + di; j++; } int sharenum = 0; String sharenums =''; int shareUserRegister = 0; String shareUserRegisters =''; int shareNumByDay = 0; String shareNumByDays =''; int shareUserRegisterByDay = 0; String shareUserRegisterByDays =''; for (ShareCount shareCount : shareCountList) { c.setTime(shareCount.getCreateTime()); int months = c.get(Calendar.MONTH) + 1; int years = c.get(Calendar.YEAR); int days = c.get(Calendar.DATE); if (year == years && yue == months && di == days) { sharenum = sharenum + shareCount.getShareNum(); shareUserRegister = shareUserRegister + shareCount.getShareUserRegister(); shareNumByDay=shareNumByDay+ shareCount.getShareNumByDay(); shareUserRegisterByDay=shareUserRegisterByDay+shareCount.getShareUserRegisterByDay(); } } sharenums=String.valueOf(sharenum); shareUserRegisters=String.valueOf(shareUserRegister); shareNumByDays=String.valueOf(shareNumByDay); shareUserRegisterByDays=String.valueOf(shareUserRegisterByDay); dayList.add(sub); sharenumList.add(sharenums); shareUserRegisterList.add(shareUserRegisters); shareNumByDayList.add(shareNumByDays); shareUserRegisterByDayList.add(shareUserRegisterByDays); } Map maps=new HashMap(); maps.put('sharenumList', sharenumList); maps.put('shareUserRegisterList', shareUserRegisterList); maps.put('shareNumByDayList', shareNumByDayList); maps.put('shareUserRegisterByDayList', shareUserRegisterByDayList); map.put('type', 'month'); map.put('YList', maps); map.put('YListName', '次'); map.put('XListName', '日期'); map.put('XList', dayList); } return map;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜美腿一区| 日韩视频在线一区二区三区| 久久精品99国产精品| 欧美激情精品| 国产手机视频一区二区 | 性色一区二区| 国产成人1区| 免费日本视频一区| 久久青青视频| 国产亚洲高清在线观看| 韩国精品主播一区二区在线观看 | 日本午夜精品一区二区三区电影| 免费观看亚洲| 国产麻豆精品久久| 亚洲一区国产| а√在线中文在线新版| 日本精品国产| 亚洲一区网站| 日本欧美不卡| 久久久精品国产**网站| 亚洲精品高潮| 久久人人精品| 国产不卡一区| 国产精品多人| 亚洲精品看片| 激情欧美亚洲| 亚洲黄色中文字幕| 国产精品一区二区三区av| 丝瓜av网站精品一区二区| 蜜桃成人精品| 国产91欧美| 国产福利资源一区| 亚久久调教视频| 亚洲欧洲另类| 亚洲成人精品| 日韩成人精品一区| 久久国际精品| 日韩国产精品久久久| 天堂成人免费av电影一区| 黑丝美女一区二区| 欧美日韩免费看片| 精品一区91| 国产欧美一区二区精品久久久| 亚洲青青久久| 中文不卡在线| 久久不射中文字幕| 亚洲激情偷拍| 不卡在线一区二区| 久久精品国语| 成人精品亚洲| 久久久久久久久99精品大| 久久久久久久久成人| 久久精品av麻豆的观看方式| 日韩激情一区二区| 亚洲午夜免费| 亚洲日本三级| 亚洲一级大片| 亚洲乱码久久| 色综合视频一区二区三区日韩 | 欧美亚洲tv| 天堂va欧美ⅴa亚洲va一国产| 六月天综合网| 天堂成人国产精品一区| 国产精品毛片在线| 先锋影音久久久| 亚洲欧美日本国产专区一区| 自拍日韩欧美| 日韩中文字幕亚洲一区二区va在线| 亚洲一区二区三区四区五区午夜| 国产精品视区| 久久99伊人| 亚洲丝袜美腿一区| 亚洲精品视频一二三区| 日韩国产在线一| 国产欧美一区二区三区国产幕精品| 国产亚洲电影| 九九久久国产| 玖玖精品视频| 人人精品久久| 国产精品欧美日韩一区| 久久久91麻豆精品国产一区| 精品色999| 美女av在线免费看| 色老板在线视频一区二区| 日韩成人亚洲| 欧美精品一二| 亚洲深夜福利在线观看| 久久狠狠久久| 97精品97| 亚洲精品中文字幕乱码| 久久午夜精品一区二区| 亚洲aa在线| 国产美女撒尿一区二区| 久久一区视频| 亚洲成av在线| 久久福利精品| 18国产精品| 成人在线视频免费| 亚洲不卡av不卡一区二区| 香蕉视频成人在线观看| 奇米狠狠一区二区三区| 麻豆精品在线观看| 日韩在线第七页| 久久亚洲精品伦理| 热久久久久久| 日韩成人三级| 日韩一级网站| 日本伊人午夜精品| 精品久久视频| 激情视频一区二区三区| 日韩精品视频中文字幕| 国产成人精选| 亚洲一区欧美激情| 国产精久久一区二区| 色爱综合av| 视频一区二区三区在线| 国产精品香蕉| 日韩中文视频| 在线精品福利| 精品国产三区在线| 午夜电影亚洲| 国产精品一在线观看| 久久精品123| 日韩激情综合| 欧美sss在线视频| 日本欧美韩国一区三区| 亚洲www啪成人一区二区| 日本不卡一区二区三区| se01亚洲视频| 日本一区二区三区视频在线看| 精品日韩一区| 在线亚洲自拍| 免费日韩一区二区三区| 激情综合自拍| 国产精品一国产精品k频道56| 91精品久久久久久久久久不卡| 日韩欧美四区| 婷婷激情一区| 国产欧美一区二区三区国产幕精品 | 天堂网在线观看国产精品| 久久国产高清| 欧美激情久久久久久久久久久| 欧美aa在线观看| 蜜桃传媒麻豆第一区在线观看 | 美女久久久久久 | 国产一区清纯| 麻豆国产一区| 一区二区三区四区在线观看国产日韩| 国产aⅴ精品一区二区四区| 男女激情视频一区| 精品欠久久久中文字幕加勒比| 午夜亚洲福利在线老司机| av中文字幕在线观看第一页| 日韩精品五月天| 婷婷中文字幕一区| 美女视频一区在线观看| 亚洲精品成人一区| 91精品国产乱码久久久久久久| 国产精品极品| 日韩在线网址| 黄色欧美日韩| 日韩电影免费网址| 国产精品一区亚洲| 最新国产精品久久久| 亚洲电影在线一区二区三区| 麻豆国产一区| 日本午夜精品视频在线观看| 亚洲国产不卡| 日韩欧美看国产| 麻豆91在线播放| 日韩精品视频中文字幕| 亚洲欧美日韩国产一区二区| 亚洲播播91| 国产一区一一区高清不卡| 日韩国产高清在线| 美国三级日本三级久久99| re久久精品视频| 成人羞羞视频播放网站| 久久精品三级| 国产精品免费不| 亚洲精品影视| 亚洲尤物在线| 自由日本语亚洲人高潮| 91精品国产成人观看| 不卡福利视频| 精品久久久久中文字幕小说| 婷婷亚洲成人| 亚洲综合五月| 免费人成网站在线观看欧美高清| 欧美一级精品| 日韩精品一区二区三区免费观看| 久久影院资源站| 欧美激情日韩| 国产精品最新| 国产伦一区二区三区| 日本va欧美va欧美va精品| 丝袜脚交一区二区| 视频一区二区不卡| 夜夜嗨一区二区| 香蕉久久国产|