feat: 新增客服备用金台账与后台用户中文显示名

- 新增备用金账户、流水、支出、对账与权限
- 后台用户支持中文显示名并同步备用金姓名
- 审计、登录记录、任务及工单操作人优先展示中文名
- 补充备用金与人工支出方案文档
This commit is contained in:
yml2213
2026-10-18 13:55:24 +08:00
parent 7bacb7d5eb
commit 7542d547bf
55 changed files with 6557 additions and 105 deletions
+18
View File
@@ -2,6 +2,7 @@ const ADMIN_TOKEN_KEY = 'order-site-admin-token'
const ADMIN_EXPIRES_AT_KEY = 'order-site-admin-token-expires-at'
const ADMIN_USER_ID_KEY = 'order-site-admin-user-id'
const ADMIN_USERNAME_KEY = 'order-site-admin-username'
const ADMIN_DISPLAY_NAME_KEY = 'order-site-admin-display-name'
const ADMIN_ROLE_KEY = 'order-site-admin-role'
const ADMIN_PERMISSIONS_KEY = 'order-site-admin-permissions'
@@ -29,6 +30,19 @@ export function getAdminUsername() {
return localStorage.getItem(ADMIN_USERNAME_KEY) || ''
}
export function getAdminDisplayName() {
return localStorage.getItem(ADMIN_DISPLAY_NAME_KEY) || ''
}
export function setAdminDisplayName(displayName: string) {
const normalized = String(displayName || '').trim()
if (normalized) {
localStorage.setItem(ADMIN_DISPLAY_NAME_KEY, normalized)
} else {
localStorage.removeItem(ADMIN_DISPLAY_NAME_KEY)
}
}
export function getAdminRole() {
const role = localStorage.getItem(ADMIN_ROLE_KEY)
if (role === 'admin' || role === 'operator' || role === 'support' || role === 'finance') {
@@ -94,6 +108,7 @@ export function setAdminSession(
user?: {
userId: number
username: string
displayName?: string
role: 'admin' | 'operator' | 'support' | 'finance'
permissions?: string[]
},
@@ -109,6 +124,8 @@ export function setAdminSession(
localStorage.setItem(ADMIN_USERNAME_KEY, user.username)
}
setAdminDisplayName(user?.displayName || user?.username || '')
if (user?.role) {
localStorage.setItem(ADMIN_ROLE_KEY, user.role)
}
@@ -121,6 +138,7 @@ export function clearAdminSession() {
localStorage.removeItem(ADMIN_EXPIRES_AT_KEY)
localStorage.removeItem(ADMIN_USER_ID_KEY)
localStorage.removeItem(ADMIN_USERNAME_KEY)
localStorage.removeItem(ADMIN_DISPLAY_NAME_KEY)
localStorage.removeItem(ADMIN_ROLE_KEY)
localStorage.removeItem(ADMIN_PERMISSIONS_KEY)
}