amis 1.3.4 → 1.4.0

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 (270) hide show
  1. package/README.md +2 -1
  2. package/lib/RootRenderer.js +4 -1
  3. package/lib/RootRenderer.js.map +2 -2
  4. package/lib/components/Badge.d.ts +13 -1
  5. package/lib/components/Badge.js +16 -2
  6. package/lib/components/Badge.js.map +2 -2
  7. package/lib/components/Checkbox.d.ts +1 -1
  8. package/lib/components/Checkbox.js +1 -1
  9. package/lib/components/Checkbox.js.map +2 -2
  10. package/lib/components/Drawer.js +1 -1
  11. package/lib/components/Drawer.js.map +2 -2
  12. package/lib/components/Modal.js +1 -1
  13. package/lib/components/Modal.js.map +2 -2
  14. package/lib/components/RichText.d.ts +0 -3
  15. package/lib/components/RichText.js +1 -22
  16. package/lib/components/RichText.js.map +2 -2
  17. package/lib/components/Select.d.ts +7 -0
  18. package/lib/components/Select.js.map +2 -2
  19. package/lib/components/Steps.d.ts +3 -3
  20. package/lib/components/Steps.js.map +1 -1
  21. package/lib/components/WithRemoteConfig.d.ts +8 -0
  22. package/lib/components/WithRemoteConfig.js +28 -2
  23. package/lib/components/WithRemoteConfig.js.map +2 -2
  24. package/lib/components/condition-builder/Field.js +0 -1
  25. package/lib/components/condition-builder/Field.js.map +2 -2
  26. package/lib/components/condition-builder/Value.js +2 -1
  27. package/lib/components/condition-builder/Value.js.map +2 -2
  28. package/lib/components/condition-builder/types.d.ts +5 -0
  29. package/lib/components/condition-builder/types.js.map +1 -1
  30. package/lib/env.d.ts +1 -1
  31. package/lib/env.js.map +1 -1
  32. package/lib/factory.d.ts +6 -2
  33. package/lib/factory.js +9 -4
  34. package/lib/factory.js.map +2 -2
  35. package/lib/index.d.ts +1 -0
  36. package/lib/index.js +2 -1
  37. package/lib/index.js.map +2 -2
  38. package/lib/locale/de-DE.js +1 -0
  39. package/lib/locale/de-DE.js.map +2 -2
  40. package/lib/locale/en-US.js +2 -1
  41. package/lib/locale/en-US.js.map +2 -2
  42. package/lib/locale/zh-CN.js +2 -1
  43. package/lib/locale/zh-CN.js.map +2 -2
  44. package/lib/renderers/Action.d.ts +6 -0
  45. package/lib/renderers/Action.js +9 -1
  46. package/lib/renderers/Action.js.map +2 -2
  47. package/lib/renderers/CRUD.d.ts +2 -2
  48. package/lib/renderers/CRUD.js +13 -21
  49. package/lib/renderers/CRUD.js.map +2 -2
  50. package/lib/renderers/Card.js +11 -11
  51. package/lib/renderers/Card.js.map +2 -2
  52. package/lib/renderers/Collapse.d.ts +1 -1
  53. package/lib/renderers/Collapse.js +5 -1
  54. package/lib/renderers/Collapse.js.map +2 -2
  55. package/lib/renderers/Copyable.js +30 -28
  56. package/lib/renderers/Copyable.js.map +2 -2
  57. package/lib/renderers/Dialog.d.ts +0 -252
  58. package/lib/renderers/Dialog.js +3 -2
  59. package/lib/renderers/Dialog.js.map +2 -2
  60. package/lib/renderers/Drawer.js +2 -1
  61. package/lib/renderers/Drawer.js.map +2 -2
  62. package/lib/renderers/DropDownButton.d.ts +4 -0
  63. package/lib/renderers/DropDownButton.js +2 -2
  64. package/lib/renderers/DropDownButton.js.map +2 -2
  65. package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
  66. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  67. package/lib/renderers/Form/Combo.d.ts +2 -0
  68. package/lib/renderers/Form/Combo.js +16 -1
  69. package/lib/renderers/Form/Combo.js.map +2 -2
  70. package/lib/renderers/Form/DiffEditor.d.ts +0 -2
  71. package/lib/renderers/Form/Editor.d.ts +0 -2
  72. package/lib/renderers/Form/Editor.js +1 -1
  73. package/lib/renderers/Form/Editor.js.map +2 -2
  74. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  75. package/lib/renderers/Form/InputExcel.js +24 -3
  76. package/lib/renderers/Form/InputExcel.js.map +2 -2
  77. package/lib/renderers/Form/InputImage.d.ts +8 -0
  78. package/lib/renderers/Form/InputImage.js +2 -1
  79. package/lib/renderers/Form/InputImage.js.map +2 -2
  80. package/lib/renderers/Form/InputNumber.d.ts +19 -5
  81. package/lib/renderers/Form/InputNumber.js +69 -7
  82. package/lib/renderers/Form/InputNumber.js.map +2 -2
  83. package/lib/renderers/Form/InputRange.js +7 -2
  84. package/lib/renderers/Form/InputRange.js.map +2 -2
  85. package/lib/renderers/Form/InputTable.d.ts +23 -5
  86. package/lib/renderers/Form/InputTable.js +32 -3
  87. package/lib/renderers/Form/InputTable.js.map +2 -2
  88. package/lib/renderers/Form/NestedSelect.js +2 -3
  89. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  90. package/lib/renderers/Form/Options.js +3 -1
  91. package/lib/renderers/Form/Options.js.map +2 -2
  92. package/lib/renderers/Form/index.js +0 -10
  93. package/lib/renderers/Form/index.js.map +2 -2
  94. package/lib/renderers/Form/wrapControl.js +3 -3
  95. package/lib/renderers/Form/wrapControl.js.map +2 -2
  96. package/lib/renderers/Json.js +5 -1
  97. package/lib/renderers/Json.js.map +2 -2
  98. package/lib/renderers/List.d.ts +5 -0
  99. package/lib/renderers/List.js +20 -14
  100. package/lib/renderers/List.js.map +2 -2
  101. package/lib/renderers/Page.d.ts +6 -0
  102. package/lib/renderers/Page.js +10 -2
  103. package/lib/renderers/Page.js.map +2 -2
  104. package/lib/renderers/Service.d.ts +10 -1
  105. package/lib/renderers/Service.js +85 -3
  106. package/lib/renderers/Service.js.map +2 -2
  107. package/lib/renderers/Steps.d.ts +4 -4
  108. package/lib/renderers/Steps.js +5 -2
  109. package/lib/renderers/Steps.js.map +2 -2
  110. package/lib/renderers/Table/TableBody.d.ts +5 -3
  111. package/lib/renderers/Table/TableBody.js +17 -11
  112. package/lib/renderers/Table/TableBody.js.map +2 -2
  113. package/lib/renderers/Table/TableCell.js +6 -2
  114. package/lib/renderers/Table/TableCell.js.map +2 -2
  115. package/lib/renderers/Table/TableContent.d.ts +3 -1
  116. package/lib/renderers/Table/TableContent.js +6 -2
  117. package/lib/renderers/Table/TableContent.js.map +2 -2
  118. package/lib/renderers/Table/TableRow.d.ts +1 -1
  119. package/lib/renderers/Table/TableRow.js +14 -13
  120. package/lib/renderers/Table/TableRow.js.map +2 -2
  121. package/lib/renderers/Table/index.d.ts +28 -3
  122. package/lib/renderers/Table/index.js +97 -54
  123. package/lib/renderers/Table/index.js.map +2 -2
  124. package/lib/schemaExtend.d.ts +1 -0
  125. package/lib/schemaExtend.js +59 -0
  126. package/lib/schemaExtend.js.map +13 -0
  127. package/lib/store/app.d.ts +0 -1
  128. package/lib/store/combo.d.ts +0 -2
  129. package/lib/store/crud.d.ts +3 -3
  130. package/lib/store/crud.js +41 -36
  131. package/lib/store/crud.js.map +2 -2
  132. package/lib/store/form.d.ts +0 -1
  133. package/lib/store/formItem.js +10 -6
  134. package/lib/store/formItem.js.map +2 -2
  135. package/lib/store/modal.d.ts +1 -1
  136. package/lib/store/modal.js +4 -0
  137. package/lib/store/modal.js.map +2 -2
  138. package/lib/store/root.d.ts +0 -1
  139. package/lib/store/service.d.ts +0 -1
  140. package/lib/store/service.js +0 -13
  141. package/lib/store/service.js.map +2 -2
  142. package/lib/store/table.d.ts +1 -2
  143. package/lib/store/table.js +44 -3
  144. package/lib/store/table.js.map +2 -2
  145. package/lib/themes/ang-ie11.css +278 -17
  146. package/lib/themes/ang.css +278 -17
  147. package/lib/themes/ang.css.map +1 -1
  148. package/lib/themes/antd-ie11.css +278 -17
  149. package/lib/themes/antd.css +278 -17
  150. package/lib/themes/antd.css.map +1 -1
  151. package/lib/themes/cxd-ie11.css +278 -17
  152. package/lib/themes/cxd.css +278 -17
  153. package/lib/themes/cxd.css.map +1 -1
  154. package/lib/themes/dark-ie11.css +278 -17
  155. package/lib/themes/dark.css +278 -17
  156. package/lib/themes/dark.css.map +1 -1
  157. package/lib/themes/default.css +278 -17
  158. package/lib/themes/default.css.map +1 -1
  159. package/lib/utils/api.js +12 -0
  160. package/lib/utils/api.js.map +2 -2
  161. package/lib/utils/attachmentAdpator.d.ts +7 -0
  162. package/lib/utils/attachmentAdpator.js +82 -0
  163. package/lib/utils/attachmentAdpator.js.map +13 -0
  164. package/lib/utils/helper.d.ts +2 -0
  165. package/lib/utils/helper.js +14 -1
  166. package/lib/utils/helper.js.map +2 -2
  167. package/lib/utils/resize-sensor.js +6 -0
  168. package/lib/utils/resize-sensor.js.map +2 -2
  169. package/lib/utils/tpl-builtin.d.ts +1 -0
  170. package/lib/utils/tpl-builtin.js +24 -8
  171. package/lib/utils/tpl-builtin.js.map +2 -2
  172. package/lib/utils/validations.js +62 -5
  173. package/lib/utils/validations.js.map +2 -2
  174. package/package.json +1 -1
  175. package/schema.json +369 -164
  176. package/scss/_properties.scss +6 -0
  177. package/scss/components/_badge.scss +15 -1
  178. package/scss/components/_list.scss +8 -0
  179. package/scss/components/_markdown.scss +266 -0
  180. package/scss/components/_spinner.scss +6 -2
  181. package/scss/components/_table.scss +4 -0
  182. package/scss/components/form/_form.scss +3 -17
  183. package/scss/components/form/_group.scss +4 -0
  184. package/scss/components/form/_nested-select.scss +4 -0
  185. package/scss/components/form/_number.scss +12 -1
  186. package/scss/themes/_common.scss +1 -0
  187. package/sdk/ang-ie11.css +324 -20
  188. package/sdk/ang.css +330 -20
  189. package/sdk/antd-ie11.css +324 -20
  190. package/sdk/antd.css +330 -20
  191. package/sdk/charts.js +15 -15
  192. package/sdk/color-picker.js +65 -69
  193. package/sdk/cropperjs.js +2 -2
  194. package/sdk/cxd-ie11.css +324 -20
  195. package/sdk/cxd.css +330 -20
  196. package/sdk/dark-ie11.css +324 -20
  197. package/sdk/dark.css +330 -20
  198. package/sdk/exceljs.js +1 -1
  199. package/sdk/locale/de-DE.js +1 -0
  200. package/sdk/markdown.js +69 -69
  201. package/sdk/papaparse.js +1 -1
  202. package/sdk/renderers/Form/CityDB.js +1 -1
  203. package/sdk/rest.js +27 -23
  204. package/sdk/rich-text.js +63 -63
  205. package/sdk/sdk-ie11.css +324 -20
  206. package/sdk/sdk.css +330 -20
  207. package/sdk/sdk.js +1146 -1138
  208. package/sdk/thirds/hls.js/hls.js +1 -1
  209. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  210. package/sdk/tinymce.js +57 -57
  211. package/src/RootRenderer.tsx +8 -3
  212. package/src/components/Badge.tsx +41 -6
  213. package/src/components/Checkbox.tsx +5 -2
  214. package/src/components/Drawer.tsx +3 -2
  215. package/src/components/Modal.tsx +3 -2
  216. package/src/components/RichText.tsx +2 -27
  217. package/src/components/Select.tsx +1 -0
  218. package/src/components/Steps.tsx +3 -3
  219. package/src/components/WithRemoteConfig.tsx +37 -2
  220. package/src/components/condition-builder/Field.tsx +1 -2
  221. package/src/components/condition-builder/Value.tsx +3 -0
  222. package/src/components/condition-builder/types.ts +6 -0
  223. package/src/env.tsx +1 -1
  224. package/src/factory.tsx +14 -4
  225. package/src/index.tsx +2 -0
  226. package/src/locale/de-DE.ts +1 -0
  227. package/src/locale/en-US.ts +2 -1
  228. package/src/locale/zh-CN.ts +2 -1
  229. package/src/renderers/Action.tsx +19 -1
  230. package/src/renderers/CRUD.tsx +15 -34
  231. package/src/renderers/Card.tsx +21 -15
  232. package/src/renderers/Collapse.tsx +5 -1
  233. package/src/renderers/Copyable.tsx +46 -44
  234. package/src/renderers/Dialog.tsx +3 -2
  235. package/src/renderers/Drawer.tsx +2 -1
  236. package/src/renderers/DropDownButton.tsx +8 -0
  237. package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
  238. package/src/renderers/Form/Combo.tsx +7 -0
  239. package/src/renderers/Form/Editor.tsx +19 -20
  240. package/src/renderers/Form/InputExcel.tsx +28 -3
  241. package/src/renderers/Form/InputImage.tsx +23 -8
  242. package/src/renderers/Form/InputNumber.tsx +113 -18
  243. package/src/renderers/Form/InputRange.tsx +5 -2
  244. package/src/renderers/Form/InputTable.tsx +88 -9
  245. package/src/renderers/Form/NestedSelect.tsx +1 -1
  246. package/src/renderers/Form/Options.tsx +3 -1
  247. package/src/renderers/Form/index.tsx +0 -15
  248. package/src/renderers/Form/wrapControl.tsx +2 -2
  249. package/src/renderers/Json.tsx +10 -1
  250. package/src/renderers/List.tsx +32 -19
  251. package/src/renderers/Page.tsx +19 -0
  252. package/src/renderers/Service.tsx +101 -3
  253. package/src/renderers/Steps.tsx +12 -9
  254. package/src/renderers/Table/TableBody.tsx +29 -10
  255. package/src/renderers/Table/TableCell.tsx +15 -1
  256. package/src/renderers/Table/TableContent.tsx +7 -1
  257. package/src/renderers/Table/TableRow.tsx +18 -17
  258. package/src/renderers/Table/index.tsx +117 -28
  259. package/src/schemaExtend.ts +66 -0
  260. package/src/store/crud.ts +34 -38
  261. package/src/store/formItem.ts +10 -6
  262. package/src/store/modal.ts +4 -0
  263. package/src/store/service.ts +0 -19
  264. package/src/store/table.ts +48 -0
  265. package/src/utils/api.ts +11 -0
  266. package/src/utils/attachmentAdpator.ts +90 -0
  267. package/src/utils/helper.ts +15 -0
  268. package/src/utils/resize-sensor.ts +7 -0
  269. package/src/utils/tpl-builtin.ts +36 -17
  270. package/src/utils/validations.ts +80 -12
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/Options.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file 所有列表选择类控件的父级,比如 Select、Radios、Checkboxes、\n * List、ButtonGroup 等等\n */\nimport {Api, PlainObject, Schema} from '../../types';\nimport {isEffectiveApi, isApiOutdated, isValidApi} from '../../utils/api';\nimport {isAlive} from 'mobx-state-tree';\nimport {\n anyChanged,\n autobind,\n createObject,\n setVariable,\n spliceTree,\n findTreeIndex,\n getTree,\n isEmpty,\n getTreeAncestors,\n normalizeNodePath\n} from '../../utils/helper';\nimport {reaction} from 'mobx';\nimport {\n FormControlProps,\n registerFormItem,\n FormItemBasicConfig,\n detectProps as itemDetectProps,\n FormBaseControl\n} from './Item';\nimport {IFormItemStore} from '../../store/formItem';\nexport type OptionsControlComponent = React.ComponentType<FormControlProps>;\n\nimport React from 'react';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n dataMapping\n} from '../../utils/tpl-builtin';\nimport {\n Option,\n OptionProps,\n normalizeOptions,\n optionValueCompare\n} from '../../components/Select';\nimport {filter} from '../../utils/tpl';\nimport findIndex from 'lodash/findIndex';\nimport {\n SchemaApi,\n SchemaExpression,\n SchemaObject,\n SchemaTokenizeableString\n} from '../../Schema';\n\nexport {Option};\n\nexport interface FormOptionsControl extends FormBaseControl {\n /**\n * 选项集合\n */\n options?: Array<Option> | string[] | PlainObject;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi | SchemaTokenizeableString;\n\n /**\n * 默认选择选项第一个值。\n */\n selectFirst?: boolean;\n\n /**\n * 用表达式来配置 source 接口初始要不要拉取\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置 source 接口初始拉不拉取。\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetch?: boolean;\n\n /**\n * 是否为多选模式\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 是否可清除。\n */\n clearable?: boolean;\n\n /**\n * 点清除按钮时,将表单项设置成当前配置的值。\n *\n * @default ''\n */\n resetValue?: string;\n\n /**\n * 延时加载的 API,当选项中有 defer: true 的选项时,点开会通过此接口扩充。\n */\n deferApi?: SchemaApi;\n\n /**\n * 添加时调用的接口\n */\n addApi?: SchemaApi;\n\n /**\n * 新增时的表单项。\n */\n addControls?: Array<SchemaObject>;\n\n /**\n * 是否可以新增\n */\n creatable?: boolean;\n\n /**\n * 新增文字\n */\n createBtnLabel?: string;\n\n /**\n * 是否可以编辑\n */\n editable?: boolean;\n\n /**\n * 编辑时调用的 API\n */\n editApi?: SchemaApi;\n\n /**\n * 选项修改的表单项\n */\n editControls?: Array<SchemaObject>;\n\n /**\n * 是否可删除\n */\n removable?: boolean;\n\n /**\n * 选项删除 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 选项删除提示文字。\n */\n deleteConfirmText?: string;\n\n /**\n * 自动填充,当选项被选择的时候,将选项中的其他值同步设置到表单内。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n}\n\nexport interface OptionsBasicConfig extends FormItemBasicConfig {\n autoLoadOptionsFromSource?: boolean;\n}\n\nexport interface OptionsConfig extends OptionsBasicConfig {\n component: React.ComponentType<OptionsControlProps>;\n}\n\n// 下发给注册进来的组件的属性。\nexport interface OptionsControlProps\n extends FormControlProps,\n Omit<\n FormOptionsControl,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n options: Array<Option>;\n onToggle: (\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void;\n onToggleAll: () => void;\n selectedOptions: Array<Option>;\n setOptions: (value: Array<any>, skipNormalize?: boolean) => void;\n setLoading: (value: boolean) => void;\n reloadOptions: (setError?: boolean) => void;\n deferLoad: (option: Option) => void;\n expandTreeOptions: (nodePathArr: any[]) => void;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n onDelete?: (value: Option) => void;\n}\n\n// 自己接收的属性。\nexport interface OptionsProps\n extends FormControlProps,\n Omit<OptionProps, 'className'> {\n source?: Api;\n deferApi?: Api;\n creatable?: boolean;\n addApi?: Api;\n addControls?: Array<any>;\n editApi?: Api;\n editControls?: Array<any>;\n deleteApi?: Api;\n deleteConfirmText?: string;\n optionLabel?: string;\n}\n\nexport const detectProps = itemDetectProps.concat([\n 'value',\n 'options',\n 'size',\n 'buttons',\n 'columnsCount',\n 'multiple',\n 'hideRoot',\n 'checkAll',\n 'showIcon',\n 'showRadio',\n 'btnDisabled',\n 'joinValues',\n 'extractValue',\n 'borderMode',\n 'hideSelected'\n]);\n\nexport function registerOptionsControl(config: OptionsConfig) {\n const Control = config.component;\n\n class FormOptionsItem extends React.Component<OptionsProps, any> {\n static displayName = `OptionsControl(${config.type})`;\n static defaultProps = {\n delimiter: ',',\n labelField: 'label',\n valueField: 'value',\n joinValues: true,\n extractValue: false,\n multiple: false,\n placeholder: 'Select.placeholder',\n resetValue: '',\n deleteConfirmText: '确定要删除?',\n ...Control.defaultProps\n };\n static propsList: any = (Control as any).propsList\n ? [...(Control as any).propsList]\n : [];\n static ComposedComponent = Control;\n\n reaction?: () => void;\n input: any;\n\n constructor(props: OptionsProps) {\n super(props);\n\n const {\n initFetch,\n formItem,\n source,\n data,\n setPrinstineValue,\n defaultValue,\n multiple,\n joinValues,\n extractValue,\n addHook,\n formInited,\n valueField,\n options,\n value,\n defaultCheckAll\n } = props;\n\n if (formItem) {\n formItem.setOptions(\n normalizeOptions(options),\n this.changeOptionValue,\n data\n );\n\n this.reaction = reaction(\n () => JSON.stringify([formItem.loading, formItem.filteredOptions]),\n () => this.forceUpdate()\n );\n // 默认全选。这里会和默认值\\回填值逻辑冲突,所以如果有配置source则不执行默认全选\n if (\n multiple &&\n defaultCheckAll &&\n formItem.filteredOptions?.length &&\n !source\n ) {\n this.defaultCheckAll();\n }\n }\n\n let loadOptions: boolean = initFetch !== false;\n\n if (formItem && joinValues === false && defaultValue) {\n const selectedOptions = extractValue\n ? formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) =>\n selectedOption[valueField || 'value']\n )\n : formItem.getSelectedOptions(value);\n setPrinstineValue(\n multiple ? selectedOptions.concat() : selectedOptions[0]\n );\n }\n\n loadOptions &&\n config.autoLoadOptionsFromSource !== false &&\n (formInited || !addHook\n ? this.reload()\n : addHook && addHook(this.initOptions, 'init'));\n }\n\n componentDidMount() {\n this.normalizeValue();\n\n if (this.props.value) {\n this.syncAutoFill(this.props.value);\n }\n }\n\n shouldComponentUpdate(nextProps: OptionsProps) {\n if (config.strictMode === false || nextProps.strictMode === false) {\n return true;\n } else if (nextProps.source || nextProps.autoComplete) {\n return true;\n } else if (nextProps.formItem?.expressionsInOptions) {\n return true;\n }\n\n if (anyChanged(detectProps, this.props, nextProps)) {\n return true;\n }\n\n return false;\n }\n\n componentDidUpdate(prevProps: OptionsProps) {\n const props = this.props;\n const formItem = props.formItem as IFormItemStore;\n\n if (prevProps.options !== props.options && formItem) {\n formItem.setOptions(\n normalizeOptions(props.options || []),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n } else if (\n config.autoLoadOptionsFromSource !== false &&\n props.formInited &&\n props.source &&\n formItem &&\n (prevProps.source !== props.source || prevProps.data !== props.data)\n ) {\n if (isPureVariable(props.source as string)) {\n const prevOptions = resolveVariableAndFilter(\n prevProps.source as string,\n prevProps.data,\n '| raw'\n );\n const options = resolveVariableAndFilter(\n props.source as string,\n props.data,\n '| raw'\n );\n\n if (prevOptions !== options) {\n formItem.setOptions(\n normalizeOptions(options || []),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n }\n } else if (\n isEffectiveApi(props.source, props.data) &&\n isApiOutdated(\n prevProps.source,\n props.source,\n prevProps.data,\n props.data\n )\n ) {\n formItem\n .loadOptions(\n props.source,\n props.data,\n undefined,\n true,\n this.changeOptionValue\n )\n .then(() => this.normalizeValue());\n }\n }\n\n if (prevProps.value !== props.value || formItem?.expressionsInOptions) {\n formItem.syncOptions(undefined, props.data);\n this.syncAutoFill(props.value);\n }\n }\n\n componentWillUnmount() {\n this.props.removeHook?.(this.reload, 'init');\n this.reaction?.();\n }\n\n syncAutoFill(value: any) {\n const {autoFill, multiple, onBulkChange, data} = this.props;\n const formItem = this.props.formItem as IFormItemStore;\n\n if (autoFill && !isEmpty(autoFill) && formItem.filteredOptions.length) {\n const selectedOptions = formItem.getSelectedOptions(value);\n const toSync = dataMapping(\n autoFill,\n multiple\n ? {\n items: selectedOptions.map(item =>\n createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n item,\n true\n )\n },\n item\n )\n )\n }\n : createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n selectedOptions[0],\n true\n )\n },\n selectedOptions[0]\n )\n );\n onBulkChange?.(toSync);\n }\n }\n\n // 当前值,跟设置预期的值格式不一致时自动转换。\n normalizeValue() {\n const {\n joinValues,\n extractValue,\n value,\n multiple,\n formItem,\n valueField,\n enableNodePath,\n pathSeparator,\n onChange\n } = this.props;\n\n if (!formItem || joinValues !== false || !formItem.options.length) {\n return;\n }\n\n if (\n extractValue === false &&\n (typeof value === 'string' || typeof value === 'number')\n ) {\n const selectedOptions = formItem.getSelectedOptions(value);\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n } else if (\n extractValue === true &&\n value &&\n !(\n (Array.isArray(value) &&\n value.every(\n val => typeof val === 'string' || typeof val === 'number'\n )) ||\n typeof value === 'string' ||\n typeof value === 'number'\n )\n ) {\n const selectedOptions = formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) => selectedOption[valueField || 'value']\n );\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n }\n }\n\n getWrappedInstance() {\n return this.input;\n }\n\n @autobind\n inputRef(ref: any) {\n this.input = ref;\n }\n\n @autobind\n handleToggle(\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) {\n const {onChange, formItem, value} = this.props;\n\n if (!formItem) {\n return;\n }\n\n let newValue: string | Array<Option> | Option = this.toggleValue(\n option,\n value\n );\n\n onChange && onChange(newValue, submitOnChange, changeImmediately);\n }\n\n /**\n * 初始化时处理默认全选逻辑\n */\n defaultCheckAll() {\n const {value, formItem, setPrinstineValue} = this.props;\n // 如果有默认值\\回填值直接返回\n if (!formItem || formItem.getSelectedOptions(value).length) {\n return;\n }\n let valueArray = formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n setPrinstineValue?.(newValue);\n }\n\n /**\n * 选中的值经过joinValues和delimiter等规则处理输出规定格式的值\n * @param valueArray 选中值的数组\n * @returns 通过joinValues和delimiter等规则输出规定格式的值\n */\n formatValueArray(valueArray: Array<Option>) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n multiple\n } = this.props;\n let newValue: string | Array<Option> | Option = '';\n if (multiple) {\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n newValue = valueArray[0] || resetValue;\n\n if (joinValues && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n return newValue;\n }\n\n @autobind\n handleToggleAll() {\n const {value, onChange, formItem} = this.props;\n\n if (!formItem) {\n return;\n }\n const selectedOptions = formItem.getSelectedOptions(value);\n let valueArray =\n selectedOptions.length === formItem.filteredOptions.length\n ? []\n : formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n onChange && onChange(newValue);\n }\n\n toggleValue(option: Option, originValue?: any) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n clearable,\n resetValue,\n multiple,\n formItem\n } = this.props;\n\n let valueArray =\n originValue !== undefined\n ? formItem!.getSelectedOptions(originValue).concat()\n : [];\n\n const idx = findIndex(\n valueArray,\n optionValueCompare(option[valueField || 'value'], valueField || 'value')\n );\n let newValue: string | Array<Option> | Option = '';\n\n if (multiple) {\n if (~idx) {\n valueArray.splice(idx, 1);\n } else {\n valueArray.push(option);\n }\n\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n if (~idx && clearable) {\n valueArray.splice(idx, 1);\n } else {\n valueArray = [option];\n }\n\n newValue = valueArray[0] || resetValue;\n\n if ((joinValues || extractValue) && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n\n return newValue;\n }\n\n // 当有 action 触发,如果指定了 reload 目标组件,有可能会来到这里面来\n @autobind\n reload() {\n return this.reloadOptions();\n }\n\n @autobind\n reloadOptions(setError?: boolean, isInit = false) {\n const {source, formItem, data, onChange, setPrinstineValue, selectFirst} =\n this.props;\n\n if (formItem && isPureVariable(source as string)) {\n isAlive(formItem) &&\n formItem.setOptions(\n normalizeOptions(\n resolveVariableAndFilter(source as string, data, '| raw') || []\n ),\n this.changeOptionValue,\n data\n );\n return;\n } else if (!formItem || !isEffectiveApi(source, data)) {\n return;\n }\n\n return formItem.loadOptions(\n source,\n data,\n undefined,\n false,\n isInit ? setPrinstineValue : onChange,\n setError\n );\n }\n\n @autobind\n deferLoad(option: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.deferLoadOptions(option, api, createObject(data, option));\n }\n\n @autobind\n expandTreeOptions(nodePathArr: any[]) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.expandTreeOptions(nodePathArr, api, createObject(data));\n }\n\n @autobind\n async initOptions(data: any) {\n await this.reloadOptions(false, true);\n const {formItem, name, multiple, defaultCheckAll} = this.props;\n if (!formItem) {\n return;\n }\n if (isAlive(formItem) && formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n\n // 默认全选\n if (multiple && defaultCheckAll && formItem.filteredOptions?.length) {\n this.defaultCheckAll();\n }\n }\n\n focus() {\n this.input && this.input.focus && this.input.focus();\n }\n\n @autobind\n changeOptionValue(value: any) {\n const {\n onChange,\n formInited,\n setPrinstineValue,\n value: originValue\n } = this.props;\n\n if (formInited === false) {\n originValue === undefined && setPrinstineValue?.(value);\n } else {\n onChange?.(value);\n }\n }\n\n @autobind\n setOptions(options: Array<any>, skipNormalize = false) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem &&\n formItem.setOptions(\n skipNormalize ? options : normalizeOptions(options || []),\n this.changeOptionValue,\n this.props.data\n );\n }\n\n @autobind\n syncOptions() {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.syncOptions(undefined, this.props.data);\n }\n\n @autobind\n setLoading(value: boolean) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.setLoading(value);\n }\n\n @autobind\n async handleOptionAdd(\n idx: number | Array<number> = -1,\n value?: any,\n skipForm: boolean = false\n ) {\n let {\n addControls,\n disabled,\n labelField,\n onOpenDialog,\n optionLabel,\n addApi,\n source,\n data,\n valueField,\n formItem: model,\n createBtnLabel,\n env,\n translate: __\n } = this.props;\n\n // 禁用或者没有配置 name\n if (disabled || !model) {\n return;\n }\n\n // 用户没有配置表单项,则自动创建一个 label 输入\n if (!skipForm && (!Array.isArray(addControls) || !addControls.length)) {\n addControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n const parent = Array.isArray(idx)\n ? getTree(model.options, idx.slice(0, -1))\n : undefined;\n\n const ctx: any = createObject(\n data,\n Array.isArray(idx)\n ? {\n parent: parent,\n ...value\n }\n : value\n );\n\n let result: any = skipForm\n ? ctx\n : await onOpenDialog(\n {\n type: 'dialog',\n title: createBtnLabel || `新增${optionLabel || '选项'}`,\n body: {\n type: 'form',\n api: addApi,\n controls: addControls\n }\n },\n ctx\n );\n\n // 单独发请求\n if (skipForm && addApi) {\n try {\n const payload = await env.fetcher(addApi!, result, {\n method: 'post'\n });\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('Options.createFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 有 result 说明弹框点了确认。否则就是取消了。\n if (!result) {\n return;\n }\n\n // 没走服务端的。\n if (!result.hasOwnProperty(valueField || 'value')) {\n result = {\n ...result,\n [valueField || 'value']: result[labelField || 'label']\n };\n }\n\n // 如果是懒加载的,只懒加载当前节点。\n if (parent?.defer) {\n this.deferLoad(parent);\n } else if (source && addApi) {\n // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了\n // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。\n this.reload();\n } else {\n // 否则直接前端变更 options\n let options = model.options.concat();\n if (Array.isArray(idx)) {\n options = spliceTree(options, idx, 0, {...result});\n } else {\n ~idx\n ? options.splice(idx, 0, {...result})\n : options.push({...result});\n }\n model.setOptions(options, this.changeOptionValue, data);\n }\n }\n\n @autobind\n async handleOptionEdit(\n value: any,\n origin: any = value,\n skipForm: boolean = false\n ) {\n let {\n editControls,\n disabled,\n labelField,\n onOpenDialog,\n editApi,\n env,\n source,\n data,\n formItem: model,\n optionLabel,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n if (!skipForm && (!Array.isArray(editControls) || !editControls.length)) {\n editControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n\n let result = skipForm\n ? value\n : await onOpenDialog(\n {\n type: 'dialog',\n title: __('Options.editLabel', {\n label: optionLabel || __('Options.label')\n }),\n body: {\n type: 'form',\n api: editApi,\n controls: editControls\n }\n },\n createObject(data, value)\n );\n\n // 单独发请求\n if (skipForm && editApi) {\n try {\n const payload = await env.fetcher(\n editApi!,\n createObject(data, result),\n {\n method: 'post'\n }\n );\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('saveFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 没有结果,说明取消了。\n if (!result) {\n return;\n }\n\n if (source && editApi) {\n this.reload();\n } else {\n const indexes = findTreeIndex(model.options, item => item === origin);\n\n if (indexes) {\n model.setOptions(\n spliceTree(model.options, indexes, 1, {\n ...origin,\n ...result\n }),\n this.changeOptionValue,\n data\n );\n }\n }\n }\n\n @autobind\n async handleOptionDelete(value: any) {\n let {\n deleteConfirmText,\n disabled,\n data,\n deleteApi,\n env,\n formItem: model,\n source,\n valueField,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n const ctx = createObject(data, value);\n\n // 如果配置了 deleteConfirmText 让用户先确认。\n const confirmed = deleteConfirmText\n ? await env.confirm(filter(deleteConfirmText, ctx))\n : true;\n if (!confirmed) {\n return;\n }\n\n // 通过 deleteApi 删除。\n try {\n if (!deleteApi) {\n throw new Error(__('Options.deleteAPI'));\n }\n\n const result = await env.fetcher(deleteApi!, ctx, {\n method: 'delete'\n });\n\n if (!result.ok) {\n env.notify('error', result.msg || __('deleteFailed'));\n } else if (source) {\n this.reload();\n } else {\n const options = model.options.concat();\n const indexes = findTreeIndex(\n options,\n item => item[valueField || 'value'] == value[valueField || 'value']\n );\n\n if (indexes) {\n model.setOptions(\n spliceTree(options, indexes, 1),\n this.changeOptionValue,\n data\n );\n }\n }\n } catch (e) {\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n render() {\n const {\n value,\n formItem,\n addApi,\n editApi,\n deleteApi,\n creatable,\n editable,\n removable,\n enableNodePath,\n pathSeparator,\n delimiter = ',',\n labelField = 'label',\n valueField = 'value'\n } = this.props;\n\n const {nodePathArray, nodeValueArray} = normalizeNodePath(\n value,\n enableNodePath,\n labelField,\n valueField,\n pathSeparator,\n delimiter\n );\n\n return (\n <Control\n {...this.props}\n ref={this.inputRef}\n options={formItem ? formItem.filteredOptions : []}\n onToggle={this.handleToggle}\n onToggleAll={this.handleToggleAll}\n selectedOptions={\n formItem\n ? formItem.getSelectedOptions(\n value,\n enableNodePath ? nodeValueArray : undefined\n )\n : []\n }\n nodePath={nodePathArray}\n loading={formItem ? formItem.loading : false}\n setLoading={this.setLoading}\n setOptions={this.setOptions}\n syncOptions={this.syncOptions}\n reloadOptions={this.reload}\n deferLoad={this.deferLoad}\n expandTreeOptions={this.expandTreeOptions}\n creatable={\n creatable !== false && isEffectiveApi(addApi) ? true : creatable\n }\n editable={editable || (editable !== false && isEffectiveApi(editApi))}\n removable={\n removable || (removable !== false && isEffectiveApi(deleteApi))\n }\n onAdd={this.handleOptionAdd}\n onEdit={this.handleOptionEdit}\n onDelete={this.handleOptionDelete}\n />\n );\n }\n }\n\n return registerFormItem({\n ...(config as FormItemBasicConfig),\n strictMode: false,\n component: FormOptionsItem\n });\n}\n\nexport function OptionsControl(config: OptionsBasicConfig) {\n return function <T extends React.ComponentType<OptionsControlProps>>(\n component: T\n ): T {\n const renderer = registerOptionsControl({\n ...config,\n component: component\n });\n return renderer.component as any;\n };\n}\n\nexport function highlight(\n text: string,\n input?: string,\n hlClassName: string = 'is-matched'\n) {\n if (!input) {\n return text;\n }\n\n text = String(text);\n const reg = new RegExp(input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'), 'ig');\n if (!reg.test(text)) {\n return text;\n }\n\n const dom: Array<any> = [];\n\n let start = 0;\n let match = null;\n\n reg.lastIndex = 0;\n while ((match = reg.exec(text))) {\n const prev = text.substring(start, match.index);\n prev && dom.push(<span key={dom.length}>{prev}</span>);\n\n match[0] &&\n dom.push(\n <span className={hlClassName} key={dom.length}>\n {match[0]}\n </span>\n );\n start = match.index + match[0].length;\n }\n const rest = text.substring(start);\n rest && dom.push(<span key={dom.length}>{rest}</span>);\n\n // const parts = text.split(reg);\n\n // parts.forEach((text: string, index) => {\n // text && dom.push(<span key={index}>{text}</span>);\n // dom.push(\n // <span className={hlClassName} key={`${index}-hl`}>\n // {input}\n // </span>\n // );\n // });\n\n // dom.pop();\n\n return dom;\n}\n"
11
+ "/**\n * @file 所有列表选择类控件的父级,比如 Select、Radios、Checkboxes、\n * List、ButtonGroup 等等\n */\nimport {Api, PlainObject, Schema} from '../../types';\nimport {isEffectiveApi, isApiOutdated, isValidApi} from '../../utils/api';\nimport {isAlive} from 'mobx-state-tree';\nimport {\n anyChanged,\n autobind,\n createObject,\n setVariable,\n spliceTree,\n findTreeIndex,\n getTree,\n isEmpty,\n getTreeAncestors,\n normalizeNodePath\n} from '../../utils/helper';\nimport {reaction} from 'mobx';\nimport {\n FormControlProps,\n registerFormItem,\n FormItemBasicConfig,\n detectProps as itemDetectProps,\n FormBaseControl\n} from './Item';\nimport {IFormItemStore} from '../../store/formItem';\nexport type OptionsControlComponent = React.ComponentType<FormControlProps>;\n\nimport React from 'react';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n dataMapping\n} from '../../utils/tpl-builtin';\nimport {\n Option,\n OptionProps,\n normalizeOptions,\n optionValueCompare\n} from '../../components/Select';\nimport {filter} from '../../utils/tpl';\nimport findIndex from 'lodash/findIndex';\nimport {\n SchemaApi,\n SchemaExpression,\n SchemaObject,\n SchemaTokenizeableString\n} from '../../Schema';\n\nexport {Option};\n\nexport interface FormOptionsControl extends FormBaseControl {\n /**\n * 选项集合\n */\n options?: Array<Option> | string[] | PlainObject;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi | SchemaTokenizeableString;\n\n /**\n * 默认选择选项第一个值。\n */\n selectFirst?: boolean;\n\n /**\n * 用表达式来配置 source 接口初始要不要拉取\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置 source 接口初始拉不拉取。\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetch?: boolean;\n\n /**\n * 是否为多选模式\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 是否可清除。\n */\n clearable?: boolean;\n\n /**\n * 点清除按钮时,将表单项设置成当前配置的值。\n *\n * @default ''\n */\n resetValue?: string;\n\n /**\n * 延时加载的 API,当选项中有 defer: true 的选项时,点开会通过此接口扩充。\n */\n deferApi?: SchemaApi;\n\n /**\n * 添加时调用的接口\n */\n addApi?: SchemaApi;\n\n /**\n * 新增时的表单项。\n */\n addControls?: Array<SchemaObject>;\n\n /**\n * 是否可以新增\n */\n creatable?: boolean;\n\n /**\n * 新增文字\n */\n createBtnLabel?: string;\n\n /**\n * 是否可以编辑\n */\n editable?: boolean;\n\n /**\n * 编辑时调用的 API\n */\n editApi?: SchemaApi;\n\n /**\n * 选项修改的表单项\n */\n editControls?: Array<SchemaObject>;\n\n /**\n * 是否可删除\n */\n removable?: boolean;\n\n /**\n * 选项删除 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 选项删除提示文字。\n */\n deleteConfirmText?: string;\n\n /**\n * 自动填充,当选项被选择的时候,将选项中的其他值同步设置到表单内。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n}\n\nexport interface OptionsBasicConfig extends FormItemBasicConfig {\n autoLoadOptionsFromSource?: boolean;\n}\n\nexport interface OptionsConfig extends OptionsBasicConfig {\n component: React.ComponentType<OptionsControlProps>;\n}\n\n// 下发给注册进来的组件的属性。\nexport interface OptionsControlProps\n extends FormControlProps,\n Omit<\n FormOptionsControl,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n options: Array<Option>;\n onToggle: (\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void;\n onToggleAll: () => void;\n selectedOptions: Array<Option>;\n setOptions: (value: Array<any>, skipNormalize?: boolean) => void;\n setLoading: (value: boolean) => void;\n reloadOptions: (setError?: boolean) => void;\n deferLoad: (option: Option) => void;\n expandTreeOptions: (nodePathArr: any[]) => void;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n onDelete?: (value: Option) => void;\n}\n\n// 自己接收的属性。\nexport interface OptionsProps\n extends FormControlProps,\n Omit<OptionProps, 'className'> {\n source?: Api;\n deferApi?: Api;\n creatable?: boolean;\n addApi?: Api;\n addControls?: Array<any>;\n editApi?: Api;\n editControls?: Array<any>;\n deleteApi?: Api;\n deleteConfirmText?: string;\n optionLabel?: string;\n}\n\nexport const detectProps = itemDetectProps.concat([\n 'value',\n 'options',\n 'size',\n 'buttons',\n 'columnsCount',\n 'multiple',\n 'hideRoot',\n 'checkAll',\n 'showIcon',\n 'showRadio',\n 'btnDisabled',\n 'joinValues',\n 'extractValue',\n 'borderMode',\n 'hideSelected'\n]);\n\nexport function registerOptionsControl(config: OptionsConfig) {\n const Control = config.component;\n\n class FormOptionsItem extends React.Component<OptionsProps, any> {\n static displayName = `OptionsControl(${config.type})`;\n static defaultProps = {\n delimiter: ',',\n labelField: 'label',\n valueField: 'value',\n joinValues: true,\n extractValue: false,\n multiple: false,\n placeholder: 'Select.placeholder',\n resetValue: '',\n deleteConfirmText: '确定要删除?',\n ...Control.defaultProps\n };\n static propsList: any = (Control as any).propsList\n ? [...(Control as any).propsList]\n : [];\n static ComposedComponent = Control;\n\n reaction?: () => void;\n input: any;\n mounted = false;\n\n constructor(props: OptionsProps) {\n super(props);\n\n const {\n initFetch,\n formItem,\n source,\n data,\n setPrinstineValue,\n defaultValue,\n multiple,\n joinValues,\n extractValue,\n addHook,\n formInited,\n valueField,\n options,\n value,\n defaultCheckAll\n } = props;\n\n if (formItem) {\n formItem.setOptions(\n normalizeOptions(options),\n this.changeOptionValue,\n data\n );\n\n this.reaction = reaction(\n () => JSON.stringify([formItem.loading, formItem.filteredOptions]),\n () => this.mounted && this.forceUpdate()\n );\n // 默认全选。这里会和默认值\\回填值逻辑冲突,所以如果有配置source则不执行默认全选\n if (\n multiple &&\n defaultCheckAll &&\n formItem.filteredOptions?.length &&\n !source\n ) {\n this.defaultCheckAll();\n }\n }\n\n let loadOptions: boolean = initFetch !== false;\n\n if (formItem && joinValues === false && defaultValue) {\n const selectedOptions = extractValue\n ? formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) =>\n selectedOption[valueField || 'value']\n )\n : formItem.getSelectedOptions(value);\n setPrinstineValue(\n multiple ? selectedOptions.concat() : selectedOptions[0]\n );\n }\n\n loadOptions &&\n config.autoLoadOptionsFromSource !== false &&\n (formInited || !addHook\n ? this.reload()\n : addHook && addHook(this.initOptions, 'init'));\n }\n\n componentDidMount() {\n this.mounted = true;\n this.normalizeValue();\n\n if (this.props.value) {\n this.syncAutoFill(this.props.value);\n }\n }\n\n shouldComponentUpdate(nextProps: OptionsProps) {\n if (config.strictMode === false || nextProps.strictMode === false) {\n return true;\n } else if (nextProps.source || nextProps.autoComplete) {\n return true;\n } else if (nextProps.formItem?.expressionsInOptions) {\n return true;\n }\n\n if (anyChanged(detectProps, this.props, nextProps)) {\n return true;\n }\n\n return false;\n }\n\n componentDidUpdate(prevProps: OptionsProps) {\n const props = this.props;\n const formItem = props.formItem as IFormItemStore;\n\n if (prevProps.options !== props.options && formItem) {\n formItem.setOptions(\n normalizeOptions(props.options || []),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n } else if (\n config.autoLoadOptionsFromSource !== false &&\n props.formInited &&\n props.source &&\n formItem &&\n (prevProps.source !== props.source || prevProps.data !== props.data)\n ) {\n if (isPureVariable(props.source as string)) {\n const prevOptions = resolveVariableAndFilter(\n prevProps.source as string,\n prevProps.data,\n '| raw'\n );\n const options = resolveVariableAndFilter(\n props.source as string,\n props.data,\n '| raw'\n );\n\n if (prevOptions !== options) {\n formItem.setOptions(\n normalizeOptions(options || []),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n }\n } else if (\n isEffectiveApi(props.source, props.data) &&\n isApiOutdated(\n prevProps.source,\n props.source,\n prevProps.data,\n props.data\n )\n ) {\n formItem\n .loadOptions(\n props.source,\n props.data,\n undefined,\n true,\n this.changeOptionValue\n )\n .then(() => this.normalizeValue());\n }\n }\n\n if (prevProps.value !== props.value || formItem?.expressionsInOptions) {\n formItem.syncOptions(undefined, props.data);\n this.syncAutoFill(props.value);\n }\n }\n\n componentWillUnmount() {\n this.props.removeHook?.(this.reload, 'init');\n this.reaction?.();\n }\n\n syncAutoFill(value: any) {\n const {autoFill, multiple, onBulkChange, data} = this.props;\n const formItem = this.props.formItem as IFormItemStore;\n\n if (autoFill && !isEmpty(autoFill) && formItem.filteredOptions.length) {\n const selectedOptions = formItem.getSelectedOptions(value);\n const toSync = dataMapping(\n autoFill,\n multiple\n ? {\n items: selectedOptions.map(item =>\n createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n item,\n true\n )\n },\n item\n )\n )\n }\n : createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n selectedOptions[0],\n true\n )\n },\n selectedOptions[0]\n )\n );\n onBulkChange?.(toSync);\n }\n }\n\n // 当前值,跟设置预期的值格式不一致时自动转换。\n normalizeValue() {\n const {\n joinValues,\n extractValue,\n value,\n multiple,\n formItem,\n valueField,\n enableNodePath,\n pathSeparator,\n onChange\n } = this.props;\n\n if (!formItem || joinValues !== false || !formItem.options.length) {\n return;\n }\n\n if (\n extractValue === false &&\n (typeof value === 'string' || typeof value === 'number')\n ) {\n const selectedOptions = formItem.getSelectedOptions(value);\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n } else if (\n extractValue === true &&\n value &&\n !(\n (Array.isArray(value) &&\n value.every(\n val => typeof val === 'string' || typeof val === 'number'\n )) ||\n typeof value === 'string' ||\n typeof value === 'number'\n )\n ) {\n const selectedOptions = formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) => selectedOption[valueField || 'value']\n );\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n }\n }\n\n getWrappedInstance() {\n return this.input;\n }\n\n @autobind\n inputRef(ref: any) {\n this.input = ref;\n }\n\n @autobind\n handleToggle(\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) {\n const {onChange, formItem, value} = this.props;\n\n if (!formItem) {\n return;\n }\n\n let newValue: string | Array<Option> | Option = this.toggleValue(\n option,\n value\n );\n\n onChange && onChange(newValue, submitOnChange, changeImmediately);\n }\n\n /**\n * 初始化时处理默认全选逻辑\n */\n defaultCheckAll() {\n const {value, formItem, setPrinstineValue} = this.props;\n // 如果有默认值\\回填值直接返回\n if (!formItem || formItem.getSelectedOptions(value).length) {\n return;\n }\n let valueArray = formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n setPrinstineValue?.(newValue);\n }\n\n /**\n * 选中的值经过joinValues和delimiter等规则处理输出规定格式的值\n * @param valueArray 选中值的数组\n * @returns 通过joinValues和delimiter等规则输出规定格式的值\n */\n formatValueArray(valueArray: Array<Option>) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n multiple\n } = this.props;\n let newValue: string | Array<Option> | Option = '';\n if (multiple) {\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n newValue = valueArray[0] || resetValue;\n\n if (joinValues && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n return newValue;\n }\n\n @autobind\n handleToggleAll() {\n const {value, onChange, formItem} = this.props;\n\n if (!formItem) {\n return;\n }\n const selectedOptions = formItem.getSelectedOptions(value);\n let valueArray =\n selectedOptions.length === formItem.filteredOptions.length\n ? []\n : formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n onChange && onChange(newValue);\n }\n\n toggleValue(option: Option, originValue?: any) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n clearable,\n resetValue,\n multiple,\n formItem\n } = this.props;\n\n let valueArray =\n originValue !== undefined\n ? formItem!.getSelectedOptions(originValue).concat()\n : [];\n\n const idx = findIndex(\n valueArray,\n optionValueCompare(option[valueField || 'value'], valueField || 'value')\n );\n let newValue: string | Array<Option> | Option = '';\n\n if (multiple) {\n if (~idx) {\n valueArray.splice(idx, 1);\n } else {\n valueArray.push(option);\n }\n\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n if (~idx && clearable) {\n valueArray.splice(idx, 1);\n } else {\n valueArray = [option];\n }\n\n newValue = valueArray[0] || resetValue;\n\n if ((joinValues || extractValue) && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n\n return newValue;\n }\n\n // 当有 action 触发,如果指定了 reload 目标组件,有可能会来到这里面来\n @autobind\n reload() {\n return this.reloadOptions();\n }\n\n @autobind\n reloadOptions(setError?: boolean, isInit = false) {\n const {source, formItem, data, onChange, setPrinstineValue, selectFirst} =\n this.props;\n\n if (formItem && isPureVariable(source as string)) {\n isAlive(formItem) &&\n formItem.setOptions(\n normalizeOptions(\n resolveVariableAndFilter(source as string, data, '| raw') || []\n ),\n this.changeOptionValue,\n data\n );\n return;\n } else if (!formItem || !isEffectiveApi(source, data)) {\n return;\n }\n\n return formItem.loadOptions(\n source,\n data,\n undefined,\n false,\n isInit ? setPrinstineValue : onChange,\n setError\n );\n }\n\n @autobind\n deferLoad(option: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.deferLoadOptions(option, api, createObject(data, option));\n }\n\n @autobind\n expandTreeOptions(nodePathArr: any[]) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.expandTreeOptions(nodePathArr, api, createObject(data));\n }\n\n @autobind\n async initOptions(data: any) {\n await this.reloadOptions(false, true);\n const {formItem, name, multiple, defaultCheckAll} = this.props;\n if (!formItem) {\n return;\n }\n if (isAlive(formItem) && formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n\n // 默认全选\n if (multiple && defaultCheckAll && formItem.filteredOptions?.length) {\n this.defaultCheckAll();\n }\n }\n\n focus() {\n this.input && this.input.focus && this.input.focus();\n }\n\n @autobind\n changeOptionValue(value: any) {\n const {\n onChange,\n formInited,\n setPrinstineValue,\n value: originValue\n } = this.props;\n\n if (formInited === false) {\n originValue === undefined && setPrinstineValue?.(value);\n } else {\n onChange?.(value);\n }\n }\n\n @autobind\n setOptions(options: Array<any>, skipNormalize = false) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem &&\n formItem.setOptions(\n skipNormalize ? options : normalizeOptions(options || []),\n this.changeOptionValue,\n this.props.data\n );\n }\n\n @autobind\n syncOptions() {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.syncOptions(undefined, this.props.data);\n }\n\n @autobind\n setLoading(value: boolean) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.setLoading(value);\n }\n\n @autobind\n async handleOptionAdd(\n idx: number | Array<number> = -1,\n value?: any,\n skipForm: boolean = false\n ) {\n let {\n addControls,\n disabled,\n labelField,\n onOpenDialog,\n optionLabel,\n addApi,\n source,\n data,\n valueField,\n formItem: model,\n createBtnLabel,\n env,\n translate: __\n } = this.props;\n\n // 禁用或者没有配置 name\n if (disabled || !model) {\n return;\n }\n\n // 用户没有配置表单项,则自动创建一个 label 输入\n if (!skipForm && (!Array.isArray(addControls) || !addControls.length)) {\n addControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n const parent = Array.isArray(idx)\n ? getTree(model.options, idx.slice(0, -1))\n : undefined;\n\n const ctx: any = createObject(\n data,\n Array.isArray(idx)\n ? {\n parent: parent,\n ...value\n }\n : value\n );\n\n let result: any = skipForm\n ? ctx\n : await onOpenDialog(\n {\n type: 'dialog',\n title: createBtnLabel || `新增${optionLabel || '选项'}`,\n body: {\n type: 'form',\n api: addApi,\n controls: addControls\n }\n },\n ctx\n );\n\n // 单独发请求\n if (skipForm && addApi) {\n try {\n const payload = await env.fetcher(addApi!, result, {\n method: 'post'\n });\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('Options.createFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 有 result 说明弹框点了确认。否则就是取消了。\n if (!result) {\n return;\n }\n\n // 没走服务端的。\n if (!result.hasOwnProperty(valueField || 'value')) {\n result = {\n ...result,\n [valueField || 'value']: result[labelField || 'label']\n };\n }\n\n // 如果是懒加载的,只懒加载当前节点。\n if (parent?.defer) {\n this.deferLoad(parent);\n } else if (source && addApi) {\n // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了\n // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。\n this.reload();\n } else {\n // 否则直接前端变更 options\n let options = model.options.concat();\n if (Array.isArray(idx)) {\n options = spliceTree(options, idx, 0, {...result});\n } else {\n ~idx\n ? options.splice(idx, 0, {...result})\n : options.push({...result});\n }\n model.setOptions(options, this.changeOptionValue, data);\n }\n }\n\n @autobind\n async handleOptionEdit(\n value: any,\n origin: any = value,\n skipForm: boolean = false\n ) {\n let {\n editControls,\n disabled,\n labelField,\n onOpenDialog,\n editApi,\n env,\n source,\n data,\n formItem: model,\n optionLabel,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n if (!skipForm && (!Array.isArray(editControls) || !editControls.length)) {\n editControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n\n let result = skipForm\n ? value\n : await onOpenDialog(\n {\n type: 'dialog',\n title: __('Options.editLabel', {\n label: optionLabel || __('Options.label')\n }),\n body: {\n type: 'form',\n api: editApi,\n controls: editControls\n }\n },\n createObject(data, value)\n );\n\n // 单独发请求\n if (skipForm && editApi) {\n try {\n const payload = await env.fetcher(\n editApi!,\n createObject(data, result),\n {\n method: 'post'\n }\n );\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('saveFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 没有结果,说明取消了。\n if (!result) {\n return;\n }\n\n if (source && editApi) {\n this.reload();\n } else {\n const indexes = findTreeIndex(model.options, item => item === origin);\n\n if (indexes) {\n model.setOptions(\n spliceTree(model.options, indexes, 1, {\n ...origin,\n ...result\n }),\n this.changeOptionValue,\n data\n );\n }\n }\n }\n\n @autobind\n async handleOptionDelete(value: any) {\n let {\n deleteConfirmText,\n disabled,\n data,\n deleteApi,\n env,\n formItem: model,\n source,\n valueField,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n const ctx = createObject(data, value);\n\n // 如果配置了 deleteConfirmText 让用户先确认。\n const confirmed = deleteConfirmText\n ? await env.confirm(filter(deleteConfirmText, ctx))\n : true;\n if (!confirmed) {\n return;\n }\n\n // 通过 deleteApi 删除。\n try {\n if (!deleteApi) {\n throw new Error(__('Options.deleteAPI'));\n }\n\n const result = await env.fetcher(deleteApi!, ctx, {\n method: 'delete'\n });\n\n if (!result.ok) {\n env.notify('error', result.msg || __('deleteFailed'));\n } else if (source) {\n this.reload();\n } else {\n const options = model.options.concat();\n const indexes = findTreeIndex(\n options,\n item => item[valueField || 'value'] == value[valueField || 'value']\n );\n\n if (indexes) {\n model.setOptions(\n spliceTree(options, indexes, 1),\n this.changeOptionValue,\n data\n );\n }\n }\n } catch (e) {\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n render() {\n const {\n value,\n formItem,\n addApi,\n editApi,\n deleteApi,\n creatable,\n editable,\n removable,\n enableNodePath,\n pathSeparator,\n delimiter = ',',\n labelField = 'label',\n valueField = 'value'\n } = this.props;\n\n const {nodePathArray, nodeValueArray} = normalizeNodePath(\n value,\n enableNodePath,\n labelField,\n valueField,\n pathSeparator,\n delimiter\n );\n\n return (\n <Control\n {...this.props}\n ref={this.inputRef}\n options={formItem ? formItem.filteredOptions : []}\n onToggle={this.handleToggle}\n onToggleAll={this.handleToggleAll}\n selectedOptions={\n formItem\n ? formItem.getSelectedOptions(\n value,\n enableNodePath ? nodeValueArray : undefined\n )\n : []\n }\n nodePath={nodePathArray}\n loading={formItem ? formItem.loading : false}\n setLoading={this.setLoading}\n setOptions={this.setOptions}\n syncOptions={this.syncOptions}\n reloadOptions={this.reload}\n deferLoad={this.deferLoad}\n expandTreeOptions={this.expandTreeOptions}\n creatable={\n creatable !== false && isEffectiveApi(addApi) ? true : creatable\n }\n editable={editable || (editable !== false && isEffectiveApi(editApi))}\n removable={\n removable || (removable !== false && isEffectiveApi(deleteApi))\n }\n onAdd={this.handleOptionAdd}\n onEdit={this.handleOptionEdit}\n onDelete={this.handleOptionDelete}\n />\n );\n }\n }\n\n return registerFormItem({\n ...(config as FormItemBasicConfig),\n strictMode: false,\n component: FormOptionsItem\n });\n}\n\nexport function OptionsControl(config: OptionsBasicConfig) {\n return function <T extends React.ComponentType<OptionsControlProps>>(\n component: T\n ): T {\n const renderer = registerOptionsControl({\n ...config,\n component: component\n });\n return renderer.component as any;\n };\n}\n\nexport function highlight(\n text: string,\n input?: string,\n hlClassName: string = 'is-matched'\n) {\n if (!input) {\n return text;\n }\n\n text = String(text);\n const reg = new RegExp(input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'), 'ig');\n if (!reg.test(text)) {\n return text;\n }\n\n const dom: Array<any> = [];\n\n let start = 0;\n let match = null;\n\n reg.lastIndex = 0;\n while ((match = reg.exec(text))) {\n const prev = text.substring(start, match.index);\n prev && dom.push(<span key={dom.length}>{prev}</span>);\n\n match[0] &&\n dom.push(\n <span className={hlClassName} key={dom.length}>\n {match[0]}\n </span>\n );\n start = match.index + match[0].length;\n }\n const rest = text.substring(start);\n rest && dom.push(<span key={dom.length}>{rest}</span>);\n\n // const parts = text.split(reg);\n\n // parts.forEach((text: string, index) => {\n // text && dom.push(<span key={index}>{text}</span>);\n // dom.push(\n // <span className={hlClassName} key={`${index}-hl`}>\n // {input}\n // </span>\n // );\n // });\n\n // dom.pop();\n\n return dom;\n}\n"
12
12
  ]
13
13
  }
