Commit 7ed56c16 authored by maoying's avatar maoying

修改browserhistory为gethistory

parent 89b9b9b0
import React, { Component } from 'react';
import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
// import { browserHistory } from 'amos-react-router';
import { Store, LocationParam } from 'amos-tool';
import { avoidLoginAction } from './../../services/securityService';
......@@ -40,7 +41,7 @@ class AutoLogin extends Component {
// let expireTime = LocationParam.getLocationParamByName('effectiveTime');
// let loginId = LocationParam.getLocationParamByName('username');
if (token) {
browserHistory.push('/region');
getHistory().push('/region');
}
// if (accessToken){
// browserHistory.push('/region');
......
......@@ -2,7 +2,8 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Tree, Radio, Connect } from 'amos-framework';
import classnames from 'classnames';
import { browserHistory } from 'amos-react-router/lib';
// import { browserHistory } from 'amos-react-router/lib';
import { getHistory } from 'amos-designer/lib/utils/history';
import RightInfo from './RightInfo';
import { getVideoTreeAction } from './../../../services/alarmMontitor';
import { eventTopics } from './../../3dview/consts';
......@@ -58,7 +59,7 @@ class AlarmVideoMonitor extends Component {
componentDidMount() {
this.props.subscribe('plan_end', (topic, data) => {
if (!data.planStarted) {
browserHistory.push({ pathname: pathMapping.assessmentView });
getHistory().push({ pathname: pathMapping.assessmentView });
}
});
this.getVideoTree();
......
......@@ -2,7 +2,8 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, Carousel, Button } from 'amos-framework';
import dt2react from 'dt2react';
import { browserHistory } from 'amos-react-router/lib';
// import { browserHistory } from 'amos-react-router/lib';
import { getHistory } from 'amos-designer/lib/utils/history';
import { fetchCheckDetailById, fetchCheckInputByIdNew, fetchShortByCheckIdAndCheckInputId } from './../../../../services/checkService';
import CheckDetailTable from './CheckDetailTable';
import CheckInputTable from './CheckInputTable';
......@@ -30,7 +31,7 @@ const checkDetailHeaderResult = checkDetail => {
}
}
return <div className="">
<Button icon={<img src="/src/assets/fsc/img/back.png" alt="" height="28px" />} transparent onClick={() => browserHistory.goBack()} />
<Button icon={<img src="/src/assets/fsc/img/back.png" alt="" height="28px" />} transparent onClick={() => getHistory().goBack()} />
<span>{` ${checkTime} ${pointName} (${pointNo})`}</span>
</div>;
};
......@@ -380,7 +381,7 @@ class CheckDetailNew extends Component {
pathname: CheckListPath,
state: { pointID: this.state.pointID }
};
browserHistory.push(path);
getHistory().push(path);
};
getPhotoUrl = checkDetail => {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import dt2react from 'dt2react';
import { browserHistory } from 'amos-react-router/lib';
// import { browserHistory } from 'amos-react-router/lib';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Button } from 'amos-framework';
import { fetchCheckDetailById, fetchCheckInputById, fetchShortByCheckIdAndCheckInputId } from './../../../../services/checkService';
import CheckDetailTable from './CheckDetailTable';
......@@ -299,7 +300,7 @@ class CheckDetail extends Component {
pathname: CheckListPath(),
state: { pointID: this.state.pointID }
};
browserHistory.push(path);
getHistory().push(path);
};
getPhotoUrl = (checkDetail) => {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { baseURI } from 'CONSTS/urlConsts';
import { AmosAlert, Modal, Button } from 'amos-framework';
import AmosGridTable from './../../common/tableComponent/table/AmosGridTable';
......@@ -306,7 +307,7 @@ class MatchEquipment extends Component {
goBack() {
let path = '/biz/equipment';
browserHistory.push(path);
getHistory().push(path);
}
getBindContext = () => {
......
import React, { Component } from 'react';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import _amosTool from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import { Input, AmosAlert, Modal, Button } from 'amos-framework';
......@@ -102,8 +103,8 @@ class Equipment extends Component {
pathname: matchEquipmentPath,
state: { equipmentId: record.id }
};
browserHistory.push(path);
browserHistory.go();
getHistory().push(path);
getHistory().go();
}
onChange(type, value) {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Button, AmosAlert } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { CONSTS } from 'CONSTS/storageConsts';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
import FireStationDetail from './FireStationDetail';
......@@ -229,7 +230,7 @@ class FireStationTableView extends Component {
pathname: fireStationPath,
state: { fireStation, key: '4' }
};
browserHistory.push(path);
getHistory().push(path);
}
render() {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, Button, AmosAlert } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import _amosTool from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
......@@ -404,7 +405,7 @@ class FireStationTableView extends Component {
pathname: fireStationPath,
state: { fireStation, key: '4', type: 'fireStation' }
};
browserHistory.push(path);
getHistory().push(path);
}
render() {
......
import React, { Component } from 'react';
import { PropTypes } from 'amos-react-router/lib';
import { Button, Form, Select, Upload, AmosAlert, Input, Modal } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import AmosGridTable from '../../../common/tableComponent/table/AmosGridTable';
import BizIcon from './../../../../common/icon/BizIcon';
import { getFireTruckDetailAction, addFireTruckAction } from '../../../../../services/ledgerService';
......@@ -99,7 +100,7 @@ class FireTruckDetailInfo extends Component {
pathname: '/biz/fireresource',
state: { activeKey: '1' }
};
browserHistory.push(path);
getHistory().push(path);
//browserHistory.goBack();
}
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { AmosAlert, Button } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
import FireTruckToolBar from './fireTruckToolBar';
import { deleteFireTruckAction, addFireTruckAction } from './../../../../../services/ledgerService';
......@@ -117,7 +118,7 @@ class FireTruckView extends Component {
pathname: fireTruckInfoPath,
state: { fireCarId: record.id, editable: false }
};
browserHistory.push(path);
getHistory().push(path);
};
onRowClick = record => {
......@@ -188,7 +189,7 @@ class FireTruckView extends Component {
pathname: fireTruckInfoPath,
state: { toolbarFlag: 0, editable: true }
};
browserHistory.push(path);
getHistory().push(path);
};
edit() {
......@@ -211,7 +212,7 @@ class FireTruckView extends Component {
editable: true
}
};
browserHistory.push(path);
getHistory().push(path);
}
delete() {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { AmosAlert } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { CONSTS } from 'CONSTS/storageConsts';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
import { getFireStationAction } from '../../../../../services/ledgerService';
......@@ -203,7 +204,7 @@ class FireFoamable extends Component {
pathname: fireFoamPath,
state: { fireStation, key: '3' }
};
browserHistory.push(path);
getHistory().push(path);
}
render() {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, Button, AmosAlert } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import _amosTool from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
......@@ -378,7 +379,7 @@ class FireFoamable extends Component {
pathname: fireFoamPath,
state: { fireStation, key: '3', type: 'fireStation' }
};
browserHistory.push(path);
getHistory().push(path);
}
render() {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { AmosAlert, Modal, Button } from 'amos-framework';
import AmosGridTable from './../../../common/tableComponent/table/AmosGridTable';
import {
......@@ -282,7 +283,7 @@ class FireStationMatches extends Component {
pathname: '/biz/fireresource',
state: { activeKey: key }
};
browserHistory.push(path);
getHistory().push(path);
}
getBindContext = () => {
......
......@@ -8,7 +8,8 @@ import FireWaterEdit from './FireWaterEdit';
import FireWaterAdd from './FireWaterAdd';
import FireWaterToolBar from './FireWaterToolBar';
import { pathMapping } from './../../../../../routes/customRoutes';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { deleteFireWaterDataAction, newFireWaterDataAction, editFireWaterDataAction, getFireWaterAction } from '../../../../../services/ledgerService';
import { queryRegionTreeAction } from '../../../../../services/preControlService';
import { downLoadFilePost } from './../../../../../utils/FileUtils';
......@@ -137,7 +138,7 @@ class WaterView extends Component {
if (record.type === '2'){
path.state = { fireStation, key: '6', type: 'waterResource' };
}
browserHistory.push(path);
getHistory().push(path);
}
componentWillReceiveProps = (nextProps) => {
......
import { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect } from 'amos-framework';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Store } from 'amos-tool';
import storageConsts, { CONSTS } from './../../consts/storageConsts';
import { pathMapping } from './../../routes/customRoutes';
......@@ -61,12 +62,12 @@ class BusinessStorage extends Component {
return;
} else if (type === 'risk') {
if (detailForw === 'details'){
browserHistory.push({ pathname: pathMapping.pointInfo, state: { pointDetail: { pointID: dialogId } } });
getHistory().push({ pathname: pathMapping.pointInfo, state: { pointDetail: { pointID: dialogId } } });
} else if (detailForw === 'danger'){
const { name } = forwardData.details || {};
browserHistory.push({ pathname: pathMapping.dangerList, state: { point: { id: dialogId, name, normalForward: false } } });
getHistory().push({ pathname: pathMapping.dangerList, state: { point: { id: dialogId, name, normalForward: false } } });
} else if (detailForw === 'record'){
browserHistory.push({ pathname: pathMapping.pointCheckDetail, state: { pointID: dialogId,checkID: checkId } });
getHistory().push({ pathname: pathMapping.pointCheckDetail, state: { pointID: dialogId,checkID: checkId } });
}
} else if (type === 'video') {
return;
......@@ -77,12 +78,12 @@ class BusinessStorage extends Component {
} else if (type === 'croom') {
return;
} else if (type === 'riskSource') {//风险模型
browserHistory.push({ pathname: pathMapping.riskModel, state: { riskSourceId: dialogId }});
getHistory().push({ pathname: pathMapping.riskModel, state: { riskSourceId: dialogId }});
} else if (type === 'impEquipment') {//重点装备
browserHistory.push({ pathname: pathMapping.matchEquipment, state: { equipmentId: dialogId, show }});
getHistory().push({ pathname: pathMapping.matchEquipment, state: { equipmentId: dialogId, show }});
} else if (type === 'fireResource') {//消防资源
if (detailForw === 'fireCar'){//消防车
browserHistory.push({ pathname: pathMapping.firetruckinfo, state: { fireCarId: dialogId }});
getHistory().push({ pathname: pathMapping.firetruckinfo, state: { fireCarId: dialogId }});
}
}
}
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Button, Layout } from 'amos-framework';
import BizIcon from './../../common/icon/BizIcon';
......@@ -65,7 +66,7 @@ class DifferentiateDetial extends Component {
}
goBack() {
browserHistory.goBack();
getHistory().goBack();
}
render() {
......
import React, { Component } from 'react';
import moment from 'moment';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import AmosGridTable from './../common/tableComponent/table/AmosGridTable';
import DifferentiateSearch from './DifferentiateSearch';
import { pathMapping } from './../../../routes/customRoutes';
......@@ -136,7 +137,7 @@ class DifferentiateView extends Component {
pathname: differentiateDetailPath,
state: { differObj: record }
};
browserHistory.push(path);
getHistory().push(path);
};
/**
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import dt2react from 'dt2react';
import { fetchPointListAction } from './../../../services/checkInfoService';
import AmosGridTable from './../common/tableComponent/table/AmosGridTable';
......@@ -214,7 +215,7 @@ class PointListView extends Component {
pathname: CheckListPath,
state: { pointID: pointID, pointName: name }
};
browserHistory.push(path);
getHistory().push(path);
};
onDetailClick = record => {
......@@ -222,7 +223,7 @@ class PointListView extends Component {
pathname: pointInfoPath,
state: { pointDetail: record }
};
browserHistory.push(path);
getHistory().push(path);
};
render() {
......
......@@ -3,7 +3,8 @@
import React, { Component } from 'react';
import { CardPane, Row, Col } from 'amos-framework';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import PointInfoContent from './PointInfoContent';
class PointInfo extends Component {
......@@ -25,7 +26,7 @@ class PointInfo extends Component {
}
goBackAction = () => {
browserHistory.push('/biz/patrolpoint');
getHistory().push('/biz/patrolpoint');
};
render() {
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
import dt2react from 'dt2react';
import { fetchTaskListAction } from './../../../services/checkInfoService';
import AmosGridTable from './../common/tableComponent/table/AmosGridTable';
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal } from 'amos-antd';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import dt2react from 'dt2react';
import AmosGridTable from './../common/tableComponent/table/AmosGridTable';
import { pathMapping } from './../../../routes/customRoutes';
......@@ -155,7 +156,7 @@ class CheckListPanelContent extends Component {
pathname: CheckDetailPath,
state: { checkID, pointID }
};
browserHistory.push(path);
getHistory().push(path);
};
render() {
......
......@@ -2,7 +2,8 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Button } from 'amos-framework';
import { Select, Input, DatePicker } from 'amos-antd';
import { browserHistory } from 'amos-react-router/lib';
// import { browserHistory } from 'amos-react-router/lib';
import { getHistory } from 'amos-designer/lib/utils/history';
import { checkStatusEnum } from './../xjcheck/common/CheckEnum';
import { enums2array } from './../xjcheck/common/CheckLang';
import { fetchXJUserInfoAction } from './../../../services/checkInfoService';
......@@ -110,7 +111,7 @@ class XJCheckSearch extends Component {
};
goBackAction = () => {
browserHistory.push('/biz/patrolpoint');
getHistory().push('/biz/patrolpoint');
};
render() {
......
......@@ -2,7 +2,8 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { utils } from 'amos-tool';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Menu, User } from 'amos-framework';
import { getCurrentUser } from './../../../services/securityService';
......@@ -53,7 +54,7 @@ class ExtraTools extends Component {
const { userInfo } = this.state;
const { userInfoLink, onNavItemClick, userPic } = this.props;
onNavItemClick && onNavItemClick({});
browserHistory.push({
getHistory().push({
pathname: userInfoLink,
state: {
userId: userInfo.userId,
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Layout } from 'amos-framework';
import { Store, utils } from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
......@@ -115,7 +116,7 @@ class MainFrame extends Component {
// if (defaultLink){
// this.context.router ? this.context.router.push(defaultLink) : browserHistory.push(defaultLink);
// }
browserHistory.push('/main/3dview');
getHistory().push('/main/3dview');
this.props.onLogoClick && this.props.onLogoClick();
}
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { LocationParam, utils } from 'amos-tool';
import { getBizMenusAction } from '../../services/securityService';
import Header from '../common/header';
import BusinessStorage from '../bizview';
import { getPathname } from 'amos-designer/lib/utils/history';
import { getPathname, getHistory } from 'amos-designer/lib/utils/history';
/**
* 内嵌 控制台 视图
*
......@@ -31,7 +31,7 @@ class SubConsoleView extends Component {
const item = menus.filter(e => e.url)[0] || {};
if (!utils.isEmpty(item)){
if (item.url){
browserHistory.push(item.url);
getHistory().push(item.url);
}
}
}
......
import React, { Component } from 'react';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { utils } from 'amos-tool';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { Menu } from 'amos-framework';
import { secExtUrl, SecurityUrl } from './../../consts/urlConsts';
import { getPathname } from 'amos-designer/lib/utils/history';
import { getPathname, getHistory } from 'amos-designer/lib/utils/history';
const MenuItem = Menu.Item;
class RootView extends Component {
......@@ -26,7 +26,7 @@ class RootView extends Component {
const item = menus.filter(e => e.url)[0] || {};
if (!utils.isEmpty(item)) {
if (item.url) {
browserHistory.push(item.url);
getHistory().push(item.url);
this.setState({ siderMenusList: item.children || [] });
}
}
......
import React , { Component } from 'react';
// import VizlibView from 'amos-iot-webstudio/lib/view/vizlib';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import _amosTool from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
......@@ -45,7 +46,7 @@ class CusVizLib extends Component {
state: { appId: data.id,isPublish: !!data.publishState }
};
ls.write(eventTopics.plan_drill_appId,data.id)
browserHistory.push(path);
getHistory().push(path);
}else{
message.danger('预案未发布!!!');
}
......@@ -58,7 +59,7 @@ class CusVizLib extends Component {
pathname: pageUrl.leaderStruct,
state: { appId: data.id }
}
browserHistory.push(path);
getHistory().push(path);
}
}
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { SidePane, Button, Modal, message, AmosAlert } from 'amos-framework';
import { headerButton, pageUrl } from './../common/conf';
import PlanTreeView from './../treeView/PlanTreeView';
......@@ -151,7 +152,7 @@ class PublishView extends Component {
// PubSub.publish(eventTopics.plan_task_list,this.state.taskTabsShow);
// }
this.setState({ activeKey,visible: false ,taskTabsShow: this.state.taskTabsShow});
browserHistory.push($path);
getHistory().push($path);
break;
case 'textPlan':
$path = {
......@@ -159,10 +160,10 @@ class PublishView extends Component {
state: { ...params }
};
this.setState({ activeKey,visible: true , selectAppId : ls.read(eventTopics.plan_drill_appId)});
browserHistory.push($path);
getHistory().push($path);
break;
case 'back':
browserHistory.goBack();
getHistory().goBack();
break;
// case 'onOff':
// if(this.state.taskTabsShow) {
......
import React, { Component } from 'react';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { getHistory } from 'amos-designer/lib/utils/history';
import { Modal, Button, message, AmosAlert } from 'amos-framework';
import BizIcon from './../../../common/icon/BizIcon';
import ToolBar from './ToolBar';
......@@ -239,7 +240,7 @@ class LeaderStruct extends Component {
onButtonClick = (key)=>{
const { selectNode, selectNodeType } = this.state;
if (key === 'goback') {
browserHistory.goBack();
getHistory().goBack();
} else if (key === 'save'){
this.saveTopography(null);
}else if(key === 'edit'){
......
......@@ -99,7 +99,7 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { browserHistory } from 'amos-react-router';
// import { browserHistory } from 'amos-react-router';
import { Select, Form, Button } from 'amos-framework';
import { Store } from 'amos-tool';
import * as endConf from 'amos-processor/lib/config/endconf';
......@@ -107,7 +107,7 @@ import _amosTool from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import { setRegion } from 'UTILS/cacheUtils';
import { getCurrentUser, regionSelectAction } from './../../services/securityService';
import { open } from 'amos-designer/lib/utils/history';
import { open, getHistory } from 'amos-designer/lib/utils/history';
const lsTool = Store.lsTool;
......@@ -148,7 +148,7 @@ class RegionSelect extends Component {
regionSelectAction(reginParams).then(
data => {
//1.打开3d屏
browserHistory.push('/main/3dview');
getHistory().push('/main/3dview');
//2.通过配置,确定是否打开业务屏
if (isAutoOpen){
const url = `?token=${ls.read(token)}`;
......
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