feat: 新增mobile审批组件样式模版 close #742 (#763)

Reviewed-on: daoyoucloud/tachybase#763
Co-authored-by: wjh <wwwjh0710@163.com>
Co-committed-by: wjh <wwwjh0710@163.com>
This commit is contained in:
wjh 2024-04-19 05:05:32 +08:00 committed by sealday
parent b5b7ce6b8c
commit 78f75f8254
27 changed files with 681 additions and 58 deletions

View File

@ -0,0 +1,6 @@
---
"@hera/plugin-approval-mobile": patch
"tachybase": patch
---
添加mobile审计模块

View File

@ -0,0 +1,2 @@
/node_modules
/src

View File

@ -0,0 +1 @@
# @hera/plugin-approval-mobile

View File

@ -0,0 +1,2 @@
export * from './dist/client';
export { default } from './dist/client';

View File

@ -0,0 +1 @@
module.exports = require('./dist/client/index.js');

View File

@ -0,0 +1,24 @@
{
"name": "@hera/plugin-approval-mobile",
"version": "0.21.12",
"main": "dist/server/index.js",
"devDependencies": {
"@ant-design/icons": "5.x",
"@nocobase/schema": "workspace:*",
"@types/lodash": "^4.17.0",
"antd": "5.16.1",
"antd-mobile": "^5.35.0",
"antd-mobile-icons": "^0.3.0",
"classnames": "^2.3.1",
"lodash": "4.17.21",
"react-i18next": "^11.15.1"
},
"peerDependencies": {
"@nocobase/client": "workspace:*",
"@nocobase/server": "workspace:*",
"@nocobase/test": "workspace:*",
"@nocobase/utils": "workspace:*"
},
"description.zh-CN": "提供定制化的移动端页面审批的功能。",
"displayName.zh-CN": "移动端:审批"
}

View File

@ -0,0 +1,2 @@
export * from './dist/server';
export { default } from './dist/server';

View File

@ -0,0 +1 @@
module.exports = require('./dist/server/index.js');

View File

@ -0,0 +1,51 @@
import {
SchemaInitializerItem,
SchemaInitializerMenu,
useSchemaInitializer,
useSchemaInitializerItem,
} from '@nocobase/client';
import React from 'react';
import { ISchema } from '@nocobase/schema';
import { Toast } from 'antd-mobile';
import { CalendarOutline } from 'antd-mobile-icons';
export const ApprovalBlockInitializer = () => {
const { insert } = useSchemaInitializer();
const itemConfig = useSchemaInitializerItem();
const onCreateBlockSchema = async ({ item }) => {
const schema: ISchema = {
type: 'void',
name: item.name,
title: item.title,
'x-toolbar': 'BlockSchemaToolbar',
'x-settings': 'ApprovalSettings',
'x-component': item.itemComponent,
'x-component-props': {},
};
insert(schema);
};
return (
<SchemaInitializerItem
{...itemConfig}
title="Approval"
icon={<CalendarOutline />}
items={ApprovalInitializerItem}
onClick={onCreateBlockSchema}
></SchemaInitializerItem>
);
};
export const ApprovalInitializerItem = [
{
type: 'item',
name: 'initiations',
title: '发起',
itemComponent: 'InitiationsBlock',
},
{
type: 'item',
title: '审批',
name: 'todos',
itemComponent: 'TodosBlock',
},
];

View File

@ -0,0 +1,17 @@
import { SchemaSettings } from '@nocobase/client';
import _ from 'lodash';
export const ApprovalSettings = new SchemaSettings({
name: 'ApprovalSettings',
items: [
{
name: 'divider',
type: 'divider',
},
{
name: 'delete',
type: 'remove',
sort: 100,
},
],
});

View File

