import Status from './page/status/index.jsx'
 import PPolicy from './page/ppolicy/index.jsx'
 import DetailInfo from './page/detailInfo/index.jsx'
+
+import Portal from './page/portal/index.jsx'
 // we need to map the `scale` prop we define below
 // to the transform style property
 function mapStyles(styles) {
                     <Route exact path="/home/" component={Home}/>
                     <Route exact path="/status/" component={Status}/>
                     <Route exact path="/ppolicy/" component={PPolicy}/>
+
+                    <Route exact path="/portal/" component={Portal}/>
                     <Route path="/detailInfo/:uuid" component={DetailInfo}/>
                     {/*<Route path="/detail/:uuid" component={DetailInfo}/>*/}
                     {/*<Redirect exact from="/order" to="/order/index"/>*/}
 
 
 .panel-default {
     border-color: #ECECEC;
+    border: 1px solid transparent;
+    border-radius: 4px;
 }
 
 .panel-default > .panel-heading {
 
--- /dev/null
+.panel-blue{
+    border-top: 3px solid #2497ba;
+}
+
+.panel-default > .panel-heading {
+    background-color: #dadada;
+}
+
+.panel-body-ul{
+    list-style: none!important;
+    padding: 0!important;
+}
\ No newline at end of file
 
--- /dev/null
+import React from 'react';
+
+import NavTop from 'component/nav-top/index.jsx';
+// import './index.css';
+import {Image, Card, Button, List, Icon} from 'semantic-ui-react'
+class UserInfoCard extends React.Component {
+    constructor(props){
+        super(props);
+    }
+    render(){
+        let userinfo = this.props.userinfo || {}
+
+        return (
+
+            <div className="farmer-card">
+                <div className="userinfo-panel panel panel-default panel-blue">
+
+                    <div className="panel-heading">
+                        <h3 className="panel-title">
+                            <i className="fa fa-user"></i>  Your Info
+                        </h3>
+                    </div>
+                    <div className="panel-body">
+                        <p><strong>{userinfo.username}</strong></p>
+                        <ul className="panel-body-ul">
+                            <li><i className="fa fa-desktop fa-fw"></i> {userinfo.machine_num} machine(s)</li>
+                            <li><i className="fa fa-file fa-fw"></i> {userinfo.reports} report(s)</li>
+                            <li><i className="fa fa-code-fork fa-fw"></i> {userinfo.branches} branch(es) involved</li>
+                            <li><i className="fa fa-envelope-o fa-fw"></i> <a href={'mailto' + userinfo.email}></a>{userinfo.email}</li>
+                        </ul>
+                    </div>
+                    {/*<div className="panel-footer clearfix">*/}
+                    {/*</div>*/}
+                </div>
+            </div>
+        );
+    }
+}export default UserInfoCard;
+
 
+.panel-blue{
+    border-top: 3px solid #2497ba;
+}
\ No newline at end of file
 
 import React from 'react';
-// import './index.css';
+import './index.css';
 import ResultFilter from 'component/result-filter/index.jsx';
 import BasicTable    from 'util/basic-table/index.jsx';
+import UserInfoCard from 'component/userinfo-card/index.jsx'
 import Record      from 'service/record-service.jsx'
 import PGUtil        from 'util/util.jsx'
+import User         from 'service/user-service.jsx'
+const _user = new User();
 
 const _util = new PGUtil();
 const _record = new Record();
         }
 
     }
+    componentDidMount(){
+        this.loadUserMachineManageList();
+    }
+    loadUserMachineManageList(){
+        _user.getUserMachineManageList().then(res => {
+            this.setState(res);
+        }, errMsg => {
+            _mm.errorTips(errMsg);
+        });
+    }
 
     render() {
         let show = this.state.isLoading ? "none" : "block";
         };
 
         return (
-            <div id="page-wrapper">
-                <h1>portal page</h1>
-                <p>
+            <div className="container-fluid detail-container">
+
+                <div className="col-md-3">
+
+                    {/*<Segment vertical>Farmer Info</Segment>*/}
+                    <UserInfoCard info={this.state.userinfo}></UserInfoCard>
 
-                </p>
+                    <div className="panel panel-default panel-blue">
+                        <div className="panel-heading">
+                            <h3 className="panel-title">
+                                <i className="fa fa-bookmark"></i>  Shortcuts
+                            </h3>
+                        </div>
+                        <div className="list-group">
+                            <a href="\add-machine" className="list-group-item">
+                                <i className="fa fa-globe fa-fw"></i>  Add a New Mchine
+                            </a>
+                            <a href="\logout" className="list-group-item">
+                                <i className="fa fa-arrow-left fa-fw"></i>  Logout
+                            </a>
+                        </div>
+                    </div>
+                </div>
 
-                {/*<BasicTable list={this.state.list} total={this.state.total} current={this.state.currentPage} loadfunc={this.loadRecordList}/>*/}
+                <div className="col-md-9">
+                    <div className="record-title">
+                        <h2 >Welcome Back, {this.state.username}</h2>
+                    </div>
 
+
+                </div>
             </div>
+
+
         )
     }
 }
 
         });
     }
 
-    // getUserList(pageNum){
-    //     # todo
-    // }
+    getUserMachineManageList(pageNum){
+        let url = PGConstant.base_url + '/my-machine';
+        return _util.request({
+            type    : 'get',
+            url     : url,
+            data    : {
+                pageNum : pageNum
+            }
+        });
+    }
 }
 
 export default User;
\ No newline at end of file
 
     }
 
     render() {
-        let branch = record.pg_info.pg_branch;
-        let _list = this.props.list
+        // let branch = record.pg_info.pg_branch;
+        let _list = this.props.list || []
         let style = {
             display: 'show'
         };
         return (
             <Table celled structured compact textAlign='center'>
                 <Table.Header>
-                    <Table.Row>
-                        <Table.HeaderCell rowSpan='9'>Branch: 10_STABLE</Table.HeaderCell>
-                    </Table.Row>
+                    {/*<Table.Row>*/}
+                        {/*<Table.HeaderCell rowSpan='9'>Branch: 10_STABLE</Table.HeaderCell>*/}
+                    {/*</Table.Row>*/}
                     <Table.Row>
                         <Table.HeaderCell rowSpan='2'>Alias</Table.HeaderCell>
                         <Table.HeaderCell rowSpan='2'>System</Table.HeaderCell>