react-toolkits 2.26.1 → 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 +12 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +159 -30
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/package.json +20 -21
- package/lib/chunk-24U2EF5M.js +0 -2
- package/lib/chunk-24U2EF5M.js.map +0 -1
- package/lib/chunk-5QAEUAZE.js +0 -2
- package/lib/chunk-5QAEUAZE.js.map +0 -1
- package/lib/chunk-D5YXBSTI.js +0 -2
- package/lib/chunk-D5YXBSTI.js.map +0 -1
- package/lib/chunk-F2GDEOP4.js +0 -3
- package/lib/chunk-F2GDEOP4.js.map +0 -1
- package/lib/chunk-FIT6S4UM.js +0 -2
- package/lib/chunk-FIT6S4UM.js.map +0 -1
- package/lib/chunk-JDCSIJL7.js +0 -2
- package/lib/chunk-JDCSIJL7.js.map +0 -1
- package/lib/chunk-KZHYK554.js +0 -2
- package/lib/chunk-KZHYK554.js.map +0 -1
- package/lib/chunk-MVG7YFPB.js +0 -2
- package/lib/chunk-MVG7YFPB.js.map +0 -1
- package/lib/chunk-P5T74EXP.js +0 -2
- package/lib/chunk-P5T74EXP.js.map +0 -1
- package/lib/createMenuItem-Q5TJGFKZ.js +0 -2
- package/lib/createMenuItem-Q5TJGFKZ.js.map +0 -1
- package/lib/menuItemList-5QGQYB3N.js +0 -2
- package/lib/menuItemList-5QGQYB3N.js.map +0 -1
- package/lib/roleDetail-ODJVDVB4.js +0 -2
- package/lib/roleDetail-ODJVDVB4.js.map +0 -1
- package/lib/roleList-ATJYWJ6Q.js +0 -2
- package/lib/roleList-ATJYWJ6Q.js.map +0 -1
- package/lib/updateMenuItem-4HDRJAY7.js +0 -2
- package/lib/updateMenuItem-4HDRJAY7.js.map +0 -1
- package/lib/userDetail-B5H4A4X2.js +0 -2
- package/lib/userDetail-B5H4A4X2.js.map +0 -1
- package/lib/userList-7CQLR3HK.js +0 -2
- package/lib/userList-7CQLR3HK.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/filterFormWrapper/FilterFormWrapper.tsx","../src/components/highlight/Highlight.tsx","../src/components/queryList/stores.ts","../src/components/queryList/QueryList.tsx"],"names":["FilterFormWrapper","props","extras","isConfirming","onConfirm","onReset","children","buttonsAlign","showReset","t","useTranslation","colorFillAlter","lineWidth","lineType","colorBorder","borderRadiusLG","theme","jsx","jsxs","Space","Button","item","Fragment","FilterFormWrapper_default","splitByTags","str","regex","part","renderToString","node","container","root","createRoot","resolve","flushSync","Highlight","texts","htmlString","setHtmlString","useState","useEffect","result","text","index","Highlight_default","DEFAULT_PAYLOAD","createStore","create","devtools","subscribeWithSelector","set","get","id","url","queryKey","refetch","state","existingInstance","updatedInstance","newInstances","instance","payload","newPayload","isEqual","payloadChanged","currentPayload","error","store","useQueryListStore","QueryListAction","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","BODYLESS_METHODS","BODY_SUPPORTED_METHODS","identifierCounter","generateUniqueIdentifier","InternalQueryList","ref","form","identifier","code","onePage","defaultSize","refreshInterval","tableExtra","renderForm","afterSuccess","afterError","footer","pageSizeOptions","request","dataAdapter","tableProps","formInstance","Form","finalIdentifier","useMemo","action","useRef","accessible","isChecking","useAuth","isValid","setIsValid","isInitialized","isUpdatingFromPayload","subscribedPayload","s","ky","useKy","page","size","filters","resolvedRequest","method","body","searchParams","headers","cacheTime","staleTime","normalizedMethod","isBodylessMethod","defaultRequestData","requestBody","requestSearchParams","requestHeaders","shouldPoll","data","isLoading","useQuery","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","resolvedDataAdapter","adapter","defaultAdapter","dataSource","total","pagination","currentPage","currentSize","useCallback","formRenderer","cloneElement","e","tableExtraRenderer","renderFooter","currentFormValues","init","value","rafId","useImperativeHandle","Spin","Table","Result","QueryList","forwardRef","QueryList_default"],"mappings":"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","file":"chunk-P5T74EXP.js","sourcesContent":["import { Button, Space, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Fragment } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface FilterFormWrapperProps extends PropsWithChildren {\n onConfirm?: () => void | Promise<void>\n onReset?: () => void\n extras?: { key: Key; children: ReactNode }[]\n isConfirming?: boolean\n buttonsAlign?: 'left' | 'right' | 'bottom'\n showReset?: boolean\n}\n\nconst FilterFormWrapper = (props: FilterFormWrapperProps) => {\n const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = 'left', showReset } = props\n const { t } = useTranslation()\n const {\n token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG },\n } = theme.useToken()\n\n return (\n <div\n className=\"max-w-none p-6 mb-6 border\"\n style={{\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n }}\n >\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'grow-0' : 'flex-1'}`}>{children}</div>\n <div className={`${buttonsAlign === 'bottom' ? 'text-end' : 'text-start'} ml-4`}>\n <Space>\n <Button type=\"primary\" disabled={isConfirming} onClick={onConfirm}>\n {t('FilterFormWrapper.confirmText')}\n </Button>\n {extras?.map(item => (\n <Fragment key={item.key}>{item.children}</Fragment>\n ))}\n {showReset && <Button onClick={onReset}>{t('FilterFormWrapper.resetText')}</Button>}\n </Space>\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterFormWrapper\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport { createRoot } from 'react-dom/client'\n\nconst splitByTags = (str: string) => {\n const regex = /(<[^>]*>)/\n return str.split(regex).filter(part => part !== '')\n}\n\nfunction renderToString(node: ReactNode): Promise<string> {\n const container = document.createElement('div')\n const root = createRoot(container)\n\n return new Promise(resolve => {\n setTimeout(() => {\n flushSync(() => {\n root.render(node)\n })\n resolve(container.innerHTML)\n })\n })\n}\n\nexport interface HighlightProps extends PropsWithChildren {\n texts: Array<string | number>\n}\n\nconst Highlight = (props: HighlightProps) => {\n const { texts, children } = props\n const [htmlString, setHtmlString] = useState<string>('')\n\n useEffect(() => {\n renderToString(children).then(str => {\n const result = splitByTags(str)\n\n for (const text of texts) {\n for (let index = 0; index < result.length; index++) {\n // TODO: 忽略 HTML tag\n result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`)\n }\n }\n\n setHtmlString(result.join(''))\n })\n }, [children, texts])\n\n return <div dangerouslySetInnerHTML={{ __html: htmlString }}></div>\n}\n\nexport default Highlight\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { QueryListPayload } from './QueryList'\n\n// Query 更新函数类型\ntype QueryRefetchFunction = () => void | Promise<unknown>\n\n// QueryList 实例信息\ninterface QueryListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: QueryListPayload\n refetch: QueryRefetchFunction\n}\n\n// 简化的状态接口\ninterface QueryListState {\n // 实例管理\n instances: Map<string, QueryListInstance>\n\n // 核心方法\n registerInstance(id: string, url: string, queryKey: readonly unknown[], refetch: QueryRefetchFunction): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: QueryListPayload): void\n getPayload(id: string): QueryListPayload\n refetch(id: string, payload?: QueryListPayload): Promise<void>\n\n // 工具方法\n getInstance(id: string): QueryListInstance | undefined\n getAllInstances(): QueryListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: QueryListPayload = Object.freeze({\n page: 1,\n size: 10,\n filters: Object.freeze({}),\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<QueryListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新refetch函数\n if (existingInstance) {\n // 仅当 refetch 变更时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n }\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n return { instances: newInstances }\n }\n return state\n }\n\n // 创建新实例\n const instance: QueryListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\n },\n unregisterInstance(id) {\n set(state => {\n const newInstances = new Map(state.instances)\n const existed = newInstances.delete(id)\n\n if (existed) {\n return { instances: newInstances }\n }\n return state\n })\n },\n updatePayload(id, payload) {\n set(state => {\n const instance = state.instances.get(id)\n if (!instance) return state\n\n const newPayload = { ...instance.payload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(instance.payload, newPayload)) {\n const updatedInstance = {\n ...instance,\n payload: newPayload,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n\n return { instances: newInstances }\n }\n\n return state\n })\n },\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`QueryList instance with id \"${id}\" not found`)\n return\n }\n\n let payloadChanged = false\n\n // 更新 payload 如果提供且确实有变化\n if (payload) {\n const currentPayload = instance.payload\n const newPayload = { ...currentPayload, ...payload }\n\n if (!isEqual(currentPayload, newPayload)) {\n get().updatePayload(id, payload)\n payloadChanged = true\n }\n }\n\n // 若 payload 发生变化,queryKey 会变化,React Query 会自动触发请求,此处不再手动 refetch,避免重复请求\n if (payloadChanged) {\n return\n }\n\n // 否则手动触发一次请求\n try {\n await instance.refetch()\n } catch (error) {\n console.error(`Failed to refetch QueryList instance \"${id}\":`, error)\n throw error\n }\n },\n\n getInstance(id) {\n return get().instances.get(id)\n },\n\n getAllInstances() {\n return Array.from(get().instances.values())\n },\n })),\n {\n name: 'query-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useQueryListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Form, Result, Spin, Table } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { TableProps } from 'antd/es/table'\nimport type { Options as KyOptions } from 'ky'\nimport { isEqual } from 'lodash-es'\nimport type { ReactElement, ReactNode, Ref } from 'react'\nimport { cloneElement, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport type { FilterFormWrapperProps } from '@/components/filterFormWrapper'\nimport { FilterFormWrapper } from '@/components/filterFormWrapper'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useQueryListStore } from './stores'\n\nexport interface ListResponse<T = any> {\n list: T[]\n total: number\n}\n\nexport interface QueryListPayload<Values = any> {\n page?: number\n size?: number\n filters?: Values\n}\n\n// 缓存配置\nexport interface CacheConfig {\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\n// 支持的 HTTP 请求方法类型\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n// 简化的请求配置\nexport interface QueryListRequestConfig extends CacheConfig {\n url: string\n method?: HttpMethod\n body?: FormData | Record<string | number, any>\n searchParams?: Record<string | number, any>\n headers?: Record<string, string>\n}\n\nexport type QueryListRequestConfigType<Values = any> =\n | QueryListRequestConfig\n | ((payload: QueryListPayload<Values>) => QueryListRequestConfig)\n\nexport enum QueryListAction {\n Confirm,\n Reset,\n Jump,\n Init,\n}\n\nexport interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>> {\n data: Data | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n}\n\nexport interface QueryListDataAdapter<Item extends AnyObject = AnyObject> {\n total?: number\n items?: Item[]\n}\n\nexport type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data = ListResponse<Item>> =\n | QueryListDataAdapter<Item>\n | ((data: Data) => QueryListDataAdapter<Item>)\n\nexport interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选的标识符,用于标识和外部控制,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n onePage?: boolean // 无分页\n defaultSize?: number\n pageSizeOptions?: number[]\n request: QueryListRequestConfigType<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: QueryListAction, form: FormInstance<Values>, data?: Data) => void\n afterError?: (error: Error, action: QueryListAction, form: FormInstance<Values>) => void\n dataAdapter?: QueryListDataAdapterConfig<Item, Data>\n footer?: (data: Data | undefined) => ReactNode\n}\n\n// 常量定义\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000 // 默认缓存5分钟\nconst DEFAULT_STALE_TIME = 30 * 1000 // 默认30秒内数据新鲜\n\n// 无请求体的 HTTP 方法\nconst BODYLESS_METHODS: HttpMethod[] = ['GET', 'HEAD', 'OPTIONS']\n\n// 支持请求体的 HTTP 方法\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\n\n// 生成唯一 identifier 的函数\nconst generateUniqueIdentifier = (): string => {\n return `queryList_${Date.now()}_${++identifierCounter}`\n}\n\nconst InternalQueryList = <Item extends AnyObject = AnyObject, Values extends AnyObject = any, Data = any>(\n props: QueryListProps<Item, Values, Data>,\n ref: Ref<QueryListRef<Item, Values, Data>>,\n) => {\n const { t } = useTranslation()\n\n const {\n form,\n identifier,\n code,\n onePage,\n buttonsAlign,\n showReset,\n defaultSize = 10,\n refreshInterval = 0,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n footer,\n pageSizeOptions,\n request,\n dataAdapter,\n ...tableProps\n } = props\n\n const [formInstance] = Form.useForm<Values>(form)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => {\n return identifier || generateUniqueIdentifier()\n }, [identifier])\n const action = useRef<QueryListAction>(QueryListAction.Init)\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false) // 防止循环更新的标志\n\n // 仅订阅当前 identifier 的 payload,避免因其它实例变化导致不必要重渲染\n const subscribedPayload = useQueryListStore(s => s.getPayload(finalIdentifier))\n const ky = useKy()\n\n const { page, size = defaultSize, filters } = subscribedPayload\n\n const payload = { page, size, filters }\n\n // 处理 request 配置(对象或函数)\n const resolvedRequest = typeof request === 'function' ? request(payload) : request\n\n const {\n url,\n method = 'GET',\n body,\n searchParams,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = resolvedRequest\n\n // 验证请求方法\n const normalizedMethod = method.toUpperCase() as HttpMethod\n const allSupportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n\n if (!allSupportedMethods.includes(normalizedMethod)) {\n console.warn(`QueryList: 不支持的 HTTP 请求方法 \"${method}\",将使用 GET 方法`)\n }\n\n // 根据请求方法决定参数传递方式\n const isBodylessMethod = BODYLESS_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 智能参数传递策略:\n // 1. 优先使用用户明确传入的 body 或 searchParams\n // 2. 若用户未指定,根据 HTTP 方法自动选择合适的传递方式\n // 3. 避免同时设置 body 和 searchParams(除非用户明确指定)\n let requestBody: any\n let requestSearchParams: any\n\n if (body !== undefined) {\n // 用户传入了 body,优先使用\n requestBody = body\n requestSearchParams = searchParams\n } else if (searchParams !== undefined) {\n // 用户只传入了 searchParams\n requestSearchParams = searchParams\n requestBody = undefined\n } else {\n // 都未传入,根据方法类型自动选择\n if (isBodylessMethod) {\n requestSearchParams = defaultRequestData\n requestBody = undefined\n } else {\n requestBody = defaultRequestData\n requestSearchParams = undefined\n }\n }\n\n const requestHeaders = headers\n\n const shouldPoll = useRef(false)\n\n // 构建更完整的 queryKey,包含所有影响请求结果的参数\n const queryKey = [\n 'queryList',\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n size,\n filters,\n requestBody,\n requestSearchParams,\n requestHeaders,\n ] as const\n\n const { data, isLoading, refetch } = useQuery({\n queryKey,\n queryFn: async () => {\n try {\n const kyOptions: KyOptions = {\n method: normalizedMethod,\n searchParams: requestSearchParams,\n headers: requestHeaders,\n }\n\n // 只有非无请求体方法才允许有 body\n if (requestBody && !isBodylessMethod) {\n if (requestBody instanceof FormData) {\n // FormData 使用 body 方式传递\n kyOptions.body = requestBody\n } else if (typeof requestBody === 'string') {\n // 字符串直接作为 body\n kyOptions.body = requestBody\n } else {\n // 对象类型使用 .json 方式传递\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, response)\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n retry: (failureCount, retryError) => {\n // 自定义重试逻辑\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false // 认证错误不重试\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000), // 指数退避\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n // 缓存配置\n gcTime: cacheTime,\n staleTime,\n enabled: accessible && isValid,\n })\n\n // 处理 dataAdapter 配置\n const resolvedDataAdapter = useMemo(() => {\n const adapter = dataAdapter\n const defaultAdapter: QueryListDataAdapter<Item> = {\n total: (data as ListResponse<Item>)?.total,\n items: (data as ListResponse<Item>)?.list,\n }\n\n if (typeof adapter === 'function') {\n return {\n ...defaultAdapter,\n ...adapter(data as Data),\n }\n }\n return {\n ...defaultAdapter,\n ...adapter,\n }\n }, [dataAdapter, data])\n\n // 在组件挂载时注册实例,避免因 queryKey/refetch 身份变化反复注册\n useEffect(() => {\n useQueryListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch)\n return () => {\n useQueryListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url])\n\n const dataSource = resolvedDataAdapter.items\n const total = resolvedDataAdapter.total\n\n const pagination = useMemo(() => {\n if (onePage) return false\n\n return {\n pageSizeOptions,\n showSizeChanger: true,\n showQuickJumper: true,\n current: page,\n pageSize: size,\n total,\n onChange: async (currentPage: number, currentSize: number) => {\n action.current = QueryListAction.Jump\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: currentPage,\n size: currentSize,\n })\n },\n }\n }, [onePage, pageSizeOptions, page, size, total, finalIdentifier])\n\n const onConfirm = useCallback(async () => {\n action.current = QueryListAction.Confirm\n try {\n await formInstance.validateFields()\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const onReset = useCallback(async () => {\n action.current = QueryListAction.Reset\n formInstance.resetFields()\n\n try {\n await formInstance.validateFields({ validateOnly: true })\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isLoading}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(formInstance) as ReactElement<{ onKeyUp?: React.KeyboardEventHandler }>, {\n onKeyUp: (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={formInstance} />\n )\n\n const tableExtraRenderer = typeof tableExtra === 'function' ? tableExtra(formInstance, data) : tableExtra\n\n const renderFooter: TableProps<Item>['footer'] = footer ? () => <>{footer(data)}</> : undefined\n\n // 监听 payload.filters 变化并同步更新表单实例\n useEffect(() => {\n if (!isInitialized.current || isUpdatingFromPayload.current) {\n return\n }\n\n // 获取当前表单的值\n const currentFormValues = formInstance.getFieldsValue()\n\n // 如果 payload 中的 filters 与当前表单值不同,则更新表单\n if (filters && !isEqual(currentFormValues, filters)) {\n isUpdatingFromPayload.current = true\n formInstance.setFieldsValue(filters)\n // 使用 setTimeout 确保在下一个事件循环中重置标志\n setTimeout(() => {\n isUpdatingFromPayload.current = false\n }, 0)\n }\n }, [filters, formInstance])\n\n // 首次挂载时自动校验表单,校验通过则更新 payload 并允许请求\n useEffect(() => {\n if (!accessible || isInitialized.current) {\n return\n }\n\n const init = async () => {\n console.log('QueryList init starting')\n try {\n formInstance.resetFields()\n const value = await formInstance.validateFields({ validateOnly: true })\n console.log('QueryList init validation success:', value)\n useQueryListStore.getState().updatePayload(finalIdentifier, {\n page: 1,\n filters: value,\n })\n setIsValid(true)\n console.log('QueryList init completed, isValid set to true')\n } catch (error) {\n console.log('QueryList init validation failed:', error)\n setIsValid(false)\n } finally {\n isInitialized.current = true\n }\n }\n\n const rafId = requestAnimationFrame(() => {\n Promise.resolve().then(init)\n })\n\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId)\n }\n }\n }, [accessible, finalIdentifier, formInstance])\n\n useImperativeHandle(\n ref,\n () => ({\n data,\n dataSource,\n form: formInstance,\n refetch,\n }),\n [data, dataSource, formInstance, refetch],\n )\n\n if (isChecking) {\n return (\n <div className=\"flex justify-center items-center h-[300px]\">\n <Spin />\n </div>\n )\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n return (\n <div>\n {formRenderer}\n {tableExtraRenderer}\n <Table\n {...tableProps}\n dataSource={dataSource}\n loading={isLoading}\n pagination={pagination}\n footer={renderFooter}\n />\n </div>\n )\n}\n\nconst QueryList = forwardRef(InternalQueryList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: QueryListProps<Item, Values, Data> & { ref?: Ref<QueryListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default QueryList\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-FIT6S4UM.js';import {f}from'./chunk-F2GDEOP4.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-Q5TJGFKZ.js.map
|
|
2
|
-
//# sourceMappingURL=createMenuItem-Q5TJGFKZ.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-Q5TJGFKZ.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 {c}from'./chunk-FIT6S4UM.js';import {c as c$1,e,b as b$1}from'./chunk-P5T74EXP.js';import {a}from'./chunk-D5YXBSTI.js';import {b}from'./chunk-JDCSIJL7.js';import'./chunk-F2GDEOP4.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-5QGQYB3N.js.map
|
|
2
|
-
//# sourceMappingURL=menuItemList-5QGQYB3N.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-5QGQYB3N.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-MVG7YFPB.js';import {b}from'./chunk-KZHYK554.js';import {a as a$2}from'./chunk-5QAEUAZE.js';import {a}from'./chunk-D5YXBSTI.js';import'./chunk-JDCSIJL7.js';import'./chunk-F2GDEOP4.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-ODJVDVB4.js.map
|
|
2
|
-
//# sourceMappingURL=roleDetail-ODJVDVB4.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-ODJVDVB4.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"]}
|
package/lib/roleList-ATJYWJ6Q.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c,b as b$1,e as e$1}from'./chunk-P5T74EXP.js';import {b}from'./chunk-MVG7YFPB.js';import {e}from'./chunk-KZHYK554.js';import {a as a$2}from'./chunk-5QAEUAZE.js';import {a as a$1}from'./chunk-D5YXBSTI.js';import {a}from'./chunk-JDCSIJL7.js';import {k,i}from'./chunk-F2GDEOP4.js';import {UsergroupAddOutlined}from'@ant-design/icons';import {App,Space,Card}from'antd';import {Link}from'react-router-dom';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var O=()=>{let{modal:R,message:g}=App.useApp(),{data:k$1}=a("200005"),{t:e$2}=a$1(),{refetch:s}=c(),L=k(),{context:{permissionMode:T}}=i(),{show:A,modal:C}=b({mode:"create",onSuccess(){s("role-list",{page:1});}}),{show:b$2,modal:w}=b({mode:"update",onSuccess(){s("role-list");}}),I=e(),M=async t=>{let o=await L.get(`/api/usystem/role/${T==="game_scoped"?"info":"infoV2"}?name=${t.name}`);b$2({initialValues:{permissions:o.permissions,name:o.name.replace(/^role_/,"")},extraValues:{id:o?.id}});},S=[{title:e$2("global.name"),key:"name",render(t){return k$1?jsx(Link,{to:`${t.name}`,relative:"path",children:t.name}):jsx(Fragment,{children:t.name})}},{title:"ID",dataIndex:"id",key:"id"},{title:e$2("global.creationTime"),dataIndex:"ctime",key:"ctime"},{title:e$2("global.operation"),width:150,align:"center",render:(t,o)=>jsxs(Space,{size:"small",children:[jsx(a$2,{code:"200003",size:"small",type:"link",onClick:async()=>{M(o);},children:e$2("global.update")}),jsx(a$2,{danger:true,code:"200004",size:"small",type:"link",onClick:()=>{R.confirm({title:e$2("Role.deleteTitle"),content:jsx(b$1,{texts:[o.name],children:e$2("Role.deleteContent",{role:o.name})}),async onOk(){await I.mutateAsync({id:o.id,name:o.name}),s("role-list"),g.success(e$2("Role.deleteSuccessfully"));}});},children:e$2("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:e$2("global.role"),extra:jsx(a$2,{type:"primary",code:"200002",icon:jsx(UsergroupAddOutlined,{}),onClick:()=>{A();},children:e$2("Role.createTitle")}),children:jsx(e$1,{identifier:"role-list",rowKey:"name",columns:S,code:"200001",request:{url:"/api/usystem/role/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List})})}),C,w]})},Q=O;export{Q as default};//# sourceMappingURL=roleList-ATJYWJ6Q.js.map
|
|
2
|
-
//# sourceMappingURL=roleList-ATJYWJ6Q.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/roleList/index.tsx"],"names":["RoleList","modal","message","App","viewable","useAuth","t","useTranslation","refetch","useQueryListStore","ky","useKy","permissionMode","useToolkitsStore","showCreateModal","createModal","useRoleModal","showUpdateModal","updateModal","remove","useRemoveRole","handleUpdateBtnClick","record","data","columns","value","jsx","Link","Fragment","_","jsxs","Space","AuthButton_default","Highlight_default","Card","UsergroupAddOutlined","QueryList_default","roleList_default"],"mappings":"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","file":"roleList-ATJYWJ6Q.js","sourcesContent":["import { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Space } from 'antd'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useRoleModal } from '../../hooks'\nimport { useRemoveRole } from '../../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../../types'\n\nconst RoleList = () => {\n const { modal, message } = App.useApp()\n const { data: viewable } = useAuth('200005')\n const { t } = useTranslation()\n const { refetch } = useQueryListStore()\n const ky = useKy()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n const { show: showCreateModal, modal: createModal } = useRoleModal({\n mode: 'create',\n onSuccess() {\n refetch('role-list', { page: 1 })\n },\n })\n const { show: showUpdateModal, modal: updateModal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch('role-list')\n },\n })\n\n const remove = useRemoveRole()\n\n const handleUpdateBtnClick = async (record: RoleListItem) => {\n const data = await ky.get<RoleV1 | RoleV2>(\n `/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'info' : 'infoV2'}?name=${record.name}`,\n )\n\n showUpdateModal({\n initialValues: {\n permissions: data.permissions,\n name: data.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data?.id,\n },\n })\n }\n\n const columns: TableColumnsType<RoleListItem> = [\n {\n title: t('global.name'),\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return (\n <Link to={`${value.name}`} relative=\"path\">\n {value.name}\n </Link>\n )\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n return (\n <Space size=\"small\">\n <AuthButton\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n handleUpdateBtnClick(record)\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('Role.deleteTitle'),\n content: (\n <Highlight texts={[record.name]}>{t('Role.deleteContent', { role: record.name })}</Highlight>\n ),\n async onOk() {\n await remove.mutateAsync({\n id: record.id,\n name: record.name,\n })\n\n refetch('role-list')\n\n message.success(t('Role.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <AuthButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('Role.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n identifier=\"role-list\"\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n request={{\n url: '/api/usystem/role/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default RoleList\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {b}from'./chunk-FIT6S4UM.js';import {b as b$1}from'./chunk-JDCSIJL7.js';import {k,l,f}from'./chunk-F2GDEOP4.js';import {Editor}from'@monaco-editor/react';import {useQuery}from'@tanstack/react-query';import {App,Form,Card,Input,Switch,InputNumber,Button}from'antd';import {useEffect}from'react';import {useNavigate,useParams}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var w=()=>{let{message:g}=App.useApp(),[i]=Form.useForm(),l$1=useNavigate(),{mutateAsync:b$2}=b(),r=useParams(),{refetch:_}=b$1(),N=k(),{data:p,isLoading:v}=useQuery({queryKey:l.menus.detail(Number(r.id)),queryFn:()=>N.get(`/api/usystem/menu/info?id=${r.id}`),enabled:!!r.id}),x=async n=>{let{permissions:m,front_route:a,...u}=n;await b$2({...u,permissions:m?JSON.parse(m):void 0,front_route:f+a,id:+r.id}),_(),g.success("\u66F4\u65B0\u6210\u529F",.8,()=>l$1("../..",{relative:"route"}));};return useEffect(()=>{let{permissions:n,front_route:m,...a}=p??{},u=JSON.stringify(n||[],null,2),q=m?.replace(f,"");i.setFieldsValue({...a,permissions:u,front_route:q});},[p,i]),jsx(Card,{title:"\u66F4\u65B0\u83DC\u5355\u9879",loading:v,children:jsxs(Form,{scrollToFirstError:true,form:i,labelCol:{flex:"120px"},initialValues:{is_common:false,is_model:false,order:0},onFinish:x,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:()=>{l$1("../..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},Q=w;export{Q as default};//# sourceMappingURL=updateMenuItem-4HDRJAY7.js.map
|
|
2
|
-
//# sourceMappingURL=updateMenuItem-4HDRJAY7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/updateMenuItem/index.tsx"],"names":["EditMenuItem","message","App","form","Form","navigate","useNavigate","mutateAsync","useUpdateMenu","params","useParams","refetch","useMenuList","ky","useKy","data","isLoading","useQuery","queryKeys","onFinish","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","useEffect","permissionsString","frontRoute","jsx","Card","jsxs","Input","Switch","InputNumber","Editor","Button","updateMenuItem_default"],"mappings":"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","file":"updateMenuItem-4HDRJAY7.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { useQuery } from '@tanstack/react-query'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useEffect } from 'react'\nimport { useNavigate, useParams } from 'react-router-dom'\n\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useUpdateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst EditMenuItem = () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutateAsync } = useUpdateMenu()\n const params = useParams<'id'>()\n const { refetch } = useMenuList()\n const ky = useKy()\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.menus.detail(Number(params.id)),\n queryFn: () => ky.get<MenuListItem>(`/api/usystem/menu/info?id=${params.id}`),\n enabled: !!params.id,\n })\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n\n await mutateAsync({\n ...rest,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n id: +params.id!,\n })\n refetch()\n message.success('更新成功', 0.8, () => navigate('../..', { relative: 'route' }))\n }\n\n useEffect(() => {\n const { permissions, front_route, ...rest } = data ?? {}\n const permissionsString = JSON.stringify(permissions || [], null, 2)\n const frontRoute = front_route?.replace(FRONTEND_ROUTE_PREFIX, '')\n form.setFieldsValue({\n ...rest,\n permissions: permissionsString,\n front_route: frontRoute,\n })\n }, [data, form])\n\n return (\n <Card title=\"更新菜单项\" loading={isLoading}>\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 EditMenuItem\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-24U2EF5M.js';import'./chunk-KZHYK554.js';import {a as a$3}from'./chunk-5QAEUAZE.js';import {a}from'./chunk-D5YXBSTI.js';import {c,a as a$1}from'./chunk-JDCSIJL7.js';import {i,k,l}from'./chunk-F2GDEOP4.js';import {useQuery}from'@tanstack/react-query';import {Tag,Breadcrumb,Card,Descriptions,Table}from'antd';import {useParams,Link}from'react-router-dom';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var P=()=>{let i$1=useParams(),{t:o}=a(),{context:{useGameApiV2:D,permissionMode:T}}=i(),h=T==="group_based",L=k(),{data:s,isLoading:x,refetch:A}=useQuery({queryKey:l.users.detail(i$1.id||""),queryFn:()=>L.get(`/api/usystem/user/info?id=${i$1.id}`),enabled:!!i$1.id}),{data:B}=c(),{data:C}=a$1("200005"),{show:G,modal:S}=a$2({mode:"update",onSuccess(){A();}}),U=[h&&{key:"group",title:o("global.projectGroup"),dataIndex:"game_group",render(r){return r.map(t=>jsx(Tag,{children:t==="*"?"\u901A\u7528":t},t))}},{key:"game",title:o("global.game"),dataIndex:"game_ids",render(r){return r.map(t=>{let K=B?.find(n=>String(D?n.game_id:n.id)===t);return jsx(Tag,{children:K?.name??(t==="*"?"\u901A\u7528":t)},t)})}},{key:"role",title:o("global.role"),dataIndex:"role",render(r){return C?jsx(Link,{to:`../../role/${r}`,relative:"path",children:r}):r}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Breadcrumb,{className:"mb-6",items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:o("global.user")})},{key:"2",title:"\u7528\u6237\u8BE6\u60C5"}]}),jsx(Card,{title:"\u7528\u6237\u8BE6\u60C5",loading:x,extra:jsx(a$3,{code:"100003",onClick:()=>{G({initialValues:{name:s?.name,permissions:s?.permissions},extraValues:{id:s.id}});},children:o("global.update")}),children:jsxs(Descriptions,{bordered:true,column:1,children:[jsx(Descriptions.Item,{label:o("global.name"),children:s?.name}),jsx(Descriptions.Item,{label:"ID",children:s?.id}),jsx(Descriptions.Item,{label:o("global.role"),children:jsx(Table,{rowKey:"role",columns:U,dataSource:s?.permissions,pagination:false})})]})}),S]})},z=P;export{z as default};//# sourceMappingURL=userDetail-B5H4A4X2.js.map
|
|
2
|
-
//# sourceMappingURL=userDetail-B5H4A4X2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/userDetail/index.tsx"],"names":["UserDetail","params","useParams","t","useTranslation","useGameApiV2","permissionMode","useToolkitsStore","isGroupBased","ky","useKy","data","isLoading","refetch","useQuery","queryKeys","games","useGames","roleViewable","useAuth","show","modal","useUserModal","columns","value","item","jsx","Tag","matchedGame","game","Link","jsxs","Fragment","Breadcrumb","Card","AuthButton_default","Descriptions","Table","userDetail_default"],"mappings":"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","file":"userDetail-B5H4A4X2.js","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport type { TableColumnsType } from 'antd'\nimport { Breadcrumb, Card, Descriptions, Table, Tag } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton, useToolkitsStore } from '@/components'\nimport { PermissionMode, WILDCARD } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\nimport { useAuth, useGames } from '@/services'\n\nimport { useUserModal } from '../../hooks'\nimport type { UserListItem } from '../../types'\n\nconst UserDetail = () => {\n const params = useParams<'id'>()\n const { t } = useTranslation()\n const {\n context: { useGameApiV2, permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const ky = useKy()\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: queryKeys.users.detail(params.id || ''),\n queryFn: () => ky.get<UserListItem>(`/api/usystem/user/info?id=${params.id}`),\n enabled: !!params.id,\n })\n const { data: games } = useGames()\n const { data: roleViewable } = useAuth('200005')\n\n const { show, modal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const columns = [\n isGroupBased && {\n key: 'group',\n title: t('global.projectGroup'),\n dataIndex: 'game_group',\n render(value: string[]) {\n return value.map(item => {\n return <Tag key={item}>{item === WILDCARD ? '通用' : item}</Tag>\n })\n },\n },\n {\n key: 'game',\n title: t('global.game'),\n dataIndex: 'game_ids',\n render(value: string[]) {\n return value.map(item => {\n const matchedGame = games?.find(game => String(useGameApiV2 ? game.game_id : game.id) === item)\n return <Tag key={item}>{matchedGame?.name ?? (item === WILDCARD ? '通用' : item)}</Tag>\n })\n },\n },\n {\n key: 'role',\n title: t('global.role'),\n dataIndex: 'role',\n render(value: string) {\n return roleViewable ? (\n <Link to={`../../role/${value}`} relative=\"path\">\n {value}\n </Link>\n ) : (\n value\n )\n },\n },\n ].filter(Boolean) as TableColumnsType\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.user')}\n </Link>\n ),\n },\n {\n key: '2',\n title: '用户详情',\n },\n ]}\n />\n <Card\n title=\"用户详情\"\n loading={isLoading}\n extra={\n <AuthButton\n code=\"100003\"\n onClick={() => {\n show({\n initialValues: {\n name: data?.name,\n permissions: data?.permissions,\n },\n extraValues: {\n id: data!.id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n }\n >\n <Descriptions bordered column={1}>\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.role')}>\n <Table rowKey=\"role\" columns={columns} dataSource={data?.permissions} pagination={false} />\n </Descriptions.Item>\n </Descriptions>\n </Card>\n {modal}\n </>\n )\n}\n\nexport default UserDetail\n"]}
|
package/lib/userList-7CQLR3HK.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-24U2EF5M.js';import {c,b,e}from'./chunk-P5T74EXP.js';import {h}from'./chunk-KZHYK554.js';import {a as a$2}from'./chunk-5QAEUAZE.js';import {a}from'./chunk-D5YXBSTI.js';import'./chunk-JDCSIJL7.js';import {i}from'./chunk-F2GDEOP4.js';import {UserAddOutlined}from'@ant-design/icons';import {App,Row,Col,Tag,Space,Card,Form,Input}from'antd';import {Link}from'react-router-dom';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var z=()=>{let{modal:I,message:A}=App.useApp(),{t}=a(),L=h(),{refetch:l}=c(),{context:{permissionMode:a$3}}=i(),m=a$3==="group_based",d=a$3==="direct_game",{show:b$1,modal:w}=a$1({mode:"create",onSuccess(){l("user-list",{page:1});}}),{show:M,modal:S}=a$1({mode:"update",onSuccess(){l("user-list");}}),x=[{title:t("global.name"),dataIndex:"name",key:"name",render(o,r){return m||d?jsx(Link,{to:`./${r.id}`,children:o}):o}},{title:"ID",dataIndex:"id",key:"id"},{title:t("global.role"),dataIndex:"roles",key:"roles",width:"40%",render(o){return jsx(Row,{gutter:[4,4],children:(o||[]).map(r=>jsx(Col,{children:r==="root"?jsx(Tag,{color:"#f50",children:r}):jsx(Tag,{color:"#ff5a00",children:jsx(Link,{to:`../role/${r}`,children:r})})},r))})}},{title:t("global.creationTime"),dataIndex:"Ctime",key:"ctime"},{title:t("global.operation"),width:150,align:"center",render:(o,r)=>{let{name:s,permissions:B,roles:E,id:u}=r;return jsxs(Space,{children:[jsx(a$2,{size:"small",type:"link",code:"100003",onClick:()=>{M({initialValues:{name:s,...m||d?{permissions:B}:{roles:E}},extraValues:{id:u}});},children:t("global.update")}),jsx(a$2,{danger:true,size:"small",code:"100004",type:"link",onClick:()=>{I.confirm({title:t("User.deleteTitle"),content:jsx(b,{texts:[s],children:t("User.deleteContent",{user:s})}),async onOk(){await L.mutateAsync({id:u,name:s}),l("user-list"),A.success(t("User.deleteSuccessfully"));}});},children:t("global.delete")})]})}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Card,{title:t("global.user"),extra:jsx(a$2,{type:"primary",icon:jsx(UserAddOutlined,{}),code:"100002",onClick:()=>{b$1();},children:t("User.createTitle")}),children:jsx(e,{identifier:"user-list",code:"100001",request:{url:"/api/usystem/user/list",method:"GET"},rowKey:"id",columns:x,dataAdapter:o=>({total:o?.Total,items:o?.List}),renderForm:o=>jsx(Form,{form:o,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})})})}),w,S]})},N=z;export{N as default};//# sourceMappingURL=userList-7CQLR3HK.js.map
|
|
2
|
-
//# sourceMappingURL=userList-7CQLR3HK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/userList/index.tsx"],"names":["UserList","modal","message","App","useTranslation","remove","useRemoveUser","refetch","useQueryListStore","permissionMode","useToolkitsStore","isGroupBased","isDirectGame","showCreateModal","createModal","useUserModal","showUpdateModal","updateModal","columns","value","record","jsx","Link","Row","item","Col","Tag","_","name","permissions","roles","id","jsxs","Space","AuthButton_default","Highlight_default","Fragment","Card","UserAddOutlined","QueryList_default","data","form","Form","Input","userList_default"],"mappings":"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","file":"userList-7CQLR3HK.js","sourcesContent":["import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Space, Tag } from 'antd'\nimport { type FC } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal } from '../../hooks'\nimport { useRemoveUser } from '../../services'\nimport type { UserListItem } from '../../types'\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const { t } = useTranslation()\n const remove = useRemoveUser()\n const { refetch } = useQueryListStore()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isDirectGame = permissionMode === PermissionMode.DIRECT_GAME\n\n const { show: showCreateModal, modal: createModal } = useUserModal({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModal, modal: updateModal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch('user-list')\n },\n })\n\n const columns = (\n [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n render(value: string, record) {\n if (isGroupBased || isDirectGame) {\n return <Link to={`./${record.id}`}>{value}</Link>\n }\n return value\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n PermissionMode.GAME_SCOPED && {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`../role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n const { name, permissions, roles, id } = record\n return (\n <Space>\n <AuthButton\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name,\n ...(isGroupBased || isDirectGame ? { permissions } : { roles }),\n },\n extraValues: {\n id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('User.deleteTitle'),\n content: <Highlight texts={[name]}>{t('User.deleteContent', { user: name })}</Highlight>,\n async onOk() {\n await remove.mutateAsync({\n id,\n name,\n })\n refetch('user-list')\n message.success(t('User.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ] as TableColumnsType<UserListItem>\n ).filter(Boolean)\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <AuthButton\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('User.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<UserListItem, { name?: string }, { List: UserListItem[]; Total: number }>\n identifier=\"user-list\"\n code=\"100001\"\n request={{\n url: '/api/usystem/user/list',\n method: 'GET',\n }}\n rowKey=\"id\"\n columns={columns}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n renderForm={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n"]}
|