diff --git a/client/actions/common.js b/client/actions/common.js
new file mode 100644
index 0000000..abb93af
--- /dev/null
+++ b/client/actions/common.js
@@ -0,0 +1,119 @@
+import fetch from 'isomorphic-fetch';
+import actionType from '../actiontype/common'
+import {saveHeaderInfo} from "./initHeader";
+import actionTypes from "../actiontype/user";
+const domain = ENV.domain;
+//获取工单
+const getTaskInfo = (data)=>{
+    let {employeeId,storeId} = data;
+    return(dispatch)=>{
+
+    }
+};
+
+//获取店铺信息
+const getStoreInfo = (storeId)=>{
+    return(dispatch)=>{
+        let bodyData = {storeId};
+        fetch(domain + 'pad_warehouse/getMachineData.action',{
+            credentials : 'include',
+            method : 'POST',
+            mode : 'cors',
+            headers: { 'Content-Type': 'application/json' },
+            body: JSON.stringify(bodyData)
+        }).then((response)=>response.json())
+            .then(json=>{
+                let storeInfo = Object.assign({},{id:storeId});
+                if(json.meta.success && json.data.warehouse){
+                    storeInfo = Object.assign({},storeInfo,json.data.warehouse)
+                }
+                dispatch(saveCommonInfo(Object.assign({},{storeInfo})))
+            }).catch(e=>{console.error(e)})
+
+
+    }
+};
+
+//获取条形码信息
+
+const getInfoByBarcode = (data)=>{
+    let {storeId,barcode} = data;
+    let url = `flat/barcode/${storeId}/${barcode}`
+    return (dispatch)=>{
+        // dispatch(clearBarcodeInfo()); //清空barcode信息
+        fetch(domain + url,{
+            credentials : 'include',
+            method : 'GET',
+            mode : 'cors',
+            headers: { 'Content-Type': 'application/json' },
+        }).then(response=>response.json())
+            .then(json=>{
+                console.log(json);
+                if(json.meta.success){
+                    //扫码成功
+                }else{
+                    //扫码失败
+                }
+            })
+    }
+};
+
+//获取用户信息
+const getUserinfo = (employeeId,storeId)=>{
+    let bodyData = Object.assign({},{employeeId,storeId})
+    return(dispatch)=>{
+        dispatch(saveHeaderInfo(info));
+        fetch(domain + 'machine_pad/get_alowed_task.action',{
+            credentials : 'include',
+            method : 'POST',
+            mode : 'cors',
+            headers:myHeaders,
+            body : JSON.stringify(bodyData)
+        }).then((response)=>response.json())
+            .then(json=>{
+                let userInfo = Object.assign({},{id:employeeId})
+                if(json.meta.success && json.data){
+                    if(json.data.employee){
+                        userInfo = Object.assign({},userInfo,json.data.employee)
+                    }
+                    if(json.data.type){
+                        userInfo = Object.assign({},userInfo,{taskType:json.data.type});
+                    }else{
+                        dispatch(addErrorInfo('没有任务需要处理'))
+                    }
+                    dispatch(saveCommonInfo(Object.assign({},{userInfo})));
+                }
+            }).catch(e=>{console.error(e)})
+    }
+}
+
+const setBarcodeInfo = (data)=>{
+    return{
+        type : actionType.SETBARCODEINFO,
+        data
+    }
+};
+
+const clearBarcodeInfo = (data)=>{
+    return{
+        type : actionType.EMPTYBARCODEINFO,
+        data
+    }
+};
+
+const saveCommonInfo = (data)=>{
+    return {
+        type : actionType.SAVECOMMONINFO,
+        data
+    }
+};
+
+const logout = ()=>{
+    let data = Object.assign({},{userInfo:{},taskInfo:{}});
+    return {
+        type : actionTypes.EMPTYCOMMONINFO,
+        data
+    }
+}
+
+export {getStoreInfo,getTaskInfo,getInfoByBarcode,saveCommonInfo,getUserinfo,logout}
diff --git a/client/actions/index.js b/client/actions/index.js
index 0a9270b..edda485 100755
--- a/client/actions/index.js
+++ b/client/actions/index.js
@@ -9,10 +9,10 @@ const initStart = () => {
         data : mock
     }
 }
