Browse Source

【代码评审】商城:满减送活动的实现

YunaiV 10 months ago
parent
commit
3eeb55749d

+ 8 - 5
src/views/mall/promotion/rewardActivity/components/RewardRuleCouponShowcase.vue

@@ -40,7 +40,7 @@ import { isEmpty } from '@/utils/is'
 import { useVModel } from '@vueuse/core'
 import { useVModel } from '@vueuse/core'
 import { findIndex } from '@/utils'
 import { findIndex } from '@/utils'
 
 
-defineOptions({ name: 'RewardRuleCouponShowcase' })
+// TODO @puhui999:要不就叫 RewardRuleCouponSelect
 
 
 const props = defineProps<{
 const props = defineProps<{
   modelValue: RewardRule
   modelValue: RewardRule
@@ -58,11 +58,12 @@ interface GiveCouponVO extends CouponTemplateApi.CouponTemplateVO {
   giveCount?: number
   giveCount?: number
 }
 }
 
 
-const couponSelectRef = ref<InstanceType<typeof CouponSelect>>() // 优惠券选择
 /** 选择优惠券 */
 /** 选择优惠券 */
+const couponSelectRef = ref<InstanceType<typeof CouponSelect>>() // 优惠券选择
 const selectCoupon = () => {
 const selectCoupon = () => {
   couponSelectRef.value?.open()
   couponSelectRef.value?.open()
 }
 }
+
 /** 选择优惠券后的回调 */
 /** 选择优惠券后的回调 */
 const handleCouponChange = (val: CouponTemplateApi.CouponTemplateVO[]) => {
 const handleCouponChange = (val: CouponTemplateApi.CouponTemplateVO[]) => {
   for (const item of val) {
   for (const item of val) {
@@ -72,23 +73,24 @@ const handleCouponChange = (val: CouponTemplateApi.CouponTemplateVO[]) => {
     list.value.push(item)
     list.value.push(item)
   }
   }
 }
 }
+
 /** 删除优惠券 */
 /** 删除优惠券 */
 const deleteCoupon = (index: number) => {
 const deleteCoupon = (index: number) => {
   list.value.splice(index, 1)
   list.value.splice(index, 1)
 }
 }
 
 
-/** 初始化赠送的优惠券列表-如果有的话*/
+/** 初始化赠送的优惠券列表 */
 const initGiveCouponList = async () => {
 const initGiveCouponList = async () => {
+  // 朝赵优惠劵
   if (isEmpty(rewardRule.value) || isEmpty(rewardRule.value.couponIds)) {
   if (isEmpty(rewardRule.value) || isEmpty(rewardRule.value.couponIds)) {
     return
     return
   }
   }
-
   const data = await CouponTemplateApi.getCouponTemplateList(rewardRule.value.couponIds!)
   const data = await CouponTemplateApi.getCouponTemplateList(rewardRule.value.couponIds!)
   if (!data) {
   if (!data) {
     return
     return
   }
   }
 
 
-  for (let i = 0, len = data.length; i < len; i++) {
+  for (let i = 0; i < data.length; i++) {
     const coupon = data[i]
     const coupon = data[i]
     const index = findIndex(rewardRule.value.couponIds!, (item) => item.id === coupon.id)
     const index = findIndex(rewardRule.value.couponIds!, (item) => item.id === coupon.id)
     list.value.push({
     list.value.push({
@@ -110,6 +112,7 @@ const setGiveCouponList = () => {
     couponIds.push(list.value[i].id)
     couponIds.push(list.value[i].id)
     couponCounts.push(list.value[i].giveCount!)
     couponCounts.push(list.value[i].giveCount!)
   }
   }
+  // TODO @puhui999:可以考虑,直接使用 list 的 map 操作,简单一些。性能没啥差别的
   rewardRule.value.couponIds = couponIds
   rewardRule.value.couponIds = couponIds
   rewardRule.value.couponCounts = couponCounts
   rewardRule.value.couponCounts = couponCounts
 }
 }