184 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			184 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								// 核心库
							 | 
						|||
| 
								 | 
							
								import React from 'react'
							 | 
						|||
| 
								 | 
							
								import { connect } from 'dva'
							 | 
						|||
| 
								 | 
							
								// 组件库
							 | 
						|||
| 
								 | 
							
								import ListPage from './Table/ListPage'
							 | 
						|||
| 
								 | 
							
								import EditListPage from './EditListTable'
							 | 
						|||
| 
								 | 
							
								import CustomPage from './Custom/CustomPage'
							 | 
						|||
| 
								 | 
							
								import TreePage from './Tree/TreePage'
							 | 
						|||
| 
								 | 
							
								import HTreePage from './Tree/HTreePage'
							 | 
						|||
| 
								 | 
							
								import Edit from './Edit/Edit'
							 | 
						|||
| 
								 | 
							
								import BatchEdit from './Edit/BatchEdit'
							 | 
						|||
| 
								 | 
							
								import ChartPage from './Chart'
							 | 
						|||
| 
								 | 
							
								import PicturePages from './PicturePages/PicturePages'
							 | 
						|||
| 
								 | 
							
								import CombinationPage from './Combination/CombinationPage'
							 | 
						|||
| 
								 | 
							
								import PermissionDenyPage from './common/PermissionDenyPage'
							 | 
						|||
| 
								 | 
							
								// 工具库
							 | 
						|||
| 
								 | 
							
								import { permissionUtils } from "../utils/common"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								export function RenderPageItem({ props, state }) {
							 | 
						|||
| 
								 | 
							
								  const { formData } = state
							 | 
						|||
| 
								 | 
							
								  if (formData) {
							 | 
						|||
| 
								 | 
							
								    //未启用
							 | 
						|||
| 
								 | 
							
								    if (!formData.ENABLE_STATUS === 1) {
							 | 
						|||
| 
								 | 
							
								      return <div>当前表单{formData.CODE}已失效,请联系管理员</div>
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    const { formParam, data, setData } = props
							 | 
						|||
| 
								 | 
							
								    const { FORM_TYPE: formType, ID, CODE, IS_IGNORE_PERMISSION } = formData
							 | 
						|||
| 
								 | 
							
								    // 权限控制
							 | 
						|||
| 
								 | 
							
								    const hasPermission = props.data?.homeReload||IS_IGNORE_PERMISSION || permissionUtils(props.login).checkForm(ID)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if (formType === 0) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <ListPage formCode={CODE} data={data} formParam={formParam} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 1) {
							 | 
						|||
| 
								 | 
							
								      const isBatchEdit = data ? data.isBatchEdit : false
							 | 
						|||
| 
								 | 
							
								      const tmpData = {
							 | 
						|||
| 
								 | 
							
								        id: data.id,
							 | 
						|||
| 
								 | 
							
								        onSave: data.onSave,
							 | 
						|||
| 
								 | 
							
								        formId: ID,
							 | 
						|||
| 
								 | 
							
								        formCode: CODE,
							 | 
						|||
| 
								 | 
							
								        onCancel: data.onCancel,
							 | 
						|||
| 
								 | 
							
								        homeLoad:props.data?.homeReload
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								      if (data.IsAdd) {
							 | 
						|||
| 
								 | 
							
								        tmpData.isAddH = true
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								      if (isBatchEdit) {
							 | 
						|||
| 
								 | 
							
								        return (
							 | 
						|||
| 
								 | 
							
								          <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								            <BatchEdit {...tmpData} data={data} formParam={formParam} />
							 | 
						|||
| 
								 | 
							
								          </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								        )
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <Edit {...tmpData} data={data} formParam={formParam} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 2) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <TreePage formCode={CODE} data={data} formParam={formParam} setData={setData} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 3) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <ChartPage formCode={CODE} data={data} formParam={formParam} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 4) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <PicturePages formCode={CODE} data={data} formParam={formParam} setData={setData} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 5) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <ChartPage formCode={CODE} data={data} formParam={formParam} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 6) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <HTreePage formCode={CODE} data={data} formParam={formParam} setData={setData} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 7) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <CombinationPage formCode={CODE} data={data} formParam={formParam} formData={formData} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 8) {
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								          <EditListPage formCode={CODE} data={data} />
							 | 
						|||
| 
								 | 
							
								        </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    else if (formType === 99) {
							 | 
						|||
| 
								 | 
							
								      // const tmpData = {
							 | 
						|||
| 
								 | 
							
								      //   id: data?.id,
							 | 
						|||
| 
								 | 
							
								      //   onSave: data?.onSave,
							 | 
						|||
| 
								 | 
							
								      //   formId: ID,
							 | 
						|||
| 
								 | 
							
								      //   formCode: CODE,
							 | 
						|||
| 
								 | 
							
								      //   onCancel: data?.onCancel,
							 | 
						|||
| 
								 | 
							
								      // }
							 | 
						|||
| 
								 | 
							
								      // if (data?.IsAdd) {
							 | 
						|||
| 
								 | 
							
								      //   tmpData.isAddH = true
							 | 
						|||
| 
								 | 
							
								      // }
							 | 
						|||
| 
								 | 
							
								      return (
							 | 
						|||
| 
								 | 
							
								        // <PermissionDenyPage permission={hasPermission}>
							 | 
						|||
| 
								 | 
							
								        <CustomPage formCode={CODE} formParam={formParam} data={data} />
							 | 
						|||
| 
								 | 
							
								        // </PermissionDenyPage>
							 | 
						|||
| 
								 | 
							
								      )
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								  return <div />
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								class FormPage extends React.Component {
							 | 
						|||
| 
								 | 
							
								  constructor(props) {
							 | 
						|||
| 
								 | 
							
								    super(props)
							 | 
						|||
| 
								 | 
							
								    this.state = {
							 | 
						|||
| 
								 | 
							
								      formData: {}
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  componentDidMount() {
							 | 
						|||
| 
								 | 
							
								    this.fetch(this.props.formCode)
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  componentWillReceiveProps(NextProps) {
							 | 
						|||
| 
								 | 
							
								    if (NextProps.formCode) {
							 | 
						|||
| 
								 | 
							
								      if (this.props.formCode != NextProps.formCode) {
							 | 
						|||
| 
								 | 
							
								        this.fetch(NextProps.formCode)
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    } else {
							 | 
						|||
| 
								 | 
							
								      this.setState({
							 | 
						|||
| 
								 | 
							
								        formData: {}
							 | 
						|||
| 
								 | 
							
								      })
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  fetch = (formCode) => {
							 | 
						|||
| 
								 | 
							
								    const { login, dispatch } = this.props
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    dispatch({
							 | 
						|||
| 
								 | 
							
								      type: 'app/getFormByRedis',
							 | 
						|||
| 
								 | 
							
								      payload: { 'Key': formCode, 'orgid': login.OrgId },
							 | 
						|||
| 
								 | 
							
								      onComplete: (ret) => {
							 | 
						|||
| 
								 | 
							
								        if (ret) {
							 | 
						|||
| 
								 | 
							
								          this.setState({
							 | 
						|||
| 
								 | 
							
								            formData: ret
							 | 
						|||
| 
								 | 
							
								          })
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    })
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  render() {
							 | 
						|||
| 
								 | 
							
								    return <RenderPageItem props={this.props} state={this.state} />
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								export default connect(({ app, login }) => ({ app, login }))(FormPage)
							 |