소스 검색

商城内容隐藏

Xiao_123 4 달 전
부모
커밋
d1cca4e524

+ 8 - 0
src/api/mall/prize.js

@@ -62,4 +62,12 @@ export const getLuckLotteryRecordByOrderId = async (orderId) => {
 		url: '/app-api/promotion/luck-lottery-record/get/by-order-id',
 		params: { orderId }
 	})
+}
+
+// 根据订单id组获取中奖记录
+export const getLuckLotteryRecordByOrderIds = async (orderIds) => {
+  return await request.get({
+		url: '/app-api/promotion/luck-lottery-record/get/by-order-ids',
+		params: { orderIds }
+	})
 }

+ 17 - 17
src/router/modules/components/recruit/enterprise.js

@@ -371,22 +371,22 @@ const enterprise = [
       }
     ]
   },
-  {
-    path: '/recruit/enterprise/newlyAppointed',
-    component: Layout,
-    name: 'Newly Appointed',
-    meta: {
-      title: '门墩儿新任命',
-      enName: 'Newly Appointed',
-      icon: 'mdi-new-box'
-    },
-    children: [
-      {
-        path: '/recruit/enterprise/newlyAppointed',
-        show: true,
-        component: () => import('@/views/recruit/enterprise/newlyAppointed/index.vue')
-      }
-    ]
-  }
+  // {
+  //   path: '/recruit/enterprise/newlyAppointed',
+  //   component: Layout,
+  //   name: 'Newly Appointed',
+  //   meta: {
+  //     title: '门墩儿新任命',
+  //     enName: 'Newly Appointed',
+  //     icon: 'mdi-new-box'
+  //   },
+  //   children: [
+  //     {
+  //       path: '/recruit/enterprise/newlyAppointed',
+  //       show: true,
+  //       component: () => import('@/views/recruit/enterprise/newlyAppointed/index.vue')
+  //     }
+  //   ]
+  // }
 ]
 export default enterprise

+ 21 - 10
src/router/modules/components/recruit/personCenter.js

@@ -190,16 +190,27 @@ const personCenter = [
             ]
           },
           // 收货地址
-          {
-            path: '/recruit/personal/personalCenter/shippingAddress',
-            name: 'Shipping Address',
-            component: () => import('@/views/recruit/personal/PersonalCenter/shippingAddress/index.vue'),
-            meta: {
-              title: '收货地址',
-              enName: 'Shipping Address',
-              icon: 'mdi-map-marker-outline'
-            }
-          },
+          // {
+          //   path: '/recruit/personal/personalCenter/shippingAddress',
+          //   name: 'Shipping Address',
+          //   component: () => import('@/views/recruit/personal/PersonalCenter/shippingAddress/index.vue'),
+          //   meta: {
+          //     title: '收货地址',
+          //     enName: 'Shipping Address',
+          //     icon: 'mdi-map-marker-outline'
+          //   }
+          // },
+          // 我的奖品
+          // {
+          //   path: '/recruit/personal/personalCenter/myPrizes',
+          //   name: 'My Prizes',
+          //   component: () => import('@/views/recruit/personal/PersonalCenter/myPrizes/index.vue'),
+          //   meta: {
+          //     title: '我的奖品',
+          //     enName: 'My Prizes',
+          //     icon: 'mdi-star-four-points-outline'
+          //   }
+          // },
         ]
       }
     ]

+ 8 - 2
src/views/mall/components/GoodsItem/index.vue

@@ -11,6 +11,9 @@
           <span class="color-333">¥{{ fen2yuan(item.price) }}</span>
           <span v-if="item.count" class="color-999 font-size-13 ml-1">x {{ item.count }}</span>
         </p>
+        <p v-if="lottery && lottery.length" class="font-size-14 color-primary text-decoration-underline" @click.stop="router.push('/recruit/personal/personalCenter/myPrizes')">
+          赠品:{{ lottery.map(e => e.prize.name).join('、') }}
+        </p>
       </div>
       <div v-if="[10, 20, 30].includes(orderStatus) && item.extend && item.extend?.fileUrls && item.extend?.fileUrls?.length" class="d-flex" style="max-width: 160px;">
         <v-btn variant="text" color="primary" prepend-icon="mdi-eye-outline" @click="previewFile(item.extend.fileUrls[0])">预览</v-btn>
@@ -25,7 +28,9 @@
 defineOptions({ name: 'mall-goods-item'})
 import { fen2yuan } from '@/hooks/web/useGoods'
 import { getBlob, saveAs, previewFile } from '@/utils'
+import { useRouter } from 'vue-router'
 
