Detail.js 2.4 KB
Newer Older
王绍森's avatar
王绍森 committed
1 2 3 4 5
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';
6
import { getToken } from '@/utils/authority';
王绍森's avatar
王绍森 committed
7 8
import config from '@/config/config';

9
const getUrlInfo = (param) => {
10 11 12 13 14 15 16 17 18 19 20 21 22
	let url = window.document.location.href.toString();
	let u = url.split('?');
	if (typeof u[1] == 'string') {
		u = u[1].split('&');
		let get = {};
		for (let i in u) {
			let j = u[i].split('=');
			get[j[0]] = decodeURIComponent(j[1]);
		}
		return get;
	} else {
		return {};
	}
23 24
};

25 26 27 28 29 30 31 32 33
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;
		}
34 35 36
		if (!id) {
			id = getUrlInfo()?.id;
		}
37 38 39 40
		this.state = {
			id,
		};
	}
王绍森's avatar
王绍森 committed
41

42 43 44 45 46 47 48 49 50 51 52 53
	componentDidMount() {
		window.addEventListener(
			'message',
			(event) => {
				if (event.data && event.data.indexOf && event.data.indexOf('iframeDetailHeight') > -1) {
					const height = Number(event.data.split('-')[1]);
					document.getElementById('detailIframeId').height = height;
				}
			},
			false,
		);
	}
王绍森's avatar
王绍森 committed
54

55 56 57 58 59
	showAll = () => {
		this.setState({
			showAll: true,
		});
	};
王绍森's avatar
王绍森 committed
60

61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
	render() {
		const { id, showAll } = this.state;
		const url = config.onestopPC.split('/#/');
		const 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}
95
						allowtransparency="yes"
96 97 98 99 100 101 102 103 104 105 106 107
						seamless
						scrolling={'no'}
						style={{
							width: '100%',
							overflowY: 'hidden',
							minHeight: '800px',
						}}
					/>
				</Shell>
			</PageHeaderWrapper>
		);
	}
王绍森's avatar
王绍森 committed
108
}