react-toolkits 2.22.33 → 2.24.0

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +6 -6
  3. package/lib/chunk-CHYXXPB2.js +3 -0
  4. package/lib/chunk-CHYXXPB2.js.map +1 -0
  5. package/lib/{chunk-WRFAON6X.js → chunk-ES2NIJ2P.js} +2 -2
  6. package/lib/{chunk-WRFAON6X.js.map → chunk-ES2NIJ2P.js.map} +1 -1
  7. package/lib/{chunk-SXIEAILV.js → chunk-LHVTM6A4.js} +2 -2
  8. package/lib/chunk-LHVTM6A4.js.map +1 -0
  9. package/lib/chunk-LO57CB37.js +2 -0
  10. package/lib/{chunk-LKZ6OMAY.js.map → chunk-LO57CB37.js.map} +1 -1
  11. package/lib/{chunk-HMG7OG2U.js → chunk-OLBTRSRZ.js} +2 -2
  12. package/lib/{chunk-HMG7OG2U.js.map → chunk-OLBTRSRZ.js.map} +1 -1
  13. package/lib/{chunk-A5SX7QOV.js → chunk-PFXWDVQN.js} +2 -2
  14. package/lib/chunk-PFXWDVQN.js.map +1 -0
  15. package/lib/{chunk-QKX27H5N.js → chunk-QHZU443H.js} +2 -2
  16. package/lib/chunk-QHZU443H.js.map +1 -0
  17. package/lib/{chunk-TPZ34WDV.js → chunk-V3ENO43B.js} +2 -2
  18. package/lib/{chunk-TPZ34WDV.js.map → chunk-V3ENO43B.js.map} +1 -1
  19. package/lib/{chunk-Z6CAC4PS.js → chunk-ZYMD6X3T.js} +2 -2
  20. package/lib/{chunk-Z6CAC4PS.js.map → chunk-ZYMD6X3T.js.map} +1 -1
  21. package/lib/{createMenuItem-P5XUONZT.js → createMenuItem-4FKIB6NW.js} +2 -2
  22. package/lib/{createMenuItem-P5XUONZT.js.map → createMenuItem-4FKIB6NW.js.map} +1 -1
  23. package/lib/index.d.ts +2 -2
  24. package/lib/index.js +2 -2
  25. package/lib/index.js.map +1 -1
  26. package/lib/{menuItemList-4NNDGF2U.js → menuItemList-PHV3QIF2.js} +2 -2
  27. package/lib/{menuItemList-4NNDGF2U.js.map → menuItemList-PHV3QIF2.js.map} +1 -1
  28. package/lib/{roleDetail-RHRRU4C4.js → roleDetail-4LSMW6IC.js} +2 -2
  29. package/lib/{roleDetail-RHRRU4C4.js.map → roleDetail-4LSMW6IC.js.map} +1 -1
  30. package/lib/{roleList-5KNJMTRI.js → roleList-ZTZ6ZF5M.js} +2 -2
  31. package/lib/roleList-ZTZ6ZF5M.js.map +1 -0
  32. package/lib/{updateMenuItem-T5OQVIBK.js → updateMenuItem-KF6Y4ZJZ.js} +2 -2
  33. package/lib/{updateMenuItem-T5OQVIBK.js.map → updateMenuItem-KF6Y4ZJZ.js.map} +1 -1
  34. package/lib/{userDetail-ANV6RZPM.js → userDetail-CLF5VWNA.js} +2 -2
  35. package/lib/userDetail-CLF5VWNA.js.map +1 -0
  36. package/lib/{userList-BGORGPAR.js → userList-ILOQI374.js} +2 -2
  37. package/lib/{userList-BGORGPAR.js.map → userList-ILOQI374.js.map} +1 -1
  38. package/package.json +1 -1
  39. package/lib/chunk-4HSBROEY.js +0 -3
  40. package/lib/chunk-4HSBROEY.js.map +0 -1
  41. package/lib/chunk-A5SX7QOV.js.map +0 -1
  42. package/lib/chunk-LKZ6OMAY.js +0 -2
  43. package/lib/chunk-QKX27H5N.js.map +0 -1
  44. package/lib/chunk-SXIEAILV.js.map +0 -1
  45. package/lib/roleList-5KNJMTRI.js.map +0 -1
  46. package/lib/userDetail-ANV6RZPM.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"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","file":"chunk-TPZ34WDV.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"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","file":"chunk-V3ENO43B.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {a as a$1,f,g}from'./chunk-WRFAON6X.js';import {d}from'./chunk-SXIEAILV.js';import {a}from'./chunk-LKZ6OMAY.js';import {i,l,m,h}from'./chunk-4HSBROEY.js';import {MinusCircleOutlined}from'@ant-design/icons';import {useQuery}from'@tanstack/react-query';import {App,Form,Input,Select,Row,Col,Empty,Button,Typography}from'antd';import {last,first}from'lodash-es';import {Fragment as Fragment$1}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var {Text:A}=Typography,K=(r,t)=>{last(r)===h?t?.([h]):first(r)===h?t?.(r.slice(1)):t?.(r);},Y=r=>{let{onChange:t,...l$1}=r,s=l(),{data:g,isLoading:p}=useQuery({queryKey:m.enums.gameGroups,queryFn:()=>s.get("/api/enum/get?enum=game_group&type=all")}),d=[{label:"\u901A\u7528",value:h}].concat(g?.map(a=>({label:a,value:a}))??[]);return jsx(Select,{...l$1,allowClear:!0,showSearch:!0,mode:"tags",optionFilterProp:"label",loading:p,options:d,onChange:a=>K(a,t)})},k=r=>{let{groups:t,onChange:l$1,...s}=r,g=l(),{permissionVersion:p}=i(),d=p==="v3",a=p==="v4",{data:c,isLoading:h}=useQuery({queryKey:m.enums.gameIds(a?[]:t??[]),queryFn:()=>g.get(`/api/enum/game_group/get_game_ids${a?"":`?game_groups=${t?.join(",")}`}`).then(o=>o?.list),enabled:a||d&&!!t?.length}),y=c?.map(o=>({label:o.name,value:o.id}));return jsx(Select,{...s,allowClear:!0,showSearch:!0,optionFilterProp:"label",mode:"tags",loading:h,options:y,onChange:o=>K(o,l$1)})},de=({mode:r,onSuccess:t})=>{let{message:l}=App.useApp(),{t:s}=a(),{data:g$1,isLoading:p}=a$1(),d$1=f(),a$2=g(),c=r==="create",h=s(c?"User.createTitle":"User.updateTitle"),y=jsxs(Fragment,{children:[jsx(Form.Item,{label:s("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!c})}),jsx(Form.Item,{label:s("global.role"),name:"roles",children:jsx(Select,{allowClear:!0,showSearch:!0,mode:"multiple",loading:p,optionFilterProp:"label",options:g$1?.map(C=>({label:C.name,value:C.name}))})})]});return d({title:h,width:"600px",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:y,onConfirm:async(C,L)=>{c?(await d$1.mutateAsync(C),l.success(s("User.createSuccessfully"))):(await a$2.mutateAsync({...C,id:L?.id}),l.success(s("User.updateSuccessfully"))),t?.();}})},Ce=({mode:r,onSuccess:t})=>{let{message:l}=App.useApp(),{t:s}=a(),{data:g$1,isLoading:p}=a$1(),d$1=f(),a$2=g(),c=r==="create",h=s(c?"User.createTitle":"User.updateTitle"),{permissionVersion:y}=i(),o=y==="v3",C=jsxs(Fragment,{children:[jsx(Form.Item,{label:s("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!c})}),jsx(Form.List,{name:"permissions",children:(F,{add:U,remove:B})=>jsxs(Row,{gutter:8,children:[o&&jsx(Col,{span:8,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.projectGroup")})}),jsx(Col,{span:o?10:14,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.game")})}),jsx(Col,{span:o?6:10,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.role")})}),F.map(n=>jsxs(Fragment$1,{children:[o&&jsx(Col,{span:8,children:jsx(Form.Item,{noStyle:!0,shouldUpdate:!0,children:({setFieldValue:i})=>jsx(Form.Item,{name:[n.name,"game_group"],children:jsx(Y,{onChange:()=>{i(["permissions",n.name,"game_ids"],[]);}})})})}),jsx(Col,{span:o?10:14,children:o?jsx(Form.Item,{noStyle:!0,shouldUpdate:(i,f)=>i.permissions[n.name]?.game_group!==f.permissions[n.name]?.game_group,children:({getFieldValue:i})=>{let f=i(["permissions",n.name,"game_group"]);return jsx(Form.Item,{name:[n.name,"game_ids"],dependencies:[["permissions",n.name,"game_group"]],rules:[{required:!!f?.length,message:"\u8BF7\u9009\u62E9\u6E38\u620F"}],children:jsx(k,{groups:f})})}}):jsx(Form.Item,{name:[n.name,"game_ids"],rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6E38\u620F"}],children:jsx(k,{})})}),jsx(Col,{span:o?6:10,children:jsxs("div",{className:"flex",children:[jsx("div",{className:"flex-1",children:jsx(Form.Item,{name:[n.name,"role"],rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u89D2\u8272"},({getFieldValue:i})=>({validator(f,D){return i("permissions").filter((v,E)=>!!v&&E!==n.name).some(v=>v.role===D)?Promise.reject(new Error("\u8BF7\u52FF\u91CD\u590D\u9009\u62E9\u89D2\u8272")):Promise.resolve()}})],children:jsx(Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",loading:p,options:g$1?.map(i=>({label:i.name,value:i.name}))})})}),jsx("div",{className:"w-8 text-center",children:jsx(Form.Item,{children:jsx(MinusCircleOutlined,{onClick:()=>{B(n.name);}})})})]})})]},n.key)),F.length===0&&jsx(Col,{span:24,children:jsx(Empty,{className:"mb-6"})}),jsx(Col,{span:24,children:jsx(Button,{block:!0,type:"dashed",onClick:()=>U(),children:s("global.add")})})]})})]});return d({title:h,width:"1000px",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:C,onConfirm:async(F,U)=>{c?(await d$1.mutateAsync(F),l.success(s("User.createSuccessfully"))):(await a$2.mutateAsync({...F,id:U?.id}),l.success(s("User.updateSuccessfully"))),t?.();}})};export{de as a,Ce as b};//# sourceMappingURL=chunk-Z6CAC4PS.js.map
2
- //# sourceMappingURL=chunk-Z6CAC4PS.js.map
1
+ import {a as a$1,f,g}from'./chunk-ES2NIJ2P.js';import {d}from'./chunk-LHVTM6A4.js';import {a}from'./chunk-LO57CB37.js';import {i,l,m,h}from'./chunk-CHYXXPB2.js';import {MinusCircleOutlined}from'@ant-design/icons';import {useQuery}from'@tanstack/react-query';import {App,Form,Input,Select,Row,Col,Empty,Button,Typography}from'antd';import {last,first}from'lodash-es';import {Fragment as Fragment$1}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var {Text:A}=Typography,K=(r,t)=>{last(r)===h?t?.([h]):first(r)===h?t?.(r.slice(1)):t?.(r);},Y=r=>{let{onChange:t,...l$1}=r,s=l(),{data:g,isLoading:p}=useQuery({queryKey:m.enums.gameGroups,queryFn:()=>s.get("/api/enum/get?enum=game_group&type=all")}),d=[{label:"\u901A\u7528",value:h}].concat(g?.map(a=>({label:a,value:a}))??[]);return jsx(Select,{...l$1,allowClear:!0,showSearch:!0,mode:"tags",optionFilterProp:"label",loading:p,options:d,onChange:a=>K(a,t)})},k=r=>{let{groups:t,onChange:l$1,...s}=r,g=l(),{permissionVersion:p}=i(),d=p==="v3",a=p==="v4",{data:c,isLoading:h}=useQuery({queryKey:m.enums.gameIds(a?[]:t??[]),queryFn:()=>g.get(`/api/enum/game_group/get_game_ids${a?"":`?game_groups=${t?.join(",")}`}`).then(o=>o?.list),enabled:a||d&&!!t?.length}),y=c?.map(o=>({label:o.name,value:o.id}));return jsx(Select,{...s,allowClear:!0,showSearch:!0,optionFilterProp:"label",mode:"tags",loading:h,options:y,onChange:o=>K(o,l$1)})},de=({mode:r,onSuccess:t})=>{let{message:l}=App.useApp(),{t:s}=a(),{data:g$1,isLoading:p}=a$1(),d$1=f(),a$2=g(),c=r==="create",h=s(c?"User.createTitle":"User.updateTitle"),y=jsxs(Fragment,{children:[jsx(Form.Item,{label:s("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!c})}),jsx(Form.Item,{label:s("global.role"),name:"roles",children:jsx(Select,{allowClear:!0,showSearch:!0,mode:"multiple",loading:p,optionFilterProp:"label",options:g$1?.map(C=>({label:C.name,value:C.name}))})})]});return d({title:h,width:"600px",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:y,onConfirm:async(C,L)=>{c?(await d$1.mutateAsync(C),l.success(s("User.createSuccessfully"))):(await a$2.mutateAsync({...C,id:L?.id}),l.success(s("User.updateSuccessfully"))),t?.();}})},Ce=({mode:r,onSuccess:t})=>{let{message:l}=App.useApp(),{t:s}=a(),{data:g$1,isLoading:p}=a$1(),d$1=f(),a$2=g(),c=r==="create",h=s(c?"User.createTitle":"User.updateTitle"),{permissionVersion:y}=i(),o=y==="v3",C=jsxs(Fragment,{children:[jsx(Form.Item,{label:s("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!c})}),jsx(Form.List,{name:"permissions",children:(F,{add:U,remove:B})=>jsxs(Row,{gutter:8,children:[o&&jsx(Col,{span:8,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.projectGroup")})}),jsx(Col,{span:o?10:14,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.game")})}),jsx(Col,{span:o?6:10,className:"text-center mb-4",children:jsx(A,{strong:!0,children:s("global.role")})}),F.map(n=>jsxs(Fragment$1,{children:[o&&jsx(Col,{span:8,children:jsx(Form.Item,{noStyle:!0,shouldUpdate:!0,children:({setFieldValue:i})=>jsx(Form.Item,{name:[n.name,"game_group"],children:jsx(Y,{onChange:()=>{i(["permissions",n.name,"game_ids"],[]);}})})})}),jsx(Col,{span:o?10:14,children:o?jsx(Form.Item,{noStyle:!0,shouldUpdate:(i,f)=>i.permissions[n.name]?.game_group!==f.permissions[n.name]?.game_group,children:({getFieldValue:i})=>{let f=i(["permissions",n.name,"game_group"]);return jsx(Form.Item,{name:[n.name,"game_ids"],dependencies:[["permissions",n.name,"game_group"]],rules:[{required:!!f?.length,message:"\u8BF7\u9009\u62E9\u6E38\u620F"}],children:jsx(k,{groups:f})})}}):jsx(Form.Item,{name:[n.name,"game_ids"],rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6E38\u620F"}],children:jsx(k,{})})}),jsx(Col,{span:o?6:10,children:jsxs("div",{className:"flex",children:[jsx("div",{className:"flex-1",children:jsx(Form.Item,{name:[n.name,"role"],rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u89D2\u8272"},({getFieldValue:i})=>({validator(f,D){return i("permissions").filter((v,E)=>!!v&&E!==n.name).some(v=>v.role===D)?Promise.reject(new Error("\u8BF7\u52FF\u91CD\u590D\u9009\u62E9\u89D2\u8272")):Promise.resolve()}})],children:jsx(Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",loading:p,options:g$1?.map(i=>({label:i.name,value:i.name}))})})}),jsx("div",{className:"w-8 text-center",children:jsx(Form.Item,{children:jsx(MinusCircleOutlined,{onClick:()=>{B(n.name);}})})})]})})]},n.key)),F.length===0&&jsx(Col,{span:24,children:jsx(Empty,{className:"mb-6"})}),jsx(Col,{span:24,children:jsx(Button,{block:!0,type:"dashed",onClick:()=>U(),children:s("global.add")})})]})})]});return d({title:h,width:"1000px",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:C,onConfirm:async(F,U)=>{c?(await d$1.mutateAsync(F),l.success(s("User.createSuccessfully"))):(await a$2.mutateAsync({...F,id:U?.id}),l.success(s("User.updateSuccessfully"))),t?.();}})};export{de as a,Ce as b};//# sourceMappingURL=chunk-ZYMD6X3T.js.map
2
+ //# sourceMappingURL=chunk-ZYMD6X3T.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/permission/hooks/user-hooks.tsx"],"names":["Text","Typography","handleWildcardSelection","value","onChange","last","WILDCARD","first","GroupSelect","props","rest","ky","useKy","data","isLoading","useQuery","queryKeys","options","group","jsx","Select","GameSelect","groups","permissionVersion","useToolkitsStore","isV3","isV4","response","useUserModal","mode","onSuccess","message","App","t","useTranslation","roles","isRolesLoading","useAllRoles","create","useCreateUser","update","useUpdateUser","isCreateMode","title","content","jsxs","Fragment","Form","Input","role","useFormModal","values","extraValues","useUserModalV2","fields","add","remove","Row","Col","field","setFieldValue","prevValues","nextValues","getFieldValue","_groups","_rule","item","index","MinusCircleOutlined","Empty","Button"],"mappings":"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","file":"chunk-Z6CAC4PS.js","sourcesContent":["import { MinusCircleOutlined } from '@ant-design/icons'\nimport { useQuery } from '@tanstack/react-query'\nimport { App, Button, Col, Empty, Form, Input, Row, Select, Typography } from 'antd'\nimport { first, last } from 'lodash-es'\nimport { Fragment } from 'react'\nimport { type FC } from 'react'\n\nimport { useToolkitsStore } from '@/components'\nimport { PermissionVersion, WILDCARD } from '@/constants'\nimport { useFormModal } from '@/hooks/modal'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\n\nimport { useAllRoles, useCreateUser, useUpdateUser } from '../services'\n\nconst { Text } = Typography\n\n/**\n * 处理通配符选择逻辑\n * - 如果最后选择的是通配符,则只保留通配符\n * - 如果第一个是通配符但又选择了其他项,则移除通配符\n */\nconst handleWildcardSelection = (value: string[], onChange?: (value: string[]) => void) => {\n if (last(value) === WILDCARD) {\n onChange?.([WILDCARD])\n } else if (first(value) === WILDCARD) {\n onChange?.(value.slice(1))\n } else {\n onChange?.(value)\n }\n}\n\ninterface GroupSelectProps {\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst GroupSelect: FC<GroupSelectProps> = props => {\n const { onChange, ...rest } = props\n const ky = useKy()\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameGroups,\n queryFn: () => ky.get<string[]>('/api/enum/get?enum=game_group&type=all'),\n })\n\n const options = [{ label: '通用', value: WILDCARD }].concat(\n data?.map(group => ({ label: group, value: group })) ?? [],\n )\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n mode=\"tags\"\n optionFilterProp=\"label\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface GameSelectProps {\n groups?: string[]\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\n/**\n * 游戏选择组件\n * - V3: 依赖 groups 参数,需要先选择项目组才能加载游戏列表\n * - V4: 不依赖 groups,直接加载所有游戏列表\n */\nconst GameSelect: FC<GameSelectProps> = props => {\n const { groups, onChange, ...rest } = props\n const ky = useKy()\n const { permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\n const isV4 = permissionVersion === PermissionVersion.V4\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameIds(isV4 ? [] : (groups ?? [])),\n queryFn: () =>\n ky\n .get<{\n list: {\n id: string\n name: string\n }[]\n }>(`/api/enum/game_group/get_game_ids${isV4 ? '' : `?game_groups=${groups?.join(',')}`}`)\n .then(response => response?.list),\n enabled: isV4 || (isV3 && !!groups?.length),\n })\n\n const options = data?.map((group: { id: string; name: string }) => ({ label: group.name, value: group.id }))\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n optionFilterProp=\"label\"\n mode=\"tags\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface UserModalFormSchema {\n name: string\n roles: string[]\n}\n\nexport const useUserModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const { data: roles, isLoading: isRolesLoading } = useAllRoles()\n const create = useCreateUser()\n const update = useUpdateUser()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('User.createTitle') : t('User.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select\n allowClear\n showSearch\n mode=\"multiple\"\n loading={isRolesLoading}\n optionFilterProp=\"label\"\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (values: UserModalFormSchema, extraValues: { id: string }) => {\n if (isCreateMode) {\n await create.mutateAsync(values)\n message.success(t('User.createSuccessfully'))\n } else {\n await update.mutateAsync({ ...values, id: extraValues?.id })\n message.success(t('User.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<UserModalFormSchema, { id: string }>({\n title,\n width: '600px',\n formProps: {\n autoComplete: 'off',\n labelCol: { flex: '80px' },\n },\n content,\n onConfirm,\n })\n}\n\ninterface UserModalV2FormSchema {\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n}\n\n/**\n * 用户弹窗 V2 版本(用于 V3 和 V4 权限系统)\n * - V3: 显示项目组选择,游戏列表依赖项目组\n * - V4: 隐藏项目组选择,游戏列表独立加载\n */\nexport const useUserModalV2 = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const { data: roles, isLoading: isRolesLoading } = useAllRoles()\n const create = useCreateUser()\n const update = useUpdateUser()\n const isCreateMode = mode === 'create'\n const title = isCreateMode ? t('User.createTitle') : t('User.updateTitle')\n const { permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.List name=\"permissions\">\n {(fields, { add, remove }) => (\n <Row gutter={8}>\n {isV3 && (\n <Col span={8} className=\"text-center mb-4\">\n <Text strong>{t('global.projectGroup')}</Text>\n </Col>\n )}\n <Col span={isV3 ? 10 : 14} className=\"text-center mb-4\">\n <Text strong>{t('global.game')}</Text>\n </Col>\n <Col span={isV3 ? 6 : 10} className=\"text-center mb-4\">\n <Text strong>{t('global.role')}</Text>\n </Col>\n {fields.map(field => (\n <Fragment key={field.key}>\n {isV3 && (\n <Col span={8}>\n <Form.Item noStyle shouldUpdate>\n {({ setFieldValue }) => (\n <Form.Item name={[field.name, 'game_group']}>\n <GroupSelect\n onChange={() => {\n setFieldValue(['permissions', field.name, 'game_ids'], [])\n }}\n />\n </Form.Item>\n )}\n </Form.Item>\n </Col>\n )}\n <Col span={isV3 ? 10 : 14}>\n {isV3 ? (\n <Form.Item\n noStyle\n shouldUpdate={(prevValues, nextValues) =>\n prevValues.permissions[field.name]?.game_group !==\n nextValues.permissions[field.name]?.game_group\n }\n >\n {({ getFieldValue }) => {\n const _groups = getFieldValue(['permissions', field.name, 'game_group'])\n\n return (\n <Form.Item\n name={[field.name, 'game_ids']}\n dependencies={[['permissions', field.name, 'game_group']]}\n rules={[{ required: !!_groups?.length, message: '请选择游戏' }]}\n >\n <GameSelect groups={_groups} />\n </Form.Item>\n )\n }}\n </Form.Item>\n ) : (\n <Form.Item name={[field.name, 'game_ids']} rules={[{ required: true, message: '请选择游戏' }]}>\n <GameSelect />\n </Form.Item>\n )}\n </Col>\n <Col span={isV3 ? 6 : 10}>\n <div className=\"flex\">\n <div className=\"flex-1\">\n <Form.Item\n name={[field.name, 'role']}\n rules={[\n { required: true, message: '请选择角色' },\n ({ getFieldValue }) => ({\n validator(_rule, value) {\n const items = getFieldValue('permissions') as UserModalV2FormSchema['permissions']\n const otherItems = items.filter((item, index) => !!item && index !== field.name)\n if (otherItems.some(item => item.role === value)) {\n return Promise.reject(new Error('请勿重复选择角色'))\n }\n return Promise.resolve()\n },\n }),\n ]}\n >\n <Select\n allowClear\n showSearch\n optionFilterProp=\"label\"\n loading={isRolesLoading}\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </div>\n <div className=\"w-8 text-center\">\n <Form.Item>\n <MinusCircleOutlined\n onClick={() => {\n remove(field.name)\n }}\n />\n </Form.Item>\n </div>\n </div>\n </Col>\n </Fragment>\n ))}\n {fields.length === 0 && (\n <Col span={24}>\n <Empty className=\"mb-6\" />\n </Col>\n )}\n <Col span={24}>\n <Button block type=\"dashed\" onClick={() => add()}>\n {t('global.add')}\n </Button>\n </Col>\n </Row>\n )}\n </Form.List>\n </>\n )\n\n const onConfirm = async (values: UserModalV2FormSchema, extraValues: { id: string }) => {\n if (isCreateMode) {\n await create.mutateAsync(values)\n message.success(t('User.createSuccessfully'))\n } else {\n await update.mutateAsync({ ...values, id: extraValues?.id })\n message.success(t('User.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<UserModalV2FormSchema, { id: string }>({\n title,\n width: '1000px',\n formProps: {\n autoComplete: 'off',\n labelCol: { flex: '80px' },\n },\n content,\n onConfirm,\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/modules/permission/hooks/user-hooks.tsx"],"names":["Text","Typography","handleWildcardSelection","value","onChange","last","WILDCARD","first","GroupSelect","props","rest","ky","useKy","data","isLoading","useQuery","queryKeys","options","group","jsx","Select","GameSelect","groups","permissionVersion","useToolkitsStore","isV3","isV4","response","useUserModal","mode","onSuccess","message","App","t","useTranslation","roles","isRolesLoading","useAllRoles","create","useCreateUser","update","useUpdateUser","isCreateMode","title","content","jsxs","Fragment","Form","Input","role","useFormModal","values","extraValues","useUserModalV2","fields","add","remove","Row","Col","field","setFieldValue","prevValues","nextValues","getFieldValue","_groups","_rule","item","index","MinusCircleOutlined","Empty","Button"],"mappings":"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","file":"chunk-ZYMD6X3T.js","sourcesContent":["import { MinusCircleOutlined } from '@ant-design/icons'\nimport { useQuery } from '@tanstack/react-query'\nimport { App, Button, Col, Empty, Form, Input, Row, Select, Typography } from 'antd'\nimport { first, last } from 'lodash-es'\nimport { Fragment } from 'react'\nimport { type FC } from 'react'\n\nimport { useToolkitsStore } from '@/components'\nimport { PermissionVersion, WILDCARD } from '@/constants'\nimport { useFormModal } from '@/hooks/modal'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\n\nimport { useAllRoles, useCreateUser, useUpdateUser } from '../services'\n\nconst { Text } = Typography\n\n/**\n * 处理通配符选择逻辑\n * - 如果最后选择的是通配符,则只保留通配符\n * - 如果第一个是通配符但又选择了其他项,则移除通配符\n */\nconst handleWildcardSelection = (value: string[], onChange?: (value: string[]) => void) => {\n if (last(value) === WILDCARD) {\n onChange?.([WILDCARD])\n } else if (first(value) === WILDCARD) {\n onChange?.(value.slice(1))\n } else {\n onChange?.(value)\n }\n}\n\ninterface GroupSelectProps {\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst GroupSelect: FC<GroupSelectProps> = props => {\n const { onChange, ...rest } = props\n const ky = useKy()\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameGroups,\n queryFn: () => ky.get<string[]>('/api/enum/get?enum=game_group&type=all'),\n })\n\n const options = [{ label: '通用', value: WILDCARD }].concat(\n data?.map(group => ({ label: group, value: group })) ?? [],\n )\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n mode=\"tags\"\n optionFilterProp=\"label\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface GameSelectProps {\n groups?: string[]\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\n/**\n * 游戏选择组件\n * - V3: 依赖 groups 参数,需要先选择项目组才能加载游戏列表\n * - V4: 不依赖 groups,直接加载所有游戏列表\n */\nconst GameSelect: FC<GameSelectProps> = props => {\n const { groups, onChange, ...rest } = props\n const ky = useKy()\n const { permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\n const isV4 = permissionVersion === PermissionVersion.V4\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameIds(isV4 ? [] : (groups ?? [])),\n queryFn: () =>\n ky\n .get<{\n list: {\n id: string\n name: string\n }[]\n }>(`/api/enum/game_group/get_game_ids${isV4 ? '' : `?game_groups=${groups?.join(',')}`}`)\n .then(response => response?.list),\n enabled: isV4 || (isV3 && !!groups?.length),\n })\n\n const options = data?.map((group: { id: string; name: string }) => ({ label: group.name, value: group.id }))\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n optionFilterProp=\"label\"\n mode=\"tags\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface UserModalFormSchema {\n name: string\n roles: string[]\n}\n\nexport const useUserModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const { data: roles, isLoading: isRolesLoading } = useAllRoles()\n const create = useCreateUser()\n const update = useUpdateUser()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('User.createTitle') : t('User.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select\n allowClear\n showSearch\n mode=\"multiple\"\n loading={isRolesLoading}\n optionFilterProp=\"label\"\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (values: UserModalFormSchema, extraValues: { id: string }) => {\n if (isCreateMode) {\n await create.mutateAsync(values)\n message.success(t('User.createSuccessfully'))\n } else {\n await update.mutateAsync({ ...values, id: extraValues?.id })\n message.success(t('User.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<UserModalFormSchema, { id: string }>({\n title,\n width: '600px',\n formProps: {\n autoComplete: 'off',\n labelCol: { flex: '80px' },\n },\n content,\n onConfirm,\n })\n}\n\ninterface UserModalV2FormSchema {\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n}\n\n/**\n * 用户弹窗 V2 版本(用于 V3 和 V4 权限系统)\n * - V3: 显示项目组选择,游戏列表依赖项目组\n * - V4: 隐藏项目组选择,游戏列表独立加载\n */\nexport const useUserModalV2 = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const { data: roles, isLoading: isRolesLoading } = useAllRoles()\n const create = useCreateUser()\n const update = useUpdateUser()\n const isCreateMode = mode === 'create'\n const title = isCreateMode ? t('User.createTitle') : t('User.updateTitle')\n const { permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.List name=\"permissions\">\n {(fields, { add, remove }) => (\n <Row gutter={8}>\n {isV3 && (\n <Col span={8} className=\"text-center mb-4\">\n <Text strong>{t('global.projectGroup')}</Text>\n </Col>\n )}\n <Col span={isV3 ? 10 : 14} className=\"text-center mb-4\">\n <Text strong>{t('global.game')}</Text>\n </Col>\n <Col span={isV3 ? 6 : 10} className=\"text-center mb-4\">\n <Text strong>{t('global.role')}</Text>\n </Col>\n {fields.map(field => (\n <Fragment key={field.key}>\n {isV3 && (\n <Col span={8}>\n <Form.Item noStyle shouldUpdate>\n {({ setFieldValue }) => (\n <Form.Item name={[field.name, 'game_group']}>\n <GroupSelect\n onChange={() => {\n setFieldValue(['permissions', field.name, 'game_ids'], [])\n }}\n />\n </Form.Item>\n )}\n </Form.Item>\n </Col>\n )}\n <Col span={isV3 ? 10 : 14}>\n {isV3 ? (\n <Form.Item\n noStyle\n shouldUpdate={(prevValues, nextValues) =>\n prevValues.permissions[field.name]?.game_group !==\n nextValues.permissions[field.name]?.game_group\n }\n >\n {({ getFieldValue }) => {\n const _groups = getFieldValue(['permissions', field.name, 'game_group'])\n\n return (\n <Form.Item\n name={[field.name, 'game_ids']}\n dependencies={[['permissions', field.name, 'game_group']]}\n rules={[{ required: !!_groups?.length, message: '请选择游戏' }]}\n >\n <GameSelect groups={_groups} />\n </Form.Item>\n )\n }}\n </Form.Item>\n ) : (\n <Form.Item name={[field.name, 'game_ids']} rules={[{ required: true, message: '请选择游戏' }]}>\n <GameSelect />\n </Form.Item>\n )}\n </Col>\n <Col span={isV3 ? 6 : 10}>\n <div className=\"flex\">\n <div className=\"flex-1\">\n <Form.Item\n name={[field.name, 'role']}\n rules={[\n { required: true, message: '请选择角色' },\n ({ getFieldValue }) => ({\n validator(_rule, value) {\n const items = getFieldValue('permissions') as UserModalV2FormSchema['permissions']\n const otherItems = items.filter((item, index) => !!item && index !== field.name)\n if (otherItems.some(item => item.role === value)) {\n return Promise.reject(new Error('请勿重复选择角色'))\n }\n return Promise.resolve()\n },\n }),\n ]}\n >\n <Select\n allowClear\n showSearch\n optionFilterProp=\"label\"\n loading={isRolesLoading}\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </div>\n <div className=\"w-8 text-center\">\n <Form.Item>\n <MinusCircleOutlined\n onClick={() => {\n remove(field.name)\n }}\n />\n </Form.Item>\n </div>\n </div>\n </Col>\n </Fragment>\n ))}\n {fields.length === 0 && (\n <Col span={24}>\n <Empty className=\"mb-6\" />\n </Col>\n )}\n <Col span={24}>\n <Button block type=\"dashed\" onClick={() => add()}>\n {t('global.add')}\n </Button>\n </Col>\n </Row>\n )}\n </Form.List>\n </>\n )\n\n const onConfirm = async (values: UserModalV2FormSchema, extraValues: { id: string }) => {\n if (isCreateMode) {\n await create.mutateAsync(values)\n message.success(t('User.createSuccessfully'))\n } else {\n await update.mutateAsync({ ...values, id: extraValues?.id })\n message.success(t('User.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<UserModalV2FormSchema, { id: string }>({\n title,\n width: '1000px',\n formProps: {\n autoComplete: 'off',\n labelCol: { flex: '80px' },\n },\n content,\n onConfirm,\n })\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-HMG7OG2U.js';import {j,f}from'./chunk-4HSBROEY.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 y=j(()=>{let{message:p}=App.useApp(),[c]=Form.useForm(),o=useNavigate(),{mutate:I}=a();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:!0,form:c,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:async d=>{let{permissions:s,front_route:f$1,...F}=d;await I({...F,front_route:f+f$1,permissions:s?JSON.parse(s):void 0}),p.success("\u521B\u5EFA\u6210\u529F",.8,()=>o("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:!0}],children:jsx(Input,{prefix:f})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:!0}],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:!1}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:!0}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:!1}}})}),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"})]})})]})})},{isGlobal:!0}),M=y;export{M as default};//# sourceMappingURL=createMenuItem-P5XUONZT.js.map
2
- //# sourceMappingURL=createMenuItem-P5XUONZT.js.map
1
+ import {a}from'./chunk-OLBTRSRZ.js';import {j,f}from'./chunk-CHYXXPB2.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 y=j(()=>{let{message:p}=App.useApp(),[c]=Form.useForm(),o=useNavigate(),{mutate:I}=a();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:!0,form:c,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:async d=>{let{permissions:s,front_route:f$1,...F}=d;await I({...F,front_route:f+f$1,permissions:s?JSON.parse(s):void 0}),p.success("\u521B\u5EFA\u6210\u529F",.8,()=>o("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:!0}],children:jsx(Input,{prefix:f})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:!0}],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:!1}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:!0}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:!1}}})}),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"})]})})]})})},{isGlobal:!0}),M=y;export{M as default};//# sourceMappingURL=createMenuItem-4FKIB6NW.js.map
2
+ //# sourceMappingURL=createMenuItem-4FKIB6NW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","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-P5XUONZT.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 { withContext } from '@/components/toolkitsProvider'\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 = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutate: 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 { isGlobal: true },\n)\n\nexport default CreateMenuItem\n"]}
1
+ {"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","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-4FKIB6NW.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 { withContext } from '@/components/toolkitsProvider'\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 = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutate: 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 { isGlobal: true },\n)\n\nexport default CreateMenuItem\n"]}
package/lib/index.d.ts CHANGED
@@ -636,7 +636,7 @@ interface SignInProps {
636
636
  }
637
637
  declare const SignIn: FC<SignInProps>;
638
638
 
639
- declare function usePermission(code?: string | string[], config?: Options): {
639
+ declare function useAuth(code?: string | string[], config?: Options): {
640
640
  data: boolean | Record<string, boolean>;
641
641
  error: Error;
642
642
  isError: true;
@@ -826,4 +826,4 @@ declare function usePermission(code?: string | string[], config?: Options): {
826
826
  declare function useMenuList(): _tanstack_react_query.UseQueryResult<MenuListItem[], Error>;
827
827
  declare const useGames: () => _tanstack_react_query.UseQueryResult<Game[], Error>;
828
828
 
829
- export { APP_ID_HEADER, AuthButton, type AuthButtonProps, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, NavMenu, type NavMenuItem, NotFound, _default as OperationLogList, type Permission, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, RequireGame, SSO_URL, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseFormDrawerProps, type UseFormModalProps, UserWidget, type VisibilityState, WILDCARD, createVisibilityStore, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, usePermission, useQueryListStore, useToolkitsStore, withContext };
829
+ export { APP_ID_HEADER, AuthButton, type AuthButtonProps, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, NavMenu, type NavMenuItem, NotFound, _default as OperationLogList, type Permission, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, RequireGame, SSO_URL, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseFormDrawerProps, type UseFormModalProps, UserWidget, type VisibilityState, WILDCARD, createVisibilityStore, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useAuth, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, useQueryListStore, useToolkitsStore, withContext };