diff --git a/src/components/pages/LoginPage.tsx b/src/components/pages/LoginPage.tsx index cc6eaf4..013ebb9 100644 --- a/src/components/pages/LoginPage.tsx +++ b/src/components/pages/LoginPage.tsx @@ -36,7 +36,7 @@ export default function LoginPage() { try { setRolesLoading(true) const result = await apiGet('/back/getRoutersInfo') - + if (result.code === 200 && result.data) { setRoles(result.data) } else { @@ -44,7 +44,7 @@ export default function LoginPage() { // 如果接口失败,使用默认角色列表作为备选 setRoles([ { roleId: "admin", roleName: "总部管理员", roleKey: "admin", remark: "", admin: true }, - { roleId: "dealer", roleName: "经销商", roleKey: "dealer", remark: "", admin: false }, + { roleId: "dealer", roleName: "区域负责人", roleKey: "dealer", remark: "", admin: false }, { roleId: "mall", roleName: "商场管理员", roleKey: "mall", remark: "", admin: false }, { roleId: "merchant", roleName: "商户", roleKey: "merchant", remark: "", admin: false }, { roleId: "worker", roleName: "维修工人", roleKey: "worker", remark: "", admin: false }, @@ -55,7 +55,7 @@ export default function LoginPage() { // 网络错误时使用默认角色列表 setRoles([ { roleId: "admin", roleName: "总部管理员", roleKey: "admin", remark: "", admin: true }, - { roleId: "dealer", roleName: "经销商", roleKey: "dealer", remark: "", admin: false }, + { roleId: "dealer", roleName: "区域负责人", roleKey: "dealer", remark: "", admin: false }, { roleId: "mall", roleName: "商场管理员", roleKey: "mall", remark: "", admin: false }, { roleId: "merchant", roleName: "商户", roleKey: "merchant", remark: "", admin: false }, { roleId: "worker", roleName: "维修工人", roleKey: "worker", remark: "", admin: false }, @@ -72,7 +72,7 @@ export default function LoginPage() { const handleLogin = async (e: React.FormEvent) => { e.preventDefault() - + try { // 构建登录请求参数,包含 roleId const loginData = { @@ -106,14 +106,14 @@ export default function LoginPage() { // 登录成功后,验证该角色的路由数据是否有效 const routeValidationResult = await apiGet(`/getRoutersByRoleId?roleId=${formData.role}`) - + if (routeValidationResult.code !== 200) { alert(`路由验证失败: ${routeValidationResult.msg || '未知错误'},请联系管理员`) // 清除临时保存的用户信息 setStorageItem("user", "") return } - + // 检查路由数据是否存在 if (!routeValidationResult.data) { alert('路由数据不存在,请联系管理员配置角色权限') @@ -121,50 +121,50 @@ export default function LoginPage() { setStorageItem("user", "") return } - + // 验证路由数据格式 const routeData = routeValidationResult.data console.log("获取到的路由数据:", routeData) - + if (!Array.isArray(routeData) || routeData.length === 0) { alert('路由数据格式错误或为空,请联系管理员') // 清除临时保存的用户信息 setStorageItem("user", "") return } - + // 验证路由数据的基本字段(放宽验证条件) const hasInvalidRoute = routeData.some((route: any) => { console.log("验证路由项:", route) - + // 必须有 path 字段 if (!route.path || typeof route.path !== 'string') { console.error('无效的路由数据,缺少或错误的 path 字段:', route) return true } - + // name 字段不是必需的(某些布局路由可能没有 name) // 只验证如果有 name 字段,它必须是字符串类型 if (route.name !== undefined && typeof route.name !== 'string') { console.error('无效的路由数据,name 字段类型错误:', route) return true } - + return false }) - + if (hasInvalidRoute) { alert('路由数据包含错误信息,请联系管理员检查配置') // 清除临时保存的用户信息 setStorageItem("user", "") return } - + console.log("路由数据验证通过,保存用户信息并跳转") // 获取选择的角色信息 const selectedRole = roles.find(role => role.roleId === formData.role) - + // 登录成功且路由验证通过,保存用户信息(包含 token 和角色信息) const userData = { username: formData.username, @@ -176,7 +176,7 @@ export default function LoginPage() { token: result.token, // 保存后端返回的 token ...result.data // 保存后端返回的其他用户信息 } - + setStorageItem("user", JSON.stringify(userData)) // 刷新路由配置(根据新登录的用户角色获取路由) @@ -239,8 +239,8 @@ export default function LoginPage() {
- @@ -639,11 +687,9 @@ export default function MerchantsPage() { 查看设备({merchant.equipmentCount}) - {userRole !== "merchant" && ( - - )} +
@@ -679,11 +725,9 @@ export default function MerchantsPage() { {merchant.equipmentCount} - {userRole !== "merchant" && ( - - )} + @@ -891,32 +935,36 @@ export default function MerchantsPage() { placeholder="请输入联系电话" /> - {userRole === "admin" && ( -
- - setNewMerchant({ ...newMerchant, totalMerchant: value })} + disabled={loadingTotalMerchants} + onOpenChange={(open) => { + if (open && totalMerchants.length === 0 && !loadingTotalMerchants) { + fetchTotalMerchants() + } + }} + > + + + + + {totalMerchants.length === 0 && !loadingTotalMerchants ? ( + + 点击加载总商户数据 + + ) : ( + totalMerchants.map((merchant) => ( {merchant.nickName} - ))} - - -
- )} + )) + )} + + +