提交 067e13c4 authored 作者: 吴强's avatar 吴强

first deploy version commit

上级 cdea8183
......@@ -47,7 +47,10 @@ module.exports = {
},
env: {
development: {
publicPath: "/",
define: {
_BASENAME_: '/',
},
extraBabelPlugins: [
'dva-hmr',
["import", {"libraryName": "antd-mobile", "style": true}],
......@@ -62,6 +65,7 @@ module.exports = {
"production": {
publicPath: "/bm-wx/",
define: {
_BASENAME_: '/bm-wx',
contextPath: "/bm-wx",
apiContextPath: "/bm-wx"
},
......
......@@ -6,70 +6,140 @@ import {
} from 'antd-mobile';
class MyTopCard extends React.Component{
render(){
return(
<div>
<WhiteSpace size="lg" style={{background:"#eee"}} />
<Card full>
<Card.Header
title={
<div style={{fontSize:"0.85rem"}}>
<span style={ {paddingRight:"0.75rem",color:'#38c5b8',fontWeight:"600"}}>总证数</span>
<span >18162</span>
</div>
}
style={ {padding:"1.2rem 1.3rem",color:'#38c5b8'}}
/>
<Card.Body style={{padding:"0 1.5rem",fontSize:"0.7rem"}}>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>已签约证数</div>
<div>16955</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>证均成本</div>
<div>3544940.25</div>
</Flex>
</Flex.Item>
</Flex>
const SummaryData=this.props.data;
if(SummaryData==null)
{
return(
<div>
<WhiteSpace size="lg" style={{background:"#eee"}} />
<Card full>
<Card.Header
title={
<div style={{fontSize:"0.85rem"}}>
<span style={ {paddingRight:"0.75rem",color:'#38c5b8',fontWeight:"600"}}>总证数</span>
<span >0</span>
</div>
}
style={ {padding:"1.2rem 1.3rem",color:'#38c5b8'}}
/>
<Card.Body style={{padding:"0 1.5rem",fontSize:"0.7rem"}}>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>已签约证数</div>
<div>0</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>证均成本</div>
<div>0</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>安置房套数</div>
<div>18473</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>面积成本</div>
<div>123131.87</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>安置房套数</div>
<div>0</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>面积成本</div>
<div>0</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>产权调换比例</div>
<div>52.35%</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>货币补偿比例</div>
<div>3544940.25</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>产权调换比例</div>
<div>0</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>货币补偿比例</div>
<div>0</div>
</Flex>
</Flex.Item>
</Flex>
<WhiteSpace size="lg" />
</Card.Body>
</Card>
</div>
);
}else{
return(
<div>
<WhiteSpace size="lg" style={{background:"#eee"}} />
<Card full>
<Card.Header
title={
<div style={{fontSize:"0.85rem"}}>
<span style={ {paddingRight:"0.75rem",color:'#38c5b8',fontWeight:"600"}}>总证数</span>
<span >{SummaryData[0].xiangMuZongHuShu}</span>
</div>
}
style={ {padding:"1.2rem 1.3rem",color:'#38c5b8'}}
/>
<Card.Body style={{padding:"0 1.5rem",fontSize:"0.7rem"}}>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>已签约证数</div>
<div>{SummaryData[0].yiQianYueHuShu}</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>证均成本</div>
<div>{SummaryData[0].zhengJunChengBen}</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>安置房套数</div>
<div>{SummaryData.anZhiFangTaoShu}</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>面积成本</div>
<div>{SummaryData.mianJiChengBen}</div>
</Flex>
</Flex.Item>
</Flex>
<Flex style={{padding:"1rem 0"}}>
<Flex.Item style={{marginRight:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>产权调换比例</div>
<div>{SummaryData.chanQuanDiaoHuanBiLi}</div>
</Flex>
</Flex.Item>
<Flex.Item style={{marginLeft:"0.75rem"}}>
<Flex style={{justifyContent:"space-between"}}>
<div>货币补偿比例</div>
<div>{SummaryData.huoBiBuChangBiLi}</div>
</Flex>
</Flex.Item>
</Flex>
<WhiteSpace size="lg" />
</Card.Body>
</Card>
</div>
);
}
<WhiteSpace size="lg" />
</Card.Body>
</Card>
</div>
);
}
}
export default MyTopCard;
import React from 'react';
import { withRouter } from "react-router-dom";
import styles from './CardViewTwoStyles.less';
import {
Badge,
......@@ -8,6 +9,17 @@ import {
WingBlank,
} from 'antd-mobile';
class MyBodyCard extends React.Component{
pushRoute=(item)=>{
try{
console.info(item);
this.props.history.push(`/SearchPage/${item.jDName}`);
}catch (e)
{
console.info(e);
}
};
render(){
const arrayData=this.props.data;
console.info(arrayData);
......@@ -18,26 +30,27 @@ class MyBodyCard extends React.Component{
arrayData.map((item,index)=>{
return (
<div key={index}>
<Card full>
<Card.Header style={ {padding:"0",color:'#38c5b8',fontSize:"0.85rem"}}
title={
<div style={ {padding:"1.2rem 1.3rem",color:'#38c5b8',width:"100%"}}>
<Flex style={{justifyContent:"space-between",alignItems:"flex-start"}}>
<Flex.Item>
<Flex style={{alignItems:"flex-start"}}>
<p style={ {paddingRight:"0.75rem",color:'#666',fontWeight:"500"}}>{item.index>=10?item.index:`0${item.index}`}</p>
<p style={{color:"#000"}}>{item.jDName}</p>
</Flex>
</Flex.Item>
<Flex.Item style={{textAlign:"right"}}>
<div style={{width:"6rem",display:"inline-block",borderRadius:"0.6rem",background:"#caf6f0",textAlign:"center",fontSize:"0.7rem"}}>
<span style={ {paddingRight:"0.75rem",color:'#000',fontWeight:"500"}}>总证数</span>
<span style={{color:"#000"}}>{item.xiangMuZongHuShu}</span>
</div>
</Flex.Item>
</Flex>
</div>
}
<Card full onClick={()=>this.pushRoute(item)}>
<Card.Header
style={ {padding:"0",color:'#38c5b8',fontSize:"0.85rem"}}
title={
<div style={ {padding:"1.2rem 1.3rem",color:'#38c5b8',width:"100%"}}>
<Flex style={{justifyContent:"space-between",alignItems:"flex-start"}}>
<Flex.Item>
<Flex style={{alignItems:"flex-start"}}>
<p style={ {paddingRight:"0.75rem",color:'#666',fontWeight:"500"}}>{item.index>=10?item.index:`0${item.index}`}</p>
<p style={{color:"#000"}}>{item.jDName}</p>
</Flex>
</Flex.Item>
<Flex.Item style={{textAlign:"right"}}>
<div style={{width:"6rem",display:"inline-block",borderRadius:"0.6rem",background:"#caf6f0",textAlign:"center",fontSize:"0.7rem"}}>
<span style={ {paddingRight:"0.75rem",color:'#000',fontWeight:"500"}}>总证数</span>
<span style={{color:"#000"}}>{item.xiangMuZongHuShu}</span>
</div>
</Flex.Item>
</Flex>
</div>
}
/>
<Card.Body>
<Flex>
......@@ -85,4 +98,4 @@ class MyBodyCard extends React.Component{
}
}
}
export default MyBodyCard;
export default withRouter(MyBodyCard);
......@@ -6,10 +6,9 @@ console.log('index.js');
// 1. Initialize
const app = dva({
history: createBrowserHistory({
// eslint-disable-next-line no-undef
basename: 'bm-wx',
}),
// history: createBrowserHistory({
// basename: '/bm-wx',
// }),
});
// 2. Plugins
......@@ -19,7 +18,7 @@ const app = dva({
app.model(require('./models/login').default);
app.model(require('./models/Home/home').default);
app.model(require('./models/middleselect').default);
app.model(require('./models/Home/search').default);
// 4. Router
app.router(require('./router').default);
......
......@@ -17,18 +17,33 @@ export default {
effects: {
*getSummaryData({ payload }, { take, put, call, select }) {
const payloads = { userName:'admin',password:'admin', type: 'userName', authType: 'password' };
try{
const result = yield call(login, payloads);
console.info(result);
const { tokenId } = result;
yield call(setToken, tokenId);// 这里的yield ,跟C#中的await一样
}
catch (erroer) {
console.info(erroer);
}
// const payloads = { userName:'admin',password:'admin', type: 'userName', authType: 'password' };
// try{
// const result = yield call(login, payloads);
// console.info(result);
// const { tokenId } = result;
// yield call(setToken, tokenId);// 这里的yield ,跟C#中的await一样
// }
// catch (erroer) {
// console.info(erroer);
// }
//
//
// const { pNumber } = payload;
// const coordinate = {
// containerType: 'module',
// containerName: 'QueryJiDiModule',
// datasourceName: 'QueryDistrictName',
// };
// try {
// const resultss = yield call(getData, coordinate, { pst: 0, psz: 10 ,params:{pNumber:pNumber}});
// console.info('查询的结果');
// console.info(resultss);
// yield put({ type: 'setSummaryData',payload:{resultss} });
// }catch (erroer){
// console.info(erroer);
// }
// 这是以后放到服务器时候用的代码,因为现在要测试,所以要先注释
const { pNumber } = payload;
const coordinate = {
containerType: 'module',
......@@ -43,21 +58,6 @@ export default {
}catch (erroer){
console.info(erroer);
}
// 这是以后放到服务器时候用的代码,因为现在要测试,所以要先注释
// const { pNumber } = payload;
// const coordinate = {
// containerType: 'module',
// containerName: 'QueryJiDiModule',
// datasourceName: 'QueryDistrictName',
// };
// try {
// const resultss = yield call(getData, coordinate, { pst: 0, psz: 10 ,params:{pNumber:pNumber}});
// console.info('查询的结果');
// console.info(resultss);
// yield put({ type: 'setSummaryData',payload:{resultss} });
// }catch (erroer){
// console.info(erroer);
// }
},
*getSummary({ payload }, { take, put, call, select }) {
......@@ -65,7 +65,7 @@ export default {
const coordinate = {
containerType: 'module',
containerName: 'QueryJiDiModule',
datasourceName: 'QueryJiDiName',
datasourceName: 'QueryTotalDistrictName',
};
try {
const resultss = yield call(getData, coordinate, { pst: 0, psz: 10 ,params:{pNumber:pNumber}});
......
import { getData } from '../../utils/DataTemplate';
import {login} from "../../services/login";
import {setToken} from "../../utils/auth";
export default {
namespace: 'search',
state: {
todayQianYue:null,
todayCheXiao:null,
suoDingTongJi:null,
shiWuSuoTongJi:null,
jinDuTongJi:null,
chengBenTongJi:null,
shiYongFangYuanTongJi:null,
jiDiFangYuanTongJi:null,
xiaoQuTongJi:null,
},
subscriptions: {
setup({ dispatch, history }) { // eslint-disable-line
},
},
effects: {
*getResult({ payload }, { take, put, call, select }) {
const { pjName,datasourceName,stateName} = payload;
const coordinate = {
containerType : 'module' ,
containerName : 'QueryPJModule',
datasourceName:datasourceName,
};
try {
const resultss = yield call(getData, coordinate, { pst: 0, psz: 10 ,params:{pjName:pjName}});
console.info('查询的结果');
console.info(resultss);
yield put({ type: 'setResult',payload:{stateName,resultss} });
}catch (erroer){
console.info(erroer);
}
},
},
reducers: {
setResult(state,{payload}){
console.info(payload.stateName);
console.info(payload.resultss);
return {...state,[`${payload.stateName}`]:payload.resultss};
},
},
};
......@@ -56,7 +56,7 @@ export default {
const wuqiang=yield call(checkYanZhengMa,telnum,YanZhengMa);
if(wuqiang==="sucess")
{
document.location="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3dcfb1de089346b3&redirect_uri=http%3a%2f%2fv4.free.ngrok.cc%2f&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
document.location="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3dcfb1de089346b3&redirect_uri=http%3a%2f%2fwww.shzdfwbc.net.cn%2fbm-wx%2f&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
}else{
alert("登陆失败");
}
......
......@@ -2,6 +2,7 @@ import React from 'react';
import { Router, Route, Switch } from 'dva/router';
import dynamic from 'dva/dynamic';
import MiddleSelectPage from "./routes/MiddleSelectPage";
//import SearchPage from "./routes/Home/SearchPage";
function RouterConfig({ history, app }) {
const IndexPage = dynamic({
......@@ -12,12 +13,17 @@ function RouterConfig({ history, app }) {
app,
component: () => import('./routes/Home/HomePage'),
}) ;
const SearchPage = dynamic({
app,
component: () => import('./routes/Home/SearchPage'),
}) ;
return (
<Router history={history}>
<Switch>
<Route path="/" exact component={MiddleSelectPage} />
<Route path="/Home" exact component={HomePage} />
<Route path="/Login" exact component={IndexPage} />
<Route path="/Home" component={HomePage} />
<Route path="/Login" component={IndexPage} />
<Route path="/SearchPage/:pjName" component={SearchPage} />
</Switch>
</Router>
);
......
......@@ -18,6 +18,7 @@ import MyBodyCard from "../../components/CardViewTwo";
class HomePage extends React.Component{
componentWillMount() {
const { dispatch } = this.props;
dispatch({ type: 'home/getSummary',payload: { pNumber:'浦东新区' }});
dispatch({ type: 'home/getSummaryData',payload: { pNumber:'浦东新区' }});
}
onChange=(value)=>{
......@@ -25,6 +26,7 @@ class HomePage extends React.Component{
const { dispatch } = this.props;
let objS = document.getElementById("pid");
let district = objS.options[objS.selectedIndex].value;
dispatch({ type: 'home/getSummary',payload: { pNumber:district }});
dispatch({ type: 'home/getSummaryData',payload: { pNumber:district }});
};
render(){
......@@ -32,21 +34,33 @@ class HomePage extends React.Component{
<Page>
<span className={styles.myspan}>
<Select id="pid" data={[
{
value: '浦东新区',
label: '浦东新区'
},
{
value: '杨浦区',
label: '杨浦区'
},
{
value: '浦东新区',
label: '浦东新区'
value: '宝山区',
label: '宝山区'
},
{
value: '徐汇区',
label: '徐汇区'
},
{
value: '青浦区',
label: '青浦区'
},
{
value: '嘉定区',
label: '嘉定区'
}
]} onChange={this.onChange}/>
</span>
<MyTopCard/>
<MyTopCard data={this.props.home.Summary}/>
<MyBodyCard data={this.props.home.SummaryData}/>
</Page>
);
......
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'dva';
import {
Select,
Page,
} from 'react-weui';
//import styles
import 'weui';
import styles from '../IndexPage.css';
import 'react-weui/build/packages/react-weui.css';
import MyTopCard from '../../components/CardViewThree';
class SearchPage extends React.Component{
constructor(props) {
super(props);
console.info(props.match.params);
}
componentWillMount() {
const { dispatch } = this.props;
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryTodayQianYue',stateName:'todayQianYue' }});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryTodayCheXiao',stateName:'todayCheXiao'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QuerySuoDingTongJi',stateName:'suoDingTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryShiWuSuoTongJi',stateName:'shiWuSuoTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryJinDuTongJi',stateName:'jinDuTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryChengBenTongJi',stateName:'chengBenTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryShiYongFangYuanTongJi',stateName:'shiYongFangYuanTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryJiDiFangYuanTongJi',stateName:'jiDiFangYuanTongJi'}});
dispatch({ type: 'search/getResult',payload: { pjName:this.props.match.params.pjName,datasourceName:'QueryXiaoQuTongJi',stateName:'xiaoQuTongJi'}});
}
render(){
return (
<Page>
<div style={{padding:"0 26px", backgroundColor:"#38c5b8"}}>
<span className={styles.myspan}>
<Select style={{color:"#fff"}} data={[
{
value: `${this.props.match.params.pjName}`,
label: `${this.props.match.params.pjName}`
},
]}/>
</span>
</div>
<MyTopCard/>
</Page>
);
};
}
SearchPage.propTypes = {
search: PropTypes.object,
};
// 指定订阅数据,这里关联了 login
function mapStateToProps({ search }) {
return {search};
}
export default connect(mapStateToProps)(SearchPage);
......@@ -20,6 +20,10 @@ table.mytable td{
}
h1.myTitle{
text-align: center;
font-size: 1.6rem;
color: #fff;
margin-top: 145px;
margin-bottom: 47px;
}
span.myspan{
vertical-align:middle;
......@@ -27,6 +31,7 @@ span.myspan{
background-color: #38c5b8;
margin:0px;
z-index:1;
font-size: 0.75rem;
}
select {
/*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/
......@@ -38,7 +43,7 @@ select {
/*在选择框的最右侧中间显示小箭头图片*/
background: url(../assets/downselect.png) no-repeat scroll right center transparent;
/*为下拉小箭头留出一点位置,避免被文字覆盖*/
padding-right: 14px;
padding-right: 20px;
direction: rtl;
}
......@@ -71,3 +76,73 @@ select::-ms-expand { display: none; }
background-color:#caf6f0 ;
color:#000000;
}
/*------body的背景颜色--------*/
.bodyBackground{
background: -webkit-linear-gradient(120deg, #4b85bf 0%, #35aca1 100%); /* Safari 5.1 - 6.0 */
background: -o-linear-gradient(120deg, #4b85bf 0%, #35aca1 100%); /* Opera 11.1 - 12.0 */
background: -moz-linear-gradient(120deg, #4b85bf 0%, #35aca1 100%); /* Firefox 3.6 - 15 */
background: linear-gradient(120deg, #4b85bf 0%, #35aca1 100%); /* 标准的语法(必须放在最后) */
}
/*-------------中间表格最外层-----------*/
.formWrapStyle{
margin: 0 50px;
background: transparent;
}
.formWrapStyle:before,.formWrapStyle:after{
border: none;
}
.formInputBorderOne:before,.formInputBorderTwo:before{
border: none;
}
.formInputBorderOne,.formInputBorderTwo{
border: 1px solid #fff;
border-radius: 40px;
}
.formInputBorderOne{
margin-bottom: 12px;
}
/*--------按钮样式--------*/
.buttonWrapStyle{
margin: 0 50px;
}
.buttonStyle{
border-radius: 40px;
background: #38c5b8;
margin-top: 12px;
margin-bottom: 30px;
}
.accountIcon{
display: inline-block;
width: 25px;
height: 25px;
vertical-align: middle;
margin-left: 8px;
margin-right: 13px;
background: url(../assets/account.png) no-repeat 0 0;
background-size: cover;
}
.passwordIcon{
display: inline-block;
width: 25px;
height: 25px;
vertical-align: middle;
margin-left: 8px;
margin-right: 13px;
background: url(../assets/password.png) no-repeat 0 0;
background-size: cover;
}
/*placeholder样式*/
input::-webkit-input-placeholder {
color: #fff;
}
input:-moz-placeholder {
color: #fff;
}
......@@ -55,39 +55,41 @@ class IndexPage extends React.Component{
};
render(){
return (
<Page>
<Page className={styles.bodyBackground}>
<h1 className={styles.myTitle}>上海征地房屋补偿</h1>
<Form>
<FormCell>
<Form className={styles.formWrapStyle}>
<FormCell className={styles.formInputBorderOne}>
<CellHeader>
<Label>手机号</Label>
<Label style={{width:"auto"}}><span className={styles.accountIcon}/></Label>
</CellHeader>
<CellBody>
<Icon value="warn" />
<Input type="tel" placeholder={this.props.login.telnum} onBlur={(event)=>this.telCheck(event)}/>
<Input type="tel" onBlur={(event)=>this.telCheck(event)} style={{color:"#fff"}} placeholder="手机号"/>
</CellBody>
</FormCell>
<FormCell vcode>
<FormCell className={styles.formInputBorderTwo}>
<CellHeader>
<Label>验证码</Label>
<Label style={{width:"auto"}}><span className={styles.passwordIcon}/></Label>
</CellHeader>
<CellBody>
<Input type="tel" placeholder="" onBlur={(event)=>this.telYanZhengMa(event)}/>
<Input type="tel" placeholder="验证码" onBlur={(event)=>this.telYanZhengMa(event)} style={{color:"#fff"}}/>
</CellBody>
<CellFooter>
<Button type="vcode" onClick={this.sendCheckNum}>发送</Button>
</CellFooter>
</FormCell>
</Form>
<ButtonArea>
<ButtonArea className={styles.buttonWrapStyle}>
<Button
className={styles.buttonStyle}
//button to display toptips
onClick={ this.registerClick}>
注册
立即登陆
</Button>
</ButtonArea>
<Footer>
<FooterText>
<FooterText style={{color:"#fff"}}>
Copyright © 2017-2018 www.proland.org.cn
</FooterText>
</Footer>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论