Skip to content

Commit 127e6b2

Browse files
committed
商城:
1. 修复拼团活动,修改商品的拼团价格,会存在 *100 的问题
1 parent ff8bde2 commit 127e6b2

File tree

7 files changed

+27
-30
lines changed

7 files changed

+27
-30
lines changed

src/api/mall/promotion/combination/combinationActivity.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ export interface CombinationActivityVO {
1010
startTime?: Date
1111
endTime?: Date
1212
userSize?: number
13-
totalNum?: number
14-
successNum?: number
13+
totalCount?: number
14+
successCount?: number
1515
orderUserCount?: number
1616
virtualGroup?: number
1717
status?: number
@@ -23,7 +23,7 @@ export interface CombinationActivityVO {
2323
export interface CombinationProductVO {
2424
spuId: number
2525
skuId: number
26-
activePrice: number // 拼团价格
26+
combinationPrice: number // 拼团价格
2727
}
2828

2929
// 扩展 Sku 配置

src/views/mall/promotion/combination/CombinationActivityForm.vue renamed to src/views/mall/promotion/combination/activity/CombinationActivityForm.vue

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<el-table-column align="center" label="拼团价格(元)" min-width="168">
2020
<template #default="{ row: sku }">
2121
<el-input-number
22-
v-model="sku.productConfig.activePrice"
22+
v-model="sku.productConfig.combinationPrice"
2323
:min="0"
2424
:precision="2"
2525
:step="0.1"
@@ -45,6 +45,7 @@ import { SpuAndSkuList, SpuProperty, SpuSelect } from '@/views/mall/promotion/co
4545
import { getPropertyList, RuleConfig } from '@/views/mall/product/spu/components'
4646
import * as ProductSpuApi from '@/api/mall/product/spu'
4747
import { convertToInteger, formatToFraction } from '@/utils'
48+
import { cloneDeep } from 'lodash-es'
4849
4950
defineOptions({ name: 'PromotionCombinationActivityForm' })
5051
@@ -65,8 +66,8 @@ const spuList = ref<CombinationActivityApi.SpuExtension[]>([]) // 选择的 spu
6566
const spuPropertyList = ref<SpuProperty<CombinationActivityApi.SpuExtension>[]>([])
6667
const ruleConfig: RuleConfig[] = [
6768
{
68-
name: 'productConfig.activePrice',
69-
rule: (arg) => arg > 0.01,
69+
name: 'productConfig.combinationPrice',
70+
rule: (arg) => arg >= 0.01,
7071
message: '商品拼团价格不能小于0.01 !!!'
7172
}
7273
]
@@ -98,13 +99,12 @@ const getSpuDetails = async (
9899
let config: CombinationProductVO = {
99100
spuId: spu.id!,
100101
skuId: sku.id!,
101-
activePrice: 0
102+
combinationPrice: 0
102103
}
103104
if (typeof products !== 'undefined') {
104105
const product = products.find((item) => item.skuId === sku.id)
105106
if (product) {
106-
// 分转元
107-
product.activePrice = formatToFraction(product.activePrice)
107+
product.combinationPrice = formatToFraction(product.combinationPrice)
108108
}
109109
config = product || config
110110
}
@@ -162,13 +162,14 @@ const submitForm = async () => {
162162
// 提交请求
163163
formLoading.value = true
164164
try {
165-
const data = formRef.value.formModel as CombinationActivityApi.CombinationActivityVO
166-
const products = spuAndSkuListRef.value.getSkuConfigs('productConfig')
167-
products.forEach((item: CombinationProductVO) => {
168-
// 拼团价格元转分
169-
item.activePrice = convertToInteger(item.activePrice)
165+
// 获得拼团商品配置
166+
const products = cloneDeep(spuAndSkuListRef.value.getSkuConfigs('productConfig'))
167+
products.forEach((item: CombinationActivityApi.CombinationProductVO) => {
168+
item.combinationPrice = convertToInteger(item.combinationPrice)
170169
})
170+
const data = formRef.value.formModel as CombinationActivityApi.CombinationActivityVO
171171
data.products = products
172+
// 真正提交
172173
if (formType.value === 'create') {
173174
await CombinationActivityApi.createCombinationActivity(data)
174175
message.success(t('common.createSuccess'))

src/views/mall/promotion/combination/combinationActivity.data.ts renamed to src/views/mall/promotion/combination/activity/combinationActivity.data.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,13 @@ const crudSchemas = reactive<CrudSchema[]>([
122122
},
123123
{
124124
label: '开团组数',
125-
field: 'totalNum',
125+
field: 'totalCount',
126126
isSearch: false,
127127
isForm: false
128128
},
129129
{
130130
label: '成团组数',
131-
field: 'successNum',
131+
field: 'successCount',
132132
isSearch: false,
133133
isForm: false
134134
},

src/views/mall/promotion/combination/index.vue renamed to src/views/mall/promotion/combination/activity/index.vue

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<template>
2+
<doc-alert title="功能开启" url="https://doc.iocoder.cn/mall/build/" />
3+
24
<!-- 搜索工作栏 -->
35
<ContentWrap>
46
<Search :schema="allSchemas.searchSchema" @reset="setSearchParams" @search="setSearchParams">
@@ -10,8 +12,7 @@
1012
type="primary"
1113
@click="openForm('create')"
1214
>
13-
<Icon class="mr-5px" icon="ep:plus" />
14-
新增
15+
<Icon class="mr-5px" icon="ep:plus" /> 新增
1516
</el-button>
1617
</template>
1718
</Search>
@@ -65,7 +66,7 @@
6566
import { allSchemas } from './combinationActivity.data'
6667
import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationActivity'
6768
import CombinationActivityForm from './CombinationActivityForm.vue'
68-
import { cloneDeep } from 'lodash-es'
69+
import { sortTableColumns } from '@/hooks/web/useCrudSchemas'
6970
import { createImageViewer } from '@/components/ImageViewer'
7071
7172
defineOptions({ name: 'PromotionCombinationActivity' })
@@ -100,17 +101,8 @@ const handleDelete = (id: number) => {
100101
101102
/** 初始化 **/
102103
onMounted(() => {
103-
/**
104-
TODO
105-
后面准备封装成一个函数来操作 tableColumns 重新排列:比如说需求是表单上商品选择是在后面的而列表展示的时候需要调到位置。
106-
封装效果支持批量操作,给出 field 和需要插入的位置,例:[{field:'spuId',index: 1}] 效果为把 field 为 spuId 的 column 移动到第一个位置
107-
*/
108-
// 处理一下表格列让商品往前
109-
const index = allSchemas.tableColumns.findIndex((item) => item.field === 'spuId')
110-
const column = cloneDeep(allSchemas.tableColumns[index])
111-
allSchemas.tableColumns.splice(index, 1)
112-
// 添加到开头
113-
allSchemas.tableColumns.unshift(column)
104+
// 获得活动列表
105+
sortTableColumns(allSchemas.tableColumns, 'spuId')
114106
getList()
115107
})
116108
</script>

src/views/mall/promotion/combination/record/index.vue

Whitespace-only changes.

src/views/mall/promotion/seckill/activity/index.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<template>
2+
<doc-alert title="功能开启" url="https://doc.iocoder.cn/mall/build/" />
3+
24
<!-- 搜索工作栏 -->
35
<ContentWrap>
46
<Search :schema="allSchemas.searchSchema" @reset="setSearchParams" @search="setSearchParams">

src/views/mall/promotion/seckill/config/index.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<template>
2+
<doc-alert title="功能开启" url="https://doc.iocoder.cn/mall/build/" />
3+
24
<!-- 搜索工作栏 -->
35
<ContentWrap>
46
<Search :schema="allSchemas.searchSchema" @reset="setSearchParams" @search="setSearchParams">

0 commit comments

Comments
 (0)