feat(admin): 增加注册限流配置项

This commit is contained in:
Zhou Weidong committed 2026-10-17 23:28:40 +08:00
1 parent 3ec9ea6717
commit 54db082ffb
1 file changed
+17 -1
+17 -1
View File
@@ -12,12 +12,19 @@ const loading = ref(false)
const saving = ref(false)
const workspaceName = ref('')
const defaultStatus = ref('draft')
const registerMaxPerIp = ref(5)
const registerMaxPerDevice = ref(3)
const statusOptions = [
{ code: 'draft', text: '草稿' },
{ code: 'reviewing', text: '待审核' }
]
const parseRegisterLimit = (value, fallback) => {
const parsed = Number.parseInt(value ?? '', 10)
return Number.isFinite(parsed) ? parsed : fallback
}
async function load() {
loading.value = true
try {
@@ -25,6 +32,8 @@ async function load() {
const map = Object.fromEntries((res.data || []).map((item) => [item.key, item.value]))
workspaceName.value = map['workspace.name'] || ''
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 {
loading.value = false
}
@@ -35,7 +44,9 @@ async function save() {
try {
await updateConfigsApi({
'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('设置已保存')
} finally {
@@ -62,6 +73,11 @@ onMounted(load)
:key="item.code"
:label="item.text"
: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
></el-form