Merge branch 'develop'
Showing
27 changed files
with
273 additions
and
1017 deletions
@@ -31,6 +31,6 @@ app.use(cookieParser()); | @@ -31,6 +31,6 @@ app.use(cookieParser()); | ||
31 | require('./dispatch')(app); | 31 | require('./dispatch')(app); |
32 | 32 | ||
33 | // listener | 33 | // listener |
34 | -app.listen(3000, function() { | 34 | +app.listen(3001, function() { |
35 | console.log('yohobuy start'); | 35 | console.log('yohobuy start'); |
36 | }); | 36 | }); |
@@ -7,18 +7,58 @@ | @@ -7,18 +7,58 @@ | ||
7 | const _ = require('lodash'); | 7 | const _ = require('lodash'); |
8 | const channelModel = require('../models/channel'); | 8 | const channelModel = require('../models/channel'); |
9 | const helpers = require('../../../library/helpers'); | 9 | const helpers = require('../../../library/helpers'); |
10 | +const log = require('../../../library/logger'); | ||
11 | +const cookie = require('../../../library/cookie'); | ||
10 | 12 | ||
11 | -const mod = 'channel'; | ||
12 | -let footerTab = { | ||
13 | - indexUrl: helpers.url('/?go=1'), // 首页 | ||
14 | - categoryUrl: helpers.url('/cate'), // 分类 | ||
15 | - guangUrl: helpers.url('', null, 'guang'), // 逛首页 | ||
16 | - shoppingCartUrl: helpers.url('/cart/index/index'), // 购物车 | ||
17 | - mineUrl: helpers.url('/home') // 个人中心 | 13 | +const renderData = { |
14 | + module: 'channel', | ||
15 | + page: 'home', | ||
16 | + homeHeader: { | ||
17 | + searchUrl: helpers.url('/search', null, 'search') | ||
18 | + }, | ||
19 | + maybeLike: true, | ||
20 | + showFooterTab: { | ||
21 | + indexUrl: helpers.url('/?go=1'), // 首页 | ||
22 | + categoryUrl: helpers.url('/cate'), // 分类 | ||
23 | + guangUrl: helpers.url('', null, 'guang'), // 逛首页 | ||
24 | + shoppingCartUrl: helpers.url('/cart/index/index'), // 购物车 | ||
25 | + mineUrl: helpers.url('/home') // 个人中心 | ||
26 | + }, | ||
27 | + pageFooter: true | ||
18 | }; | 28 | }; |
19 | 29 | ||
30 | +const channelLogger = (err, res) => { | ||
31 | + log.error('频道页面渲染错误:' + JSON.stringify(err)); | ||
32 | + res.send('error'); | ||
33 | +}; | ||
34 | + | ||
35 | +/** | ||
36 | + * 频道页生成函数 | ||
37 | + * @param {[object]} req | ||
38 | + * @param {[object]} res | ||
39 | + * @param {[object]} data 自定义数据 | ||
40 | + * @return {[type]} | ||
41 | + */ | ||
42 | +const channelPage = (req, res, data) => { | ||
43 | + channelModel.getChannelDate({ | ||
44 | + gender: data.gender, | ||
45 | + uid: cookie.getUid(req) | ||
46 | + }).then(result => { | ||
47 | + res.render('channel', Object.assign(renderData, data, result)); | ||
48 | + }).catch((err) => { | ||
49 | + channelLogger(err, res); | ||
50 | + }); | ||
51 | +}; | ||
52 | + | ||
53 | +/** | ||
54 | + * 频道选择页 | ||
55 | + */ | ||
56 | +// exports.index = (req, res) => { | ||
57 | +// | ||
58 | +// }; | ||
59 | + | ||
20 | /** | 60 | /** |
21 | - * 频道选择 | 61 | + * 频道页,根据查询字符串跳转频道中间件 |
22 | * @param {object} req | 62 | * @param {object} req |
23 | * @param {object} res | 63 | * @param {object} res |
24 | * @param {Function} next | 64 | * @param {Function} next |
@@ -41,29 +81,59 @@ exports.switchChannel = (req, res, next) => { | @@ -41,29 +81,59 @@ exports.switchChannel = (req, res, next) => { | ||
41 | * 男生首页 | 81 | * 男生首页 |
42 | */ | 82 | */ |
43 | exports.boys = (req, res) => { | 83 | exports.boys = (req, res) => { |
44 | - channelModel.getChannelDate({ | 84 | + channelPage(req, res, { |
45 | gender: 'boys', | 85 | gender: 'boys', |
46 | - uid: 123 | ||
47 | - }).then(result => { | ||
48 | - res.render('channel', Object.assign({ | ||
49 | - module: mod, | ||
50 | - page: 'home', | ||
51 | - title: '男生首页', | ||
52 | - boysHomePage: true, | ||
53 | - homeHeader: { | ||
54 | - searchUrl: helpers.url('/search', null, 'search') | ||
55 | - }, | ||
56 | - maybeLike: true, | ||
57 | - showFooterTab: footerTab, | ||
58 | - pageFooter: true | ||
59 | - }, result)); | ||
60 | - }).catch(console.trace); | 86 | + title: '男生首页', |
87 | + boysHomePage: true | ||
88 | + }); | ||
89 | +}; | ||
90 | + | ||
91 | +/** | ||
92 | + * 女生首页 | ||
93 | + */ | ||
94 | +exports.girls = (req, res) => { | ||
95 | + channelPage(req, res, { | ||
96 | + gender: 'girls', | ||
97 | + title: '女生首页', | ||
98 | + girlsHomePage: true | ||
99 | + }); | ||
100 | +}; | ||
101 | + | ||
102 | +/** | ||
103 | + * 潮童首页 | ||
104 | + */ | ||
105 | + | ||
106 | +exports.kids = (req, res) => { | ||
107 | + channelPage(req, res, { | ||
108 | + gender: 'kids', | ||
109 | + title: '潮童首页', | ||
110 | + boysHomePage: true | ||
111 | + }); | ||
61 | }; | 112 | }; |
62 | 113 | ||
114 | +/** | ||
115 | + * 创意生活首页 | ||
116 | + */ | ||
117 | +exports.lifestyle = (req, res) => { | ||
118 | + channelPage(req, res, { | ||
119 | + gender: 'lifestyle', | ||
120 | + title: '创意生活首页', | ||
121 | + lifestyleHomePage: true | ||
122 | + }); | ||
123 | +}; | ||
124 | + | ||
125 | +/** | ||
126 | + * 频道页底部 bannel | ||
127 | + * @param {[object]} req | ||
128 | + * @param {[object]} res | ||
129 | + * @return {[type]} | ||
130 | + */ | ||
63 | exports.bottomBanner = (req, res) => { | 131 | exports.bottomBanner = (req, res) => { |
64 | let gender = req.query.gender || 'boys'; | 132 | let gender = req.query.gender || 'boys'; |
65 | 133 | ||
66 | channelModel.getBottomBannerDate(gender).then(result => { | 134 | channelModel.getBottomBannerDate(gender).then(result => { |
67 | res.send(result); | 135 | res.send(result); |
68 | - }).catch(console.trace); | 136 | + }).catch((err) => { |
137 | + channelLogger(err, res); | ||
138 | + }); | ||
69 | }; | 139 | }; |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | */ | 5 | */ |
6 | 'use strict'; | 6 | 'use strict'; |
7 | const _ = require('lodash'); | 7 | const _ = require('lodash'); |
8 | -const API = require('../../../library/api').API; | 8 | +const API = require('../../../library/api').ServiceAPI; |
9 | const sign = require('../../../library/sign'); | 9 | const sign = require('../../../library/sign'); |
10 | const camelCase = require('../../../library/camel-case'); | 10 | const camelCase = require('../../../library/camel-case'); |
11 | 11 | ||
@@ -103,6 +103,24 @@ const processFloor = (list) => { | @@ -103,6 +103,24 @@ const processFloor = (list) => { | ||
103 | 103 | ||
104 | _.forEach(list, (floor) => { | 104 | _.forEach(list, (floor) => { |
105 | floor[_.camelCase(floor.templateName)] = true; | 105 | floor[_.camelCase(floor.templateName)] = true; |
106 | + | ||
107 | + // 特殊资源位处理 | ||
108 | + // PLUS | ||
109 | + if (floor.singleNameImage && floor.data) { | ||
110 | + floor.data.title = { | ||
111 | + title: floor.data.title | ||
112 | + }; | ||
113 | + } | ||
114 | + | ||
115 | + // 潮流时装/经典裤裙/时尚靴履/潮人配饰/潮流上装 | ||
116 | + if (floor.recommendContentOne && floor.data) { | ||
117 | + if (floor.data.bigImage && floor.data.bigImage.length > 1) { | ||
118 | + floor.data.bigImage = { | ||
119 | + bigList: floor.data.bigImage | ||
120 | + }; | ||
121 | + } | ||
122 | + } | ||
123 | + | ||
106 | formatData.push(floor); | 124 | formatData.push(floor); |
107 | }); | 125 | }); |
108 | 126 | ||
@@ -128,7 +146,7 @@ const getChannelResource = (params) => { | @@ -128,7 +146,7 @@ const getChannelResource = (params) => { | ||
128 | } | 146 | } |
129 | 147 | ||
130 | return api.get('operations/api/v5/resource/home', sign.apiSign(params)).then(result => { | 148 | return api.get('operations/api/v5/resource/home', sign.apiSign(params)).then(result => { |
131 | - if (result.code === 200) { | 149 | + if (result && result.code === 200) { |
132 | return processFloor(result.data.list); | 150 | return processFloor(result.data.list); |
133 | } else { | 151 | } else { |
134 | return result; | 152 | return result; |
@@ -145,7 +163,7 @@ const getLeftNav = (choosed) => { | @@ -145,7 +163,7 @@ const getLeftNav = (choosed) => { | ||
145 | choosed = choosed || 'all'; | 163 | choosed = choosed || 'all'; |
146 | 164 | ||
147 | return api.get('operations/api/v6/category/getCategory', sign.apiSign({})).then(result => { | 165 | return api.get('operations/api/v6/category/getCategory', sign.apiSign({})).then(result => { |
148 | - if (result.code === 200) { | 166 | + if (result && result.code === 200) { |
149 | return processSideBar(result.data, choosed); | 167 | return processSideBar(result.data, choosed); |
150 | } else { | 168 | } else { |
151 | return result; | 169 | return result; |
@@ -13,10 +13,10 @@ const channel = require(cRoot); | @@ -13,10 +13,10 @@ const channel = require(cRoot); | ||
13 | const router = express.Router(); // eslint-disable-line | 13 | const router = express.Router(); // eslint-disable-line |
14 | 14 | ||
15 | router.get('/boys', channel.switchChannel, channel.boys); | 15 | router.get('/boys', channel.switchChannel, channel.boys); |
16 | +router.get('/girls', channel.switchChannel, channel.girls); | ||
17 | +router.get('/kids', channel.switchChannel, channel.kids); | ||
18 | +router.get('/lifestyle', channel.switchChannel, channel.lifestyle); | ||
16 | 19 | ||
17 | -// router.get('/girls', channel.switchChannel, channel.girls); | ||
18 | -// router.get('/kids', channel.switchChannel, channel.kids); | ||
19 | -// router.get('/lifestyle', channel.switchChannel, channel.lifestyle); | ||
20 | router.get('/channel/bottomBanner', channel.bottomBanner); | 20 | router.get('/channel/bottomBanner', channel.bottomBanner); |
21 | 21 | ||
22 | module.exports = router; | 22 | module.exports = router; |
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | */ | 6 | */ |
7 | 7 | ||
8 | module.exports = { | 8 | module.exports = { |
9 | - siteUrl: 'http://www.yohobuy.com', | 9 | + siteUrl: 'http://m.yohobuy.com', |
10 | domains: { | 10 | domains: { |
11 | api: 'http://testapi.yoho.cn:28078/', | 11 | api: 'http://testapi.yoho.cn:28078/', |
12 | service: 'http://testservice.yoho.cn:28077/' | 12 | service: 'http://testservice.yoho.cn:28077/' |
doraemon/m-views/layout.hbs
deleted
100644 → 0
1 | -<!DOCTYPE html> | ||
2 | -<html> | ||
3 | - <head> | ||
4 | - <meta charset="utf-8"> | ||
5 | - <title>{{title}}</title> | ||
6 | - <meta name="keywords" content="{{keywords}}"> | ||
7 | - <meta name="description" content="{{description}}"> | ||
8 | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
9 | - <meta http-equiv="cleartype" content="on"> | ||
10 | - <meta name="apple-mobile-web-app-status-bar-style" content="black" /> | ||
11 | - <meta content="telephone=no" name="format-detection" /> | ||
12 | - <meta content="email=no" name="format-detection" /> | ||
13 | - <link rel="dns-prefetch" href="//cdn.yoho.cn"> | ||
14 | - <link rel="dns-prefetch" href="//static.yohobuy.com"> | ||
15 | - <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> | ||
16 | - <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> | ||
17 | - <script type="text/javascript"> | ||
18 | - (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window); | ||
19 | - </script> | ||
20 | - {{#if devEnv}} | ||
21 | - <link rel="stylesheet" href="//localhost:5000/css/m-index.css"> | ||
22 | - {{^}} | ||
23 | - <link rel="stylesheet" href="//cdn.yoho.cn/m-yohobuy-node/{{version}}/m-index.css"> | ||
24 | - {{/if}} | ||
25 | - <link rel="apple-touch-icon-precomposed" href="http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> | ||
26 | - <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> | ||
27 | - <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> | ||
28 | - </head> | ||
29 | - <body {{#if isPassportPage}}class=passport-body{{/if}}> | ||
30 | - {{#if systemUpdate}} | ||
31 | - {{> updata}} | ||
32 | - {{/if}} | ||
33 | - | ||
34 | - {{> header}} | ||
35 | - {{{body}}} | ||
36 | - {{> footer}} | ||
37 | - | ||
38 | - {{#if devEnv}} | ||
39 | - <script src="//localhost:8000/{{module}}.{{page}}.js"></script> | ||
40 | - {{^}} | ||
41 | - <script src="//cdn.yoho.cn/m-yohobuy-node/{{version}}/{{module}}.{{page}}.js"></script> | ||
42 | - {{/if}} | ||
43 | - </body> | ||
44 | -</html> |
doraemon/m-views/partial/footer.hbs
deleted
100644 → 0
1 | -{{#pageFooter}} | ||
2 | -<footer id="yoho-footer" class="yoho-footer"> | ||
3 | - <p class="op-row"> | ||
4 | - <span class="back-to-top"> | ||
5 | - Back to top | ||
6 | - <i class="iconfont"></i> | ||
7 | - </span> | ||
8 | - </p> | ||
9 | - <address class="copyright"> | ||
10 | - CopyRight©2007-2016 南京新与力文化传播有限公司 | ||
11 | - </address> | ||
12 | -</footer> | ||
13 | -{{/pageFooter}} |
doraemon/m-views/partial/header.hbs
deleted
100644 → 0
1 | -{{#pageHeader}} | ||
2 | -<header id="yoho-header" class="yoho-header{{#if boys}} boys{{/if}}{{#if girls}} girls{{/if}}{{#if kids}} kids{{/if}}{{#if lifeStyle}} life-style{{/if}}"> | ||
3 | - {{#navBack}} | ||
4 | - <a href="{{#if backUrl}}{{backUrl}}{{^}}javascript:history.go(-1);{{/if}}" class="iconfont nav-back"></a> | ||
5 | - {{/navBack}} | ||
6 | - {{#navBtn}} | ||
7 | - <span class="iconfont nav-home"></span> | ||
8 | - {{/navBtn}} | ||
9 | - {{#currencyPage}} | ||
10 | - <a href="/home/helpDetail?code=20151230-102233&caption=YOHO币介绍" class="iconfont nav-home"></a> | ||
11 | - {{/currencyPage}} | ||
12 | - {{#currencyDetailPage}} | ||
13 | - <a href="/home/helpDetail?code=20111130-152530&caption=如何使用YOHO币支付" class="iconfont nav-home"></a> | ||
14 | - {{/currencyDetailPage}} | ||
15 | - {{#navPhone}} | ||
16 | - <a href="{{.}}" class="iconfont nav-home"></a> | ||
17 | - {{/navPhone}} | ||
18 | - {{#navTitle}} | ||
19 | - <p class="nav-title">{{.}}</p> | ||
20 | - {{/navTitle}} | ||
21 | -</header> | ||
22 | -{{#navBtn}} | ||
23 | -<div class="homebuttom hide {{#if ../boys}} boys{{/if}}{{#if ../girls}} girls{{/if}}{{#if ../kids}} kids{{/if}}{{#if ../lifeStyle}} life-style{{/if}}"> | ||
24 | - <ul> | ||
25 | - <li> | ||
26 | - <a href="{{ indexUrl }}"> | ||
27 | - <i class="iconfont"></i> | ||
28 | - <span>首页</span> | ||
29 | - </a> | ||
30 | - </li> | ||
31 | - <li> | ||
32 | - <a href="{{ categoryUrl }}"> | ||
33 | - <i class="iconfont"></i> | ||
34 | - <span>分类</span> | ||
35 | - </a> | ||
36 | - </li> | ||
37 | - <li> | ||
38 | - <a href="{{ shoppingCartUrl }}"> | ||
39 | - <i class="iconfont"></i> | ||
40 | - <span>购物车</span> | ||
41 | - </a> | ||
42 | - </li> | ||
43 | - <li> | ||
44 | - <a href="{{ mineUrl }}"> | ||
45 | - <i class="iconfont"></i> | ||
46 | - <span>我的</span> | ||
47 | - </a> | ||
48 | - </li> | ||
49 | - </ul> | ||
50 | -</div> | ||
51 | -{{/navBtn}} | ||
52 | - | ||
53 | -{{/pageHeader}} |
1 | -<!DOCTYPE html> | ||
2 | -<html> | ||
3 | - <head> | ||
4 | - <meta charset="utf-8"> | ||
5 | - <title>{{title}}</title> | ||
6 | - <meta name="keywords" content="{{keywords}}"> | ||
7 | - <meta name="description" content="{{description}}"> | ||
8 | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
9 | - <meta http-equiv="cleartype" content="on"> | ||
10 | - <meta name="apple-mobile-web-app-status-bar-style" content="black" /> | ||
11 | - <meta content="telephone=no" name="format-detection" /> | ||
12 | - <meta content="email=no" name="format-detection" /> | ||
13 | - <link rel="dns-prefetch" href="//cdn.yoho.cn"> | ||
14 | - <link rel="dns-prefetch" href="//static.yohobuy.com"> | ||
15 | - <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> | 1 | +<!DOCTYPE html> |
2 | +<html> | ||
3 | + <head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>{{title}}</title> | ||
6 | + <meta name="keywords" content="{{keywords}}"> | ||
7 | + <meta name="description" content="{{description}}"> | ||
8 | + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
9 | + <meta http-equiv="cleartype" content="on"> | ||
10 | + <meta name="apple-mobile-web-app-status-bar-style" content="black" /> | ||
11 | + <meta content="telephone=no" name="format-detection" /> | ||
12 | + <meta content="email=no" name="format-detection" /> | ||
13 | + <link rel="dns-prefetch" href="//cdn.yoho.cn"> | ||
14 | + <link rel="dns-prefetch" href="//static.yohobuy.com"> | ||
15 | + <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> | ||
16 | <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> | 16 | <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> |
17 | - {{!-- H5 layout 加了以后移走 --}} | ||
18 | <script type="text/javascript"> | 17 | <script type="text/javascript"> |
19 | - (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window); | 18 | + (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window); |
20 | </script> | 19 | </script> |
21 | - {{#if devEnv}} | 20 | + {{#if devEnv}} |
22 | <link rel="stylesheet" href="//localhost:5001/css/index.css"> | 21 | <link rel="stylesheet" href="//localhost:5001/css/index.css"> |
23 | - {{^}} | ||
24 | - <link rel="stylesheet" href="//cdn.yoho.cn/m-yohobuy-node/{{version}}/index.css"> | ||
25 | - {{/if}} | ||
26 | - </head> | ||
27 | - <body> | 22 | + {{^}} |
23 | + <link rel="stylesheet" href="//cdn.yoho.cn/m-yohobuy-node/{{version}}/m-index.css"> | ||
24 | + {{/if}} | ||
25 | + <link rel="apple-touch-icon-precomposed" href="http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> | ||
26 | + <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> | ||
27 | + <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> | ||
28 | + </head> | ||
29 | + <body {{#if isPassportPage}}class=passport-body{{/if}}> | ||
30 | + {{#if systemUpdate}} | ||
31 | + {{> updata}} | ||
32 | + {{/if}} | ||
33 | + | ||
34 | + {{> header}} | ||
28 | {{{body}}} | 35 | {{{body}}} |
29 | - {{#if devEnv}} | 36 | + {{> footer}} |
37 | + | ||
38 | + {{#if devEnv}} | ||
30 | <script src="//localhost:5001/{{module}}.{{page}}.js"></script> | 39 | <script src="//localhost:5001/{{module}}.{{page}}.js"></script> |
31 | - {{^}} | ||
32 | - <script src="//cdn.yoho.cn/m-yohobuy-node/{{version}}/{{module}}.{{page}}.js"></script> | ||
33 | - {{/if}} | ||
34 | - </body> | 40 | + {{^}} |
41 | + <script src="//cdn.yoho.cn/m-yohobuy-node/{{version}}/{{module}}.{{page}}.js"></script> | ||
42 | + {{/if}} | ||
43 | + </body> | ||
35 | </html> | 44 | </html> |
1 | -<p>I am footer</p> | ||
1 | +{{#pageFooter}} | ||
2 | +<footer id="yoho-footer" class="yoho-footer"> | ||
3 | + <p class="op-row"> | ||
4 | + <span class="back-to-top"> | ||
5 | + Back to top | ||
6 | + <i class="iconfont"></i> | ||
7 | + </span> | ||
8 | + </p> | ||
9 | + <address class="copyright"> | ||
10 | + CopyRight©2007-2016 南京新与力文化传播有限公司 | ||
11 | + </address> | ||
12 | +</footer> | ||
13 | +{{/pageFooter}} |
1 | -<p>I am header</p> | ||
1 | +{{#pageHeader}} | ||
2 | +<header id="yoho-header" class="yoho-header{{#if boys}} boys{{/if}}{{#if girls}} girls{{/if}}{{#if kids}} kids{{/if}}{{#if lifeStyle}} life-style{{/if}}"> | ||
3 | + {{#navBack}} | ||
4 | + <a href="{{#if backUrl}}{{backUrl}}{{^}}javascript:history.go(-1);{{/if}}" class="iconfont nav-back"></a> | ||
5 | + {{/navBack}} | ||
6 | + {{#navBtn}} | ||
7 | + <span class="iconfont nav-home"></span> | ||
8 | + {{/navBtn}} | ||
9 | + {{#currencyPage}} | ||
10 | + <a href="/home/helpDetail?code=20151230-102233&caption=YOHO币介绍" class="iconfont nav-home"></a> | ||
11 | + {{/currencyPage}} | ||
12 | + {{#currencyDetailPage}} | ||
13 | + <a href="/home/helpDetail?code=20111130-152530&caption=如何使用YOHO币支付" class="iconfont nav-home"></a> | ||
14 | + {{/currencyDetailPage}} | ||
15 | + {{#navPhone}} | ||
16 | + <a href="{{.}}" class="iconfont nav-home"></a> | ||
17 | + {{/navPhone}} | ||
18 | + {{#navTitle}} | ||
19 | + <p class="nav-title">{{.}}</p> | ||
20 | + {{/navTitle}} | ||
21 | +</header> | ||
22 | +{{#navBtn}} | ||
23 | +<div class="homebuttom hide {{#if ../boys}} boys{{/if}}{{#if ../girls}} girls{{/if}}{{#if ../kids}} kids{{/if}}{{#if ../lifeStyle}} life-style{{/if}}"> | ||
24 | + <ul> | ||
25 | + <li> | ||
26 | + <a href="{{ indexUrl }}"> | ||
27 | + <i class="iconfont"></i> | ||
28 | + <span>首页</span> | ||
29 | + </a> | ||
30 | + </li> | ||
31 | + <li> | ||
32 | + <a href="{{ categoryUrl }}"> | ||
33 | + <i class="iconfont"></i> | ||
34 | + <span>分类</span> | ||
35 | + </a> | ||
36 | + </li> | ||
37 | + <li> | ||
38 | + <a href="{{ shoppingCartUrl }}"> | ||
39 | + <i class="iconfont"></i> | ||
40 | + <span>购物车</span> | ||
41 | + </a> | ||
42 | + </li> | ||
43 | + <li> | ||
44 | + <a href="{{ mineUrl }}"> | ||
45 | + <i class="iconfont"></i> | ||
46 | + <span>我的</span> | ||
47 | + </a> | ||
48 | + </li> | ||
49 | + </ul> | ||
50 | +</div> | ||
51 | +{{/navBtn}} | ||
52 | + | ||
53 | +{{/pageHeader}} |
@@ -60,7 +60,8 @@ class API { | @@ -60,7 +60,8 @@ class API { | ||
60 | _.forEach(urls, function(el) { | 60 | _.forEach(urls, function(el) { |
61 | rps.push(rp({ | 61 | rps.push(rp({ |
62 | url: `${ApiUrl}${el.url}`, | 62 | url: `${ApiUrl}${el.url}`, |
63 | - qs: el.data | 63 | + qs: el.data, |
64 | + json: true | ||
64 | })); | 65 | })); |
65 | }); | 66 | }); |
66 | 67 | ||
@@ -78,7 +79,8 @@ class API { | @@ -78,7 +79,8 @@ class API { | ||
78 | return rp({ | 79 | return rp({ |
79 | url: `${ApiUrl}${url}`, | 80 | url: `${ApiUrl}${url}`, |
80 | method: 'post', | 81 | method: 'post', |
81 | - form: data | 82 | + form: data, |
83 | + json: true | ||
82 | }); | 84 | }); |
83 | } | 85 | } |
84 | } | 86 | } |
library/cookie.js
0 → 100644
1 | +/** | ||
2 | + * 获取 UID | ||
3 | + * @param {[object]} req | ||
4 | + * @return {[string]} | ||
5 | + */ | ||
6 | +exports.getUid = (req) => { | ||
7 | + var _uid = 0, | ||
8 | + cookie = req.cookies._UID, | ||
9 | + cookieList; | ||
10 | + | ||
11 | + if (req.isApp) { | ||
12 | + return req.query.uid || 0; | ||
13 | + } | ||
14 | + | ||
15 | + if (cookie) { | ||
16 | + cookieList = cookie.split('::'); | ||
17 | + if (cookieList[1] && !isNaN(cookieList[1])) { | ||
18 | + _uid = cookieList[1]; | ||
19 | + } | ||
20 | + } | ||
21 | + | ||
22 | + return _uid; | ||
23 | +}; |
@@ -193,7 +193,7 @@ gulp.task('webpack-dev-server', () => { | @@ -193,7 +193,7 @@ gulp.task('webpack-dev-server', () => { | ||
193 | 193 | ||
194 | new WebpackDevServer(webpack(devConfig), { | 194 | new WebpackDevServer(webpack(devConfig), { |
195 | contentBase: '.', | 195 | contentBase: '.', |
196 | - publicPath: '//localhost:8000/', | 196 | + publicPath: '//localhost:5001/', |
197 | hot: true, | 197 | hot: true, |
198 | stats: { | 198 | stats: { |
199 | colors: true | 199 | colors: true |
@@ -214,7 +214,7 @@ gulp.task('webpack', () => { | @@ -214,7 +214,7 @@ gulp.task('webpack', () => { | ||
214 | var proConfig = Object.assign({}, webpackConfig); | 214 | var proConfig = Object.assign({}, webpackConfig); |
215 | 215 | ||
216 | proConfig.output.path = dist.js; | 216 | proConfig.output.path = dist.js; |
217 | - webpack(proConfig, (err) => { | 217 | + webpack(proConfig, (err, stats) => { |
218 | if (err) { | 218 | if (err) { |
219 | throw new gutil.PluginError('webpack', err); | 219 | throw new gutil.PluginError('webpack', err); |
220 | } | 220 | } |
public/scss/common/_lazy-failure.css
deleted
100644 → 0
public/scss/common/_loading.css
deleted
100644 → 0
1 | -.loading-mask { | ||
2 | - position: fixed; | ||
3 | - background: rgba(0, 0, 0, 0.1); | ||
4 | - top: 0; | ||
5 | - bottom: 0; | ||
6 | - right: 0; | ||
7 | - left: 0; | ||
8 | - | ||
9 | - @keyframes scale { | ||
10 | - 0% { | ||
11 | - transform: scale(1); | ||
12 | - opacity: 1; | ||
13 | - } | ||
14 | - | ||
15 | - 45% { | ||
16 | - transform: scale(0.1); | ||
17 | - opacity: 0.7; | ||
18 | - } | ||
19 | - | ||
20 | - 80% { | ||
21 | - transform: scale(1); | ||
22 | - opacity: 1; | ||
23 | - } | ||
24 | - } | ||
25 | - | ||
26 | - .loading { | ||
27 | - position: absolute; | ||
28 | - width: 120px; | ||
29 | - height: 40px; | ||
30 | - top: 50%; | ||
31 | - left: 50%; | ||
32 | - margin-top: -20px; | ||
33 | - margin-left: -60px; | ||
34 | - | ||
35 | - > div { | ||
36 | - display: inline-block; | ||
37 | - background: #fff; | ||
38 | - width: 30px; | ||
39 | - height: 30px; | ||
40 | - border-radius: 100%; | ||
41 | - margin: 4px; | ||
42 | - $init: 0.12; | ||
43 | - | ||
44 | - @for $i from 1 to 3 { | ||
45 | - &:nth-child($i) { | ||
46 | - animation: scale 0.75s $(init)s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); | ||
47 | - } | ||
48 | - $init: ($i + 1) * 0.12; | ||
49 | - } | ||
50 | - } | ||
51 | - } | ||
52 | -} |
public/scss/common/_reset.css
deleted
100644 → 0
1 | -html, | ||
2 | -body, | ||
3 | -div, | ||
4 | -span, | ||
5 | -applet, | ||
6 | -object, | ||
7 | -iframe, | ||
8 | -h1, | ||
9 | -h2, | ||
10 | -h3, | ||
11 | -h4, | ||
12 | -h5, | ||
13 | -h6, | ||
14 | -p, | ||
15 | -blockquote, | ||
16 | -pre, | ||
17 | -a, | ||
18 | -abbr, | ||
19 | -acronym, | ||
20 | -address, | ||
21 | -big, | ||
22 | -cite, | ||
23 | -code, | ||
24 | -del, | ||
25 | -dfn, | ||
26 | -em, | ||
27 | -img, | ||
28 | -ins, | ||
29 | -kbd, | ||
30 | -q, | ||
31 | -s, | ||
32 | -samp, | ||
33 | -small, | ||
34 | -strike, | ||
35 | -strong, | ||
36 | -sub, | ||
37 | -sup, | ||
38 | -tt, | ||
39 | -var, | ||
40 | -b, | ||
41 | -u, | ||
42 | -i, | ||
43 | -center, | ||
44 | -dl, | ||
45 | -dt, | ||
46 | -dd, | ||
47 | -ol, | ||
48 | -ul, | ||
49 | -li, | ||
50 | -fieldset, | ||
51 | -form, | ||
52 | -label, | ||
53 | -legend, | ||
54 | -table, | ||
55 | -caption, | ||
56 | -tbody, | ||
57 | -tfoot, | ||
58 | -thead, | ||
59 | -tr, | ||
60 | -th, | ||
61 | -td, | ||
62 | -article, | ||
63 | -aside, | ||
64 | -canvas, | ||
65 | -details, | ||
66 | -embed, | ||
67 | -figure, | ||
68 | -figcaption, | ||
69 | -footer, | ||
70 | -header, | ||
71 | -hgroup, | ||
72 | -menu, | ||
73 | -nav, | ||
74 | -output, | ||
75 | -ruby, | ||
76 | -section, | ||
77 | -summary, | ||
78 | -time, | ||
79 | -mark, | ||
80 | -audio, | ||
81 | -video { | ||
82 | - margin: 0; | ||
83 | - padding: 0; | ||
84 | - border: 0; | ||
85 | - font: inherit; | ||
86 | - font-size: 100%; | ||
87 | - vertical-align: baseline; | ||
88 | -} | ||
89 | - | ||
90 | -html { | ||
91 | - line-height: 1; | ||
92 | -} | ||
93 | - | ||
94 | -ol, | ||
95 | -ul { | ||
96 | - list-style: none; | ||
97 | -} | ||
98 | - | ||
99 | -table { | ||
100 | - border-collapse: collapse; | ||
101 | - border-spacing: 0; | ||
102 | -} | ||
103 | - | ||
104 | -caption, | ||
105 | -th, | ||
106 | -td { | ||
107 | - text-align: left; | ||
108 | - font-weight: normal; | ||
109 | - vertical-align: middle; | ||
110 | -} | ||
111 | - | ||
112 | -q, | ||
113 | -blockquote { | ||
114 | - quotes: none; | ||
115 | -} | ||
116 | - | ||
117 | -q:before, | ||
118 | -q:after, | ||
119 | -blockquote:before, | ||
120 | -blockquote:after { | ||
121 | - content: ""; | ||
122 | - content: none; | ||
123 | -} | ||
124 | - | ||
125 | -a img { | ||
126 | - border: none; | ||
127 | -} | ||
128 | - | ||
129 | -article, | ||
130 | -aside, | ||
131 | -details, | ||
132 | -figcaption, | ||
133 | -figure, | ||
134 | -footer, | ||
135 | -header, | ||
136 | -hgroup, | ||
137 | -main, | ||
138 | -menu, | ||
139 | -nav, | ||
140 | -section, | ||
141 | -summary { | ||
142 | - display: block; | ||
143 | -} |
public/scss/common/_swiper.css
deleted
100644 → 0
1 | -/* stylelint-disable */ | ||
2 | -/** | ||
3 | - * Swiper 3.0.8 | ||
4 | - * Most modern mobile touch slider and framework with hardware accelerated transitions | ||
5 | - * | ||
6 | - * http://www.idangero.us/swiper/ | ||
7 | - * | ||
8 | - * Copyright 2015, Vladimir Kharlampidi | ||
9 | - * The iDangero.us | ||
10 | - * http://www.idangero.us/ | ||
11 | - * | ||
12 | - * Licensed under MIT | ||
13 | - * | ||
14 | - * Released on: June 14, 2015 | ||
15 | - */ | ||
16 | -.swiper-container { | ||
17 | - margin: 0 auto; | ||
18 | - position: relative; | ||
19 | - overflow: hidden; | ||
20 | - | ||
21 | - /* Fix of Webkit flickering */ | ||
22 | - z-index: 1; | ||
23 | -} | ||
24 | - | ||
25 | -.swiper-container-no-flexbox .swiper-slide { | ||
26 | - float: left; | ||
27 | -} | ||
28 | - | ||
29 | -.swiper-container-vertical > .swiper-wrapper { | ||
30 | - -webkit-box-orient: vertical; | ||
31 | - -moz-box-orient: vertical; | ||
32 | - -ms-flex-direction: column; | ||
33 | - -webkit-flex-direction: column; | ||
34 | - flex-direction: column; | ||
35 | -} | ||
36 | - | ||
37 | -.swiper-wrapper { | ||
38 | - position: relative; | ||
39 | - width: 100%; | ||
40 | - height: 100%; | ||
41 | - z-index: 1; | ||
42 | - display: -webkit-box; | ||
43 | - display: -moz-box; | ||
44 | - display: -ms-flexbox; | ||
45 | - display: -webkit-flex; | ||
46 | - display: flex; | ||
47 | - -webkit-transform-style: preserve-3d; | ||
48 | - -moz-transform-style: preserve-3d; | ||
49 | - -ms-transform-style: preserve-3d; | ||
50 | - transform-style: preserve-3d; | ||
51 | - -webkit-transition-property: -webkit-transform; | ||
52 | - -moz-transition-property: -moz-transform; | ||
53 | - -o-transition-property: -o-transform; | ||
54 | - -ms-transition-property: -ms-transform; | ||
55 | - transition-property: transform; | ||
56 | - -webkit-box-sizing: content-box; | ||
57 | - -moz-box-sizing: content-box; | ||
58 | - box-sizing: content-box; | ||
59 | -} | ||
60 | - | ||
61 | -.swiper-container-android .swiper-slide, | ||
62 | -.swiper-wrapper { | ||
63 | - -webkit-transform: translate3d(0px, 0, 0); | ||
64 | - -moz-transform: translate3d(0px, 0, 0); | ||
65 | - -o-transform: translate(0px, 0px); | ||
66 | - -ms-transform: translate3d(0px, 0, 0); | ||
67 | - transform: translate3d(0px, 0, 0); | ||
68 | -} | ||
69 | - | ||
70 | -.swiper-container-multirow > .swiper-wrapper { | ||
71 | - -webkit-box-lines: multiple; | ||
72 | - -moz-box-lines: multiple; | ||
73 | - -ms-flex-wrap: wrap; | ||
74 | - -webkit-flex-wrap: wrap; | ||
75 | - flex-wrap: wrap; | ||
76 | -} | ||
77 | - | ||
78 | -.swiper-container-free-mode > .swiper-wrapper { | ||
79 | - -webkit-transition-timing-function: ease-out; | ||
80 | - -moz-transition-timing-function: ease-out; | ||
81 | - -ms-transition-timing-function: ease-out; | ||
82 | - -o-transition-timing-function: ease-out; | ||
83 | - transition-timing-function: ease-out; | ||
84 | - margin: 0 auto; | ||
85 | -} | ||
86 | - | ||
87 | -.swiper-slide { | ||
88 | - -webkit-transform-style: preserve-3d; | ||
89 | - -moz-transform-style: preserve-3d; | ||
90 | - -ms-transform-style: preserve-3d; | ||
91 | - transform-style: preserve-3d; | ||
92 | - -webkit-flex-shrink: 0; | ||
93 | - -ms-flex: 0 0 auto; | ||
94 | - flex-shrink: 0; | ||
95 | - width: 100%; | ||
96 | - height: 100%; | ||
97 | - position: relative; | ||
98 | -} | ||
99 | - | ||
100 | -/* a11y */ | ||
101 | -.swiper-container .swiper-notification { | ||
102 | - position: absolute; | ||
103 | - left: 0; | ||
104 | - top: 0; | ||
105 | - pointer-events: none; | ||
106 | - opacity: 0; | ||
107 | - z-index: -1000; | ||
108 | -} | ||
109 | - | ||
110 | -/* IE10 Windows Phone 8 Fixes */ | ||
111 | -.swiper-wp8-horizontal { | ||
112 | - -ms-touch-action: pan-y; | ||
113 | - touch-action: pan-y; | ||
114 | -} | ||
115 | - | ||
116 | -.swiper-wp8-vertical { | ||
117 | - -ms-touch-action: pan-x; | ||
118 | - touch-action: pan-x; | ||
119 | -} | ||
120 | - | ||
121 | -/* Arrows */ | ||
122 | -.swiper-button-prev, | ||
123 | -.swiper-button-next { | ||
124 | - position: absolute; | ||
125 | - top: 50%; | ||
126 | - width: 27px; | ||
127 | - height: 44px; | ||
128 | - margin-top: -22px; | ||
129 | - z-index: 10; | ||
130 | - cursor: pointer; | ||
131 | - -moz-background-size: 27px 44px; | ||
132 | - -webkit-background-size: 27px 44px; | ||
133 | - background-size: 27px 44px; | ||
134 | - background-position: center; | ||
135 | - background-repeat: no-repeat; | ||
136 | -} | ||
137 | - | ||
138 | -.swiper-button-prev.swiper-button-disabled, | ||
139 | -.swiper-button-next.swiper-button-disabled { | ||
140 | - opacity: 0.35; | ||
141 | - cursor: auto; | ||
142 | - pointer-events: none; | ||
143 | -} | ||
144 | - | ||
145 | -.swiper-button-prev, | ||
146 | -.swiper-container-rtl .swiper-button-next { | ||
147 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); | ||
148 | - left: 10px; | ||
149 | - right: auto; | ||
150 | -} | ||
151 | - | ||
152 | -.swiper-button-prev.swiper-button-black, | ||
153 | -.swiper-container-rtl .swiper-button-next.swiper-button-black { | ||
154 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); | ||
155 | -} | ||
156 | - | ||
157 | -.swiper-button-prev.swiper-button-white, | ||
158 | -.swiper-container-rtl .swiper-button-next.swiper-button-white { | ||
159 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); | ||
160 | -} | ||
161 | - | ||
162 | -.swiper-button-next, | ||
163 | -.swiper-container-rtl .swiper-button-prev { | ||
164 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); | ||
165 | - right: 10px; | ||
166 | - left: auto; | ||
167 | -} | ||
168 | - | ||
169 | -.swiper-button-next.swiper-button-black, | ||
170 | -.swiper-container-rtl .swiper-button-prev.swiper-button-black { | ||
171 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); | ||
172 | -} | ||
173 | - | ||
174 | -.swiper-button-next.swiper-button-white, | ||
175 | -.swiper-container-rtl .swiper-button-prev.swiper-button-white { | ||
176 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); | ||
177 | -} | ||
178 | - | ||
179 | -/* Pagination Styles */ | ||
180 | -.swiper-pagination { | ||
181 | - position: absolute; | ||
182 | - text-align: center; | ||
183 | - -webkit-transition: 300ms; | ||
184 | - -moz-transition: 300ms; | ||
185 | - -o-transition: 300ms; | ||
186 | - transition: 300ms; | ||
187 | - -webkit-transform: translate3d(0, 0, 0); | ||
188 | - -ms-transform: translate3d(0, 0, 0); | ||
189 | - -o-transform: translate3d(0, 0, 0); | ||
190 | - transform: translate3d(0, 0, 0); | ||
191 | - z-index: 10; | ||
192 | -} | ||
193 | - | ||
194 | -.swiper-pagination.swiper-pagination-hidden { | ||
195 | - opacity: 0; | ||
196 | -} | ||
197 | - | ||
198 | -.swiper-pagination-bullet { | ||
199 | - width: 8px; | ||
200 | - height: 8px; | ||
201 | - display: inline-block; | ||
202 | - border-radius: 100%; | ||
203 | - background: #000; | ||
204 | - opacity: 0.2; | ||
205 | -} | ||
206 | - | ||
207 | -.swiper-pagination-clickable .swiper-pagination-bullet { | ||
208 | - cursor: pointer; | ||
209 | -} | ||
210 | - | ||
211 | -.swiper-pagination-white .swiper-pagination-bullet { | ||
212 | - background: #fff; | ||
213 | -} | ||
214 | - | ||
215 | -.swiper-pagination-bullet-active { | ||
216 | - opacity: 1; | ||
217 | - background: #007aff; | ||
218 | -} | ||
219 | - | ||
220 | -.swiper-pagination-white .swiper-pagination-bullet-active { | ||
221 | - background: #fff; | ||
222 | -} | ||
223 | - | ||
224 | -.swiper-pagination-black .swiper-pagination-bullet-active { | ||
225 | - background: #000; | ||
226 | -} | ||
227 | - | ||
228 | -.swiper-container-vertical > .swiper-pagination { | ||
229 | - right: 10px; | ||
230 | - top: 50%; | ||
231 | - -webkit-transform: translate3d(0px, -50%, 0); | ||
232 | - -moz-transform: translate3d(0px, -50%, 0); | ||
233 | - -o-transform: translate(0px, -50%); | ||
234 | - -ms-transform: translate3d(0px, -50%, 0); | ||
235 | - transform: translate3d(0px, -50%, 0); | ||
236 | -} | ||
237 | - | ||
238 | -.swiper-container-vertical > .swiper-pagination .swiper-pagination-bullet { | ||
239 | - margin: 5px 0; | ||
240 | - display: block; | ||
241 | -} | ||
242 | - | ||
243 | -.swiper-container-horizontal > .swiper-pagination { | ||
244 | - bottom: 10px; | ||
245 | - left: 0; | ||
246 | - width: 100%; | ||
247 | -} | ||
248 | - | ||
249 | -.swiper-container-horizontal > .swiper-pagination .swiper-pagination-bullet { | ||
250 | - margin: 0 5px; | ||
251 | -} | ||
252 | - | ||
253 | -/* 3D Container */ | ||
254 | -.swiper-container-3d { | ||
255 | - -webkit-perspective: 1200px; | ||
256 | - -moz-perspective: 1200px; | ||
257 | - -o-perspective: 1200px; | ||
258 | - perspective: 1200px; | ||
259 | -} | ||
260 | - | ||
261 | -.swiper-container-3d .swiper-wrapper, | ||
262 | -.swiper-container-3d .swiper-slide, | ||
263 | -.swiper-container-3d .swiper-slide-shadow-left, | ||
264 | -.swiper-container-3d .swiper-slide-shadow-right, | ||
265 | -.swiper-container-3d .swiper-slide-shadow-top, | ||
266 | -.swiper-container-3d .swiper-slide-shadow-bottom, | ||
267 | -.swiper-container-3d .swiper-cube-shadow { | ||
268 | - -webkit-transform-style: preserve-3d; | ||
269 | - -moz-transform-style: preserve-3d; | ||
270 | - -ms-transform-style: preserve-3d; | ||
271 | - transform-style: preserve-3d; | ||
272 | -} | ||
273 | - | ||
274 | -.swiper-container-3d .swiper-slide-shadow-left, | ||
275 | -.swiper-container-3d .swiper-slide-shadow-right, | ||
276 | -.swiper-container-3d .swiper-slide-shadow-top, | ||
277 | -.swiper-container-3d .swiper-slide-shadow-bottom { | ||
278 | - position: absolute; | ||
279 | - left: 0; | ||
280 | - top: 0; | ||
281 | - width: 100%; | ||
282 | - height: 100%; | ||
283 | - pointer-events: none; | ||
284 | - z-index: 10; | ||
285 | -} | ||
286 | - | ||
287 | -.swiper-container-3d .swiper-slide-shadow-left { | ||
288 | - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); | ||
289 | - | ||
290 | - /* Safari 4+, Chrome */ | ||
291 | - background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
292 | - | ||
293 | - /* Chrome 10+, Safari 5.1+, iOS 5+ */ | ||
294 | - background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
295 | - | ||
296 | - /* Firefox 3.6-15 */ | ||
297 | - background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
298 | - | ||
299 | - /* Opera 11.10-12.00 */ | ||
300 | - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
301 | - | ||
302 | - /* Firefox 16+, IE10, Opera 12.50+ */ | ||
303 | -} | ||
304 | - | ||
305 | -.swiper-container-3d .swiper-slide-shadow-right { | ||
306 | - background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); | ||
307 | - | ||
308 | - /* Safari 4+, Chrome */ | ||
309 | - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
310 | - | ||
311 | - /* Chrome 10+, Safari 5.1+, iOS 5+ */ | ||
312 | - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
313 | - | ||
314 | - /* Firefox 3.6-15 */ | ||
315 | - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
316 | - | ||
317 | - /* Opera 11.10-12.00 */ | ||
318 | - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
319 | - | ||
320 | - /* Firefox 16+, IE10, Opera 12.50+ */ | ||
321 | -} | ||
322 | - | ||
323 | -.swiper-container-3d .swiper-slide-shadow-top { | ||
324 | - background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); | ||
325 | - | ||
326 | - /* Safari 4+, Chrome */ | ||
327 | - background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
328 | - | ||
329 | - /* Chrome 10+, Safari 5.1+, iOS 5+ */ | ||
330 | - background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
331 | - | ||
332 | - /* Firefox 3.6-15 */ | ||
333 | - background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
334 | - | ||
335 | - /* Opera 11.10-12.00 */ | ||
336 | - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
337 | - | ||
338 | - /* Firefox 16+, IE10, Opera 12.50+ */ | ||
339 | -} | ||
340 | - | ||
341 | -.swiper-container-3d .swiper-slide-shadow-bottom { | ||
342 | - background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0))); | ||
343 | - | ||
344 | - /* Safari 4+, Chrome */ | ||
345 | - background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
346 | - | ||
347 | - /* Chrome 10+, Safari 5.1+, iOS 5+ */ | ||
348 | - background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
349 | - | ||
350 | - /* Firefox 3.6-15 */ | ||
351 | - background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
352 | - | ||
353 | - /* Opera 11.10-12.00 */ | ||
354 | - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); | ||
355 | - | ||
356 | - /* Firefox 16+, IE10, Opera 12.50+ */ | ||
357 | -} | ||
358 | - | ||
359 | -/* Coverflow */ | ||
360 | -.swiper-container-coverflow .swiper-wrapper { | ||
361 | - | ||
362 | - /* Windows 8 IE 10 fix */ | ||
363 | - -ms-perspective: 1200px; | ||
364 | -} | ||
365 | - | ||
366 | -/* Fade */ | ||
367 | -.swiper-container-fade.swiper-container-free-mode .swiper-slide { | ||
368 | - -webkit-transition-timing-function: ease-out; | ||
369 | - -moz-transition-timing-function: ease-out; | ||
370 | - -ms-transition-timing-function: ease-out; | ||
371 | - -o-transition-timing-function: ease-out; | ||
372 | - transition-timing-function: ease-out; | ||
373 | -} | ||
374 | - | ||
375 | -.swiper-container-fade .swiper-slide { | ||
376 | - pointer-events: none; | ||
377 | -} | ||
378 | - | ||
379 | -.swiper-container-fade .swiper-slide .swiper-slide { | ||
380 | - pointer-events: none; | ||
381 | -} | ||
382 | - | ||
383 | -.swiper-container-fade .swiper-slide-active, | ||
384 | -.swiper-container-fade .swiper-slide-active .swiper-slide-active { | ||
385 | - pointer-events: auto; | ||
386 | -} | ||
387 | - | ||
388 | -/* Cube */ | ||
389 | -.swiper-container-cube { | ||
390 | - overflow: visible; | ||
391 | -} | ||
392 | - | ||
393 | -.swiper-container-cube .swiper-slide { | ||
394 | - pointer-events: none; | ||
395 | - visibility: hidden; | ||
396 | - -webkit-transform-origin: 0 0; | ||
397 | - -moz-transform-origin: 0 0; | ||
398 | - -ms-transform-origin: 0 0; | ||
399 | - transform-origin: 0 0; | ||
400 | - -webkit-backface-visibility: hidden; | ||
401 | - -moz-backface-visibility: hidden; | ||
402 | - -ms-backface-visibility: hidden; | ||
403 | - backface-visibility: hidden; | ||
404 | - width: 100%; | ||
405 | - height: 100%; | ||
406 | -} | ||
407 | - | ||
408 | -.swiper-container-cube.swiper-container-rtl .swiper-slide { | ||
409 | - -webkit-transform-origin: 100% 0; | ||
410 | - -moz-transform-origin: 100% 0; | ||
411 | - -ms-transform-origin: 100% 0; | ||
412 | - transform-origin: 100% 0; | ||
413 | -} | ||
414 | - | ||
415 | -.swiper-container-cube .swiper-slide-active, | ||
416 | -.swiper-container-cube .swiper-slide-next, | ||
417 | -.swiper-container-cube .swiper-slide-prev, | ||
418 | -.swiper-container-cube .swiper-slide-next + .swiper-slide { | ||
419 | - pointer-events: auto; | ||
420 | - visibility: visible; | ||
421 | -} | ||
422 | - | ||
423 | -.swiper-container-cube .swiper-cube-shadow { | ||
424 | - position: absolute; | ||
425 | - left: 0; | ||
426 | - bottom: 0px; | ||
427 | - width: 100%; | ||
428 | - height: 100%; | ||
429 | - background: #000; | ||
430 | - opacity: 0.6; | ||
431 | - -webkit-filter: blur(50px); | ||
432 | - filter: blur(50px); | ||
433 | -} | ||
434 | - | ||
435 | -.swiper-container-cube.swiper-container-vertical .swiper-cube-shadow { | ||
436 | - z-index: 0; | ||
437 | -} | ||
438 | - | ||
439 | -/* Scrollbar */ | ||
440 | -.swiper-scrollbar { | ||
441 | - border-radius: 10px; | ||
442 | - position: relative; | ||
443 | - -ms-touch-action: none; | ||
444 | - background: rgba(0, 0, 0, 0.1); | ||
445 | -} | ||
446 | - | ||
447 | -.swiper-container-horizontal > .swiper-scrollbar { | ||
448 | - position: absolute; | ||
449 | - left: 1%; | ||
450 | - bottom: 3px; | ||
451 | - z-index: 50; | ||
452 | - height: 5px; | ||
453 | - width: 98%; | ||
454 | -} | ||
455 | - | ||
456 | -.swiper-container-vertical > .swiper-scrollbar { | ||
457 | - position: absolute; | ||
458 | - right: 3px; | ||
459 | - top: 1%; | ||
460 | - z-index: 50; | ||
461 | - width: 5px; | ||
462 | - height: 98%; | ||
463 | -} | ||
464 | - | ||
465 | -.swiper-scrollbar-drag { | ||
466 | - height: 100%; | ||
467 | - width: 100%; | ||
468 | - position: relative; | ||
469 | - background: rgba(0, 0, 0, 0.5); | ||
470 | - border-radius: 10px; | ||
471 | - left: 0; | ||
472 | - top: 0; | ||
473 | -} | ||
474 | - | ||
475 | -.swiper-scrollbar-cursor-drag { | ||
476 | - cursor: move; | ||
477 | -} | ||
478 | - | ||
479 | -/* Preloader */ | ||
480 | -.swiper-lazy-preloader { | ||
481 | - width: 42px; | ||
482 | - height: 42px; | ||
483 | - position: absolute; | ||
484 | - left: 50%; | ||
485 | - top: 50%; | ||
486 | - margin-left: -21px; | ||
487 | - margin-top: -21px; | ||
488 | - z-index: 10; | ||
489 | - -webkit-transform-origin: 50%; | ||
490 | - -moz-transform-origin: 50%; | ||
491 | - transform-origin: 50%; | ||
492 | - -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite; | ||
493 | - -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite; | ||
494 | - animation: swiper-preloader-spin 1s steps(12, end) infinite; | ||
495 | -} | ||
496 | - | ||
497 | -.swiper-lazy-preloader:after { | ||
498 | - display: block; | ||
499 | - content: ""; | ||
500 | - width: 100%; | ||
501 | - height: 100%; | ||
502 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); | ||
503 | - background-position: 50%; | ||
504 | - -webkit-background-size: 100%; | ||
505 | - background-size: 100%; | ||
506 | - background-repeat: no-repeat; | ||
507 | -} | ||
508 | - | ||
509 | -.swiper-lazy-preloader-white:after { | ||
510 | - background-image: url("data:image/svg+xml;charset=utf-8, %3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); | ||
511 | -} | ||
512 | - | ||
513 | -@-webkit-keyframes swiper-preloader-spin { | ||
514 | - 100% { | ||
515 | - -webkit-transform: rotate(360deg); | ||
516 | - } | ||
517 | -} | ||
518 | - | ||
519 | -@keyframes swiper-preloader-spin { | ||
520 | - 100% { | ||
521 | - transform: rotate(360deg); | ||
522 | - } | ||
523 | -} | ||
524 | -/* stylelint-enable */ |
1 | @charset "utf-8"; | 1 | @charset "utf-8"; |
2 | -@use postcss-clearfix ; | ||
3 | -@import "common/reset"; | ||
4 | - | ||
5 | -.clearfix { | ||
6 | - clear: fix; | ||
7 | -} | ||
8 | - | ||
9 | -*, | ||
10 | -*:before, | ||
11 | -*:after { | ||
12 | - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); | ||
13 | - box-sizing: border-box; | ||
14 | -} | ||
15 | - | ||
16 | -html, | ||
17 | -body { | ||
18 | - font-family: helvetica, Arial, "黑体"; | ||
19 | - width: 100%; | ||
20 | - font-size: 24px; | ||
21 | - line-height: 1.4; | ||
22 | -} | ||
23 | - | ||
24 | -button, | ||
25 | -input, | ||
26 | -select, | ||
27 | -textarea { | ||
28 | - font-size: 100%; | ||
29 | - margin: 0; | ||
30 | -} | ||
31 | - | ||
32 | -img { | ||
33 | - max-width: 100%; | ||
34 | - display: block; | ||
35 | - border: 0; | ||
36 | - margin: 0 auto; | ||
37 | -} | ||
38 | - | ||
39 | -a { | ||
40 | - text-decoration: none; | ||
41 | - outline: none; | ||
42 | - color: #000; | ||
43 | -} | ||
44 | - | ||
45 | -*:focus { | ||
46 | - outline: none; | ||
47 | -} | ||
48 | - | ||
49 | -.hide { | ||
50 | - display: none; | ||
51 | -} | ||
52 | - | ||
53 | -.overflow-hidden { | ||
54 | - overflow: hidden; | ||
55 | -} | ||
56 | - | ||
57 | -@font-face { | ||
58 | - font-family: "iconfont"; | ||
59 | - src: resolve('h5/iconfont.eot'); /* IE9 */ | ||
60 | - src: resolve('h5/iconfont.eot?#iefix') format('embedded-opentype'), resolve('h5/iconfont.woff') format('woff'), resolve('h5/iconfont.ttf') format('truetype'), resolve('h5/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ | ||
61 | -} | ||
62 | - | ||
63 | -.iconfont { | ||
64 | - font-family: "iconfont" !important; | ||
65 | - font-size: 32px; | ||
66 | - font-style: normal; | ||
67 | - text-decoration: none; | ||
68 | - -webkit-font-smoothing: antialiased; | ||
69 | - -webkit-text-stroke-width: 0.4px; | ||
70 | - -moz-osx-font-smoothing: grayscale; | ||
71 | -} | ||
72 | - | ||
73 | -.yoho-tip { | ||
74 | - position: fixed; | ||
75 | - display: none; | ||
76 | - text-align: center; | ||
77 | - width: 70%; | ||
78 | - max-width: 600px; | ||
79 | - padding: 68px 0; | ||
80 | - top: 50%; | ||
81 | - left: 50%; | ||
82 | - transform: translate(-50%, -50%); | ||
83 | - background-color: rgba(0, 0, 0, 0.7); | ||
84 | - color: #fff; | ||
85 | - font-size: 36px; | ||
86 | - border: none; | ||
87 | - z-index: 4; | ||
88 | - border-radius: 20px; | ||
89 | -} | ||
90 | - | ||
91 | -@import "common/lazy-failure"; | ||
92 | -@import "common/loading"; | ||
93 | -@import "common/swiper"; | 2 | +@import "layout/reset"; |
3 | +@import "layout/common"; | ||
4 | +@import "layout/loading"; | ||
5 | +@import "layout/swiper"; | ||
6 | +@import "layout/header"; | ||
7 | +@import "layout/footer"; | ||
94 | @import "channel/index"; | 8 | @import "channel/index"; |
95 | @import "product/detail"; | 9 | @import "product/detail"; |
96 | @import "product/comments-consults"; | 10 | @import "product/comments-consults"; |
1 | -@charset "utf-8"; | 1 | + |
2 | @use postcss-clearfix ; | 2 | @use postcss-clearfix ; |
3 | -@import "layout/reset"; | ||
4 | 3 | ||
5 | .clearfix { | 4 | .clearfix { |
6 | clear: fix; | 5 | clear: fix; |
@@ -75,11 +74,11 @@ a { | @@ -75,11 +74,11 @@ a { | ||
75 | display: none; | 74 | display: none; |
76 | text-align: center; | 75 | text-align: center; |
77 | width: 70%; | 76 | width: 70%; |
77 | + max-width: 600px; | ||
78 | padding: 68px 0; | 78 | padding: 68px 0; |
79 | top: 50%; | 79 | top: 50%; |
80 | left: 50%; | 80 | left: 50%; |
81 | - margin-left: -35%; | ||
82 | - margin-top: -90px; | 81 | + transform: translate(-50%, -50%); |
83 | background-color: rgba(0, 0, 0, 0.7); | 82 | background-color: rgba(0, 0, 0, 0.7); |
84 | color: #fff; | 83 | color: #fff; |
85 | font-size: 36px; | 84 | font-size: 36px; |
@@ -88,8 +87,14 @@ a { | @@ -88,8 +87,14 @@ a { | ||
88 | border-radius: 20px; | 87 | border-radius: 20px; |
89 | } | 88 | } |
90 | 89 | ||
91 | -@import "layout/lazy-failure"; | ||
92 | -@import "layout/loading"; | ||
93 | -@import "layout/swiper"; | ||
94 | -@import "layout/header"; | ||
95 | -@import "layout/footer"; | 90 | +.order-failure { |
91 | + background-image: resolve('common/order-good.jpg'); | ||
92 | + background-size: 100%; | ||
93 | +} | ||
94 | + | ||
95 | +.good-failure { | ||
96 | + background-image: resolve('common/order-good.jpg'); | ||
97 | + background-size: 132px !important; | ||
98 | + background-position-x: 40%; | ||
99 | +} | ||
100 | + |
-
Please register or login to post a comment