feat(integral-external): order/user list, integral log, wa selfBonus

- Fix ExternalIntegral order list (no double restPage); default 普通订单; UI columns for useIntegral and buyer uid/nickname/phone; enrich StoreOrderDetailResponse and admin query select.
- External user list: UserResponse.selfBonus and fillWaSelfBonus from wa_users.id=uid.
- Integral log: AdminIntegralSearchRequest nickName/phone; findAdminList filters and ordering; integralExternal API sends page/limit as query params.
- Integral detail page: linkType Chinese mapping including selfbonus; update docs/newpage.md.
- Dashboard grid menu entries for integral-external routes.

Made-with: Cursor
This commit is contained in:
apple
2026-04-09 15:10:16 +08:00
parent ee0886b800
commit f8ba25e7d5
13 changed files with 299 additions and 67 deletions

View File

@@ -4,13 +4,6 @@
<div class="clearfix">
<div class="container">
<el-form size="small" label-width="100px">
<el-form-item label="订单类型:">
<el-radio-group v-model="tableFrom.type" type="button" class="mr20" size="small" @change="seachList">
<el-radio-button v-for="(item, i) in typeOptions" :key="i" :label="item.value">
{{ item.label }}
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="订单状态:">
<el-radio-group v-model="tableFrom.status" type="button" @change="seachList">
<el-radio-button label="all">全部</el-radio-button>
@@ -78,7 +71,17 @@
<span v-if="scope.row.isDel" style="color: #ed4014; display: block">用户已删除</span>
</template>
</el-table-column>
<el-table-column prop="orderType" label="订单类型" min-width="110" />
<el-table-column prop="uid" label="用户ID" min-width="80" />
<el-table-column prop="nickname" label="用户昵称" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.nickname || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="用户手机号" min-width="120">
<template slot-scope="scope">
<span>{{ scope.row.userPhone | phoneDesensitize }}</span>
</template>
</el-table-column>
<el-table-column prop="realName" label="收货人" min-width="100" />
<el-table-column label="商品信息" min-width="280">
<template slot-scope="scope">
@@ -101,6 +104,11 @@
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="使用积分" min-width="90">
<template slot-scope="scope">
<span>{{ scope.row.useIntegral != null ? scope.row.useIntegral : '-' }}</span>
</template>
</el-table-column>
<el-table-column prop="payPrice" label="实际支付" min-width="90">
<template slot-scope="scope">
<span>{{ scope.row.payPrice }}</span>
@@ -149,7 +157,7 @@ export default {
total: 0,
},
tableFrom: {
type: '',
type: 0,
status: 'all',
dateLimit: '',
orderNo: '',
@@ -168,14 +176,6 @@ export default {
{ text: '本年', val: 'year' },
],
},
typeOptions: [
{ label: '全部', value: '' },
{ label: '普通订单', value: '0' },
{ label: '秒杀订单', value: '1' },
{ label: '砍价订单', value: '2' },
{ label: '拼团订单', value: '3' },
{ label: '视频号订单', value: '4' },
],
};
},
mounted() {
@@ -185,7 +185,6 @@ export default {
getList() {
this.listLoading = true;
const params = { ...this.tableFrom };
if (!params.type) delete params.type;
if (!params.dateLimit) delete params.dateLimit;
if (!params.orderNo) delete params.orderNo;