Merge branch 'feature/sale' of http://git.dev.yoho.cn/web/yohobuy-node into feature/sale
Showing
9 changed files
with
316 additions
and
55 deletions
@@ -10,9 +10,7 @@ const headerModel = require('../../../doraemon/models/header'); | @@ -10,9 +10,7 @@ const headerModel = require('../../../doraemon/models/header'); | ||
10 | const mRoot = '../models'; | 10 | const mRoot = '../models'; |
11 | 11 | ||
12 | // sale 页 model | 12 | // sale 页 model |
13 | -// const sale = require(`${mRoot}/sale`); | ||
14 | - | ||
15 | -// const saleDiscount = require(`${mRoot}/sale-discount`); | 13 | +const sale = require(`${mRoot}/sale`); |
16 | 14 | ||
17 | // 开发用模拟数据 | 15 | // 开发用模拟数据 |
18 | const simulation = require(`${mRoot}/simulation`); | 16 | const simulation = require(`${mRoot}/simulation`); |
@@ -67,15 +65,15 @@ exports.discount = (req, res) => { | @@ -67,15 +65,15 @@ exports.discount = (req, res) => { | ||
67 | response.devEnv = true; | 65 | response.devEnv = true; |
68 | 66 | ||
69 | // 假数据输出 | 67 | // 假数据输出 |
70 | - res.render('sale/discount', Object.assign(response, simulation.discount())); | 68 | + // res.render('sale/discount', Object.assign(response, simulation.discount())); |
71 | 69 | ||
72 | - /* return saleDiscount.getSaleDiscountData() | 70 | + return sale.getSaleGoodsListData() |
73 | .then(result => { | 71 | .then(result => { |
74 | response.result = result; | 72 | response.result = result; |
75 | response.resultShow = JSON.stringify(result, null, 4); | 73 | response.resultShow = JSON.stringify(result, null, 4); |
76 | 74 | ||
77 | res.render('sale/discount', response); | 75 | res.render('sale/discount', response); |
78 | - });*/ | 76 | + }); |
79 | 77 | ||
80 | }) | 78 | }) |
81 | .catch(() => { | 79 | .catch(() => { |
@@ -101,7 +99,7 @@ exports.vip = (req, res) => { | @@ -101,7 +99,7 @@ exports.vip = (req, res) => { | ||
101 | // 假数据输出 | 99 | // 假数据输出 |
102 | res.render('sale/other', Object.assign(response, simulation.other())); | 100 | res.render('sale/other', Object.assign(response, simulation.other())); |
103 | 101 | ||
104 | - /* return saleVip.getSaleVipData() | 102 | + /* return sale.getSaleGoodsListData() |
105 | .then(result => { | 103 | .then(result => { |
106 | response.result = result; | 104 | response.result = result; |
107 | response.resultShow = JSON.stringify(result, null, 4); | 105 | response.resultShow = JSON.stringify(result, null, 4); |
@@ -133,7 +131,7 @@ exports.breakingYards = (req, res) => { | @@ -133,7 +131,7 @@ exports.breakingYards = (req, res) => { | ||
133 | // 假数据输出 | 131 | // 假数据输出 |
134 | res.render('sale/other', Object.assign(response, simulation.other())); | 132 | res.render('sale/other', Object.assign(response, simulation.other())); |
135 | 133 | ||
136 | - /* return breakingYards.getSaleBreakingYardsData() | 134 | + /* return sale.getSaleGoodsListData() |
137 | .then(result => { | 135 | .then(result => { |
138 | response.result = result; | 136 | response.result = result; |
139 | response.resultShow = JSON.stringify(result, null, 4); | 137 | response.resultShow = JSON.stringify(result, null, 4); |
@@ -165,7 +163,7 @@ exports.newSale = (req, res) => { | @@ -165,7 +163,7 @@ exports.newSale = (req, res) => { | ||
165 | // 假数据输出 | 163 | // 假数据输出 |
166 | res.render('sale/other', Object.assign(response, simulation.other())); | 164 | res.render('sale/other', Object.assign(response, simulation.other())); |
167 | 165 | ||
168 | - /* return newSale.getSaleNewSaleData() | 166 | + /* return sale.getSaleNewSaleData() |
169 | .then(result => { | 167 | .then(result => { |
170 | response.result = result; | 168 | response.result = result; |
171 | response.resultShow = JSON.stringify(result, null, 4); | 169 | response.resultShow = JSON.stringify(result, null, 4); |
apps/product/models/sale-discount.js
deleted
100644 → 0
1 | -/* | ||
2 | - * @Author: Targaryen | ||
3 | - * @Date: 2016-05-19 16:10:11 | ||
4 | - * @Last Modified by: Targaryen | ||
5 | - * @Last Modified time: 2016-05-19 16:16:55 | ||
6 | - */ | ||
7 | - | ||
8 | -'use strict'; | ||
9 | -const library = '../../../library'; | ||
10 | -const API = require(`${library}/api`).API; | ||
11 | -const sign = require(`${library}/sign`); | ||
12 | -const api = new API(); | ||
13 | - | ||
14 | -/** | ||
15 | - * 处理商品列表数据 | ||
16 | - * @param {[type]} origin [description] | ||
17 | - * @return {[type]} [description] | ||
18 | - */ | ||
19 | -const handleSaleDiscountData = (origin) => { | ||
20 | - var dest = {}; | ||
21 | - | ||
22 | - dest = origin; | ||
23 | - | ||
24 | - return dest; | ||
25 | -}; | ||
26 | - | ||
27 | -/** | ||
28 | - * 获取商品列表数据 | ||
29 | - * @return {[type]} [description] | ||
30 | - */ | ||
31 | -exports.getSaleDiscountData = () => { | ||
32 | - | ||
33 | - return api.get('', sign.apiSign({ | ||
34 | - method: 'app.search.sales', | ||
35 | - limit: 20, | ||
36 | - order: 's_t_desc', | ||
37 | - page: 1, | ||
38 | - productSize: '384x511', | ||
39 | - yh_channel: 1 | ||
40 | - })).then(result => { | ||
41 | - return handleSaleDiscountData(result); | ||
42 | - }); | ||
43 | -}; |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | * @Author: Targaryen | 2 | * @Author: Targaryen |
3 | * @Date: 2016-05-19 10:20:08 | 3 | * @Date: 2016-05-19 10:20:08 |
4 | * @Last Modified by: Targaryen | 4 | * @Last Modified by: Targaryen |
5 | - * @Last Modified time: 2016-05-19 16:49:04 | 5 | + * @Last Modified time: 2016-05-19 17:27:36 |
6 | */ | 6 | */ |
7 | 7 | ||
8 | 'use strict'; | 8 | 'use strict'; |
@@ -24,6 +24,19 @@ const handleSaleData = (origin) => { | @@ -24,6 +24,19 @@ const handleSaleData = (origin) => { | ||
24 | }; | 24 | }; |
25 | 25 | ||
26 | /** | 26 | /** |
27 | + * 处理商品列表数据 | ||
28 | + * @param {[type]} origin [description] | ||
29 | + * @return {[type]} [description] | ||
30 | + */ | ||
31 | +const handleSaleGoodsListData = (origin) => { | ||
32 | + var dest = {}; | ||
33 | + | ||
34 | + dest = origin; | ||
35 | + | ||
36 | + return dest; | ||
37 | +}; | ||
38 | + | ||
39 | +/** | ||
27 | * 获取首页数据 | 40 | * 获取首页数据 |
28 | * @return {[type]} [description] | 41 | * @return {[type]} [description] |
29 | */ | 42 | */ |
@@ -37,3 +50,22 @@ exports.getSaleDate = () => { | @@ -37,3 +50,22 @@ exports.getSaleDate = () => { | ||
37 | return handleSaleData(result); | 50 | return handleSaleData(result); |
38 | }); | 51 | }); |
39 | }; | 52 | }; |
53 | + | ||
54 | +/** | ||
55 | + * 获取商品列表数据 | ||
56 | + * @return {[type]} [description] | ||
57 | + */ | ||
58 | +exports.getSaleGoodsListData = () => { | ||
59 | + | ||
60 | + return api.get('', sign.apiSign({ | ||
61 | + method: 'app.search.sales', | ||
62 | + limit: 20, | ||
63 | + order: 's_t_desc', | ||
64 | + page: 1, | ||
65 | + productSize: '384x511', | ||
66 | + yh_channel: 1 | ||
67 | + })).then(result => { | ||
68 | + return handleSaleGoodsListData(result); | ||
69 | + }); | ||
70 | +}; | ||
71 | + |
@@ -217,7 +217,40 @@ exports.saleIndex = () => { | @@ -217,7 +217,40 @@ exports.saleIndex = () => { | ||
217 | exports.discount = () => { | 217 | exports.discount = () => { |
218 | return { | 218 | return { |
219 | module: 'product', | 219 | module: 'product', |
220 | - page: 'sale', | 220 | + page: 'discount', |
221 | + saleBanner: | ||
222 | + { | ||
223 | + bannerHeight: 170, | ||
224 | + img: 'http://img10.static.yhbimg.com/yhb-img01/2016/05/13/19/0144078a008a5dc2be52a6ec65c74c1f2c.jpg?imageView2/1/w/378/h/500' | ||
225 | + }, | ||
226 | + saleList: | ||
227 | + { | ||
228 | + saleTitle: { | ||
229 | + title: 'stage 精品上装店', | ||
230 | + up: true, | ||
231 | + time: '12313' | ||
232 | + }, | ||
233 | + sort: [ | ||
234 | + { | ||
235 | + name: '全部', | ||
236 | + number: 10 | ||
237 | + }, | ||
238 | + { | ||
239 | + name: '上装', | ||
240 | + number: 20 | ||
241 | + }, | ||
242 | + { | ||
243 | + name: '夏装', | ||
244 | + number: 5 | ||
245 | + }, | ||
246 | + { | ||
247 | + name: '衣服', | ||
248 | + number: 20 | ||
249 | + } | ||
250 | + ] | ||
251 | + | ||
252 | + } | ||
253 | + | ||
221 | 254 | ||
222 | 255 | ||
223 | }; | 256 | }; |
1 | +{{# saleBanner}} | ||
1 | <div class="sale-list-banner" style="height: {{bannerHeight}}px;"> | 2 | <div class="sale-list-banner" style="height: {{bannerHeight}}px;"> |
2 | <ul style="height: {{bannerHeight}}px;"> | 3 | <ul style="height: {{bannerHeight}}px;"> |
3 | {{# list}} | 4 | {{# list}} |
@@ -5,3 +6,4 @@ | @@ -5,3 +6,4 @@ | ||
5 | {{/ list}} | 6 | {{/ list}} |
6 | </ul> | 7 | </ul> |
7 | </div> | 8 | </div> |
9 | +{{/ saleBanner}} |
1 | +{{# leftContent}} | ||
2 | + | ||
3 | +{{!-- 全部折扣 --}} | ||
4 | + {{# allDiscount}} | ||
5 | + <div class="sort-container"> | ||
6 | + <ul class="sort-child-list new-sale"> | ||
7 | + {{#each list}} | ||
8 | + <li {{#if active}}class="active"{{/if}}> | ||
9 | + <a href="{{href}}" title="{{name}}"> | ||
10 | + {{name}} | ||
11 | + <span>{{num}}</span> | ||
12 | + </a> | ||
13 | + </li> | ||
14 | + {{/each}} | ||
15 | + </ul> | ||
16 | + </div> | ||
17 | + {{/ allDiscount}} | ||
18 | + | ||
19 | + {{!-- 新品上架 --}} | ||
20 | + {{# newSales}} | ||
21 | + <div class="sort-container"> | ||
22 | + <h2 title="{{name}}"> | ||
23 | + 一周新品上架 | ||
24 | + <span>{{updateNum}}</span> | ||
25 | + </h2> | ||
26 | + <ul class="sort-child-list new-sale"> | ||
27 | + {{#each list}} | ||
28 | + <li {{#if active}}class="active"{{/if}}> | ||
29 | + <a href="{{href}}" title="{{name}}"> | ||
30 | + {{name}} | ||
31 | + <span>{{num}}</span> | ||
32 | + </a> | ||
33 | + </li> | ||
34 | + {{/each}} | ||
35 | + </ul> | ||
36 | + </div> | ||
37 | + {{/ newSales}} | ||
38 | + | ||
39 | + {{!-- 全部品类--}} | ||
40 | + {{# allSort}} | ||
41 | + <div class="sort-container"> | ||
42 | + <ul> | ||
43 | + {{#all}} | ||
44 | + <li> | ||
45 | + <h2> | ||
46 | + <a href="{{href}}" title="{{name}}"> | ||
47 | + {{name}} | ||
48 | + <span>{{updateNum}}</span> | ||
49 | + </a> | ||
50 | + </h2> | ||
51 | + </li> | ||
52 | + {{/all}} | ||
53 | + {{#each list}} | ||
54 | + <li class="product-list-nav {{#if active}}active{{/if}}"> | ||
55 | + <h3 title="{{name}}"> | ||
56 | + <span class="icon-triangle"></span> | ||
57 | + {{name}} | ||
58 | + <span>{{num}}</span> | ||
59 | + </h3> | ||
60 | + <ul class="sort-child-list"> | ||
61 | + {{#each childList}} | ||
62 | + <li class="{{#if childActive}}active{{/if}}"> | ||
63 | + <a href="{{href}}" title="{{name}}"> | ||
64 | + {{name}} | ||
65 | + <span>{{num}}</span> | ||
66 | + </a> | ||
67 | + </li> | ||
68 | + {{/each}} | ||
69 | + </ul> | ||
70 | + </li> | ||
71 | + {{/each}} | ||
72 | + </ul> | ||
73 | + </div> | ||
74 | + {{/ allSort}} | ||
75 | + | ||
76 | + {{!-- 图片链接 --}} | ||
77 | + {{# picLink}} | ||
78 | + {{#if picTitle}} | ||
79 | + <h2 class="nav-pic-title">{{picTitle}}</h2> | ||
80 | + {{/if}} | ||
81 | + <ul class="pic-nav"> | ||
82 | + {{#each list}} | ||
83 | + <li> | ||
84 | + <a href="{{href}}"> | ||
85 | + <img src="{{src}}"> | ||
86 | + </a> | ||
87 | + </li> | ||
88 | + {{/each}} | ||
89 | + </ul> | ||
90 | + {{/ picLink}} | ||
91 | +{{/ leftContent}} | ||
92 | + | ||
93 | +{{#if brandBanner.dataId}} | ||
94 | + <script id="pic-link-tpl" type="text/html"> | ||
95 | + \{{# picLink}} | ||
96 | + \{{#if picTitle}} | ||
97 | + <h2 class="nav-pic-title">\{{picTitle}}</h2> | ||
98 | + \{{/if}} | ||
99 | + <ul class="pic-nav"> | ||
100 | + \{{#each list}} | ||
101 | + <li> | ||
102 | + <a href="\{{href}}"> | ||
103 | + <img src="\{{src}}"> | ||
104 | + </a> | ||
105 | + </li> | ||
106 | + \{{/each}} | ||
107 | + </ul> | ||
108 | + \{{/ picLink}} | ||
109 | + </script> | ||
110 | + <div id="brand-ad" class="brand-ad"></div> | ||
111 | +{{/if}} | ||
112 | + | ||
113 | +{{!-- 水牌广告 --}} | ||
114 | +{{#if node}} | ||
115 | + <div id="brand-card" class="brand-card" data-node="{{node}}"></div> | ||
116 | +{{/if}} |
doraemon/views/partial/product/no-result.hbs
0 → 100644
1 | +<div class="no-result"> | ||
2 | + <p class="no-title"> | ||
3 | + 抱歉!没有找到{{#if keyWord}}与"<b class="keyword">{{keyWord}}</b>"{{/if}}相关的商品 | ||
4 | + </p> | ||
5 | + <div class="search-again clearfix"> | ||
6 | + <form method="GET" action="{{searchActionUrl}}"> | ||
7 | + <input id="no-result-input" name="query" type="text" placeholder="换个关键词试试"> | ||
8 | + <button class="search-again-btn" type="submit"> | ||
9 | + <i class="iconfont"></i> | ||
10 | + </button> | ||
11 | + </form> | ||
12 | + </div> | ||
13 | + <p class="no-tip">建议您:看看输入的文字是否有误 / 减少分类条件限制 / 重新搜索</p> | ||
14 | +</div> |
1 | +{{!-- 搜索页、列表页、NEW/SALE页标准内容--}} | ||
2 | +{{# filters}} | ||
3 | + {{> product/filter-box}} | ||
4 | +{{/ filters}} | ||
5 | + | ||
6 | +{{# opts}} | ||
7 | + <div class="sort-pager"> | ||
8 | + {{# sortType}} | ||
9 | + <a class="sort-type{{#if active}} active{{/if}}" href="{{href}}"> | ||
10 | + {{name}} | ||
11 | + {{#if hasSortOrient}} | ||
12 | + {{#if active}} | ||
13 | + {{#if desc}} | ||
14 | + <span class="active-icon iconfont"></span> | ||
15 | + {{^}} | ||
16 | + <span class="active-icon iconfont"></span> | ||
17 | + {{/if}} | ||
18 | + {{^}} | ||
19 | + <span class="iconfont"></span> | ||
20 | + {{/if}} | ||
21 | + {{^}} | ||
22 | + <span class="iconfont"></span> | ||
23 | + {{/if}} | ||
24 | + </a> | ||
25 | + {{/ sortType}} | ||
26 | + | ||
27 | + {{# checks}} | ||
28 | + {{#if this}} | ||
29 | + <a class="checks{{#if checked}} checked{{/if}}" href="{{href}}"> | ||
30 | + {{#if checked}} | ||
31 | + <span class="iconfont"></span> | ||
32 | + {{^}} | ||
33 | + <span class="iconfont"></span> | ||
34 | + {{/if}} | ||
35 | + {{name}} | ||
36 | + </a> | ||
37 | + {{/if}} | ||
38 | + {{/ checks}} | ||
39 | + | ||
40 | + {{#if ../goods}} | ||
41 | + <div class="pager-wrap"> | ||
42 | + <div class="page-count"> | ||
43 | + <span id="count-per-page"> | ||
44 | + {{countPerPage}} | ||
45 | + <i class="iconfont"></i> | ||
46 | + </span> | ||
47 | + 每页 | ||
48 | + <ul> | ||
49 | + {{# pageCounts}} | ||
50 | + <li> | ||
51 | + <a href="{{href}}">{{count}}</a> | ||
52 | + </li> | ||
53 | + {{/ pageCounts}} | ||
54 | + </ul> | ||
55 | + </div> | ||
56 | + | ||
57 | + <p class="page-orient"> | ||
58 | + {{#if preHref}} | ||
59 | + <a href="{{preHref}}"> | ||
60 | + <span class="iconfont"></span> | ||
61 | + </a> | ||
62 | + {{^}} | ||
63 | + <span class="dis-icon iconfont"></span> | ||
64 | + {{/if}} | ||
65 | + | ||
66 | + <span> | ||
67 | + <i>{{curPage}}</i>/{{pageCount}} | ||
68 | + </span> | ||
69 | + | ||
70 | + {{#if nextHref}} | ||
71 | + <a href="{{nextHref}}"> | ||
72 | + <span class="iconfont"></span> | ||
73 | + </a> | ||
74 | + {{^}} | ||
75 | + <span class="dis-icon iconfont"></span> | ||
76 | + {{/if}} | ||
77 | + </p> | ||
78 | + </div> | ||
79 | + {{/if}} | ||
80 | + </div> | ||
81 | +{{/ opts}} | ||
82 | + | ||
83 | +{{#if goods}} | ||
84 | + <div class="goods-container clearfix"> | ||
85 | + {{#each goods}} | ||
86 | + {{> product/good}} | ||
87 | + {{/each}} | ||
88 | + {{# hasNextPage}} | ||
89 | + <div class="block-next-page"> | ||
90 | + <a href="{{href}}"> | ||
91 | + <img src="{{src}}" alt=""/> | ||
92 | + </a> | ||
93 | + </div> | ||
94 | + {{/ hasNextPage}} | ||
95 | + <div class="good-item-wrapper"> | ||
96 | + <div class="good-info-main"></div> | ||
97 | + <div class="good-select-color"></div> | ||
98 | + </div> | ||
99 | + </div> | ||
100 | + | ||
101 | + <div class="product-pager clearfix"> | ||
102 | + <span class="total">{{opts.start}} - {{opts.end}} / 共{{totalCount}}件商品</span> | ||
103 | + | ||
104 | + <div class="pager"> | ||
105 | + {{{pager}}} | ||
106 | + </div> | ||
107 | + </div> | ||
108 | +{{^}} | ||
109 | + {{> product/no-result}} | ||
110 | +{{/if}} |
-
Please register or login to post a comment