Detail.js 2.4 KB
import React, { Fragment, Component } from 'react';
import PageHeaderWrapper from '@/components/PageHeaderWrapper';
import Shell from '@/baseComponent/Shell';
import ButtonDiy from '@/baseComponent/ButtonDiy';
import router from 'umi/router';
import { getToken } from '@/utils/authority';
import config from '@/config/config';


export default class Detail extends Component{
  constructor(props){
    super(props);
    const { state } = this.props.location;
    let id = '';
    if(state && state.record && state.record.id){
      const { record } = state;
      id = record.id;
    }
    this.state={
      id,
    };
  }

  componentDidMount(){
    window.addEventListener('message', (event) => {
      if(event.data &&  event.data.indexOf &&  event.data.indexOf('iframeDetailHeight') > -1){
        let height = Number(event.data.split('-')[1]);
        document.getElementById('detailIframeId').height = height;
      }
    }, false);
  }

  showAll = () => {
    this.setState({
      showAll: true,
    });
  };

  render(){
    const { id, showAll } = this.state;
    const url = config.onestopPC.split('/#/');
    let iframeUrl = `${url[0]}/#/IframeForDetail?id=${id}&token=${getToken()}`;
    //iframeUrl = `http://localhost:8000/onestop/IframeForDetail?id=${id}&token=${getToken()}`;
    return (
      <PageHeaderWrapper title="">

        <Shell>
          <div style={{
            height: '54px',
            padding: '12px 0 12px 12px',
          }}>
            {
              showAll ?
                <ButtonDiy name="返回"
                           className="defaultBlue"
                           handleClick={()=>{
                             router.goBack();
                           }}
                           icon="arrow-left"
                />
                : null
            }
          </div>
        </Shell>
        <Shell>
        <iframe src={iframeUrl}
                frameBorder={0}
                id='detailIframeId'
                name='applyIframe'
                marginWidth="0"
                marginHeight="0"
                onLoad={this.showAll}
                allowTransparency="yes"
                seamless
                scrolling={'no'}
                style={{
                  width: '100%',
                  overflowY: 'hidden',
                  minHeight: '800px',
                }}
        />
        </Shell>
      </PageHeaderWrapper>
    )
  }
}