feat: 第三方登录认证功能和管理页
This commit is contained in:
1122
src/views/system/login-source/index.vue
Normal file
1122
src/views/system/login-source/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -44,10 +44,13 @@ const { t } = useI18n();
|
||||
let dict: {
|
||||
/**状态 */
|
||||
sysNormalDisable: DictType[];
|
||||
/**用户类型 */
|
||||
sysUserType: DictType[];
|
||||
/**性别 */
|
||||
sysUserSex: DictType[];
|
||||
} = reactive({
|
||||
sysNormalDisable: [],
|
||||
sysUserType: [],
|
||||
sysUserSex: [],
|
||||
});
|
||||
|
||||
@@ -64,6 +67,8 @@ let queryParams = reactive({
|
||||
deptId: undefined,
|
||||
/**用户状态 */
|
||||
statusFlag: undefined,
|
||||
/**用户类型 */
|
||||
userType: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
@@ -81,6 +86,7 @@ function fnQueryReset() {
|
||||
phone: '',
|
||||
deptId: undefined,
|
||||
statusFlag: undefined,
|
||||
userType: undefined,
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
@@ -148,6 +154,13 @@ let tableColumns: ColumnsType = [
|
||||
align: 'left',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: t('views.system.user.userType'),
|
||||
dataIndex: 'userType',
|
||||
key: 'userType',
|
||||
align: 'left',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: t('views.system.user.loginIp'),
|
||||
dataIndex: 'loginIp',
|
||||
@@ -792,13 +805,17 @@ onMounted(() => {
|
||||
// 初始字典数据
|
||||
Promise.allSettled([
|
||||
getDict('sys_normal_disable'),
|
||||
getDict('sys_user_type'),
|
||||
getDict('sys_user_sex'),
|
||||
]).then(resArr => {
|
||||
if (resArr[0].status === 'fulfilled') {
|
||||
dict.sysNormalDisable = resArr[0].value;
|
||||
}
|
||||
if (resArr[1].status === 'fulfilled') {
|
||||
dict.sysUserSex = resArr[1].value;
|
||||
dict.sysUserType = resArr[1].value;
|
||||
}
|
||||
if (resArr[2].status === 'fulfilled') {
|
||||
dict.sysUserSex = resArr[2].value;
|
||||
}
|
||||
});
|
||||
// 获取列表数据
|
||||
@@ -881,7 +898,7 @@ onMounted(() => {
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="4" :md="12" :xs="24">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.system.user.status')"
|
||||
name="statusFlag"
|
||||
@@ -895,6 +912,20 @@ onMounted(() => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.system.user.userType')"
|
||||
name="userType"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="queryParams.userType"
|
||||
allow-clear
|
||||
:options="dict.sysUserType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="8" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.system.user.loginTime')"
|
||||
@@ -1022,6 +1053,15 @@ onMounted(() => {
|
||||
{{ r.roleName }}
|
||||
</a-tag>
|
||||
</template>
|
||||
<template v-if="column.key === 'userType'">
|
||||
<DictTag :options="dict.sysUserType" :value="record.userType" />
|
||||
<a-tag
|
||||
:bordered="false"
|
||||
v-if="record.userSource != '#'"
|
||||
>
|
||||
{{ record.userSource }}
|
||||
</a-tag>
|
||||
</template>
|
||||
<template v-if="column.key === 'deptId'">
|
||||
{{ record.dept?.deptName }}
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user