feat(admin): 增加注册限流配置项
This commit is contained in:
1 parent
3ec9ea6717
commit
54db082ffb
1 file changed
+17
-1
@@ -12,12 +12,19 @@ const loading = ref(false)
|
|||||||
const saving = ref(false)
|
const saving = ref(false)
|
||||||
const workspaceName = ref('')
|
const workspaceName = ref('')
|
||||||
const defaultStatus = ref('draft')
|
const defaultStatus = ref('draft')
|
||||||
|
const registerMaxPerIp = ref(5)
|
||||||
|
const registerMaxPerDevice = ref(3)
|
||||||
|
|
||||||
const statusOptions = [
|
const statusOptions = [
|
||||||
{ code: 'draft', text: '草稿' },
|
{ code: 'draft', text: '草稿' },
|
||||||
{ code: 'reviewing', text: '待审核' }
|
{ code: 'reviewing', text: '待审核' }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const parseRegisterLimit = (value, fallback) => {
|
||||||
|
const parsed = Number.parseInt(value ?? '', 10)
|
||||||
|
return Number.isFinite(parsed) ? parsed : fallback
|
||||||
|
}
|
||||||
|
|
||||||
async function load() {
|
async function load() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
@@ -25,6 +32,8 @@ async function load() {
|
|||||||
const map = Object.fromEntries((res.data || []).map((item) => [item.key, item.value]))
|
const map = Object.fromEntries((res.data || []).map((item) => [item.key, item.value]))
|
||||||
workspaceName.value = map['workspace.name'] || ''
|
workspaceName.value = map['workspace.name'] || ''
|
||||||
defaultStatus.value = map['content.default-status'] || 'draft'
|
defaultStatus.value = map['content.default-status'] || 'draft'
|
||||||
|
registerMaxPerIp.value = parseRegisterLimit(map['app.register.max-per-ip-per-day'], 5)
|
||||||
|
registerMaxPerDevice.value = parseRegisterLimit(map['app.register.max-per-device-per-day'], 3)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
@@ -35,7 +44,9 @@ async function save() {
|
|||||||
try {
|
try {
|
||||||
await updateConfigsApi({
|
await updateConfigsApi({
|
||||||
'workspace.name': workspaceName.value,
|
'workspace.name': workspaceName.value,
|
||||||
'content.default-status': defaultStatus.value
|
'content.default-status': defaultStatus.value,
|
||||||
|
'app.register.max-per-ip-per-day': String(registerMaxPerIp.value),
|
||||||
|
'app.register.max-per-device-per-day': String(registerMaxPerDevice.value)
|
||||||
})
|
})
|
||||||
ElMessage.success('设置已保存')
|
ElMessage.success('设置已保存')
|
||||||
} finally {
|
} finally {
|
||||||
@@ -62,6 +73,11 @@ onMounted(load)
|
|||||||
:key="item.code"
|
:key="item.code"
|
||||||
:label="item.text"
|
:label="item.text"
|
||||||
:value="item.code" /></el-select></el-form-item
|
:value="item.code" /></el-select></el-form-item
|
||||||
|
><el-divider content-position="left">注册频控</el-divider
|
||||||
|
><el-form-item label="单 IP 24 小时注册上限(0 或负数表示不限制)"
|
||||||
|
><el-input-number v-model="registerMaxPerIp" :step="1" :precision="0" /></el-form-item
|
||||||
|
><el-form-item label="单设备 24 小时注册上限(0 或负数表示不限制)"
|
||||||
|
><el-input-number v-model="registerMaxPerDevice" :step="1" :precision="0" /></el-form-item
|
||||||
><el-button type="primary" :loading="saving" :disabled="!can('system:role')" @click="save"
|
><el-button type="primary" :loading="saving" :disabled="!can('system:role')" @click="save"
|
||||||
>保存设置</el-button
|
>保存设置</el-button
|
||||||
></el-form
|
></el-form
|
||||||
|
|||||||
Reference in new issue
Block a user