@ -0,0 +1,65 @@
import { BlockItem, css } from '@nocobase/client';
import React from 'react';
import { AutoCenter, Card, SearchBar, Selector, Space } from 'antd-mobile';
import { TeamFill } from 'antd-mobile-icons';
export const InitiationsBlock = () => {
return (
<BlockItem>
<div style={{ padding: '10px' }}>
<SearchBar placeholder="请输入内容" clearable style={{ '--background': '#ffffff' }} />
<Card
className={css`
overflow: hidden;
margin-top: 20px;
.adm-card-body {
padding: 0;
}
`}
style={{ padding: '0', backgroundColor: '#f3f3f3' }}
>
<Selector
style={{ '--color': '#ffffff', '--gap': '1px' }}
columns={3}
showCheckMark={false}
options={[
{
value: '1',
label: (
<div style={{ display: 'flex', flexDirection: 'column', alignContent: 'center' }}>
<div>
<TeamFill />
</div>
11111
</div>
),
},
{
value: '2',
label: (
<div style={{ display: 'flex', flexDirection: 'column', alignContent: 'center' }}>
<div>
<TeamFill />
</div>
11111
</div>
),
},
{
value: '3',
label: (
<div style={{ display: 'flex', flexDirection: 'column', alignContent: 'center' }}>
<div>
<TeamFill />
</div>
11111
</div>
),
},
]}
/>
</Card>
</div>
</BlockItem>
);
};

View File

@ -0,0 +1,79 @@
import { BlockItem, SchemaComponent, css } from '@nocobase/client';
import { Divider, SearchBar, Space, Tabs } from 'antd-mobile';
import React, { useState } from 'react';
import { TabApplicantType } from './component/TabApplicantType';
import { TabTemplateType } from './component/TabTemplateType';
import { TabReachDataType } from './component/TabReachDataType';
import { TabBatchProcessingType } from './component/TabBatchProcessingType';
import { TabApprovalType } from './component/TabApprovalType';
import { TabReadingType } from './component/TabReadingType';
import { TabApprovalItem } from './component/TabApprovalItem';
import { useFieldSchema } from '@nocobase/schema';
export const TodosBlock = () => {
const fieldSchema = useFieldSchema();
fieldSchema['x-component-props'] = fieldSchema['x-component-props']?.['approvalKey']
? fieldSchema['x-component-props']
: (() => {
fieldSchema['x-component-props']['approvalKey'] = 'pending';
return fieldSchema['x-component-props'];
})();
const props = fieldSchema['x-component-props'];
return (
<BlockItem>
<SearchBar placeholder="搜索人名,标题、内容" clearable style={{ '--background': '#ffffff', padding: '10px' }} />
<Tabs
onChange={(key) => {
props['approvalKey'] = key;
}}
style={{ '--title-font-size': '12px', backgroundColor: '#ffffff', marginTop: '10px' }}
>
<Tabs.Tab title="待处理" key="pending">
<Space justify="evenly" style={spaceStyle}>
{/* 模版类型 */}
<TabTemplateType />
{/* 申请人 */}
<TabApplicantType />
{/* 到达日期 */}
<TabReachDataType />
{/* 批量处理 */}
<TabBatchProcessingType />
</Space>
<TabApprovalItem />
</Tabs.Tab>
<Tabs.Tab title="已处理" key="processed">
<Space justify="evenly" style={spaceStyle}>
{/* 阅读状态 */}
<TabReadingType />
{/* 审批状态 */}
<TabApprovalType />
{/* 模版类型 */}
<TabTemplateType />
{/* 申请人 */}
<TabApplicantType />
{/* 到达日期 */}
<TabReachDataType />
</Space>
<TabApprovalItem />
</Tabs.Tab>
<Tabs.Tab title="抄送我" key="duplicate">
<Space justify="evenly" style={spaceStyle}>
{/* 阅读状态 */}
<TabReadingType />
{/* 审批状态 */}
<TabApprovalType />
{/* 模版类型 */}
<TabTemplateType />
{/* 申请人 */}
<TabApplicantType />
{/* 到达日期 */}
<TabReachDataType />
</Space>
<TabApprovalItem />
</Tabs.Tab>
</Tabs>
</BlockItem>
);
};
const spaceStyle = { width: '100%', fontSize: '10px', color: '#8e8e8e' };

View File

@ -0,0 +1,36 @@
import { useFieldSchema } from '@nocobase/schema';
import { Picker, Space } from 'antd-mobile';
import { DownOutline } from 'antd-mobile-icons';
import React, { useState } from 'react';
export const TabApplicantType = () => {
const [visible, setVisible] = useState(false);
return (
<Space>
<Space
onClick={() => {
setVisible(true);
}}
>
<DownOutline />
</Space>
<Picker
columns={columns}
visible={visible}
onClose={() => {
setVisible(false);
}}
/>
</Space>
);
};
const columns = [
[
{ label: '111', value: '1' },
{ label: '222', value: '2' },
{ label: '333', value: '3' },
{ label: '444', value: '4' },
],
];

