Skip to content

Commit 940a102

Browse files
committed
会员:会员详情-推广用户列表
1 parent b48f19c commit 940a102

File tree

2 files changed

+129
-1
lines changed

2 files changed

+129
-1
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
<template>
2+
<ContentWrap>
3+
<!-- 搜索工作栏 -->
4+
<el-form
5+
class="-mb-15px"
6+
:model="queryParams"
7+
ref="queryFormRef"
8+
:inline="true"
9+
label-width="85px"
10+
>
11+
<el-form-item label="用户类型" prop="level">
12+
<el-radio-group v-model="queryParams.level" @change="handleQuery">
13+
<el-radio-button checked>全部</el-radio-button>
14+
<el-radio-button label="1">一级推广人</el-radio-button>
15+
<el-radio-button label="2">二级推广人</el-radio-button>
16+
</el-radio-group>
17+
</el-form-item>
18+
<el-form-item label="绑定时间" prop="bindUserTime">
19+
<el-date-picker
20+
v-model="queryParams.bindUserTime"
21+
value-format="YYYY-MM-DD HH:mm:ss"
22+
type="daterange"
23+
start-placeholder="开始日期"
24+
end-placeholder="结束日期"
25+
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
26+
class="!w-240px"
27+
/>
28+
</el-form-item>
29+
<el-form-item>
30+
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
31+
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
32+
</el-form-item>
33+
</el-form>
34+
</ContentWrap>
35+
36+
<!-- 列表 -->
37+
<ContentWrap>
38+
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
39+
<el-table-column label="用户编号" align="center" prop="id" min-width="80px" />
40+
<el-table-column label="头像" align="center" prop="avatar" width="70px">
41+
<template #default="scope">
42+
<el-avatar :src="scope.row.avatar" />
43+
</template>
44+
</el-table-column>
45+
<el-table-column label="昵称" align="center" prop="nickname" min-width="80px" />
46+
<el-table-column label="等级" align="center" prop="level" min-width="80px">
47+
<template #default="scope">
48+
<el-tag v-if="scope.row.bindUserId === bindUserId">一级</el-tag>
49+
<el-tag v-else>二级</el-tag>
50+
</template>
51+
</el-table-column>
52+
<el-table-column
53+
label="绑定时间"
54+
align="center"
55+
prop="bindUserTime"
56+
:formatter="dateFormatter"
57+
width="170px"
58+
/>
59+
</el-table>
60+
<!-- 分页 -->
61+
<Pagination
62+
:total="total"
63+
v-model:page="queryParams.pageNo"
64+
v-model:limit="queryParams.pageSize"
65+
@pagination="getList"
66+
/>
67+
</ContentWrap>
68+
</template>
69+
70+
<script setup lang="ts">
71+
import { dateFormatter } from '@/utils/formatTime'
72+
import * as BrokerageUserApi from '@/api/mall/trade/brokerage/user'
73+
74+
/** 推广人列表 */
75+
defineOptions({ name: 'UserBrokerageList' })
76+
77+
const { bindUserId }: { bindUserId: number } = defineProps({
78+
bindUserId: {
79+
type: Number,
80+
required: true
81+
}
82+
}) //用户编号
83+
84+
const loading = ref(true) // 列表的加载中
85+
const total = ref(0) // 列表的总页数
86+
const list = ref([]) // 列表的数据
87+
const queryParams = reactive({
88+
pageNo: 1,
89+
pageSize: 10,
90+
bindUserId: null,
91+
level: '',
92+
bindUserTime: []
93+
})
94+
const queryFormRef = ref() // 搜索的表单
95+
96+
/** 查询列表 */
97+
const getList = async () => {
98+
loading.value = true
99+
try {
100+
queryParams.bindUserId = bindUserId
101+
const data = await BrokerageUserApi.getBrokerageUserPage(queryParams)
102+
list.value = data.list
103+
total.value = data.total
104+
} finally {
105+
loading.value = false
106+
}
107+
}
108+
109+
/** 搜索按钮操作 */
110+
const handleQuery = () => {
111+
queryParams.pageNo = 1
112+
getList()
113+
}
114+
115+
/** 重置按钮操作 */
116+
const resetQuery = () => {
117+
queryFormRef.value?.resetFields()
118+
handleQuery()
119+
}
120+
121+
/** 初始化 **/
122+
onMounted(() => {
123+
getList()
124+
})
125+
</script>

src/views/member/user/detail/index.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@
5252
<el-tab-pane label="优惠劵" lazy>
5353
<UserCouponList :user-id="id" />
5454
</el-tab-pane>
55-
<!-- TODO @疯狂:增加获得分校用户;直接查询出所有;需要体现出是一级还是二级;用户编号、昵称、级别、绑定时间 -->
55+
<el-tab-pane label="推广用户" lazy>
56+
<UserBrokerageList :bind-user-id="id" />
57+
</el-tab-pane>
5658
</el-tabs>
5759
</el-card>
5860
</el-row>
@@ -68,6 +70,7 @@ import UserForm from '@/views/member/user/UserForm.vue'
6870
import UserAccountInfo from './UserAccountInfo.vue'
6971
import UserAddressList from './UserAddressList.vue'
7072
import UserBasicInfo from './UserBasicInfo.vue'
73+
import UserBrokerageList from './UserBrokerageList.vue'
7174
import UserCouponList from './UserCouponList.vue'
7275
import UserExperienceRecordList from './UserExperienceRecordList.vue'
7376
import UserOrderList from './UserOrderList.vue'

0 commit comments

Comments
 (0)