Authored by htoooth

Merge remote-tracking branch 'origin/release/5.4' into release/5.4

@@ -46,7 +46,8 @@ const detail = (req, res, next) => { @@ -46,7 +46,8 @@ const detail = (req, res, next) => {
46 contId: +req.query.contId || 0, 46 contId: +req.query.contId || 0,
47 keywords: req.query.helpQuery, 47 keywords: req.query.helpQuery,
48 channel: req.query.channel ? req.query.channel : 'boys', 48 channel: req.query.channel ? req.query.channel : 'boys',
49 - url: req.originalUrl 49 + url: req.originalUrl,
  50 + page: q.page || 1
50 }; 51 };
51 52
52 let nav = [ 53 let nav = [
@@ -53,10 +53,12 @@ const helpSearch = (params) => { @@ -53,10 +53,12 @@ const helpSearch = (params) => {
53 }); 53 });
54 }; 54 };
55 55
56 -const allQA = () => { 56 +const allQA = (page) => {
57 return api.get('', { 57 return api.get('', {
58 method: 'app.helper.allQA', 58 method: 'app.helper.allQA',
59 - showPlatform: 'yohobuy_pc' 59 + showPlatform: 'yohobuy_pc',
  60 + viewNum: 15,
  61 + page: page
60 }, { 62 }, {
61 code: 200 63 code: 200
62 }); 64 });
@@ -231,12 +231,18 @@ const _processDetailData = (result, params) => { @@ -231,12 +231,18 @@ const _processDetailData = (result, params) => {
231 }); 231 });
232 232
233 if (params.id === 1 && !params.keywords) { 233 if (params.id === 1 && !params.keywords) {
  234 + let page = pager(_.get(result, '[3].data.page_total', 0), {
  235 + id: params.id,
  236 + page: params.page
  237 + });
  238 +
234 contData = { 239 contData = {
235 isShowMenu: _processCountLength(data.faqs), 240 isShowMenu: _processCountLength(data.faqs),
236 id: 1, 241 id: 1,
237 commonProblem: true, 242 commonProblem: true,
238 faqs: data.faqs, 243 faqs: data.faqs,
239 - allQa: _.get(result, '[3].data', []) 244 + allQa: _.get(result, '[3].data.list', []),
  245 + footPager: page
240 }; 246 };
241 } 247 }
242 } 248 }
@@ -309,7 +315,7 @@ const detailData = (params) => { @@ -309,7 +315,7 @@ const detailData = (params) => {
309 ]; 315 ];
310 316
311 if (params.id === 1 && !params.keywords) { 317 if (params.id === 1 && !params.keywords) {
312 - promiseData.push(helpApi.allQA()); 318 + promiseData.push(helpApi.allQA(params.page));
313 } 319 }
314 320
315 return Promise.all(promiseData).then(result => { 321 return Promise.all(promiseData).then(result => {
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 </li> 14 </li>
15 {{/allQa}} 15 {{/allQa}}
16 </ul> 16 </ul>
  17 + {{> common/foot-pager}}
17 </div> 18 </div>
18 19
19 20
@@ -16,7 +16,8 @@ const arrive = require(`${mRoot}/newArrive-service`); @@ -16,7 +16,8 @@ const arrive = require(`${mRoot}/newArrive-service`);
16 */ 16 */
17 exports.index = (req, res, next) => { 17 exports.index = (req, res, next) => {
18 let pjax = req.query._pjax; 18 let pjax = req.query._pjax;
19 - //加载最新上架数据 19 +
  20 + // 加载最新上架数据
20 if (pjax) { 21 if (pjax) {
21 arrive.getRecList(req).then(result => { 22 arrive.getRecList(req).then(result => {
22 Object.assign(result, {layout: false}); 23 Object.assign(result, {layout: false});
@@ -25,7 +26,8 @@ exports.index = (req, res, next) => { @@ -25,7 +26,8 @@ exports.index = (req, res, next) => {
25 26
26 return; 27 return;
27 } 28 }
28 - //加载所有 29 +
  30 + // 加载所有
29 arrive.index(req).then(result => { 31 arrive.index(req).then(result => {
30 res.render('list/new-arrive', result); 32 res.render('list/new-arrive', result);
31 }).catch(next); 33 }).catch(next);
@@ -26,6 +26,107 @@ const channelMap = { @@ -26,6 +26,107 @@ const channelMap = {
26 }; 26 };
27 27
28 /** 28 /**
  29 + * 处理列表数据、及页码
  30 + * @param data
  31 + * @returns {{footPager: type[], newProList: Array}}
  32 + * @private
  33 + */
  34 +const _proListHandler = (data, params) => {
  35 + let total = data.total || '',
  36 + proList = data.product_list || [],
  37 + newProList = [];
  38 +
  39 + // 页码
  40 + let footPager = searchHandler.handlePagerData(total,
  41 + Object.assign(params, {limit: _.get(data, 'page_size', '50')}), true);
  42 +
  43 + // 商品列表
  44 + _.forEach(proList, pro => {
  45 + let proObj = {};
  46 +
  47 + // 应季热门
  48 + if (pro.recommend_type === 'seasonSort') {
  49 + let tags = [];
  50 +
  51 + _.forEach(pro.data, subData => {
  52 + tags.push({
  53 + url: helpers.urlFormat('', {sort: subData.relationParameter}, 'list'),
  54 + name: subData.categoryName
  55 + });
  56 + });
  57 +
  58 + proObj.tags = tags;
  59 + proObj.tagType = true;
  60 + }
  61 +
  62 + // 热门搜索
  63 + if (pro.recommend_type === 'hotSearchTerm') {
  64 + let tags = [];
  65 +
  66 + _.forEach(pro.data, subData => {
  67 + tags.push({
  68 + url: helpers.urlFormat('', {query: subData}, 'search'),
  69 + name: subData
  70 + });
  71 + });
  72 +
  73 + proObj.tags = tags;
  74 + proObj.tagType = true;
  75 + proObj.hotSearch = true;
  76 + }
  77 +
  78 + // 店铺
  79 + if (pro.recommend_type === 'hotShop') {
  80 +
  81 + proObj = {
  82 + url: helpers.urlFormat('', {shopId: pro.data.shops_id}, pro.data.shop_domain),
  83 + src: pro.data.shop_logo,
  84 + newNum: pro.data.new_product_num,
  85 + collNum: pro.data.favorite_num
  86 + };
  87 + proObj.shopType = true;
  88 + }
  89 +
  90 + // 文章
  91 + if (pro.recommend_type === 'fashionArticle') {
  92 +
  93 + proObj = {
  94 + url: helpers.urlFormat('/' + pro.data.id + '.html', {channel: params.channel}, 'guang'),
  95 + src: pro.data.src,
  96 + title: pro.data.title,
  97 + publishTime: moment(parseInt(pro.data.publish_time_long, 10)).format('YYYY年MM月DD HH:mm'),
  98 + num: pro.data.browse || 0
  99 + };
  100 + proObj.articalType = true;
  101 + }
  102 +
  103 + // 普通商品
  104 + if (!pro.recommend_type) {
  105 + let defaultGoods = _.find(pro.goods_list, {is_default: 'Y'});
  106 +
  107 + // 无默认商品取商品列表第一个
  108 + if (!defaultGoods) {
  109 + defaultGoods = pro.goods_list[0];
  110 + }
  111 + proObj = {
  112 + url: helpers.getUrlBySkc(pro.product_id, defaultGoods.goods_id, pro.cn_alphabet),
  113 + src: pro.default_images,
  114 + proName: pro.product_name,
  115 + salesPrice: pro.sales_price
  116 + };
  117 + proObj.goodsType = true;
  118 + }
  119 +
  120 + newProList.push(proObj);
  121 + });
  122 +
  123 + return {
  124 + footPager: footPager,
  125 + newProList: newProList
  126 + };
  127 +};
  128 +
  129 +/**
29 * 加载新品到着首页 130 * 加载新品到着首页
30 * @param req 131 * @param req
31 * @returns {Promise.<TResult>} 132 * @returns {Promise.<TResult>}
@@ -83,8 +184,8 @@ const index = (req) => { @@ -83,8 +184,8 @@ const index = (req) => {
83 // 面包屑头部 184 // 面包屑头部
84 Object.assign(respData, searchHandler.handlePathNavData({}, {}, 'new', channel)); 185 Object.assign(respData, searchHandler.handlePathNavData({}, {}, 'new', channel));
85 186
86 - if (result[1].code === 200 && result[1].data && result[1].data.shop_list) {  
87 - let shopsData = result[1].data.shop_list, 187 + if (result[1].code === 200 && result[1].data) {
  188 + let shopsData = _.get(result, '[1].data.shop_list', []),
88 dataList = []; 189 dataList = [];
89 190
90 _.forEach(shopsData, shop => { 191 _.forEach(shopsData, shop => {
@@ -98,7 +199,7 @@ const index = (req) => { @@ -98,7 +199,7 @@ const index = (req) => {
98 // 为您推荐 199 // 为您推荐
99 Object.assign(respData.recommond.dataList, dataList); 200 Object.assign(respData.recommond.dataList, dataList);
100 201
101 - _.forEach(result[1].data.ads, ads => { 202 + _.forEach(_.get(result, '[1].data.ads', []), ads => {
102 // banner 203 // banner
103 if (ads.template_name === 'focus') { 204 if (ads.template_name === 'focus') {
104 Object.assign(respData.slide.list, ads.data); 205 Object.assign(respData.slide.list, ads.data);
@@ -113,8 +214,8 @@ const index = (req) => { @@ -113,8 +214,8 @@ const index = (req) => {
113 } 214 }
114 215
115 // 新品牌入驻 216 // 新品牌入驻
116 - if (result[2].code === 200 && result[2].data && result[2].data.new_brand_list) {  
117 - let brandsData = result[2].data.new_brand_list, 217 + if (result[2].code === 200 && result[2].data) {
  218 + let brandsData = _.get(result, '[2].data.new_brand_list', []),
118 brandList = []; 219 brandList = [];
119 220
120 _.forEach(brandsData, brand => { 221 _.forEach(brandsData, brand => {
@@ -129,7 +230,7 @@ const index = (req) => { @@ -129,7 +230,7 @@ const index = (req) => {
129 230
130 // 最新上架 231 // 最新上架
131 if (result[3].code === 200 && result[3].data) { 232 if (result[3].code === 200 && result[3].data) {
132 - let groupSort = result[3].data.filter.group_sort || [], 233 + let groupSort = _.get(result, '[3].data.filter.group_sort', []),
133 ctyList = []; 234 ctyList = [];
134 235
135 // 推荐品类 236 // 推荐品类
@@ -148,7 +249,8 @@ const index = (req) => { @@ -148,7 +249,8 @@ const index = (req) => {
148 Object.assign(respData.newProduct.ctyList, ctyList); 249 Object.assign(respData.newProduct.ctyList, ctyList);
149 250
150 // 列表数据 251 // 列表数据
151 - Object.assign(respData.newProduct, _proListHandler(result[3].data, Object.assign({}, params, {channel: channel}))); 252 + Object.assign(respData.newProduct, _proListHandler(result[3].data,
  253 + Object.assign({}, recParams, {channel: channel})));
152 } 254 }
153 255
154 // 数据为空,不显示页面模块 256 // 数据为空,不显示页面模块
@@ -172,116 +274,18 @@ const index = (req) => { @@ -172,116 +274,18 @@ const index = (req) => {
172 }; 274 };
173 275
174 /** 276 /**
175 - * 处理列表数据、及页码  
176 - * @param data  
177 - * @returns {{footPager: type[], newProList: Array}}  
178 - * @private  
179 - */  
180 -const _proListHandler = (data, params) => {  
181 - let total = data.total || '',  
182 - proList = data.product_list || [],  
183 - newProList = [];  
184 -  
185 - // 页码  
186 - let footPager = searchHandler.handlePagerData(total, params);  
187 -  
188 - // 商品列表  
189 - _.forEach(proList, pro => {  
190 - let proObj = {};  
191 -  
192 - // 应季热门  
193 - if (pro.recommend_type === 'seasonSort') {  
194 - let tags = [];  
195 -  
196 - _.forEach(pro.data, subData => {  
197 - tags.push({  
198 - url: helpers.urlFormat('', {sort: subData.relationParameter}, 'list'),  
199 - name: subData.categoryName  
200 - });  
201 - });  
202 -  
203 - proObj.tags = tags;  
204 - proObj.tagType = true;  
205 - }  
206 -  
207 - // 热门搜索  
208 - if (pro.recommend_type === 'hotSearchTerm') {  
209 - let tags = [];  
210 -  
211 - _.forEach(pro.data, subData => {  
212 - tags.push({  
213 - url: helpers.urlFormat('', {query: subData}, 'search'),  
214 - name: subData  
215 - });  
216 - });  
217 -  
218 - proObj.tags = tags;  
219 - proObj.tagType = true;  
220 - proObj.hotSearch = true;  
221 - }  
222 -  
223 - // 店铺  
224 - if (pro.recommend_type === 'hotShop') {  
225 -  
226 - proObj = {  
227 - url: helpers.urlFormat('', {shopId: pro.data.shops_id}, pro.data.shop_domain),  
228 - src: pro.data.shop_logo,  
229 - newNum: pro.data.new_product_num,  
230 - collNum: pro.data.favorite_num  
231 - };  
232 - proObj.shopType = true;  
233 - }  
234 -  
235 - // 文章  
236 - if (pro.recommend_type === 'fashionArticle') {  
237 -  
238 - proObj = {  
239 - url: helpers.urlFormat('/' + pro.data.id + '.html', {channel: params.channel}, 'guang'),  
240 - src: pro.data.src,  
241 - title: pro.data.title,  
242 - publishTime: moment(parseInt(pro.data.publish_time_long)).format('YYYY年MM月DD HH:mm'),  
243 - num: pro.data.browse || 0  
244 - };  
245 - proObj.articalType = true;  
246 - }  
247 -  
248 - // 普通商品  
249 - if (!pro.recommend_type) {  
250 - let defaultGoods = _.find(pro.goods_list, {is_default: 'Y'});  
251 -  
252 - // 无默认商品取商品列表第一个  
253 - if (!defaultGoods) {  
254 - defaultGoods = pro.goods_list[0];  
255 - }  
256 - proObj = {  
257 - url: helpers.getUrlBySkc(pro.product_id, defaultGoods.goods_id, pro.cn_alphabet),  
258 - src: pro.default_images,  
259 - proName: pro.product_name,  
260 - salesPrice: pro.sales_price  
261 - };  
262 - proObj.goodsType = true;  
263 - }  
264 -  
265 - newProList.push(proObj);  
266 - });  
267 -  
268 - return {  
269 - footPager: footPager,  
270 - newProList: newProList  
271 - };  
272 -};  
273 -  
274 -/**  
275 * 加载最新上架数据 277 * 加载最新上架数据
276 * @param req 278 * @param req
277 * @returns {Promise.<TResult>} 279 * @returns {Promise.<TResult>}
278 */ 280 */
279 const getRecList = (req) => { 281 const getRecList = (req) => {
280 let channel = req.query.channel || req.cookies._Channel || 'boys'; 282 let channel = req.query.channel || req.cookies._Channel || 'boys';
  283 +
281 let params = { 284 let params = {
282 yh_channel: channelMap[channel].yh_channel, 285 yh_channel: channelMap[channel].yh_channel,
283 uid: req.user.uid || '' 286 uid: req.user.uid || ''
284 }; 287 };
  288 +
285 Object.assign(params, { 289 Object.assign(params, {
286 sort: req.query.sort || '', 290 sort: req.query.sort || '',
287 page: req.query.page || 1 291 page: req.query.page || 1
@@ -293,6 +297,7 @@ const getRecList = (req) => { @@ -293,6 +297,7 @@ const getRecList = (req) => {
293 297
294 return Promise.all(apiMethod).then(result => { 298 return Promise.all(apiMethod).then(result => {
295 let respData = {}; 299 let respData = {};
  300 +
296 if (result[0].code === 200 && result[0].data) { 301 if (result[0].code === 200 && result[0].data) {
297 Object.assign(respData, _proListHandler(result[0].data, params)); 302 Object.assign(respData, _proListHandler(result[0].data, params));
298 } 303 }
@@ -5,13 +5,15 @@ var $ = require('yoho-jquery'), @@ -5,13 +5,15 @@ var $ = require('yoho-jquery'),
5 lazyLoad = require('yoho-jquery-lazyload'); 5 lazyLoad = require('yoho-jquery-lazyload');
6 6
7 var Swiper = require('yoho-swiper'); 7 var Swiper = require('yoho-swiper');
  8 +
8 require('../common'); 9 require('../common');
9 require('../plugins/slider'); 10 require('../plugins/slider');
10 require('yoho-jquery-pjax'); 11 require('yoho-jquery-pjax');
11 12
12 $('.slide-container').slider(); 13 $('.slide-container').slider();
13 $('.left-one').slider(); 14 $('.left-one').slider();
14 -var recSwiper = new Swiper('.rec-swiper', { 15 +
  16 +new Swiper('.rec-swiper', {
15 pagination: '.swiper-pagination', 17 pagination: '.swiper-pagination',
16 paginationClickable: true, 18 paginationClickable: true,
17 slidesPerView: 6, 19 slidesPerView: 6,
@@ -22,7 +24,7 @@ var recSwiper = new Swiper('.rec-swiper', { @@ -22,7 +24,7 @@ var recSwiper = new Swiper('.rec-swiper', {
22 prevButton: '.prev' 24 prevButton: '.prev'
23 }); 25 });
24 26
25 -var brandSwiper = new Swiper('.brand-swiper', { 27 +new Swiper('.brand-swiper', {
26 pagination: '.swiper-pagination', 28 pagination: '.swiper-pagination',
27 paginationClickable: true, 29 paginationClickable: true,
28 slidesPerView: 6, 30 slidesPerView: 6,
@@ -31,6 +33,7 @@ var brandSwiper = new Swiper('.brand-swiper', { @@ -31,6 +33,7 @@ var brandSwiper = new Swiper('.brand-swiper', {
31 nextButton: '.next', 33 nextButton: '.next',
32 prevButton: '.prev' 34 prevButton: '.prev'
33 }); 35 });
  36 +
34 lazyLoad($('img.lazy')); 37 lazyLoad($('img.lazy'));
35 38
36 require('./detail/latest-walk'); // 最近浏览 39 require('./detail/latest-walk'); // 最近浏览
@@ -67,14 +70,13 @@ $(function() { @@ -67,14 +70,13 @@ $(function() {
67 // 轮播数量不够隐藏左右箭头 70 // 轮播数量不够隐藏左右箭头
68 var $recSwiper = $('#rec-swiper'); 71 var $recSwiper = $('#rec-swiper');
69 var recNum = $recSwiper.find('.swiper-wrapper > .swiper-slide').length; 72 var recNum = $recSwiper.find('.swiper-wrapper > .swiper-slide').length;
  73 + var $brandSwiper = $('#brand-swiper');
  74 + var brandNum = $brandSwiper.find('.swiper-wrapper > .swiper-slide').length;
70 75
71 if (recNum <= 12) { 76 if (recNum <= 12) {
72 $recSwiper.find('.prev,.next').addClass('hide'); 77 $recSwiper.find('.prev,.next').addClass('hide');
73 } 78 }
74 79
75 - var $brandSwiper = $('#brand-swiper');  
76 - var brandNum = $brandSwiper.find('.swiper-wrapper > .swiper-slide').length;  
77 -  
78 if (brandNum <= 6) { 80 if (brandNum <= 6) {
79 $brandSwiper.find('.prev,.next').addClass('hide'); 81 $brandSwiper.find('.prev,.next').addClass('hide');
80 } 82 }
1 /** 1 /**
2 * Swiper 3.3.1 2 * Swiper 3.3.1
3 * Most modern mobile touch slider and framework with hardware accelerated transitions 3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 - * 4 + *
5 * http://www.idangero.us/swiper/ 5 * http://www.idangero.us/swiper/
6 - * 6 + *
7 * Copyright 2016, Vladimir Kharlampidi 7 * Copyright 2016, Vladimir Kharlampidi
8 * The iDangero.us 8 * The iDangero.us
9 * http://www.idangero.us/ 9 * http://www.idangero.us/
10 - * 10 + *
11 * Licensed under MIT 11 * Licensed under MIT
12 - * 12 + *
13 * Released on: February 7, 2016 13 * Released on: February 7, 2016
14 */ 14 */
15 .swiper-container { 15 .swiper-container {
@@ -137,31 +137,25 @@ @@ -137,31 +137,25 @@
137 } 137 }
138 .swiper-button-prev, 138 .swiper-button-prev,
139 .swiper-container-rtl .swiper-button-next { 139 .swiper-container-rtl .swiper-button-next {
140 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");  
141 left: 10px; 140 left: 10px;
142 right: auto; 141 right: auto;
143 } 142 }
144 .swiper-button-prev.swiper-button-black, 143 .swiper-button-prev.swiper-button-black,
145 .swiper-container-rtl .swiper-button-next.swiper-button-black { 144 .swiper-container-rtl .swiper-button-next.swiper-button-black {
146 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");  
147 -} 145 + }
148 .swiper-button-prev.swiper-button-white, 146 .swiper-button-prev.swiper-button-white,
149 .swiper-container-rtl .swiper-button-next.swiper-button-white { 147 .swiper-container-rtl .swiper-button-next.swiper-button-white {
150 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");  
151 } 148 }
152 .swiper-button-next, 149 .swiper-button-next,
153 .swiper-container-rtl .swiper-button-prev { 150 .swiper-container-rtl .swiper-button-prev {
154 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");  
155 right: 10px; 151 right: 10px;
156 left: auto; 152 left: auto;
157 } 153 }
158 .swiper-button-next.swiper-button-black, 154 .swiper-button-next.swiper-button-black,
159 .swiper-container-rtl .swiper-button-prev.swiper-button-black { 155 .swiper-container-rtl .swiper-button-prev.swiper-button-black {
160 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");  
161 -} 156 + }
162 .swiper-button-next.swiper-button-white, 157 .swiper-button-next.swiper-button-white,
163 .swiper-container-rtl .swiper-button-prev.swiper-button-white { 158 .swiper-container-rtl .swiper-button-prev.swiper-button-white {
164 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");  
165 } 159 }
166 /* Pagination Styles */ 160 /* Pagination Styles */
167 .swiper-pagination { 161 .swiper-pagination {
@@ -526,15 +520,13 @@ button.swiper-pagination-bullet { @@ -526,15 +520,13 @@ button.swiper-pagination-bullet {
526 content: ""; 520 content: "";
527 width: 100%; 521 width: 100%;
528 height: 100%; 522 height: 100%;
529 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");  
530 background-position: 50%; 523 background-position: 50%;
531 -webkit-background-size: 100%; 524 -webkit-background-size: 100%;
532 background-size: 100%; 525 background-size: 100%;
533 background-repeat: no-repeat; 526 background-repeat: no-repeat;
534 } 527 }
535 .swiper-lazy-preloader-white:after { 528 .swiper-lazy-preloader-white:after {
536 - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");  
537 -} 529 + }
538 @-webkit-keyframes swiper-preloader-spin { 530 @-webkit-keyframes swiper-preloader-spin {
539 100% { 531 100% {
540 -webkit-transform: rotate(360deg); 532 -webkit-transform: rotate(360deg);
@@ -85,6 +85,16 @@ @@ -85,6 +85,16 @@
85 } 85 }
86 } 86 }
87 87
  88 + .all-problem {
  89 + .cont {
  90 + height: auto;
  91 +
  92 + img {
  93 + max-width: 100%;
  94 + }
  95 + }
  96 + }
  97 +
88 .help-cont { 98 .help-cont {
89 .cont { 99 .cont {
90 padding: 15px 20px; 100 padding: 15px 20px;