amis 1.6.2 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Collapse.js +3 -2
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/ColorPicker.js +1 -1
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.js +2 -2
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/LocationPicker.d.ts +84 -84
- package/lib/components/LocationPicker.js +1 -1
- package/lib/components/LocationPicker.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/PickerContainer.d.ts +1 -0
- package/lib/components/PickerContainer.js +2 -2
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/ResultBox.js +1 -1
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Tabs.d.ts +3 -2
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/calendar/Calendar.js +1 -2
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +2 -0
- package/lib/components/condition-builder/Expression.js +2 -2
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +3 -0
- package/lib/components/condition-builder/Group.js +3 -3
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +2 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +2 -0
- package/lib/components/condition-builder/Item.js +4 -4
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +2 -0
- package/lib/components/condition-builder/Value.js +15 -2
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +3 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +88 -84
- package/lib/components/formula/Editor.js +22 -25
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/FuncList.d.ts +3 -0
- package/lib/components/formula/FuncList.js +19 -9
- package/lib/components/formula/FuncList.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +44 -0
- package/lib/components/formula/Picker.js +33 -8
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/VariableList.d.ts +8 -1
- package/lib/components/formula/VariableList.js +13 -4
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/icons.d.ts +3 -1
- package/lib/components/icons.js +7 -1
- package/lib/components/icons.js.map +2 -2
- package/lib/env.d.ts +4 -0
- package/lib/env.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +5 -1
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/function.js +7 -0
- package/lib/icons/input-clear.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +8 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +8 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.js +4 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Calendar.d.ts +45 -0
- package/lib/renderers/Calendar.js +21 -0
- package/lib/renderers/Calendar.js.map +13 -0
- package/lib/renderers/Card.js +2 -2
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Form/ConditionBuilder.d.ts +8 -0
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/IconPicker.d.ts +2 -0
- package/lib/renderers/Form/IconPicker.js +22 -2
- package/lib/renderers/Form/IconPicker.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.d.ts +0 -18
- package/lib/renderers/Form/InputDate.js +1 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +1 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +42 -0
- package/lib/renderers/Form/InputFormula.js +6 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +5 -0
- package/lib/renderers/Form/InputText.js +22 -4
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/Picker.js +1 -1
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/Textarea.d.ts +12 -0
- package/lib/renderers/Form/Textarea.js +31 -15
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +1 -1
- package/lib/renderers/Form/Transfer.js +7 -1
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/index.js +4 -0
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/IFrame.js +8 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Tpl.js +1 -1
- package/lib/renderers/Tpl.js.map +2 -2
- package/lib/schemaExtend.js +11 -8
- package/lib/schemaExtend.js.map +2 -2
- package/lib/themes/ang-ie11.css +427 -141
- package/lib/themes/ang.css +427 -141
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +427 -141
- package/lib/themes/antd.css +427 -141
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +432 -152
- package/lib/themes/cxd.css +432 -152
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +427 -141
- package/lib/themes/dark.css +427 -141
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +432 -152
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +22 -9
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.d.ts +1 -0
- package/lib/utils/helper.js +10 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +2 -2
- package/schema.json +201 -66
- package/scss/_mixins.scss +10 -5
- package/scss/_properties.scss +11 -0
- package/scss/components/_collapse-group.scss +4 -0
- package/scss/components/_condition-builder.scss +8 -1
- package/scss/components/_formula.scss +247 -74
- package/scss/components/_result-box.scss +0 -13
- package/scss/components/form/_color.scss +0 -2
- package/scss/components/form/_date-range.scss +14 -7
- package/scss/components/form/_date.scss +14 -7
- package/scss/components/form/_form.scss +1 -0
- package/scss/components/form/_icon-picker.scss +2 -0
- package/scss/components/form/_location.scss +0 -1
- package/scss/components/form/_picker.scss +0 -1
- package/scss/components/form/_text.scss +6 -7
- package/scss/components/form/_textarea.scss +16 -0
- package/scss/components/form/_transfer.scss +2 -1
- package/scss/themes/_cxd-variables.scss +5 -3
- package/scss/themes/cxd.scss +0 -13
- package/sdk/ang-ie11.css +467 -126
- package/sdk/ang.css +486 -141
- package/sdk/antd-ie11.css +467 -126
- package/sdk/antd.css +486 -141
- package/sdk/charts.js +17 -17
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +474 -142
- package/sdk/cxd.css +491 -153
- package/sdk/dark-ie11.css +467 -126
- package/sdk/dark.css +486 -141
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +8 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +20 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +474 -142
- package/sdk/sdk.css +491 -153
- package/sdk/sdk.js +1351 -1273
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +3 -0
- package/src/components/Collapse.tsx +4 -1
- package/src/components/ColorPicker.tsx +1 -1
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +2 -2
- package/src/components/LocationPicker.tsx +1 -1
- package/src/components/PickerContainer.tsx +3 -1
- package/src/components/ResultBox.tsx +1 -1
- package/src/components/Tabs.tsx +4 -2
- package/src/components/calendar/Calendar.tsx +1 -2
- package/src/components/condition-builder/Expression.tsx +5 -2
- package/src/components/condition-builder/Group.tsx +8 -2
- package/src/components/condition-builder/GroupOrItem.tsx +5 -1
- package/src/components/condition-builder/Item.tsx +7 -1
- package/src/components/condition-builder/Value.tsx +17 -4
- package/src/components/condition-builder/index.tsx +8 -1
- package/src/components/formula/Editor.tsx +43 -23
- package/src/components/formula/FuncList.tsx +74 -44
- package/src/components/formula/Picker.tsx +161 -23
- package/src/components/formula/VariableList.tsx +54 -9
- package/src/components/icons.tsx +7 -1
- package/src/env.tsx +5 -0
- package/src/factory.tsx +9 -1
- package/src/icons/function.svg +4 -0
- package/src/icons/input-clear.svg +1 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +8 -1
- package/src/locale/en-US.ts +5 -1
- package/src/locale/zh-CN.ts +8 -1
- package/src/renderers/Breadcrumb.tsx +0 -1
- package/src/renderers/CRUD.tsx +6 -3
- package/src/renderers/Calendar.tsx +43 -0
- package/src/renderers/Card.tsx +12 -2
- package/src/renderers/Form/ConditionBuilder.tsx +11 -0
- package/src/renderers/Form/IconPicker.tsx +29 -0
- package/src/renderers/Form/InputColor.tsx +1 -1
- package/src/renderers/Form/InputDate.tsx +1 -21
- package/src/renderers/Form/InputDateRange.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +103 -3
- package/src/renderers/Form/InputText.tsx +30 -5
- package/src/renderers/Form/Picker.tsx +1 -1
- package/src/renderers/Form/Textarea.tsx +46 -22
- package/src/renderers/Form/Transfer.tsx +6 -1
- package/src/renderers/Form/index.tsx +16 -1
- package/src/renderers/IFrame.tsx +8 -10
- package/src/renderers/Tpl.tsx +3 -1
- package/src/schemaExtend.ts +11 -7
- package/src/utils/api.ts +25 -10
- package/src/utils/helper.ts +11 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/Transfer.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,qCAImB;AACnB,6DAA0B;AAC1B,oFAAiD;AAEjD,6CAS4B;AAE5B,kFAA+C;AAC/C,kEAA+B;AAC/B,kDAA2D;AAC3D,uDAAwD;AAExD,wDAA2E;AAC3E,0DAGqC;AAkGrC;IAEU,qDAAkB;IAF5B;;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {\n OptionsControlProps,\n OptionsControl,\n FormOptionsControl\n} from './Options';\nimport React from 'react';\nimport Transfer from '../../components/Transfer';\nimport type {Option} from './Options';\nimport {\n autobind,\n filterTree,\n string2regExp,\n createObject,\n findTree,\n findTreeIndex,\n getTree,\n spliceTree\n} from '../../utils/helper';\nimport {Api} from '../../types';\nimport Spinner from '../../components/Spinner';\nimport find from 'lodash/find';\nimport {optionValueCompare} from '../../components/Select';\nimport {resolveVariable} from '../../utils/tpl-builtin';\nimport {SchemaApi, SchemaObject} from '../../Schema';\nimport {BaseSelection, ItemRenderStates} from '../../components/Selection';\nimport {\n ItemRenderStates as ResultItemRenderStates,\n ResultList\n} from '../../components/ResultList';\n\n/**\n * Transfer\n * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer\n */\nexport interface TransferControlSchema extends FormOptionsControl {\n type: 'transfer';\n\n /**\n * 是否显示剪头\n */\n showArrow?: boolean;\n\n /**\n * 可排序?\n */\n sortable?: boolean;\n\n /**\n * 勾选展示模式\n */\n selectMode?: 'table' | 'list' | 'tree' | 'chained' | 'associated';\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选项\n */\n leftOptions?: Array<Option>;\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选择模式\n */\n leftMode?: 'tree' | 'list';\n\n /**\n * 当 selectMode 为 associated 时用来定义右侧的选择模式\n */\n rightMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 搜索结果展示模式\n */\n searchResultMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 当 selectMode 为 table 时定义表格列信息。\n */\n columns?: Array<any>;\n\n /**\n * 当 searchResultMode 为 table 时定义表格列信息。\n */\n searchResultColumns?: Array<any>;\n\n /**\n * 可搜索?\n */\n searchable?: boolean;\n\n /**\n * 搜索 API\n */\n searchApi?: SchemaApi;\n\n /**\n * 左侧的标题文字\n */\n selectTitle?: string;\n\n /**\n * 右侧结果的标题文字\n */\n resultTitle?: string;\n\n /**\n * 用来丰富选项展示\n */\n menuTpl?: SchemaObject;\n\n /**\n * 用来丰富值的展示\n */\n valueTpl?: SchemaObject;\n}\n\nexport interface BaseTransferProps\n extends OptionsControlProps,\n Omit<\n TransferControlSchema,\n | 'type'\n | 'options'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n resultItemRender?: (option: Option) => JSX.Element;\n}\n\nexport class BaseTransferRenderer<\n T extends OptionsControlProps = BaseTransferProps\n> extends React.Component<T> {\n @autobind\n handleChange(value: Array<Option
|
11
|
+
"import {\n OptionsControlProps,\n OptionsControl,\n FormOptionsControl\n} from './Options';\nimport React from 'react';\nimport Transfer from '../../components/Transfer';\nimport type {Option} from './Options';\nimport {\n autobind,\n filterTree,\n string2regExp,\n createObject,\n findTree,\n findTreeIndex,\n getTree,\n spliceTree\n} from '../../utils/helper';\nimport {Api} from '../../types';\nimport Spinner from '../../components/Spinner';\nimport find from 'lodash/find';\nimport {optionValueCompare} from '../../components/Select';\nimport {resolveVariable} from '../../utils/tpl-builtin';\nimport {SchemaApi, SchemaObject} from '../../Schema';\nimport {BaseSelection, ItemRenderStates} from '../../components/Selection';\nimport {\n ItemRenderStates as ResultItemRenderStates,\n ResultList\n} from '../../components/ResultList';\n\n/**\n * Transfer\n * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer\n */\nexport interface TransferControlSchema extends FormOptionsControl {\n type: 'transfer';\n\n /**\n * 是否显示剪头\n */\n showArrow?: boolean;\n\n /**\n * 可排序?\n */\n sortable?: boolean;\n\n /**\n * 勾选展示模式\n */\n selectMode?: 'table' | 'list' | 'tree' | 'chained' | 'associated';\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选项\n */\n leftOptions?: Array<Option>;\n\n /**\n * 当 selectMode 为 associated 时用来定义左侧的选择模式\n */\n leftMode?: 'tree' | 'list';\n\n /**\n * 当 selectMode 为 associated 时用来定义右侧的选择模式\n */\n rightMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 搜索结果展示模式\n */\n searchResultMode?: 'table' | 'list' | 'tree' | 'chained';\n\n /**\n * 当 selectMode 为 table 时定义表格列信息。\n */\n columns?: Array<any>;\n\n /**\n * 当 searchResultMode 为 table 时定义表格列信息。\n */\n searchResultColumns?: Array<any>;\n\n /**\n * 可搜索?\n */\n searchable?: boolean;\n\n /**\n * 搜索 API\n */\n searchApi?: SchemaApi;\n\n /**\n * 左侧的标题文字\n */\n selectTitle?: string;\n\n /**\n * 右侧结果的标题文字\n */\n resultTitle?: string;\n\n /**\n * 用来丰富选项展示\n */\n menuTpl?: SchemaObject;\n\n /**\n * 用来丰富值的展示\n */\n valueTpl?: SchemaObject;\n}\n\nexport interface BaseTransferProps\n extends OptionsControlProps,\n Omit<\n TransferControlSchema,\n | 'type'\n | 'options'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n resultItemRender?: (option: Option) => JSX.Element;\n}\n\nexport class BaseTransferRenderer<\n T extends OptionsControlProps = BaseTransferProps\n> extends React.Component<T> {\n @autobind\n handleChange(value: Array<Option> | Option, optionModified?: boolean) {\n const {\n onChange,\n joinValues,\n delimiter,\n valueField,\n extractValue,\n options,\n setOptions\n } = this.props;\n let newValue: any = value;\n let newOptions = options.concat();\n\n if (Array.isArray(value)) {\n newValue = value.map(item => {\n const indexes = findTreeIndex(\n options,\n optionValueCompare(\n item[(valueField as string) || 'value'],\n (valueField as string) || 'value'\n )\n );\n\n if (!indexes) {\n newOptions.push(item);\n } else if (optionModified) {\n const origin = getTree(newOptions, indexes);\n newOptions = spliceTree(newOptions, indexes, 1, {\n ...origin,\n ...item\n });\n }\n\n return joinValues || extractValue\n ? item[(valueField as string) || 'value']\n : item;\n });\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n } else if (value) {\n newValue =\n joinValues || extractValue\n ? value[(valueField as string) || 'value']\n : value;\n }\n\n (newOptions.length > options.length || optionModified) &&\n setOptions(newOptions, true);\n onChange(newValue);\n }\n\n @autobind\n option2value(option: Option) {\n return option;\n }\n\n @autobind\n async handleSearch(term: string, cancelExecutor: Function) {\n const {searchApi, options, labelField, valueField, env, data} = this.props;\n\n if (searchApi) {\n try {\n const payload = await env.fetcher(\n searchApi,\n createObject(data, {term}),\n {\n cancelExecutor\n }\n );\n\n if (!payload.ok) {\n throw new Error(payload.msg || '搜索请求异常');\n }\n\n const result =\n payload.data.options || payload.data.items || payload.data;\n if (!Array.isArray(result)) {\n throw new Error('CRUD.invalidArray');\n }\n\n return result.map(item => {\n let resolved: any = null;\n const value = item[valueField || 'value'];\n\n // 只有 value 值有意义的时候,再去找;否则直接返回\n if (Array.isArray(options) && value !== null && value !== undefined) {\n resolved = find(options, optionValueCompare(value, valueField));\n }\n\n return resolved || item;\n });\n } catch (e) {\n if (!env.isCancel(e)) {\n env.notify('error', e.message);\n }\n\n return [];\n }\n } else if (term) {\n const regexp = string2regExp(term);\n\n return filterTree(\n options,\n (option: Option) => {\n return !!(\n (Array.isArray(option.children) && option.children.length) ||\n (option[(valueField as string) || 'value'] &&\n (regexp.test(option[(labelField as string) || 'label']) ||\n regexp.test(option[(valueField as string) || 'value'])))\n );\n },\n 0,\n true\n );\n } else {\n return options;\n }\n }\n\n @autobind\n optionItemRender(option: Option, states: ItemRenderStates) {\n const {menuTpl, render, data} = this.props;\n\n if (menuTpl) {\n return render(`item/${states.index}`, menuTpl, {\n data: createObject(createObject(data, states), option)\n });\n }\n\n return BaseSelection.itemRender(option, states);\n }\n\n @autobind\n resultItemRender(option: Option, states: ResultItemRenderStates) {\n const {valueTpl, render, data} = this.props;\n\n if (valueTpl) {\n return render(`value/${states.index}`, valueTpl, {\n onChange: states.onChange,\n data: createObject(createObject(data, states), option)\n });\n }\n\n return ResultList.itemRender(option);\n }\n\n @autobind\n renderCell(\n column: {\n name: string;\n label: string;\n [propName: string]: any;\n },\n option: Option,\n colIndex: number,\n rowIndex: number\n ) {\n const {render, data} = this.props;\n return render(\n `cell/${colIndex}/${rowIndex}`,\n {\n type: 'text',\n ...column\n },\n {\n value: resolveVariable(column.name, option),\n data: createObject(data, option)\n }\n );\n }\n\n render() {\n const {\n className,\n classnames: cx,\n selectedOptions,\n showArrow,\n sortable,\n selectMode,\n columns,\n loading,\n searchable,\n searchResultMode,\n searchResultColumns,\n deferLoad,\n leftMode,\n rightMode,\n disabled,\n selectTitle,\n resultTitle,\n menuTpl,\n resultItemRender\n } = this.props;\n\n // 目前 LeftOptions 没有接口可以动态加载\n // 为了方便可以快速实现动态化,让选项的第一个成员携带\n // LeftOptions 信息\n let {options, leftOptions, leftDefaultValue} = this.props;\n if (\n selectMode === 'associated' &&\n options &&\n options.length === 1 &&\n options[0].leftOptions &&\n Array.isArray(options[0].children)\n ) {\n leftOptions = options[0].leftOptions;\n leftDefaultValue = options[0].leftDefaultValue ?? leftDefaultValue;\n options = options[0].children;\n }\n\n return (\n <div className={cx('TransferControl', className)}>\n <Transfer\n value={selectedOptions}\n options={options}\n disabled={disabled}\n onChange={this.handleChange}\n option2value={this.option2value}\n sortable={sortable}\n showArrow={showArrow}\n selectMode={selectMode}\n searchResultMode={searchResultMode}\n searchResultColumns={searchResultColumns}\n columns={columns}\n onSearch={searchable ? this.handleSearch : undefined}\n onDeferLoad={deferLoad}\n leftOptions={leftOptions}\n leftMode={leftMode}\n rightMode={rightMode}\n cellRender={this.renderCell}\n selectTitle={selectTitle}\n resultTitle={resultTitle}\n optionItemRender={this.optionItemRender}\n resultItemRender={this.resultItemRender}\n />\n\n <Spinner overlay key=\"info\" show={loading} />\n </div>\n );\n }\n}\n\n// ts 3.9 里面非得这样才不报错,鬼知道为何。\nexport class TransferRender extends BaseTransferRenderer {}\n\nexport default OptionsControl({\n type: 'transfer'\n})(TransferRender);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -774,6 +774,9 @@ var Form = /** @class */ (function (_super) {
|
|
774
774
|
var restError = store.restError;
|
775
775
|
var WrapperComponent = this.props.wrapperComponent ||
|
776
776
|
(/(?:\/|^)form\//.test($path) ? 'div' : 'form');
|
777
|
+
var padDom = (0, helper_1.repeatCount)(columnCount && Array.isArray(body)
|
778
|
+
? columnCount - (body.length % columnCount)
|
779
|
+
: 0, function (index) { return (react_1.default.createElement("div", { className: cx("Form-item Form-item--" + mode + " is-placeholder"), key: index })); });
|
777
780
|
return (react_1.default.createElement(WrapperComponent, { className: cx("Form", "Form--" + (mode || 'normal'), columnCount ? "Form--column Form--column-" + columnCount : null, className), onSubmit: this.handleFormSubmit, noValidate: true },
|
778
781
|
react_1.default.createElement("input", { type: "submit", style: { display: 'none' } }),
|
779
782
|
debug ? (react_1.default.createElement("pre", null,
|
@@ -782,6 +785,7 @@ var Form = /** @class */ (function (_super) {
|
|
782
785
|
this.renderFormItems({
|
783
786
|
body: body
|
784
787
|
}),
|
788
|
+
padDom,
|
785
789
|
restError && restError.length ? (react_1.default.createElement("ul", { className: cx('Form-restError', 'Form-feedback') }, restError.map(function (item, idx) { return (react_1.default.createElement("li", { key: idx }, item)); }))) : null,
|
786
790
|
render('modal', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (store.action &&
|
787
791
|
store.action.dialog)), { type: 'dialog' }), {
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/index.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Renderer, RendererProps} from '../../factory';\nimport {observer} from 'mobx-react';\nimport {FormStore, IFormStore} from '../../store/form';\nimport {Api, SchemaNode, Schema, Action, ApiObject, Payload} from '../../types';\nimport {filter, evalExpression} from '../../utils/tpl';\nimport cx from 'classnames';\nimport getExprProperties from '../../utils/filter-schema';\nimport {\n promisify,\n difference,\n until,\n noop,\n isObject,\n isVisible,\n cloneObject,\n SkipOperation,\n isEmpty,\n getVariable,\n isObjectShallowModified,\n qsparse\n} from '../../utils/helper';\nimport debouce from 'lodash/debounce';\nimport flatten from 'lodash/flatten';\nimport find from 'lodash/find';\nimport Scoped, {\n ScopedContext,\n IScopedContext,\n ScopedComponentType\n} from '../../Scoped';\nimport {IComboStore} from '../../store/combo';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport Spinner from '../../components/Spinner';\nimport {LazyComponent} from '../../components';\nimport {isAlive} from 'mobx-state-tree';\nimport {asFormItem} from './Item';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {trace} from 'mobx';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaDefaultData,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaRedirect,\n SchemaReload\n} from '../../Schema';\nimport {ActionSchema} from '../Action';\nimport {ButtonGroupControlSchema} from './ButtonGroupSelect';\nimport {DialogSchemaBase} from '../Dialog';\nimport Alert from '../../components/Alert2';\n\nexport interface FormSchemaHorizontal {\n left?: number;\n right?: number;\n leftFixed?: boolean | number | 'xs' | 'sm' | 'md' | 'lg';\n}\n\n/**\n * Form 表单渲染器。\n *\n * 说明:https://baidu.gitee.io/amis/docs/components/form/index\n */\nexport interface FormSchema extends BaseSchema {\n /**\n * 指定为表单渲染器。\n */\n type: 'form';\n\n /**\n * 表单标题\n */\n title?: string;\n\n /**\n * 按钮集合,会固定在底部显示。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 表单项集合\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 请用类型 tabs\n */\n tabs?: any;\n\n /**\n * @deprecated 请用类型 fieldSet\n */\n fieldSet?: any;\n\n data?: SchemaDefaultData;\n\n /**\n * 是否开启调试,开启后会在顶部实时显示表单项数据。\n */\n debug?: boolean;\n\n /**\n * 用来初始化表单数据\n */\n initApi?: SchemaApi;\n\n /**\n * Form 用来获取初始数据的 api,与initApi不同的是,会一直轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n initAsyncApi?: SchemaApi;\n\n /**\n * 设置了initAsyncApi后,默认会从返回数据的data.finished来判断是否完成,也可以设置成其他的xxx,就会从data.xxx中获取\n */\n initFinishedField?: string;\n\n /**\n * 设置了initAsyncApi以后,默认拉取的时间间隔\n */\n initCheckInterval?: number;\n\n /**\n * 是否初始加载\n */\n initFetch?: boolean;\n\n /**\n * 建议改成 api 的 sendOn 属性。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 设置后将轮询调用 initApi\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 配置停止轮询的条件\n */\n stopAutoRefreshWhen?: string;\n\n /**\n * 是否开启本地缓存\n */\n persistData?: string;\n\n /**\n * 提交成功后清空本地缓存\n */\n clearPersistDataAfterSubmit?: boolean;\n\n /**\n * Form 用来保存数据的 api。\n *\n * 详情:https://baidu.gitee.io/amis/docs/components/form/index#%E8%A1%A8%E5%8D%95%E6%8F%90%E4%BA%A4\n */\n api?: SchemaApi;\n\n /**\n * Form 也可以配置 feedback。\n */\n feedback?: DialogSchemaBase;\n\n /**\n * 设置此属性后,表单提交发送保存接口后,还会继续轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n asyncApi?: SchemaApi;\n\n /**\n * 轮询请求的时间间隔,默认为 3秒。设置 asyncApi 才有效\n */\n checkInterval?: number;\n\n /**\n * 如果决定结束的字段名不是 `finished` 请设置此属性,比如 `is_success`\n */\n finishedField?: string;\n\n /**\n * 提交完后重置表单\n */\n resetAfterSubmit?: boolean;\n\n /**\n * 提交后清空表单\n */\n clearAfterSubmit?: boolean;\n\n /**\n * 配置表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n\n /**\n * 表单项显示为几列\n */\n 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 /**\n * 禁用回车提交\n */\n preventEnterSubmit?: boolean;\n}\n\nexport type FormGroup = FormSchema & {\n title?: string;\n className?: string;\n};\nexport type FormGroupNode = FormGroup | FormGroupArray;\nexport interface FormGroupArray extends Array<FormGroupNode> {}\n\nexport type FormHorizontal = FormSchemaHorizontal;\n\nexport interface FormProps\n extends RendererProps,\n Omit<FormSchema, 'mode' | 'className'> {\n data: any;\n store: IFormStore;\n wrapperComponent: React.ElementType;\n canAccessSuperData: boolean;\n trimValues?: boolean;\n lazyLoad?: boolean;\n simpleMode?: boolean;\n onInit?: (values: object, props: any) => any;\n onReset?: (values: object) => void;\n onSubmit?: (values: object, action: any) => any;\n onChange?: (values: object, diff: object, props: any) => any;\n onFailed?: (reason: string, errors: any) => any;\n onFinished: (values: object, action: any) => any;\n onValidate: (values: object, form: any) => any;\n messages: {\n fetchSuccess?: string;\n fetchFailed?: string;\n saveSuccess?: string;\n saveFailed?: string;\n validateFailed?: string;\n };\n rules: Array<{\n rule: string;\n message: string;\n }>;\n lazyChange?: boolean; // 表单项的\n formLazyChange?: boolean; // 表单的\n}\nexport default class Form extends React.Component<FormProps, object> {\n static defaultProps = {\n title: 'Form.title',\n submitText: 'Form.submit',\n initFetch: true,\n wrapWithPanel: true,\n mode: 'normal',\n collapsable: false,\n controlWidth: 'full',\n horizontal: {\n left: 2,\n right: 10,\n offset: 2\n },\n 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)\n );\n });\n }\n\n if (isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(initApi as any, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n initCheckInterval\n );\n }\n })\n .then(this.initInterval)\n .then(this.onInit);\n } else {\n setTimeout(this.onInit.bind(this), 4);\n }\n\n if (promptPageLeave) {\n window.addEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting = env.blockRouting?.(this.blockRouting) ?? undefined;\n }\n }\n\n componentDidUpdate(prevProps: FormProps) {\n const props = this.props;\n const store = props.store;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n const {fetchSuccess, fetchFailed} = props;\n\n store[store.hasRemoteData ? 'fetchData' : 'fetchInitData'](\n props.initApi as Api,\n store.data,\n {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n }\n ).then(this.initInterval);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n // this.lazyHandleChange.flush();\n this.lazyEmitChange.cancel();\n this.asyncCancel && this.asyncCancel();\n this.disposeOnValidate && this.disposeOnValidate();\n this.disposeRulesValidate && this.disposeRulesValidate();\n window.removeEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting?.();\n }\n\n blockRouting(): any {\n const store = this.props.store;\n const {promptPageLeaveMessage, promptPageLeave} = this.props;\n\n if (promptPageLeave && store.modified) {\n return promptPageLeaveMessage || '新的修改没有保存,确认要离开?';\n }\n }\n\n beforePageUnload(e: any): any {\n const blocked = this.blockRouting();\n\n if (blocked) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n\n async onInit() {\n const {onInit, store, persistData, submitOnInit} = this.props;\n if (!isAlive(store)) {\n return;\n }\n\n // 先拿出来数据,主要担心 form 被什么东西篡改了,然后又应用出去了\n // 之前遇到过问题,所以拿出来了。但是 options loadOptions 默认值失效了。\n // 所以目前需要两个都要设置一下,再 init Hook 里面。\n let data = cloneObject(store.data);\n const initedAt = store.initedAt;\n\n store.setInited(true);\n const hooks: Array<(data: any) => Promise<any>> = this.hooks['init'] || [];\n await Promise.all(hooks.map(hook => hook(data)));\n\n if (!isAlive(store)) {\n return;\n }\n\n if (store.initedAt !== initedAt) {\n // 说明,之前的数据已经失效了。\n // 比如 combo 一开始设置了初始值,然后 form 的 initApi 又返回了新的值。\n // 这个时候 store 的数据应该已经 init 了新的值。但是 data 还是老的,这个时候\n // onInit 出去就是错误的。\n data = {\n ...data,\n ...store.data\n };\n }\n\n persistData && store.getLocalPersistData();\n\n onInit && onInit(data, this.props);\n\n submitOnInit &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n reload(subPath?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n store,\n initApi,\n initAsyncApi,\n initFinishedField,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n isEffectiveApi(initAsyncApi, store.data) &&\n store.updateData({\n [initFinishedField || 'finished']: false\n });\n\n isEffectiveApi(initApi, store.data)\n ? store\n .fetchInitData(initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n silent,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n );\n }\n })\n .then((result: Payload) => {\n if (result?.ok) {\n this.initInterval(result);\n store.reset(undefined, false);\n }\n })\n : store.reset(undefined, false);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n isValidated() {\n return this.props.store.validated;\n }\n\n validate(forceValidate?: boolean): Promise<boolean> {\n const {store} = this.props;\n\n this.flush();\n return store.validate(this.hooks['validate'] || [], forceValidate);\n }\n\n clearErrors() {\n const {store} = this.props;\n\n return store.clearErrors();\n }\n\n getValues() {\n const {store} = this.props;\n this.flush();\n return store.data;\n }\n\n setValues(value: any) {\n const {store} = this.props;\n this.flush();\n store.setValues(value);\n }\n\n submit(fn?: (values: object) => Promise<any>): Promise<any> {\n const {store, messages, translate: __} = this.props;\n this.flush();\n\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed)\n );\n }\n\n // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。\n flush() {\n const hooks = this.hooks['flush'] || [];\n hooks.forEach(fn => fn());\n this.lazyEmitChange.flush();\n }\n\n reset() {\n const {store, onReset} = this.props;\n store.reset(onReset);\n }\n\n addHook(fn: () => any, type: 'validate' | 'init' | 'flush' = 'validate') {\n this.hooks[type] = this.hooks[type] || [];\n this.hooks[type].push(type === 'flush' ? fn : promisify(fn));\n return () => {\n this.removeHook(fn, type);\n fn = noop;\n };\n }\n\n removeHook(fn: () => any, type: string = 'validate') {\n const hooks = this.hooks[type];\n\n if (!hooks) {\n return;\n }\n\n for (let i = 0, len = hooks.length; i < len; i++) {\n let hook = hooks[i];\n\n if (hook === fn || (hook as any).raw === fn) {\n hooks.splice(i, 1);\n len--;\n i--;\n }\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit: boolean,\n changePristine = false\n ) {\n const {store, formLazyChange} = this.props;\n\n if (typeof name !== 'string') {\n return;\n }\n\n store.changeValue(name, value, changePristine);\n\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData && store.inited) {\n store.setLocalPersistData();\n }\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n\n onChange &&\n onChange(store.data, difference(store.data, store.pristine), this.props);\n\n store.clearRestError();\n\n (submit || (submitOnChange && store.inited)) &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n handleBulkChange(values: Object, submit: boolean) {\n const {onChange, store, formLazyChange} = this.props;\n\n store.updateData(values);\n\n 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 translate: __\n } = this.props;\n\n // 做动作之前,先把数据同步一下。\n this.flush();\n\n if (trimValues) {\n store.trimValues();\n }\n\n // 如果 data 就是当前层,则 flush 一下。\n if (data === this.props.data) {\n data = store.data;\n }\n\n if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n env.notify('error', __('Form.validateFailed'));\n } else {\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\n );\n }\n });\n }\n\n if (\n action.type === 'submit' ||\n action.actionType === 'submit' ||\n action.actionType === 'confirm' ||\n action.actionType === 'reset-and-submit' ||\n action.actionType === 'clear-and-submit'\n ) {\n store.setCurrentAction(action);\n\n if (action.actionType === 'reset-and-submit') {\n store.reset(onReset);\n } else if (action.actionType === 'clear-and-submit') {\n store.clear(onReset);\n }\n\n return this.submit((values): any => {\n if (onSubmit && onSubmit(values, action) === false) {\n return Promise.resolve(false);\n }\n\n if (target) {\n this.submitToTarget(target, values);\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, values);\n } else if (action.actionType === 'dialog') {\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.openDrawer(data);\n } else if (isEffectiveApi(action.api || api, values)) {\n let finnalAsyncApi = action.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n return store\n .saveRemote(action.api || (api as Api), values, {\n successMessage: saveSuccess,\n errorMessage: saveFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n checkInterval\n );\n }\n })\n .then(async response => {\n onSaved && onSaved(values, response);\n const feedback = action.feedback || this.props.feedback;\n\n // submit 也支持 feedback\n if (feedback && isVisible(feedback, store.data)) {\n const confirmed = await this.openFeedback(feedback, store.data);\n\n // 如果 feedback 配置了,取消就跳过原有逻辑。\n if (feedback.skipRestOnCancel && !confirmed) {\n throw new SkipOperation();\n } else if (feedback.skipRestOnConfirm && confirmed) {\n throw new SkipOperation();\n }\n }\n\n // return values;\n });\n }\n\n return Promise.resolve(null);\n })\n .then(values => {\n // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。\n if (values === false) {\n return store.data;\n }\n\n if (onFinished && onFinished(values, action) === false) {\n return values;\n }\n\n resetAfterSubmit && store.reset(onReset);\n clearAfterSubmit && store.clear(onReset);\n clearPersistDataAfterSubmit && store.clearLocalPersistData();\n\n if (action.redirect || redirect) {\n const finalRedirect = filter(\n action.redirect || redirect,\n store.data\n );\n finalRedirect && env.jumpTo(finalRedirect, action);\n } else if (action.reload || reload) {\n this.reloadTarget(action.reload || reload!, store.data);\n }\n\n action.close && this.closeTarget(action.close);\n return values;\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n\n onFailed && onFailed(reason, store.errors);\n\n if (throwErrors) {\n throw reason;\n }\n });\n } else if (action.type === 'reset' || action.actionType === 'reset') {\n store.setCurrentAction(action);\n store.reset(onReset);\n } else if (action.actionType === 'clear') {\n store.setCurrentAction(action);\n store.clear(onReset);\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.setCurrentAction(action);\n store.openDrawer(data);\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n if (!isEffectiveApi(action.api)) {\n return env.alert(__(`当 actionType 为 ajax 时,请设置 api 属性`));\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: __(\n (action.messages && action.messages.success) || saveSuccess\n ),\n errorMessage: __(\n (action.messages && action.messages.failed) || saveFailed\n )\n })\n .then(async response => {\n response &&\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n if (store.validated) {\n await this.validate(true);\n }\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n onFailed && onFailed(e, store.errors);\n if (throwErrors) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload') {\n store.setCurrentAction(action);\n if (action.target) {\n this.reloadTarget(action.target, data);\n } else {\n // 刷自己\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 } = props;\n\n const subProps = {\n formStore: form,\n data: store.data,\n key: `${(control as Schema).name || ''}-${\n (control as Schema).type\n }-${key}`,\n formInited: form.inited,\n formSubmited: form.submited,\n formMode: mode,\n formHorizontal: horizontal,\n controlWidth,\n disabled: disabled || (control as Schema).disabled || form.loading,\n btnDisabled: form.loading || form.validating,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n onChange: this.handleChange,\n onBulkChange: this.handleBulkChange,\n addHook: this.addHook,\n removeHook: this.removeHook,\n renderFormItems: this.renderFormItems,\n formPristine: form.pristine\n // value: (control as any)?.name\n // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)\n // : (control as any)?.value,\n // defaultValue: (control as any)?.value\n };\n\n let subSchema: any = {\n ...control\n };\n\n if (subSchema.$ref) {\n subSchema = {\n ...resolveDefinitions(subSchema.$ref),\n ...subSchema\n };\n }\n\n lazyChange === false && (subSchema.changeImmediately = true);\n return render(`${region ? `${region}/` : ''}${key}`, subSchema, subProps);\n }\n\n renderBody() {\n const {\n body,\n mode,\n className,\n classnames: cx,\n debug,\n $path,\n store,\n 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 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 {/* 显示没有映射上的 errors */}\n {restError && restError.length ? (\n <ul className={cx('Form-restError', 'Form-feedback')}>\n {restError.map((item, idx) => (\n <li key={idx}>{item}</li>\n ))}\n </ul>\n ) : null}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).dialog as object)),\n type: 'dialog'\n },\n {\n key: 'dialog',\n data: store.dialogData,\n onConfirm: this.handleDialogConfirm,\n onClose: this.handleDialogClose,\n show: store.dialogOpen\n }\n )}\n\n {render(\n 'modal',\n {\n ...((store.action as Action) &&\n ((store.action as Action).drawer as object)),\n type: 'drawer'\n },\n {\n key: 'drawer',\n data: store.drawerData,\n onConfirm: this.handleDrawerConfirm,\n onClose: this.handleDrawerClose,\n show: store.drawerOpen\n }\n )}\n </WrapperComponent>\n );\n }\n\n render() {\n const {\n $path,\n $schema,\n wrapWithPanel,\n render,\n title,\n store,\n panelClassName,\n headerClassName,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n classnames: cx,\n affixFooter,\n lazyLoad,\n translate: __,\n footer,\n formStore\n } = this.props;\n\n let body: JSX.Element = this.renderBody();\n\n if (wrapWithPanel) {\n body = render(\n 'body',\n {\n type: 'panel',\n title: __(title)\n },\n {\n className: cx(panelClassName, 'Panel--form'),\n formStore: this.props.store,\n children: body,\n actions: this.buildActions(),\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n disabled: store.loading,\n btnDisabled: store.loading || store.validating,\n headerClassName,\n footer,\n footerClassName,\n footerWrapClassName,\n actionsClassName,\n bodyClassName,\n affixFooter\n }\n ) as JSX.Element;\n }\n\n if (lazyLoad) {\n body = <LazyComponent>{body}</LazyComponent>;\n }\n\n return body;\n }\n}\n\n@Renderer({\n type: 'form',\n storeType: FormStore.name,\n isolateScope: true,\n shouldSyncSuperStore: (store, props, prevProps) => {\n // 如果是 QuickEdit,让 store 同步 __super 数据。\n if (\n props.quickEditFormRef &&\n props.onQuickChange &&\n (isObjectShallowModified(prevProps.data, props.data) ||\n isObjectShallowModified(prevProps.data.__super, props.data.__super) ||\n isObjectShallowModified(\n prevProps.data.__super?.__super,\n props.data.__super?.__super\n ))\n ) {\n return true;\n }\n\n return undefined;\n }\n})\nexport class FormRenderer extends Form {\n static contextType = ScopedContext;\n\n constructor(props: FormProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n if (this.props.autoFocus) {\n const scoped = this.context as IScopedContext;\n const inputs = scoped.getComponents();\n let focuableInput = find(\n inputs,\n input => input.focus\n ) as ScopedComponentType;\n focuableInput && setTimeout(() => focuableInput.focus!(), 200);\n }\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n\n super.componentWillUnmount();\n }\n\n doAction(\n action: Action,\n data: object = this.props.store.data,\n throwErrors: boolean = false\n ) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n // 禁用了不要做任何动作。@先注释掉,会引起其他问题\n // if (this.props.disabled) {\n // return;\n // }\n\n if (action.target && action.actionType !== 'reload') {\n const scoped = this.context as IScopedContext;\n\n return Promise.all(\n action.target.split(',').map(name => {\n let target = scoped.getComponentByName(name);\n return (\n target &&\n target.doAction &&\n target.doAction(\n {\n ...action,\n target: undefined\n },\n ctx,\n throwErrors\n )\n );\n })\n );\n } else {\n return super.handleAction(e, action, ctx, throwErrors, delegate);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n super.handleDialogConfirm(values, action, ctx, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n\n if (action.reload) {\n scoped.reload(action.reload, ctx);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, ctx);\n }\n }\n\n submitToTarget(target: string, values: object) {\n const scoped = this.context as IScopedContext;\n scoped.send(target, values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n\n reload(target?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const scoped = this.context as IScopedContext;\n let subPath: string = '';\n let idx: number;\n let subQuery: any = null;\n if (target && ~(idx = target.indexOf('.'))) {\n subPath = target.substring(idx + 1);\n target = target.substring(0, idx);\n }\n const idx2 = target ? target.indexOf('?') : -1;\n if (~idx2) {\n subQuery = dataMapping(\n qsparse((target as string).substring(idx2 + 1)),\n ctx\n );\n target = (target as string).substring(0, idx2);\n }\n\n let component;\n if (\n target &&\n (component = scoped.getComponentByName(target)) &&\n component.reload\n ) {\n component.reload(subPath, subQuery, ctx);\n } else if (target === '*') {\n super.reload(target, query, ctx, silent);\n const components = scoped.getComponents();\n components.forEach(\n (component: any) =>\n component.reload && component.reload('', subQuery, ctx)\n );\n } else {\n super.reload(target, query, ctx, silent);\n }\n }\n\n receive(values: object, name?: string) {\n if (name) {\n const scoped = this.context as IScopedContext;\n const idx = name.indexOf('.');\n let subPath = '';\n\n if (~idx) {\n subPath = name.substring(1 + idx);\n name = name.substring(0, idx);\n }\n\n const component = scoped.getComponentByName(name);\n component && component.receive && component.receive(values, subPath);\n return;\n }\n\n return super.receive(values);\n }\n}\n"
|
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} from '../../utils/helper';\nimport debouce from 'lodash/debounce';\nimport flatten from 'lodash/flatten';\nimport find from 'lodash/find';\nimport Scoped, {\n ScopedContext,\n IScopedContext,\n ScopedComponentType\n} from '../../Scoped';\nimport {IComboStore} from '../../store/combo';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport Spinner from '../../components/Spinner';\nimport {LazyComponent} from '../../components';\nimport {isAlive} from 'mobx-state-tree';\nimport {asFormItem} from './Item';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {trace} from 'mobx';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaDefaultData,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaRedirect,\n SchemaReload\n} from '../../Schema';\nimport {ActionSchema} from '../Action';\nimport {ButtonGroupControlSchema} from './ButtonGroupSelect';\nimport {DialogSchemaBase} from '../Dialog';\nimport Alert from '../../components/Alert2';\n\nexport interface FormSchemaHorizontal {\n left?: number;\n right?: number;\n leftFixed?: boolean | number | 'xs' | 'sm' | 'md' | 'lg';\n}\n\n/**\n * Form 表单渲染器。\n *\n * 说明:https://baidu.gitee.io/amis/docs/components/form/index\n */\nexport interface FormSchema extends BaseSchema {\n /**\n * 指定为表单渲染器。\n */\n type: 'form';\n\n /**\n * 表单标题\n */\n title?: string;\n\n /**\n * 按钮集合,会固定在底部显示。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 表单项集合\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 请用类型 tabs\n */\n tabs?: any;\n\n /**\n * @deprecated 请用类型 fieldSet\n */\n fieldSet?: any;\n\n data?: SchemaDefaultData;\n\n /**\n * 是否开启调试,开启后会在顶部实时显示表单项数据。\n */\n debug?: boolean;\n\n /**\n * 用来初始化表单数据\n */\n initApi?: SchemaApi;\n\n /**\n * Form 用来获取初始数据的 api,与initApi不同的是,会一直轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n initAsyncApi?: SchemaApi;\n\n /**\n * 设置了initAsyncApi后,默认会从返回数据的data.finished来判断是否完成,也可以设置成其他的xxx,就会从data.xxx中获取\n */\n initFinishedField?: string;\n\n /**\n * 设置了initAsyncApi以后,默认拉取的时间间隔\n */\n initCheckInterval?: number;\n\n /**\n * 是否初始加载\n */\n initFetch?: boolean;\n\n /**\n * 建议改成 api 的 sendOn 属性。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 设置后将轮询调用 initApi\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 配置停止轮询的条件\n */\n stopAutoRefreshWhen?: string;\n\n /**\n * 是否开启本地缓存\n */\n persistData?: string;\n\n /**\n * 提交成功后清空本地缓存\n */\n clearPersistDataAfterSubmit?: boolean;\n\n /**\n * Form 用来保存数据的 api。\n *\n * 详情:https://baidu.gitee.io/amis/docs/components/form/index#%E8%A1%A8%E5%8D%95%E6%8F%90%E4%BA%A4\n */\n api?: SchemaApi;\n\n /**\n * Form 也可以配置 feedback。\n */\n feedback?: DialogSchemaBase;\n\n /**\n * 设置此属性后,表单提交发送保存接口后,还会继续轮询请求该接口,直到返回 finished 属性为 true 才 结束。\n */\n asyncApi?: SchemaApi;\n\n /**\n * 轮询请求的时间间隔,默认为 3秒。设置 asyncApi 才有效\n */\n checkInterval?: number;\n\n /**\n * 如果决定结束的字段名不是 `finished` 请设置此属性,比如 `is_success`\n */\n finishedField?: string;\n\n /**\n * 提交完后重置表单\n */\n resetAfterSubmit?: boolean;\n\n /**\n * 提交后清空表单\n */\n clearAfterSubmit?: boolean;\n\n /**\n * 配置表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n\n /**\n * 表单项显示为几列\n */\n 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 /**\n * 禁用回车提交\n */\n preventEnterSubmit?: boolean;\n}\n\nexport type FormGroup = FormSchema & {\n title?: string;\n className?: string;\n};\nexport type FormGroupNode = FormGroup | FormGroupArray;\nexport interface FormGroupArray extends Array<FormGroupNode> {}\n\nexport type FormHorizontal = FormSchemaHorizontal;\n\nexport interface FormProps\n extends RendererProps,\n Omit<FormSchema, 'mode' | 'className'> {\n data: any;\n store: IFormStore;\n wrapperComponent: React.ElementType;\n canAccessSuperData: boolean;\n trimValues?: boolean;\n lazyLoad?: boolean;\n simpleMode?: boolean;\n onInit?: (values: object, props: any) => any;\n onReset?: (values: object) => void;\n onSubmit?: (values: object, action: any) => any;\n onChange?: (values: object, diff: object, props: any) => any;\n onFailed?: (reason: string, errors: any) => any;\n onFinished: (values: object, action: any) => any;\n onValidate: (values: object, form: any) => any;\n messages: {\n fetchSuccess?: string;\n fetchFailed?: string;\n saveSuccess?: string;\n saveFailed?: string;\n validateFailed?: string;\n };\n rules: Array<{\n rule: string;\n message: string;\n }>;\n lazyChange?: boolean; // 表单项的\n formLazyChange?: boolean; // 表单的\n}\nexport default class Form extends React.Component<FormProps, object> {\n static defaultProps = {\n title: 'Form.title',\n submitText: 'Form.submit',\n initFetch: true,\n wrapWithPanel: true,\n mode: 'normal',\n collapsable: false,\n controlWidth: 'full',\n horizontal: {\n left: 2,\n right: 10,\n offset: 2\n },\n 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)\n );\n });\n }\n\n if (isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(initApi as any, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n initCheckInterval\n );\n }\n })\n .then(this.initInterval)\n .then(this.onInit);\n } else {\n setTimeout(this.onInit.bind(this), 4);\n }\n\n if (promptPageLeave) {\n window.addEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting = env.blockRouting?.(this.blockRouting) ?? undefined;\n }\n }\n\n componentDidUpdate(prevProps: FormProps) {\n const props = this.props;\n const store = props.store;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n const {fetchSuccess, fetchFailed} = props;\n\n store[store.hasRemoteData ? 'fetchData' : 'fetchInitData'](\n props.initApi as Api,\n store.data,\n {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n }\n ).then(this.initInterval);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n // this.lazyHandleChange.flush();\n this.lazyEmitChange.cancel();\n this.asyncCancel && this.asyncCancel();\n this.disposeOnValidate && this.disposeOnValidate();\n this.disposeRulesValidate && this.disposeRulesValidate();\n window.removeEventListener('beforeunload', this.beforePageUnload);\n this.unBlockRouting?.();\n }\n\n blockRouting(): any {\n const store = this.props.store;\n const {promptPageLeaveMessage, promptPageLeave} = this.props;\n\n if (promptPageLeave && store.modified) {\n return promptPageLeaveMessage || '新的修改没有保存,确认要离开?';\n }\n }\n\n beforePageUnload(e: any): any {\n const blocked = this.blockRouting();\n\n if (blocked) {\n e.preventDefault();\n e.returnValue = '';\n }\n }\n\n async onInit() {\n const {onInit, store, persistData, submitOnInit} = this.props;\n if (!isAlive(store)) {\n return;\n }\n\n // 先拿出来数据,主要担心 form 被什么东西篡改了,然后又应用出去了\n // 之前遇到过问题,所以拿出来了。但是 options loadOptions 默认值失效了。\n // 所以目前需要两个都要设置一下,再 init Hook 里面。\n let data = cloneObject(store.data);\n const initedAt = store.initedAt;\n\n store.setInited(true);\n const hooks: Array<(data: any) => Promise<any>> = this.hooks['init'] || [];\n await Promise.all(hooks.map(hook => hook(data)));\n\n if (!isAlive(store)) {\n return;\n }\n\n if (store.initedAt !== initedAt) {\n // 说明,之前的数据已经失效了。\n // 比如 combo 一开始设置了初始值,然后 form 的 initApi 又返回了新的值。\n // 这个时候 store 的数据应该已经 init 了新的值。但是 data 还是老的,这个时候\n // onInit 出去就是错误的。\n data = {\n ...data,\n ...store.data\n };\n }\n\n persistData && store.getLocalPersistData();\n\n onInit && onInit(data, this.props);\n\n submitOnInit &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n reload(subPath?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n store,\n initApi,\n initAsyncApi,\n initFinishedField,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n isEffectiveApi(initAsyncApi, store.data) &&\n store.updateData({\n [initFinishedField || 'finished']: false\n });\n\n isEffectiveApi(initApi, store.data)\n ? store\n .fetchInitData(initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed,\n silent,\n onSuccess: () => {\n if (\n !isEffectiveApi(initAsyncApi, store.data) ||\n store.data[initFinishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(initAsyncApi, store.data),\n (ret: any) => ret && ret[initFinishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n );\n }\n })\n .then((result: Payload) => {\n if (result?.ok) {\n this.initInterval(result);\n store.reset(undefined, false);\n }\n })\n : store.reset(undefined, false);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n isValidated() {\n return this.props.store.validated;\n }\n\n validate(forceValidate?: boolean): Promise<boolean> {\n const {store} = this.props;\n\n this.flush();\n return store.validate(this.hooks['validate'] || [], forceValidate);\n }\n\n clearErrors() {\n const {store} = this.props;\n\n return store.clearErrors();\n }\n\n getValues() {\n const {store} = this.props;\n this.flush();\n return store.data;\n }\n\n setValues(value: any) {\n const {store} = this.props;\n this.flush();\n store.setValues(value);\n }\n\n submit(fn?: (values: object) => Promise<any>): Promise<any> {\n const {store, messages, translate: __} = this.props;\n this.flush();\n\n return store.submit(\n fn,\n this.hooks['validate'] || [],\n __(messages && messages.validateFailed)\n );\n }\n\n // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。\n flush() {\n const hooks = this.hooks['flush'] || [];\n hooks.forEach(fn => fn());\n this.lazyEmitChange.flush();\n }\n\n reset() {\n const {store, onReset} = this.props;\n store.reset(onReset);\n }\n\n addHook(fn: () => any, type: 'validate' | 'init' | 'flush' = 'validate') {\n this.hooks[type] = this.hooks[type] || [];\n this.hooks[type].push(type === 'flush' ? fn : promisify(fn));\n return () => {\n this.removeHook(fn, type);\n fn = noop;\n };\n }\n\n removeHook(fn: () => any, type: string = 'validate') {\n const hooks = this.hooks[type];\n\n if (!hooks) {\n return;\n }\n\n for (let i = 0, len = hooks.length; i < len; i++) {\n let hook = hooks[i];\n\n if (hook === fn || (hook as any).raw === fn) {\n hooks.splice(i, 1);\n len--;\n i--;\n }\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit: boolean,\n changePristine = false\n ) {\n const {store, formLazyChange} = this.props;\n\n if (typeof name !== 'string') {\n return;\n }\n\n store.changeValue(name, value, changePristine);\n\n if (!changePristine) {\n (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(\n submit\n );\n }\n\n if (store.persistData && store.inited) {\n store.setLocalPersistData();\n }\n }\n\n emitChange(submit: boolean) {\n const {onChange, store, submitOnChange} = this.props;\n\n if (!isAlive(store)) {\n return;\n }\n\n onChange &&\n onChange(store.data, difference(store.data, store.pristine), this.props);\n\n store.clearRestError();\n\n (submit || (submitOnChange && store.inited)) &&\n this.handleAction(\n undefined,\n {\n type: 'submit'\n },\n store.data\n );\n }\n\n handleBulkChange(values: Object, submit: boolean) {\n const {onChange, store, formLazyChange} = this.props;\n\n store.updateData(values);\n\n 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 translate: __\n } = this.props;\n\n // 做动作之前,先把数据同步一下。\n this.flush();\n\n if (trimValues) {\n store.trimValues();\n }\n\n // 如果 data 就是当前层,则 flush 一下。\n if (data === this.props.data) {\n data = store.data;\n }\n\n if (Array.isArray(action.required) && action.required.length) {\n return store.validateFields(action.required).then(result => {\n if (!result) {\n env.notify('error', __('Form.validateFailed'));\n } else {\n this.handleAction(\n e,\n {...action, required: undefined},\n data,\n throwErrors,\n delegate\n );\n }\n });\n }\n\n if (\n action.type === 'submit' ||\n action.actionType === 'submit' ||\n action.actionType === 'confirm' ||\n action.actionType === 'reset-and-submit' ||\n action.actionType === 'clear-and-submit'\n ) {\n store.setCurrentAction(action);\n\n if (action.actionType === 'reset-and-submit') {\n store.reset(onReset);\n } else if (action.actionType === 'clear-and-submit') {\n store.clear(onReset);\n }\n\n return this.submit((values): any => {\n if (onSubmit && onSubmit(values, action) === false) {\n return Promise.resolve(false);\n }\n\n if (target) {\n this.submitToTarget(target, values);\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, values);\n } else if (action.actionType === 'dialog') {\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.openDrawer(data);\n } else if (isEffectiveApi(action.api || api, values)) {\n let finnalAsyncApi = action.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n return store\n .saveRemote(action.api || (api as Api), values, {\n successMessage: saveSuccess,\n errorMessage: saveFailed,\n onSuccess: () => {\n if (\n !isEffectiveApi(finnalAsyncApi, store.data) ||\n store.data[finishedField || 'finished']\n ) {\n return;\n }\n\n return until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel),\n checkInterval\n );\n }\n })\n .then(async response => {\n onSaved && onSaved(values, response);\n const feedback = action.feedback || this.props.feedback;\n\n // submit 也支持 feedback\n if (feedback && isVisible(feedback, store.data)) {\n const confirmed = await this.openFeedback(feedback, store.data);\n\n // 如果 feedback 配置了,取消就跳过原有逻辑。\n if (feedback.skipRestOnCancel && !confirmed) {\n throw new SkipOperation();\n } else if (feedback.skipRestOnConfirm && confirmed) {\n throw new SkipOperation();\n }\n }\n\n // return values;\n });\n }\n\n return Promise.resolve(null);\n })\n .then(values => {\n // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。\n if (values === false) {\n return store.data;\n }\n\n if (onFinished && onFinished(values, action) === false) {\n return values;\n }\n\n resetAfterSubmit && store.reset(onReset);\n clearAfterSubmit && store.clear(onReset);\n clearPersistDataAfterSubmit && store.clearLocalPersistData();\n\n if (action.redirect || redirect) {\n const finalRedirect = filter(\n action.redirect || redirect,\n store.data\n );\n finalRedirect && env.jumpTo(finalRedirect, action);\n } else if (action.reload || reload) {\n this.reloadTarget(action.reload || reload!, store.data);\n }\n\n action.close && this.closeTarget(action.close);\n return values;\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n\n onFailed && onFailed(reason, store.errors);\n\n if (throwErrors) {\n throw reason;\n }\n });\n } else if (action.type === 'reset' || action.actionType === 'reset') {\n store.setCurrentAction(action);\n store.reset(onReset);\n } else if (action.actionType === 'clear') {\n store.setCurrentAction(action);\n store.clear(onReset);\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'drawer') {\n store.setCurrentAction(action);\n store.openDrawer(data);\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n if (!isEffectiveApi(action.api)) {\n return env.alert(__(`当 actionType 为 ajax 时,请设置 api 属性`));\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: __(\n (action.messages && action.messages.success) || saveSuccess\n ),\n errorMessage: __(\n (action.messages && action.messages.failed) || saveFailed\n )\n })\n .then(async response => {\n response &&\n onChange &&\n onChange(\n store.data,\n difference(store.data, store.pristine),\n this.props\n );\n if (store.validated) {\n await this.validate(true);\n }\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n onFailed && onFailed(e, store.errors);\n if (throwErrors) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload') {\n store.setCurrentAction(action);\n if (action.target) {\n this.reloadTarget(action.target, data);\n } else {\n // 刷自己\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 } = props;\n\n const subProps = {\n formStore: form,\n data: store.data,\n key: `${(control as Schema).name || ''}-${\n (control as Schema).type\n }-${key}`,\n formInited: form.inited,\n formSubmited: form.submited,\n formMode: mode,\n formHorizontal: horizontal,\n controlWidth,\n disabled: disabled || (control as Schema).disabled || form.loading,\n btnDisabled: form.loading || form.validating,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n onChange: this.handleChange,\n onBulkChange: this.handleBulkChange,\n addHook: this.addHook,\n removeHook: this.removeHook,\n renderFormItems: this.renderFormItems,\n formPristine: form.pristine\n // value: (control as any)?.name\n // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)\n // : (control as any)?.value,\n // defaultValue: (control as any)?.value\n };\n\n let subSchema: any = {\n ...control\n };\n\n if (subSchema.$ref) {\n subSchema = {\n ...resolveDefinitions(subSchema.$ref),\n ...subSchema\n };\n }\n\n lazyChange === false && (subSchema.changeImmediately = true);\n return render(`${region ? `${region}/` : ''}${key}`, subSchema, subProps);\n }\n\n renderBody() {\n const {\n body,\n mode,\n className,\n classnames: cx,\n debug,\n $path,\n store,\n 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 shouldSyncSuperStore: (store, props, prevProps) => {\n // 如果是 QuickEdit,让 store 同步 __super 数据。\n if (\n props.quickEditFormRef &&\n props.onQuickChange &&\n (isObjectShallowModified(prevProps.data, props.data) ||\n isObjectShallowModified(prevProps.data.__super, props.data.__super) ||\n isObjectShallowModified(\n prevProps.data.__super?.__super,\n props.data.__super?.__super\n ))\n ) {\n return true;\n }\n\n return undefined;\n }\n})\nexport class FormRenderer extends Form {\n static contextType = ScopedContext;\n\n constructor(props: FormProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n if (this.props.autoFocus) {\n const scoped = this.context as IScopedContext;\n const inputs = scoped.getComponents();\n let focuableInput = find(\n inputs,\n input => input.focus\n ) as ScopedComponentType;\n focuableInput && setTimeout(() => focuableInput.focus!(), 200);\n }\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n\n super.componentWillUnmount();\n }\n\n doAction(\n action: Action,\n data: object = this.props.store.data,\n throwErrors: boolean = false\n ) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n // 禁用了不要做任何动作。@先注释掉,会引起其他问题\n // if (this.props.disabled) {\n // return;\n // }\n\n if (action.target && action.actionType !== 'reload') {\n const scoped = this.context as IScopedContext;\n\n return Promise.all(\n action.target.split(',').map(name => {\n let target = scoped.getComponentByName(name);\n return (\n target &&\n target.doAction &&\n target.doAction(\n {\n ...action,\n target: undefined\n },\n ctx,\n throwErrors\n )\n );\n })\n );\n } else {\n return super.handleAction(e, action, ctx, throwErrors, delegate);\n }\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n targets: Array<any>\n ) {\n super.handleDialogConfirm(values, action, ctx, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n\n if (action.reload) {\n scoped.reload(action.reload, ctx);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, ctx);\n }\n }\n\n submitToTarget(target: string, values: object) {\n const scoped = this.context as IScopedContext;\n scoped.send(target, values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n\n reload(target?: string, query?: any, ctx?: any, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const scoped = this.context as IScopedContext;\n let subPath: string = '';\n let idx: number;\n let subQuery: any = null;\n if (target && ~(idx = target.indexOf('.'))) {\n subPath = target.substring(idx + 1);\n target = target.substring(0, idx);\n }\n const idx2 = target ? target.indexOf('?') : -1;\n if (~idx2) {\n subQuery = dataMapping(\n qsparse((target as string).substring(idx2 + 1)),\n ctx\n );\n target = (target as string).substring(0, idx2);\n }\n\n let component;\n if (\n target &&\n (component = scoped.getComponentByName(target)) &&\n component.reload\n ) {\n component.reload(subPath, subQuery, ctx);\n } else if (target === '*') {\n super.reload(target, query, ctx, silent);\n const components = scoped.getComponents();\n components.forEach(\n (component: any) =>\n component.reload && component.reload('', subQuery, ctx)\n );\n } else {\n super.reload(target, query, ctx, silent);\n }\n }\n\n receive(values: object, name?: string) {\n if (name) {\n const scoped = this.context as IScopedContext;\n const idx = name.indexOf('.');\n let subPath = '';\n\n if (~idx) {\n subPath = name.substring(1 + idx);\n name = name.substring(0, idx);\n }\n\n const component = scoped.getComponentByName(name);\n component && component.receive && component.receive(values, subPath);\n return;\n }\n\n return super.receive(values);\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/IFrame.js
CHANGED
@@ -7,6 +7,7 @@ var factory_1 = require("../factory");
|
|
7
7
|
var helper_1 = require("../utils/helper");
|
8
8
|
var Scoped_1 = require("../Scoped");
|
9
9
|
var api_1 = require("../utils/api");
|
10
|
+
var tpl_builtin_1 = require("../utils/tpl-builtin");
|
10
11
|
var IFrame = /** @class */ (function (_super) {
|
11
12
|
(0, tslib_1.__extends)(IFrame, _super);
|
12
13
|
function IFrame() {
|
@@ -69,7 +70,8 @@ var IFrame = /** @class */ (function (_super) {
|
|
69
70
|
}
|
70
71
|
var _a = this.props, src = _a.src, data = _a.data;
|
71
72
|
if (src) {
|
72
|
-
this.IFrameRef.current.src =
|
73
|
+
this.IFrameRef.current.src =
|
74
|
+
(0, tpl_builtin_1.resolveVariableAndFilter)(src, data, '| raw');
|
73
75
|
}
|
74
76
|
};
|
75
77
|
// 当别的组件把数据发给 iframe 里面的时候执行。
|
@@ -78,7 +80,8 @@ var IFrame = /** @class */ (function (_super) {
|
|
78
80
|
var newData = (0, helper_1.createObject)(data, values);
|
79
81
|
this.postMessage('receive', newData);
|
80
82
|
if ((0, api_1.isApiOutdated)(src, src, data, newData)) {
|
81
|
-
this.IFrameRef.current.src =
|
83
|
+
this.IFrameRef.current.src =
|
84
|
+
(0, tpl_builtin_1.resolveVariableAndFilter)(src, newData, '| raw');
|
82
85
|
}
|
83
86
|
};
|
84
87
|
IFrame.prototype.postMessage = function (type, data) {
|
@@ -95,7 +98,9 @@ var IFrame = /** @class */ (function (_super) {
|
|
95
98
|
width !== void 0 && (tempStyle.width = width);
|
96
99
|
height !== void 0 && (tempStyle.height = height);
|
97
100
|
style = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, tempStyle), style);
|
98
|
-
var finalSrc = src
|
101
|
+
var finalSrc = src
|
102
|
+
? (0, tpl_builtin_1.resolveVariableAndFilter)(src, data, '| raw')
|
103
|
+
: undefined;
|
99
104
|
if (typeof finalSrc === 'string' &&
|
100
105
|
finalSrc &&
|
101
106
|
!/^(\.\/|\.\.\/|\/|https?\:\/\/|\/\/)/.test(finalSrc)) {
|