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" && (
-
-
-
+
- {userRole === "admin" && (
-
-
- setEditMerchant({ ...editMerchant, totalMerchant: value })}
- disabled={loadingTotalMerchants}
- onOpenChange={(open) => {
- if (open && totalMerchants.length === 0 && !loadingTotalMerchants) {
- fetchTotalMerchants()
- }
- }}
- >
-
-
-
-
- {totalMerchants.map((merchant) => (
-
- {merchant.nickName}
-
- ))}
-
-
-
- )}
+
+
+ {
+ if (value === "clear") {
+ setEditMerchant({ ...editMerchant, totalMerchant: "" })
+ } else {
+ setEditMerchant({ ...editMerchant, totalMerchant: value })
+ }
+ }}
+ disabled={loadingTotalMerchants}
+ onOpenChange={(open) => {
+ if (open && totalMerchants.length === 0 && !loadingTotalMerchants) {
+ fetchTotalMerchants()
+ }
+ }}
+ >
+
+
+
+
+ {editMerchant.totalMerchant && !totalMerchants.find(tm => tm.userId === editMerchant.totalMerchant) && (
+
+ {editMerchant.totalMerchant} (加载中...)
+
+ )}
+ {totalMerchants.length === 0 && !loadingTotalMerchants ? (
+
+ {editMerchant.totalMerchant ? "当前值: " + editMerchant.totalMerchant : "点击加载总商户数据"}
+
+ ) : (
+ <>
+ {editMerchant.totalMerchant && (
+
+ 清除选择
+
+ )}
+ {totalMerchants.map((merchant) => (
+
+ {merchant.nickName}
+
+ ))}
+ >
+ )}
+
+
+
查看详情
- {((order.equipmentName?.includes("厨房自动灭火") || order.equipmentName === "厨房自动灭火设备") && (order.workOrderType === "设备安装" || order.workOrderType === "设备检测" || order.workOrderType === "设备改造" || order.workOrderType === "设备维修" || order.workOrderType === "故障维修" || order.workOrderType === "设备拆除" || order.workOrderType === "更换药剂")) && (
+ {(order.workOrderType === "设备安装" || order.workOrderType === "设备检测" || order.workOrderType === "故障检测") && (
- {((order.equipmentName?.includes("厨房自动灭火") || order.equipmentName === "厨房自动灭火设备") && (order.workOrderType === "设备安装" || order.workOrderType === "设备检测" || order.workOrderType === "设备改造" || order.workOrderType === "设备维修" || order.workOrderType === "故障维修" || order.workOrderType === "设备拆除" || order.workOrderType === "更换药剂")) && (
+ {(order.workOrderType === "设备安装" || order.workOrderType === "设备检测" || order.workOrderType === "故障检测") && (