'use client' import type { Department, User } from '../types' import { useThemeStyles, cn } from '@/lib/ui-styles' import { formatDateTime } from '../../_utils/formatters' import Modal from '@/components/ui/Modal' interface UserEditModalProps { isOpen: boolean user: User | null departments: Department[] editingUsername: string selectedDepartment: string managerNames: string[] showTransferButton: boolean canChangeProtectedFields: boolean onChangeUsername: (value: string) => void onChangeDepartment: (value: string) => void onClose: () => void onSave: () => void onToggleRole: () => void onToggleActive: () => void onToggleDownload: () => void onDelete: () => void onOpenTransferModal: () => void hasDepartments: boolean } export default function UserEditModal({ isOpen, user, departments, editingUsername, selectedDepartment, managerNames, showTransferButton, canChangeProtectedFields, onChangeUsername, onChangeDepartment, onClose, onSave, onToggleRole, onToggleActive, onToggleDownload, onDelete, onOpenTransferModal, hasDepartments, }: UserEditModalProps) { const styles = useThemeStyles() if (!isOpen || !user) return null return ( } >

{user.email}

注册时间

{formatDateTime(user.createdAt)}

直属上级

{managerNames.length ? managerNames.join('、') : '暂无'}

onChangeUsername(e.target.value)} className={styles.inputStyles.base} placeholder="请输入用户名" />

{canChangeProtectedFields ? '更改部门后将自动为其匹配该部门的管理员作为直属上级。' : '只有最高权限账号可以调整用户部门。'}

{canChangeProtectedFields && (
)} {canChangeProtectedFields && (
)} {showTransferButton && (

仅当前最高权限持有者可执行此操作。

)} {!hasDepartments && (
⚠️ 暂无部门,请先在系统设置中添加部门。
)}
) }