商城:

1. 修复秒杀活动,修改商品的秒杀价格,会存在 *100 的问题
This commit is contained in:
YunaiV
2023-08-12 16:25:05 +08:00
parent 9984de0dc7
commit ff8bde207d
4 changed files with 35 additions and 31 deletions

View File

@ -45,6 +45,7 @@
<script lang="ts" setup>
import { SpuAndSkuList, SpuProperty, SpuSelect } from '../../components'
import { allSchemas, rules } from './seckillActivity.data'
import { cloneDeep } from 'lodash-es'
import * as SeckillActivityApi from '@/api/mall/promotion/seckill/seckillActivity'
import { SeckillProductVO } from '@/api/mall/promotion/seckill/seckillActivity'
@ -70,13 +71,13 @@ const spuAndSkuListRef = ref() // sku 秒杀配置组件Ref
const ruleConfig: RuleConfig[] = [
{
name: 'productConfig.stock',
rule: (arg) => arg > 1,
message: '商品秒杀库存必须大于 1 '
rule: (arg) => arg >= 1,
message: '商品秒杀库存必须大于等于 1 '
},
{
name: 'productConfig.seckillPrice',
rule: (arg) => arg > 0.01,
message: '商品秒杀价格必须大于 0.01 '
rule: (arg) => arg >= 0.01,
message: '商品秒杀价格必须大于等于 0.01 '
}
]
const spuList = ref<SeckillActivityApi.SpuExtension[]>([]) // 选择的 spu
@ -112,7 +113,6 @@ const getSpuDetails = async (
if (typeof products !== 'undefined') {
const product = products.find((item) => item.skuId === sku.id)
if (product) {
// 分转元
product.seckillPrice = formatToFraction(product.seckillPrice)
}
config = product || config
@ -153,13 +153,6 @@ const open = async (type: string, id?: number) => {
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
/** 重置表单 */
const resetForm = async () => {
spuList.value = []
spuPropertyList.value = []
await nextTick()
formRef.value.getElFormRef().resetFields()
}
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {
@ -170,14 +163,14 @@ const submitForm = async () => {
// 提交请求
formLoading.value = true
try {
const data = formRef.value.formModel as SeckillActivityApi.SeckillActivityVO
const products = spuAndSkuListRef.value.getSkuConfigs('productConfig')
// 获取秒杀商品配置
const products = cloneDeep(spuAndSkuListRef.value.getSkuConfigs('productConfig'))
products.forEach((item: SeckillProductVO) => {
// 秒杀价格元转分
item.seckillPrice = convertToInteger(item.seckillPrice)
})
// 获取秒杀商品配置
const data = formRef.value.formModel as SeckillActivityApi.SeckillActivityVO
data.products = products
// 真正提交
if (formType.value === 'create') {
await SeckillActivityApi.createSeckillActivity(data)
message.success(t('common.createSuccess'))
@ -192,6 +185,15 @@ const submitForm = async () => {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = async () => {
spuList.value = []
spuPropertyList.value = []
await nextTick()
formRef.value.getElFormRef().resetFields()
}
// TODO @puhui999下面的 css 名字是不是可以改下demo-table-expand
</script>
<style lang="scss" scoped>
.demo-table-expand {