Authored by 陈峰

Merge branch 'feature/cart' into 'release/5.4.1'

Feature/cart



See merge request !275
@@ -30,6 +30,7 @@ const index = (req, res) => { @@ -30,6 +30,7 @@ const index = (req, res) => {
30 width750: true, 30 width750: true,
31 pageHeader: headerModel.setNav({ 31 pageHeader: headerModel.setNav({
32 navTitle: '购物车', 32 navTitle: '购物车',
  33 + backUrl: 'javascript:;',
33 navBack: true, 34 navBack: true,
34 suggestSub: { 35 suggestSub: {
35 text: ' ' 36 text: ' '
@@ -21,8 +21,12 @@ let indexObj = { @@ -21,8 +21,12 @@ let indexObj = {
21 init() { 21 init() {
22 let self = this; 22 let self = this;
23 23
  24 + self.setCartReferrer();
24 $('.nav-btn').on('click', () => { 25 $('.nav-btn').on('click', () => {
25 - self.navClick(); 26 + self.navBtnClick();
  27 + });
  28 + $('.nav-back').on('click', () => {
  29 + self.navBackClick();
26 }); 30 });
27 let promise = self.refreshPage(); 31 let promise = self.refreshPage();
28 32
@@ -32,7 +36,16 @@ let indexObj = { @@ -32,7 +36,16 @@ let indexObj = {
32 }); 36 });
33 } 37 }
34 }, 38 },
35 - navClick() { 39 + setCartReferrer() {
  40 + let referrer = document.referrer || window.queryString.referrer || '';
  41 + let localUrl = window.location.href.replace(/\/?\?.*$/, '').replace(/https?:\/\//, '');
  42 + let referrerPath = referrer.replace(/\/?\?.*$/, '').replace(/https?:\/\//, '');
  43 +
  44 + if (referrer && localUrl !== referrerPath && referrer.indexOf('orderEnsure') === -1 && referrer.indexOf('/gift') === -1 && referrer.indexOf('/advanceBuy') === -1 && referrer.indexOf('/product/index/index?promotion_id=') === -1) {
  45 + cookie.set('_cartReferrer', referrer);
  46 + }
  47 + },
  48 + navBtnClick() {
36 let self = this; 49 let self = this;
37 50
38 $('.main-wrap').toggleClass('edit'); 51 $('.main-wrap').toggleClass('edit');
@@ -43,6 +56,16 @@ let indexObj = { @@ -43,6 +56,16 @@ let indexObj = {
43 self.editMode = false; 56 self.editMode = false;
44 } 57 }
45 }, 58 },
  59 + navBackClick() {
  60 + let referrer = cookie.get('_cartReferrer');
  61 +
  62 + if (referrer && referrer !== window.location.href) {
  63 + cookie.remove('_cartReferrer');
  64 + window.location.href = referrer;
  65 + } else {
  66 + window.location.href = '/?go=1';
  67 + }
  68 + },
46 getCartData() { 69 getCartData() {
47 return $.ajax({ 70 return $.ajax({
48 url: '/cart/index/new/data', 71 url: '/cart/index/new/data',
@@ -41,6 +41,7 @@ let cartObj = { @@ -41,6 +41,7 @@ let cartObj = {
41 let self = this; 41 let self = this;
42 let type = $(e.currentTarget).data('type'); 42 let type = $(e.currentTarget).data('type');
43 43
  44 + cookie.remove('_cartType');
44 cookie.set('_cartType', type); 45 cookie.set('_cartType', type);
45 self.handle.refreshPage(''); 46 self.handle.refreshPage('');
46 }, 47 },