| | |
| | | |
| | | import avatar from '/avatar.jpg' |
| | | |
| | | const AI_COMPONENTS = new Set([ |
| | | 'aiParam', |
| | | 'aiPrompt', |
| | | 'aiDiagnosis', |
| | | 'aiDiagnosisPlan', |
| | | 'aiCallLog', |
| | | 'aiRoute', |
| | | 'aiToolConfig', |
| | | 'aiMcpMount', |
| | | ]); |
| | | |
| | | const filterAiMenus = (items = []) => |
| | | items |
| | | .filter((item) => !AI_COMPONENTS.has(item.component)) |
| | | .map((item) => ({ |
| | | ...item, |
| | | children: item.children ? filterAiMenus(item.children) : item.children, |
| | | })); |
| | | |
| | | const AuthProvider = { |
| | | // login |
| | | login: async ({ username, password, tenantId }) => { |
| | | const { accessToken, user, tenant } = await login({ |
| | | const { code, msg, data } = await login({ |
| | | username: username, |
| | | password: password, |
| | | tenantId: tenantId, |
| | | }).catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }) |
| | | |
| | | if (user && accessToken) { |
| | | const userToPersist = { |
| | | avatar: avatar, |
| | | fullName: user.nickname, |
| | | id: user.id, |
| | | username: user.username, |
| | | tenant: tenant, |
| | | if (code === 200) { |
| | | const { accessToken, user, tenant } = data; |
| | | if (user && accessToken) { |
| | | const userToPersist = { |
| | | avatar: avatar, |
| | | fullName: user.nickname, |
| | | id: user.id, |
| | | username: user.username, |
| | | tenant: tenant, |
| | | } |
| | | setToken(accessToken); |
| | | localStorage.setItem("user", JSON.stringify(userToPersist)); |
| | | return Promise.resolve(); |
| | | } |
| | | setToken(accessToken); |
| | | localStorage.setItem("user", JSON.stringify(userToPersist)); |
| | | return Promise.resolve(); |
| | | } |
| | | |
| | | return Promise.reject( |
| | | new HttpError("Unauthorized", 401, { |
| | | message: "Invalid username or password", |
| | | }), |
| | | ); |
| | | return Promise.reject({ code, msg, data }); |
| | | }, |
| | | // logout |
| | | logout: () => { |
| | |
| | | const res = await menus(); |
| | | const { code, msg, data } = res.data; |
| | | if (code === 200) { |
| | | return Promise.resolve(data); |
| | | return Promise.resolve(filterAiMenus(data)); |
| | | } else if (code === 401) { |
| | | localStorage.removeItem("user"); |
| | | return Promise.reject(); |