amis 1.3.5-beta.3 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Badge.d.ts +15 -2
- package/lib/components/Badge.js +47 -4
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.d.ts +24 -22
- package/lib/components/Button.js +13 -7
- package/lib/components/Button.js.map +2 -2
- package/lib/components/Checkbox.d.ts +1 -1
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/RichText.d.ts +6 -4
- package/lib/components/RichText.js +241 -27
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/Select.d.ts +7 -0
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Steps.d.ts +3 -3
- package/lib/components/Steps.js.map +1 -1
- package/lib/components/WithRemoteConfig.d.ts +8 -0
- package/lib/components/WithRemoteConfig.js +28 -2
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/calendar/DaysView.js +2 -2
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +0 -1
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Value.js +2 -1
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/types.d.ts +5 -0
- package/lib/components/condition-builder/types.js.map +1 -1
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.d.ts +5 -1
- package/lib/factory.js +9 -4
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/loading-outline.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +1 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +2 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +2 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +15 -1
- package/lib/renderers/Action.js +13 -6
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +2 -2
- package/lib/renderers/CRUD.js +11 -20
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.js +11 -11
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +1 -1
- package/lib/renderers/Collapse.js +5 -1
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +0 -252
- package/lib/renderers/Dialog.js +3 -2
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +2 -1
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +8 -0
- package/lib/renderers/DropDownButton.js +6 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +2 -0
- package/lib/renderers/Form/Combo.js +16 -1
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +0 -2
- package/lib/renderers/Form/Editor.d.ts +0 -2
- package/lib/renderers/Form/Editor.js +1 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +5 -0
- package/lib/renderers/Form/InputExcel.js +24 -3
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +8 -0
- package/lib/renderers/Form/InputImage.js +2 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputNumber.d.ts +19 -5
- package/lib/renderers/Form/InputNumber.js +69 -7
- package/lib/renderers/Form/InputNumber.js.map +2 -2
- package/lib/renderers/Form/InputRange.js +7 -2
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.d.ts +23 -5
- package/lib/renderers/Form/InputTable.js +32 -3
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Options.js +3 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/index.js +0 -10
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +3 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Json.js +5 -1
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/List.d.ts +5 -0
- package/lib/renderers/List.js +20 -14
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Nav.d.ts +52 -22
- package/lib/renderers/Nav.js +100 -15
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +6 -0
- package/lib/renderers/Page.js +11 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +10 -1
- package/lib/renderers/Service.js +85 -3
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Steps.d.ts +4 -4
- package/lib/renderers/Steps.js +5 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/TableBody.d.ts +5 -3
- package/lib/renderers/Table/TableBody.js +17 -11
- package/lib/renderers/Table/TableBody.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +6 -2
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +3 -1
- package/lib/renderers/Table/TableContent.js +6 -2
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/TableRow.d.ts +1 -1
- package/lib/renderers/Table/TableRow.js +14 -13
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +28 -3
- package/lib/renderers/Table/index.js +92 -52
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/schemaExtend.d.ts +1 -0
- package/lib/schemaExtend.js +59 -0
- package/lib/schemaExtend.js.map +13 -0
- package/lib/store/app.d.ts +0 -1
- package/lib/store/combo.d.ts +0 -2
- package/lib/store/crud.d.ts +3 -3
- package/lib/store/crud.js +41 -36
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +0 -1
- package/lib/store/formItem.js +10 -6
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/modal.d.ts +1 -1
- package/lib/store/modal.js +4 -0
- package/lib/store/modal.js.map +2 -2
- package/lib/store/root.d.ts +0 -1
- package/lib/store/service.d.ts +0 -1
- package/lib/store/service.js +0 -13
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +1 -2
- package/lib/store/table.js +44 -3
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +624 -71
- package/lib/themes/ang.css +624 -71
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +624 -71
- package/lib/themes/antd.css +624 -71
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +732 -191
- package/lib/themes/cxd.css +732 -191
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +624 -71
- package/lib/themes/dark.css +624 -71
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +732 -191
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +12 -0
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/attachmentAdpator.d.ts +7 -0
- package/lib/utils/attachmentAdpator.js +82 -0
- package/lib/utils/attachmentAdpator.js.map +13 -0
- package/lib/utils/helper.d.ts +2 -0
- package/lib/utils/helper.js +14 -1
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/resize-sensor.js +6 -0
- package/lib/utils/resize-sensor.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +1 -0
- package/lib/utils/tpl-builtin.js +24 -8
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/lib/utils/validations.js +62 -5
- package/lib/utils/validations.js.map +2 -2
- package/package.json +1 -2
- package/schema.json +561 -171
- package/scss/_mixins.scss +29 -0
- package/scss/_properties.scss +29 -11
- package/scss/components/_badge.scss +67 -2
- package/scss/components/_button.scss +35 -3
- package/scss/components/_image-gallery.scss +1 -1
- package/scss/components/_list.scss +8 -0
- package/scss/components/_markdown.scss +266 -0
- package/scss/components/_nav.scss +109 -35
- package/scss/components/_spinner.scss +6 -2
- package/scss/components/_table.scss +4 -0
- package/scss/components/form/_form.scss +3 -17
- package/scss/components/form/_group.scss +4 -0
- package/scss/components/form/_number.scss +12 -1
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +20 -20
- package/sdk/ang-ie11.css +769 -76
- package/sdk/ang.css +785 -76
- package/sdk/antd-ie11.css +759 -68
- package/sdk/antd.css +785 -76
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +67 -67
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1243 -552
- package/sdk/cxd.css +893 -196
- package/sdk/dark-ie11.css +769 -76
- package/sdk/dark.css +785 -76
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +1 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +22 -24
- package/sdk/rich-text.js +62 -64
- package/sdk/sdk-ie11.css +1243 -552
- package/sdk/sdk.css +893 -196
- package/sdk/sdk.js +1123 -1111
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/sdk.zip +0 -0
- package/src/components/Badge.tsx +111 -20
- package/src/components/Button.tsx +23 -7
- package/src/components/Checkbox.tsx +5 -2
- package/src/components/Drawer.tsx +3 -2
- package/src/components/Modal.tsx +3 -2
- package/src/components/RichText.tsx +280 -24
- package/src/components/Select.tsx +1 -0
- package/src/components/Steps.tsx +3 -3
- package/src/components/WithRemoteConfig.tsx +37 -2
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/condition-builder/Field.tsx +1 -2
- package/src/components/condition-builder/Value.tsx +3 -0
- package/src/components/condition-builder/types.ts +6 -0
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +13 -3
- package/src/icons/loading-outline.svg +4 -0
- package/src/index.tsx +2 -0
- package/src/locale/de-DE.ts +1 -0
- package/src/locale/en-US.ts +2 -1
- package/src/locale/zh-CN.ts +2 -1
- package/src/renderers/Action.tsx +84 -14
- package/src/renderers/CRUD.tsx +13 -33
- package/src/renderers/Card.tsx +21 -15
- package/src/renderers/Collapse.tsx +5 -1
- package/src/renderers/Dialog.tsx +3 -2
- package/src/renderers/Drawer.tsx +2 -1
- package/src/renderers/DropDownButton.tsx +21 -4
- package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
- package/src/renderers/Form/Combo.tsx +7 -0
- package/src/renderers/Form/Editor.tsx +19 -20
- package/src/renderers/Form/InputExcel.tsx +28 -3
- package/src/renderers/Form/InputImage.tsx +23 -8
- package/src/renderers/Form/InputNumber.tsx +113 -18
- package/src/renderers/Form/InputRange.tsx +5 -2
- package/src/renderers/Form/InputTable.tsx +88 -9
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/index.tsx +0 -15
- package/src/renderers/Form/wrapControl.tsx +2 -2
- package/src/renderers/Json.tsx +10 -1
- package/src/renderers/List.tsx +32 -19
- package/src/renderers/Nav.tsx +165 -36
- package/src/renderers/Page.tsx +20 -1
- package/src/renderers/Service.tsx +101 -3
- package/src/renderers/Steps.tsx +12 -9
- package/src/renderers/Table/TableBody.tsx +29 -10
- package/src/renderers/Table/TableCell.tsx +15 -1
- package/src/renderers/Table/TableContent.tsx +7 -1
- package/src/renderers/Table/TableRow.tsx +18 -17
- package/src/renderers/Table/index.tsx +112 -27
- package/src/schemaExtend.ts +66 -0
- package/src/store/crud.ts +34 -38
- package/src/store/formItem.ts +10 -6
- package/src/store/modal.ts +4 -0
- package/src/store/service.ts +0 -19
- package/src/store/table.ts +48 -0
- package/src/utils/api.ts +11 -0
- package/src/utils/attachmentAdpator.ts +90 -0
- package/src/utils/helper.ts +16 -0
- package/src/utils/resize-sensor.ts +7 -0
- package/src/utils/tpl-builtin.ts +36 -17
- package/src/utils/validations.ts +80 -12
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/index.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Renderer, RendererProps} from '../../factory';\nimport {observer} from 'mobx-react';\nimport {FormStore, IFormStore} from '../../store/form';\nimport {Api, SchemaNode, Schema, Action, ApiObject, Payload} from '../../types';\nimport {filter, evalExpression} from '../../utils/tpl';\nimport cx from 'classnames';\nimport getExprProperties from '../../utils/filter-schema';\nimport {\n promisify,\n difference,\n until,\n noop,\n isObject,\n isVisible,\n cloneObject,\n SkipOperation,\n isEmpty,\n getVariable,\n isObjectShallowModified,\n qsparse\n} from '../../utils/helper';\nimport debouce from 'lodash/debounce';\nimport flatten from 'lodash/flatten';\nimport find from 'lodash/find';\nimport Scoped, {\n ScopedContext,\n IScopedContext,\n ScopedComponentType\n} from '../../Scoped';\nimport {IComboStore} from '../../store/combo';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport Spinner from '../../components/Spinner';\nimport {LazyComponent} from '../../components';\nimport {isAlive} from 'mobx-state-tree';\nimport {asFormItem} from './Item';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {trace} from 'mobx';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaDefaultData,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaRedirect,\n SchemaReload\n} from '../../Schema';\nimport {ActionSchema} from '../Action';\nimport {ButtonGroupControlSchema} from './ButtonGroupSelect';\nimport {DialogSchemaBase} from '../Dialog';\nimport Alert from '../../components/Alert2';\n\nexport interface FormSchemaHorizontal {\n left?: number;\n right?: number;\n leftFixed?: boolean | number | 'xs' | 'sm' | 'md' | 'lg';\n}\n\n/**\n * Form 表单渲染器。\n *\n * 说明:https://baidu.gitee.io/amis/docs/components/form/index\n */\nexport interface FormSchema extends BaseSchema {\n /**\n * 指定为表单渲染器。\n */\n type: 'form';\n\n /**\n * 表单标题\n */\n title?: string;\n\n /**\n * 按钮集合,会固定在底部显示。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 表单项集合\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 请用类型 tabs\n */\n tabs?: any;\n\n /**\n * @deprecated 请用类型 fieldSet\n */\n fieldSet?: any;\n\n data?: SchemaDefaultData;\n\n /**\n * 是否开启调试,开启后会在顶部实时显示表单项数据。\n */\n debug?: boolean;\n\n /**\n * 用来初始化表单数据\n */\n initApi?: SchemaApi;\n\n /**\n * Form 用来获取初始数据的 api,与initApi不同的是,会一直轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n initAsyncApi?: SchemaApi;\n\n /**\n * 设置了initAsyncApi后,默认会从返回数据的data.finished来判断是否完成,也可以设置成其他的xxx,就会从data.xxx中获取\n */\n initFinishedField?: string;\n\n /**\n * 设置了initAsyncApi以后,默认拉取的时间间隔\n */\n initCheckInterval?: number;\n\n /**\n * 是否初始加载\n */\n initFetch?: boolean;\n\n /**\n * 建议改成 api 的 sendOn 属性。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 设置后将轮询调用 initApi\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 配置停止轮询的条件\n */\n stopAutoRefreshWhen?: string;\n\n /**\n * 是否开启本地缓存\n */\n persistData?: string;\n\n /**\n * 提交成功后清空本地缓存\n */\n clearPersistDataAfterSubmit?: boolean;\n\n /**\n * Form 用来保存数据的 api。\n *\n * 详情:https://baidu.gitee.io/amis/docs/components/form/index#%E8%A1%A8%E5%8D%95%E6%8F%90%E4%BA%A4\n */\n api?: SchemaApi;\n\n /**\n * Form 也可以配置 feedback。\n */\n feedback?: DialogSchemaBase;\n\n /**\n * 设置此属性后,表单提交发送保存接口后,还会继续轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n asyncApi?: SchemaApi;\n\n /**\n * 轮询请求的时间间隔,默认为 3秒。设置 asyncApi 才有效\n */\n checkInterval?: number;\n\n /**\n * 如果决定结束的字段名不是 `finished` 请设置此属性,比如 `is_success`\n */\n finishedField?: string;\n\n /**\n * 提交完后重置表单\n */\n resetAfterSubmit?: boolean;\n\n /**\n * 提交后清空表单\n */\n clearAfterSubmit?: boolean;\n\n /**\n * 配置表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n horizontal?: FormSchemaHorizontal;\n\n /**\n * 是否自动将第一个表单元素聚焦。\n */\n autoFocus?: boolean;\n\n /**\n * 消息文案配置,记住这个优先级是最低的,如果你的接口返回了 msg,接口返回的优先。\n */\n messages?: {\n /**\n * 表单验证失败时的提示\n */\n validateFailed?: string;\n } & SchemaMessage;\n\n name?: SchemaName;\n\n /**\n * 配置容器 panel className\n */\n panelClassName?: SchemaClassName;\n\n /**\n * 设置主键 id, 当设置后,检测表单是否完成时(asyncApi),只会携带此数据。\n * @default id\n */\n primaryField?: string;\n\n redirect?: SchemaRedirect;\n\n reload?: SchemaReload;\n\n /**\n * 修改的时候是否直接提交表单。\n */\n submitOnChange?: boolean;\n\n /**\n * 表单初始先提交一次,联动的时候有用\n */\n submitOnInit?: boolean;\n\n /**\n * 默认的提交按钮名称,如果设置成空,则可以把默认按钮去掉。\n */\n submitText?: string;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n\n /**\n * 是否用 panel 包裹起来\n */\n wrapWithPanel?: boolean;\n\n /**\n * 是否固定底下的按钮在底部。\n */\n affixFooter?: boolean;\n\n /**\n * 页面离开提示,为了防止页面不小心跳转而导致表单没有保存。\n */\n promptPageLeave?: boolean;\n\n /**\n * 具体的提示信息,选填。\n */\n promptPageLeaveMessage?: string;\n\n /**\n * 组合校验规则,选填\n */\n rules?: Array<{\n rule: string;\n message: string;\n }>;\n\n /**\n * 禁用回车提交\n */\n preventEnterSubmit?: boolean;\n}\n\nexport type FormGroup = FormSchema & {\n title?: string;\n className?: string;\n};\nexport type FormGroupNode = FormGroup | FormGroupArray;\nexport interface FormGroupArray extends Array<FormGroupNode> {}\n\nexport type FormHorizontal = FormSchemaHorizontal;\n\nexport interface FormProps\n extends RendererProps,\n Omit<FormSchema, 'mode' | 'className'> {\n data: any;\n store: IFormStore;\n wrapperComponent: React.ElementType;\n canAccessSuperData: boolean;\n trimValues?: boolean;\n lazyLoad?: boolean;\n simpleMode?: boolean;\n onInit?: (values: object, props: any) => any;\n onReset?: (values: object) => void;\n onSubmit?: (values: object, action: any) => any;\n onChange?: (values: object, diff: object, props: any) => any;\n onFailed?: (reason: string, errors: any) => any;\n onFinished: (values: object, action: any) => any;\n onValidate: (values: object, form: any) => any;\n messages: {\n fetchSuccess?: string;\n fetchFailed?: string;\n saveSuccess?: string;\n saveFailed?: string;\n validateFailed?: string;\n };\n rules: Array<{\n rule: string;\n message: string;\n }>;\n lazyChange?: boolean; // 表单项的\n formLazyChange?: boolean; // 表单的\n}\nexport default class Form extends React.Component<FormProps, object> {\n static defaultProps = {\n title: 'Form.title',\n submitText: 'Form.submit',\n initFetch: true,\n wrapWithPanel: true,\n mode: 'normal',\n collapsable: false,\n controlWidth: 'full',\n horizontal: {\n left: 2,\n right: 10,\n offset: 2\n },\n panelClassName: 'Panel--default',\n messages: {\n fetchFailed: 'fetchFailed',\n saveSuccess: 'saveSuccess',\n saveFailed: 'saveFailed'\n },\n wrapperComponent: '',\n finishedField: 'finished',\n initFinishedField: 'finished'\n };\n static propsList: Array<string> = [\n 'title',\n 'header',\n 'controls',\n 'tabs',\n 'fieldSet',\n 'submitText',\n 'initFetch',\n 'wrapWithPanel',\n 'mode',\n 'collapsable',\n 'horizontal',\n 'panelClassName',\n 'messages',\n 'wrapperComponent',\n 'resetAfterSubmit',\n 'clearAfterSubmit',\n 'submitOnInit',\n 'submitOnChange',\n 'onInit',\n 'onReset',\n 'onSubmit',\n 'onChange',\n 'onFailed',\n 'onFinished',\n 'onSaved',\n 'canAccessSuperData',\n 'lazyChange',\n 'formLazyChange',\n 'lazyLoad',\n 'formInited',\n 'simpleMode',\n 'inputOnly',\n 'value',\n 'actions'\n ];\n\n hooks: {\n [propName: string]: Array<() => Promise<any>>;\n } = {};\n asyncCancel: () => void;\n disposeOnValidate: () => void;\n disposeRulesValidate: () => void;\n shouldLoadInitApi: boolean = false;\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n unBlockRouting?: () => void;\n constructor(props: FormProps) {\n super(props);\n\n this.onInit = this.onInit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleQuery = this.handleQuery.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDialogConfirm = this.handleDialogConfirm.bind(this);\n this.handleDialogClose = this.handleDialogClose.bind(this);\n this.handleDrawerConfirm = this.handleDrawerConfirm.bind(this);\n this.handleDrawerClose = this.handleDrawerClose.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.submit = this.submit.bind(this);\n this.addHook = this.addHook.bind(this);\n this.removeHook = this.removeHook.bind(this);\n this.emitChange = this.emitChange.bind(this);\n this.handleBulkChange = this.handleBulkChange.bind(this);\n this.renderFormItems = this.renderFormItems.bind(this);\n this.reload = this.reload.bind(this);\n this.silentReload = this.silentReload.bind(this);\n this.initInterval = this.initInterval.bind(this);\n this.blockRouting = this.blockRouting.bind(this);\n this.beforePageUnload = this.beforePageUnload.bind(this);\n\n const {store, canAccessSuperData, persistData, simpleMode} = props;\n\n store.setCanAccessSuperData(canAccessSuperData !== false);\n store.setPersistData(persistData);\n\n if (simpleMode) {\n store.setInited(true);\n }\n\n if (\n store &&\n store.parentStore &&\n store.parentStore.storeType === 'ComboStore'\n ) {\n const combo = store.parentStore as IComboStore;\n combo.addForm(store);\n combo.forms.forEach(form =>\n form.items.forEach(\n item => item.unique && item.syncOptions(undefined, form.data)\n )\n );\n }\n }\n\n componentDidMount() {\n const {\n initApi,\n initFetch,\n initFetchOn,\n initAsyncApi,\n initFinishedField,\n initCheckInterval,\n store,\n messages: {fetchSuccess, fetchFailed},\n onValidate,\n promptPageLeave,\n env,\n rules\n } = this.props;\n\n this.mounted = true;\n\n if (onValidate) {\n const finalValidate = promisify(onValidate);\n this.disposeOnValidate = this.addHook(async () => {\n const result = await finalValidate(store.data, store);\n\n if (result && isObject(result)) {\n Object.keys(result).forEach(key => {\n let msg = result[key];\n const items = store.getItemsByPath(key);\n\n // 没有找到\n if (!Array.isArray(items) || !items.length) {\n return;\n }\n\n // 在setError之前,提前把残留的error信息清除掉,否则每次onValidate后都会一直把报错 append 上去\n items.forEach(item => item.clearError());\n\n if (msg) {\n msg = Array.isArray(msg) ? msg : [msg];\n items.forEach(item => item.addError(msg));\n }\n\n delete result[key];\n });\n\n isEmpty(result)\n ? store.clearRestError()\n : store.setRestError(Object.keys(result).map(key => result[key]));\n }\n });\n }\n\n if (Array.isArray(rules) && rules.length) {\n this.disposeRulesValidate = this.addHook(() => {\n if (!store.valid) {\n return;\n }\n\n rules.forEach(\n item =>\n !evalExpression(item.rule, store.data) &&\n store.addRestError(item.message)\n );\n });\n }\n\n if (isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(initApi as any, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n initCheckInterval\n );\n }\n })\n .then(this.initInterval)\n .then(this.onInit);\n } else {\n setTimeout(this.onInit.bind(this), 4);\n }\n\n if (promptPageLeave) {\n window.addEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting = env.blockRouting?.(this.blockRouting) ?? undefined;\n }\n }\n\n componentDidUpdate(prevProps: FormProps) {\n const props = this.props;\n const store = props.store;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n const {fetchSuccess, fetchFailed} = props;\n\n store[store.hasRemoteData ? 'fetchData' : 'fetchInitData'](\n props.initApi as Api,\n store.data,\n {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n }\n ).then(this.initInterval);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n // this.lazyHandleChange.flush();\n this.lazyEmitChange.cancel();\n this.asyncCancel && this.asyncCancel();\n this.disposeOnValidate && this.disposeOnValidate();\n this.disposeRulesValidate && this.disposeRulesValidate();\n window.removeEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting?.();\n }\n\n blockRouting(): any {\n const store = this.props.store;\n const {promptPageLeaveMessage, promptPageLeave} = this.props;\n\n if (promptPageLeave && store.modified) {\n return promptPageLeaveMessage || '新的修改没有保存,确认要离开?';\n }\n }\n\n beforePageUnload(e: any): any {\n const blocked = this.blockRouting();\n\n if (blocked) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n\n async onInit() {\n const {onInit, store, persistData, submitOnInit} = this.props;\n if (!isAlive(store)) {\n return;\n }\n\n // 先拿出来数据,主要担心 form 被什么东西篡改了,然后又应用出去了\n // 之前遇到过问题,所以拿出来了。但是 options loadOptions 默认值失效了。\n // 所以目前需要两个都要设置一下,再 init Hook 里面。\n let data = cloneObject(store.data);\n const initedAt = store.initedAt;\n\n store.setInited(true);\n const hooks: Array<(data: any) => Promise<any>> = this.hooks['init'] || [];\n await Promise.all(hooks.map(hook => hook(data)));\n\n if (!isAlive(store)) {\n return;\n }\n\n if (store.initedAt !== initedAt) {\n // 说明,之前的数据已经失效了。\n // 比如 combo 一开始设置了初始值,然后 form 的 initApi 又返回了新的值。\n // 这个时候 store 的数据应该已经 init 了新的值。但是 data 还是老的,这个时候\n // onInit 出去就是错误的。\n data = {\n ...data,\n ...store.data\n };\n }\n\n persistData && store.getLocalPersistData();\n\n onInit && onInit(data, this.props);\n\n submitOnInit &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n reload(subPath?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n store,\n initApi,\n initAsyncApi,\n initFinishedField,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n isEffectiveApi(initAsyncApi, store.data) &&\n store.updateData({\n [initFinishedField || 'finished']: false\n });\n\n isEffectiveApi(initApi, store.data)\n ? store\n .fetchInitData(initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n silent,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n );\n }\n })\n .then((result: Payload) => {\n if (result?.ok) {\n this.initInterval(result);\n store.reset(undefined, false);\n }\n })\n : store.reset(undefined, false);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n isValidated() {\n return this.props.store.validated;\n }\n\n validate(forceValidate?: boolean): Promise<boolean> {\n const {store} = this.props;\n\n this.flush();\n return store.validate(this.hooks['validate'] || [], forceValidate);\n }\n\n clearErrors() {\n const {store} = this.props;\n\n return store.clearErrors();\n }\n\n getValues() {\n const {store} = this.props;\n this.flush();\n return store.data;\n }\n\n setValues(value: any) {\n const {store} = this.props;\n this.flush();\n store.setValues(value);\n }\n\n submit(fn?: (values: object) => Promise<any>): Promise<any> {\n const {store, messages, translate: __} = this.props;\n this.flush();\n\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed)\n );\n }\n\n // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。\n flush() {\n const hooks = this.hooks['flush'] || [];\n hooks.forEach(fn => fn());\n this.lazyEmitChange.flush();\n }\n\n reset() {\n const {store, onReset} = this.props;\n store.reset(onReset);\n }\n\n addHook(fn: () => any, type: 'validate' | 'init' | 'flush' = 'validate') {\n this.hooks[type] = this.hooks[type] || [];\n this.hooks[type].push(type === 'flush' ? fn : promisify(fn));\n return () => {\n this.removeHook(fn, type);\n fn = noop;\n };\n }\n\n removeHook(fn: () => any, type: string = 'validate') {\n const hooks = this.hooks[type];\n\n if (!hooks) {\n return;\n }\n\n for (let i = 0, len = hooks.length; i < len; i++) {\n let hook = hooks[i];\n\n if (hook === fn || (hook as any).raw === fn) {\n hooks.splice(i, 1);\n len--;\n i--;\n }\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit: boolean,\n changePristine = false\n ) {\n const {store, formLazyChange} = this.props;\n\n if (typeof name !== 'string') {\n return;\n }\n\n store.changeValue(name, value, changePristine);\n\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData) {\n store.setLocalPersistData();\n }\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n\n onChange &&\n onChange(store.data, difference(store.data, store.pristine), this.props);\n\n store.clearRestError();\n\n (submit || (submitOnChange && store.inited)) &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n handleBulkChange(values: Object, submit: boolean) {\n const {onChange, store, formLazyChange} = this.props;\n\n store.updateData(values);\n\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);\n }\n\n handleFormSubmit(e: React.UIEvent<any>) {\n const {preventEnterSubmit} = this.props;\n\n e.preventDefault();\n if (preventEnterSubmit) {\n return false;\n }\n\n return this.handleAction(\n e,\n {\n type: 'submit'\n },\n this.props.store.data\n );\n }\n\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ): any {\n const {\n store,\n onSubmit,\n api,\n asyncApi,\n finishedField,\n checkInterval,\n messages: {saveSuccess, saveFailed},\n resetAfterSubmit,\n clearAfterSubmit,\n onAction,\n onSaved,\n onReset,\n onFinished,\n onFailed,\n redirect,\n reload,\n target,\n env,\n onChange,\n clearPersistDataAfterSubmit,\n trimValues,\n translate: __\n } = this.props;\n\n // 做动作之前,先把数据同步一下。\n this.flush();\n\n if (trimValues) {\n store.trimValues();\n }\n\n // 如果 data 就是当前层,则 flush 一下。\n if (data === this.props.data) {\n data = store.data;\n }\n\n if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n env.notify('error', __('Form.validateFailed'));\n } else {\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\n );\n }\n });\n }\n\n if (\n action.type === 'submit' ||\n action.actionType === 'submit' ||\n action.actionType === 'confirm' ||\n action.actionType === 'reset-and-submit' ||\n action.actionType === 'clear-and-submit'\n ) {\n store.setCurrentAction(action);\n\n if (action.actionType === 'reset-and-submit') {\n store.reset(onReset);\n } else if (action.actionType === 'clear-and-submit') {\n store.clear(onReset);\n }\n\n return this.submit((values): any => {\n if (onSubmit && onSubmit(values, action) === false) {\n return Promise.resolve(false);\n }\n\n if (target) {\n this.submitToTarget(target, values);\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, values);\n } else if (action.actionType === 'dialog') {\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.openDrawer(data);\n } else if (isEffectiveApi(action.api || api, values)) {\n let finnalAsyncApi = action.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n return store\n .saveRemote(action.api || (api as Api), values, {\n successMessage: saveSuccess,\n errorMessage: saveFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n checkInterval\n );\n }\n })\n .then(async response => {\n onSaved && onSaved(values, response);\n const feedback = action.feedback || this.props.feedback;\n\n // submit 也支持 feedback\n if (feedback && isVisible(feedback, store.data)) {\n const confirmed = await this.openFeedback(feedback, store.data);\n\n // 如果 feedback 配置了,取消就跳过原有逻辑。\n if (feedback.skipRestOnCancel && !confirmed) {\n throw new SkipOperation();\n } else if (feedback.skipRestOnConfirm && confirmed) {\n throw new SkipOperation();\n }\n }\n\n // return values;\n });\n }\n\n return Promise.resolve(null);\n })\n .then(values => {\n // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。\n if (values === false) {\n return store.data;\n }\n\n if (onFinished && onFinished(values, action) === false) {\n return values;\n }\n\n resetAfterSubmit && store.reset(onReset);\n clearAfterSubmit && store.clear(onReset);\n clearPersistDataAfterSubmit && store.clearLocalPersistData();\n\n if (action.redirect || redirect) {\n const finalRedirect = filter(\n action.redirect || redirect,\n store.data\n );\n finalRedirect && env.jumpTo(finalRedirect, action);\n } else if (action.reload || reload) {\n this.reloadTarget(action.reload || reload!, store.data);\n }\n\n action.close && this.closeTarget(action.close);\n return values;\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n\n onFailed && onFailed(reason, store.errors);\n\n if (throwErrors) {\n throw reason;\n }\n });\n } else if (action.type === 'reset' || action.actionType === 'reset') {\n store.setCurrentAction(action);\n store.reset(onReset);\n } else if (action.actionType === 'clear') {\n store.setCurrentAction(action);\n store.clear(onReset);\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.setCurrentAction(action);\n store.openDrawer(data);\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n if (!isEffectiveApi(action.api)) {\n return env.alert(__(`当 actionType 为 ajax 时,请设置 api 属性`));\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: __(\n (action.messages && action.messages.success) || saveSuccess\n ),\n errorMessage: __(\n (action.messages && action.messages.failed) || saveFailed\n )\n })\n .then(async response => {\n response &&\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n if (store.validated) {\n await this.validate(true);\n }\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n onFailed && onFailed(e, store.errors);\n if (throwErrors) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload') {\n store.setCurrentAction(action);\n action.target && this.reloadTarget(action.target, data);\n } else if (onAction) {\n // 不识别的丢给上层去处理。\n return onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n handleQuery(query: any) {\n if (this.props.initApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n const {store, onChange} = this.props;\n\n if (\n (action.mergeData || store.action.mergeData) &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n this.handleBulkChange(values[0], false);\n }\n\n store.closeDialog(true);\n }\n\n handleDialogClose() {\n const {store} = this.props;\n store.closeDialog(false);\n }\n\n handleDrawerConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n const {store, onChange} = this.props;\n\n if (\n (action.mergeData || store.action.mergeData) &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n store.updateData(values[0]);\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n }\n\n store.closeDrawer(true);\n }\n\n handleDrawerClose() {\n const {store} = this.props;\n store.closeDrawer(false);\n }\n\n submitToTarget(target: string, values: object) {\n // 会被覆写\n }\n\n reloadTarget(target: string, data?: any) {\n // 会被覆写\n }\n\n closeTarget(target: string) {\n // 会被覆写\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n });\n }\n\n buildActions() {\n const {actions, submitText, body, translate: __} = this.props;\n\n if (\n typeof actions !== 'undefined' ||\n !submitText ||\n (Array.isArray(body) &&\n body.some(\n item =>\n item &&\n !!~['submit', 'button', 'button-group', 'reset'].indexOf(\n (item as any)?.body?.[0]?.type ||\n (item as any)?.body?.type ||\n (item as SchemaObject).type\n )\n ))\n ) {\n return actions;\n }\n\n return [\n {\n type: 'submit',\n label: __(submitText),\n primary: true\n }\n ];\n }\n\n renderFormItems(\n schema: Partial<FormSchema> & {\n controls?: Array<any>;\n },\n region: string = '',\n otherProps: Partial<FormProps> = {}\n ): React.ReactNode {\n let body: Array<any> = Array.isArray(schema.body)\n ? schema.body\n : schema.body\n ? [schema.body]\n : [];\n\n // 旧用法,让 wrapper 走走 compat 逻辑兼容旧用法\n // 后续可以删除。\n if (!body.length && schema.controls) {\n console.warn('请用 body 代替 controls');\n body = [\n {\n size: 'none',\n type: 'wrapper',\n wrap: false,\n controls: schema.controls\n }\n ];\n }\n\n return this.renderChildren(body, region, otherProps);\n }\n\n renderChildren(\n children: Array<any>,\n region: string,\n otherProps: Partial<FormProps> = {}\n ): React.ReactNode {\n children = children || [];\n\n if (!Array.isArray(children)) {\n children = [children];\n }\n\n if (this.props.mode === 'row') {\n const ns = this.props.classPrefix;\n\n children = flatten(children).filter(item => {\n if ((item as Schema).hidden || (item as Schema).visible === false) {\n return false;\n }\n\n const exprProps = getExprProperties(\n item as Schema,\n this.props.store.data,\n undefined,\n this.props\n );\n if (exprProps.hidden || exprProps.visible === false) {\n return false;\n }\n\n return true;\n });\n\n if (!children.length) {\n return null;\n }\n\n return (\n <div className={`${ns}Form-row`}>\n {children.map((control, key) =>\n ~['hidden', 'formula'].indexOf((control as any).type) ||\n (control as any).mode === 'inline' ? (\n this.renderChild(control, key, otherProps)\n ) : (\n <div\n key={key}\n className={cx(\n `${ns}Form-col`,\n (control as Schema).columnClassName\n )}\n >\n {this.renderChild(control, '', {\n ...otherProps,\n mode: 'row'\n })}\n </div>\n )\n )}\n </div>\n );\n }\n\n return children.map((control, key) =>\n this.renderChild(control, key, otherProps, region)\n );\n }\n\n renderChild(\n control: SchemaNode,\n key: any = '',\n otherProps: Partial<FormProps> = {},\n region: string = ''\n ): React.ReactNode {\n if (!control) {\n return null;\n } else if (typeof control === 'string') {\n control = {\n type: 'tpl',\n tpl: control\n };\n }\n\n const props = {\n ...this.props,\n ...otherProps\n };\n const form = this.props.store;\n const {\n render,\n mode,\n horizontal,\n store,\n disabled,\n controlWidth,\n resolveDefinitions,\n lazyChange,\n formLazyChange\n } = props;\n\n const subProps = {\n formStore: form,\n data: store.data,\n key: `${(control as Schema).name || ''}-${\n (control as Schema).type\n }-${key}`,\n formInited: form.inited,\n formSubmited: form.submited,\n formMode: mode,\n formHorizontal: horizontal,\n controlWidth,\n disabled: disabled || (control as Schema).disabled || form.loading,\n btnDisabled: form.loading || form.validating,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n onChange: this.handleChange,\n onBulkChange: this.handleBulkChange,\n addHook: this.addHook,\n removeHook: this.removeHook,\n renderFormItems: this.renderFormItems,\n formPristine: form.pristine\n // value: (control as any)?.name\n // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)\n // : (control as any)?.value,\n // defaultValue: (control as any)?.value\n };\n\n let subSchema: any = {\n ...control\n };\n\n if (subSchema.$ref) {\n subSchema = {\n ...resolveDefinitions(subSchema.$ref),\n ...subSchema\n };\n }\n\n lazyChange === false && (subSchema.changeImmediately = true);\n return render(`${region ? `${region}/` : ''}${key}`, subSchema, subProps);\n }\n\n renderBody() {\n const {\n body,\n mode,\n className,\n classnames: cx,\n debug,\n $path,\n store,\n render\n } = this.props;\n\n const {restError} = store;\n\n const WrapperComponent =\n this.props.wrapperComponent ||\n (/(?:\\/|^)form\\//.test($path as string) ? 'div' : 'form');\n\n return (\n <WrapperComponent\n className={cx(`Form`, `Form--${mode || 'normal'}`, className)}\n onSubmit={this.handleFormSubmit}\n noValidate\n >\n {/* 实现回车自动提交 */}\n <input type=\"submit\" style={{display: 'none'}} />\n\n {debug ? (\n <pre>\n <code>{JSON.stringify(store.data, null, 2)}</code>\n </pre>\n ) : null}\n\n <Spinner show={store.loading} overlay />\n\n {this.renderFormItems({\n body\n })}\n\n {/* 显示没有映射上的 errors */}\n {restError && restError.length ? (\n <ul className={cx('Form-restError', 'Form-feedback')}>\n {restError.map((item, idx) => (\n <li key={idx}>{item}</li>\n ))}\n </ul>\n ) : null}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).dialog as object)),\n type: 'dialog'\n },\n {\n key: 'dialog',\n data: store.dialogData,\n onConfirm: this.handleDialogConfirm,\n onClose: this.handleDialogClose,\n show: store.dialogOpen\n }\n )}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).drawer as object)),\n type: 'drawer'\n },\n {\n key: 'drawer',\n data: store.drawerData,\n onConfirm: this.handleDrawerConfirm,\n onClose: this.handleDrawerClose,\n show: store.drawerOpen\n }\n )}\n </WrapperComponent>\n );\n }\n\n render() {\n const {\n $path,\n $schema,\n wrapWithPanel,\n render,\n title,\n store,\n panelClassName,\n headerClassName,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n classnames: cx,\n affixFooter,\n lazyLoad,\n translate: __,\n footer,\n formStore\n } = this.props;\n\n // trace(true);\n // console.log('Form');\n\n let body: JSX.Element = this.renderBody();\n\n // props有formStore 说明是嵌套表单 || 不允许在表单的按钮组中再直接套表单\n if (formStore) {\n body = (\n <>\n <Alert level=\"warning\" showCloseButton>\n <p>{__('Form.nestedError')}</p>\n </Alert>\n {body}\n </>\n );\n }\n\n if (wrapWithPanel) {\n body = render(\n 'body',\n {\n type: 'panel',\n title: __(title)\n },\n {\n className: cx(panelClassName, 'Panel--form'),\n formStore: this.props.store,\n children: body,\n actions: this.buildActions(),\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n disabled: store.loading,\n btnDisabled: store.loading || store.validating,\n headerClassName,\n footer,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n affixFooter\n }\n ) as JSX.Element;\n }\n\n if (lazyLoad) {\n body = <LazyComponent>{body}</LazyComponent>;\n }\n\n return body;\n }\n}\n\n@Renderer({\n type: 'form',\n storeType: FormStore.name,\n isolateScope: true,\n shouldSyncSuperStore: (store, props, prevProps) => {\n // 如果是 QuickEdit,让 store 同步 __super 数据。\n if (\n props.quickEditFormRef &&\n props.onQuickChange &&\n (isObjectShallowModified(prevProps.data, props.data) ||\n isObjectShallowModified(prevProps.data.__super, props.data.__super) ||\n isObjectShallowModified(\n prevProps.data.__super?.__super,\n props.data.__super?.__super\n ))\n ) {\n return true;\n }\n\n return undefined;\n }\n})\nexport class FormRenderer extends Form {\n static contextType = ScopedContext;\n\n constructor(props: FormProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n if (this.props.autoFocus) {\n const scoped = this.context as IScopedContext;\n const inputs = scoped.getComponents();\n let focuableInput = find(\n inputs,\n input => input.focus\n ) as ScopedComponentType;\n focuableInput && setTimeout(() => focuableInput.focus!(), 200);\n }\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n\n super.componentWillUnmount();\n }\n\n doAction(\n action: Action,\n data: object = this.props.store.data,\n throwErrors: boolean = false\n ) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n // 禁用了不要做任何动作。@先注释掉,会引起其他问题\n // if (this.props.disabled) {\n // return;\n // }\n\n if (action.target && action.actionType !== 'reload') {\n const scoped = this.context as IScopedContext;\n\n return Promise.all(\n action.target.split(',').map(name => {\n let target = scoped.getComponentByName(name);\n return (\n target &&\n target.doAction &&\n target.doAction(\n {\n ...action,\n target: undefined\n },\n ctx,\n throwErrors\n )\n );\n })\n );\n } else {\n return super.handleAction(e, action, ctx, throwErrors, delegate);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n super.handleDialogConfirm(values, action, ctx, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n\n if (action.reload) {\n scoped.reload(action.reload, ctx);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, ctx);\n }\n }\n\n submitToTarget(target: string, values: object) {\n const scoped = this.context as IScopedContext;\n scoped.send(target, values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n\n reload(target?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const scoped = this.context as IScopedContext;\n let subPath: string = '';\n let idx: number;\n let subQuery: any = null;\n if (target && ~(idx = target.indexOf('.'))) {\n subPath = target.substring(idx + 1);\n target = target.substring(0, idx);\n }\n const idx2 = target ? target.indexOf('?') : -1;\n if (~idx2) {\n subQuery = dataMapping(\n qsparse((target as string).substring(idx2 + 1)),\n ctx\n );\n target = (target as string).substring(0, idx2);\n }\n\n let component;\n if (\n target &&\n (component = scoped.getComponentByName(target)) &&\n component.reload\n ) {\n component.reload(subPath, subQuery, ctx);\n } else if (target === '*') {\n super.reload(target, query, ctx, silent);\n const components = scoped.getComponents();\n components.forEach(\n (component: any) =>\n component.reload && component.reload('', subQuery, ctx)\n );\n } else {\n super.reload(target, query, ctx, silent);\n }\n }\n\n receive(values: object, name?: string) {\n if (name) {\n const scoped = this.context as IScopedContext;\n const idx = name.indexOf('.');\n let subPath = '';\n\n if (~idx) {\n subPath = name.substring(1 + idx);\n name = name.substring(0, idx);\n }\n\n const component = scoped.getComponentByName(name);\n component && component.receive && component.receive(values, subPath);\n return;\n }\n\n return super.receive(values);\n }\n}\n"
|
11
|
+
"import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Renderer, RendererProps} from '../../factory';\nimport {observer} from 'mobx-react';\nimport {FormStore, IFormStore} from '../../store/form';\nimport {Api, SchemaNode, Schema, Action, ApiObject, Payload} from '../../types';\nimport {filter, evalExpression} from '../../utils/tpl';\nimport cx from 'classnames';\nimport getExprProperties from '../../utils/filter-schema';\nimport {\n promisify,\n difference,\n until,\n noop,\n isObject,\n isVisible,\n cloneObject,\n SkipOperation,\n isEmpty,\n getVariable,\n isObjectShallowModified,\n qsparse\n} from '../../utils/helper';\nimport debouce from 'lodash/debounce';\nimport flatten from 'lodash/flatten';\nimport find from 'lodash/find';\nimport Scoped, {\n ScopedContext,\n IScopedContext,\n ScopedComponentType\n} from '../../Scoped';\nimport {IComboStore} from '../../store/combo';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport Spinner from '../../components/Spinner';\nimport {LazyComponent} from '../../components';\nimport {isAlive} from 'mobx-state-tree';\nimport {asFormItem} from './Item';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {trace} from 'mobx';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaDefaultData,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaRedirect,\n SchemaReload\n} from '../../Schema';\nimport {ActionSchema} from '../Action';\nimport {ButtonGroupControlSchema} from './ButtonGroupSelect';\nimport {DialogSchemaBase} from '../Dialog';\nimport Alert from '../../components/Alert2';\n\nexport interface FormSchemaHorizontal {\n left?: number;\n right?: number;\n leftFixed?: boolean | number | 'xs' | 'sm' | 'md' | 'lg';\n}\n\n/**\n * Form 表单渲染器。\n *\n * 说明:https://baidu.gitee.io/amis/docs/components/form/index\n */\nexport interface FormSchema extends BaseSchema {\n /**\n * 指定为表单渲染器。\n */\n type: 'form';\n\n /**\n * 表单标题\n */\n title?: string;\n\n /**\n * 按钮集合,会固定在底部显示。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 表单项集合\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 请用类型 tabs\n */\n tabs?: any;\n\n /**\n * @deprecated 请用类型 fieldSet\n */\n fieldSet?: any;\n\n data?: SchemaDefaultData;\n\n /**\n * 是否开启调试,开启后会在顶部实时显示表单项数据。\n */\n debug?: boolean;\n\n /**\n * 用来初始化表单数据\n */\n initApi?: SchemaApi;\n\n /**\n * Form 用来获取初始数据的 api,与initApi不同的是,会一直轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n initAsyncApi?: SchemaApi;\n\n /**\n * 设置了initAsyncApi后,默认会从返回数据的data.finished来判断是否完成,也可以设置成其他的xxx,就会从data.xxx中获取\n */\n initFinishedField?: string;\n\n /**\n * 设置了initAsyncApi以后,默认拉取的时间间隔\n */\n initCheckInterval?: number;\n\n /**\n * 是否初始加载\n */\n initFetch?: boolean;\n\n /**\n * 建议改成 api 的 sendOn 属性。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 设置后将轮询调用 initApi\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 配置停止轮询的条件\n */\n stopAutoRefreshWhen?: string;\n\n /**\n * 是否开启本地缓存\n */\n persistData?: string;\n\n /**\n * 提交成功后清空本地缓存\n */\n clearPersistDataAfterSubmit?: boolean;\n\n /**\n * Form 用来保存数据的 api。\n *\n * 详情:https://baidu.gitee.io/amis/docs/components/form/index#%E8%A1%A8%E5%8D%95%E6%8F%90%E4%BA%A4\n */\n api?: SchemaApi;\n\n /**\n * Form 也可以配置 feedback。\n */\n feedback?: DialogSchemaBase;\n\n /**\n * 设置此属性后,表单提交发送保存接口后,还会继续轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n asyncApi?: SchemaApi;\n\n /**\n * 轮询请求的时间间隔,默认为 3秒。设置 asyncApi 才有效\n */\n checkInterval?: number;\n\n /**\n * 如果决定结束的字段名不是 `finished` 请设置此属性,比如 `is_success`\n */\n finishedField?: string;\n\n /**\n * 提交完后重置表单\n */\n resetAfterSubmit?: boolean;\n\n /**\n * 提交后清空表单\n */\n clearAfterSubmit?: boolean;\n\n /**\n * 配置表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n horizontal?: FormSchemaHorizontal;\n\n /**\n * 是否自动将第一个表单元素聚焦。\n */\n autoFocus?: boolean;\n\n /**\n * 消息文案配置,记住这个优先级是最低的,如果你的接口返回了 msg,接口返回的优先。\n */\n messages?: {\n /**\n * 表单验证失败时的提示\n */\n validateFailed?: string;\n } & SchemaMessage;\n\n name?: SchemaName;\n\n /**\n * 配置容器 panel className\n */\n panelClassName?: SchemaClassName;\n\n /**\n * 设置主键 id, 当设置后,检测表单是否完成时(asyncApi),只会携带此数据。\n * @default id\n */\n primaryField?: string;\n\n redirect?: SchemaRedirect;\n\n reload?: SchemaReload;\n\n /**\n * 修改的时候是否直接提交表单。\n */\n submitOnChange?: boolean;\n\n /**\n * 表单初始先提交一次,联动的时候有用\n */\n submitOnInit?: boolean;\n\n /**\n * 默认的提交按钮名称,如果设置成空,则可以把默认按钮去掉。\n */\n submitText?: string;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n\n /**\n * 是否用 panel 包裹起来\n */\n wrapWithPanel?: boolean;\n\n /**\n * 是否固定底下的按钮在底部。\n */\n affixFooter?: boolean;\n\n /**\n * 页面离开提示,为了防止页面不小心跳转而导致表单没有保存。\n */\n promptPageLeave?: boolean;\n\n /**\n * 具体的提示信息,选填。\n */\n promptPageLeaveMessage?: string;\n\n /**\n * 组合校验规则,选填\n */\n rules?: Array<{\n rule: string;\n message: string;\n }>;\n\n /**\n * 禁用回车提交\n */\n preventEnterSubmit?: boolean;\n}\n\nexport type FormGroup = FormSchema & {\n title?: string;\n className?: string;\n};\nexport type FormGroupNode = FormGroup | FormGroupArray;\nexport interface FormGroupArray extends Array<FormGroupNode> {}\n\nexport type FormHorizontal = FormSchemaHorizontal;\n\nexport interface FormProps\n extends RendererProps,\n Omit<FormSchema, 'mode' | 'className'> {\n data: any;\n store: IFormStore;\n wrapperComponent: React.ElementType;\n canAccessSuperData: boolean;\n trimValues?: boolean;\n lazyLoad?: boolean;\n simpleMode?: boolean;\n onInit?: (values: object, props: any) => any;\n onReset?: (values: object) => void;\n onSubmit?: (values: object, action: any) => any;\n onChange?: (values: object, diff: object, props: any) => any;\n onFailed?: (reason: string, errors: any) => any;\n onFinished: (values: object, action: any) => any;\n onValidate: (values: object, form: any) => any;\n messages: {\n fetchSuccess?: string;\n fetchFailed?: string;\n saveSuccess?: string;\n saveFailed?: string;\n validateFailed?: string;\n };\n rules: Array<{\n rule: string;\n message: string;\n }>;\n lazyChange?: boolean; // 表单项的\n formLazyChange?: boolean; // 表单的\n}\nexport default class Form extends React.Component<FormProps, object> {\n static defaultProps = {\n title: 'Form.title',\n submitText: 'Form.submit',\n initFetch: true,\n wrapWithPanel: true,\n mode: 'normal',\n collapsable: false,\n controlWidth: 'full',\n horizontal: {\n left: 2,\n right: 10,\n offset: 2\n },\n panelClassName: 'Panel--default',\n messages: {\n fetchFailed: 'fetchFailed',\n saveSuccess: 'saveSuccess',\n saveFailed: 'saveFailed'\n },\n wrapperComponent: '',\n finishedField: 'finished',\n initFinishedField: 'finished'\n };\n static propsList: Array<string> = [\n 'title',\n 'header',\n 'controls',\n 'tabs',\n 'fieldSet',\n 'submitText',\n 'initFetch',\n 'wrapWithPanel',\n 'mode',\n 'collapsable',\n 'horizontal',\n 'panelClassName',\n 'messages',\n 'wrapperComponent',\n 'resetAfterSubmit',\n 'clearAfterSubmit',\n 'submitOnInit',\n 'submitOnChange',\n 'onInit',\n 'onReset',\n 'onSubmit',\n 'onChange',\n 'onFailed',\n 'onFinished',\n 'onSaved',\n 'canAccessSuperData',\n 'lazyChange',\n 'formLazyChange',\n 'lazyLoad',\n 'formInited',\n 'simpleMode',\n 'inputOnly',\n 'value',\n 'actions'\n ];\n\n hooks: {\n [propName: string]: Array<() => Promise<any>>;\n } = {};\n asyncCancel: () => void;\n disposeOnValidate: () => void;\n disposeRulesValidate: () => void;\n shouldLoadInitApi: boolean = false;\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n unBlockRouting?: () => void;\n constructor(props: FormProps) {\n super(props);\n\n this.onInit = this.onInit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleQuery = this.handleQuery.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDialogConfirm = this.handleDialogConfirm.bind(this);\n this.handleDialogClose = this.handleDialogClose.bind(this);\n this.handleDrawerConfirm = this.handleDrawerConfirm.bind(this);\n this.handleDrawerClose = this.handleDrawerClose.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.submit = this.submit.bind(this);\n this.addHook = this.addHook.bind(this);\n this.removeHook = this.removeHook.bind(this);\n this.emitChange = this.emitChange.bind(this);\n this.handleBulkChange = this.handleBulkChange.bind(this);\n this.renderFormItems = this.renderFormItems.bind(this);\n this.reload = this.reload.bind(this);\n this.silentReload = this.silentReload.bind(this);\n this.initInterval = this.initInterval.bind(this);\n this.blockRouting = this.blockRouting.bind(this);\n this.beforePageUnload = this.beforePageUnload.bind(this);\n\n const {store, canAccessSuperData, persistData, simpleMode} = props;\n\n store.setCanAccessSuperData(canAccessSuperData !== false);\n store.setPersistData(persistData);\n\n if (simpleMode) {\n store.setInited(true);\n }\n\n if (\n store &&\n store.parentStore &&\n store.parentStore.storeType === 'ComboStore'\n ) {\n const combo = store.parentStore as IComboStore;\n combo.addForm(store);\n combo.forms.forEach(form =>\n form.items.forEach(\n item => item.unique && item.syncOptions(undefined, form.data)\n )\n );\n }\n }\n\n componentDidMount() {\n const {\n initApi,\n initFetch,\n initFetchOn,\n initAsyncApi,\n initFinishedField,\n initCheckInterval,\n store,\n messages: {fetchSuccess, fetchFailed},\n onValidate,\n promptPageLeave,\n env,\n rules\n } = this.props;\n\n this.mounted = true;\n\n if (onValidate) {\n const finalValidate = promisify(onValidate);\n this.disposeOnValidate = this.addHook(async () => {\n const result = await finalValidate(store.data, store);\n\n if (result && isObject(result)) {\n Object.keys(result).forEach(key => {\n let msg = result[key];\n const items = store.getItemsByPath(key);\n\n // 没有找到\n if (!Array.isArray(items) || !items.length) {\n return;\n }\n\n // 在setError之前,提前把残留的error信息清除掉,否则每次onValidate后都会一直把报错 append 上去\n items.forEach(item => item.clearError());\n\n if (msg) {\n msg = Array.isArray(msg) ? msg : [msg];\n items.forEach(item => item.addError(msg));\n }\n\n delete result[key];\n });\n\n isEmpty(result)\n ? store.clearRestError()\n : store.setRestError(Object.keys(result).map(key => result[key]));\n }\n });\n }\n\n if (Array.isArray(rules) && rules.length) {\n this.disposeRulesValidate = this.addHook(() => {\n if (!store.valid) {\n return;\n }\n\n rules.forEach(\n item =>\n !evalExpression(item.rule, store.data) &&\n store.addRestError(item.message)\n );\n });\n }\n\n if (isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(initApi as any, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n initCheckInterval\n );\n }\n })\n .then(this.initInterval)\n .then(this.onInit);\n } else {\n setTimeout(this.onInit.bind(this), 4);\n }\n\n if (promptPageLeave) {\n window.addEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting = env.blockRouting?.(this.blockRouting) ?? undefined;\n }\n }\n\n componentDidUpdate(prevProps: FormProps) {\n const props = this.props;\n const store = props.store;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n const {fetchSuccess, fetchFailed} = props;\n\n store[store.hasRemoteData ? 'fetchData' : 'fetchInitData'](\n props.initApi as Api,\n store.data,\n {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n }\n ).then(this.initInterval);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n // this.lazyHandleChange.flush();\n this.lazyEmitChange.cancel();\n this.asyncCancel && this.asyncCancel();\n this.disposeOnValidate && this.disposeOnValidate();\n this.disposeRulesValidate && this.disposeRulesValidate();\n window.removeEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting?.();\n }\n\n blockRouting(): any {\n const store = this.props.store;\n const {promptPageLeaveMessage, promptPageLeave} = this.props;\n\n if (promptPageLeave && store.modified) {\n return promptPageLeaveMessage || '新的修改没有保存,确认要离开?';\n }\n }\n\n beforePageUnload(e: any): any {\n const blocked = this.blockRouting();\n\n if (blocked) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n\n async onInit() {\n const {onInit, store, persistData, submitOnInit} = this.props;\n if (!isAlive(store)) {\n return;\n }\n\n // 先拿出来数据,主要担心 form 被什么东西篡改了,然后又应用出去了\n // 之前遇到过问题,所以拿出来了。但是 options loadOptions 默认值失效了。\n // 所以目前需要两个都要设置一下,再 init Hook 里面。\n let data = cloneObject(store.data);\n const initedAt = store.initedAt;\n\n store.setInited(true);\n const hooks: Array<(data: any) => Promise<any>> = this.hooks['init'] || [];\n await Promise.all(hooks.map(hook => hook(data)));\n\n if (!isAlive(store)) {\n return;\n }\n\n if (store.initedAt !== initedAt) {\n // 说明,之前的数据已经失效了。\n // 比如 combo 一开始设置了初始值,然后 form 的 initApi 又返回了新的值。\n // 这个时候 store 的数据应该已经 init 了新的值。但是 data 还是老的,这个时候\n // onInit 出去就是错误的。\n data = {\n ...data,\n ...store.data\n };\n }\n\n persistData && store.getLocalPersistData();\n\n onInit && onInit(data, this.props);\n\n submitOnInit &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n reload(subPath?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n store,\n initApi,\n initAsyncApi,\n initFinishedField,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n isEffectiveApi(initAsyncApi, store.data) &&\n store.updateData({\n [initFinishedField || 'finished']: false\n });\n\n isEffectiveApi(initApi, store.data)\n ? store\n .fetchInitData(initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n silent,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n );\n }\n })\n .then((result: Payload) => {\n if (result?.ok) {\n this.initInterval(result);\n store.reset(undefined, false);\n }\n })\n : store.reset(undefined, false);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n isValidated() {\n return this.props.store.validated;\n }\n\n validate(forceValidate?: boolean): Promise<boolean> {\n const {store} = this.props;\n\n this.flush();\n return store.validate(this.hooks['validate'] || [], forceValidate);\n }\n\n clearErrors() {\n const {store} = this.props;\n\n return store.clearErrors();\n }\n\n getValues() {\n const {store} = this.props;\n this.flush();\n return store.data;\n }\n\n setValues(value: any) {\n const {store} = this.props;\n this.flush();\n store.setValues(value);\n }\n\n submit(fn?: (values: object) => Promise<any>): Promise<any> {\n const {store, messages, translate: __} = this.props;\n this.flush();\n\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed)\n );\n }\n\n // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。\n flush() {\n const hooks = this.hooks['flush'] || [];\n hooks.forEach(fn => fn());\n this.lazyEmitChange.flush();\n }\n\n reset() {\n const {store, onReset} = this.props;\n store.reset(onReset);\n }\n\n addHook(fn: () => any, type: 'validate' | 'init' | 'flush' = 'validate') {\n this.hooks[type] = this.hooks[type] || [];\n this.hooks[type].push(type === 'flush' ? fn : promisify(fn));\n return () => {\n this.removeHook(fn, type);\n fn = noop;\n };\n }\n\n removeHook(fn: () => any, type: string = 'validate') {\n const hooks = this.hooks[type];\n\n if (!hooks) {\n return;\n }\n\n for (let i = 0, len = hooks.length; i < len; i++) {\n let hook = hooks[i];\n\n if (hook === fn || (hook as any).raw === fn) {\n hooks.splice(i, 1);\n len--;\n i--;\n }\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit: boolean,\n changePristine = false\n ) {\n const {store, formLazyChange} = this.props;\n\n if (typeof name !== 'string') {\n return;\n }\n\n store.changeValue(name, value, changePristine);\n\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData) {\n store.setLocalPersistData();\n }\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n\n onChange &&\n onChange(store.data, difference(store.data, store.pristine), this.props);\n\n store.clearRestError();\n\n (submit || (submitOnChange && store.inited)) &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n handleBulkChange(values: Object, submit: boolean) {\n const {onChange, store, formLazyChange} = this.props;\n\n store.updateData(values);\n\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);\n }\n\n handleFormSubmit(e: React.UIEvent<any>) {\n const {preventEnterSubmit} = this.props;\n\n e.preventDefault();\n if (preventEnterSubmit) {\n return false;\n }\n\n return this.handleAction(\n e,\n {\n type: 'submit'\n },\n this.props.store.data\n );\n }\n\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ): any {\n const {\n store,\n onSubmit,\n api,\n asyncApi,\n finishedField,\n checkInterval,\n messages: {saveSuccess, saveFailed},\n resetAfterSubmit,\n clearAfterSubmit,\n onAction,\n onSaved,\n onReset,\n onFinished,\n onFailed,\n redirect,\n reload,\n target,\n env,\n onChange,\n clearPersistDataAfterSubmit,\n trimValues,\n translate: __\n } = this.props;\n\n // 做动作之前,先把数据同步一下。\n this.flush();\n\n if (trimValues) {\n store.trimValues();\n }\n\n // 如果 data 就是当前层,则 flush 一下。\n if (data === this.props.data) {\n data = store.data;\n }\n\n if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n env.notify('error', __('Form.validateFailed'));\n } else {\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\n );\n }\n });\n }\n\n if (\n action.type === 'submit' ||\n action.actionType === 'submit' ||\n action.actionType === 'confirm' ||\n action.actionType === 'reset-and-submit' ||\n action.actionType === 'clear-and-submit'\n ) {\n store.setCurrentAction(action);\n\n if (action.actionType === 'reset-and-submit') {\n store.reset(onReset);\n } else if (action.actionType === 'clear-and-submit') {\n store.clear(onReset);\n }\n\n return this.submit((values): any => {\n if (onSubmit && onSubmit(values, action) === false) {\n return Promise.resolve(false);\n }\n\n if (target) {\n this.submitToTarget(target, values);\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, values);\n } else if (action.actionType === 'dialog') {\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.openDrawer(data);\n } else if (isEffectiveApi(action.api || api, values)) {\n let finnalAsyncApi = action.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n return store\n .saveRemote(action.api || (api as Api), values, {\n successMessage: saveSuccess,\n errorMessage: saveFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n checkInterval\n );\n }\n })\n .then(async response => {\n onSaved && onSaved(values, response);\n const feedback = action.feedback || this.props.feedback;\n\n // submit 也支持 feedback\n if (feedback && isVisible(feedback, store.data)) {\n const confirmed = await this.openFeedback(feedback, store.data);\n\n // 如果 feedback 配置了,取消就跳过原有逻辑。\n if (feedback.skipRestOnCancel && !confirmed) {\n throw new SkipOperation();\n } else if (feedback.skipRestOnConfirm && confirmed) {\n throw new SkipOperation();\n }\n }\n\n // return values;\n });\n }\n\n return Promise.resolve(null);\n })\n .then(values => {\n // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。\n if (values === false) {\n return store.data;\n }\n\n if (onFinished && onFinished(values, action) === false) {\n return values;\n }\n\n resetAfterSubmit && store.reset(onReset);\n clearAfterSubmit && store.clear(onReset);\n clearPersistDataAfterSubmit && store.clearLocalPersistData();\n\n if (action.redirect || redirect) {\n const finalRedirect = filter(\n action.redirect || redirect,\n store.data\n );\n finalRedirect && env.jumpTo(finalRedirect, action);\n } else if (action.reload || reload) {\n this.reloadTarget(action.reload || reload!, store.data);\n }\n\n action.close && this.closeTarget(action.close);\n return values;\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n\n onFailed && onFailed(reason, store.errors);\n\n if (throwErrors) {\n throw reason;\n }\n });\n } else if (action.type === 'reset' || action.actionType === 'reset') {\n store.setCurrentAction(action);\n store.reset(onReset);\n } else if (action.actionType === 'clear') {\n store.setCurrentAction(action);\n store.clear(onReset);\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.setCurrentAction(action);\n store.openDrawer(data);\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n if (!isEffectiveApi(action.api)) {\n return env.alert(__(`当 actionType 为 ajax 时,请设置 api 属性`));\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: __(\n (action.messages && action.messages.success) || saveSuccess\n ),\n errorMessage: __(\n (action.messages && action.messages.failed) || saveFailed\n )\n })\n .then(async response => {\n response &&\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n if (store.validated) {\n await this.validate(true);\n }\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n onFailed && onFailed(e, store.errors);\n if (throwErrors) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload') {\n store.setCurrentAction(action);\n action.target && this.reloadTarget(action.target, data);\n } else if (onAction) {\n // 不识别的丢给上层去处理。\n return onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n handleQuery(query: any) {\n if (this.props.initApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n const {store, onChange} = this.props;\n\n if (\n (action.mergeData || store.action.mergeData) &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n this.handleBulkChange(values[0], false);\n }\n\n store.closeDialog(true);\n }\n\n handleDialogClose() {\n const {store} = this.props;\n store.closeDialog(false);\n }\n\n handleDrawerConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n const {store, onChange} = this.props;\n\n if (\n (action.mergeData || store.action.mergeData) &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n store.updateData(values[0]);\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n }\n\n store.closeDrawer(true);\n }\n\n handleDrawerClose() {\n const {store} = this.props;\n store.closeDrawer(false);\n }\n\n submitToTarget(target: string, values: object) {\n // 会被覆写\n }\n\n reloadTarget(target: string, data?: any) {\n // 会被覆写\n }\n\n closeTarget(target: string) {\n // 会被覆写\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n });\n }\n\n buildActions() {\n const {actions, submitText, body, translate: __} = this.props;\n\n if (\n typeof actions !== 'undefined' ||\n !submitText ||\n (Array.isArray(body) &&\n body.some(\n item =>\n item &&\n !!~['submit', 'button', 'button-group', 'reset'].indexOf(\n (item as any)?.body?.[0]?.type ||\n (item as any)?.body?.type ||\n (item as SchemaObject).type\n )\n ))\n ) {\n return actions;\n }\n\n return [\n {\n type: 'submit',\n label: __(submitText),\n primary: true\n }\n ];\n }\n\n renderFormItems(\n schema: Partial<FormSchema> & {\n controls?: Array<any>;\n },\n region: string = '',\n otherProps: Partial<FormProps> = {}\n ): React.ReactNode {\n let body: Array<any> = Array.isArray(schema.body)\n ? schema.body\n : schema.body\n ? [schema.body]\n : [];\n\n // 旧用法,让 wrapper 走走 compat 逻辑兼容旧用法\n // 后续可以删除。\n if (!body.length && schema.controls) {\n console.warn('请用 body 代替 controls');\n body = [\n {\n size: 'none',\n type: 'wrapper',\n wrap: false,\n controls: schema.controls\n }\n ];\n }\n\n return this.renderChildren(body, region, otherProps);\n }\n\n renderChildren(\n children: Array<any>,\n region: string,\n otherProps: Partial<FormProps> = {}\n ): React.ReactNode {\n children = children || [];\n\n if (!Array.isArray(children)) {\n children = [children];\n }\n\n if (this.props.mode === 'row') {\n const ns = this.props.classPrefix;\n\n children = flatten(children).filter(item => {\n if ((item as Schema).hidden || (item as Schema).visible === false) {\n return false;\n }\n\n const exprProps = getExprProperties(\n item as Schema,\n this.props.store.data,\n undefined,\n this.props\n );\n if (exprProps.hidden || exprProps.visible === false) {\n return false;\n }\n\n return true;\n });\n\n if (!children.length) {\n return null;\n }\n\n return (\n <div className={`${ns}Form-row`}>\n {children.map((control, key) =>\n ~['hidden', 'formula'].indexOf((control as any).type) ||\n (control as any).mode === 'inline' ? (\n this.renderChild(control, key, otherProps)\n ) : (\n <div\n key={key}\n className={cx(\n `${ns}Form-col`,\n (control as Schema).columnClassName\n )}\n >\n {this.renderChild(control, '', {\n ...otherProps,\n mode: 'row'\n })}\n </div>\n )\n )}\n </div>\n );\n }\n\n return children.map((control, key) =>\n this.renderChild(control, key, otherProps, region)\n );\n }\n\n renderChild(\n control: SchemaNode,\n key: any = '',\n otherProps: Partial<FormProps> = {},\n region: string = ''\n ): React.ReactNode {\n if (!control) {\n return null;\n } else if (typeof control === 'string') {\n control = {\n type: 'tpl',\n tpl: control\n };\n }\n\n const props = {\n ...this.props,\n ...otherProps\n };\n const form = this.props.store;\n const {\n render,\n mode,\n horizontal,\n store,\n disabled,\n controlWidth,\n resolveDefinitions,\n lazyChange,\n formLazyChange\n } = props;\n\n const subProps = {\n formStore: form,\n data: store.data,\n key: `${(control as Schema).name || ''}-${\n (control as Schema).type\n }-${key}`,\n formInited: form.inited,\n formSubmited: form.submited,\n formMode: mode,\n formHorizontal: horizontal,\n controlWidth,\n disabled: disabled || (control as Schema).disabled || form.loading,\n btnDisabled: form.loading || form.validating,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n onChange: this.handleChange,\n onBulkChange: this.handleBulkChange,\n addHook: this.addHook,\n removeHook: this.removeHook,\n renderFormItems: this.renderFormItems,\n formPristine: form.pristine\n // value: (control as any)?.name\n // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)\n // : (control as any)?.value,\n // defaultValue: (control as any)?.value\n };\n\n let subSchema: any = {\n ...control\n };\n\n if (subSchema.$ref) {\n subSchema = {\n ...resolveDefinitions(subSchema.$ref),\n ...subSchema\n };\n }\n\n lazyChange === false && (subSchema.changeImmediately = true);\n return render(`${region ? `${region}/` : ''}${key}`, subSchema, subProps);\n }\n\n renderBody() {\n const {\n body,\n mode,\n className,\n classnames: cx,\n debug,\n $path,\n store,\n render\n } = this.props;\n\n const {restError} = store;\n\n const WrapperComponent =\n this.props.wrapperComponent ||\n (/(?:\\/|^)form\\//.test($path as string) ? 'div' : 'form');\n\n return (\n <WrapperComponent\n className={cx(`Form`, `Form--${mode || 'normal'}`, className)}\n onSubmit={this.handleFormSubmit}\n noValidate\n >\n {/* 实现回车自动提交 */}\n <input type=\"submit\" style={{display: 'none'}} />\n\n {debug ? (\n <pre>\n <code>{JSON.stringify(store.data, null, 2)}</code>\n </pre>\n ) : null}\n\n <Spinner show={store.loading} overlay />\n\n {this.renderFormItems({\n body\n })}\n\n {/* 显示没有映射上的 errors */}\n {restError && restError.length ? (\n <ul className={cx('Form-restError', 'Form-feedback')}>\n {restError.map((item, idx) => (\n <li key={idx}>{item}</li>\n ))}\n </ul>\n ) : null}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).dialog as object)),\n type: 'dialog'\n },\n {\n key: 'dialog',\n data: store.dialogData,\n onConfirm: this.handleDialogConfirm,\n onClose: this.handleDialogClose,\n show: store.dialogOpen\n }\n )}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).drawer as object)),\n type: 'drawer'\n },\n {\n key: 'drawer',\n data: store.drawerData,\n onConfirm: this.handleDrawerConfirm,\n onClose: this.handleDrawerClose,\n show: store.drawerOpen\n }\n )}\n </WrapperComponent>\n );\n }\n\n render() {\n const {\n $path,\n $schema,\n wrapWithPanel,\n render,\n title,\n store,\n panelClassName,\n headerClassName,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n classnames: cx,\n affixFooter,\n lazyLoad,\n translate: __,\n footer,\n formStore\n } = this.props;\n\n let body: JSX.Element = this.renderBody();\n\n if (wrapWithPanel) {\n body = render(\n 'body',\n {\n type: 'panel',\n title: __(title)\n },\n {\n className: cx(panelClassName, 'Panel--form'),\n formStore: this.props.store,\n children: body,\n actions: this.buildActions(),\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n disabled: store.loading,\n btnDisabled: store.loading || store.validating,\n headerClassName,\n footer,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n affixFooter\n }\n ) as JSX.Element;\n }\n\n if (lazyLoad) {\n body = <LazyComponent>{body}</LazyComponent>;\n }\n\n return body;\n }\n}\n\n@Renderer({\n type: 'form',\n storeType: FormStore.name,\n isolateScope: true,\n shouldSyncSuperStore: (store, props, prevProps) => {\n // 如果是 QuickEdit,让 store 同步 __super 数据。\n if (\n props.quickEditFormRef &&\n props.onQuickChange &&\n (isObjectShallowModified(prevProps.data, props.data) ||\n isObjectShallowModified(prevProps.data.__super, props.data.__super) ||\n isObjectShallowModified(\n prevProps.data.__super?.__super,\n props.data.__super?.__super\n ))\n ) {\n return true;\n }\n\n return undefined;\n }\n})\nexport class FormRenderer extends Form {\n static contextType = ScopedContext;\n\n constructor(props: FormProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n if (this.props.autoFocus) {\n const scoped = this.context as IScopedContext;\n const inputs = scoped.getComponents();\n let focuableInput = find(\n inputs,\n input => input.focus\n ) as ScopedComponentType;\n focuableInput && setTimeout(() => focuableInput.focus!(), 200);\n }\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n\n super.componentWillUnmount();\n }\n\n doAction(\n action: Action,\n data: object = this.props.store.data,\n throwErrors: boolean = false\n ) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n // 禁用了不要做任何动作。@先注释掉,会引起其他问题\n // if (this.props.disabled) {\n // return;\n // }\n\n if (action.target && action.actionType !== 'reload') {\n const scoped = this.context as IScopedContext;\n\n return Promise.all(\n action.target.split(',').map(name => {\n let target = scoped.getComponentByName(name);\n return (\n target &&\n target.doAction &&\n target.doAction(\n {\n ...action,\n target: undefined\n },\n ctx,\n throwErrors\n )\n );\n })\n );\n } else {\n return super.handleAction(e, action, ctx, throwErrors, delegate);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n super.handleDialogConfirm(values, action, ctx, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n\n if (action.reload) {\n scoped.reload(action.reload, ctx);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, ctx);\n }\n }\n\n submitToTarget(target: string, values: object) {\n const scoped = this.context as IScopedContext;\n scoped.send(target, values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n\n reload(target?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const scoped = this.context as IScopedContext;\n let subPath: string = '';\n let idx: number;\n let subQuery: any = null;\n if (target && ~(idx = target.indexOf('.'))) {\n subPath = target.substring(idx + 1);\n target = target.substring(0, idx);\n }\n const idx2 = target ? target.indexOf('?') : -1;\n if (~idx2) {\n subQuery = dataMapping(\n qsparse((target as string).substring(idx2 + 1)),\n ctx\n );\n target = (target as string).substring(0, idx2);\n }\n\n let component;\n if (\n target &&\n (component = scoped.getComponentByName(target)) &&\n component.reload\n ) {\n component.reload(subPath, subQuery, ctx);\n } else if (target === '*') {\n super.reload(target, query, ctx, silent);\n const components = scoped.getComponents();\n components.forEach(\n (component: any) =>\n component.reload && component.reload('', subQuery, ctx)\n );\n } else {\n super.reload(target, query, ctx, silent);\n }\n }\n\n receive(values: object, name?: string) {\n if (name) {\n const scoped = this.context as IScopedContext;\n const idx = name.indexOf('.');\n let subPath = '';\n\n if (~idx) {\n subPath = name.substring(1 + idx);\n name = name.substring(0, idx);\n }\n\n const component = scoped.getComponentByName(name);\n component && component.receive && component.receive(values, subPath);\n return;\n }\n\n return super.receive(values);\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -307,9 +307,9 @@ function wrapControl(ComposedComponent) {
|
|
307
307
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, name, submitOnChange === true);
|
308
308
|
if (
|
309
309
|
// 如果配置了 minLength 或者 maxLength 就切成及时验证
|
310
|
-
|
311
|
-
|
312
|
-
|
310
|
+
(typeof maxLength && maxLength) ||
|
311
|
+
(typeof minLength && minLength) ||
|
312
|
+
validateOnChange === true ||
|
313
313
|
(validateOnChange !== false && (formSubmited || validated))) {
|
314
314
|
this.validate();
|
315
315
|
}
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/wrapControl.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": ";;;;AAAA,6DAA0B;AAE1B,0EAAsC;AAGtC,2CAAwE;AACxE,6CAQ4B;AAE5B,uCAA2D;AAE3D,iDAAmD;AACnD,mDAAwC;AACxC,yCAAoC;AACpC,iGAA0D;AAC1D,qDAAkD;AAkDlD,SAAgB,WAAW,CAEzB,iBAAoB;;IAOpB,IAAM,MAAM,GAAG,IAAA,iCAAmB,EAChC,IAAA,6BAAa,EACX,IAAA,qBAAQ;YACQ,wCAA2B;YAiBvC,iBAAY,KAAiB;;gBAA7B,YACE,kBAAM,KAAK,CAAC,SAmGb;gBAlHD,WAAK,GAAS,SAAS,CAAC;gBASxB,oBAAc,GAAG,IAAA,kBAAO,EAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,EAAE,GAAG,EAAE;oBACxD,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAKK,IAAA,KA6BF,KAAI,CAAC,KAAK,EA5BD,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,eAqBC,EApBC,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,SAAS,eAEC,CAAC;gBAEf,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACzC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACzC,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACjD,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAC3D,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAC7C,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAE7C,IAAI,CAAC,IAAI,EAAE;;iBAEV;gBAED,IAAI,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACjC,IAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC/B,EAAE,EAAE,IAAA,aAAI,GAAE;oBACV,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK;oBACtB,SAAS,EAAE,wBAAa,CAAC,IAAI;oBAC7B,QAAQ,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE;oBACnB,IAAI,MAAA;iBACL,CAAmB,CAAC;gBACrB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,gBAAgB;gBAChB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,CAAC;oBACX,EAAE,IAAA;oBACF,IAAI,MAAA;oBACJ,QAAQ,UAAA;oBACR,MAAM,QAAA;oBACN,KAAK,OAAA;oBACL,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,UAAA;oBACR,SAAS,WAAA;oBACT,UAAU,YAAA;oBACV,UAAU,YAAA;oBACV,UAAU,YAAA;oBACV,YAAY,cAAA;oBACZ,WAAW,aAAA;oBACX,QAAQ,UAAA;oBACR,kBAAkB,oBAAA;oBAClB,WAAW,aAAA;oBACX,SAAS,WAAA;oBACT,SAAS,WAAA;iBACV,CAAC,CAAC;gBAEH,8BAA8B;gBAC9B,IACE,KAAI,CAAC,KAAK,CAAC,MAAM;oBACjB,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,0CAAE,SAAS,MAAK,kBAAU,CAAC,IAAI,EAChD;oBACA,IAAM,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;oBAC9C,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBAC9B;gBAED,WAAW;gBACX,KAAK,CAAC,cAAc,CAClB,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,KAAK,CACxD,CAAC;gBAEF,2BAA2B;gBAC3B,IACE,QAAQ;oBACR,OAAO,SAAS,KAAK,WAAW;oBAChC,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,KAAK,WAAW,EAC/D;oBACA,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBACnD;;YACH,CAAC;YAED,mCAAiB,GAAjB;gBAAA,iBA+BC;gBA9BO,IAAA,KAKF,IAAI,CAAC,KAAK,EAJZ,KAAK,WAAA,EACM,IAAI,eAAA,EACf,eAAyB,EAAf,IAAI,UAAA,EAAE,QAAQ,cAAA,EACxB,OAAO,aACK,CAAC;gBAEf,0BAA0B;gBAC1B,IAAI,CAAC,KAAK,GAAG;oBACX,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC,CAAC;gBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE/B,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAuB,CAAC;gBAC9C,IAAI,QAAQ,IAAI,QAAQ,EAAE;oBACxB,IAAI,eAAa,GAAG,IAAA,kBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,GAAG;wBACX,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;wBACxC,OAAO,eAAa,CAClB,KAAI,CAAC,KAAK,CAAC,IAAI,EACf,KAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CACL,CAAC,IAAI,CAAC,UAAC,GAAQ;4BACd,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;gCAC1D,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;6BAC5C;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC;oBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,CAAC;iBACvB;YACH,CAAC;YAED,oCAAkB,GAAlB,UAAmB,SAAqB;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEzB,IACE,KAAK;oBACL,IAAA,mBAAU,EACR;wBACE,IAAI;wBACJ,aAAa;wBACb,kBAAkB;wBAClB,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,UAAU;wBACV,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,UAAU;wBACV,oBAAoB;wBACpB,aAAa;qBACd,EACD,SAAS,CAAC,OAAO,EACjB,KAAK,CAAC,OAAO,CACd,EACD;oBACA,KAAK,CAAC,MAAM,CAAC;wBACX,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;wBACpB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;wBAC5B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;wBAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;wBAClC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;wBACxC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;wBACxC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBACtC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB;wBACpD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBACtC,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC3B,CAAC,CAAC;iBACJ;gBAED,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE;oBAC/C,iBAAiB;oBACjB,IACE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;wBAC/B,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAC9B;wBACA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACnC;iBACF;qBAAM;gBACL,yBAAyB;gBACzB,KAAK;oBACL,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;oBAC7B,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,QAAQ,CAAC,EAC5D;oBACA,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1D,IACE,CAAC,KAAK,KAAK,SAAS;wBAClB,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;4BACxC,IAAA,oBAAW,EAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACnD,KAAK,KAAK,KAAK,CAAC,QAAQ,EACxB;wBACA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;qBAC7B;iBACF;YACH,CAAC;YAED,sCAAoB,GAApB;;gBACE,IAAI,CAAC,IAAI,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC;gBAChD,IAAI,CAAC,KAAK,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC;gBAClD,IAAI,CAAC,KAAK,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA,CAAC;gBAC3D,+BAA+B;gBAE/B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAA,IAAI,CAAC,QAAQ,+CAAb,IAAI,CAAa,CAAC;gBAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC;YAED,8BAAY,GAAZ;;gBACQ,IAAA,KAAyC,IAAI,CAAC,KAAK,EAAvC,IAAI,eAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAc,CAAC;gBAE1D,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,MAAM;qBACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA;oBACjB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,SAAS,MAAK,kBAAU,CAAC,IAAI,EAC/C;oBACA,IAAM,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;oBAC9C,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACrC;gBAED,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,QAAQ;wBACN,IAAA,yBAAO,EAAC,QAAQ,CAAC;wBACjB,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEzC,IAAI,CAAC,KAAK,CAAC,kBAAkB;yBAC3B,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC;oBAEtD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;YAED,4BAAU,GAAV,UAAW,OAAY;gBAAvB,iBAkDC;gBAjDO,IAAA,KAKF,IAAI,CAAC,KAAK,EAJZ,OAAO,aAAA,EACP,UAAU,gBAAA,EACC,IAAI,eAAA,EACL,IAAI,kBACF,CAAC;gBAEf,8BAA8B;gBAC9B,OAAO,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE;oBAC5C,OAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;iBACxC;gBAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC7C,IAAM,UAAQ,GAAG,IAAI,CAAC,KAAuB,CAAC;oBAC9C,IAAI,UAAQ,GAAG,IAAA,kBAAS,EAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,IAAI,GAAG;wBACV,UAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;wBAE1C,OAAO,UAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAC1D,UAAA,GAAG;4BACD,IACE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC/C,GAAG,EACH;gCACA,UAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;6BAC9C;wBACH,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC;oBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;qBAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;oBAChC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;iBACvB;gBAED,eAAe;gBACf,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAyB,CAAC;gBAE9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjB,OAAO;iBACR;gBAED,IAAI,OAAO,EAAE;oBACX,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACxC;qBAAM;oBACL,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;iBACvC;YACH,CAAC;YAED,0BAAQ,GAAR;gBAAA,iBAqBC;gBApBO,IAAA,KAA0B,IAAI,CAAC,KAAK,EAAxB,IAAI,eAAA,EAAE,IAAI,UAAc,CAAC;gBAE3C,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IACE,IAAI,CAAC,KAAK,CAAC,MAAM;yBACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA;wBACjB,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,kBAAU,CAAC,IAAI,EAC9C;wBACA,IAAM,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;wBAC9C,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CACA,CAAC;wBAClB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAC;qBAClD;yBAAM;wBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CACA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAC/B,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA1C,CAA0C,CAAC,CAAC;qBAChE;iBACF;YACH,CAAC;YAED,8BAAY,GAAZ,UACE,KAAU,EACV,cAA2D,EAC3D,iBAAkC;gBADlC,+BAAA,EAAA,iBAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc;gBAC3D,kCAAA,EAAA,yBAAkC;gBAE5B,IAAA,KAUF,IAAI,CAAC,KAAK,EATD,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,eAIC,EAHC,IAAI,UAAA,EACJ,OAAO,aAAA,EACY,uBAAuB,uBAAA,EAE5C,UAAU,gBAAA,EACV,IAAI,UACQ,CAAC;gBAEf,IACE,CAAC,IAAI,CAAC,KAAK;oBACX,qBAAqB;oBACrB,CAAC;wBACC,SAAS;wBACT,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,MAAM;wBACN,aAAa;qBACd,CAAC,OAAO,CAAC,IAAI,CAAC,EACf;oBACA,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;oBACnD,OAAO;iBACR;gBAED,IAAI,OAAO,EAAE;oBACX,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,iBAAiB,IAAI,uBAAuB,IAAI,CAAC,UAAU,EAAE;oBAC/D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;iBACjC;qBAAM;oBACL,yDAAyD;oBACzD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;iBACrC;YACH,CAAC;YAED,4BAAU,GAAV,UACE,cAA2D;;gBAA3D,+BAAA,EAAA,iBAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc;gBAErD,IAAA,KAOF,IAAI,CAAC,KAAK,EAND,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,eAAiE,EAAvD,IAAI,UAAA,EAAY,gBAAgB,cAAA,EAAE,SAAS,eAAA,EAAE,SAAS,eAAA,EAChE,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,YAAY,kBACA,CAAC;gBAEf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO;iBACR;gBACD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAClC,IAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAE3D,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACtB,OAAO;iBACR;gBAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACpC,IACE,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAK,KAAK,EAC/D;oBACA,OAAO;iBACR;gBACD,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACvC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,EAAE,IAAK,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;gBAElD;gBACE,uCAAuC;gBACvC,CAAC,OAAO,SAAS,IAAI,SAAS,CAAC;oBAC/B,CAAC,OAAO,SAAS,IAAI,SAAS,CAAC;oBAC/B,gBAAgB,KAAK,IAAI;oBACzB,CAAC,gBAAgB,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,EAC3D;oBACA,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;qBAAM,IAAI,gBAAgB,KAAK,KAAK,EAAE;oBACrC,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAC;iBACrB;YACH,CAAC;YAED,4BAAU,GAAV,UAAW,CAAM;gBACT,IAAA,KAGF,IAAI,CAAC,KAAK,EAFZ,MAAM,YAAA,EACI,cAAc,4BACZ,CAAC;gBAEf,IAAI,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE;oBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;gBAED,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;YAED,mCAAiB,GAAjB,UAAkB,KAAU;gBAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO;iBACR;gBAEK,IAAA,KAOF,IAAI,CAAC,KAAK,EAND,IAAI,eAAA,EACf,IAAI,UAAA,EACM,OAAO,qBAAA,EACjB,QAAQ,cAAA,EACD,QAAQ,WAAA,EACf,IAAI,UACQ,CAAC;gBAEf,IAAI,OAAO,EAAE;oBACX,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,EAAE,IAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YAED,0BAAQ,GAAR;gBACQ,IAAA,KAAsC,IAAI,CAAC,KAAK,EAApC,IAAI,eAAA,EAAW,OAAO,aAAc,CAAC;gBACvD,IAAI,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAElE,IAAI,OAAO,CAAC,MAAM,EAAE;oBAClB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBACrC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YAED,+BAA+B;YAC/B,0BAAQ,GAAR,UAAS,KAAU,EAAE,GAAY;;gBACzB,IAAA,KAGF,IAAI,CAAC,KAAK,EAFF,IAAI,kBAAA,EACd,YAAY,kBACA,CAAC;gBAEf,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE;oBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAC1B;qBAAM;oBACL,YAAY;wBACV,YAAY;4BACV,GAAC,GAAG,IAAG,KAAK;gCACZ,CAAC;iBACN;YACH,CAAC;YAED,wBAAM,GAAN;gBACQ,IAAA,KAQF,IAAI,CAAC,KAAK,EAPZ,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,QAAQ,cAAA,EACC,OAAO,aAAA,EAChB,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,SAAS,eACG,CAAC;gBAEf,IAAI,SAAS,EAAE;oBACb,OAAO,IAAI,CAAC;iBACb;gBAED,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEzB,IAAM,aAAa,GAAQ;oBACzB,WAAW,EAAE,YAAY;oBACzB,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ;oBACtC,QAAQ,EAAE,IAAI,CAAC,KAAK;oBACpB,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;oBAClC,GAAG,EAAE,IAAI,CAAC,UAAU;oBACpB,IAAI,EAAE,IAAI,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA;oBACzB,KAAK,OAAA;oBACL,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAE3B,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC9C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC;gBAEF,OAAO,CACL,8BAAC,iBAAiB,4BACX,IAAI,CAAC,KAGR,EACE,aAAa,EACjB,CACH,CAAC;YACJ,CAAC;YACH,cAAC;QAAD,CAAC,AAhiBD,CAAc,eAAK,CAAC,SAAS;QASpB,cAAW,GAAG,sBAAc;QAC5B,eAAY,GAAG,EAAG;YAuhBrB,CACT,EACD,iBAAiB,CAClB,CAAC;IAEF,OAAO,MAEN,CAAC;AACJ,CAAC;AArjBD,kCAqjBC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n anyChanged,\n promisify,\n isObject,\n guid,\n isEmpty,\n autobind,\n getVariable\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\n\nexport interface ControlOutterProps extends RendererProps {\n formStore?: IFormStore;\n name?: string;\n value?: any;\n id?: string;\n type?: string;\n required?: boolean;\n validations: string | {[propsName: string]: any};\n validationErrors: {[propsName: string]: any};\n validateOnChange: boolean;\n multiple?: boolean;\n delimiter?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n valueField?: string;\n labelField?: string;\n unique?: boolean;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: Api;\n submitOnChange?: boolean;\n validate?: (value: any, values: any, name: string) => any;\n formItem?: IFormItemStore;\n addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n $schema: {\n pipeIn?: (value: any, data: any) => any;\n pipeOut?: (value: any, originValue: any, data: any) => any;\n [propName: string]: any;\n };\n store?: IIRendererStore;\n onChange?: (\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) => void;\n}\n\nexport interface ControlProps {\n onBulkChange?: (values: Object) => void;\n onChange?: (value: any, name: string, submit: boolean) => void;\n store: IIRendererStore;\n}\n\nexport function wrapControl<\n T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof ControlProps>\n > &\n ControlOutterProps;\n\n const result = hoistNonReactStatic(\n withRootStore(\n observer(\n class extends React.Component<OuterProps> {\n public model: IFormItemStore | undefined;\n control?: any;\n value?: any = undefined;\n hook?: () => any;\n hook2?: () => any;\n hook3?: () => any;\n reaction?: () => void;\n\n static contextType = ScopedContext;\n static defaultProps = {};\n\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(props: OuterProps) {\n super(props);\n\n const {\n formStore: form,\n formItem,\n rootStore,\n store,\n onChange,\n data,\n $schema: {\n name,\n id,\n type,\n required,\n validations,\n validationErrors,\n unique,\n value,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength\n }\n } = this.props;\n\n this.getValue = this.getValue.bind(this);\n this.setValue = this.setValue.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.setPrinstineValue = this.setPrinstineValue.bind(this);\n this.controlRef = this.controlRef.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n if (!name) {\n return;\n }\n\n let propValue = this.props.value;\n const model = rootStore.addStore({\n id: guid(),\n path: this.props.$path,\n storeType: FormItemStore.name,\n parentId: store?.id,\n name\n }) as IFormItemStore;\n this.model = model;\n // @issue 打算干掉这个\n formItem?.addSubFormItem(model);\n model.config({\n id,\n type,\n required,\n unique,\n value,\n rules: validations,\n messages: validationErrors,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength\n });\n\n // issue 这个逻辑应该在 combo 里面自己实现。\n if (\n this.model.unique &&\n form?.parentStore?.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.bindUniuqueItem(model);\n }\n\n // 同步 value\n model.changeTmpValue(\n propValue ?? store?.getValueByName(model.name) ?? value\n );\n\n // 如果没有初始值,通过 onChange 设置过去\n if (\n onChange &&\n typeof propValue === 'undefined' &&\n typeof store?.getValueByName(model.name, false) === 'undefined'\n ) {\n onChange(model.tmpValue, model.name, false, true);\n }\n }\n\n componentDidMount() {\n const {\n store,\n formStore: form,\n $schema: {name, validate},\n addHook\n } = this.props;\n\n // 提交前先把之前的 lazyEmit 执行一下。\n this.hook3 = () => {\n this.lazyEmitChange.flush();\n };\n addHook?.(this.hook3, 'flush');\n\n const formItem = this.model as IFormItemStore;\n if (formItem && validate) {\n let finalValidate = promisify(validate.bind(formItem));\n this.hook2 = () => {\n formItem.clearError('control:valdiate');\n return finalValidate(\n this.props.data,\n this.getValue(),\n name\n ).then((ret: any) => {\n if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n formItem.addError(ret, 'control:valdiate');\n }\n });\n };\n addHook?.(this.hook2);\n }\n }\n\n componentDidUpdate(prevProps: OuterProps) {\n const props = this.props;\n const form = props.formStore;\n const model = this.model;\n\n if (\n model &&\n anyChanged(\n [\n 'id',\n 'validations',\n 'validationErrors',\n 'value',\n 'required',\n 'unique',\n 'multiple',\n 'delimiter',\n 'valueField',\n 'labelField',\n 'joinValues',\n 'extractValue',\n 'selectFirst',\n 'autoFill',\n 'clearValueOnHidden',\n 'validateApi'\n ],\n prevProps.$schema,\n props.$schema\n )\n ) {\n model.config({\n required: props.$schema.required,\n id: props.$schema.id,\n unique: props.$schema.unique,\n value: props.$schema.value,\n rules: props.$schema.validations,\n multiple: props.$schema.multiple,\n delimiter: props.$schema.delimiter,\n valueField: props.$schema.valueField,\n labelField: props.$schema.labelField,\n joinValues: props.$schema.joinValues,\n extractValue: props.$schema.extractValue,\n messages: props.$schema.validationErrors,\n selectFirst: props.$schema.selectFirst,\n autoFill: props.$schema.autoFill,\n clearValueOnHidden: props.$schema.clearValueOnHidden,\n validateApi: props.$schema.validateApi,\n minLength: props.minLength,\n maxLength: props.maxLength\n });\n }\n\n if (model && typeof props.value !== 'undefined') {\n // 自己控制的 value 优先\n if (\n props.value !== prevProps.value &&\n props.value !== model.tmpValue\n ) {\n model.changeTmpValue(props.value);\n }\n } else if (\n // 然后才是查看关联的 name 属性值是否变化\n model &&\n props.data !== prevProps.data &&\n (!model.emitedValue || model.emitedValue === model.tmpValue)\n ) {\n model.changeEmitedValue(undefined);\n const value = getVariable(props.data, model.name);\n const prevValue = getVariable(prevProps.data, model.name);\n if (\n (value !== prevValue ||\n getVariable(props.data, model.name, false) !==\n getVariable(prevProps.data, model.name, false)) &&\n value !== model.tmpValue\n ) {\n model.changeTmpValue(value);\n }\n }\n }\n\n componentWillUnmount() {\n this.hook && this.props.removeHook?.(this.hook);\n this.hook2 && this.props.removeHook?.(this.hook2);\n this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n // this.lazyEmitChange.flush();\n\n this.lazyEmitChange.cancel();\n this.reaction?.();\n this.disposeModel();\n }\n\n disposeModel() {\n const {formStore: form, formItem, rootStore} = this.props;\n\n if (\n this.model &&\n this.model.unique &&\n form?.parentStore &&\n form?.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.unBindUniuqueItem(this.model);\n }\n\n if (this.model) {\n formItem &&\n isAlive(formItem) &&\n formItem.removeSubFormItem(this.model);\n\n this.model.clearValueOnHidden &&\n this.model.form?.deleteValueByName(this.model.name);\n\n rootStore.removeStore(this.model);\n }\n delete this.model;\n }\n\n controlRef(control: any) {\n const {\n addHook,\n removeHook,\n formStore: form,\n $schema: {name}\n } = this.props;\n\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n if (control && control.validate && this.model) {\n const formItem = this.model as IFormItemStore;\n let validate = promisify(control.validate.bind(control));\n this.hook = () => {\n formItem.clearError('component:valdiate');\n\n return validate(this.props.data, this.getValue(), name).then(\n ret => {\n if (\n (typeof ret === 'string' || Array.isArray(ret)) &&\n ret\n ) {\n formItem.setError(ret, 'component:valdiate');\n }\n }\n );\n };\n addHook?.(this.hook);\n } else if (!control && this.hook) {\n removeHook?.(this.hook);\n this.hook = undefined;\n }\n\n // 注册到 Scoped 上\n const originRef = this.control;\n this.control = control;\n const scoped = this.context as IScopedContext;\n\n if (!this.control) {\n return;\n }\n\n if (control) {\n scoped.registerComponent(this.control);\n } else {\n scoped.unRegisterComponent(originRef);\n }\n }\n\n validate() {\n const {formStore: form, data} = this.props;\n\n if (this.model) {\n if (\n this.model.unique &&\n form?.parentStore &&\n form.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n const group = combo.uniques.get(\n this.model.name\n ) as IUniqueGroup;\n group.items.forEach(item => item.validate(data));\n } else {\n this.model.validate(data, this.hook);\n form\n ?.getItemsByName(this.model.name)\n .forEach(item => item !== this.model && item.validate(data));\n }\n }\n }\n\n handleChange(\n value: any,\n submitOnChange: boolean = this.props.$schema.submitOnChange,\n changeImmediately: boolean = false\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n type,\n pipeOut,\n changeImmediately: conrolChangeImmediately\n },\n formInited,\n data\n } = this.props;\n\n if (\n !this.model ||\n // todo 以后想办法不要強耦合类型。\n ~[\n 'service',\n 'group',\n 'hbox',\n 'panel',\n 'grid',\n 'input-group'\n ].indexOf(type)\n ) {\n onChange && onChange.apply(null, arguments as any);\n return;\n }\n\n if (pipeOut) {\n const oldValue = this.model.value;\n value = pipeOut(value, oldValue, data);\n }\n\n this.model.changeTmpValue(value);\n if (changeImmediately || conrolChangeImmediately || !formInited) {\n this.emitChange(submitOnChange);\n } else {\n // this.props.onTmpValueChange?.(value, this.model.name);\n this.lazyEmitChange(submitOnChange);\n }\n }\n\n emitChange(\n submitOnChange: boolean = this.props.$schema.submitOnChange\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {name, onChange: onFormItemChange, maxLength, minLength},\n data,\n validateOnChange,\n formSubmited\n } = this.props;\n\n if (!this.model) {\n return;\n }\n const value = this.model.tmpValue;\n const oldValue = getVariable(data, this.model.name, false);\n\n if (oldValue === value) {\n return;\n }\n\n this.model.changeEmitedValue(value);\n if (\n onFormItemChange?.(value, oldValue, this.model, form) === false\n ) {\n return;\n }\n const validated = this.model.validated;\n onChange?.(value, name!, submitOnChange === true);\n\n if (\n // 如果配置了 minLength 或者 maxLength 就切成及时验证\n // (typeof maxLength && maxLength) ||\n // (typeof minLength && minLength) ||\n validateOnChange === true ||\n (validateOnChange !== false && (formSubmited || validated))\n ) {\n this.validate();\n } else if (validateOnChange === false) {\n this.model?.reset();\n }\n }\n\n handleBlur(e: any) {\n const {\n onBlur,\n $schema: {validateOnBlur}\n } = this.props;\n\n if (validateOnBlur && this.model) {\n this.validate();\n }\n\n onBlur && onBlur(e);\n }\n\n setPrinstineValue(value: any) {\n if (!this.model) {\n return;\n }\n\n const {\n formStore: form,\n name,\n $schema: {pipeOut},\n onChange,\n value: oldValue,\n data\n } = this.props;\n\n if (pipeOut) {\n value = pipeOut(value, oldValue, data);\n }\n\n onChange?.(value, name!, false, true);\n }\n\n getValue() {\n const {formStore: data, $schema: control} = this.props;\n let value: any = this.model ? this.model.tmpValue : control.value;\n\n if (control.pipeIn) {\n value = control.pipeIn(value, data);\n }\n\n return value;\n }\n\n // 兼容老版本用法,新版本直接用 onChange 就可以。\n setValue(value: any, key?: string) {\n const {\n $schema: {name},\n onBulkChange\n } = this.props;\n\n if (!key || key === name) {\n this.handleChange(value);\n } else {\n onBulkChange &&\n onBulkChange({\n [key]: value\n });\n }\n }\n\n render() {\n const {\n controlWidth,\n disabled,\n formMode,\n $schema: control,\n store,\n data,\n invisible\n } = this.props;\n\n if (invisible) {\n return null;\n }\n\n const value = this.getValue();\n const model = this.model;\n\n const injectedProps: any = {\n defaultSize: controlWidth,\n disabled: disabled || control.disabled,\n formItem: this.model,\n formMode: control.mode || formMode,\n ref: this.controlRef,\n data: data || store?.data,\n value,\n defaultValue: control.value,\n formItemValue: value, // 为了兼容老版本的自定义组件\n onChange: this.handleChange,\n\n onBlur: this.handleBlur,\n setValue: this.setValue,\n getValue: this.getValue,\n prinstine: model ? model.prinstine : undefined,\n setPrinstineValue: this.setPrinstineValue\n };\n\n return (\n <ComposedComponent\n {...(this.props as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...injectedProps}\n />\n );\n }\n }\n ) as any\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
11
|
+
"import React from 'react';\nimport {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n anyChanged,\n promisify,\n isObject,\n guid,\n isEmpty,\n autobind,\n getVariable\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\n\nexport interface ControlOutterProps extends RendererProps {\n formStore?: IFormStore;\n name?: string;\n value?: any;\n id?: string;\n type?: string;\n required?: boolean;\n validations: string | {[propsName: string]: any};\n validationErrors: {[propsName: string]: any};\n validateOnChange: boolean;\n multiple?: boolean;\n delimiter?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n valueField?: string;\n labelField?: string;\n unique?: boolean;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: Api;\n submitOnChange?: boolean;\n validate?: (value: any, values: any, name: string) => any;\n formItem?: IFormItemStore;\n addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n $schema: {\n pipeIn?: (value: any, data: any) => any;\n pipeOut?: (value: any, originValue: any, data: any) => any;\n [propName: string]: any;\n };\n store?: IIRendererStore;\n onChange?: (\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) => void;\n}\n\nexport interface ControlProps {\n onBulkChange?: (values: Object) => void;\n onChange?: (value: any, name: string, submit: boolean) => void;\n store: IIRendererStore;\n}\n\nexport function wrapControl<\n T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof ControlProps>\n > &\n ControlOutterProps;\n\n const result = hoistNonReactStatic(\n withRootStore(\n observer(\n class extends React.Component<OuterProps> {\n public model: IFormItemStore | undefined;\n control?: any;\n value?: any = undefined;\n hook?: () => any;\n hook2?: () => any;\n hook3?: () => any;\n reaction?: () => void;\n\n static contextType = ScopedContext;\n static defaultProps = {};\n\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(props: OuterProps) {\n super(props);\n\n const {\n formStore: form,\n formItem,\n rootStore,\n store,\n onChange,\n data,\n $schema: {\n name,\n id,\n type,\n required,\n validations,\n validationErrors,\n unique,\n value,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength\n }\n } = this.props;\n\n this.getValue = this.getValue.bind(this);\n this.setValue = this.setValue.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.setPrinstineValue = this.setPrinstineValue.bind(this);\n this.controlRef = this.controlRef.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n if (!name) {\n return;\n }\n\n let propValue = this.props.value;\n const model = rootStore.addStore({\n id: guid(),\n path: this.props.$path,\n storeType: FormItemStore.name,\n parentId: store?.id,\n name\n }) as IFormItemStore;\n this.model = model;\n // @issue 打算干掉这个\n formItem?.addSubFormItem(model);\n model.config({\n id,\n type,\n required,\n unique,\n value,\n rules: validations,\n messages: validationErrors,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength\n });\n\n // issue 这个逻辑应该在 combo 里面自己实现。\n if (\n this.model.unique &&\n form?.parentStore?.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.bindUniuqueItem(model);\n }\n\n // 同步 value\n model.changeTmpValue(\n propValue ?? store?.getValueByName(model.name) ?? value\n );\n\n // 如果没有初始值,通过 onChange 设置过去\n if (\n onChange &&\n typeof propValue === 'undefined' &&\n typeof store?.getValueByName(model.name, false) === 'undefined'\n ) {\n onChange(model.tmpValue, model.name, false, true);\n }\n }\n\n componentDidMount() {\n const {\n store,\n formStore: form,\n $schema: {name, validate},\n addHook\n } = this.props;\n\n // 提交前先把之前的 lazyEmit 执行一下。\n this.hook3 = () => {\n this.lazyEmitChange.flush();\n };\n addHook?.(this.hook3, 'flush');\n\n const formItem = this.model as IFormItemStore;\n if (formItem && validate) {\n let finalValidate = promisify(validate.bind(formItem));\n this.hook2 = () => {\n formItem.clearError('control:valdiate');\n return finalValidate(\n this.props.data,\n this.getValue(),\n name\n ).then((ret: any) => {\n if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n formItem.addError(ret, 'control:valdiate');\n }\n });\n };\n addHook?.(this.hook2);\n }\n }\n\n componentDidUpdate(prevProps: OuterProps) {\n const props = this.props;\n const form = props.formStore;\n const model = this.model;\n\n if (\n model &&\n anyChanged(\n [\n 'id',\n 'validations',\n 'validationErrors',\n 'value',\n 'required',\n 'unique',\n 'multiple',\n 'delimiter',\n 'valueField',\n 'labelField',\n 'joinValues',\n 'extractValue',\n 'selectFirst',\n 'autoFill',\n 'clearValueOnHidden',\n 'validateApi'\n ],\n prevProps.$schema,\n props.$schema\n )\n ) {\n model.config({\n required: props.$schema.required,\n id: props.$schema.id,\n unique: props.$schema.unique,\n value: props.$schema.value,\n rules: props.$schema.validations,\n multiple: props.$schema.multiple,\n delimiter: props.$schema.delimiter,\n valueField: props.$schema.valueField,\n labelField: props.$schema.labelField,\n joinValues: props.$schema.joinValues,\n extractValue: props.$schema.extractValue,\n messages: props.$schema.validationErrors,\n selectFirst: props.$schema.selectFirst,\n autoFill: props.$schema.autoFill,\n clearValueOnHidden: props.$schema.clearValueOnHidden,\n validateApi: props.$schema.validateApi,\n minLength: props.minLength,\n maxLength: props.maxLength\n });\n }\n\n if (model && typeof props.value !== 'undefined') {\n // 自己控制的 value 优先\n if (\n props.value !== prevProps.value &&\n props.value !== model.tmpValue\n ) {\n model.changeTmpValue(props.value);\n }\n } else if (\n // 然后才是查看关联的 name 属性值是否变化\n model &&\n props.data !== prevProps.data &&\n (!model.emitedValue || model.emitedValue === model.tmpValue)\n ) {\n model.changeEmitedValue(undefined);\n const value = getVariable(props.data, model.name);\n const prevValue = getVariable(prevProps.data, model.name);\n if (\n (value !== prevValue ||\n getVariable(props.data, model.name, false) !==\n getVariable(prevProps.data, model.name, false)) &&\n value !== model.tmpValue\n ) {\n model.changeTmpValue(value);\n }\n }\n }\n\n componentWillUnmount() {\n this.hook && this.props.removeHook?.(this.hook);\n this.hook2 && this.props.removeHook?.(this.hook2);\n this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n // this.lazyEmitChange.flush();\n\n this.lazyEmitChange.cancel();\n this.reaction?.();\n this.disposeModel();\n }\n\n disposeModel() {\n const {formStore: form, formItem, rootStore} = this.props;\n\n if (\n this.model &&\n this.model.unique &&\n form?.parentStore &&\n form?.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.unBindUniuqueItem(this.model);\n }\n\n if (this.model) {\n formItem &&\n isAlive(formItem) &&\n formItem.removeSubFormItem(this.model);\n\n this.model.clearValueOnHidden &&\n this.model.form?.deleteValueByName(this.model.name);\n\n rootStore.removeStore(this.model);\n }\n delete this.model;\n }\n\n controlRef(control: any) {\n const {\n addHook,\n removeHook,\n formStore: form,\n $schema: {name}\n } = this.props;\n\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n if (control && control.validate && this.model) {\n const formItem = this.model as IFormItemStore;\n let validate = promisify(control.validate.bind(control));\n this.hook = () => {\n formItem.clearError('component:valdiate');\n\n return validate(this.props.data, this.getValue(), name).then(\n ret => {\n if (\n (typeof ret === 'string' || Array.isArray(ret)) &&\n ret\n ) {\n formItem.setError(ret, 'component:valdiate');\n }\n }\n );\n };\n addHook?.(this.hook);\n } else if (!control && this.hook) {\n removeHook?.(this.hook);\n this.hook = undefined;\n }\n\n // 注册到 Scoped 上\n const originRef = this.control;\n this.control = control;\n const scoped = this.context as IScopedContext;\n\n if (!this.control) {\n return;\n }\n\n if (control) {\n scoped.registerComponent(this.control);\n } else {\n scoped.unRegisterComponent(originRef);\n }\n }\n\n validate() {\n const {formStore: form, data} = this.props;\n\n if (this.model) {\n if (\n this.model.unique &&\n form?.parentStore &&\n form.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n const group = combo.uniques.get(\n this.model.name\n ) as IUniqueGroup;\n group.items.forEach(item => item.validate(data));\n } else {\n this.model.validate(data, this.hook);\n form\n ?.getItemsByName(this.model.name)\n .forEach(item => item !== this.model && item.validate(data));\n }\n }\n }\n\n handleChange(\n value: any,\n submitOnChange: boolean = this.props.$schema.submitOnChange,\n changeImmediately: boolean = false\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n type,\n pipeOut,\n changeImmediately: conrolChangeImmediately\n },\n formInited,\n data\n } = this.props;\n\n if (\n !this.model ||\n // todo 以后想办法不要強耦合类型。\n ~[\n 'service',\n 'group',\n 'hbox',\n 'panel',\n 'grid',\n 'input-group'\n ].indexOf(type)\n ) {\n onChange && onChange.apply(null, arguments as any);\n return;\n }\n\n if (pipeOut) {\n const oldValue = this.model.value;\n value = pipeOut(value, oldValue, data);\n }\n\n this.model.changeTmpValue(value);\n if (changeImmediately || conrolChangeImmediately || !formInited) {\n this.emitChange(submitOnChange);\n } else {\n // this.props.onTmpValueChange?.(value, this.model.name);\n this.lazyEmitChange(submitOnChange);\n }\n }\n\n emitChange(\n submitOnChange: boolean = this.props.$schema.submitOnChange\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {name, onChange: onFormItemChange, maxLength, minLength},\n data,\n validateOnChange,\n formSubmited\n } = this.props;\n\n if (!this.model) {\n return;\n }\n const value = this.model.tmpValue;\n const oldValue = getVariable(data, this.model.name, false);\n\n if (oldValue === value) {\n return;\n }\n\n this.model.changeEmitedValue(value);\n if (\n onFormItemChange?.(value, oldValue, this.model, form) === false\n ) {\n return;\n }\n const validated = this.model.validated;\n onChange?.(value, name!, submitOnChange === true);\n\n if (\n // 如果配置了 minLength 或者 maxLength 就切成及时验证\n (typeof maxLength && maxLength) ||\n (typeof minLength && minLength) ||\n validateOnChange === true ||\n (validateOnChange !== false && (formSubmited || validated))\n ) {\n this.validate();\n } else if (validateOnChange === false) {\n this.model?.reset();\n }\n }\n\n handleBlur(e: any) {\n const {\n onBlur,\n $schema: {validateOnBlur}\n } = this.props;\n\n if (validateOnBlur && this.model) {\n this.validate();\n }\n\n onBlur && onBlur(e);\n }\n\n setPrinstineValue(value: any) {\n if (!this.model) {\n return;\n }\n\n const {\n formStore: form,\n name,\n $schema: {pipeOut},\n onChange,\n value: oldValue,\n data\n } = this.props;\n\n if (pipeOut) {\n value = pipeOut(value, oldValue, data);\n }\n\n onChange?.(value, name!, false, true);\n }\n\n getValue() {\n const {formStore: data, $schema: control} = this.props;\n let value: any = this.model ? this.model.tmpValue : control.value;\n\n if (control.pipeIn) {\n value = control.pipeIn(value, data);\n }\n\n return value;\n }\n\n // 兼容老版本用法,新版本直接用 onChange 就可以。\n setValue(value: any, key?: string) {\n const {\n $schema: {name},\n onBulkChange\n } = this.props;\n\n if (!key || key === name) {\n this.handleChange(value);\n } else {\n onBulkChange &&\n onBulkChange({\n [key]: value\n });\n }\n }\n\n render() {\n const {\n controlWidth,\n disabled,\n formMode,\n $schema: control,\n store,\n data,\n invisible\n } = this.props;\n\n if (invisible) {\n return null;\n }\n\n const value = this.getValue();\n const model = this.model;\n\n const injectedProps: any = {\n defaultSize: controlWidth,\n disabled: disabled || control.disabled,\n formItem: this.model,\n formMode: control.mode || formMode,\n ref: this.controlRef,\n data: data || store?.data,\n value,\n defaultValue: control.value,\n formItemValue: value, // 为了兼容老版本的自定义组件\n onChange: this.handleChange,\n\n onBlur: this.handleBlur,\n setValue: this.setValue,\n getValue: this.getValue,\n prinstine: model ? model.prinstine : undefined,\n setPrinstineValue: this.setPrinstineValue\n };\n\n return (\n <ComposedComponent\n {...(this.props as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...injectedProps}\n />\n );\n }\n }\n ) as any\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|