日期+列表+折线图

article/2025/10/16 17:47:04

#1、分析:

       1.1日期:
             日:选项为日的时候,右边日期选择YYYY-MM-DD,折线图显示当天的24小时
             周:选择为周的时候,右边日期选择YYYY-MM-DD,折线图显示当前日期往前6天
             月:选择为月的时候,右边日期选择月份,折线图显示选择月份的30天的数据
             折线图:最开始默认显示所有的平台信息,搜索框选择公司查询后,折线图显示该公司的数据。或者点击列表里面的详情按钮,折线图也可以显示该公司的数据。

 

#2、代码分析,使用iview的框架

<template>

<div class="content-box clearfix">

<Row>

<Col

span="18"

style="border: 1px solid #d9e1ef;height:800px;padding-right:10px;padding-left:10px;padding-top:30px;"

>

<chart :option="option" style="height:600px;width:100%" ref="mychart"></chart>

</Col>

<Col

span="6"

style="border-right:1px solid #d9e1ef;border-top:1px solid #d9e1ef;border-bottom:1px solid #d9e1ef;padding:15px;height:800px;"

>

<Form ref="formInline" :label-width="80">

<FormItem label="统计周期" style="margin:0px;">

<Select v-model="form.type" @on-change="changeDateType" style="max-width: 99px;">

<Option value="day">日</Option>

<Option value="week">周</Option>

<Option value="month">月</Option>

</Select>

<DatePicker

:type="dateType"

v-model="form.date"

placeholder="请选择日期"

style="width:auto;"

@on-change="changeXData"

></DatePicker>

</FormItem>

<FormItem label="平台名称">

<Select v-model="form.companyId" value @on-change="changeLegend">

<Option value="0">全部</Option>

<Option

v-for="item in companys"

:value="item.companyId"

:key="item.companyId"

>{{ item.companyName }}</Option>

</Select>

</FormItem>

<FormItem>

<Row>

<Col span="12" style="padding-right:5px;">

<Button type="primary" style="width:100%" @click="queryData">查 询</Button>

</Col>

<Col span="12" style="padding-left:5px;">

<Button type="error" style="width:100%" @click="resetParams">清 空</Button>

</Col>

</Row>

</FormItem>

</Form>

<Table :columns="columns" :data="tableData"></Table>

//提前写好的翻页

<b-pagination

:total-rows="totalRows"

:per-page="form.pageSize"

v-model="form.pageNumber"

style="margin-top:10px;"

@input="getListData"

next-text="下一页"

prev-text="上一页"

first-text="首页"

last-text="末页"

/>

</Col>

</Row>

</div>

</template>

<script>

//引用写好的日期处理的文件

import { getDateByType } from '@/common/utils'

//引入连接接口的处理文件

import api from '@/axios/api.js'

import gd from '@/axios/globalData.js'

