fetch(add): 账户管理

This commit is contained in:
sexygoat
2026-01-23 17:18:24 +08:00
parent 339abca4c0
commit b53fea43c6
93 changed files with 7094 additions and 3153 deletions

View File

@@ -134,7 +134,7 @@
const loading = ref(false)
const roleSubmitLoading = ref(false)
const currentAccountId = ref<number>(0)
const selectedRole = ref<number | null>(null)
const selectedRole = ref<number | undefined>(undefined)
const allRoles = ref<PlatformRole[]>([])
// 定义表单搜索初始值
@@ -258,23 +258,19 @@
const { columnChecks, columns } = useCheckedColumns(() => [
{
prop: 'ID',
label: 'ID',
width: 80
label: 'ID'
},
{
prop: 'username',
label: '账号名称',
minWidth: 120
label: '账号名称'
},
{
prop: 'phone',
label: '手机号',
width: 130
label: '手机号'
},
{
prop: 'user_type',
label: '账号类型',
width: 120,
formatter: (row: any) => {
const typeMap: Record<number, string> = {
1: '超级管理员',
@@ -288,7 +284,6 @@
{
prop: 'status',
label: '状态',
width: 100,
formatter: (row: any) => {
return h(ElSwitch, {
modelValue: row.status,
@@ -297,20 +292,18 @@
activeText: getStatusText(CommonStatus.ENABLED),
inactiveText: getStatusText(CommonStatus.DISABLED),
inlinePrompt: true,
'onUpdate:modelValue': (val: number) => handleStatusChange(row, val)
'onUpdate:modelValue': (val: string | number | boolean) => handleStatusChange(row, val as number)
})
}
},
{
prop: 'CreatedAt',
label: '创建时间',
width: 180,
formatter: (row: any) => formatDateTime(row.CreatedAt)
},
{
prop: 'operation',
label: '操作',
width: 180,
fixed: 'right',
formatter: (row: any) => {
return h('div', { style: 'display: flex; gap: 8px;' }, [
@@ -363,7 +356,7 @@
// 显示分配角色对话框
const showRoleDialog = async (row: any) => {
currentAccountId.value = row.ID
selectedRole.value = null
selectedRole.value = undefined
// 先加载当前账号的角色,再打开对话框
try {
@@ -371,7 +364,7 @@
if (res.code === 0) {
// 提取角色ID只取第一个角色
const roles = res.data || []
selectedRole.value = roles.length > 0 ? roles[0].ID : null
selectedRole.value = roles.length > 0 ? roles[0].ID : undefined
// 数据加载完成后再打开对话框
roleDialogVisible.value = true
}
@@ -382,7 +375,7 @@
// 提交分配角色
const handleAssignRoles = async () => {
if (selectedRole.value === null) {
if (selectedRole.value === undefined) {
ElMessage.warning('请选择一个角色')
return
}
@@ -516,7 +509,7 @@
}
.role-radio-item {
margin-bottom: 16px;
padding: 8px;
margin-bottom: 16px;
}
</style>