更新工作台页面,优化交易数据展示,修复核销订单金额等数据展示错误,并调整相关API接口路径

This commit is contained in:
zmj 2024-06-08 17:56:10 +08:00
parent 80813bdab7
commit 19ee1b0087
4 changed files with 136 additions and 16 deletions

View File

@ -14,3 +14,30 @@ export function apiStoreExtractRemarks(params: any) {
export function apiStoreExtractCashs(params: any) { export function apiStoreExtractCashs(params: any) {
return request.post({ url: '/workbench/delivery', params }) return request.post({ url: '/workbench/delivery', params })
} }
// 门店提现列表
export function apiGetBasic(params: any) {
return request.get({ url: '/workbench/get_basic', params })
}
// 门店提现列表
export function apiGetTrend(params: any) {
return request.get({ url: '/workbench/get_trend', params })
}
// 门店提现列表
export function apiGetProductRanking(params: any) {
return request.get({ url: '/workbench/get_product_ranking', params })
}
export function apidelivery(params: any) {
return request.get({ url: '/workbench/delivery', params })
}
export function apideliveryOrder(params: any) {
return request.get({ url: '/workbench/deliveryOrder', params })
}

View File

@ -1,12 +1,12 @@
<template> <template>
<el-table :data="pager.lists"> <el-table :data="pager.lists">
<el-table-column label="订单号" prop="project_level_text" show-overflow-tooltip /> <el-table-column label="订单号" prop="order_id" show-overflow-tooltip />
<el-table-column label="用户信息" prop="total_investment" show-overflow-tooltip /> <el-table-column label="用户信息" prop="nickname" show-overflow-tooltip />
<el-table-column label="实际支付" prop="total_investment" show-overflow-tooltip /> <el-table-column label="实际支付" prop="pay_price" show-overflow-tooltip />
<el-table-column label="订单类型" prop="total_investment" show-overflow-tooltip /> <el-table-column label="订单类型" prop="total_investment" show-overflow-tooltip />
<el-table-column label="支付方式" prop="total_investment" show-overflow-tooltip /> <el-table-column label="支付方式" prop="pay_type" show-overflow-tooltip />
<el-table-column label="配送员名称" prop="total_investment" show-overflow-tooltip /> <el-table-column label="配送员名称" prop="total_investment" show-overflow-tooltip />
<el-table-column label="下单时间" prop="total_investment" show-overflow-tooltip /> <el-table-column label="下单时间" prop="create_time" show-overflow-tooltip />
</el-table> </el-table>
<div class="flex mt-4 justify-end"> <div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" /> <pagination v-model="pager" @change="getLists" />
@ -16,12 +16,21 @@
<script lang="ts" setup name="manageProjectLists"> <script lang="ts" setup name="manageProjectLists">
import { ref, reactive } from "vue" import { ref, reactive } from "vue"
import { usePaging } from '@/hooks/usePaging' import { usePaging } from '@/hooks/usePaging'
import { apiGoodsListLists, apiStatus, apiGoodsTypeLists } from '@/api/goodsList' import { apideliveryOrder } from '@/api/statistics'
const props = defineProps({
const { pager, getLists, resetParams, resetPage } = usePaging({ queryParams: {
fetchFun: apiGoodsListLists, type: Object,
}
}) })
// getLists()
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apideliveryOrder,
params: props.queryParams
})
getLists()
</script> </script>

View File

@ -5,25 +5,66 @@
<!-- 业绩统计 --> <!-- 业绩统计 -->
<template> <template>
<el-card> <el-card>
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
<el-col :span="6">
<el-form-item label="时间筛选">
<el-date-picker v-model="date" type="daterange" value-format="YYYY-MM-DD" range-separator="-"
start-placeholder="开始时间" end-placeholder="结束时间" @change="deteToQuery" />
</el-form-item>
</el-col>
</el-form>
</el-card>
<el-card :key="date">
<template #header> <template #header>
配送订单统计 配送订单统计
</template> </template>
<v-charts style="height: 350px" :option="sendOption" :autoresize="true" /> <v-charts style="height: 350px" :option="sendOption" :autoresize="true" />
</el-card> </el-card>
<el-card> <el-card :key="date">
<template #header> <template #header>
配送订单统计 配送订单统计
</template> </template>
<sendData></sendData> <sendData :query-params="queryParams" :key="date"></sendData>
</el-card> </el-card>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive } from "vue" import { ref, reactive, onMounted } from "vue"
import vCharts from 'vue-echarts' import vCharts from 'vue-echarts'
import sendData from "../components/sendData.vue" import sendData from "../components/sendData.vue"
import { apidelivery } from '@/api/statistics'
const date = ref([])
const queryParams = reactive({
start_time: "",
end_time: "",
})
const deteToQuery = () => {
queryParams.start_time = date.value[0]
queryParams.end_time = date.value[1]
initPage()
}
function getFirstAndLastDayOfCurrentMonth() {
var today = new Date();
var firstDay = new Date(today.getFullYear(), today.getMonth(), 1);
var lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0);
var firstDayFormatted = formatDate(firstDay);
var lastDayFormatted = formatDate(lastDay);
return { firstDay: firstDayFormatted, lastDay: lastDayFormatted };
}
function formatDate(date) {
var year = date.getFullYear();
var month = (date.getMonth() + 1).toString().padStart(2, '0');
var day = date.getDate().toString().padStart(2, '0');
return `${year}-${month}-${day}`;
}
date.value[0] = getFirstAndLastDayOfCurrentMonth().firstDay;
date.value[1] = getFirstAndLastDayOfCurrentMonth().lastDay;
@ -53,5 +94,24 @@ const sendOption = reactive({
}) })
const getData = () => {
apidelivery(queryParams).then(res => {
console.log(res)
sendOption.xAxis.data = res.statistics.range
sendOption.series[0].data = res.statistics.data.order_amount
sendOption.series[1].data = res.statistics.data.user_number
})
}
const initPage = () => {
getData()
}
onMounted(() => {
deteToQuery()
})
</script> </script>