export default {

data() {

return {

option: {},

dateType: 'date',

companys: [],

form: {

pageNumber: 1,

pageSize: 10,

type: 'day',

date: moment(new Date()).format('YYYY-MM-DD'),

companyId: '0'

},

//分页

totalRows: 0 ,

//折线图的横、纵坐标

xData: [],

yData: [],

//折线图下面的按钮选项

legend: ['所有平台'],

columns: [

{

title: '平台名称',

key: 'companyName'

},

{

title: '平均载客率',

key: 'avgDriveRateStr'

},

{

title: '详情',

key: 'action',

width: 80,

align: 'center',

render: (h, params) => {

return h('div', [

h('Button', {

props: {

type: 'primary',

size: 'small'

},

style: {

marginRight: '5px'

},

on: {

click: () => {

this.getChartData(params.row)

}

}

}, '可视化')

]);

}

}

],

tableData: []

}

},

methods: {

changeLegend(id) {

if (id) {

this.companys.forEach(item => {

if (item.companyId == id) {

this.legend = [item.companyName]

}

})

}

},

changeDateType: function (value) {

if (value == 'month') {

this.dateType = 'month'

} else {

this.dateType = 'date'

}

this.changeXData()

},

changeXData: function () {

var format = this.form.type == 'month' ? 'YYYY-MM' : 'YYYY-MM-DD'

var date = moment(this.form.date).format(format)

this.xData = getDateByType(date, this.form.type)

},

setEchartsOption() {

this.option = {

title: {

left: 'center',

text: '平台实载率统计分析'

},

tooltip: {

trigger: 'axis'

},

legend: {

y: 'bottom',

data: this.legend

},

grid: {

left: '3%',

right: '4%',

containLabel: true

},

xAxis: {

type: 'category',

boundaryGap: false,

axisLabel: {

interval: 0,

rotate: 30

},

data: this.xData

},

yAxis: {

type: 'value'

},

series: [

{

name: this.legend[0],

type: 'line',

stack: '总量',

data: this.yData,

markLine: {

data: [

{ type: 'average', name: '平均值' }

]

}

}

]

};

},

//获取所有平台公司

getCompanys() {

api.axios_http(URL, { type: 1 }).then(res => {

this.companys = res.returnParm

})

},

getListData() {

var format = this.form.type == 'month' ? 'YYYY-MM' : 'YYYY-MM-DD'

var params = {}

params.date = moment(this.form.date).format(format)

params.type = this.form.type

params.pageNumber = this.form.pageNumber

params.pageSize = this.form.pageSize

if (this.form.companyId != '0') {

params.companyId = this.form.companyId

}

this.copyParams = JSON.parse(JSON.stringify(params))

this.copyXDate = JSON.parse(JSON.stringify(this.xData))

api.axios_http(URL params).then(res => {

this.tableData = res.returnParm.result

this.totalRows = res.returnParm.totalCount

})

 

},

getChartData(item) {

var params = JSON.parse(JSON.stringify(this.copyParams))

if (item) {

params.companyId = item.companyId

this.legend = [item.companyName]

}else{

if(this.form.companyId == '0'){

this.legend = ['所有平台']

}

}

api.axios_http(URL, params).then(res => {

this.yData = res.returnParm

this.xData = this.copyXDate

this.setEchartsOption()

})

},

queryData() {

this.getListData()

this.getChartData()

},

resetParams() {

this.dateType = 'date'

this.form = {

pageNumber: 1,

pageSize: 10,

type: 'day',

date: moment(new Date()).format('YYYY-MM-DD'),

companyId: '0'

}

this.legend = ['所有平台']

this.changeXData()

this.queryData()

}

},

mounted() {

this.getCompanys()

//初始化x轴数据

this.changeXData()

this.getListData()

this.getChartData()

}

}

</script>

 

#3


http://chatgpt.dhexx.cn/article/CADUpf5d.shtml

相关文章

如何制作竖线的效果

