mirror of
https://gitee.com/nocobase/nocobase.git
synced 2024-12-03 12:47:44 +08:00
upgrade formily
This commit is contained in:
parent
4b20cd7bbf
commit
7d604cdf9a
@ -21,9 +21,9 @@
|
|||||||
"@antv/g2plot": "^2.3.27",
|
"@antv/g2plot": "^2.3.27",
|
||||||
"@dnd-kit/core": "^3.1.1",
|
"@dnd-kit/core": "^3.1.1",
|
||||||
"@dnd-kit/sortable": "^4.0.0",
|
"@dnd-kit/sortable": "^4.0.0",
|
||||||
"@formily/antd": "^2.0.0-rc.1",
|
"@formily/antd": "^2.0.0-rc.2",
|
||||||
"@formily/core": "^2.0.0-rc.1",
|
"@formily/core": "^2.0.0-rc.2",
|
||||||
"@formily/react": "^2.0.0-rc.1",
|
"@formily/react": "^2.0.0-rc.2",
|
||||||
"@monaco-editor/react": "^4.2.1",
|
"@monaco-editor/react": "^4.2.1",
|
||||||
"ahooks": "^2.10.2",
|
"ahooks": "^2.10.2",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
|
@ -1,201 +0,0 @@
|
|||||||
import React, { useContext, useMemo, useRef, useState } from 'react';
|
|
||||||
import { createForm } from '@formily/core';
|
|
||||||
import {
|
|
||||||
SchemaOptionsContext,
|
|
||||||
Schema,
|
|
||||||
useFieldSchema,
|
|
||||||
observer,
|
|
||||||
SchemaExpressionScopeContext,
|
|
||||||
FormProvider,
|
|
||||||
ISchema,
|
|
||||||
useField,
|
|
||||||
useForm,
|
|
||||||
RecursionField,
|
|
||||||
} from '@formily/react';
|
|
||||||
import {
|
|
||||||
useSchemaPath,
|
|
||||||
SchemaField,
|
|
||||||
useDesignable,
|
|
||||||
removeSchema,
|
|
||||||
updateSchema,
|
|
||||||
} from '../';
|
|
||||||
import get from 'lodash/get';
|
|
||||||
import { Button, Dropdown, Menu, Space, Switch } from 'antd';
|
|
||||||
import { MenuOutlined, DragOutlined } from '@ant-design/icons';
|
|
||||||
import cls from 'classnames';
|
|
||||||
import { FormDialog, FormLayout } from '@formily/antd';
|
|
||||||
import './style.less';
|
|
||||||
import AddNew from '../add-new';
|
|
||||||
import { DraggableBlockContext } from '../../components/drag-and-drop';
|
|
||||||
import { isGridRowOrCol } from '../grid';
|
|
||||||
import constate from 'constate';
|
|
||||||
import { useEffect } from 'react';
|
|
||||||
import { uid } from '@formily/shared';
|
|
||||||
import { getSchemaPath } from '../../components/schema-renderer';
|
|
||||||
import { RandomNameContext } from '.';
|
|
||||||
import { useCollectionContext, useDisplayedMapContext } from '../../constate';
|
|
||||||
import SwitchMenuItem from '../../components/SwitchMenuItem';
|
|
||||||
|
|
||||||
export const FieldDesignableBar = observer((props) => {
|
|
||||||
const field = useField();
|
|
||||||
const { schema, deepRemove } = useDesignable();
|
|
||||||
const [visible, setVisible] = useState(false);
|
|
||||||
const { dragRef } = useContext(DraggableBlockContext);
|
|
||||||
const randomName = useContext(RandomNameContext);
|
|
||||||
const displayed = useDisplayedMapContext();
|
|
||||||
const fieldName = schema['x-component-props']?.['fieldName'];
|
|
||||||
const { getField } = useCollectionContext();
|
|
||||||
|
|
||||||
const collectionField = getField(fieldName);
|
|
||||||
|
|
||||||
console.log({ collectionField });
|
|
||||||
|
|
||||||
const realField = field
|
|
||||||
.query(field.address.concat(randomName, fieldName))
|
|
||||||
.take();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className={cls('designable-bar', { active: visible })}>
|
|
||||||
<span
|
|
||||||
onClick={(e) => {
|
|
||||||
e.stopPropagation();
|
|
||||||
}}
|
|
||||||
className={cls('designable-bar-actions', { active: visible })}
|
|
||||||
>
|
|
||||||
<Space size={2}>
|
|
||||||
<AddNew.FormItem defaultAction={'insertAfter'} ghost />
|
|
||||||
{dragRef && <DragOutlined ref={dragRef} />}
|
|
||||||
<Dropdown
|
|
||||||
placement={'bottomRight'}
|
|
||||||
trigger={['click']}
|
|
||||||
visible={visible}
|
|
||||||
onVisibleChange={(visible) => {
|
|
||||||
setVisible(visible);
|
|
||||||
}}
|
|
||||||
overlay={
|
|
||||||
<Menu>
|
|
||||||
<Menu.Item
|
|
||||||
key={'update'}
|
|
||||||
onClick={async () => {
|
|
||||||
const values = await FormDialog('修改字段名称', () => {
|
|
||||||
return (
|
|
||||||
<FormLayout layout={'vertical'}>
|
|
||||||
<SchemaField
|
|
||||||
schema={{
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
fieldName: {
|
|
||||||
type: 'string',
|
|
||||||
title: '原字段名称',
|
|
||||||
'x-read-pretty': true,
|
|
||||||
'x-decorator': 'FormItem',
|
|
||||||
'x-component': 'Input',
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
type: 'string',
|
|
||||||
title: '自定义名称',
|
|
||||||
'x-decorator': 'FormItem',
|
|
||||||
'x-component': 'Input',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</FormLayout>
|
|
||||||
);
|
|
||||||
}).open({
|
|
||||||
initialValues: {
|
|
||||||
fieldName: collectionField?.uiSchema?.title,
|
|
||||||
title: schema['title'],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const title = values.title || null;
|
|
||||||
field
|
|
||||||
.query(field.address.concat(randomName, fieldName))
|
|
||||||
.take((f) => {
|
|
||||||
f.title = title || collectionField?.uiSchema?.title;
|
|
||||||
});
|
|
||||||
schema['title'] = title;
|
|
||||||
await updateSchema({
|
|
||||||
key: schema['key'],
|
|
||||||
title,
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
修改字段名称
|
|
||||||
</Menu.Item>
|
|
||||||
<Menu.Item
|
|
||||||
style={{ minWidth: 150 }}
|
|
||||||
onClick={async () => {
|
|
||||||
const values = await FormDialog('编辑描述', () => {
|
|
||||||
return (
|
|
||||||
<FormLayout layout={'vertical'}>
|
|
||||||
<SchemaField
|
|
||||||
schema={{
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
description: {
|
|
||||||
type: 'string',
|
|
||||||
'x-component': 'Input.TextArea',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</FormLayout>
|
|
||||||
);
|
|
||||||
}).open({
|
|
||||||
initialValues: {
|
|
||||||
description: schema['description'],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const description = values.description || null;
|
|
||||||
realField.description =
|
|
||||||
description || collectionField?.uiSchema?.description;
|
|
||||||
schema['description'] = description;
|
|
||||||
await updateSchema({
|
|
||||||
key: schema['key'],
|
|
||||||
description,
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
编辑描述
|
|
||||||
</Menu.Item>
|
|
||||||
<SwitchMenuItem
|
|
||||||
title={'必填'}
|
|
||||||
checked={schema.required as boolean}
|
|
||||||
onChange={(checked) => {
|
|
||||||
field
|
|
||||||
.query(field.address.concat(randomName, fieldName))
|
|
||||||
.take((f: any) => {
|
|
||||||
f.required = checked;
|
|
||||||
schema.required = checked;
|
|
||||||
updateSchema(schema);
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
<Menu.Divider />
|
|
||||||
<Menu.Item
|
|
||||||
key={'delete'}
|
|
||||||
onClick={async () => {
|
|
||||||
const removed = deepRemove();
|
|
||||||
const fieldName =
|
|
||||||
schema['x-component-props']?.['fieldName'];
|
|
||||||
console.log({ schema, removed, fieldName });
|
|
||||||
const last = removed.pop();
|
|
||||||
displayed.remove(fieldName);
|
|
||||||
if (isGridRowOrCol(last)) {
|
|
||||||
await removeSchema(last);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
移除
|
|
||||||
</Menu.Item>
|
|
||||||
</Menu>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<MenuOutlined />
|
|
||||||
</Dropdown>
|
|
||||||
</Space>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
});
|
|
114
yarn.lock
114
yarn.lock
@ -1915,78 +1915,78 @@
|
|||||||
resolved "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz#2dc8c57044de0340eb53a7ba602e59abf80dc799"
|
resolved "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz#2dc8c57044de0340eb53a7ba602e59abf80dc799"
|
||||||
integrity sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ==
|
integrity sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ==
|
||||||
|
|
||||||
"@formily/antd@^2.0.0-rc.1":
|
"@formily/antd@^2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/antd/-/antd-2.0.0-rc.1.tgz#32040bbfcdbb90d33d238ce6fd562850844fc5c3"
|
resolved "https://registry.npmjs.org/@formily/antd/-/antd-2.0.0-rc.2.tgz#81dd3ced30f42ce121e89cebb6ecbdc529ad6c3f"
|
||||||
integrity sha512-wQtB3wrr1ZVIOfOuKeMY5V5eUS6Yb/lrR1A1Gr6fdXpIHQSJoET9pWIy4r8d99V67vdEKCzUiPJG8+6BFOgdEQ==
|
integrity sha512-IJxGOyIPICZgEemQxKCc1p/5VESeCrTaTTC6AGaFkFShxFvlOx8XwXq7/BAgIuFstwV6vkbnXO656G/3SZXByg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ant-design/icons" "^4.0.0"
|
"@ant-design/icons" "^4.0.0"
|
||||||
"@formily/core" "2.0.0-rc.1"
|
"@formily/core" "2.0.0-rc.2"
|
||||||
"@formily/json-schema" "2.0.0-rc.1"
|
"@formily/json-schema" "2.0.0-rc.2"
|
||||||
"@formily/react" "2.0.0-rc.1"
|
"@formily/react" "2.0.0-rc.2"
|
||||||
"@formily/reactive" "2.0.0-rc.1"
|
"@formily/reactive" "2.0.0-rc.2"
|
||||||
"@formily/reactive-react" "2.0.0-rc.1"
|
"@formily/reactive-react" "2.0.0-rc.2"
|
||||||
"@formily/shared" "2.0.0-rc.1"
|
"@formily/shared" "2.0.0-rc.2"
|
||||||
"@juggle/resize-observer" "^3.3.1"
|
"@juggle/resize-observer" "^3.3.1"
|
||||||
classnames "^2.2.6"
|
classnames "^2.2.6"
|
||||||
react-sortable-hoc "^1.11.0"
|
react-sortable-hoc "^1.11.0"
|
||||||
react-sticky-box "^0.9.3"
|
react-sticky-box "^0.9.3"
|
||||||
|
|
||||||
"@formily/core@2.0.0-rc.1", "@formily/core@^2.0.0-rc.1":
|
"@formily/core@2.0.0-rc.2", "@formily/core@^2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/core/-/core-2.0.0-rc.1.tgz#7e5eea4350d4d4adabd93187c84d9a2c43dc9726"
|
resolved "https://registry.npmjs.org/@formily/core/-/core-2.0.0-rc.2.tgz#715cae845d638d6a327a3f33953b3be5adaf9144"
|
||||||
integrity sha512-5bqNmXTDsM9F0AQipUDxRQsRNSqp2ipFtbTYnt7cokDv6BZBdRW2H6AGJEJfi++wpQszxln0W2kgBEEiogBDjA==
|
integrity sha512-uYC390qbs7K39s3Ekb0+pooYnxkCoSWD3Up+PstanMESnW8fzFnij0sJgGUbPYgiK44MpTARf8TvIsVmEn907w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/reactive" "2.0.0-rc.1"
|
"@formily/reactive" "2.0.0-rc.2"
|
||||||
"@formily/shared" "2.0.0-rc.1"
|
"@formily/shared" "2.0.0-rc.2"
|
||||||
"@formily/validator" "2.0.0-rc.1"
|
"@formily/validator" "2.0.0-rc.2"
|
||||||
|
|
||||||
"@formily/json-schema@2.0.0-rc.1":
|
"@formily/json-schema@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/json-schema/-/json-schema-2.0.0-rc.1.tgz#43536e3fbd5bb84d4a0458281815bb03625ea4d5"
|
resolved "https://registry.npmjs.org/@formily/json-schema/-/json-schema-2.0.0-rc.2.tgz#41285e44cead0670a8d0c36471ecb0d4f8aeaf28"
|
||||||
integrity sha512-bPxkoqNcp48sGtulUwp0hA3SQ7OwAihDoxun+wWK5RSWRFi+MSLi20wQ7ilUYzUKuo5a524IP3c2D5G8R1MoPA==
|
integrity sha512-JL7Mca+9meeaN0xuJufvDKjPgKETseDyIRv4oGuxYJvA1SadvTjQy8N1W68bo1F8HnptXlNbGKYQ61l7CQU+lA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/core" "2.0.0-rc.1"
|
"@formily/core" "2.0.0-rc.2"
|
||||||
"@formily/reactive" "2.0.0-rc.1"
|
"@formily/reactive" "2.0.0-rc.2"
|
||||||
"@formily/shared" "2.0.0-rc.1"
|
"@formily/shared" "2.0.0-rc.2"
|
||||||
|
|
||||||
"@formily/path@2.0.0-rc.1":
|
"@formily/path@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/path/-/path-2.0.0-rc.1.tgz#10dcc5dae368857e80e3200b72ad684d1a88d488"
|
resolved "https://registry.npmjs.org/@formily/path/-/path-2.0.0-rc.2.tgz#04d19acfdd43878e1f9f037f93e24dc6d67939c9"
|
||||||
integrity sha512-glPa2ScqhzEw7VoPcxgNz+H9KGxsdmBgX2N/5tj1aXt2b58p/GRVFHqAP5/7l8N0BrOilrc/9Xy0Y1YaQpH6cw==
|
integrity sha512-vdLEy1vkiQvLT17ABJNMqPdUm/igTxiUZOYr/jrxJB6FHTZ5yrxxib49qSWDTiiFuuwYNp4xIt/F4CcSMlLAMQ==
|
||||||
|
|
||||||
"@formily/react@2.0.0-rc.1", "@formily/react@^2.0.0-rc.1":
|
"@formily/react@2.0.0-rc.2", "@formily/react@^2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/react/-/react-2.0.0-rc.1.tgz#e6460037ab4ea1e1b1d0625c03cf2fb5f930d886"
|
resolved "https://registry.npmjs.org/@formily/react/-/react-2.0.0-rc.2.tgz#d0c53ea2583a573a6a0e72ef2ab806062f726f49"
|
||||||
integrity sha512-hipff12R43BomKl/vDMVu/mwVyYGz94R6fYs6duWfS9sa1r3rX4sn6qQj8LNS147F92rnJTY1vzOwlQRakC23Q==
|
integrity sha512-gsDWRPxEFkzpgeq4zi4BDS6baKk90cnMKbOJyvwE0QfUp6Lk0wP1aOq9bNLtzkIYbYQYPNP1aAE/3UwLrCZT1w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/core" "2.0.0-rc.1"
|
"@formily/core" "2.0.0-rc.2"
|
||||||
"@formily/json-schema" "2.0.0-rc.1"
|
"@formily/json-schema" "2.0.0-rc.2"
|
||||||
"@formily/reactive" "2.0.0-rc.1"
|
"@formily/reactive" "2.0.0-rc.2"
|
||||||
"@formily/reactive-react" "2.0.0-rc.1"
|
"@formily/reactive-react" "2.0.0-rc.2"
|
||||||
"@formily/shared" "2.0.0-rc.1"
|
"@formily/shared" "2.0.0-rc.2"
|
||||||
"@formily/validator" "2.0.0-rc.1"
|
"@formily/validator" "2.0.0-rc.2"
|
||||||
hoist-non-react-statics "^3.3.2"
|
hoist-non-react-statics "^3.3.2"
|
||||||
|
|
||||||
"@formily/reactive-react@2.0.0-rc.1":
|
"@formily/reactive-react@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/reactive-react/-/reactive-react-2.0.0-rc.1.tgz#e86a41b2f58713869351826b4e72aa03c3a81439"
|
resolved "https://registry.npmjs.org/@formily/reactive-react/-/reactive-react-2.0.0-rc.2.tgz#860a788673452887ef5225c195116367bbccdc79"
|
||||||
integrity sha512-fFl3OPVtZ9DaPGR007DY7VHUhIENKZ0/ZtWUSonKdol27qS+0qgsZGLC7BaaCmanINcIpIE0D6RMGrJuleKPOA==
|
integrity sha512-EKC/SbSpjagxMQYoV1Lc10yn6k0JXzWJNEpe8r05ayCzJzvg+t8H3jGKJmDrKUp186jT7iEhLb1O6JcySGkJRw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/reactive" "2.0.0-rc.1"
|
"@formily/reactive" "2.0.0-rc.2"
|
||||||
hoist-non-react-statics "^3.3.2"
|
hoist-non-react-statics "^3.3.2"
|
||||||
|
|
||||||
"@formily/reactive@2.0.0-rc.1":
|
"@formily/reactive@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/reactive/-/reactive-2.0.0-rc.1.tgz#b2db74194fa29ec39746f77cd1062e02d19fd59f"
|
resolved "https://registry.npmjs.org/@formily/reactive/-/reactive-2.0.0-rc.2.tgz#e94d433a69e6e84c92a9edd8acb19217796e2687"
|
||||||
integrity sha512-2s/kasCDDJX9X0afiyvXWuCKap7kRaM1Go9o9EygFt7LiuknN+sZXQh8mnPLgCaP3ad/Oc4MsGP3LOjOgvYLkg==
|
integrity sha512-363eZWAfhGqNQWDIWXxiQT8nWpDvkpUBg+djkUVAvFE7TKmbSpSUpj7rTo60dDNLVdWN59/VfVIlBy8jN45cXA==
|
||||||
|
|
||||||
"@formily/shared@2.0.0-rc.1":
|
"@formily/shared@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/shared/-/shared-2.0.0-rc.1.tgz#e15968f2c1eab49d6a7d97bc4732c6aa78ec470f"
|
resolved "https://registry.npmjs.org/@formily/shared/-/shared-2.0.0-rc.2.tgz#5e8797d62e3f85bf6c8d84e5533894d30359bfcb"
|
||||||
integrity sha512-xkl0MQ2Il7nFQs7mZ9RhzsmL320j8wf1wfMeEq+UCG0BQc41PO+XgCZebK9ryE/eRw+Pi11iFykoNiO3xa1XYA==
|
integrity sha512-2FF5KxsqZWUdsbq1qiq7iWOb2k9s3k563WOsZhYdOpjYJ0KcyP97hlYm4g7q5cjVeocXLtQjWCgHlDadZ1QihQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/path" "2.0.0-rc.1"
|
"@formily/path" "2.0.0-rc.2"
|
||||||
camel-case "^4.1.1"
|
camel-case "^4.1.1"
|
||||||
lower-case "^2.0.1"
|
lower-case "^2.0.1"
|
||||||
no-case "^3.0.4"
|
no-case "^3.0.4"
|
||||||
@ -1994,12 +1994,12 @@
|
|||||||
pascal-case "^3.1.1"
|
pascal-case "^3.1.1"
|
||||||
upper-case "^2.0.1"
|
upper-case "^2.0.1"
|
||||||
|
|
||||||
"@formily/validator@2.0.0-rc.1":
|
"@formily/validator@2.0.0-rc.2":
|
||||||
version "2.0.0-rc.1"
|
version "2.0.0-rc.2"
|
||||||
resolved "https://registry.npmjs.org/@formily/validator/-/validator-2.0.0-rc.1.tgz#656b0e80517468d5b9818d78482502a69466778f"
|
resolved "https://registry.npmjs.org/@formily/validator/-/validator-2.0.0-rc.2.tgz#c99b66a047c71bfcabc55b5bb3cfaddfb490ac3c"
|
||||||
integrity sha512-D98zD1meO62k3hAFzpWxDRxlYAP5kLYhJ9hxKOk2055sDH7xQhwK6mArGVl7Nc8eNG30Liczm3R6xNIbH/eN1A==
|
integrity sha512-r4VmLvQuYKdra6nsl2rC9Ac5clw8isE3ipcqR2rRiWbDZRV8b5WpSZn5faP5DAs/Sq4e4gX1l7ffoWOAf/S6Fw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@formily/shared" "2.0.0-rc.1"
|
"@formily/shared" "2.0.0-rc.2"
|
||||||
|
|
||||||
"@gulp-sourcemaps/identity-map@1.X":
|
"@gulp-sourcemaps/identity-map@1.X":
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
|
Loading…
Reference in New Issue
Block a user