react-toolkits 2.24.13 → 2.24.15

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.
@@ -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-DM7Y7XD7.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.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, MenuListItem[]>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data,\n })}\n />\n </Card>\n </>\n )\n },\n { isGlobal: true },\n)\n\nexport default MenuItemList\n"]}
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-VPYVIEYR.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.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, MenuListItem[]>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data,\n })}\n />\n </Card>\n </>\n )\n },\n { isGlobal: true },\n)\n\nexport default MenuItemList\n"]}
@@ -1,2 +1,2 @@
1
- import {c,b as b$1,e as e$1}from'./chunk-2MQBJBAO.js';import {b}from'./chunk-RMU775LC.js';import {e}from'./chunk-4EBAPE4B.js';import {a as a$2}from'./chunk-Y3RYS76E.js';import {a as a$1}from'./chunk-4XO7JAVX.js';import {a}from'./chunk-ZFIKMQD3.js';import {j,i,l}from'./chunk-RPEFI7RP.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:A,modal:V}=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}`);A({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.mutateAsync({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,V]})},P=j(v,{isGlobal:!0});export{P as default};//# sourceMappingURL=roleList-7S6VWHF6.js.map
2
- //# sourceMappingURL=roleList-7S6VWHF6.js.map
1
+ import {c,b as b$1,e as e$1}from'./chunk-2OEQYX3O.js';import {b}from'./chunk-RMU775LC.js';import {e}from'./chunk-4EBAPE4B.js';import {a as a$2}from'./chunk-Y3RYS76E.js';import {a as a$1}from'./chunk-4XO7JAVX.js';import {a}from'./chunk-ZFIKMQD3.js';import {j,i,l}from'./chunk-RPEFI7RP.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:A,modal:V}=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}`);A({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.mutateAsync({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,V]})},P=j(v,{isGlobal:!0});export{P as default};//# sourceMappingURL=roleList-ZW4RLM25.js.map
2
+ //# sourceMappingURL=roleList-ZW4RLM25.js.map
@@ -1 +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-7S6VWHF6.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.mutateAsync({\n id: record.id,\n name: record.name,\n })\n\n refetch('role-list')\n\n message.success(t('Role.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <AuthButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('Role.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n identifier=\"role-list\"\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n request={{\n url: '/api/usystem/role/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default withContext(RoleList, {\n isGlobal: true,\n})\n"]}
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-ZW4RLM25.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.mutateAsync({\n id: record.id,\n name: record.name,\n })\n\n refetch('role-list')\n\n message.success(t('Role.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <AuthButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('Role.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n identifier=\"role-list\"\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n request={{\n url: '/api/usystem/role/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default withContext(RoleList, {\n isGlobal: true,\n})\n"]}
@@ -1,2 +1,2 @@
1
- import {a as a$1,b}from'./chunk-47QCX44D.js';import {c,b as b$1,e}from'./chunk-2MQBJBAO.js';import {h}from'./chunk-4EBAPE4B.js';import {a as a$2}from'./chunk-Y3RYS76E.js';import {a}from'./chunk-4XO7JAVX.js';import'./chunk-ZFIKMQD3.js';import {j,i}from'./chunk-RPEFI7RP.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",i$1=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 i$1||m?jsx(Link,{to:`./${s.id}`,children:t}):t}},{title:"ID",dataIndex:"id",key:"id"},(M||i$1)&&{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:l,permissions:O,roles:Q,id:d}=s;return jsxs(Space,{children:[jsx(a$2,{size:"small",type:"link",code:"100003",onClick:()=>{i$1||m?z({initialValues:{name:l,permissions:O},extraValues:{id:d}}):S({initialValues:{name:l,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:[l],children:o("User.deleteContent",{user:l})}),async onOk(){await L.mutateAsync({id:d,name:l}),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:()=>{i$1||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:t=>jsx(Form,{form:t,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})})})}),A,F,R,G]})},te=j(_,{isGlobal:!0});export{te as default};//# sourceMappingURL=userList-GTFTTINH.js.map
2
- //# sourceMappingURL=userList-GTFTTINH.js.map
1
+ import {a as a$1,b}from'./chunk-47QCX44D.js';import {c,b as b$1,e}from'./chunk-2OEQYX3O.js';import {h}from'./chunk-4EBAPE4B.js';import {a as a$2}from'./chunk-Y3RYS76E.js';import {a}from'./chunk-4XO7JAVX.js';import'./chunk-ZFIKMQD3.js';import {j,i}from'./chunk-RPEFI7RP.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",i$1=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 i$1||m?jsx(Link,{to:`./${s.id}`,children:t}):t}},{title:"ID",dataIndex:"id",key:"id"},(M||i$1)&&{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:l,permissions:O,roles:Q,id:d}=s;return jsxs(Space,{children:[jsx(a$2,{size:"small",type:"link",code:"100003",onClick:()=>{i$1||m?z({initialValues:{name:l,permissions:O},extraValues:{id:d}}):S({initialValues:{name:l,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:[l],children:o("User.deleteContent",{user:l})}),async onOk(){await L.mutateAsync({id:d,name:l}),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:()=>{i$1||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:t=>jsx(Form,{form:t,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})})})}),A,F,R,G]})},te=j(_,{isGlobal:!0});export{te as default};//# sourceMappingURL=userList-AFTI4FQV.js.map
2
+ //# sourceMappingURL=userList-AFTI4FQV.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-GTFTTINH.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={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n {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-AFTI4FQV.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={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n {createModalV2}\n {updateModalV2}\n </>\n )\n}\n\nexport default withContext(UserList, { isGlobal: true })\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-toolkits",
3
3
  "type": "module",
