瀏覽代碼

code review:会员详情

YunaiV 1 年之前
父節點
當前提交
0e2ea39591

+ 0 - 20
src/api/member/experience-record/index.ts

@@ -20,23 +20,3 @@ export const getExperienceRecordPage = async (params) => {
 export const getExperienceRecord = async (id: number) => {
   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 })
-}

+ 1 - 1
src/utils/dict.ts

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

+ 2 - 2
src/views/mall/trade/order/index.vue

@@ -267,7 +267,7 @@
               <template #default>
                 <!-- TODO 权限后续补齐 -->
                 <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" />
                     详情
                   </el-button>
@@ -445,7 +445,7 @@ const imagePreview = (imgUrl: string) => {
 }
 
 /** 查看订单详情 */
-const openForm = (id: number) => {
+const openDetail = (id: number) => {
   push({ name: 'TradeOrderDetail', params: { orderId: id } })
 }
 

+ 17 - 21
src/views/member/user/detail/UserExperienceRecord.vue → src/views/member/user/detail/UserExperienceRecordList.vue

@@ -54,19 +54,12 @@
   <ContentWrap>
     <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="bizId" width="150px">
-        <!--   TODO 芋艿:此处应创建对应的字典       -->
-        <template #default="scope">
-          <dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_ID" :value="scope.row.bizId" />
-        </template>
-      </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="createTime"
+        :formatter="dateFormatter"
+      />
       <el-table-column label="经验" align="center" prop="experience" width="150px">
         <template #default="scope">
           <el-tag v-if="scope.row.experience > 0" class="ml-2" type="success" effect="dark">
@@ -77,19 +70,22 @@
           </el-tag>
         </template>
       </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">
           <el-tag class="ml-2" effect="dark">
             {{ scope.row.totalExperience }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        :formatter="dateFormatter"
-      />
+      <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="bizId" width="150px" />
+      <el-table-column label="业务类型" align="center" prop="bizType" width="150px">
+        <!--   TODO 芋艿:此处应创建对应的字典 -->
+        <template #default="scope">
+          <dict-tag :type="DICT_TYPE.MEMBER_EXPERIENCE_BIZ_TYPE" :value="scope.row.bizType" />
+        </template>
+      </el-table-column>
     </el-table>
     <!-- 分页 -->
     <Pagination
@@ -106,7 +102,7 @@ import { dateFormatter } from '@/utils/formatTime'
 import * as ExperienceRecordApi from '@/api/member/experience-record/index'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 
-defineOptions({ name: 'UserExperienceRecord' })
+defineOptions({ name: 'UserExperienceRecordList' })
 
 const loading = ref(true) // 列表的加载中
 const total = ref(0) // 列表的总页数

+ 17 - 1
src/views/member/user/detail/UserOrder.vue → src/views/member/user/detail/UserOrderList.vue

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

+ 4 - 4
src/views/member/user/detail/index.vue

@@ -37,14 +37,14 @@
             <UserSignList :user-id="id" />
           </el-tab-pane>
           <el-tab-pane label="成长值" name="experience" lazy>
-            <UserExperienceRecord :user-id="id"
+            <UserExperienceRecordList :user-id="id"
           /></el-tab-pane>
           <el-tab-pane label="余额" name="fourth">余额(WIP)</el-tab-pane>
           <el-tab-pane label="收货地址" name="address" lazy>
             <UserAddressList :user-id="id" />
           </el-tab-pane>
           <el-tab-pane label="订单管理" name="order" lazy>
-            <UserOrder :user-id="id" />
+            <UserOrderList :user-id="id" />
           </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 UserPointList from './UserPointList.vue'
 import UserSignList from './UserSignList.vue'
-import UserExperienceRecord from './UserExperienceRecord.vue'
+import UserExperienceRecordList from './UserExperienceRecordList.vue'
 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' })