View File

@ -0,0 +1,70 @@
import { connect, useFieldSchema } from '@nocobase/schema';
import { Badge, Empty, List, Space, Tag } from 'antd-mobile';
import React from 'react';
export const TabApprovalItem = () => {
const fieldSchema = useFieldSchema();
const props = fieldSchema['x-component-props'];
const blockData = props.approvalKey === 'duplicate' ? [] : data;
return (
<div style={{ marginTop: '10px' }}>
{blockData.length ? (
<List style={{ '--font-size': '12px' }}>
{blockData.map((item, index) => {
return (
<List.Item key={index}>
<Badge color="#6ac3ff" content={Badge.dot} style={{ '--right': '100%' }}>
<Space block>
{item.title}
<Tag color="primary" fill="outline">
</Tag>
</Space>
</Badge>
<Space block> xxxx:{item.context}</Space>
<Space block> xxxx:{item.price}</Space>
<Space block> xxxx:{item.context}</Space>
</List.Item>
);
})}
</List>
) : (
<Empty description="暂无数据" />
)}
</div>
);
};
const data = [
{
title: 'xx-xxxxx的申请',
context: 'xxxxxxxxx',
price: 'xxxxxxx',
type: '1',
status: '1',
date: '2024-01-08',
read: false,
applicantId: 9,
},
{
title: 'xx-xxxxx的申请',
context: 'xxxxxxxxx',
price: 'xxxxxxx',
type: '2',
status: '2',
date: '2024-01-09',
read: true,
applicantId: 10,
},
{
title: 'xx-xxxxx的申请',
context: 'xxxxxxxxx',
price: 'xxxxxxx',
type: '3',
status: '3',
date: '2024-01-010',
read: false,
applicantId: 11,
},
];

View File

@ -0,0 +1,36 @@
import { Picker, Space } from 'antd-mobile';
import { DownOutline } from 'antd-mobile-icons';
import React, { useState } from 'react';
export const TabApprovalType = () => {
const [visible, setVisible] = useState(false);
return (
<>
<Space
onClick={() => {
setVisible(true);
}}
>
<DownOutline />
</Space>
<Picker
columns={columns}
visible={visible}
onClose={() => {
setVisible(false);
}}
/>
</>
);
};
const columns = [
[
{ label: '全部', value: '0' },
{ label: '审批中', value: '1' },
{ label: '已通过', value: '2' },
{ label: '已驳回', value: '3' },
{ label: '已撤销', value: '4' },
],
];

View File

@ -0,0 +1,12 @@
import { Space } from 'antd-mobile';
import { FillinOutline } from 'antd-mobile-icons';
import React from 'react';
export const TabBatchProcessingType = () => {
return (
<Space>
<FillinOutline />
</Space>
);
};

View File

@ -0,0 +1,31 @@
import { Picker, Space } from 'antd-mobile';
import { DownOutline } from 'antd-mobile-icons';
import React, { useState } from 'react';
export const TabReachDataType = () => {
const [visible, setVisible] = useState(false);
return (
<>
<Space>
<DownOutline />
</Space>
<Picker
columns={columns}
visible={visible}
onClose={() => {
setVisible(false);
}}
/>
</>
);
};
const columns = [
[
{ label: '全部', value: '1' },
{ label: '近7日', value: '2' },
{ label: '近30日', value: '3' },
{ label: '自定义区间', value: '4' },
],
];

View File

@ -0,0 +1,30 @@
import { Picker, Space } from 'antd-mobile';
import { DownOutline } from 'antd-mobile-icons';
import React, { useState } from 'react';
export const TabReadingType = () => {
const [visible, setVisible] = useState(false);
return (
<>
<Space>
<DownOutline />
</Space>
<Picker
columns={columns}
visible={visible}
onClose={() => {
setVisible(false);
}}
/>
</>
);
};
const columns = [
[
{ label: '全部', value: '1' },
{ label: '已读', value: '2' },
{ label: '未读', value: '3' },
],
];

View File

@ -0,0 +1,37 @@
import { Picker, Space } from 'antd-mobile';
import { DownOutline } from 'antd-mobile-icons';
import React, { useState } from 'react';
export const TabTemplateType = () => {
const [visible, setVisible] = useState(false);
return (
<>
<Space
onClick={() => {
setVisible(true);
}}
>
<DownOutline />
</Space>
<Picker
columns={columns}
visible={visible}
onClose={() => {
setVisible(false);
}}
/>
</>
);
};
const columns = [
[
{ label: '全部', value: '0' },
{ label: '入职申请', value: '1' },
{ label: '转正申请', value: '2' },
{ label: '调用申请', value: '3' },
{ label: '离职申请', value: '4' },
{ label: 'xxx申请', value: '5' },
],
];

View File

@ -0,0 +1,24 @@
import { Plugin } from '@nocobase/client';
import { ApprovalBlockInitializer } from './ApprovalBlockInitializer';
import { ApprovalSettings } from './ApprovalSettings';
import { TodosBlock } from './TodosBlock';
import { InitiationsBlock } from './InitiationsBlock';
class PluginApproval extends Plugin {
async load() {
this.app.addComponents({
ApprovalBlockInitializer,
InitiationsBlock,
TodosBlock,
});
this.app.schemaSettingsManager.add(ApprovalSettings);
this.app.schemaInitializerManager.addItem('mobilePage:addBlock', 'otherBlocks.approval', {
title: 'Approval',
name: 'approval',
type: 'item',
Component: 'ApprovalBlockInitializer',
});
}
}
export default PluginApproval;

View File

@ -0,0 +1,15 @@
import { useApp, tval as nTval, i18n } from '@nocobase/client';
const NAMESPACE = '@hera/plugin-mobile';
export const useTranslation = (): any => {
const { i18n } = useApp();
const t = (key: string, props = {}) => i18n.t(key, { ns: NAMESPACE, ...props });
return { t };
};
export const tval = (key: string) => nTval(key, { ns: NAMESPACE });
export function lang(key: string) {
return i18n.t(key, { ns: NAMESPACE });
}

View File

@ -0,0 +1,14 @@
import { Plugin } from '@nocobase/client';
import PluginApproval from './approval';
export class PluginApprovalMobileClient extends Plugin {
async afterAdd() {
this.pm.add(PluginApproval);
}
async beforeLoad() {}
async load() {}
}
export default PluginApprovalMobileClient;

View File

@ -0,0 +1,2 @@
export * from './server';
export { default } from './server';

View File

@ -0,0 +1 @@
export { default } from './plugin';

View File

@ -0,0 +1,19 @@
import { Plugin } from '@nocobase/server';
export class PluginApprovalMobileServer extends Plugin {
async afterAdd() {}
async beforeLoad() {}
async load() {}
async install() {}
async afterEnable() {}
async afterDisable() {}
async remove() {}
}
export default PluginApprovalMobileServer;

View File

@ -1340,6 +1340,49 @@ importers:
specifier: ^6.26.0
version: 6.35.2
packages/plugins/@hera/plugin-approval-mobile:
dependencies:
'@nocobase/client':
specifier: workspace:*
version: link:../../../core/client
'@nocobase/server':
specifier: workspace:*
version: link:../../../core/server
'@nocobase/test':
specifier: workspace:*
version: link:../../../core/test
'@nocobase/utils':
specifier: workspace:*
version: link:../../../core/utils
devDependencies:
'@ant-design/icons':
specifier: 5.x
version: 5.3.6(react-dom@18.2.0)(react@18.2.0)
'@nocobase/schema':
specifier: workspace:*
version: link:../../../core/schema
'@types/lodash':
specifier: ^4.17.0
version: 4.17.0
antd:
specifier: 5.16.1
version: 5.16.1(react-dom@18.2.0)(react@18.2.0)
antd-mobile:
specifier: ^5.35.0
version: 5.35.0(react-dom@18.2.0)(react@18.2.0)
antd-mobile-icons:
specifier: ^0.3.0
version: 0.3.0
classnames:
specifier: ^2.3.1
version: 2.5.1
lodash:
specifier: 4.17.21
version: 4.17.21
react-i18next:
specifier: ^11.15.1
version: 11.18.6(i18next@22.5.1)(react-dom@18.2.0)(react@18.2.0)
packages/plugins/@hera/plugin-audit-logs:
dependencies:
'@nocobase/client':
@ -9377,7 +9420,7 @@ packages:
peerDependencies:
react: '>=16.3.0'
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
hoist-non-react-statics: 3.3.2
react: 18.1.0
react-is: 16.13.1
@ -9388,7 +9431,7 @@ packages:
peerDependencies:
react: '>=16.3.0'
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
hoist-non-react-statics: 3.3.2
react: 18.2.0
react-is: 16.13.1
@ -9396,7 +9439,7 @@ packages:
/@manypkg/find-root@1.1.0:
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@types/node': 20.12.7
find-up: 4.1.0
fs-extra: 8.1.0
@ -10123,7 +10166,7 @@ packages:
'@babel/runtime': 7.24.4
'@ctrl/tinycolor': 3.6.1
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -10134,7 +10177,7 @@ packages:
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 7.24.4
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -10153,7 +10196,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -10166,7 +10209,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -10181,7 +10224,7 @@ packages:
'@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
'@rc-component/trigger': 2.1.0(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -10192,12 +10235,12 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@ -10221,13 +10264,13 @@ packages:
/@react-pdf/fns@2.2.1:
resolution: {integrity: sha512-s78aDg0vDYaijU5lLOCsUD+qinQbfOvcNeaoX9AiE7+kZzzCo6B/nX+l48cmt9OosJmvZvE9DWR9cLhrhOi2pA==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
dev: true
/@react-pdf/font@2.4.4:
resolution: {integrity: sha512-yjK5eSY+LcbxS0m+sOYln8GdgIbUgti4xjwf14kx8OSsOMJQJyHFALHMh2cLcKJR9yZeqVDo1FwCsY6gw1yCkg==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/types': 2.4.1
cross-fetch: 3.1.8
fontkit: 2.0.2
@ -10239,7 +10282,7 @@ packages:
/@react-pdf/image@2.3.4:
resolution: {integrity: sha512-IE34l7gfTdaxXe3XR9240xMZsFdxF1myIwmEWK28XoeTaucUPAUyOiNcFSGRT59vNuZVBuakYz3BlGGrkvAPVQ==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/png-js': 2.3.1
cross-fetch: 3.1.8
jay-peg: 1.0.1
@ -10250,7 +10293,7 @@ packages:
/@react-pdf/layout@3.11.2:
resolution: {integrity: sha512-5EiHJ+Eb0odqnkWll9pWbTp+dwH1QRm7mOXDMiklqIWK98eI7e3cEae5Dgr0TtdnB7KgPW9Tvul2CwRJTwq54A==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/fns': 2.2.1
'@react-pdf/image': 2.3.4
'@react-pdf/pdfkit': 3.1.6
@ -10269,7 +10312,7 @@ packages:
/@react-pdf/pdfkit@3.1.6:
resolution: {integrity: sha512-U96VVhphniDBsLbmeJHgEml15nng8cr90mmEfPATh98gsqg6wev0avBr4k9XPjLdaN1f2xTXD4VdlaMYJZ+n7Q==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/png-js': 2.3.1
browserify-zlib: 0.2.0
crypto-js: 4.2.0
@ -10291,7 +10334,7 @@ packages:
/@react-pdf/render@3.4.3:
resolution: {integrity: sha512-9LL059vfwrK1gA0uIA4utpQ/pUH9EW/yia4bb7pCoARs8IlupY5UP265jgax15ua0p+MdUwShZzQ9rilu7kGsw==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/fns': 2.2.1
'@react-pdf/primitives': 3.1.1
'@react-pdf/textkit': 4.4.1
@ -10328,7 +10371,7 @@ packages:
/@react-pdf/stylesheet@4.2.4:
resolution: {integrity: sha512-CgRfDzeMtnV0GL7zSn381NubmgwqKhFKcK1YrWX3azl/KWVh52jjFd3HWi6dvcETNT862mjWz5MnExe4WOBJXA==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/fns': 2.2.1
'@react-pdf/types': 2.4.1
color-string: 1.9.1
@ -10340,7 +10383,7 @@ packages:
/@react-pdf/textkit@4.4.1:
resolution: {integrity: sha512-Jl9wdTqIvJ5pX+vAGz0EOhP7ut5Two9H6CzTKo/YYPeD79cM2yTXF3JzTERBC28y7LR0Waq9D2LHQjI+b/EYUQ==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@react-pdf/fns': 2.2.1
bidi-js: 1.0.3
hyphen: 1.10.4
@ -12779,7 +12822,7 @@ packages:
/@umijs/history@5.3.1:
resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==}
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
query-string: 6.14.1
/@umijs/lint@4.1.8(eslint@8.55.0)(stylelint@14.16.1)(typescript@5.4.4):
@ -17059,7 +17102,7 @@ packages:
/dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
csstype: 3.1.3
dev: true
@ -19658,7 +19701,7 @@ packages:
/history@5.3.0:
resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==}
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
/hmac-drbg@1.0.1:
resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
@ -20150,6 +20193,7 @@ packages:
/ip@2.0.0:
resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
requiresBuild: true
dev: false
/is-absolute@1.0.0:
@ -24880,10 +24924,10 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
classnames: 2.5.1
dom-align: 1.12.4
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
resize-observer-polyfill: 1.5.1
@ -24900,7 +24944,7 @@ packages:
classnames: 2.5.1
rc-select: 14.13.0(react-dom@18.2.0)(react@18.2.0)
rc-tree: 5.8.5(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24912,7 +24956,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24925,7 +24969,7 @@ packages:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24939,7 +24983,7 @@ packages:
'@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24953,7 +24997,7 @@ packages:
'@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24966,7 +25010,7 @@ packages:
'@babel/runtime': 7.24.4
'@rc-component/trigger': 2.1.0(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -24993,7 +25037,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
async-validator: 4.2.5
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25008,7 +25052,7 @@ packages:
classnames: 2.5.1
rc-dialog: 9.4.0(react-dom@18.2.0)(react@18.2.0)
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25034,7 +25078,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25050,7 +25094,7 @@ packages:
rc-input: 1.4.5(react-dom@18.2.0)(react@18.2.0)
rc-menu: 9.13.0(react-dom@18.2.0)(react@18.2.0)
rc-textarea: 1.6.3(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25091,7 +25135,7 @@ packages:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25116,7 +25160,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25146,7 +25190,7 @@ packages:
dayjs: 1.11.10
rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25158,7 +25202,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25171,7 +25215,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25197,7 +25241,7 @@ packages:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25208,12 +25252,12 @@ packages:
react: '*'
react-dom: '*'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.11.4(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25263,7 +25307,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25276,7 +25320,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25288,7 +25332,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25303,7 +25347,7 @@ packages:
'@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0)
classnames: 2.5.1
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.11.4(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25321,7 +25365,7 @@ packages:
rc-menu: 9.13.0(react-dom@18.2.0)(react@18.2.0)
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25376,7 +25420,7 @@ packages:
classnames: 2.5.1
rc-select: 14.13.0(react-dom@18.2.0)(react@18.2.0)
rc-tree: 5.8.5(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25402,10 +25446,10 @@ packages:
react: '*'
react-dom: '*'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.11.4(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25449,11 +25493,11 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-align: 4.0.15(react-dom@18.2.0)(react@18.2.0)
rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
@ -25466,7 +25510,7 @@ packages:
dependencies:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -25502,7 +25546,7 @@ packages:
'@babel/runtime': 7.24.4
classnames: 2.5.1
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@ -25616,7 +25660,7 @@ packages:
peerDependencies:
react: '>=16.13.1'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
react: 18.2.0
dev: false
@ -25640,7 +25684,7 @@ packages:
react: ^16.6.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
invariant: 2.2.4
prop-types: 15.8.1
react: 18.1.0
@ -25654,7 +25698,7 @@ packages:
react: ^16.6.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
dependencies:
'@babel/runtime': 7.23.6
'@babel/runtime': 7.24.4
invariant: 2.2.4
prop-types: 15.8.1
react: 18.2.0
@ -25772,7 +25816,7 @@ packages:
react: '>=16.3.0'
react-dom: '>=16.3.0'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@popperjs/core': 2.11.8
'@restart/hooks': 0.4.15(react@18.2.0)
'@types/warning': 3.0.3
@ -27177,6 +27221,7 @@ packages:
/smart-buffer@4.2.0:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
requiresBuild: true
dev: false
/smartwrap@2.0.2:
@ -29129,7 +29174,7 @@ packages:
peerDependencies:
react: '>=15.0.0'
dependencies:
'@babel/runtime': 7.24.0
'@babel/runtime': 7.24.4
'@types/react': 18.2.75
invariant: 2.2.4
react: 18.2.0