View File

@ -5,6 +5,7 @@
<span class="text-2xl">商品概况</span> <span class="text-2xl">商品概况</span>
<div class="flex items-center text-sm"> <div class="flex items-center text-sm">
<span class="mr-4">时间筛选: </span> <span class="mr-4">时间筛选: </span>
{{ startEndTime }}
<el-date-picker v-model="startEndTime" type="daterange" range-separator="" start-placeholder="开始日期" <el-date-picker v-model="startEndTime" type="daterange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期" unlink-panels :shortcuts="shortcuts" /> end-placeholder="结束日期" unlink-panels :shortcuts="shortcuts" />
<el-button type="primary" class="ml-4" @click="getData">查询</el-button> <el-button type="primary" class="ml-4" @click="getData">查询</el-button>
@ -67,7 +68,7 @@
</template> </template>
<script lang="ts" setup name="product"> <script lang="ts" setup name="product">
// import { apiGetBasic, apiGetTrend, apiGetProductRanking } from '@/api/workbench' import { apiGetBasic, apiGetTrend, apiGetProductRanking } from '@/api/statistics'
import moment from 'moment' import moment from 'moment'
import vCharts from 'vue-echarts' import vCharts from 'vue-echarts'
@ -231,12 +232,36 @@ const basicList = reactive([
} }
]) ])
const startEndTime = ref(['', '']); const startEndTime = ref(['', '']);
function getFirstAndLastDayOfCurrentMonth() {
var today = new Date();
var firstDay = new Date(today.getFullYear(), today.getMonth(), 1);
var lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0);
var firstDayFormatted = formatDate(firstDay);
var lastDayFormatted = formatDate(lastDay);
return { firstDay: firstDayFormatted, lastDay: lastDayFormatted };
}
function formatDate(date) {
var year = date.getFullYear();
var month = (date.getMonth() + 1).toString().padStart(2, '0');
var day = date.getDate().toString().padStart(2, '0');
return `${year}/${month}/${day}`;
}
startEndTime.value[0] = getFirstAndLastDayOfCurrentMonth().firstDay;
startEndTime.value[1] = getFirstAndLastDayOfCurrentMonth().lastDay;
// //
const getData = () => { const getData = () => {
let date = ''; let date = '';
if (startEndTime.value[0] && startEndTime.value[1]) date = moment(startEndTime.value[0]).format('YYYY/MM/DD') + '-' + moment(startEndTime.value[1]).format('YYYY/MM/DD'); if (startEndTime.value[0] && startEndTime.value[1]) date = moment(startEndTime.value[0]).format('YYYY/MM/DD') + '-' + moment(startEndTime.value[1]).format('YYYY/MM/DD');
return
apiGetBasic({ apiGetBasic({
date: date date: date
}).then(res => { }).then(res => {
@ -273,7 +298,6 @@ const getList = () => {
let date = ''; let date = '';
if (startEndTime.value[0] && startEndTime.value[1]) date = moment(startEndTime.value[0]).format('YYYY/MM/DD') + '-' + moment(startEndTime.value[1]).format('YYYY/MM/DD'); if (startEndTime.value[0] && startEndTime.value[1]) date = moment(startEndTime.value[0]).format('YYYY/MM/DD') + '-' + moment(startEndTime.value[1]).format('YYYY/MM/DD');
return
apiGetProductRanking({ apiGetProductRanking({
date: date date: date
}).then(res => { }).then(res => {