From ed3bdc46b2d70b5205cf3a679ba848ccdcfe669c Mon Sep 17 00:00:00 2001 From: yunkexin <760754045@qq.com> Date: Thu, 26 Dec 2024 09:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=BF=BD=E7=95=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - src/components/Custom/CustomPage.js | 74 +++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/components/Custom/CustomPage.js diff --git a/.gitignore b/.gitignore index 0ccb7f2..c5f2c77 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,5 @@ .DS_Store npm-debug.log* -/src/components/Custom/CustomPage.js npminstall-debug.log /src/utils/customConfigwjn.js diff --git a/src/components/Custom/CustomPage.js b/src/components/Custom/CustomPage.js new file mode 100644 index 0000000..375d105 --- /dev/null +++ b/src/components/Custom/CustomPage.js @@ -0,0 +1,74 @@ +import React from 'react' +import { connect } from 'dva' +import { initFilter, getCustomParams } from "../../utils/common" +//import loadPage from '../../utils/customConfigwjn'//便捷开发 请勿提交 +// import loadPage from '../../utils/customConfig1' +import loadPage from '../../utils/customConfig' + +class CustomPage extends React.Component { + constructor(props) { + super(props) + this.state = { + pageCustom: {}, + formData: {}, + customParams: {}, + CustomComponentDispatch: null + } + }; + + componentDidMount() { + this.getCustomConfig(this.props.formCode); + } + + componentWillReceiveProps(NextProps) { + if (NextProps.formCode && this.props.formCode != NextProps.formCode) { + this.getCustomConfig(NextProps.formCode) + } + } + + getCustomConfig = (formCode) => { + const { login } = this.props + const { OrgId: ORG_ID } = login + const params = initFilter(ORG_ID, formCode) + this.props.dispatch({ + type: 'customPage/getCustomPageConfigInfo', + payload: params, + onComplete: (ret) => { + if (ret) { + this.setCustomConfig(ret) + } + } + }) + } + + setCustomConfig = (ret) => { + if (ret) { + let customParams = ""; + if (ret.Nav_PageCustom) + customParams = ret.Nav_PageCustom.CUSTOM_PARAMS; + this.setState({ + pageCustom: ret.Nav_PageCustom, + formData: ret.Nav_Form, + customParams: getCustomParams(customParams) + }, () => { + + }) + } + }; + + render() { + const { formParam, data, formCode } = this.props + const { COMPONENT_NAME, PAGE_FORM_ID } = this.state.pageCustom ? this.state.pageCustom : {} + return ( + + { + COMPONENT_NAME + ? loadPage(COMPONENT_NAME, PAGE_FORM_ID, formParam, { ...data, ...this.state.customParams }, formCode, this.state.formData) + : null + } + + ) + } +} + +export default connect(({ login, loading, customPage }) => ({ login, loading, customPage }))(CustomPage)