Authored by yyq

Merge branch 'feature/sale' of http://git.dev.yoho.cn/web/yohobuy-node into feature/sale

@@ -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);
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 };
@@ -24,4 +24,3 @@ @@ -24,4 +24,3 @@
24 </div> 24 </div>
25 {{/ saleList}} 25 {{/ saleList}}
26 </div> 26 </div>
27 -{{> layout/f  
  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}}
  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">&#xe611;</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">&#xe603;</span>
  15 + {{^}}
  16 + <span class="active-icon iconfont">&#xe604;</span>
  17 + {{/if}}
  18 + {{^}}
  19 + <span class="iconfont">&#xe614;</span>
  20 + {{/if}}
  21 + {{^}}
  22 + <span class="iconfont">&#xe604;</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">&#xe636;</span>
  32 + {{^}}
  33 + <span class="iconfont">&#xe635;</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">&#xe604;</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">&#xe615;</span>
  61 + </a>
  62 + {{^}}
  63 + <span class="dis-icon iconfont">&#xe615;</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">&#xe601;</span>
  73 + </a>
  74 + {{^}}
  75 + <span class="dis-icon iconfont">&#xe601;</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}}