react-toolkits 2.27.0 → 2.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/index.d.ts +148 -30
- package/lib/index.js +3 -1446
- package/lib/index.js.map +1 -1
- package/locale/context.js +1 -7
- package/locale/context.js.map +1 -1
- package/locale/en_GB.js +1 -94
- package/locale/en_GB.js.map +1 -1
- package/locale/hooks.js +1 -20
- package/locale/hooks.js.map +1 -1
- package/locale/index.js +1 -2
- package/locale/ja_JP.js +1 -94
- package/locale/ja_JP.js.map +1 -1
- package/locale/ko_KR.js +1 -94
- package/locale/ko_KR.js.map +1 -1
- package/locale/zh_CN.js +1 -94
- package/locale/zh_CN.js.map +1 -1
- package/package.json +1 -2
- package/lib/chunk-56C2GQCB.js +0 -2
- package/lib/chunk-56C2GQCB.js.map +0 -1
- package/lib/chunk-6SMI25Y3.js +0 -19
- package/lib/chunk-6SMI25Y3.js.map +0 -1
- package/lib/chunk-7XR7V6IS.js +0 -2
- package/lib/chunk-7XR7V6IS.js.map +0 -1
- package/lib/chunk-AFURMXX2.js +0 -2
- package/lib/chunk-AFURMXX2.js.map +0 -1
- package/lib/chunk-COONHXCY.js +0 -2
- package/lib/chunk-COONHXCY.js.map +0 -1
- package/lib/chunk-DBYHBFI6.js +0 -206
- package/lib/chunk-DBYHBFI6.js.map +0 -1
- package/lib/chunk-JJR5NJTU.js +0 -75
- package/lib/chunk-JJR5NJTU.js.map +0 -1
- package/lib/chunk-LUVKLLW7.js +0 -2
- package/lib/chunk-LUVKLLW7.js.map +0 -1
- package/lib/chunk-M2C4DTSM.js +0 -46
- package/lib/chunk-M2C4DTSM.js.map +0 -1
- package/lib/chunk-NEOHLVWG.js +0 -2
- package/lib/chunk-NEOHLVWG.js.map +0 -1
- package/lib/chunk-O7INKFFW.js +0 -161
- package/lib/chunk-O7INKFFW.js.map +0 -1
- package/lib/chunk-Q6MAXVON.js +0 -2
- package/lib/chunk-Q6MAXVON.js.map +0 -1
- package/lib/chunk-QEUTBIBK.js +0 -125
- package/lib/chunk-QEUTBIBK.js.map +0 -1
- package/lib/chunk-R72QFX5M.js +0 -495
- package/lib/chunk-R72QFX5M.js.map +0 -1
- package/lib/chunk-TYMPX257.js +0 -268
- package/lib/chunk-TYMPX257.js.map +0 -1
- package/lib/chunk-UICHZXQP.js +0 -3
- package/lib/chunk-UICHZXQP.js.map +0 -1
- package/lib/chunk-WFRMJYD3.js +0 -2
- package/lib/chunk-WFRMJYD3.js.map +0 -1
- package/lib/chunk-Z7GW3RVV.js +0 -658
- package/lib/chunk-Z7GW3RVV.js.map +0 -1
- package/lib/createMenuItem-7R7QR4R6.js +0 -83
- package/lib/createMenuItem-7R7QR4R6.js.map +0 -1
- package/lib/createMenuItem-A3ES4CDV.js +0 -2
- package/lib/createMenuItem-A3ES4CDV.js.map +0 -1
- package/lib/menuItemList-BUUJMOU7.js +0 -129
- package/lib/menuItemList-BUUJMOU7.js.map +0 -1
- package/lib/menuItemList-YFQB4BCS.js +0 -2
- package/lib/menuItemList-YFQB4BCS.js.map +0 -1
- package/lib/roleDetail-H2X34J57.js +0 -2
- package/lib/roleDetail-H2X34J57.js.map +0 -1
- package/lib/roleDetail-IP654MAU.js +0 -72
- package/lib/roleDetail-IP654MAU.js.map +0 -1
- package/lib/roleList-QMAYO4MG.js +0 -161
- package/lib/roleList-QMAYO4MG.js.map +0 -1
- package/lib/roleList-UCMHN5NJ.js +0 -2
- package/lib/roleList-UCMHN5NJ.js.map +0 -1
- package/lib/updateMenuItem-NUYWRAV5.js +0 -2
- package/lib/updateMenuItem-NUYWRAV5.js.map +0 -1
- package/lib/updateMenuItem-SZVEK3TL.js +0 -106
- package/lib/updateMenuItem-SZVEK3TL.js.map +0 -1
- package/lib/userDetail-6XMOY3I4.js +0 -2
- package/lib/userDetail-6XMOY3I4.js.map +0 -1
- package/lib/userDetail-MPTJGRMY.js +0 -118
- package/lib/userDetail-MPTJGRMY.js.map +0 -1
- package/lib/userList-3WABI7V4.js +0 -2
- package/lib/userList-3WABI7V4.js.map +0 -1
- package/lib/userList-KXYDP7V5.js +0 -166
- package/lib/userList-KXYDP7V5.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/createVisibilityStore.ts","../src/utils/generateId.ts","../src/utils/mixedStorage.ts","../src/constants/index.ts","../src/locale/zh_CN.ts","../src/stores/context.ts","../src/stores/game.ts","../src/stores/layout.ts","../src/stores/token.ts","../src/stores/index.ts","../src/components/toolkitsProvider/ToolkitsProvider.tsx","../src/libs/ky.ts","../src/queryKeys.ts"],"names":["PermissionMode","App","request","options"],"mappings":"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","file":"chunk-Z7GW3RVV.js","sourcesContent":["import { create } from 'zustand'\n\nexport interface VisibilityState {\n open: Map<number, boolean>\n usedIds: Set<number>\n isOpen: (uuid: number) => boolean\n show: (uuid: number) => void\n hide: (uuid: number) => void\n hideAll: () => void\n checkUniqueness: (uuid: number) => boolean\n registerIds: (uuid: number) => boolean\n cleanup: (uuid: number) => void\n}\n\n/**\n * 创建一个可见性管理的 Zustand store\n * 用于管理 Modal、Drawer 等组件的显示/隐藏状态\n * 每次调用都会创建一个独立的 store 实例,确保不同组件间的状态隔离\n */\nexport function createVisibilityStore() {\n return create<VisibilityState>()((set, get) => ({\n open: new Map(),\n usedIds: new Set(),\n isOpen(uuid) {\n return get().open.get(uuid) ?? false\n },\n show(uuid) {\n set({ open: new Map(get().open).set(uuid, true) })\n },\n hide(uuid) {\n set({ open: new Map(get().open).set(uuid, false) })\n },\n hideAll() {\n set({ open: new Map() })\n },\n checkUniqueness(uuid) {\n return !get().usedIds.has(uuid)\n },\n registerIds(uuid) {\n const { usedIds } = get()\n if (usedIds.has(uuid)) return false\n\n set({ usedIds: new Set(usedIds).add(uuid) })\n return true\n },\n cleanup(uuid) {\n const { open, usedIds } = get()\n const newOpen = new Map(open)\n const newUsedIds = new Set(usedIds)\n newOpen.delete(uuid)\n newUsedIds.delete(uuid)\n set({ open: newOpen, usedIds: newUsedIds })\n },\n }))\n}\n","/**\n * 生成唯一 ID 的函数\n * 使用时间戳 + 随机数 + 计数器的组合来确保唯一性\n */\nlet globalCounter = 0\n\nexport const generateId = (): number => {\n const timestamp = Date.now()\n const random = Math.floor(Math.random() * 1000)\n const counter = ++globalCounter % 1000\n\n // 组合:时间戳(毫秒) * 1000000 + 随机数 * 1000 + 计数器\n // 这样可以确保即使在同一毫秒内生成多个ID也不会重复\n return timestamp * 1000000 + random * 1000 + counter\n}\n","import type { StateStorage } from 'zustand/middleware'\n\n/**\n * 混合存储策略\n * - 优先从 SessionStorage 读取数据,防止多开页面时的数据冲突\n * - 写入时同时更新 SessionStorage 和 LocalStorage\n * - SessionStorage 不存在时,fallback 到 LocalStorage\n */\nexport const mixedStorage: StateStorage = {\n getItem(name) {\n return sessionStorage.getItem(name) ?? localStorage.getItem(name)\n },\n setItem(name, value) {\n sessionStorage.setItem(name, value)\n localStorage.setItem(name, value)\n },\n removeItem(name) {\n sessionStorage.removeItem(name)\n localStorage.removeItem(name)\n },\n}\n","export const SSO_URL = 'https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1'\n\nexport const APP_ID_HEADER = 'App-ID'\n\nexport const FRONTEND_ROUTE_PREFIX = '/console/'\n\n/**\n * 权限系统模式枚举\n * - GAME_SCOPED: 游戏范围权限(角色权限包含游戏信息)\n * - GROUP_BASED: 基于项目组的权限(需要先选择项目组才能选择游戏)\n * - DIRECT_GAME: 直接游戏权限(不需要项目组,直接选择游戏)\n */\nexport enum PermissionMode {\n /** 游戏范围权限:角色权限包含游戏范围信息 */\n GAME_SCOPED = 'game_scoped',\n /** 基于项目组的权限:权限依赖项目组,需要先选择项目组才能选择游戏 */\n GROUP_BASED = 'group_based',\n /** 直接游戏权限:权限直接选择游戏,不需要项目组作为中间层 */\n DIRECT_GAME = 'direct_game',\n}\n\nexport const WILDCARD = '*'\n","import type { Locale } from '.'\n\nconst locale: Locale = {\n global: {\n noEntitlement: '无权限,请联系管理员',\n name: '名称',\n creationTime: '创建时间',\n operation: '操作',\n update: '更新',\n edit: '编辑',\n delete: '删除',\n selectAll: '全选',\n game: '游戏',\n user: '用户',\n role: '角色',\n username: '用户名',\n password: '密码',\n label: '标签',\n method: '方法',\n route: '路由',\n request: '请求',\n response: '响应',\n add: '添加',\n signIn: '登录',\n projectGroup: '项目组',\n view: '查看',\n back: '返回',\n },\n SignIn: {\n title: '登录方式',\n signInWithIDass: 'IDass 登录',\n unregistered: '您还未在平台注册,请联系管理员',\n welcome: '欢迎',\n },\n NotFound: {\n subTitle: '访问的页面不存在',\n buttonText: '返回首页',\n },\n FilterFormWrapper: {\n confirmText: '查询',\n resetText: '重置',\n },\n FormModal: {\n confirmText: '确认',\n cancelText: '取消',\n },\n GameSelect: {\n label: '当前游戏',\n placeholder: '请选择游戏',\n },\n RequireGame: {\n description: '请选择游戏',\n },\n UserDropdown: {\n signOutText: '登出',\n },\n User: {\n createTitle: '创建用户',\n createSuccessfully: '用户创建成功',\n updateTitle: '更新用户',\n updateSuccessfully: '用户更新成功',\n deleteTitle: '删除用户',\n deleteContent: '确定要删除用户 <%= user %> 吗?',\n deleteSuccessfully: '用户删除成功',\n },\n Role: {\n createTitle: '创建角色',\n createSuccessfully: '角色创建成功',\n updateTitle: '更新角色',\n updateSuccessfully: '角色更新成功',\n deleteTitle: '删除角色',\n deleteContent: '确定要删除角色 <%= role %> 吗?',\n deleteSuccessfully: '角色删除成功',\n },\n PermissionList: {\n failedDescription: '获取权限列表失败',\n baseSectionTitle: '平台基础权限',\n gameSectionTitle: '游戏权限',\n gameSectionDescription: '请先选择游戏',\n gameSelectPlaceholder: '请先选择游戏',\n removeText: '移除',\n addText: '添加游戏权限',\n },\n RoleDetail: {\n title: '角色详情',\n },\n InfiniteList: {\n loadingText: '加载中',\n reachEndText: '已经到底了',\n loadMoreText: '加载更多',\n },\n}\n\nexport default locale\n","import type { StateCreator } from 'zustand'\n\nimport { PermissionMode } from '@/constants'\nimport type { Locale } from '@/locale'\nimport zhCN from '@/locale/zh_CN'\n\nexport interface ContextSlice {\n locale: Locale\n permissionMode: PermissionMode // 权限模式\n useGameApiV2: boolean // 是否使用游戏 API V2 版本\n loginPath: string // 登录页路径\n isGlobalMode: boolean // 为 true 时,APP-ID header 始终使用 'global',否则为当前游戏 id\n gameScoped?: boolean // 数据是否按游戏划分范围,默认为 false\n sidebarWidth?: number // 侧边栏宽度\n sidebarCollapsible?: boolean // 侧边栏是否可折叠\n homePath: string // 首页地址\n apiBaseUrl?: string // 接口基础路径\n}\n\n/** ContextSlice 的默认值 */\nconst defaultContextSlice = {\n locale: zhCN,\n useGameApiV2: false,\n isGlobalMode: false,\n gameScoped: false,\n loginPath: '/sign_in',\n homePath: '/',\n permissionMode: PermissionMode.GAME_SCOPED,\n sidebarWidth: 250,\n} as const\n\nexport const createContextSlice: StateCreator<ContextSlice, [], [], ContextSlice> = () => ({\n ...defaultContextSlice,\n})\n","import type { StateCreator } from 'zustand'\n\nexport interface GameSlice {\n appId?: string | number\n setAppId: (id?: string | number) => void\n}\n\nexport const createGameSlice: StateCreator<GameSlice, [], [], GameSlice> = set => ({\n setAppId: id => set(() => ({ appId: id })),\n})\n","import type { StateCreator } from 'zustand'\n\nexport interface LayoutSlice {\n collapsed: boolean // 侧边栏是否折叠\n toggleCollapsed: () => void\n}\n\nexport const createLayoutSlice: StateCreator<LayoutSlice, [], [], LayoutSlice> = set => ({\n collapsed: false,\n toggleCollapsed: () => set(s => ({ collapsed: !s.collapsed })),\n})\n","import { jwtDecode } from 'jwt-decode'\nimport type { StateCreator } from 'zustand'\n\n/**\n * JWT Token 解码后的用户信息\n */\nexport interface UserInfo {\n authorityId: string\n exp: number\n}\n\nexport interface TokenSlice {\n /** JWT Token */\n token?: string\n user: UserInfo | null\n setToken: (token: string) => void\n clearToken: () => void\n}\n\nconst decodeToken = (token?: string): UserInfo | null => {\n if (!token) return null\n\n try {\n return jwtDecode<UserInfo>(token)\n } catch {\n return null\n }\n}\n\nexport const createTokenSlice: StateCreator<TokenSlice, [], [], TokenSlice> = set => ({\n token: undefined,\n user: null,\n setToken: token => set(() => ({ token, user: decodeToken(token) })),\n clearToken: () => set(() => ({ token: undefined, user: null })),\n})\n","import type { StateCreator, StoreApi } from 'zustand'\nimport { createStore } from 'zustand'\nimport { createJSONStorage, persist } from 'zustand/middleware'\n\nimport { mixedStorage } from '@/utils'\n\nimport { type ContextSlice, createContextSlice } from './context'\nimport { createGameSlice, type GameSlice } from './game'\nimport { createLayoutSlice, type LayoutSlice } from './layout'\nimport { createTokenSlice, type TokenSlice, type UserInfo } from './token'\n\nexport type ToolkitsState = {\n context: ContextSlice\n token: TokenSlice\n game: GameSlice\n layout: LayoutSlice\n clear: () => void\n}\n\n/**\n * 为嵌套结构的 store 创建 slice 适配器\n *\n * 由于 zustand 的标准做法是扁平组合多个 slice,而我们需要嵌套结构(如 `state.token.setToken()`),\n * 因此需要创建适配器来将全局的 `set/get` 转换为针对特定 slice 的 `set/get`。\n *\n * @template K - ToolkitsState 的 key,用于指定要适配的 slice\n * @param set - Zustand store 的全局 set 函数,用于更新整个 state\n * @param get - Zustand store 的全局 get 函数,用于获取整个 state\n * @param key - 要适配的 slice 的 key(如 'token', 'game', 'layout' 等)\n * @returns 返回适配后的 set 和 get 函数,可以直接用于创建对应的 slice\n *\n * @example\n * ```typescript\n * const adapter = createSliceAdapter(set, get, 'token')\n * const tokenSlice = createTokenSlice(adapter.set, adapter.get, store)\n * ```\n */\nfunction createSliceAdapter<K extends keyof ToolkitsState>(\n set: Parameters<StateCreator<ToolkitsState, [], [], ToolkitsState>>[0],\n get: Parameters<StateCreator<ToolkitsState, [], [], ToolkitsState>>[1],\n key: K,\n) {\n type SliceType = ToolkitsState[K]\n\n /**\n * 适配后的 set 函数,用于更新指定的 slice\n *\n * 该函数将 slice 级别的更新转换为全局 state 的更新:\n * - 当 `replace` 为 true 时,完全替换整个 slice\n * - 当 `partial` 为函数时,使用函数式更新\n * - 当 `partial` 为对象时,进行浅合并更新\n */\n const sliceSet: Parameters<StateCreator<SliceType, [], [], SliceType>>[0] = (partial, replace?) => {\n if (replace) {\n // 完全替换模式:获取更新后的值,然后替换整个 slice\n const update = typeof partial === 'function' ? partial(get()[key]) : partial\n set({ ...get(), [key]: update } as ToolkitsState, true)\n } else if (typeof partial === 'function') {\n // 函数式更新:使用当前 slice 状态计算新状态\n set((state): Partial<ToolkitsState> => {\n const updated = { ...state[key], ...partial(state[key]) }\n return { [key]: updated } as unknown as Partial<ToolkitsState>\n })\n } else {\n // 对象式更新:浅合并到当前 slice 状态\n set((state): Partial<ToolkitsState> => {\n const updated = { ...state[key], ...partial }\n return { [key]: updated } as unknown as Partial<ToolkitsState>\n })\n }\n }\n\n /**\n * 适配后的 get 函数,用于获取指定的 slice\n */\n const sliceGet: Parameters<StateCreator<SliceType, [], [], SliceType>>[1] = () => get()[key]\n\n return { set: sliceSet, get: sliceGet }\n}\n\nexport const createToolkitsStore = (initProps?: Partial<ContextSlice>) => {\n return createStore<ToolkitsState>()(\n persist(\n (set, get, store) => {\n /**\n * 统一创建 slice 的辅助函数\n *\n * 该函数封装了 slice 创建的逻辑,包括:\n * 1. 创建适配器(将全局 set/get 转换为 slice 级别的 set/get)\n * 2. 适配 store 类型(将全局 store 转换为 slice 级别的 store)\n * 3. 调用 slice creator 创建 slice\n *\n * @template K - ToolkitsState 的 key\n * @param key - slice 的 key\n * @param creator - slice 的创建函数(StateCreator)\n * @returns 创建好的 slice 实例\n */\n const createSlice = <K extends keyof ToolkitsState>(\n key: K,\n creator: StateCreator<ToolkitsState[K], [], [], ToolkitsState[K]>,\n ) => {\n const adapter = createSliceAdapter(set, get, key)\n // 将全局 store 适配为对应 slice 的 StoreApi(类型转换是安全的,因为实际运行时结构兼容)\n const sliceStore = store as unknown as StoreApi<ToolkitsState[K]>\n return creator(adapter.set, adapter.get, sliceStore)\n }\n\n const tokenSlice = createSlice('token', createTokenSlice)\n const gameSlice = createSlice('game', createGameSlice)\n const layoutSlice = createSlice('layout', createLayoutSlice)\n const contextSlice = createSlice('context', createContextSlice)\n\n return {\n context: {\n ...contextSlice,\n ...initProps,\n },\n token: tokenSlice,\n game: gameSlice,\n layout: layoutSlice,\n clear: () => {\n get().token.clearToken()\n store.persist.clearStorage()\n },\n }\n },\n {\n name: 'ToolkitsStore',\n storage: createJSONStorage(() => mixedStorage),\n partialize: state => ({\n token: state.token.token,\n appId: state.game.appId,\n user: state.token.user,\n collapsed: state.layout.collapsed,\n }),\n merge: (persistedState, currentState) => {\n const { token, user, appId, collapsed } = persistedState as {\n token: string\n user: UserInfo\n appId: string\n collapsed: boolean\n }\n return {\n ...currentState,\n token: { ...currentState.token, token, user },\n game: { ...currentState.game, appId },\n layout: { ...currentState.layout, collapsed: collapsed ?? currentState.layout.collapsed },\n }\n },\n },\n ),\n )\n}\n","import { App } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { createContext, useContext, useRef } from 'react'\nimport { useStore } from 'zustand'\n\nimport type { ToolkitsState } from '@/stores'\nimport { createToolkitsStore } from '@/stores'\nimport type { ContextSlice } from '@/stores/context'\n\ntype ToolkitsStore = ReturnType<typeof createToolkitsStore>\n\nconst ToolkitsContext = createContext<ToolkitsStore | null>(null)\n\n// 重载函数签名:支持有 selector 和无 selector 两种调用方式\nexport function useToolkitsStore(): ToolkitsState\nexport function useToolkitsStore<T>(selector: (state: ToolkitsState) => T): T\nexport function useToolkitsStore<T>(selector?: (state: ToolkitsState) => T) {\n const store = useContext(ToolkitsContext)\n if (!store) {\n const componentStack = new Error().stack\n const componentName = componentStack?.split('\\n')[2]?.trim() || 'Unknown'\n throw new Error(\n `Missing ToolkitsProvider in the tree. Component \"${componentName}\" must be wrapped with <ToolkitsProvider>. Please ensure ToolkitsProvider is rendered above this component in the component tree.`,\n )\n }\n\n return useStore(store, selector ?? (state => state as T))\n}\n\nexport type ToolkitsProviderProps = PropsWithChildren<Partial<ContextSlice>>\n\nconst ToolkitsProvider: FC<ToolkitsProviderProps> = props => {\n const { children, ...restProps } = props\n const storeRef = useRef<ToolkitsStore | undefined>(undefined)\n const parentStore = useContext(ToolkitsContext)\n\n if (!storeRef.current) {\n // 从父级 store 中提取 ContextSlice 相关的属性\n const parentContext = parentStore?.getState().context ?? {}\n\n // restProps 会覆盖父级的对应属性\n storeRef.current = createToolkitsStore({ ...parentContext, ...restProps })\n }\n\n if (!storeRef.current.getState().context.loginPath) {\n throw new Error('ToolkitsProvider: 请配置 \"loginPath\"')\n }\n\n return (\n <ToolkitsContext.Provider value={storeRef.current}>\n <App>\n <>{children}</>\n </App>\n </ToolkitsContext.Provider>\n )\n}\n\nif (process.env.NODE_ENV !== 'production') {\n ToolkitsProvider.displayName = 'ToolkitsProvider'\n}\n\nexport default ToolkitsProvider\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useQueryClient } from '@tanstack/react-query'\nimport { App } from 'antd'\nimport ky, { type KyInstance, type Options as KyOptions } from 'ky'\nimport { useMemo } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { APP_ID_HEADER } from '@/constants'\n\n// 响应成功状态码常量\nconst SUCCESS_RESPONSE_CODES = [0, 1, 200] as const\n\n// HTTP 状态码常量\nconst HTTP_STATUS = {\n OK: 200,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n UNREGISTERED: 412,\n} as const\n\n// 请求超时时间(毫秒)\nconst REQUEST_TIMEOUT = 30000\n\n// 成功响应状态码字段类型\ntype StatusField = 'code' | 'status' | 'errno'\n\n// 状态码检查配置\ninterface StatusCheckConfig {\n field: StatusField\n value: unknown\n allowedCodes: readonly number[]\n}\n\n// 响应类型\nexport type ResponseType = 'json' | 'blob' | 'text' | 'arrayBuffer' | 'formData'\n\n// 通用请求选项接口\ninterface RequestOptions extends KyOptions {\n responseType?: ResponseType\n}\n\n// useKy Hook 配置选项\nexport interface UseKyOptions {\n baseURL?: string\n}\n\n// HTTP客户端方法接口 - 支持泛型响应类型\ninterface KyMethods {\n get: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n post: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n put: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n delete: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n patch: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n options: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n head: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n request: <T = any>(options: RequestOptions & { url: string }) => Promise<T>\n instance: KyInstance\n}\n\n// 错误消息提取工具函数\nconst extractErrorMessage = (data: any): string => {\n if (!data || typeof data !== 'object') {\n return 'Unknown error'\n }\n\n return data.msg || data.message || data.error || 'Unknown error'\n}\n\n/**\n * 检查单个状态码字段是否成功\n * @param config 状态码检查配置\n * @returns 是否成功\n */\nconst isStatusCodeSuccess = (config: StatusCheckConfig): boolean => {\n const { value, allowedCodes } = config\n\n if (value === undefined || value === null) {\n return false\n }\n\n if (typeof value !== 'number') {\n return false\n }\n\n return allowedCodes.includes(value)\n}\n\n/**\n * 判断响应是否成功\n * @param data 响应数据\n * @param status HTTP状态码\n * @returns 是否成功\n */\nconst isSuccessResponse = (data: any, status: number): boolean => {\n // 如果HTTP状态码不在2xx范围,直接返回失败\n if (status < HTTP_STATUS.OK || status >= 300) {\n return false\n }\n\n // 如果没有响应数据或不是对象,认为成功(可能是空响应)\n if (!data || typeof data !== 'object') {\n return true\n }\n\n // 定义状态码检查配置\n const statusChecks: StatusCheckConfig[] = [\n { field: 'code', value: data.code, allowedCodes: SUCCESS_RESPONSE_CODES },\n { field: 'status', value: data.status, allowedCodes: SUCCESS_RESPONSE_CODES },\n { field: 'errno', value: data.errno, allowedCodes: SUCCESS_RESPONSE_CODES },\n ]\n\n // 检查是否有任何业务状态码字段存在且表示成功\n const hasBusinessStatusCode = statusChecks.some(config => config.value !== undefined && config.value !== null)\n\n // 如果存在业务状态码字段,则必须检查它们是否都表示成功\n if (hasBusinessStatusCode) {\n return statusChecks.every(\n config => config.value === undefined || config.value === null || isStatusCodeSuccess(config),\n )\n }\n\n // 如果没有业务状态码字段,HTTP 2xx 就认为成功\n return true\n}\n\n/**\n * 根据响应类型处理响应数据\n * @param response 响应对象\n * @param responseType 响应类型\n * @returns 处理后的响应数据\n */\nconst processResponseByType = async (response: Response, responseType?: ResponseType): Promise<any> => {\n switch (responseType) {\n case 'blob':\n return response.blob()\n case 'text':\n return response.text()\n case 'arrayBuffer':\n return response.arrayBuffer()\n case 'formData':\n return response.formData()\n case 'json':\n default:\n return response.json()\n }\n}\n\n/**\n * HTTP客户端Hook (基于 Ky) - 内部使用版本\n * @param config 配置选项\n * @returns HTTP客户端方法集合\n */\nexport const useKy = (config?: UseKyOptions): KyMethods => {\n const { baseURL } = config || {}\n const { notification } = App.useApp()\n\n const navigate = useNavigate()\n\n const queryClient = useQueryClient()\n\n const {\n token: { token },\n context: { isGlobalMode, loginPath, apiBaseUrl },\n game: { appId },\n clear,\n } = useToolkitsStore()\n\n // 处理未授权错误\n const handleUnauthorized = () => {\n clear()\n // 清除 React Query 缓存\n queryClient.clear()\n navigate(loginPath)\n }\n\n // 处理未注册错误\n const handleUnregistered = () => {\n clear()\n // 清除 React Query 缓存\n queryClient.clear()\n if (loginPath) {\n // 添加未注册参数到登录页 URL\n const url = new URL(loginPath, window.location.origin)\n url.searchParams.set('unregistered', 'true')\n navigate(url.toString())\n }\n }\n\n // 处理禁止访问错误\n const handleForbidden = () => {\n notification.error({\n title: '访问被禁止',\n description: '您没有权限访问此资源。',\n })\n }\n\n // 创建响应处理函数\n const createResponseHandler = (responseType?: ResponseType) => {\n return async (_request: any, _options: any, response: Response): Promise<Response> => {\n // 非 JSON 类型直接交由调用方按响应类型读取\n if (\n responseType === 'blob' ||\n responseType === 'arrayBuffer' ||\n responseType === 'text' ||\n responseType === 'formData'\n ) {\n return response\n }\n\n // 默认 JSON\n let data: any\n try {\n data = await response.clone().json()\n } catch {\n // 非 JSON 或空响应体,直接返回原响应\n return response\n }\n\n if (isSuccessResponse(data, response.status)) {\n return new Response(JSON.stringify(data), {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n })\n }\n\n const errorMessage = extractErrorMessage(data)\n\n notification.error({\n title: 'Request failed',\n description: errorMessage,\n })\n\n const error = new Error(errorMessage)\n ;(error as any).response = response\n ;(error as any).data = data\n throw error\n }\n }\n\n // 处理HTTP状态码错误\n const handleHttpStatusError = (status: number, data: any) => {\n switch (status) {\n case HTTP_STATUS.UNAUTHORIZED:\n handleUnauthorized()\n break\n\n case HTTP_STATUS.UNREGISTERED:\n handleUnregistered()\n break\n\n case HTTP_STATUS.FORBIDDEN:\n handleForbidden()\n break\n\n default: {\n // 安全地提取错误消息\n const errorMessage = extractErrorMessage(data) || `HTTP ${status} Error`\n notification.error({\n title: 'Request failed',\n description: errorMessage,\n })\n break\n }\n }\n }\n\n // 创建ky实例\n const instance = useMemo(() => {\n return ky.create({\n prefixUrl: baseURL ?? apiBaseUrl,\n retry: 0,\n timeout: REQUEST_TIMEOUT,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n hooks: {\n beforeRequest: [\n request => {\n // 设置认证 headers\n if (token) {\n request.headers.set('Authorization', `Bearer ${token}`)\n }\n\n // 设置应用 ID headers\n if (!request.headers.has(APP_ID_HEADER)) {\n if (isGlobalMode || !appId) {\n request.headers.set(APP_ID_HEADER, 'global')\n } else {\n // 对 appId 进行 URL 编码以避免非 ASCII 字符导致的 XMLHttpRequest 错误\n request.headers.set(APP_ID_HEADER, encodeURIComponent(String(appId)))\n }\n }\n },\n ],\n beforeError: [\n async error => {\n const { response } = error\n\n if (response) {\n const status = response.status\n let data: any\n\n try {\n const contentType = response.headers.get('content-type') || ''\n if (contentType.includes('application/json') || contentType.startsWith('text/')) {\n data = await response.clone().json()\n }\n } catch {\n // 忽略 JSON 解析错误\n }\n\n handleHttpStatusError(status, data)\n } else {\n // 网络错误或请求超时等情况\n notification.error({\n title: 'Network Error',\n description: error.message || 'Network request failed',\n })\n }\n\n return error\n },\n ],\n },\n })\n }, [baseURL, token, isGlobalMode, appId, notification, loginPath, clear, queryClient, apiBaseUrl])\n\n // 通用请求处理函数\n const makeRequest = async <T = any>(\n method: string,\n url: string,\n data?: any,\n requestOptions?: RequestOptions,\n ): Promise<T> => {\n const { responseType, ...kyOptions } = requestOptions || {}\n\n // 创建带有响应类型处理器的请求选项\n const finalOptions: KyOptions = {\n ...kyOptions,\n hooks: {\n ...kyOptions.hooks,\n afterResponse: [...(kyOptions.hooks?.afterResponse || []), createResponseHandler(responseType)],\n },\n }\n\n let response: Response\n\n if (data) {\n response = await instance(url, { method, json: data, ...finalOptions })\n } else {\n response = await instance(url, { method, ...finalOptions })\n }\n\n // 根据响应类型返回相应数据\n return processResponseByType(response, responseType)\n }\n\n // HTTP方法\n const get = <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('GET', url, undefined, options)\n }\n\n const post = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('POST', url, data, options)\n }\n\n const put = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('PUT', url, data, options)\n }\n\n const del = <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('DELETE', url, undefined, options)\n }\n\n const patch = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('PATCH', url, data, options)\n }\n\n const options = <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return makeRequest<T>('OPTIONS', url, undefined, requestOptions)\n }\n\n const head = <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return makeRequest<T>('HEAD', url, undefined, requestOptions)\n }\n\n const request = <T = any>(requestOptions: RequestOptions & { url: string }): Promise<T> => {\n const { url, ...requestOpts } = requestOptions\n return makeRequest<T>(requestOpts.method || 'GET', url, undefined, requestOpts)\n }\n\n return {\n get,\n post,\n put,\n delete: del,\n patch,\n options,\n head,\n request,\n instance,\n }\n}\n\n// 提取响应数据中的 data 字段\nconst extractData = <T = any>(response: any): T => {\n if (response && typeof response === 'object' && 'data' in response && response.data !== undefined) {\n return response.data as T\n }\n return response as T\n}\n\n/**\n * HTTP 请求 Hook - 返回 data.data\n * @param config 配置选项\n * @returns HTTP 请求方法集合\n */\nexport const useHttpRequest = (config?: UseKyOptions) => {\n const kyClient = useKy(config)\n\n return {\n get: <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return kyClient.get<any>(url, options).then(extractData<T>)\n },\n post: <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return kyClient.post<any>(url, data, options).then(extractData<T>)\n },\n put: <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return kyClient.put<any>(url, data, options).then(extractData<T>)\n },\n delete: <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return kyClient.delete<any>(url, options).then(extractData<T>)\n },\n patch: <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return kyClient.patch<any>(url, data, options).then(extractData<T>)\n },\n options: <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return kyClient.options<any>(url, requestOptions).then(extractData<T>)\n },\n head: <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return kyClient.head<any>(url, requestOptions).then(extractData<T>)\n },\n request: <T = any>(requestOptions: RequestOptions & { url: string }): Promise<T> => {\n return kyClient.request<any>(requestOptions).then(extractData<T>)\n },\n }\n}\n\nexport const useHttpGet = (config?: UseKyOptions) => {\n const http = useHttpRequest(config)\n return http.get\n}\n\nexport const useHttpPost = (config?: UseKyOptions) => {\n const http = useHttpRequest(config)\n return http.post\n}\n\nexport const useHttpPut = (config?: UseKyOptions) => {\n const http = useHttpRequest(config)\n return http.put\n}\n\nexport const useHttpDelete = (config?: UseKyOptions) => {\n const http = useHttpRequest(config)\n return http.delete\n}\n\nexport const useHttpPatch = (config?: UseKyOptions) => {\n const http = useHttpRequest(config)\n return http.patch\n}\n","import type { PermissionMode } from './constants'\n\n// 查询键工厂 - 使用简单的对象和函数来生成查询键\nexport const queryKeys = {\n // 权限相关\n permissions: {\n check: (permissions: string[], mode: PermissionMode) => ['permissions', 'check', permissions, mode] as const,\n allPermissions: ['permissions', 'all'] as const,\n allPermissionsV2: ['permissions', 'allV2'] as const,\n },\n // 用户相关\n users: {\n all: ['users'] as const,\n detail: (id: string) => ['users', 'detail', id] as const,\n create: ['users', 'create'] as const,\n update: ['users', 'update'] as const,\n delete: ['users', 'delete'] as const,\n },\n // 角色相关\n roles: {\n all: ['roles'] as const,\n detail: (name: string, mode: PermissionMode) => ['roles', 'detail', name, mode] as const,\n create: (mode: PermissionMode) => ['roles', 'create', mode] as const,\n update: (mode: PermissionMode) => ['roles', 'update', mode] as const,\n delete: ['roles', 'delete'] as const,\n },\n // 菜单相关\n menus: {\n all: ['menus'] as const,\n navbar: (appId?: string) => ['menus', 'navbar', appId] as const,\n detail: (id: number) => ['menus', 'detail', id] as const,\n create: ['menus', 'create'] as const,\n update: ['menus', 'update'] as const,\n delete: ['menus', 'delete'] as const,\n },\n // 枚举相关\n enums: {\n gameGroups: ['enums', 'gameGroups'] as const,\n gameIds: (gameGroups: string[]) => ['enums', 'gameIds', gameGroups] as const,\n },\n // 游戏相关\n games: {\n all: ['games', 'all'] as const,\n },\n // 认证相关\n auth: {\n ticketLogin: (ticket: string | null) => ['auth', 'ticket-login', ticket] as const,\n },\n}\n\nexport type QueryKeys = typeof queryKeys\n"]}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { useCreateMenu } from './chunk-M2C4DTSM.js';
|
|
2
|
-
import { __name, FRONTEND_ROUTE_PREFIX } from './chunk-Z7GW3RVV.js';
|
|
3
|
-
import { Editor } from '@monaco-editor/react';
|
|
4
|
-
import { App, Form, Card, Input, Switch, InputNumber, Button } from 'antd';
|
|
5
|
-
import { useNavigate } from 'react-router-dom';
|
|
6
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
var CreateMenuItem = /* @__PURE__ */ __name(() => {
|
|
9
|
-
const { message } = App.useApp();
|
|
10
|
-
const [form] = Form.useForm();
|
|
11
|
-
const navigate = useNavigate();
|
|
12
|
-
const { mutateAsync: createMenu } = useCreateMenu();
|
|
13
|
-
const onFinish = /* @__PURE__ */ __name(async (values) => {
|
|
14
|
-
const { permissions, front_route, ...rest } = values;
|
|
15
|
-
await createMenu({
|
|
16
|
-
...rest,
|
|
17
|
-
front_route: FRONTEND_ROUTE_PREFIX + front_route,
|
|
18
|
-
permissions: permissions ? JSON.parse(permissions) : void 0
|
|
19
|
-
});
|
|
20
|
-
message.success("\u521B\u5EFA\u6210\u529F", 0.8, () => navigate("..", { relative: "route" }));
|
|
21
|
-
}, "onFinish");
|
|
22
|
-
return /* @__PURE__ */ jsx(Card, { title: "\u521B\u5EFA\u83DC\u5355\u9879", children: /* @__PURE__ */ jsxs(
|
|
23
|
-
Form,
|
|
24
|
-
{
|
|
25
|
-
scrollToFirstError: true,
|
|
26
|
-
form,
|
|
27
|
-
labelCol: { flex: "120px" },
|
|
28
|
-
initialValues: { is_common: false, is_model: false, order: 0 },
|
|
29
|
-
onFinish,
|
|
30
|
-
children: [
|
|
31
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "\u83DC\u5355\u9879\u540D\u79F0", name: "category", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
|
|
32
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "\u524D\u7AEF\u8DEF\u7531", name: "front_route", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { prefix: FRONTEND_ROUTE_PREFIX }) }),
|
|
33
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "\u6A21\u677F\u540D\u79F0", name: "model_name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
|
|
34
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "Is Common", name: "is_common", rules: [{ required: true }], valuePropName: "checked", children: /* @__PURE__ */ jsx(Switch, {}) }),
|
|
35
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "Order", name: "order", children: /* @__PURE__ */ jsx(InputNumber, { className: "w-full" }) }),
|
|
36
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "\u63A5\u53E3\u89C4\u5219", name: "permissions", children: /* @__PURE__ */ jsx(
|
|
37
|
-
Editor,
|
|
38
|
-
{
|
|
39
|
-
theme: "vs-dark",
|
|
40
|
-
height: "300px",
|
|
41
|
-
language: "json",
|
|
42
|
-
options: {
|
|
43
|
-
minimap: {
|
|
44
|
-
enabled: false
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
) }),
|
|
49
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "Schema", name: "scheme", rules: [{ required: true }], children: /* @__PURE__ */ jsx(
|
|
50
|
-
Editor,
|
|
51
|
-
{
|
|
52
|
-
theme: "vs-dark",
|
|
53
|
-
height: "600px",
|
|
54
|
-
language: "json",
|
|
55
|
-
options: {
|
|
56
|
-
minimap: {
|
|
57
|
-
enabled: false
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
) }),
|
|
62
|
-
/* @__PURE__ */ jsx(Form.Item, { label: "Ext", name: "ext", children: /* @__PURE__ */ jsx(Input.TextArea, { rows: 5 }) }),
|
|
63
|
-
/* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center gap-8", children: [
|
|
64
|
-
/* @__PURE__ */ jsx(Button, { type: "primary", htmlType: "submit", children: "\u63D0\u4EA4" }),
|
|
65
|
-
/* @__PURE__ */ jsx(
|
|
66
|
-
Button,
|
|
67
|
-
{
|
|
68
|
-
onClick: () => {
|
|
69
|
-
navigate("..", { relative: "path" });
|
|
70
|
-
},
|
|
71
|
-
children: "\u53D6\u6D88"
|
|
72
|
-
}
|
|
73
|
-
)
|
|
74
|
-
] }) })
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
) });
|
|
78
|
-
}, "CreateMenuItem");
|
|
79
|
-
var createMenuItem_default = CreateMenuItem;
|
|
80
|
-
|
|
81
|
-
export { createMenuItem_default as default };
|
|
82
|
-
//# sourceMappingURL=createMenuItem-7R7QR4R6.js.map
|
|
83
|
-
//# sourceMappingURL=createMenuItem-7R7QR4R6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":[],"mappings":";;;;;;;AAWA,IAAM,iCAAiB,MAAA,CAAA,MAAM;AACzB,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,GAAA,CAAI,MAAA,EAAO;AAC/B,EAAA,MAAM,CAAC,IAAI,CAAA,GAAI,IAAA,CAAK,OAAA,EAAoB;AACxC,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAW,GAAI,aAAA,EAAc;AAElD,EAAA,MAAM,QAAA,iCAAkB,MAAA,KAAuB;AAC7C,IAAA,MAAM,EAAE,WAAA,EAAa,WAAA,EAAa,GAAG,MAAK,GAAI,MAAA;AAC9C,IAAA,MAAM,UAAA,CAAW;AAAA,MACf,GAAG,IAAA;AAAA,MACH,aAAa,qBAAA,GAAwB,WAAA;AAAA,MACrC,WAAA,EAAa,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,WAAW,CAAA,GAAI;AAAA,KACtD,CAAA;AACD,IAAA,OAAA,CAAQ,OAAA,CAAQ,0BAAA,EAAQ,GAAA,EAAK,MAAM,QAAA,CAAS,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,CAAC,CAAA;AAAA,EAC1E,CAAA,EARiB,UAAA,CAAA;AAUjB,EAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,gCAAA,EACV,QAAA,kBAAA,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,kBAAA,EAAkB,IAAA;AAAA,MAClB,IAAA;AAAA,MACA,QAAA,EAAU,EAAE,IAAA,EAAM,OAAA,EAAQ;AAAA,MAC1B,eAAe,EAAE,SAAA,EAAW,OAAO,QAAA,EAAU,KAAA,EAAO,OAAO,CAAA,EAAE;AAAA,MAC7D,QAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAK,IAAA,EAAL,EAAU,KAAA,EAAM,gCAAA,EAAQ,MAAK,UAAA,EAAW,KAAA,EAAO,CAAC,EAAE,UAAU,IAAA,EAAM,CAAA,EACjE,QAAA,kBAAA,GAAA,CAAC,SAAM,CAAA,EACT,CAAA;AAAA,4BACC,IAAA,CAAK,IAAA,EAAL,EAAU,KAAA,EAAM,0BAAA,EAAO,MAAK,aAAA,EAAc,KAAA,EAAO,CAAC,EAAE,QAAA,EAAU,MAAM,CAAA,EACnE,8BAAC,KAAA,EAAA,EAAM,MAAA,EAAQ,uBAAuB,CAAA,EACxC,CAAA;AAAA,4BACC,IAAA,CAAK,IAAA,EAAL,EAAU,KAAA,EAAM,4BAAO,IAAA,EAAK,YAAA,EAAa,KAAA,EAAO,CAAC,EAAE,QAAA,EAAU,IAAA,EAAM,CAAA,EAClE,QAAA,kBAAA,GAAA,CAAC,SAAM,CAAA,EACT,CAAA;AAAA,4BACC,IAAA,CAAK,IAAA,EAAL,EAAU,KAAA,EAAM,WAAA,EAAY,MAAK,WAAA,EAAY,KAAA,EAAO,CAAC,EAAE,QAAA,EAAU,MAAM,CAAA,EAAG,eAAc,SAAA,EACvF,QAAA,kBAAA,GAAA,CAAC,UAAO,CAAA,EACV,CAAA;AAAA,wBACA,GAAA,CAAC,IAAA,CAAK,IAAA,EAAL,EAAU,KAAA,EAAM,OAAA,EAAQ,IAAA,EAAK,OAAA,EAC5B,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,QAAA,EAAS,CAAA,EAClC,CAAA;AAAA,4BACC,IAAA,CAAK,IAAA,EAAL,EAAU,KAAA,EAAM,0BAAA,EAAO,MAAK,aAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,SAAA;AAAA,YACN,MAAA,EAAO,OAAA;AAAA,YACP,QAAA,EAAS,MAAA;AAAA,YACT,OAAA,EAAS;AAAA,cACP,OAAA,EAAS;AAAA,gBACP,OAAA,EAAS;AAAA;AACX;AACF;AAAA,SACF,EACF,CAAA;AAAA,wBACA,GAAA,CAAC,IAAA,CAAK,IAAA,EAAL,EAAU,OAAM,QAAA,EAAS,IAAA,EAAK,QAAA,EAAS,KAAA,EAAO,CAAC,EAAE,QAAA,EAAU,IAAA,EAAM,CAAA,EAChE,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,SAAA;AAAA,YACN,MAAA,EAAO,OAAA;AAAA,YACP,QAAA,EAAS,MAAA;AAAA,YACT,OAAA,EAAS;AAAA,cACP,OAAA,EAAS;AAAA,gBACP,OAAA,EAAS;AAAA;AACX;AACF;AAAA,SACF,EACF,CAAA;AAAA,wBACA,GAAA,CAAC,IAAA,CAAK,IAAA,EAAL,EAAU,OAAM,KAAA,EAAM,IAAA,EAAK,KAAA,EAC1B,QAAA,kBAAA,GAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EAAe,IAAA,EAAM,GAAG,CAAA,EAC3B,CAAA;AAAA,4BACC,IAAA,CAAK,IAAA,EAAL,EACC,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2BAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,SAAA,EAAU,QAAA,EAAS,UAAS,QAAA,EAAA,cAAA,EAEzC,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAS,MAAM;AACb,gBAAA,QAAA,CAAS,IAAA,EAAM,EAAE,QAAA,EAAU,MAAA,EAAQ,CAAA;AAAA,cACrC,CAAA;AAAA,cACD,QAAA,EAAA;AAAA;AAAA;AAED,SAAA,EACF,CAAA,EACF;AAAA;AAAA;AAAA,GACF,EACF,CAAA;AAEN,CAAA,EApFuB,gBAAA,CAAA;AAsFvB,IAAO,sBAAA,GAAQ","file":"createMenuItem-7R7QR4R6.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport type { MenuListItem } from '@/types'\n\nimport { useCreateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst CreateMenuItem = () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutateAsync: createMenu } = useCreateMenu()\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n await createMenu({\n ...rest,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n })\n message.success('创建成功', 0.8, () => navigate('..', { relative: 'route' }))\n }\n\n return (\n <Card title=\"创建菜单项\">\n <Form\n scrollToFirstError\n form={form}\n labelCol={{ flex: '120px' }}\n initialValues={{ is_common: false, is_model: false, order: 0 }}\n onFinish={onFinish}\n >\n <Form.Item label=\"菜单项名称\" name=\"category\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"前端路由\" name=\"front_route\" rules={[{ required: true }]}>\n <Input prefix={FRONTEND_ROUTE_PREFIX} />\n </Form.Item>\n <Form.Item label=\"模板名称\" name=\"model_name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"Is Common\" name=\"is_common\" rules={[{ required: true }]} valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Order\" name=\"order\">\n <InputNumber className=\"w-full\" />\n </Form.Item>\n <Form.Item label=\"接口规则\" name=\"permissions\">\n <Editor\n theme=\"vs-dark\"\n height=\"300px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Schema\" name=\"scheme\" rules={[{ required: true }]}>\n <Editor\n theme=\"vs-dark\"\n height=\"600px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Ext\" name=\"ext\">\n <Input.TextArea rows={5} />\n </Form.Item>\n <Form.Item>\n <div className=\"flex justify-center gap-8\">\n <Button type=\"primary\" htmlType=\"submit\">\n 提交\n </Button>\n <Button\n onClick={() => {\n navigate('..', { relative: 'path' })\n }}\n >\n 取消\n </Button>\n </div>\n </Form.Item>\n </Form>\n </Card>\n )\n}\n\nexport default CreateMenuItem\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-Q6MAXVON.js';import {f}from'./chunk-UICHZXQP.js';import {Editor}from'@monaco-editor/react';import {App,Form,Card,Input,Switch,InputNumber,Button}from'antd';import {useNavigate}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var v=()=>{let{message:u}=App.useApp(),[p]=Form.useForm(),o=useNavigate(),{mutateAsync:c}=a();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:true,form:p,labelCol:{flex:"120px"},initialValues:{is_common:false,is_model:false,order:0},onFinish:async I=>{let{permissions:s,front_route:d,...f$1}=I;await c({...f$1,front_route:f+d,permissions:s?JSON.parse(s):void 0}),u.success("\u521B\u5EFA\u6210\u529F",.8,()=>o("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:true}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:true}],children:jsx(Input,{prefix:f})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:true}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:true}],valuePropName:"checked",children:jsx(Switch,{})}),jsx(Form.Item,{label:"Order",name:"order",children:jsx(InputNumber,{className:"w-full"})}),jsx(Form.Item,{label:"\u63A5\u53E3\u89C4\u5219",name:"permissions",children:jsx(Editor,{theme:"vs-dark",height:"300px",language:"json",options:{minimap:{enabled:false}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:true}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:false}}})}),jsx(Form.Item,{label:"Ext",name:"ext",children:jsx(Input.TextArea,{rows:5})}),jsx(Form.Item,{children:jsxs("div",{className:"flex justify-center gap-8",children:[jsx(Button,{type:"primary",htmlType:"submit",children:"\u63D0\u4EA4"}),jsx(Button,{onClick:()=>{o("..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},q=v;export{q as default};//# sourceMappingURL=createMenuItem-A3ES4CDV.js.map
|
|
2
|
-
//# sourceMappingURL=createMenuItem-A3ES4CDV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","message","App","form","Form","navigate","useNavigate","createMenu","useCreateMenu","jsx","Card","jsxs","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","Input","Switch","InputNumber","Editor","Button","createMenuItem_default"],"mappings":"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","file":"createMenuItem-A3ES4CDV.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport type { MenuListItem } from '@/types'\n\nimport { useCreateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst CreateMenuItem = () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutateAsync: createMenu } = useCreateMenu()\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n await createMenu({\n ...rest,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n })\n message.success('创建成功', 0.8, () => navigate('..', { relative: 'route' }))\n }\n\n return (\n <Card title=\"创建菜单项\">\n <Form\n scrollToFirstError\n form={form}\n labelCol={{ flex: '120px' }}\n initialValues={{ is_common: false, is_model: false, order: 0 }}\n onFinish={onFinish}\n >\n <Form.Item label=\"菜单项名称\" name=\"category\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"前端路由\" name=\"front_route\" rules={[{ required: true }]}>\n <Input prefix={FRONTEND_ROUTE_PREFIX} />\n </Form.Item>\n <Form.Item label=\"模板名称\" name=\"model_name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"Is Common\" name=\"is_common\" rules={[{ required: true }]} valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Order\" name=\"order\">\n <InputNumber className=\"w-full\" />\n </Form.Item>\n <Form.Item label=\"接口规则\" name=\"permissions\">\n <Editor\n theme=\"vs-dark\"\n height=\"300px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Schema\" name=\"scheme\" rules={[{ required: true }]}>\n <Editor\n theme=\"vs-dark\"\n height=\"600px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Ext\" name=\"ext\">\n <Input.TextArea rows={5} />\n </Form.Item>\n <Form.Item>\n <div className=\"flex justify-center gap-8\">\n <Button type=\"primary\" htmlType=\"submit\">\n 提交\n </Button>\n <Button\n onClick={() => {\n navigate('..', { relative: 'path' })\n }}\n >\n 取消\n </Button>\n </div>\n </Form.Item>\n </Form>\n </Card>\n )\n}\n\nexport default CreateMenuItem\n"]}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { useRemoveMenu } from './chunk-M2C4DTSM.js';
|
|
2
|
-
import { useQueryListStore, QueryList_default, Highlight_default } from './chunk-R72QFX5M.js';
|
|
3
|
-
import { useTranslation } from './chunk-6SMI25Y3.js';
|
|
4
|
-
import { useMenuList } from './chunk-JJR5NJTU.js';
|
|
5
|
-
import { __name } from './chunk-Z7GW3RVV.js';
|
|
6
|
-
import { App, Card, Button, Space, Popconfirm } from 'antd';
|
|
7
|
-
import { useNavigate } from 'react-router-dom';
|
|
8
|
-
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
9
|
-
|
|
10
|
-
var MenuItemList = /* @__PURE__ */ __name(() => {
|
|
11
|
-
const { t } = useTranslation();
|
|
12
|
-
const { message } = App.useApp();
|
|
13
|
-
const remove = useRemoveMenu();
|
|
14
|
-
const { refetch } = useQueryListStore();
|
|
15
|
-
const { refetch: refetchMenuList } = useMenuList();
|
|
16
|
-
const navigate = useNavigate();
|
|
17
|
-
const columns = [
|
|
18
|
-
{
|
|
19
|
-
title: "\u83DC\u5355\u540D\u79F0",
|
|
20
|
-
dataIndex: "category",
|
|
21
|
-
key: "category"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
title: "\u524D\u7AEF\u8DEF\u7531",
|
|
25
|
-
dataIndex: "front_route"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
title: "Order",
|
|
29
|
-
dataIndex: "order"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
title: "Is Common",
|
|
33
|
-
dataIndex: "is_common",
|
|
34
|
-
key: "is_common",
|
|
35
|
-
render: /* @__PURE__ */ __name((value) => value ? "\u662F" : "\u5426", "render")
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
title: "\u6A21\u677F\u540D\u79F0",
|
|
39
|
-
dataIndex: "model_name",
|
|
40
|
-
key: "model_name"
|
|
41
|
-
},
|
|
42
|
-
// {
|
|
43
|
-
// title: '是否预设',
|
|
44
|
-
// dataIndex: 'is_model',
|
|
45
|
-
// key: 'is_model',
|
|
46
|
-
// render: value => (value ? '否' : '是'),
|
|
47
|
-
// },
|
|
48
|
-
{
|
|
49
|
-
title: "\u64CD\u4F5C",
|
|
50
|
-
key: "action",
|
|
51
|
-
width: 150,
|
|
52
|
-
align: "center",
|
|
53
|
-
render(_, record) {
|
|
54
|
-
if (record.is_model) {
|
|
55
|
-
return /* @__PURE__ */ jsxs(Space, { size: "small", children: [
|
|
56
|
-
/* @__PURE__ */ jsx(
|
|
57
|
-
Button,
|
|
58
|
-
{
|
|
59
|
-
type: "link",
|
|
60
|
-
onClick: () => {
|
|
61
|
-
navigate(`./update/${record.id}`);
|
|
62
|
-
},
|
|
63
|
-
children: t("global.update")
|
|
64
|
-
}
|
|
65
|
-
),
|
|
66
|
-
/* @__PURE__ */ jsx(
|
|
67
|
-
Popconfirm,
|
|
68
|
-
{
|
|
69
|
-
title: "\u5220\u9664\u83DC\u5355",
|
|
70
|
-
placement: "topRight",
|
|
71
|
-
description: /* @__PURE__ */ jsxs(Highlight_default, { texts: [record.category], children: [
|
|
72
|
-
"\u786E\u5B9A\u8981\u5220\u9664\u83DC\u5355 ",
|
|
73
|
-
record.category,
|
|
74
|
-
" \u5417\uFF1F"
|
|
75
|
-
] }),
|
|
76
|
-
onConfirm: async () => {
|
|
77
|
-
await remove.mutateAsync(record.id);
|
|
78
|
-
refetch("menu-item-list");
|
|
79
|
-
refetchMenuList();
|
|
80
|
-
message.success("\u5220\u9664\u6210\u529F");
|
|
81
|
-
},
|
|
82
|
-
children: /* @__PURE__ */ jsx(Button, { danger: true, type: "link", size: "small", children: t("global.delete") })
|
|
83
|
-
}
|
|
84
|
-
)
|
|
85
|
-
] });
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
];
|
|
91
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
92
|
-
Card,
|
|
93
|
-
{
|
|
94
|
-
title: "\u83DC\u5355\u7BA1\u7406",
|
|
95
|
-
extra: /* @__PURE__ */ jsx(
|
|
96
|
-
Button,
|
|
97
|
-
{
|
|
98
|
-
type: "primary",
|
|
99
|
-
onClick: () => {
|
|
100
|
-
navigate("./create");
|
|
101
|
-
},
|
|
102
|
-
children: "\u521B\u5EFA\u83DC\u5355\u9879"
|
|
103
|
-
}
|
|
104
|
-
),
|
|
105
|
-
children: /* @__PURE__ */ jsx(
|
|
106
|
-
QueryList_default,
|
|
107
|
-
{
|
|
108
|
-
identifier: "menu-item-list",
|
|
109
|
-
onePage: true,
|
|
110
|
-
code: "9900001",
|
|
111
|
-
rowKey: "id",
|
|
112
|
-
columns,
|
|
113
|
-
request: {
|
|
114
|
-
url: "/api/usystem/menu/list",
|
|
115
|
-
method: "GET"
|
|
116
|
-
},
|
|
117
|
-
dataAdapter: (data) => ({
|
|
118
|
-
items: data
|
|
119
|
-
})
|
|
120
|
-
}
|
|
121
|
-
)
|
|
122
|
-
}
|
|
123
|
-
) });
|
|
124
|
-
}, "MenuItemList");
|
|
125
|
-
var menuItemList_default = MenuItemList;
|
|
126
|
-
|
|
127
|
-
export { menuItemList_default as default };
|
|
128
|
-
//# sourceMappingURL=menuItemList-BUUJMOU7.js.map
|
|
129
|
-
//# sourceMappingURL=menuItemList-BUUJMOU7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":[],"mappings":"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","file":"menuItemList-BUUJMOU7.js","sourcesContent":["import type { TableColumnsType } from 'antd'\nimport { App, Button, Card, Popconfirm, Space } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { Highlight } from '@/components/highlight'\nimport { QueryList, useQueryListStore } from '@/components/queryList'\nimport { useTranslation } from '@/locale'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useRemoveMenu } from '../../services'\n\nconst MenuItemList = () => {\n const { t } = useTranslation()\n const { message } = App.useApp()\n const remove = useRemoveMenu()\n const { refetch } = useQueryListStore()\n const { refetch: refetchMenuList } = useMenuList()\n const navigate = useNavigate()\n\n const columns: TableColumnsType<MenuListItem> = [\n {\n title: '菜单名称',\n dataIndex: 'category',\n key: 'category',\n },\n {\n title: '前端路由',\n dataIndex: 'front_route',\n },\n {\n title: 'Order',\n dataIndex: 'order',\n },\n {\n title: 'Is Common',\n dataIndex: 'is_common',\n key: 'is_common',\n render: value => (value ? '是' : '否'),\n },\n {\n title: '模板名称',\n dataIndex: 'model_name',\n key: 'model_name',\n },\n // {\n // title: '是否预设',\n // dataIndex: 'is_model',\n // key: 'is_model',\n // render: value => (value ? '否' : '是'),\n // },\n {\n title: '操作',\n key: 'action',\n width: 150,\n align: 'center',\n render(_, record) {\n if (record.is_model) {\n return (\n <Space size=\"small\">\n <Button\n type=\"link\"\n onClick={() => {\n navigate(`./update/${record.id}`)\n }}\n >\n {t('global.update')}\n </Button>\n <Popconfirm\n title=\"删除菜单\"\n placement=\"topRight\"\n description={<Highlight texts={[record.category]}>确定要删除菜单 {record.category} 吗?</Highlight>}\n onConfirm={async () => {\n await remove.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, MenuListItem[]>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data,\n })}\n />\n </Card>\n </>\n )\n}\n\nexport default MenuItemList\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-Q6MAXVON.js';import {c as c$1,e,b as b$1}from'./chunk-WFRMJYD3.js';import {a}from'./chunk-7XR7V6IS.js';import {b}from'./chunk-LUVKLLW7.js';import'./chunk-UICHZXQP.js';import {App,Card,Space,Button,Popconfirm}from'antd';import {useNavigate}from'react-router-dom';import {jsx,Fragment,jsxs}from'react/jsx-runtime';var M=()=>{let{t:i}=a(),{message:c$2}=App.useApp(),y=c(),{refetch:f}=c$1(),{refetch:g}=b(),m=useNavigate();return jsx(Fragment,{children:jsx(Card,{title:"\u83DC\u5355\u7BA1\u7406",extra:jsx(Button,{type:"primary",onClick:()=>{m("./create");},children:"\u521B\u5EFA\u83DC\u5355\u9879"}),children:jsx(e,{identifier:"menu-item-list",onePage:true,code:"9900001",rowKey:"id",columns:[{title:"\u83DC\u5355\u540D\u79F0",dataIndex:"category",key:"category"},{title:"\u524D\u7AEF\u8DEF\u7531",dataIndex:"front_route"},{title:"Order",dataIndex:"order"},{title:"Is Common",dataIndex:"is_common",key:"is_common",render:o=>o?"\u662F":"\u5426"},{title:"\u6A21\u677F\u540D\u79F0",dataIndex:"model_name",key:"model_name"},{title:"\u64CD\u4F5C",key:"action",width:150,align:"center",render(o,t){return t.is_model?jsxs(Space,{size:"small",children:[jsx(Button,{type:"link",onClick:()=>{m(`./update/${t.id}`);},children:i("global.update")}),jsx(Popconfirm,{title:"\u5220\u9664\u83DC\u5355",placement:"topRight",description:jsxs(b$1,{texts:[t.category],children:["\u786E\u5B9A\u8981\u5220\u9664\u83DC\u5355 ",t.category," \u5417\uFF1F"]}),onConfirm:async()=>{await y.mutateAsync(t.id),f("menu-item-list"),g(),c$2.success("\u5220\u9664\u6210\u529F");},children:jsx(Button,{danger:true,type:"link",size:"small",children:i("global.delete")})})]}):null}}],request:{url:"/api/usystem/menu/list",method:"GET"},dataAdapter:o=>({items:o})})})})},S=M;export{S as default};//# sourceMappingURL=menuItemList-YFQB4BCS.js.map
|
|
2
|
-
//# sourceMappingURL=menuItemList-YFQB4BCS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":["MenuItemList","t","useTranslation","message","App","remove","useRemoveMenu","refetch","useQueryListStore","refetchMenuList","useMenuList","navigate","useNavigate","jsx","Fragment","Card","Button","QueryList_default","value","_","record","jsxs","Space","Popconfirm","Highlight_default","data","menuItemList_default"],"mappings":"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","file":"menuItemList-YFQB4BCS.js","sourcesContent":["import type { TableColumnsType } from 'antd'\nimport { App, Button, Card, Popconfirm, Space } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { Highlight } from '@/components/highlight'\nimport { QueryList, useQueryListStore } from '@/components/queryList'\nimport { useTranslation } from '@/locale'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useRemoveMenu } from '../../services'\n\nconst MenuItemList = () => {\n const { t } = useTranslation()\n const { message } = App.useApp()\n const remove = useRemoveMenu()\n const { refetch } = useQueryListStore()\n const { refetch: refetchMenuList } = useMenuList()\n const navigate = useNavigate()\n\n const columns: TableColumnsType<MenuListItem> = [\n {\n title: '菜单名称',\n dataIndex: 'category',\n key: 'category',\n },\n {\n title: '前端路由',\n dataIndex: 'front_route',\n },\n {\n title: 'Order',\n dataIndex: 'order',\n },\n {\n title: 'Is Common',\n dataIndex: 'is_common',\n key: 'is_common',\n render: value => (value ? '是' : '否'),\n },\n {\n title: '模板名称',\n dataIndex: 'model_name',\n key: 'model_name',\n },\n // {\n // title: '是否预设',\n // dataIndex: 'is_model',\n // key: 'is_model',\n // render: value => (value ? '否' : '是'),\n // },\n {\n title: '操作',\n key: 'action',\n width: 150,\n align: 'center',\n render(_, record) {\n if (record.is_model) {\n return (\n <Space size=\"small\">\n <Button\n type=\"link\"\n onClick={() => {\n navigate(`./update/${record.id}`)\n }}\n >\n {t('global.update')}\n </Button>\n <Popconfirm\n title=\"删除菜单\"\n placement=\"topRight\"\n description={<Highlight texts={[record.category]}>确定要删除菜单 {record.category} 吗?</Highlight>}\n onConfirm={async () => {\n await remove.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, MenuListItem[]>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data,\n })}\n />\n </Card>\n </>\n )\n}\n\nexport default MenuItemList\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {b as b$1,a as a$1}from'./chunk-COONHXCY.js';import {b}from'./chunk-AFURMXX2.js';import {a as a$2}from'./chunk-NEOHLVWG.js';import {a}from'./chunk-7XR7V6IS.js';import'./chunk-LUVKLLW7.js';import'./chunk-UICHZXQP.js';import {Breadcrumb,Card,Skeleton,Descriptions,Divider}from'antd';import {useParams,Link}from'react-router-dom';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var L=()=>{let c=useParams(),{t:o}=a(),{data:t,isLoading:p,refetch:d}=b(c.name),{show:u,modal:f}=b$1({mode:"update",onSuccess(){d();}}),b$2=async()=>{u({initialValues:{permissions:t?.permissions,name:t?.name.replace(/^role_/,"")},extraValues:{id:t.id}});};return jsxs(Fragment,{children:[jsx(Breadcrumb,{className:"mb-6",items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:o("global.role")})},{key:"2",title:o("RoleDetail.title")}]}),jsx(Card,{title:o("RoleDetail.title"),extra:jsx(a$2,{code:"200003",onClick:b$2,children:o("global.update")}),children:jsxs(Skeleton,{loading:p,children:[jsxs(Descriptions,{column:2,layout:"vertical",className:"mb-6",children:[jsx(Descriptions.Item,{label:o("global.name"),children:t?.name}),jsx(Descriptions.Item,{label:"ID",children:t?.id}),jsx(Descriptions.Item,{label:o("global.creationTime"),children:t?.ctime})]}),jsx(Divider,{}),jsx(a$1,{readonly:true,value:t?.permissions})]})}),f]})},V=L;export{V as default};//# sourceMappingURL=roleDetail-H2X34J57.js.map
|
|
2
|
-
//# sourceMappingURL=roleDetail-H2X34J57.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/roleDetail/index.tsx"],"names":["RoleDetail","params","useParams","t","useTranslation","data","isLoading","refetch","useRole","show","modal","useRoleModal","handleUpdateBtnClick","jsxs","Fragment","jsx","Breadcrumb","Link","Card","AuthButton_default","Skeleton","Descriptions","Divider","permissionList_default","roleDetail_default"],"mappings":"gYAUA,IAAMA,CAAAA,CAAa,IAAM,CACvB,IAAMC,CAAAA,CAASC,SAAAA,EAAU,CACnB,CAAE,EAAAC,CAAE,CAAA,CAAIC,CAAAA,EAAe,CACvB,CAAE,IAAA,CAAAC,EAAM,SAAA,CAAAC,CAAAA,CAAW,OAAA,CAAAC,CAAQ,CAAA,CAAIC,CAAAA,CAAQP,EAAO,IAAc,CAAA,CAE5D,CAAE,IAAA,CAAAQ,CAAAA,CAAM,KAAA,CAAAC,CAAM,CAAA,CAAIC,GAAAA,CAAa,CACnC,IAAA,CAAM,QAAA,CACN,SAAA,EAAY,CACVJ,CAAAA,GACF,CACF,CAAC,CAAA,CAEKK,GAAAA,CAAuB,SAAY,CACvCH,CAAAA,CAAK,CACH,aAAA,CAAe,CACb,WAAA,CAAaJ,GAAM,WAAA,CACnB,IAAA,CAAMA,CAAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,QAAA,CAAU,EAAE,CACvC,CAAA,CACA,WAAA,CAAa,CACX,EAAA,CAAIA,CAAAA,CAAM,EACZ,CACF,CAAC,EACH,CAAA,CAEA,OACEQ,IAAAA,CAAAC,SAAA,CACE,QAAA,CAAA,CAAAC,GAAAA,CAACC,UAAAA,CAAA,CACC,SAAA,CAAU,MAAA,CACV,KAAA,CAAO,CACL,CACE,GAAA,CAAK,GAAA,CACL,KAAA,CACED,GAAAA,CAACE,KAAA,CAAK,EAAA,CAAG,IAAA,CAAK,QAAA,CAAS,MAAA,CACpB,QAAA,CAAAd,EAAE,aAAa,CAAA,CAClB,CAEJ,CAAA,CACA,CACE,GAAA,CAAK,IACL,KAAA,CAAOA,CAAAA,CAAE,kBAAkB,CAC7B,CACF,CAAA,CACF,EACAY,GAAAA,CAACG,IAAAA,CAAA,CACC,KAAA,CAAOf,CAAAA,CAAE,kBAAkB,EAC3B,KAAA,CACEY,GAAAA,CAACI,GAAAA,CAAA,CAAW,IAAA,CAAK,QAAA,CAAS,QAASP,GAAAA,CAChC,QAAA,CAAAT,CAAAA,CAAE,eAAe,CAAA,CACpB,CAAA,CAGF,SAAAU,IAAAA,CAACO,QAAAA,CAAA,CAAS,OAAA,CAASd,CAAAA,CACjB,QAAA,CAAA,CAAAO,IAAAA,CAACQ,YAAAA,CAAA,CAAa,MAAA,CAAQ,CAAA,CAAG,MAAA,CAAO,UAAA,CAAW,SAAA,CAAU,OACnD,QAAA,CAAA,CAAAN,GAAAA,CAACM,YAAAA,CAAa,IAAA,CAAb,CAAkB,KAAA,CAAOlB,EAAE,aAAa,CAAA,CAAI,QAAA,CAAAE,CAAAA,EAAM,IAAA,CAAK,CAAA,CACxDU,IAACM,YAAAA,CAAa,IAAA,CAAb,CAAkB,KAAA,CAAM,IAAA,CAAM,QAAA,CAAAhB,GAAM,EAAA,CAAG,CAAA,CACxCU,GAAAA,CAACM,YAAAA,CAAa,IAAA,CAAb,CAAkB,MAAOlB,CAAAA,CAAE,qBAAqB,CAAA,CAAI,QAAA,CAAAE,CAAAA,EAAM,KAAA,CAAM,GACnE,CAAA,CACAU,GAAAA,CAACO,OAAAA,CAAA,EAAQ,CAAA,CACTP,GAAAA,CAACQ,IAAA,CAAe,QAAA,CAAQ,IAAA,CAAC,KAAA,CAAOlB,CAAAA,EAAM,WAAA,CAAa,CAAA,CAAA,CACrD,CAAA,CACF,CAAA,CACCK,CAAAA,CAAAA,CACH,CAEJ,CAAA,CAEOc,CAAAA,CAAQxB","file":"roleDetail-H2X34J57.js","sourcesContent":["import { Breadcrumb, Card, Descriptions, Divider, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton } from '@/components'\nimport { useTranslation } from '@/locale'\n\nimport { PermissionList } from '../../components'\nimport { useRoleModal } from '../../hooks'\nimport { useRole } from '../../services'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { t } = useTranslation()\n const { data, isLoading, refetch } = useRole(params.name as string)\n\n const { show, modal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const handleUpdateBtnClick = async () => {\n show({\n initialValues: {\n permissions: data?.permissions,\n name: data?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data!.id,\n },\n })\n }\n\n return (\n <>\n <Breadcrumb\n className=\"mb-6\"\n items={[\n {\n key: '1',\n title: (\n <Link to=\"..\" relative=\"path\">\n {t('global.role')}\n </Link>\n ),\n },\n {\n key: '2',\n title: t('RoleDetail.title'),\n },\n ]}\n />\n <Card\n title={t('RoleDetail.title')}\n extra={\n <AuthButton code=\"200003\" onClick={handleUpdateBtnClick}>\n {t('global.update')}\n </AuthButton>\n }\n >\n <Skeleton loading={isLoading}>\n <Descriptions column={2} layout=\"vertical\" className=\"mb-6\">\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.creationTime')}>{data?.ctime}</Descriptions.Item>\n </Descriptions>\n <Divider />\n <PermissionList readonly value={data?.permissions} />\n </Skeleton>\n </Card>\n {modal}\n </>\n )\n}\n\nexport default RoleDetail\n"]}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { useRoleModal, permissionList_default } from './chunk-TYMPX257.js';
|
|
2
|
-
import { useRole } from './chunk-O7INKFFW.js';
|
|
3
|
-
import { AuthButton_default } from './chunk-QEUTBIBK.js';
|
|
4
|
-
import { useTranslation } from './chunk-6SMI25Y3.js';
|
|
5
|
-
import './chunk-JJR5NJTU.js';
|
|
6
|
-
import { __name } from './chunk-Z7GW3RVV.js';
|
|
7
|
-
import { Breadcrumb, Card, Skeleton, Descriptions, Divider } from 'antd';
|
|
8
|
-
import { useParams, Link } from 'react-router-dom';
|
|
9
|
-
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
10
|
-
|
|
11
|
-
var RoleDetail = /* @__PURE__ */ __name(() => {
|
|
12
|
-
const params = useParams();
|
|
13
|
-
const { t } = useTranslation();
|
|
14
|
-
const { data, isLoading, refetch } = useRole(params.name);
|
|
15
|
-
const { show, modal } = useRoleModal({
|
|
16
|
-
mode: "update",
|
|
17
|
-
onSuccess() {
|
|
18
|
-
refetch();
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
const handleUpdateBtnClick = /* @__PURE__ */ __name(async () => {
|
|
22
|
-
show({
|
|
23
|
-
initialValues: {
|
|
24
|
-
permissions: data?.permissions,
|
|
25
|
-
name: data?.name.replace(/^role_/, "")
|
|
26
|
-
},
|
|
27
|
-
extraValues: {
|
|
28
|
-
id: data.id
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}, "handleUpdateBtnClick");
|
|
32
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33
|
-
/* @__PURE__ */ jsx(
|
|
34
|
-
Breadcrumb,
|
|
35
|
-
{
|
|
36
|
-
className: "mb-6",
|
|
37
|
-
items: [
|
|
38
|
-
{
|
|
39
|
-
key: "1",
|
|
40
|
-
title: /* @__PURE__ */ jsx(Link, { to: "..", relative: "path", children: t("global.role") })
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
key: "2",
|
|
44
|
-
title: t("RoleDetail.title")
|
|
45
|
-
}
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
),
|
|
49
|
-
/* @__PURE__ */ jsx(
|
|
50
|
-
Card,
|
|
51
|
-
{
|
|
52
|
-
title: t("RoleDetail.title"),
|
|
53
|
-
extra: /* @__PURE__ */ jsx(AuthButton_default, { code: "200003", onClick: handleUpdateBtnClick, children: t("global.update") }),
|
|
54
|
-
children: /* @__PURE__ */ jsxs(Skeleton, { loading: isLoading, children: [
|
|
55
|
-
/* @__PURE__ */ jsxs(Descriptions, { column: 2, layout: "vertical", className: "mb-6", children: [
|
|
56
|
-
/* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
|
|
57
|
-
/* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
|
|
58
|
-
/* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.creationTime"), children: data?.ctime })
|
|
59
|
-
] }),
|
|
60
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
61
|
-
/* @__PURE__ */ jsx(permissionList_default, { readonly: true, value: data?.permissions })
|
|
62
|
-
] })
|
|
63
|
-
}
|
|
64
|
-
),
|
|
65
|
-
modal
|
|
66
|
-
] });
|
|
67
|
-
}, "RoleDetail");
|
|
68
|
-
var roleDetail_default = RoleDetail;
|
|
69
|
-
|
|
70
|
-
export { roleDetail_default as default };
|
|
71
|
-
//# sourceMappingURL=roleDetail-IP654MAU.js.map
|
|
72
|
-
//# sourceMappingURL=roleDetail-IP654MAU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/roleDetail/index.tsx"],"names":[],"mappings":";;;;;;;;;;AAUA,IAAM,6BAAa,MAAA,CAAA,MAAM;AACvB,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAW,SAAQ,GAAI,OAAA,CAAQ,OAAO,IAAc,CAAA;AAElE,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,YAAA,CAAa;AAAA,IACnC,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,OAAA,EAAQ;AAAA,IACV;AAAA,GACD,CAAA;AAED,EAAA,MAAM,uCAAuB,MAAA,CAAA,YAAY;AACvC,IAAA,IAAA,CAAK;AAAA,MACH,aAAA,EAAe;AAAA,QACb,aAAa,IAAA,EAAM,WAAA;AAAA,QACnB,IAAA,EAAM,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,UAAU,EAAE;AAAA,OACvC;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAI,IAAA,CAAM;AAAA;AACZ,KACD,CAAA;AAAA,EACH,CAAA,EAV6B,sBAAA,CAAA;AAY7B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,MAAA;AAAA,QACV,KAAA,EAAO;AAAA,UACL;AAAA,YACE,GAAA,EAAK,GAAA;AAAA,YACL,KAAA,sBACG,IAAA,EAAA,EAAK,EAAA,EAAG,MAAK,QAAA,EAAS,MAAA,EACpB,QAAA,EAAA,CAAA,CAAE,aAAa,CAAA,EAClB;AAAA,WAEJ;AAAA,UACA;AAAA,YACE,GAAA,EAAK,GAAA;AAAA,YACL,KAAA,EAAO,EAAE,kBAAkB;AAAA;AAC7B;AACF;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,KAAA,sBACG,kBAAA,EAAA,EAAW,IAAA,EAAK,UAAS,OAAA,EAAS,oBAAA,EAChC,QAAA,EAAA,CAAA,CAAE,eAAe,CAAA,EACpB,CAAA;AAAA,QAGF,QAAA,kBAAA,IAAA,CAAC,QAAA,EAAA,EAAS,OAAA,EAAS,SAAA,EACjB,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,gBAAa,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAO,UAAA,EAAW,WAAU,MAAA,EACnD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,YAAA,CAAa,MAAb,EAAkB,KAAA,EAAO,EAAE,aAAa,CAAA,EAAI,gBAAM,IAAA,EAAK,CAAA;AAAA,gCACvD,YAAA,CAAa,IAAA,EAAb,EAAkB,KAAA,EAAM,IAAA,EAAM,gBAAM,EAAA,EAAG,CAAA;AAAA,4BACxC,GAAA,CAAC,aAAa,IAAA,EAAb,EAAkB,OAAO,CAAA,CAAE,qBAAqB,CAAA,EAAI,QAAA,EAAA,IAAA,EAAM,KAAA,EAAM;AAAA,WAAA,EACnE,CAAA;AAAA,8BACC,OAAA,EAAA,EAAQ,CAAA;AAAA,8BACR,sBAAA,EAAA,EAAe,QAAA,EAAQ,IAAA,EAAC,KAAA,EAAO,MAAM,WAAA,EAAa;AAAA,SAAA,EACrD;AAAA;AAAA,KACF;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ,CAAA,EAhEmB,YAAA,CAAA;AAkEnB,IAAO,kBAAA,GAAQ","file":"roleDetail-IP654MAU.js","sourcesContent":["import { Breadcrumb, Card, Descriptions, Divider, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton } from '@/components'\nimport { useTranslation } from '@/locale'\n\nimport { PermissionList } from '../../components'\nimport { useRoleModal } from '../../hooks'\nimport { useRole } from '../../services'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { t } = useTranslation()\n const { data, isLoading, refetch } = useRole(params.name as string)\n\n const { show, modal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const handleUpdateBtnClick = async () => {\n show({\n initialValues: {\n permissions: data?.permissions,\n name: data?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data!.id,\n },\n })\n }\n\n return (\n <>\n <Breadcrumb\n className=\"mb-6\"\n items={[\n {\n key: '1',\n title: (\n <Link to=\"..\" relative=\"path\">\n {t('global.role')}\n </Link>\n ),\n },\n {\n key: '2',\n title: t('RoleDetail.title'),\n },\n ]}\n />\n <Card\n title={t('RoleDetail.title')}\n extra={\n <AuthButton code=\"200003\" onClick={handleUpdateBtnClick}>\n {t('global.update')}\n </AuthButton>\n }\n >\n <Skeleton loading={isLoading}>\n <Descriptions column={2} layout=\"vertical\" className=\"mb-6\">\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.creationTime')}>{data?.ctime}</Descriptions.Item>\n </Descriptions>\n <Divider />\n <PermissionList readonly value={data?.permissions} />\n </Skeleton>\n </Card>\n {modal}\n </>\n )\n}\n\nexport default RoleDetail\n"]}
|