Authored by 陈峰

Merge branch 'feature/group-home-correct' into 'release/6.9.2'

Feature/group home correct



See merge request !1737
@@ -24,6 +24,30 @@ function index(req, res, next) { @@ -24,6 +24,30 @@ function index(req, res, next) {
24 }).catch(next); 24 }).catch(next);
25 } 25 }
26 26
  27 +function goodsTab(req, res, next) {
  28 + req.ctx(GroupService).goodsTab().then(result => {
  29 + return res.json({filterList: result.filterGroupList});
  30 + }).catch(next);
  31 +}
  32 +
  33 +function newIndex(req, res, next) {
  34 + req.ctx(GroupService).newGroupIndex().then(result => {
  35 + console.log(result);
  36 + return res.render('group/newIndex', {
  37 + title: '有货福利团',
  38 + page: 'group',
  39 + localCss: true,
  40 + nodownload: true,
  41 + width750: true,
  42 + wechatShare: true,
  43 + floors: result.index,
  44 + tabs: result.tabData,
  45 + filterList: result.filterGroupList,
  46 + shareInfo: result.shareInfo
  47 + });
  48 + }).catch(next);
  49 +}
  50 +
27 function groupListIndex(req, res, next) { 51 function groupListIndex(req, res, next) {
28 let params = Object.assign({}, req.query); 52 let params = Object.assign({}, req.query);
29 let uid = 0; 53 let uid = 0;
@@ -369,6 +393,7 @@ function loadOrder(req, res, next) { @@ -369,6 +393,7 @@ function loadOrder(req, res, next) {
369 393
370 module.exports = { 394 module.exports = {
371 index, 395 index,
  396 + newIndex,
372 groupListIndex, 397 groupListIndex,
373 groupList, 398 groupList,
374 progress, 399 progress,
@@ -380,5 +405,6 @@ module.exports = { @@ -380,5 +405,6 @@ module.exports = {
380 filter, 405 filter,
381 searchList, 406 searchList,
382 delOrder, 407 delOrder,
383 - cancelOrder 408 + cancelOrder,
  409 + goodsTab
384 }; 410 };
@@ -18,12 +18,33 @@ const contentCodes = { @@ -18,12 +18,33 @@ const contentCodes = {
18 } 18 }
19 } [isProd ? 'production' : 'test']; 19 } [isProd ? 'production' : 'test'];
20 20
  21 +const newContentCodes = {
  22 + test: {
  23 + home: 'd9101626ba774147080596e482e5f697'
  24 + },
  25 + production: {
  26 + home: 'd9101626ba774147080596e482e5f697'
  27 + }
  28 +} [isProd ? 'production' : 'test'];
  29 +
21 class GroupService extends global.yoho.BaseModel { 30 class GroupService extends global.yoho.BaseModel {
22 constructor(ctx) { 31 constructor(ctx) {
23 super(ctx); 32 super(ctx);
24 this.api = new GroupApi(ctx); 33 this.api = new GroupApi(ctx);
25 } 34 }
26 35
  36 + async newIndex() {
  37 + try {
  38 + const result = await this.api._getResourceCode({
  39 + contentCode: newContentCodes.home
  40 + });
  41 +
  42 + return result;
  43 + } catch (e) {
  44 + throw new Error('Group index fail to load resources.');
  45 + }
  46 + }
  47 +
27 async index() { 48 async index() {
28 try { 49 try {
29 const result = await this.api._getResourceCode({ 50 const result = await this.api._getResourceCode({
@@ -157,6 +178,48 @@ class GroupService extends global.yoho.BaseModel { @@ -157,6 +178,48 @@ class GroupService extends global.yoho.BaseModel {
157 return result; 178 return result;
158 } 179 }
159 180
  181 + async newGroupIndex(tabIndex) {
  182 + let result = {};
  183 + let tabCurrentIndex = tabIndex || 0;
  184 +
  185 + result.index = await this.newIndex();
  186 + let filters = [];
  187 +
  188 + result.index.forEach(item => {
  189 + if (item.template_name === 'guessLike') {
  190 + filters = item.data;
  191 + }
  192 + });
  193 +
  194 + filters.forEach(item => {
  195 + item.queryString = JSON.stringify(item.query);
  196 + });
  197 +
  198 + let indexFilter = filters[tabCurrentIndex] || {};
  199 + let query = {};
  200 +
  201 + console.log(filters);
  202 + console.log(indexFilter);
  203 + indexFilter.query.forEach(item => {
  204 + query = Object.assign(query, item);
  205 + });
  206 +
  207 + result.filterGroupList = await this.filterGroupList({
  208 + ...query,
  209 + joinLimit: null
  210 + });
  211 +
  212 + return result;
  213 + }
  214 +
  215 + async goodsTab(query, result = {}) {
  216 + result.filterGroupList = await this.filterGroupList({
  217 + ...query,
  218 + joinLimit: null
  219 + });
  220 + return result;
  221 + }
  222 +
160 async groupListIndex(params, uid) { 223 async groupListIndex(params, uid) {
161 let result = {}; 224 let result = {};
162 225
@@ -255,6 +318,7 @@ class GroupService extends global.yoho.BaseModel { @@ -255,6 +318,7 @@ class GroupService extends global.yoho.BaseModel {
255 val.sales_price = val.sales_price ? val.sales_price.toFixed(2) : ''; 318 val.sales_price = val.sales_price ? val.sales_price.toFixed(2) : '';
256 val.market_price = val.market_price ? val.market_price.toFixed(2) : ''; 319 val.market_price = val.market_price ? val.market_price.toFixed(2) : '';
257 val.collagePrice = val.collagePrice ? val.collagePrice.toFixed(2) : ''; 320 val.collagePrice = val.collagePrice ? val.collagePrice.toFixed(2) : '';
  321 + val.joinLimitStr = val.join_limit === 1 ? '邀新团' : '普通团';
258 }); 322 });
259 } 323 }
260 return finalResult; 324 return finalResult;
@@ -383,8 +383,10 @@ router.post('/yoluck/detail/mylist.html', swtichYoLuck(yoluck.getActivityCodeLis @@ -383,8 +383,10 @@ router.post('/yoluck/detail/mylist.html', swtichYoLuck(yoluck.getActivityCodeLis
383 383
384 // 拼团 384 // 拼团
385 router.get('/group', group.index); // 拼团首页 385 router.get('/group', group.index); // 拼团首页
  386 +router.get('/group/newIndex', group.newIndex); // 拼团首页
386 router.get('/group/list', group.groupListIndex); // 拼团列表页 387 router.get('/group/list', group.groupListIndex); // 拼团列表页
387 router.get('/group/goods-list', group.groupList); // 拼团列表 388 router.get('/group/goods-list', group.groupList); // 拼团列表
  389 +router.get('/group/goods-tab', group.goodsTab);
388 router.get('/group/filter', group.filter); // 首页筛选结果页 390 router.get('/group/filter', group.filter); // 首页筛选结果页
389 router.get('/group/search', group.searchList); // 首页筛选列表 391 router.get('/group/search', group.searchList); // 首页筛选列表
390 router.get('/group/progress', auth, group.progress); // 拼团状态详情页 392 router.get('/group/progress', auth, group.progress); // 拼团状态详情页
  1 +<div class="group" data-share-img="{{shareInfo.bigImage}}" data-share-title="{{shareInfo.title}}" data-share-content="{{shareInfo.content}}">
  2 + <div class="resources">
  3 + <div class="floors">
  4 + {{#each floors}}
  5 + {{#ifcond template_name "==" 'focus'}}
  6 + {{> group/resources/focus}}
  7 + {{/ifcond}}
  8 + {{#ifcond template_name "==" 'newSingleImage'}}
  9 + {{> group/resources/new-single-image}}
  10 + {{/ifcond}}
  11 + {{#ifcond template_name "==" 'twoPicture'}}
  12 + {{> group/resources/two-image}}
  13 + {{/ifcond}}
  14 + {{#ifcond template_name "==" 'image_list'}}
  15 + {{> group/resources/four-image}}
  16 + {{/ifcond}}
  17 + {{#ifcond template_name "==" 'splitJointImg'}}
  18 + {{> group/resources/split-image}}
  19 + {{/ifcond}}
  20 + {{#ifcond template_name "==" 'collageBuyPrdList'}}
  21 + {{> group/resources/collage-buy-prd-list}}
  22 + {{/ifcond}}
  23 + {{#ifcond template_name "==" 'guessLike'}}
  24 + {{> group/resources/guess-like}}
  25 + {{/ifcond}}
  26 + {{/each}}
  27 + </div>
  28 + {{!-- <div id='fixedTab' class="tab-filter" data-group="{{#if tabs.joinLimit}}{{tabs.joinLimit}}{{/if}}">
  29 + {{#if tabs.showTab}}
  30 + <div class="tab group-tab">
  31 + <div class="tab-item">
  32 + <div class="tiptext active" data-channel="newGroup">邀新团</div>
  33 + </div>
  34 + <div class="tab-item">
  35 + <div class="tiptext" data-channel="normalGroup">普通团</div>
  36 + </div>
  37 + </div>
  38 + {{/if}}
  39 + {{> group/resources/filter-tab}}
  40 + </div> --}}
  41 + <div id="goodsContainer" class="goods-container">
  42 + {{#if filterList.length}}
  43 + <div class="new-goods-list">
  44 + {{#each filterList}}
  45 + {{> group/resources/new-index-filter-list-item}}
  46 + {{/each}}
  47 + </div>
  48 + {{/if}}
  49 + </div>
  50 + {{!-- {{> group/resources/filter-page}} --}}
  51 + </div>
  52 + <a class="bottom" href="/activity/group/order">我的拼团</a>
  53 +
  54 +</div>
1 -{{#data.data}}  
2 - {{#if prdList}}  
3 - <div class="resource-collage-buy-prd-list">  
4 - {{#each prdList}}  
5 - <div id="{{../../template_id}}" name="{{../../template_intro}}" class="product-item" data-product-skn="{{productSkn}}"  
6 - data-activity-id="{{activityId}}">  
7 - <div class="product-image-bg">  
8 - <img src="{{image2 defaultImages w=188 h=250 q=60 mode=3}}"></img>  
9 - </div>  
10 - <div class="product-name">{{brandName}}</div>  
11 - <div class='product-price-wrap'>  
12 - <span class='product-price'>{{formatCollagePrice}}</span>  
13 - <span class='product-market-price'>{{marketPrice}}</span> 1 +{{#data}}
  2 + {{#ifcond layout_float "==" 'H'}}
  3 + {{#if data.prdList}}
  4 + <div class="resource-collage-buy-prd-list">
  5 + {{#each data.prdList}}
  6 + <div id="{{../../template_id}}" name="{{../../template_intro}}" class="product-item" data-product-skn="{{productSkn}}"
  7 + data-activity-id="{{activityId}}">
  8 + <div class="product-image-bg">
  9 + <img src="{{image2 defaultImages w=188 h=250 q=60 mode=3}}"></img>
  10 + </div>
  11 + <div class="product-name">{{brandName}}</div>
  12 + <div class='product-price-wrap'>
  13 + <span class='product-price'>{{formatCollagePrice}}</span>
  14 + <span class='product-market-price'>{{marketPrice}}</span>
  15 + </div>
  16 + <div class='product-joinnum'>{{collagedPersonNum}} 人已拼</div>
  17 + </div>
  18 + {{/each}}
  19 + </div>
  20 + {{/if}}
  21 + {{/ifcond}}
  22 + {{#ifcond layout_float '==' 'C'}}
  23 + {{#if data.prdList}}
  24 + <div class="resource-collage-buy-prd-list-c" data-prd-list-length="{{data.prdList.length}}">
  25 + <div class="collage-buy-title">{{../template_intro}}</div>
  26 + <div class="swiper-container">
  27 + <div class="swiper-wrapper">
  28 + {{#each data.prdList}}
  29 + <div class="swiper-slide" data-product-skn="{{productSkn}}"
  30 + data-activity-id="{{activityId}}">
  31 + <div class="product-image-bg">
  32 + <img src="{{image2 defaultImages w=188 h=250 q=60 mode=3}}"></img>
  33 + </div>
  34 + <div class="product-name">{{brandName}}</div>
  35 + <div class='product-price-wrap'>
  36 + <span class='product-people-number'>{{joinPeopleNum}}人团</span>
  37 + <span class='product-price'>{{formatCollagePrice}}</span>
  38 + </div>
  39 + {{#if collagedPersonNum}}
  40 + <div class="product-price-wrap">
  41 + <span class="product-sell-number">已拼{{collagedPersonNum}}</span>
  42 + </div>
  43 + {{/if}}
  44 + </div>
  45 + {{/each}}
  46 + </div>
  47 + <div class="swiper-pagination"></div>
14 </div> 48 </div>
15 - <div class='product-joinnum'>{{collagedPersonNum}} 人已拼</div>  
16 </div> 49 </div>
17 - {{/each}}  
18 - </div>  
19 - {{/if}}  
20 -{{/data.data}}  
  50 + {{/if}}
  51 + {{/ifcond}}
  52 +{{/data}}
  1 +<div class="guess-like">
  2 + <div class="wapper">
  3 + <div class="guess-scroll">
  4 + {{#each data}}
  5 + <div class="guess-tab" data-query="{{queryString}}">
  6 + <img src="{{image2 src w=160 h=80 q=60 mode=3}}" />
  7 + </div>
  8 + {{/each}}
  9 + </div>
  10 + </div>
  11 +</div>
  1 +<div class="new-index-filter-list-item" data-activity-id="{{activity_id}}" data-product-skn="{{product_skn}}">
  2 + <div class="group-product-header">
  3 + {{#ifcond joinLimitStr "==" "邀新团"}}
  4 + <div class="new-group-product-left-icon">
  5 + <span class="new-group-product-left-icon-number"></span>
  6 + </div>
  7 + {{/ifcond}}
  8 + {{#if @root.lazyLoad}}
  9 + <img class="lazy new-group-product-image" data-original="{{image2 default_images w=400 h=390 q=60 mode=3}}" />
  10 + {{else}}
  11 + <img class="new-group-product-image" src="{{image2 default_images w=400 h=390 q=60 mode=3}}" />
  12 + {{/if}}
  13 + </div>
  14 + <div class="new-group-product-info-bg">
  15 + <div class="new-group-product-name">{{product_name}}</div>
  16 + <div class="new-group-price">
  17 + <div class="group-free-number">
  18 + <div class="new-group-free-post"></div>
  19 + <div class="new-group-number forcefontsize10">已拼{{joinPeopleNum}}</div>
  20 + </div>
  21 + <div class="new-group-prict-bg">
  22 + <div class="new-group-number-price">
  23 + <span class="new-group-people-numer">{{people_num}}人团</span>
  24 + <span class="new-group-price-collage">{{collage_price_str}}</span>
  25 + </div>
  26 + <div class="new-market-button">
  27 + <span class="new-group-price-market">单人价{{market_price_str}}</span>
  28 + <div class="go-group-product"></div>
  29 + </div>
  30 + </div>
  31 + </div>
  32 + </div>
  33 +</div>
1 { 1 {
2 "name": "yohobuywap-node", 2 "name": "yohobuywap-node",
3 - "version": "6.9.0-4", 3 + "version": "6.9.2-1",
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": {
  1 +<div class="new-index-filter-list-item" data-activity-id="{{activity_id}}" data-product-skn="{{product_skn}}">
  2 + <div class="group-product-header">
  3 + {{#ifcond joinLimitStr "==" "邀新团"}}
  4 + <div class="new-group-product-left-icon">
  5 + <span class="new-group-product-left-icon-number"></span>
  6 + </div>
  7 + {{/ifcond}}
  8 + {{#if @root.lazyLoad}}
  9 + <img class="lazy new-group-product-image" data-original="{{image2 default_images w=400 h=390 q=60 mode=3}}" />
  10 + {{else}}
  11 + <img class="new-group-product-image" src="{{image2 default_images w=400 h=390 q=60 mode=3}}" />
  12 + {{/if}}
  13 + </div>
  14 + <div class="new-group-product-info-bg">
  15 + <div class="new-group-product-name">{{product_name}}</div>
  16 + <div class="new-group-price">
  17 + <div class="group-free-number">
  18 + <div class="new-group-free-post"></div>
  19 + <div class="new-group-number forcefontsize10">已拼{{joinPeopleNum}}</div>
  20 + </div>
  21 + <div class="new-group-prict-bg">
  22 + <div class="new-group-number-price">
  23 + <span class="new-group-people-numer">{{people_num}}人团</span>
  24 + <span class="new-group-price-collage">{{collage_price_str}}</span>
  25 + </div>
  26 + <div class="new-market-button">
  27 + <span class="new-group-price-market">单人价{{market_price_str}}</span>
  28 + <div class="go-group-product"></div>
  29 + </div>
  30 + </div>
  31 + </div>
  32 + </div>
  33 +</div>
@@ -8,6 +8,7 @@ import lazyLoad from 'yoho-jquery-lazyload'; @@ -8,6 +8,7 @@ import lazyLoad from 'yoho-jquery-lazyload';
8 import innerScroll from 'js/plugin/inner-scroll'; 8 import innerScroll from 'js/plugin/inner-scroll';
9 import sharePlugin from 'js/common/share'; 9 import sharePlugin from 'js/common/share';
10 const querystring = require('querystring'); 10 const querystring = require('querystring');
  11 +let groupListItem = require('hbs/activity/group/group-list-product.hbs');
11 12
12 class Group extends Page { 13 class Group extends Page {
13 constructor() { 14 constructor() {
@@ -20,7 +21,10 @@ class Group extends Page { @@ -20,7 +21,10 @@ class Group extends Page {
20 groupTab: $('.group-tab'), 21 groupTab: $('.group-tab'),
21 filterTab: $('.filter-nav'), 22 filterTab: $('.filter-nav'),
22 groupListContent: $('.goods-list'), 23 groupListContent: $('.goods-list'),
23 - resourceList: $('.resource-collage-buy-prd-list') 24 + resourceList: $('.resource-collage-buy-prd-list'),
  25 + resourceListC: $('.resource-collage-buy-prd-list-c'),
  26 + goodsList: $('.new-goods-list'),
  27 + guessLike: $('.guess-tab')
24 }; 28 };
25 this.shareData = { 29 this.shareData = {
26 shareImgUrl: $('.group').data('share-img'), 30 shareImgUrl: $('.group').data('share-img'),
@@ -74,6 +78,7 @@ class Group extends Page { @@ -74,6 +78,7 @@ class Group extends Page {
74 this.shareInfo(); 78 this.shareInfo();
75 this.bindEvents(); 79 this.bindEvents();
76 this.swiperTop(); 80 this.swiperTop();
  81 + this.swiperGroup();
77 this.filterInit(); 82 this.filterInit();
78 let self = this; 83 let self = this;
79 84
@@ -147,6 +152,9 @@ class Group extends Page { @@ -147,6 +152,9 @@ class Group extends Page {
147 this.selector.filterTab.on('click', 'li', this.filterTabChange.bind(this)); 152 this.selector.filterTab.on('click', 'li', this.filterTabChange.bind(this));
148 this.selector.groupListContent.on('click', '.group-product-cell', this.checkDetail.bind(this)); 153 this.selector.groupListContent.on('click', '.group-product-cell', this.checkDetail.bind(this));
149 this.selector.resourceList.on('click', '.product-item', this.checkDetail.bind(this)); 154 this.selector.resourceList.on('click', '.product-item', this.checkDetail.bind(this));
  155 + this.selector.resourceListC.on('click', '.swiper-slide', this.checkDetail.bind(this));
  156 + this.selector.goodsList.on('click', '.new-index-filter-list-item', this.checkDetail.bind(this));
  157 + this.selector.guessLike.on('click', this.guessLikeTabChange.bind(this));
150 } 158 }
151 fixedTab() { 159 fixedTab() {
152 let listHeight = this.selector.groupListContent.height(); 160 let listHeight = this.selector.groupListContent.height();
@@ -169,6 +177,26 @@ class Group extends Page { @@ -169,6 +177,26 @@ class Group extends Page {
169 window.location.href = `/activity/group/detail?activityId=${activityId}&productSkn=${productSkn}`; 177 window.location.href = `/activity/group/detail?activityId=${activityId}&productSkn=${productSkn}`;
170 } 178 }
171 179
  180 + guessLikeTabChange(e) {
  181 + let $this = $(e.currentTarget);
  182 + let query = $this.data('query');
  183 + let queryObject = {};
  184 +
  185 + query.forEach(item => {
  186 + queryObject = Object.assign(queryObject, item);
  187 + });
  188 + $.ajax({
  189 + type: 'GET',
  190 + url: '/activity/group/goods-tab',
  191 + data: queryObject,
  192 + success: (data) => {
  193 + // $('.filter-mask').remove();
  194 + // $('.group').append(data);
  195 + this.renderMoreData(data.filterList || []);
  196 + }
  197 + });
  198 + }
  199 +
172 // 筛选tab切换 200 // 筛选tab切换
173 filterTabChange(e) { 201 filterTabChange(e) {
174 let $this = $(e.currentTarget); 202 let $this = $(e.currentTarget);
@@ -282,6 +310,18 @@ class Group extends Page { @@ -282,6 +310,18 @@ class Group extends Page {
282 this.search(); 310 this.search();
283 } 311 }
284 312
  313 + swiperGroup() {
  314 + if ($('.resource-collage-buy-prd-list-c').data('prd-list-length') > 0) {
  315 + new Swiper('.swiper-container', {
  316 + slidesPerView: 3,
  317 + spaceBetween: 20,
  318 + slidesPerGroup: 3,
  319 + pagination: '.swiper-pagination',
  320 + paginationClickable: true,
  321 + });
  322 + }
  323 + }
  324 +
285 // 顶部swiper 325 // 顶部swiper
286 swiperTop() { 326 swiperTop() {
287 if ($('.banner-swiper').find('li').size() > 1) { 327 if ($('.banner-swiper').find('li').size() > 1) {
@@ -430,6 +470,15 @@ class Group extends Page { @@ -430,6 +470,15 @@ class Group extends Page {
430 } 470 }
431 } 471 }
432 472
  473 + renderMoreData(list) {
  474 + let appendHtml = '';
  475 +
  476 + list.forEach(item => {
  477 + appendHtml += groupListItem(item);
  478 + });
  479 + $('.new-goods-list').html(appendHtml);
  480 + }
  481 +
433 // 筛选初始化 482 // 筛选初始化
434 filterInit() { 483 filterInit() {
435 let selectedChannel = this.selectedChannel; 484 let selectedChannel = this.selectedChannel;
  1 +.resource-collage-buy-prd-list-c {
  2 + margin-left: 20px;
  3 + margin-right: 20px;
  4 + margin-top: 20px;
  5 + margin-bottom: 10px;
  6 + background: white;
  7 + border-radius: 10px;
  8 +
  9 + .collage-buy-title {
  10 + font-family: PingFang-SC-Semibold, sans-serif;
  11 + font-size: 32px;
  12 + color: #444;
  13 + padding-top: 20px;
  14 + padding-left: 20px;
  15 + padding-bottom: 20px;
  16 + }
  17 +
  18 + .swiper-container {
  19 + height: 450px;
  20 + margin-left: 20px;
  21 + margin-right: 20px;
  22 + }
  23 +
  24 + .swiper-pagination .swiper-pagination-bullet-active {
  25 + background: #444;
  26 + }
  27 +
  28 + .swiper-slide {
  29 + text-align: center;
  30 + font-size: 18px;
  31 + height: 88%;
  32 +
  33 + .product-image-bg {
  34 + height: 250px;
  35 + overflow: hidden;
  36 + }
  37 +
  38 + .product-name {
  39 + font-family: PingFang-SC-Regular, sans-serif;
  40 + color: #222;
  41 + text-align: left;
  42 + font-size: 22px;
  43 + padding-bottom: 20px;
  44 + padding-top: 20px;
  45 + overflow: hidden;
  46 + text-overflow: ellipsis;
  47 + height: 80px;
  48 + }
  49 +
  50 + .product-price-wrap {
  51 + text-align: left;
  52 + }
  53 +
  54 + .product-price {
  55 + letter-spacing: 0;
  56 + font-weight: 500;
  57 + font-family: BrownStd-Bold, sans-serif;
  58 + font-size: 30px;
  59 + color: #d0021b;
  60 + }
  61 +
  62 + .product-people-number {
  63 + font-family: PingFangSC-Regular, sans-serif;
  64 + font-size: 22px;
  65 + color: #d0021b;
  66 + letter-spacing: 0;
  67 + }
  68 +
  69 + .product-sell-number {
  70 + font-family: PingFangSC-Regular, sans-serif;
  71 + font-size: 11px;
  72 + color: #b0b0b0;
  73 + }
  74 +
  75 + .product-market-price {
  76 + font-size: 18px;
  77 + color: #b0b0b0;
  78 + letter-spacing: 0;
  79 + margin-left: 10px;
  80 + text-decoration: line-through;
  81 + }
  82 + }
  83 +}
  84 +
1 .resource-collage-buy-prd-list { 85 .resource-collage-buy-prd-list {
2 width: 100%; 86 width: 100%;
3 height: 440px; 87 height: 440px;
  1 +.guess-like {
  2 + overflow: hidden;
  3 + height: 80px;
  4 +
  5 + .wapper {
  6 + overflow-x: scroll;
  7 + -ms-overflow-style: none;
  8 + overflow: -moz-scrollbars-none;
  9 +
  10 + .guess-scroll {
  11 + display: flex;
  12 + flex-direction: row;
  13 + flex-wrap: nowrap;
  14 + width: auto;
  15 + min-width: 100%;
  16 +
  17 + .guess-tab {
  18 + min-width: 160px;
  19 + }
  20 + }
  21 + }
  22 +
  23 + .wapper::-webkit-scrollbar { width: 0 !important; }
  24 +}
@@ -5,8 +5,10 @@ @@ -5,8 +5,10 @@
5 @import "floor/two-image"; 5 @import "floor/two-image";
6 @import "floor/split-image"; 6 @import "floor/split-image";
7 @import "floor/collage-buy-list"; 7 @import "floor/collage-buy-list";
  8 +@import "floor/guess-like";
8 @import "tabs"; 9 @import "tabs";
9 @import "filter-list"; 10 @import "filter-list";
  11 +@import "new-filter-list";
10 12
11 .group { 13 .group {
12 .resources { 14 .resources {
@@ -31,6 +33,7 @@ @@ -31,6 +33,7 @@
31 33
32 .floors { 34 .floors {
33 border-bottom: 10px solid #f0f0f0; 35 border-bottom: 10px solid #f0f0f0;
  36 + background: #f0f0f0;
34 } 37 }
35 38
36 .tab { 39 .tab {
  1 +.goods-container {
  2 + background: #f0f0f0;
  3 +}
  4 +
  5 +.new-goods-list {
  6 + display: flex;
  7 + flex-direction: column;
  8 + margin: 0 20px;
  9 +}
  10 +
  11 +.new-index-filter-list-item:first-child {
  12 + margin-top: 0;
  13 +}
  14 +
  15 +.new-index-filter-list-item {
  16 + background: white;
  17 + flex: 1;
  18 + display: flex;
  19 + margin-bottom: 10px;
  20 + margin-top: 10px;
  21 +
  22 + .new-group-product-image {
  23 + margin: 20px;
  24 + width: 162px;
  25 + height: 220px;
  26 + }
  27 +
  28 + .new-group-product-info-bg {
  29 + flex-grow: 1;
  30 + display: flex;
  31 + flex-direction: column;
  32 + justify-content: space-between;
  33 + margin-bottom: 20px;
  34 + }
  35 +
  36 + .new-group-product-name {
  37 + margin-top: 20px;
  38 + margin-right: 20px;
  39 + font-family: PingFang-SC-Regular, sans-serif;
  40 + color: #222;
  41 + letter-spacing: 0;
  42 + line-height: 36px;
  43 + height: 56px;
  44 + font-size: 24px;
  45 + display: -webkit-box;
  46 + overflow: hidden;
  47 + text-overflow: ellipsis;
  48 + word-wrap: break-word;
  49 + white-space: normal !important;
  50 + -webkit-line-clamp: 2;
  51 + -webkit-box-orient: vertical;
  52 + }
  53 +
  54 + .new-group-free-post {
  55 + width: 60px;
  56 + height: 38px;
  57 + background: url("img/activity/group/group/new-free-post@3x.png") no-repeat;
  58 + background-size: contain;
  59 + margin-right: 20px;
  60 + }
  61 +
  62 + .new-market-button {
  63 + display: flex;
  64 + flex-direction: row;
  65 + justify-content: space-between;
  66 + align-items: flex-end;
  67 + }
  68 +
  69 + .go-group-product {
  70 + width: 160px;
  71 + height: 60px;
  72 + background: url("img/activity/group/group/go-group@3x.png") no-repeat;
  73 + background-size: contain;
  74 + left: -5px;
  75 + }
  76 +
  77 + .group-free-number {
  78 + display: flex;
  79 + flex-direction: row;
  80 + align-items: flex-start;
  81 + }
  82 +
  83 + .new-group-number {
  84 + font-family: PingFang-SC-Regular, sans-serif;
  85 + letter-spacing: 0;
  86 + box-sizing: border-box;
  87 + height: 30px;
  88 + line-height: 30px;
  89 + padding-left: 20px;
  90 + padding-right: 20px;
  91 + border-radius: 15px;
  92 + border: 0.5px #222 solid;
  93 + color: #222;
  94 + }
  95 +
  96 + .forcefontsize10 {
  97 + display: inline-block;
  98 + font-size: 12px;
  99 + -webkit-text-size-adjust: none;
  100 + transform: scale(0.83, 0.83);
  101 + }
  102 +
  103 + .new-group-prict-bg {
  104 + display: flex;
  105 + flex-direction: column;
  106 + font-size: 22px;
  107 + }
  108 +
  109 + .new-group-price {
  110 + display: flex;
  111 + flex-direction: column;
  112 + justify-content: space-between;
  113 + flex-grow: 1;
  114 + margin-right: 20px;
  115 + }
  116 +
  117 + .new-group-number-price {
  118 + color: #d0021b;
  119 + }
  120 +
  121 + .new-group-price-collage {
  122 + margin-left: 20px;
  123 + font-size: 36px;
  124 + }
  125 +
  126 + .new-group-price-market {
  127 + font-family: PingFang-SC-Regular, sans-serif;
  128 + font-size: 12px;
  129 + color: #b0b0b0;
  130 + }
  131 +
  132 + .new-group-product-left-icon {
  133 + position: absolute;
  134 + top: 40px;
  135 + width: 88px;
  136 + height: 40px;
  137 + left: 0;
  138 + font-size: 22px;
  139 + background: url("img/activity/group/group/Rectangle@3x.png") no-repeat;
  140 + background-size: contain;
  141 + }
  142 +
  143 + .new-group-product-left-icon-number {
  144 + display: inline-block;
  145 + color: #fff;
  146 + font-size: 22px;
  147 + margin-left: 12px;
  148 + margin-top: 5px;
  149 + }
  150 +}