1
1
<template >
2
2
<el-form ref =" OtherSettingsFormRef" :model =" formData" :rules =" rules" label-width =" 120px" >
3
3
<el-row >
4
- <!-- TODO @puhui999:横着三个哈 -->
4
+ <!-- TODO @puhui999:横着三个哈 fix -->
5
5
<el-col :span =" 24" >
6
- <el-col :span =" 8" >
7
- <el-form-item label =" 商品排序" prop =" sort" >
8
- <el-input-number v-model =" formData.sort" :min =" 0" />
9
- </el-form-item >
10
- </el-col >
11
- <el-col :span =" 8" >
12
- <el-form-item label =" 赠送积分" prop =" giveIntegral" >
13
- <el-input-number v-model =" formData.giveIntegral" :min =" 0" />
14
- </el-form-item >
15
- </el-col >
16
- <el-col :span =" 8" >
17
- <el-form-item label =" 虚拟销量" prop =" virtualSalesCount" >
18
- <el-input-number
19
- v-model =" formData.virtualSalesCount"
20
- :min =" 0"
21
- placeholder =" 请输入虚拟销量"
22
- />
23
- </el-form-item >
24
- </el-col >
6
+ <el-row :gutter =" 20" >
7
+ <el-col :span =" 8" >
8
+ <el-form-item label =" 商品排序" prop =" sort" >
9
+ <el-input-number v-model =" formData.sort" :min =" 0" />
10
+ </el-form-item >
11
+ </el-col >
12
+ <el-col :span =" 8" >
13
+ <el-form-item label =" 赠送积分" prop =" giveIntegral" >
14
+ <el-input-number v-model =" formData.giveIntegral" :min =" 0" />
15
+ </el-form-item >
16
+ </el-col >
17
+ <el-col :span =" 8" >
18
+ <el-form-item label =" 虚拟销量" prop =" virtualSalesCount" >
19
+ <el-input-number
20
+ v-model =" formData.virtualSalesCount"
21
+ :min =" 0"
22
+ placeholder =" 请输入虚拟销量"
23
+ />
24
+ </el-form-item >
25
+ </el-col >
26
+ </el-row >
25
27
</el-col >
26
28
<el-col :span =" 24" >
27
29
<el-form-item label =" 商品推荐" >
28
30
<el-checkbox-group v-model =" checkboxGroup" @change =" onChangeGroup" >
29
- <el-checkbox v-for =" (item, index) in recommend " :key =" index" :label =" item.value" >
31
+ <el-checkbox v-for =" (item, index) in recommendOptions " :key =" index" :label =" item.value" >
30
32
{{ item.name }}
31
33
</el-checkbox >
32
34
</el-checkbox-group >
51
53
</el-form >
52
54
</template >
53
55
<script lang="ts" name="OtherSettingsForm" setup>
54
- import type { SpuType } from ' @/api/mall/product/management/type/spuType '
56
+ import type { SpuType } from ' @/api/mall/product/spu '
55
57
import { PropType } from ' vue'
56
58
import { copyValueToTarget } from ' @/utils'
57
59
import { propTypes } from ' @/utils/propTypes'
@@ -65,34 +67,7 @@ const props = defineProps({
65
67
},
66
68
activeName: propTypes .string .def (' ' )
67
69
})
68
- // 商品推荐选项 TODO @puhui999:这种叫 recommendOptions 会更合适哈
69
- const recommend = [
70
- { name: ' 是否热卖' , value: ' recommendHot' },
71
- { name: ' 是否优惠' , value: ' recommendBenefit' },
72
- { name: ' 是否精品' , value: ' recommendBest' },
73
- { name: ' 是否新品' , value: ' recommendNew' },
74
- { name: ' 是否优品' , value: ' recommendGood' }
75
- ]
76
- const checkboxGroup = ref <string []>([' recommendHot' ]) // 选中推荐选项
77
- /** 选择商品后赋值 */
78
- const onChangeGroup = () => {
79
- // TODO @puhui999:是不是可以遍历 recommend,然后进行是否选中;
80
- checkboxGroup .value .includes (' recommendHot' )
81
- ? (formData .value .recommendHot = true )
82
- : (formData .value .recommendHot = false )
83
- checkboxGroup .value .includes (' recommendBenefit' )
84
- ? (formData .value .recommendBenefit = true )
85
- : (formData .value .recommendBenefit = false )
86
- checkboxGroup .value .includes (' recommendBest' )
87
- ? (formData .value .recommendBest = true )
88
- : (formData .value .recommendBest = false )
89
- checkboxGroup .value .includes (' recommendNew' )
90
- ? (formData .value .recommendNew = true )
91
- : (formData .value .recommendNew = false )
92
- checkboxGroup .value .includes (' recommendGood' )
93
- ? (formData .value .recommendGood = true )
94
- : (formData .value .recommendGood = false )
95
- }
70
+
96
71
const OtherSettingsFormRef = ref () // 表单Ref
97
72
// 表单数据
98
73
const formData = ref <SpuType >({
@@ -111,6 +86,23 @@ const rules = reactive({
111
86
giveIntegral: [required ],
112
87
virtualSalesCount: [required ]
113
88
})
89
+ // TODO @puhui999:这种叫 recommendOptions 会更合适哈 fix
90
+ const recommendOptions = [
91
+ { name: ' 是否热卖' , value: ' recommendHot' },
92
+ { name: ' 是否优惠' , value: ' recommendBenefit' },
93
+ { name: ' 是否精品' , value: ' recommendBest' },
94
+ { name: ' 是否新品' , value: ' recommendNew' },
95
+ { name: ' 是否优品' , value: ' recommendGood' }
96
+ ] // 商品推荐选项
97
+ const checkboxGroup = ref <string []>([]) // 选中的推荐选项
98
+
99
+ /** 选择商品后赋值 */
100
+ const onChangeGroup = () => {
101
+ // TODO @puhui999:是不是可以遍历 recommend,然后进行是否选中;fix
102
+ recommendOptions .forEach (({ value }) => {
103
+ formData .value [value ] = checkboxGroup .value .includes (value ) ? true : false
104
+ })
105
+ }
114
106
115
107
/**
116
108
* 将传进来的值赋值给formData
@@ -120,13 +112,6 @@ watch(
120
112
(data ) => {
121
113
if (! data ) return
122
114
copyValueToTarget (formData .value , data )
123
- // TODO 如果先修改其他设置的值,再改变商品详情或是商品信息会重置其他设置页面中的相关值 下一个版本修复
124
- checkboxGroup .value = []
125
- formData .value .recommendHot ? checkboxGroup .value .push (' recommendHot' ) : ' '
126
- formData .value .recommendBenefit ? checkboxGroup .value .push (' recommendBenefit' ) : ' '
127
- formData .value .recommendBest ? checkboxGroup .value .push (' recommendBest' ) : ' '
128
- formData .value .recommendNew ? checkboxGroup .value .push (' recommendNew' ) : ' '
129
- formData .value .recommendGood ? checkboxGroup .value .push (' recommendGood' ) : ' '
130
115
},
131
116
{
132
117
deep: true ,
@@ -154,4 +139,14 @@ const validate = async () => {
154
139
})
155
140
}
156
141
defineExpose ({ validate })
142
+ onMounted (async () => {
143
+ await nextTick ()
144
+ // TODO 如果先修改其他设置的值,再改变商品详情或是商品信息会重置其他设置页面中的相关值 fix:已修复,改为组件初始化时赋值
145
+ checkboxGroup .value = []
146
+ recommendOptions .forEach (({ value }) => {
147
+ if (formData .value [value ]) {
148
+ checkboxGroup .value .push (value )
149
+ }
150
+ })
151
+ })
157
152
</script >
0 commit comments