amis 1.5.4 → 1.5.6-beta.5
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/Root.js +1 -1
- package/lib/Root.js.map +2 -2
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +4 -3
- package/lib/RootRenderer.js.map +2 -2
- package/lib/Schema.d.ts +1 -1
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.js +4 -4
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/components/AsideNav.d.ts +1 -1
- package/lib/components/AsideNav.js.map +1 -1
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CodeMirror.d.ts +26 -0
- package/lib/components/CodeMirror.js +104 -0
- package/lib/components/CodeMirror.js.map +13 -0
- package/lib/components/Collapse.d.ts +22 -21
- package/lib/components/Collapse.js +4 -6
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/CollapseGroup.js +5 -3
- package/lib/components/CollapseGroup.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +85 -84
- package/lib/components/ColorPicker.js +15 -3
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +7 -3
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +85 -84
- package/lib/components/DateRangePicker.js +5 -3
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/LocationPicker.d.ts +84 -84
- package/lib/components/MonthRangePicker.d.ts +85 -84
- package/lib/components/MonthRangePicker.js +5 -3
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/PickerContainer.d.ts +2 -1
- package/lib/components/PickerContainer.js +3 -3
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/PopUp.d.ts +93 -0
- package/lib/components/PopUp.js +58 -0
- package/lib/components/PopUp.js.map +13 -0
- package/lib/components/Progress.js +1 -1
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Steps.d.ts +1 -0
- package/lib/components/Steps.js +5 -3
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransferPicker.js +1 -1
- package/lib/components/TabsTransferPicker.js.map +2 -2
- package/lib/components/TransferPicker.d.ts +0 -1
- package/lib/components/TransferPicker.js +2 -15
- package/lib/components/TransferPicker.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +560 -0
- package/lib/components/formula/Editor.js +186 -0
- package/lib/components/formula/Editor.js.map +13 -0
- package/lib/components/formula/FuncList.d.ts +67 -0
- package/lib/components/formula/FuncList.js +35 -0
- package/lib/components/formula/FuncList.js.map +13 -0
- package/lib/components/formula/Picker.d.ts +493 -0
- package/lib/components/formula/Picker.js +48 -0
- package/lib/components/formula/Picker.js.map +13 -0
- package/lib/components/formula/VariableList.d.ts +9 -0
- package/lib/components/formula/VariableList.js +15 -0
- package/lib/components/formula/VariableList.js.map +13 -0
- package/lib/components/formula/plugin.d.ts +18 -0
- package/lib/components/formula/plugin.js +136 -0
- package/lib/components/formula/plugin.js.map +13 -0
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/helper.css +57 -57
- package/lib/helper.css.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +1 -1
- package/lib/renderers/CRUD.js +4 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Collapse.js +8 -2
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +2 -2
- package/lib/renderers/Dialog.js +7 -7
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +2 -2
- package/lib/renderers/Drawer.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 +2 -2
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +2 -2
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +2 -2
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +1 -1
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +35 -0
- package/lib/renderers/Form/InputFormula.js +25 -0
- package/lib/renderers/Form/InputFormula.js.map +13 -0
- package/lib/renderers/Form/InputImage.js +1 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +2 -2
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputQuarterRange.js +2 -2
- package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
- package/lib/renderers/Form/InputYearRange.js +2 -2
- package/lib/renderers/Form/InputYearRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js +4 -3
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +1 -0
- package/lib/renderers/Form/TreeSelect.js +11 -8
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +1 -1
- package/lib/renderers/Form/index.js +3 -2
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Page.d.ts +3 -3
- package/lib/renderers/Page.js +4 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Steps.js +2 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Wizard.d.ts +1 -1
- package/lib/renderers/Wizard.js +93 -36
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/formItem.js +11 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +261 -0
- package/lib/themes/ang.css +261 -0
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +261 -0
- package/lib/themes/antd.css +261 -0
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +261 -0
- package/lib/themes/cxd.css +261 -0
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +261 -0
- package/lib/themes/dark.css +261 -0
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +261 -0
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +2 -2
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.js +2 -7
- package/lib/utils/helper.js.map +2 -2
- package/package.json +5 -3
- package/scss/_variables.scss +1 -1
- package/scss/components/_formula.scss +122 -0
- package/scss/components/_popup.scss +123 -0
- package/scss/components/_steps.scss +60 -0
- package/scss/components/form/_color.scss +4 -0
- package/scss/components/form/_date-range.scss +4 -0
- package/scss/components/form/_date.scss +3 -0
- package/scss/components/form/_tree-select.scss +4 -0
- package/scss/helper/background/_background-color.scss +1 -1
- package/scss/helper/border/_border-color.scss +1 -1
- package/scss/helper/typography/_text-color.scss +1 -1
- package/scss/themes/_common.scss +2 -0
- package/sdk/ang-ie11.css +875 -0
- package/sdk/ang.css +875 -0
- package/sdk/antd-ie11.css +875 -0
- package/sdk/antd.css +875 -0
- package/sdk/charts.js +18 -18
- package/sdk/codemirror.js +14 -0
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +875 -0
- package/sdk/cxd.css +875 -0
- package/sdk/dark-ie11.css +875 -0
- package/sdk/dark.css +875 -0
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +57 -57
- package/sdk/helper.css.map +1 -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 +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +875 -0
- package/sdk/sdk.css +875 -0
- package/sdk/sdk.js +1315 -1207
- 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/Root.tsx +1 -0
- package/src/RootRenderer.tsx +3 -3
- package/src/Schema.ts +1 -0
- package/src/SchemaRenderer.tsx +4 -0
- package/src/components/AsideNav.tsx +1 -1
- package/src/components/CodeMirror.tsx +99 -0
- package/src/components/Collapse.tsx +21 -13
- package/src/components/CollapseGroup.tsx +9 -11
- package/src/components/ColorPicker.tsx +45 -3
- package/src/components/DatePicker.tsx +33 -3
- package/src/components/DateRangePicker.tsx +17 -3
- package/src/components/MonthRangePicker.tsx +18 -4
- package/src/components/PickerContainer.tsx +10 -6
- package/src/components/PopUp.tsx +133 -0
- package/src/components/Progress.tsx +1 -1
- package/src/components/Steps.tsx +8 -3
- package/src/components/TabsTransferPicker.tsx +1 -1
- package/src/components/TransferPicker.tsx +1 -11
- package/src/components/formula/Editor.tsx +261 -0
- package/src/components/formula/FuncList.tsx +82 -0
- package/src/components/formula/Picker.tsx +86 -0
- package/src/components/formula/VariableList.tsx +49 -0
- package/src/components/formula/plugin.ts +177 -0
- package/src/components/index.tsx +2 -0
- package/src/index.tsx +1 -0
- package/src/renderers/CRUD.tsx +3 -3
- package/src/renderers/Collapse.tsx +27 -27
- package/src/renderers/CollapseGroup.tsx +13 -12
- package/src/renderers/Dialog.tsx +8 -8
- package/src/renderers/Drawer.tsx +2 -2
- package/src/renderers/Form/InputColor.tsx +2 -3
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputFile.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +75 -0
- package/src/renderers/Form/InputImage.tsx +1 -1
- package/src/renderers/Form/InputMonthRange.tsx +2 -0
- package/src/renderers/Form/InputQuarterRange.tsx +2 -0
- package/src/renderers/Form/InputYearRange.tsx +2 -0
- package/src/renderers/Form/Item.tsx +2 -2
- package/src/renderers/Form/TreeSelect.tsx +82 -63
- package/src/renderers/Form/index.tsx +2 -2
- package/src/renderers/Page.tsx +11 -10
- package/src/renderers/Steps.tsx +4 -2
- package/src/renderers/Wizard.tsx +52 -12
- package/src/store/formItem.ts +15 -0
- package/src/utils/api.ts +5 -2
- package/src/utils/helper.ts +5 -14
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Wizard.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 {ScopedContext, IScopedContext} from '../Scoped';\nimport {Renderer, RendererProps} from '../factory';\nimport {ServiceStore, IServiceStore} from '../store/service';\nimport {Api, Action} from '../types';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n createObject,\n until,\n isVisible,\n getScrollParent,\n autobind\n} from '../utils/helper';\nimport {isApiOutdated, isEffectiveApi} from '../utils/api';\nimport {IFormStore} from '../store/form';\nimport {Spinner} from '../components';\nimport {Icon} from '../components/icons';\nimport {findDOMNode} from 'react-dom';\nimport {resizeSensor} from '../utils/resize-sensor';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaExpression,\n SchemaName,\n SchemaReload\n} from '../Schema';\nimport {FormSchema} from './Form';\nimport {ActionSchema} from './Action';\n\nimport {tokenize} from '../utils/tpl-builtin';\n\nexport type WizardStepSchema = Omit<FormSchema, 'type'> & {\n /**\n * 当前步骤用来保存数据的 api。\n */\n api?: SchemaApi;\n\n asyncApi?: SchemaApi;\n\n /**\n * 当前步骤用来获取初始数据的 api\n */\n initApi?: SchemaApi;\n\n /**\n * 是否可直接跳转到该步骤,一般编辑模式需要可直接跳转查看。\n */\n jumpable?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前步骤可否被直接跳转到。\n */\n jumpableOn?: SchemaExpression;\n\n /**\n * Step 标题\n */\n title?: string;\n label?: string;\n\n /**\n * 每一步可以单独配置按钮。如果不配置wizard会自动生成。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 保存完后,可以指定跳转地址,支持相对路径和组内绝对路径,同时可以通过 $xxx 使用变量\n */\n redirect?: string;\n\n reload?: SchemaReload;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n};\n\n/**\n * 表单向导\n * 文档:https://baidu.gitee.io/amis/docs/components/wizard\n */\nexport interface WizardSchema extends BaseSchema {\n /**\n * 指定为表单向导\n */\n type: 'wizard';\n\n /**\n * 配置按钮 className\n */\n actionClassName?: SchemaClassName;\n\n /**\n * 完成按钮的文字描述\n */\n actionFinishLabel?: string;\n\n /**\n * 下一步按钮的文字描述\n */\n actionNextLabel?: string;\n\n /**\n * 下一步并且保存按钮的文字描述\n */\n actionNextSaveLabel?: string;\n\n /**\n * 上一步按钮的文字描述\n */\n actionPrevLabel?: string;\n\n /**\n * Wizard 用来保存数据的 api。\n * [详情](https://baidu.github.io/amis/docs/api#wizard)\n */\n api?: SchemaApi;\n\n /**\n * 是否合并后再提交\n */\n bulkSubmit?: boolean;\n\n /**\n * Wizard 用来获取初始数据的 api。\n */\n initApi?: SchemaApi;\n\n /**\n * 展示模式\n *\n * @default vertical\n */\n mode?: 'vertical' | 'horizontal';\n\n name?: SchemaName;\n\n /**\n * 是否为只读模式。\n */\n readOnly?: boolean;\n\n /**\n * 保存完后,可以指定跳转地址,支持相对路径和组内绝对路径,同时可以通过 $xxx 使用变量\n */\n redirect?: string;\n\n reload?: SchemaReload;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n\n /**\n * 是否将底部按钮固定在底部。\n */\n affixFooter?: boolean | 'always';\n\n steps: Array<WizardStepSchema>;\n\n startStep?: string;\n}\n\nexport interface WizardProps\n extends RendererProps,\n Omit<WizardSchema, 'className'> {\n store: IServiceStore;\n onFinished: (values: object, action: any) => any;\n}\n\nexport interface WizardState {\n currentStep: number;\n completeStep: number;\n}\n\nexport default class Wizard extends React.Component<WizardProps, WizardState> {\n static defaultProps: Partial<WizardProps> = {\n mode: 'horizontal', // vertical\n readOnly: false,\n messages: {},\n actionClassName: '',\n actionPrevLabel: 'Wizard.prev',\n actionNextLabel: 'Wizard.next',\n actionNextSaveLabel: 'Wizard.saveAndNext',\n actionFinishLabel: 'Wizard.finish',\n startStep: '1'\n };\n\n static propsList: Array<string> = [\n 'steps',\n 'mode',\n 'messages',\n 'actionClassName',\n 'actionPrevLabel',\n 'actionNextLabel',\n 'actionNextSaveLabel',\n 'actionFinishLabel',\n 'onFinished',\n 'affixFooter',\n 'startStep'\n ];\n\n dom: any;\n form: any;\n asyncCancel: () => void;\n\n parentNode?: any;\n unSensor: Function;\n affixDom: React.RefObject<HTMLDivElement> = React.createRef();\n footerDom: React.RefObject<HTMLDivElement> = React.createRef();\n initalValues: {\n [propName: string]: any;\n } = {};\n\n state = {\n currentStep: -1, // init 完后会设置成 1\n completeStep: -1\n };\n\n componentDidMount() {\n const {\n initApi,\n initFetch,\n initAsyncApi,\n initFinishedField,\n store,\n messages: {fetchSuccess, fetchFailed},\n onInit\n } = this.props;\n\n if (isEffectiveApi(initApi, store.data, initFetch)) {\n store\n .fetchInitData(initApi, 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 );\n }\n })\n .then(value => {\n onInit && onInit(store.data);\n const state = {\n currentStep:\n typeof this.props.startStep === 'string'\n ? parseInt(tokenize(this.props.startStep, this.props.data))\n : 1\n };\n\n if (\n value &&\n value.data &&\n (typeof value.data.step === 'number' ||\n (typeof value.data.step === 'string' &&\n /^\\d+$/.test(value.data.step)))\n ) {\n state.currentStep = parseInt(value.data.step, 10);\n }\n\n this.setState(state, () => {\n // 如果 initApi 返回的状态是正在提交,则进入轮顺状态。\n if (\n value &&\n value.data &&\n (value.data.submiting || value.data.submited)\n ) {\n this.checkSubmit();\n }\n });\n return value;\n });\n } else {\n this.setState(\n {\n currentStep:\n typeof this.props.startStep === 'string'\n ? parseInt(tokenize(this.props.startStep, this.props.data))\n : 1\n },\n () => onInit && onInit(store.data)\n );\n }\n\n const dom = findDOMNode(this) as HTMLElement;\n if (!(dom instanceof Element)) {\n return;\n }\n\n let parent: HTMLElement | Window | null = dom ? getScrollParent(dom) : null;\n if (!parent || parent === document.body) {\n parent = window;\n }\n this.parentNode = parent;\n parent.addEventListener('scroll', this.affixDetect);\n this.unSensor = resizeSensor(dom as HTMLElement, this.affixDetect);\n this.affixDetect();\n }\n\n componentDidUpdate(prevProps: WizardProps) {\n const props = this.props;\n const {store, fetchSuccess, fetchFailed} = props;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n store.fetchData(props.initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n });\n }\n }\n\n componentWillUnmount() {\n this.asyncCancel && this.asyncCancel();\n const parent = this.parentNode;\n parent && parent.removeEventListener('scroll', this.affixDetect);\n this.unSensor && this.unSensor();\n }\n\n @autobind\n affixDetect() {\n if (\n !this.props.affixFooter ||\n !this.affixDom.current ||\n !this.footerDom.current\n ) {\n return;\n }\n\n const affixDom = this.affixDom.current;\n const footerDom = this.footerDom.current;\n let affixed = false;\n footerDom.offsetWidth &&\n (affixDom.style.cssText = `width: ${footerDom.offsetWidth}px;`);\n\n if (this.props.affixFooter === 'always') {\n affixed = true;\n footerDom.classList.add('invisible2');\n } else {\n const clip = footerDom.getBoundingClientRect();\n const clientHeight = window.innerHeight;\n affixed = clip.top + clip.height / 2 > clientHeight;\n }\n\n affixed ? affixDom.classList.add('in') : affixDom.classList.remove('in');\n }\n\n gotoStep(index: number) {\n const steps = this.props.steps || [];\n index = Math.max(Math.min(steps.length, index), 1);\n\n if (index != this.state.currentStep) {\n this.setState({\n currentStep: index,\n completeStep: Math.max(this.state.completeStep, index - 1)\n });\n }\n }\n\n @autobind\n formRef(ref: any) {\n if (ref) {\n while (ref && ref.getWrappedInstance) {\n ref = ref.getWrappedInstance();\n }\n this.form = ref;\n } else {\n this.form = undefined;\n }\n }\n\n submitToTarget(target: string, values: object) {\n throw new Error('Please implements this!');\n }\n\n reloadTarget(target: string, data: any) {\n throw new Error('Please implements this!');\n }\n\n reload(subPath?: string, query?: any, ctx?: any) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n initApi,\n initAsyncApi,\n initFinishedField,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n if (isEffectiveApi(initApi, store.data) && this.state.currentStep === 1) {\n store\n .fetchInitData(initApi, 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 );\n }\n })\n .then(value => {\n const state = {\n currentStep: 1\n };\n\n if (\n value &&\n value.data &&\n (typeof value.data.step === 'number' ||\n (typeof value.data.step === 'string' &&\n /^\\d+$/.test(value.data.step)))\n ) {\n state.currentStep = parseInt(value.data.step, 10);\n }\n\n this.setState(state, () => {\n // 如果 initApi 返回的状态是正在提交,则进入轮顺状态。\n if (\n value &&\n value.data &&\n (value.data.submiting || value.data.submited)\n ) {\n this.checkSubmit();\n }\n });\n return value;\n });\n }\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n @autobind\n domRef(ref: any) {\n this.dom = ref;\n }\n\n @autobind\n getPopOverContainer() {\n return this.dom;\n }\n\n // 用来还原异步提交状态。\n checkSubmit() {\n const {store, steps, asyncApi, finishedField, env} = this.props;\n\n const step = steps[this.state.currentStep - 1];\n let finnalAsyncApi =\n (step && step.asyncApi) ||\n (this.state.currentStep === steps.length && asyncApi);\n\n if (!step || !isEffectiveApi(finnalAsyncApi, store.data)) {\n return;\n }\n\n store.markSaving(true);\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n )\n .then(() => {\n store.markSaving(false);\n this.gotoStep(this.state.currentStep + 1);\n })\n .catch(e => {\n env.notify('error', e.message);\n store.markSaving(false);\n });\n }\n\n @autobind\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n const {onAction, store, env} = this.props;\n\n if (action.actionType === 'next' || action.type === 'submit') {\n this.form.doAction(\n {\n ...action,\n actionType: 'submit'\n },\n data\n );\n } else if (action.actionType === 'prev') {\n this.gotoStep(this.state.currentStep - 1);\n } else if (action.type === 'reset') {\n this.form.reset();\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'ajax') {\n if (!action.api) {\n return env.alert(`当 actionType 为 ajax 时,请设置 api 属性`);\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: action.messages && action.messages.success,\n errorMessage: action.messages && action.messages.failed\n })\n .then(async () => {\n this.form && this.form.isValidated() && this.form.validate(true);\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const reidrect =\n action.redirect && filter(action.redirect, store.data);\n reidrect && env.jumpTo(reidrect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n })\n .catch(() => {});\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, data);\n } else if (onAction) {\n onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n @autobind\n handleQuery(query: any) {\n if (this.props.initApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\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 @autobind\n handleChange(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n }\n\n @autobind\n handleInit(values: any) {\n const step = this.state.currentStep;\n this.initalValues[step] = this.initalValues[step] || values;\n const store = this.props.store;\n\n store.updateData(values);\n }\n\n @autobind\n handleReset(values: any) {\n const {store} = this.props;\n const initalValue = this.initalValues[this.state.currentStep];\n const reseted: any = {};\n Object.keys(values).forEach(key => {\n reseted[key] = initalValue.hasOwnProperty(key)\n ? initalValue[key]\n : undefined;\n });\n\n store.updateData(reseted);\n }\n\n // 接管里面 form 的提交,不能直接让 form 提交,因为 wizard 自己需要知道进度。\n @autobind\n handleSubmit(values: object, action: Action) {\n const {\n store,\n steps,\n api,\n asyncApi,\n finishedField,\n target,\n redirect,\n reload,\n env,\n onFinished\n } = this.props;\n\n const step = steps[this.state.currentStep - 1];\n store.updateData(values);\n\n if (this.state.currentStep < steps.length) {\n let finnalAsyncApi = action.asyncApi || step.asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n if (isEffectiveApi(action.api || step.api, store.data)) {\n store\n .saveRemote(action.api || step.api!, store.data, {\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 );\n },\n onFailed: json => {\n if (json.status === 422 && json.errors && this.form) {\n this.form.props.store.handleRemoteError(json.errors);\n }\n }\n })\n .then((value: any) =>\n this.gotoStep(\n value && typeof value.step === 'number'\n ? value.step\n : this.state.currentStep + 1\n )\n )\n .catch(() => {\n // do nothing\n });\n } else {\n this.gotoStep(this.state.currentStep + 1);\n }\n } else {\n // 最后一步\n if (target) {\n this.submitToTarget(target, store.data);\n this.setState({completeStep: steps.length});\n } else if (action.api || step.api || api) {\n let finnalAsyncApi = action.asyncApi || step.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n const formStore = this.form\n ? (this.form.props.store as IFormStore)\n : store;\n store.markSaving(true);\n\n formStore\n .saveRemote(action.api || step.api || api!, store.data, {\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 );\n }\n })\n .then(value => {\n this.setState({completeStep: steps.length});\n store.updateData({\n ...store.data,\n ...value\n });\n store.markSaving(false);\n\n if (value && typeof value.step === 'number') {\n this.gotoStep(value.step);\n } else if (onFinished && onFinished(value, action) === false) {\n // 如果是 false 后面的操作就不执行\n return value;\n }\n\n const finalRedirect =\n (action.redirect || step.redirect || redirect) &&\n filter(action.redirect || step.redirect || redirect, store.data);\n\n if (finalRedirect) {\n env.jumpTo(finalRedirect, action);\n } else if (action.reload || step.reload || reload) {\n this.reloadTarget(\n action.reload || step.reload || reload!,\n store.data\n );\n }\n\n return value;\n })\n .catch(e => {\n store.markSaving(false);\n console.error(e);\n });\n } else {\n onFinished && onFinished(store.data, action);\n this.setState({completeStep: steps.length});\n }\n }\n\n return false;\n }\n\n @autobind\n handleDialogConfirm(values: object[], action: Action, targets: Array<any>) {\n const {store} = this.props;\n\n if (\n action.mergeData &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n store.updateData(values[0]);\n }\n\n store.closeDialog();\n }\n\n @autobind\n handleDialogClose() {\n const {store} = this.props;\n store.closeDialog();\n }\n\n renderSteps() {\n const {steps, store, mode, classPrefix: ns, classnames: cx} = this.props;\n const {currentStep, completeStep} = this.state;\n\n return (\n <div className={`${ns}Wizard-steps`} id=\"form-wizard\">\n {Array.isArray(steps) && steps.length ? (\n <ul>\n {steps.map((step, key) => {\n const canJump = isJumpable(step, key, currentStep, store.data);\n const isComplete = canJump || key < completeStep;\n const isActive = currentStep === key + 1;\n\n return (\n <li\n key={key}\n className={cx({\n 'is-complete': isComplete,\n 'is-active': isActive\n })}\n onClick={() => (canJump ? this.gotoStep(key + 1) : null)}\n >\n <span\n className={cx('Badge', {\n // 'Badge--success': canJump && currentStep != key + 1,\n 'is-complete': isComplete,\n 'is-active':\n isActive || (canJump && currentStep != key + 1)\n })}\n >\n {isComplete && !isActive ? (\n <Icon icon=\"check\" className=\"icon\" />\n ) : (\n key + 1\n )}\n </span>\n {step.title || step.label || `第 ${key + 1} 步`}\n </li>\n );\n })}\n </ul>\n ) : null}\n </div>\n );\n }\n\n renderActions() {\n const {\n steps,\n store,\n readOnly,\n disabled,\n actionClassName,\n actionPrevLabel,\n actionNextLabel,\n actionNextSaveLabel,\n actionFinishLabel,\n render,\n translate: __\n } = this.props;\n\n if (!Array.isArray(steps)) {\n return null;\n }\n\n const currentStepIndex = this.state.currentStep;\n const nextStep = steps[currentStepIndex];\n const prevStep = steps[currentStepIndex - 2];\n const waiting = store.loading;\n const step = steps[currentStepIndex - 1];\n\n if (!step) {\n return null;\n }\n\n const prevCanJump = prevStep\n ? isJumpable(prevStep, currentStepIndex - 2, currentStepIndex, store.data)\n : false;\n\n if (step.actions && Array.isArray(step.actions)) {\n return step.actions.length ? (\n <>\n {step.actions.map((action, index) =>\n render(`action/${index}`, action, {\n key: index,\n onAction: this.handleAction,\n disabled:\n action.disabled ||\n waiting ||\n disabled ||\n (action.actionType === 'prev' && !prevCanJump) ||\n (action.actionType === 'next' &&\n readOnly &&\n (!!step.api || !nextStep))\n })\n )}\n </>\n ) : null;\n }\n\n return (\n <>\n {render(\n `prev-btn`,\n {\n type: 'button',\n label: __(actionPrevLabel),\n actionType: 'prev',\n className: actionClassName\n },\n {\n disabled: waiting || !prevCanJump || disabled,\n onAction: this.handleAction\n }\n )}\n\n {render(\n `next-btn`,\n {\n type: 'button',\n label: !nextStep\n ? __(actionFinishLabel)\n : !step.api\n ? __(actionNextLabel)\n : __(actionNextSaveLabel),\n actionType: 'next',\n primary: !nextStep || !!step.api,\n className: actionClassName\n },\n {\n disabled:\n waiting || disabled || (readOnly && (!!step.api || !nextStep)),\n onAction: this.handleAction\n }\n )}\n </>\n );\n }\n\n renderFooter() {\n const actions = this.renderActions();\n\n if (!actions) {\n return actions;\n }\n const {classnames: cx, affixFooter} = this.props;\n\n return (\n <>\n <div\n role=\"wizard-footer\"\n ref={this.footerDom}\n className={cx('Panel-footer Wizard-footer')}\n >\n {actions}\n </div>\n\n {affixFooter ? (\n <div\n ref={this.affixDom}\n className={cx('Panel-fixedBottom Wizard-footer')}\n >\n <div className={cx('Panel-footer')}>{actions}</div>\n </div>\n ) : null}\n </>\n );\n }\n\n renderWizard() {\n const {\n className,\n steps,\n render,\n store,\n classPrefix: ns,\n classnames: cx,\n popOverContainer,\n mode,\n translate: __\n } = this.props;\n\n const currentStep = this.state.currentStep;\n const step = Array.isArray(steps) ? steps[currentStep - 1] : null;\n\n return (\n <div\n ref={this.domRef}\n className={cx(\n `${ns}Panel ${ns}Panel--default ${ns}Wizard ${ns}Wizard--${mode}`,\n className\n )}\n >\n <div className={`${ns}Wizard-step`}>\n {this.renderSteps()}\n <div\n role=\"wizard-body\"\n className={`${ns}Wizard-stepContent clearfix`}\n >\n {step ? (\n render(\n 'body',\n {\n ...step,\n type: 'form',\n wrapWithPanel: false,\n\n // 接口相关需要外部来接管\n api: null\n },\n {\n key: this.state.currentStep,\n ref: this.formRef,\n onInit: this.handleInit,\n onReset: this.handleReset,\n onSubmit: this.handleSubmit,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n disabled: store.loading,\n popOverContainer:\n popOverContainer || this.getPopOverContainer,\n onChange: this.handleChange,\n formStore: undefined\n }\n )\n ) : currentStep === -1 ? (\n __('loading')\n ) : (\n <p className=\"text-danger\">{__('Wizard.configError')}</p>\n )}\n </div>\n {this.renderFooter()}\n </div>\n\n {render(\n 'dialog',\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 <Spinner size=\"lg\" overlay key=\"info\" show={store.loading} />\n </div>\n );\n }\n\n render() {\n return this.renderWizard();\n }\n}\n\nfunction isJumpable(step: any, index: number, currentStep: number, data: any) {\n let canJump = false;\n\n if (step && step.hasOwnProperty('jumpable')) {\n canJump = step.jumpable;\n } else if (step && step.jumpableOn) {\n canJump = evalExpression(\n step.jumpableOn,\n createObject(data, {\n currentStep\n })\n );\n } else {\n canJump = index + 1 < currentStep;\n }\n\n return canJump;\n}\n\n@Renderer({\n type: 'wizard',\n storeType: ServiceStore.name,\n isolateScope: true\n})\nexport class WizardRenderer extends Wizard {\n static contextType = ScopedContext;\n\n constructor(props: WizardProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n super.componentWillUnmount();\n }\n\n doAction(action: Action, data: object, throwErrors: boolean = false) {\n return this.handleAction(undefined, action, data);\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 @autobind\n handleDialogConfirm(values: object[], action: Action, targets: Array<any>) {\n super.handleDialogConfirm(values, action, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n if (action.reload) {\n scoped.reload(action.reload, store.data);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, store.data);\n }\n }\n}\n"
|
11
|
+
"import React from 'react';\nimport {ScopedContext, IScopedContext} from '../Scoped';\nimport {Renderer, RendererProps} from '../factory';\nimport {ServiceStore, IServiceStore} from '../store/service';\nimport {Api, Action} from '../types';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n createObject,\n until,\n isVisible,\n getScrollParent,\n autobind,\n SkipOperation\n} from '../utils/helper';\nimport {isApiOutdated, isEffectiveApi} from '../utils/api';\nimport {IFormStore} from '../store/form';\nimport {Spinner} from '../components';\nimport {Icon} from '../components/icons';\nimport {findDOMNode} from 'react-dom';\nimport {resizeSensor} from '../utils/resize-sensor';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaExpression,\n SchemaName,\n SchemaReload\n} from '../Schema';\nimport {FormSchema} from './Form';\nimport {ActionSchema} from './Action';\n\nimport {tokenize} from '../utils/tpl-builtin';\n\nexport type WizardStepSchema = Omit<FormSchema, 'type'> & {\n /**\n * 当前步骤用来保存数据的 api。\n */\n api?: SchemaApi;\n\n asyncApi?: SchemaApi;\n\n /**\n * 当前步骤用来获取初始数据的 api\n */\n initApi?: SchemaApi;\n\n /**\n * 是否可直接跳转到该步骤,一般编辑模式需要可直接跳转查看。\n */\n jumpable?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前步骤可否被直接跳转到。\n */\n jumpableOn?: SchemaExpression;\n\n /**\n * Step 标题\n */\n title?: string;\n label?: string;\n\n /**\n * 每一步可以单独配置按钮。如果不配置wizard会自动生成。\n */\n actions?: Array<ActionSchema>;\n\n /**\n * 保存完后,可以指定跳转地址,支持相对路径和组内绝对路径,同时可以通过 $xxx 使用变量\n */\n redirect?: string;\n\n reload?: SchemaReload;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n};\n\n/**\n * 表单向导\n * 文档:https://baidu.gitee.io/amis/docs/components/wizard\n */\nexport interface WizardSchema extends BaseSchema {\n /**\n * 指定为表单向导\n */\n type: 'wizard';\n\n /**\n * 配置按钮 className\n */\n actionClassName?: SchemaClassName;\n\n /**\n * 完成按钮的文字描述\n */\n actionFinishLabel?: string;\n\n /**\n * 下一步按钮的文字描述\n */\n actionNextLabel?: string;\n\n /**\n * 下一步并且保存按钮的文字描述\n */\n actionNextSaveLabel?: string;\n\n /**\n * 上一步按钮的文字描述\n */\n actionPrevLabel?: string;\n\n /**\n * Wizard 用来保存数据的 api。\n * [详情](https://baidu.github.io/amis/docs/api#wizard)\n */\n api?: SchemaApi;\n\n /**\n * 是否合并后再提交\n */\n bulkSubmit?: boolean;\n\n /**\n * Wizard 用来获取初始数据的 api。\n */\n initApi?: SchemaApi;\n\n /**\n * 展示模式\n *\n * @default vertical\n */\n mode?: 'vertical' | 'horizontal';\n\n name?: SchemaName;\n\n /**\n * 是否为只读模式。\n */\n readOnly?: boolean;\n\n /**\n * 保存完后,可以指定跳转地址,支持相对路径和组内绝对路径,同时可以通过 $xxx 使用变量\n */\n redirect?: string;\n\n reload?: SchemaReload;\n\n /**\n * 默认表单提交自己会通过发送 api 保存数据,但是也可以设定另外一个 form 的 name 值,或者另外一个 `CRUD` 模型的 name 值。 如果 target 目标是一个 `Form` ,则目标 `Form` 会重新触发 `initApi` 和 `schemaApi`,api 可以拿到当前 form 数据。如果目标是一个 `CRUD` 模型,则目标模型会重新触发搜索,参数为当前 Form 数据。\n */\n target?: string;\n\n /**\n * 是否将底部按钮固定在底部。\n */\n affixFooter?: boolean | 'always';\n\n steps: Array<WizardStepSchema>;\n\n startStep?: string;\n}\n\nexport interface WizardProps\n extends RendererProps,\n Omit<WizardSchema, 'className'> {\n store: IServiceStore;\n onFinished: (values: object, action: any) => any;\n}\n\nexport interface WizardState {\n currentStep: number;\n completeStep: number;\n}\n\nexport default class Wizard extends React.Component<WizardProps, WizardState> {\n static defaultProps: Partial<WizardProps> = {\n mode: 'horizontal', // vertical\n readOnly: false,\n messages: {},\n actionClassName: '',\n actionPrevLabel: 'Wizard.prev',\n actionNextLabel: 'Wizard.next',\n actionNextSaveLabel: 'Wizard.saveAndNext',\n actionFinishLabel: 'Wizard.finish',\n startStep: '1'\n };\n\n static propsList: Array<string> = [\n 'steps',\n 'mode',\n 'messages',\n 'actionClassName',\n 'actionPrevLabel',\n 'actionNextLabel',\n 'actionNextSaveLabel',\n 'actionFinishLabel',\n 'onFinished',\n 'affixFooter',\n 'startStep'\n ];\n\n dom: any;\n form: any;\n asyncCancel: () => void;\n\n parentNode?: any;\n unSensor: Function;\n affixDom: React.RefObject<HTMLDivElement> = React.createRef();\n footerDom: React.RefObject<HTMLDivElement> = React.createRef();\n initalValues: {\n [propName: string]: any;\n } = {};\n\n state = {\n currentStep: -1, // init 完后会设置成 1\n completeStep: -1\n };\n\n componentDidMount() {\n const {\n initApi,\n initFetch,\n initAsyncApi,\n initFinishedField,\n store,\n messages: {fetchSuccess, fetchFailed},\n onInit\n } = this.props;\n\n if (isEffectiveApi(initApi, store.data, initFetch)) {\n store\n .fetchInitData(initApi, 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 );\n }\n })\n .then(value => {\n onInit && onInit(store.data);\n const state = {\n currentStep:\n typeof this.props.startStep === 'string'\n ? parseInt(tokenize(this.props.startStep, this.props.data))\n : 1\n };\n\n if (\n value &&\n value.data &&\n (typeof value.data.step === 'number' ||\n (typeof value.data.step === 'string' &&\n /^\\d+$/.test(value.data.step)))\n ) {\n state.currentStep = parseInt(value.data.step, 10);\n }\n\n this.setState(state, () => {\n // 如果 initApi 返回的状态是正在提交,则进入轮顺状态。\n if (\n value &&\n value.data &&\n (value.data.submiting || value.data.submited)\n ) {\n this.checkSubmit();\n }\n });\n return value;\n });\n } else {\n this.setState(\n {\n currentStep:\n typeof this.props.startStep === 'string'\n ? parseInt(tokenize(this.props.startStep, this.props.data))\n : 1\n },\n () => onInit && onInit(store.data)\n );\n }\n\n const dom = findDOMNode(this) as HTMLElement;\n if (!(dom instanceof Element)) {\n return;\n }\n\n let parent: HTMLElement | Window | null = dom ? getScrollParent(dom) : null;\n if (!parent || parent === document.body) {\n parent = window;\n }\n this.parentNode = parent;\n parent.addEventListener('scroll', this.affixDetect);\n this.unSensor = resizeSensor(dom as HTMLElement, this.affixDetect);\n this.affixDetect();\n }\n\n componentDidUpdate(prevProps: WizardProps) {\n const props = this.props;\n const {store, fetchSuccess, fetchFailed} = props;\n\n if (\n isApiOutdated(\n prevProps.initApi,\n props.initApi,\n prevProps.data,\n props.data\n )\n ) {\n store.fetchData(props.initApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n });\n }\n }\n\n componentWillUnmount() {\n this.asyncCancel && this.asyncCancel();\n const parent = this.parentNode;\n parent && parent.removeEventListener('scroll', this.affixDetect);\n this.unSensor && this.unSensor();\n }\n\n @autobind\n affixDetect() {\n if (\n !this.props.affixFooter ||\n !this.affixDom.current ||\n !this.footerDom.current\n ) {\n return;\n }\n\n const affixDom = this.affixDom.current;\n const footerDom = this.footerDom.current;\n let affixed = false;\n footerDom.offsetWidth &&\n (affixDom.style.cssText = `width: ${footerDom.offsetWidth}px;`);\n\n if (this.props.affixFooter === 'always') {\n affixed = true;\n footerDom.classList.add('invisible2');\n } else {\n const clip = footerDom.getBoundingClientRect();\n const clientHeight = window.innerHeight;\n affixed = clip.top + clip.height / 2 > clientHeight;\n }\n\n affixed ? affixDom.classList.add('in') : affixDom.classList.remove('in');\n }\n\n gotoStep(index: number) {\n const steps = this.props.steps || [];\n index = Math.max(Math.min(steps.length, index), 1);\n\n if (index != this.state.currentStep) {\n this.setState({\n currentStep: index,\n completeStep: Math.max(this.state.completeStep, index - 1)\n });\n }\n }\n\n @autobind\n formRef(ref: any) {\n if (ref) {\n while (ref && ref.getWrappedInstance) {\n ref = ref.getWrappedInstance();\n }\n this.form = ref;\n } else {\n this.form = undefined;\n }\n }\n\n submitToTarget(target: string, values: object) {\n throw new Error('Please implements this!');\n }\n\n reloadTarget(target: string, data: any) {\n throw new Error('Please implements this!');\n }\n\n reload(subPath?: string, query?: any, ctx?: any) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n initApi,\n initAsyncApi,\n initFinishedField,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n if (isEffectiveApi(initApi, store.data) && this.state.currentStep === 1) {\n store\n .fetchInitData(initApi, 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 );\n }\n })\n .then(value => {\n const state = {\n currentStep: 1\n };\n\n if (\n value &&\n value.data &&\n (typeof value.data.step === 'number' ||\n (typeof value.data.step === 'string' &&\n /^\\d+$/.test(value.data.step)))\n ) {\n state.currentStep = parseInt(value.data.step, 10);\n }\n\n this.setState(state, () => {\n // 如果 initApi 返回的状态是正在提交,则进入轮顺状态。\n if (\n value &&\n value.data &&\n (value.data.submiting || value.data.submited)\n ) {\n this.checkSubmit();\n }\n });\n return value;\n });\n }\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n @autobind\n domRef(ref: any) {\n this.dom = ref;\n }\n\n @autobind\n getPopOverContainer() {\n return this.dom;\n }\n\n // 用来还原异步提交状态。\n checkSubmit() {\n const {store, steps, asyncApi, finishedField, env} = this.props;\n\n const step = steps[this.state.currentStep - 1];\n let finnalAsyncApi =\n (step && step.asyncApi) ||\n (this.state.currentStep === steps.length && asyncApi);\n\n if (!step || !isEffectiveApi(finnalAsyncApi, store.data)) {\n return;\n }\n\n store.markSaving(true);\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n until(\n () => store.checkRemote(finnalAsyncApi as Api, store.data),\n (ret: any) => ret && ret[finishedField || 'finished'],\n cancel => (this.asyncCancel = cancel)\n )\n .then(() => {\n store.markSaving(false);\n this.gotoStep(this.state.currentStep + 1);\n })\n .catch(e => {\n env.notify('error', e.message);\n store.markSaving(false);\n });\n }\n\n @autobind\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n const {onAction, store, env} = this.props;\n\n if (action.actionType === 'next' || action.type === 'submit') {\n this.form.doAction(\n {\n ...action,\n actionType: 'submit'\n },\n data\n );\n } else if (action.actionType === 'prev') {\n this.gotoStep(this.state.currentStep - 1);\n } else if (action.type === 'reset') {\n this.form.reset();\n } else if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n store.openDialog(data);\n } else if (action.actionType === 'ajax') {\n if (!action.api) {\n return env.alert(`当 actionType 为 ajax 时,请设置 api 属性`);\n }\n\n return store\n .saveRemote(action.api as Api, data, {\n successMessage: action.messages && action.messages.success,\n errorMessage: action.messages && action.messages.failed\n })\n .then(async () => {\n this.form && this.form.isValidated() && this.form.validate(true);\n\n const feedback = action.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 const reidrect =\n action.redirect && filter(action.redirect, store.data);\n reidrect && env.jumpTo(reidrect, action);\n\n action.reload && this.reloadTarget(action.reload, store.data);\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n });\n } else if (action.actionType === 'reload') {\n action.target && this.reloadTarget(action.target, data);\n } else if (onAction) {\n onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n @autobind\n handleQuery(query: any) {\n if (this.props.initApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\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 @autobind\n handleChange(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n }\n\n @autobind\n handleInit(values: any) {\n const step = this.state.currentStep;\n this.initalValues[step] = this.initalValues[step] || values;\n const store = this.props.store;\n\n store.updateData(values);\n }\n\n @autobind\n handleReset(values: any) {\n const {store} = this.props;\n const initalValue = this.initalValues[this.state.currentStep];\n const reseted: any = {};\n Object.keys(values).forEach(key => {\n reseted[key] = initalValue.hasOwnProperty(key)\n ? initalValue[key]\n : undefined;\n });\n\n store.updateData(reseted);\n }\n\n // 接管里面 form 的提交,不能直接让 form 提交,因为 wizard 自己需要知道进度。\n @autobind\n handleSubmit(values: object, action: Action) {\n const {\n store,\n steps,\n api,\n asyncApi,\n finishedField,\n target,\n redirect,\n reload,\n env,\n onFinished\n } = this.props;\n\n const step = steps[this.state.currentStep - 1];\n store.updateData(values);\n\n if (this.state.currentStep < steps.length) {\n let finnalAsyncApi = action.asyncApi || step.asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n if (isEffectiveApi(action.api || step.api, store.data)) {\n store\n .saveRemote(action.api || step.api!, store.data, {\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 );\n },\n onFailed: json => {\n if (json.status === 422 && json.errors && this.form) {\n this.form.props.store.handleRemoteError(json.errors);\n }\n }\n })\n .then(async (value: any) => {\n const feedback = action.feedback;\n if (feedback && isVisible(feedback, value)) {\n const confirmed = await this.openFeedback(feedback, value);\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 this.gotoStep(\n value && typeof value.step === 'number'\n ? value.step\n : this.state.currentStep + 1\n );\n })\n .catch(reason => {\n if (reason instanceof SkipOperation) {\n return;\n }\n // do nothing\n });\n } else {\n this.gotoStep(this.state.currentStep + 1);\n }\n } else {\n // 最后一步\n if (target) {\n this.submitToTarget(target, store.data);\n this.setState({completeStep: steps.length});\n } else if (action.api || step.api || api) {\n let finnalAsyncApi = action.asyncApi || step.asyncApi || asyncApi;\n\n isEffectiveApi(finnalAsyncApi, store.data) &&\n store.updateData({\n [finishedField || 'finished']: false\n });\n\n const formStore = this.form\n ? (this.form.props.store as IFormStore)\n : store;\n store.markSaving(true);\n\n formStore\n .saveRemote(action.api || step.api || api!, store.data, {\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 );\n }\n })\n .then(async value => {\n const feedback = action.feedback;\n if (feedback && isVisible(feedback, value)) {\n const confirmed = await this.openFeedback(feedback, value);\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 this.setState({completeStep: steps.length});\n store.updateData({\n ...store.data,\n ...value\n });\n store.markSaving(false);\n\n if (value && typeof value.step === 'number') {\n this.gotoStep(value.step);\n } else if (onFinished && onFinished(value, action) === false) {\n // 如果是 false 后面的操作就不执行\n return value;\n }\n\n const finalRedirect =\n (action.redirect || step.redirect || redirect) &&\n filter(action.redirect || step.redirect || redirect, store.data);\n\n if (finalRedirect) {\n env.jumpTo(finalRedirect, action);\n } else if (action.reload || step.reload || reload) {\n this.reloadTarget(\n action.reload || step.reload || reload!,\n store.data\n );\n }\n\n return value;\n })\n .catch(e => {\n store.markSaving(false);\n console.error(e);\n });\n } else {\n onFinished && onFinished(store.data, action);\n this.setState({completeStep: steps.length});\n }\n }\n\n return false;\n }\n\n @autobind\n handleDialogConfirm(values: object[], action: Action, targets: Array<any>) {\n const {store} = this.props;\n\n if (\n action.mergeData &&\n values.length === 1 &&\n values[0] &&\n targets[0].props.type === 'form'\n ) {\n store.updateData(values[0]);\n }\n\n store.closeDialog(true);\n }\n\n @autobind\n handleDialogClose(confirmed = false) {\n const {store} = this.props;\n store.closeDialog(confirmed);\n }\n\n renderSteps() {\n const {steps, store, mode, classPrefix: ns, classnames: cx} = this.props;\n const {currentStep, completeStep} = this.state;\n\n return (\n <div className={`${ns}Wizard-steps`} id=\"form-wizard\">\n {Array.isArray(steps) && steps.length ? (\n <ul>\n {steps.map((step, key) => {\n const canJump = isJumpable(step, key, currentStep, store.data);\n const isComplete = canJump || key < completeStep;\n const isActive = currentStep === key + 1;\n\n return (\n <li\n key={key}\n className={cx({\n 'is-complete': isComplete,\n 'is-active': isActive\n })}\n onClick={() => (canJump ? this.gotoStep(key + 1) : null)}\n >\n <span\n className={cx('Badge', {\n // 'Badge--success': canJump && currentStep != key + 1,\n 'is-complete': isComplete,\n 'is-active':\n isActive || (canJump && currentStep != key + 1)\n })}\n >\n {isComplete && !isActive ? (\n <Icon icon=\"check\" className=\"icon\" />\n ) : (\n key + 1\n )}\n </span>\n {step.title || step.label || `第 ${key + 1} 步`}\n </li>\n );\n })}\n </ul>\n ) : null}\n </div>\n );\n }\n\n renderActions() {\n const {\n steps,\n store,\n readOnly,\n disabled,\n actionClassName,\n actionPrevLabel,\n actionNextLabel,\n actionNextSaveLabel,\n actionFinishLabel,\n render,\n translate: __\n } = this.props;\n\n if (!Array.isArray(steps)) {\n return null;\n }\n\n const currentStepIndex = this.state.currentStep;\n const nextStep = steps[currentStepIndex];\n const prevStep = steps[currentStepIndex - 2];\n const waiting = store.loading;\n const step = steps[currentStepIndex - 1];\n\n if (!step) {\n return null;\n }\n\n const prevCanJump = prevStep\n ? isJumpable(prevStep, currentStepIndex - 2, currentStepIndex, store.data)\n : false;\n\n if (step.actions && Array.isArray(step.actions)) {\n return step.actions.length ? (\n <>\n {step.actions.map((action, index) =>\n render(`action/${index}`, action, {\n key: index,\n onAction: this.handleAction,\n disabled:\n action.disabled ||\n waiting ||\n disabled ||\n (action.actionType === 'prev' && !prevCanJump) ||\n (action.actionType === 'next' &&\n readOnly &&\n (!!step.api || !nextStep))\n })\n )}\n </>\n ) : null;\n }\n\n return (\n <>\n {render(\n `prev-btn`,\n {\n type: 'button',\n label: __(actionPrevLabel),\n actionType: 'prev',\n className: actionClassName\n },\n {\n disabled: waiting || !prevCanJump || disabled,\n onAction: this.handleAction\n }\n )}\n\n {render(\n `next-btn`,\n {\n type: 'button',\n label: !nextStep\n ? __(actionFinishLabel)\n : !step.api\n ? __(actionNextLabel)\n : __(actionNextSaveLabel),\n actionType: 'next',\n primary: !nextStep || !!step.api,\n className: actionClassName\n },\n {\n disabled:\n waiting || disabled || (readOnly && (!!step.api || !nextStep)),\n onAction: this.handleAction\n }\n )}\n </>\n );\n }\n\n renderFooter() {\n const actions = this.renderActions();\n\n if (!actions) {\n return actions;\n }\n const {classnames: cx, affixFooter} = this.props;\n\n return (\n <>\n <div\n role=\"wizard-footer\"\n ref={this.footerDom}\n className={cx('Panel-footer Wizard-footer')}\n >\n {actions}\n </div>\n\n {affixFooter ? (\n <div\n ref={this.affixDom}\n className={cx('Panel-fixedBottom Wizard-footer')}\n >\n <div className={cx('Panel-footer')}>{actions}</div>\n </div>\n ) : null}\n </>\n );\n }\n\n renderWizard() {\n const {\n className,\n steps,\n render,\n store,\n classPrefix: ns,\n classnames: cx,\n popOverContainer,\n mode,\n translate: __\n } = this.props;\n\n const currentStep = this.state.currentStep;\n const step = Array.isArray(steps) ? steps[currentStep - 1] : null;\n\n return (\n <div\n ref={this.domRef}\n className={cx(\n `${ns}Panel ${ns}Panel--default ${ns}Wizard ${ns}Wizard--${mode}`,\n className\n )}\n >\n <div className={`${ns}Wizard-step`}>\n {this.renderSteps()}\n <div\n role=\"wizard-body\"\n className={`${ns}Wizard-stepContent clearfix`}\n >\n {step ? (\n render(\n 'body',\n {\n ...step,\n type: 'form',\n wrapWithPanel: false,\n\n // 接口相关需要外部来接管\n api: null\n },\n {\n key: this.state.currentStep,\n ref: this.formRef,\n onInit: this.handleInit,\n onReset: this.handleReset,\n onSubmit: this.handleSubmit,\n onAction: this.handleAction,\n onQuery: this.handleQuery,\n disabled: store.loading,\n popOverContainer:\n popOverContainer || this.getPopOverContainer,\n onChange: this.handleChange,\n formStore: undefined\n }\n )\n ) : currentStep === -1 ? (\n __('loading')\n ) : (\n <p className=\"text-danger\">{__('Wizard.configError')}</p>\n )}\n </div>\n {this.renderFooter()}\n </div>\n\n {render(\n 'dialog',\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 <Spinner size=\"lg\" overlay key=\"info\" show={store.loading} />\n </div>\n );\n }\n\n render() {\n return this.renderWizard();\n }\n}\n\nfunction isJumpable(step: any, index: number, currentStep: number, data: any) {\n let canJump = false;\n\n if (step && step.hasOwnProperty('jumpable')) {\n canJump = step.jumpable;\n } else if (step && step.jumpableOn) {\n canJump = evalExpression(\n step.jumpableOn,\n createObject(data, {\n currentStep\n })\n );\n } else {\n canJump = index + 1 < currentStep;\n }\n\n return canJump;\n}\n\n@Renderer({\n type: 'wizard',\n storeType: ServiceStore.name,\n isolateScope: true\n})\nexport class WizardRenderer extends Wizard {\n static contextType = ScopedContext;\n\n constructor(props: WizardProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n super.componentWillUnmount();\n }\n\n doAction(action: Action, data: object, throwErrors: boolean = false) {\n return this.handleAction(undefined, action, data);\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 @autobind\n handleDialogConfirm(values: object[], action: Action, targets: Array<any>) {\n super.handleDialogConfirm(values, action, targets);\n\n const store = this.props.store;\n const scoped = this.context as IScopedContext;\n if (action.reload) {\n scoped.reload(action.reload, store.data);\n } else if (store.action && store.action.reload) {\n scoped.reload(store.action.reload, store.data);\n }\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/store/formItem.js
CHANGED
@@ -433,7 +433,7 @@ exports.FormItemStore = node_1.StoreNode.named('FormItemStore')
|
|
433
433
|
});
|
434
434
|
});
|
435
435
|
var tryDeferLoadLeftOptions = (0, mobx_state_tree_1.flow)(function (option, api, data, config) {
|
436
|
-
var leftOptions, indexes, json, options;
|
436
|
+
var leftOptions, indexes, json, options, children_1;
|
437
437
|
var _a;
|
438
438
|
return (0, tslib_1.__generator)(this, function (_b) {
|
439
439
|
switch (_b.label) {
|
@@ -467,6 +467,16 @@ exports.FormItemStore = node_1.StoreNode.named('FormItemStore')
|
|
467
467
|
setOptions([
|
468
468
|
(0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.options[0]), { leftOptions: (0, helper_1.spliceTree)(leftOptions, indexes, 1, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, option), { loading: false, loaded: true, children: options })) })
|
469
469
|
], undefined, data);
|
470
|
+
// 插入新的子节点,用于之后BaseSelection.resolveSelected查找
|
471
|
+
if (Array.isArray(self.options[0].children)) {
|
472
|
+
children_1 = self.options[0].children.concat();
|
473
|
+
(0, helper_2.flattenTree)(self.options[0].leftOptions).forEach(function (item) {
|
474
|
+
if (!(0, helper_1.findTree)(self.options[0].children, function (node) { return node.ref === item.value; })) {
|
475
|
+
children_1.push({ ref: item.value, defer: true });
|
476
|
+
}
|
477
|
+
});
|
478
|
+
setOptions([(0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.options[0]), { children: children_1 })], undefined, data);
|
479
|
+
}
|
470
480
|
return [2 /*return*/, json];
|
471
481
|
}
|
472
482
|
});
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/store/formItem.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getRoot,\n hasParent,\n isAlive,\n getEnv,\n Instance\n} from 'mobx-state-tree';\nimport {FormStore, IFormStore} from './form';\nimport {str2rules, validate as doValidate} from '../utils/validations';\nimport {Api, Payload, fetchOptions} from '../types';\nimport {ComboStore, IComboStore, IUniqueGroup} from './combo';\nimport {evalExpression} from '../utils/tpl';\nimport {isEffectiveApi} from '../utils/api';\nimport findIndex from 'lodash/findIndex';\nimport {\n isArrayChildrenModified,\n isObject,\n createObject,\n isObjectShallowModified,\n findTree,\n findTreeIndex,\n spliceTree,\n isEmpty,\n getTreeAncestors,\n filterTree\n} from '../utils/helper';\nimport {flattenTree} from '../utils/helper';\nimport {IRendererStore} from '.';\nimport {normalizeOptions, optionValueCompare} from '../components/Select';\nimport find from 'lodash/find';\nimport {SimpleMap} from '../utils/SimpleMap';\nimport memoize from 'lodash/memoize';\nimport {TranslateFn} from '../locale';\nimport {StoreNode} from './node';\nimport {dataMapping} from '../utils/tpl-builtin';\nimport {getStoreById} from './manager';\n\ninterface IOption {\n value?: string | number | null;\n label?: string | null;\n children?: IOption[] | null;\n disabled?: boolean | null;\n visible?: boolean | null;\n hidden?: boolean | null;\n}\n\nconst ErrorDetail = types.model('ErrorDetail', {\n msg: '',\n tag: '',\n rule: ''\n});\n\nexport const FormItemStore = StoreNode.named('FormItemStore')\n .props({\n isFocused: false,\n type: '',\n unique: false,\n loading: false,\n required: false,\n tmpValue: types.frozen(),\n emitedValue: types.frozen(),\n rules: types.optional(types.frozen(), {}),\n messages: types.optional(types.frozen(), {}),\n errorData: types.optional(types.array(ErrorDetail), []),\n name: types.string,\n itemId: '', // 因为 name 可能会重名,所以加个 id 进来,如果有需要用来定位具体某一个\n unsetValueOnInvisible: false,\n itemsRef: types.optional(types.array(types.string), []),\n validated: false,\n validating: false,\n multiple: false,\n delimiter: ',',\n valueField: 'value',\n labelField: 'label',\n joinValues: true,\n extractValue: false,\n options: types.optional(types.frozen<Array<any>>(), []),\n expressionsInOptions: false,\n selectFirst: false,\n autoFill: types.frozen(),\n clearValueOnHidden: false,\n validateApi: types.optional(types.frozen(), ''),\n selectedOptions: types.optional(types.frozen(), []),\n filteredOptions: types.optional(types.frozen(), []),\n dialogSchema: types.frozen(),\n dialogOpen: false,\n dialogData: types.frozen(),\n resetValue: types.optional(types.frozen(), ''),\n validateOnChange: false\n })\n .views(self => {\n function getForm(): any {\n const form = self.parentStore;\n return form?.storeType === FormStore.name ? form : undefined;\n }\n\n function getValue(): any {\n return getForm()?.getValueByName(self.name);\n }\n\n function getLastOptionValue(): any {\n if (self.selectedOptions.length) {\n return self.selectedOptions[self.selectedOptions.length - 1].value;\n }\n\n return '';\n }\n\n function getErrors(): Array<string> {\n return self.errorData.map(item => item.msg);\n }\n\n return {\n get subFormItems(): any {\n return self.itemsRef.map(item => getStoreById(item));\n },\n\n get form(): any {\n return getForm();\n },\n\n get value(): any {\n return getValue();\n },\n\n get prinstine(): any {\n return (getForm() as IFormStore)?.getPristineValueByName(self.name);\n },\n\n get errors() {\n return getErrors();\n },\n\n get valid() {\n const errors = getErrors();\n return !!(!errors || !errors.length);\n },\n\n get errClassNames() {\n return self.errorData\n .map(item => item.rule)\n .filter((item, index, arr) => item && arr.indexOf(item) === index)\n .map(item => `has-error--${item}`)\n .join(' ');\n },\n\n get lastSelectValue(): string {\n return getLastOptionValue();\n },\n\n getSelectedOptions: (\n value: any = self.tmpValue,\n nodeValueArray?: any[] | undefined\n ) => {\n if (typeof value === 'undefined') {\n return [];\n }\n\n const valueArray = nodeValueArray\n ? nodeValueArray\n : Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : [value];\n const selected = valueArray.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n );\n\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n const matched = findTree(\n self.filteredOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (matched) {\n selectedOptions.push(matched);\n } else {\n let unMatched = (valueArray && valueArray[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n return selectedOptions;\n }\n };\n })\n\n .actions(self => {\n const form = self.form as IFormStore;\n const dialogCallbacks = new SimpleMap<(result?: any) => void>();\n\n function config({\n required,\n unique,\n value,\n rules,\n messages,\n delimiter,\n multiple,\n valueField,\n labelField,\n joinValues,\n extractValue,\n type,\n id,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n maxLength,\n minLength,\n validateOnChange\n }: {\n required?: boolean;\n unique?: boolean;\n value?: any;\n rules?: string | {[propName: string]: any};\n messages?: {[propName: string]: string};\n multiple?: boolean;\n delimiter?: string;\n valueField?: string;\n labelField?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n type?: string;\n id?: string;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: boolean;\n minLength?: number;\n maxLength?: number;\n validateOnChange?: boolean;\n }) {\n if (typeof rules === 'string') {\n rules = str2rules(rules);\n }\n\n typeof type !== 'undefined' && (self.type = type);\n typeof id !== 'undefined' && (self.itemId = id);\n typeof messages !== 'undefined' && (self.messages = messages);\n typeof required !== 'undefined' && (self.required = !!required);\n typeof unique !== 'undefined' && (self.unique = !!unique);\n typeof multiple !== 'undefined' && (self.multiple = !!multiple);\n typeof selectFirst !== 'undefined' && (self.selectFirst = !!selectFirst);\n typeof autoFill !== 'undefined' && (self.autoFill = autoFill);\n typeof joinValues !== 'undefined' && (self.joinValues = !!joinValues);\n typeof extractValue !== 'undefined' &&\n (self.extractValue = !!extractValue);\n typeof delimiter !== 'undefined' &&\n (self.delimiter = (delimiter as string) || ',');\n typeof valueField !== 'undefined' &&\n (self.valueField = (valueField as string) || 'value');\n typeof labelField !== 'undefined' &&\n (self.labelField = (labelField as string) || 'label');\n typeof clearValueOnHidden !== 'undefined' &&\n (self.clearValueOnHidden = !!clearValueOnHidden);\n typeof validateApi !== 'undefined' && (self.validateApi = validateApi);\n typeof validateOnChange !== 'undefined' &&\n (self.validateOnChange = !!validateOnChange);\n\n rules = {\n ...rules,\n isRequired: self.required\n };\n\n // todo 这个弄个配置由渲染器自己来决定\n // 暂时先这样\n if (~['input-text', 'textarea'].indexOf(self.type)) {\n if (typeof minLength === 'number') {\n rules.minLength = minLength;\n }\n\n if (typeof maxLength === 'number') {\n rules.maxLength = maxLength;\n }\n }\n\n if (isObjectShallowModified(rules, self.rules)) {\n self.rules = rules;\n clearError('builtin');\n self.validated = false;\n }\n }\n\n function focus() {\n self.isFocused = true;\n }\n\n function blur() {\n self.isFocused = false;\n }\n\n let validateCancel: Function | null = null;\n const validate: (data: Object, hook?: any) => Promise<boolean> = flow(\n function* validate(data: Object, hook?: any) {\n if (self.validating && !isEffectiveApi(self.validateApi, data)) {\n return self.valid;\n }\n\n self.validating = true;\n clearError();\n if (hook) {\n yield hook();\n }\n\n addError(\n doValidate(self.tmpValue, data, self.rules, self.messages, self.__)\n );\n\n if (!self.errors.length && isEffectiveApi(self.validateApi, data)) {\n if (validateCancel) {\n validateCancel();\n validateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(\n self.validateApi,\n data,\n {\n cancelExecutor: (executor: Function) =>\n (validateCancel = executor)\n }\n );\n validateCancel = null;\n\n if (!json.ok && json.status === 422 && json.errors) {\n addError(\n String(\n json.errors || json.msg || `表单项「${self.name}」校验失败`\n )\n );\n }\n }\n\n self.validated = true;\n\n if (self.unique && self.form?.parentStore?.storeType === 'ComboStore') {\n const combo = self.form.parentStore as IComboStore;\n const group = combo.uniques.get(self.name) as IUniqueGroup;\n\n if (\n group.items.some(\n item =>\n item !== self &&\n self.tmpValue !== undefined &&\n item.value === self.tmpValue\n )\n ) {\n addError(self.__('Form.unique'));\n }\n }\n\n self.validating = false;\n return self.valid;\n }\n );\n\n function setError(msg: string | Array<string>, tag: string = 'builtin') {\n clearError();\n addError(msg, tag);\n }\n\n function addError(\n msg:\n | string\n | Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n >,\n tag: string = 'builtin'\n ) {\n const msgs: Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n > = Array.isArray(msg) ? msg : [msg];\n msgs.forEach(item =>\n self.errorData.push({\n msg: typeof item === 'string' ? item : item.msg,\n rule: typeof item !== 'string' ? item.rule : undefined,\n tag: tag\n })\n );\n }\n\n function clearError(tag?: string) {\n if (tag) {\n const filtered = self.errorData.filter(item => item.tag !== tag);\n self.errorData.replace(filtered);\n } else {\n self.errorData.clear();\n }\n }\n\n function getFirstAvaibleOption(options: Array<any>): any {\n if (!Array.isArray(options)) {\n return;\n }\n\n for (let option of options) {\n if (Array.isArray(option.children)) {\n const childFirst = getFirstAvaibleOption(option.children);\n if (childFirst !== undefined) {\n return childFirst;\n }\n } else if (option[self.valueField || 'value'] && !option.disabled) {\n return option;\n }\n }\n }\n\n function setOptions(\n options: Array<object>,\n onChange?: (value: any) => void,\n data?: Object\n ) {\n if (!Array.isArray(options)) {\n return;\n }\n options = filterTree(options, item => item);\n const originOptions = self.options.concat();\n self.options = options;\n syncOptions(originOptions, data);\n let selectedOptions;\n\n if (\n onChange &&\n self.selectFirst &&\n self.filteredOptions.length &&\n (selectedOptions = self.getSelectedOptions(self.value)) &&\n !selectedOptions.filter(item => !item.__unmatched).length\n ) {\n const fistOption = getFirstAvaibleOption(self.filteredOptions);\n if (!fistOption) {\n return;\n }\n\n const list = [fistOption].map((item: any) => {\n if (self.extractValue || self.joinValues) {\n return item[self.valueField || 'value'];\n }\n\n return item;\n });\n\n const value =\n self.joinValues && self.multiple\n ? list.join(self.delimiter)\n : self.multiple\n ? list\n : list[0];\n\n onChange(value);\n }\n }\n\n let loadCancel: Function | null = null;\n const fetchOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) {\n try {\n if (loadCancel) {\n loadCancel();\n loadCancel = null;\n self.loading = false;\n }\n\n if (!config?.silent) {\n self.loading = true;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n autoAppend: false,\n cancelExecutor: (executor: Function) => (loadCancel = executor),\n ...config\n });\n loadCancel = null;\n let result: any = null;\n\n if (!json.ok) {\n setErrorFlag !== false &&\n setError(\n self.__('Form.loadOptionsFailed', {\n reason: json.msg ?? (config && config.errorMessage)\n })\n );\n getEnv(self).notify(\n 'error',\n self.errors.join('') || `${api}:${json.msg}`,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n } else {\n result = json;\n }\n\n self.loading = false;\n return result;\n } catch (e) {\n const env = getEnv(self);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n self.loading = false;\n if (env.isCancel(e)) {\n return;\n }\n\n console.error(e.stack);\n env.notify('error', e.message);\n return;\n }\n } as any);\n\n const loadOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions & {\n extendsOptions?: boolean;\n },\n clearValue?: boolean,\n onChange?: (value: any) => void,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n clearValue?: any,\n onChange?: (\n value: any,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void,\n setErrorFlag?: boolean\n ) {\n let json = yield fetchOptions(api, data, config, setErrorFlag);\n if (!json) {\n return;\n }\n\n clearError();\n self.validated = false; // 拉完数据应该需要再校验一下\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n options = normalizeOptions(options as any);\n\n if (config?.extendsOptions && self.selectedOptions.length > 0) {\n self.selectedOptions.forEach((item: any) => {\n const exited = findTree(\n options as any,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (!exited) {\n options.push(item);\n }\n });\n }\n\n setOptions(options, onChange, data);\n\n if (json.data && typeof (json.data as any).value !== 'undefined') {\n onChange && onChange((json.data as any).value, false, true);\n } else if (clearValue && !self.selectFirst) {\n self.selectedOptions.some((item: any) => item.__unmatched) &&\n onChange &&\n onChange('', false, true);\n }\n\n return json;\n });\n\n const tryDeferLoadLeftOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n if (\n self.options.length != 1 ||\n !Array.isArray(self.options[0].leftOptions)\n ) {\n return;\n }\n\n let leftOptions = self.options[0].leftOptions as any;\n\n const indexes = findTreeIndex(leftOptions, item => item === option);\n if (!indexes) {\n return;\n }\n\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: true\n })\n }\n ],\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: false,\n error: true\n })\n }\n ],\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n })\n }\n ],\n undefined,\n data\n );\n\n return json;\n });\n\n const deferLoadOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n const indexes = findTreeIndex(self.options, item => item === option);\n if (!indexes) {\n return yield tryDeferLoadLeftOptions(option, api, data, config);\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: true\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n error: true\n }),\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n }),\n undefined,\n data\n );\n\n return json;\n });\n\n /**\n * 根据当前节点路径展开树形组件父节点\n */\n const expandTreeOptions: (\n nodePathArr: any[],\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null | void> = flow(function* getInitData(\n nodePathArr: any[],\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n // 多选模式下需要记录遍历过的Node,避免发送相同的请求\n const traversedNode = new Map();\n\n for (let nodePath of nodePathArr) {\n // 根节点已经展开了,不需要加载\n if (nodePath.length <= 1) {\n continue;\n }\n\n // 叶节点不需要展开\n for (let level = 0; level < nodePath.length - 1; level++) {\n let tree = self.options.concat();\n let nodeValue = nodePath[level];\n\n if (traversedNode.has(nodeValue)) {\n continue;\n }\n // 节点value认为是唯一的\n let node = findTree(tree, (item, key, treeLevel: number) => {\n return (\n treeLevel === level + 1 &&\n optionValueCompare(nodeValue, self.valueField || 'value')(item)\n );\n });\n\n // 只处理懒加载节点\n if (!node || !node.defer) {\n continue;\n }\n const indexes = findTreeIndex(\n tree,\n item => item === node\n ) as number[];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: true\n }),\n undefined,\n node\n );\n\n let json = yield fetchOptions(\n api,\n node,\n {...config, silent: true},\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n error: true\n }),\n undefined,\n node\n );\n }\n\n traversedNode.set(nodeValue, true);\n\n let childrenOptions: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n loaded: true,\n children: childrenOptions\n }),\n undefined,\n node\n );\n }\n }\n });\n\n // @issue 强依赖form,需要改造暂且放过。\n function syncOptions(originOptions?: Array<any>, data?: Object) {\n if (!self.options.length && typeof self.value === 'undefined') {\n self.selectedOptions = [];\n self.filteredOptions = [];\n return;\n }\n\n const value = self.tmpValue;\n\n const selected = Array.isArray(value)\n ? value.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n )\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : value === void 0\n ? []\n : [\n value && value.hasOwnProperty(self.valueField || 'value')\n ? value[self.valueField || 'value']\n : value\n ];\n\n if (value && value.hasOwnProperty(self.labelField || 'label')) {\n selected[0] = {\n [self.labelField || 'label']: value[self.labelField || 'label'],\n [self.valueField || 'value']: value[self.valueField || 'value']\n };\n }\n\n let expressionsInOptions = false;\n let filteredOptions = self.options\n .filter((item: any) => {\n if (\n !expressionsInOptions &&\n (item.visibleOn || item.hiddenOn || item.disabledOn)\n ) {\n expressionsInOptions = true;\n }\n\n return item.visibleOn\n ? evalExpression(item.visibleOn, data) !== false\n : item.hiddenOn\n ? evalExpression(item.hiddenOn, data) !== true\n : item.visible !== false || item.hidden !== true;\n })\n .map((item: any, index) => {\n const disabled = evalExpression(item.disabledOn, data);\n const newItem = item.disabledOn\n ? self.filteredOptions.length > index &&\n self.filteredOptions[index].disabled === disabled\n ? self.filteredOptions[index]\n : {\n ...item,\n disabled: disabled\n }\n : item;\n\n return newItem;\n });\n\n self.expressionsInOptions = expressionsInOptions;\n const flattened: Array<any> = flattenTree(filteredOptions);\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n let idx = findIndex(\n flattened,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (~idx) {\n selectedOptions.push(flattened[idx]);\n } else {\n let unMatched = (value && value[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n\n const orgin: any =\n originOptions &&\n find(\n originOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (orgin) {\n unMatched[self.labelField || 'label'] =\n orgin[self.labelField || 'label'];\n }\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n const form = self.form;\n\n let parentStore = form?.parentStore;\n if (parentStore?.storeType === ComboStore.name) {\n let combo = parentStore as IComboStore;\n let group = combo.uniques.get(self.name) as IUniqueGroup;\n let options: Array<any> = [];\n group &&\n group.items.forEach(item => {\n if (self !== item) {\n options.push(\n ...item.selectedOptions.map((item: any) => item && item.value)\n );\n }\n });\n\n if (filteredOptions.length) {\n filteredOptions = filteredOptions.filter(\n option => !~options.indexOf(option.value)\n );\n }\n }\n isArrayChildrenModified(self.selectedOptions, selectedOptions) &&\n (self.selectedOptions = selectedOptions);\n isArrayChildrenModified(self.filteredOptions, filteredOptions) &&\n (self.filteredOptions = filteredOptions);\n }\n\n function setLoading(value: boolean) {\n self.loading = value;\n }\n\n let subStore: any;\n function getSubStore() {\n return subStore;\n }\n\n function setSubStore(store: any) {\n subStore = store;\n }\n\n function reset(keepErrors: boolean = false) {\n self.validated = false;\n\n if (subStore && subStore.storeType === 'ComboStore') {\n const combo = subStore as IComboStore;\n combo.forms.forEach(form => form.reset());\n }\n\n !keepErrors && clearError();\n }\n\n function openDialog(\n schema: any,\n data: any,\n callback?: (ret?: any) => void\n ) {\n self.dialogSchema = schema;\n self.dialogData = data;\n self.dialogOpen = true;\n callback && dialogCallbacks.set(self.dialogData, callback);\n }\n\n function closeDialog(result?: any) {\n const callback = dialogCallbacks.get(self.dialogData);\n self.dialogOpen = false;\n\n if (callback) {\n dialogCallbacks.delete(self.dialogData);\n setTimeout(() => callback(result), 200);\n }\n }\n\n function changeTmpValue(value: any) {\n self.tmpValue = value;\n }\n\n function changeEmitedValue(value: any) {\n self.emitedValue = value;\n }\n\n function addSubFormItem(item: IFormItemStore) {\n self.itemsRef.push(item.id);\n }\n\n function removeSubFormItem(item: IFormItemStore) {\n const idx = self.itemsRef.findIndex(a => a === item.id);\n if (~idx) {\n self.itemsRef.splice(idx, 1);\n }\n }\n\n return {\n focus,\n blur,\n config,\n validate,\n setError,\n addError,\n clearError,\n setOptions,\n loadOptions,\n deferLoadOptions,\n expandTreeOptions,\n syncOptions,\n setLoading,\n setSubStore,\n getSubStore,\n reset,\n openDialog,\n closeDialog,\n changeTmpValue,\n changeEmitedValue,\n addSubFormItem,\n removeSubFormItem\n };\n });\n\nexport type IFormItemStore = Instance<typeof FormItemStore>;\nexport type SFormItemStore = SnapshotIn<typeof FormItemStore>;\n"
|
11
|
+
"import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getRoot,\n hasParent,\n isAlive,\n getEnv,\n Instance\n} from 'mobx-state-tree';\nimport {FormStore, IFormStore} from './form';\nimport {str2rules, validate as doValidate} from '../utils/validations';\nimport {Api, Payload, fetchOptions} from '../types';\nimport {ComboStore, IComboStore, IUniqueGroup} from './combo';\nimport {evalExpression} from '../utils/tpl';\nimport {isEffectiveApi} from '../utils/api';\nimport findIndex from 'lodash/findIndex';\nimport {\n isArrayChildrenModified,\n isObject,\n createObject,\n isObjectShallowModified,\n findTree,\n findTreeIndex,\n spliceTree,\n isEmpty,\n getTreeAncestors,\n filterTree\n} from '../utils/helper';\nimport {flattenTree} from '../utils/helper';\nimport {IRendererStore} from '.';\nimport {normalizeOptions, optionValueCompare} from '../components/Select';\nimport find from 'lodash/find';\nimport {SimpleMap} from '../utils/SimpleMap';\nimport memoize from 'lodash/memoize';\nimport {TranslateFn} from '../locale';\nimport {StoreNode} from './node';\nimport {dataMapping} from '../utils/tpl-builtin';\nimport {getStoreById} from './manager';\n\ninterface IOption {\n value?: string | number | null;\n label?: string | null;\n children?: IOption[] | null;\n disabled?: boolean | null;\n visible?: boolean | null;\n hidden?: boolean | null;\n}\n\nconst ErrorDetail = types.model('ErrorDetail', {\n msg: '',\n tag: '',\n rule: ''\n});\n\nexport const FormItemStore = StoreNode.named('FormItemStore')\n .props({\n isFocused: false,\n type: '',\n unique: false,\n loading: false,\n required: false,\n tmpValue: types.frozen(),\n emitedValue: types.frozen(),\n rules: types.optional(types.frozen(), {}),\n messages: types.optional(types.frozen(), {}),\n errorData: types.optional(types.array(ErrorDetail), []),\n name: types.string,\n itemId: '', // 因为 name 可能会重名,所以加个 id 进来,如果有需要用来定位具体某一个\n unsetValueOnInvisible: false,\n itemsRef: types.optional(types.array(types.string), []),\n validated: false,\n validating: false,\n multiple: false,\n delimiter: ',',\n valueField: 'value',\n labelField: 'label',\n joinValues: true,\n extractValue: false,\n options: types.optional(types.frozen<Array<any>>(), []),\n expressionsInOptions: false,\n selectFirst: false,\n autoFill: types.frozen(),\n clearValueOnHidden: false,\n validateApi: types.optional(types.frozen(), ''),\n selectedOptions: types.optional(types.frozen(), []),\n filteredOptions: types.optional(types.frozen(), []),\n dialogSchema: types.frozen(),\n dialogOpen: false,\n dialogData: types.frozen(),\n resetValue: types.optional(types.frozen(), ''),\n validateOnChange: false\n })\n .views(self => {\n function getForm(): any {\n const form = self.parentStore;\n return form?.storeType === FormStore.name ? form : undefined;\n }\n\n function getValue(): any {\n return getForm()?.getValueByName(self.name);\n }\n\n function getLastOptionValue(): any {\n if (self.selectedOptions.length) {\n return self.selectedOptions[self.selectedOptions.length - 1].value;\n }\n\n return '';\n }\n\n function getErrors(): Array<string> {\n return self.errorData.map(item => item.msg);\n }\n\n return {\n get subFormItems(): any {\n return self.itemsRef.map(item => getStoreById(item));\n },\n\n get form(): any {\n return getForm();\n },\n\n get value(): any {\n return getValue();\n },\n\n get prinstine(): any {\n return (getForm() as IFormStore)?.getPristineValueByName(self.name);\n },\n\n get errors() {\n return getErrors();\n },\n\n get valid() {\n const errors = getErrors();\n return !!(!errors || !errors.length);\n },\n\n get errClassNames() {\n return self.errorData\n .map(item => item.rule)\n .filter((item, index, arr) => item && arr.indexOf(item) === index)\n .map(item => `has-error--${item}`)\n .join(' ');\n },\n\n get lastSelectValue(): string {\n return getLastOptionValue();\n },\n\n getSelectedOptions: (\n value: any = self.tmpValue,\n nodeValueArray?: any[] | undefined\n ) => {\n if (typeof value === 'undefined') {\n return [];\n }\n\n const valueArray = nodeValueArray\n ? nodeValueArray\n : Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : [value];\n const selected = valueArray.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n );\n\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n const matched = findTree(\n self.filteredOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (matched) {\n selectedOptions.push(matched);\n } else {\n let unMatched = (valueArray && valueArray[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n return selectedOptions;\n }\n };\n })\n\n .actions(self => {\n const form = self.form as IFormStore;\n const dialogCallbacks = new SimpleMap<(result?: any) => void>();\n\n function config({\n required,\n unique,\n value,\n rules,\n messages,\n delimiter,\n multiple,\n valueField,\n labelField,\n joinValues,\n extractValue,\n type,\n id,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n maxLength,\n minLength,\n validateOnChange\n }: {\n required?: boolean;\n unique?: boolean;\n value?: any;\n rules?: string | {[propName: string]: any};\n messages?: {[propName: string]: string};\n multiple?: boolean;\n delimiter?: string;\n valueField?: string;\n labelField?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n type?: string;\n id?: string;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: boolean;\n minLength?: number;\n maxLength?: number;\n validateOnChange?: boolean;\n }) {\n if (typeof rules === 'string') {\n rules = str2rules(rules);\n }\n\n typeof type !== 'undefined' && (self.type = type);\n typeof id !== 'undefined' && (self.itemId = id);\n typeof messages !== 'undefined' && (self.messages = messages);\n typeof required !== 'undefined' && (self.required = !!required);\n typeof unique !== 'undefined' && (self.unique = !!unique);\n typeof multiple !== 'undefined' && (self.multiple = !!multiple);\n typeof selectFirst !== 'undefined' && (self.selectFirst = !!selectFirst);\n typeof autoFill !== 'undefined' && (self.autoFill = autoFill);\n typeof joinValues !== 'undefined' && (self.joinValues = !!joinValues);\n typeof extractValue !== 'undefined' &&\n (self.extractValue = !!extractValue);\n typeof delimiter !== 'undefined' &&\n (self.delimiter = (delimiter as string) || ',');\n typeof valueField !== 'undefined' &&\n (self.valueField = (valueField as string) || 'value');\n typeof labelField !== 'undefined' &&\n (self.labelField = (labelField as string) || 'label');\n typeof clearValueOnHidden !== 'undefined' &&\n (self.clearValueOnHidden = !!clearValueOnHidden);\n typeof validateApi !== 'undefined' && (self.validateApi = validateApi);\n typeof validateOnChange !== 'undefined' &&\n (self.validateOnChange = !!validateOnChange);\n\n rules = {\n ...rules,\n isRequired: self.required\n };\n\n // todo 这个弄个配置由渲染器自己来决定\n // 暂时先这样\n if (~['input-text', 'textarea'].indexOf(self.type)) {\n if (typeof minLength === 'number') {\n rules.minLength = minLength;\n }\n\n if (typeof maxLength === 'number') {\n rules.maxLength = maxLength;\n }\n }\n\n if (isObjectShallowModified(rules, self.rules)) {\n self.rules = rules;\n clearError('builtin');\n self.validated = false;\n }\n }\n\n function focus() {\n self.isFocused = true;\n }\n\n function blur() {\n self.isFocused = false;\n }\n\n let validateCancel: Function | null = null;\n const validate: (data: Object, hook?: any) => Promise<boolean> = flow(\n function* validate(data: Object, hook?: any) {\n if (self.validating && !isEffectiveApi(self.validateApi, data)) {\n return self.valid;\n }\n\n self.validating = true;\n clearError();\n if (hook) {\n yield hook();\n }\n\n addError(\n doValidate(self.tmpValue, data, self.rules, self.messages, self.__)\n );\n\n if (!self.errors.length && isEffectiveApi(self.validateApi, data)) {\n if (validateCancel) {\n validateCancel();\n validateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(\n self.validateApi,\n data,\n {\n cancelExecutor: (executor: Function) =>\n (validateCancel = executor)\n }\n );\n validateCancel = null;\n\n if (!json.ok && json.status === 422 && json.errors) {\n addError(\n String(\n json.errors || json.msg || `表单项「${self.name}」校验失败`\n )\n );\n }\n }\n\n self.validated = true;\n\n if (self.unique && self.form?.parentStore?.storeType === 'ComboStore') {\n const combo = self.form.parentStore as IComboStore;\n const group = combo.uniques.get(self.name) as IUniqueGroup;\n\n if (\n group.items.some(\n item =>\n item !== self &&\n self.tmpValue !== undefined &&\n item.value === self.tmpValue\n )\n ) {\n addError(self.__('Form.unique'));\n }\n }\n\n self.validating = false;\n return self.valid;\n }\n );\n\n function setError(msg: string | Array<string>, tag: string = 'builtin') {\n clearError();\n addError(msg, tag);\n }\n\n function addError(\n msg:\n | string\n | Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n >,\n tag: string = 'builtin'\n ) {\n const msgs: Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n > = Array.isArray(msg) ? msg : [msg];\n msgs.forEach(item =>\n self.errorData.push({\n msg: typeof item === 'string' ? item : item.msg,\n rule: typeof item !== 'string' ? item.rule : undefined,\n tag: tag\n })\n );\n }\n\n function clearError(tag?: string) {\n if (tag) {\n const filtered = self.errorData.filter(item => item.tag !== tag);\n self.errorData.replace(filtered);\n } else {\n self.errorData.clear();\n }\n }\n\n function getFirstAvaibleOption(options: Array<any>): any {\n if (!Array.isArray(options)) {\n return;\n }\n\n for (let option of options) {\n if (Array.isArray(option.children)) {\n const childFirst = getFirstAvaibleOption(option.children);\n if (childFirst !== undefined) {\n return childFirst;\n }\n } else if (option[self.valueField || 'value'] && !option.disabled) {\n return option;\n }\n }\n }\n\n function setOptions(\n options: Array<object>,\n onChange?: (value: any) => void,\n data?: Object\n ) {\n if (!Array.isArray(options)) {\n return;\n }\n options = filterTree(options, item => item);\n const originOptions = self.options.concat();\n self.options = options;\n syncOptions(originOptions, data);\n let selectedOptions;\n\n if (\n onChange &&\n self.selectFirst &&\n self.filteredOptions.length &&\n (selectedOptions = self.getSelectedOptions(self.value)) &&\n !selectedOptions.filter(item => !item.__unmatched).length\n ) {\n const fistOption = getFirstAvaibleOption(self.filteredOptions);\n if (!fistOption) {\n return;\n }\n\n const list = [fistOption].map((item: any) => {\n if (self.extractValue || self.joinValues) {\n return item[self.valueField || 'value'];\n }\n\n return item;\n });\n\n const value =\n self.joinValues && self.multiple\n ? list.join(self.delimiter)\n : self.multiple\n ? list\n : list[0];\n\n onChange(value);\n }\n }\n\n let loadCancel: Function | null = null;\n const fetchOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) {\n try {\n if (loadCancel) {\n loadCancel();\n loadCancel = null;\n self.loading = false;\n }\n\n if (!config?.silent) {\n self.loading = true;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n autoAppend: false,\n cancelExecutor: (executor: Function) => (loadCancel = executor),\n ...config\n });\n loadCancel = null;\n let result: any = null;\n\n if (!json.ok) {\n setErrorFlag !== false &&\n setError(\n self.__('Form.loadOptionsFailed', {\n reason: json.msg ?? (config && config.errorMessage)\n })\n );\n getEnv(self).notify(\n 'error',\n self.errors.join('') || `${api}:${json.msg}`,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n } else {\n result = json;\n }\n\n self.loading = false;\n return result;\n } catch (e) {\n const env = getEnv(self);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n self.loading = false;\n if (env.isCancel(e)) {\n return;\n }\n\n console.error(e.stack);\n env.notify('error', e.message);\n return;\n }\n } as any);\n\n const loadOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions & {\n extendsOptions?: boolean;\n },\n clearValue?: boolean,\n onChange?: (value: any) => void,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n clearValue?: any,\n onChange?: (\n value: any,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void,\n setErrorFlag?: boolean\n ) {\n let json = yield fetchOptions(api, data, config, setErrorFlag);\n if (!json) {\n return;\n }\n\n clearError();\n self.validated = false; // 拉完数据应该需要再校验一下\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n options = normalizeOptions(options as any);\n\n if (config?.extendsOptions && self.selectedOptions.length > 0) {\n self.selectedOptions.forEach((item: any) => {\n const exited = findTree(\n options as any,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (!exited) {\n options.push(item);\n }\n });\n }\n\n setOptions(options, onChange, data);\n\n if (json.data && typeof (json.data as any).value !== 'undefined') {\n onChange && onChange((json.data as any).value, false, true);\n } else if (clearValue && !self.selectFirst) {\n self.selectedOptions.some((item: any) => item.__unmatched) &&\n onChange &&\n onChange('', false, true);\n }\n\n return json;\n });\n\n const tryDeferLoadLeftOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n if (\n self.options.length != 1 ||\n !Array.isArray(self.options[0].leftOptions)\n ) {\n return;\n }\n\n let leftOptions = self.options[0].leftOptions as any;\n\n const indexes = findTreeIndex(leftOptions, item => item === option);\n if (!indexes) {\n return;\n }\n\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: true\n })\n }\n ],\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: false,\n error: true\n })\n }\n ],\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n [\n {\n ...self.options[0],\n leftOptions: spliceTree(leftOptions, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n })\n }\n ],\n undefined,\n data\n );\n\n // 插入新的子节点,用于之后BaseSelection.resolveSelected查找\n if (Array.isArray(self.options[0].children)) {\n const children = self.options[0].children.concat();\n\n flattenTree(self.options[0].leftOptions).forEach(item => {\n if (\n !findTree(self.options[0].children, node => node.ref === item.value)\n ) {\n children.push({ref: item.value, defer: true});\n }\n });\n\n setOptions([{...self.options[0], children}], undefined, data);\n }\n\n return json;\n });\n\n const deferLoadOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n const indexes = findTreeIndex(self.options, item => item === option);\n if (!indexes) {\n return yield tryDeferLoadLeftOptions(option, api, data, config);\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: true\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n error: true\n }),\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n }),\n undefined,\n data\n );\n\n return json;\n });\n\n /**\n * 根据当前节点路径展开树形组件父节点\n */\n const expandTreeOptions: (\n nodePathArr: any[],\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null | void> = flow(function* getInitData(\n nodePathArr: any[],\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n // 多选模式下需要记录遍历过的Node,避免发送相同的请求\n const traversedNode = new Map();\n\n for (let nodePath of nodePathArr) {\n // 根节点已经展开了,不需要加载\n if (nodePath.length <= 1) {\n continue;\n }\n\n // 叶节点不需要展开\n for (let level = 0; level < nodePath.length - 1; level++) {\n let tree = self.options.concat();\n let nodeValue = nodePath[level];\n\n if (traversedNode.has(nodeValue)) {\n continue;\n }\n // 节点value认为是唯一的\n let node = findTree(tree, (item, key, treeLevel: number) => {\n return (\n treeLevel === level + 1 &&\n optionValueCompare(nodeValue, self.valueField || 'value')(item)\n );\n });\n\n // 只处理懒加载节点\n if (!node || !node.defer) {\n continue;\n }\n const indexes = findTreeIndex(\n tree,\n item => item === node\n ) as number[];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: true\n }),\n undefined,\n node\n );\n\n let json = yield fetchOptions(\n api,\n node,\n {...config, silent: true},\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n error: true\n }),\n undefined,\n node\n );\n }\n\n traversedNode.set(nodeValue, true);\n\n let childrenOptions: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n loaded: true,\n children: childrenOptions\n }),\n undefined,\n node\n );\n }\n }\n });\n\n // @issue 强依赖form,需要改造暂且放过。\n function syncOptions(originOptions?: Array<any>, data?: Object) {\n if (!self.options.length && typeof self.value === 'undefined') {\n self.selectedOptions = [];\n self.filteredOptions = [];\n return;\n }\n\n const value = self.tmpValue;\n\n const selected = Array.isArray(value)\n ? value.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n )\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : value === void 0\n ? []\n : [\n value && value.hasOwnProperty(self.valueField || 'value')\n ? value[self.valueField || 'value']\n : value\n ];\n\n if (value && value.hasOwnProperty(self.labelField || 'label')) {\n selected[0] = {\n [self.labelField || 'label']: value[self.labelField || 'label'],\n [self.valueField || 'value']: value[self.valueField || 'value']\n };\n }\n\n let expressionsInOptions = false;\n let filteredOptions = self.options\n .filter((item: any) => {\n if (\n !expressionsInOptions &&\n (item.visibleOn || item.hiddenOn || item.disabledOn)\n ) {\n expressionsInOptions = true;\n }\n\n return item.visibleOn\n ? evalExpression(item.visibleOn, data) !== false\n : item.hiddenOn\n ? evalExpression(item.hiddenOn, data) !== true\n : item.visible !== false || item.hidden !== true;\n })\n .map((item: any, index) => {\n const disabled = evalExpression(item.disabledOn, data);\n const newItem = item.disabledOn\n ? self.filteredOptions.length > index &&\n self.filteredOptions[index].disabled === disabled\n ? self.filteredOptions[index]\n : {\n ...item,\n disabled: disabled\n }\n : item;\n\n return newItem;\n });\n\n self.expressionsInOptions = expressionsInOptions;\n const flattened: Array<any> = flattenTree(filteredOptions);\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n let idx = findIndex(\n flattened,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (~idx) {\n selectedOptions.push(flattened[idx]);\n } else {\n let unMatched = (value && value[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n\n const orgin: any =\n originOptions &&\n find(\n originOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (orgin) {\n unMatched[self.labelField || 'label'] =\n orgin[self.labelField || 'label'];\n }\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n const form = self.form;\n\n let parentStore = form?.parentStore;\n if (parentStore?.storeType === ComboStore.name) {\n let combo = parentStore as IComboStore;\n let group = combo.uniques.get(self.name) as IUniqueGroup;\n let options: Array<any> = [];\n group &&\n group.items.forEach(item => {\n if (self !== item) {\n options.push(\n ...item.selectedOptions.map((item: any) => item && item.value)\n );\n }\n });\n\n if (filteredOptions.length) {\n filteredOptions = filteredOptions.filter(\n option => !~options.indexOf(option.value)\n );\n }\n }\n isArrayChildrenModified(self.selectedOptions, selectedOptions) &&\n (self.selectedOptions = selectedOptions);\n isArrayChildrenModified(self.filteredOptions, filteredOptions) &&\n (self.filteredOptions = filteredOptions);\n }\n\n function setLoading(value: boolean) {\n self.loading = value;\n }\n\n let subStore: any;\n function getSubStore() {\n return subStore;\n }\n\n function setSubStore(store: any) {\n subStore = store;\n }\n\n function reset(keepErrors: boolean = false) {\n self.validated = false;\n\n if (subStore && subStore.storeType === 'ComboStore') {\n const combo = subStore as IComboStore;\n combo.forms.forEach(form => form.reset());\n }\n\n !keepErrors && clearError();\n }\n\n function openDialog(\n schema: any,\n data: any,\n callback?: (ret?: any) => void\n ) {\n self.dialogSchema = schema;\n self.dialogData = data;\n self.dialogOpen = true;\n callback && dialogCallbacks.set(self.dialogData, callback);\n }\n\n function closeDialog(result?: any) {\n const callback = dialogCallbacks.get(self.dialogData);\n self.dialogOpen = false;\n\n if (callback) {\n dialogCallbacks.delete(self.dialogData);\n setTimeout(() => callback(result), 200);\n }\n }\n\n function changeTmpValue(value: any) {\n self.tmpValue = value;\n }\n\n function changeEmitedValue(value: any) {\n self.emitedValue = value;\n }\n\n function addSubFormItem(item: IFormItemStore) {\n self.itemsRef.push(item.id);\n }\n\n function removeSubFormItem(item: IFormItemStore) {\n const idx = self.itemsRef.findIndex(a => a === item.id);\n if (~idx) {\n self.itemsRef.splice(idx, 1);\n }\n }\n\n return {\n focus,\n blur,\n config,\n validate,\n setError,\n addError,\n clearError,\n setOptions,\n loadOptions,\n deferLoadOptions,\n expandTreeOptions,\n syncOptions,\n setLoading,\n setSubStore,\n getSubStore,\n reset,\n openDialog,\n closeDialog,\n changeTmpValue,\n changeEmitedValue,\n addSubFormItem,\n removeSubFormItem\n };\n });\n\nexport type IFormItemStore = Instance<typeof FormItemStore>;\nexport type SFormItemStore = SnapshotIn<typeof FormItemStore>;\n"
|
12
12
|
]
|
13
13
|
}
|