Browse Source

chore: login compose

master
wangxiang 2 years ago
parent
commit
634b8c2398
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 2
      src/api/platform/system/controller/dictdata.ts
  2. 32
      src/views/system/ssoLogin/kics/index.vue

2
src/api/platform/system/controller/dictdata.ts

@ -31,4 +31,4 @@ export const getDictData = (id: string) => defHttp.get<DictData>({ url: `${Api.g
export const delDictData = (ids: string) => defHttp.delete({ url: `${Api.del}/${ids}` }); export const delDictData = (ids: string) => defHttp.delete({ url: `${Api.del}/${ids}` });
/** 根据字典类型查询字典数据 */ /** 根据字典类型查询字典数据 */
export const getDataByDictType = (params: DictData) => defHttp.get<DictData[]>({ url: Api.getByDictType, params }); export const getDataByDictType = (params: Recordable) => defHttp.get<DictData[]>({ url: Api.getByDictType, params });

32
src/views/system/ssoLogin/kics/index.vue

@ -50,17 +50,13 @@
<div class="aui-inputClear"> <div class="aui-inputClear">
<i class="icon icon-role"/> <i class="icon icon-role"/>
<a-form-item> <a-form-item>
<ApiSelect <a-select
v-model:value="formData.identityProvider" v-model:value="formData.identityProvider"
:api="getDataByDictType" show-search
:params="{ :placeholder="t('sys.login.identityProviderPlaceholder')"
type: 'identityProvider',
tenantId: formData.tenantId
}"
:bordered="false" :bordered="false"
labelField="label" :filter-option="filterOption"
valueField="value" :options="formData.identityProviderDictData"
placeholder="请选择角色"
/> />
</a-form-item> </a-form-item>
</div> </div>
@ -95,7 +91,7 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, ref, unref } from 'vue'; import { reactive, ref, unref, onMounted } from 'vue';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { useI18n } from '/@/hooks/web/useI18n'; import { useI18n } from '/@/hooks/web/useI18n';
@ -106,10 +102,7 @@
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
import { useAppInject } from '/@/hooks/web/useAppInject'; import { useAppInject } from '/@/hooks/web/useAppInject';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { ApiSelect } from '/@/components/Form';
import { getDataByDictType } from '/@/api/platform/system/controller/dictdata'; import { getDataByDictType } from '/@/api/platform/system/controller/dictdata';
import {LoginStateEnum} from '/@/views/core/login/useLogin';
import {Button, Checkbox} from 'ant-design-vue';
const { currentRoute, replace } = useRouter(); const { currentRoute, replace } = useRouter();
const { params, query } = unref(currentRoute); const { params, query } = unref(currentRoute);
@ -125,11 +118,20 @@
password: '', password: '',
identityProvider: undefined, identityProvider: undefined,
tenantId: '1510456530575347712', tenantId: '1510456530575347712',
identityProviderDictData: []
}); });
const loginRef = ref(); const loginRef = ref();
const loginLoading = ref<boolean>(false); const loginLoading = ref<boolean>(false);
const { getIsMobile } = useAppInject(); const { getIsMobile } = useAppInject();
onMounted(async () => {
formData.identityProviderDictData = await getDataByDictType({ type: 'identityProvider', tenantId: formData.tenantId });
//
if(formData.identityProviderDictData[0]) {
formData.identityProvider = formData.identityProviderDictData[0]?.value;
}
});
async function handleLogin() { async function handleLogin() {
if (!formData.username) { if (!formData.username) {
createMessage.warn(t('sys.login.accountPlaceholder')); createMessage.warn(t('sys.login.accountPlaceholder'));
@ -161,6 +163,10 @@
} }
} }
function filterOption(input: string, option: Recordable) {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
}
function handleLegacyLogin() { function handleLegacyLogin() {
query?.redirect && window.location.replace(`${query?.redirect}/login`); query?.redirect && window.location.replace(`${query?.redirect}/login`);
} }

Loading…
Cancel
Save