diff --git a/src/assets/svg-icon/maxkey.svg b/src/assets/svg-icon/maxkey.svg new file mode 100644 index 00000000..f8f8a7d8 --- /dev/null +++ b/src/assets/svg-icon/maxkey.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/svg-icon/topiam.svg b/src/assets/svg-icon/topiam.svg new file mode 100644 index 00000000..e7ea0577 --- /dev/null +++ b/src/assets/svg-icon/topiam.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/custom/button-icon.vue b/src/components/custom/button-icon.vue index fc1f3399..c8ebf7bc 100644 --- a/src/components/custom/button-icon.vue +++ b/src/components/custom/button-icon.vue @@ -13,6 +13,8 @@ interface Props { class?: string; /** Iconify icon name */ icon?: string; + /** Local icon name */ + localIcon?: string; /** Tooltip content */ tooltipContent?: string; /** Tooltip placement */ @@ -25,6 +27,7 @@ interface Props { const props = withDefaults(defineProps(), { class: '', icon: '', + localIcon: '', tooltipContent: '', tooltipPlacement: 'bottom', zIndex: 98, @@ -46,7 +49,8 @@ const quaternary = computed(() => {
- + +
diff --git a/src/constants/reg.ts b/src/constants/reg.ts index 8805ca8f..d8bc32bc 100644 --- a/src/constants/reg.ts +++ b/src/constants/reg.ts @@ -9,7 +9,7 @@ export const REG_PHONE = * * 6-18 characters, including letters, numbers, and underscores */ -export const REG_PWD = /^\w{6,18}$/; +export const REG_PWD = /^(?![a-zA-Z]+$)(?!\d+$)(?![^\da-zA-Z\s]+$).{6,18}$/; /** Email reg */ export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 02ab9b8f..d498a089 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -187,6 +187,7 @@ const local: App.I18n.Schema = { login: { common: { loginOrRegister: 'Login / Register', + register: 'Register', userNamePlaceholder: 'Please enter user name', phonePlaceholder: 'Please enter phone number', codePlaceholder: 'Please enter verification code', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index d3b10185..16d97b74 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -187,6 +187,7 @@ const local: App.I18n.Schema = { login: { common: { loginOrRegister: '登录 / 注册', + register: '注册', userNamePlaceholder: '请输入用户名', phonePlaceholder: '请输入手机号', codePlaceholder: '请输入验证码', diff --git a/src/service/api/auth.ts b/src/service/api/auth.ts index 7137ffd3..4845a35e 100644 --- a/src/service/api/auth.ts +++ b/src/service/api/auth.ts @@ -35,6 +35,20 @@ export function fetchLogin(data: Api.Auth.PwdLoginForm) { }); } +/** Register */ +export function fetchRegister(data: Api.Auth.RegisterForm) { + return request({ + url: '/auth/register', + method: 'post', + headers: { + isToken: false, + isEncrypt: true, + repeatSubmit: false + }, + data + }); +} + /** Get user info */ export function fetchGetUserInfo() { return request({ url: '/system/user/getInfo' }); diff --git a/src/service/api/system/config.ts b/src/service/api/system/config.ts index 61a88f62..836b1791 100644 --- a/src/service/api/system/config.ts +++ b/src/service/api/system/config.ts @@ -9,6 +9,14 @@ export function fetchGetConfigList(params?: Api.System.ConfigSearchParams) { }); } +/** 根据参数键名查询参数值 */ +export function fetchGetConfigDetail(configKey: string) { + return request({ + url: `/system/config/configKey/${configKey}`, + method: 'get' + }); +} + /** 新增参数配置 */ export function fetchCreateConfig(data: Api.System.ConfigOperateParams) { return request({ @@ -34,6 +42,7 @@ export function fetchBatchDeleteConfig(configIds: CommonType.IdType[]) { method: 'delete' }); } + /** 刷新缓存 */ export function fetchRefreshCache() { return request({ diff --git a/src/service/request/index.ts b/src/service/request/index.ts index 4bcd4c12..cedaea1c 100644 --- a/src/service/request/index.ts +++ b/src/service/request/index.ts @@ -32,7 +32,7 @@ export const request = createFlatRequest(); const captchaEnabled = ref(false); const tenantEnabled = ref(false); +const registerEnabled = ref(false); const remberMe = ref(false); const tenantOption = ref([]); @@ -101,6 +102,18 @@ function handleLoginRember() { } handleLoginRember(); + +// async function handleRegister() { +// const { data, error } = await fetchGetConfigDetail('sys.account.registerUser'); +// if (error) return; +// registerEnabled.value = data.configValue === 'true'; +// } + +// handleRegister(); + +function handleSocialLogin(type: string) { + console.log(type); +} diff --git a/src/views/_builtin/login/modules/register.vue b/src/views/_builtin/login/modules/register.vue index 1f1396b6..b86458d7 100644 --- a/src/views/_builtin/login/modules/register.vue +++ b/src/views/_builtin/login/modules/register.vue @@ -1,8 +1,10 @@ - +