Showing
21 changed files
with
827 additions
and
11 deletions
@@ -10,6 +10,8 @@ const isProduction = process.env.NODE_ENV === 'production'; | @@ -10,6 +10,8 @@ const isProduction = process.env.NODE_ENV === 'production'; | ||
10 | const isTest = process.env.NODE_ENV === 'test'; | 10 | const isTest = process.env.NODE_ENV === 'test'; |
11 | 11 | ||
12 | module.exports = { | 12 | module.exports = { |
13 | + app: 'web', | ||
14 | + appVersion: '4.6.0', // 调用api接口版本 | ||
13 | port: 6003, | 15 | port: 6003, |
14 | siteUrl: 'http://www.yohoblk.com', | 16 | siteUrl: 'http://www.yohoblk.com', |
15 | domains: { | 17 | domains: { |
doraemon/models/header.js
0 → 100644
1 | +/** | ||
2 | + * header model | ||
3 | + * @author: yyq<yanqing.yang@yoho.cn> | ||
4 | + * @date: 2016/06/30 | ||
5 | + */ | ||
6 | +'use strict'; | ||
7 | + | ||
8 | +const _ = require('lodash'); | ||
9 | + | ||
10 | +const serviceApi = global.yoho.ServiceAPI; | ||
11 | + | ||
12 | +/** | ||
13 | + * 获取菜单 | ||
14 | + * @param undefined | ||
15 | + * @return {array} 菜单数组 | ||
16 | + */ | ||
17 | +const getMenuData = () => ( | ||
18 | + { | ||
19 | + yohoGroup: [{ | ||
20 | + link: '/', | ||
21 | + cn: '有货BLACK', | ||
22 | + en: 'YOHO!BLK' | ||
23 | + }, { | ||
24 | + link: 'http://www.yohoboys.com', | ||
25 | + cn: '男生潮流', | ||
26 | + en: 'YOHO!BOYS' | ||
27 | + }, { | ||
28 | + link: 'http://www.yohogirls.com', | ||
29 | + cn: '女生潮流', | ||
30 | + en: 'YOHO!GIRLS' | ||
31 | + }, { | ||
32 | + link: 'http://app.yohoshow.com', | ||
33 | + cn: '物趣分享', | ||
34 | + en: 'YOHO!SHOW' | ||
35 | + }, { | ||
36 | + link: 'http://www.yohood.cn', | ||
37 | + cn: '潮流嘉年华', | ||
38 | + en: 'YO\'HOOD' | ||
39 | + }, { | ||
40 | + link: '//www.yohobuy.com', | ||
41 | + cn: '有货', | ||
42 | + en: 'YOHO!BUY' | ||
43 | + }] | ||
44 | + } | ||
45 | +); | ||
46 | + | ||
47 | +/** | ||
48 | + * 获取导航 | ||
49 | + * @param {Object} data 要处理的数据 | ||
50 | + * @param {String} type 频道类型 | ||
51 | + * @return {array} 导航数组 | ||
52 | + */ | ||
53 | +const getNavBar = (data, type) => { | ||
54 | + let navBars = []; | ||
55 | + | ||
56 | + _.forEach(data, item => { | ||
57 | + let obj = {}, | ||
58 | + lowEn = _.camelCase(item.sort_name_en).toLowerCase(); | ||
59 | + | ||
60 | + | ||
61 | + obj.link = item.sort_url; | ||
62 | + obj.cn = item.sort_name; | ||
63 | + obj.en = item.sort_name_en; | ||
64 | + obj.isNewPage = item.is_new_page === 'Y' ? true : false; | ||
65 | + | ||
66 | + if (type === lowEn) { | ||
67 | + obj.cur = true; | ||
68 | + } | ||
69 | + | ||
70 | + // 奥莱频道显示图片,特殊处理 | ||
71 | + if (lowEn === 'outlets') { | ||
72 | + obj.ico = item.sort_ico; | ||
73 | + } | ||
74 | + | ||
75 | + navBars.push(obj); | ||
76 | + }); | ||
77 | + | ||
78 | + return navBars; | ||
79 | +}; | ||
80 | + | ||
81 | + | ||
82 | +/** | ||
83 | + * 获取品牌名字 | ||
84 | + * @param {Object} data 要处理数据 | ||
85 | + * @return {array} 品牌数组 | ||
86 | + */ | ||
87 | +const getBrandItems = (data) => { | ||
88 | + let brandItems = []; | ||
89 | + | ||
90 | + _.forEach(data, item => { | ||
91 | + brandItems.push({ | ||
92 | + link: item.sort_url, | ||
93 | + hot: item.is_hot === 'Y' ? true : false, | ||
94 | + name: item.sort_name | ||
95 | + }); | ||
96 | + }); | ||
97 | + | ||
98 | + | ||
99 | + return brandItems; | ||
100 | +}; | ||
101 | + | ||
102 | +/** | ||
103 | + * 获取三级菜单 | ||
104 | + * @param {Object} data 要处理数据 | ||
105 | + * @return {array} 三级菜单数组 | ||
106 | + */ | ||
107 | +const getThirdNav = (data) => { | ||
108 | + let thirdNav = []; | ||
109 | + | ||
110 | + _.forEach(data, item => { | ||
111 | + let obj = { | ||
112 | + link: item.sort_url, | ||
113 | + name: item.sort_name | ||
114 | + }; | ||
115 | + | ||
116 | + thirdNav.push(obj); | ||
117 | + | ||
118 | + if (item.sub) { | ||
119 | + thirdNav = _.concat(thirdNav, getBrandItems(item.sub)); | ||
120 | + obj.category = true; | ||
121 | + // obj.brandItems = getBrandItems(item.sub); | ||
122 | + } | ||
123 | + | ||
124 | + }); | ||
125 | + | ||
126 | + return _.chunk(thirdNav, 10); | ||
127 | +}; | ||
128 | + | ||
129 | +/** | ||
130 | + * 获取子菜单 | ||
131 | + * @param {Object} data 要处理数据 | ||
132 | + * @param {String} type 频道类型 | ||
133 | + * @return {array} 子菜单数组 | ||
134 | + */ | ||
135 | +const getSubNav = (data, type) => { | ||
136 | + let subNav = []; | ||
137 | + | ||
138 | + _.forEach(data, it => { | ||
139 | + if (type === _.camelCase(it.sort_name_en).toLowerCase()) { | ||
140 | + _.forEach(it.sub, item => { | ||
141 | + let obj = {}; | ||
142 | + | ||
143 | + obj.link = item.sort_url; | ||
144 | + obj.cn = item.sort_name; | ||
145 | + obj.en = item.sort_name_en; | ||
146 | + obj.isHot = item.is_hot === 'Y' ? true : false; | ||
147 | + obj.isNew = item.is_new === 'Y' ? true : false; | ||
148 | + | ||
149 | + if (item.sub) { | ||
150 | + obj.thirdNav = getThirdNav(item.sub); | ||
151 | + obj.imgCode = item.content_code; | ||
152 | + } | ||
153 | + | ||
154 | + subNav.push(obj); | ||
155 | + }); | ||
156 | + } | ||
157 | + }); | ||
158 | + | ||
159 | + return subNav; | ||
160 | +}; | ||
161 | + | ||
162 | + | ||
163 | + | ||
164 | + | ||
165 | +/** | ||
166 | + * 处理接口返回的数据 | ||
167 | + * @param {object} 接口返回的对象 | ||
168 | + * @param {String} 指定页面类型 | ||
169 | + * @return {object} 头部数据 | ||
170 | + */ | ||
171 | +const setHeaderData = (resData, type) => ( | ||
172 | + { | ||
173 | + navMenu: { | ||
174 | + type: type, | ||
175 | + navbars: resData ? getNavBar(resData, type) : [], | ||
176 | + subNav: resData ? getSubNav(resData, type) : [] | ||
177 | + } | ||
178 | + } | ||
179 | +); | ||
180 | + | ||
181 | +const requestNavBar = (type) => { | ||
182 | + return serviceApi.get('operations/api/v6/category/getCategory', { | ||
183 | + client_type: 'web' | ||
184 | + }, { | ||
185 | + cache: true, | ||
186 | + code: 200 | ||
187 | + }).then(res => { | ||
188 | + return setHeaderData(res.data, type); | ||
189 | + }); | ||
190 | +}; | ||
191 | + | ||
192 | + | ||
193 | + | ||
194 | +/** | ||
195 | + * 请求头部数据 | ||
196 | + * @param {String} 频道类型 | ||
197 | + * @return {promise} | ||
198 | + */ | ||
199 | +exports.requestHeaderData = (type) => { | ||
200 | + let data = {}; | ||
201 | + | ||
202 | + let arr = [ | ||
203 | + getMenuData() | ||
204 | + ]; | ||
205 | + | ||
206 | + if (type) { | ||
207 | + arr.push(requestNavBar(type)); | ||
208 | + } | ||
209 | + | ||
210 | + return Promise.all(arr).then(result => { | ||
211 | + return Object.assign(data, { | ||
212 | + pageHeader: result[0] | ||
213 | + }, result[1]); | ||
214 | + }); | ||
215 | +}; |
@@ -17,23 +17,21 @@ | @@ -17,23 +17,21 @@ | ||
17 | {{#if devEnv}} | 17 | {{#if devEnv}} |
18 | <link rel="stylesheet" href="//localhost:5003/css/index.css"> | 18 | <link rel="stylesheet" href="//localhost:5003/css/index.css"> |
19 | {{^}} | 19 | {{^}} |
20 | - <link rel="stylesheet" href="//cdn.yoho.cn/yohobuy-node/{{version}}/index.css"> | 20 | + <link rel="stylesheet" href="//cdn.yoho.cn/yohoblk-node/{{version}}/index.css"> |
21 | {{/if}} | 21 | {{/if}} |
22 | </head> | 22 | </head> |
23 | <body> | 23 | <body> |
24 | {{> header}} | 24 | {{> header}} |
25 | - {{#if pageErr}} | ||
26 | - {{> 404}} | ||
27 | - {{^}} | ||
28 | - {{{body}}} | ||
29 | - {{/if}} | 25 | + |
26 | + {{{body}}} | ||
27 | + | ||
30 | {{> footer}} | 28 | {{> footer}} |
31 | {{#if devEnv}} | 29 | {{#if devEnv}} |
32 | <script src="//localhost:5003/libs.js"></script> | 30 | <script src="//localhost:5003/libs.js"></script> |
33 | <script src="//localhost:5003/{{module}}.{{page}}.js"></script> | 31 | <script src="//localhost:5003/{{module}}.{{page}}.js"></script> |
34 | {{^}} | 32 | {{^}} |
35 | - <script src="//cdn.yoho.cn/yohobuy-node/{{version}}/libs.js"></script> | ||
36 | - <script src="//cdn.yoho.cn/yohobuy-node/{{version}}/{{module}}.{{page}}.js"></script> | 33 | + <script src="//cdn.yoho.cn/yohoblk-node/{{version}}/libs.js"></script> |
34 | + <script src="//cdn.yoho.cn/yohoblk-node/{{version}}/{{module}}.{{page}}.js"></script> | ||
37 | {{/if}} | 35 | {{/if}} |
38 | </body> | 36 | </body> |
39 | </html> | 37 | </html> |
1 | +<div class="yoho-footer"> | ||
2 | + <div class="center-content"> | ||
3 | + <ul class="about-us clearfix"> | ||
4 | + <li><a href="#">BLK首页</a></li> | ||
5 | + <li><a href="#">客户服务</a></li> | ||
6 | + <li><a href="#">支付方式</a></li> | ||
7 | + <li><a href="#">配送方式</a></li> | ||
8 | + <li><a href="#">售后服务</a></li> | ||
9 | + </ul> | ||
10 | + <div class="record-info"> | ||
11 | + <p> | ||
12 | + CopyRight © 2007-2016 南京新与力文化传播有限公司 | ||
13 | + <a class="rbg6" href="http://www.miibeian.gov.cn/" target="_blank">苏ICP备09011225号</a> | ||
14 | + </p> | ||
15 | + <p>NewPower Co. 版权所有 经营许可证编号:苏B2-20120395</p> | ||
16 | + </div> | ||
17 | + </div> | ||
18 | +</div> |
1 | +{{# pageHeader}} | ||
2 | +<div class="yoho-header"> | ||
3 | + <div class="center-content"> | ||
4 | + <div class="yoho-group-map"> | ||
5 | + <span class="iconfont"></span> | ||
6 | + <a href="javascript:;">YOHO!BLK</a> | ||
7 | + <ul class="yoho-group"> | ||
8 | + {{# yohoGroup}} | ||
9 | + <li> | ||
10 | + <a href="{{link}}" data-en="{{en}}" data-cn="{{cn}}">{{en}}</a> | ||
11 | + </li> | ||
12 | + {{/ yohoGroup}} | ||
13 | + </ul> | ||
14 | + </div> | ||
15 | + <div class="header-tools right"> | ||
16 | + <ul> | ||
17 | + <li>登录 | 注册</li> | ||
18 | + <li> | ||
19 | + <a href="#">个人中心</a> | ||
20 | + </li> | ||
21 | + <li> | ||
22 | + <a href="#">帮助中心</a> | ||
23 | + </li> | ||
24 | + <li class="tag-phone"> | ||
25 | + <span class="tools-icon icon-phone"></span> | ||
26 | + 手机版 | ||
27 | + <div class="down-app-box sub-wrapper"> | ||
28 | + <div class="down-qr"></div> | ||
29 | + <p>扫描二维码<br>下载YOHO!BLK手机客户端</p> | ||
30 | + <a href="#" class="more-app">更多客户端下载请点击</a> | ||
31 | + </div> | ||
32 | + </li> | ||
33 | + <li class="tag-bag"> | ||
34 | + <span class="tools-icon icon-bag"> | ||
35 | + <b class="bag-num">1</b> | ||
36 | + </span> | ||
37 | + 购物袋 | ||
38 | + <div class="mini-bag-box sub-wrapper"> | ||
39 | + <div class="bag-content"> | ||
40 | + 购物袋空空的哦,去看看心仪的商品吧~ | ||
41 | + </div> | ||
42 | + </div> | ||
43 | + </li> | ||
44 | + </ul> | ||
45 | + </div> | ||
46 | + </div> | ||
47 | +</div> | ||
48 | +{{/ pageHeader}} | ||
49 | +{{> nav-menu}} |
doraemon/views/partial/nav-menu.hbs
0 → 100644
1 | +{{# navMenu}} | ||
2 | + <div class="yoho-nav"> | ||
3 | + <div class="main-nav"> | ||
4 | + <div class="center-content"> | ||
5 | + <ul class="main-nav-list"> | ||
6 | + {{# navbars}} | ||
7 | + <li class="nav-item{{#if cur}} cur{{/if}}"> | ||
8 | + <a href="{{link}}"> | ||
9 | + <span class="nav-en">{{en}}</span> | ||
10 | + <span class="nav-cn">{{cn}}</span> | ||
11 | + </a> | ||
12 | + </li> | ||
13 | + {{/ navbars}} | ||
14 | + </ul> | ||
15 | + <div class="main-logo"></div> | ||
16 | + </div> | ||
17 | + </div> | ||
18 | + <div class="sub-nav"> | ||
19 | + <div class="center-content"> | ||
20 | + <ul class="sub-nav-list clearfix"> | ||
21 | + {{# subNav}} | ||
22 | + <li{{#if thirdNav}} class="contain-third"{{/if}}> | ||
23 | + <a href="{{link}}"> | ||
24 | + <span class="nav-en">{{en}}</span> | ||
25 | + <span class="nav-cn">{{cn}}</span> | ||
26 | + </a> | ||
27 | + {{#if thirdNav}} | ||
28 | + <div class="third-nav-wrapper"> | ||
29 | + <div class="center-content"> | ||
30 | + {{# thirdNav}} | ||
31 | + <dl class="category-list"> | ||
32 | + {{# this}} | ||
33 | + {{#if category}} | ||
34 | + <dt> | ||
35 | + <a href="{{link}}">{{name}}</a> | ||
36 | + </dt> | ||
37 | + {{^}} | ||
38 | + <dd> | ||
39 | + <a href="{{link}}"{{#if hot}} class="hot"{{/if}}>{{name}}</a> | ||
40 | + </dd> | ||
41 | + {{/if}} | ||
42 | + {{/ this}} | ||
43 | + </dl> | ||
44 | + {{/ thirdNav}} | ||
45 | + <div class="show-detail" data-code="{{imgCode}}"> | ||
46 | + </div> | ||
47 | + </div> | ||
48 | + </div> | ||
49 | + {{/if}} | ||
50 | + </li> | ||
51 | + {{/ subNav}} | ||
52 | + </ul> | ||
53 | + <div class="search-entry"> | ||
54 | + <span class="iconfont"></span> | ||
55 | + <div class="search-wrapper"> | ||
56 | + <div class="search-input"> | ||
57 | + <span class="iconfont left"></span> | ||
58 | + <input type="text" name="query" id="search-key" class="search-key" placeholder="search"autocomplete="off"> | ||
59 | + <span class="iconfont right"></span> | ||
60 | + </div> | ||
61 | + <ul class="search-hint clearfix"> | ||
62 | + <li class="cur"> | ||
63 | + <a href="#"> | ||
64 | + <span>大衣</span> | ||
65 | + <span class="right">约300个商品</span> | ||
66 | + </a> | ||
67 | + </li> | ||
68 | + <li> | ||
69 | + <a href="#"> | ||
70 | + <span>大衣</span> | ||
71 | + <span class="right">约300个商品</span> | ||
72 | + </a> | ||
73 | + </li> | ||
74 | + <li> | ||
75 | + <a href="#"> | ||
76 | + <span>大衣</span> | ||
77 | + <span class="right">约300个商品</span> | ||
78 | + </a> | ||
79 | + </li> | ||
80 | + </ul> | ||
81 | + <div class="hot-search"> | ||
82 | + <a href="#">外套</a> | ||
83 | + <a href="#">长裤</a> | ||
84 | + <a href="#">大衣</a> | ||
85 | + <a href="#">毛衣</a> | ||
86 | + <a href="#">图案</a> | ||
87 | + <a href="#">简约连衣裙</a> | ||
88 | + </div> | ||
89 | + </div> | ||
90 | + </div> | ||
91 | + </div> | ||
92 | + </div> | ||
93 | + </div> | ||
94 | +{{/ navMenu}} |
doraemon/views/partial/sign-header.hbs
0 → 100644
@@ -52,7 +52,7 @@ | @@ -52,7 +52,7 @@ | ||
52 | "uuid": "^2.0.2", | 52 | "uuid": "^2.0.2", |
53 | "winston": "^2.2.0", | 53 | "winston": "^2.2.0", |
54 | "winston-daily-rotate-file": "^1.1.4", | 54 | "winston-daily-rotate-file": "^1.1.4", |
55 | - "yoho-node-lib": "0.0.5" | 55 | + "yoho-node-lib": "0.0.11" |
56 | }, | 56 | }, |
57 | "devDependencies": { | 57 | "devDependencies": { |
58 | "autoprefixer": "^6.3.6", | 58 | "autoprefixer": "^6.3.6", |
public/img/layout/bag-bg.png
0 → 100644
2.41 KB
public/img/layout/bag.png
0 → 100644
1.13 KB
public/img/layout/blk-logo.png
0 → 100644
2.07 KB
public/img/layout/phone.png
0 → 100644
992 Bytes
public/img/layout/qr.png
0 → 100644
4.12 KB
public/img/layout/sign-logo.png
0 → 100644
1.55 KB
public/img/sprite.layout.png
0 → 100644
447 Bytes
public/js/common/header.js
0 → 100644
1 | +/** | ||
2 | + * 公共头部 | ||
3 | + * @author: yyq<yanqing.yang@yoho.cn> | ||
4 | + * @date: 2016/7/1 | ||
5 | + */ | ||
6 | +var $ = require('yoho-jquery'); | ||
7 | + | ||
8 | +var delayer; | ||
9 | + | ||
10 | +$('.yoho-group a').hover(function() { | ||
11 | + var data = $(this).data(); | ||
12 | + | ||
13 | + $(this).text(data.cn); | ||
14 | +}, function() { | ||
15 | + var data = $(this).data(); | ||
16 | + | ||
17 | + $(this).text(data.en); | ||
18 | +}); | ||
19 | + | ||
20 | +$('.contain-third').on({ | ||
21 | + mouseenter: function() { | ||
22 | + var $thirdWrapper = $(this).children('.third-nav-wrapper'); | ||
23 | + | ||
24 | + delayer = setTimeout(function() { | ||
25 | + $thirdWrapper.show(); | ||
26 | + }, 200); | ||
27 | + }, | ||
28 | + mouseleave: function() { | ||
29 | + var $thirdWrapper = $(this).children('.third-nav-wrapper'); | ||
30 | + | ||
31 | + if (delayer) { | ||
32 | + clearTimeout(delayer); | ||
33 | + } | ||
34 | + $thirdWrapper.hide(); | ||
35 | + } | ||
36 | +}); |
public/scss/common/_footer.css
0 → 100644
1 | +.yoho-footer { | ||
2 | + .center-content { | ||
3 | + border-top: 2px solid #eee; | ||
4 | + } | ||
5 | + | ||
6 | + .about-us { | ||
7 | + line-height: 88px; | ||
8 | + font-size: 14px; | ||
9 | + font-weight: bold; | ||
10 | + | ||
11 | + li { | ||
12 | + float: left; | ||
13 | + width: 20%; | ||
14 | + text-align: center; | ||
15 | + } | ||
16 | + } | ||
17 | + | ||
18 | + .record-info { | ||
19 | + font-size: 12px; | ||
20 | + line-height: 1.5; | ||
21 | + text-align: center; | ||
22 | + padding: 15px 0; | ||
23 | + } | ||
24 | +} |
public/scss/common/_header.css
0 → 100644
1 | +.center-content { | ||
2 | + width: 1150px; | ||
3 | + margin: 0 auto; | ||
4 | +} | ||
5 | + | ||
6 | +.yoho-header { | ||
7 | + height: 50px; | ||
8 | + line-height: 50px; | ||
9 | + font-size: 12px; | ||
10 | + | ||
11 | + .yoho-group-map { | ||
12 | + padding-right: 2px; | ||
13 | + display: inline-block; | ||
14 | + position: relative; | ||
15 | + | ||
16 | + .iconfont { | ||
17 | + font-size: 18px; | ||
18 | + position: relative; | ||
19 | + top: -1px; | ||
20 | + } | ||
21 | + | ||
22 | + a { | ||
23 | + vertical-align: top; | ||
24 | + } | ||
25 | + | ||
26 | + .yoho-group { | ||
27 | + font-size: 14px; | ||
28 | + display: none; | ||
29 | + } | ||
30 | + | ||
31 | + &:hover { | ||
32 | + height: 50px; | ||
33 | + border-bottom: 2px solid #9a9a9a; | ||
34 | + | ||
35 | + > * { | ||
36 | + color: #9a9a9a; | ||
37 | + } | ||
38 | + | ||
39 | + .yoho-group { | ||
40 | + display: block; | ||
41 | + } | ||
42 | + } | ||
43 | + | ||
44 | + .yoho-group { | ||
45 | + border: 1px solid #eee; | ||
46 | + line-height: 32px; | ||
47 | + padding: 20px 0; | ||
48 | + background: #fff; | ||
49 | + position: absolute; | ||
50 | + z-index: 50; | ||
51 | + top: 50px; | ||
52 | + | ||
53 | + li { | ||
54 | + width: 170px; | ||
55 | + padding-left: 20px; | ||
56 | + font-weight: bold; | ||
57 | + } | ||
58 | + | ||
59 | + a:hover { | ||
60 | + color: #9a9a9a; | ||
61 | + } | ||
62 | + | ||
63 | + } | ||
64 | + } | ||
65 | + | ||
66 | + .header-tools { | ||
67 | + li { | ||
68 | + float: left; | ||
69 | + padding: 0 2px; | ||
70 | + margin: 0 12px; | ||
71 | + } | ||
72 | + | ||
73 | + .tag-phone, | ||
74 | + .tag-bag { | ||
75 | + padding-right: 6px; | ||
76 | + margin-right: 8px; | ||
77 | + position: relative; | ||
78 | + | ||
79 | + &:hover { | ||
80 | + color: #9a9a9a; | ||
81 | + height: 50px; | ||
82 | + border-bottom: 2px solid #9a9a9a; | ||
83 | + cursor: default; | ||
84 | + } | ||
85 | + | ||
86 | + &:hover .sub-wrapper { | ||
87 | + display: block; | ||
88 | + } | ||
89 | + } | ||
90 | + | ||
91 | + .tools-icon { | ||
92 | + width: 20px; | ||
93 | + height: 20px; | ||
94 | + display: inline-block; | ||
95 | + vertical-align: middle; | ||
96 | + position: relative; | ||
97 | + top: -1px; | ||
98 | + } | ||
99 | + | ||
100 | + .icon-phone { | ||
101 | + background-image: url('/layout/phone.png'); | ||
102 | + } | ||
103 | + | ||
104 | + .icon-bag { | ||
105 | + background-image: url('/layout/bag.png'); | ||
106 | + line-height: 22px; | ||
107 | + text-align: center; | ||
108 | + } | ||
109 | + | ||
110 | + .bag-num { | ||
111 | + font-size: 12px; | ||
112 | + font-weight: bold; | ||
113 | + color: #fff; | ||
114 | + display: inline-block; | ||
115 | + transform: scale(0.8, 0.8); | ||
116 | + } | ||
117 | + | ||
118 | + .down-app-box { | ||
119 | + width: 230px; | ||
120 | + color: #000; | ||
121 | + font-size: 14px; | ||
122 | + padding: 20px 0; | ||
123 | + margin-left: -86px; | ||
124 | + line-height: 1.5; | ||
125 | + border: 1px solid #eee; | ||
126 | + background: #fff; | ||
127 | + position: absolute; | ||
128 | + z-index: 50; | ||
129 | + text-align: center; | ||
130 | + display: none; | ||
131 | + | ||
132 | + .down-qr { | ||
133 | + display: inline-block; | ||
134 | + width: 138px; | ||
135 | + height: 138px; | ||
136 | + background-image: resolve('layout/qr.png'); | ||
137 | + } | ||
138 | + | ||
139 | + p { | ||
140 | + margin: 20px 0; | ||
141 | + } | ||
142 | + | ||
143 | + .more-app { | ||
144 | + color: #ccc; | ||
145 | + } | ||
146 | + } | ||
147 | + | ||
148 | + .mini-bag-box { | ||
149 | + width: 370px; | ||
150 | + padding: 18px; | ||
151 | + border: 1px solid #eee; | ||
152 | + background: #fff resolve('layout/bag-bg.png') no-repeat center center; | ||
153 | + position: absolute; | ||
154 | + z-index: 50; | ||
155 | + right: 0; | ||
156 | + display: none; | ||
157 | + | ||
158 | + .bag-content { | ||
159 | + padding: 280px 0 130px; | ||
160 | + text-align: center; | ||
161 | + color: #1d1d1d; | ||
162 | + } | ||
163 | + | ||
164 | + } | ||
165 | + } | ||
166 | +} | ||
167 | + | ||
168 | +.yoho-nav { | ||
169 | + .main-nav { | ||
170 | + height: 80px; | ||
171 | + | ||
172 | + .main-nav-list { | ||
173 | + li { | ||
174 | + float: left; | ||
175 | + height: 21px; | ||
176 | + margin-top: 38px; | ||
177 | + margin-right: 30px; | ||
178 | + font-weight: bold; | ||
179 | + } | ||
180 | + | ||
181 | + li > a { | ||
182 | + color: #999; | ||
183 | + } | ||
184 | + | ||
185 | + .cur { | ||
186 | + border-bottom: 2px solid #1d1d1d; | ||
187 | + } | ||
188 | + | ||
189 | + .cur > a { | ||
190 | + color: #1d1d1d; | ||
191 | + } | ||
192 | + } | ||
193 | + | ||
194 | + .main-logo { | ||
195 | + width: 264px; | ||
196 | + height: 40px; | ||
197 | + left: 50%; | ||
198 | + position: absolute; | ||
199 | + margin-left: -132px; | ||
200 | + margin-top: 20px; | ||
201 | + background: resolve('layout/blk-logo.png') no-repeat center center; | ||
202 | + } | ||
203 | + } | ||
204 | + | ||
205 | + .sub-nav { | ||
206 | + height: 50px; | ||
207 | + background: #1d1d1d; | ||
208 | + | ||
209 | + .sub-nav-list { | ||
210 | + max-width: 94%; | ||
211 | + line-height: 50px; | ||
212 | + display: inline-block; | ||
213 | + | ||
214 | + li { | ||
215 | + float: left; | ||
216 | + margin-right: 66px; | ||
217 | + } | ||
218 | + | ||
219 | + li > a { | ||
220 | + color: #fff; | ||
221 | + } | ||
222 | + | ||
223 | + li:hover > a { | ||
224 | + display: inline-block; | ||
225 | + height: 40px; | ||
226 | + border-bottom: 2px solid #fff; | ||
227 | + } | ||
228 | + } | ||
229 | + | ||
230 | + .search-entry { | ||
231 | + float: right; | ||
232 | + width: 50px; | ||
233 | + height: 50px; | ||
234 | + line-height: 50px; | ||
235 | + text-align: center; | ||
236 | + position: relative; | ||
237 | + color: #fff; | ||
238 | + cursor: pointer; | ||
239 | + | ||
240 | + .iconfont { | ||
241 | + font-size: 16px; | ||
242 | + } | ||
243 | + } | ||
244 | + | ||
245 | + .search-wrapper { | ||
246 | + width: 360px; | ||
247 | + padding: 16px 0 10px; | ||
248 | + font-size: 14px; | ||
249 | + top: 50px; | ||
250 | + right: 0; | ||
251 | + position: absolute; | ||
252 | + background: #1d1d1d; | ||
253 | + text-align: left; | ||
254 | + display: none; | ||
255 | + } | ||
256 | + | ||
257 | + .search-input { | ||
258 | + font-size: 16px; | ||
259 | + padding: 0 20px; | ||
260 | + | ||
261 | + .search-key { | ||
262 | + width: 260px; | ||
263 | + height: 30px; | ||
264 | + padding: 10px; | ||
265 | + background: none; | ||
266 | + border: none; | ||
267 | + color: #fff; | ||
268 | + } | ||
269 | + } | ||
270 | + | ||
271 | + .search-hint { | ||
272 | + display: none; | ||
273 | + | ||
274 | + li { | ||
275 | + line-height: 30px; | ||
276 | + padding: 0 20px; | ||
277 | + } | ||
278 | + | ||
279 | + .cur { | ||
280 | + background: #000; | ||
281 | + } | ||
282 | + | ||
283 | + a { | ||
284 | + color: #fff; | ||
285 | + } | ||
286 | + } | ||
287 | + | ||
288 | + .hot-search { | ||
289 | + line-height: 65px; | ||
290 | + margin: 0 20px; | ||
291 | + border-top: 1px solid #fff; | ||
292 | + | ||
293 | + a { | ||
294 | + color: #fff; | ||
295 | + margin-right: 15px; | ||
296 | + } | ||
297 | + } | ||
298 | + } | ||
299 | + | ||
300 | + .third-nav-wrapper { | ||
301 | + padding: 30px 0; | ||
302 | + font-size: 14px; | ||
303 | + position: absolute; | ||
304 | + background: #fff; | ||
305 | + width: 100%; | ||
306 | + left: 0; | ||
307 | + display: none; | ||
308 | + | ||
309 | + dl { | ||
310 | + float: left; | ||
311 | + height: 330px; | ||
312 | + line-height: 1; | ||
313 | + box-sizing: border-box; | ||
314 | + border-left: 1px solid #eee; | ||
315 | + padding: 0 20px; | ||
316 | + | ||
317 | + &:first-child { | ||
318 | + border-left: 0; | ||
319 | + padding-left: 0; | ||
320 | + } | ||
321 | + | ||
322 | + > * { | ||
323 | + width: 230px; | ||
324 | + height: 35px; | ||
325 | + } | ||
326 | + | ||
327 | + a { | ||
328 | + color: #666; | ||
329 | + } | ||
330 | + } | ||
331 | + | ||
332 | + dt > a { | ||
333 | + color: #000; | ||
334 | + text-decoration: underline; | ||
335 | + } | ||
336 | + } | ||
337 | +} |
public/scss/common/_index.css
0 → 100644
public/scss/common/_sign-header.css
0 → 100644
1 | +.yoho-sign-header { | ||
2 | + .center-content { | ||
3 | + height: 80px; | ||
4 | + border-bottom: 2px solid #eee; | ||
5 | + } | ||
6 | + | ||
7 | + .main-logo { | ||
8 | + width: 200px; | ||
9 | + height: 80px; | ||
10 | + background: resolve('layout/sign-logo.png') no-repeat center center; | ||
11 | + display: inline-block; | ||
12 | + } | ||
13 | + | ||
14 | + .header-tools { | ||
15 | + font-size: 14px; | ||
16 | + font-weight: bold; | ||
17 | + | ||
18 | + li { | ||
19 | + float: left; | ||
20 | + line-height: 80px; | ||
21 | + margin-left: 50px; | ||
22 | + } | ||
23 | + } | ||
24 | +} |
-
Please register or login to post a comment