Skip to content

Commit 30f0c1b

Browse files
committed
Merge branch 'dev' of https://gitee.com/ls0/yudao-ui-admin-vue3 into dev
� Conflicts: � src/utils/dict.ts
2 parents e3b9a15 + 2318f17 commit 30f0c1b

File tree

5 files changed

+601
-2
lines changed

5 files changed

+601
-2
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import request from '@/config/axios'
2+
3+
export interface ExperienceRecordVO {
4+
id: number
5+
userId: number
6+
bizId: string
7+
bizType: number
8+
title: string
9+
description: string
10+
experience: number
11+
totalExperience: number
12+
}
13+
14+
// 查询会员经验记录列表
15+
export const getExperienceRecordPage = async (params) => {
16+
return await request.get({ url: `/member/experience-record/page`, params })
17+
}
18+
19+
// 查询会员经验记录详情
20+
export const getExperienceRecord = async (id: number) => {
21+
return await request.get({ url: `/member/experience-record/get?id=` + id })
22+
}
23+
24+
// 新增会员经验记录
25+
export const createExperienceRecord = async (data: ExperienceRecordVO) => {
26+
return await request.post({ url: `/member/experience-record/create`, data })
27+
}
28+
29+
// 修改会员经验记录
30+
export const updateExperienceRecord = async (data: ExperienceRecordVO) => {
31+
return await request.put({ url: `/member/experience-record/update`, data })
32+
}
33+
34+
// 删除会员经验记录
35+
export const deleteExperienceRecord = async (id: number) => {
36+
return await request.delete({ url: `/member/experience-record/delete?id=` + id })
37+
}
38+
39+
// 导出会员经验记录 Excel
40+
export const exportExperienceRecord = async (params) => {
41+
return await request.download({ url: `/member/experience-record/export-excel`, params })
42+
}

