Merge branch 'master' of git.yoho.cn:fe/yohobuywap-node into feature/newfloor
Showing
75 changed files
with
3244 additions
and
50 deletions
@@ -7,11 +7,6 @@ | @@ -7,11 +7,6 @@ | ||
7 | 7 | ||
8 | const config = require('./config/common'); | 8 | const config = require('./config/common'); |
9 | 9 | ||
10 | -// use one apm | ||
11 | -if (config.useOneapm) { | ||
12 | - require('oneapm'); | ||
13 | -} | ||
14 | - | ||
15 | const express = require('express'); | 10 | const express = require('express'); |
16 | const path = require('path'); | 11 | const path = require('path'); |
17 | const bodyParser = require('body-parser'); | 12 | const bodyParser = require('body-parser'); |
@@ -29,12 +29,11 @@ exports.index = (req, res, next) => { | @@ -29,12 +29,11 @@ exports.index = (req, res, next) => { | ||
29 | exports.main = (req, res, next) => { | 29 | exports.main = (req, res, next) => { |
30 | const isReplay = /^\/live\/replay\//.test(req.path); | 30 | const isReplay = /^\/live\/replay\//.test(req.path); |
31 | const id = req.params.id; | 31 | const id = req.params.id; |
32 | - const goDownload = req.query.no; | ||
33 | 32 | ||
34 | res.locals.liveRoom = id; | 33 | res.locals.liveRoom = id; |
35 | res.locals.module = 'activity'; | 34 | res.locals.module = 'activity'; |
36 | res.locals.page = 'live-play'; | 35 | res.locals.page = 'live-play'; |
37 | - res.locals.enableFoot = goDownload !== 1; | 36 | + res.locals.enableFoot = Number(req.query.no) !== 1; |
38 | 37 | ||
39 | model.fetchInfo(id, isReplay) | 38 | model.fetchInfo(id, isReplay) |
40 | .then(result => { | 39 | .then(result => { |
apps/activity/controllers/market.js
0 → 100644
1 | +/** | ||
2 | + * 市场推广 | ||
3 | + * <jing.li@yoho.cn> | ||
4 | + * 2016/09/07 | ||
5 | + */ | ||
6 | + | ||
7 | +'use strict'; | ||
8 | + | ||
9 | +const indexModel = require('../models/market'); | ||
10 | + | ||
11 | +exports.index = (req, res, next) => { | ||
12 | + | ||
13 | + indexModel.index({ | ||
14 | + | ||
15 | + }).then((result) => { | ||
16 | + | ||
17 | + res.render('market/market', result); | ||
18 | + | ||
19 | + }).catch(next); | ||
20 | + | ||
21 | +}; |
@@ -6,7 +6,8 @@ | @@ -6,7 +6,8 @@ | ||
6 | 6 | ||
7 | var express = require('express'), | 7 | var express = require('express'), |
8 | path = require('path'), | 8 | path = require('path'), |
9 | - hbs = require('express-handlebars'); | 9 | + hbs = require('express-handlebars'), |
10 | + helpers = require(path.join(global.utils, 'helpers')); | ||
10 | 11 | ||
11 | var app = express(); | 12 | var app = express(); |
12 | 13 | ||
@@ -23,7 +24,7 @@ app.engine('.hbs', hbs({ | @@ -23,7 +24,7 @@ app.engine('.hbs', hbs({ | ||
23 | defaultLayout: 'layout', | 24 | defaultLayout: 'layout', |
24 | layoutsDir: doraemon, | 25 | layoutsDir: doraemon, |
25 | partialsDir: ['./views/partial', `${doraemon}/partial`], | 26 | partialsDir: ['./views/partial', `${doraemon}/partial`], |
26 | - helpers: global.yoho.helpers | 27 | + helpers: Object.assign({}, global.yoho.helpers, helpers) |
27 | })); | 28 | })); |
28 | 29 | ||
29 | // router | 30 | // router |
apps/activity/models/market.js
0 → 100644
1 | +/** | ||
2 | + * 市场推广 | ||
3 | + * <jing.li@yoho.cn> | ||
4 | + * 2016/09/07 | ||
5 | + */ | ||
6 | + | ||
7 | +'use strict'; | ||
8 | +const service = global.yoho.ServiceAPI; | ||
9 | +const helpers = global.yoho.helpers; | ||
10 | +const _ = require('lodash'); | ||
11 | +const index = () => { | ||
12 | + | ||
13 | + return service.get('/operations/api/v5/resource/home', { | ||
14 | + content_code: '797c299afc4170452cf7b2048806b6b8', | ||
15 | + gender: 1, | ||
16 | + limit: 1000, | ||
17 | + page: 1 | ||
18 | + }).then(result => { | ||
19 | + | ||
20 | + let resu = { | ||
21 | + swiper: [], | ||
22 | + floorAdList: [], | ||
23 | + newsList: [], | ||
24 | + download: [] | ||
25 | + }; | ||
26 | + | ||
27 | + if (result.data.list[0]) { | ||
28 | + | ||
29 | + let headerTip = result.data.list[0].data.text; | ||
30 | + | ||
31 | + resu = Object.assign(resu, { headerTip }); | ||
32 | + | ||
33 | + } | ||
34 | + | ||
35 | + if (result.data.list[1]) { | ||
36 | + | ||
37 | + let adList = result.data.list[1].data.list; | ||
38 | + | ||
39 | + let build = []; | ||
40 | + | ||
41 | + adList.forEach(ad => { | ||
42 | + build.push({ | ||
43 | + img: helpers.image(ad.src, 640, 310), | ||
44 | + url: ad.url | ||
45 | + }); | ||
46 | + }); | ||
47 | + | ||
48 | + resu.swiper = build; | ||
49 | + | ||
50 | + let floorList = result.data.list[1].data.list; | ||
51 | + | ||
52 | + let floorAdListTitle = result.data.list[1].data.title.title; | ||
53 | + | ||
54 | + resu = _.assign(resu, { floorAdListTitle }); | ||
55 | + | ||
56 | + let floor = []; | ||
57 | + | ||
58 | + let i = 0; | ||
59 | + | ||
60 | + floorList.forEach(ad => { | ||
61 | + if (i < 12) { // 控制显示条数,默认1-12 | ||
62 | + floor.push({ | ||
63 | + img: helpers.image(ad.src, 640, 170), | ||
64 | + url: ad.url, | ||
65 | + title: ad.title | ||
66 | + }); | ||
67 | + i++; | ||
68 | + } | ||
69 | + }); | ||
70 | + | ||
71 | + resu.floorAdList = floor; | ||
72 | + | ||
73 | + } | ||
74 | + | ||
75 | + if (result.data.list[2]) { | ||
76 | + | ||
77 | + let newsList = result.data.list[2].data.list[0]; | ||
78 | + | ||
79 | + let news = [{ | ||
80 | + img: helpers.image(newsList.src, 640, 370), | ||
81 | + url: newsList.url, | ||
82 | + title: newsList.title, | ||
83 | + alt: newsList.alt | ||
84 | + }]; | ||
85 | + | ||
86 | + resu.newsList = news; | ||
87 | + | ||
88 | + } | ||
89 | + | ||
90 | + if (result.data.list[3]) { | ||
91 | + | ||
92 | + let downlist = result.data.list[3].data[0]; | ||
93 | + | ||
94 | + let down = [{ | ||
95 | + img: helpers.image(downlist.src, 640, 275), | ||
96 | + url: downlist.url, | ||
97 | + alt: downlist.alt | ||
98 | + }]; | ||
99 | + | ||
100 | + resu.download = down; | ||
101 | + | ||
102 | + } | ||
103 | + | ||
104 | + return resu; | ||
105 | + | ||
106 | + }); | ||
107 | + | ||
108 | +}; | ||
109 | + | ||
110 | +module.exports = { | ||
111 | + index | ||
112 | +}; |
@@ -14,6 +14,7 @@ const wechat = require(`${cRoot}/wechat`); | @@ -14,6 +14,7 @@ const wechat = require(`${cRoot}/wechat`); | ||
14 | const student = require(`${cRoot}/student`); | 14 | const student = require(`${cRoot}/student`); |
15 | const live = require(`${cRoot}/live`); | 15 | const live = require(`${cRoot}/live`); |
16 | const invite = require(`${cRoot}/invite`); | 16 | const invite = require(`${cRoot}/invite`); |
17 | +const market = require(`${cRoot}/market`); | ||
17 | 18 | ||
18 | // routers | 19 | // routers |
19 | 20 | ||
@@ -50,6 +51,8 @@ router.get('/live/:id', live.main); | @@ -50,6 +51,8 @@ router.get('/live/:id', live.main); | ||
50 | router.get('/invite', invite.index); | 51 | router.get('/invite', invite.index); |
51 | router.get('/invite/index', invite.index); | 52 | router.get('/invite/index', invite.index); |
52 | 53 | ||
54 | +router.get('/market', market.index);// 市场推广活动 | ||
55 | + | ||
53 | router.get(/\/invite\/share_([\d]+)_([\d]+)_([\d]+).html/, invite.share); | 56 | router.get(/\/invite\/share_([\d]+)_([\d]+)_([\d]+).html/, invite.share); |
54 | router.get('/invite/sendRegCodeToMobile', invite.sendRegCodeToMobile); | 57 | router.get('/invite/sendRegCodeToMobile', invite.sendRegCodeToMobile); |
55 | router.get('/invite/checkOldUserCoupon', invite.checkOldUserCoupon); | 58 | router.get('/invite/checkOldUserCoupon', invite.checkOldUserCoupon); |
apps/activity/views/action/market/market.hbs
0 → 100644
1 | +<div class="container"> | ||
2 | + <div class="header"> | ||
3 | + <div>{{headerTip}}</div> | ||
4 | + </div> | ||
5 | + <div class="tab"> | ||
6 | + <div class="swiper-container"> | ||
7 | + <div class="swiper-wrapper"> | ||
8 | + {{# swiper}} | ||
9 | + <div class="swiper-slide"> | ||
10 | + <a href="{{url}}"> | ||
11 | + <img class="swiper-lazy" data-src="{{img}}"> | ||
12 | + </a> | ||
13 | + </div> | ||
14 | + {{/ swiper}} | ||
15 | + </div> | ||
16 | + <div class="swiper-pagination"></div> | ||
17 | + </div> | ||
18 | + </div> | ||
19 | + {{# floorAdListTitle}} | ||
20 | + <div class="floor-top"> | ||
21 | + <img src="{{imgSrc '//cdn.yoho.cn/m-yohobuy-node/assets/img/activity/market/floor-top-1.jpg'}}" /> | ||
22 | + </div> | ||
23 | + {{/ floorAdListTitle}} | ||
24 | + <ul class="floor-ul"> | ||
25 | + {{# floorAdList}} | ||
26 | + <a href="{{url}}"> | ||
27 | + <li> | ||
28 | + <img src="{{img}}" /> | ||
29 | + <p>{{title}}</p> | ||
30 | + </li> | ||
31 | + </a> | ||
32 | + {{/ floorAdList}} | ||
33 | + </ul> | ||
34 | + {{# newsList}} | ||
35 | + <div class="floor-top"> | ||
36 | + <img src="{{imgSrc '//cdn.yoho.cn/m-yohobuy-node/assets/img/activity/market/floor-top-2.jpg'}}" /> | ||
37 | + </div> | ||
38 | + <div class="floor-c"> | ||
39 | + <a href="{{url}}"> | ||
40 | + <img src="{{img}}" alt="{{alt}}" /> | ||
41 | + </a> | ||
42 | + <p>{{title}}</p> | ||
43 | + </div> | ||
44 | + {{/ newsList}} | ||
45 | + {{# download}} | ||
46 | + <a href="{{url}}" class="down"> | ||
47 | + <img src="{{img}}" alt="{{alt}}" /> | ||
48 | + </a> | ||
49 | + {{/ download}} | ||
50 | +</div> |
apps/guang/controllers/index.js
0 → 100644
1 | +/** | ||
2 | + * 逛列表页 controller | ||
3 | + * @author: jing.li@yoho.cn<jing.li@yoho.cn> | ||
4 | + * @date: 2016/09/05 | ||
5 | + */ | ||
6 | + | ||
7 | +'use strict'; | ||
8 | + | ||
9 | +const headerModel = require('../../../doraemon/models/header'); // 头部model | ||
10 | +const indexModel = require('../models/index'); | ||
11 | + | ||
12 | +/** | ||
13 | + * 逛列表页 | ||
14 | + * @param req | ||
15 | + * @param res | ||
16 | + * @param next | ||
17 | + */ | ||
18 | + | ||
19 | +exports.index = (req, res, next) => { | ||
20 | + let headerData = headerModel.setNav({ | ||
21 | + navTitle: '逛' | ||
22 | + }); | ||
23 | + | ||
24 | + let responseData = { | ||
25 | + pageHeader: headerData, | ||
26 | + module: 'guang', | ||
27 | + page: 'index', | ||
28 | + title: '逛', | ||
29 | + pageFooter: true | ||
30 | + }; | ||
31 | + | ||
32 | + let param = { | ||
33 | + uid: req.user.uid || 6228593, | ||
34 | + | ||
35 | + udid: req.user.udid, | ||
36 | + | ||
37 | + type: req.query.type || 0, | ||
38 | + | ||
39 | + gender: req.query.gender || '1,3' | ||
40 | + }; | ||
41 | + | ||
42 | + indexModel.getArticle(param).then(result => { | ||
43 | + res.render('index', Object.assign(responseData, result)); | ||
44 | + }).catch(next); | ||
45 | +}; |
@@ -23,7 +23,7 @@ app.engine('.hbs', hbs({ | @@ -23,7 +23,7 @@ app.engine('.hbs', hbs({ | ||
23 | extname: '.hbs', | 23 | extname: '.hbs', |
24 | defaultLayout: 'layout', | 24 | defaultLayout: 'layout', |
25 | layoutsDir: doraemon, | 25 | layoutsDir: doraemon, |
26 | - partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], | 26 | + partialsDir: [path.join(__dirname, './views/partial'), `${doraemon}/partial`], |
27 | helpers: global.yoho.helpers | 27 | helpers: global.yoho.helpers |
28 | })); | 28 | })); |
29 | 29 |
apps/guang/models/index.js
0 → 100644
1 | +/** | ||
2 | + * Created by jing.li@yoho.cn. | ||
3 | + * User: jing.li | ||
4 | + * Date: 2016/9/5 | ||
5 | + * Time: 17:48 | ||
6 | + */ | ||
7 | + | ||
8 | +'use strict'; | ||
9 | + | ||
10 | +const api = global.yoho.API; | ||
11 | +const serviceAPI = global.yoho.ServiceAPI; | ||
12 | +const singleAPI = global.yoho.SingleAPI; | ||
13 | +const helpers = global.yoho.helpers; | ||
14 | +const camelCase = global.yoho.camelCase; | ||
15 | +const _ = require('lodash'); | ||
16 | + | ||
17 | +/** | ||
18 | + * 逛分类 | ||
19 | + */ | ||
20 | +const _category = () => { | ||
21 | + return serviceAPI.get('/guang/api/v1/category/get', { | ||
22 | + | ||
23 | + }, { | ||
24 | + | ||
25 | + code: 200 | ||
26 | + }); | ||
27 | +}; | ||
28 | + | ||
29 | +/** | ||
30 | + * 逛内容列表 | ||
31 | + */ | ||
32 | +const _article = (param) => { | ||
33 | + return serviceAPI.get('/guang/api/v2/article/getList', { | ||
34 | + gender: param.gender, | ||
35 | + page: param.page || 1, | ||
36 | + uid: param.uid, | ||
37 | + udid: param.udid, | ||
38 | + sort_id: param.type ? param.type : 1, | ||
39 | + tag: param.tag ? param.tag : null, | ||
40 | + author_id: param.authorId ? param.authorId : null, | ||
41 | + limit: param.limit ? param.limit : null, | ||
42 | + }, { | ||
43 | + code: 200 | ||
44 | + }).then(result => { | ||
45 | + | ||
46 | + return result; | ||
47 | + | ||
48 | + }); | ||
49 | +}; | ||
50 | + | ||
51 | + | ||
52 | +/** | ||
53 | + * 逛 | ||
54 | + * @param params | ||
55 | + */ | ||
56 | +const getArticle = (param) => { | ||
57 | + | ||
58 | + let page = param.page ? param.page : 1; | ||
59 | + | ||
60 | + Object.assign(param, { page: page }); | ||
61 | + | ||
62 | + return api.all([ | ||
63 | + _category(), | ||
64 | + _article(param) | ||
65 | + ]).then(result => { | ||
66 | + | ||
67 | + let resu = { | ||
68 | + guang: { | ||
69 | + infos: [{ | ||
70 | + show: true, | ||
71 | + info: [{ | ||
72 | + 'article_type': '1', | ||
73 | + author: { | ||
74 | + author_id: '8168296', | ||
75 | + avatar: 'http://img10.static.yhbimg.com/author/2016/05/07/15/01bb3ae789c573502830726c3297d0c80a.png', | ||
76 | + name: '雾萌萌', | ||
77 | + url: 'http://guang.m.yohobuy.com/author/index?id=8168296' | ||
78 | + }, | ||
79 | + 'author_id': '8168296', | ||
80 | + 'category_id': '1', | ||
81 | + 'category_name': '话题', | ||
82 | + 'conver_image_type': '1', | ||
83 | + 'id': 34380, | ||
84 | + text: '验证逛文章图片压缩测试验证逛文章图片压缩测试验证逛文章图片压缩测试', | ||
85 | + 'isFavor': 'N', | ||
86 | + 'isPraise': 'N', | ||
87 | + 'is_recommended': '1', | ||
88 | + 'praiseStatus': 'true', | ||
89 | + 'praise_num': '0', | ||
90 | + publishTime: '09月02日 19:21', | ||
91 | + 'share': { | ||
92 | + 'url': 'http://guang.m.yohobuy.com/info/index?id=34380' | ||
93 | + }, | ||
94 | + img: 'https://img13.static.yhbimg.com/article/2016/09/05/14/02d732942cdd9647465736cb79796b0ddd.jpg?imageView/2/w/640/h/640', | ||
95 | + 'title': '验证逛文章图片压缩测试', | ||
96 | + 'url': 'http://guang.m.yohobuy.com/info/index?id=34380', | ||
97 | + pageView: '50' | ||
98 | + }] | ||
99 | + }], | ||
100 | + navs: [{ | ||
101 | + typeId: '0', | ||
102 | + type: '推荐', | ||
103 | + focus: true | ||
104 | + }, { | ||
105 | + typeId: '1', | ||
106 | + type: '话题' | ||
107 | + }, { | ||
108 | + typeId: '2', | ||
109 | + type: '搭配' | ||
110 | + }, { | ||
111 | + typeId: '3', | ||
112 | + type: '潮人' | ||
113 | + }, { | ||
114 | + typeId: '4', | ||
115 | + type: '潮品' | ||
116 | + }, { | ||
117 | + typeId: '19', | ||
118 | + type: '专题' | ||
119 | + }], | ||
120 | + swiper: [{ | ||
121 | + img: 'https://img11.static.yhbimg.com/yhb-img01/2016/09/01/10/017b5ce31285f9062469303ba9ca197660.jpg?imageView2/2/w/830/h/327', | ||
122 | + url: 'http://feature.yoho.cn/0418RUNNINGMAN/index.html?title=兄弟在奔跑,潮流在有货&share_id=944' | ||
123 | + }, { | ||
124 | + img: 'https://img11.static.yhbimg.com/yhb-img01/2016/09/01/10/017b5ce31285f9062469303ba9ca197660.jpg?imageView2/2/w/830/h/327', | ||
125 | + url: 'http://feature.yoho.cn/0418RUNNINGMAN/index.html?title=兄弟在奔跑,潮流在有货&share_id=944' | ||
126 | + }] | ||
127 | + } | ||
128 | + }; | ||
129 | + | ||
130 | + return resu; | ||
131 | + | ||
132 | + }); | ||
133 | + | ||
134 | +}; | ||
135 | + | ||
136 | +module.exports = { | ||
137 | + getArticle | ||
138 | +}; |
@@ -10,7 +10,7 @@ const express = require('express'); | @@ -10,7 +10,7 @@ const express = require('express'); | ||
10 | const cRoot = './controllers'; | 10 | const cRoot = './controllers'; |
11 | const star = require(cRoot + '/star'); | 11 | const star = require(cRoot + '/star'); |
12 | const plusstar = require(cRoot + '/plusstar'); | 12 | const plusstar = require(cRoot + '/plusstar'); |
13 | - | 13 | +const homeController = require(`${cRoot}/index`); |
14 | const router = express.Router(); // eslint-disable-line | 14 | const router = express.Router(); // eslint-disable-line |
15 | 15 | ||
16 | router.get('/star', star.index); // 星潮教室首页 | 16 | router.get('/star', star.index); // 星潮教室首页 |
@@ -25,5 +25,6 @@ router.post('/star/setFavorite', star.setFavorite); // 收藏文章 | @@ -25,5 +25,6 @@ router.post('/star/setFavorite', star.setFavorite); // 收藏文章 | ||
25 | 25 | ||
26 | router.get('/plusstar', plusstar.index); // 潮流优选 | 26 | router.get('/plusstar', plusstar.index); // 潮流优选 |
27 | router.get('/plusstar/resources-template', plusstar.resourcesTemplate); // 潮流优选首页-资源位 | 27 | router.get('/plusstar/resources-template', plusstar.resourcesTemplate); // 潮流优选首页-资源位 |
28 | +router.get('/', homeController.index); // 逛首页 | ||
28 | 29 | ||
29 | module.exports = router; | 30 | module.exports = router; |
apps/guang/views/action/index.hbs
0 → 100644
1 | +<div class="guang-list-page guang-page yoho-page"> | ||
2 | + | ||
3 | + {{# guang}} | ||
4 | + <ul id="guang-nav" class="guang-nav clearfix"> | ||
5 | + {{# navs}} | ||
6 | + <li class="guang-nav-item {{#focus}}focus{{/focus}}" data-type={{typeId}}> | ||
7 | + {{type}} | ||
8 | + </li> | ||
9 | + {{/ navs}} | ||
10 | + </ul> | ||
11 | + | ||
12 | + <div id="info-list" class="info-list-container"> | ||
13 | + {{# infos}} | ||
14 | + <div class="info-list{{^show}} hide{{/show}}"> | ||
15 | + {{#if show}} | ||
16 | + {{#if ../swiper}} | ||
17 | + <div class="swiper-container swiper-cont-{{typeId}}"> | ||
18 | + <div class="swiper-wrapper swiper-wrap-{{typeId}}"> | ||
19 | + {{# swiper}} | ||
20 | + <div class="swiper-slide"> | ||
21 | + <a href="{{url}}"> | ||
22 | + <img class="swiper-lazy" data-src="{{img}}"> | ||
23 | + </a> | ||
24 | + <div class="swiper-lazy-preloader"></div> | ||
25 | + </div> | ||
26 | + {{/ swiper}} | ||
27 | + </div> | ||
28 | + <div class="swiper-pagination swiper-pagi-{{typeId}}"></div> | ||
29 | + </div> | ||
30 | + {{/if}} | ||
31 | + {{/if}} | ||
32 | + {{# info}} | ||
33 | + {{> info}} | ||
34 | + {{/ info}} | ||
35 | + </div> | ||
36 | + {{/ infos}} | ||
37 | + </div> | ||
38 | + | ||
39 | + <div id="load-more-info" class="load-more-info"> | ||
40 | + <div class="loading status hide"> | ||
41 | + 正在加载... | ||
42 | + </div> | ||
43 | + <span class="no-more status">没有更多啦</span> | ||
44 | + </div> | ||
45 | + <input id="gender" type="hidden" value={{gender}}> | ||
46 | + {{/ guang}} | ||
47 | +</div> |
apps/guang/views/action/info.hbs
0 → 100644
1 | +<div class="guang-info" data-id="{{id}}"> | ||
2 | + {{# author}} | ||
3 | + <a class="info-author clearfix" href={{url}}> | ||
4 | + <img class="lazy avatar" data-original={{avatar}}> | ||
5 | + <span class="name">{{name}}</span> | ||
6 | + </a> | ||
7 | + {{/ author}} | ||
8 | + | ||
9 | + <div class="info-img"> | ||
10 | + {{#if showTags}} | ||
11 | + <a href="javascript:;" class="info-match"> | ||
12 | + {{# isTip}} | ||
13 | + 小贴士 | ||
14 | + <div class="info-tag tip"></div> | ||
15 | + {{/ isTip}} | ||
16 | + {{# isCollocation}} | ||
17 | + 搭配 | ||
18 | + <div class="info-tag collocation"></div> | ||
19 | + {{/ isCollocation}} | ||
20 | + {{# isFashionMan}} | ||
21 | + 潮人 | ||
22 | + <div class="info-tag fashion-man"></div> | ||
23 | + {{/ isFashionMan}} | ||
24 | + {{# isFashionGood}} | ||
25 | + 潮品 | ||
26 | + <div class="info-tag fashion-good"></div> | ||
27 | + {{/ isFashionGood}} | ||
28 | + {{# isTopic}} | ||
29 | + 话题 | ||
30 | + <div class="info-tag topic"></div> | ||
31 | + {{/ isTopic}} | ||
32 | + {{# isSpecialTopic}} | ||
33 | + 专题 | ||
34 | + <div class="info-tag special-topic"></div> | ||
35 | + {{/ isSpecialTopic}} | ||
36 | + </a> | ||
37 | + {{/if}} | ||
38 | + <a href="{{url}}"> | ||
39 | + <img class="lazy" data-original="{{img}}" alt="{{alt}}"> | ||
40 | + </a> | ||
41 | + </div> | ||
42 | + | ||
43 | + <div class="info-deps"> | ||
44 | + <a class="info-title-container" href="{{url}}"> | ||
45 | + <h2 class="info-title">{{title}}</h2> | ||
46 | + </a> | ||
47 | + <p class="info-text">{{text}}</p> | ||
48 | + {{> guang/tvls}} | ||
49 | + </div> | ||
50 | +</div> |
apps/guang/views/action/list.hbs
0 → 100644
1 | +<div class="guang-list-page guang-page yoho-page"> | ||
2 | +{{# guang}} | ||
3 | + {{# authorInfo}} | ||
4 | + <div id="author-infos" class="editor-header clearfix" data-id={{id}}> | ||
5 | + <div class="avatar"> | ||
6 | + <img src="{{avatar}}"> | ||
7 | + </div> | ||
8 | + <div class="text"> | ||
9 | + <p class="name">{{name}}</p> | ||
10 | + <p class="info">{{info}}</p> | ||
11 | + </div> | ||
12 | + </div> | ||
13 | + {{/ authorInfo}} | ||
14 | + | ||
15 | + <div id="info-list" class="info-list"> | ||
16 | + {{# infos}} | ||
17 | + {{> guang/info}} | ||
18 | + {{/ infos}} | ||
19 | + </div> | ||
20 | + | ||
21 | + <div id="load-more-info" class="load-more-info"> | ||
22 | + <div class="loading status hide"> | ||
23 | + 正在加载... | ||
24 | + </div> | ||
25 | + <span class="no-more status">没有更多啦</span> | ||
26 | + </div> | ||
27 | + | ||
28 | + {{#if tag}} | ||
29 | + <input id="tag" type="hidden" value={{tag}}> | ||
30 | + {{/if}} | ||
31 | + {{#if gender}} | ||
32 | + <input id="gender" type="hidden" value={{gender}}> | ||
33 | + {{/if}} | ||
34 | + {{#if isApp}} | ||
35 | + <input id="isApp" type="hidden" value={{isApp}}> | ||
36 | + {{/if}} | ||
37 | +{{/ guang}} | ||
38 | +</div> |
apps/guang/views/partial/info.hbs
0 → 100644
1 | +info | ||
2 | +<div class="guang-info" data-id="{{id}}"> | ||
3 | + {{# author}} | ||
4 | + <a class="info-author clearfix" href={{url}}> | ||
5 | + <img class="lazy avatar" data-original={{avatar}}> | ||
6 | + <span class="name">{{name}}</span> | ||
7 | + </a> | ||
8 | + {{/ author}} | ||
9 | + | ||
10 | + <div class="info-img"> | ||
11 | + {{#if showTags}} | ||
12 | + <a href="javascript:;" class="info-match"> | ||
13 | + {{# isTip}} | ||
14 | + 小贴士 | ||
15 | + <div class="info-tag tip"></div> | ||
16 | + {{/ isTip}} | ||
17 | + {{# isCollocation}} | ||
18 | + 搭配 | ||
19 | + <div class="info-tag collocation"></div> | ||
20 | + {{/ isCollocation}} | ||
21 | + {{# isFashionMan}} | ||
22 | + 潮人 | ||
23 | + <div class="info-tag fashion-man"></div> | ||
24 | + {{/ isFashionMan}} | ||
25 | + {{# isFashionGood}} | ||
26 | + 潮品 | ||
27 | + <div class="info-tag fashion-good"></div> | ||
28 | + {{/ isFashionGood}} | ||
29 | + {{# isTopic}} | ||
30 | + 话题 | ||
31 | + <div class="info-tag topic"></div> | ||
32 | + {{/ isTopic}} | ||
33 | + {{# isSpecialTopic}} | ||
34 | + 专题 | ||
35 | + <div class="info-tag special-topic"></div> | ||
36 | + {{/ isSpecialTopic}} | ||
37 | + </a> | ||
38 | + {{/if}} | ||
39 | + <a href="{{url}}"> | ||
40 | + <img class="lazy" data-original="{{img}}" alt="{{alt}}"> | ||
41 | + </a> | ||
42 | + </div> | ||
43 | + | ||
44 | + <div class="info-deps"> | ||
45 | + <a class="info-title-container" href="{{url}}"> | ||
46 | + <h2 class="info-title">{{title}}</h2> | ||
47 | + </a> | ||
48 | + <p class="info-text">{{text}}</p> | ||
49 | + {{> tvls}} | ||
50 | + </div> | ||
51 | +</div> |
apps/guang/views/partial/tvls.hbs
0 → 100644
1 | +<div class="time-view-like-share clearfix"> | ||
2 | + <i class="iconfont"></i> | ||
3 | + {{publishTime}} | ||
4 | + <i class="iconfont"></i> | ||
5 | + <span class="page-view">{{pageView}}</span> | ||
6 | + <div class="like-share-container"> | ||
7 | + {{# like}} | ||
8 | + <i class="iconfont like-btn{{#isLiked}} like{{/isLiked}}"></i> | ||
9 | + <span class="like-count">{{count}}</span> | ||
10 | + {{/ like}} | ||
11 | + {{# collect}} | ||
12 | + <a href={{url}}> | ||
13 | + <i class="iconfont collect-btn{{#isCollected}} collected{{/isCollected}}"></i> | ||
14 | + </a> | ||
15 | + {{/ collect}} | ||
16 | + {{# share}} | ||
17 | + <a href="{{.}}" class="iconfont share-btn"></a> | ||
18 | + {{/ share}} | ||
19 | + </div> | ||
20 | +</div> |
@@ -11,8 +11,10 @@ const isTest = process.env.NODE_ENV === 'test'; | @@ -11,8 +11,10 @@ const isTest = process.env.NODE_ENV === 'test'; | ||
11 | 11 | ||
12 | module.exports = { | 12 | module.exports = { |
13 | app: 'h5', | 13 | app: 'h5', |
14 | + appVersion: '4.9.2', // 调用api的版本 | ||
14 | port: 6001, | 15 | port: 6001, |
15 | siteUrl: '//m.yohobuy.com', | 16 | siteUrl: '//m.yohobuy.com', |
17 | + assetUrl: '//localhost:5001', | ||
16 | domains: { | 18 | domains: { |
17 | api: 'http://api-test3.yohops.com:9999/', | 19 | api: 'http://api-test3.yohops.com:9999/', |
18 | service: 'http://service-test3.yohops.com:9999/', | 20 | service: 'http://service-test3.yohops.com:9999/', |
@@ -28,12 +30,11 @@ module.exports = { | @@ -28,12 +30,11 @@ module.exports = { | ||
28 | activity: '//activity.yohobuy.com', | 30 | activity: '//activity.yohobuy.com', |
29 | index: '//m.yohobuy.com' | 31 | index: '//m.yohobuy.com' |
30 | }, | 32 | }, |
31 | - useOneapm: false, | ||
32 | useCache: false, | 33 | useCache: false, |
33 | memcache: { | 34 | memcache: { |
34 | - master: ['192.168.102.205:12111'], | ||
35 | - slave: ['192.168.102.205:12111'], | ||
36 | - session: ['192.168.102.205:12111'], | 35 | + master: ['192.168.102.168:12111'], |
36 | + slave: ['192.168.102.168:12111'], | ||
37 | + session: ['192.168.102.168:12111'], | ||
37 | timeout: 1000, | 38 | timeout: 1000, |
38 | retries: 0 | 39 | retries: 0 |
39 | }, | 40 | }, |
@@ -76,19 +77,19 @@ module.exports = { | @@ -76,19 +77,19 @@ module.exports = { | ||
76 | if (isProduction) { | 77 | if (isProduction) { |
77 | Object.assign(module.exports, { | 78 | Object.assign(module.exports, { |
78 | appName: 'm.yohobuy.com', | 79 | appName: 'm.yohobuy.com', |
80 | + assetUrl: '//cdn.yoho.cn/m-yohobuy-node/assets', | ||
79 | domains: { | 81 | domains: { |
80 | api: 'http://api.yoho.yohoops.org/', | 82 | api: 'http://api.yoho.yohoops.org/', |
81 | service: 'http://service.yoho.yohoops.org/', | 83 | service: 'http://service.yoho.yohoops.org/', |
82 | - liveApi: 'http://preapi.live.yoho.cn/' // 'http://api.live.yoho.cn/' | 84 | + liveApi: 'http://api.live.yoho.cn/' |
83 | }, | 85 | }, |
84 | memcache: { | 86 | memcache: { |
85 | master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], | 87 | master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], |
86 | slave: ['memcache1.yohoops.org:12112', 'memcache2.yohoops.org:12112', 'memcache3.yohoops.org:12112'], | 88 | slave: ['memcache1.yohoops.org:12112', 'memcache2.yohoops.org:12112', 'memcache3.yohoops.org:12112'], |
87 | session: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], | 89 | session: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], |
88 | - timeout: 1000, | 90 | + timeout: 100, |
89 | retries: 0 | 91 | retries: 0 |
90 | }, | 92 | }, |
91 | - useOneapm: true, | ||
92 | useCache: true, | 93 | useCache: true, |
93 | interfaceShunt: { | 94 | interfaceShunt: { |
94 | open: false, | 95 | open: false, |
@@ -98,19 +99,19 @@ if (isProduction) { | @@ -98,19 +99,19 @@ if (isProduction) { | ||
98 | } else if (isTest) { | 99 | } else if (isTest) { |
99 | Object.assign(module.exports, { | 100 | Object.assign(module.exports, { |
100 | appName: 'm.yohobuy.com for test', | 101 | appName: 'm.yohobuy.com for test', |
102 | + assetUrl: '//cdn.yoho.cn/m-yohobuy-node/assets', | ||
101 | domains: { | 103 | domains: { |
102 | - api: 'http://api-test3.yohops.com:9999/', | ||
103 | - service: 'http://service-test3.yohops.com:9999/', | ||
104 | - liveApi: 'http://testapi.live.yohops.com:9999/' | 104 | + api: process.env.TEST_API || 'http://api-test1.yohops.com:9999/', |
105 | + service: process.env.TEST_SERVICE || 'http://service-test1.yohops.com:9999/', | ||
106 | + liveApi: process.env.TEST_LIVE || 'http://testapi.live.yohops.com:9999/' | ||
105 | }, | 107 | }, |
106 | memcache: { | 108 | memcache: { |
107 | master: ['127.0.0.1:12111'], | 109 | master: ['127.0.0.1:12111'], |
108 | slave: ['127.0.0.1:12112'], | 110 | slave: ['127.0.0.1:12112'], |
109 | session: ['127.0.0.1:12111'], | 111 | session: ['127.0.0.1:12111'], |
110 | - timeout: 1000, | 112 | + timeout: 100, |
111 | retries: 0 | 113 | retries: 0 |
112 | }, | 114 | }, |
113 | - useOneapm: true, | ||
114 | useCache: true | 115 | useCache: true |
115 | }); | 116 | }); |
116 | } | 117 | } |
1 | { | 1 | { |
2 | "name": "m-yohobuy-node", | 2 | "name": "m-yohobuy-node", |
3 | - "version": "4.9.21", | 3 | + "version": "4.9.22", |
4 | "private": true, | 4 | "private": true, |
5 | "description": "A New Yohobuy Project With Express", | 5 | "description": "A New Yohobuy Project With Express", |
6 | "repository": { | 6 | "repository": { |
@@ -44,7 +44,6 @@ | @@ -44,7 +44,6 @@ | ||
44 | "memcached": "^2.2.1", | 44 | "memcached": "^2.2.1", |
45 | "moment": "^2.14.1", | 45 | "moment": "^2.14.1", |
46 | "morgan": "^1.7.0", | 46 | "morgan": "^1.7.0", |
47 | - "oneapm": "^1.2.20", | ||
48 | "passport": "^0.3.2", | 47 | "passport": "^0.3.2", |
49 | "passport-local": "^1.0.0", | 48 | "passport-local": "^1.0.0", |
50 | "passport-qq": "0.0.3", | 49 | "passport-qq": "0.0.3", |
public/img/activity/market/dot-bg.png
0 → 100644
2.73 KB
public/img/activity/market/floor-top-1.jpg
0 → 100644
4.19 KB
public/img/activity/market/floor-top-2.jpg
0 → 100644
4.55 KB
public/img/activity/market/foot-sao.png
0 → 100644
143 KB
public/img/activity/market/goods/floor-c.jpg
0 → 100644
93.6 KB
53.4 KB
65.8 KB
60 KB
78.8 KB
public/img/activity/market/goods/tab-1.jpg
0 → 100644
66.9 KB
public/img/activity/market/header.jpg
0 → 100644
8.51 KB
public/img/guang/clothes/bag.png
0 → 100644
1.05 KB
public/img/guang/clothes/cloth.png
0 → 100644
908 Bytes
public/img/guang/clothes/dress.png
0 → 100644
1.63 KB
public/img/guang/clothes/headset.png
0 → 100644
999 Bytes
public/img/guang/clothes/lamp.png
0 → 100644
935 Bytes
public/img/guang/clothes/pants.png
0 → 100644
1.45 KB
public/img/guang/clothes/shoe.png
0 → 100644
821 Bytes
public/img/guang/clothes/swim-suit.png
0 → 100644
1.72 KB
public/img/guang/clothes/under.png
0 → 100644
1.12 KB
public/img/guang/clothes/watch.png
0 → 100644
1.18 KB
public/img/guang/info/collocation.png
0 → 100644
2.63 KB
public/img/guang/info/fashion-good.png
0 → 100644
2.51 KB
public/img/guang/info/fashion-man.png
0 → 100644
2.63 KB
public/img/guang/info/tip.png
0 → 100644
2.63 KB
public/img/guang/info/topic.png
0 → 100644
2.64 KB
1.31 KB
24.9 KB
public/img/guang/star-classroom/home-wyf.png
0 → 100644
23.4 KB
public/img/guang/star-classroom/king-ico.png
0 → 100644
1.57 KB
1.13 KB
1.92 KB
1.53 KB
public/img/guang/tag.png
0 → 100644
2.14 KB
public/img/guang/thumb-container-bg.png
0 → 100644
5.2 KB
public/img/me/index/user-avatar.png
0 → 100644
4.37 KB
public/img/sprite.guang (2).png
0 → 100644
21.8 KB
public/js/activity/market.page.js
0 → 100644
1 | +var $ = require('yoho-jquery'), | ||
2 | + Swiper = require('yoho-swiper'), | ||
3 | + lazyLoad = require('yoho-jquery-lazyload'); | ||
4 | + | ||
5 | +var swiper = new Swiper('.tab .swiper-container', { | ||
6 | + pagination: '.swiper-pagination', | ||
7 | + lazyLoading: true, | ||
8 | + lazyLoadingInPrevNext: true, | ||
9 | + paginationClickable: true, | ||
10 | + loop: true, | ||
11 | + autoplay: 3000, | ||
12 | +}); | ||
13 | + | ||
14 | +require('lodash/commit'); | ||
15 | + | ||
16 | +lazyLoad($('img.lazy')); | ||
17 | + | ||
18 | +// 统计用户点击事件 | ||
19 | +$( | ||
20 | + function() { | ||
21 | + $('a').click( | ||
22 | + function() { | ||
23 | + if (window._yas) { | ||
24 | + window._yas.sendCustomInfo({ | ||
25 | + | ||
26 | + }, true); | ||
27 | + } | ||
28 | + } | ||
29 | + ); | ||
30 | + } | ||
31 | +); |
@@ -391,9 +391,19 @@ $(document).on('click', '.s-footer .checkbox', function() { | @@ -391,9 +391,19 @@ $(document).on('click', '.s-footer .checkbox', function() { | ||
391 | /* | 391 | /* |
392 | * 数据提交 | 392 | * 数据提交 |
393 | */ | 393 | */ |
394 | +$('.s-submit').data('isClick', true); | ||
394 | $(document).on('click', '.s-submit', function() { | 395 | $(document).on('click', '.s-submit', function() { |
395 | var obj = changeSuccess(), | 396 | var obj = changeSuccess(), |
396 | FAILURE_CAUSE; | 397 | FAILURE_CAUSE; |
398 | + var $that = $(this); | ||
399 | + | ||
400 | + // 存cookie 记录状态 | ||
401 | + localStorage.setItem(STUDENTCOOKIES, JSON.stringify(obj.data)); | ||
402 | + | ||
403 | + if ($that.data('isClick') === false) { | ||
404 | + return; | ||
405 | + } | ||
406 | + $that.data('isClick', false); | ||
397 | 407 | ||
398 | if (!obj.msg) { | 408 | if (!obj.msg) { |
399 | $.ajax({ | 409 | $.ajax({ |
@@ -412,15 +422,15 @@ $(document).on('click', '.s-submit', function() { | @@ -412,15 +422,15 @@ $(document).on('click', '.s-submit', function() { | ||
412 | } | 422 | } |
413 | }, true); | 423 | }, true); |
414 | } | 424 | } |
415 | - | ||
416 | location.href = data.data; | 425 | location.href = data.data; |
417 | } else { | 426 | } else { |
427 | + $that.data('isClick', true); | ||
418 | tip.show(data.message); | 428 | tip.show(data.message); |
419 | } | 429 | } |
420 | - | ||
421 | }); | 430 | }); |
422 | } else { | 431 | } else { |
423 | tip.show(obj.msg); | 432 | tip.show(obj.msg); |
433 | + $that.data('isClick', true); | ||
424 | if (obj.msg.indexOf('字段为空') > -1) { | 434 | if (obj.msg.indexOf('字段为空') > -1) { |
425 | FAILURE_CAUSE = 1; | 435 | FAILURE_CAUSE = 1; |
426 | } else if (obj.msg.indexOf('认证协议') > -1) { | 436 | } else if (obj.msg.indexOf('认证协议') > -1) { |
public/js/guang/index.page.js
0 → 100644
1 | +/** | ||
2 | + * 逛首页 | ||
3 | + * @author: xuqi<qi.xu@yoho.cn> | ||
4 | + * @date: 2015/10/10 | ||
5 | + */ | ||
6 | + | ||
7 | +var $ = require('yoho-jquery'); | ||
8 | + | ||
9 | +var info = require('./info'), | ||
10 | + loadMore = info.loadMore; | ||
11 | + | ||
12 | +var $loadMoreInfo = $('#load-more-info'); | ||
13 | +var $loading = $(''), | ||
14 | + $noMore = $(''); | ||
15 | + | ||
16 | +var winH = $(window).height(); | ||
17 | + | ||
18 | +var $infoList = $('#info-list'), | ||
19 | + $infos = $infoList.children('.info-list'), | ||
20 | + $nav = $('#guang-nav'), | ||
21 | + $curNav = $nav.children('.focus'), | ||
22 | + curType = $curNav.data('type'); | ||
23 | + | ||
24 | +require('../common'); | ||
25 | + | ||
26 | +var state = {}; | ||
27 | + | ||
28 | +if ($loadMoreInfo.length > 0) { | ||
29 | + $loading = $loadMoreInfo.children('.loading'); | ||
30 | + $noMore = $loadMoreInfo.children('.no-more'); | ||
31 | +} | ||
32 | + | ||
33 | +info.initSwiper(curType); | ||
34 | + | ||
35 | +info.initInfosEvt($infoList); | ||
36 | + | ||
37 | +// 初始化各Nav下资讯加载的状态 | ||
38 | +(function() { | ||
39 | + var gender = $('#gender').val(); | ||
40 | + | ||
41 | + $nav.children('.guang-nav-item').each(function() { | ||
42 | + var type = $(this).data('type'), | ||
43 | + focus = $(this).hasClass('focus'); | ||
44 | + | ||
45 | + state[type] = { | ||
46 | + page: focus ? 2 : 1, | ||
47 | + gender: gender, | ||
48 | + type: type, | ||
49 | + end: false | ||
50 | + }; | ||
51 | + }); | ||
52 | +}()); | ||
53 | +$nav.bind('contextmenu', function(e) { | ||
54 | + return false; | ||
55 | +}); | ||
56 | +$nav.on('touchend touchcancel', function(e) { | ||
57 | + | ||
58 | + var $this = $(e.target).closest('.guang-nav-item'), | ||
59 | + $content, | ||
60 | + index; | ||
61 | + | ||
62 | + if ($this.hasClass('focus')) { | ||
63 | + return; | ||
64 | + } | ||
65 | + | ||
66 | + | ||
67 | + index = $this.index(); | ||
68 | + | ||
69 | + $this.addClass('focus'); | ||
70 | + $curNav.removeClass('focus'); | ||
71 | + | ||
72 | + $content = $infos.eq(index); | ||
73 | + | ||
74 | + $curNav = $this; | ||
75 | + curType = $this.data('type'); | ||
76 | + | ||
77 | + // 当未加载数据时去请求数据 | ||
78 | + if (state[curType].page === 1) { | ||
79 | + | ||
80 | + // 无数据时隐藏正在加载和没有更多字样 | ||
81 | + $loading.addClass('hide'); | ||
82 | + $noMore.addClass('hide'); | ||
83 | + | ||
84 | + state[curType].isTab = true; | ||
85 | + loadMore($content, state[curType]); | ||
86 | + } else { | ||
87 | + | ||
88 | + // 重置当前Tab的load-more | ||
89 | + if (state[curType].end) { | ||
90 | + $loading.addClass('hide'); | ||
91 | + $noMore.removeClass('hide'); | ||
92 | + } else { | ||
93 | + $loading.removeClass('hide'); | ||
94 | + $noMore.addClass('hide'); | ||
95 | + } | ||
96 | + } | ||
97 | + | ||
98 | + $infos.not('.hide').addClass('hide'); | ||
99 | + $content.removeClass('hide'); | ||
100 | + | ||
101 | + if (state[curType].page === 1) { | ||
102 | + window.rePosFooter();// 进入空内容时重新定位footer位置 | ||
103 | + } | ||
104 | +}); | ||
105 | + | ||
106 | +function scrollHandler() { | ||
107 | + var $c = $infos.not('.hide'); | ||
108 | + | ||
109 | + if ($(window).scrollTop() + winH >= $(document).height() - 0.25 * $c.height()) { | ||
110 | + loadMore($c, state[curType]); | ||
111 | + } | ||
112 | +} | ||
113 | + | ||
114 | +// srcoll to load more | ||
115 | +$(document).scroll(function() { | ||
116 | + window.requestAnimationFrame(scrollHandler); | ||
117 | +}); | ||
118 | + | ||
119 | +$nav.on('touchstart', function(e) { | ||
120 | + var target = e.target || e.srcElement; | ||
121 | + | ||
122 | + target.className = 'bytouch ' + target.className; | ||
123 | +}).on('touchend touchcancel', function() { | ||
124 | + $nav.find('li').removeClass('bytouch'); | ||
125 | +}); |
public/js/guang/info.js
0 → 100644
1 | +/** | ||
2 | + * 资讯相关API | ||
3 | + * @author: xuqi<qi.xu@yoho.cn> | ||
4 | + * @date: 2015/10/10 | ||
5 | + */ | ||
6 | + | ||
7 | +var $ = require('yoho-jquery'), | ||
8 | + Hammer = require('yoho-hammer'), | ||
9 | + ellipsis = require('yoho-mlellipsis'), | ||
10 | + lazyLoad = require('yoho-jquery-lazyload'), | ||
11 | + Swiper = require('yoho-swiper'); | ||
12 | + | ||
13 | +var tip = require('../plugin/tip'); | ||
14 | +var loading = require('../plugin/loading'); | ||
15 | + | ||
16 | +var $loadMoreInfo = $('#load-more-info'); | ||
17 | +var $loading = $(''), | ||
18 | + $noMore = $(''), | ||
19 | + $swiper = $(''); | ||
20 | + | ||
21 | +require('../common'); | ||
22 | + | ||
23 | +var searching = false; | ||
24 | +var mySwiper = {}; | ||
25 | + | ||
26 | +var isLoading = false; | ||
27 | + | ||
28 | +ellipsis.init(); | ||
29 | + | ||
30 | +if ($loadMoreInfo.length > 0) { | ||
31 | + $loading = $loadMoreInfo.children('.loading'); | ||
32 | + $noMore = $loadMoreInfo.children('.no-more'); | ||
33 | +} | ||
34 | + | ||
35 | +// 获取url中的参数 | ||
36 | +function getUrlParam(name) { | ||
37 | + | ||
38 | + // 构造一个含有目标参数的正则表达式对象 | ||
39 | + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); | ||
40 | + | ||
41 | + // 匹配目标参数 | ||
42 | + var r = window.location.search.substr(1).match(reg); | ||
43 | + | ||
44 | + // 返回参数值 | ||
45 | + if (r != null) { | ||
46 | + return r[2]; | ||
47 | + } | ||
48 | + | ||
49 | + return null; | ||
50 | +} | ||
51 | + | ||
52 | +// 初始化swiper | ||
53 | +function initSwiper(typeId) { | ||
54 | + if (typeof typeId === undefined) { | ||
55 | + return; | ||
56 | + } | ||
57 | + mySwiper[typeId] = new Swiper('.swiper-cont-' + typeId, { | ||
58 | + lazyLoading: true, | ||
59 | + wrapperClass: 'swiper-wrap-' + typeId, | ||
60 | + pagination: '.swiper-pagi-' + typeId, | ||
61 | + autoplay: 3000 | ||
62 | + }); | ||
63 | +} | ||
64 | + | ||
65 | +/** | ||
66 | + * 设置指定资讯项的Lazyload和文字截取 | ||
67 | + * @params $infos 资讯项 | ||
68 | + */ | ||
69 | +function setLazyLoadAndMellipsis($infos) { | ||
70 | + lazyLoad($infos.find('img.lazy')); | ||
71 | + | ||
72 | + $infos.each(function() { | ||
73 | + var $this = $(this), | ||
74 | + $title = $this.find('.info-title'), | ||
75 | + $text = $this.find('.info-text'); | ||
76 | + | ||
77 | + $title[0].mlellipsis(2); | ||
78 | + $text[0].mlellipsis(2); | ||
79 | + }); | ||
80 | +} | ||
81 | + | ||
82 | +/** | ||
83 | + * 初始化资讯列表事件绑定 | ||
84 | + * @params $container 逛资讯列表容器 | ||
85 | + */ | ||
86 | +function initInfosEvt($container) { | ||
87 | + var cHammer; | ||
88 | + | ||
89 | + if (typeof $container === 'undefined') { | ||
90 | + return; | ||
91 | + } | ||
92 | + if (typeof $container[0] === 'undefined') { | ||
93 | + return; | ||
94 | + } | ||
95 | + cHammer = new Hammer($container[0]); | ||
96 | + | ||
97 | + // 点赞或者收藏事件 | ||
98 | + cHammer.on('tap', function(e) { | ||
99 | + var $this = $(e.target), | ||
100 | + opt = 'ok', | ||
101 | + $btn, | ||
102 | + $info, | ||
103 | + yhChannel; | ||
104 | + | ||
105 | + // e.preventDefault(); | ||
106 | + | ||
107 | + // 点赞 | ||
108 | + $btn = $this.closest('.like-btn'); | ||
109 | + if ($btn.length > 0 && !isLoading) { | ||
110 | + e.preventDefault(); | ||
111 | + if ($btn.hasClass('like')) { | ||
112 | + opt = 'cancel'; | ||
113 | + } | ||
114 | + | ||
115 | + $info = $this.closest('.guang-info'); | ||
116 | + | ||
117 | + isLoading = true; | ||
118 | + | ||
119 | + $.ajax({ | ||
120 | + type: 'POST', | ||
121 | + url: '/guang/opt/praiseArticle', | ||
122 | + data: { | ||
123 | + id: $info.data('id'), | ||
124 | + opt: opt | ||
125 | + }, | ||
126 | + success: function(data) { | ||
127 | + var code = data.code; | ||
128 | + | ||
129 | + | ||
130 | + if (code === 200) { | ||
131 | + $btn.next('.like-count').text(data.data); | ||
132 | + | ||
133 | + // 切换点赞状态 | ||
134 | + $btn.toggleClass('like'); | ||
135 | + } | ||
136 | + }, | ||
137 | + error: function() { | ||
138 | + tip.show('网络断开连接了~'); | ||
139 | + }, | ||
140 | + complete: function() { | ||
141 | + isLoading = false; | ||
142 | + } | ||
143 | + }); | ||
144 | + return; | ||
145 | + } | ||
146 | + | ||
147 | + // APP收藏 | ||
148 | + $btn = $this.closest('.collect-btn'); | ||
149 | + if ($btn.length > 0) { | ||
150 | + e.preventDefault(); | ||
151 | + if ($btn.hasClass('collected')) { | ||
152 | + opt = 'cancel'; | ||
153 | + } | ||
154 | + | ||
155 | + $info = $this.closest('.guang-info'); | ||
156 | + | ||
157 | + if (getUrlParam('yh_channel')) { | ||
158 | + yhChannel = getUrlParam('yh_channel'); | ||
159 | + } | ||
160 | + | ||
161 | + $.ajax({ | ||
162 | + type: 'POST', | ||
163 | + url: '/guang/opt/collectArticle', | ||
164 | + data: { | ||
165 | + id: $info.data('id'), | ||
166 | + opt: opt, | ||
167 | + yh_channel: yhChannel, | ||
168 | + uid: getUrlParam('uid') | ||
169 | + }, | ||
170 | + success: function(data) { | ||
171 | + if (data.code && data.code === 200) { | ||
172 | + | ||
173 | + // 切换收藏状态 | ||
174 | + $btn.toggleClass('collected'); | ||
175 | + } | ||
176 | + }, | ||
177 | + error: function() { | ||
178 | + tip.show('网络断开连接了~'); | ||
179 | + } | ||
180 | + }); | ||
181 | + } | ||
182 | + }); | ||
183 | + | ||
184 | + setLazyLoadAndMellipsis($container.find('.guang-info')); | ||
185 | +} | ||
186 | + | ||
187 | +/** | ||
188 | + * 资讯LoadMore | ||
189 | + * @param $container 资讯容器 jqyeryObject | ||
190 | + * @param opt 请求参数 | ||
191 | + * @param url[可选], 扩展请求的url而不使用默认值 | ||
192 | + */ | ||
193 | +function loadMore($container, opt, url) { | ||
194 | + var num; | ||
195 | + | ||
196 | + if (searching) { | ||
197 | + return; | ||
198 | + } | ||
199 | + | ||
200 | + if (opt.end) { | ||
201 | + return; | ||
202 | + } | ||
203 | + | ||
204 | + if (opt.page === 1) { | ||
205 | + | ||
206 | + // 显示loading | ||
207 | + loading.showLoadingMask(); | ||
208 | + } | ||
209 | + | ||
210 | + num = $container.find('.guang-info').length; | ||
211 | + searching = true; | ||
212 | + $.ajax({ | ||
213 | + type: 'GET', | ||
214 | + url: url ? url : '/guang/index/page', // 对于指定url的使用指定url(存在不同的控制器) | ||
215 | + data: opt, | ||
216 | + success: function(data) { | ||
217 | + var $newItems; | ||
218 | + | ||
219 | + if (data === ' ') { | ||
220 | + opt.end = true; | ||
221 | + searching = false; | ||
222 | + | ||
223 | + // | ||
224 | + $loading.addClass('hide'); | ||
225 | + $noMore.removeClass('hide'); | ||
226 | + | ||
227 | + return; | ||
228 | + } | ||
229 | + | ||
230 | + $container.append(data); | ||
231 | + | ||
232 | + $swiper = $container.find('.swiper-container'); | ||
233 | + if ($swiper.length) { | ||
234 | + $swiper.addClass('swiper-cont-' + opt.type); | ||
235 | + $swiper.children('.swiper-wrapper').addClass('swiper-wrap-' + opt.type); | ||
236 | + $swiper.children('.swiper-pagination').addClass('swiper-pagi-' + opt.type); | ||
237 | + initSwiper(opt.type); | ||
238 | + } | ||
239 | + | ||
240 | + if (num > 0) { | ||
241 | + $newItems = $container.find('.guang-info:gt(' + (num - 1) + ')'); | ||
242 | + } else { | ||
243 | + $newItems = $container.find('.guang-info'); | ||
244 | + } | ||
245 | + | ||
246 | + setLazyLoadAndMellipsis($newItems); | ||
247 | + | ||
248 | + if (opt.page === 1) { | ||
249 | + loading.hideLoadingMask(); | ||
250 | + | ||
251 | + $loading.removeClass('hide');// 显示空屏加载时hide的隐藏 | ||
252 | + | ||
253 | + window.rePosFooter();// 插入内容后重新计算底部位置 | ||
254 | + } | ||
255 | + | ||
256 | + opt.page++; | ||
257 | + | ||
258 | + searching = false; | ||
259 | + delete opt.isTab; | ||
260 | + }, | ||
261 | + error: function() { | ||
262 | + tip.show('网络断开连接了~'); | ||
263 | + searching = false; | ||
264 | + delete opt.isTab; | ||
265 | + } | ||
266 | + }); | ||
267 | +} | ||
268 | + | ||
269 | + | ||
270 | +exports.mySwiper = mySwiper; | ||
271 | +exports.initSwiper = initSwiper; | ||
272 | +exports.initInfosEvt = initInfosEvt; | ||
273 | +exports.setLazyLoadAndMellipsis = setLazyLoadAndMellipsis; | ||
274 | +exports.loadMore = loadMore; |
@@ -30,6 +30,9 @@ var debounceFn = debounce(function(cardNo, formModel) { | @@ -30,6 +30,9 @@ var debounceFn = debounce(function(cardNo, formModel) { | ||
30 | 30 | ||
31 | // 返回1不支持, 孟令阶 | 31 | // 返回1不支持, 孟令阶 |
32 | if (result && result.data && result.data.businessSupport === '1') { | 32 | if (result && result.data && result.data.businessSupport === '1') { |
33 | + formModel.bankCode = ''; | ||
34 | + formModel.bankName = ''; | ||
35 | + | ||
33 | $('#bank-name').text('暂不支持此银行卡'); | 36 | $('#bank-name').text('暂不支持此银行卡'); |
34 | $('#bank-desc').show(); | 37 | $('#bank-desc').show(); |
35 | $('#bank-icon').hide(); | 38 | $('#bank-icon').hide(); |
@@ -43,18 +46,12 @@ var debounceFn = debounce(function(cardNo, formModel) { | @@ -43,18 +46,12 @@ var debounceFn = debounce(function(cardNo, formModel) { | ||
43 | 46 | ||
44 | var checkCard = function(formModel) { | 47 | var checkCard = function(formModel) { |
45 | // 银行卡格式化 | 48 | // 银行卡格式化 |
46 | - $('#cardNo').keyup(function() { | 49 | + $('#cardNo').on('input', function() { |
47 | var value = $(this).val(); | 50 | var value = $(this).val(); |
48 | var cardNo = $(this).val().replace(/\s/g, ''); | 51 | var cardNo = $(this).val().replace(/\s/g, ''); |
49 | 52 | ||
50 | $(this).val(value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ')).trigger('change'); | 53 | $(this).val(value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ')).trigger('change'); |
51 | 54 | ||
52 | - if (cardNo && cardNo.length < 16) { | ||
53 | - $('#bank-desc').hide(); | ||
54 | - } | ||
55 | - }).blur(function() { | ||
56 | - var cardNo = $(this).val().replace(/\s/g, ''); | ||
57 | - | ||
58 | if (cardNo && cardNo.length >= 16) { | 55 | if (cardNo && cardNo.length >= 16) { |
59 | debounceFn(cardNo, formModel); | 56 | debounceFn(cardNo, formModel); |
60 | } else { | 57 | } else { |
@@ -35,14 +35,15 @@ var validateForm = function() { | @@ -35,14 +35,15 @@ var validateForm = function() { | ||
35 | 35 | ||
36 | checkCard(formData); | 36 | checkCard(formData); |
37 | 37 | ||
38 | -// 输入框改变时同时更新模型 | ||
39 | -$('input').on('input', function() { | ||
40 | - var name = $(this).attr('name'); | ||
41 | - | ||
42 | - formData[name] = $(this).val(); | 38 | +// 定时更新模型,解决各种浏览器奇葩问题终极办法 |
39 | +setInterval(function() { | ||
40 | + $('input').each(function() { | ||
41 | + var name = $(this).attr('name'); | ||
43 | 42 | ||
43 | + formData[name] = $(this).val(); | ||
44 | + }); | ||
44 | validateForm(); | 45 | validateForm(); |
45 | -}); | 46 | +}, 500); |
46 | 47 | ||
47 | applyButton.on('click', function() { | 48 | applyButton.on('click', function() { |
48 | var self = this; | 49 | var self = this; |
public/scss/activity/market/_index.css
0 → 100644
1 | +@import "style"; |
public/scss/activity/market/_style.css
0 → 100644
1 | +.container { | ||
2 | + width: 100%; | ||
3 | + max-width: 640px; | ||
4 | + margin: 0 auto; | ||
5 | + position: relative; | ||
6 | + background: #222; | ||
7 | + padding-bottom: 10px; | ||
8 | +} | ||
9 | + | ||
10 | +.header { | ||
11 | + width: 100%; | ||
12 | + height: 82px; | ||
13 | + background: resolve("activity/market/header.jpg") no-repeat center center; | ||
14 | + background-size: contain; | ||
15 | +} | ||
16 | + | ||
17 | +.header { | ||
18 | + div { | ||
19 | + width: 375px; | ||
20 | + line-height: 82px; | ||
21 | + font-size: 24px; | ||
22 | + color: #fff; | ||
23 | + float: right; | ||
24 | + text-align: center; | ||
25 | + overflow: hidden; | ||
26 | + white-space: nowrap; | ||
27 | + text-overflow: ellipsis; | ||
28 | + -webkit-text-overflow: ellipsis; | ||
29 | + } | ||
30 | +} | ||
31 | + | ||
32 | +.tab { | ||
33 | + width: 100%; | ||
34 | + height: 310px; | ||
35 | +} | ||
36 | + | ||
37 | +.tab { | ||
38 | + img { | ||
39 | + width: 100%; | ||
40 | + height: 100%; | ||
41 | + } | ||
42 | +} | ||
43 | + | ||
44 | +.swiper-container { | ||
45 | + width: 100%; | ||
46 | + height: 100%; | ||
47 | +} | ||
48 | + | ||
49 | +.swiper-pagination-bullet { | ||
50 | + background: #959799 !important; | ||
51 | + width: 14px !important; | ||
52 | + height: 14px !important; | ||
53 | + margin: 0 9px !important; | ||
54 | +} | ||
55 | + | ||
56 | +.swiper-pagination-bullet-active { | ||
57 | + background: #fff !important; | ||
58 | +} | ||
59 | + | ||
60 | +.floor-top { | ||
61 | + width: 100%; | ||
62 | + height: 68px; | ||
63 | +} | ||
64 | + | ||
65 | +.floor-top { | ||
66 | + img { | ||
67 | + width: 100%; | ||
68 | + height: 100%; | ||
69 | + } | ||
70 | +} | ||
71 | + | ||
72 | +.floor-ul { | ||
73 | + li { | ||
74 | + width: 100%; | ||
75 | + height: 170px; | ||
76 | + position: relative; | ||
77 | + margin-bottom: 17px; | ||
78 | + } | ||
79 | +} | ||
80 | + | ||
81 | +.floor-ul { | ||
82 | + li { | ||
83 | + img { | ||
84 | + width: 100%; | ||
85 | + height: 100%; | ||
86 | + } | ||
87 | + } | ||
88 | +} | ||
89 | + | ||
90 | +.floor-ul { | ||
91 | + li { | ||
92 | + p { | ||
93 | + height: 45px; | ||
94 | + line-height: 45px; | ||
95 | + position: absolute; | ||
96 | + bottom: 0; | ||
97 | + left: 0; | ||
98 | + right: 0; | ||
99 | + color: #fff; | ||
100 | + font-size: 18px; | ||
101 | + overflow: hidden; | ||
102 | + white-space: nowrap; | ||
103 | + text-overflow: ellipsis; | ||
104 | + -webkit-text-overflow: ellipsis; | ||
105 | + padding: 0 25px; | ||
106 | + } | ||
107 | + } | ||
108 | +} | ||
109 | + | ||
110 | +.floor-c { | ||
111 | + background: #fff; | ||
112 | + padding: 25px; | ||
113 | + position: relative; | ||
114 | +} | ||
115 | + | ||
116 | +.floor-c { | ||
117 | + img { | ||
118 | + width: 100%; | ||
119 | + height: 100%; | ||
120 | + } | ||
121 | +} | ||
122 | + | ||
123 | +.floor-c { | ||
124 | + p { | ||
125 | + height: 45px; | ||
126 | + line-height: 45px; | ||
127 | + position: absolute; | ||
128 | + bottom: 0; | ||
129 | + left: 0; | ||
130 | + right: 0; | ||
131 | + color: #fff; | ||
132 | + font-size: 18px; | ||
133 | + overflow: hidden; | ||
134 | + white-space: nowrap; | ||
135 | + text-overflow: ellipsis; | ||
136 | + -webkit-text-overflow: ellipsis; | ||
137 | + margin: 0 40px 25px; | ||
138 | + } | ||
139 | +} | ||
140 | + | ||
141 | +.down { | ||
142 | + width: 100%; | ||
143 | + height: 265px; | ||
144 | + position: relative; | ||
145 | + display: block; | ||
146 | +} | ||
147 | + | ||
148 | +.down { | ||
149 | + img { | ||
150 | + width: 100%; | ||
151 | + position: absolute; | ||
152 | + top: -10px; | ||
153 | + left: 0; | ||
154 | + right: 0; | ||
155 | + } | ||
156 | +} |
public/scss/guang/_detail.css
0 → 100644
1 | +@define-mixin relatedTitle { | ||
2 | + margin: 0 29px; | ||
3 | + background: #fff; | ||
4 | + border: 1px solid #e0e0e0; | ||
5 | + border-bottom: none; | ||
6 | + line-height: 72px; | ||
7 | + font-size: 30px; | ||
8 | + color: #b0b0b0; | ||
9 | + text-align: center; | ||
10 | +} | ||
11 | + | ||
12 | +.guang-detail-page { | ||
13 | + #wrapper { | ||
14 | + background: #f0f0f0; | ||
15 | + } | ||
16 | + | ||
17 | + #wrapper.ios { | ||
18 | + position: absolute; | ||
19 | + top: 0; | ||
20 | + bottom: 0; | ||
21 | + left: 0; | ||
22 | + right: 0; | ||
23 | + overflow: hidden; | ||
24 | + | ||
25 | + &.has-head { | ||
26 | + top: 90px; | ||
27 | + | ||
28 | + + .fixed-top { | ||
29 | + top: 90px; | ||
30 | + } | ||
31 | + } | ||
32 | + } | ||
33 | + | ||
34 | + .author { | ||
35 | + border-bottom: 1px solid #e0e0e0; | ||
36 | + background: #fff; | ||
37 | + | ||
38 | + > a { | ||
39 | + display: block; | ||
40 | + height: 100%; | ||
41 | + } | ||
42 | + | ||
43 | + .avatar { | ||
44 | + float: left; | ||
45 | + margin-top: 20px; | ||
46 | + margin-left: 30px; | ||
47 | + width: 50px; | ||
48 | + height: 50px; | ||
49 | + border-radius: 50%; | ||
50 | + } | ||
51 | + | ||
52 | + .name { | ||
53 | + float: left; | ||
54 | + font-size: 28px; | ||
55 | + color: #000; | ||
56 | + padding: 30px 0; | ||
57 | + margin-left: 30px; | ||
58 | + } | ||
59 | + | ||
60 | + .intro { | ||
61 | + float: left; | ||
62 | + font-size: 28px; | ||
63 | + color: #b0b0b0; | ||
64 | + padding: 30px 0; | ||
65 | + margin-left: 30px; | ||
66 | + } | ||
67 | + } | ||
68 | + | ||
69 | + .post-title { | ||
70 | + padding: 16px 0 26px 30px; | ||
71 | + background: #fff; | ||
72 | + | ||
73 | + .title { | ||
74 | + line-height: 60px; | ||
75 | + font-size: 40px; | ||
76 | + color: #000; | ||
77 | + font-weight: bold; | ||
78 | + } | ||
79 | + } | ||
80 | + | ||
81 | + .text-block { | ||
82 | + padding: 20px 30px; | ||
83 | + line-height: 46px; | ||
84 | + font-size: 28px; | ||
85 | + background: #fff; | ||
86 | + color: #444; | ||
87 | + word-break: break-word; | ||
88 | + word-wrap: break-word; | ||
89 | + } | ||
90 | + | ||
91 | + .big-img-block { | ||
92 | + padding-bottom: 5px; | ||
93 | + background: #fff; | ||
94 | + | ||
95 | + img { | ||
96 | + width: 100%; | ||
97 | + } | ||
98 | + } | ||
99 | + | ||
100 | + .small-img-block { | ||
101 | + padding-bottom: 8px; | ||
102 | + background: #fff; | ||
103 | + | ||
104 | + img { | ||
105 | + float: right; | ||
106 | + width: 315px; | ||
107 | + height: 420px; | ||
108 | + | ||
109 | + &:first-child { | ||
110 | + float: left; | ||
111 | + } | ||
112 | + } | ||
113 | + } | ||
114 | + | ||
115 | + .collocation-block { | ||
116 | + background: #fff; | ||
117 | + | ||
118 | + .good-list { | ||
119 | + padding-left:15px; | ||
120 | + } | ||
121 | + } | ||
122 | + | ||
123 | + .thumb-container { | ||
124 | + padding-top: 30px; | ||
125 | + padding-left: 20px; | ||
126 | + background: transparent resolve('guang/thumb-container-bg.png') no-repeat; | ||
127 | + background-size: 200% 100%; | ||
128 | + | ||
129 | + &.fixed-top { | ||
130 | + position: fixed; | ||
131 | + left: 0; | ||
132 | + right: 0; | ||
133 | + top: 0; | ||
134 | + } | ||
135 | + | ||
136 | + &.fixed-bottom { | ||
137 | + position: fixed; | ||
138 | + left: 0; | ||
139 | + right: 0; | ||
140 | + bottom: 0; | ||
141 | + background: rgba(255,255,255,0.9); | ||
142 | + } | ||
143 | + | ||
144 | + &.absolute { | ||
145 | + position: absolute; | ||
146 | + left: 0; | ||
147 | + right: 0; | ||
148 | + } | ||
149 | + | ||
150 | + &.static { | ||
151 | + position: static; | ||
152 | + } | ||
153 | + | ||
154 | + &.hide { | ||
155 | + display: none; | ||
156 | + } | ||
157 | + } | ||
158 | + | ||
159 | + .clothe-type { | ||
160 | + position: absolute; | ||
161 | + right: 6px; | ||
162 | + bottom: 34px; | ||
163 | + width: 20px; | ||
164 | + height: 20px; | ||
165 | + border-radius: 50%; | ||
166 | + | ||
167 | + &.bag { | ||
168 | + background: url("/guang/clothes/bag.png"); | ||
169 | + background-color: #fff; | ||
170 | + background-size: 100%; | ||
171 | + } | ||
172 | + | ||
173 | + &.cloth { | ||
174 | + background: url("/guang/clothes/cloth.png"); | ||
175 | + background-color: #fff; | ||
176 | + background-size: 100%; | ||
177 | + } | ||
178 | + | ||
179 | + &.dress { | ||
180 | + background: url("/guang/clothes/dress.png"); | ||
181 | + background-color: #fff; | ||
182 | + background-size: 100%; | ||
183 | + } | ||
184 | + | ||
185 | + &.headset { | ||
186 | + background: url("/guang/clothes/headset.png"); | ||
187 | + background-color: #fff; | ||
188 | + background-size: 100%; | ||
189 | + } | ||
190 | + | ||
191 | + &.lamp { | ||
192 | + background: url("/guang/clothes/lamp.png"); | ||
193 | + background-color: #fff; | ||
194 | + background-size: 100%; | ||
195 | + } | ||
196 | + | ||
197 | + &.pants { | ||
198 | + background: url("/guang/clothes/pants.png"); | ||
199 | + background-color: #fff; | ||
200 | + background-size: 100%; | ||
201 | + } | ||
202 | + | ||
203 | + &.shoe { | ||
204 | + background: url("/guang/clothes/shoe.png"); | ||
205 | + background-color: #fff; | ||
206 | + background-size: 100%; | ||
207 | + } | ||
208 | + | ||
209 | + &.swim-suit { | ||
210 | + background: url("/guang/clothes/swim-suit.png"); | ||
211 | + background-color: #fff; | ||
212 | + background-size: 100%; | ||
213 | + } | ||
214 | + | ||
215 | + &.under { | ||
216 | + background: url("/guang/clothes/under.png"); | ||
217 | + background-color: #fff; | ||
218 | + background-size: 100%; | ||
219 | + } | ||
220 | + | ||
221 | + &.watch { | ||
222 | + background: url("/guang/clothes/watch.png"); | ||
223 | + background-color: #fff; | ||
224 | + background-size: 100%; | ||
225 | + } | ||
226 | + } | ||
227 | + | ||
228 | + .thumb { | ||
229 | + display: inline-block; | ||
230 | + position: relative; | ||
231 | + margin-right: 22px; | ||
232 | + padding-bottom: 30px; | ||
233 | + | ||
234 | + &:last-child { | ||
235 | + margin-right: 0; | ||
236 | + } | ||
237 | + | ||
238 | + &.focus .thumb-img { | ||
239 | + border-color: #000; | ||
240 | + } | ||
241 | + } | ||
242 | + | ||
243 | + .thumb-img { | ||
244 | + height: 134px; | ||
245 | + width: 96px; | ||
246 | + border: 1px solid transparent; | ||
247 | + } | ||
248 | + | ||
249 | + .related-reco-block { | ||
250 | + background: #fff; | ||
251 | + padding-left: 15px; | ||
252 | + border-top: 1px solid #e0e0e0; | ||
253 | + | ||
254 | + h2 { | ||
255 | + margin-left: -15px; | ||
256 | + line-height: 104px; | ||
257 | + font-size: 30px; | ||
258 | + color: #b0b0b0; | ||
259 | + text-align: center; | ||
260 | + } | ||
261 | + | ||
262 | + .one-good { | ||
263 | + padding-left: 15px; | ||
264 | + padding-right: 30px; | ||
265 | + margin-bottom: 20px; | ||
266 | + | ||
267 | + .thumb { | ||
268 | + float: left; | ||
269 | + height: 134px; | ||
270 | + width: 96px; | ||
271 | + } | ||
272 | + | ||
273 | + .content-container { | ||
274 | + padding-left: 120px; | ||
275 | + height: 134px; | ||
276 | + line-height: 1; | ||
277 | + font-size: 24px; | ||
278 | + | ||
279 | + > p { | ||
280 | + height: 50%; | ||
281 | + line-height: 94px; | ||
282 | + } | ||
283 | + | ||
284 | + span { | ||
285 | + display: inline-block; | ||
286 | + line-height: 24px; | ||
287 | + } | ||
288 | + | ||
289 | + .price { | ||
290 | + line-height: 47px; | ||
291 | + } | ||
292 | + } | ||
293 | + | ||
294 | + .sale-price { | ||
295 | + color: #d62927; | ||
296 | + line-height: 1.5; | ||
297 | + } | ||
298 | + | ||
299 | + .sale-price.no-price { | ||
300 | + color: #000; | ||
301 | + } | ||
302 | + | ||
303 | + .market-price { | ||
304 | + margin-left: 5px; | ||
305 | + color: #b0b0b0; | ||
306 | + text-decoration: line-through; | ||
307 | + line-height: 1.5; | ||
308 | + } | ||
309 | + | ||
310 | + .check-detail { | ||
311 | + display: inline-block; | ||
312 | + color: #000; | ||
313 | + border: 1px solid; | ||
314 | + border-radius: 2PX; | ||
315 | + float: right; | ||
316 | + padding: 0 5px; | ||
317 | + line-height: 1.5; | ||
318 | + } | ||
319 | + } | ||
320 | + } | ||
321 | + | ||
322 | + .link-block { | ||
323 | + display: block; | ||
324 | + height: 80px; | ||
325 | + line-height: 80px; | ||
326 | + padding: 0 30px; | ||
327 | + font-size: 28px; | ||
328 | + background: #fff; | ||
329 | + border-top: 1px solid #e0e0e0; | ||
330 | + border-bottom: 1px solid #e0e0e0; | ||
331 | + | ||
332 | + .iconfont { | ||
333 | + float: right; | ||
334 | + color: #ccc; | ||
335 | + } | ||
336 | + } | ||
337 | + | ||
338 | + .related-brand { | ||
339 | + margin-top: 30px; | ||
340 | + | ||
341 | + h2 { | ||
342 | + @mixin relatedTitle; | ||
343 | + } | ||
344 | + | ||
345 | + .brand-list { | ||
346 | + border-top: 1px solid #e0e0e0; | ||
347 | + border-bottom: 1px solid #e0e0e0; | ||
348 | + padding: 30px 0 30px; | ||
349 | + background: #fff; | ||
350 | + } | ||
351 | + | ||
352 | + .brand { | ||
353 | + float: left; | ||
354 | + width: 158px; | ||
355 | + height: 128px; | ||
356 | + border-right: 1px solid #e0e0e0; | ||
357 | + margin-bottom: 10px; | ||
358 | + | ||
359 | + a { | ||
360 | + display: block; | ||
361 | + } | ||
362 | + | ||
363 | + &:nth-child(4n) { | ||
364 | + border-right: none; | ||
365 | + } | ||
366 | + } | ||
367 | + | ||
368 | + .brand-logo { | ||
369 | + display: table-cell; | ||
370 | + width: 158px; | ||
371 | + height: 94px; | ||
372 | + vertical-align: middle; | ||
373 | + | ||
374 | + img { | ||
375 | + display: block; | ||
376 | + max-width: 158px; | ||
377 | + max-height: 94px; | ||
378 | + vertical-align: middle; | ||
379 | + margin: 0 auto; | ||
380 | + } | ||
381 | + } | ||
382 | + | ||
383 | + .brand-name { | ||
384 | + margin: 10px 0 0 0; | ||
385 | + line-height: 24px; | ||
386 | + font-size: 18px; | ||
387 | + color: #babac2; | ||
388 | + text-align: center; | ||
389 | + text-decoration: none; | ||
390 | + border-bottom: none; | ||
391 | + overflow: hidden; | ||
392 | + text-overflow: ellipsis; | ||
393 | + white-space: nowrap; | ||
394 | + } | ||
395 | + } | ||
396 | + | ||
397 | + .related-tag { | ||
398 | + position: relative; | ||
399 | + padding-bottom: 30px; | ||
400 | + border-bottom: 1px solid #e0e0e0; | ||
401 | + background: #fff; | ||
402 | + | ||
403 | + .tag-bg { | ||
404 | + position: absolute; | ||
405 | + height: 40px; | ||
406 | + width: 40px; | ||
407 | + background: resolve('guang/tag.png') no-repeat; | ||
408 | + background-size: 100% 100%; | ||
409 | + top: 35px; | ||
410 | + left: 20px; | ||
411 | + } | ||
412 | + | ||
413 | + .tag-list { | ||
414 | + margin-left: 50px; | ||
415 | + } | ||
416 | + | ||
417 | + li { | ||
418 | + float: left; | ||
419 | + margin-top: 31px; | ||
420 | + margin-left: 31px; | ||
421 | + } | ||
422 | + | ||
423 | + a { | ||
424 | + height: 50px; | ||
425 | + line-height: 50px; | ||
426 | + font-size: 30px; | ||
427 | + color: #000; | ||
428 | + text-decoration: underline; | ||
429 | + white-space: nowrap; | ||
430 | + } | ||
431 | + } | ||
432 | + | ||
433 | + .related-info { | ||
434 | + margin-top: 30px; | ||
435 | + | ||
436 | + h2 { | ||
437 | + @mixin relatedTitle; | ||
438 | + } | ||
439 | + | ||
440 | + .info-list { | ||
441 | + background: #fff; | ||
442 | + padding-bottom: 30px; | ||
443 | + border-top: 1px solid #e0e0e0; | ||
444 | + } | ||
445 | + | ||
446 | + li { | ||
447 | + padding-top: 30px; | ||
448 | + margin-bottom: 10px; | ||
449 | + | ||
450 | + a { | ||
451 | + display: block; | ||
452 | + } | ||
453 | + | ||
454 | + img { | ||
455 | + float: left; | ||
456 | + margin-left: 30px; | ||
457 | + width: 182px; | ||
458 | + height: 114px; | ||
459 | + | ||
460 | + &.square { | ||
461 | + height: 182px; | ||
462 | + } | ||
463 | + } | ||
464 | + } | ||
465 | + | ||
466 | + .title, .publish-time { | ||
467 | + float: left; | ||
468 | + width: 360px; | ||
469 | + margin-left: 30px; | ||
470 | + line-height: 40px; | ||
471 | + color: #444; | ||
472 | + font-size: 28px; | ||
473 | + | ||
474 | + } | ||
475 | + | ||
476 | + .publish-time { | ||
477 | + font-size: 18px; | ||
478 | + margin-top: 0; | ||
479 | + color: #b0b0b0; | ||
480 | + | ||
481 | + .iconfont { | ||
482 | + font-size: 18px; | ||
483 | + } | ||
484 | + } | ||
485 | + } | ||
486 | +} |
public/scss/guang/_info-list.css
0 → 100644
1 | +.guang-list-page { | ||
2 | + .editor-header { | ||
3 | + margin-bottom: 30px; | ||
4 | + padding-top: 36px; | ||
5 | + padding-bottom: 40px; | ||
6 | + background: #fff; | ||
7 | + border-bottom: 1px solid #e0e0e0; | ||
8 | + } | ||
9 | + | ||
10 | + .avatar { | ||
11 | + float: left; | ||
12 | + margin-left: 30px; | ||
13 | + img { | ||
14 | + width: 100px; | ||
15 | + height: 100px; | ||
16 | + border-radius: 50%; | ||
17 | + } | ||
18 | + } | ||
19 | + | ||
20 | + .text { | ||
21 | + float: left; | ||
22 | + margin-left: 32px; | ||
23 | + width: 475px; | ||
24 | + .name { | ||
25 | + font-size: 32px; | ||
26 | + line-height: 40px; | ||
27 | + } | ||
28 | + .info { | ||
29 | + margin-top: 6px; | ||
30 | + color: #bdbdbf; | ||
31 | + font-size: 24px; | ||
32 | + line-height: 32px; | ||
33 | + } | ||
34 | + } | ||
35 | + | ||
36 | + .swiper-container { | ||
37 | + width: 100%; | ||
38 | + height: 310px; | ||
39 | + | ||
40 | + img { | ||
41 | + height: 100%; | ||
42 | + width: 100%; | ||
43 | + } | ||
44 | + | ||
45 | + .swiper-pagination { | ||
46 | + bottom: 0; | ||
47 | + left: 0; | ||
48 | + width: 100%; | ||
49 | + } | ||
50 | + | ||
51 | + .swiper-pagination-bullet-active { | ||
52 | + background: #fff; | ||
53 | + } | ||
54 | + } | ||
55 | + | ||
56 | + .guang-nav { | ||
57 | + background-color: #fff; | ||
58 | + overflow: hidden; | ||
59 | + height: 80px; | ||
60 | + } | ||
61 | + | ||
62 | + | ||
63 | + .guang-nav-item { | ||
64 | + float: left; | ||
65 | + color: #ccc; | ||
66 | + font-size: 28px; | ||
67 | + padding: 0 22px; | ||
68 | + line-height: 80px; | ||
69 | + | ||
70 | + &.focus { | ||
71 | + color: #000; | ||
72 | + } | ||
73 | + } | ||
74 | + | ||
75 | + .bytouch{ | ||
76 | + background:#eee; | ||
77 | + } | ||
78 | + | ||
79 | + .info-list-container { | ||
80 | + overflow-x: hidden; | ||
81 | + background: #f0f0f0; | ||
82 | + } | ||
83 | + | ||
84 | + .info-list.hide { | ||
85 | + display: none; | ||
86 | + } | ||
87 | +} |
public/scss/guang/_info.css
0 → 100644
1 | +.guang-info { | ||
2 | + margin-bottom: 30px; | ||
3 | + padding: 0 0 24px 0; | ||
4 | + border-top: 1px solid #e0e0e0; | ||
5 | + border-bottom: 1px solid #e0e0e0; | ||
6 | + background: #fff; | ||
7 | + | ||
8 | + .info-author { | ||
9 | + display: block; | ||
10 | + width: 100%; | ||
11 | + | ||
12 | + .avatar { | ||
13 | + float: left; | ||
14 | + margin-top: 20px; | ||
15 | + width: 50px; | ||
16 | + height: 50px; | ||
17 | + margin-left: 30px; | ||
18 | + border-radius: 50%; | ||
19 | + } | ||
20 | + | ||
21 | + .name { | ||
22 | + float: left; | ||
23 | + margin-left: 30px; | ||
24 | + padding: 30px 0; | ||
25 | + font-size: 28px; | ||
26 | + color: #000; | ||
27 | + } | ||
28 | + } | ||
29 | + | ||
30 | + &:last-child { | ||
31 | + margin-bottom: 0; | ||
32 | + } | ||
33 | + | ||
34 | + .info-img { | ||
35 | + position: relative; | ||
36 | + width: 100%; | ||
37 | + | ||
38 | + img { | ||
39 | + display: block; | ||
40 | + width: 100%; | ||
41 | + } | ||
42 | + } | ||
43 | + | ||
44 | + .info-match { | ||
45 | + position: absolute; | ||
46 | + top: 0; | ||
47 | + left: 0; | ||
48 | + width: 130px; | ||
49 | + height: 50px; | ||
50 | + line-height: 50px; | ||
51 | + font-size: 28px; | ||
52 | + color: #fff; | ||
53 | + background: #000; | ||
54 | + text-align: center; | ||
55 | + text-decoration: none; | ||
56 | + z-index: 1; | ||
57 | + } | ||
58 | + | ||
59 | + .info-tag { | ||
60 | + position: absolute; | ||
61 | + top: 0; | ||
62 | + left: 105px; | ||
63 | + height: 50px; | ||
64 | + width: 50px; | ||
65 | + | ||
66 | + &.collocation { | ||
67 | + background-image: url('/guang/info/collocation.png'); | ||
68 | + } | ||
69 | + | ||
70 | + &.fashion-good { | ||
71 | + background-image: url('/guang/info/fashion-good.png'); | ||
72 | + } | ||
73 | + | ||
74 | + &.fashion-man { | ||
75 | + background-image: url('/guang/info/fashion-man.png'); | ||
76 | + } | ||
77 | + | ||
78 | + &.tip, &.special-topic { | ||
79 | + background-image: url('/guang/info/tip.png'); | ||
80 | + } | ||
81 | + | ||
82 | + &.topic { | ||
83 | + background-image: url('/guang/info/topic.png'); | ||
84 | + } | ||
85 | + } | ||
86 | + | ||
87 | + .info-deps { | ||
88 | + margin: 32px 0 0 0; | ||
89 | + padding: 0 40px 0 30px; | ||
90 | + | ||
91 | + .info-title-container { | ||
92 | + text-decoration: none; | ||
93 | + color: #000; | ||
94 | + } | ||
95 | + | ||
96 | + .info-title{ | ||
97 | + line-height: 44px; | ||
98 | + color: #000; | ||
99 | + font-size: 40px; | ||
100 | + font-weight:bold; | ||
101 | + | ||
102 | + } | ||
103 | + | ||
104 | + .info-text { | ||
105 | + margin: 16px 0 0 0; | ||
106 | + line-height: 46px; | ||
107 | + font-size: 28px; | ||
108 | + color: #444; | ||
109 | + } | ||
110 | + | ||
111 | + .time-view-like-share { | ||
112 | + margin-top: 16px; | ||
113 | + } | ||
114 | + } | ||
115 | +} |
public/scss/guang/_plus-star.css
0 → 100644
1 | +.ps-list-page { | ||
2 | + background-color: #f0f0f0; | ||
3 | + | ||
4 | + .nav-tab, .ps-content { | ||
5 | + width: 100%; | ||
6 | + } | ||
7 | + | ||
8 | + .nav-tab { | ||
9 | + height: 60px; | ||
10 | + padding: 10px 0; | ||
11 | + background-color: #fff; | ||
12 | + } | ||
13 | + | ||
14 | + .star-nav, .plus-nav { | ||
15 | + box-sizing: border-box; | ||
16 | + float: left; | ||
17 | + width: 50%; | ||
18 | + height: 60px; | ||
19 | + line-height: 60px; | ||
20 | + font-size: 16PX; | ||
21 | + text-align: center; | ||
22 | + color: #ccc; | ||
23 | + | ||
24 | + &.focus { | ||
25 | + color: #000; | ||
26 | + } | ||
27 | + } | ||
28 | + .bytouch{ | ||
29 | + background:#eee; | ||
30 | + } | ||
31 | + .star-nav { | ||
32 | + border-right: 1px solid #ccc; | ||
33 | + } | ||
34 | + | ||
35 | + .plus-star-row { | ||
36 | + margin-bottom: 30px; | ||
37 | + | ||
38 | + &:last-child { | ||
39 | + margin-bottom: 0; | ||
40 | + } | ||
41 | + | ||
42 | + > a { | ||
43 | + display: block; | ||
44 | + height: 310px; | ||
45 | + > img { | ||
46 | + width: 100%; | ||
47 | + height: 100%; | ||
48 | + } | ||
49 | + } | ||
50 | + } | ||
51 | + | ||
52 | + .content.hide { | ||
53 | + display: none; | ||
54 | + } | ||
55 | + | ||
56 | + .swiper-container { | ||
57 | + height: 310px; | ||
58 | + } | ||
59 | + | ||
60 | + .swiper-pagination-bullet-active { | ||
61 | + background: #fff; | ||
62 | + } | ||
63 | + | ||
64 | + .brand-deps { | ||
65 | + height: 40PX; | ||
66 | + line-height: 40PX; | ||
67 | + padding-left: 10PX; | ||
68 | + font-size: 14PX; | ||
69 | + background: #fff; | ||
70 | + max-width: 100%; | ||
71 | + overflow: hidden; | ||
72 | + white-space: nowrap; | ||
73 | + text-overflow: ellipsis; | ||
74 | + } | ||
75 | +} | ||
76 | + | ||
77 | +.ps-detail-page { | ||
78 | + background-color: #f0f0f0; | ||
79 | + | ||
80 | + .ps-block { | ||
81 | + margin-bottom: 30px; | ||
82 | + border-bottom: 1px solid #e0e0e0; | ||
83 | + border-top: 1px solid #e0e0e0; | ||
84 | + background-color: #fff; | ||
85 | + | ||
86 | + &.header, &.related-infos { | ||
87 | + border-top: none; | ||
88 | + } | ||
89 | + | ||
90 | + &.related-infos { | ||
91 | + margin-bottom: 0; | ||
92 | + background-color: #f0f0f0; | ||
93 | + } | ||
94 | + } | ||
95 | + | ||
96 | + .header { | ||
97 | + position: relative; | ||
98 | + | ||
99 | + .banner { | ||
100 | + width: 100%; | ||
101 | + height: 310px; | ||
102 | + } | ||
103 | + | ||
104 | + .logo { | ||
105 | + position: absolute; | ||
106 | + border: 1px solid #b5b5b5; | ||
107 | + height: 168px; | ||
108 | + width: 168px; | ||
109 | + top: 226px; | ||
110 | + left: 50px; | ||
111 | + } | ||
112 | + | ||
113 | + .header-content { | ||
114 | + padding: 0 30px; | ||
115 | + } | ||
116 | + | ||
117 | + .name-islike-container { | ||
118 | + padding-left: 248px; | ||
119 | + margin-top: 24px; | ||
120 | + font-size: 34px; | ||
121 | + } | ||
122 | + | ||
123 | + .name { | ||
124 | + color: #000; | ||
125 | + height: 41px; | ||
126 | + width: 295px; | ||
127 | + } | ||
128 | + | ||
129 | + .brand-islike { | ||
130 | + position: relative; | ||
131 | + float: right; | ||
132 | + color: #b0b0b0; | ||
133 | + height: 1.5rem; | ||
134 | + width: 1.5rem; | ||
135 | + line-height: 1.5rem; | ||
136 | + text-align: center; | ||
137 | + top: -0.25rem; | ||
138 | + left: -0.25rem; | ||
139 | + | ||
140 | + &.like { | ||
141 | + color: #f00; | ||
142 | + } | ||
143 | + } | ||
144 | + } | ||
145 | + | ||
146 | + .intro { | ||
147 | + margin-top: 49px; | ||
148 | + font-size: 24px; | ||
149 | + color: #444; | ||
150 | + line-height: 150%; | ||
151 | + } | ||
152 | + | ||
153 | + .more-intro { | ||
154 | + padding: 30px 0; | ||
155 | + font-size: 28px; | ||
156 | + line-height: 104%; | ||
157 | + color: #bbb; | ||
158 | + float: right; | ||
159 | + | ||
160 | + .icon { | ||
161 | + display: inline-block; | ||
162 | + height: 100%; | ||
163 | + width: 40px; | ||
164 | + transition: transform .1s ease-in; | ||
165 | + } | ||
166 | + | ||
167 | + &.spread .icon { | ||
168 | + transform: rotate(-180deg); | ||
169 | + } | ||
170 | + } | ||
171 | + | ||
172 | + .new-arrival { | ||
173 | + padding-left: 0 30px; | ||
174 | + | ||
175 | + .new-arrival-content { | ||
176 | + padding: 0 0 20px 0; | ||
177 | + width: 614px; | ||
178 | + margin: 0 auto; | ||
179 | + } | ||
180 | + | ||
181 | + .more-goods-container { | ||
182 | + height: 90px; | ||
183 | + padding: 0 30px; | ||
184 | + border-top: 1px solid #e0e0e0; | ||
185 | + color: #000; | ||
186 | + } | ||
187 | + | ||
188 | + .floor-header-more { | ||
189 | + border-top: none; | ||
190 | + line-height: 40px; | ||
191 | + height: auto; | ||
192 | + | ||
193 | + a { | ||
194 | + width: 100%; | ||
195 | + text-align: right; | ||
196 | + } | ||
197 | + } | ||
198 | + | ||
199 | + .mg-text { | ||
200 | + height: 100%; | ||
201 | + line-height: 90px; | ||
202 | + color: #000; | ||
203 | + text-decoration: none; | ||
204 | + display: block; | ||
205 | + font-size: 28px; | ||
206 | + } | ||
207 | + | ||
208 | + .more-prods { | ||
209 | + float: right; | ||
210 | + color: #b0b0b0; | ||
211 | + } | ||
212 | + | ||
213 | + .new-arrival-header .more-prods { | ||
214 | + margin-right: 30px; | ||
215 | + margin-top: 10px; | ||
216 | + } | ||
217 | + | ||
218 | + } | ||
219 | + | ||
220 | + .new-arrival-header { | ||
221 | + padding-left: 222px; | ||
222 | + padding-top: 33px; | ||
223 | + | ||
224 | + .header-text { | ||
225 | + font-size: 28px; | ||
226 | + color: #000; | ||
227 | + line-height: 122%; | ||
228 | + font-weight: bold; | ||
229 | + } | ||
230 | + } | ||
231 | + | ||
232 | + | ||
233 | + .related-info-title { | ||
234 | + margin: 0 29px; | ||
235 | + border: 1px solid #e0e0e0; | ||
236 | + border-bottom: none; | ||
237 | + line-height: 72px; | ||
238 | + font-size: 30px; | ||
239 | + color: #b0b0b0; | ||
240 | + text-align: center; | ||
241 | + background-color: #fff; | ||
242 | + } | ||
243 | + | ||
244 | + .related-infos-container .guang-info:first-child { | ||
245 | + margin-top: 0; | ||
246 | + } | ||
247 | +} |
public/scss/guang/_star-classroom.css
0 → 100644
1 | +.yoho-header .nav-title { | ||
2 | + font-weight: normal; | ||
3 | +} | ||
4 | + | ||
5 | +.star-class-body { | ||
6 | + background: #333; | ||
7 | + width: 100%; | ||
8 | + font: 12px/1.5 Arial,'黑体'; | ||
9 | + float: left; | ||
10 | +} | ||
11 | + | ||
12 | +.star-classroom { | ||
13 | + background: #333; | ||
14 | + | ||
15 | + img { | ||
16 | + max-width: 100%; | ||
17 | + display: block; | ||
18 | + border: 0; | ||
19 | + margin: 0 auto; | ||
20 | + } | ||
21 | + | ||
22 | + a { | ||
23 | + text-decoration: none; | ||
24 | + outline: none; | ||
25 | + color: #000; | ||
26 | + | ||
27 | + &:link, | ||
28 | + &:visited, | ||
29 | + &:hover, | ||
30 | + &:actived { | ||
31 | + color: #000; | ||
32 | + } | ||
33 | + } | ||
34 | + | ||
35 | + *:focus { | ||
36 | + outline: none; | ||
37 | + } | ||
38 | + | ||
39 | + .font-bold { | ||
40 | + font-weight: bold; | ||
41 | + } | ||
42 | + | ||
43 | + .classroom-mask { | ||
44 | + background-color: rgba(0,0,0,.5); | ||
45 | + position: fixed; | ||
46 | + left: 0; | ||
47 | + right: 0; | ||
48 | + top: 0; | ||
49 | + bottom: 0; | ||
50 | + z-index: -1; | ||
51 | + display: none; | ||
52 | + } | ||
53 | + | ||
54 | + .head-tab { | ||
55 | + width: 100%; | ||
56 | + height: 88px; | ||
57 | + background: #000; | ||
58 | + | ||
59 | + li { | ||
60 | + width: 33.3%; | ||
61 | + text-align: center; | ||
62 | + float: left; | ||
63 | + line-height: 88px; | ||
64 | + font-size: 30px; | ||
65 | + | ||
66 | + a { | ||
67 | + color: #b0b0b0; | ||
68 | + display: inline-block; | ||
69 | + } | ||
70 | + | ||
71 | + &.cur a{ | ||
72 | + color: #fff; | ||
73 | + } | ||
74 | + } | ||
75 | + } | ||
76 | + | ||
77 | + .banner-top { | ||
78 | + width: 100%; | ||
79 | + height: 310px; | ||
80 | + margin-top: 30px; | ||
81 | + position: relative; | ||
82 | + | ||
83 | + .banner-swiper { | ||
84 | + width: 100%; | ||
85 | + height: 310px; | ||
86 | + overflow: hidden; | ||
87 | + position: relative; | ||
88 | + | ||
89 | + ul { | ||
90 | + position: relative; | ||
91 | + height: 310px; | ||
92 | + | ||
93 | + li { | ||
94 | + float: left; | ||
95 | + width: 100%; | ||
96 | + height: 310px; | ||
97 | + } | ||
98 | + | ||
99 | + img { | ||
100 | + width: 100%; | ||
101 | + height: 100%; | ||
102 | + } | ||
103 | + } | ||
104 | + } | ||
105 | + | ||
106 | + .swiper-pagination { | ||
107 | + position: absolute; | ||
108 | + left: 0; | ||
109 | + right: 0; | ||
110 | + bottom: 20px; | ||
111 | + text-align: center; | ||
112 | + z-index: 1; | ||
113 | + | ||
114 | + .pagination-inner { | ||
115 | + display: inline-block; | ||
116 | + } | ||
117 | + | ||
118 | + span { | ||
119 | + display: inline-block; | ||
120 | + width: 14px; | ||
121 | + height: 14px; | ||
122 | + background: #fff; | ||
123 | + opacity: 0.5; | ||
124 | + margin: 0 10px; | ||
125 | + border-radius: 50%; | ||
126 | + } | ||
127 | + | ||
128 | + .swiper-pagination-bullet-active { | ||
129 | + background: #fff; | ||
130 | + opacity: 1; | ||
131 | + } | ||
132 | + } | ||
133 | + } | ||
134 | + | ||
135 | + .home-floor-sign { | ||
136 | + width: 100%; | ||
137 | + height: 220px; | ||
138 | + margin-top: 30px; | ||
139 | + background: #000; | ||
140 | + | ||
141 | + .nav-left { | ||
142 | + width: 102px; | ||
143 | + margin: 30px 0 0 30px; | ||
144 | + text-align: center; | ||
145 | + float: left; | ||
146 | + | ||
147 | + .user-name { | ||
148 | + font-size: 24px; | ||
149 | + color: #fff; | ||
150 | + margin-top: 30px; | ||
151 | + white-space: nowrap; | ||
152 | + } | ||
153 | + } | ||
154 | + | ||
155 | + .nav-main { | ||
156 | + width: 252px; | ||
157 | + height: 90px; | ||
158 | + float: left; | ||
159 | + background-image: resolve("guang/star-classroom/user_info_bg.png"); | ||
160 | + background-repeat: no-repeat; | ||
161 | + background-size: contain; | ||
162 | + margin:36px 0 0 10px; | ||
163 | + | ||
164 | + p { | ||
165 | + color: #fff; | ||
166 | + line-height: 46px; | ||
167 | + font-size: 24px; | ||
168 | + margin-left: 30px; | ||
169 | + white-space: nowrap; | ||
170 | + } | ||
171 | + } | ||
172 | + | ||
173 | + .nav-right { | ||
174 | + width: 195px; | ||
175 | + text-align: center; | ||
176 | + float: right; | ||
177 | + | ||
178 | + .wyf-img { | ||
179 | + width: 119px; | ||
180 | + height: 108px; | ||
181 | + margin-top: 30px; | ||
182 | + background-image: resolve("guang/star-classroom/home-wyf.png"); | ||
183 | + background-repeat: no-repeat; | ||
184 | + background-size: contain; | ||
185 | + display: inline-block; | ||
186 | + } | ||
187 | + | ||
188 | + .add-intimacy { | ||
189 | + width: 131px; | ||
190 | + height: 52px; | ||
191 | + background-image: resolve("guang/star-classroom/add_intimacy_bg.png"); | ||
192 | + background-repeat: no-repeat; | ||
193 | + background-size: contain; | ||
194 | + color: #fff; | ||
195 | + font-size: 22px; | ||
196 | + display: inline-block; | ||
197 | + white-space: nowrap; | ||
198 | + line-height: 66px; | ||
199 | + margin-left: 12px; | ||
200 | + } | ||
201 | + } | ||
202 | + | ||
203 | + .user-head { | ||
204 | + width: 100px; | ||
205 | + height: 100px; | ||
206 | + border-radius: 50%; | ||
207 | + border: 2px solid #e0e0e0; | ||
208 | + background-image: resolve("me/index/user-avatar.png"); | ||
209 | + background-repeat: no-repeat; | ||
210 | + background-size: contain; | ||
211 | + display: block; | ||
212 | + } | ||
213 | + } | ||
214 | + | ||
215 | + .floor-header-more { | ||
216 | + width: 100%; | ||
217 | + height: 88px; | ||
218 | + background: #000; | ||
219 | + position: relative; | ||
220 | + margin-top: 30px; | ||
221 | + border-top: 1px solid #000; | ||
222 | + | ||
223 | + h2 { | ||
224 | + color: #fff; | ||
225 | + font-size: 34px; | ||
226 | + line-height: 88px; | ||
227 | + text-align: center; | ||
228 | + } | ||
229 | + | ||
230 | + .more-btn { | ||
231 | + width: 64px; | ||
232 | + height: 96px; | ||
233 | + line-height: 86px; | ||
234 | + position: absolute; | ||
235 | + right: 20px; | ||
236 | + top: 0; | ||
237 | + color: #b0b0b0; | ||
238 | + font-size: 50px; | ||
239 | + } | ||
240 | + } | ||
241 | + | ||
242 | + .home-floor-subject { | ||
243 | + .subject-banner { | ||
244 | + width: 100%; | ||
245 | + height: 310px; | ||
246 | + } | ||
247 | + } | ||
248 | + | ||
249 | + .subject-video-area { | ||
250 | + width: 100%; | ||
251 | + height: 310px; | ||
252 | + margin-top: 30px; | ||
253 | + background: #000; | ||
254 | + | ||
255 | + #subject-video { | ||
256 | + width: 100%; | ||
257 | + height: 310px; | ||
258 | + } | ||
259 | + } | ||
260 | + | ||
261 | + .home-floor-collocation { | ||
262 | + background: #000; | ||
263 | + padding-bottom: 60px; | ||
264 | + | ||
265 | + .collocation-big-img { | ||
266 | + width: 100%; | ||
267 | + height: 277px; | ||
268 | + padding: 0 14px; | ||
269 | + box-sizing: border-box; | ||
270 | + | ||
271 | + li { | ||
272 | + width: 276px; | ||
273 | + height: 277px; | ||
274 | + margin: 0 15px; | ||
275 | + float: left; | ||
276 | + } | ||
277 | + | ||
278 | + img { | ||
279 | + height: 100%; | ||
280 | + } | ||
281 | + } | ||
282 | + | ||
283 | + .collocation-img { | ||
284 | + width: 100%; | ||
285 | + height: 139px; | ||
286 | + margin-top: 30px; | ||
287 | + position: relative; | ||
288 | + | ||
289 | + .collocation-swiper { | ||
290 | + width: 100%; | ||
291 | + height: 139px; | ||
292 | + overflow: hidden; | ||
293 | + position: relative; | ||
294 | + } | ||
295 | + | ||
296 | + ul { | ||
297 | + position: relative; | ||
298 | + height: 139px; | ||
299 | + } | ||
300 | + | ||
301 | + li { | ||
302 | + float: left; | ||
303 | + width: 229px; | ||
304 | + height: 139px; | ||
305 | + margin-left: 30px; | ||
306 | + } | ||
307 | + | ||
308 | + img { | ||
309 | + width: 100%; | ||
310 | + height: 100%; | ||
311 | + } | ||
312 | + } | ||
313 | + } | ||
314 | + | ||
315 | + .pop-intimacy { | ||
316 | + width: 580px; | ||
317 | + height: 920px; | ||
318 | + background: #fff; | ||
319 | + border-radius: 10px; | ||
320 | + position: fixed; | ||
321 | + top:20px; | ||
322 | + left: 30px; | ||
323 | + z-index: -1; | ||
324 | + display: none; | ||
325 | + | ||
326 | + .intimacy-head { | ||
327 | + text-align: center; | ||
328 | + color: #444; | ||
329 | + height: 140px; | ||
330 | + padding-top: 20px; | ||
331 | + box-sizing: border-box; | ||
332 | + position: relative; | ||
333 | + | ||
334 | + .pop-close { | ||
335 | + width: 25px; | ||
336 | + height: 25px; | ||
337 | + background-image: resolve("guang/star-classroom/pop-close.png"); | ||
338 | + background-repeat: no-repeat; | ||
339 | + background-size: contain; | ||
340 | + position: absolute; | ||
341 | + right: 20px; | ||
342 | + top: 24px; | ||
343 | + } | ||
344 | + | ||
345 | + h1 { | ||
346 | + font-size: 56px; | ||
347 | + font-weight: bold; | ||
348 | + line-height: 40px; | ||
349 | + } | ||
350 | + | ||
351 | + h4 { | ||
352 | + font-size: 24px; | ||
353 | + } | ||
354 | + } | ||
355 | + | ||
356 | + .my-intimacy { | ||
357 | + font-size: 24px; | ||
358 | + | ||
359 | + span { | ||
360 | + min-width: 10px; | ||
361 | + height: 30px; | ||
362 | + line-height: 30px; | ||
363 | + border-radius: 30px; | ||
364 | + font-size: 20px; | ||
365 | + color: #fff; | ||
366 | + padding: 0 10px; | ||
367 | + margin-left: 14px; | ||
368 | + background-color: #444; | ||
369 | + } | ||
370 | + } | ||
371 | + | ||
372 | + .increased { | ||
373 | + font-size: 24px; | ||
374 | + display: none; | ||
375 | + | ||
376 | + span { | ||
377 | + color: red; | ||
378 | + } | ||
379 | + } | ||
380 | + | ||
381 | + .calendar { | ||
382 | + width: 100%; | ||
383 | + float: left; | ||
384 | + } | ||
385 | + | ||
386 | + .week { | ||
387 | + width: 100%; | ||
388 | + height: 38px; | ||
389 | + background: #aeaeae; | ||
390 | + padding: 0 23px; | ||
391 | + box-sizing: border-box; | ||
392 | + | ||
393 | + h3 { | ||
394 | + width: 76px; | ||
395 | + text-align: center; | ||
396 | + font-size: 24px; | ||
397 | + color: #fff; | ||
398 | + float: left; | ||
399 | + line-height: 38px; | ||
400 | + } | ||
401 | + } | ||
402 | + | ||
403 | + .day-item { | ||
404 | + float: left; | ||
405 | + width: 100%; | ||
406 | + padding: 5px 23px; | ||
407 | + box-sizing: border-box; | ||
408 | + | ||
409 | + .item { | ||
410 | + width: 76px; | ||
411 | + color: #444; | ||
412 | + float: left; | ||
413 | + text-align: center; | ||
414 | + cursor: pointer; | ||
415 | + margin: 5px 0 0 0; | ||
416 | + height: 56px; | ||
417 | + line-height: 56px; | ||
418 | + font-size: 28px; | ||
419 | + } | ||
420 | + | ||
421 | + .last-item { | ||
422 | + color: #D2D2D2; | ||
423 | + } | ||
424 | + | ||
425 | + .sign-item { | ||
426 | + background-image: resolve("guang/star-classroom/sign-circle.png"); | ||
427 | + background-position: center; | ||
428 | + background-repeat: no-repeat; | ||
429 | + background-size: contain; | ||
430 | + } | ||
431 | + } | ||
432 | + | ||
433 | + .fan-charts { | ||
434 | + width: 100%; | ||
435 | + height: 88px; | ||
436 | + border-top: 1px solid #d5d5d5; | ||
437 | + text-align: center; | ||
438 | + position: relative; | ||
439 | + float: left; | ||
440 | + | ||
441 | + h2 { | ||
442 | + font-size: 28px; | ||
443 | + color: #444; | ||
444 | + line-height: 88px; | ||
445 | + } | ||
446 | + | ||
447 | + .arrow { | ||
448 | + width: 88px; | ||
449 | + height: 88px; | ||
450 | + position: absolute; | ||
451 | + top: 0; | ||
452 | + right: 0; | ||
453 | + color: #b0b0b0; | ||
454 | + line-height: 88px; | ||
455 | + } | ||
456 | + } | ||
457 | + } | ||
458 | + | ||
459 | + .fan-charts-cont { | ||
460 | + width: 100%; | ||
461 | + line-height: 88px; | ||
462 | + float: left; | ||
463 | + | ||
464 | + li { | ||
465 | + width: 100%; | ||
466 | + height: 88px; | ||
467 | + border-top: 1px solid #d5d5d5; | ||
468 | + position: relative; | ||
469 | + padding: 0 25px; | ||
470 | + box-sizing: border-box; | ||
471 | + } | ||
472 | + | ||
473 | + .rank-ico { | ||
474 | + width: 52px; | ||
475 | + height: 39px; | ||
476 | + border-radius: 0; | ||
477 | + background-image: resolve("guang/star-classroom/king-ico.png"); | ||
478 | + background-color: #fff; | ||
479 | + background-repeat: no-repeat; | ||
480 | + background-size: contain; | ||
481 | + color: #fff; | ||
482 | + font-size: 24px; | ||
483 | + text-align: center; | ||
484 | + line-height: 50px; | ||
485 | + font-weight: bold; | ||
486 | + position: relative; | ||
487 | + top: 25px; | ||
488 | + } | ||
489 | + | ||
490 | + .rank-avatar { | ||
491 | + width: 60px; | ||
492 | + height: 60px; | ||
493 | + border-radius: 50%; | ||
494 | + position: relative; | ||
495 | + top: 15px; | ||
496 | + margin-left: 20px; | ||
497 | + background-image: resolve("me/index/user-avatar.png"); | ||
498 | + background-repeat: no-repeat; | ||
499 | + background-size: contain; | ||
500 | + display: block; | ||
501 | + } | ||
502 | + | ||
503 | + .fans-name { | ||
504 | + margin-left: 24px; | ||
505 | + font-size: 24px; | ||
506 | + color: #444; | ||
507 | + width: 180px; | ||
508 | + white-space: nowrap; | ||
509 | + text-overflow: ellipsis; | ||
510 | + overflow: hidden; | ||
511 | + height: 88px; | ||
512 | + } | ||
513 | + | ||
514 | + .fans-intimacy { | ||
515 | + width: 150px; | ||
516 | + float: right; | ||
517 | + font-size: 20px; | ||
518 | + color: #444; | ||
519 | + | ||
520 | + span { | ||
521 | + font-size: 24px; | ||
522 | + color: #d0021b; | ||
523 | + margin-left: 5px; | ||
524 | + } | ||
525 | + } | ||
526 | + | ||
527 | + li > * { | ||
528 | + float: left; | ||
529 | + } | ||
530 | + } | ||
531 | + | ||
532 | + .things-article { | ||
533 | + width: 100%; | ||
534 | + float: left; | ||
535 | + } | ||
536 | + | ||
537 | + .things-article > li { | ||
538 | + width: 100%; | ||
539 | + float: left; | ||
540 | + padding: 0 0 30px 30px; | ||
541 | + box-sizing: border-box; | ||
542 | + background: #000; | ||
543 | + | ||
544 | + .author-info { | ||
545 | + width: 100%; | ||
546 | + padding-top: 30px; | ||
547 | + float: left; | ||
548 | + border-top:1px solid #b0b0b0; | ||
549 | + | ||
550 | + img { | ||
551 | + width: 70px; | ||
552 | + height: 70px; | ||
553 | + border-radius: 50%; | ||
554 | + float: left; | ||
555 | + } | ||
556 | + } | ||
557 | + | ||
558 | + .author-nav { | ||
559 | + float: left; | ||
560 | + margin-left: 20px; | ||
561 | + overflow: hidden; | ||
562 | + | ||
563 | + h2 { | ||
564 | + font-size: 28px; | ||
565 | + color: #fff; | ||
566 | + } | ||
567 | + } | ||
568 | + | ||
569 | + .article-count { | ||
570 | + font-size: 24px; | ||
571 | + color: #b0b0b0; | ||
572 | + | ||
573 | + span { | ||
574 | + margin-right:22px; | ||
575 | + } | ||
576 | + | ||
577 | + .see-ico { | ||
578 | + width: 31px; | ||
579 | + height: 24px; | ||
580 | + padding-left: 40px; | ||
581 | + } | ||
582 | + } | ||
583 | + | ||
584 | + .artice-cont { | ||
585 | + width: 100%; | ||
586 | + margin-top: 30px; | ||
587 | + float: left; | ||
588 | + | ||
589 | + p { | ||
590 | + width: 100%; | ||
591 | + height: 180px; | ||
592 | + font-size: 28px; | ||
593 | + line-height: 46px; | ||
594 | + padding-right: 30px; | ||
595 | + color: #fff; | ||
596 | + box-sizing: border-box; | ||
597 | + overflow: hidden; | ||
598 | + text-overflow: ellipsis; | ||
599 | + display: -webkit-box; | ||
600 | + -webkit-line-clamp: 4; | ||
601 | + -webkit-box-orient: vertical; | ||
602 | + } | ||
603 | + } | ||
604 | + | ||
605 | + .artice-imgs { | ||
606 | + width: 100%; | ||
607 | + margin-top: 30px; | ||
608 | + float: left; | ||
609 | + } | ||
610 | + | ||
611 | + .artice-imgs > li { | ||
612 | + float: left; | ||
613 | + width: 190px; | ||
614 | + height: 190px; | ||
615 | + margin-right: 5px; | ||
616 | + | ||
617 | + img { | ||
618 | + width: 100%; | ||
619 | + height: 100%; | ||
620 | + border-radius: 4px; | ||
621 | + } | ||
622 | + } | ||
623 | + } | ||
624 | + | ||
625 | + .artice-zan { | ||
626 | + width: 100%; | ||
627 | + border-top: 1px solid #b0b0b0; | ||
628 | + margin-top: 27px; | ||
629 | + float: left; | ||
630 | + padding-top: 20px; | ||
631 | + | ||
632 | + .iconfont { | ||
633 | + float: left; | ||
634 | + width: 34px; | ||
635 | + height: 34px; | ||
636 | + line-height: 34px; | ||
637 | + display: inline-block; | ||
638 | + color: #b0b0b0; | ||
639 | + font-size: 34px; | ||
640 | + text-align: center; | ||
641 | + margin: 9px 53px 0 14px; | ||
642 | + outline: none; | ||
643 | + } | ||
644 | + | ||
645 | + .like { | ||
646 | + color: #D62927; | ||
647 | + } | ||
648 | + | ||
649 | + ul { | ||
650 | + float: left; | ||
651 | + width: 420px; | ||
652 | + height: 50px; | ||
653 | + overflow: hidden; | ||
654 | + } | ||
655 | + | ||
656 | + li { | ||
657 | + float: left; | ||
658 | + margin: 0 10px; | ||
659 | + width: 50px; | ||
660 | + height: 50px; | ||
661 | + | ||
662 | + img { | ||
663 | + width: 100%; | ||
664 | + height: 100%; | ||
665 | + border-radius: 50%; | ||
666 | + } | ||
667 | + } | ||
668 | + | ||
669 | + .zan-more { | ||
670 | + float: left; | ||
671 | + width: 50px; | ||
672 | + height: 50px; | ||
673 | + border-radius: 50%; | ||
674 | + margin: 0 10px; | ||
675 | + background: #f0f0f0; | ||
676 | + color: #acb1b7; | ||
677 | + font-size: 24px; | ||
678 | + text-align: center; | ||
679 | + line-height: 50px; | ||
680 | + /*display: none;*/ | ||
681 | + } | ||
682 | + } | ||
683 | + | ||
684 | + .subject-list { | ||
685 | + width: 100%; | ||
686 | + height: auto; | ||
687 | + overflow: hidden; | ||
688 | + | ||
689 | + li { | ||
690 | + width: 100%; | ||
691 | + float: left; | ||
692 | + background: #000; | ||
693 | + margin-top: 30px; | ||
694 | + | ||
695 | + img { | ||
696 | + width: 100%; | ||
697 | + } | ||
698 | + | ||
699 | + p { | ||
700 | + width: 100%; | ||
701 | + height: 88px; | ||
702 | + box-sizing: border-box; | ||
703 | + overflow: hidden; | ||
704 | + white-space: nowrap; | ||
705 | + text-overflow: ellipsis; | ||
706 | + padding: 0 34px; | ||
707 | + font-size: 34px; | ||
708 | + line-height: 88px; | ||
709 | + } | ||
710 | + | ||
711 | + a { | ||
712 | + color: #fff; | ||
713 | + } | ||
714 | + } | ||
715 | + } | ||
716 | + | ||
717 | + .collocation-list { | ||
718 | + width: 100%; | ||
719 | + float: left; | ||
720 | + | ||
721 | + li { | ||
722 | + float: left; | ||
723 | + width: 100%; | ||
724 | + margin-top: 30px; | ||
725 | + background: #000; | ||
726 | + | ||
727 | + .cont-area { | ||
728 | + width: 100%; | ||
729 | + box-sizing: border-box; | ||
730 | + padding: 30px; | ||
731 | + } | ||
732 | + | ||
733 | + .cont-txt { | ||
734 | + font-size: 28px; | ||
735 | + line-height: 46px; | ||
736 | + color: #b0b0b0; | ||
737 | + margin-top: 10px; | ||
738 | + } | ||
739 | + | ||
740 | + img { | ||
741 | + width: 100%; | ||
742 | + } | ||
743 | + | ||
744 | + .title { | ||
745 | + font-size: 40px; | ||
746 | + line-height: 48px; | ||
747 | + color: #fff; | ||
748 | + width: 100%; | ||
749 | + } | ||
750 | + } | ||
751 | + } | ||
752 | + | ||
753 | + .count-area { | ||
754 | + position: relative; | ||
755 | + width: 100%; | ||
756 | + height: 32px; | ||
757 | + | ||
758 | + span { | ||
759 | + font-size: 24px; | ||
760 | + color: #b0b0b0; | ||
761 | + height: 32px; | ||
762 | + line-height: 32px; | ||
763 | + | ||
764 | + i { | ||
765 | + display: inline-block; | ||
766 | + margin-right: 5px; | ||
767 | + font-size: 24px; | ||
768 | + } | ||
769 | + } | ||
770 | + | ||
771 | + .time { | ||
772 | + float: left; | ||
773 | + } | ||
774 | + | ||
775 | + .see { | ||
776 | + float: left; | ||
777 | + margin-left: 20px; | ||
778 | + } | ||
779 | + | ||
780 | + .time-ico { | ||
781 | + width: 24px; | ||
782 | + height: 24px; | ||
783 | + } | ||
784 | + | ||
785 | + .see-ico { | ||
786 | + width: 31px; | ||
787 | + height: 24px; | ||
788 | + } | ||
789 | + | ||
790 | + .collection { | ||
791 | + position: absolute; | ||
792 | + right: 122px; | ||
793 | + } | ||
794 | + | ||
795 | + .collected-ico { | ||
796 | + width: 34px; | ||
797 | + height: 32px; | ||
798 | + vertical-align: text-bottom; | ||
799 | + } | ||
800 | + | ||
801 | + .collected { | ||
802 | + color: #D62927; | ||
803 | + } | ||
804 | + | ||
805 | + .forward { | ||
806 | + width: 40px; | ||
807 | + height: 28px; | ||
808 | + position: absolute; | ||
809 | + right: 23px; | ||
810 | + margin-left: 45px; | ||
811 | + font-size: 24px; | ||
812 | + color: #b0b0b0; | ||
813 | + height: 32px; | ||
814 | + line-height: 32px; | ||
815 | + } | ||
816 | + } | ||
817 | + | ||
818 | + .things-list { | ||
819 | + .things-article > li { | ||
820 | + margin-top: 30px; | ||
821 | + | ||
822 | + .author-info { | ||
823 | + border-top: none; | ||
824 | + } | ||
825 | + } | ||
826 | + } | ||
827 | + | ||
828 | + .check-in { | ||
829 | + background: #f0f0f0; | ||
830 | + | ||
831 | + .check-in-header { | ||
832 | + width: 100%; | ||
833 | + height: 283px; | ||
834 | + background-image: resolve("guang/star-classroom/checkIn-bg.jpg"); | ||
835 | + background-repeat: no-repeat; | ||
836 | + background-size: contain; | ||
837 | + } | ||
838 | + | ||
839 | + .head-cont { | ||
840 | + text-align: center; | ||
841 | + padding-top: 30px; | ||
842 | + height: 195px; | ||
843 | + box-sizing: border-box; | ||
844 | + | ||
845 | + .user-avatar { | ||
846 | + width: 100px; | ||
847 | + height: 100px; | ||
848 | + border-radius: 50%; | ||
849 | + border:4px solid; | ||
850 | + border-color: rgba(255,255,255,.6); | ||
851 | + background-image: resolve("me/index/user-avatar.png"); | ||
852 | + background-repeat: no-repeat; | ||
853 | + background-origin: border-box; | ||
854 | + background-size: contain; | ||
855 | + display: inline-block; | ||
856 | + } | ||
857 | + | ||
858 | + .user-name { | ||
859 | + color: #fff; | ||
860 | + font-size: 24px; | ||
861 | + font-weight: bold; | ||
862 | + margin-top: 7px; | ||
863 | + } | ||
864 | + } | ||
865 | + | ||
866 | + .count-area { | ||
867 | + width: 100%; | ||
868 | + float: left; | ||
869 | + } | ||
870 | + | ||
871 | + .count-nav { | ||
872 | + width: 319px; | ||
873 | + float: left; | ||
874 | + margin-top: 12px; | ||
875 | + | ||
876 | + p { | ||
877 | + width: 100%; | ||
878 | + text-align: center; | ||
879 | + color: #fff; | ||
880 | + line-height: 32px; | ||
881 | + font-size: 22px; | ||
882 | + } | ||
883 | + } | ||
884 | + | ||
885 | + .line { | ||
886 | + width: 2px; | ||
887 | + height: 46px; | ||
888 | + float: left; | ||
889 | + margin-top: 26px; | ||
890 | + box-sizing: border-box; | ||
891 | + border-left: 1px solid #fff; | ||
892 | + } | ||
893 | + | ||
894 | + .ranking-area { | ||
895 | + width: 100%; | ||
896 | + background: #fff; | ||
897 | + border-top: 1px solid #e0e0e0; | ||
898 | + margin-top: 30px; | ||
899 | + padding-left: 30px; | ||
900 | + box-sizing: border-box; | ||
901 | + | ||
902 | + li { | ||
903 | + width: 100%; | ||
904 | + height: 120px; | ||
905 | + padding-top: 20px; | ||
906 | + box-sizing: border-box; | ||
907 | + border-bottom: 1px solid #e0e0e0; | ||
908 | + } | ||
909 | + | ||
910 | + .rank-avatar { | ||
911 | + width: 80px; | ||
912 | + height: 80px; | ||
913 | + border-radius: 50%; | ||
914 | + background-image: resolve("me/index/user-avatar.png"); | ||
915 | + background-repeat: no-repeat; | ||
916 | + background-size: contain; | ||
917 | + float: left; | ||
918 | + } | ||
919 | + | ||
920 | + .ranking-mid { | ||
921 | + float: left; | ||
922 | + margin-left: 20px; | ||
923 | + } | ||
924 | + | ||
925 | + .rank-ico { | ||
926 | + min-width: 18px; | ||
927 | + height: 38px; | ||
928 | + border-radius: 38px; | ||
929 | + background: #444; | ||
930 | + display: inline-block; | ||
931 | + text-align: center; | ||
932 | + line-height: 40px; | ||
933 | + color: #fff; | ||
934 | + font-size: 24px; | ||
935 | + font-weight: bold; | ||
936 | + padding: 0 10px; | ||
937 | + } | ||
938 | + | ||
939 | + .rank-name { | ||
940 | + font-size: 24px; | ||
941 | + color: #444; | ||
942 | + margin-top: 5px; | ||
943 | + width: 260px; | ||
944 | + white-space: nowrap; | ||
945 | + text-overflow: ellipsis; | ||
946 | + overflow: hidden; | ||
947 | + height: 38px; | ||
948 | + line-height: 38px; | ||
949 | + } | ||
950 | + | ||
951 | + .ranking-rg { | ||
952 | + font-size: 20px; | ||
953 | + color: #444; | ||
954 | + float: right; | ||
955 | + margin:20px 30px 0 0; | ||
956 | + } | ||
957 | + | ||
958 | + .intimacy { | ||
959 | + margin-left: 10px; | ||
960 | + font-size: 36px; | ||
961 | + color: #b0b0b0; | ||
962 | + } | ||
963 | + } | ||
964 | + | ||
965 | + .high-light { | ||
966 | + .rank-ico { | ||
967 | + width: 52px; | ||
968 | + height: 39px; | ||
969 | + line-height: 50px; | ||
970 | + border-radius: 0; | ||
971 | + background-image: resolve("guang/star-classroom/king-ico.png"); | ||
972 | + background-color: #fff; | ||
973 | + background-repeat: no-repeat; | ||
974 | + background-size: contain; | ||
975 | + padding: 0; | ||
976 | + } | ||
977 | + | ||
978 | + .intimacy { | ||
979 | + color: #d0021b; | ||
980 | + } | ||
981 | + } | ||
982 | + } | ||
983 | +} | ||
984 | + | ||
985 | + | ||
986 | +@media screen and (max-height: 480px){ | ||
987 | + .star-classroom { | ||
988 | + .pop-intimacy { | ||
989 | + height: 796px; | ||
990 | + | ||
991 | + .day-item .item { | ||
992 | + height: 50px; | ||
993 | + line-height: 50px; | ||
994 | + margin-top: 0; | ||
995 | + } | ||
996 | + | ||
997 | + .fan-charts { | ||
998 | + height: 76px; | ||
999 | + | ||
1000 | + h2 { | ||
1001 | + line-height: 76px; | ||
1002 | + } | ||
1003 | + | ||
1004 | + .arrow { | ||
1005 | + height: 76px; | ||
1006 | + line-height: 76px; | ||
1007 | + } | ||
1008 | + } | ||
1009 | + | ||
1010 | + .intimacy-head h1{ | ||
1011 | + font-size: 50px; | ||
1012 | + } | ||
1013 | + } | ||
1014 | + | ||
1015 | + .fan-charts-cont { | ||
1016 | + line-height: 76px; | ||
1017 | + | ||
1018 | + .rank-ico { | ||
1019 | + top: 17px; | ||
1020 | + } | ||
1021 | + | ||
1022 | + .rank-avatar { | ||
1023 | + top: 7px; | ||
1024 | + } | ||
1025 | + | ||
1026 | + .fans-name { | ||
1027 | + height: 76px; | ||
1028 | + } | ||
1029 | + | ||
1030 | + li { | ||
1031 | + height: 76px; | ||
1032 | + } | ||
1033 | + } | ||
1034 | + } | ||
1035 | +} |
public/scss/guang/_tvls.css
0 → 100644
1 | +.time-view-like-share { | ||
2 | + color: #b0b0b0; | ||
3 | + line-height: 38px; | ||
4 | + height: 38px; | ||
5 | + font-size: 24px; | ||
6 | + | ||
7 | + .iconfont { | ||
8 | + vertical-align: 9%; | ||
9 | + margin-right: 4px; | ||
10 | + font-size: 24px; | ||
11 | + } | ||
12 | + | ||
13 | + .like-share-container { | ||
14 | + display: inline-block; | ||
15 | + float: right; | ||
16 | + | ||
17 | + > * { | ||
18 | + float: left; | ||
19 | + } | ||
20 | + | ||
21 | + .iconfont { | ||
22 | + position: relative; | ||
23 | + height: 60px; | ||
24 | + line-height: 60px; | ||
25 | + display: inline-block; | ||
26 | + | ||
27 | + color: #b0b0b0; | ||
28 | + width: 60px; | ||
29 | + top: -14px; | ||
30 | + font-size: 34px; | ||
31 | + text-align: center; | ||
32 | + margin-right: 0; | ||
33 | + outline: none; | ||
34 | + } | ||
35 | + | ||
36 | + .share-btn { | ||
37 | + margin-left: 20px; | ||
38 | + } | ||
39 | + | ||
40 | + .like-btn.like { | ||
41 | + color: #444; | ||
42 | + } | ||
43 | + | ||
44 | + .collect-btn { | ||
45 | + margin-left: 20px; | ||
46 | + &.collected { | ||
47 | + color: #D62927; | ||
48 | + } | ||
49 | + } | ||
50 | + } | ||
51 | +} |
@@ -62,7 +62,7 @@ a { | @@ -62,7 +62,7 @@ a { | ||
62 | text-decoration: none; | 62 | text-decoration: none; |
63 | font-style: normal; | 63 | font-style: normal; |
64 | font-size: 24px; | 64 | font-size: 24px; |
65 | - font-family: 'iconfont' !important; | 65 | + font-family: "iconfont" !important; |
66 | -webkit-font-smoothing: antialiased; | 66 | -webkit-font-smoothing: antialiased; |
67 | -webkit-text-stroke-width: 0.4px; | 67 | -webkit-text-stroke-width: 0.4px; |
68 | -moz-osx-font-smoothing: grayscale; | 68 | -moz-osx-font-smoothing: grayscale; |
uninstall_node.sh
deleted
100644 → 0
-
Please register or login to post a comment