diff --git a/src/main/resources/web/assets/js/general/rb-forms.js b/src/main/resources/web/assets/js/general/rb-forms.js index fff49ef89..ece3e8bcd 100644 --- a/src/main/resources/web/assets/js/general/rb-forms.js +++ b/src/main/resources/web/assets/js/general/rb-forms.js @@ -113,35 +113,44 @@ class RbFormModal extends React.Component { if (this.state.previewid) url += `&previewid=${this.state.previewid}` else if (this.state.specLayout) url += `&layout=${this.state.specLayout}` - $.post(url, JSON.stringify(initialValue), (res) => { - // 包含错误 - if (res.error_code > 0 || !!res.data.error) { - const error = (res.data || {}).error || res.error_msg - this.renderFromError(error) - return - } - - const formModel = res.data + const that = this + function _FN2(formModel) { const FORM = ( - (this._formComponentRef = c)}> + (that._formComponentRef = c)}> {formModel.elements.map((item) => { return detectElement(item, entity) })} ) - this.setState({ formComponent: FORM, alertMessage: formModel.readonlyMessage || null }, () => { - this.setState({ inLoad: false }) + that.setState({ formComponent: FORM, alertMessage: formModel.readonlyMessage || null }, () => { + that.setState({ inLoad: false }) if (window.FrontJS) { - window.FrontJS.Form._trigger('open', [res.data]) + window.FrontJS.Form._trigger('open', [formModel]) } }) - this.__lastModified = res.data.lastModified || 0 + that.__lastModified = formModel.lastModified || 0 - setTimeout(() => { - formModel.alertMessage && RbHighbar.create(formModel.alertMessage) - }, 1000) + if (formModel.alertMessage) { + setTimeout(() => RbHighbar.create(formModel.alertMessage), 1000) + } + } + + // v3.8 + if (this.props.initialFormModel) { + _FN2(this.props.initialFormModel) + return + } + + $.post(url, JSON.stringify(initialValue), (res) => { + // 包含错误 + if (res.error_code > 0 || !!res.data.error) { + const error = (res.data || {}).error || res.error_msg + this.renderFromError(error) + } else { + _FN2(res.data) + } }) } @@ -576,15 +585,20 @@ class RbForm extends React.Component { // Clean others action if (this._postAfter) moreActions = [] + // v3.8 + const $$$props = props.$$$parent && props.$$$parent.props ? props.$$$parent.props : {} + const confirmText = props.confirmText || $$$props.confirmText + const cancelText = props.cancelText || $$$props.cancelText + return (
(this._$formAction = c)}> {!props.readonly && (
{moreActions.length > 0 && (