+const router = useRouter()
 const props = defineProps({ 
   item: {
     type: Object,
@@ -43,12 +48,13 @@ const props = defineProps({
     type: Boolean,
     default: true
   },
-  orderStatus: [Number, String]
+  orderStatus: [Number, String],
+  lottery: Array
 })
 
 const handleDetail = (val) => {
   const spuId = val.spuId || val.id // 商品id
-  if (spuId) window.open(`/mall/goodsDetail/${spuId}`)
+  if (spuId) router.push(`/mall/goodsDetail/${spuId}`)
 }
 
 // 下载附件

+ 3 - 2
src/views/mall/components/details.vue

@@ -6,7 +6,7 @@
     <v-card class="carousel border-radius-8 white-bgc pa-5" style="width: 100%;">
       <div class="d-flex justify-space-between align-center">
         <v-btn variant="text" size="x-large" prepend-icon="mdi-chevron-triple-left" color="primary" @click.stop="goBack">返回</v-btn>
-        <v-btn variant="text" size="x-large" prepend-icon="mdi-cart-outline" color="primary" @click.stop="goBack">购物车</v-btn>
+        <v-btn variant="text" size="x-large" prepend-icon="mdi-cart-outline" color="primary" @click.stop="router.push('/mall/cart')">购物车</v-btn>
       </div>
       <div class="mt-1 d-flex">
         <!-- 图片展示-轮播 -->
@@ -221,7 +221,8 @@ const loginClose = () => {
 }
 
 const goBack = () => {
-  router.history?.length ? router.go(-1) : router.push('/mall')
+  router.go(-1)
+  // router.history?.length ? router.go(-1) : router.push('/mall')
   // router.go(-1)
 }
 

+ 3 - 4
src/views/mall/user/prize/index.vue → src/views/recruit/personal/PersonalCenter/myPrizes/index.vue

@@ -1,7 +1,7 @@
 <template>
-	<CtTable
-    class="mt-3"
+  <CtTable
     :items="items"
+    class="mt-3"
     :headers="headers"
     :loading="false"
     :elevation="0"
@@ -9,7 +9,7 @@
     :total="total"
     :showPage="true"
     :showSelect="false"
-		:page-info="queryParams"
+    :page-info="queryParams"
     itemKey="id"
   >
     <template #prize="{ item }">
@@ -86,7 +86,6 @@ const handleReceive = (item) => {
 const handleSubmit = async () => {
   const receive = selectAddressRef.value.getSelected() || {}
   if (!receive || !Object.keys(receive).length) return Snackbar.warning('请选择您的收货地址')
-  // console.log(receive, '收货地址', recordId.value)
   await luckyLotteryRecordReceive({ id: recordId.value, receiveInfo: JSON.stringify(receive) })
   showDialog.value = false
   recordId.value = null

+ 2 - 2
src/views/recruit/personal/PersonalCenter/tradeOrder/components/detail.vue

@@ -23,7 +23,7 @@
           </template>
           <template #spuName="{ item }">
             <span class="color-primary cursor-pointer" @click="handleToGoodsDetail(item)">{{ item.spuName }}</span>
-            <p v-if="order.lottery && order.lottery.length" class="color-999">赠品:{{ order.lottery.map(e => e.prize.name).join('、') }}</p>
+            <p v-if="order.lottery && order.lottery.length" class="color-999 color-primary mt-1 cursor-pointer text-decoration-underline" @click.stop="router.push('/recruit/personal/personalCenter/myPrizes')">赠品:{{ order.lottery.map(e => e.prize.name).join('、') }}</p>
           </template>
           <template #actions="{ item }">
             <div v-if="[10, 20, 30].includes(order.status) && item.extend && item.extend.fileUrls && item.extend.fileUrls.length > 0">
@@ -120,7 +120,7 @@ const handleDownload = (url, name) => {
 
 // 跳转商品详情
 const handleToGoodsDetail = (item) => {
-  window.open(`/mall/goodsDetail/${item.spuId}`)
+  router.push(`/mall/goodsDetail/${item.spuId}`)
 }
 </script>
 

+ 15 - 3
src/views/recruit/personal/PersonalCenter/tradeOrder/dynamic/mallOrder.vue

@@ -16,7 +16,7 @@
           </div>
         </div>
         <!-- 商品列表 -->
-        <GoodsItem v-for="k in val.items" :key="k.id" :item="k" :orderStatus="val.status" />
+        <GoodsItem v-for="k in val.items" :key="k.id" :item="k" :lottery="val?.lottery" :orderStatus="val.status" />
         <!-- 操作按钮 -->
         <div class="text-end pa-3 font-size-13 color-666">
           <div>共{{ val.productCount }}件商品,合计:¥{{ fen2yuan(val.payPrice) }}</div>
@@ -56,6 +56,7 @@ import GoodsItem from '@/views/mall/components/GoodsItem/index.vue'
 import pay from '@/views/mall/components/confirm_order/pay.vue'
 import { useRoute } from 'vue-router'; const route = useRoute()
 import { useRouter } from 'vue-router'; const router = useRouter()
+import { getLuckLotteryRecordByOrderIds } from '@/api/mall/prize'
 
 const props = defineProps({
   tabListBg: {
@@ -89,7 +90,18 @@ const getOrderPage = async () => {
 
   const result = await getMallOrderPage(queryParams.value)
 
-  result.list.forEach(order => handleOrderButtons(order))
+  // 获取赠品信息
+  const orderIds = result.list.map(e => e.id).join(',')
+  const data = await getLuckLotteryRecordByOrderIds(orderIds)
+  for (let i in data) {
+    const obj = result.list.find(e => e.id === Number(i))
+    obj.lottery = data[i]
+  }
+
+  result.list.forEach(async (order) => {
+    handleOrderButtons(order)
+  })
+
   orderList.value = result.list
   total.value = result.total
 }
@@ -161,7 +173,7 @@ const handleConfirm = ({ id }) => {
     Snackbar.success('收货成功')
     queryParams.value.pageNo = 1
     await getOrderPage()
-    handlePromptComment(id) // 收货成功后提示去评论
+    // handlePromptComment(id) // 收货成功后提示去评论
   })
 }
 

+ 2 - 2
src/views/recruit/personal/PersonalCenter/tradeOrder/index.vue

@@ -18,8 +18,8 @@ import { useRoute } from 'vue-router'
 const tab = ref(0)
 const items = shallowRef([
   { label: '余额充值、购买会员订单', value: 0, path: RechargeVipOrder },
-  { label: '商城交易订单', value: 1, path: MallOrder },
-  { label: '积分兑换记录', value: 2, path: PointExchangeRecord }
+  // { label: '商城交易订单', value: 1, path: MallOrder },
+  // { label: '积分兑换记录', value: 2, path: PointExchangeRecord }
 ])
 const route = useRoute()
 const { key } = route.query