Compare commits

..

2 Commits

Author SHA1 Message Date
磷叶
d0c983f0c6 卡券功能 2025-05-27 16:18:09 +08:00
磷叶
0d8551c020 卡券功能 2025-05-27 16:13:45 +08:00
5 changed files with 59 additions and 12 deletions

View File

@ -28,9 +28,18 @@
<el-tab-pane label="车辆列表" lazy v-if="checkPermi(['bst:device:list'])">
<device :query="{areaId: detail.id}" />
</el-tab-pane>
<el-tab-pane label="订单列表" lazy v-if="checkPermi(['bst:order:list'])">
<el-tab-pane label="骑行订单" lazy v-if="checkPermi(['bst:order:list'])">
<order :query="{areaId: detail.id}" />
</el-tab-pane>
<el-tab-pane label="卡券列表" lazy v-if="checkPermi(['bst:vip:list'])">
<vip :query="{areaId: detail.id}" />
</el-tab-pane>
<el-tab-pane label="卡券订单" lazy v-if="checkPermi(['bst:vipOrder:list'])">
<vip-order :query="{vipAreaId: detail.id}" />
</el-tab-pane>
<el-tab-pane label="用户卡券" lazy v-if="checkPermi(['bst:vipUser:list'])">
<vip-user :query="{areaId: detail.id}" />
</el-tab-pane>
<el-tab-pane label="加盟列表" lazy v-if="checkPermi(['bst:areaJoin:list'])">
<area-join :query="{areaId: detail.id, types: [AreaJoinType.JOIN, AreaJoinType.COOPERATE]}" />
</el-tab-pane>
@ -54,13 +63,16 @@
<script>
import { getArea } from '@/api/bst/area';
import UserLink from '@/components/Business/User/UserLink.vue';
import { AreaJoinType, LogBizType } from '@/utils/enums';
import Agreement from '@/views/bst/agreement/index.vue';
import AreaJoin from '@/views/bst/areaJoin/index.vue';
import AreaSub from '@/views/bst/areaSub/index.vue';
import CustomerService from '@/views/bst/customerService/index.vue';
import Device from '@/views/bst/device/index.vue';
import Order from '@/views/bst/order/index.vue';
import AreaJoin from '@/views/bst/areaJoin/index.vue';
import { AreaJoinType, LogBizType } from '@/utils/enums';
import CustomerService from '@/views/bst/customerService/index.vue';
import Agreement from '@/views/bst/agreement/index.vue';
import Vip from '@/views/bst/vip/index.vue';
import VipOrder from '@/views/bst/vipOrder/index.vue';
import VipUser from '@/views/bst/vipUser/index.vue';
import OperLog from '@/views/monitor/operlog/index.vue';
export default {
@ -74,7 +86,10 @@ export default {
AreaJoin,
CustomerService,
Agreement,
OperLog
OperLog,
VipOrder,
Vip,
VipUser
},
data() {
return {

View File

@ -194,6 +194,12 @@ export default {
BooleanTag,
VipEditDialog
},
props: {
query: {
type: Object,
default: () => ({})
}
},
data() {
return {
VipType,
@ -254,6 +260,7 @@ export default {
};
},
created() {
Object.assign(this.queryParams, this.query);
this.getList();
},
methods: {

View File

@ -153,6 +153,12 @@ export default {
mixins: [$showColumns],
dicts: ['vip_type', 'vip_order_status', 'vip_limit_unit'],
components: {FormCol, AreaRemoteSelect, AreaLink, UserLink},
props: {
query: {
type: Object,
default: () => ({})
}
},
data() {
return {
VipType,
@ -246,6 +252,7 @@ export default {
};
},
created() {
Object.assign(this.queryParams, this.query);
this.getList();
},
methods: {

View File

@ -50,7 +50,7 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="vipUserList" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="onSortChange">
<el-table v-loading="loading" :data="vipUserList" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="onSortChange">
<el-table-column type="selection" width="55" align="center" />
<template v-for="column of showColumns">
<el-table-column
@ -76,7 +76,7 @@
<user-link :id="d.row.userId" :text="d.row.userName"/>
</template>
<template v-else-if="column.key === 'areaName'">
<area-link :id="d.row.areaId" :text="d.row.areaName"/>
<area-link :id="d.row.areaId" :text="d.row.areaName" />
</template>
<template v-else-if="column.key === 'surplusTotal'">
{{ d.row.surplusTotal | dv}}
@ -150,6 +150,12 @@ export default {
mixins: [$showColumns],
dicts: ['vip_type', 'vip_limit_unit'],
components: {FormCol, UserLink, AreaLink, AreaRemoteSelect},
props: {
query: {
type: Object,
default: () => ({})
}
},
data() {
return {
VipType,
@ -157,7 +163,7 @@ export default {
//
columns: [
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'name', visible: true, label: '卡券', minWidth: null, sortable: true, overflow: false, align: 'left', width: null},
{key: 'name', visible: true, label: '卡券', minWidth: null, sortable: true, overflow: false, align: 'left', width: "250"},
{key: 'userName', visible: true, label: '用户', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'areaName', visible: true, label: '运营区', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'discount', visible: true, label: '优惠', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
@ -244,6 +250,7 @@ export default {
};
},
created() {
Object.assign(this.queryParams, this.query);
this.getList();
},
methods: {

View File

@ -60,10 +60,16 @@
<el-tab-pane label="运营区" lazy v-if="checkPermi(['bst:area:list'])">
<area-index :query="{userId: detail.userId}" />
</el-tab-pane>
<el-tab-pane label="消费订单" lazy v-if="checkPermi(['bst:order:list'])">
<el-tab-pane label="骑行消费" lazy v-if="checkPermi(['bst:order:list'])">
<order :query="{userId: detail.userId}" />
</el-tab-pane>
<el-tab-pane label="收入订单" lazy v-if="checkPermi(['bst:order:list'])">
<el-tab-pane label="卡券消费" lazy v-if="checkPermi(['bst:vipOrder:list'])">
<vip-order :query="{userId: detail.userId}" />
</el-tab-pane>
<el-tab-pane label="卡券" lazy v-if="checkPermi(['bst:vipUser:list'])">
<vip-user :query="{userId: detail.userId}" />
</el-tab-pane>
<el-tab-pane label="骑行收入" lazy v-if="checkPermi(['bst:order:list'])">
<order :query="{bonusUserId: detail.userId}" />
</el-tab-pane>
<el-tab-pane label="出租记录" lazy v-if="checkPermi(['bst:orderDevice:list'])">
@ -133,10 +139,13 @@ import OrderDevice from '@/views/bst/orderDevice/index.vue'
import RealName from '@/views/bst/realName/index.vue'
import Suit from '@/views/bst/suit/index.vue'
import UserApp from '@/views/bst/userApp/index.vue'
import VipOrder from '@/views/bst/vipOrder/index.vue'
import VipUser from '@/views/bst/vipUser/index.vue'
import Withdraw from '@/views/bst/withdraw/index.vue'
import OperLog from '@/views/monitor/operlog/index.vue'
import UserStatistics from '@/views/system/user/view/components/UserStatistics'
export default {
name: 'UserView',
components: {
@ -161,7 +170,9 @@ export default {
AreaJoin,
OperLog,
CommandLog,
FeeLog
FeeLog,
VipOrder,
VipUser
},
data() {
return {