Commit a0cf0d8a authored by guoyou's avatar guoyou

订单统计

parent b771882b
...@@ -177,4 +177,13 @@ export function updUserChange(params) { ...@@ -177,4 +177,13 @@ export function updUserChange(params) {
method: 'post', method: 'post',
data: params data: params
}); });
}
// 离职后在职
export function updAddPositionChangeRecord(params) {
return fetch({
url: 'api/admin/postion/admin/updAddPositionChangeRecord',
method: 'post',
data: params
});
} }
\ No newline at end of file
...@@ -17,4 +17,14 @@ export function vehicleInfoExcel(params) { ...@@ -17,4 +17,14 @@ export function vehicleInfoExcel(params) {
params: params, params: params,
responseType: 'blob' responseType: 'blob'
}); });
}
//车辆统计信息列表
export function received_statistics(params) {
return fetch({
url: 'api/order/admin/order/received_statistics',
method: 'post',
timeout:'50000',
data: params
});
} }
\ No newline at end of file
export function formatDate(date, fmt) { export function formatDate(date, fmt) {
console.log(date);
if (/(y+)/.test(fmt)) { if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
} }
......
This diff is collapsed.
<template> <template>
<ve-line :data="chartData"></ve-line> <div class="app-container calendar-list-container">
<div class="filter-container" v-loading="loading">
<el-form ref="listQuery" :model="listQuery" label-width="100px" :inline="true">
<el-row>
<el-form-item label="时间">
<el-date-picker
v-model="time"
placeholder="请选择时间"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="统计周期">
<el-radio-group v-model="listQuery.statisticalWay">
<el-radio-button :label="1"></el-radio-button>
<el-radio-button :label="2"></el-radio-button>
<el-radio-button :label="3"></el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="订单状态">
<el-select v-model="listQuery.orderState" clearable placeholder="请选择">
<!-- <el-option label="全部" :value="null"></el-option> -->
<el-option v-for="item in orderArr" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="订单来源">
<el-select v-model="listQuery.orderOrigin" clearable placeholder="请选择">
<!-- <el-option label="全部" :value="null"></el-option> -->
<el-option v-for="item in orderOriginArr" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="支付方式">
<el-select v-model="listQuery.payWay" clearable placeholder="请选择">
<!-- <el-option label="全部" :value="null"></el-option> -->
<el-option v-for="item in payWayArr" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<p style="border-top:1px solid #d9d9d9;padding:30px 0 10px 0">统计项目</p>
<div style="margin-bottom:20px">
<el-checkbox-group v-model="listQuery.statisticalSigns">
<span v-for="(item,index) in checkArr" :key="index" class="checkStyle">
<el-checkbox :label="item.id">{{item.name}}</el-checkbox>
<p v-show="item.id== 'ac_oavgq' || item.id== 'bc_rvavgq' || item.id== 'cd_tavgq'"></p>
</span>
</el-checkbox-group>
</div>
<el-button type="primary" @click="search">搜索</el-button>
<el-button type="primary" @click="clearSearch">清空搜索</el-button>
<el-button type="primary">导出excel</el-button>
</el-row>
</el-form>
<!-- <p v-for="(item,index) in chartArr" :key="index">{{item.row}}</p> -->
<div v-for="(item,index) in chartArr" :key="index">
<p style="text-align:center">{{checkArr.filter(val => val.id == item.title)[0].name}}</p>
<ve-line :data="item" :extend="extend" :settings="chartSettings" :legend-visible="false"></ve-line>
</div>
</div>
</div>
</template> </template>
<script> <script>
export default { import { received_statistics } from 'api/statistics/vehicleStatistics'
data: function () { import { formatDate } from 'utils/dateFormattor'
return { import { objDeepCopy } from '../../utils'
chartData: { export default {
columns: ['日期', '访问用户', '下单用户', '下单率'], data: function() {
rows: [ this.extend = {
{ '日期': '1/0', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 }, 'xAxis.0.axisLabel.rotate': 45
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 }, }
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 }, this.chartSettings = {
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 }, labelMap: {
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 }, orderAmount: '数量',
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 }, orderNum: '数量'
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 } }
] }
} return {
} loading: true,
} time: null,
} checkArr: [
</script> { name: '订单总额 ', id: 'aa_ota' },
\ No newline at end of file { name: '订单量 ', id: 'ab_otq' },
{ name: '订单平均量 ', id: 'ac_oavgq' },
{ name: '租车订单总额 ', id: 'ba_rvta' },
{ name: '租车订单量', id: 'bb_rvtq' },
{ name: '租车订单平均量 ', id: 'bc_rvavgq' },
{ name: '旅游订单总额', id: 'ca_tta' },
{ name: '旅游订单量 ', id: 'cb_ttq' },
{ name: '旅游订单平均量 ', id: 'cd_tavgq' },
{ name: '会员订单总额 ', id: 'da_mta' },
{ name: '普通会员订单总额 ', id: 'db_cmta' },
{ name: '普通会员订单量 ', id: 'dc_cmtq' },
{ name: '黄金会员订单总额 ', id: 'dd_gmta' },
{ name: '黄金会员订单量 ', id: 'de_mgtq' },
{ name: '钻石会员订单总额 ', id: 'df_dmta' },
{ name: '钻石会员订单量 ', id: 'dg_dmtq' }
],
//快捷筛选
listQuery: {
startDate: null, //开始时间
endDate: null, //结束时间
page: 1, //当前页
limit: 10, //每页条数
statisticalWay: 1, //统计方式
orderState: 1, //订单状态
orderOrigin: 1, //来源
payWay: 1, //支付方式
statisticalSigns: ['aa_ota'] //筛选
},
//订单状态
orderArr: [
{
name: '未完成',
id: 0
},
{
name: '已完成',
id: 1
}
],
//订单来源
orderOriginArr: [
{
name: 'APP',
id: 1
},
{
name: '小程序',
id: 2
},
{
name: '后台',
id: 3
}
],
//支付方式
payWayArr: [
{
name: '微信公众号支付',
id: 1
},
{
name: '支付宝即时到账',
id: 2
}
],
chartData: {
columns: ['date', 'orderAmount'],
rows: [
// {
// 日期: '2019-12-18',
// 访问用户: 1393,
// },
// {
// 日期: '2019-12-19',
// 访问用户: 1393,
// },
// {
// 日期: '2019-12-20',
// 访问用户: 7000,
// },
// {
// 日期: '2019-12-22',
// 访问用户: 2923,
// },
// {
// 日期: '2019-12-23',
// 访问用户: 1723,
// },
// {
// 日期: '2019-12-24',
// 访问用户: 3792,
// },
// {
// 日期: '2019-12-25',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-26',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-27',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-28',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-29',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-30',
// 访问用户: 4593,
// },
// {
// 日期: '2019-12-31',
// 访问用户: 4593,
// },
// {
// 日期: '2020-01-01',
// 访问用户: 4593,
// },
// {
// 日期: '2020-01-02',
// 访问用户: 4593,
// },
// {
// 日期: '2020-01-03',
// 访问用户: 4593,
// },
// {
// 日期: '2020-01-04',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-05',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-06',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-07',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-08',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-09',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-10',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-11',
// 访问用户: 5000,
// },
// {
// 日期: '2020-01-12',
// 访问用户: 5000,
// }
]
},
chartArr: {}
}
},
created() {
this.getList()
},
methods: {
//搜索
search() {
if (!!this.time) {
this.listQuery.startDate = formatDate(
new Date(this.time[0]),
'yyyy-MM-dd hh:mm:ss'
)
this.listQuery.endDate = formatDate(
new Date(this.time[1]),
'yyyy-MM-dd hh:mm:ss'
)
}
this.getList()
},
//清空搜索
clearSearch() {
this.listQuery = {
startDate: null, //开始时间
endDate: null, //结束时间
page: 1, //当前页
limit: 10, //每页条数
statisticalWay: 1, //统计方式
orderState: 1, //订单状态
orderOrigin: 1, //来源
payWay: 1, //支付方式
statisticalSigns: ['aa_ota'] //筛选
}
this.time = null
this.getList()
},
getList() {
this.loading = true
received_statistics(this.listQuery).then(data => {
if (data.status == 200) {
let info = data.data
let params = {}
let choose = this.listQuery.statisticalSigns
for (let i = 0; i < choose.length; i++) {
if (info[choose[i]] != '') {
params[choose[i]] = {
columns: [
Object.keys(info[choose[i]][0])[1],
Object.keys(info[choose[i]][0])[2]
],
rows: info[choose[i]],
title: choose[i]
}
}
}
this.chartArr = params
}
setTimeout(() => {
this.loading = false
}, 300)
})
}
}
}
</script>
<style scoped>
.checkStyle {
margin-right: 30px;
/* display: inline-block; */
line-height: 40px;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment