react-toolkits 2.22.33 → 2.23.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.
- package/CHANGELOG.md +6 -0
- package/README.md +6 -6
- package/lib/{chunk-SXIEAILV.js → chunk-FHVTZNL5.js} +2 -2
- package/lib/chunk-FHVTZNL5.js.map +1 -0
- package/lib/{chunk-QKX27H5N.js → chunk-JKADWVCR.js} +2 -2
- package/lib/chunk-JKADWVCR.js.map +1 -0
- package/lib/{chunk-Z6CAC4PS.js → chunk-PMTRF3RC.js} +2 -2
- package/lib/{chunk-Z6CAC4PS.js.map → chunk-PMTRF3RC.js.map} +1 -1
- package/lib/{chunk-A5SX7QOV.js → chunk-UW7EAASY.js} +2 -2
- package/lib/chunk-UW7EAASY.js.map +1 -0
- package/lib/{chunk-TPZ34WDV.js → chunk-YH3DOKEA.js} +2 -2
- package/lib/{chunk-TPZ34WDV.js.map → chunk-YH3DOKEA.js.map} +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/{menuItemList-4NNDGF2U.js → menuItemList-LIVDS7CR.js} +2 -2
- package/lib/{menuItemList-4NNDGF2U.js.map → menuItemList-LIVDS7CR.js.map} +1 -1
- package/lib/{roleDetail-RHRRU4C4.js → roleDetail-3WXOSDID.js} +2 -2
- package/lib/{roleDetail-RHRRU4C4.js.map → roleDetail-3WXOSDID.js.map} +1 -1
- package/lib/{roleList-5KNJMTRI.js → roleList-BMKSJCRJ.js} +2 -2
- package/lib/roleList-BMKSJCRJ.js.map +1 -0
- package/lib/{updateMenuItem-T5OQVIBK.js → updateMenuItem-5KP7VZXB.js} +2 -2
- package/lib/{updateMenuItem-T5OQVIBK.js.map → updateMenuItem-5KP7VZXB.js.map} +1 -1
- package/lib/{userDetail-ANV6RZPM.js → userDetail-4O26FN3P.js} +2 -2
- package/lib/userDetail-4O26FN3P.js.map +1 -0
- package/lib/{userList-BGORGPAR.js → userList-2ZRAVUOF.js} +2 -2
- package/lib/{userList-BGORGPAR.js.map → userList-2ZRAVUOF.js.map} +1 -1
- package/package.json +1 -1
- package/lib/chunk-A5SX7QOV.js.map +0 -1
- package/lib/chunk-QKX27H5N.js.map +0 -1
- package/lib/chunk-SXIEAILV.js.map +0 -1
- package/lib/roleList-5KNJMTRI.js.map +0 -1
- package/lib/userDetail-ANV6RZPM.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":["MenuItemList","withContext","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-
|
|
1
|
+
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":["MenuItemList","withContext","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-LIVDS7CR.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 { withContext } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useRemoveMenu } from '../../services'\n\nconst MenuItemList = withContext(\n () => {\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.mutate(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 { isGlobal: true },\n)\n\nexport default MenuItemList\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b as b$1,a as a$2}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=roleDetail-
|
|
1
|
+
import {b as b$1,a as a$2}from'./chunk-YH3DOKEA.js';import {b}from'./chunk-WRFAON6X.js';import {a as a$1}from'./chunk-FHVTZNL5.js';import {a}from'./chunk-LKZ6OMAY.js';import'./chunk-JKADWVCR.js';import {j}from'./chunk-4HSBROEY.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 C=()=>{let p=useParams(),{t:o}=a(),{data:t,isLoading:d,refetch:u}=b(p.name),{show:f,modal:b$2}=b$1({mode:"update",onSuccess(){u();}}),D=async()=>{f({initialValues:{permissions:t?.permissions,name:t?.name.replace(/^role_/,"")},extraValues:{id:t.id}});};return jsxs(Fragment,{children:[jsx(Breadcrumb,{style:{marginBottom:"1.5rem"},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$1,{code:"200003",onClick:D,children:o("global.update")}),children:jsxs(Skeleton,{loading:d,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$2,{readonly:!0,value:t?.permissions})]})}),b$2]})},G=j(C,{isGlobal:!0});export{G as default};//# sourceMappingURL=roleDetail-3WXOSDID.js.map
|
|
2
|
+
//# sourceMappingURL=roleDetail-3WXOSDID.js.map
|
|
@@ -1 +1 @@
|
|
|
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","withContext"],"mappings":"wYAUA,IAAMA,CAAa,CAAA,IAAM,CACvB,IAAMC,CAAAA,CAASC,SAAU,EAAA,CACnB,CAAE,CAAA,CAAAC,CAAE,CAAA,CAAIC,CAAe,EAAA,CACvB,CAAE,IAAA,CAAAC,CAAM,CAAA,SAAA,CAAAC,EAAW,OAAAC,CAAAA,CAAQ,CAAIC,CAAAA,CAAAA,CAAQP,CAAO,CAAA,IAAc,CAE5D,CAAA,CAAE,IAAAQ,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,GAAM,CAAIC,CAAAA,GAAAA,CAAa,CACnC,IAAM,CAAA,QAAA,CACN,SAAY,EAAA,CACVJ,CAAQ,GACV,CACF,CAAC,CAAA,CAEKK,CAAuB,CAAA,SAAY,CACvCH,CAAAA,CAAK,CACH,aAAe,CAAA,CACb,WAAaJ,CAAAA,CAAAA,EAAM,WACnB,CAAA,IAAA,CAAMA,CAAM,EAAA,IAAA,CAAK,OAAQ,CAAA,QAAA,CAAU,EAAE,CACvC,CACA,CAAA,WAAA,CAAa,CACX,EAAIA,CAAAA,CAAAA,CAAM,EACZ,CACF,CAAC,EACH,CAEA,CAAA,OACEQ,IAAAC,CAAAA,QAAAA,CAAA,CACE,QAAA,CAAA,CAAAC,GAACC,CAAAA,UAAAA,CAAA,CACC,KAAO,CAAA,CAAE,YAAc,CAAA,QAAS,CAChC,CAAA,KAAA,CAAO,CACL,CACE,GAAK,CAAA,GAAA,CACL,KACED,CAAAA,GAAAA,CAACE,IAAA,CAAA,CAAK,GAAG,IAAK,CAAA,QAAA,CAAS,MACpB,CAAA,QAAA,CAAAd,CAAE,CAAA,aAAa,EAClB,CAEJ,CAAA,CACA,CACE,GAAA,CAAK,GACL,CAAA,KAAA,CAAOA,EAAE,kBAAkB,CAC7B,CACF,CAAA,CACF,CACAY,CAAAA,GAAAA,CAACG,IAAA,CAAA,CACC,KAAOf,CAAAA,CAAAA,CAAE,kBAAkB,CAAA,CAC3B,KACEY,CAAAA,GAAAA,CAACI,IAAA,CAAW,IAAA,CAAK,QAAS,CAAA,OAAA,CAASP,CAChC,CAAA,QAAA,CAAAT,CAAE,CAAA,eAAe,CACpB,CAAA,CAAA,CAGF,QAAAU,CAAAA,IAAAA,CAACO,QAAA,CAAA,CAAS,QAASd,CACjB,CAAA,QAAA,CAAA,CAAAO,IAACQ,CAAAA,YAAAA,CAAA,CAAa,MAAA,CAAQ,CAAG,CAAA,MAAA,CAAO,UAAW,CAAA,SAAA,CAAU,MACnD,CAAA,QAAA,CAAA,CAAAN,GAACM,CAAAA,YAAAA,CAAa,KAAb,CAAkB,KAAA,CAAOlB,CAAE,CAAA,aAAa,CAAI,CAAA,QAAA,CAAAE,GAAM,IAAK,CAAA,CAAA,CACxDU,GAACM,CAAAA,YAAAA,CAAa,IAAb,CAAA,CAAkB,MAAM,IAAM,CAAA,QAAA,CAAAhB,CAAM,EAAA,EAAA,CAAG,CACxCU,CAAAA,GAAAA,CAACM,YAAa,CAAA,IAAA,CAAb,CAAkB,KAAA,CAAOlB,CAAE,CAAA,qBAAqB,CAAI,CAAA,QAAA,CAAAE,GAAM,KAAM,CAAA,CAAA,CAAA,CACnE,CACAU,CAAAA,GAAAA,CAACO,OAAA,CAAA,EAAQ,CACTP,CAAAA,GAAAA,CAACQ,GAAA,CAAA,CAAe,QAAQ,CAAA,CAAA,CAAA,CAAC,KAAOlB,CAAAA,CAAAA,EAAM,YAAa,CACrD,CAAA,CAAA,CAAA,CACF,CACCK,CAAAA,GAAAA,CAAAA,CACH,CAEJ,CAAA,CAEOc,CAAQC,CAAAA,CAAAA,CAAYzB,CAAY,CAAA,CAAE,QAAU,CAAA,CAAA,CAAK,CAAC","file":"roleDetail-
|
|
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","withContext"],"mappings":"wYAUA,IAAMA,CAAa,CAAA,IAAM,CACvB,IAAMC,CAAAA,CAASC,SAAU,EAAA,CACnB,CAAE,CAAA,CAAAC,CAAE,CAAA,CAAIC,CAAe,EAAA,CACvB,CAAE,IAAA,CAAAC,CAAM,CAAA,SAAA,CAAAC,EAAW,OAAAC,CAAAA,CAAQ,CAAIC,CAAAA,CAAAA,CAAQP,CAAO,CAAA,IAAc,CAE5D,CAAA,CAAE,IAAAQ,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,GAAM,CAAIC,CAAAA,GAAAA,CAAa,CACnC,IAAM,CAAA,QAAA,CACN,SAAY,EAAA,CACVJ,CAAQ,GACV,CACF,CAAC,CAAA,CAEKK,CAAuB,CAAA,SAAY,CACvCH,CAAAA,CAAK,CACH,aAAe,CAAA,CACb,WAAaJ,CAAAA,CAAAA,EAAM,WACnB,CAAA,IAAA,CAAMA,CAAM,EAAA,IAAA,CAAK,OAAQ,CAAA,QAAA,CAAU,EAAE,CACvC,CACA,CAAA,WAAA,CAAa,CACX,EAAIA,CAAAA,CAAAA,CAAM,EACZ,CACF,CAAC,EACH,CAEA,CAAA,OACEQ,IAAAC,CAAAA,QAAAA,CAAA,CACE,QAAA,CAAA,CAAAC,GAACC,CAAAA,UAAAA,CAAA,CACC,KAAO,CAAA,CAAE,YAAc,CAAA,QAAS,CAChC,CAAA,KAAA,CAAO,CACL,CACE,GAAK,CAAA,GAAA,CACL,KACED,CAAAA,GAAAA,CAACE,IAAA,CAAA,CAAK,GAAG,IAAK,CAAA,QAAA,CAAS,MACpB,CAAA,QAAA,CAAAd,CAAE,CAAA,aAAa,EAClB,CAEJ,CAAA,CACA,CACE,GAAA,CAAK,GACL,CAAA,KAAA,CAAOA,EAAE,kBAAkB,CAC7B,CACF,CAAA,CACF,CACAY,CAAAA,GAAAA,CAACG,IAAA,CAAA,CACC,KAAOf,CAAAA,CAAAA,CAAE,kBAAkB,CAAA,CAC3B,KACEY,CAAAA,GAAAA,CAACI,IAAA,CAAW,IAAA,CAAK,QAAS,CAAA,OAAA,CAASP,CAChC,CAAA,QAAA,CAAAT,CAAE,CAAA,eAAe,CACpB,CAAA,CAAA,CAGF,QAAAU,CAAAA,IAAAA,CAACO,QAAA,CAAA,CAAS,QAASd,CACjB,CAAA,QAAA,CAAA,CAAAO,IAACQ,CAAAA,YAAAA,CAAA,CAAa,MAAA,CAAQ,CAAG,CAAA,MAAA,CAAO,UAAW,CAAA,SAAA,CAAU,MACnD,CAAA,QAAA,CAAA,CAAAN,GAACM,CAAAA,YAAAA,CAAa,KAAb,CAAkB,KAAA,CAAOlB,CAAE,CAAA,aAAa,CAAI,CAAA,QAAA,CAAAE,GAAM,IAAK,CAAA,CAAA,CACxDU,GAACM,CAAAA,YAAAA,CAAa,IAAb,CAAA,CAAkB,MAAM,IAAM,CAAA,QAAA,CAAAhB,CAAM,EAAA,EAAA,CAAG,CACxCU,CAAAA,GAAAA,CAACM,YAAa,CAAA,IAAA,CAAb,CAAkB,KAAA,CAAOlB,CAAE,CAAA,qBAAqB,CAAI,CAAA,QAAA,CAAAE,GAAM,KAAM,CAAA,CAAA,CAAA,CACnE,CACAU,CAAAA,GAAAA,CAACO,OAAA,CAAA,EAAQ,CACTP,CAAAA,GAAAA,CAACQ,GAAA,CAAA,CAAe,QAAQ,CAAA,CAAA,CAAA,CAAC,KAAOlB,CAAAA,CAAAA,EAAM,YAAa,CACrD,CAAA,CAAA,CAAA,CACF,CACCK,CAAAA,GAAAA,CAAAA,CACH,CAEJ,CAAA,CAEOc,CAAQC,CAAAA,CAAAA,CAAYzB,CAAY,CAAA,CAAE,QAAU,CAAA,CAAA,CAAK,CAAC","file":"roleDetail-3WXOSDID.js","sourcesContent":["import { Breadcrumb, Card, Descriptions, Divider, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton, withContext } 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 style={{ marginBottom: '1.5rem' }}\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 withContext(RoleDetail, { isGlobal: true })\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {c,b as b$1,e as e$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=roleList-
|
|
1
|
+
import {c,b as b$1,e as e$1}from'./chunk-UW7EAASY.js';import {b}from'./chunk-YH3DOKEA.js';import {e}from'./chunk-WRFAON6X.js';import {a as a$2}from'./chunk-FHVTZNL5.js';import {a as a$1}from'./chunk-LKZ6OMAY.js';import {a}from'./chunk-JKADWVCR.js';import {j,i,l}from'./chunk-4HSBROEY.js';import {UsergroupAddOutlined}from'@ant-design/icons';import {App,Space,Card}from'antd';import {Link}from'react-router-dom';import {jsx,Fragment,jsxs}from'react/jsx-runtime';var v=()=>{let{modal:g,message:k}=App.useApp(),{data:L}=a("200005"),{t}=a$1(),{permissionVersion:T}=i(e=>e),{refetch:s}=c(),b$2=l(),{show:C,modal:w}=b({mode:"create",onSuccess(){s("role-list",{page:1});}}),{show:V,modal:A}=b({mode:"update",onSuccess(){s("role-list");}}),I=e(),S=async e=>{let o=await b$2.get(`/api/usystem/role/info${T==="v2"?"V2":""}?name=${e.name}`);V({initialValues:{permissions:o.permissions,name:o.name.replace(/^role_/,"")},extraValues:{id:o?.id}});},x=[{title:t("global.name"),key:"name",render(e){return L?jsx(Link,{to:`${e.name}`,relative:"path",children:e.name}):jsx(Fragment,{children:e.name})}},{title:"ID",dataIndex:"id",key:"id"},{title:t("global.creationTime"),dataIndex:"ctime",key:"ctime"},{title:t("global.operation"),width:150,align:"center",render:(e,o)=>jsxs(Space,{size:"small",children:[jsx(a$2,{code:"200003",size:"small",type:"link",onClick:async()=>{S(o);},children:t("global.update")}),jsx(a$2,{danger:!0,code:"200004",size:"small",type:"link",onClick:()=>{g.confirm({title:t("Role.deleteTitle"),content:jsx(b$1,{texts:[o.name],children:t("Role.deleteContent",{role:o.name})}),async onOk(){await I.mutate({id:o.id,name:o.name}),s("role-list"),k.success(t("Role.deleteSuccessfully"));}});},children:t("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:t("global.role"),extra:jsx(a$2,{type:"primary",code:"200002",icon:jsx(UsergroupAddOutlined,{}),onClick:()=>{C();},children:t("Role.createTitle")}),children:jsx(e$1,{identifier:"role-list",rowKey:"name",columns:x,code:"200001",request:{url:"/api/usystem/role/list",method:"GET"},dataAdapter:e=>({total:e?.Total,items:e?.List})})}),w,A]})},P=j(v,{isGlobal:!0});export{P as default};//# sourceMappingURL=roleList-BMKSJCRJ.js.map
|
|
2
|
+
//# sourceMappingURL=roleList-BMKSJCRJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/pages/roleList/index.tsx"],"names":["RoleList","modal","message","App","viewable","useAuth","useTranslation","permissionVersion","useToolkitsStore","s","refetch","useQueryListStore","ky","useKy","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","withContext"],"mappings":"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","file":"roleList-BMKSJCRJ.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, withContext } from '@/components'\nimport { PermissionVersion } 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 { permissionVersion } = useToolkitsStore(s => s)\n const { refetch } = useQueryListStore()\n const ky = useKy()\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/info${permissionVersion === PermissionVersion.V2 ? 'V2' : ''}?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.mutate({\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 withContext(RoleList, {\n isGlobal: true,\n})\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b}from'./chunk-HMG7OG2U.js';import {b as b$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=updateMenuItem-
|
|
1
|
+
import {b}from'./chunk-HMG7OG2U.js';import {b as b$1}from'./chunk-JKADWVCR.js';import {j,l,m,f}from'./chunk-4HSBROEY.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 R=j(()=>{let{message:b$2}=App.useApp(),[i]=Form.useForm(),l$1=useNavigate(),{mutate:_}=b(),r=useParams(),{refetch:x}=b$1(),N=l(),{data:p,isLoading:v}=useQuery({queryKey:m.menus.detail(Number(r.id)),queryFn:()=>N.get(`/api/usystem/menu/info?id=${r.id}`),enabled:!!r.id}),q=async n=>{let{permissions:m,front_route:a,...u}=n;await _({...u,permissions:m?JSON.parse(m):void 0,front_route:f+a,id:+r.id}),x(),b$2.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),E=m?.replace(f,"");i.setFieldsValue({...a,permissions:u,front_route:E});},[p,i]),jsx(Card,{title:"\u66F4\u65B0\u83DC\u5355\u9879",loading:v,children:jsxs(Form,{scrollToFirstError:!0,form:i,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:q,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:()=>{l$1("../..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},{isGlobal:!0}),X=R;export{X as default};//# sourceMappingURL=updateMenuItem-5KP7VZXB.js.map
|
|
2
|
+
//# sourceMappingURL=updateMenuItem-5KP7VZXB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/updateMenuItem/index.tsx"],"names":["EditMenuItem","withContext","message","App","form","Form","navigate","useNavigate","mutate","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-
|
|
1
|
+
{"version":3,"sources":["../src/modules/menu/pages/updateMenuItem/index.tsx"],"names":["EditMenuItem","withContext","message","App","form","Form","navigate","useNavigate","mutate","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-5KP7VZXB.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 { withContext } from '@/components/toolkitsProvider'\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 = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutate } = 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 mutate({\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 { isGlobal: true },\n)\n\nexport default EditMenuItem\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=userDetail-
|
|
1
|
+
import {b}from'./chunk-PMTRF3RC.js';import'./chunk-WRFAON6X.js';import {a as a$2}from'./chunk-FHVTZNL5.js';import {a}from'./chunk-LKZ6OMAY.js';import {c,a as a$1}from'./chunk-JKADWVCR.js';import {i,l,m,h}from'./chunk-4HSBROEY.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 $=()=>{let i$1=useParams(),{t:r}=a(),{gameApiV2:T,permissionVersion:D}=i(),V=D==="v3",h$1=l(),{data:s,isLoading:L,refetch:C}=useQuery({queryKey:m.users.detail(i$1.id||""),queryFn:()=>h$1.get(`/api/usystem/user/info?id=${i$1.id}`),enabled:!!i$1.id}),{data:x}=c(),{data:A}=a$1("200005"),{show:B,modal:K}=b({mode:"update",onSuccess(){C();}}),S=[V&&{key:"group",title:r("global.projectGroup"),dataIndex:"game_group",render(o){return o.map(t=>jsx(Tag,{children:t===h?"\u901A\u7528":t},t))}},{key:"game",title:r("global.game"),dataIndex:"game_ids",render(o){return o.map(t=>{let U=x?.find(m=>String(T?m.game_id:m.id)===t);return jsx(Tag,{children:U?.name??(t===h?"\u901A\u7528":t)},t)})}},{key:"role",title:r("global.role"),dataIndex:"role",render(o){return A?jsx(Link,{to:`../../role/${o}`,relative:"path",children:o}):o}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Breadcrumb,{style:{marginBottom:"1.5rem"},items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:r("global.user")})},{key:"2",title:"\u7528\u6237\u8BE6\u60C5"}]}),jsx(Card,{title:"\u7528\u6237\u8BE6\u60C5",loading:L,extra:jsx(a$2,{code:"100003",onClick:()=>{B({initialValues:{name:s?.name,permissions:s?.permissions},extraValues:{id:s.id}});},children:r("global.update")}),children:jsxs(Descriptions,{bordered:!0,column:1,children:[jsx(Descriptions.Item,{label:r("global.name"),children:s?.name}),jsx(Descriptions.Item,{label:"ID",children:s?.id}),jsx(Descriptions.Item,{label:r("global.role"),children:jsx(Table,{rowKey:"role",columns:S,dataSource:s?.permissions,pagination:!1})})]})}),K]})},O=$;export{O as default};//# sourceMappingURL=userDetail-4O26FN3P.js.map
|
|
2
|
+
//# sourceMappingURL=userDetail-4O26FN3P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/pages/userDetail/index.tsx"],"names":["UserDetail","params","useParams","t","useTranslation","gameApiV2","permissionVersion","useToolkitsStore","isV3","ky","useKy","data","isLoading","refetch","useQuery","queryKeys","games","useGames","roleViewable","useAuth","show","modal","useUserModalV2","columns","value","item","jsx","Tag","WILDCARD","matchedGame","game","Link","jsxs","Fragment","Breadcrumb","Card","AuthButton_default","Descriptions","Table","userDetail_default"],"mappings":"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","file":"userDetail-4O26FN3P.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 { PermissionVersion, WILDCARD } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\nimport { useGames, useAuth } from '@/services'\n\nimport { useUserModalV2 } from '../../hooks'\nimport type { UserListItem } from '../../types'\n\nconst UserDetail = () => {\n const params = useParams<'id'>()\n const { t } = useTranslation()\n const { gameApiV2, permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\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 } = useUserModalV2({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const columns = [\n isV3 && {\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(gameApiV2 ? 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 style={{ marginBottom: '1.5rem' }}\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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1,b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=userList-
|
|
1
|
+
import {a as a$1,b}from'./chunk-PMTRF3RC.js';import {c,b as b$1,e}from'./chunk-UW7EAASY.js';import {h}from'./chunk-WRFAON6X.js';import {a as a$2}from'./chunk-FHVTZNL5.js';import {a}from'./chunk-LKZ6OMAY.js';import'./chunk-JKADWVCR.js';import {j,i}from'./chunk-4HSBROEY.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 _=()=>{let{modal:b$2,message:I}=App.useApp(),{t:o}=a(),L=h(),{refetch:r}=c(),{permissionVersion:n}=i(t=>t),M=n==="v1",l=n==="v3",m=n==="v4",{show:x,modal:A}=a$1({mode:"create",onSuccess(){r("user-list",{page:1});}}),{show:S,modal:F}=a$1({mode:"update",onSuccess(){r("user-list");}}),{show:B,modal:R}=b({mode:"create",onSuccess(){r("user-list",{page:1});}}),{show:z,modal:G}=b({mode:"update",onSuccess(){r("user-list");}}),H=[{title:o("global.name"),dataIndex:"name",key:"name",render(t,s){return l||m?jsx(Link,{to:`./${s.id}`,children:t}):t}},{title:"ID",dataIndex:"id",key:"id"},(M||l)&&{title:o("global.role"),dataIndex:"roles",key:"roles",width:"40%",render(t){return jsx(Row,{gutter:[4,4],children:(t||[]).map(s=>jsx(Col,{children:s==="root"?jsx(Tag,{color:"#f50",children:s}):jsx(Tag,{color:"#ff5a00",children:jsx(Link,{to:`../role/${s}`,children:s})})},s))})}},{title:o("global.creationTime"),dataIndex:"Ctime",key:"ctime"},{title:o("global.operation"),width:150,align:"center",render:(t,s)=>{let{name:i,permissions:O,roles:Q,id:d}=s;return jsxs(Space,{children:[jsx(a$2,{size:"small",type:"link",code:"100003",onClick:()=>{l||m?z({initialValues:{name:i,permissions:O},extraValues:{id:d}}):S({initialValues:{name:i,roles:Q},extraValues:{id:d}});},children:o("global.update")}),jsx(a$2,{danger:!0,size:"small",code:"100004",type:"link",onClick:()=>{b$2.confirm({title:o("User.deleteTitle"),content:jsx(b$1,{texts:[i],children:o("User.deleteContent",{user:i})}),async onOk(){await L.mutateAsync({id:d,name:i}),r("user-list"),I.success(o("User.deleteSuccessfully"));}});},children:o("global.delete")})]})}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Card,{title:o("global.user"),extra:jsx(a$2,{type:"primary",icon:jsx(UserAddOutlined,{}),code:"100002",onClick:()=>{l||m?B():x();},children:o("User.createTitle")}),children:jsx(e,{identifier:"user-list",code:"100001",request:{url:"/api/usystem/user/list",method:"GET"},rowKey:"id",columns:H,dataAdapter:t=>({total:t?.Total,items:t?.List}),renderForm:l?t=>jsx(Form,{form:t,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})}):void 0})}),A,F,R,G]})},te=j(_,{isGlobal:!0});export{te as default};//# sourceMappingURL=userList-2ZRAVUOF.js.map
|
|
2
|
+
//# sourceMappingURL=userList-2ZRAVUOF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/userList/index.tsx"],"names":["UserList","modal","message","App","t","useTranslation","remove","useRemoveUser","refetch","useQueryListStore","permissionVersion","useToolkitsStore","s","isV1","isV3","isV4","showCreateModal","createModal","useUserModal","showUpdateModal","updateModal","showCreateModalV2","createModalV2","useUserModalV2","showUpdateModalV2","updateModalV2","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","withContext"],"mappings":"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","file":"userList-BGORGPAR.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, withContext } from '@/components'\nimport { PermissionVersion } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal, useUserModalV2 } 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 { permissionVersion } = useToolkitsStore(s => s)\n const isV1 = permissionVersion === PermissionVersion.V1\n const isV3 = permissionVersion === PermissionVersion.V3\n const isV4 = permissionVersion === PermissionVersion.V4\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 { show: showCreateModalV2, modal: createModalV2 } = useUserModalV2({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModalV2, modal: updateModalV2 } = useUserModalV2({\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 (isV3 || isV4) {\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 (isV1 || isV3) && {\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 if (isV3 || isV4) {\n showUpdateModalV2({\n initialValues: {\n name,\n permissions,\n },\n extraValues: {\n id,\n },\n })\n } else {\n showUpdateModal({\n initialValues: {\n name,\n roles,\n },\n extraValues: {\n id,\n },\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 if (isV3 || isV4) {\n showCreateModalV2()\n } else {\n showCreateModal()\n }\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={\n isV3\n ? form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )\n : undefined\n }\n />\n </Card>\n {createModal}\n {updateModal}\n {createModalV2}\n {updateModalV2}\n </>\n )\n}\n\nexport default withContext(UserList, { isGlobal: true })\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/pages/userList/index.tsx"],"names":["UserList","modal","message","App","t","useTranslation","remove","useRemoveUser","refetch","useQueryListStore","permissionVersion","useToolkitsStore","s","isV1","isV3","isV4","showCreateModal","createModal","useUserModal","showUpdateModal","updateModal","showCreateModalV2","createModalV2","useUserModalV2","showUpdateModalV2","updateModalV2","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","withContext"],"mappings":"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","file":"userList-2ZRAVUOF.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, withContext } from '@/components'\nimport { PermissionVersion } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal, useUserModalV2 } 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 { permissionVersion } = useToolkitsStore(s => s)\n const isV1 = permissionVersion === PermissionVersion.V1\n const isV3 = permissionVersion === PermissionVersion.V3\n const isV4 = permissionVersion === PermissionVersion.V4\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 { show: showCreateModalV2, modal: createModalV2 } = useUserModalV2({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModalV2, modal: updateModalV2 } = useUserModalV2({\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 (isV3 || isV4) {\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 (isV1 || isV3) && {\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 if (isV3 || isV4) {\n showUpdateModalV2({\n initialValues: {\n name,\n permissions,\n },\n extraValues: {\n id,\n },\n })\n } else {\n showUpdateModal({\n initialValues: {\n name,\n roles,\n },\n extraValues: {\n id,\n },\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 if (isV3 || isV4) {\n showCreateModalV2()\n } else {\n showCreateModal()\n }\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={\n isV3\n ? form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )\n : undefined\n }\n />\n </Card>\n {createModal}\n {updateModal}\n {createModalV2}\n {updateModalV2}\n </>\n )\n}\n\nexport default withContext(UserList, { isGlobal: true })\n"]}
|
package/package.json
CHANGED
|
@@ -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","SPIN_STYLE","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","usePermission","isValid","setIsValid","isInitialized","isUpdatingFromPayload","subscribedPayload","s","ky","useKy","page","size","filters","resolvedRequest","method","body","searchParams","headers","cacheTime","staleTime","normalizedMethod","isBodylessMethod","supportsBody","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-A5SX7QOV.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 const style = {\n maxWidth: 'none',\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n padding: 24,\n marginBottom: 24,\n }\n\n return (\n <div style={style}>\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'flex-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 => <Fragment key={item.key}>{item.children}</Fragment>)}\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 { usePermission } 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'\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 QueryListDataType<Item> {\n dataSource: Item[]\n total: number\n}\n\nexport interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = any> {\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 = any> =\n | QueryListDataAdapter<Item>\n | ((data: Data) => QueryListDataAdapter<Item>)\n\nexport interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = any>\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']\n\n// 支持请求体的 HTTP 方法\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\nconst SPIN_STYLE: React.CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 300,\n}\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 } = usePermission(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 const supportsBody = BODY_SUPPORTED_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 使用用户提供的参数,否则使用默认请求数据\n const requestBody = body || (supportsBody ? defaultRequestData : undefined)\n const requestSearchParams = searchParams || defaultRequestData\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), {\n onKeyUp: (e: 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 = 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 <Spin style={SPIN_STYLE} />\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/index.ts"],"names":["usePermission","code","config","ky","useKy","permissionVersion","useToolkitsStore","permissionCodes","version","data","rest","useQuery","queryKeys","newData","acc","curr","useMenuList","loginPath","appId","APP_ID_HEADER","useGames","gameApiV2","requestConfig"],"mappings":"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","file":"chunk-QKX27H5N.js","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport type { Options as KyOptions } from 'ky'\n\nimport type { Game } from '@/components/layout/types'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { APP_ID_HEADER, PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function usePermission(code?: string | string[], config?: KyOptions) {\n const ky = useKy()\n const { permissionVersion } = useToolkitsStore()\n const permissionCodes: string[] = typeof code !== 'undefined' ? (typeof code === 'string' ? [code] : code) : []\n const version = permissionVersion !== PermissionVersion.V1 ? 'v2' : 'v1'\n\n const { data, ...rest } = useQuery({\n queryKey: queryKeys.permissions.check(permissionCodes, version),\n queryFn: () =>\n ky.post<Record<string, boolean> & { has_all?: boolean }>(\n permissionVersion !== PermissionVersion.V1 ? '/api/usystem/user/checkV2' : '/api/usystem/user/check',\n {\n permissions: permissionCodes,\n },\n config,\n ),\n enabled: permissionCodes.length > 0,\n retry: false,\n })\n\n let newData: boolean | Record<string, boolean> = true\n\n if (typeof code === 'string') {\n newData = data?.has_all ? true : (data?.[code] ?? false)\n } else if (Array.isArray(code) && code.length > 0) {\n newData = permissionCodes.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr] = data?.has_all ? true : (data?.[curr] ?? false)\n return acc\n }, {})\n }\n\n return {\n ...rest,\n data: newData,\n }\n}\n\nexport function useMenuList() {\n const { loginPath, appId } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.menus.navbar(appId ? String(appId) : undefined),\n queryFn: () =>\n ky.get<MenuListItem[]>('/api/usystem/menu/navbar', {\n headers: { [APP_ID_HEADER]: appId ? encodeURIComponent(String(appId)) : 'global' },\n }),\n enabled: window.location.pathname !== loginPath,\n })\n}\n\nexport const useGames = () => {\n const { gameApiV2, permissionVersion } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.games.all,\n queryFn: async () => {\n const requestConfig = {\n headers: {\n [APP_ID_HEADER]: 'global',\n },\n }\n\n if (gameApiV2) {\n const response = await ky.get<{ list: Game[] }>('/api/game/list', requestConfig)\n return response?.list ?? []\n }\n\n const response = await ky.get<Game[]>('/api/usystem/game/all', requestConfig)\n return response ?? []\n },\n enabled: permissionVersion !== PermissionVersion.V1,\n retry: false,\n })\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/authButton/AuthButton.tsx","../src/hooks/modal/stores.ts","../src/hooks/modal/modal.tsx","../src/hooks/modal/formModal.tsx"],"names":["AuthButton","props","children","code","showLoading","disabled","config","restProps","codes","data","isLoading","usePermission","t","useTranslation","hasPermission","isButtonDisabled","isButtonLoading","shouldShowTooltip","buttonNode","jsx","Button","Tooltip","AuthButton_default","useModalStore","createVisibilityStore","useModal","content","onConfirm","afterOpen","afterClose","modalProps","_id","useMemo","generateId","show","hide","isOpen","cleanup","useEffect","open","confirmLoading","setConfirmLoading","useState","isRenderFunction","_show","useCallback","_hide","onCancel","onOk","error","internalModal","Modal","useFormModal","form","formProps","onSuccess","internalExtraValues","setInternalExtraValues","internalForm","Form","id","modal","operation","values","showForm","options","initialValues","extraValues"],"mappings":"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","file":"chunk-SXIEAILV.js","sourcesContent":["import type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { usePermission } from '@/services'\n\nexport interface AuthButtonProps extends ButtonProps {\n /** 权限码,支持单个或多个 */\n code?: string | string[]\n /** 加载时是否显示 loading 状态 */\n showLoading?: boolean\n /** 请求配置 */\n config?: KyOptions\n}\n\n/**\n * 授权按钮组件\n * 根据权限码自动控制按钮的启用/禁用状态\n * - 有权限:正常显示可点击按钮\n * - 无权限:显示禁用按钮并带有提示\n * - 加载中:显示加载状态\n */\nconst AuthButton: FC<PropsWithChildren<AuthButtonProps>> = props => {\n const { children, code, showLoading, disabled, config, ...restProps } = props\n const codes = code ? (Array.isArray(code) ? code : [code]) : []\n const { data, isLoading } = usePermission(codes, config)\n const { t } = useTranslation()\n\n // 判断是否有权限\n const hasPermission = data && (typeof data === 'boolean' || Object.values(data).some(Boolean))\n\n // 计算最终的禁用状态和加载状态\n const isButtonDisabled = disabled || !hasPermission || (isLoading && !showLoading)\n const isButtonLoading = isLoading && showLoading\n\n // 判断是否需要显示 tooltip(任何禁用状态都显示)\n const shouldShowTooltip = isButtonDisabled\n\n const buttonNode = (\n <Button disabled={isButtonDisabled} loading={isButtonLoading} {...restProps}>\n {children}\n </Button>\n )\n\n if (shouldShowTooltip) {\n return (\n <Tooltip defaultOpen={false} title={t('global.noEntitlement')}>\n {buttonNode}\n </Tooltip>\n )\n }\n\n return buttonNode\n}\n\nexport default AuthButton\n","import { createVisibilityStore } from '@/utils'\n\nexport const useModalStore = createVisibilityStore()\n","import type { ModalProps } from 'antd'\nimport { Modal } from 'antd'\nimport { type ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useModalStore } from './stores'\n\nexport interface UseModalOperation {\n hide: () => void\n}\n\nexport interface UseModalProps extends Omit<ModalProps, 'open' | 'confirmLoading' | 'onOk' | 'onCancel'> {\n content?: ReactNode | ((operation: UseModalOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n}\n\nexport function useModal(props: UseModalProps) {\n const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props\n\n const _id = useMemo(() => generateId(), [])\n const { show, hide, isOpen, cleanup } = useModalStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onCancel: ModalProps['onCancel'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const onOk = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n _hide()\n await afterClose?.()\n } catch (error) {\n console.error('Modal confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm, _hide, afterClose])\n\n const internalModal = (\n <Modal {...modalProps} open={open} confirmLoading={confirmLoading} onOk={onOk} onCancel={onCancel}>\n {isRenderFunction ? content({ hide: _hide }) : content}\n </Modal>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n modal: internalModal,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useModal, type UseModalOperation, type UseModalProps } from './modal'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n modal: ReactNode\n}\n\nexport function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormModalProps<Values, ExtraValues>,\n): UseFormModalReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, modal } = useModal({\n ...modalProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? content(internalExtraValues, operation) : content}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n modal,\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/roleList/index.tsx"],"names":["RoleList","modal","message","App","viewable","usePermission","useTranslation","permissionVersion","useToolkitsStore","s","refetch","useQueryListStore","ky","useKy","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","withContext"],"mappings":"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","file":"roleList-5KNJMTRI.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, withContext } from '@/components'\nimport { PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { usePermission } 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 } = usePermission('200005')\n const { t } = useTranslation()\n const { permissionVersion } = useToolkitsStore(s => s)\n const { refetch } = useQueryListStore()\n const ky = useKy()\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/info${permissionVersion === PermissionVersion.V2 ? 'V2' : ''}?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.mutate({\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 withContext(RoleList, {\n isGlobal: true,\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/userDetail/index.tsx"],"names":["UserDetail","params","useParams","t","useTranslation","gameApiV2","permissionVersion","useToolkitsStore","isV3","ky","useKy","data","isLoading","refetch","useQuery","queryKeys","games","useGames","roleViewable","usePermission","show","modal","useUserModalV2","columns","value","item","jsx","Tag","WILDCARD","matchedGame","game","Link","jsxs","Fragment","Breadcrumb","Card","AuthButton_default","Descriptions","Table","userDetail_default"],"mappings":"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","file":"userDetail-ANV6RZPM.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 { PermissionVersion, WILDCARD } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\nimport { useGames, usePermission } from '@/services'\n\nimport { useUserModalV2 } from '../../hooks'\nimport type { UserListItem } from '../../types'\n\nconst UserDetail = () => {\n const params = useParams<'id'>()\n const { t } = useTranslation()\n const { gameApiV2, permissionVersion } = useToolkitsStore()\n const isV3 = permissionVersion === PermissionVersion.V3\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 } = usePermission('200005')\n\n const { show, modal } = useUserModalV2({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const columns = [\n isV3 && {\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(gameApiV2 ? 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 style={{ marginBottom: '1.5rem' }}\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"]}
|