Prechádzať zdrojové kódy

商城:
1. 调整优惠劵的目录
2. 简化秒杀时间配置

YunaiV 1 rok pred
rodič
commit
9984de0dc7

+ 0 - 0
src/api/mall/promotion/coupon.ts → src/api/mall/promotion/coupon/coupon.ts


+ 0 - 0
src/api/mall/promotion/couponTemplate.ts → src/api/mall/promotion/coupon/couponTemplate.ts


+ 1 - 1
src/api/mall/promotion/seckill/seckillConfig.ts

@@ -20,7 +20,7 @@ export const getSeckillConfig = async (id: number) => {
 }
 
 // 获得所有开启状态的秒杀时段精简列表
-export const getListAllSimple = async () => {
+export const getSimpleSeckillConfigList = async () => {
   return await request.get({ url: '/promotion/seckill-config/list-all-simple' })
 }
 

+ 2 - 4
src/views/mall/promotion/coupon/index.vue

@@ -31,9 +31,7 @@
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="handleQuery">
-          <Icon icon="ep:search" class="mr-5px" /> 搜索
-        </el-button>
+        <el-button @click="handleQuery"> <Icon icon="ep:search" class="mr-5px" />搜索 </el-button>
         <el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" />重置 </el-button>
       </el-form-item>
     </el-form>
@@ -108,7 +106,7 @@
 </template>
 
 <script setup lang="ts" name="PromotionCoupon">
-import { deleteCoupon, getCouponPage } from '@/api/mall/promotion/coupon'
+import { deleteCoupon, getCouponPage } from '@/api/mall/promotion/coupon/coupon'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 

+ 1 - 1
src/views/mall/promotion/couponTemplate/CouponTemplateForm.vue → src/views/mall/promotion/coupon/template/CouponTemplateForm.vue

@@ -187,7 +187,7 @@
 </template>
 <script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
-import * as CouponTemplateApi from '@/api/mall/promotion/couponTemplate'
+import * as CouponTemplateApi from '@/api/mall/promotion/coupon/couponTemplate'
 import * as ProductSpuApi from '@/api/mall/product/spu'
 import {
   CouponTemplateValidityTypeEnum,

+ 2 - 4
src/views/mall/promotion/couponTemplate/index.vue → src/views/mall/promotion/coupon/template/index.vue

@@ -61,9 +61,7 @@
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="handleQuery">
-          <Icon icon="ep:search" class="mr-5px" /> 搜索
-        </el-button>
+        <el-button @click="handleQuery"> <Icon icon="ep:search" class="mr-5px" />搜索 </el-button>
         <el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" />重置 </el-button>
         <el-button
           v-hasPermi="['promotion:coupon-template:create']"
@@ -172,7 +170,7 @@
 </template>
 
 <script lang="ts" setup>
-import * as CouponTemplateApi from '@/api/mall/promotion/couponTemplate'
+import * as CouponTemplateApi from '@/api/mall/promotion/coupon/couponTemplate'
 import {
   CommonStatusEnum,
   CouponTemplateValidityTypeEnum,

+ 2 - 2
src/views/mall/promotion/seckill/activity/index.vue

@@ -71,7 +71,7 @@
 </template>
 <script lang="ts" setup>
 import { allSchemas } from './seckillActivity.data'
-import { getListAllSimple } from '@/api/mall/promotion/seckill/seckillConfig'
+import { getSimpleSeckillConfigList } from '@/api/mall/promotion/seckill/seckillConfig'
 import * as SeckillActivityApi from '@/api/mall/promotion/seckill/seckillActivity'
 import SeckillActivityForm from './SeckillActivityForm.vue'
 import { cloneDeep } from 'lodash-es'
@@ -132,6 +132,6 @@ onMounted(async () => {
   // 添加到开头
   allSchemas.tableColumns.unshift(column)
   await getList()
-  configList.value = await getListAllSimple()
+  configList.value = await getSimpleSeckillConfigList()
 })
 </script>

+ 2 - 2
src/views/mall/promotion/seckill/activity/seckillActivity.data.ts

@@ -1,6 +1,6 @@
 import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
 import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
-import { getListAllSimple } from '@/api/mall/promotion/seckill/seckillConfig'
+import { getSimpleSeckillConfigList } from '@/api/mall/promotion/seckill/seckillConfig'
 
 // 表单校验
 export const rules = reactive({
@@ -88,7 +88,7 @@ const crudSchemas = reactive<CrudSchema[]>([
           valueField: 'id'
         }
       },
-      api: getListAllSimple
+      api: getSimpleSeckillConfigList
     },
     table: {
       width: 300

+ 11 - 9
src/views/mall/promotion/seckill/config/SeckillConfigForm.vue

@@ -10,7 +10,6 @@
 <script lang="ts" name="SeckillConfigForm" setup>
 import * as SeckillConfigApi from '@/api/mall/promotion/seckill/seckillConfig'
 import { allSchemas, rules } from './seckillConfig.data'
-import { cloneDeep } from 'lodash-es'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -53,19 +52,22 @@ const submitForm = async () => {
   formLoading.value = true
   try {
     // 处理轮播图列表
-    const data = formRef.value.formModel as SeckillConfigApi.SeckillConfigVO
-    const cloneData = cloneDeep(data)
-    const newSliderPicUrls = []
-    cloneData.sliderPicUrls.forEach((item) => {
+    const sliderPicUrls = []
+    formRef.value.formModel.sliderPicUrls.forEach((item) => {
       // 如果是前端选的图
-      typeof item === 'object' ? newSliderPicUrls.push(item.url) : newSliderPicUrls.push(item)
+      typeof item === 'object' ? sliderPicUrls.push(item.url) : sliderPicUrls.push(item)
     })
-    cloneData.sliderPicUrls = newSliderPicUrls
+
+    // 真正提交
+    const data = {
+      ...formRef.value.formModel,
+      sliderPicUrls
+    } as SeckillConfigApi.SeckillConfigVO
     if (formType.value === 'create') {
-      await SeckillConfigApi.createSeckillConfig(cloneData)
+      await SeckillConfigApi.createSeckillConfig(data)
       message.success(t('common.createSuccess'))
     } else {
-      await SeckillConfigApi.updateSeckillConfig(cloneData)
+      await SeckillConfigApi.updateSeckillConfig(data)
       message.success(t('common.updateSuccess'))
     }
     dialogVisible.value = false

+ 8 - 16
src/views/mall/promotion/seckill/config/index.vue

@@ -76,7 +76,6 @@ import * as SeckillConfigApi from '@/api/mall/promotion/seckill/seckillConfig'
 import SeckillConfigForm from './SeckillConfigForm.vue'
 import { createImageViewer } from '@/components/ImageViewer'
 import { CommonStatusEnum } from '@/utils/constants'
-import { isArray } from '@/utils/is'
 
 const message = useMessage() // 消息弹窗
 // tableObject:表格的属性对象,可获得分页大小、条数等属性
@@ -89,21 +88,6 @@ const { tableObject, tableMethods } = useTable({
 // 获得表格的各种操作
 const { getList, setSearchParams } = tableMethods
 
-/** 轮播图预览预览 */
-const imagePreview = (args) => {
-  const urlList = []
-  if (isArray(args)) {
-    args.forEach((item) => {
-      urlList.push(item)
-    })
-  } else {
-    urlList.push(args)
-  }
-  createImageViewer({
-    urlList
-  })
-}
-
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (type: string, id?: number) => {
@@ -131,6 +115,14 @@ const handleStatusChange = async (row: SeckillConfigApi.SeckillConfigVO) => {
       row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE
   }
 }
+
+/** 轮播图预览预览 */
+const imagePreview = (args) => {
+  createImageViewer({
+    urlList: args
+  })
+}
+
 /** 初始化 **/
 onMounted(() => {
   getList()