src/utils/dict.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ export enum DICT_TYPE {
150150

151151
// ========== MALL - 会员模块 ==========
152152
MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type', // 积分的业务类型
153+
MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type', // 会员经验业务类型
154+
// TODO @疯狂:这块的枚举,是不是要挪到 TRADE 那啦
153155
BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition', // 分佣模式
154156
BROKERAGE_BIND_MODE = 'brokerage_bind_mode', // 分销关系绑定模式
155157
BROKERAGE_BANK_NAME = 'brokerage_bank_name', // 佣金提现银行
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
<template>
2+
<ContentWrap>
3+
<!-- 搜索工作栏 -->
4+
<el-form
5+
class="-mb-15px"
6+
:model="queryParams"
7+
ref="queryFormRef"
8+
:inline="true"
9+
label-width="68px"
10+
>
11+
<el-form-item label="业务类型" prop="bizType">
12+
<el-select
13+
v-model="queryParams.bizType"
14+
placeholder="请选择业务类型"
15+
clearable
16+
class="!w-240px"
17+
>
18+
<el-option
19+
v-for="dict in getIntDictOptions(DICT_TYPE.MEMBER_EXPERIENCE_BIZ_TYPE)"
20+
:key="dict.value"
21+
:label="dict.label"
22+
:value="dict.value"
23+
/>
24+
</el-select>
25+
</el-form-item>
26+
<el-form-item label="标题" prop="title">
27+
<el-input
28+
v-model="queryParams.title"
29+
placeholder="请输入标题"
30+
clearable
31+
@keyup.enter="handleQuery"
32+
class="!w-240px"
33+
/>
34+
</el-form-item>
35+
<el-form-item label="创建时间" prop="createTime">
36+
<el-date-picker
37+
v-model="queryParams.createTime"
38+
value-format="YYYY-MM-DD HH:mm:ss"
39+
type="daterange"
40+
start-placeholder="开始日期"
41+
end-placeholder="结束日期"
42+
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
43+
class="!w-240px"
44+
/>
45+
</el-form-item>
46+
<el-form-item>
47+
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
48+
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
49+
</el-form-item>
50+
</el-form>
51+
</ContentWrap>
52+
53+
<!-- 列表 -->
54+
<ContentWrap>
55+
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
56+
<el-table-column label="编号" align="center" prop="id" width="150px" />
57+
<el-table-column label="业务编号" align="center" prop="bizId" width="150px">
58+
<!-- TODO 芋艿:此处应创建对应的字典 -->
59+
<template #default="scope">
60+
<dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_ID" :value="scope.row.bizId" />
61+
</template>
62+
</el-table-column>
63+
<el-table-column label="业务类型" align="center" prop="bizType" width="150px">
64+
<template #default="scope">
65+
<dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_TYPE" :value="scope.row.bizType" />
66+
</template>
67+
</el-table-column>
68+
<el-table-column label="标题" align="center" prop="title" width="150px" />
69+
<el-table-column label="描述" align="center" prop="description" />
70+
<el-table-column label="经验" align="center" prop="experience" width="150px">
71+
<template #default="scope">
72+
<el-tag v-if="scope.row.experience > 0" class="ml-2" type="success" effect="dark">
73+
+{{ scope.row.experience }}
74+
</el-tag>
75+
<el-tag v-else class="ml-2" type="danger" effect="dark">
76+
{{ scope.row.experience }}
77+
</el-tag>
78+
</template>
79+
</el-table-column>
80+
<el-table-column label="变更后的经验" align="center" prop="totalExperience" width="150px">
81+
<template #default="scope">
82+
<el-tag class="ml-2" effect="dark">
83+
{{ scope.row.totalExperience }}
84+
</el-tag>
85+
</template>
86+
</el-table-column>
87+
<el-table-column
88+
label="创建时间"
89+
align="center"
90+
prop="createTime"
91+
:formatter="dateFormatter"
92+
/>
93+
</el-table>
94+
<!-- 分页 -->
95+
<Pagination
96+
:total="total"
97+
v-model:page="queryParams.pageNo"
98+
v-model:limit="queryParams.pageSize"
99+
@pagination="getList"
100+
/>
101+
</ContentWrap>
102+
</template>
103+
104+
<script setup lang="ts">
105+
import { dateFormatter } from '@/utils/formatTime'
106+
import * as ExperienceRecordApi from '@/api/member/experience-record/index'
107+
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
108+
109+
defineOptions({ name: 'UserExperienceRecord' })
110+
111+
const loading = ref(true) // 列表的加载中
112+
const total = ref(0) // 列表的总页数
113+
const list = ref([]) // 列表的数据
114+
const queryParams = reactive({
115+
pageNo: 1,
116+
pageSize: 10,
117+
userId: null,
118+
bizId: null,
119+
bizType: null,
120+
title: null,
121+
description: null,
122+
experience: null,
123+
totalExperience: null,
124+
createTime: []
125+
})
126+
const queryFormRef = ref() // 搜索的表单
127+
/** 查询列表 */
128+
const getList = async () => {
129+
loading.value = true
130+
try {
131+
const data = await ExperienceRecordApi.getExperienceRecordPage(queryParams)
132+
list.value = data.list
133+
total.value = data.total
134+
} finally {
135+
loading.value = false
136+
}
137+
}
138+
139+
/** 搜索按钮操作 */
140+
const handleQuery = () => {
141+
queryParams.pageNo = 1
142+
getList()
143+
}
144+
145+
/** 重置按钮操作 */
146+
const resetQuery = () => {
147+
queryFormRef.value.resetFields()
148+
handleQuery()
149+
}
150+
151+
const { userId } = defineProps({
152+
userId: {
153+
type: Number,
154+
required: true
155+
}
156+
})
157+
/** 初始化 **/
158+
onMounted(() => {
159+
queryParams.userId = userId
160+
getList()
161+
})
162+
</script>

0 commit comments

Comments
 (0)