fix: mall SeckillConfig

This commit is contained in:
puhui999 2023-07-10 16:39:22 +08:00
parent b67fabcf1f
commit 3fd9f1b43e
4 changed files with 41 additions and 11 deletions

View File

@ -5,7 +5,7 @@ export interface SeckillConfigVO {
name: string name: string
startTime: string startTime: string
endTime: string endTime: string
picUrl: string sliderPicUrls: string[]
status: number status: number
} }

View File

@ -10,6 +10,7 @@
<script lang="ts" name="SeckillConfigForm" setup> <script lang="ts" name="SeckillConfigForm" setup>
import * as SeckillConfigApi from '@/api/mall/promotion/seckill/seckillConfig' import * as SeckillConfigApi from '@/api/mall/promotion/seckill/seckillConfig'
import { allSchemas, rules } from './seckillConfig.data' import { allSchemas, rules } from './seckillConfig.data'
import { cloneDeep } from 'lodash-es'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -30,6 +31,9 @@ const open = async (type: string, id?: number) => {
formLoading.value = true formLoading.value = true
try { try {
const data = await SeckillConfigApi.getSeckillConfig(id) const data = await SeckillConfigApi.getSeckillConfig(id)
data.sliderPicUrls = data['sliderPicUrls']?.map((item) => ({
url: item
}))
formRef.value.setValues(data) formRef.value.setValues(data)
} finally { } finally {
formLoading.value = false formLoading.value = false
@ -48,12 +52,20 @@ const submitForm = async () => {
// //
formLoading.value = true formLoading.value = true
try { try {
//
const data = formRef.value.formModel as SeckillConfigApi.SeckillConfigVO const data = formRef.value.formModel as SeckillConfigApi.SeckillConfigVO
const cloneData = cloneDeep(data)
const newSliderPicUrls = []
cloneData.sliderPicUrls.forEach((item) => {
//
typeof item === 'object' ? newSliderPicUrls.push(item.url) : newSliderPicUrls.push(item)
})
cloneData.sliderPicUrls = newSliderPicUrls
if (formType.value === 'create') { if (formType.value === 'create') {
await SeckillConfigApi.createSeckillConfig(data) await SeckillConfigApi.createSeckillConfig(cloneData)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
} else { } else {
await SeckillConfigApi.updateSeckillConfig(data) await SeckillConfigApi.updateSeckillConfig(cloneData)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))
} }
dialogVisible.value = false dialogVisible.value = false

View File

@ -29,8 +29,14 @@
total: tableObject.total total: tableObject.total
}" }"
> >
<template #picUrl="{ row }"> <template #sliderPicUrls="{ row }">
<el-image :src="row.picUrl" class="w-30px h-30px" @click="imagePreview(row.picUrl)" /> <el-image
v-for="(item, index) in row.sliderPicUrls"
:key="index"
:src="item"
class="w-60px h-60px mr-10px"
@click="imagePreview(row.sliderPicUrls)"
/>
</template> </template>
<template #status="{ row }"> <template #status="{ row }">
<el-switch <el-switch
@ -70,6 +76,7 @@ import * as SeckillConfigApi from '@/api/mall/promotion/seckill/seckillConfig'
import SeckillConfigForm from './SeckillConfigForm.vue' import SeckillConfigForm from './SeckillConfigForm.vue'
import { createImageViewer } from '@/components/ImageViewer' import { createImageViewer } from '@/components/ImageViewer'
import { CommonStatusEnum } from '@/utils/constants' import { CommonStatusEnum } from '@/utils/constants'
import { isArray } from '@/utils/is'
const message = useMessage() // const message = useMessage() //
// tableObject // tableObject
@ -82,10 +89,18 @@ const { tableObject, tableMethods } = useTable({
// //
const { getList, setSearchParams } = tableMethods const { getList, setSearchParams } = tableMethods
/** 商品图预览 */ /** 轮播图预览预览 */
const imagePreview = (imgUrl: string) => { const imagePreview = (args) => {
const urlList = []
if (isArray(args)) {
args.forEach((item) => {
urlList.push(item)
})
} else {
urlList.push(args)
}
createImageViewer({ createImageViewer({
urlList: [imgUrl] urlList
}) })
} }

View File

@ -46,11 +46,14 @@ const crudSchemas = reactive<CrudSchema[]>([
} }
}, },
{ {
label: '秒杀图', label: '秒杀轮播图',
field: 'picUrl', field: 'sliderPicUrls',
isSearch: false, isSearch: false,
form: { form: {
component: 'UploadImg' component: 'UploadImgs'
},
table: {
width: 300
} }
}, },
{ {