Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/H5xxx/mocar
Browse files Browse the repository at this point in the history
  • Loading branch information
ingf committed Sep 14, 2014
2 parents 9af079e + ec2dd47 commit 24ee1e2
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 7 deletions.
44 changes: 41 additions & 3 deletions js/controller/car-cart.js
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,18 @@ define(function(require, exports) {
if(lastServiceId && !params.service_id){
params.service_id = lastServiceId;
}

var lastUnsavedVehicle = {
brand: localStorage["brand"] || "",
family: localStorage["family"] || "",
prefix: localStorage["prefix"] || "",
model: localStorage["model"] || "",
modelId: localStorage["modelId"] || ""
};
if(!(lastUnsavedVehicle.modelId && lastUnsavedVehicle.model &&
lastUnsavedVehicle.brand && lastUnsavedVehicle.family)){
lastUnsavedVehicle = null;
}
//TODO 现在先一次性把车辆给取出来
util.finish([
Vehicle.fetch({uid:'me'})
Expand All @@ -234,10 +246,18 @@ define(function(require, exports) {
*/
currentVehicle = null;
}

if(currentVehicle){
currentVehicle.modelId = currentVehicle.id;
currentVehicle.save();
vehicles.unshift(currentVehicle);
try{
//需要在本地记住上次选择的车型
localStorage["model"] = currentVehicle.model;
localStorage["modelId"] = currentVehicle.modelId;
}catch(e){

}
}else{
//非法路径进入
self.page.navigate('/service/' + params.service_id + '/brand');
Expand All @@ -261,18 +281,36 @@ define(function(require, exports) {
currentVehicle.modelId = currentVehicle.id;
currentVehicle.save();
vehicles =[currentVehicle];
try{
//需要在本地记住上次选择的车型
localStorage["model"] = currentVehicle.model;
localStorage["modelId"] = currentVehicle.modelId;
}catch(e){

}
}
}catch(e){
//非法流程进入,比如直接刷新当前页面了
self.page.navigate('/service/' + params.service_id + '/brand');
return;
//使用最近一次选过的车
if(lastUnsavedVehicle){
currentVehicle = lastUnsavedVehicle;
vehicles = [currentVehicle];
}else{
//非法流程进入,比如直接刷新当前页面了
self.page.navigate('/service/' + params.service_id + '/brand');
return;
}
}
}
}else{//当前没经过选车流程
if(vehicles && vehicles.length > 0){
//选用户uid在数据库中的第一辆车
currentVehicle = vehicles[0];
params.model_id = currentVehicle.modelId;
}else if(lastUnsavedVehicle){
//使用最近一次选过的车
currentVehicle = lastUnsavedVehicle;
vehicles = [currentVehicle];
params.model_id = currentVehicle.modelId;
}else{
//用户uid在数据库中没车
self.page.navigate('/service/' + params.service_id + '/brand');
Expand Down
20 changes: 18 additions & 2 deletions js/controller/car-home.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,26 @@ define(function(require, exports) {
services.forEach(function(service) {
service.icon = config.STATIC_HOST + '/images/services/' + util.formatNum(service.id, 3) + '.png';
});
var next, lastModelId;
try{
//用户最近选的车
lastModelId = localStorage['modelId'];
}catch(e){

}
if(vehicles && vehicles.length){
//如果用户提交过订单,用最新下单的车辆
next = 'cart';
}else if(lastModelId){
//如果用户之前没提交过订单,但经过了完整的选车流程,使用之前选的车
next = 'model/' + lastModelId + '/cart'
}else{
//选车去吧
next = 'brand';
}
callback(null, {
services: services,
next: vehicles && vehicles.length ? 'cart' : 'brand'
next: next
});
//当前页面是从下单成功页面过来的
if(sessionStorage && sessionStorage['success']){
Expand All @@ -44,7 +60,7 @@ define(function(require, exports) {
window.history.replaceState({referrer:'success',curr:1},'', location.hash);
window.history.pushState({referrer:'success', curr: 2}, '', location.hash);
window.onpopstate = function(event){
//下单成功之后,从success页面后退时,直接退到服务首页
//下单成功之后,从success页面转到服务首页后,设置为不允许后退
if(event.state && event.state.referrer == 'success'){
self.page.navigate(location.hash);
setTimeout(function(){
Expand Down
9 changes: 9 additions & 0 deletions js/controller/car-model.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,16 @@ define(function(require, exports) {
Brand.find(params.brand_id),
Series.find(params.series_id)
);
try{
//需要在本地记住上次选择的车型
localStorage["brand"] = data.brand;
localStorage["brandId"] = params.brand_id;
localStorage["family"] = data.family;
localStorage["familyId"] = params.series_id;
localStorage["prefix"] = data.prefix;
}catch(e){

}
callback(null, data);
var s = new iScroll('j-model-container');

Expand Down
6 changes: 6 additions & 0 deletions js/controller/car-series.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,13 @@ define(function(require, exports) {
},
Brand.find(params.brand_id)
);
try{
//需要在本地记住上次选择的车型
localStorage["brand"] = data.brand;
localStorage["brandId"] = params.brand_id;
}catch(e){

}
callback(null, data);
var s = new iScroll('j-series-container');

Expand Down
5 changes: 3 additions & 2 deletions js/mockAjax.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,12 +157,13 @@ define(function(require, exports) {
});
//用户车辆
mock(/\/users\/\w+\/vehicles/, function(options) {
return [];
return [{
"id": 28473,
"modelId": 12,
"prefix": "",
"suffix": "",
"family": "",
"family": "family",
"brand":"",
"model": "奥迪进口A4 1.8T",
"plate": "京NB110A",
Expand All @@ -172,7 +173,7 @@ define(function(require, exports) {
"modelId": 13,
"prefix": "",
"suffix": "",
"family": "",
"family": "family",
"brand":"",
"model": "奥迪进口A4 2.0",
"plate": "京NB110B",
Expand Down

0 comments on commit 24ee1e2

Please sign in to comment.