-const setPickedCategory = (data)=>{
+const startTask = (data)=>{
     return {
         type:actiontypes.SETPICKEDCATEGORY,
         data
     }
 }
-export {initStart,setPickedCategory}
+export {initStart}
diff --git a/client/actiontype/common.js b/client/actiontype/common.js
new file mode 100644
index 0000000..8a1d311
--- /dev/null
+++ b/client/actiontype/common.js
@@ -0,0 +1,7 @@
+const actionTypes = {
+    SETBARCODEINFO : 'SETBARCODEINFO',
+    EMPTYBARCODEINFO : 'EMPTYBARCODEINFO',
+    SAVECOMMONINFO : 'SAVECOMMONINFO',
+    EMPTYCOMMONINFO : 'EMPTYCOMMONINFO',
+}
+export default actionTypes
\ No newline at end of file
diff --git a/client/components/CommonComponent/HeaderComponent/HeaderComponent.jsx b/client/components/CommonComponent/HeaderComponent/HeaderComponent.jsx
index a841958..ec1176d 100644
--- a/client/components/CommonComponent/HeaderComponent/HeaderComponent.jsx
+++ b/client/components/CommonComponent/HeaderComponent/HeaderComponent.jsx
@@ -40,23 +40,14 @@ export default class HeaderComponent extends React.Component{
     }
 
     getHomeHeader(){
-        let {storeInfo,userinfo,taskInfo} = this.props;
-        storeInfo = {
-            name : '华贸商业街',
-            id : 20
-        };
-        userinfo = {
-            headImageUrl : "",
-            employeeName : "你说呢",
-            id : "00001"
-        };
-        taskInfo = {
-            totalTaskNum : 5,
-            currentTaskNum : 2
-        };
-        let style = {
-            'width' : (parseInt(taskInfo.currentTaskNum) / parseInt(taskInfo.totalTaskNum) * 100) + '%'
+        let headerInfo = this.props.headerInfo;
+        let {storeInfo,userInfo,taskInfo} = headerInfo;
+        if(taskInfo && taskInfo.currentTaskNum && taskInfo.totalTaskNum){
+            let style = {
+                'width' : (parseInt(taskInfo.currentTaskNum) / parseInt(taskInfo.totalTaskNum) * 100) + '%'
+            }
         }
+
         return (
             <div className={"homeHeader clearfix"}>
                 {
@@ -75,21 +66,24 @@ export default class HeaderComponent extends React.Component{
                             </div> :null
                         }
 
-                        <div className={"taskProgress"}>
-                            <div className={"currentTask"} style={style}></div>
-                            <div className={"progressText col333 font26"}>任务进度 {taskInfo.currentTaskNum}/{taskInfo.totalTaskNum}</div>
-                        </div>
+                        {
+                            taskInfo && taskInfo.currentTaskNum && taskInfo.totalTaskNum ?
+                                <div className={"taskProgress"}>
+                                    <div className={"currentTask"} style={style}></div>
+                                    <div className={"progressText col333 font26"}>任务进度 {taskInfo.currentTaskNum}/{taskInfo.totalTaskNum}</div>
+                                </div> : null
+                        }
 
                     </div>
                 }
                 <div className={"headerContent rightContent fr "}>
                     {
 
-                        userinfo  && userinfo.id ?  <div className={"userinfos"}>
-                            <img className={"userheadImg"} src={ userinfo.headImageUrl || UTILPATH.localImg.defaultImg} alt=""/>
+                        userInfo  && userInfo.id ?  <div className={"userinfos"}>
+                            <img className={"userheadImg"} src={ userInfo.headImageUrl || UTILPATH.localImg.defaultImg} alt=""/>
                             <div className={"userinfo font24 colfff"}>
-                                <p>{userinfo.employeeName || ''}</p>
-                                <p>ID:{userinfo.id || 0}</p>
+                                <p>{userInfo.employeeName || ''}</p>
+                                <p>ID:{userInfo.id || 0}</p>
                             </div>
                         </div> : null
                     }
@@ -137,7 +131,13 @@ export default class HeaderComponent extends React.Component{
 
 
     render(){
-        let pages = this.getHeader.bind(this)();
+        let props = this.props;
+        let pages = null;
+        console.log("props ",props);
+        console.log("props ",props.headerInfo);
+        if(props && props.headerInfo && props.headerInfo.storeInfo){
+            pages = this.getHeader.bind(this)();
+        }
         return <div className={"headerComponent"}>
             {pages}
         </div>
diff --git a/client/containers/PageContainer/PageContainer.jsx b/client/containers/PageContainer/PageContainer.jsx
index 6273564..f2ac8ae 100755
--- a/client/containers/PageContainer/PageContainer.jsx
+++ b/client/containers/PageContainer/PageContainer.jsx
@@ -2,14 +2,13 @@
 import React from 'react'
 import { connect }  from 'react-redux';
 
-import {getStoreInfo} from "../../actions/getStore";
+import {getStoreInfo,saveCommonInfo,getUserinfo,logout} from "../../actions/common";
 import {getTroubleList,updateTroubleList} from "../../actions/getTroubles";
 import {initGetOtherProblem,addNewProbem,deleteProblem,editProblemItem,submitProblemList} from "../../actions/otherQuestion"
 import {scanBarCodeGetProductInfo,submitProductInfo,saveEditProductInfo,submitProductSuccess,clearProductSuccess} from "../../actions/ScanBarCode"
 import {getReportDamageList,deleteDamageItem} from '../../actions/reportDamageList'
 import {getRefreshImg,deleteImg,emptyImg} from "../../actions/refreshImg"
 import {uploadError,addErrorInfo} from '../../actions/uploadError'
-import {getUserinfo,logoutUser} from '../../actions/userinfo'
 import PopupComponent from '../../components/CommonComponent/PopupComponent/PopupComponent'
 import TroubleContainer from '../TroubleContainer/TroubleContainer'
 import ScanBarCodeContainer from '../ScanBarCodeContainer/ScanBarCodeContaienr'
@@ -22,7 +21,7 @@ import Button from '../../components/CommonComponent/ButtonComponent/ButtonCompo
 import Clock from '../../components/CommonComponent/ClockComponent/ClockComponent';
 
 /*二期引用 start*/
-import HomePage from '../HomeContainer/HomeContainer'
+import HomePage from '../HomePageContainer/HomePageContainer'
 import TakeStokeContainer from '../TakeStokeContainer/TakeStokeContainer'
 import BreakageContainer from '../BreakageContainer/BreakageConatiner'
 import RecoveryPage from '../RecoveryContainer/RecoveryContainer'
@@ -67,7 +66,7 @@ class PageContainer extends React.Component {
             headerInfo : {},
             pageStyle : {},
             successCloseDoor : false,
-            showClassify : false //显示右侧菜单栏,默认不显示
+            showClassify : false //显示右侧菜单栏,默认不显示,目前没用
         };
         this.getPages = this.getPages.bind(this); //获取当前页面
         this.showPopup = this.showPopup.bind(this); //显示弹窗
@@ -132,12 +131,12 @@ class PageContainer extends React.Component {
         on(CONFIG.socketType.GETSTOREINFO,this,function (data) {
             console.log("==GETSTOREINFO===")
             console.log(data);
-            dispatch(getStoreInfo(data));
+            dispatch(saveCommonInfo({ip:data.ip}));
+            dispatch(getStoreInfo(data.storeId));
         });
         on(CONFIG.socketType.GETSOCKETMSG,this,function (data) {
             console.log("==GETSTOREINFO===")
             console.log(data)
-            console.log(this);
             that.getSocketMsg(data)
         })
 
@@ -146,7 +145,7 @@ class PageContainer extends React.Component {
 
     emptyUser(){
         let {dispatch} = this.props;
-        dispatch(logoutUser());
+        dispatch(logout());
     }
 
     getSocketMsg(data){
@@ -155,9 +154,21 @@ class PageContainer extends React.Component {
             case 'SUCCESS_OPENDOOR':
                 //执行开门
                 let info = data.info;
-                let headerInfo = state.headerInfo;
+                let commonInfo = state.commonInfo;
                 console.log("SUCCESS_OPENDOOR " ,info);
-                dispatch(getUserinfo(info,headerInfo));
+                let {userinfo} = info;
+                let datas = info.data;
+                let {storeInfo} = commonInfo;
+                if(storeInfo && userinfo &&
+                    storeInfo.id && userinfo.employeeId
+                ){
+                    dispatch(getUserinfo(userinfo.employeeId,storeInfo.id))
+                }
+                if(datas.area){
+                    //区域信息
+                    dispatch(saveCommonInfo(Object.assign({},{taskInfo:{area:datas.area}})))
+                }
+
                 this.setState({
                     successCloseDoor : false
                 });
@@ -165,7 +176,7 @@ class PageContainer extends React.Component {
             case 'SUCCESS_CLOSEDOOR':
                 //关门成功
                 console.log("closedoor");
-                dispatch(logoutUser());
+                dispatch(logout());
                 this.endCountBack();
                 // remove(CONFIG.socketType.GETSTOREINFO,this)
                 // remove(CONFIG.socketType.GETSOCKETMSG,this)
@@ -198,6 +209,7 @@ class PageContainer extends React.Component {
             this.dealPageByType(userinfo.type);
         }
         if(state.errMsg.errMsg){
+            //有错误信息,弹出错误信息弹窗
             this.showError(state.errMsg.errMsg)
         }
     }
@@ -225,8 +237,8 @@ class PageContainer extends React.Component {
 
     dealPageByType(type){
         let {dispatch,state} = this.props;
-        if(this.taskTypeOption[type] && state.headerInfo){
-            this.taskTypeOption[type](state.headerInfo);
+        if(this.taskTypeOption[type] && state.commonInfo){
+            this.taskTypeOption[type](state.commonInfo);
         }
     }
 
@@ -307,7 +319,7 @@ class PageContainer extends React.Component {
 
     uploadErrs(type){
         let {dispatch,state} = this.props;
-        dispatch(uploadError(Object.assign({},state.headerInfo,{exceptionType:type})));
+        dispatch(uploadError(Object.assign({},state.commonInfo,{exceptionType:type})));
     }
     //弹出警告弹窗,并报警
     showAlarm(){
@@ -455,7 +467,7 @@ class PageContainer extends React.Component {
                 break;
             case showPage[2]:
                 pages = <ScanBarCodeContainer
-                            headerInfo = {state.headerInfo}
+                            headerInfo = {state.commonInfo}
                             storeInfo={state.storeInfo}
                             userInfo={state.userInfo}
                             getProductInfo = {(postData)=>dispatch(scanBarCodeGetProductInfo(postData))}
@@ -474,7 +486,7 @@ class PageContainer extends React.Component {
                             getReportDamageList = {(postData)=>dispatch(getReportDamageList(postData))}
                             deleteDamageItem = {(postData)=>{dispatch(deleteDamageItem(postData))}}
                             changePages={(data)=>this.changePages(data)}
-                            headerInfo = {state.headerInfo}
+                            headerInfo = {state.commonInfo}
                             storeInfo={state.storeInfo}
                             userInfo={state.userInfo}
                             state = {state}
@@ -492,7 +504,7 @@ class PageContainer extends React.Component {
                             getRefreshImg={(errorId,type)=>dispatch(getRefreshImg(errorId,type))}
                             deleteImg={(errorId,type,fileId)=>dispatch(deleteImg(errorId,type,fileId))}
                             changePages={(data)=>this.changePages(data)}
-                            headerInfo = {state.headerInfo}
+                            headerInfo = {state.commonInfo}
                             storeInfo={state.storeInfo}
                             userInfo={state.userInfo}
                             state = {state}
@@ -538,6 +550,7 @@ class PageContainer extends React.Component {
                 break;
             case showPage[10]:
                 pages = <RecoveryPage
+                    headerInfo = {state.commonInfo}
                     showPopup={(info)=>this.showPopup(info)}
                     hidePopup={()=>this.hidePopup()}
                 />;
@@ -553,8 +566,9 @@ class PageContainer extends React.Component {
     }
 
     render() {
+        console.log("render ");
         let {state} = this.props;
-        let headerInfo = state.headerInfo;
+        let headerInfo = state.commonInfo;
         let ip = headerInfo ? headerInfo.ip : '';
         let mp3Url = ip ? `http://${ip}:7788/defaultMedia/back.mp3` : '';
         return (
diff --git a/client/containers/RecoveryContainer/RecoveryContainer.jsx b/client/containers/RecoveryContainer/RecoveryContainer.jsx
index 37ca691..37b2432 100644
--- a/client/containers/RecoveryContainer/RecoveryContainer.jsx
+++ b/client/containers/RecoveryContainer/RecoveryContainer.jsx
@@ -65,9 +65,14 @@ export default class RecoveryContainer extends React.Component{
 
     render(){
         let dom = this.getFirstPage();
+        let props = this.props;
         return(
             <div className={"recoveryContainer page"}>
-                <Header />
+                {
+                    props.headerInfo && props.headerInfo.storeInfo ?
+                        <Header headerInfo={props.headerInfo}/> : null
+                }
+
                 <LeftContainer />
                 <RightContainer>
                     {
diff --git a/client/env/test.js b/client/env/test.js
index 88ce343..17d0c3c 100755
--- a/client/env/test.js
+++ b/client/env/test.js
@@ -2,6 +2,6 @@
  * Created by ruibing on 16/11/2.
  */
 module.exports = {
-    domain: 'http://test.mjitech.com',
+    domain: 'http://test.mjitech.com/web/',
     uploadImg : 'https://preprod.mjitech.com/static/uploadTrouble'
 }
\ No newline at end of file
diff --git a/client/index.js b/client/index.js
index 6567291..a47d176 100755
--- a/client/index.js
+++ b/client/index.js
@@ -30,6 +30,6 @@ function renderPage(store) {
 let store = activateVendor();
 // UTILPATH.socket.init(129,17);
 // UTILPATH.socket.testIp(209);
-// UTILPATH.socket.testIp(179);
+UTILPATH.socket.testIp(169);
 
 renderPage(store);
\ No newline at end of file
diff --git a/client/reducers/common.js b/client/reducers/common.js
new file mode 100644
index 0000000..ed1e1ab
--- /dev/null
+++ b/client/reducers/common.js
@@ -0,0 +1,35 @@
+import actionTypes from '../actiontype/common';
+
+
+const saveCommonInfo = (state,data)=>{
+    let keys = Object.keys(data);
+    keys.forEach(k=>
+    {
+        if(state[k]){
+            if(typeof data[k] === 'string'){
+                state[k] = data[k]
+            }else{
+                state[k] = Object.assign({},state[k],data[k]);
+            }
+
+        }else{
+            state[k] = data[k]
+        }
+    });
+    return Object.assign({},state);
+};
+
+const emptyCommInfo = (state,data)=>{
+    return Object.assign({},state,data)
+}
+
+export default function(state={}, action) {
+    switch (action.type) {
+        case actionTypes.SAVECOMMONINFO:
+            return saveCommonInfo(state,action.data);
+        case actionTypes.EMPTYCOMMONINFO:
+            return emptyCommInfo(state);
+        default:
+            return state;
+    }
+}
\ No newline at end of file
diff --git a/client/reducers/index.js b/client/reducers/index.js
index 4a894d2..6c4582a 100755
--- a/client/reducers/index.js
+++ b/client/reducers/index.js
@@ -8,6 +8,7 @@ import refreshImg from './refreshImg' //刷新图片
 import headerInfo from './initHeader' //获取头部信息
 import reportDamageList from './reportDamge' //一期商铺报损
 import errMsg from './error' //上报异常
+import commonInfo from './common' //上报异常
 
 export default combineReducers({
     troubleList,
@@ -18,7 +19,8 @@ export default combineReducers({
     refreshImg,
     headerInfo,
     reportDamageList,
-    errMsg
+    errMsg,
+    commonInfo
 })