Commit 66dc4260 by zhaochengxiang

乾坤数据传递

parent e8d868c7
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
"react-virtualized": "^9.22.3", "react-virtualized": "^9.22.3",
"redux": "^4.0.1", "redux": "^4.0.1",
"redux-saga": "^1.0.5", "redux-saga": "^1.0.5",
"rxjs": "^7.5.5",
"showdown": "^1.9.1", "showdown": "^1.9.1",
"smooth-scroll": "^16.1.3", "smooth-scroll": "^16.1.3",
"typescript": "4.4.4", "typescript": "4.4.4",
......
...@@ -4,7 +4,7 @@ import { ...@@ -4,7 +4,7 @@ import {
Route, Switch Route, Switch
} from 'react-router-dom'; } from 'react-router-dom';
import { ContextPath } from './util'; import { $hostParams, ContextPath } from './util';
import loadable from "./util/loadable"; import loadable from "./util/loadable";
import { AssetMountReference } from './util/constant'; import { AssetMountReference } from './util/constant';
...@@ -29,16 +29,33 @@ const EditTemplate = loadable(()=> import('./view/Manage/ModelConfig/Component/E ...@@ -29,16 +29,33 @@ const EditTemplate = loadable(()=> import('./view/Manage/ModelConfig/Component/E
const AssetTree = loadable(()=> import('./view/Manage/AssetManage/Component/AssetManageTree')); const AssetTree = loadable(()=> import('./view/Manage/AssetManage/Component/AssetManageTree'));
export class App extends React.Component { export class App extends React.Component {
constructor() {
super();
this.$$hostParams = null;
this.state = {
hostParams: this.params
};
}
render() { componentDidMount() {
this.$$hostParams = $hostParams.subscribe(() => {
this.setState({ hostParams: $hostParams.getValue() });
})
}
const { params, callback, setGlobalState, onGlobalStateChange } = this.props; componentWillUnmount() {
this.$$hostParams?.unsubscribe()
}
render() {
const { setGlobalState, onGlobalStateChange } = this.props;
const { hostParams } = this.state;
let message = '', id = '', terms = []; let message = '', id = '', terms = [];
if (params) { if (hostParams) {
message = params.message||''; message = hostParams.message||'';
id = params.id||''; id = hostParams.id||'';
terms = params.terms||[]; terms = hostParams.terms||[];
} }
if (message === 'showDataModelDetail') { if (message === 'showDataModelDetail') {
...@@ -76,7 +93,7 @@ export class App extends React.Component { ...@@ -76,7 +93,7 @@ export class App extends React.Component {
reference={AssetMountReference} reference={AssetMountReference}
checkable={true} checkable={true}
onCheck={(values) => { onCheck={(values) => {
callback&&callback(values); hostParams.callback&&hostParams.callback(values);
}} }}
{...this.props} {...this.props}
/> />
...@@ -86,8 +103,8 @@ export class App extends React.Component { ...@@ -86,8 +103,8 @@ export class App extends React.Component {
if (message === 'showDatasource') { if (message === 'showDatasource') {
return ( return (
<AppContext.Provider value={{ <AppContext.Provider value={{
env: params?.env, env: hostParams?.env,
user: params?.user, user: hostParams?.user,
setGlobalState, setGlobalState,
onGlobalStateChange onGlobalStateChange
}}> }}>
...@@ -98,8 +115,8 @@ export class App extends React.Component { ...@@ -98,8 +115,8 @@ export class App extends React.Component {
return ( return (
<AppContext.Provider value={{ <AppContext.Provider value={{
env: params?.env, env: hostParams?.env,
user: params?.user, user: hostParams?.user,
setGlobalState, setGlobalState,
onGlobalStateChange onGlobalStateChange
}}> }}>
......
...@@ -10,6 +10,7 @@ import { store } from './model'; ...@@ -10,6 +10,7 @@ import { store } from './model';
import { App } from './App' import { App } from './App'
import './index.less'; import './index.less';
import { $hostParams } from "./util";
function render(props) { function render(props) {
const { container, ...restProps } = props; const { container, ...restProps } = props;
...@@ -51,4 +52,8 @@ export async function mount(props) { ...@@ -51,4 +52,8 @@ export async function mount(props) {
export async function unmount(props) { export async function unmount(props) {
const { container } = props; const { container } = props;
ReactDOM.unmountComponentAtNode(container ? container.querySelector('#root') : document.querySelector('#root')); ReactDOM.unmountComponentAtNode(container ? container.querySelector('#root') : document.querySelector('#root'));
}
export async function update(props) {
$hostParams.next(props);
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ import React from "react"; ...@@ -2,6 +2,7 @@ import React from "react";
import { message, notification, Modal, Space, Button } from 'antd'; import { message, notification, Modal, Space, Button } from 'antd';
import { Redirect } from 'react-router-dom'; import { Redirect } from 'react-router-dom';
import { ExclamationCircleOutlined } from '@ant-design/icons'; import { ExclamationCircleOutlined } from '@ant-design/icons';
import { BehaviorSubject } from 'rxjs';
import { dispatchLatest, action } from '../model'; import { dispatchLatest, action } from '../model';
import { set_sess_state } from "../model/reducer"; import { set_sess_state } from "../model/reducer";
...@@ -16,6 +17,8 @@ export const inputWidth = isSzseEnv?360:240; ...@@ -16,6 +17,8 @@ export const inputWidth = isSzseEnv?360:240;
export const ContextPath = '/data-govern'; export const ContextPath = '/data-govern';
export const $hostParams = new BehaviorSubject({});
const routeMap = {}; const routeMap = {};
export const ConvertToRouteMap = function (routes, pPath, pRoute) { export const ConvertToRouteMap = function (routes, pPath, pRoute) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment