1
0

feat(web): 增加账号最后登陆时间

This commit is contained in:
2024-11-19 19:14:32 +08:00
parent 9a01d74d78
commit 323d326e8d
9 changed files with 154 additions and 44 deletions

View File

@@ -48,7 +48,7 @@ export function horizontalFormOptions() {
mode: 'horizontal',
canAccessSuperData: false,
horizontal: {
left: 2,
left: 3,
},
}
}
@@ -83,6 +83,41 @@ export function paginationTemplate(perPage = 20, maxButtons = 5) {
}
}
export function copyField(field, tips = '复制', ignoreLength = 0, extra = undefined) {
let tpl = ignoreLength === 0 ? `\${${field}}` : `\${TRUNCATE(${field}, ${ignoreLength})}`
let content = extra
? {
type: 'action',
level: 'link',
label: `\${${field}}`,
className: 'text-current underline',
size: 'xs',
...extra,
}
: {
type: 'tpl',
className: 'mr-1',
tpl: tpl,
}
return {
type: 'wrapper',
size: 'none',
body: [
content,
{
type: 'action',
level: 'link',
label: '',
icon: 'fa fa-copy',
size: 'xs',
actionType: 'copy',
content: `\$${field}`,
tooltip: `${tips}`,
},
]
}
}
export function mappingField(field, mapping) {
let mapData = {
'*': `<span class='label bg-gray-300'>\${${field}}</span>`,

View File

@@ -1,10 +1,63 @@
import {apiGet, horizontalFormOptions, mappingField, userRoleMapping, userStateMapping} from "../constants.js";
const dialogBody = [
{
type: 'input-email',
name: 'username',
label: '邮箱',
},
{
type: 'control',
name: 'role',
label: '角色',
body: [
mappingField('role', userRoleMapping),
]
},
{
type: 'control',
name: 'state',
label: '账号状态',
body: [
mappingField('state', userStateMapping)
]
},
{
type: 'input-datetime',
name: 'createTime',
label: '创建时间',
},
]
export function userDetailDialog() {
return {
actionType: 'dialog',
dialog: {
title: '账号详情',
actions: [],
body: {
type: 'form',
initApi: apiGet('${base}/user_management/detail/${username}'),
...horizontalFormOptions(),
static: true,
body: [
...dialogBody,
{
type: 'input-datetime',
name: 'lastLoginTime',
label: '上次登陆时间',
},
],
}
}
}
}
export function userCheckDialog() {
return {
actionType: 'dialog',
dialog: {
title: '用户注册',
title: '账号审核',
actions: [
{
type: 'action',
@@ -22,39 +75,7 @@ export function userCheckDialog() {
initApi: apiGet('${base}/user_management/detail/${username}'),
...horizontalFormOptions(),
static: true,
body: [
{
type: 'input-email',
name: 'username',
label: '邮箱',
},
{
type: 'control',
name: 'role',
label: '角色',
body: [
mappingField('role', userRoleMapping),
]
},
{
type: 'control',
name: 'state',
label: '账号状态',
body: [
mappingField('state', userStateMapping)
]
},
{
type: 'input-datetime',
name: 'createTime',
label: '创建时间',
},
{
type: 'input-datetime',
name: 'updateTime',
label: '更新时间',
},
]
body: dialogBody,
}
}
}

View File

@@ -2,6 +2,9 @@ import {apiGet, useAmis} from '../../components/constants.js'
import {userChangePasswordDialog} from "../../components/user/dialog-user-change-password.js";
import {tabUser} from "./tab-user.js";
import {tabOverview} from "./tab-overview.js";
import {tabMarket} from "./tab-market.js";
import {tabData} from "./tab-data.js";
import {tabLog} from "./tab-log.js";
useAmis(information => {
return {
@@ -55,7 +58,10 @@ useAmis(information => {
tabsMode: 'vertical',
tabs: [
tabOverview(),
tabMarket(),
tabData(),
tabUser(),
tabLog(),
]
},
}

View File

@@ -0,0 +1,9 @@
export function tabData() {
return {
title: '数据管理',
icon: 'fa fa-database',
body: [
'hello world'
]
}
}

View File

@@ -0,0 +1,10 @@
export function tabLog() {
return {
visibleOn: '${role === "ADMINISTRATOR"}',
title: '系统日志',
icon: 'fa fa-file',
body: [
'hello world'
]
}
}

View File

@@ -0,0 +1,9 @@
export function tabMarket() {
return {
title: '数据市场',
icon: 'fa fa-store',
body: [
'hello world'
]
}
}

View File

@@ -1,5 +1,12 @@
import {apiGet, crudCommonOptions, mappingField, userRoleMapping, userStateMapping} from '../../components/constants.js'
import {userCheckDialog} from "../../components/user/dialog-user-check.js";
import {
apiGet,
copyField,
crudCommonOptions,
mappingField,
userRoleMapping,
userStateMapping
} from '../../components/constants.js'
import {userCheckDialog, userDetailDialog} from "../../components/user/dialog-user-check.js";
import {userAdministratorRegisterDialog} from "../../components/user/dialog-user-register.js";
export function tabUser() {
@@ -26,28 +33,38 @@ export function tabUser() {
{
name: 'username',
label: '邮箱',
...copyField(
'username',
undefined,
undefined,
userDetailDialog(),
)
},
{
label: '角色',
width: 120,
align: 'center',
...mappingField('role', userRoleMapping)
},
{
label: '账号状态',
width: 80,
align: 'center',
...mappingField('state', userStateMapping)
},
{
label: '创建时间',
width: 150,
align: 'center',
type: 'tpl',
tpl: '${DATETOSTR(createTime)}'
tpl: "${IF(createTime, DATETOSTR(createTime), '-')}"
},
{
label: '更新时间',
label: '上次登陆时间',
width: 150,
align: 'center',
type: 'tpl',
tpl: '${DATETOSTR(updateTime)}'
tpl: "${IF(lastLoginTime, DATETOSTR(lastLoginTime), '-')}"
},
{
label: '操作',