Merge branch 'release/6.5.2' into gray
Showing
24 changed files
with
515 additions
and
667 deletions
1 | <div class="feature-page yoho-page" data-id="{{activity_id}}"> | 1 | <div class="feature-page yoho-page" data-id="{{activity_id}}"> |
2 | {{#unless content.visiable}} | 2 | {{#unless content.visiable}} |
3 | - <div class="over"> | ||
4 | - <p>此活动已结束</p> | ||
5 | - <p>稍后自动跳转更多其他精彩活动...</p> | ||
6 | - </div> | ||
7 | - {{else}} | ||
8 | - {{#content.webShare}} | ||
9 | - <input id="shareLink" type="hidden" value="{{url}}"> | ||
10 | - <input id="shareDesc" type="hidden" value="{{content}}"> | ||
11 | - <input id="shareImg" type="hidden" value="{{pic}}"> | ||
12 | - <input id="shareTitle" type="hidden" value="{{title}}"> | ||
13 | - {{/content.webShare}} | ||
14 | - {{#content.floors}} | ||
15 | - {{#isEqualOr type 'sidebar'}} | ||
16 | - {{! 侧悬浮}} | ||
17 | - <div id="sidebar" pageid="{{param.sidebarPageId}}"></div> | ||
18 | - {{/isEqualOr}} | ||
19 | - {{#isEqualOr type '' 'common_floor' 'fix'}} | ||
20 | - {{! 普通楼层 顶悬浮}} | ||
21 | - <div {{#if param.anchorname}}id="{{param.anchorname}}"{{/if}} {{#if param.tabname}}tabname="{{param.tabname}}"{{/if}} {{#if id}}data-id="{{id}}"{{/if}} class="floor {{type}} {{#if hide}}hide{{/if}}" | ||
22 | - style="{{#if param.bgcolor}}background-color:{{param.bgcolor}}{{/if}}"> | ||
23 | - {{#if param.bgimg}} | ||
24 | - {{#isLazyLoad type @index}} | ||
25 | - <img class="lazy" data-original="{{image2 param.bgimg q=85}}"> | 3 | + <div class="over"> |
4 | + <p>此活动已结束</p> | ||
5 | + <p>稍后自动跳转更多其他精彩活动...</p> | ||
6 | + </div> | ||
7 | + {{else}} | ||
8 | + {{#content.webShare}} | ||
9 | + <input id="shareLink" type="hidden" value="{{url}}"> | ||
10 | + <input id="shareDesc" type="hidden" value="{{content}}"> | ||
11 | + <input id="shareImg" type="hidden" value="{{pic}}"> | ||
12 | + <input id="shareTitle" type="hidden" value="{{title}}"> | ||
13 | + {{/content.webShare}} | ||
14 | + {{#content.floors}} | ||
15 | + {{#isEqualOr type 'sidebar'}} | ||
16 | + {{! 侧悬浮}} | ||
17 | + {{#isEqualOr param.linkTarget '1' '3'}} | ||
18 | + <a href="{{param.sidebarPageId}}" class="sidebar-link" target="_blank"> | ||
19 | + <img src="{{param.icon}}"> | ||
20 | + </a> | ||
21 | + {{/isEqualOr}} | ||
22 | + {{#isEqualOr param.linkTarget '2'}} | ||
23 | + <div id="sidebar" pageid="{{param.sidebarPageId}}"> | ||
24 | + <img src="{{param.icon}}"> | ||
25 | + </div> | ||
26 | + {{/isEqualOr}} | ||
27 | + {{/isEqualOr}} | ||
28 | + {{#isEqualOr type '' 'common_floor' 'fix'}} | ||
29 | + {{! 普通楼层 顶悬浮}} | ||
30 | + <div {{#if param.anchorname}} id="{{param.anchorname}}" {{/if}} {{#if param.tabname}} tabname="{{param.tabname}}" {{/if}} | ||
31 | + {{#if id}} data-id="{{id}}" {{/if}} class="floor {{type}} {{#if hide}}hide{{/if}}" style="{{#if param.bgcolor}}background-color:{{param.bgcolor}}{{/if}}"> | ||
32 | + {{#if param.bgimg}} | ||
33 | + {{#isLazyLoad type @index}} | ||
34 | + <img class="lazy" data-original="{{image2 param.bgimg q=85}}"> | ||
26 | {{else}} | 35 | {{else}} |
27 | <img src="{{image2 param.bgimg q=85}}"> | 36 | <img src="{{image2 param.bgimg q=85}}"> |
28 | - {{/isLazyLoad}} | ||
29 | - {{/if}} | ||
30 | - {{#component}} | ||
31 | - {{#isEqualOr type 'link'}} | ||
32 | - {{! 普通组件}} | ||
33 | - <a class="anchor {{#if modalImg}}modalimg{{/if}}" style="{{styleFormat this percent=1}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../this @index}}"></a> | ||
34 | - {{#if modalImg}} | ||
35 | - <div class="modal"> | ||
36 | - <span class="modal-close"></span> | ||
37 | - <img class="modal-img lazy" data-original="{{image2 modalImg q=85}}"> | ||
38 | - </div> | ||
39 | - {{/if}} | ||
40 | - {{/isEqualOr}} | 37 | + {{/isLazyLoad}} |
38 | + {{/if}} | ||
39 | + {{#component}} | ||
40 | + {{#isEqualOr type 'link'}} | ||
41 | + {{! 普通组件}} | ||
42 | + <a class="anchor {{#if modalImg}}modalimg{{/if}}" style="{{styleFormat this percent=1}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" | ||
43 | + {{#isEqualOr linkTarget '3'}} target="_blank" {{/isEqualOr}} fp="{{getAnalysis ../this @index}}"></a> | ||
44 | + {{#if modalImg}} | ||
45 | + <div class="modal"> | ||
46 | + <span class="modal-close"></span> | ||
47 | + <img class="modal-img lazy" data-original="{{image2 modalImg q=85}}"> | ||
48 | + </div> | ||
49 | + {{/if}} | ||
50 | + {{/isEqualOr}} | ||
41 | 51 | ||
42 | - {{#isEqualOr type 'coupon'}} | ||
43 | - {{! 优惠券}} | ||
44 | - <a class="anchor yoho-conpon" style="{{styleFormat this percent=1}}" data-persenal-enable="{{persenal_enable}}" data-token="{{token}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" | ||
45 | - fp="{{getAnalysis ../this @index}}"></a> | ||
46 | - {{/isEqualOr}} | 52 | + {{#isEqualOr type 'coupon'}} |
53 | + {{! 优惠券}} | ||
54 | + <a class="anchor yoho-conpon" style="{{styleFormat this percent=1}}" data-persenal-enable="{{persenal_enable}}" data-token="{{token}}" | ||
55 | + href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../this @index}}"></a> | ||
56 | + {{/isEqualOr}} | ||
47 | 57 | ||
48 | - {{#isEqualOr type 'yohoCoin'}} | ||
49 | - {{! 有货币}} | ||
50 | - <a class="anchor yoho-coin" style="{{styleFormat this percent=1}}" data-token="{{token}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../this @index}}"></a> | ||
51 | - {{/isEqualOr}} | 58 | + {{#isEqualOr type 'yohoCoin'}} |
59 | + {{! 有货币}} | ||
60 | + <a class="anchor yoho-coin" style="{{styleFormat this percent=1}}" data-token="{{token}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" | ||
61 | + fp="{{getAnalysis ../this @index}}"></a> | ||
62 | + {{/isEqualOr}} | ||
52 | 63 | ||
53 | - {{#isEqualOr type 'video'}} | ||
54 | - {{! 视频}} | ||
55 | - <a class="anchor video-bg" style="{{styleFormat this percent=1}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../this @index}}"></a> | ||
56 | - <div class="video-android-close hide"></div> | ||
57 | - <div class="video-android-bg hide"></div> | ||
58 | - <video class="video" controls loop preload="meta" name="media"> | ||
59 | - <source src="{{videoSrc}}"> | ||
60 | - </video> | ||
61 | - {{/isEqualOr}} | 64 | + {{#isEqualOr type 'video'}} |
65 | + {{! 视频}} | ||
66 | + <a class="anchor video-bg" style="{{styleFormat this percent=1}}" href="{{#if url}}{{url}}{{else}}javascript:void(0);{{/if}}" | ||
67 | + fp="{{getAnalysis ../this @index}}"></a> | ||
68 | + <div class="video-android-close hide"></div> | ||
69 | + <div class="video-android-bg hide"></div> | ||
70 | + <video class="video" controls loop preload="meta" name="media"> | ||
71 | + <source src="{{videoSrc}}"> | ||
72 | + </video> | ||
73 | + {{/isEqualOr}} | ||
62 | 74 | ||
63 | - {{#isEqualOr type 'marquee' 'swiper'}} | ||
64 | - {{! 轮播/滑动}} | ||
65 | - <div class="swiper-container {{type}}" data-loop="{{loop}}" {{#if spaceBetween}}data-spacebetween="{{spaceBetween}}"{{/if}} {{#if autoplay}}data-autoplay="{{autoplay}}"{{/if}}> | ||
66 | - <div class="swiper-wrapper"> | ||
67 | - {{#list}} | ||
68 | - <div class="swiper-slide" style="{{styleFormat this percent=1}}"> | ||
69 | - <img src="{{image2 src q=85}}"> | ||
70 | - <a class="anchor" href="{{#if link}}{{link}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../../this @index}}"></a> | ||
71 | - </div> | ||
72 | - {{/list}} | 75 | + {{#isEqualOr type 'marquee' 'swiper'}} |
76 | + {{! 轮播/滑动}} | ||
77 | + <div class="swiper-container {{type}}" data-loop="{{loop}}" {{#if spaceBetween}} data-spacebetween="{{spaceBetween}}" {{/if}} | ||
78 | + {{#if autoplay}} data-autoplay="{{autoplay}}" {{/if}}> | ||
79 | + <div class="swiper-wrapper"> | ||
80 | + {{#list}} | ||
81 | + <div class="swiper-slide" style="{{styleFormat this percent=1}}"> | ||
82 | + <img src="{{image2 src q=85}}"> | ||
83 | + <a class="anchor" href="{{#if link}}{{link}}{{else}}javascript:void(0);{{/if}}" fp="{{getAnalysis ../../this @index}}"></a> | ||
84 | + </div> | ||
85 | + {{/list}} | ||
86 | + </div> | ||
87 | + {{#isEqualOr type 'marquee'}} | ||
88 | + <div class="swiper-pagination"></div> | ||
89 | + {{/isEqualOr}} | ||
73 | </div> | 90 | </div> |
74 | - {{#isEqualOr type 'marquee'}} | ||
75 | - <div class="swiper-pagination"></div> | ||
76 | - {{/isEqualOr}} | ||
77 | - </div> | ||
78 | - {{/isEqualOr}} | 91 | + {{/isEqualOr}} |
79 | 92 | ||
80 | - {{#isEqualOr type 'tab'}} | ||
81 | - {{! tab}} | ||
82 | - <div class="tab-container"> | ||
83 | - {{#repeat count}} | ||
84 | - <a class="anchor {{#if @first}}active{{/if}}" tab={{tabName @index ../tabnames}} style="{{tabStyle @index ../count}}"></a> | ||
85 | - {{/repeat}} | ||
86 | - </div> | ||
87 | - {{/isEqualOr}} | 93 | + {{#isEqualOr type 'tab'}} |
94 | + {{! tab}} | ||
95 | + <div class="tab-container"> | ||
96 | + {{#repeat count}} | ||
97 | + <a class="anchor {{#if @first}}active{{/if}}" tab= {{tabName @index ../tabnames}} style="{{tabStyle @index ../count}}"></a> | ||
98 | + {{/repeat}} | ||
99 | + </div> | ||
100 | + {{/isEqualOr}} | ||
88 | 101 | ||
89 | - {{#isEqualOr type 'shopGroup'}} | ||
90 | - {{!-- 店铺组 --}} | ||
91 | - {{> feature/shop-group}} | ||
92 | - {{/isEqualOr}} | 102 | + {{#isEqualOr type 'shopGroup'}} |
103 | + {{!-- 店铺组 --}} | ||
104 | + {{> feature/shop-group}} | ||
105 | + {{/isEqualOr}} | ||
93 | 106 | ||
94 | - {{#isEqualOr type 'productGroup'}} | ||
95 | - {{! 商品池}} | ||
96 | - {{#isEqualOr newStyle '1'}} | ||
97 | - {{> feature/product-new-style}} | ||
98 | - {{^}} | ||
99 | - {{> feature/product-old-style}} | 107 | + {{#isEqualOr type 'productGroup'}} |
108 | + {{! 商品池}} | ||
109 | + {{#isEqualOr newStyle '1'}} | ||
110 | + {{> feature/product-new-style}} {{^}} {{> feature/product-old-style}} | ||
111 | + {{/isEqualOr}} | ||
100 | {{/isEqualOr}} | 112 | {{/isEqualOr}} |
101 | - {{/isEqualOr}} | ||
102 | - {{/component}} | ||
103 | - </div> | ||
104 | - {{/isEqualOr}} | ||
105 | - {{#isEqualOr type 'bottombar'}} | ||
106 | - <div class="floor common_floor" style="width:100%;height:{{height}}rem"></div> | ||
107 | - {{> feature/bottom-fix}} | ||
108 | - {{/isEqualOr}} | ||
109 | - {{/content.floors}} | 113 | + {{/component}} |
114 | + </div> | ||
115 | + {{/isEqualOr}} | ||
116 | + {{#isEqualOr type 'bottombar'}} | ||
117 | + <div class="floor common_floor" style="width:100%;height:{{height}}rem"></div> | ||
118 | + {{> feature/bottom-fix}} | ||
119 | + {{/isEqualOr}} | ||
120 | + {{/content.floors}} | ||
110 | {{/unless}} | 121 | {{/unless}} |
111 | </div> | 122 | </div> |
@@ -8,13 +8,17 @@ | @@ -8,13 +8,17 @@ | ||
8 | {{/if}} | 8 | {{/if}} |
9 | <div class="show-area" id="bottomShowArea"> | 9 | <div class="show-area" id="bottomShowArea"> |
10 | {{#component}} | 10 | {{#component}} |
11 | - <div class="per-show hide" style="width: {{width}}%;left:{{left}}%;bottom:{{../height}}rem" id="bottomShow{{url}}-{{@index}}"></div> | 11 | + <div class="per-show hide" style="width: {{width}}%;left:{{left}}%;bottom:{{../height}}rem"{{#isEqualOr linkTarget '2'}} id="bottomShow{{url}}-{{@index}}"{{/isEqualOr}}></div> |
12 | {{/component}} | 12 | {{/component}} |
13 | </div> | 13 | </div> |
14 | <div class="click-area" id="bottomFixClickArea" style="height:{{height}}rem"> | 14 | <div class="click-area" id="bottomFixClickArea" style="height:{{height}}rem"> |
15 | {{#component}} | 15 | {{#component}} |
16 | - <div class="per-click" style="width: {{width}}%;height:{{height}}%" data-url="{{url}}" id="bottomClick{{url}}-{{@index}}"> | ||
17 | - </div> | 16 | + {{#isEqualOr linkTarget '1' '3'}} |
17 | + <a href="{{url}}" target="_blank" class="per-click" style="width: {{width}}%;height:{{height}}%"></a> | ||
18 | + {{/isEqualOr}} | ||
19 | + {{#isEqualOr linkTarget '2'}} | ||
20 | + <div class="per-click" style="width: {{width}}%;height:{{height}}%" data-url="{{url}}" id="bottomClick{{url}}-{{@index}}"></div> | ||
21 | + {{/isEqualOr}} | ||
18 | {{/component}} | 22 | {{/component}} |
19 | </div> | 23 | </div> |
20 | </div> | 24 | </div> |
@@ -25,10 +25,10 @@ | @@ -25,10 +25,10 @@ | ||
25 | <a class="second-part"> | 25 | <a class="second-part"> |
26 | <div class="new-brand-div"> | 26 | <div class="new-brand-div"> |
27 | {{#isEqualOr ../showSalePrice '1'}} | 27 | {{#isEqualOr ../showSalePrice '1'}} |
28 | - <div class="new-price" style="{{#if ../salePriceBgColor}}background:{{../salePriceBgColor}};{{/if}}"> | ||
29 | - <span class="sale-price" {{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{saleprice}}</span> | 28 | + <div class="new-price" style="{{#if ../salePriceBgColor}}background:{{../salePriceBgColor}};{{/if}}{{#if ../priceFontColor}}color:{{../priceFontColor}};{{/if}}"> |
29 | + <span class="sale-price"{{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{saleprice}}</span> | ||
30 | {{#if marketprice}} | 30 | {{#if marketprice}} |
31 | - <span class="market-price">¥{{marketprice}}</span> | 31 | + <span class="market-price"{{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{marketprice}}</span> |
32 | {{/if}} | 32 | {{/if}} |
33 | </div> | 33 | </div> |
34 | {{/isEqualOr}} | 34 | {{/isEqualOr}} |
@@ -64,9 +64,9 @@ | @@ -64,9 +64,9 @@ | ||
64 | <a class="second-part"> | 64 | <a class="second-part"> |
65 | <div class="new-brand-div"> | 65 | <div class="new-brand-div"> |
66 | {{#isEqualOr showSalePrice '1'}} | 66 | {{#isEqualOr showSalePrice '1'}} |
67 | - <div class="new-price" style="{{#if salePriceBgColor}}background:{{salePriceBgColor}};{{/if}}"> | ||
68 | - <span class="sale-price" {{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> | ||
69 | - <span class="market-price"></span> | 67 | + <div class="new-price" style="{{#if salePriceBgColor}}background:{{salePriceBgColor}};{{/if}}{{#if ../priceFontColor}}color:{{../priceFontColor}};{{/if}}"> |
68 | + <span class="sale-price"{{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> | ||
69 | + <span class="market-price"{{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> | ||
70 | </div> | 70 | </div> |
71 | {{/isEqualOr}} | 71 | {{/isEqualOr}} |
72 | {{#isEqualOr showVipPrice '1'}} | 72 | {{#isEqualOr showVipPrice '1'}} |
@@ -23,9 +23,9 @@ | @@ -23,9 +23,9 @@ | ||
23 | <div class="product-detail-text"> | 23 | <div class="product-detail-text"> |
24 | {{#isEqualOr ../showSalePrice '1'}} | 24 | {{#isEqualOr ../showSalePrice '1'}} |
25 | <div class="price" style="{{#if ../salePriceBgColor}}background:{{../salePriceBgColor}};{{/if}}"> | 25 | <div class="price" style="{{#if ../salePriceBgColor}}background:{{../salePriceBgColor}};{{/if}}"> |
26 | - <span class="sale-price" {{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{saleprice}}</span> | 26 | + <span class="sale-price"{{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{saleprice}}</span> |
27 | {{#if marketprice}} | 27 | {{#if marketprice}} |
28 | - <span class="market-price">¥{{marketprice}}</span> | 28 | + <span class="market-price"{{#if ../fontColor}} style="color:{{../fontColor}};" {{/if}}>¥{{marketprice}}</span> |
29 | {{/if}} | 29 | {{/if}} |
30 | </div> | 30 | </div> |
31 | {{/isEqualOr}} | 31 | {{/isEqualOr}} |
@@ -65,8 +65,8 @@ | @@ -65,8 +65,8 @@ | ||
65 | <div class="product-detail-text"> | 65 | <div class="product-detail-text"> |
66 | {{#isEqualOr showSalePrice '1'}} | 66 | {{#isEqualOr showSalePrice '1'}} |
67 | <div class="price" style="{{#if salePriceBgColor}}background:{{salePriceBgColor}};{{/if}}"> | 67 | <div class="price" style="{{#if salePriceBgColor}}background:{{salePriceBgColor}};{{/if}}"> |
68 | - <span class="sale-price" {{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> | ||
69 | - <span class="market-price"></span> | 68 | + <span class="sale-price"{{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> |
69 | + <span class="market-price"{{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> | ||
70 | </div> | 70 | </div> |
71 | {{/isEqualOr}} | 71 | {{/isEqualOr}} |
72 | {{#isEqualOr showVipPrice '1'}} | 72 | {{#isEqualOr showVipPrice '1'}} |
@@ -304,7 +304,7 @@ class cartModel extends global.yoho.BaseModel { | @@ -304,7 +304,7 @@ class cartModel extends global.yoho.BaseModel { | ||
304 | orderCode: orderCode, | 304 | orderCode: orderCode, |
305 | sessionKey: sessionKey | 305 | sessionKey: sessionKey |
306 | }).then(result => { | 306 | }).then(result => { |
307 | - return paymentProcess.transformJit(_.get(result, 'data.package_list', [])); | 307 | + return paymentProcess.transformJit(_.get(result, 'data.package_info.package_list', [])); |
308 | }); | 308 | }); |
309 | } | 309 | } |
310 | 310 |
@@ -53,6 +53,7 @@ exports.orderDetailData = (req, res, next) => { | @@ -53,6 +53,7 @@ exports.orderDetailData = (req, res, next) => { | ||
53 | pageFooter: true, | 53 | pageFooter: true, |
54 | orderDetail: orderDetail, | 54 | orderDetail: orderDetail, |
55 | refundReason: refundReason, | 55 | refundReason: refundReason, |
56 | + width750: true, | ||
56 | localCss: true, | 57 | localCss: true, |
57 | }); | 58 | }); |
58 | }).catch(next); | 59 | }).catch(next); |
@@ -3,7 +3,6 @@ | @@ -3,7 +3,6 @@ | ||
3 | const _ = require('lodash'); | 3 | const _ = require('lodash'); |
4 | const moment = require('moment'); | 4 | const moment = require('moment'); |
5 | const camelCase = global.yoho.camelCase; | 5 | const camelCase = global.yoho.camelCase; |
6 | -const family = global.yoho.FamilyAPI; | ||
7 | const service = global.yoho.ServiceAPI; | 6 | const service = global.yoho.ServiceAPI; |
8 | const resourcesProcess = require(`${global.utils}/resources-process`); | 7 | const resourcesProcess = require(`${global.utils}/resources-process`); |
9 | const helpers = global.yoho.helpers; | 8 | const helpers = global.yoho.helpers; |
@@ -19,10 +18,18 @@ class familyModel extends global.yoho.BaseModel { | @@ -19,10 +18,18 @@ class familyModel extends global.yoho.BaseModel { | ||
19 | */ | 18 | */ |
20 | _userData(uid) { | 19 | _userData(uid) { |
21 | if (uid) { | 20 | if (uid) { |
22 | - return family.get('user/getUserInfo.json', { | ||
23 | - uid: uid | ||
24 | - }, { | ||
25 | - code: 200 | 21 | + let options = { |
22 | + data: { | ||
23 | + method: 'app.family.userinfo', | ||
24 | + uid: uid | ||
25 | + }, | ||
26 | + param: { | ||
27 | + code: 200 | ||
28 | + } | ||
29 | + }; | ||
30 | + | ||
31 | + return this.get(options).then(result => { | ||
32 | + return result; | ||
26 | }); | 33 | }); |
27 | } else { | 34 | } else { |
28 | return Promise.resolve({}); | 35 | return Promise.resolve({}); |
@@ -34,10 +41,18 @@ class familyModel extends global.yoho.BaseModel { | @@ -34,10 +41,18 @@ class familyModel extends global.yoho.BaseModel { | ||
34 | */ | 41 | */ |
35 | _getCode(uid) { | 42 | _getCode(uid) { |
36 | if (uid) { | 43 | if (uid) { |
37 | - return family.get('user/getInvitecode', { | ||
38 | - uid: uid | ||
39 | - }, { | ||
40 | - code: 200 | 44 | + let options = { |
45 | + data: { | ||
46 | + method: 'app.family.invitecode', | ||
47 | + uid: uid | ||
48 | + }, | ||
49 | + param: { | ||
50 | + code: 200 | ||
51 | + } | ||
52 | + }; | ||
53 | + | ||
54 | + return this.get(options).then(result => { | ||
55 | + return result; | ||
41 | }); | 56 | }); |
42 | } else { | 57 | } else { |
43 | return Promise.resolve({}); | 58 | return Promise.resolve({}); |
@@ -102,11 +117,17 @@ class familyModel extends global.yoho.BaseModel { | @@ -102,11 +117,17 @@ class familyModel extends global.yoho.BaseModel { | ||
102 | * 获取APP列表 | 117 | * 获取APP列表 |
103 | */ | 118 | */ |
104 | _getAppList(uid) { | 119 | _getAppList(uid) { |
105 | - return family.get('vip/getUserVipInfo', { | ||
106 | - uid: uid | ||
107 | - }, { | ||
108 | - code: 200 | ||
109 | - }).then((result => { | 120 | + let options = { |
121 | + data: { | ||
122 | + method: 'app.family.uservip', | ||
123 | + uid: uid | ||
124 | + }, | ||
125 | + param: { | ||
126 | + code: 200 | ||
127 | + } | ||
128 | + }; | ||
129 | + | ||
130 | + return this.get(options).then((result => { | ||
110 | if (result && result.data && result.code === 200) { | 131 | if (result && result.data && result.code === 200) { |
111 | let loginList = []; | 132 | let loginList = []; |
112 | let noLoginList = []; | 133 | let noLoginList = []; |
@@ -143,11 +164,17 @@ class familyModel extends global.yoho.BaseModel { | @@ -143,11 +164,17 @@ class familyModel extends global.yoho.BaseModel { | ||
143 | *查询各个体系成长等级信息及等级特权 | 164 | *查询各个体系成长等级信息及等级特权 |
144 | */ | 165 | */ |
145 | _getVipInfo(udid) { | 166 | _getVipInfo(udid) { |
146 | - return family.get('vip/getVipInfo.json', { | ||
147 | - udid: udid | ||
148 | - }, { | ||
149 | - code: 200 | ||
150 | - }).then((result) => { | 167 | + let options = { |
168 | + data: { | ||
169 | + method: 'app.family.vipinfo', | ||
170 | + udid: udid | ||
171 | + }, | ||
172 | + param: { | ||
173 | + code: 200 | ||
174 | + } | ||
175 | + }; | ||
176 | + | ||
177 | + return this.get(options).then((result) => { | ||
151 | 178 | ||
152 | if (_.get(result, 'data.mars.vipLevelList', []).length > 0) { | 179 | if (_.get(result, 'data.mars.vipLevelList', []).length > 0) { |
153 | _.forEach(_.get(result, 'data.mars.vipLevelList', []), function(val) { | 180 | _.forEach(_.get(result, 'data.mars.vipLevelList', []), function(val) { |
@@ -163,12 +190,18 @@ class familyModel extends global.yoho.BaseModel { | @@ -163,12 +190,18 @@ class familyModel extends global.yoho.BaseModel { | ||
163 | *查询当前用户各个体系成长等级信息及等级特权 | 190 | *查询当前用户各个体系成长等级信息及等级特权 |
164 | */ | 191 | */ |
165 | _getUserVipInfo(udid, uid) { | 192 | _getUserVipInfo(udid, uid) { |
166 | - return family.get('vip/getUserVipInfo.json', { | ||
167 | - udid: udid, | ||
168 | - uid: uid | ||
169 | - }, { | ||
170 | - code: 200 | ||
171 | - }).then((result) => { | 193 | + let options = { |
194 | + data: { | ||
195 | + method: 'app.family.uservip', | ||
196 | + udid: udid, | ||
197 | + uid: uid | ||
198 | + }, | ||
199 | + param: { | ||
200 | + code: 200 | ||
201 | + } | ||
202 | + }; | ||
203 | + | ||
204 | + return this.get(options).then((result) => { | ||
172 | if (result && result.data) { | 205 | if (result && result.data) { |
173 | return result.data; | 206 | return result.data; |
174 | } else { | 207 | } else { |
@@ -408,11 +441,17 @@ class familyModel extends global.yoho.BaseModel { | @@ -408,11 +441,17 @@ class familyModel extends global.yoho.BaseModel { | ||
408 | * 积分乐园数据 | 441 | * 积分乐园数据 |
409 | */ | 442 | */ |
410 | integralCharts(uid) { | 443 | integralCharts(uid) { |
411 | - return family.get('user/getUserCoin', { | ||
412 | - uid: uid | ||
413 | - }, { | ||
414 | - code: 200 | ||
415 | - }).then((result) => { | 444 | + let options = { |
445 | + data: { | ||
446 | + method: 'app.family.usercoin', | ||
447 | + uid: uid | ||
448 | + }, | ||
449 | + param: { | ||
450 | + code: 200 | ||
451 | + } | ||
452 | + }; | ||
453 | + | ||
454 | + return this.get(options).then((result) => { | ||
416 | let chartsData = {}; | 455 | let chartsData = {}; |
417 | let list = []; | 456 | let list = []; |
418 | let colorList = []; | 457 | let colorList = []; |
@@ -509,17 +548,23 @@ class familyModel extends global.yoho.BaseModel { | @@ -509,17 +548,23 @@ class familyModel extends global.yoho.BaseModel { | ||
509 | } | 548 | } |
510 | 549 | ||
511 | getCoinData(params) { | 550 | getCoinData(params) { |
512 | - return family.get('user/getYohoCoinLog', { | ||
513 | - uid: params.uid, | ||
514 | - source: params.source || -1, | ||
515 | - queryType: params.queryType || 0, | ||
516 | - beginTime: params.beginTime ? this.formatDay(parseInt(params.beginTime, 10)) : '', | ||
517 | - endTime: params.endTime ? this.formatDay(parseInt(params.endTime, 10)) : '', | ||
518 | - page: params.page || 1, | ||
519 | - limit: params.limit || 10 | ||
520 | - }, { | ||
521 | - code: 200 | ||
522 | - }).then(result => { | 551 | + let options = { |
552 | + data: { | ||
553 | + method: 'app.family.coinlog', | ||
554 | + uid: params.uid, | ||
555 | + source: params.source || -1, | ||
556 | + queryType: params.queryType || 0, | ||
557 | + beginTime: params.beginTime ? this.formatDay(parseInt(params.beginTime, 10)) : '', | ||
558 | + endTime: params.endTime ? this.formatDay(parseInt(params.endTime, 10)) : '', | ||
559 | + page: params.page || 1, | ||
560 | + limit: params.limit || 10 | ||
561 | + }, | ||
562 | + param: { | ||
563 | + code: 200 | ||
564 | + } | ||
565 | + }; | ||
566 | + | ||
567 | + return this.get(options).then(result => { | ||
523 | let resu = { | 568 | let resu = { |
524 | coinList: [] | 569 | coinList: [] |
525 | }; | 570 | }; |
@@ -543,11 +588,15 @@ class familyModel extends global.yoho.BaseModel { | @@ -543,11 +588,15 @@ class familyModel extends global.yoho.BaseModel { | ||
543 | * 设置我的潮流口令 | 588 | * 设置我的潮流口令 |
544 | */ | 589 | */ |
545 | setTrendWord(uid, trendWord) { | 590 | setTrendWord(uid, trendWord) { |
546 | - return family.get('user/updateInviteCode', { | ||
547 | - uid: uid, | ||
548 | - trendWord: trendWord | ||
549 | - }).then((result) => { | 591 | + let options = { |
592 | + data: { | ||
593 | + method: 'app.family.updateinvitecode', | ||
594 | + uid: uid, | ||
595 | + trendWord: trendWord | ||
596 | + } | ||
597 | + }; | ||
550 | 598 | ||
599 | + return this.get(options).then((result) => { | ||
551 | return result; | 600 | return result; |
552 | }); | 601 | }); |
553 | } | 602 | } |
@@ -636,28 +685,42 @@ class familyModel extends global.yoho.BaseModel { | @@ -636,28 +685,42 @@ class familyModel extends global.yoho.BaseModel { | ||
636 | } | 685 | } |
637 | 686 | ||
638 | modify(params) { | 687 | modify(params) { |
639 | - return family.get('user/updateUserInfo.json', { | ||
640 | - uid: params.uid, | ||
641 | - nickName: params.nickName, | ||
642 | - gender: params.gender, | ||
643 | - birthday: params.birthday, | ||
644 | - height: params.height, | ||
645 | - weight: params.weight, | ||
646 | - province: params.province, | ||
647 | - city: params.city | ||
648 | - }).then(result => { | 688 | + let options = { |
689 | + data: { | ||
690 | + method: 'app.family.updateuser', | ||
691 | + uid: params.uid, | ||
692 | + nickName: params.nickName, | ||
693 | + gender: params.gender, | ||
694 | + birthday: params.birthday, | ||
695 | + height: params.height, | ||
696 | + weight: params.weight, | ||
697 | + province: params.province, | ||
698 | + city: params.city | ||
699 | + }, | ||
700 | + param: { | ||
701 | + code: 200 | ||
702 | + } | ||
703 | + }; | ||
704 | + | ||
705 | + return this.get(options).then(result => { | ||
649 | return result; | 706 | return result; |
650 | }); | 707 | }); |
651 | } | 708 | } |
652 | 709 | ||
653 | getCity(params) { | 710 | getCity(params) { |
654 | - return family.get('area/provinces', { | ||
655 | - uid: params.uid, | ||
656 | - id: params.id | ||
657 | - }, { | ||
658 | - cache: true, | ||
659 | - code: 200 | ||
660 | - }).then(result => { | 711 | + let options = { |
712 | + data: { | ||
713 | + method: 'app.family.province', | ||
714 | + uid: params.uid, | ||
715 | + id: params.id | ||
716 | + }, | ||
717 | + param: { | ||
718 | + cache: true, | ||
719 | + code: 200 | ||
720 | + } | ||
721 | + }; | ||
722 | + | ||
723 | + return this.get(options).then(result => { | ||
661 | let resu = { | 724 | let resu = { |
662 | cityList: [] | 725 | cityList: [] |
663 | }; | 726 | }; |
@@ -678,15 +741,21 @@ class familyModel extends global.yoho.BaseModel { | @@ -678,15 +741,21 @@ class familyModel extends global.yoho.BaseModel { | ||
678 | } | 741 | } |
679 | 742 | ||
680 | getList(params) { | 743 | getList(params) { |
681 | - return family.get('shop/getShopProducts.json', { | ||
682 | - uid: params.uid, | ||
683 | - type: params.type, | ||
684 | - page: params.page || 1, | ||
685 | - limit: params.limit || 20, | ||
686 | - city_id: params.cityId | ||
687 | - }, { | ||
688 | - code: 200 | ||
689 | - }).then(result => { | 744 | + let options = { |
745 | + data: { | ||
746 | + method: 'app.family.shopproducts', | ||
747 | + uid: params.uid, | ||
748 | + type: params.type, | ||
749 | + page: params.page || 1, | ||
750 | + limit: params.limit || 20, | ||
751 | + city_id: params.cityId | ||
752 | + }, | ||
753 | + param: { | ||
754 | + code: 200 | ||
755 | + } | ||
756 | + }; | ||
757 | + | ||
758 | + return this.get(options).then(result => { | ||
690 | let resu = { | 759 | let resu = { |
691 | list: [] | 760 | list: [] |
692 | }; | 761 | }; |
@@ -734,11 +803,17 @@ class familyModel extends global.yoho.BaseModel { | @@ -734,11 +803,17 @@ class familyModel extends global.yoho.BaseModel { | ||
734 | } | 803 | } |
735 | 804 | ||
736 | coinMall(params) { | 805 | coinMall(params) { |
737 | - return family.get('user/getTotalCoin', { | ||
738 | - uid: params.uid | ||
739 | - }, { | ||
740 | - code: 200 | ||
741 | - }).then(result => { | 806 | + let options = { |
807 | + data: { | ||
808 | + method: 'app.family.totalcoin', | ||
809 | + uid: params.uid | ||
810 | + }, | ||
811 | + param: { | ||
812 | + code: 200 | ||
813 | + } | ||
814 | + }; | ||
815 | + | ||
816 | + return this.get(options).then(result => { | ||
742 | if (result && result.code === 200) { | 817 | if (result && result.code === 200) { |
743 | return result.data; | 818 | return result.data; |
744 | } else { | 819 | } else { |
@@ -35,13 +35,9 @@ module.exports = class extends global.yoho.BaseModel { | @@ -35,13 +35,9 @@ module.exports = class extends global.yoho.BaseModel { | ||
35 | _assignExpressInfo(showLogistics, order) { | 35 | _assignExpressInfo(showLogistics, order) { |
36 | let data = {}; | 36 | let data = {}; |
37 | 37 | ||
38 | - if (showLogistics && order.expressCompany && order.expressCompany.caption) { | ||
39 | - data = { | ||
40 | - logisticsUrl: helpers.urlFormat('/home/logistic', {order_code: order.orderCode}), | ||
41 | - logisticsCompany: order.expressCompany.caption, | ||
42 | - logisticsNum: order.expressNumber || '' | ||
43 | - }; | ||
44 | - } | 38 | + data = { |
39 | + logisticsUrl: helpers.urlFormat('/home/logistic', {order_code: order.orderCode}) | ||
40 | + }; | ||
45 | 41 | ||
46 | return data; | 42 | return data; |
47 | } | 43 | } |
@@ -57,9 +53,32 @@ module.exports = class extends global.yoho.BaseModel { | @@ -57,9 +53,32 @@ module.exports = class extends global.yoho.BaseModel { | ||
57 | return {}; | 53 | return {}; |
58 | } | 54 | } |
59 | 55 | ||
60 | - let attribute = _.parseInt(order.attribute); | 56 | + let attribute = _.parseInt(_.get(order, 'orderExtInfo.attribute')); |
57 | + | ||
58 | + order = _.assign(order, { | ||
59 | + orderCode: _.get(order, 'orderExtInfo.orderCode') | ||
60 | + }); | ||
61 | 61 | ||
62 | if (attribute === 9 || attribute === 11) { | 62 | if (attribute === 9 || attribute === 11) { |
63 | + // 定金预售拼接提示语 | ||
64 | + let countTime = 0; | ||
65 | + let payAmount = 0; | ||
66 | + | ||
67 | + if (_.get(order, 'orderDetailInfo.ext.payLefttime') && | ||
68 | + parseInt(order.orderDetailInfo.ext.payLefttime, 10)) { | ||
69 | + countTime = order.orderDetailInfo.ext.payLefttime * 1000; | ||
70 | + } | ||
71 | + | ||
72 | + if (_.get(order, 'orderDetailInfo.key') === '203') { // 待支付尾款 | ||
73 | + payAmount = _.get(order, 'orderExtInfo.orderTailPayAmount'); | ||
74 | + order.orderDetailInfo.ext.desc = `你的商品已到货,您还需支付尾款<span>¥${payAmount}</span>, | ||
75 | + 请在<i class="hours new-hours hide">${countTime}</i>内完成支付。超时订单自动取消`; | ||
76 | + } else if (_.get(order, 'orderDetailInfo.key') === '201') { // 待支付定金 | ||
77 | + payAmount = _.get(order, 'orderExtInfo.orderDepositAmount'); | ||
78 | + order.orderDetailInfo.ext.desc = `您需支付定金<span>¥${payAmount}</span>, | ||
79 | + 请在<i class="hours new-hours hide">${countTime}</i>内完成支付。超时订单自动取消`; | ||
80 | + } | ||
81 | + | ||
63 | /* 预售商品,不能进行任何操作 */ | 82 | /* 预售商品,不能进行任何操作 */ |
64 | orderBtn.push({ | 83 | orderBtn.push({ |
65 | isAdvance: true | 84 | isAdvance: true |
@@ -68,9 +87,9 @@ module.exports = class extends global.yoho.BaseModel { | @@ -68,9 +87,9 @@ module.exports = class extends global.yoho.BaseModel { | ||
68 | } | 87 | } |
69 | 88 | ||
70 | /* 倒计时时间 订单详情页倒计时不在同一级*/ | 89 | /* 倒计时时间 订单详情页倒计时不在同一级*/ |
71 | - if (order.counterFlag === 'Y' && parseInt(order.payLefttime, 10)) { | 90 | + if (_.get(order, 'orderDetailInfo.ext.payLefttime') && parseInt(order.orderDetailInfo.ext.payLefttime, 10)) { |
72 | orderBtn.push({ | 91 | orderBtn.push({ |
73 | - leftTimeTop: order.payLefttime * 1000 | 92 | + leftTimeTop: order.orderDetailInfo.ext.payLefttime * 1000 |
74 | }); | 93 | }); |
75 | } | 94 | } |
76 | 95 | ||
@@ -87,9 +106,9 @@ module.exports = class extends global.yoho.BaseModel { | @@ -87,9 +106,9 @@ module.exports = class extends global.yoho.BaseModel { | ||
87 | link: helpers.urlFormat('/home/orders/addressModify', { | 106 | link: helpers.urlFormat('/home/orders/addressModify', { |
88 | relation: order.relateOrderCode === 'Y', // 判断是否有关联订单 | 107 | relation: order.relateOrderCode === 'Y', // 判断是否有关联订单 |
89 | orderCode: order.orderCode, | 108 | orderCode: order.orderCode, |
90 | - areaCode: _.get(order, 'deliveryAddress.areaCode', ''), | ||
91 | - provinceAreaCode: order.isSupportChangeProvince !== 'Y' && | ||
92 | - _.get(order, 'deliveryAddress.provinceAreaCode', '') || ''// 如果不允许修改省 | 109 | + areaCode: _.get(order, 'deliveryInfo.deliveryAddress.areaCode', ''), |
110 | + provinceAreaCode: _.get(order, 'deliveryInfo.isSupportChangeProvince') !== 'Y' && | ||
111 | + _.get(order, 'deliveryInfo.deliveryAddress.provinceAreaCode', '') || ''// 如果不允许修改省 | ||
93 | }) | 112 | }) |
94 | }); | 113 | }); |
95 | break; | 114 | break; |
@@ -166,18 +185,31 @@ module.exports = class extends global.yoho.BaseModel { | @@ -166,18 +185,31 @@ module.exports = class extends global.yoho.BaseModel { | ||
166 | let offlinestore; // 线下店订单 | 185 | let offlinestore; // 线下店订单 |
167 | let deliveryOffline; // 门店取货 | 186 | let deliveryOffline; // 门店取货 |
168 | 187 | ||
169 | - orderDetail = _.assign(orderDetail, status); | 188 | + orderDetail = _.assign(orderDetail, status, {orderCode: orderCode}); |
170 | 189 | ||
171 | - if (parseInt(orderDetail.attribute, 10) === 3) { | 190 | + if (parseInt(_.get(orderDetail, 'orderExtInfo.attribute'), 10) === 3) { |
172 | orderDetail = _.assign(orderDetail, { | 191 | orderDetail = _.assign(orderDetail, { |
173 | isVirtual: true, | 192 | isVirtual: true, |
174 | - mobile: result.data.mobile | 193 | + mobile: _.get(orderDetail, 'deliveryInfo.mobile') |
175 | }); | 194 | }); |
176 | } | 195 | } |
177 | 196 | ||
178 | - orderDetail = _.assign(orderDetail, { | ||
179 | - addressAll: orderDetail.area + orderDetail.address | ||
180 | - }); | 197 | + if (orderDetail.deliveryInfo) { |
198 | + orderDetail = _.assign(orderDetail, { | ||
199 | + addressAll: orderDetail.deliveryInfo.area + orderDetail.deliveryInfo.address | ||
200 | + }); | ||
201 | + } | ||
202 | + | ||
203 | + if (orderDetail.links) { | ||
204 | + _.forEach(orderDetail.links, (val) => { | ||
205 | + if (val === 'getExpress') { | ||
206 | + orderDetail = _.assign(orderDetail, { | ||
207 | + expressUrl: helpers.urlFormat('/home/logistic', {order_code: orderCode}) | ||
208 | + }); | ||
209 | + return; | ||
210 | + } | ||
211 | + }); | ||
212 | + } | ||
181 | 213 | ||
182 | _.forEach(orderDetail.orderGoods, function(data) { | 214 | _.forEach(orderDetail.orderGoods, function(data) { |
183 | let obj = {}; | 215 | let obj = {}; |
@@ -244,9 +276,12 @@ module.exports = class extends global.yoho.BaseModel { | @@ -244,9 +276,12 @@ module.exports = class extends global.yoho.BaseModel { | ||
244 | orderDetail.goods = goods; | 276 | orderDetail.goods = goods; |
245 | 277 | ||
246 | // 为支付的拆单配送信息 | 278 | // 为支付的拆单配送信息 |
247 | - if (orderDetail.isMultiPackage === 'Y') { | 279 | + if (orderDetail.packageInfo) { |
248 | orderDetail = _.assign(orderDetail, { | 280 | orderDetail = _.assign(orderDetail, { |
249 | - jitDetailUrl: helpers.urlFormat('/cart/index/new/jitDetail', {orderCode: orderCode}) | 281 | + jitDetailUrl: helpers.urlFormat('/cart/index/new/jitDetail', { |
282 | + orderCode: orderCode | ||
283 | + }), | ||
284 | + packageTitle: _.get(orderDetail, 'packageInfo.packageTitle') | ||
250 | }); | 285 | }); |
251 | } | 286 | } |
252 | 287 | ||
@@ -333,8 +368,8 @@ module.exports = class extends global.yoho.BaseModel { | @@ -333,8 +368,8 @@ module.exports = class extends global.yoho.BaseModel { | ||
333 | method: 'app.SpaceOrders.close', | 368 | method: 'app.SpaceOrders.close', |
334 | uid: uid, | 369 | uid: uid, |
335 | order_code: orderCode, | 370 | order_code: orderCode, |
336 | - reasonId: reasonId, | ||
337 | - reasons: reason, | 371 | + reason_id: reasonId, |
372 | + reason: reason, | ||
338 | gender: gender, | 373 | gender: gender, |
339 | yh_channel: channel | 374 | yh_channel: channel |
340 | } | 375 | } |
@@ -3,6 +3,21 @@ | @@ -3,6 +3,21 @@ | ||
3 | 3 | ||
4 | {{> fraud}} | 4 | {{> fraud}} |
5 | 5 | ||
6 | + <a class="base-status clearfix" {{#if expressUrl}}href="{{expressUrl}}"{{/if}}> | ||
7 | + {{#if orderDetailInfo}} | ||
8 | + {{#orderDetailInfo}} | ||
9 | + <div class="status-c"> | ||
10 | + <div class="status-title">{{value}}</div> | ||
11 | + <div class="status-body">{{{ext.desc}}}</div> | ||
12 | + <div class="status-time">{{ext.pay_expire}}</div> | ||
13 | + </div> | ||
14 | + {{#if ../expressUrl}} | ||
15 | + <span class="iconfont"></span> | ||
16 | + {{/if}} | ||
17 | + {{/orderDetailInfo}} | ||
18 | + {{/if}} | ||
19 | + </a> | ||
20 | + | ||
6 | <div id="order-detail" data-id="{{orderCode}}"> | 21 | <div id="order-detail" data-id="{{orderCode}}"> |
7 | {{#unless deliveryOffline}} | 22 | {{#unless deliveryOffline}} |
8 | {{#if isVirtual}} | 23 | {{#if isVirtual}} |
@@ -17,8 +32,8 @@ | @@ -17,8 +32,8 @@ | ||
17 | <span class="iconfont"></span> | 32 | <span class="iconfont"></span> |
18 | <div class="beside-icon"> | 33 | <div class="beside-icon"> |
19 | <p class="name-phone"> | 34 | <p class="name-phone"> |
20 | - {{userName}} | ||
21 | - <span>{{mobile}}</span> | 35 | + {{deliveryInfo.userName}} |
36 | + <span>{{deliveryInfo.mobile}}</span> | ||
22 | </p> | 37 | </p> |
23 | <p class="address"> | 38 | <p class="address"> |
24 | {{addressAll}} | 39 | {{addressAll}} |
@@ -26,52 +41,7 @@ | @@ -26,52 +41,7 @@ | ||
26 | </div> | 41 | </div> |
27 | </section> | 42 | </section> |
28 | {{/if}} | 43 | {{/if}} |
29 | - <div class="range"></div> | ||
30 | {{/unless}} | 44 | {{/unless}} |
31 | - <section class="order-status block"> | ||
32 | - <div class="status sub"> | ||
33 | - <span class="iconfont"></span> | ||
34 | - | ||
35 | - <p class="beside-icon sub-content"> | ||
36 | - <span class="sub-title">订单编号:{{orderCode}}</span> | ||
37 | - <span >订单状态:{{statusStr}}</span> | ||
38 | - <span>下单时间:<b class="createTime">{{createTime}}</b></span> | ||
39 | - {{#if paymentName}} | ||
40 | - <span>支付方式:{{paymentName}}</span> | ||
41 | - {{/if}} | ||
42 | - {{#if offlinestore}} | ||
43 | - <span>下单门店: {{offlinestore}}</span> | ||
44 | - {{/if}} | ||
45 | - </p> | ||
46 | - <a href="{{serviceUrl}}" target="_blank" class="iconfont icon-right"></a> | ||
47 | - </div> | ||
48 | - {{# orderBtn}} | ||
49 | - {{#if getExpress}} | ||
50 | - <a class="logistics sub" href="{{logisticsUrl}}"> | ||
51 | - <span class="iconfont"></span> | ||
52 | - <p class="beside-icon sub-content"> | ||
53 | - <span class="sub-title">物流信息</span> | ||
54 | - <span>物流公司:{{logisticsCompany}}</span> | ||
55 | - {{#if logisticsNum}} | ||
56 | - <span>快递单号:{{logisticsNum}}</span> | ||
57 | - {{/if}} | ||
58 | - </p> | ||
59 | - <span class="iconfont icon-right"></span> | ||
60 | - </a> | ||
61 | - {{/if}} | ||
62 | - {{/orderBtn}} | ||
63 | - | ||
64 | - {{#if deliveryOffline}} | ||
65 | - <div class="offline-delivery"> | ||
66 | - <span class="delivery-img"></span> | ||
67 | - <p class="beside-left"> | ||
68 | - | ||
69 | - <span class="delivery-title">配送信息</span> | ||
70 | - <span class="delivery-content">配送方式:门店取货</span> | ||
71 | - </p> | ||
72 | - </div> | ||
73 | - {{/if}} | ||
74 | - </section> | ||
75 | 45 | ||
76 | <section class="goods block"> | 46 | <section class="goods block"> |
77 | {{> jit-more}} | 47 | {{> jit-more}} |
@@ -81,17 +51,23 @@ | @@ -81,17 +51,23 @@ | ||
81 | {{/ goods}} | 51 | {{/ goods}} |
82 | </section> | 52 | </section> |
83 | 53 | ||
54 | + {{#orderAmountInfo}} | ||
84 | <ul class="cost block"> | 55 | <ul class="cost block"> |
85 | {{#each promotionFormulas}} | 56 | {{#each promotionFormulas}} |
86 | <li> {{promotion}}: | 57 | <li> {{promotion}}: |
87 | <span>{{promotionAmount}}</span> | 58 | <span>{{promotionAmount}}</span> |
88 | </li> | 59 | </li> |
89 | {{/each}} | 60 | {{/each}} |
61 | + </ul> | ||
62 | + <ul class="real-amount"> | ||
63 | + {{#realAmount}} | ||
90 | <li> | 64 | <li> |
91 | - {{#if isPayonline}}实付金额{{else}}应付金额{{/if}} | ||
92 | - <span>{{amount}}</span> | 65 | + {{promotion}}: |
66 | + <span>{{promotionAmount}}</span> | ||
93 | </li> | 67 | </li> |
68 | + {{/realAmount}} | ||
94 | </ul> | 69 | </ul> |
70 | + {{/orderAmountInfo}} | ||
95 | {{#if yohoGiveCoin}} | 71 | {{#if yohoGiveCoin}} |
96 | <p class="dollar"> | 72 | <p class="dollar"> |
97 | <span class="bg-dollar"></span> | 73 | <span class="bg-dollar"></span> |
@@ -140,6 +116,16 @@ | @@ -140,6 +116,16 @@ | ||
140 | {{!-- 申请售后退换货组件 --}} | 116 | {{!-- 申请售后退换货组件 --}} |
141 | {{> order-detail/refund-change-mask}} | 117 | {{> order-detail/refund-change-mask}} |
142 | 118 | ||
119 | + {{#if orderBasicInfo}} | ||
120 | + | ||
121 | + <div class="info-table"> | ||
122 | + {{#orderBasicInfo}} | ||
123 | + <div class="table-item">{{key}}:{{value}}</div> | ||
124 | + {{/orderBasicInfo}} | ||
125 | + <a href="{{serviceUrl}}" target="_blank" class="iconfont"></a> | ||
126 | + </div> | ||
127 | + {{/if}} | ||
128 | + | ||
143 | {{/ orderDetail}} | 129 | {{/ orderDetail}} |
144 | 130 | ||
145 | {{!-- 申请退款原因 --}} | 131 | {{!-- 申请退款原因 --}} |
@@ -13,36 +13,31 @@ const isTest = process.env.NODE_ENV === 'test'; | @@ -13,36 +13,31 @@ const isTest = process.env.NODE_ENV === 'test'; | ||
13 | 13 | ||
14 | const domains = { | 14 | const domains = { |
15 | 15 | ||
16 | - api: 'http://api.yoho.cn/', | ||
17 | - service: 'http://service.yoho.cn/', | ||
18 | - liveApi: 'http://testapi.live.yohops.com:9999/', | ||
19 | - singleApi: 'http://api-test3.yohops.com:9999/', | 16 | + // api: 'http://api.yoho.cn/', |
17 | + // service: 'http://service.yoho.cn/', | ||
18 | + // liveApi: 'http://testapi.live.yohops.com:9999/', | ||
20 | 19 | ||
21 | // gray | 20 | // gray |
22 | - // singleApi: 'http://single.gray.yohops.com/', | ||
23 | // api: 'http://apigray.yoho.cn/', | 21 | // api: 'http://apigray.yoho.cn/', |
24 | // service: 'http://apigray.yoho.cn/', | 22 | // service: 'http://apigray.yoho.cn/', |
25 | // platformApi: 'http://172.16.6.210:8088/', | 23 | // platformApi: 'http://172.16.6.210:8088/', |
26 | 24 | ||
27 | 25 | ||
28 | - // api: 'http://api-test3.yohops.com:9999/', | ||
29 | - // service: 'http://service-test3.yohops.com:9999/', | ||
30 | - // liveApi: 'http://testapi.live.yohops.com:9999/', | ||
31 | - // singleApi: 'http://api-test3.yohops.com:9999/', | ||
32 | - | 26 | + api: 'http://api-test3.yohops.com:9999/', |
27 | + service: 'http://service-test3.yohops.com:9999/', | ||
28 | + liveApi: 'http://testapi.live.yohops.com:9999/', | ||
33 | imSocket: 'ws://socket.yohobuy.com:10240', | 29 | imSocket: 'ws://socket.yohobuy.com:10240', |
34 | imCs: 'http://im.yohobuy.com/api', | 30 | imCs: 'http://im.yohobuy.com/api', |
35 | global: 'http://api-global.yohobuy.com', | 31 | global: 'http://api-global.yohobuy.com', |
36 | store: 'http://192.168.102.47:8080/portal-gateway/', | 32 | store: 'http://192.168.102.47:8080/portal-gateway/', |
37 | platformApi: 'http://192.168.102.48:8088/', | 33 | platformApi: 'http://192.168.102.48:8088/', |
38 | extstore: 'http://extstore-test1.yohops.com', | 34 | extstore: 'http://extstore-test1.yohops.com', |
39 | - family: 'http://192.168.103.73:8096/uic/', | ||
40 | yohoNowApi: 'http://yohonow-test.yohops.com:9999/' | 35 | yohoNowApi: 'http://yohonow-test.yohops.com:9999/' |
41 | }; | 36 | }; |
42 | 37 | ||
43 | module.exports = { | 38 | module.exports = { |
44 | app: 'h5', | 39 | app: 'h5', |
45 | - appVersion: '6.4.0', // 调用api的版本 | 40 | + appVersion: '6.5.2', // 调用api的版本 |
46 | appName: 'yohobuywap-node', | 41 | appName: 'yohobuywap-node', |
47 | port: 6001, | 42 | port: 6001, |
48 | siteUrl: '//m.yohobuy.com', | 43 | siteUrl: '//m.yohobuy.com', |
@@ -163,12 +158,10 @@ if (isProduction) { | @@ -163,12 +158,10 @@ if (isProduction) { | ||
163 | global: 'http://api-global.yohobuy.com', | 158 | global: 'http://api-global.yohobuy.com', |
164 | store: 'http://openstore.yohobuy.com', | 159 | store: 'http://openstore.yohobuy.com', |
165 | liveApi: 'http://api.live.yoho.cn/', | 160 | liveApi: 'http://api.live.yoho.cn/', |
166 | - singleApi: 'http://single.yoho.cn/', | ||
167 | imSocket: 'wss://imsocket.yohobuy.com:443', | 161 | imSocket: 'wss://imsocket.yohobuy.com:443', |
168 | imCs: 'https://imhttp.yohobuy.com/api', | 162 | imCs: 'https://imhttp.yohobuy.com/api', |
169 | platformApi: 'http://api.platform.yohoops.org', | 163 | platformApi: 'http://api.platform.yohoops.org', |
170 | extstore: 'http://extstore.yohobuy.com', | 164 | extstore: 'http://extstore.yohobuy.com', |
171 | - family: 'http://uic.yohoops.org/uic/', | ||
172 | yohoNowApi: 'http://new.yohoboys.com/' | 165 | yohoNowApi: 'http://new.yohoboys.com/' |
173 | }, | 166 | }, |
174 | memcache: { | 167 | memcache: { |
@@ -272,12 +265,10 @@ if (isProduction) { | @@ -272,12 +265,10 @@ if (isProduction) { | ||
272 | global: process.env.TEST_GLOBAL || 'http://global-test-soa.yohops.com:9999/', | 265 | global: process.env.TEST_GLOBAL || 'http://global-test-soa.yohops.com:9999/', |
273 | store: process.env.TEST_STORE || 'http://192.168.102.210:8080/portal-gateway/wechat/', | 266 | store: process.env.TEST_STORE || 'http://192.168.102.210:8080/portal-gateway/wechat/', |
274 | liveApi: process.env.TEST_LIVE || 'http://testapi.live.yohops.com:9999/', | 267 | liveApi: process.env.TEST_LIVE || 'http://testapi.live.yohops.com:9999/', |
275 | - singleApi: process.env.TEST_SINGLE || 'http://api-test1.yohops.com:9999/', | ||
276 | imSocket: process.env.TEST_IM_SOCKET || 'ws://socket.yohobuy.com:10240', | 268 | imSocket: process.env.TEST_IM_SOCKET || 'ws://socket.yohobuy.com:10240', |
277 | imCs: process.env.TEST_IM_CS || 'http://im.yohobuy.com/api', | 269 | imCs: process.env.TEST_IM_CS || 'http://im.yohobuy.com/api', |
278 | platformApi: 'http://192.168.102.48:8088/', | 270 | platformApi: 'http://192.168.102.48:8088/', |
279 | extstore: 'http://extstore-test1.yohops.com', | 271 | extstore: 'http://extstore-test1.yohops.com', |
280 | - family: 'http://192.168.102.31:8096/uic/', | ||
281 | yohoNowApi: process.env.YOHO_NOW_API || 'http://yohonow-test.yohops.com:9999/' | 272 | yohoNowApi: process.env.YOHO_NOW_API || 'http://yohonow-test.yohops.com:9999/' |
282 | }, | 273 | }, |
283 | memcache: { | 274 | memcache: { |
public/img/home/yoho-coin/yoho_icon.png
0 → 100644

5 KB
@@ -28,6 +28,8 @@ let $sureClose = $('.order-opt').find('.cancel'); // 取消订单按钮 | @@ -28,6 +28,8 @@ let $sureClose = $('.order-opt').find('.cancel'); // 取消订单按钮 | ||
28 | let $sureRefund = $('.order-opt').find('.refund'); // 申请退款按钮 | 28 | let $sureRefund = $('.order-opt').find('.refund'); // 申请退款按钮 |
29 | let $refundChangeMask = $('.refund-change-mask'); // 退换货选择组件 | 29 | let $refundChangeMask = $('.refund-change-mask'); // 退换货选择组件 |
30 | 30 | ||
31 | +let $newHours = $('.new-hours').length > 0 ? true : false; // 新的倒计时格式标示 | ||
32 | + | ||
31 | require('common'); | 33 | require('common'); |
32 | require('plugin/modal.alert'); | 34 | require('plugin/modal.alert'); |
33 | 35 | ||
@@ -66,10 +68,19 @@ function downCount(options) { | @@ -66,10 +68,19 @@ function downCount(options) { | ||
66 | 68 | ||
67 | // set to DOM | 69 | // set to DOM |
68 | $countdownContainer.removeClass('hide'); | 70 | $countdownContainer.removeClass('hide'); |
71 | + $('.new-hours').removeClass('hide'); | ||
69 | if (hours === '00') { | 72 | if (hours === '00') { |
70 | - $countDownHours.text('剩余' + minutes + ':' + seconds); | 73 | + if ($newHours) { |
74 | + $countDownHours.text(minutes + '分' + seconds + '秒'); | ||
75 | + } else { | ||
76 | + $countDownHours.text('剩余' + minutes + ':' + seconds); | ||
77 | + } | ||
71 | } else { | 78 | } else { |
72 | - $countDownHours.text('剩余' + hours + ':' + minutes + ':' + seconds); | 79 | + if ($newHours) { |
80 | + $countDownHours.text(hours + '时' + minutes + '分' + seconds + '秒'); | ||
81 | + } else { | ||
82 | + $countDownHours.text('剩余' + hours + ':' + minutes + ':' + seconds); | ||
83 | + } | ||
73 | } | 84 | } |
74 | 85 | ||
75 | difference -= 1000; | 86 | difference -= 1000; |
@@ -106,6 +106,15 @@ class ProductListWithFilter { | @@ -106,6 +106,15 @@ class ProductListWithFilter { | ||
106 | }); | 106 | }); |
107 | } | 107 | } |
108 | 108 | ||
109 | + /** | ||
110 | + * 重置 | ||
111 | + */ | ||
112 | + reset() { | ||
113 | + filter.resetFilter(); | ||
114 | + this.page = 0; | ||
115 | + this.view.container.html(''); | ||
116 | + } | ||
117 | + | ||
109 | dataRender(result) { | 118 | dataRender(result) { |
110 | 119 | ||
111 | // 去掉正在加载 | 120 | // 去掉正在加载 |
@@ -30,12 +30,14 @@ Tab.prototype.getallgoods = function() { // 显示筛选 TAB | @@ -30,12 +30,14 @@ Tab.prototype.getallgoods = function() { // 显示筛选 TAB | ||
30 | $listNav.find('.default').addClass('active'); | 30 | $listNav.find('.default').addClass('active'); |
31 | $filterBox.css('display', 'block'); | 31 | $filterBox.css('display', 'block'); |
32 | $('.filter-mask').addClass('hide'); | 32 | $('.filter-mask').addClass('hide'); |
33 | + productListWithFilter.reset(); | ||
33 | productListWithFilter.getGoodsList({type: 'default', page: 1}); | 34 | productListWithFilter.getGoodsList({type: 'default', page: 1}); |
34 | productListWithFilter.scrollActived = true; | 35 | productListWithFilter.scrollActived = true; |
35 | }; | 36 | }; |
36 | Tab.prototype.getnewgoods = function() { | 37 | Tab.prototype.getnewgoods = function() { |
37 | $filterBox.css('display', 'none'); | 38 | $filterBox.css('display', 'none'); |
38 | $('.filter-mask').addClass('hide'); | 39 | $('.filter-mask').addClass('hide'); |
40 | + productListWithFilter.reset(); | ||
39 | productListWithFilter.getGoodsList({type: 'new', page: 1}); | 41 | productListWithFilter.getGoodsList({type: 'new', page: 1}); |
40 | productListWithFilter.scrollActived = true; | 42 | productListWithFilter.scrollActived = true; |
41 | }; | 43 | }; |
1 | -/* | ||
2 | - * @Author: Targaryen | ||
3 | - * @Date: 2017-03-24 13:43:55 | ||
4 | - * @Last Modified by: Targaryen | ||
5 | - * @Last Modified time: 2017-06-20 09:50:01 | ||
6 | - */ | ||
7 | - | ||
8 | -/** ***************************** | ||
9 | - * 红人店铺使用的全部商品页面碎片 | ||
10 | - *******************************/ | ||
11 | - | ||
12 | -const filter = require('../../plugin/filter'); | ||
13 | -const lazyLoad = require('yoho-jquery-lazyload'); | ||
14 | - | ||
15 | -let noResultHbs = require('product/search/no-result-new.hbs'); | ||
16 | - | ||
17 | -let $goodsContainer = $('#goods-container'); | ||
18 | -let $container = $goodsContainer.children('.default-goods'); // 承载商品列表的容器 | ||
19 | -let $listNav = $('#list-nav'); // 筛选项列表 | ||
20 | -let $pre = $listNav.find('.active'); // 记录进入筛选前的active项,初始为选中项 | ||
21 | -let $allGoodsTabPage = $(document.getElementById('all-goods')); | ||
22 | -let $filterBody = $('.filter-body'); | ||
23 | -let $dropList = $('.drop-list'); | ||
24 | - | ||
25 | -const shopId = $('#shopId').val(); | ||
26 | - | ||
27 | -let navInfo = { | ||
28 | - price: { | ||
29 | - order: 1, | ||
30 | - end: false | ||
31 | - }, | ||
32 | - discount: { | ||
33 | - order: 1, | ||
34 | - end: false | ||
35 | - }, | ||
36 | - default: { | ||
37 | - order: 0, | ||
38 | - end: false, | ||
39 | - type: 'default' | ||
40 | - }, | ||
41 | - new: { | ||
42 | - order: 0, | ||
43 | - end: false | ||
44 | - }, | ||
45 | - sale: { | ||
46 | - order: 0, | ||
47 | - end: false | ||
48 | - }, | ||
49 | - popularity: { | ||
50 | - order: 0, | ||
51 | - end: false | ||
52 | - } | ||
53 | -}; | ||
54 | - | ||
55 | -let beforeScroll = document.body.scrollTop; // 滚动前位置记录 | ||
56 | -let navType = 'default'; // 目前激活的导航页面 | ||
57 | -let defaultOpt = Object.assign({}, navInfo.default, {shop_id: shopId}); // 默认参数 | ||
58 | -let onSearching = false; // 是否正在搜索 | ||
59 | -let isScrollLoad = false; // 是否是滚动加载 | ||
60 | -let page = 1; // 页码 | ||
61 | -let nav; | ||
62 | -let $firstText = $('.first-li-more').find('.nav-txt'); | ||
63 | -let $thisLi = ''; | ||
64 | - | ||
65 | -// 物料商品列表标记 | ||
66 | -if ($('#material-flag').val() === 'material') { | ||
67 | - let material = true; | ||
68 | - | ||
69 | - if ($('.first-li-more').hasClass('active')) { | ||
70 | - page = 2; // 已在服务端渲染第一页 | ||
71 | - } | ||
72 | - Object.assign(defaultOpt, { | ||
73 | - material: material, | ||
74 | - unionType: window.queryString.union_type | ||
75 | - }); | ||
76 | -} | ||
77 | - | ||
78 | -/** | ||
79 | - * 处理筛选参数 | ||
80 | - */ | ||
81 | -const handleChoseFilter = function() { | ||
82 | - $.each($filterBody.find('.chosed'), function(index, elem) { | ||
83 | - let choseOpt = {}; | ||
84 | - | ||
85 | - choseOpt[$(elem).parent().data('type')] = $(elem).data('id'); | ||
86 | - Object.assign(defaultOpt, choseOpt); | ||
87 | - }); | ||
88 | -}; | ||
89 | - | ||
90 | -/** | ||
91 | - * 获取商品列表 | ||
92 | - */ | ||
93 | -const getGoodsList = params => { | ||
94 | - handleChoseFilter(); | ||
95 | - | ||
96 | - if (!onSearching) { | ||
97 | - Object.assign(defaultOpt, { | ||
98 | - page: page++ | ||
99 | - }); | ||
100 | - } | ||
101 | - | ||
102 | - // 有参数,参数优先,滚动加载相关参数重置 | ||
103 | - if (params && !params.filtering) { | ||
104 | - Object.assign(defaultOpt, params); | ||
105 | - if (params.page) { | ||
106 | - page = params.page + 1; | ||
107 | - } | ||
108 | - isScrollLoad = false; | ||
109 | - beforeScroll = document.body.scrollTop; | ||
110 | - } | ||
111 | - | ||
112 | - if (nav && nav.end) { | ||
113 | - return false; | ||
114 | - } | ||
115 | - | ||
116 | - if (!onSearching) { | ||
117 | - onSearching = true; | ||
118 | - | ||
119 | - $.ajax({ | ||
120 | - type: 'GET', | ||
121 | - url: location.protocol + '//m.yohobuy.com/product/search/search', | ||
122 | - data: defaultOpt, | ||
123 | - xhrFields: { | ||
124 | - withCredentials: true | ||
125 | - }, | ||
126 | - beforeSend: function() { | ||
127 | - if ($('.no-result-new').length > 0) { | ||
128 | - $('.no-result-new').remove(); | ||
129 | - } | ||
130 | - $container.append('<div class="search-divide">正在加载...</div>'); | ||
131 | - }, | ||
132 | - success: function(result) { | ||
133 | - // 去掉正在加载 | ||
134 | - $('.search-divide').remove(); | ||
135 | - | ||
136 | - let noResult = !result || result.length < 1 || (result.list && result.list.length < 1); | ||
137 | - | ||
138 | - | ||
139 | - // 没有结果输出没有结果页面 | ||
140 | - if (noResult) { | ||
141 | - if (isScrollLoad) { | ||
142 | - $container.append('<div class="search-divide">没有更多内容了...</div>'); | ||
143 | - } else { | ||
144 | - $container.html(noResultHbs()); | ||
145 | - } | ||
146 | - | ||
147 | - if (nav) { | ||
148 | - nav.end = true; | ||
149 | - } | ||
150 | - | ||
151 | - onSearching = false; | ||
152 | - return false; | ||
153 | - } | ||
154 | - | ||
155 | - if (isScrollLoad) { | ||
156 | - $container.append(result); | ||
157 | - } else { | ||
158 | - $container.html(result); | ||
159 | - } | ||
160 | - | ||
161 | - lazyLoad($container.find('img[class=lazy]').not('img[src]')); | ||
162 | - | ||
163 | - onSearching = false; | ||
164 | - }, | ||
165 | - error: function() { | ||
166 | - let $divide = $('.search-divide'); | ||
167 | - | ||
168 | - $divide.text('加载失败,点击重试'); | ||
169 | - $divide.one('click', function() { | ||
170 | - $divide.text('正在加载...'); | ||
171 | - getGoodsList(); | ||
172 | - }); | ||
173 | - onSearching = false; | ||
174 | - } | ||
175 | - }); | ||
176 | - } | ||
177 | -}; | ||
178 | - | ||
179 | -/** | ||
180 | - * 加载筛选数据 | ||
181 | - */ | ||
182 | -const getFilter = function() { | ||
183 | - $.ajax({ | ||
184 | - type: 'GET', | ||
185 | - url: location.protocol + '//m.yohobuy.com/product/search/filter', | ||
186 | - data: defaultOpt, | ||
187 | - success: function(data) { | ||
188 | - if (!data) { | ||
189 | - return false; | ||
190 | - } | ||
191 | - | ||
192 | - $goodsContainer.append(data); | ||
193 | - | ||
194 | - // 初始化filter&注册filter回调 | ||
195 | - filter.initFilter({ | ||
196 | - fCbFn: getGoodsList, | ||
197 | - hCbFn: function() { | ||
198 | - | ||
199 | - // 切换active状态到$pre上 | ||
200 | - $pre.addClass('active'); | ||
201 | - $pre.siblings('.filter').removeClass('active'); | ||
202 | - } | ||
203 | - }); | ||
204 | - | ||
205 | - $filterBody = $('.filter-body'); | ||
206 | - } | ||
207 | - }); | ||
208 | -}; | ||
209 | - | ||
210 | -$listNav.bind('contextmenu', function() { | ||
211 | - return false; | ||
212 | -}); | ||
213 | - | ||
214 | -const popularityFilter = function(thisLi, type) { | ||
215 | - if (thisLi.hasClass('active')) { | ||
216 | - $dropList.hide(); | ||
217 | - return false; | ||
218 | - } | ||
219 | - $thisLi.addClass('active').siblings('li').removeClass('active'); | ||
220 | - | ||
221 | - defaultOpt.type = type; | ||
222 | - | ||
223 | - nav = navInfo[type]; | ||
224 | - | ||
225 | - if (thisLi.hasClass('asc')) { | ||
226 | - nav.order = 1; | ||
227 | - } else { | ||
228 | - nav.order = 0; | ||
229 | - } | ||
230 | - | ||
231 | - Object.assign(defaultOpt, nav); | ||
232 | - getGoodsList(); | ||
233 | - $dropList.hide(); | ||
234 | -}; | ||
235 | - | ||
236 | -$listNav.on('touchend touchcancel', function(e) { | ||
237 | - page = 1; | ||
238 | - beforeScroll = $(window).scrollTop(); | ||
239 | - isScrollLoad = false; | ||
240 | - | ||
241 | - let $this = $(e.target).closest('li'); // 被点击的 Tab | ||
242 | - let $active; | ||
243 | - | ||
244 | - // 默认列表增加人气筛选 | ||
245 | - if ($this.hasClass('first-li-more') && $this.hasClass('active')) { | ||
246 | - $this.siblings('.active').removeClass('active'); | ||
247 | - $this.addClass('active'); | ||
248 | - $dropList.toggle(); | ||
249 | - $dropList.find('.default').on('touchend touchcancel', function() { | ||
250 | - $thisLi = $(this); | ||
251 | - $firstText.html('默认'); | ||
252 | - popularityFilter($thisLi, 'default'); | ||
253 | - return false; | ||
254 | - }); | ||
255 | - $dropList.find('.discount').on('touchend touchcancel', function() { | ||
256 | - $thisLi = $(this); | ||
257 | - $firstText.html($(this).data('text')); | ||
258 | - popularityFilter($thisLi, 'discount'); | ||
259 | - $('.first-li-more').removeClass('new default sale discount').addClass('discount'); | ||
260 | - return false; | ||
261 | - }); | ||
262 | - } else if ($this.hasClass('filter')) { // 筛选面板 | ||
263 | - $dropList.css('display', 'none'); | ||
264 | - | ||
265 | - // 筛选面板切换状态 | ||
266 | - if ($this.hasClass('active')) { | ||
267 | - filter.hideFilter(); | ||
268 | - | ||
269 | - // 点击筛选前的 active 项恢复 active | ||
270 | - $pre.addClass('active'); | ||
271 | - $this.removeClass('active'); | ||
272 | - } else { | ||
273 | - $pre = $this.siblings('.active'); | ||
274 | - | ||
275 | - $pre.removeClass('active'); | ||
276 | - $this.addClass('active'); | ||
277 | - | ||
278 | - filter.showFilter(); | ||
279 | - } | ||
280 | - } else { // 排序改变 | ||
281 | - $dropList.css('display', 'none'); | ||
282 | - if ($this.hasClass('new')) { | ||
283 | - navType = 'new'; | ||
284 | - } else if ($this.hasClass('price')) { | ||
285 | - navType = 'price'; | ||
286 | - } else if ($this.hasClass('discount')) { | ||
287 | - navType = 'discount'; | ||
288 | - } else if ($this.hasClass('default')) { | ||
289 | - navType = 'default'; | ||
290 | - } else if ($this.hasClass('sale')) { | ||
291 | - navType = 'sale'; | ||
292 | - } else if ($this.hasClass('popularity')) { | ||
293 | - navType = 'popularity'; | ||
294 | - } | ||
295 | - | ||
296 | - // 更新当前排序:默认、最新、价格、折扣 | ||
297 | - nav = navInfo[navType]; | ||
298 | - | ||
299 | - if ($this.hasClass('active')) { | ||
300 | - | ||
301 | - // 默认、最新无排序切换 | ||
302 | - if ($this.hasClass('default') || $this.hasClass('new') || $this.hasClass('popularity')) { | ||
303 | - return false; | ||
304 | - } | ||
305 | - | ||
306 | - if ($this.hasClass('price') || $this.hasClass('discount')) { | ||
307 | - | ||
308 | - // 价格或折扣切换排序状态 | ||
309 | - $this.find('.icon > .iconfont').toggleClass('cur'); | ||
310 | - $pre = $this; // 更新 pre 为当前项 | ||
311 | - nav.order = nav.order === 0 ? 1 : 0; // 切换排序 | ||
312 | - } | ||
313 | - } else { | ||
314 | - $active = $this.siblings('.active'); | ||
315 | - | ||
316 | - $pre = $this; // $pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项 | ||
317 | - | ||
318 | - if ($active.hasClass('filter')) { | ||
319 | - | ||
320 | - // 若之前active项为筛选,则隐藏筛选面板 | ||
321 | - filter.hideFilter(); | ||
322 | - } | ||
323 | - | ||
324 | - $active.removeClass('active'); | ||
325 | - $this.addClass('active'); | ||
326 | - } | ||
327 | - | ||
328 | - /* 排序条件更新 */ | ||
329 | - defaultOpt.type = navType; | ||
330 | - Object.assign(defaultOpt, nav); | ||
331 | - | ||
332 | - getGoodsList(); | ||
333 | - } | ||
334 | -}); | ||
335 | - | ||
336 | - | ||
337 | -/** | ||
338 | - * 当scroll到1/2$goodsContainer高度后继续请求下一页数据 | ||
339 | - */ | ||
340 | -const scrollHandler = function() { | ||
341 | - if ($allGoodsTabPage.hasClass('active') && $(window).scrollTop() > $goodsContainer.height() * 0.6) { | ||
342 | - isScrollLoad = true; | ||
343 | - getGoodsList(); | ||
344 | - } | ||
345 | -}; | ||
346 | - | ||
347 | -/** | ||
348 | - * 滚动加载 | ||
349 | - */ | ||
350 | -$(window).scroll(function() { | ||
351 | - setTimeout(function() { | ||
352 | - let afterScroll = document.body.scrollTop; | ||
353 | - | ||
354 | - if (afterScroll - beforeScroll > 0) { | ||
355 | - window.requestAnimationFrame(scrollHandler); | ||
356 | - beforeScroll = afterScroll; | ||
357 | - } else { | ||
358 | - return false; | ||
359 | - } | ||
360 | - }, 5); | ||
361 | -}); | ||
362 | - | ||
363 | -module.exports = { | ||
364 | - getGoodsList, | ||
365 | - getFilter | ||
366 | -}; |
@@ -240,6 +240,22 @@ li { | @@ -240,6 +240,22 @@ li { | ||
240 | transform: translateX(-50%); | 240 | transform: translateX(-50%); |
241 | } | 241 | } |
242 | 242 | ||
243 | +.feature-page .sidebar-link { | ||
244 | + position: fixed; | ||
245 | + display: block; | ||
246 | + top: 50%; | ||
247 | + right: 0; | ||
248 | + width: 150px; | ||
249 | + height: 150px; | ||
250 | + margin-top: -75px; | ||
251 | + z-index: 999; | ||
252 | + | ||
253 | + img { | ||
254 | + width: 150px; | ||
255 | + height: 150px; | ||
256 | + } | ||
257 | +} | ||
258 | + | ||
243 | .feature-page .sidebar { | 259 | .feature-page .sidebar { |
244 | position: fixed; | 260 | position: fixed; |
245 | width: 100%; | 261 | width: 100%; |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | background: #fff; | 2 | background: #fff; |
3 | display: block; | 3 | display: block; |
4 | padding: 20px 30px; | 4 | padding: 20px 30px; |
5 | - margin-bottom: 30px; | 5 | + margin-bottom: 20px; |
6 | border-bottom: 1px solid #e0e0e0; | 6 | border-bottom: 1px solid #e0e0e0; |
7 | 7 | ||
8 | .tip-title { | 8 | .tip-title { |
@@ -113,14 +113,6 @@ | @@ -113,14 +113,6 @@ | ||
113 | line-height: 1.5; | 113 | line-height: 1.5; |
114 | } | 114 | } |
115 | 115 | ||
116 | - .range { | ||
117 | - background-image: resolve("home/rang.png"); | ||
118 | - background-size: cover; | ||
119 | - width: 640px; | ||
120 | - height: 20px; | ||
121 | - background-color: #fff; | ||
122 | - } | ||
123 | - | ||
124 | .beside-icon { | 116 | .beside-icon { |
125 | margin-left: 60px; | 117 | margin-left: 60px; |
126 | } | 118 | } |
@@ -171,27 +163,25 @@ | @@ -171,27 +163,25 @@ | ||
171 | span { | 163 | span { |
172 | float: right; | 164 | float: right; |
173 | } | 165 | } |
174 | - | ||
175 | - &:last-child span { | ||
176 | - color: #f00; | ||
177 | - } | ||
178 | } | 166 | } |
179 | } | 167 | } |
180 | 168 | ||
181 | .dollar { | 169 | .dollar { |
170 | + margin: 20px 0; | ||
182 | background: #fff; | 171 | background: #fff; |
183 | - padding: 0.5rem 0.75rem; | ||
184 | - height: 1.5rem; | ||
185 | - line-height: 0.5rem; | 172 | + padding: 0 30px; |
173 | + height: 88px; | ||
174 | + line-height: 88px; | ||
186 | font-size: 0.7rem; | 175 | font-size: 0.7rem; |
187 | 176 | ||
188 | .bg-dollar { | 177 | .bg-dollar { |
189 | display: inline-block; | 178 | display: inline-block; |
190 | - width: 0.6rem; | ||
191 | - height: 0.6rem; | ||
192 | - background: url("/home/yoho-coin/dollar.png") center center; | 179 | + width: 36px; |
180 | + height: 36px; | ||
181 | + background: resolve("home/yoho-coin/yoho_icon.png"); | ||
193 | background-size: 100% 100%; | 182 | background-size: 100% 100%; |
194 | - vertical-align: middle; | 183 | + vertical-align: sub; |
184 | + margin-right: 5px; | ||
195 | } | 185 | } |
196 | } | 186 | } |
197 | 187 |
1 | +.base-status { | ||
2 | + background-color: #fff; | ||
3 | + padding: 30px; | ||
4 | + margin-bottom: 20px; | ||
5 | + display: flex; | ||
6 | + align-items: center; | ||
7 | + | ||
8 | + .status-c { | ||
9 | + float: left; | ||
10 | + width: 640px; | ||
11 | + } | ||
12 | + | ||
13 | + .status-title { | ||
14 | + font-size: 34px; | ||
15 | + color: #444; | ||
16 | + line-height: 48px; | ||
17 | + margin-bottom: 10px; | ||
18 | + } | ||
19 | + | ||
20 | + .status-body { | ||
21 | + font-size: 28px; | ||
22 | + color: #b0b0b0; | ||
23 | + line-height: 40px; | ||
24 | + margin-bottom: 5px; | ||
25 | + | ||
26 | + span { | ||
27 | + color: #e01; | ||
28 | + } | ||
29 | + } | ||
30 | + | ||
31 | + .status-time { | ||
32 | + font-size: 24px; | ||
33 | + color: #b0b0b0; | ||
34 | + line-height: 34px; | ||
35 | + } | ||
36 | + | ||
37 | + .iconfont { | ||
38 | + margin-left: 30px; | ||
39 | + width: 20px; | ||
40 | + float: right; | ||
41 | + color: #e0e0e0; | ||
42 | + font-size: 32px; | ||
43 | + } | ||
44 | +} | ||
45 | + | ||
46 | +.info-table { | ||
47 | + margin: 20px 0; | ||
48 | + padding: 30px 0 30px 30px; | ||
49 | + background-color: #fff; | ||
50 | + position: relative; | ||
51 | + | ||
52 | + .table-item { | ||
53 | + line-height: 50px; | ||
54 | + font-size: 28px; | ||
55 | + color: #444; | ||
56 | + } | ||
57 | + | ||
58 | + .iconfont { | ||
59 | + position: absolute; | ||
60 | + top: 30px; | ||
61 | + right: 30px; | ||
62 | + font-size: 40px; | ||
63 | + } | ||
64 | +} | ||
65 | + | ||
66 | +.real-amount { | ||
67 | + background-color: #fff; | ||
68 | + | ||
69 | + li { | ||
70 | + margin-left: 30px; | ||
71 | + padding-right: 30px; | ||
72 | + font-size: 28px; | ||
73 | + border-top: solid 1px #e0e0e0; | ||
74 | + line-height: 80px; | ||
75 | + | ||
76 | + span { | ||
77 | + float: right; | ||
78 | + } | ||
79 | + | ||
80 | + &:last-child span { | ||
81 | + color: #f00; | ||
82 | + } | ||
83 | + } | ||
84 | +} |
-
Please register or login to post a comment