描述 在很多网页中, 都会有一个小竖线的效果 (如图) . 实现这个小竖线的效果有很多种方法. 在这里记录一下. 方法 1. 通过::after 在元素后面追加一个宽度为1px的元素 .search-box .search span::after {position: absolute;right: -8px;content: "";width: 1p…

前端画竖线

一条竖线的写法 实现原理&#xff1a; 利用浮动,设置width:1px 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&g…

html中竖线怎么写,网页中竖线的几种做法

Q&#xff1a;网页中竖线的几种做法 A&#xff1a;1、用水平线做&#xff1a; 一般水平线的是宽长高短 color#000000>&#xff0c;做竖线我们可以反过来宽短高长&#xff0c; width"1"size"1000" color#000000>&#xff0c;怎么样&#xff1f;竖线出…

latex | 表格竖线被截断 、表格中文字靠近上方

表格竖线被截断 使用latex做表格的时候&#xff1a; 用的是三线表&#xff1a;\toprule midrule bottomrule 会出现表格竖线被截断的问题&#xff1a; 解决办法&#xff1a; 把\toprule midrule bottomrule替换成hline即可 表格文字靠近上方 但是这样修改之后会出现另一…

Latex中表格的竖线截断问题

Latex中使用代码 \begin{table}[htbp] \centering \caption{Add caption} \begin{tabular}{|c|c|c|c|} \toprule Avg. Degree & Node No. & Cascade No. & Cascade Length \\ \midrule 3-10 & 300-1000 & 100-500 & 10-20 \\ \bottomrule \end{tabul…

CSS 画一条横线/竖线

作为优秀的java程序员,扎实(la ji )前端水平是我工作的基础 , 所以今天记录一下怎么用css画一条横线/竖线出来 , 以此为笔记, 将来不需要去翻阅别人的代码 废话不多说 笔记开始 #CSS 代码 /*中间的过度的横线*/.link-top {width: 50%;height: 1px;border-top: solid #ACC0D8…

设置文字之间的竖线

1、定义文字 2、css设置样式

Latex 三线表 横线竖线短横线

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 目录 样式复现 语法解释 以这个图为例&#xff1a; 样式复现 导言区先添加&#xff1a; \usepackage{tabu} % 表格插入 \usepackage{multirow} % 一般用以设计…

echart markLine x轴 两点之间 或 日期之间 的竖线箭头

业务需求是想实现在两个月份之间的一个竖线代表月份启动日期 这个竖线是动态的 。 这里的难点是&#xff1a;x轴是日期 通过坐标找不到日期之间的中间的位置 。 解决方案&#xff1a;因此再创建有个x轴 我这里新的x轴刻度放大了五倍 根据比例找到你画的竖线在新的x轴的位置 &am…

C#中抽象类与抽象方法的详解

前言:在上一篇博文关于重写的前提说明中提到了,那么今天我们一起来看看抽象类以及抽象方法…,首先我们顺着目录从抽象类的介绍开始学习: 目录: 一.抽象类:1.声明形式(创建抽象类):2.抽象类的调用: 二.抽象类的规则:三.抽象方法:四.应用举例:五.抽象类的运用意义;六.总结: 一.抽…

java的抽象方法和抽象类

一个方法&#xff0c;要么是抽象方法&#xff0c;要么必须给出方法的具体实现。 比如我有个animal类&#xff0c;有个吃东西方法&#xff0c;我不希望在animal类中给出这个方法的具体实现&#xff0c;因为不同动物&#xff0c;吃的东西不一样。所以要给这个方法声明为抽象方法…

Java抽象类/抽象方法定义及其特性详解

类的继承结构中&#xff0c;越往上的类越具有通用性&#xff0c;也就越抽象。当它抽象到一定程度&#xff0c;就变成概念成框架&#xff0c;不能再产生实例化的对象了。例如“交通工具”&#xff0c;就无法用它来产生一个实例。 对应这一现象&#xff0c;Java中提供了抽…

Java的抽象类和抽象方法

目录 1、抽象类 2、抽象方法&#xff1a; 3、 抽象类和抽象方法的使用 1、抽象类 当父类的方法不能确定时&#xff0c;可以用abstract关键字来修饰方法&#xff0c;这个方法时抽象方法&#xff0c;用abstract来修饰该类就是抽象类。 public abstract class Animal {public…

抽象类必须要有抽象方法吗?

答案是&#xff1a;不必须。 这个题目主要是考察对抽象类的理解。 说一下我个人的理解吧。 1.如果一个类使用了abstract关键字修饰&#xff0c;那么这个类就是一个抽象类。 2.抽象类可以没有抽象方法 3.一个类如果包含抽象方法&#xff0c;那么这个类必须是抽象类&#xf…

抽象类和抽象方法定义及讲解?

首先说抽象类&#xff1a; &#xff08;1&#xff09;抽象类只能作为其他类的基类&#xff0c;它不能直接实例化&#xff0c;对抽象类不能使用new 操作符。 &#xff08;2&#xff09;抽象类中可以包含抽象成员&#xff0c;但非抽象类中不可以。 &#xff08;3&#xff09;如…

抽象类是不是必须要有抽象方法

在回答这个问题之前&#xff0c;先来了解一下抽象类。 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的…

Java中的抽象方法

在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 抽象类除了不能实例化对象之外&#xf…

抽象方法(abstract);

抽象方法&#xff08;abstract&#xff09;&#xff1b; 首先这个名字看着就很抽象。 首先java中普通的方法由方法的声明&#xff0c;方法体&#xff0c;&#xff08;大括号里面的&#xff09;组成 修饰符&#xff0c;返回值而&#xff0c;方法名称&#xff0c;&#xff08;参…

抽象类+抽象方法

一、概念 1、抽象类&#xff1a;&#xff08;用abstract修饰&#xff09; Java中可以定义没有方法体的方法&#xff0c;该方法由子类来具体实现。该没有方法体的方法我们称之为抽象方法&#xff0c;含有抽象方法的类我们称之为抽象类。 2、抽象方法 &#xff08;用abstract修…

Java中的抽象方法是什么,怎么用?

抽象方法… 听着就很抽象的样子 脑中不禁浮现出了各种抽象画的图像 缩在被窝里打起了退堂鼓 但是&#xff01; Java中的抽象没那么难 抽象方法是个啥&#xff1f; 通俗来说 就是不知道该咋做的方法 先别晕 我给你举个小栗子 我们创建一个类&#xff0c;什么类呢&#xff1f;…