Commit 03f64bc2 by Zhang Xin

fix 冲突 & merge from dev for 需求195 & bug 2950

parents 42699ffa 8cf361f6
......@@ -6,4 +6,5 @@ static
.idea
package-lock.json
.map
.vscode
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}\\index.js"
}
]
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ export function scanBarCodeGetProductInfo(postData) {
}).then((response) => response.json())
.then(
(json)=>{
UTILPATH.myLogger.info("scanning_sku_barcode_for_add_loss_task response ",json);
//处理数据如果
let success = json.meta.success;
if(success){
......@@ -27,7 +28,8 @@ export function scanBarCodeGetProductInfo(postData) {
}
}
).catch(e=>{
UTILPATH.myLogger.error("scanning_sku_barcode_for_add_loss_task error ",e);
UTILPATH.myLogger.error(`scanning_sku_barcode_for_add_loss_task error ${e}`);
// dispatch(scanBarCodeGetProductInfo(postData))
})
}
}
......@@ -47,15 +49,17 @@ export function submitProductInfo(postData) {
}).then((response) => response.json())
.then(
(json)=>{
UTILPATH.myLogger.info("submit_add_loss_task response ",json);
if(json.data){
let submit = {
"submit":true
}
};
dispatch(submitProductSuccess(submit))
}
}
).catch(e=>{
UTILPATH.myLogger.error("submit_add_loss_task error ",e);
UTILPATH.myLogger.error(`submit_add_loss_task error ${e}`);
// dispatch(submitProductInfo(postData));
}
)
......
......@@ -23,12 +23,14 @@ const checkProductQuantity = (data)=>{
body:JSON.stringify(bodyData)
}).then(response=>response.json())
.then((json)=>{
UTILPATH.myLogger.info("checkProductQuantity response ",json);
if(json.data===1){
dispatch(getTaskList(commonInfo))
}
dispatch(checkQuantity({type:json.data}))
}).catch(e=>{
UTILPATH.myLogger.error("checkProductQuantity error ",e);
UTILPATH.myLogger.error(`checkProductQuantity error ${e}`);
// dispatch(checkProductQuantity(data))
})
}
......
......@@ -10,10 +10,10 @@ const getBarCodeProductInfo = (data)=>{
let {taskInfo={},storeInfo={}}=commonInfo;
let storeId=storeInfo.id || 0;
let currentTaskType = taskInfo.currentTaskType || '';
let area = taskInfo.area || ''
let taskId = taskInfo.taskId || 0
let area = taskInfo.area || '';
let taskId = taskInfo.taskId || 0;
let url=`${domain}machine_pad/barcode/${storeId}/${taskId}/${area}/${currentTaskType}/${barcode}`;
UTILPATH.myLogger.info("getBarCodeProductInfo url",url);
UTILPATH.myLogger.info("getBarCodeProductInfo url ",url);
return (dispatch)=>{
fetch(url,{
credentials : 'include',
......@@ -21,6 +21,7 @@ const getBarCodeProductInfo = (data)=>{
mode : 'cors'
}).then((response)=>response.json())
.then((json)=>{
UTILPATH.myLogger.info("getBarCodeProductInfo response ",json);
if(!json.meta.success&&!json.data){
dispatch(saveProductInfo(json.meta))
switch (taskInfo.currentTaskType){
......@@ -79,7 +80,8 @@ const getBarCodeProductInfo = (data)=>{
}
}).catch(e=>{
UTILPATH.myLogger.error("getBarCodeProductInfo error ",e);
UTILPATH.myLogger.error(`getBarCodeProductInfo error ${e}`);
dispatch(getBarCodeProductInfo(data));
})
}
......
......@@ -18,8 +18,8 @@ const submitBreakageProduct = (data)=>{
let {skuPosition,skuId,skuStatus,area}=productDetail;
let bodyData={skuPosition,skuId,skuStatus,machineId,taskId,area}
let url=domain+`machine_pad/lr/${userId}`;
UTILPATH.myLogger.info("submitBreakageProduct url",url);
UTILPATH.myLogger.info("submitBreakageProduct request",bodyData);
UTILPATH.myLogger.info("submitBreakageProduct url ",url);
UTILPATH.myLogger.info("submitBreakageProduct request ",bodyData);
return (dispatch)=>{
fetch(url,{
// credentials : 'include',
......@@ -32,9 +32,11 @@ const submitBreakageProduct = (data)=>{
body:JSON.stringify(bodyData)
}).then((response)=>response.json())
.then((json)=>{
UTILPATH.myLogger.info("submitBreakageProduct response ",json);
dispatch(getSubmitStatus(json.meta))
}).catch(e=>{
UTILPATH.myLogger.error("submitBreakageProduct error ",e);
UTILPATH.myLogger.error(`submitBreakageProduct error ${e}`);
// dispatch(submitBreakageProduct(data))
})
}
}
......@@ -44,7 +46,7 @@ const submitBreakageProduct = (data)=>{
const hasNoSku = (commonInfo)=>{
let {storeInfo={},userInfo={},taskInfo={}} = commonInfo;
let url = `${domain}machine_pad/work/lr/status/${taskInfo.taskId}/${taskInfo.area}/${taskInfo.currentTaskType}`;
UTILPATH.myLogger.info("hasNoSku url",url);
UTILPATH.myLogger.info("hasNoSku url ",url);
return (dispatch)=>{
fetch(url,{
// credentials : 'include',
......@@ -55,7 +57,7 @@ const hasNoSku = (commonInfo)=>{
.then((json)=>{
dispatch(getTaskList(commonInfo))
}).catch(e=>{
UTILPATH.myLogger.error("hasNoSku 没有散落货品 error ",e);
UTILPATH.myLogger.error(`hasNoSku 没有散落货品 error ${e}`);
})
}
}
......
import fetch from 'isomorphic-fetch'
import {logout, getTaskList, saveCommonInfo} from "./common";
import {logout, getTaskList, saveCommonInfo,emptyStoreInfo} from "./common";
import {emit} from "../util/event";
let domain = ENV.domain;
// let domain1='http://192.168.10.184:8080/maxbox/web/'
const willCloseDoor=(data,flag=false)=>{
let url=domain+`machine_pad/finish_task.action`
let url=domain+`machine_pad/finish_task.action`;
let {userInfo,taskInfo,storeInfo}=data;
let userId=userInfo.employeeId;
let machineId=storeInfo.id;
let {taskId,area,currentTaskType}=taskInfo;
let bodyData={area,storeId:machineId,taskId,userId,taskType:currentTaskType};
UTILPATH.myLogger.info("finish_task url",url);
UTILPATH.myLogger.info("finish_task request",bodyData);
return (dispatch)=>{
fetch(url,{
UTILPATH.myLogger.info("finish_task url ",url);
UTILPATH.myLogger.info("finish_task flag ",flag);
UTILPATH.myLogger.info("finish_task request ",bodyData);
return async (dispatch)=>{
let success = (json)=>{
UTILPATH.myLogger.info("finish_task response ",json);
if(flag){
//回收箱完成
dispatch(getTaskList(data))
}
};
let fail = (err)=>{
UTILPATH.myLogger.error(`finish_task error ${err}`);
};
try {
let result = await fetch(url,{
credentials : 'include',
method : 'POST',
mode : 'cors',
......@@ -21,32 +33,31 @@ const willCloseDoor=(data,flag=false)=>{
'Content-Type': 'application/json; charset=UTF-8'
},
body:JSON.stringify(bodyData)
}).then((response)=>response.json())
.then((json)=>{
if(flag){
//回收箱完成
dispatch(getTaskList(data))
}else{
//没有问题,完成任务
// dispatch(saveCommonInfo(Object.assign({},{taskInfo:{currentTaskType:'FINISH'}})))
}).then((response)=>response.json());
return success(result)
} catch (err) {
return fail(err)
}
// dispatch(closeDoorSuccess(data));
}).catch(e=>{
UTILPATH.myLogger.error("finish_task error ",e);
})
}
}
/**
*
* @param data
* @param stopFlag 断电断网标志,true 断电断网中,
* @returns {Function}
*/
const closeDoorSuccess=(data)=>{
const closeDoorSuccess=(data,stopFlag=false)=>{
let {userInfo,taskInfo,storeInfo}=data;
let userId=userInfo.employeeId;
let machineId=storeInfo.id;
let {taskId,area}=taskInfo;
let bodyData={storeId:machineId,taskId,area,userId}
let url=domain+'machine_pad/update_door_status.action';
UTILPATH.myLogger.info("update_door_status url",url);
UTILPATH.myLogger.info("update_door_status request",bodyData);
UTILPATH.myLogger.info("update_door_status url ",url);
UTILPATH.myLogger.info("update_door_status request ",bodyData);
UTILPATH.myLogger.info("update_door_status stopFlag ",stopFlag);
return (dispatch)=>{
fetch(url,{
credentials : 'include',
......@@ -59,10 +70,49 @@ const closeDoorSuccess=(data)=>{
body:JSON.stringify(bodyData)
}).then((response)=>response.json())
.then((json)=>{
dispatch(logout())
UTILPATH.myLogger.info("update_door_status response ",json);
if(stopFlag){
dispatch(askForNextTask(taskId))
}else{
dispatch(logout());
}
}).catch(e=>{
UTILPATH.myLogger.error(`update_door_status error ${e}`);
// dispatch(closeDoorSuccess(data));
})
}
};
const askForNextTask = (taskId)=>{
let url = domain+`machine_pad/power_cut_close_door/${taskId}`;
UTILPATH.myLogger.info("askForNextTask power_cut_close_door url ",url);
return (dispatch) =>{
fetch(url,{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers:{
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json; charset=UTF-8'
},
body:JSON.stringify({})
}).then((response)=>response.json())
.then((json)=>{
let {meta={}} = json;
UTILPATH.myLogger.info("askForNextTask power_cut_close_door response ",json);
if(meta.success){
let area = meta.message;
dispatch(saveCommonInfo(Object.assign({},{taskInfo:{area:area,currentTaskNum:0,currentTaskType:""}})))
}else{
//将门店信息也清空
dispatch(emptyStoreInfo());
dispatch(logout());
emit(CONFIG.socketType.STOPSTOPSERVER,{});
}
}).catch(e=>{
UTILPATH.myLogger.error("update_door_status error ",e);
closeDoorSuccess(data);
UTILPATH.myLogger.error(`power_cut_close_door error ${e}`);
// dispatch(askForNextTask(taskId))
})
}
}
......
......@@ -12,29 +12,36 @@ let myHeaders = new Headers({
//获取店铺信息
const getStoreInfo = (storeId)=>{
return(dispatch)=>{
return async (dispatch)=>{
let bodyData = {storeId};
UTILPATH.myLogger.info("getMachineData request",bodyData);
fetch(domain + 'pad_warehouse/getMachineData.action',{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers:myHeaders,
body: JSON.stringify(bodyData)
}).then((response)=>response.json())
.then(json=>{
UTILPATH.myLogger.info("getMachineData request ",bodyData);
let success = (json)=>{
UTILPATH.myLogger.info("getMachineData response ",json);
let storeInfo = Object.assign({},{id:storeId});
if(json.meta.success && json.data.warehouse){
storeInfo = Object.assign({},storeInfo,json.data.warehouse)
}else{
UTILPATH.myLogger.error("getMachineData error ",json);
}
dispatch(saveCommonInfo(Object.assign({},{storeInfo})))
}).catch(e=>{
UTILPATH.myLogger.error("getMachineData error ",e);
})
dispatch(saveCommonInfo(Object.assign({},{storeInfo})));
};
let fail = (e)=>{
UTILPATH.myLogger.error(`getMachineData error ${e}`);
dispatch(getStoreInfo(storeId));
};
try{
let res = await fetch(domain + 'pad_warehouse/getMachineData.action',{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers:myHeaders,
body: JSON.stringify(bodyData)
}).then((response)=>response.json());
return success(res);
}catch (e) {
return fail(e)
}
}
};
......@@ -42,7 +49,7 @@ const getStoreInfo = (storeId)=>{
//获取用户信息
const getUserinfo = (employeeId,storeId)=>{
let bodyData = Object.assign({},{employeeId,storeId});
UTILPATH.myLogger.info("get_alowed_task request",bodyData);
UTILPATH.myLogger.info("get_alowed_task request ",bodyData);
return(dispatch)=>{
fetch(domain + 'machine_pad/get_alowed_task.action',{
credentials : 'include',
......@@ -52,6 +59,7 @@ const getUserinfo = (employeeId,storeId)=>{
body : JSON.stringify(bodyData)
}).then((response)=>response.json())
.then(json=>{
UTILPATH.myLogger.info("getMachineData get_alowed_task response ",json);
let userInfo = Object.assign({},{id:employeeId})
if(json.meta.success && json.data){
if(json.data.employee){
......@@ -65,7 +73,8 @@ const getUserinfo = (employeeId,storeId)=>{
dispatch(saveCommonInfo(Object.assign({},{userInfo})));
}
}).catch(e=>{
UTILPATH.myLogger.error("get_alowed_task error ",e);
UTILPATH.myLogger.error(`get_alowed_task error ${e}`);
dispatch(getUserinfo(employeeId,storeId))
})
}
};
......@@ -76,7 +85,7 @@ const getTaskList = (data={},callback=null)=>{
let {storeInfo={},userInfo={},taskInfo={}} = data;
let taskId=taskInfo.taskId || 0;
let url =`${domain}machine_pad/work/list/${storeInfo.id}/${taskInfo.area}/${taskId}/${userInfo.employeeId}`;
UTILPATH.myLogger.info("getTaskList url",url);
UTILPATH.myLogger.info("getTaskList url ",url);
return (dispatch)=>{
if(!userInfo.id){
dispatch(addErrorInfo('没有获取用户信息'))
......@@ -90,6 +99,7 @@ const getTaskList = (data={},callback=null)=>{
headers: myHeaders
}).then(response=>response.json())
.then((json)=>{
UTILPATH.myLogger.info("getTaskList response ",json);
let data =Object.assign({});
if(json.meta.success && json.data){
data.taskInfo = Object.assign({},json.data.flatCommonVo);
......@@ -106,10 +116,10 @@ const getTaskList = (data={},callback=null)=>{
callback()
}
}).catch(e=>{
UTILPATH.myLogger.error(`getTaskList error ${e}`);
if(callback){
callback()
}
UTILPATH.myLogger.error("getTaskList error ",e);
})
}
}
......@@ -129,6 +139,14 @@ const logout = ()=>{
}
};
const emptyStoreInfo = ()=>{
let data = Object.assign({},{storeInfo:{}});
return {
type : actionType.EMPTYCOMMONINFO,
data
}
}
const getTaskName = (currentTaskType,childTaskNum=0)=>{
return {
type : actionType.GETTASKNAME,
......@@ -136,4 +154,4 @@ const getTaskName = (currentTaskType,childTaskNum=0)=>{
}
}
export {getStoreInfo,saveCommonInfo,getUserinfo,logout,getTaskList,getTaskName}
export {getStoreInfo,saveCommonInfo,getUserinfo,logout,getTaskList,getTaskName,emptyStoreInfo}
......@@ -3,22 +3,6 @@ import actionTypes from '../actiontype/store'
import {saveHeaderInfo} from './initHeader'
const domain = ENV.domain;
let json = {
"meta": {
"code": "200",
"message": "成功",
"success": true
},
"data": {
"warehouse": {
"id": 13,
"name": "华贸商业街",
"image": "http://static.mjitech.com/static/tmp/2018-05-25/1527243213701.jpg",
"address": "华贸商业街(新光天地与利兹卡尔顿酒店之间广场)"
}
}
};
const saveStoreInfo = (data)=>{
return{
type:actionTypes.SAVESTORE,
......@@ -35,7 +19,7 @@ var myHeaders = new Headers({
const getStoreInfo = (data)=>{
let storeId = data.storeId
let storeId = data.storeId;
return(dispatch)=>{
dispatch(saveHeaderInfo(data))
let bodyData = {storeId};
......@@ -56,7 +40,38 @@ const getStoreInfo = (data)=>{
}
}
};
const getStoreList = ()=>{
return (dispatch)=>{
fetch(domain + 'machine_pad/power_cut_find_store',{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers: { 'Content-Type': 'application/json' },
body:JSON.stringify({})
}).then((response)=>response.json())
.then(json=>{
UTILPATH.myLogger.info("power_cut_find_store ",json);
if(json.meta.success){
let storeList = json.data;
dispatch(saveStoreList(storeList))
}else{
//没有店铺信息
}
}).catch(e=>{
UTILPATH.myLogger.error(`power_cut_find_store ${e}`);
dispatch(getStoreList());
});
}
};
const saveStoreList = (data)=>{
return{
type:actionTypes.SAVESTORELIST,
data
}
};
export {getStoreInfo}
export {getStoreInfo,getStoreList}
......@@ -48,7 +48,8 @@ const getTroubleList = (info) => {
dispatch(saveTroubleList(json.data))
}
}).catch(e => {
UTILPATH.myLogger.error("getTroubleList error ",e);
UTILPATH.myLogger.error(`getTroubleList error ${e}`);
dispatch(getTroubleList(info))
})
}
};
......@@ -69,7 +70,8 @@ const updateTroubleList = (info, headerInfo) => {
.then(json => {
dispatch(getTaskList(headerInfo))
}).catch(e => {
UTILPATH.myLogger.error("save_all_error error ",e);
UTILPATH.myLogger.error(`save_all_error error ${e}`);
// dispatch(updateTroubleList(info, headerInfo))
})
}
};
......
......@@ -13,8 +13,7 @@ let lock = false;
const finishBoxRecovery = (info)=>{
//已放入回收箱
return (dispatch)=>{
return async dispatch => {
if(!lock){
lock = true;
let {userInfo={},taskInfo={},storeInfo={},taskList={}} = info;
......@@ -26,24 +25,33 @@ const finishBoxRecovery = (info)=>{
taskType : taskInfo.currentTaskType || "",
area : taskInfo.area || ""
});
UTILPATH.myLogger.info("update_machine_recovery_sku request",bodyData);
UTILPATH.myLogger.info("update_machine_recovery_sku request ",bodyData);
let url=`${domain}machine_pad/update_machine_recovery_sku.action`;
fetch(url,{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers: myHeaders,
body:JSON.stringify(bodyData)
}).then(response=>response.json())
.then((json)=>{
let success = (res)=>{
dispatch(saveProductInfo({}));
dispatch(getTaskList(info,()=>{
lock = false;
}));
}).catch(e=>{
};
let fail = (err)=>{
lock = false;
UTILPATH.myLogger.error("update_machine_recovery_sku error ",e);
})
UTILPATH.myLogger.error(`update_machine_recovery_sku error ${err}`);
};
try {
const result = await fetch(url,{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers: myHeaders,
body:JSON.stringify(bodyData)
}).then(response=>response.json());
return success(result)
} catch (err) {
return fail(err)
}
}
}
};
......
......@@ -2,6 +2,7 @@ import fetch from 'isomorphic-fetch';
import actionType from '../actiontype/replenish'
import {getTaskList} from "./common";
import {saveProductInfo} from "./barcodeCommon";
import {finishBoxRecovery} from "./recovery";
const domain = ENV.domain;
let myHeaders = new Headers({
......@@ -35,8 +36,8 @@ const finishReplenish = (info,source)=>{
area : taskInfo.area,
id : source === 1 ? taskList.workListId : 0,
});
let url=`${domain}machine_pad/trigger_ck_task_sku.action`
UTILPATH.myLogger.info("trigger_ck_task_sku request",bodyData);
let url=`${domain}machine_pad/trigger_ck_task_sku.action`;
UTILPATH.myLogger.info("trigger_ck_task_sku request ",bodyData);
return (dispatch)=>{
fetch(url,{
credentials : 'include',
......@@ -48,7 +49,8 @@ const finishReplenish = (info,source)=>{
.then((json)=>{
dispatch(getTaskList(info));
}).catch(e=>{
UTILPATH.myLogger.error("trigger_ck_task_sku error ",e);
UTILPATH.myLogger.error(`trigger_ck_task_sku error ${e}`);
// dispatch(finishReplenish(info,source))
})
}
}
......
......@@ -48,6 +48,7 @@ const uploadError = (info,exceptionType,getTask=true)=>{
area : taskInfo.area || ''
});
UTILPATH.myLogger.info("exception_skupass_sku bodyData ",bodyData);
UTILPATH.myLogger.info("exception_skupass_sku getTask ",getTask);
return (dispatch =>{
fetch(domain + 'machine_pad/exception_skupass_sku.action',{
credentials : 'include',
......@@ -63,7 +64,8 @@ const uploadError = (info,exceptionType,getTask=true)=>{
dispatch(saveProductInfo({}))
}
}).catch(e=>{
UTILPATH.myLogger.error("exception_skupass_sku error ",e);
UTILPATH.myLogger.error(`exception_skupass_sku error ${e}`);
// dispatch(uploadError(info,exceptionType,getTask))
});
})
};
......@@ -93,10 +95,9 @@ const timeoutAlarm = (info)=>{
}).then((response)=>response.json())
.then(json=>{
}).catch(e=>{
UTILPATH.myLogger.error("expired_send_error_msg error ",e);
UTILPATH.myLogger.error(`expired_send_error_msg error ${e}`);
// dispatch(timeoutAlarm(info))
});
})
}
......
......@@ -2,6 +2,7 @@ import fetch from 'isomorphic-fetch';
import actionTypes from '../actiontype/user'
import {saveHeaderInfo} from './initHeader'
import {addErrorInfo} from './uploadError'
import {saveCommonInfo, getUserinfo, emptyStoreInfo} from "./common";
const domain = ENV.domain;
......@@ -19,7 +20,7 @@ var myHeaders = new Headers({
const getUserinfo = (info,headerInfo)=>{
const getUserinfoOld = (info,headerInfo)=>{
let employeeId = info.employeeId;
let storeId = headerInfo.storeId;
let bodyData = Object.assign({},{employeeId,storeId})
......@@ -49,5 +50,71 @@ const logoutUser = ()=>{
}
}
export {getUserinfo,logoutUser}
let timer = null;
const pollingGetUserinfoAgain = (storeId)=>{
return (dispatch)=>{
if(!timer){
timer = setTimeout(()=>{
UTILPATH.myLogger.info("pollingGetUserinfoAgain storeId ",storeId)
clearTimeout(timer);
timer = null;
dispatch(pollingGetUserinfo(storeId))
},2*1000)
}
}
}
const pollingGetUserinfo = (storeId)=>{
UTILPATH.myLogger.info("power_cut_find_user storeId ",storeId)
return(dispatch)=>{
fetch(domain + `machine_pad/power_cut_find_user/${storeId}`,{
credentials : 'include',
method : 'POST',
mode : 'cors',
headers:myHeaders,
body:JSON.stringify({})
}).then((response)=>response.json())
.then(json=>{
UTILPATH.myLogger.info("power_cut_find_user response ",json)
let {meta={},data={}} = json;
if(meta.success && data.code){
let code = parseInt(data.code);
switch (code){
case 1:
//开门成功
let {employeeId,area} = data;
if(employeeId && area){
dispatch(saveCommonInfo({userInfo:{employeeId}}));
dispatch(saveCommonInfo(Object.assign({},{taskInfo:{area:area,taskId:0,currentTaskType:'OPEN'}})));
dispatch(getUserinfo(employeeId,storeId));
}else{
dispatch(pollingGetUserinfoAgain(storeId));
}
break;
case 2:
//开门失败
dispatch(emptyStoreInfo());
break;
case 3:
//暂无信息,继续调用
dispatch(pollingGetUserinfoAgain(storeId));
break;
}
}else{
dispatch(pollingGetUserinfoAgain(storeId));
}
}).catch(e=>{
UTILPATH.myLogger.error(`power_cut_find_user error ${e}`);
dispatch(pollingGetUserinfoAgain(storeId));
})
// dispatch(tempGetUserInfo(storeId));
}
};
export {pollingGetUserinfo}
const actionTypes = {
SAVESTORE : 'SAVESTORE',
SAVESTORELIST : 'SAVESTORELIST',
}
export default actionTypes
\ No newline at end of file
......@@ -8,10 +8,14 @@ export default class HeaderComponent extends React.Component{
this.getHomeHeader = this.getHomeHeader.bind(this);
this.getOtherHeader = this.getOtherHeader.bind(this);
this.handleShowClassify = this.handleShowClassify.bind(this);
this.showVersion = this.showVersion.bind(this);
this.state = {
showHeader : headerStatus[1],
showClassify : false
showClassify : false,
showVersion : false,
}
this.timer = null;
this.countbackTime = 1000;
}
componentWillReceiveProps(nextProps){
......@@ -42,6 +46,22 @@ export default class HeaderComponent extends React.Component{
return pages;
}
showVersion(){
this.setState({
showVersion : !this.state.showVersion
},()=>{
if(!this.timer && this.state.showVersion){
this.timer = window.setTimeout(()=>{
window.clearTimeout(this.timer);
this.timer = null;
this.setState({
showVersion : false
})
},this.countbackTime)
}
})
}
getHomeHeader(){
let headerInfo = this.props.headerInfo;
let {storeInfo,userInfo,taskInfo} = headerInfo;
......@@ -52,13 +72,20 @@ export default class HeaderComponent extends React.Component{
}
}
let versionStyle = {
lineHeight: "3.6",
textAlign: "center",
width: "100%"
};
return (
<div className={"homeHeader clearfix"}>
{
<div className={"headerContent leftContent fl"}>
<div className={"headerlogo"}>
<div className={"headerlogo"} onClick={()=>this.showVersion()}>
{
this.state.showVersion ? <div className={"colfff font26"} style={versionStyle}>当前版本号 --- {CURVERSION}</div> :
<img className={"logoImg"} src={UTILPATH.localImg.headlogo} alt=""/>
}
</div>
{
taskInfo && taskInfo.currentTaskNum && taskInfo.totalTaskNum ?
......@@ -69,7 +96,6 @@ export default class HeaderComponent extends React.Component{
}
</div>
}
<div className={"headerContent rightContent fr "}>
{
storeInfo && storeInfo.id ? <div className={"locationInfo"}>
......
......@@ -43,8 +43,10 @@ export default class ReplenishSkuPage extends React.Component{
this.setState({
btnClock : true
},()=>{
this.props.finishBoxRecovery();
this.props.finishBoxRecovery().then(()=>{
this.continueScan()
});
})
}
}
......
......@@ -2,7 +2,9 @@
const socketType = {
GETSTOREINFO:'GETSTOREINFO',
GETSOCKETMSG:'GETSOCKETMSG',
SOCKETERROR : 'SOCKETERROR'
SOCKETERROR : 'SOCKETERROR',
STARTSTOPSERVER : 'STARTSTOPSERVER', //开启断电断网流程
STOPSTOPSERVER : 'STOPSTOPSERVER' //关闭断电断网流程
}
module.exports = socketType;
\ No newline at end of file
......@@ -43,12 +43,24 @@ export default class HomePageContainer extends React.Component{
this.setState({
closeDoorStatus : 1
},()=>{
this.props.willCloseDoor();
UTILPATH.myLogger.info("logout startStopServer ",this.props.startStopServer);
if(this.props.startStopServer){
this.props.willCloseDoor().then(()=>{
this.props.endCountBack();
this.props.tempLogout()
});
}else{
this.props.willCloseDoor().then(()=>{
this.props.endCountBack();
let msg={type:'WILL_CLOSEDOOR'};
sendMsg(JSON.stringify(msg));
this.props.changeIsSend(true);
// this.props.tempLogout()
});
}
})
}
}
......@@ -124,8 +136,11 @@ export default class HomePageContainer extends React.Component{
)
}
start(){
let props=this.props;
props.getTaskList();
let props = this.props;
let {getTaskList} = props;
if(getTaskList){
getTaskList();
}
}
}
......
......@@ -103,6 +103,18 @@ body {
font-size: calc(var(--font3) * font18 * var(--base)) !important;
}
.font20 {
font-size: calc(font20 * var(--base)) !important;
}
[data-dpr="2"] .font20 {
font-size: calc(var(--font2) * font20 * var(--base)) !important;
}
[data-dpr="3"] .font20 {
font-size: calc(var(--font3) * font20 * var(--base)) !important;
}
.font22 {
font-size: calc(font22 * var(--base)) !important;
}
......
......@@ -6,15 +6,24 @@ import reducers from './reducers/index';
import { createLogger } from 'redux-logger'
import thunkMiddleware from 'redux-thunk';
require('./index.css');
import PageContainer from './containers/PageContainer/PageContainer'
import PageContainer from './containers/PageContainer/PageContainer';
const env = process.env.NODE_ENV;
function activateVendor() {
const logMiddleware = createLogger();
return createStore(
return (
env === "development" ? createStore(
reducers,
applyMiddleware(
thunkMiddleware,
logMiddleware
)
) : createStore(
reducers,
applyMiddleware(
thunkMiddleware,
)
)
)
}
function renderPage(store) {
......@@ -28,6 +37,7 @@ function renderPage(store) {
let store = activateVendor();
UTILPATH.socket.getIp1();
UTILPATH.socket.stopServer();
// UTILPATH.socket.getTestIp(203);
renderPage(store);
\ No newline at end of file
......@@ -2,12 +2,18 @@ import actionTypes from '../actiontype/store';
const saveStore = (content,data)=>{
return Object.assign({},content,data);
};
const saveStoreList = (content,data)=>{
return Object.assign({},content,{storeList:data});
}
export default function(state={}, action) {
switch (action.type) {
case actionTypes.SAVESTORE:
return saveStore(state,action.data)
return saveStore(state,action.data);
case actionTypes.SAVESTORELIST:
return saveStoreList(state,action.data);
default:
return state;
}
......
......@@ -17,6 +17,7 @@ myLogger.saveDomain = (ip)=>{
myLogger.info = function () {
let args = [].slice.call(arguments) || [];
// console.log.apply(console,args);
if(domain && args.length > 0){
let bodyData = {};
let time = new Date().getTime();
......
import {emit} from './event'
import {emit, on , remove} from './event'
import myLogger from './logger'
let domainIp = '192.168.8.';
......@@ -12,6 +12,49 @@ let getIpING = false; //正在获取IP
let currentIpIndex = 255;
let ws = null;
let storeId = 0;
let stopTimer = null;
let startStopServer = false;
//断网后1min连不上,就终止连接
let beginConnectSocket = ()=>{
console.log("===socket===beginConnectSocket===getIpING=== ",getIpING);
if(!getIpING){
currentIpIndex = 255;
totalCount = 0;
storeId = 0;
socket.getIp1();
socket.stopServer();
}
};
socket.stopServer = ()=>{
console.log("======stopServer====== ",stopTimer);
if(!stopTimer){
stopTimer = setTimeout(()=>{
clearTimeout(stopTimer);
stopTimer = null;
startStopServer = true;
//告知页面走断电断网流程
emit(CONFIG.socketType.STARTSTOPSERVER,{});
console.log("===socket===STARTSTOPSERVER====== ");
let that = socket.stopServer;
on(CONFIG.socketType.STOPSTOPSERVER,that,()=>{
console.log("===socket===STOPSTOPSERVER====== ");
startStopServer = false;
getIpING = false;
beginConnectSocket();
remove(CONFIG.socketType.STOPSTOPSERVER,that);
});
},1000*60*1)
}
};
socket.getIp1 = ()=>{
if(!getIpING) {
......@@ -34,14 +77,17 @@ socket.getIp1 = ()=>{
let info = JSON.parse(evt.data);
if(info.type === 'GET_STORE_ID' && info.data){
ws1.close();
if(!startStopServer){
//非断电断网情况就连接
init(currentIpIndex,info.data,true);
}
}
}
};
ws1.onerror = function (err) {
totalCount++;
if(totalCount >= 255){
if(totalCount >= 255 && !startStopServer){
totalCount = 0;
currentIpIndex = 255;
getIpING = false;
......@@ -72,8 +118,11 @@ socket.getTestIp = (ip) => {
let info = JSON.parse(evt.data);
if(info.type === 'GET_STORE_ID' && info.data){
ws1.close();
if(!startStopServer){
init(currentIpIndex,info.data,true);
}
}
}
};
......@@ -87,12 +136,7 @@ const getError = ()=>{
const getClose = ()=>{
//如果有currentIp就没有必要再次循环
ws = null;
if(!getIpING){
currentIpIndex = 255;
totalCount = 0;
storeId = 0;
socket.getIp1();
}
beginConnectSocket();
}
......@@ -111,6 +155,13 @@ const init = (ip,storeid,from = false)=>{
storeId = storeid;
getIpING = false;
myLogger.saveDomain(domainIp+ip);
if(stopTimer){
//重连成功后,终止倒计时
clearTimeout(stopTimer);
stopTimer = null;
startStopServer = false;
myLogger.info("连接成功,停止stopTimer倒计时");
}
emit(CONFIG.socketType.GETSTOREINFO,{ip:domainIp+ip,storeId:storeid})
};
......@@ -122,7 +173,7 @@ const init = (ip,storeid,from = false)=>{
};
ws.send(JSON.stringify(o));
}else{
var received_msg = JSON.parse(evt.data); //String
let received_msg = JSON.parse(evt.data); //String
emit(CONFIG.socketType.GETSOCKETMSG,received_msg);
}
......
......@@ -7,8 +7,8 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"clean": "rm -rf static/*",
"start": "cross-env NODE_ENV=development webpack-dev-server --env=dev -d --history-api-fallback --hot --inline --progress --colors --port 80 --host 0.0.0.0",
"build": "cross-env NODE_ENV=production webpack --env=build --progress --color",
"start": "cross-env NODE_ENV=development webpack-dev-server --version=2.0.1 --env=dev -d --history-api-fallback --hot --inline --progress --colors --port 80 --host 0.0.0.0",
"build": "cross-env NODE_ENV=production webpack --env=build --version=2.0.1 --progress --color",
"build:prod": "cross-env NODE_ENV=development webpack --env=build --progress --color"
},
"author": "",
......
......@@ -76,6 +76,18 @@ function getEnv(){
}
let env = getEnv();
function getVersion(){
const args = require('minimist')(process.argv.slice(2));
let version = "";
if(args.version){
version = (args.version).toString();
}
return version;
}
let curversion = getVersion();
let envConfig = {
'build':{
output:{
......@@ -91,7 +103,8 @@ let envConfig = {
new webpack.optimize.AggressiveMergingPlugin(),
new webpack.DefinePlugin({
'process.env': { NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'production') },
'BASEREM' : 120
'BASEREM' : 120,
'CURVERSION' : JSON.stringify(curversion)
}),
new webpack.ProvidePlugin({
ENV: __dirname + '/client/env/production',
......@@ -115,7 +128,8 @@ let envConfig = {
}), //分割共有模块和代码模块
new webpack.DefinePlugin({
'process.env': { NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development') },
'BASEREM' : 120
'BASEREM' : 120,
'CURVERSION' : JSON.stringify(curversion)
}),
new webpack.ProvidePlugin({
ENV: __dirname + '/client/env/development',
......
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