新增登录页图形验证码功能,支持通过Redis全局配置控制验证码的启用状态,优化登录流程以提升用户体验。新增相关API接口和前端配置项,确保验证码逻辑与后端同步。

This commit is contained in:
geht
2026-04-20 14:21:36 +08:00
parent 7a648b20be
commit 73426a7af3
23 changed files with 450 additions and 103 deletions

View File

@@ -4,6 +4,7 @@ import { computed } from 'vue';
import { useAppStore } from '/@/store/modules/app';
import { ContentEnum, ThemeEnum } from '/@/enums/appEnum';
import projectSetting from '/@/settings/projectSetting';
type RootSetting = Omit<ProjectConfig, 'locale' | 'headerSetting' | 'menuSetting' | 'multiTabsSetting'>;
@@ -45,6 +46,18 @@ export function useRootSetting() {
const getGrayMode = computed(() => appStore.getProjectConfig.grayMode);
// 代码逻辑说明: 【QQYUN-10952】AI助手支持通过设置来配置是否显示
const getAiIconShow = computed(() => appStore.getProjectConfig.aiIconShow);
/** 与 projectSetting 默认合并:旧缓存无该字段时不再误判为「开启验证码」;兼容异常字符串缓存 */
const getLoginCaptchaEnabled = computed(() => {
const v = appStore.getProjectConfig.loginCaptchaEnabled;
if (v === undefined || v === null) {
return projectSetting.loginCaptchaEnabled;
}
if (typeof v === 'string') {
const s = v.trim().toLowerCase();
return s === 'true' || s === '1';
}
return Boolean(v);
});
const getLockTime = computed(() => appStore.getProjectConfig.lockTime);
const getShowDarkModeToggle = computed(() => appStore.getProjectConfig.showDarkModeToggle);
@@ -86,5 +99,6 @@ export function useRootSetting() {
setDarkMode,
getShowDarkModeToggle,
getAiIconShow,
getLoginCaptchaEnabled,
};
}