@@ -18,7 +18,6 @@ var api_1 = require("../../utils/api");
18
18
  var Spinner_1 = (0, tslib_1.__importDefault)(require("../../components/Spinner"));
19
19
  var components_1 = require("../../components");
20
20
  var mobx_state_tree_1 = require("mobx-state-tree");
21
- var Alert2_1 = (0, tslib_1.__importDefault)(require("../../components/Alert2"));
22
21
  var Form = /** @class */ (function (_super) {
23
22
  (0, tslib_1.__extends)(Form, _super);
24
23
  function Form(props) {
@@ -785,16 +784,7 @@ var Form = /** @class */ (function (_super) {
785
784
  };
786
785
  Form.prototype.render = function () {
787
786
  var _a = this.props, $path = _a.$path, $schema = _a.$schema, wrapWithPanel = _a.wrapWithPanel, render = _a.render, title = _a.title, store = _a.store, panelClassName = _a.panelClassName, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, footerWrapClassName = _a.footerWrapClassName, actionsClassName = _a.actionsClassName, bodyClassName = _a.bodyClassName, cx = _a.classnames, affixFooter = _a.affixFooter, lazyLoad = _a.lazyLoad, __ = _a.translate, footer = _a.footer, formStore = _a.formStore;
788
- // trace(true);
789
- // console.log('Form');
790
787
  var body = this.renderBody();
791
- // props有formStore 说明是嵌套表单 || 不允许在表单的按钮组中再直接套表单
792
- if (formStore) {
793
- body = (react_1.default.createElement(react_1.default.Fragment, null,
794
- react_1.default.createElement(Alert2_1.default, { level: "warning", showCloseButton: true },
795
- react_1.default.createElement("p", null, __('Form.nestedError'))),
796
- body));
797
- }
798
788
  if (wrapWithPanel) {
799
789
  body = render('body', {
800
790
  type: 'panel',