购物增加统计功能
This commit is contained in:
@@ -2,9 +2,6 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-card class="filter-container" shadow="never">
|
<el-card class="filter-container" shadow="never">
|
||||||
<el-form :model="queryParams" :inline="true" label-width="100px">
|
<el-form :model="queryParams" :inline="true" label-width="100px">
|
||||||
<el-form-item label="订单号">
|
|
||||||
<el-input v-model="queryParams.orderSn" clearable placeholder="订单号" style="width: 160px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="卖家ID">
|
<el-form-item label="卖家ID">
|
||||||
<el-input v-model="queryParams.sellerId" clearable placeholder="卖家ID" style="width: 140px" />
|
<el-input v-model="queryParams.sellerId" clearable placeholder="卖家ID" style="width: 140px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -14,6 +11,13 @@
|
|||||||
<el-form-item label="买家ID">
|
<el-form-item label="买家ID">
|
||||||
<el-input v-model="queryParams.buyerId" clearable placeholder="买家ID" style="width: 140px" />
|
<el-input v-model="queryParams.buyerId" clearable placeholder="买家ID" style="width: 140px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="数据类型">
|
||||||
|
<el-select v-model="queryParams.dataType" clearable placeholder="请选择数据类型" style="width: 140px">
|
||||||
|
<el-option label="明细" value="detail_data" />
|
||||||
|
<el-option label="按天统计" value="day_stat" />
|
||||||
|
<el-option label="总和统计" value="sum_data" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="卖家昵称">
|
<el-form-item label="卖家昵称">
|
||||||
<el-input v-model="queryParams.sellerNickname" clearable placeholder="卖家昵称" style="width: 140px" />
|
<el-input v-model="queryParams.sellerNickname" clearable placeholder="卖家昵称" style="width: 140px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -115,6 +119,11 @@
|
|||||||
<el-table-column label="买家ID" prop="buyerId" min-width="100" show-overflow-tooltip />
|
<el-table-column label="买家ID" prop="buyerId" min-width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="买家昵称" prop="buyerNickname" min-width="110" show-overflow-tooltip />
|
<el-table-column label="买家昵称" prop="buyerNickname" min-width="110" show-overflow-tooltip />
|
||||||
<el-table-column label="买家手机" prop="buyerMobile" min-width="120" show-overflow-tooltip />
|
<el-table-column label="买家手机" prop="buyerMobile" min-width="120" show-overflow-tooltip />
|
||||||
|
<el-table-column label="数据类型" prop="dataType" min-width="100" show-overflow-tooltip>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ formatDataType(scope.row.dataType) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="商品ID" prop="merchandiseId" min-width="100" show-overflow-tooltip />
|
<el-table-column label="商品ID" prop="merchandiseId" min-width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="卖家ID" prop="sellerId" min-width="100" show-overflow-tooltip />
|
<el-table-column label="卖家ID" prop="sellerId" min-width="100" show-overflow-tooltip />
|
||||||
<el-table-column label="卖家昵称" prop="sellerNickname" min-width="110" show-overflow-tooltip />
|
<el-table-column label="卖家昵称" prop="sellerNickname" min-width="110" show-overflow-tooltip />
|
||||||
@@ -124,6 +133,21 @@
|
|||||||
{{ formatAmount(scope.row.newTotal) }}
|
{{ formatAmount(scope.row.newTotal) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="总金额" prop="statTotalMoney" min-width="110" align="right">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ formatAmount(scope.row.statTotalMoney) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="总单数" prop="totalOrderCount" min-width="90" align="right">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ formatCount(scope.row.totalOrderCount) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="平均金额" prop="avgAmount" min-width="110" align="right">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ formatAmount(scope.row.avgAmount) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="创建时间" prop="createdAt" min-width="160">
|
<el-table-column label="创建时间" prop="createdAt" min-width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ formatDateTime(scope.row.createdAt) }}
|
{{ formatDateTime(scope.row.createdAt) }}
|
||||||
@@ -163,8 +187,8 @@
|
|||||||
<el-form-item label="租户ID">
|
<el-form-item label="租户ID">
|
||||||
<el-input :value="tenantIdDisplay" disabled placeholder="未获取到租户ID" />
|
<el-input :value="tenantIdDisplay" disabled placeholder="未获取到租户ID" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="买家ID" prop="buyerId">
|
<el-form-item label="买家ID">
|
||||||
<el-input v-model="statForm.buyerId" clearable placeholder="请输入买家ID" />
|
<el-input v-model="statForm.buyerId" clearable placeholder="选填,不填则统计全部买家" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="统计类型" prop="statType">
|
<el-form-item label="统计类型" prop="statType">
|
||||||
<el-radio-group v-model="statForm.statType">
|
<el-radio-group v-model="statForm.statType">
|
||||||
@@ -375,7 +399,6 @@ export default {
|
|||||||
mobileListText: [{ required: true, message: '请输入手机号', trigger: 'blur' }]
|
mobileListText: [{ required: true, message: '请输入手机号', trigger: 'blur' }]
|
||||||
},
|
},
|
||||||
statFormRules: {
|
statFormRules: {
|
||||||
buyerId: [{ required: true, message: '请输入买家ID', trigger: 'blur' }],
|
|
||||||
statType: [{ required: true, message: '请选择统计类型', trigger: 'change' }]
|
statType: [{ required: true, message: '请选择统计类型', trigger: 'change' }]
|
||||||
},
|
},
|
||||||
list: [],
|
list: [],
|
||||||
@@ -392,7 +415,7 @@ export default {
|
|||||||
sellerId: '',
|
sellerId: '',
|
||||||
merchandiseId: '',
|
merchandiseId: '',
|
||||||
buyerId: '',
|
buyerId: '',
|
||||||
orderSn: '',
|
dataType: '',
|
||||||
sellerNickname: '',
|
sellerNickname: '',
|
||||||
sellerMobile: '',
|
sellerMobile: '',
|
||||||
buyerNickname: '',
|
buyerNickname: '',
|
||||||
@@ -448,16 +471,16 @@ export default {
|
|||||||
this.$message.error('未获取到租户ID,请先登录或配置业务请求头中的租户')
|
this.$message.error('未获取到租户ID,请先登录或配置业务请求头中的租户')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
const buyerIdText = (this.statForm.buyerId || '').trim()
|
||||||
const buyerId = parseOptionalLong(this.statForm.buyerId)
|
const buyerId = parseOptionalLong(this.statForm.buyerId)
|
||||||
if (buyerId == null) {
|
if (buyerIdText && buyerId == null) {
|
||||||
this.$message.warning('请输入有效的买家ID')
|
this.$message.warning('请输入有效的买家ID')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
const payload = { statType: this.statForm.statType }
|
||||||
|
if (buyerId != null) payload.buyerId = buyerId
|
||||||
this.statLoading = true
|
this.statLoading = true
|
||||||
generateLbBuyerShoppingStat({
|
generateLbBuyerShoppingStat(payload)
|
||||||
buyerId,
|
|
||||||
statType: this.statForm.statType
|
|
||||||
})
|
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const isSuccess = res && (res.success === true || res.code === 200 || res.code === 20000)
|
const isSuccess = res && (res.success === true || res.code === 200 || res.code === 20000)
|
||||||
if (!isSuccess) {
|
if (!isSuccess) {
|
||||||
@@ -550,7 +573,7 @@ export default {
|
|||||||
sellerId: parseOptionalLong(this.queryParams.sellerId),
|
sellerId: parseOptionalLong(this.queryParams.sellerId),
|
||||||
merchandiseId: parseOptionalLong(this.queryParams.merchandiseId),
|
merchandiseId: parseOptionalLong(this.queryParams.merchandiseId),
|
||||||
buyerId: parseOptionalLong(this.queryParams.buyerId),
|
buyerId: parseOptionalLong(this.queryParams.buyerId),
|
||||||
orderSn: this.queryParams.orderSn || undefined,
|
dataType: this.queryParams.dataType || undefined,
|
||||||
sellerNickname: this.queryParams.sellerNickname || undefined,
|
sellerNickname: this.queryParams.sellerNickname || undefined,
|
||||||
sellerMobile: this.queryParams.sellerMobile || undefined,
|
sellerMobile: this.queryParams.sellerMobile || undefined,
|
||||||
buyerNickname: this.queryParams.buyerNickname || undefined,
|
buyerNickname: this.queryParams.buyerNickname || undefined,
|
||||||
@@ -583,7 +606,7 @@ export default {
|
|||||||
sellerId: '',
|
sellerId: '',
|
||||||
merchandiseId: '',
|
merchandiseId: '',
|
||||||
buyerId: '',
|
buyerId: '',
|
||||||
orderSn: '',
|
dataType: '',
|
||||||
sellerNickname: '',
|
sellerNickname: '',
|
||||||
sellerMobile: '',
|
sellerMobile: '',
|
||||||
buyerNickname: '',
|
buyerNickname: '',
|
||||||
@@ -703,6 +726,20 @@ export default {
|
|||||||
const n = Number(val)
|
const n = Number(val)
|
||||||
return Number.isNaN(n) ? String(val) : n.toFixed(2)
|
return Number.isNaN(n) ? String(val) : n.toFixed(2)
|
||||||
},
|
},
|
||||||
|
formatDataType(val) {
|
||||||
|
const map = {
|
||||||
|
detail_data: '明细',
|
||||||
|
day_stat: '按天统计',
|
||||||
|
sum_data: '总和统计'
|
||||||
|
}
|
||||||
|
if (val === null || val === undefined || val === '') return '-'
|
||||||
|
return map[val] || String(val)
|
||||||
|
},
|
||||||
|
formatCount(val) {
|
||||||
|
if (val === null || val === undefined || val === '') return '-'
|
||||||
|
const n = Number(val)
|
||||||
|
return Number.isNaN(n) ? String(val) : String(n)
|
||||||
|
},
|
||||||
formatDateTime(dateTime) {
|
formatDateTime(dateTime) {
|
||||||
if (!dateTime) return '-'
|
if (!dateTime) return '-'
|
||||||
const date = new Date(String(dateTime).replace('T', ' '))
|
const date = new Date(String(dateTime).replace('T', ' '))
|
||||||
|
|||||||
Reference in New Issue
Block a user