13
13
只允许设置 1-7,默认签到 7 天为一个周期
14
14
</el-text >
15
15
</el-form-item >
16
- <el-form-item label =" 签到分数" prop =" point" >
17
- <el-input-number v-model =" formData.point" :precision =" 0" />
16
+ <el-form-item label =" 奖励积分" prop =" point" >
17
+ <el-input-number v-model =" formData.point" :min =" 0" :precision =" 0" />
18
+ </el-form-item >
19
+ <el-form-item label =" 奖励经验" prop =" experience" >
20
+ <el-input-number v-model =" formData.experience" :min =" 0" :precision =" 0" />
18
21
</el-form-item >
19
22
<el-form-item label =" 开启状态" prop =" status" >
20
23
<el-radio-group v-model =" formData.status" >
@@ -46,12 +49,30 @@ const dialogVisible = ref(false) // 弹窗的是否展示
46
49
const dialogTitle = ref (' ' ) // 弹窗的标题
47
50
const formLoading = ref (false ) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
48
51
const formType = ref (' ' ) // 表单的类型:create - 新增;update - 修改
49
- const formData = ref ({
50
- id: undefined ,
51
- day: undefined ,
52
- point: undefined
52
+ const formData = ref <SignInConfigApi .SignInConfigVO >({} as SignInConfigApi .SignInConfigVO )
53
+ // 奖励校验规则
54
+ const awardValidator = (rule : any , _value : any , callback : any ) => {
55
+ if (! formData .value .point && ! formData .value .experience ) {
56
+ callback (new Error (' 奖励积分与奖励经验至少配置一个' ))
57
+ return
58
+ }
59
+
60
+ // 清除另一个字段的错误提示
61
+ const otherAwardField = rule ?.field === ' point' ? ' experience' : ' point'
62
+ formRef .value .validateField (otherAwardField , () => null )
63
+ callback ()
64
+ }
65
+ const formRules = reactive ({
66
+ day: [{ required: true , message: ' 签到天数不能空' , trigger: ' blur' }],
67
+ point: [
68
+ { required: true , message: ' 奖励积分不能空' , trigger: ' blur' },
69
+ { validator: awardValidator , trigger: ' blur' }
70
+ ],
71
+ experience: [
72
+ { required: true , message: ' 奖励经验不能空' , trigger: ' blur' },
73
+ { validator: awardValidator , trigger: ' blur' }
74
+ ]
53
75
})
54
- const formRules = reactive ({})
55
76
const formRef = ref () // 表单 Ref
56
77
57
78
/** 打开弹窗 */
@@ -82,14 +103,11 @@ const submitForm = async () => {
82
103
// 提交请求
83
104
formLoading .value = true
84
105
try {
85
- const data = formData .value as unknown as SignInConfigApi .SignInConfigVO
86
106
if (formType .value === ' create' ) {
87
- // 默认新创建的自动启动
88
- data .enable = true
89
- await SignInConfigApi .createSignInConfig (data )
107
+ await SignInConfigApi .createSignInConfig (formData .value )
90
108
message .success (t (' common.createSuccess' ))
91
109
} else {
92
- await SignInConfigApi .updateSignInConfig (data )
110
+ await SignInConfigApi .updateSignInConfig (formData . value )
93
111
message .success (t (' common.updateSuccess' ))
94
112
}
95
113
dialogVisible .value = false
@@ -105,7 +123,8 @@ const resetForm = () => {
105
123
formData .value = {
106
124
id: undefined ,
107
125
day: undefined ,
108
- point: undefined ,
126
+ point: 0 ,
127
+ experience: 0 ,
109
128
status: CommonStatusEnum .ENABLE
110
129
}
111
130
formRef .value ?.resetFields ()
0 commit comments