lg_frontend/pages/cleanTravel/trend.vue

174 lines
5.2 KiB
Vue
Raw Normal View History

2024-06-26 16:52:06 +00:00
<template>
2024-08-06 14:30:41 +00:00
<new-bg>
<flex-col>
2024-08-18 23:14:54 +00:00
<system-title show-back/>
2024-08-06 14:30:41 +00:00
<ModuleContent padding="0px 20px 20px">
2024-08-25 12:46:06 +00:00
<FlexCol>
2024-06-26 16:52:06 +00:00
2024-08-25 12:46:06 +00:00
<web2-title>清洁运输+趋势</web2-title>
<Split height="16"/>
<ModuleContent2 :border="false" padding="0">
<a-row :gutter="16" class="h100">
<a-col :span="6" class="h100">
<ModuleContent2 :border="false" padding="0">
<FlexCol>
<web3-title>运输车辆占比</web3-title>
<ModuleContent2 :border="false" padding="0" height="43%">
<Pie2 :data="cheliangData" title="运输车辆"></Pie2>
</ModuleContent2>
<web3-title>运输量占比</web3-title>
<ModuleContent2 :border="false" padding="0">
<Pie2 :data="yunshuliangData" title="运输量"></Pie2>
</ModuleContent2>
</FlexCol>
</ModuleContent2>
</a-col>
<a-col :span="18" class="h100">
<CustomTable
hide-action
hide-button
:columns="columns"
:api-conf="apiConf"
:form-items="formItems"
>
<template slot="search-button" slot-scope="{ search }">
<a-button type="primary" @click="exportList(search)" style="margin-left: 10px;">导出</a-button>
<Split height="10"></Split>
</template>
</CustomTable>
</a-col>
</a-row>
</ModuleContent2>
</FlexCol>
2024-08-06 14:30:41 +00:00
</ModuleContent>
</flex-col>
</new-bg>
2024-06-26 16:52:06 +00:00
</template>
<script>
import Curd from "../../components/smallCommon/Curd.vue";
import moment from 'moment'
2024-08-25 12:46:06 +00:00
import SystemTitle from "@/components/smallCommon/SystemTitle.vue";
import NewBg from "@/components/NewBg.vue";
import FlexCol from "@/components/FlexCol.vue";
import ModuleContent from "@/components/ModuleContent.vue";
import CustomTable from "@/components/smallCommon/CustomTable.vue";
import Split from "@/components/smallCommon/Split.vue";
import Web2Title from "@/components/smallCommon/Web2Title.vue";
import ModuleContent2 from "@/components/smallCommon/ModuleContent2.vue";
import CustomDesc2 from "@/components/smallCommon/CusDesc2.vue";
import Web3Title from "@/components/smallCommon/Web3Title.vue";
import Pie2 from "@/components/smallCommon/Pie2.vue";
2024-08-18 23:14:54 +00:00
2024-06-26 16:52:06 +00:00
export default {
name: "user",
components: {
2024-08-18 23:14:54 +00:00
Web3Title,
CustomDesc2, ModuleContent2,
Web2Title,
2024-08-06 14:30:41 +00:00
Split,
CustomTable,
ModuleContent, FlexCol, NewBg, SystemTitle,
2024-08-25 12:46:06 +00:00
Curd,
Pie2
2024-06-26 16:52:06 +00:00
},
2024-08-18 23:14:54 +00:00
data() {
2024-08-25 12:46:06 +00:00
const self = this
2024-06-26 16:52:06 +00:00
return {
2024-08-25 12:46:06 +00:00
cheliangData: [],
yunshuliangData: [],
2024-06-26 16:52:06 +00:00
yunshuzongliang: 0,
isEdit: false,
roles: [],
columns: [
{
2024-08-22 15:55:47 +00:00
dataIndex: 'time',
key: 'time',
2024-06-26 16:52:06 +00:00
title: '日期'
},
{
2024-08-22 15:55:47 +00:00
dataIndex: 'carNumber',
key: 'carNumber',
2024-06-26 16:52:06 +00:00
title: '车牌号'
},
{
2024-08-22 15:55:47 +00:00
dataIndex: 'carType',
key: 'carType',
2024-06-26 16:52:06 +00:00
title: '车型'
},
{
2024-08-22 15:55:47 +00:00
dataIndex: 'effluent',
key: 'effluent',
2024-06-26 16:52:06 +00:00
title: '燃油车'
}
],
apiConf: {
2024-08-25 12:46:06 +00:00
listApi: {api: '/api/Transport/gettransport', method: 'get', renderKey: 'item.cleans', after (data) {
self.cheliangData = [
{ name: '国五', value: data.item.v5Percent },
{ name: '国六', value: data.item.v6Percent },
{ name: '电动', value: data.item.electricPrecent },
{ name: '其他', value: data.item.otherPrecent },
]
self.yunshuliangData = [
{ name: '国五', value: data.item.v5WeightPercent },
{ name: '国六', value: data.item.v6WeightPercent },
{ name: '电动', value: data.item.electricWeightPrecent },
{ name: '其他', value: data.item.otherWeightPrecent },
]
}},
2024-06-26 16:52:06 +00:00
}
}
},
computed: {
2024-08-18 23:14:54 +00:00
formItems() {
2024-06-26 16:52:06 +00:00
return [
2024-08-06 14:30:41 +00:00
{
type: 'dateRange',
key: 'time',
label: '日期',
isSearch: true,
hide: true,
placeholder: ['请选择开始日期', '请选择结束日期'],
rules: [
2024-08-18 23:14:54 +00:00
{required: true, message: '请选择时间范围'}
2024-08-06 14:30:41 +00:00
],
fields: ['startTime', 'endTime']
},
2024-06-26 16:52:06 +00:00
]
}
},
created() {
this.getyunshuzongliang()
},
methods: {
2024-08-18 23:14:54 +00:00
getyunshuzongliang() {
2024-08-25 12:46:06 +00:00
2024-06-26 16:52:06 +00:00
},
2024-08-18 23:14:54 +00:00
editHandler(isEdit) {
2024-06-26 16:52:06 +00:00
this.isEdit = isEdit
},
2024-08-18 23:14:54 +00:00
exportList({time}) {
const [start, end] = time
2024-06-26 16:52:06 +00:00
const fmt = 'YYYY-MM-DD'
window.open(`http://101.43.201.20:5000/api/Ledger/export?start=${moment(start).format(fmt)}&end=${moment(end).format(fmt)}`, '_blank')
2024-08-22 15:55:47 +00:00
},
searchList (search) {
const [startTime, endTime] = search.time
this.$get('/api/Transport/gettransport', {
startTime: moment(startTime).format('YYYY-MM-DD'),
endTime: moment(endTime).format('YYYY-MM-DD'),
})
2024-06-26 16:52:06 +00:00
}
}
}
</script>
<style scoped lang="less">
</style>