4
- "version": "2.24.13",
4
+ "version": "2.24.15",
5
5
  "sideEffects": [
6
6
  "*.css"
7
7
  ],
@@ -69,8 +69,8 @@
69
69
  "tsup": "^8.3.5",
70
70
  "typescript": "^5.6.3",
71
71
  "@flow97/eslint-config-react": "1.1.2",
72
- "tailwind-config": "0.1.3",
73
- "tsconfig": "0.0.6"
72
+ "tsconfig": "0.0.6",
73
+ "tailwind-config": "0.1.3"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "antd": "^5.12.2",
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-4XO7JAVX.js';import {a as a$1}from'./chunk-ZFIKMQD3.js';import {l}from'./chunk-RPEFI7RP.js';import {Form,Spin,Table,Result,theme,Space,Button}from'antd';import {forwardRef,useMemo,useRef,useState,useEffect,useCallback,cloneElement,useImperativeHandle,Fragment}from'react';import {jsx,jsxs}from'react/jsx-runtime';import {flushSync}from'react-dom';import {createRoot}from'react-dom/client';import {isEqual}from'lodash-es';import {create}from'zustand';import {devtools,subscribeWithSelector}from'zustand/middleware';import {useQuery}from'@tanstack/react-query';var ve=d=>{let{extras:i,isConfirming:e,onConfirm:s,onReset:t,children:a$1,buttonsAlign:r="left",showReset:l}=d,{t:u}=a(),{token:{colorFillAlter:b,lineWidth:P,lineType:m,colorBorder:T,borderRadiusLG:w}}=theme.useToken();return jsx("div",{style:{maxWidth:"none",background:b,borderWidth:P,borderStyle:m,borderColor:T,borderRadius:w,padding:24,marginBottom:24},children:jsxs("div",{className:`flex ${r==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${r==="left"?"flex-grow-0":"flex-1"}`,children:a$1}),jsx("div",{className:`${r==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",disabled:e,onClick:s,children:u("FilterFormWrapper.confirmText")}),i?.map(F=>jsx(Fragment,{children:F.children},F.key)),l&&jsx(Button,{onClick:t,children:u("FilterFormWrapper.resetText")})]})})]})})},j=ve;var qe=d=>{let i=/(<[^>]*>)/;return d.split(i).filter(e=>e!=="")};function Me(d){let i=document.createElement("div"),e=createRoot(i);return new Promise(s=>{setTimeout(()=>{flushSync(()=>{e.render(d);}),s(i.innerHTML);});})}var We=d=>{let{texts:i,children:e}=d,[s,t]=useState("");return useEffect(()=>{Me(e).then(a=>{let r=qe(a);for(let l of i)for(let u=0;u<r.length;u++)r[u]=r[u].replace(String(l),`<span style='color: #DC143C;'>${l}</span>`);t(r.join(""));});},[e,i]),jsx("div",{dangerouslySetInnerHTML:{__html:s}})},je=We;var ce=Object.freeze({page:1,size:10,filters:Object.freeze({})}),Be=()=>create()(devtools(subscribeWithSelector((d,i)=>({instances:new Map,registerInstance(e,s,t,a){d(r=>{let l=r.instances.get(e);if(l){if(l.refetch!==a){let P={...l,refetch:a},m=new Map(r.instances);return m.set(e,P),{instances:m}}return r}let u={id:e,url:s,queryKey:t,payload:ce,refetch:a},b=new Map(r.instances);return b.set(e,u),{instances:b}});},unregisterInstance(e){d(s=>{let t=new Map(s.instances);return t.delete(e)?{instances:t}:s});},updatePayload(e,s){d(t=>{let a=t.instances.get(e);if(!a)return t;let r={...a.payload,...s};if(!isEqual(a.payload,r)){let l={...a,payload:r},u=new Map(t.instances);return u.set(e,l),{instances:u}}return t});},getPayload(e){return i().instances.get(e)?.payload??ce},async refetch(e,s){let t=i().instances.get(e);if(!t){console.warn(`QueryList instance with id "${e}" not found`);return}let a=!1;if(s){let r=t.payload,l={...r,...s};isEqual(r,l)||(i().updatePayload(e,s),a=!0);}if(!a)try{await t.refetch();}catch(r){throw console.error(`Failed to refetch QueryList instance "${e}":`,r),r}},getInstance(e){return i().instances.get(e)},getAllInstances(){return Array.from(i().instances.values())}})),{name:"query-list-store"})),Ke=Be(),p=Ke;var fe=(t=>(t[t.Confirm=0]="Confirm",t[t.Reset=1]="Reset",t[t.Jump=2]="Jump",t[t.Init=3]="Init",t))(fe||{}),rt=5*60*1e3,nt=30*1e3,de=["GET","HEAD","OPTIONS"],ot=["POST","PUT","PATCH","DELETE"],st={display:"flex",justifyContent:"center",alignItems:"center",height:300},at=0,it=()=>`queryList_${Date.now()}_${++at}`,ct=(d,i)=>{let{t:e}=a(),{form:s,identifier:t,code:a$2,onePage:r,buttonsAlign:l$1,showReset:u,defaultSize:b=10,refreshInterval:P=0,tableExtra:m,renderForm:T,afterSuccess:w,afterError:N,footer:F,pageSizeOptions:_,request:V,dataAdapter:B,...pe}=d,[o]=Form.useForm(s),f=useMemo(()=>t||it(),[t]),x=useRef(3),{data:A,isLoading:me}=a$1(a$2),[ye,I]=useState(!1),H=useRef(!1),q=useRef(!1),ge=p(n=>n.getPayload(f)),he=l(),{page:Q,size:S=b,filters:g}=ge,be=typeof V=="function"?V({page:Q,size:S,filters:g}):V,{url:D,method:K="GET",body:Ie,searchParams:Le,headers:Pe,cacheTime:Fe=rt,staleTime:xe=nt}=be,E=K.toUpperCase();[...de,...ot].includes(E)||console.warn(`QueryList: \u4E0D\u652F\u6301\u7684 HTTP \u8BF7\u6C42\u65B9\u6CD5 "${K}"\uFF0C\u5C06\u4F7F\u7528 GET \u65B9\u6CD5`);let U=de.includes(E),$={...g,...!r&&{page:Q,size:S}},h=U?void 0:Ie??$,G=Le??$,Y=Pe,J=useRef(!1),X=["queryList",D,f,E,Q,S,g,h,G,Y],{data:y,isLoading:Z,refetch:M}=useQuery({queryKey:X,queryFn:async()=>{try{let n={method:E,searchParams:G,headers:Y};h&&!U&&(h instanceof FormData||typeof h=="string"?n.body=h:n.json=h);let c=await he.request({url:D,...n});return J.current=!0,w?.(x.current,o,c),c}catch(n){let c=n instanceof Error?n:new Error(String(n));throw N?.(c,x.current,o),c}},retry:(n,c)=>!(n>=3||c?.message?.includes("401")),retryDelay:n=>Math.min(1e3*2**n,3e4),refetchOnWindowFocus:!1,refetchInterval:J.current?P:0,gcTime:Fe,staleTime:xe,enabled:A&&ye}),ee=useMemo(()=>{let n=B,c={total:y?.total,items:y?.list};return typeof n=="function"?{...c,...n(y)}:{...c,...n}},[B,y]);useEffect(()=>(p.getState().registerInstance(f,D,X,M),()=>{p.getState().unregisterInstance(f);}),[f,D]);let W=ee.items,te=ee.total,Qe=useMemo(()=>r?!1:{pageSizeOptions:_,showSizeChanger:!0,showQuickJumper:!0,current:Q,pageSize:S,total:te,onChange:async(n,c)=>{x.current=2,p.getState().refetch(f,{page:n,size:c});}},[r,_,Q,S,te,f]),re=useCallback(async()=>{x.current=0;try{await o.validateFields(),I(!0),p.getState().refetch(f,{page:1,filters:o.getFieldsValue()});}catch{I(!1);}},[o,f]),Se=useCallback(async()=>{x.current=1,o.resetFields();try{await o.validateFields({validateOnly:!0}),I(!0),p.getState().refetch(f,{page:1,filters:o.getFieldsValue()});}catch{I(!1);}},[o,f]),Re=typeof T=="function"?jsx(j,{showReset:u,buttonsAlign:l$1,isConfirming:Z,onReset:Se,onConfirm:re,children:cloneElement(T(o),{onKeyUp:n=>{n.key==="Enter"&&re();}})}):jsx(Form,{form:o}),Te=typeof m=="function"?m(o,y):m,Ae=F?()=>F(y):void 0;return useEffect(()=>{if(!H.current||q.current)return;let n=o.getFieldsValue();g&&!isEqual(n,g)&&(q.current=!0,o.setFieldsValue(g),setTimeout(()=>{q.current=!1;},0));},[g,o]),useEffect(()=>{if(!A||H.current)return;let n=async()=>{console.log("QueryList init starting");try{o.resetFields();let C=await o.validateFields({validateOnly:!0});console.log("QueryList init validation success:",C),p.getState().updatePayload(f,{page:1,filters:C}),I(!0),console.log("QueryList init completed, isValid set to true");}catch(C){console.log("QueryList init validation failed:",C),I(!1);}finally{H.current=!0;}},c=requestAnimationFrame(()=>{Promise.resolve().then(n);});return ()=>{c&&cancelAnimationFrame(c);}},[A,f,o]),useImperativeHandle(i,()=>({data:y,dataSource:W,form:o,refetch:M}),[y,W,o,M]),me?jsx(Spin,{style:st}):A?jsxs("div",{children:[Re,Te,jsx(Table,{...pe,dataSource:W,loading:Z,pagination:Qe,footer:Ae})]}):jsx(Result,{status:403,subTitle:e("global.noEntitlement")})},lt=forwardRef(ct),ut=lt;export{j as a,je as b,p as c,fe as d,ut as e};//# sourceMappingURL=chunk-2MQBJBAO.js.map
2
- //# sourceMappingURL=chunk-2MQBJBAO.js.map
@@ -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","useAuth","isValid","setIsValid","isInitialized","isUpdatingFromPayload","subscribedPayload","s","ky","useKy","page","size","filters","resolvedRequest","method","body","searchParams","headers","cacheTime","staleTime","normalizedMethod","isBodylessMethod","defaultRequestData","requestBody","requestSearchParams","requestHeaders","shouldPoll","data","isLoading","useQuery","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","resolvedDataAdapter","adapter","defaultAdapter","dataSource","total","pagination","currentPage","currentSize","useCallback","formRenderer","cloneElement","e","tableExtraRenderer","renderFooter","currentFormValues","init","value","rafId","useImperativeHandle","Spin","Table","Result","QueryList","forwardRef","QueryList_default"],"mappings":"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","file":"chunk-2MQBJBAO.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 { useAuth } from '@/services'\n\nimport { useQueryListStore } from './stores'\n\nexport interface ListResponse<T = any> {\n list: T[]\n total: number\n}\n\nexport interface QueryListPayload<Values = any> {\n page?: number\n size?: number\n filters?: Values\n}\n\n// 缓存配置\nexport interface CacheConfig {\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\n// 支持的 HTTP 请求方法类型\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n// 简化的请求配置\nexport interface QueryListRequestConfig extends CacheConfig {\n url: string\n method?: HttpMethod\n body?: FormData | Record<string | number, any>\n searchParams?: Record<string | number, any>\n headers?: Record<string, string>\n}\n\nexport type QueryListRequestConfigType<Values = any> =\n | QueryListRequestConfig\n | ((payload: QueryListPayload<Values>) => QueryListRequestConfig)\n\nexport enum QueryListAction {\n Confirm,\n Reset,\n Jump,\n Init,\n}\n\nexport interface 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', 'OPTIONS']\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 } = useAuth(code)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false) // 防止循环更新的标志\n\n // 仅订阅当前 identifier 的 payload,避免因其它实例变化导致不必要重渲染\n const subscribedPayload = useQueryListStore(s => s.getPayload(finalIdentifier))\n const ky = useKy()\n\n const { page, size = defaultSize, filters } = subscribedPayload\n\n const payload = { page, size, filters }\n\n // 处理 request 配置(对象或函数)\n const resolvedRequest = typeof request === 'function' ? request(payload) : request\n\n const {\n url,\n method = 'GET',\n body,\n searchParams,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = resolvedRequest\n\n // 验证请求方法\n const normalizedMethod = method.toUpperCase() as HttpMethod\n const allSupportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n\n if (!allSupportedMethods.includes(normalizedMethod)) {\n console.warn(`QueryList: 不支持的 HTTP 请求方法 \"${method}\",将使用 GET 方法`)\n }\n\n // 根据请求方法决定参数传递方式\n const isBodylessMethod = BODYLESS_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 根据请求方法和用户配置决定参数位置\n // 1. 无 body 方法(GET、HEAD、OPTIONS):没有传 searchParams 时,自动使用 defaultRequestData 作为 searchParams\n // 2. 其他方法(POST、PUT、PATCH、DELETE):没有传 body 时,自动使用 defaultRequestData 作为 body\n const requestBody = !isBodylessMethod ? (body ?? 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"]}