code review:会员详情

This commit is contained in:
YunaiV 2023-09-09 10:06:32 +08:00
parent 30f0c1b351
commit 0e2ea39591
6 changed files with 41 additions and 49 deletions

View File

@ -20,23 +20,3 @@ export const getExperienceRecordPage = async (params) => {
export const getExperienceRecord = async (id: number) => { export const getExperienceRecord = async (id: number) => {
return await request.get({ url: `/member/experience-record/get?id=` + id }) return await request.get({ url: `/member/experience-record/get?id=` + id })
} }
// 新增会员经验记录
export const createExperienceRecord = async (data: ExperienceRecordVO) => {
return await request.post({ url: `/member/experience-record/create`, data })
}
// 修改会员经验记录
export const updateExperienceRecord = async (data: ExperienceRecordVO) => {
return await request.put({ url: `/member/experience-record/update`, data })
}
// 删除会员经验记录
export const deleteExperienceRecord = async (id: number) => {
return await request.delete({ url: `/member/experience-record/delete?id=` + id })
}
// 导出会员经验记录 Excel
export const exportExperienceRecord = async (params) => {
return await request.download({ url: `/member/experience-record/export-excel`, params })
}

View File

@ -138,7 +138,7 @@ export enum DICT_TYPE {
BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type', BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type',
// ========== PAY 模块 ========== // ========== PAY 模块 ==========
PAY_CHANNEL_CODE = 'pay_channel_code_type', // 支付渠道编码类型 PAY_CHANNEL_CODE = 'pay_channel_code', // 支付渠道编码类型
PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态 PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态
PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态 PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态
PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态 PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态

View File

@ -267,7 +267,7 @@
<template #default> <template #default>
<!-- TODO 权限后续补齐 --> <!-- TODO 权限后续补齐 -->
<div class="flex justify-center items-center"> <div class="flex justify-center items-center">
<el-button link type="primary" @click="openForm(scope.row.id)"> <el-button link type="primary" @click="openDetail(scope.row.id)">
<Icon icon="ep:notification" /> <Icon icon="ep:notification" />
详情 详情
</el-button> </el-button>
@ -445,7 +445,7 @@ const imagePreview = (imgUrl: string) => {
} }
/** 查看订单详情 */ /** 查看订单详情 */
const openForm = (id: number) => { const openDetail = (id: number) => {
push({ name: 'TradeOrderDetail', params: { orderId: id } }) push({ name: 'TradeOrderDetail', params: { orderId: id } })
} }

View File

@ -54,19 +54,12 @@
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="编号" align="center" prop="id" width="150px" /> <el-table-column label="编号" align="center" prop="id" width="150px" />
<el-table-column label="业务编号" align="center" prop="bizId" width="150px"> <el-table-column
<!-- TODO 芋艿此处应创建对应的字典 --> label="获得时间"
<template #default="scope"> align="center"
<dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_ID" :value="scope.row.bizId" /> prop="createTime"
</template> :formatter="dateFormatter"
</el-table-column> />
<el-table-column label="业务类型" align="center" prop="bizType" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_TYPE" :value="scope.row.bizType" />
</template>
</el-table-column>
<el-table-column label="标题" align="center" prop="title" width="150px" />
<el-table-column label="描述" align="center" prop="description" />
<el-table-column label="经验" align="center" prop="experience" width="150px"> <el-table-column label="经验" align="center" prop="experience" width="150px">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.experience > 0" class="ml-2" type="success" effect="dark"> <el-tag v-if="scope.row.experience > 0" class="ml-2" type="success" effect="dark">
@ -77,19 +70,22 @@
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="变更后的经验" align="center" prop="totalExperience" width="150px"> <el-table-column label="经验" align="center" prop="totalExperience" width="150px">
<template #default="scope"> <template #default="scope">
<el-tag class="ml-2" effect="dark"> <el-tag class="ml-2" effect="dark">
{{ scope.row.totalExperience }} {{ scope.row.totalExperience }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="标题" align="center" prop="title" width="150px" />
label="创建时间" <el-table-column label="描述" align="center" prop="description" />
align="center" <el-table-column label="业务编号" align="center" prop="bizId" width="150px" />
prop="createTime" <el-table-column label="业务类型" align="center" prop="bizType" width="150px">
:formatter="dateFormatter" <!-- TODO 芋艿此处应创建对应的字典 -->
/> <template #default="scope">
<dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_TYPE" :value="scope.row.bizType" />
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<Pagination <Pagination
@ -106,7 +102,7 @@ import { dateFormatter } from '@/utils/formatTime'
import * as ExperienceRecordApi from '@/api/member/experience-record/index' import * as ExperienceRecordApi from '@/api/member/experience-record/index'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
defineOptions({ name: 'UserExperienceRecord' }) defineOptions({ name: 'UserExperienceRecordList' })
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //

View File

@ -139,7 +139,7 @@
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column class-name="order-table-col"> <el-table-column class-name="order-table-col">
<template #header> <template #header>
<!-- TODO @phui999小屏幕下会有偏移后续看看 --> <!-- TODO @puhui999小屏幕下会有偏移后续看看 -->
<div class="flex items-center" style="width: 100%"> <div class="flex items-center" style="width: 100%">
<div class="ml-100px mr-200px">商品信息</div> <div class="ml-100px mr-200px">商品信息</div>
<div class="mr-60px">单价()/数量</div> <div class="mr-60px">单价()/数量</div>
@ -263,6 +263,14 @@
<dict-tag :type="DICT_TYPE.TRADE_ORDER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.TRADE_ORDER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template #default>
<el-button link type="primary" @click="openDetail(scope.row.id)">
<Icon icon="ep:notification" />
详情
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
@ -287,6 +295,8 @@ import { createImageViewer } from '@/components/ImageViewer'
import * as TradeOrderApi from '@/api/mall/trade/order' import * as TradeOrderApi from '@/api/mall/trade/order'
import { FormInstance, TableColumnCtx } from 'element-plus' import { FormInstance, TableColumnCtx } from 'element-plus'
const { push } = useRouter() //
const { userId }: { userId: number } = defineProps({ const { userId }: { userId: number } = defineProps({
userId: { userId: {
type: Number, type: Number,
@ -376,6 +386,12 @@ const spanMethod = ({ row, rowIndex, columnIndex }: SpanMethodProps) => {
} }
} }
} }
/** 查看订单详情 */
const openDetail = (id: number) => {
push({ name: 'TradeOrderDetail', params: { orderId: id } })
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
queryParams.userId = userId queryParams.userId = userId

View File

@ -37,14 +37,14 @@
<UserSignList :user-id="id" /> <UserSignList :user-id="id" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="成长值" name="experience" lazy> <el-tab-pane label="成长值" name="experience" lazy>
<UserExperienceRecord :user-id="id" <UserExperienceRecordList :user-id="id"
/></el-tab-pane> /></el-tab-pane>
<el-tab-pane label="余额" name="fourth">余额(WIP)</el-tab-pane> <el-tab-pane label="余额" name="fourth">余额(WIP)</el-tab-pane>
<el-tab-pane label="收货地址" name="address" lazy> <el-tab-pane label="收货地址" name="address" lazy>
<UserAddressList :user-id="id" /> <UserAddressList :user-id="id" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="订单管理" name="order" lazy> <el-tab-pane label="订单管理" name="order" lazy>
<UserOrder :user-id="id" /> <UserOrderList :user-id="id" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="售后管理" name="fourth">售后管理(WIP)</el-tab-pane> <el-tab-pane label="售后管理" name="fourth">售后管理(WIP)</el-tab-pane>
<el-tab-pane label="收藏记录" name="fourth">收藏记录(WIP)</el-tab-pane> <el-tab-pane label="收藏记录" name="fourth">收藏记录(WIP)</el-tab-pane>
@ -66,9 +66,9 @@ import UserAccountInfo from './UserAccountInfo.vue'
import UserAddressList from './UserAddressList.vue' import UserAddressList from './UserAddressList.vue'
import UserPointList from './UserPointList.vue' import UserPointList from './UserPointList.vue'
import UserSignList from './UserSignList.vue' import UserSignList from './UserSignList.vue'
import UserExperienceRecord from './UserExperienceRecord.vue' import UserExperienceRecordList from './UserExperienceRecordList.vue'
import { CardTitle } from '@/components/Card/index' import { CardTitle } from '@/components/Card/index'
import UserOrder from '@/views/member/user/detail/UserOrder.vue' import UserOrderList from '@/views/member/user/detail/UserOrderList.vue'
defineOptions({ name: 'MemberDetail' }) defineOptions({ name: 'MemberDetail' })