Browse Source

chore: login tenant compose

master
wangxiang 2 years ago
parent
commit
1cf789ea82
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 1
      src/api/platform/system/entity/tenant.ts
  2. 29
      src/views/core/loginmini/MiniLogin.vue

1
src/api/platform/system/entity/tenant.ts

@ -18,6 +18,7 @@ export interface Tenant extends CommonEntity {
code: string; code: string;
tenantStartTime: string; tenantStartTime: string;
tenantEndTime: string; tenantEndTime: string;
enabledIdentityProvider: string;
status: string; status: string;
[key: string]: any; [key: string]: any;
} }

29
src/views/core/loginmini/MiniLogin.vue

@ -2,7 +2,8 @@
<div :class="prefixCls" class="login-background-img"> <div :class="prefixCls" class="login-background-img">
<!--多租户选择器--> <!--多租户选择器-->
<Dropdown <Dropdown
class="absolute top-3 right-40 enter-x" class="absolute top-3 enter-x"
:class="[getEnabledIdentityProvider ? 'right-40' : 'right-26' ]"
placement="bottom" placement="bottom"
:trigger="['hover']" :trigger="['hover']"
:dropMenuList="options.tenantIdList" :dropMenuList="options.tenantIdList"
@ -18,6 +19,7 @@
</Dropdown> </Dropdown>
<!--身份提供商多选择器--> <!--身份提供商多选择器-->
<Dropdown <Dropdown
v-if="getEnabledIdentityProvider"
class="absolute top-3 right-26 enter-x" class="absolute top-3 right-26 enter-x"
placement="bottom" placement="bottom"
:trigger="['hover']" :trigger="['hover']"
@ -215,7 +217,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { getCaptcha } from '/@/api/platform/core/controller/user'; import { getCaptcha } from '/@/api/platform/core/controller/user';
import { onMounted, reactive, ref, toRaw, unref } from 'vue'; import {computed, CSSProperties, onMounted, reactive, ref, toRaw, unref} from 'vue';
import defaultCaptchaImg from '/@/assets/images/captcha.jpg'; import defaultCaptchaImg from '/@/assets/images/captcha.jpg';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
@ -265,12 +267,12 @@
tenantId: [], tenantId: [],
}); });
// //
const phoneFormData = reactive<any>({ const phoneFormData = reactive<Recordable>({
mobile: '', mobile: '',
smscode: '', smscode: '',
}); });
// //
const options = reactive<any>({ const options = reactive<Recordable>({
identityProviderList: [], identityProviderList: [],
tenantIdList: [] tenantIdList: []
}); });
@ -475,6 +477,9 @@
formData.identityProvider = [menu.event]; formData.identityProvider = [menu.event];
} }
const getEnabledIdentityProvider = computed(() => {
return !!~~options.tenantIdList.find(item => item.event === formData.tenantId[0])?.enabledIdentityProvider;
});
onMounted(async () => { onMounted(async () => {
// //
@ -483,14 +488,18 @@
options.tenantIdList = tenantIdList.map(item => ({ options.tenantIdList = tenantIdList.map(item => ({
text: item.name, text: item.name,
event: item.code, event: item.code,
enabledIdentityProvider: item.enabledIdentityProvider
} as DropMenu)); } as DropMenu));
options.tenantIdList[0] && (formData.tenantId = [options.tenantIdList[0].event]); options.tenantIdList[0] && (formData.tenantId = [options.tenantIdList[0].event]);
const identityProviderList = await getDataByDictType({ type: 'identityProvider', tenantId: formData.tenantId });
options.identityProviderList = identityProviderList.map(item => ({ if (getEnabledIdentityProvider.value) {
text: item.label, const identityProviderList = await getDataByDictType({ type: 'identityProvider', tenantId: formData.tenantId });
event: item.value, options.identityProviderList = identityProviderList.map(item => ({
} as DropMenu)); text: item.label,
options.identityProviderList[0] && (formData.identityProvider = [options.identityProviderList[0].event]); event: item.value,
} as DropMenu));
options.identityProviderList[0] && (formData.identityProvider = [options.identityProviderList[0].event]);
}
}); });
</script> </script>

Loading…
Cancel
Save