Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0066d798
authored
Oct 01, 2023
by
owen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
签到:签到后增加用户积分、经验
parent
6508d841
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
18 deletions
+39
-18
src/api/member/signin/config/index.ts
+5
-4
src/views/member/signin/config/SignInConfigForm.vue
+32
-13
src/views/member/signin/config/index.vue
+2
-1
No files found.
src/api/member/signin/config/index.ts
View file @
0066d798
import
request
from
'@/config/axios'
export
interface
SignInConfigVO
{
id
:
number
day
:
number
|
null
point
:
number
|
null
enable
:
boolean
|
null
id
?:
number
day
?:
number
point
?:
number
experience
?:
number
status
?:
number
}
// 查询积分签到规则列表
...
...
src/views/member/signin/config/SignInConfigForm.vue
View file @
0066d798
...
...
@@ -13,8 +13,11 @@
只允许设置 1-7,默认签到 7 天为一个周期
</el-text>
</el-form-item>
<el-form-item
label=
"签到分数"
prop=
"point"
>
<el-input-number
v-model=
"formData.point"
:precision=
"0"
/>
<el-form-item
label=
"奖励积分"
prop=
"point"
>
<el-input-number
v-model=
"formData.point"
:min=
"0"
:precision=
"0"
/>
</el-form-item>
<el-form-item
label=
"奖励经验"
prop=
"experience"
>
<el-input-number
v-model=
"formData.experience"
:min=
"0"
:precision=
"0"
/>
</el-form-item>
<el-form-item
label=
"开启状态"
prop=
"status"
>
<el-radio-group
v-model=
"formData.status"
>
...
...
@@ -46,12 +49,30 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const
dialogTitle
=
ref
(
''
)
// 弹窗的标题
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const
formType
=
ref
(
''
)
// 表单的类型:create - 新增;update - 修改
const
formData
=
ref
({
id
:
undefined
,
day
:
undefined
,
point
:
undefined
const
formData
=
ref
<
SignInConfigApi
.
SignInConfigVO
>
({}
as
SignInConfigApi
.
SignInConfigVO
)
// 奖励校验规则
const
awardValidator
=
(
rule
:
any
,
_value
:
any
,
callback
:
any
)
=>
{
if
(
!
formData
.
value
.
point
&&
!
formData
.
value
.
experience
)
{
callback
(
new
Error
(
'奖励积分与奖励经验至少配置一个'
))
return
}
// 清除另一个字段的错误提示
const
otherAwardField
=
rule
?.
field
===
'point'
?
'experience'
:
'point'
formRef
.
value
.
validateField
(
otherAwardField
,
()
=>
null
)
callback
()
}
const
formRules
=
reactive
({
day
:
[{
required
:
true
,
message
:
'签到天数不能空'
,
trigger
:
'blur'
}],
point
:
[
{
required
:
true
,
message
:
'奖励积分不能空'
,
trigger
:
'blur'
},
{
validator
:
awardValidator
,
trigger
:
'blur'
}
],
experience
:
[
{
required
:
true
,
message
:
'奖励经验不能空'
,
trigger
:
'blur'
},
{
validator
:
awardValidator
,
trigger
:
'blur'
}
]
})
const
formRules
=
reactive
({})
const
formRef
=
ref
()
// 表单 Ref
/** 打开弹窗 */
...
...
@@ -82,14 +103,11 @@ const submitForm = async () => {
// 提交请求
formLoading
.
value
=
true
try
{
const
data
=
formData
.
value
as
unknown
as
SignInConfigApi
.
SignInConfigVO
if
(
formType
.
value
===
'create'
)
{
//默认新创建的自动启动
data
.
enable
=
true
await
SignInConfigApi
.
createSignInConfig
(
data
)
await
SignInConfigApi
.
createSignInConfig
(
formData
.
value
)
message
.
success
(
t
(
'common.createSuccess'
))
}
else
{
await
SignInConfigApi
.
updateSignInConfig
(
data
)
await
SignInConfigApi
.
updateSignInConfig
(
formData
.
value
)
message
.
success
(
t
(
'common.updateSuccess'
))
}
dialogVisible
.
value
=
false
...
...
@@ -105,7 +123,8 @@ const resetForm = () => {
formData
.
value
=
{
id
:
undefined
,
day
:
undefined
,
point
:
undefined
,
point
:
0
,
experience
:
0
,
status
:
CommonStatusEnum
.
ENABLE
}
formRef
.
value
?.
resetFields
()
...
...
src/views/member/signin/config/index.vue
View file @
0066d798
...
...
@@ -20,7 +20,8 @@
prop=
"day"
:formatter=
"(_, __, cellValue) => ['第', cellValue, '天'].join(' ')"
/>
<el-table-column
label=
"获得积分"
align=
"center"
prop=
"point"
/>
<el-table-column
label=
"奖励积分"
align=
"center"
prop=
"point"
/>
<el-table-column
label=
"奖励经验"
align=
"center"
prop=
"experience"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment