amis 1.9.0-beta.10 → 1.9.0-beta.12

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.
Files changed (92) hide show
  1. package/lib/actions/LinkAction.d.ts +8 -1
  2. package/lib/actions/LinkAction.js +9 -12
  3. package/lib/actions/LinkAction.js.map +2 -2
  4. package/lib/actions/ToastAction.js +2 -1
  5. package/lib/actions/ToastAction.js.map +2 -2
  6. package/lib/components/Tree.d.ts +170 -84
  7. package/lib/components/Tree.js +25 -23
  8. package/lib/components/Tree.js.map +2 -2
  9. package/lib/index.js +1 -1
  10. package/lib/renderers/Action.js +1 -1
  11. package/lib/renderers/Action.js.map +2 -2
  12. package/lib/renderers/CRUD.d.ts +1 -0
  13. package/lib/renderers/CRUD.js +2 -2
  14. package/lib/renderers/CRUD.js.map +2 -2
  15. package/lib/renderers/Dialog.js +2 -2
  16. package/lib/renderers/Dialog.js.map +2 -2
  17. package/lib/renderers/Drawer.js +2 -2
  18. package/lib/renderers/Drawer.js.map +2 -2
  19. package/lib/renderers/Form/InputFile.d.ts +4 -0
  20. package/lib/renderers/Form/InputFile.js +47 -21
  21. package/lib/renderers/Form/InputFile.js.map +2 -2
  22. package/lib/renderers/Form/InputTree.d.ts +9 -1
  23. package/lib/renderers/Form/InputTree.js +2 -2
  24. package/lib/renderers/Form/InputTree.js.map +2 -2
  25. package/lib/renderers/Form/Picker.d.ts +2 -1
  26. package/lib/renderers/Form/Picker.js +8 -2
  27. package/lib/renderers/Form/Picker.js.map +2 -2
  28. package/lib/renderers/Form/index.js +6 -3
  29. package/lib/renderers/Form/index.js.map +2 -2
  30. package/lib/renderers/Service.d.ts +2 -0
  31. package/lib/renderers/Service.js +23 -3
  32. package/lib/renderers/Service.js.map +2 -2
  33. package/lib/renderers/Wizard.js +5 -8
  34. package/lib/renderers/Wizard.js.map +2 -2
  35. package/lib/themes/ang-ie11.css +27 -15
  36. package/lib/themes/ang.css +39 -25
  37. package/lib/themes/ang.css.map +1 -1
  38. package/lib/themes/antd-ie11.css +27 -15
  39. package/lib/themes/antd.css +39 -25
  40. package/lib/themes/antd.css.map +1 -1
  41. package/lib/themes/cxd-ie11.css +42 -30
  42. package/lib/themes/cxd.css +44 -26
  43. package/lib/themes/cxd.css.map +1 -1
  44. package/lib/themes/dark-ie11.css +27 -15
  45. package/lib/themes/dark.css +39 -25
  46. package/lib/themes/dark.css.map +1 -1
  47. package/lib/themes/default-ie11.css +42 -30
  48. package/lib/themes/default.css +44 -26
  49. package/lib/themes/default.css.map +1 -1
  50. package/package.json +2 -3
  51. package/schema.json +174 -235
  52. package/scss/_properties.scss +2 -0
  53. package/scss/components/form/_tree.scss +41 -46
  54. package/scss/themes/_cxd-variables.scss +7 -2
  55. package/sdk/ang-ie11.css +33 -20
  56. package/sdk/ang.css +45 -30
  57. package/sdk/antd-ie11.css +33 -20
  58. package/sdk/antd.css +45 -30
  59. package/sdk/barcode.js +51 -51
  60. package/sdk/charts.js +15 -15
  61. package/sdk/codemirror.js +7 -7
  62. package/sdk/color-picker.js +65 -65
  63. package/sdk/cropperjs.js +2 -2
  64. package/sdk/cxd-ie11.css +48 -35
  65. package/sdk/cxd.css +50 -31
  66. package/sdk/dark-ie11.css +33 -20
  67. package/sdk/dark.css +45 -30
  68. package/sdk/exceljs.js +1 -1
  69. package/sdk/markdown.js +69 -69
  70. package/sdk/papaparse.js +1 -1
  71. package/sdk/renderers/Form/CityDB.js +1 -1
  72. package/sdk/rest.js +16 -16
  73. package/sdk/rich-text.js +62 -62
  74. package/sdk/sdk-ie11.css +48 -35
  75. package/sdk/sdk.css +50 -31
  76. package/sdk/sdk.js +1265 -1293
  77. package/sdk/thirds/hls.js/hls.js +1 -1
  78. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  79. package/sdk/tinymce.js +57 -57
  80. package/src/actions/LinkAction.ts +21 -14
  81. package/src/actions/ToastAction.ts +6 -1
  82. package/src/components/Tree.tsx +36 -36
  83. package/src/renderers/Action.tsx +1 -4
  84. package/src/renderers/CRUD.tsx +4 -6
  85. package/src/renderers/Dialog.tsx +2 -2
  86. package/src/renderers/Drawer.tsx +2 -2
  87. package/src/renderers/Form/InputFile.tsx +27 -15
  88. package/src/renderers/Form/InputTree.tsx +12 -1
  89. package/src/renderers/Form/Picker.tsx +13 -3
  90. package/src/renderers/Form/index.tsx +6 -6
  91. package/src/renderers/Service.tsx +40 -5
  92. package/src/renderers/Wizard.tsx +4 -7
@@ -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 repeatCount,\n createObject\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 justify?: boolean; // 两端对齐\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 columnCount?: number;\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 name?: string | Array<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 name?: string | Array<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 columnCount: 0,\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 'columnCount',\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 'multiple'\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, item.name)\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, dispatchEvent} =\n 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 // 派发init事件,参数为初始化数据\n const dispatcher = dispatchEvent(\n 'inited',\n createObject(this.props.data, {formData: data})\n );\n if (!dispatcher?.prevented) {\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, dispatchEvent, data} = this.props;\n\n this.flush();\n return store\n .validate(this.hooks['validate'] || [], forceValidate)\n .then((result: boolean) => {\n if (result) {\n dispatchEvent('validateSucc', data);\n } else {\n dispatchEvent('validateFail', data);\n }\n return result;\n });\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: __, dispatchEvent, data} = this.props;\n this.flush();\n const validateErrCb = () => {\n dispatchEvent('validateFail', data);\n };\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed),\n validateErrCb\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 if (typeof name !== 'string') {\n return;\n }\n store.changeValue(name, value, changePristine);\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData && store.inited) {\n store.setLocalPersistData();\n }\n }\n formItemDispatchEvent(dispatchEvent: any) {\n return (type: string, data: any) => {\n dispatchEvent(type, data);\n };\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange, dispatchEvent, data} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n const dispatcher = dispatchEvent(\n 'change',\n createObject(data, {formData: store.data})\n );\n if (!dispatcher?.prevented) {\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n }\n\n store.clearRestError();\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 store.items.forEach(formItem => {\n const updatedValue = getVariable(values, formItem.name, false);\n\n if (updatedValue !== undefined) {\n // 更新验证状态但保留错误信息\n formItem.reset(true);\n // 这里需要更新value,否则提交时不会使用新的字段值校验\n formItem.changeTmpValue(updatedValue);\n formItem.validateOnChange && formItem.validate(values);\n }\n });\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 dispatchEvent,\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 if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n dispatchEvent('validateError', this.props.data);\n env.notify('error', __('Form.validateFailed'));\n } else {\n dispatchEvent('validateSucc', this.props.data);\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\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 dispatchEvent('validateSucc', this.props.data);\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: (result: Payload) => {\n // result为提交接口返回的内容\n dispatchEvent(\n 'submitSucc',\n createObject(this.props.data, {result})\n );\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\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 onFailed: (result: Payload) => {\n dispatchEvent(\n 'submitFail',\n createObject(this.props.data, {error: result})\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 === 'validate') {\n store.setCurrentAction(action);\n this.validate(true);\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 if (action.target) {\n this.reloadTarget(action.target, data);\n } else {\n this.receive(data);\n }\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(confirmed = false) {\n const {store} = this.props;\n store.closeDialog(confirmed);\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 dispatchEvent\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: disabled || 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 formItemDispatchEvent: this.formItemDispatchEvent(dispatchEvent),\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 columnCount,\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 const padDom = repeatCount(\n columnCount && Array.isArray(body)\n ? columnCount - (body.length % columnCount)\n : 0,\n index => (\n <div\n className={cx(`Form-item Form-item--${mode} is-placeholder`)}\n key={index}\n ></div>\n )\n );\n\n return (\n <WrapperComponent\n className={cx(\n `Form`,\n `Form--${mode || 'normal'}`,\n columnCount ? `Form--column Form--column-${columnCount}` : null,\n className\n )}\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 {padDom}\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 storeExtendsData: (props: any) => props.inheritData,\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 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 setData(values: object) {\n return super.setValues(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 repeatCount,\n createObject\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 justify?: boolean; // 两端对齐\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 columnCount?: number;\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 name?: string | Array<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 name?: string | Array<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 columnCount: 0,\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 'columnCount',\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 'multiple'\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, item.name)\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, dispatchEvent} =\n 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 if (persistData) {\n store.getLocalPersistData();\n data = cloneObject(store.data);\n }\n\n // 派发init事件,参数为初始化数据\n const dispatcher = dispatchEvent(\n 'inited',\n createObject(this.props.data, data)\n );\n if (!dispatcher?.prevented) {\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, dispatchEvent, data} = this.props;\n\n this.flush();\n return store\n .validate(this.hooks['validate'] || [], forceValidate)\n .then((result: boolean) => {\n if (result) {\n dispatchEvent('validateSucc', data);\n } else {\n dispatchEvent('validateFail', data);\n }\n return result;\n });\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: __, dispatchEvent, data} = this.props;\n this.flush();\n const validateErrCb = () => {\n dispatchEvent('validateFail', data);\n };\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed),\n validateErrCb\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 if (typeof name !== 'string') {\n return;\n }\n store.changeValue(name, value, changePristine);\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData && store.inited) {\n store.setLocalPersistData();\n }\n }\n formItemDispatchEvent(dispatchEvent: any) {\n return (type: string, data: any) => {\n dispatchEvent(type, data);\n };\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange, dispatchEvent, data} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n const dispatcher = dispatchEvent('change', createObject(data, store.data));\n if (!dispatcher?.prevented) {\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n }\n\n store.clearRestError();\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 store.items.forEach(formItem => {\n const updatedValue = getVariable(values, formItem.name, false);\n\n if (updatedValue !== undefined) {\n // 更新验证状态但保留错误信息\n formItem.reset(true);\n // 这里需要更新value,否则提交时不会使用新的字段值校验\n formItem.changeTmpValue(updatedValue);\n formItem.validateOnChange && formItem.validate(values);\n }\n });\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 dispatchEvent,\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 if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n dispatchEvent('validateError', this.props.data);\n env.notify('error', __('Form.validateFailed'));\n } else {\n dispatchEvent('validateSucc', this.props.data);\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\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 dispatchEvent('validateSucc', this.props.data);\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: (result: Payload) => {\n // result为提交接口返回的内容\n dispatchEvent(\n 'submitSucc',\n createObject(this.props.data, {result})\n );\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\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 onFailed: (result: Payload) => {\n dispatchEvent(\n 'submitFail',\n createObject(this.props.data, {error: result})\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 === 'validate') {\n store.setCurrentAction(action);\n this.validate(true);\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 if (action.target) {\n this.reloadTarget(action.target, data);\n } else {\n this.receive(data);\n }\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(confirmed = false) {\n const {store} = this.props;\n store.closeDialog(confirmed);\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 dispatchEvent\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: disabled || 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 formItemDispatchEvent: this.formItemDispatchEvent(dispatchEvent),\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 columnCount,\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 const padDom = repeatCount(\n columnCount && Array.isArray(body)\n ? columnCount - (body.length % columnCount)\n : 0,\n index => (\n <div\n className={cx(`Form-item Form-item--${mode} is-placeholder`)}\n key={index}\n ></div>\n )\n );\n\n return (\n <WrapperComponent\n className={cx(\n `Form`,\n `Form--${mode || 'normal'}`,\n columnCount ? `Form--column Form--column-${columnCount}` : null,\n className\n )}\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 {padDom}\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 storeExtendsData: (props: any) => props.inheritData,\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 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 setData(values: object) {\n return super.setValues(values);\n }\n}\n"
12
12
  ]
13
13
  }
@@ -4,6 +4,7 @@ import { IServiceStore } from '../store/service';
4
4
  import { Api, RendererData, Action } from '../types';
5
5
  import { IScopedContext } from '../Scoped';
6
6
  import { BaseSchema, SchemaApi, SchemaCollection, SchemaExpression, SchemaMessage, SchemaName } from '../Schema';
7
+ import type { ListenerAction } from '../actions/Action';
7
8
  /**
8
9
  * Service 服务类控件。
9
10
  * 文档:https://baidu.gitee.io/amis/docs/components/service
@@ -86,6 +87,7 @@ export default class Service extends React.Component<ServiceProps> {
86
87
  componentDidMount(): void;
87
88
  componentDidUpdate(prevProps: ServiceProps): void;
88
89
  componentWillUnmount(): void;
90
+ doAction(action: ListenerAction, args: any): void;
89
91
  initFetch(): void;
90
92
  runDataProvider(): Promise<void>;
91
93
  runDataProviderUnsubscribe(): void;
@@ -70,6 +70,24 @@ var Service = /** @class */ (function (_super) {
70
70
  this.socket.close();
71
71
  }
72
72
  };
73
+ Service.prototype.doAction = function (action, args) {
74
+ if ((action === null || action === void 0 ? void 0 : action.actionType) === 'rebuild') {
75
+ var _a = this.props, schemaApi = _a.schemaApi, store = _a.store, dataProvider = _a.dataProvider, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
76
+ store.updateData(args);
77
+ clearTimeout(this.timer);
78
+ if ((0, api_1.isEffectiveApi)(schemaApi, store.data)) {
79
+ store
80
+ .fetchSchema(schemaApi, store.data, {
81
+ successMessage: fetchSuccess,
82
+ errorMessage: fetchFailed
83
+ })
84
+ .then(this.afterSchemaFetch);
85
+ }
86
+ if (dataProvider) {
87
+ this.runDataProvider();
88
+ }
89
+ }
90
+ };
73
91
  Service.prototype.initFetch = function () {
74
92
  var _a = this.props, schemaApi = _a.schemaApi, initFetchSchema = _a.initFetchSchema, api = _a.api, ws = _a.ws, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, dataProvider = _a.dataProvider, store = _a.store, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
75
93
  if ((0, api_1.isEffectiveApi)(schemaApi, store.data, initFetchSchema)) {
@@ -170,14 +188,16 @@ var Service = /** @class */ (function (_super) {
170
188
  // 初始化接口返回的是整个 response,
171
189
  // 保存 ajax 请求的时候返回时数据部分。
172
190
  var data = (result === null || result === void 0 ? void 0 : result.hasOwnProperty('ok')) ? result.data : result;
173
- var onBulkChange = this.props.onBulkChange;
191
+ var _a = this.props, onBulkChange = _a.onBulkChange, dispatchEvent = _a.dispatchEvent;
192
+ dispatchEvent === null || dispatchEvent === void 0 ? void 0 : dispatchEvent('fetchInited', data);
174
193
  if (!(0, helper_1.isEmpty)(data) && onBulkChange) {
175
194
  onBulkChange(data);
176
195
  }
177
196
  this.initInterval(data);
178
197
  };
179
198
  Service.prototype.afterSchemaFetch = function (schema) {
180
- var _a = this.props, onBulkChange = _a.onBulkChange, formStore = _a.formStore;
199
+ var _a = this.props, onBulkChange = _a.onBulkChange, formStore = _a.formStore, dispatchEvent = _a.dispatchEvent;
200
+ dispatchEvent === null || dispatchEvent === void 0 ? void 0 : dispatchEvent('fetchSchemaInited', schema);
181
201
  if (formStore && (schema === null || schema === void 0 ? void 0 : schema.data) && onBulkChange) {
182
202
  onBulkChange && onBulkChange(schema.data);
183
203
  }
@@ -398,7 +418,7 @@ var ServiceRenderer = /** @class */ (function (_super) {
398
418
  scoped.reload(target, data);
399
419
  };
400
420
  ServiceRenderer.prototype.setData = function (values) {
401
- return _super.prototype.afterDataFetch.call(this, values);
421
+ return this.props.store.updateData(values);
402
422
  };
403
423
  var _c;
404
424
  ServiceRenderer.contextType = Scoped_1.ScopedContext;