diff --git a/src/App.vue b/src/App.vue index 659e056c042a00628dfb9346e6331636912c7ede..fdc10ee4ff11f591031aa2c4855149f28105a563 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,39 @@ diff --git a/src/components/common/shoplist.vue b/src/components/common/shoplist.vue new file mode 100644 index 0000000000000000000000000000000000000000..62f1a35d86388c3b313f584d285ca1a3df4bde74 --- /dev/null +++ b/src/components/common/shoplist.vue @@ -0,0 +1,103 @@ + + + + + \ No newline at end of file diff --git a/src/components/header/head.vue b/src/components/header/head.vue index 52cd8adc52b099fe44cd21a3836a342844adbb87..8fb1242cb389039c73a5270ac8f5b2e4615448a1 100644 --- a/src/components/header/head.vue +++ b/src/components/header/head.vue @@ -1,9 +1,17 @@ @@ -40,23 +48,29 @@ #head_top{ background-color: $blue; position: fixed; + z-index: 999999999999; left: 0; top: 0; @include wh(100%, 1.95rem); } .head_goback{ left: 0.4rem; - @include wh(0.375rem, 0.7rem); - @include center-top; - @include backimg('../../images/icon_back.png'); + @include wh(0.6rem, 0.8rem); + @include ct; } .head_login{ right: 0.55rem; - @include sizecolor(0.6rem, #fff); - @include center-top; + @include sc(0.65rem, #fff); + @include ct; } .title_head{ - @include sizecolor(0.7rem, #fff); @include center; + width: 50%; + color: #fff; + text-align: center; + .title_text{ + @include sc(0.8rem, #fff); + text-align: center; + } } diff --git a/src/config/ajax.js b/src/config/ajax.js deleted file mode 100644 index bb21eeca0a271a2cbc1044dc669796696fd57e53..0000000000000000000000000000000000000000 --- a/src/config/ajax.js +++ /dev/null @@ -1,49 +0,0 @@ -import {baseUrl} from './env' - -export default (type = 'GET', url = '', data = {}, async = true) => { - return new Promise((resolve, reject) => { //定义一个promise - type = type.toUpperCase(); - url = baseUrl + url; - - let requestObj; - if (window.XMLHttpRequest) { - requestObj = new XMLHttpRequest(); - } else { - requestObj = new ActiveXObject; - } - - if (type == 'GET') { - let dataStr = ''; //数据拼接字符串 - Object.keys(data).forEach(key => { - dataStr += key + '=' + data[key] + '&'; - }) - if (dataStr !== '') { - dataStr = dataStr.substr(0, dataStr.lastIndexOf('&')); - url = url + '?' + dataStr; - } - requestObj.open(type, url, async); - requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - requestObj.send(); - }else if (type == 'POST') { - requestObj.open(type, url, async); - requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - requestObj.send(JSON.stringify(data)); - }else { - reject('error type'); - } - - requestObj.onreadystatechange = () => { - if (requestObj.readyState == 4) { - if (requestObj.status == 200) { - let obj = requestObj.response - if (typeof obj !== 'object') { - obj = JSON.parse(obj); - } - resolve(obj); - }else { - reject(requestObj); - } - } - } - }) -} \ No newline at end of file diff --git a/src/config/env.js b/src/config/env.js index 33e4c07a68f572818e11a29967866d8f11c165b4..a84a75a9a7de5298a68071ea58bf576b3f447732 100644 --- a/src/config/env.js +++ b/src/config/env.js @@ -1,17 +1,21 @@ /** * 配置编译环境和线上环境之间的切换 * - * baseUrl : 路由地址域名 + * baseUrl: 域名地址 + * routerMode: 路由模式 + * imgBaseUrl: 图片所在域名地址 * */ -let baseUrl; -let routerMode; +let baseUrl; +let routerMode; +const imgBaseUrl = 'https://fuss10.elemecdn.com'; + if (process.env.NODE_ENV == 'development') { baseUrl = ''; - routerMode = 'history' + routerMode = 'hash' }else{ baseUrl = 'https://mainsite-restapi.ele.me'; routerMode = 'hash' } -export {baseUrl, routerMode} \ No newline at end of file +export {baseUrl, routerMode, imgBaseUrl} \ No newline at end of file diff --git a/src/config/fetch.js b/src/config/fetch.js index fb47d76f6988e7c514073967f4c247bcb3ba0da3..b90be9d2352d922df5e6e1ced17c7f436f380e72 100644 --- a/src/config/fetch.js +++ b/src/config/fetch.js @@ -1,47 +1,76 @@ import {baseUrl} from './env' -export default (type = 'GET', url = '', data = {}) => { - return new Promise((resolve, reject) => { //返回一个promise - type = type.toUpperCase(); - url = baseUrl + url - let requestObj = { +export default async (type = 'GET', url = '', data = {}) => { + type = type.toUpperCase(); + url = baseUrl + url; + + if (type == 'GET') { + let dataStr = ''; //数据拼接字符串 + Object.keys(data).forEach(key => { + dataStr += key + '=' + data[key] + '&'; + }) + + if (dataStr !== '') { + dataStr = dataStr.substr(0, dataStr.lastIndexOf('&')); + url = url + '?' + dataStr; + } + } + + if (window.fetch) { + let requestConfig = { credentials: 'include', method: type, headers: { 'Accept': 'application/json', - 'Content-Type': 'application/json' + 'Content-Type': 'application/json' }, - mode: "no-cors", + mode: "cors", + cache: "only-if-cached" } - if (type == 'GET') { - let dataStr = ''; //数据拼接字符串 - Object.keys(data).forEach(key => { - dataStr += key + '=' + data[key] + '&'; - }) - - if (dataStr !== '') { - dataStr = dataStr.substr(0, dataStr.lastIndexOf('&')); - url = url + '?' + dataStr; - } - }else if (type == 'POST') { - Object.defineProperty(requestObj, 'body', { + if (type == 'POST') { + Object.defineProperty(requestConfig, 'body', { value: JSON.stringify(data) }) - }else { - reject('error type') + } + + try { + var response = await fetch(url, requestConfig); + var responseJson = await response.json(); + }catch (error){ + throw new Error(error) } - fetch(url, requestObj).then(res => { - if (res.status == 200) { - return res.json() - } else { - return reject(res) - } - }).then(data => { - resolve(data); - }).catch(err => { - reject(err); - }); - }) + return responseJson + }else{ + let requestObj; + if (window.XMLHttpRequest) { + requestObj = new XMLHttpRequest(); + } else { + requestObj = new ActiveXObject; + } + + let sendData = ''; + if (type == 'POST') { + sendData = JSON.stringify(data); + } + + requestObj.open(type, url, true); + requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + requestObj.send(sendData); + + requestObj.onreadystatechange = () => { + if (requestObj.readyState == 4) { + if (requestObj.status == 200) { + let obj = requestObj.response + if (typeof obj !== 'object') { + obj = JSON.parse(obj); + } + return obj + }else { + throw new Error(requestObj) + } + } + } + } } \ No newline at end of file diff --git a/src/images/head-logo.jpg b/src/images/head-logo.jpg deleted file mode 100644 index 33b2effe04213d3ba415454e7882b2c41f5124c0..0000000000000000000000000000000000000000 Binary files a/src/images/head-logo.jpg and /dev/null differ diff --git a/src/images/icon.svg b/src/images/icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..5004507bbf7951b9e31a743d5daddc6330c0ee9a --- /dev/null +++ b/src/images/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/images/icon_back.png b/src/images/icon_back.png deleted file mode 100644 index cb25d10ff74d392c656a53b11dafd88a98575585..0000000000000000000000000000000000000000 Binary files a/src/images/icon_back.png and /dev/null differ diff --git a/src/page/city/city.vue b/src/page/city/city.vue index ea5bc5483e3c6a9f323461950d660f159f6d99ef..c84614934ab12067839acb179ad60b89cb454895 100644 --- a/src/page/city/city.vue +++ b/src/page/city/city.vue @@ -11,9 +11,7 @@ -
-
搜索历史
-
+
搜索历史
- + @@ -46,23 +46,26 @@ import {cityGuess, hotcity, groupcity} from '../../service/getData' export default { data(){ return{ - guessCity: '', - guessCityid: '', - hotcity: [], - groupcity: {}, + guessCity: '', //当前城市 + guessCityid: '', //当前城市id + hotcity: [], //热门城市列表 + groupcity: {}, //所有城市列表 } }, - created(){ + mounted(){ + // 获取当前城市 cityGuess().then(res => { this.guessCity = res.name; this.guessCityid = res.id; }) + //获取热门城市 hotcity().then(res => { this.hotcity = res; }) + //获取所有城市 groupcity().then(res => { this.groupcity = res; }) @@ -73,6 +76,7 @@ export default { }, computed:{ + //将获取的数据按照A-Z字母开头排序 sortgroupcity(){ let sortobj = {}; for (let i = 65; i <= 90; i++) { @@ -85,13 +89,11 @@ export default { }, methods:{ + //点击图标刷新页面 reload(){ - this.$router.push('/') + window.location.reload(); } }, - // beforeRouteLeave(to, from, next){ - // console.log(111) - // } } @@ -101,13 +103,13 @@ export default { .head_logo{ left: 0.4rem; font-weight: 400; - @include sizecolor(0.7rem, #fff); + @include sc(0.7rem, #fff); @include wh(2.3rem, 0.7rem); - @include center-top; + @include ct; } .city_nav{ margin-top: 2.35rem; - border-top: 1px solid $bordercolor; + border-top: 1px solid $bc; background-color: #fff; margin-bottom: 0.4rem; .city_tip{ @@ -116,11 +118,11 @@ export default { line-height: 1.45rem; padding: 0 0.45rem; span:nth-of-type(1){ - @include sizecolor(0.55rem, #666); + @include sc(0.55rem, #666); } span:nth-of-type(2){ font-weight: 900; - @include sizecolor(0.475rem, #9f9f9f); + @include sc(0.475rem, #9f9f9f); } } .guess_city{ @@ -128,8 +130,8 @@ export default { height: 1.8rem; justify-content: space-between; padding: 0 0.45rem; - border-top: 1px solid $bordercolor; - border-bottom: 2px solid $bordercolor; + border-top: 1px solid $bc; + border-bottom: 2px solid $bc; @include font(0.75rem, 1.8rem); span:nth-of-type(1){ color: $blue; @@ -148,8 +150,8 @@ export default { float: left; text-align: center; color: $blue; - border-bottom: 0.025rem solid $bordercolor; - border-right: 0.025rem solid $bordercolor; + border-bottom: 0.025rem solid $bc; + border-right: 0.025rem solid $bc; @include wh(25%, 1.75rem); @include font(0.6rem, 1.75rem); } @@ -161,18 +163,18 @@ export default { color: #666; font-weight: 400; text-indent: 0.45rem; - border-top: 2px solid $bordercolor; - border-bottom: 1px solid $bordercolor; + border-top: 2px solid $bc; + border-bottom: 1px solid $bc; @include font(0.55rem, 1.45rem, "Helvetica Neue"); span{ - @include sizecolor(0.475rem, #999); + @include sc(0.475rem, #999); } } .letter_classify_li{ margin-bottom: 0.4rem; background-color: #fff; - border-bottom: 1px solid $bordercolor; + border-bottom: 1px solid $bc; .groupcity_name_container{ li{ color: #666; diff --git a/src/page/msite/msite.vue b/src/page/msite/msite.vue index 50228e20f7f270f77fb76d8f235f79a0a4a8302f..4233279375c10669beeb10a54672da5bb52206f2 100644 --- a/src/page/msite/msite.vue +++ b/src/page/msite/msite.vue @@ -1,22 +1,175 @@ diff --git a/src/plugins/swiper.min.js b/src/plugins/swiper.min.js new file mode 100755 index 0000000000000000000000000000000000000000..f72bf85a809c7b27307ad456ea737bf1e9d9491a --- /dev/null +++ b/src/plugins/swiper.min.js @@ -0,0 +1,19 @@ +/** + * Swiper 3.4.1 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * + * http://www.idangero.us/swiper/ + * + * Copyright 2016, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: December 13, 2016 + */ +!function(){"use strict";function e(e){e.fn.swiper=function(a){var s;return e(this).each(function(){var e=new t(this,a);s||(s=e)}),s}}var a,t=function(e,i){function r(e){return Math.floor(e)}function n(){var e=b.params.autoplay,a=b.slides.eq(b.activeIndex);a.attr("data-swiper-autoplay")&&(e=a.attr("data-swiper-autoplay")||b.params.autoplay),b.autoplayTimeoutId=setTimeout(function(){b.params.loop?(b.fixLoop(),b._slideNext(),b.emit("onAutoplay",b)):b.isEnd?i.autoplayStopOnLast?b.stopAutoplay():(b._slideTo(0),b.emit("onAutoplay",b)):(b._slideNext(),b.emit("onAutoplay",b))},e)}function o(e,t){var s=a(e.target);if(!s.is(t))if("string"==typeof t)s=s.parents(t);else if(t.nodeType){var i;return s.parents().each(function(e,a){a===t&&(i=t)}),i?t:void 0}if(0!==s.length)return s[0]}function l(e,a){a=a||{};var t=window.MutationObserver||window.WebkitMutationObserver,s=new t(function(e){e.forEach(function(e){b.onResize(!0),b.emit("onObserverUpdate",b,e)})});s.observe(e,{attributes:"undefined"==typeof a.attributes||a.attributes,childList:"undefined"==typeof a.childList||a.childList,characterData:"undefined"==typeof a.characterData||a.characterData}),b.observers.push(s)}function p(e){e.originalEvent&&(e=e.originalEvent);var a=e.keyCode||e.charCode;if(!b.params.allowSwipeToNext&&(b.isHorizontal()&&39===a||!b.isHorizontal()&&40===a))return!1;if(!b.params.allowSwipeToPrev&&(b.isHorizontal()&&37===a||!b.isHorizontal()&&38===a))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===a||39===a||38===a||40===a){var t=!1;if(b.container.parents("."+b.params.slideClass).length>0&&0===b.container.parents("."+b.params.slideActiveClass).length)return;var s={left:window.pageXOffset,top:window.pageYOffset},i=window.innerWidth,r=window.innerHeight,n=b.container.offset();b.rtl&&(n.left=n.left-b.container[0].scrollLeft);for(var o=[[n.left,n.top],[n.left+b.width,n.top],[n.left,n.top+b.height],[n.left+b.width,n.top+b.height]],l=0;l=s.left&&p[0]<=s.left+i&&p[1]>=s.top&&p[1]<=s.top+r&&(t=!0)}if(!t)return}b.isHorizontal()?(37!==a&&39!==a||(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===a&&!b.rtl||37===a&&b.rtl)&&b.slideNext(),(37===a&&!b.rtl||39===a&&b.rtl)&&b.slidePrev()):(38!==a&&40!==a||(e.preventDefault?e.preventDefault():e.returnValue=!1),40===a&&b.slideNext(),38===a&&b.slidePrev())}}function d(){var e="onwheel",a=e in document;if(!a){var t=document.createElement("div");t.setAttribute(e,"return;"),a="function"==typeof t[e]}return!a&&document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0&&(a=document.implementation.hasFeature("Events.wheel","3.0")),a}function u(e){e.originalEvent&&(e=e.originalEvent);var a=0,t=b.rtl?-1:1,s=c(e);if(b.params.mousewheelForceToAxis)if(b.isHorizontal()){if(!(Math.abs(s.pixelX)>Math.abs(s.pixelY)))return;a=s.pixelX*t}else{if(!(Math.abs(s.pixelY)>Math.abs(s.pixelX)))return;a=s.pixelY}else a=Math.abs(s.pixelX)>Math.abs(s.pixelY)?-s.pixelX*t:-s.pixelY;if(0!==a){if(b.params.mousewheelInvert&&(a=-a),b.params.freeMode){var i=b.getWrapperTranslate()+a*b.params.mousewheelSensitivity,r=b.isBeginning,n=b.isEnd;if(i>=b.minTranslate()&&(i=b.minTranslate()),i<=b.maxTranslate()&&(i=b.maxTranslate()),b.setWrapperTransition(0),b.setWrapperTranslate(i),b.updateProgress(),b.updateActiveIndex(),(!r&&b.isBeginning||!n&&b.isEnd)&&b.updateClasses(),b.params.freeModeSticky?(clearTimeout(b.mousewheel.timeout),b.mousewheel.timeout=setTimeout(function(){b.slideReset()},300)):b.params.lazyLoading&&b.lazy&&b.lazy.load(),b.emit("onScroll",b,e),b.params.autoplay&&b.params.autoplayDisableOnInteraction&&b.stopAutoplay(),0===i||i===b.maxTranslate())return}else{if((new window.Date).getTime()-b.mousewheel.lastScrollTime>60)if(a<0)if(b.isEnd&&!b.params.loop||b.animating){if(b.params.mousewheelReleaseOnEdges)return!0}else b.slideNext(),b.emit("onScroll",b,e);else if(b.isBeginning&&!b.params.loop||b.animating){if(b.params.mousewheelReleaseOnEdges)return!0}else b.slidePrev(),b.emit("onScroll",b,e);b.mousewheel.lastScrollTime=(new window.Date).getTime()}return e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function c(e){var a=10,t=40,s=800,i=0,r=0,n=0,o=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(i=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(i=r,r=0),n=i*a,o=r*a,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||o)&&e.deltaMode&&(1===e.deltaMode?(n*=t,o*=t):(n*=s,o*=s)),n&&!i&&(i=n<1?-1:1),o&&!r&&(r=o<1?-1:1),{spinX:i,spinY:r,pixelX:n,pixelY:o}}function m(e,t){e=a(e);var s,i,r,n=b.rtl?-1:1;s=e.attr("data-swiper-parallax")||"0",i=e.attr("data-swiper-parallax-x"),r=e.attr("data-swiper-parallax-y"),i||r?(i=i||"0",r=r||"0"):b.isHorizontal()?(i=s,r="0"):(r=s,i="0"),i=i.indexOf("%")>=0?parseInt(i,10)*t*n+"%":i*t*n+"px",r=r.indexOf("%")>=0?parseInt(r,10)*t+"%":r*t+"px",e.transform("translate3d("+i+", "+r+",0px)")}function h(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof t))return new t(e,i);var g={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,autoplayStopOnLast:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flip:{slideShadows:!0,limitRotation:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,zoom:!1,zoomMax:3,zoomMin:1,zoomToggle:!0,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,mousewheelEventsTarged:"container",hashnav:!1,hashnavWatchState:!1,history:!1,replaceState:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,uniqueNavElements:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,paginationProgressRender:null,paginationFractionRender:null,paginationCustomRender:null,paginationType:"bullets",resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingInPrevNextAmount:1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",normalizeSlideIndex:!0,allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationCurrentClass:"swiper-pagination-current",paginationTotalClass:"swiper-pagination-total",paginationHiddenClass:"swiper-pagination-hidden",paginationProgressbarClass:"swiper-pagination-progressbar",paginationClickableClass:"swiper-pagination-clickable",paginationModifierClass:"swiper-pagination-",lazyLoadingClass:"swiper-lazy",lazyStatusLoadingClass:"swiper-lazy-loading",lazyStatusLoadedClass:"swiper-lazy-loaded",lazyPreloaderClass:"swiper-lazy-preloader",notificationClass:"swiper-notification",preloaderClass:"preloader",zoomContainerClass:"swiper-zoom-container",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},f=i&&i.virtualTranslate;i=i||{};var v={};for(var w in i)if("object"!=typeof i[w]||null===i[w]||(i[w].nodeType||i[w]===window||i[w]===document||"undefined"!=typeof s&&i[w]instanceof s||"undefined"!=typeof jQuery&&i[w]instanceof jQuery))v[w]=i[w];else{v[w]={};for(var y in i[w])v[w][y]=i[w][y]}for(var x in g)if("undefined"==typeof i[x])i[x]=g[x];else if("object"==typeof i[x])for(var T in g[x])"undefined"==typeof i[x][T]&&(i[x][T]=g[x][T]);var b=this;if(b.params=i,b.originalParams=v,b.classNames=[],"undefined"!=typeof a&&"undefined"!=typeof s&&(a=s),("undefined"!=typeof a||(a="undefined"==typeof s?window.Dom7||window.Zepto||window.jQuery:s))&&(b.$=a,b.currentBreakpoint=void 0,b.getActiveBreakpoint=function(){if(!b.params.breakpoints)return!1;var e,a=!1,t=[];for(e in b.params.breakpoints)b.params.breakpoints.hasOwnProperty(e)&&t.push(e);t.sort(function(e,a){return parseInt(e,10)>parseInt(a,10)});for(var s=0;s=window.innerWidth&&!a&&(a=e);return a||"max"},b.setBreakpoint=function(){var e=b.getActiveBreakpoint();if(e&&b.currentBreakpoint!==e){var a=e in b.params.breakpoints?b.params.breakpoints[e]:b.originalParams,t=b.params.loop&&a.slidesPerView!==b.params.slidesPerView;for(var s in a)b.params[s]=a[s];b.currentBreakpoint=e,t&&b.destroyLoop&&b.reLoop(!0)}},b.params.breakpoints&&b.setBreakpoint(),b.container=a(e),0!==b.container.length)){if(b.container.length>1){var S=[];return b.container.each(function(){S.push(new t(this,i))}),S}b.container[0].swiper=b,b.container.data("swiper",b),b.classNames.push(b.params.containerModifierClass+b.params.direction),b.params.freeMode&&b.classNames.push(b.params.containerModifierClass+"free-mode"),b.support.flexbox||(b.classNames.push(b.params.containerModifierClass+"no-flexbox"),b.params.slidesPerColumn=1),b.params.autoHeight&&b.classNames.push(b.params.containerModifierClass+"autoheight"),(b.params.parallax||b.params.watchSlidesVisibility)&&(b.params.watchSlidesProgress=!0),b.params.touchReleaseOnEdges&&(b.params.resistanceRatio=0),["cube","coverflow","flip"].indexOf(b.params.effect)>=0&&(b.support.transforms3d?(b.params.watchSlidesProgress=!0,b.classNames.push(b.params.containerModifierClass+"3d")):b.params.effect="slide"),"slide"!==b.params.effect&&b.classNames.push(b.params.containerModifierClass+b.params.effect),"cube"===b.params.effect&&(b.params.resistanceRatio=0,b.params.slidesPerView=1,b.params.slidesPerColumn=1,b.params.slidesPerGroup=1,b.params.centeredSlides=!1,b.params.spaceBetween=0,b.params.virtualTranslate=!0,b.params.setWrapperSize=!1),"fade"!==b.params.effect&&"flip"!==b.params.effect||(b.params.slidesPerView=1,b.params.slidesPerColumn=1,b.params.slidesPerGroup=1,b.params.watchSlidesProgress=!0,b.params.spaceBetween=0,b.params.setWrapperSize=!1,"undefined"==typeof f&&(b.params.virtualTranslate=!0)),b.params.grabCursor&&b.support.touch&&(b.params.grabCursor=!1),b.wrapper=b.container.children("."+b.params.wrapperClass),b.params.pagination&&(b.paginationContainer=a(b.params.pagination),b.params.uniqueNavElements&&"string"==typeof b.params.pagination&&b.paginationContainer.length>1&&1===b.container.find(b.params.pagination).length&&(b.paginationContainer=b.container.find(b.params.pagination)),"bullets"===b.params.paginationType&&b.params.paginationClickable?b.paginationContainer.addClass(b.params.paginationModifierClass+"clickable"):b.params.paginationClickable=!1,b.paginationContainer.addClass(b.params.paginationModifierClass+b.params.paginationType)),(b.params.nextButton||b.params.prevButton)&&(b.params.nextButton&&(b.nextButton=a(b.params.nextButton),b.params.uniqueNavElements&&"string"==typeof b.params.nextButton&&b.nextButton.length>1&&1===b.container.find(b.params.nextButton).length&&(b.nextButton=b.container.find(b.params.nextButton))),b.params.prevButton&&(b.prevButton=a(b.params.prevButton),b.params.uniqueNavElements&&"string"==typeof b.params.prevButton&&b.prevButton.length>1&&1===b.container.find(b.params.prevButton).length&&(b.prevButton=b.container.find(b.params.prevButton)))),b.isHorizontal=function(){return"horizontal"===b.params.direction},b.rtl=b.isHorizontal()&&("rtl"===b.container[0].dir.toLowerCase()||"rtl"===b.container.css("direction")),b.rtl&&b.classNames.push(b.params.containerModifierClass+"rtl"),b.rtl&&(b.wrongRTL="-webkit-box"===b.wrapper.css("display")),b.params.slidesPerColumn>1&&b.classNames.push(b.params.containerModifierClass+"multirow"),b.device.android&&b.classNames.push(b.params.containerModifierClass+"android"),b.container.addClass(b.classNames.join(" ")),b.translate=0,b.progress=0,b.velocity=0,b.lockSwipeToNext=function(){b.params.allowSwipeToNext=!1,b.params.allowSwipeToPrev===!1&&b.params.grabCursor&&b.unsetGrabCursor()},b.lockSwipeToPrev=function(){b.params.allowSwipeToPrev=!1,b.params.allowSwipeToNext===!1&&b.params.grabCursor&&b.unsetGrabCursor()},b.lockSwipes=function(){b.params.allowSwipeToNext=b.params.allowSwipeToPrev=!1,b.params.grabCursor&&b.unsetGrabCursor()},b.unlockSwipeToNext=function(){b.params.allowSwipeToNext=!0,b.params.allowSwipeToPrev===!0&&b.params.grabCursor&&b.setGrabCursor()},b.unlockSwipeToPrev=function(){b.params.allowSwipeToPrev=!0,b.params.allowSwipeToNext===!0&&b.params.grabCursor&&b.setGrabCursor()},b.unlockSwipes=function(){b.params.allowSwipeToNext=b.params.allowSwipeToPrev=!0,b.params.grabCursor&&b.setGrabCursor()},b.setGrabCursor=function(e){b.container[0].style.cursor="move",b.container[0].style.cursor=e?"-webkit-grabbing":"-webkit-grab",b.container[0].style.cursor=e?"-moz-grabbin":"-moz-grab",b.container[0].style.cursor=e?"grabbing":"grab"},b.unsetGrabCursor=function(){b.container[0].style.cursor=""},b.params.grabCursor&&b.setGrabCursor(),b.imagesToLoad=[],b.imagesLoaded=0,b.loadImage=function(e,a,t,s,i,r){function n(){r&&r()}var o;e.complete&&i?n():a?(o=new window.Image,o.onload=n,o.onerror=n,s&&(o.sizes=s),t&&(o.srcset=t),a&&(o.src=a)):n()},b.preloadImages=function(){function e(){"undefined"!=typeof b&&null!==b&&b&&(void 0!==b.imagesLoaded&&b.imagesLoaded++,b.imagesLoaded===b.imagesToLoad.length&&(b.params.updateOnImagesReady&&b.update(),b.emit("onImagesReady",b)))}b.imagesToLoad=b.container.find("img");for(var a=0;a1)for(e=0;eb.slides.length)break;a.push(b.slides.eq(s)[0])}else a.push(b.slides.eq(b.activeIndex)[0]);for(e=0;et?i:t}t&&b.wrapper.css("height",t+"px")},b.updateContainerSize=function(){var e,a;e="undefined"!=typeof b.params.width?b.params.width:b.container[0].clientWidth,a="undefined"!=typeof b.params.height?b.params.height:b.container[0].clientHeight,0===e&&b.isHorizontal()||0===a&&!b.isHorizontal()||(e=e-parseInt(b.container.css("padding-left"),10)-parseInt(b.container.css("padding-right"),10),a=a-parseInt(b.container.css("padding-top"),10)-parseInt(b.container.css("padding-bottom"),10),b.width=e,b.height=a,b.size=b.isHorizontal()?b.width:b.height)},b.updateSlidesSize=function(){b.slides=b.wrapper.children("."+b.params.slideClass),b.snapGrid=[],b.slidesGrid=[],b.slidesSizesGrid=[];var e,a=b.params.spaceBetween,t=-b.params.slidesOffsetBefore,s=0,i=0;if("undefined"!=typeof b.size){"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a.replace("%",""))/100*b.size),b.virtualSize=-a,b.rtl?b.slides.css({marginLeft:"",marginTop:""}):b.slides.css({marginRight:"",marginBottom:""});var n;b.params.slidesPerColumn>1&&(n=Math.floor(b.slides.length/b.params.slidesPerColumn)===b.slides.length/b.params.slidesPerColumn?b.slides.length:Math.ceil(b.slides.length/b.params.slidesPerColumn)*b.params.slidesPerColumn,"auto"!==b.params.slidesPerView&&"row"===b.params.slidesPerColumnFill&&(n=Math.max(n,b.params.slidesPerView*b.params.slidesPerColumn)));var o,l=b.params.slidesPerColumn,p=n/l,d=p-(b.params.slidesPerColumn*p-b.slides.length);for(e=0;e1){var c,m,h;"column"===b.params.slidesPerColumnFill?(m=Math.floor(e/l),h=e-m*l,(m>d||m===d&&h===l-1)&&++h>=l&&(h=0,m++),c=m+h*n/l,u.css({"-webkit-box-ordinal-group":c,"-moz-box-ordinal-group":c,"-ms-flex-order":c,"-webkit-order":c,order:c})):(h=Math.floor(e/p),m=e-h*p),u.css("margin-"+(b.isHorizontal()?"top":"left"),0!==h&&b.params.spaceBetween&&b.params.spaceBetween+"px").attr("data-swiper-column",m).attr("data-swiper-row",h)}"none"!==u.css("display")&&("auto"===b.params.slidesPerView?(o=b.isHorizontal()?u.outerWidth(!0):u.outerHeight(!0),b.params.roundLengths&&(o=r(o))):(o=(b.size-(b.params.slidesPerView-1)*a)/b.params.slidesPerView,b.params.roundLengths&&(o=r(o)),b.isHorizontal()?b.slides[e].style.width=o+"px":b.slides[e].style.height=o+"px"),b.slides[e].swiperSlideSize=o,b.slidesSizesGrid.push(o),b.params.centeredSlides?(t=t+o/2+s/2+a,0===e&&(t=t-b.size/2-a),Math.abs(t)<.001&&(t=0),i%b.params.slidesPerGroup===0&&b.snapGrid.push(t),b.slidesGrid.push(t)):(i%b.params.slidesPerGroup===0&&b.snapGrid.push(t),b.slidesGrid.push(t),t=t+o+a),b.virtualSize+=o+a,s=o,i++)}b.virtualSize=Math.max(b.virtualSize,b.size)+b.params.slidesOffsetAfter;var g;if(b.rtl&&b.wrongRTL&&("slide"===b.params.effect||"coverflow"===b.params.effect)&&b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}),b.support.flexbox&&!b.params.setWrapperSize||(b.isHorizontal()?b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}):b.wrapper.css({height:b.virtualSize+b.params.spaceBetween+"px"})),b.params.slidesPerColumn>1&&(b.virtualSize=(o+b.params.spaceBetween)*n,b.virtualSize=Math.ceil(b.virtualSize/b.params.slidesPerColumn)-b.params.spaceBetween,b.isHorizontal()?b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}):b.wrapper.css({height:b.virtualSize+b.params.spaceBetween+"px"}),b.params.centeredSlides)){for(g=[],e=0;e1&&b.snapGrid.push(b.virtualSize-b.size)}0===b.snapGrid.length&&(b.snapGrid=[0]),0!==b.params.spaceBetween&&(b.isHorizontal()?b.rtl?b.slides.css({marginLeft:a+"px"}):b.slides.css({marginRight:a+"px"}):b.slides.css({marginBottom:a+"px"})),b.params.watchSlidesProgress&&b.updateSlidesOffset()}},b.updateSlidesOffset=function(){for(var e=0;eb.size&&(s=!0));for(a=b.activeIndex-1;a>=0;a--)b.slides[a]&&!s&&(i+=b.slides[a].swiperSlideSize,t++,i>b.size&&(s=!0))}else for(e=b.activeIndex+1;e=0&&r0&&n<=b.size||r<=0&&n>=b.size;o&&b.slides.eq(t).addClass(b.params.slideVisibleClass)}s.progress=b.rtl?-i:i}}},b.updateProgress=function(e){"undefined"==typeof e&&(e=b.translate||0);var a=b.maxTranslate()-b.minTranslate(),t=b.isBeginning,s=b.isEnd;0===a?(b.progress=0,b.isBeginning=b.isEnd=!0):(b.progress=(e-b.minTranslate())/a,b.isBeginning=b.progress<=0,b.isEnd=b.progress>=1),b.isBeginning&&!t&&b.emit("onReachBeginning",b),b.isEnd&&!s&&b.emit("onReachEnd",b),b.params.watchSlidesProgress&&b.updateSlidesProgress(e),b.emit("onProgress",b,b.progress)},b.updateActiveIndex=function(){var e,a,t,s=b.rtl?b.translate:-b.translate;for(a=0;a=b.slidesGrid[a]&&s=b.slidesGrid[a]&&s=b.slidesGrid[a]&&(e=a);b.params.normalizeSlideIndex&&(e<0||"undefined"==typeof e)&&(e=0),t=Math.floor(e/b.params.slidesPerGroup),t>=b.snapGrid.length&&(t=b.snapGrid.length-1),e!==b.activeIndex&&(b.snapIndex=t,b.previousIndex=b.activeIndex,b.activeIndex=e,b.updateClasses(),b.updateRealIndex())},b.updateRealIndex=function(){b.realIndex=parseInt(b.slides.eq(b.activeIndex).attr("data-swiper-slide-index")||b.activeIndex,10)},b.updateClasses=function(){b.slides.removeClass(b.params.slideActiveClass+" "+b.params.slideNextClass+" "+b.params.slidePrevClass+" "+b.params.slideDuplicateActiveClass+" "+b.params.slideDuplicateNextClass+" "+b.params.slideDuplicatePrevClass);var e=b.slides.eq(b.activeIndex);e.addClass(b.params.slideActiveClass),i.loop&&(e.hasClass(b.params.slideDuplicateClass)?b.wrapper.children("."+b.params.slideClass+":not(."+b.params.slideDuplicateClass+')[data-swiper-slide-index="'+b.realIndex+'"]').addClass(b.params.slideDuplicateActiveClass):b.wrapper.children("."+b.params.slideClass+"."+b.params.slideDuplicateClass+'[data-swiper-slide-index="'+b.realIndex+'"]').addClass(b.params.slideDuplicateActiveClass));var t=e.next("."+b.params.slideClass).addClass(b.params.slideNextClass);b.params.loop&&0===t.length&&(t=b.slides.eq(0),t.addClass(b.params.slideNextClass));var s=e.prev("."+b.params.slideClass).addClass(b.params.slidePrevClass);if(b.params.loop&&0===s.length&&(s=b.slides.eq(-1),s.addClass(b.params.slidePrevClass)),i.loop&&(t.hasClass(b.params.slideDuplicateClass)?b.wrapper.children("."+b.params.slideClass+":not(."+b.params.slideDuplicateClass+')[data-swiper-slide-index="'+t.attr("data-swiper-slide-index")+'"]').addClass(b.params.slideDuplicateNextClass):b.wrapper.children("."+b.params.slideClass+"."+b.params.slideDuplicateClass+'[data-swiper-slide-index="'+t.attr("data-swiper-slide-index")+'"]').addClass(b.params.slideDuplicateNextClass),s.hasClass(b.params.slideDuplicateClass)?b.wrapper.children("."+b.params.slideClass+":not(."+b.params.slideDuplicateClass+')[data-swiper-slide-index="'+s.attr("data-swiper-slide-index")+'"]').addClass(b.params.slideDuplicatePrevClass):b.wrapper.children("."+b.params.slideClass+"."+b.params.slideDuplicateClass+'[data-swiper-slide-index="'+s.attr("data-swiper-slide-index")+'"]').addClass(b.params.slideDuplicatePrevClass)),b.paginationContainer&&b.paginationContainer.length>0){var r,n=b.params.loop?Math.ceil((b.slides.length-2*b.loopedSlides)/b.params.slidesPerGroup):b.snapGrid.length;if(b.params.loop?(r=Math.ceil((b.activeIndex-b.loopedSlides)/b.params.slidesPerGroup),r>b.slides.length-1-2*b.loopedSlides&&(r-=b.slides.length-2*b.loopedSlides),r>n-1&&(r-=n),r<0&&"bullets"!==b.params.paginationType&&(r=n+r)):r="undefined"!=typeof b.snapIndex?b.snapIndex:b.activeIndex||0,"bullets"===b.params.paginationType&&b.bullets&&b.bullets.length>0&&(b.bullets.removeClass(b.params.bulletActiveClass),b.paginationContainer.length>1?b.bullets.each(function(){a(this).index()===r&&a(this).addClass(b.params.bulletActiveClass)}):b.bullets.eq(r).addClass(b.params.bulletActiveClass)),"fraction"===b.params.paginationType&&(b.paginationContainer.find("."+b.params.paginationCurrentClass).text(r+1),b.paginationContainer.find("."+b.params.paginationTotalClass).text(n)),"progress"===b.params.paginationType){var o=(r+1)/n,l=o,p=1;b.isHorizontal()||(p=o,l=1),b.paginationContainer.find("."+b.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX("+l+") scaleY("+p+")").transition(b.params.speed)}"custom"===b.params.paginationType&&b.params.paginationCustomRender&&(b.paginationContainer.html(b.params.paginationCustomRender(b,r+1,n)),b.emit("onPaginationRendered",b,b.paginationContainer[0]))}b.params.loop||(b.params.prevButton&&b.prevButton&&b.prevButton.length>0&&(b.isBeginning?(b.prevButton.addClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.disable(b.prevButton)):(b.prevButton.removeClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.enable(b.prevButton))),b.params.nextButton&&b.nextButton&&b.nextButton.length>0&&(b.isEnd?(b.nextButton.addClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.disable(b.nextButton)):(b.nextButton.removeClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.enable(b.nextButton))))},b.updatePagination=function(){if(b.params.pagination&&b.paginationContainer&&b.paginationContainer.length>0){var e="";if("bullets"===b.params.paginationType){for(var a=b.params.loop?Math.ceil((b.slides.length-2*b.loopedSlides)/b.params.slidesPerGroup):b.snapGrid.length,t=0;t";b.paginationContainer.html(e),b.bullets=b.paginationContainer.find("."+b.params.bulletClass),b.params.paginationClickable&&b.params.a11y&&b.a11y&&b.a11y.initPagination()}"fraction"===b.params.paginationType&&(e=b.params.paginationFractionRender?b.params.paginationFractionRender(b,b.params.paginationCurrentClass,b.params.paginationTotalClass):' / ',b.paginationContainer.html(e)),"progress"===b.params.paginationType&&(e=b.params.paginationProgressRender?b.params.paginationProgressRender(b,b.params.paginationProgressbarClass):'',b.paginationContainer.html(e)),"custom"!==b.params.paginationType&&b.emit("onPaginationRendered",b,b.paginationContainer[0])}},b.update=function(e){function a(){b.rtl?-b.translate:b.translate;s=Math.min(Math.max(b.translate,b.maxTranslate()),b.minTranslate()),b.setWrapperTranslate(s),b.updateActiveIndex(),b.updateClasses()}if(b)if(b.updateContainerSize(),b.updateSlidesSize(),b.updateProgress(),b.updatePagination(),b.updateClasses(),b.params.scrollbar&&b.scrollbar&&b.scrollbar.set(),e){var t,s;b.controller&&b.controller.spline&&(b.controller.spline=void 0),b.params.freeMode?(a(),b.params.autoHeight&&b.updateAutoHeight()):(t=("auto"===b.params.slidesPerView||b.params.slidesPerView>1)&&b.isEnd&&!b.params.centeredSlides?b.slideTo(b.slides.length-1,0,!1,!0):b.slideTo(b.activeIndex,0,!1,!0),t||a())}else b.params.autoHeight&&b.updateAutoHeight()},b.onResize=function(e){b.params.breakpoints&&b.setBreakpoint();var a=b.params.allowSwipeToPrev,t=b.params.allowSwipeToNext;b.params.allowSwipeToPrev=b.params.allowSwipeToNext=!0,b.updateContainerSize(),b.updateSlidesSize(),("auto"===b.params.slidesPerView||b.params.freeMode||e)&&b.updatePagination(),b.params.scrollbar&&b.scrollbar&&b.scrollbar.set(),b.controller&&b.controller.spline&&(b.controller.spline=void 0);var s=!1;if(b.params.freeMode){var i=Math.min(Math.max(b.translate,b.maxTranslate()),b.minTranslate());b.setWrapperTranslate(i),b.updateActiveIndex(),b.updateClasses(),b.params.autoHeight&&b.updateAutoHeight()}else b.updateClasses(),s=("auto"===b.params.slidesPerView||b.params.slidesPerView>1)&&b.isEnd&&!b.params.centeredSlides?b.slideTo(b.slides.length-1,0,!1,!0):b.slideTo(b.activeIndex,0,!1,!0);b.params.lazyLoading&&!s&&b.lazy&&b.lazy.load(),b.params.allowSwipeToPrev=a,b.params.allowSwipeToNext=t},b.touchEventsDesktop={start:"mousedown",move:"mousemove",end:"mouseup"},window.navigator.pointerEnabled?b.touchEventsDesktop={start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled&&(b.touchEventsDesktop={start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}),b.touchEvents={start:b.support.touch||!b.params.simulateTouch?"touchstart":b.touchEventsDesktop.start,move:b.support.touch||!b.params.simulateTouch?"touchmove":b.touchEventsDesktop.move,end:b.support.touch||!b.params.simulateTouch?"touchend":b.touchEventsDesktop.end},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===b.params.touchEventsTarget?b.container:b.wrapper).addClass("swiper-wp8-"+b.params.direction),b.initEvents=function(e){var a=e?"off":"on",t=e?"removeEventListener":"addEventListener",s="container"===b.params.touchEventsTarget?b.container[0]:b.wrapper[0],r=b.support.touch?s:document,n=!!b.params.nested;if(b.browser.ie)s[t](b.touchEvents.start,b.onTouchStart,!1),r[t](b.touchEvents.move,b.onTouchMove,n),r[t](b.touchEvents.end,b.onTouchEnd,!1);else{if(b.support.touch){var o=!("touchstart"!==b.touchEvents.start||!b.support.passiveListener||!b.params.passiveListeners)&&{passive:!0,capture:!1};s[t](b.touchEvents.start,b.onTouchStart,o),s[t](b.touchEvents.move,b.onTouchMove,n),s[t](b.touchEvents.end,b.onTouchEnd,o)}(i.simulateTouch&&!b.device.ios&&!b.device.android||i.simulateTouch&&!b.support.touch&&b.device.ios)&&(s[t]("mousedown",b.onTouchStart,!1),document[t]("mousemove",b.onTouchMove,n),document[t]("mouseup",b.onTouchEnd,!1))}window[t]("resize",b.onResize),b.params.nextButton&&b.nextButton&&b.nextButton.length>0&&(b.nextButton[a]("click",b.onClickNext),b.params.a11y&&b.a11y&&b.nextButton[a]("keydown",b.a11y.onEnterKey)),b.params.prevButton&&b.prevButton&&b.prevButton.length>0&&(b.prevButton[a]("click",b.onClickPrev),b.params.a11y&&b.a11y&&b.prevButton[a]("keydown",b.a11y.onEnterKey)),b.params.pagination&&b.params.paginationClickable&&(b.paginationContainer[a]("click","."+b.params.bulletClass,b.onClickIndex),b.params.a11y&&b.a11y&&b.paginationContainer[a]("keydown","."+b.params.bulletClass,b.a11y.onEnterKey)),(b.params.preventClicks||b.params.preventClicksPropagation)&&s[t]("click",b.preventClicks,!0); +},b.attachEvents=function(){b.initEvents()},b.detachEvents=function(){b.initEvents(!0)},b.allowClick=!0,b.preventClicks=function(e){b.allowClick||(b.params.preventClicks&&e.preventDefault(),b.params.preventClicksPropagation&&b.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},b.onClickNext=function(e){e.preventDefault(),b.isEnd&&!b.params.loop||b.slideNext()},b.onClickPrev=function(e){e.preventDefault(),b.isBeginning&&!b.params.loop||b.slidePrev()},b.onClickIndex=function(e){e.preventDefault();var t=a(this).index()*b.params.slidesPerGroup;b.params.loop&&(t+=b.loopedSlides),b.slideTo(t)},b.updateClickedSlide=function(e){var t=o(e,"."+b.params.slideClass),s=!1;if(t)for(var i=0;ib.slides.length-b.loopedSlides+l/2?(b.fixLoop(),n=b.wrapper.children("."+b.params.slideClass+'[data-swiper-slide-index="'+r+'"]:not(.'+b.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){b.slideTo(n)},0)):b.slideTo(n):n>b.slides.length-l?(b.fixLoop(),n=b.wrapper.children("."+b.params.slideClass+'[data-swiper-slide-index="'+r+'"]:not(.'+b.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){b.slideTo(n)},0)):b.slideTo(n)}else b.slideTo(n)}};var C,z,M,E,P,I,k,L,D,B,H="input, select, textarea, button, video",G=Date.now(),X=[];b.animating=!1,b.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var Y,A;b.onTouchStart=function(e){if(e.originalEvent&&(e=e.originalEvent),Y="touchstart"===e.type,Y||!("which"in e)||3!==e.which){if(b.params.noSwiping&&o(e,"."+b.params.noSwipingClass))return void(b.allowClick=!0);if(!b.params.swipeHandler||o(e,b.params.swipeHandler)){var t=b.touches.currentX="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,s=b.touches.currentY="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY;if(!(b.device.ios&&b.params.iOSEdgeSwipeDetection&&t<=b.params.iOSEdgeSwipeThreshold)){if(C=!0,z=!1,M=!0,P=void 0,A=void 0,b.touches.startX=t,b.touches.startY=s,E=Date.now(),b.allowClick=!0,b.updateContainerSize(),b.swipeDirection=void 0,b.params.threshold>0&&(L=!1),"touchstart"!==e.type){var i=!0;a(e.target).is(H)&&(i=!1),document.activeElement&&a(document.activeElement).is(H)&&document.activeElement.blur(),i&&e.preventDefault()}b.emit("onTouchStart",b,e)}}}},b.onTouchMove=function(e){if(e.originalEvent&&(e=e.originalEvent),!Y||"mousemove"!==e.type){if(e.preventedByNestedSwiper)return b.touches.startX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,void(b.touches.startY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY);if(b.params.onlyExternal)return b.allowClick=!1,void(C&&(b.touches.startX=b.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,b.touches.startY=b.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,E=Date.now()));if(Y&&b.params.touchReleaseOnEdges&&!b.params.loop)if(b.isHorizontal()){if(b.touches.currentXb.touches.startX&&b.translate>=b.minTranslate())return}else if(b.touches.currentYb.touches.startY&&b.translate>=b.minTranslate())return;if(Y&&document.activeElement&&e.target===document.activeElement&&a(e.target).is(H))return z=!0,void(b.allowClick=!1);if(M&&b.emit("onTouchMove",b,e),!(e.targetTouches&&e.targetTouches.length>1)){if(b.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,b.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,"undefined"==typeof P){var t;b.isHorizontal()&&b.touches.currentY===b.touches.startY||!b.isHorizontal()&&b.touches.currentX===b.touches.startX?P=!1:(t=180*Math.atan2(Math.abs(b.touches.currentY-b.touches.startY),Math.abs(b.touches.currentX-b.touches.startX))/Math.PI,P=b.isHorizontal()?t>b.params.touchAngle:90-t>b.params.touchAngle)}if(P&&b.emit("onTouchMoveOpposite",b,e),"undefined"==typeof A&&b.browser.ieTouch&&(b.touches.currentX===b.touches.startX&&b.touches.currentY===b.touches.startY||(A=!0)),C){if(P)return void(C=!1);if(A||!b.browser.ieTouch){b.allowClick=!1,b.emit("onSliderMove",b,e),e.preventDefault(),b.params.touchMoveStopPropagation&&!b.params.nested&&e.stopPropagation(),z||(i.loop&&b.fixLoop(),k=b.getWrapperTranslate(),b.setWrapperTransition(0),b.animating&&b.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),b.params.autoplay&&b.autoplaying&&(b.params.autoplayDisableOnInteraction?b.stopAutoplay():b.pauseAutoplay()),B=!1,!b.params.grabCursor||b.params.allowSwipeToNext!==!0&&b.params.allowSwipeToPrev!==!0||b.setGrabCursor(!0)),z=!0;var s=b.touches.diff=b.isHorizontal()?b.touches.currentX-b.touches.startX:b.touches.currentY-b.touches.startY;s*=b.params.touchRatio,b.rtl&&(s=-s),b.swipeDirection=s>0?"prev":"next",I=s+k;var r=!0;if(s>0&&I>b.minTranslate()?(r=!1,b.params.resistance&&(I=b.minTranslate()-1+Math.pow(-b.minTranslate()+k+s,b.params.resistanceRatio))):s<0&&Ik&&(I=k),b.params.threshold>0){if(!(Math.abs(s)>b.params.threshold||L))return void(I=k);if(!L)return L=!0,b.touches.startX=b.touches.currentX,b.touches.startY=b.touches.currentY,I=k,void(b.touches.diff=b.isHorizontal()?b.touches.currentX-b.touches.startX:b.touches.currentY-b.touches.startY)}b.params.followFinger&&((b.params.freeMode||b.params.watchSlidesProgress)&&b.updateActiveIndex(),b.params.freeMode&&(0===X.length&&X.push({position:b.touches[b.isHorizontal()?"startX":"startY"],time:E}),X.push({position:b.touches[b.isHorizontal()?"currentX":"currentY"],time:(new window.Date).getTime()})),b.updateProgress(I),b.setWrapperTranslate(I))}}}}},b.onTouchEnd=function(e){if(e.originalEvent&&(e=e.originalEvent),M&&b.emit("onTouchEnd",b,e),M=!1,C){b.params.grabCursor&&z&&C&&(b.params.allowSwipeToNext===!0||b.params.allowSwipeToPrev===!0)&&b.setGrabCursor(!1);var t=Date.now(),s=t-E;if(b.allowClick&&(b.updateClickedSlide(e),b.emit("onTap",b,e),s<300&&t-G>300&&(D&&clearTimeout(D),D=setTimeout(function(){b&&(b.params.paginationHide&&b.paginationContainer.length>0&&!a(e.target).hasClass(b.params.bulletClass)&&b.paginationContainer.toggleClass(b.params.paginationHiddenClass),b.emit("onClick",b,e))},300)),s<300&&t-G<300&&(D&&clearTimeout(D),b.emit("onDoubleTap",b,e))),G=Date.now(),setTimeout(function(){b&&(b.allowClick=!0)},0),!C||!z||!b.swipeDirection||0===b.touches.diff||I===k)return void(C=z=!1);C=z=!1;var i;if(i=b.params.followFinger?b.rtl?b.translate:-b.translate:-I,b.params.freeMode){if(i<-b.minTranslate())return void b.slideTo(b.activeIndex);if(i>-b.maxTranslate())return void(b.slides.length1){var r=X.pop(),n=X.pop(),o=r.position-n.position,l=r.time-n.time;b.velocity=o/l,b.velocity=b.velocity/2,Math.abs(b.velocity)150||(new window.Date).getTime()-r.time>300)&&(b.velocity=0)}else b.velocity=0;b.velocity=b.velocity*b.params.freeModeMomentumVelocityRatio,X.length=0;var p=1e3*b.params.freeModeMomentumRatio,d=b.velocity*p,u=b.translate+d;b.rtl&&(u=-u);var c,m=!1,h=20*Math.abs(b.velocity)*b.params.freeModeMomentumBounceRatio;if(ub.minTranslate())b.params.freeModeMomentumBounce?(u-b.minTranslate()>h&&(u=b.minTranslate()+h),c=b.minTranslate(),m=!0,B=!0):u=b.minTranslate();else if(b.params.freeModeSticky){var g,f=0;for(f=0;f-u){g=f;break}u=Math.abs(b.snapGrid[g]-u)=b.params.longSwipesMs)&&(b.updateProgress(),b.updateActiveIndex()))}var v,w=0,y=b.slidesSizesGrid[0];for(v=0;v=b.slidesGrid[v]&&i=b.slidesGrid[v]&&(w=v,y=b.slidesGrid[b.slidesGrid.length-1]-b.slidesGrid[b.slidesGrid.length-2]);var x=(i-b.slidesGrid[w])/y;if(s>b.params.longSwipesMs){if(!b.params.longSwipes)return void b.slideTo(b.activeIndex);"next"===b.swipeDirection&&(x>=b.params.longSwipesRatio?b.slideTo(w+b.params.slidesPerGroup):b.slideTo(w)),"prev"===b.swipeDirection&&(x>1-b.params.longSwipesRatio?b.slideTo(w+b.params.slidesPerGroup):b.slideTo(w))}else{if(!b.params.shortSwipes)return void b.slideTo(b.activeIndex);"next"===b.swipeDirection&&b.slideTo(w+b.params.slidesPerGroup),"prev"===b.swipeDirection&&b.slideTo(w)}}},b._slideTo=function(e,a){return b.slideTo(e,a,!0,!0)},b.slideTo=function(e,a,t,s){"undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=0),e<0&&(e=0),b.snapIndex=Math.floor(e/b.params.slidesPerGroup),b.snapIndex>=b.snapGrid.length&&(b.snapIndex=b.snapGrid.length-1);var i=-b.snapGrid[b.snapIndex];if(b.params.autoplay&&b.autoplaying&&(s||!b.params.autoplayDisableOnInteraction?b.pauseAutoplay(a):b.stopAutoplay()),b.updateProgress(i),b.params.normalizeSlideIndex)for(var r=0;r=Math.floor(100*b.slidesGrid[r])&&(e=r);return!(!b.params.allowSwipeToNext&&ib.translate&&i>b.maxTranslate()&&(b.activeIndex||0)!==e)&&("undefined"==typeof a&&(a=b.params.speed),b.previousIndex=b.activeIndex||0,b.activeIndex=e,b.updateRealIndex(),b.rtl&&-i===b.translate||!b.rtl&&i===b.translate?(b.params.autoHeight&&b.updateAutoHeight(),b.updateClasses(),"slide"!==b.params.effect&&b.setWrapperTranslate(i),!1):(b.updateClasses(),b.onTransitionStart(t),0===a||b.browser.lteIE9?(b.setWrapperTranslate(i),b.setWrapperTransition(0),b.onTransitionEnd(t)):(b.setWrapperTranslate(i),b.setWrapperTransition(a),b.animating||(b.animating=!0,b.wrapper.transitionEnd(function(){b&&b.onTransitionEnd(t)}))),!0)))},b.onTransitionStart=function(e){"undefined"==typeof e&&(e=!0),b.params.autoHeight&&b.updateAutoHeight(),b.lazy&&b.lazy.onTransitionStart(),e&&(b.emit("onTransitionStart",b),b.activeIndex!==b.previousIndex&&(b.emit("onSlideChangeStart",b),b.activeIndex>b.previousIndex?b.emit("onSlideNextStart",b):b.emit("onSlidePrevStart",b)))},b.onTransitionEnd=function(e){b.animating=!1,b.setWrapperTransition(0),"undefined"==typeof e&&(e=!0),b.lazy&&b.lazy.onTransitionEnd(),e&&(b.emit("onTransitionEnd",b),b.activeIndex!==b.previousIndex&&(b.emit("onSlideChangeEnd",b),b.activeIndex>b.previousIndex?b.emit("onSlideNextEnd",b):b.emit("onSlidePrevEnd",b))),b.params.history&&b.history&&b.history.setHistory(b.params.history,b.activeIndex),b.params.hashnav&&b.hashnav&&b.hashnav.setHash()},b.slideNext=function(e,a,t){if(b.params.loop){if(b.animating)return!1;b.fixLoop();b.container[0].clientLeft;return b.slideTo(b.activeIndex+b.params.slidesPerGroup,a,e,t)}return b.slideTo(b.activeIndex+b.params.slidesPerGroup,a,e,t)},b._slideNext=function(e){return b.slideNext(!0,e,!0)},b.slidePrev=function(e,a,t){if(b.params.loop){if(b.animating)return!1;b.fixLoop();b.container[0].clientLeft;return b.slideTo(b.activeIndex-1,a,e,t)}return b.slideTo(b.activeIndex-1,a,e,t)},b._slidePrev=function(e){return b.slidePrev(!0,e,!0)},b.slideReset=function(e,a,t){return b.slideTo(b.activeIndex,a,e)},b.disableTouchControl=function(){return b.params.onlyExternal=!0,!0},b.enableTouchControl=function(){return b.params.onlyExternal=!1,!0},b.setWrapperTransition=function(e,a){b.wrapper.transition(e),"slide"!==b.params.effect&&b.effects[b.params.effect]&&b.effects[b.params.effect].setTransition(e),b.params.parallax&&b.parallax&&b.parallax.setTransition(e),b.params.scrollbar&&b.scrollbar&&b.scrollbar.setTransition(e),b.params.control&&b.controller&&b.controller.setTransition(e,a),b.emit("onSetTransition",b,e)},b.setWrapperTranslate=function(e,a,t){var s=0,i=0,n=0;b.isHorizontal()?s=b.rtl?-e:e:i=e,b.params.roundLengths&&(s=r(s),i=r(i)),b.params.virtualTranslate||(b.support.transforms3d?b.wrapper.transform("translate3d("+s+"px, "+i+"px, "+n+"px)"):b.wrapper.transform("translate("+s+"px, "+i+"px)")),b.translate=b.isHorizontal()?s:i;var o,l=b.maxTranslate()-b.minTranslate();o=0===l?0:(e-b.minTranslate())/l,o!==b.progress&&b.updateProgress(e),a&&b.updateActiveIndex(),"slide"!==b.params.effect&&b.effects[b.params.effect]&&b.effects[b.params.effect].setTranslate(b.translate),b.params.parallax&&b.parallax&&b.parallax.setTranslate(b.translate),b.params.scrollbar&&b.scrollbar&&b.scrollbar.setTranslate(b.translate),b.params.control&&b.controller&&b.controller.setTranslate(b.translate,t),b.emit("onSetTranslate",b,b.translate)},b.getTranslate=function(e,a){var t,s,i,r;return"undefined"==typeof a&&(a="x"),b.params.virtualTranslate?b.rtl?-b.translate:b.translate:(i=window.getComputedStyle(e,null),window.WebKitCSSMatrix?(s=i.transform||i.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),r=new window.WebKitCSSMatrix("none"===s?"":s)):(r=i.MozTransform||i.OTransform||i.MsTransform||i.msTransform||i.transform||i.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),t=r.toString().split(",")),"x"===a&&(s=window.WebKitCSSMatrix?r.m41:16===t.length?parseFloat(t[12]):parseFloat(t[4])),"y"===a&&(s=window.WebKitCSSMatrix?r.m42:16===t.length?parseFloat(t[13]):parseFloat(t[5])),b.rtl&&s&&(s=-s),s||0)},b.getWrapperTranslate=function(e){return"undefined"==typeof e&&(e=b.isHorizontal()?"x":"y"),b.getTranslate(b.wrapper[0],e)},b.observers=[],b.initObservers=function(){if(b.params.observeParents)for(var e=b.container.parents(),a=0;ae.length&&(b.loopedSlides=e.length);var t,s=[],i=[];for(e.each(function(t,r){var n=a(this);t=e.length-b.loopedSlides&&s.push(r),n.attr("data-swiper-slide-index",t)}),t=0;t=0;t--)b.wrapper.prepend(a(s[t].cloneNode(!0)).addClass(b.params.slideDuplicateClass))},b.destroyLoop=function(){b.wrapper.children("."+b.params.slideClass+"."+b.params.slideDuplicateClass).remove(),b.slides.removeAttr("data-swiper-slide-index")},b.reLoop=function(e){var a=b.activeIndex-b.loopedSlides;b.destroyLoop(),b.createLoop(),b.updateSlidesSize(),e&&b.slideTo(a+b.loopedSlides,0,!1)},b.fixLoop=function(){var e;b.activeIndex=2*b.loopedSlides||b.activeIndex>b.slides.length-2*b.params.slidesPerView)&&(e=-b.slides.length+b.activeIndex+b.loopedSlides,e+=b.loopedSlides,b.slideTo(e,0,!1,!0))},b.appendSlide=function(e){if(b.params.loop&&b.destroyLoop(),"object"==typeof e&&e.length)for(var a=0;a'),t.append(d)),0===u.length&&(u=a('
'),t.append(u)),d.length&&(d[0].style.opacity=Math.max(-s,0)),u.length&&(u[0].style.opacity=Math.max(s,0))}t.transform("translate3d("+l+"px, "+p+"px, 0px) rotateX("+o+"deg) rotateY("+n+"deg)")}},setTransition:function(e){if(b.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),b.params.virtualTranslate&&0!==e){var t=!1;b.slides.eq(b.activeIndex).transitionEnd(function(){if(!t&&b&&a(this).hasClass(b.params.slideActiveClass)){t=!0,b.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],s=0;s'),b.wrapper.append(e)),e.css({height:b.width+"px"})):(e=b.container.find(".swiper-cube-shadow"),0===e.length&&(e=a('
'),b.container.append(e))));for(var s=0;s-1&&(t=90*s+90*o,b.rtl&&(t=90*-s-90*o)),i.transform(u),b.params.cube.slideShadows){var c=b.isHorizontal()?i.find(".swiper-slide-shadow-left"):i.find(".swiper-slide-shadow-top"),m=b.isHorizontal()?i.find(".swiper-slide-shadow-right"):i.find(".swiper-slide-shadow-bottom");0===c.length&&(c=a('
'),i.append(c)),0===m.length&&(m=a('
'),i.append(m)),c.length&&(c[0].style.opacity=Math.max(-o,0)),m.length&&(m[0].style.opacity=Math.max(o,0))}}if(b.wrapper.css({"-webkit-transform-origin":"50% 50% -"+b.size/2+"px","-moz-transform-origin":"50% 50% -"+b.size/2+"px","-ms-transform-origin":"50% 50% -"+b.size/2+"px","transform-origin":"50% 50% -"+b.size/2+"px"}),b.params.cube.shadow)if(b.isHorizontal())e.transform("translate3d(0px, "+(b.width/2+b.params.cube.shadowOffset)+"px, "+-b.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+b.params.cube.shadowScale+")");else{var h=Math.abs(t)-90*Math.floor(Math.abs(t)/90),g=1.5-(Math.sin(2*h*Math.PI/360)/2+Math.cos(2*h*Math.PI/360)/2),f=b.params.cube.shadowScale,v=b.params.cube.shadowScale/g,w=b.params.cube.shadowOffset;e.transform("scale3d("+f+", 1, "+v+") translate3d(0px, "+(b.height/2+w)+"px, "+-b.height/2/v+"px) rotateX(-90deg)")}var y=b.isSafari||b.isUiWebView?-b.size/2:0;b.wrapper.transform("translate3d(0px,0,"+y+"px) rotateX("+(b.isHorizontal()?0:t)+"deg) rotateY("+(b.isHorizontal()?-t:0)+"deg)")},setTransition:function(e){b.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),b.params.cube.shadow&&!b.isHorizontal()&&b.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var e=b.translate,t=b.isHorizontal()?-e+b.width/2:-e+b.height/2,s=b.isHorizontal()?b.params.coverflow.rotate:-b.params.coverflow.rotate,i=b.params.coverflow.depth,r=0,n=b.slides.length;r'),o.append(v)),0===w.length&&(w=a('
'),o.append(w)),v.length&&(v[0].style.opacity=d>0?d:0),w.length&&(w[0].style.opacity=-d>0?-d:0)}}if(b.browser.ie){var y=b.wrapper[0].style;y.perspectiveOrigin=t+"px 50%"}},setTransition:function(e){b.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},b.lazy={initialImageLoaded:!1,loadImageInSlide:function(e,t){if("undefined"!=typeof e&&("undefined"==typeof t&&(t=!0),0!==b.slides.length)){var s=b.slides.eq(e),i=s.find("."+b.params.lazyLoadingClass+":not(."+b.params.lazyStatusLoadedClass+"):not(."+b.params.lazyStatusLoadingClass+")");!s.hasClass(b.params.lazyLoadingClass)||s.hasClass(b.params.lazyStatusLoadedClass)||s.hasClass(b.params.lazyStatusLoadingClass)||(i=i.add(s[0])),0!==i.length&&i.each(function(){var e=a(this);e.addClass(b.params.lazyStatusLoadingClass);var i=e.attr("data-background"),r=e.attr("data-src"),n=e.attr("data-srcset"),o=e.attr("data-sizes");b.loadImage(e[0],r||i,n,o,!1,function(){if(i?(e.css("background-image",'url("'+i+'")'),e.removeAttr("data-background")):(n&&(e.attr("srcset",n),e.removeAttr("data-srcset")),o&&(e.attr("sizes",o),e.removeAttr("data-sizes")),r&&(e.attr("src",r),e.removeAttr("data-src"))),e.addClass(b.params.lazyStatusLoadedClass).removeClass(b.params.lazyStatusLoadingClass),s.find("."+b.params.lazyPreloaderClass+", ."+b.params.preloaderClass).remove(),b.params.loop&&t){var a=s.attr("data-swiper-slide-index");if(s.hasClass(b.params.slideDuplicateClass)){var l=b.wrapper.children('[data-swiper-slide-index="'+a+'"]:not(.'+b.params.slideDuplicateClass+")");b.lazy.loadImageInSlide(l.index(),!1)}else{var p=b.wrapper.children("."+b.params.slideDuplicateClass+'[data-swiper-slide-index="'+a+'"]');b.lazy.loadImageInSlide(p.index(),!1)}}b.emit("onLazyImageReady",b,s[0],e[0])}),b.emit("onLazyImageLoad",b,s[0],e[0])})}},load:function(){var e,t=b.params.slidesPerView;if("auto"===t&&(t=0),b.lazy.initialImageLoaded||(b.lazy.initialImageLoaded=!0),b.params.watchSlidesVisibility)b.wrapper.children("."+b.params.slideVisibleClass).each(function(){b.lazy.loadImageInSlide(a(this).index())});else if(t>1)for(e=b.activeIndex;e1||b.params.lazyLoadingInPrevNextAmount&&b.params.lazyLoadingInPrevNextAmount>1){var s=b.params.lazyLoadingInPrevNextAmount,i=t,r=Math.min(b.activeIndex+i+Math.max(s,i),b.slides.length),n=Math.max(b.activeIndex-Math.max(i,s),0);for(e=b.activeIndex+t;e0&&b.lazy.loadImageInSlide(o.index());var l=b.wrapper.children("."+b.params.slidePrevClass);l.length>0&&b.lazy.loadImageInSlide(l.index())}},onTransitionStart:function(){b.params.lazyLoading&&(b.params.lazyLoadingOnTransitionStart||!b.params.lazyLoadingOnTransitionStart&&!b.lazy.initialImageLoaded)&&b.lazy.load()},onTransitionEnd:function(){b.params.lazyLoading&&!b.params.lazyLoadingOnTransitionStart&&b.lazy.load()}},b.scrollbar={isTouched:!1,setDragPosition:function(e){var a=b.scrollbar,t=b.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY,s=t-a.track.offset()[b.isHorizontal()?"left":"top"]-a.dragSize/2,i=-b.minTranslate()*a.moveDivider,r=-b.maxTranslate()*a.moveDivider;sr&&(s=r),s=-s/a.moveDivider,b.updateProgress(s),b.setWrapperTranslate(s,!0)},dragStart:function(e){var a=b.scrollbar;a.isTouched=!0,e.preventDefault(),e.stopPropagation(),a.setDragPosition(e),clearTimeout(a.dragTimeout),a.track.transition(0),b.params.scrollbarHide&&a.track.css("opacity",1),b.wrapper.transition(100),a.drag.transition(100),b.emit("onScrollbarDragStart",b)},dragMove:function(e){var a=b.scrollbar;a.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),b.wrapper.transition(0),a.track.transition(0),a.drag.transition(0),b.emit("onScrollbarDragMove",b))},dragEnd:function(e){var a=b.scrollbar;a.isTouched&&(a.isTouched=!1,b.params.scrollbarHide&&(clearTimeout(a.dragTimeout),a.dragTimeout=setTimeout(function(){a.track.css("opacity",0),a.track.transition(400)},1e3)),b.emit("onScrollbarDragEnd",b),b.params.scrollbarSnapOnRelease&&b.slideReset())},draggableEvents:function(){return b.params.simulateTouch!==!1||b.support.touch?b.touchEvents:b.touchEventsDesktop}(),enableDraggable:function(){var e=b.scrollbar,t=b.support.touch?e.track:document;a(e.track).on(e.draggableEvents.start,e.dragStart),a(t).on(e.draggableEvents.move,e.dragMove),a(t).on(e.draggableEvents.end,e.dragEnd)},disableDraggable:function(){var e=b.scrollbar,t=b.support.touch?e.track:document;a(e.track).off(e.draggableEvents.start,e.dragStart),a(t).off(e.draggableEvents.move,e.dragMove),a(t).off(e.draggableEvents.end,e.dragEnd)},set:function(){if(b.params.scrollbar){var e=b.scrollbar;e.track=a(b.params.scrollbar),b.params.uniqueNavElements&&"string"==typeof b.params.scrollbar&&e.track.length>1&&1===b.container.find(b.params.scrollbar).length&&(e.track=b.container.find(b.params.scrollbar)),e.drag=e.track.find(".swiper-scrollbar-drag"),0===e.drag.length&&(e.drag=a('
'),e.track.append(e.drag)),e.drag[0].style.width="",e.drag[0].style.height="",e.trackSize=b.isHorizontal()?e.track[0].offsetWidth:e.track[0].offsetHeight,e.divider=b.size/b.virtualSize,e.moveDivider=e.divider*(e.trackSize/b.size),e.dragSize=e.trackSize*e.divider,b.isHorizontal()?e.drag[0].style.width=e.dragSize+"px":e.drag[0].style.height=e.dragSize+"px",e.divider>=1?e.track[0].style.display="none":e.track[0].style.display="",b.params.scrollbarHide&&(e.track[0].style.opacity=0)}},setTranslate:function(){if(b.params.scrollbar){var e,a=b.scrollbar,t=(b.translate||0,a.dragSize);e=(a.trackSize-a.dragSize)*b.progress,b.rtl&&b.isHorizontal()?(e=-e,e>0?(t=a.dragSize-e,e=0):-e+a.dragSize>a.trackSize&&(t=a.trackSize+e)):e<0?(t=a.dragSize+e,e=0):e+a.dragSize>a.trackSize&&(t=a.trackSize-e),b.isHorizontal()?(b.support.transforms3d?a.drag.transform("translate3d("+e+"px, 0, 0)"):a.drag.transform("translateX("+e+"px)"),a.drag[0].style.width=t+"px"):(b.support.transforms3d?a.drag.transform("translate3d(0px, "+e+"px, 0)"):a.drag.transform("translateY("+e+"px)"),a.drag[0].style.height=t+"px"),b.params.scrollbarHide&&(clearTimeout(a.timeout),a.track[0].style.opacity=1,a.timeout=setTimeout(function(){a.track[0].style.opacity=0,a.track.transition(400)},1e3))}},setTransition:function(e){b.params.scrollbar&&b.scrollbar.drag.transition(e)}},b.controller={LinearSpline:function(e,a){this.x=e,this.y=a,this.lastIndex=e.length-1;var t,s;this.x.length;this.interpolate=function(e){return e?(s=i(this.x,e),t=s-1,(e-this.x[t])*(this.y[s]-this.y[t])/(this.x[s]-this.x[t])+this.y[t]):0};var i=function(){var e,a,t;return function(s,i){for(a=-1,e=s.length;e-a>1;)s[t=e+a>>1]<=i?a=t:e=t;return e}}()},getInterpolateFunction:function(e){b.controller.spline||(b.controller.spline=b.params.loop?new b.controller.LinearSpline(b.slidesGrid,e.slidesGrid):new b.controller.LinearSpline(b.snapGrid,e.snapGrid))},setTranslate:function(e,a){function s(a){e=a.rtl&&"horizontal"===a.params.direction?-b.translate:b.translate,"slide"===b.params.controlBy&&(b.controller.getInterpolateFunction(a),r=-b.controller.spline.interpolate(-e)),r&&"container"!==b.params.controlBy||(i=(a.maxTranslate()-a.minTranslate())/(b.maxTranslate()-b.minTranslate()),r=(e-b.minTranslate())*i+a.minTranslate()),b.params.controlInverse&&(r=a.maxTranslate()-r),a.updateProgress(r),a.setWrapperTranslate(r,!1,b),a.updateActiveIndex()}var i,r,n=b.params.control;if(b.isArray(n))for(var o=0;o-1?"DOMMouseScroll":d()?"wheel":"mousewheel"),b.disableMousewheelControl=function(){if(!b.mousewheel.event)return!1;var e=b.container;return"container"!==b.params.mousewheelEventsTarged&&(e=a(b.params.mousewheelEventsTarged)),e.off(b.mousewheel.event,u),!0},b.enableMousewheelControl=function(){if(!b.mousewheel.event)return!1;var e=b.container;return"container"!==b.params.mousewheelEventsTarged&&(e=a(b.params.mousewheelEventsTarged)),e.on(b.mousewheel.event,u),!0},b.parallax={setTranslate:function(){b.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){m(this,b.progress)}),b.slides.each(function(){var e=a(this);e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var a=Math.min(Math.max(e[0].progress,-1),1);m(this,a)})})},setTransition:function(e){"undefined"==typeof e&&(e=b.params.speed),b.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var t=a(this),s=parseInt(t.attr("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.transition(s)})}},b.zoom={scale:1,currentScale:1,isScaling:!1,gesture:{slide:void 0,slideWidth:void 0,slideHeight:void 0,image:void 0,imageWrap:void 0,zoomMax:b.params.zoomMax},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0},getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var a=e.targetTouches[0].pageX,t=e.targetTouches[0].pageY,s=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY,r=Math.sqrt(Math.pow(s-a,2)+Math.pow(i-t,2));return r},onGestureStart:function(e){var t=b.zoom;if(!b.support.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;t.gesture.scaleStart=t.getDistanceBetweenTouches(e)}return t.gesture.slide&&t.gesture.slide.length||(t.gesture.slide=a(this),0===t.gesture.slide.length&&(t.gesture.slide=b.slides.eq(b.activeIndex)),t.gesture.image=t.gesture.slide.find("img, svg, canvas"),t.gesture.imageWrap=t.gesture.image.parent("."+b.params.zoomContainerClass),t.gesture.zoomMax=t.gesture.imageWrap.attr("data-swiper-zoom")||b.params.zoomMax,0!==t.gesture.imageWrap.length)?(t.gesture.image.transition(0),void(t.isScaling=!0)):void(t.gesture.image=void 0)},onGestureChange:function(e){var a=b.zoom;if(!b.support.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;a.gesture.scaleMove=a.getDistanceBetweenTouches(e)}a.gesture.image&&0!==a.gesture.image.length&&(b.support.gestures?a.scale=e.scale*a.currentScale:a.scale=a.gesture.scaleMove/a.gesture.scaleStart*a.currentScale,a.scale>a.gesture.zoomMax&&(a.scale=a.gesture.zoomMax-1+Math.pow(a.scale-a.gesture.zoomMax+1,.5)),a.scalea.image.touchesStart.x)return void(a.image.isTouched=!1);if(!b.isHorizontal()&&Math.floor(a.image.minY)===Math.floor(a.image.startY)&&a.image.touchesCurrent.ya.image.touchesStart.y)return void(a.image.isTouched=!1)}e.preventDefault(),e.stopPropagation(),a.image.isMoved=!0,a.image.currentX=a.image.touchesCurrent.x-a.image.touchesStart.x+a.image.startX,a.image.currentY=a.image.touchesCurrent.y-a.image.touchesStart.y+a.image.startY,a.image.currentXa.image.maxX&&(a.image.currentX=a.image.maxX-1+Math.pow(a.image.currentX-a.image.maxX+1,.8)),a.image.currentYa.image.maxY&&(a.image.currentY=a.image.maxY-1+Math.pow(a.image.currentY-a.image.maxY+1,.8)),a.velocity.prevPositionX||(a.velocity.prevPositionX=a.image.touchesCurrent.x),a.velocity.prevPositionY||(a.velocity.prevPositionY=a.image.touchesCurrent.y),a.velocity.prevTime||(a.velocity.prevTime=Date.now()),a.velocity.x=(a.image.touchesCurrent.x-a.velocity.prevPositionX)/(Date.now()-a.velocity.prevTime)/2,a.velocity.y=(a.image.touchesCurrent.y-a.velocity.prevPositionY)/(Date.now()-a.velocity.prevTime)/2,Math.abs(a.image.touchesCurrent.x-a.velocity.prevPositionX)<2&&(a.velocity.x=0),Math.abs(a.image.touchesCurrent.y-a.velocity.prevPositionY)<2&&(a.velocity.y=0),a.velocity.prevPositionX=a.image.touchesCurrent.x,a.velocity.prevPositionY=a.image.touchesCurrent.y,a.velocity.prevTime=Date.now(),a.gesture.imageWrap.transform("translate3d("+a.image.currentX+"px, "+a.image.currentY+"px,0)")}}},onTouchEnd:function(e,a){var t=e.zoom;if(t.gesture.image&&0!==t.gesture.image.length){if(!t.image.isTouched||!t.image.isMoved)return t.image.isTouched=!1,void(t.image.isMoved=!1);t.image.isTouched=!1,t.image.isMoved=!1;var s=300,i=300,r=t.velocity.x*s,n=t.image.currentX+r,o=t.velocity.y*i,l=t.image.currentY+o;0!==t.velocity.x&&(s=Math.abs((n-t.image.currentX)/t.velocity.x)),0!==t.velocity.y&&(i=Math.abs((l-t.image.currentY)/t.velocity.y));var p=Math.max(s,i);t.image.currentX=n,t.image.currentY=l;var d=t.image.width*t.scale,u=t.image.height*t.scale;t.image.minX=Math.min(t.gesture.slideWidth/2-d/2,0),t.image.maxX=-t.image.minX,t.image.minY=Math.min(t.gesture.slideHeight/2-u/2,0),t.image.maxY=-t.image.minY,t.image.currentX=Math.max(Math.min(t.image.currentX,t.image.maxX),t.image.minX),t.image.currentY=Math.max(Math.min(t.image.currentY,t.image.maxY),t.image.minY),t.gesture.imageWrap.transition(p).transform("translate3d("+t.image.currentX+"px, "+t.image.currentY+"px,0)")}},onTransitionEnd:function(e){var a=e.zoom;a.gesture.slide&&e.previousIndex!==e.activeIndex&&(a.gesture.image.transform("translate3d(0,0,0) scale(1)"),a.gesture.imageWrap.transform("translate3d(0,0,0)"),a.gesture.slide=a.gesture.image=a.gesture.imageWrap=void 0,a.scale=a.currentScale=1)},toggleZoom:function(e,t){var s=e.zoom;if(s.gesture.slide||(s.gesture.slide=e.clickedSlide?a(e.clickedSlide):e.slides.eq(e.activeIndex),s.gesture.image=s.gesture.slide.find("img, svg, canvas"),s.gesture.imageWrap=s.gesture.image.parent("."+e.params.zoomContainerClass)),s.gesture.image&&0!==s.gesture.image.length){var i,r,n,o,l,p,d,u,c,m,h,g,f,v,w,y,x,T;"undefined"==typeof s.image.touchesStart.x&&t?(i="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,r="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(i=s.image.touchesStart.x,r=s.image.touchesStart.y),s.scale&&1!==s.scale?(s.scale=s.currentScale=1,s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"),s.gesture.slide=void 0):(s.scale=s.currentScale=s.gesture.imageWrap.attr("data-swiper-zoom")||e.params.zoomMax,t?(x=s.gesture.slide[0].offsetWidth,T=s.gesture.slide[0].offsetHeight,n=s.gesture.slide.offset().left,o=s.gesture.slide.offset().top,l=n+x/2-i,p=o+T/2-r,c=s.gesture.image[0].offsetWidth,m=s.gesture.image[0].offsetHeight,h=c*s.scale,g=m*s.scale,f=Math.min(x/2-h/2,0),v=Math.min(T/2-g/2,0),w=-f,y=-v,d=l*s.scale,u=p*s.scale,dw&&(d=w),uy&&(u=y)):(d=0,u=0),s.gesture.imageWrap.transition(300).transform("translate3d("+d+"px, "+u+"px,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale("+s.scale+")"))}},attachEvents:function(e){var t=e?"off":"on";if(b.params.zoom){var s=(b.slides,!("touchstart"!==b.touchEvents.start||!b.support.passiveListener||!b.params.passiveListeners)&&{passive:!0,capture:!1});b.support.gestures?(b.slides[t]("gesturestart",b.zoom.onGestureStart,s),b.slides[t]("gesturechange",b.zoom.onGestureChange,s),b.slides[t]("gestureend",b.zoom.onGestureEnd,s)):"touchstart"===b.touchEvents.start&&(b.slides[t](b.touchEvents.start,b.zoom.onGestureStart,s),b.slides[t](b.touchEvents.move,b.zoom.onGestureChange,s),b.slides[t](b.touchEvents.end,b.zoom.onGestureEnd,s)),b[t]("touchStart",b.zoom.onTouchStart),b.slides.each(function(e,s){a(s).find("."+b.params.zoomContainerClass).length>0&&a(s)[t](b.touchEvents.move,b.zoom.onTouchMove)}),b[t]("touchEnd",b.zoom.onTouchEnd),b[t]("transitionEnd",b.zoom.onTransitionEnd),b.params.zoomToggle&&b.on("doubleTap",b.zoom.toggleZoom)}},init:function(){b.zoom.attachEvents()},destroy:function(){b.zoom.attachEvents(!0)}},b._plugins=[];for(var O in b.plugins){var N=b.plugins[O](b,b.params[O]);N&&b._plugins.push(N)}return b.callPlugins=function(e){for(var a=0;a'),notify:function(e){var a=b.a11y.liveRegion;0!==a.length&&(a.html(""),a.html(e))},init:function(){b.params.nextButton&&b.nextButton&&b.nextButton.length>0&&(b.a11y.makeFocusable(b.nextButton),b.a11y.addRole(b.nextButton,"button"),b.a11y.addLabel(b.nextButton,b.params.nextSlideMessage)),b.params.prevButton&&b.prevButton&&b.prevButton.length>0&&(b.a11y.makeFocusable(b.prevButton),b.a11y.addRole(b.prevButton,"button"),b.a11y.addLabel(b.prevButton,b.params.prevSlideMessage)),a(b.container).append(b.a11y.liveRegion)},initPagination:function(){b.params.pagination&&b.params.paginationClickable&&b.bullets&&b.bullets.length&&b.bullets.each(function(){var e=a(this);b.a11y.makeFocusable(e),b.a11y.addRole(e,"button"),b.a11y.addLabel(e,b.params.paginationBulletMessage.replace(/{{index}}/,e.index()+1))})},destroy:function(){b.a11y.liveRegion&&b.a11y.liveRegion.length>0&&b.a11y.liveRegion.remove()}},b.init=function(){b.params.loop&&b.createLoop(),b.updateContainerSize(),b.updateSlidesSize(),b.updatePagination(),b.params.scrollbar&&b.scrollbar&&(b.scrollbar.set(),b.params.scrollbarDraggable&&b.scrollbar.enableDraggable()),"slide"!==b.params.effect&&b.effects[b.params.effect]&&(b.params.loop||b.updateProgress(),b.effects[b.params.effect].setTranslate()),b.params.loop?b.slideTo(b.params.initialSlide+b.loopedSlides,0,b.params.runCallbacksOnInit):(b.slideTo(b.params.initialSlide,0,b.params.runCallbacksOnInit),0===b.params.initialSlide&&(b.parallax&&b.params.parallax&&b.parallax.setTranslate(),b.lazy&&b.params.lazyLoading&&(b.lazy.load(),b.lazy.initialImageLoaded=!0))),b.attachEvents(),b.params.observer&&b.support.observer&&b.initObservers(),b.params.preloadImages&&!b.params.lazyLoading&&b.preloadImages(),b.params.zoom&&b.zoom&&b.zoom.init(),b.params.autoplay&&b.startAutoplay(),b.params.keyboardControl&&b.enableKeyboardControl&&b.enableKeyboardControl(),b.params.mousewheelControl&&b.enableMousewheelControl&&b.enableMousewheelControl(),b.params.hashnavReplaceState&&(b.params.replaceState=b.params.hashnavReplaceState),b.params.history&&b.history&&b.history.init(),b.params.hashnav&&b.hashnav&&b.hashnav.init(),b.params.a11y&&b.a11y&&b.a11y.init(),b.emit("onInit",b)},b.cleanupStyles=function(){b.container.removeClass(b.classNames.join(" ")).removeAttr("style"),b.wrapper.removeAttr("style"),b.slides&&b.slides.length&&b.slides.removeClass([b.params.slideVisibleClass,b.params.slideActiveClass,b.params.slideNextClass,b.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),b.paginationContainer&&b.paginationContainer.length&&b.paginationContainer.removeClass(b.params.paginationHiddenClass),b.bullets&&b.bullets.length&&b.bullets.removeClass(b.params.bulletActiveClass),b.params.prevButton&&a(b.params.prevButton).removeClass(b.params.buttonDisabledClass),b.params.nextButton&&a(b.params.nextButton).removeClass(b.params.buttonDisabledClass),b.params.scrollbar&&b.scrollbar&&(b.scrollbar.track&&b.scrollbar.track.length&&b.scrollbar.track.removeAttr("style"),b.scrollbar.drag&&b.scrollbar.drag.length&&b.scrollbar.drag.removeAttr("style"))},b.destroy=function(e,a){b.detachEvents(),b.stopAutoplay(),b.params.scrollbar&&b.scrollbar&&b.params.scrollbarDraggable&&b.scrollbar.disableDraggable(),b.params.loop&&b.destroyLoop(),a&&b.cleanupStyles(),b.disconnectObservers(),b.params.zoom&&b.zoom&&b.zoom.destroy(),b.params.keyboardControl&&b.disableKeyboardControl&&b.disableKeyboardControl(),b.params.mousewheelControl&&b.disableMousewheelControl&&b.disableMousewheelControl(),b.params.a11y&&b.a11y&&b.a11y.destroy(),b.params.history&&!b.params.replaceState&&window.removeEventListener("popstate",b.history.setHistoryPopState),b.params.hashnav&&b.hashnav&&b.hashnav.destroy(),b.emit("onDestroy"),e!==!1&&(b=null)},b.init(),b}};t.prototype={isSafari:function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1,lteIE9:function(){var e=document.createElement("div");return e.innerHTML="",1===e.getElementsByTagName("i").length}()},device:function(){var e=window.navigator.userAgent,a=e.match(/(Android);?[\s\/]+([\d.]+)?/),t=e.match(/(iPad).*OS\s([\d_]+)/),s=e.match(/(iPod)(.*OS\s([\d_]+))?/),i=!t&&e.match(/(iPhone\sOS|iOS)\s([\d_]+)/);return{ios:t||i||s,android:a}}(),support:{touch:window.Modernizr&&Modernizr.touch===!0||function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}(),transforms3d:window.Modernizr&&Modernizr.csstransforms3d===!0||function(){var e=document.createElement("div").style;return"webkitPerspective"in e||"MozPerspective"in e||"OPerspective"in e||"MsPerspective"in e||"perspective"in e}(),flexbox:function(){for(var e=document.createElement("div").style,a="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),t=0;t=0&&o.indexOf(">")>=0){var l="div";for(0===o.indexOf(":~]/)?(t||document).querySelectorAll(a):[document.getElementById(a.split("#")[1])],i=0;i0&&a[0].nodeType)for(i=0;i0?parseFloat(this.css("width")):null},outerWidth:function(e){return this.length>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(e){return this.length>0?e?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var e=this[0],a=e.getBoundingClientRect(),t=document.body,s=e.clientTop||t.clientTop||0,i=e.clientLeft||t.clientLeft||0,r=window.pageYOffset||e.scrollTop,n=window.pageXOffset||e.scrollLeft;return{top:a.top+r-s,left:a.left+n-i}}return null},css:function(e,a){var t;if(1===arguments.length){if("string"!=typeof e){for(t=0;ts-1?new e([]):a<0?(t=s+a,new e(t<0?[]:[this[t]])):new e([this[a]])},append:function(a){var t,s;for(t=0;t=0;s--)this[t].insertBefore(i.childNodes[s],this[t].childNodes[0])}else if(a instanceof e)for(s=0;s1)for(var i=0;i1)for(var i=0;i0?t?this[0].nextElementSibling&&a(this[0].nextElementSibling).is(t)?[this[0].nextElementSibling]:[]:this[0].nextElementSibling?[this[0].nextElementSibling]:[]:[])},nextAll:function(t){var s=[],i=this[0];if(!i)return new e([]);for(;i.nextElementSibling;){var r=i.nextElementSibling;t?a(r).is(t)&&s.push(r):s.push(r),i=r}return new e(s)},prev:function(t){return new e(this.length>0?t?this[0].previousElementSibling&&a(this[0].previousElementSibling).is(t)?[this[0].previousElementSibling]:[]:this[0].previousElementSibling?[this[0].previousElementSibling]:[]:[])},prevAll:function(t){var s=[],i=this[0];if(!i)return new e([]);for(;i.previousElementSibling;){var r=i.previousElementSibling;t?a(r).is(t)&&s.push(r):s.push(r),i=r}return new e(s)},parent:function(e){for(var t=[],s=0;s0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null})),window.Swiper=t}(),"undefined"!=typeof module?module.exports=window.Swiper:"function"==typeof define&&define.amd&&define([],function(){"use strict";return window.Swiper}); +//# sourceMappingURL=maps/swiper.min.js.map diff --git a/src/router/router.js b/src/router/router.js index 2a8b21d673df3542028f6abbe1b13f84c8899e8b..c9212287204be8650d8dac9561b05ff1c7cf36ac 100644 --- a/src/router/router.js +++ b/src/router/router.js @@ -11,7 +11,7 @@ const forget = r => require.ensure([], () => r(require('../page/forget/forget')) const checkout = r => require.ensure([], () => r(require('../page/checkout/checkout')), 'checkout') const order = r => require.ensure([], () => r(require('../page/order/order')), 'order') const vipcard = r => require.ensure([], () => r(require('../page/vipcard/vipcard')), 'vipcard') -const food = r => require.ensure([], () => r(require('../page/msite/food/food')), 'food') +const food = r => require.ensure([], () => r(require('../page/food/food')), 'food') export default [{ @@ -20,13 +20,9 @@ export default [{ children: [ //二级路由。对应App.vue { path: '', redirect: '/home' }, //地址为空时跳转home页面 { path: '/home', component: home }, //首页城市列表页 - { path: '/city/:cityid', component: city }, //当前选择城市页 - { path: '/msite', component: msite, //所有商铺列表页 - children:[ - { path: 'food', component: food }, //特色商铺列表页 - { path: '*', component: food } //特色商铺列表页 - ] - }, + { path: '/city/:cityid', component: city }, //当前选择城市页 + { path: '/msite', component: msite, }, //所有商铺列表页 + { path: '/food', component: food }, //特色商铺列表页 { path: '/search', component: search }, //搜索页 { path: '/shop', component: shop }, //商铺详情页 { path: '/login', component: login }, //登陆注册页 @@ -34,6 +30,6 @@ export default [{ { path: '/forget', component: forget }, //修改密码页 { path: '/checkout', component: checkout }, //确认订单页 { path: '/order', component: order }, //订单列表页 - { path: '/vipcard', component: vipcard } //vip卡页 + { path: '/vipcard', component: vipcard }, //vip卡页 ] }] \ No newline at end of file diff --git a/src/service/getData.js b/src/service/getData.js index 7921c945ebb739030148226e633bc1779e6e2908..98aeef32e16ad908de1d9b171a1eb5b3ace15ab3 100644 --- a/src/service/getData.js +++ b/src/service/getData.js @@ -1,6 +1,8 @@ import fetch from '../config/fetch' import * as home from './tempdata/home' import * as city from './tempdata/city' +import * as msite from './tempdata/msite' + /** * 获取首页默认地址 */ @@ -21,9 +23,18 @@ const currentcity = number => fetch('GET', '/v1/cities/' + number, {}) * 获取搜索地址 */ const searchplace = (cityid, value) => fetch('GET', '/v1/pois', {type: 'search', city_id: cityid, keyword: value}) - - - +/** + * 获取msite页面地址信息 + */ +//const msiteAdress = geohash => fetch('GET', '/v2/pois/' + geohash, {}) +/** + * 获取msite页面食品分类列表 + */ +//const msiteFoodTypes = geohash => fetch('GET', '/v2/index_entry', {geohash, group_type:'1', 'flags[]':'F'}) +/** + * 获取msite商铺列表 + */ +//const msiteShopList = (latitude, longitude, offset) => fetch('GET', '/shopping/restaurants', {latitude, longitude, offset, limit: '20', 'extras[]':'activities'}) @@ -39,6 +50,9 @@ const setpromise = data => { // const groupcity = () => setpromise(home.groupcity) // const currentcity = number => setpromise(city.currentcity) // const searchplace = (cityid, value) => setpromise(city.searchdata) +const msiteAdress = geohash => setpromise(msite.msiteAdress) +const msiteFoodTypes = geohash => setpromise(msite.foodTypes) +const msiteShopList = (latitude, longitude, offset) => setpromise(msite.shopList) -export {cityGuess, hotcity, groupcity, currentcity, searchplace} \ No newline at end of file +export {cityGuess, hotcity, groupcity, currentcity, searchplace, msiteAdress, msiteFoodTypes, msiteShopList} \ No newline at end of file diff --git a/src/service/tempdata/msite.js b/src/service/tempdata/msite.js new file mode 100644 index 0000000000000000000000000000000000000000..ddfcade0ef1b1d7f11cc72e31fd0dcfeafcfb928 --- /dev/null +++ b/src/service/tempdata/msite.js @@ -0,0 +1,176 @@ +export const msiteAdress = { +name: "黄浦区上海人民广场", +address: "上海市黄浦区武胜路", +city: "上海市", +latitude: 31.22967, +longitude: 121.476196, +city_id: 1, +geohash: "wtw3sm0q082v" +}; + +export const foodTypes = [ +{ +id: 15, +is_in_serving: true, +description: "", +title: "美食", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu7f8e%5Cu98df%22%2C%22complex_category_ids%22%3A%5B207%2C220%2C233%2C260%5D%2C%22is_show_all_category%22%3Afalse%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A207%2C%22name%22%3A%22%5Cu5feb%5Cu9910%5Cu4fbf%5Cu5f53%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E7%BE%8E%E9%A3%9F&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/b/7e/d1890cf73ae6f2adb97caa39de7fcjpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 20, +is_in_serving: true, +description: "", +title: "甜品饮品", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu751c%5Cu54c1%5Cu996e%5Cu54c1%22%2C%22complex_category_ids%22%3A%5B240%2C241%2C242%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A239%2C%22name%22%3A%22%5Cu751c%5Cu54c1%5Cu996e%5Cu54c1%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E7%94%9C%E5%93%81%E9%A5%AE%E5%93%81&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/2/35/696aa5cf9820adada9b11a3d14bf5jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 10, +is_in_serving: true, +description: "", +title: "商店超市", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu5546%5Cu5e97%5Cu8d85%5Cu5e02%22%2C%22complex_category_ids%22%3A%5B254%2C255%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A252%2C%22name%22%3A%22%5Cu5546%5Cu5e97%5Cu8d85%5Cu5e02%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E5%95%86%E5%BA%97%E8%B6%85%E5%B8%82&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/1/c6/8edcaeb8cd35845946db6673660fcjpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 1, +is_in_serving: true, +description: "", +title: "预订早餐", +link: "eleme://web?url=https%3A%2F%2Fzaocan.ele.me&target_name=%E9%A2%84%E5%AE%9A%E6%97%A9%E9%A4%90&animation_type=1&is_need_mark=&banner_type=", +image_url: "/0/5e/2a4a05b7a55bab6f22f7404bdaa26jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 8, +is_in_serving: true, +description: "", +title: "果蔬生鲜", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu679c%5Cu852c%5Cu751f%5Cu9c9c%22%2C%22complex_category_ids%22%3A%5B245%2C246%2C247%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A244%2C%22name%22%3A%22%5Cu679c%5Cu852c%5Cu751f%5Cu9c9c%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E6%9E%9C%E8%94%AC%E7%94%9F%E9%B2%9C&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/4/34/ea0d51c9608310cf41faa5de6b8efjpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 314, +is_in_serving: true, +description: "", +title: "新店特惠", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu8d85%5Cu503c%5Cu5c1d%5Cu9c9c%22%2C%22complex_category_ids%22%3A%5B207%2C220%2C233%2C218%2C234%2C235%2C236%2C237%2C239%2C244%2C245%2C248%2C249%2C250%2C252%2C260%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A207%2C%22name%22%3A%22%5Cu5feb%5Cu9910%5Cu4fbf%5Cu5f53%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22support_ids%22%3A%5B5%5D%2C%22activities%22%3A%5B%7B%22id%22%3A5%2C%22name%22%3A%22%5Cu65b0%5Cu5e97%22%2C%22icon_name%22%3A%22%5Cu65b0%22%2C%22icon_color%22%3A%22E8842D%22%2C%22is_need_filling%22%3A0%2C%22is_multi_choice%22%3A1%2C%22filter_value%22%3A5%2C%22filter_key%22%3A%22support_ids%22%2C%22description%22%3A%22%5Cu65b0%5Cu5e97%22%7D%5D%7D&target_name=%E6%96%B0%E5%BA%97%E7%89%B9%E6%83%A0&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/a/fa/d41b04d520d445dc5de42dae9a384jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 92, +is_in_serving: true, +description: "", +title: "准时达", +link: "eleme://restaurants?filter_key=%7B%22support_ids%22%3A%5B9%5D%2C%22activities%22%3A%5B%7B%22id%22%3A9%2C%22name%22%3A%22%5Cu51c6%5Cu65f6%5Cu8fbe%22%2C%22icon_name%22%3A%22%5Cu51c6%22%2C%22icon_color%22%3A%22E8842D%22%2C%22is_need_filling%22%3A0%2C%22is_multi_choice%22%3A1%2C%22filter_value%22%3A9%2C%22filter_key%22%3A%22support_ids%22%2C%22description%22%3A%22%5Cu51c6%5Cu65f6%5Cu8fbe%22%7D%5D%7D&target_name=%E5%87%86%E6%97%B6%E8%BE%BE&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/3/84/8e031bf7b3c036b4ec19edff16e46jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 400723, +is_in_serving: true, +description: "", +title: "高铁订餐", +link: "eleme://web?url=https%3A%2F%2Fh5.ele.me%2Frailway%2F%23%2F&target_name=%E9%AB%98%E9%93%81%E8%AE%A2%E9%A4%90&animation_type=1&is_need_mark=&banner_type=", +image_url: "/0/3d/7125a96aab7d583151fbc376480b5jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 65, +is_in_serving: true, +description: "", +title: "土豪推荐", +link: "eleme://restaurants?filter_key=%7B%22activities%22%3A%5B%7B%22filter_key%22%3A%22tags%22%2C%22filter_value%22%3A0%7D%5D%7D&target_name=%E5%9C%9F%E8%B1%AA%E6%8E%A8%E8%8D%90&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/e/7e/02b72b5e63c127d5bfae57b8e4ab1jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 9, +is_in_serving: true, +description: "", +title: "鲜花蛋糕", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu9c9c%5Cu82b1%5Cu86cb%5Cu7cd5%22%2C%22complex_category_ids%22%3A%5B249%2C250%2C251%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A248%2C%22name%22%3A%22%5Cu9c9c%5Cu82b1%5Cu86cb%5Cu7cd5%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E9%B2%9C%E8%8A%B1%E8%9B%8B%E7%B3%95&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/8/83/171fd98b85dee3b3f4243b7459b48jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 236, +is_in_serving: true, +description: "", +title: "汉堡炸鸡", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu6c49%5Cu5821%22%2C%22complex_category_ids%22%3A%5B212%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A207%2C%22name%22%3A%22%5Cu5feb%5Cu9910%5Cu4fbf%5Cu5f53%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E6%B1%89%E5%A0%A1&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/b/7f/432619fb21a40b05cd25d11eca02djpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 285, +is_in_serving: true, +description: "", +title: "日韩料理", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu65e5%5Cu97e9%5Cu6599%5Cu7406%22%2C%22complex_category_ids%22%3A%5B229%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A260%2C%22name%22%3A%22%5Cu5f02%5Cu56fd%5Cu6599%5Cu7406%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E6%97%A5%E9%9F%A9%E6%96%99%E7%90%86&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/6/1a/1e0f448be0624c62db416e864d2afjpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 286, +is_in_serving: true, +description: "", +title: "麻辣烫", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu9ebb%5Cu8fa3%5Cu70eb%22%2C%22complex_category_ids%22%3A%5B214%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A207%2C%22name%22%3A%22%5Cu5feb%5Cu9910%5Cu4fbf%5Cu5f53%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E9%BA%BB%E8%BE%A3%E7%83%AB&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/3/c7/a9ef469a12e7a596b559145b87f09jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 287, +is_in_serving: true, +description: "", +title: "披萨意面", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu62ab%5Cu8428%5Cu610f%5Cu9762%22%2C%22complex_category_ids%22%3A%5B211%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A260%2C%22name%22%3A%22%5Cu5f02%5Cu56fd%5Cu6599%5Cu7406%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E6%8A%AB%E8%90%A8%E6%84%8F%E9%9D%A2&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/7/b6/235761e50d391445f021922b71789jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 288, +is_in_serving: true, +description: "", +title: "川湘菜", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu5ddd%5Cu6e58%5Cu83dc%22%2C%22complex_category_ids%22%3A%5B221%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A220%2C%22name%22%3A%22%5Cu7279%5Cu8272%5Cu83dc%5Cu7cfb%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E5%B7%9D%E6%B9%98%E8%8F%9C&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/9/7c/9700836a33e05c2410bda8da59117jpeg.jpeg", +icon_url: "", +title_color: "" +}, +{ +id: 289, +is_in_serving: true, +description: "", +title: "包子粥店", +link: "eleme://restaurants?filter_key=%7B%22category_schema%22%3A%7B%22category_name%22%3A%22%5Cu9762%5Cu7c89%5Cu7ca5%22%2C%22complex_category_ids%22%3A%5B215%5D%2C%22is_show_all_category%22%3Atrue%7D%2C%22restaurant_category_id%22%3A%7B%22id%22%3A207%2C%22name%22%3A%22%5Cu5feb%5Cu9910%5Cu4fbf%5Cu5f53%22%2C%22sub_categories%22%3A%5B%5D%2C%22image_url%22%3A%22%22%7D%2C%22activities%22%3A%5B%5D%7D&target_name=%E5%8C%85%E5%AD%90%E7%B2%A5%E5%BA%97&animation_type=1&is_need_mark=0&banner_type=", +image_url: "/2/17/244241b514affc0f12f4168cf6628jpeg.jpeg", +icon_url: "", +title_color: "" +} +]; + +export const shopList = [{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":16049174,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"}],"address":"寿宁路20-24号(近西藏南路)","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"","distance":1125,"float_delivery_fee":12,"float_minimum_order_amount":0,"id":1862826,"image_path":"9418799ddf713f6521a9ba7695af1a9djpeg","is_new":false,"is_premium":false,"latitude":31.224263,"longitude":121.482069,"max_applied_quantity_per_order":-1,"name":"上海第一家香吧岛龙虾(寿宁路总店)","next_business_time":"","only_use_poi":false,"opening_hours":["11:00/24:00"],"order_lead_time":0,"phone":"021-63264431","piecewise_agent_fee":{"description":"订单满100配送费3元,20至100付8元,不满20付12元","extra_fee":3,"is_extra":true,"rules":[{"fee":12,"price":0},{"fee":8,"price":20},{"fee":3,"price":100}],"tips":"配送费约¥8"},"promotion_info":"","rating":4,"rating_count":0,"recent_order_num":0,"recommend":{"track":"{\"rankType\":\"4\"}"},"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":19270949,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"60\": {\"1\": 35, \"0\": 0}, \"30\": {\"1\": 16, \"0\": 0}}","description":"满30减16,满60减35(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19575730,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减16,满60减35(不与美食活动同享)","type":102},{"description":"天天特价","icon_color":"f1884f","icon_name":"特","id":19503722,"name":"(不与其它活动同享)天天特价","tips":"(不与其它活动同享)天天特价"},{"description":"天天特价","icon_color":"f1884f","icon_name":"特","id":19150049,"name":"(不与其它活动同享)天天特价","tips":"(不与其它活动同享)天天特价"}],"address":"上海市黄浦区河南中路221号","average_cost":"¥23/人","description":"11","distance":976,"float_delivery_fee":5,"float_minimum_order_amount":25,"id":320832,"image_path":"8326f62ff368e61682832506f4e15d78jpeg","is_new":false,"is_premium":true,"latitude":31.234468,"longitude":121.485603,"max_applied_quantity_per_order":-1,"name":"芝根芝底(河南中路店)","next_business_time":"","only_use_poi":false,"opening_hours":["09:30/23:30"],"order_lead_time":40,"phone":"63139505","piecewise_agent_fee":{"description":"配送费¥5","extra_fee":0,"is_extra":false,"rules":[{"fee":5,"price":25}],"tips":"配送费¥5"},"promotion_info":" 纯手工制做现烤比萨,拒绝半成品加工,从揉面、醒发、整边到烘烤,全部当天手工制做,保证比萨用料的新鲜度!带给您不一样的美味!\n\n 各式经典小食、意大利面、汉堡、烤肉卷、鲜榨果汁、饮料、奶茶,款款美食期待您的光临!","rating":4.6,"rating_count":779,"recent_order_num":2719,"regular_customer_count":0,"status":1,"supports":[{"description":"该商家支持开发票,开票订单金额50.0元起,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18842726,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"25\": {\"1\": 12, \"0\": 0}, \"50\": {\"1\": 17, \"0\": 0}, \"75\": {\"1\": 22, \"0\": 0}}","description":"满25减12,满50减17,满75减22(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19534618,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满25减12,满50减17,满75减22(不与美食活动同享)","type":102},{"description":"新年折扣回馈","icon_color":"f07373","icon_name":"折","id":19615354,"name":"(不与其它活动同享)新年折扣回馈","tips":"(不与其它活动同享)新年折扣回馈"},{"description":"1元抢购","icon_color":"f1884f","icon_name":"特","id":19554352,"name":"(不与其它活动同享)1元抢购","tips":"(不与其它活动同享)1元抢购"}],"address":"上海市虹口区南浔路148号","average_cost":"¥20/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"","distance":2305,"float_delivery_fee":13,"float_minimum_order_amount":0,"id":1274639,"image_path":"22804e7f3c47bfe4af04d0c6fe517891png","is_new":false,"is_premium":false,"latitude":31.247068,"longitude":121.493026,"max_applied_quantity_per_order":-1,"name":"福建沙县小吃","next_business_time":"","only_use_poi":false,"opening_hours":["10:00/01:00"],"order_lead_time":41,"phone":"18717701252","piecewise_agent_fee":{"description":"订单满100配送费4元,20至100付9元,不满20付13元","extra_fee":4,"is_extra":true,"rules":[{"fee":13,"price":0},{"fee":9,"price":20},{"fee":4,"price":100}],"tips":"配送费约¥9"},"promotion_info":"","rating":4.3,"rating_count":469,"recent_order_num":2436,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减26.0元","icon_color":"70bc46","icon_name":"新","id":19679557,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减26.0元"},{"attribute":"{\"25\": {\"1\": 15, \"0\": 0}, \"60\": {\"1\": 30, \"0\": 0}, \"100\": {\"1\": 45, \"0\": 0}}","description":"满25减15,满60减30,满100减45(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18721270,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满25减15,满60减30,满100减45(不与美食活动同享)","type":102}],"address":"上海市静安区成都北路135号底层","average_cost":"¥24/人","description":"特色靓粥,各种口味,任意搭配。时尚、休闲和亲和力十足的价格已经成为了珍粥道特有的招牌","distance":1082,"float_delivery_fee":5,"float_minimum_order_amount":30,"id":15511,"image_path":"27a47a18f79a3be8dc4308283b947aacjpeg","is_new":false,"is_premium":false,"latitude":31.2262323533724,"longitude":121.467028472023,"max_applied_quantity_per_order":-1,"name":"蜀都冒菜","next_business_time":"","only_use_poi":false,"opening_hours":["09:00/00:30"],"order_lead_time":46,"phone":"15921655868 33051055","piecewise_agent_fee":{"description":"配送费¥5","extra_fee":0,"is_extra":false,"rules":[{"fee":5,"price":30}],"tips":"配送费¥5"},"promotion_info":"1、本店推荐“饿了么”网上订餐!饭口较忙,电话经常占线,建议您通过“饿了么”网上下单,本店优先配送网络订单!2、首次订餐用户,“饿了么”客服会电话联系您确认订单(021区号),订餐后请确保您的手机通畅及铃声状态,以方便外送员能及时联系到您!3、美食制作及配送均需要时间,为了不影响您的及时用餐,请大家提前一小时预订,避开订餐高峰期!“饿了么”全国客服电话:10105757","rating":4.4,"rating_count":1143,"recent_order_num":3617,"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18871572,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"48\": {\"1\": 12, \"0\": 0}, \"20\": {\"1\": 7, \"0\": 0}}","description":"满20减7,满48减12(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19044641,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满20减7,满48减12(不与美食活动同享)","type":102}],"address":"上海市长宁区延安西路1590号","average_cost":"¥26/人","bidding":"{\"index\":4,\"target\":{\"restaurantId\":2208739,\"weight\":400,\"probability\":17.031808853149414},\"come_from\":1,\"next\":{\"restaurantId\":92979,\"weight\":350,\"probability\":18.074642181396484}}","description":"","distance":2811,"float_delivery_fee":10,"float_minimum_order_amount":0,"id":2208739,"image_path":"6552d1eb40137a7647cc0a4198f2a065jpeg","is_new":true,"is_premium":false,"latitude":31.208658,"longitude":121.484649,"max_applied_quantity_per_order":-1,"name":"叫了个炸鸡(西藏南路店)","next_business_time":"","only_use_poi":false,"opening_hours":["10:00/01:00"],"order_lead_time":30,"phone":"15902150053","piecewise_agent_fee":{"description":"配送费¥10","extra_fee":0,"is_extra":false,"rules":[{"fee":10,"price":0}],"tips":"配送费¥10"},"promotion_info":"","rating":4.6,"rating_count":226,"recent_order_num":1282,"recommend":{"reason":"广告","track":"{\"rankType\":\"8\"}"},"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减30.0元","icon_color":"70bc46","icon_name":"新","id":19324905,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减30.0元"},{"attribute":"{\"65\": {\"1\": 18, \"0\": 0}, \"100\": {\"1\": 20, \"0\": 0}, \"30\": {\"1\": 17, \"0\": 0}}","description":"满30减17,满65减18,满100减20(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18968474,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减17,满65减18,满100减20(不与美食活动同享)","type":102},{"description":"年终大放送","icon_color":"f1884f","icon_name":"特","id":18200974,"name":"(不与其它活动同享)年终大放送","tips":"(不与其它活动同享)年终大放送"},{"description":"暖冬大回馈","icon_color":"f07373","icon_name":"特","id":18200522,"name":"(不与其它活动同享)暖冬大回馈","tips":"(不与其它活动同享)暖冬大回馈"}],"address":"崇明县长兴镇丰福路599弄181号108室","average_cost":"¥24/人","description":"","distance":441,"float_delivery_fee":8,"float_minimum_order_amount":15,"id":1777361,"image_path":"02cb4211d5dca701cf349ea842a49165jpeg","is_new":false,"is_premium":false,"latitude":31.236682,"longitude":121.475448,"max_applied_quantity_per_order":-1,"name":"老上海咸泡饭","next_business_time":"","only_use_poi":false,"opening_hours":["00:00/24:00"],"order_lead_time":40,"phone":"15221523083","piecewise_agent_fee":{"description":"配送费¥8","extra_fee":0,"is_extra":false,"rules":[{"fee":8,"price":15}],"tips":"配送费¥8"},"promotion_info":"","rating":4.4,"rating_count":596,"recent_order_num":2455,"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18370606,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"50\": {\"1\": 12, \"0\": 0}, \"100\": {\"1\": 25, \"0\": 0}}","description":"满50减12,满100减25(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18599489,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满50减12,满100减25(不与美食活动同享)","type":102}],"address":"上海市静安区吴江路202号","average_cost":"¥43/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"","distance":1526,"float_delivery_fee":12,"float_minimum_order_amount":0,"id":1942944,"image_path":"c5c617f3bddeee320e380ef25203e37dpng","is_new":false,"is_premium":false,"latitude":31.22956,"longitude":121.45991,"max_applied_quantity_per_order":-1,"name":"西北郎烧烤(吴江路店)","next_business_time":"","only_use_poi":false,"opening_hours":["12:00/01:20"],"order_lead_time":41,"phone":"13162756977","piecewise_agent_fee":{"description":"订单满100配送费3元,20至100付8元,不满20付12元","extra_fee":3,"is_extra":true,"rules":[{"fee":12,"price":0},{"fee":8,"price":20},{"fee":3,"price":100}],"tips":"配送费约¥8"},"promotion_info":"","rating":4.4,"rating_count":285,"recent_order_num":728,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":15905070,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"90\": {\"1\": 30, \"0\": 0}, \"60\": {\"1\": 20, \"0\": 0}, \"30\": {\"1\": 10, \"0\": 0}}","description":"满30减10,满60减20,满90减30(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18737100,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减10,满60减20,满90减30(不与美食活动同享)","type":102}],"address":"长乐路175号","average_cost":"¥35/人","description":"快来品尝正宗韩国炸鸡!!思密达!","distance":2320,"float_delivery_fee":4,"float_minimum_order_amount":25,"id":1028933,"image_path":"c2fcffe3a116def6ebd32eab37db1009jpeg","is_new":false,"is_premium":false,"latitude":31.212175,"longitude":121.479891,"max_applied_quantity_per_order":-1,"name":"doko.韩国炸鸡(新天地店)","next_business_time":"","only_use_poi":false,"opening_hours":["11:00/02:00"],"order_lead_time":36,"phone":"13636354849","piecewise_agent_fee":{"description":"配送费¥4","extra_fee":0,"is_extra":false,"rules":[{"fee":4,"price":25}],"tips":"配送费¥4"},"promotion_info":"本店优先配送饿了么,下雨天路滑送餐较慢,请多多担待哈!如果您的美食凉了,或者口味不好,一定要第一时间和本店联系,做的不好地方我们一定会加油改进,我们保证以新鲜 、干净、卫生的美食温暖您的胃,如果您的送餐服务口味满意的话请给本店5星好评哦哦!!!","rating":4.7,"rating_count":511,"recent_order_num":2736,"regular_customer_count":0,"status":1,"supports":[{"description":"该商家支持开发票,开票订单金额300.0元起,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18842726,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"100\": {\"1\": 40, \"0\": 0}, \"62\": {\"1\": 32, \"0\": 0}, \"30\": {\"1\": 16, \"0\": 0}}","description":"满30减16,满62减32,满100减40(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18709662,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减16,满62减32,满100减40(不与美食活动同享)","type":102},{"description":"新年折扣回馈","icon_color":"f07373","icon_name":"折","id":19615354,"name":"(不与其它活动同享)新年折扣回馈","tips":"(不与其它活动同享)新年折扣回馈"}],"address":"上海市虹口区海宁路139号","average_cost":"¥25/人","description":"本店位置海宁路139号。近吴淞路","distance":2599,"float_delivery_fee":6,"float_minimum_order_amount":45,"id":1245502,"image_path":"2fec7bd61bfec0cda5c09d3db68d7ac7png","is_new":false,"is_premium":false,"latitude":31.252458,"longitude":121.490175,"max_applied_quantity_per_order":-1,"name":"蜀地源冒菜","next_business_time":"","only_use_poi":false,"opening_hours":["10:00/01:30"],"order_lead_time":37,"phone":"15921068996","piecewise_agent_fee":{"description":"配送费¥6","extra_fee":0,"is_extra":false,"rules":[{"fee":6,"price":45}],"tips":"配送费¥6"},"promotion_info":"亲们,本店位于虹口区海宁路139号,近吴淞路。欢迎新老顾客品尝,中午高峰期请提前1小时下单,每一份东西均为100克,有些100克的菜品煮起来感觉很少,我们量是给够的请大家放心和理解。。。。。。谢谢新老顾客顾客的长期支持。。。。。。店面电话15921068996欢迎来电","rating":4.6,"rating_count":1357,"recent_order_num":3246,"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":15764965,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"80\": {\"1\": 10, \"0\": 0}, \"40\": {\"1\": 5, \"0\": 0}}","description":"满40减5,满80减10(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18960552,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满40减5,满80减10(不与美食活动同享)","type":102}],"address":"上海市闸北区共和新路480号","average_cost":"¥30/人","bidding":"{\"index\":9,\"target\":{\"restaurantId\":92979,\"weight\":350,\"probability\":18.074642181396484},\"come_from\":1,\"next\":{\"restaurantId\":611917,\"weight\":180,\"probability\":29.188251495361328}}","description":"A梦餐廳Eamonn's 闸北(共新店)以时下最流行的创意菜为主线,食材新鲜,用料讲究,精心烹调,口味丰富,有特色砂锅系列套餐,干锅系列,烩饭,芝士烤饭,咖喱饭,蛋包饭,Friedrice,Pasta,小海鲜,精美小炒,特色家常菜为主,店面大气而典雅,300平米用餐环境,2个连体包房,80个餐位,经营业态:堂吃,外卖和外带,A梦已经打造出一套完整的外送体系,滿足不同另类要求,十年树木,百年树人,千年树品牌,以客為尊,全新打造上海本土品牌新纪元","distance":2406,"float_delivery_fee":5,"float_minimum_order_amount":35,"id":92979,"image_path":"f617744b9b3576e343b0a8975bc99195png","is_new":false,"is_premium":true,"latitude":31.2516313276946,"longitude":121.463252655069,"max_applied_quantity_per_order":-1,"name":"A梦Eamonns(共新店)","next_business_time":"","only_use_poi":false,"opening_hours":["09:00/03:00"],"order_lead_time":56,"phone":"66075363 66078657 66075516","piecewise_agent_fee":{"description":"配送费¥5","extra_fee":0,"is_extra":false,"rules":[{"fee":5,"price":35}],"tips":"配送费¥5"},"promotion_info":"A梦餐廳Eamonn's 闸北(共新店)位于共和新路480号,晚市及夜宵堂吃爆款优惠活动,每桌满88元,即可享受7款1元超值特价,干锅牛蛙1元,西湖糖醋大黄鱼1元,椒盐龙头烤1元,清蒸鲈鱼1元,孜然小肥牛1元,蟹粉豆腐1元,红烧鳊鱼1元,本餐厅所有食物为下单后现做,热炒,新鲜食材,小锅菜,中午用餐的顾客请提前1个小时预定订单,谢谢!本餐厅外卖保温采用顶级pvc内胆隔源储温技术,保证热气腾腾的食物!!!本店客服电话 021-66075363, 021-66075516, 021-66078657","rating":4.7,"rating_count":4785,"recent_order_num":13673,"recommend":{"reason":"广告","track":"{\"rankType\":\"8\"}"},"regular_customer_count":0,"status":1,"supports":[{"description":"该商家支持开发票,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"}]},{"activities":[{"description":"新用户下单立减30.0元","icon_color":"70bc46","icon_name":"新","id":19324905,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减30.0元"},{"attribute":"{\"100\": {\"1\": 30, \"0\": 0}, \"140\": {\"1\": 35, \"0\": 0}, \"60\": {\"1\": 25, \"0\": 0}, \"30\": {\"1\": 14, \"0\": 0}}","description":"满30减14,满60减25,满100减30,满140减35(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19398834,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减14,满60减25,满100减30,满140减35(不与美食活动同享)","type":102},{"description":"抄手特价","icon_color":"f07373","icon_name":"特","id":19368040,"name":"(不与其它活动同享)抄手特价","tips":"(不与其它活动同享)抄手特价"},{"description":"麻辣抄手","icon_color":"f07373","icon_name":"特","id":19368002,"name":"(不与其它活动同享)麻辣抄手","tips":"(不与其它活动同享)麻辣抄手"},{"description":"新品推出","icon_color":"f07373","icon_name":"特","id":19365042,"name":"(不与其它活动同享)新品推出","tips":"(不与其它活动同享)新品推出"}],"address":"上海市黄浦区南京西路258号","average_cost":"¥24/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"饿了么全国客服热线 10105757 \n正宗重庆小面,重庆味道,调料和厨师均由重庆空运而来,欢迎品尝!所有浇头都是每天现烧,保证食材的新鲜。本店春节期间正常营业。感谢大家支持 ","distance":401,"float_delivery_fee":12,"float_minimum_order_amount":0,"id":489812,"image_path":"67be3a98053015ece61e7d5b3afda8a2jpeg","is_new":false,"is_premium":false,"latitude":31.233667,"longitude":121.471466,"max_applied_quantity_per_order":-1,"name":"辣家小面馆(重庆小面)","next_business_time":"","only_use_poi":false,"opening_hours":["00:00/24:00"],"order_lead_time":37,"phone":"18521029088","piecewise_agent_fee":{"description":"订单满100配送费3元,20至100付8元,不满20付12元","extra_fee":3,"is_extra":true,"rules":[{"fee":12,"price":0},{"fee":8,"price":20},{"fee":3,"price":100}],"tips":"配送费约¥8"},"promotion_info":"各位小主,本店优先配送饿了么,遇到恶劣天气送餐较慢,请多多担待哈!如果您的美食凉了,或者口味不好,一定要第一时间和本店联系,做得不好的地方我们一定加油改进,在这个寒冷的冬季,我们一定努力温暖您的胃,如您对送餐服务口味满意请给我5分好评呦!u","rating":4.4,"rating_count":770,"recent_order_num":4269,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"该商家支持开发票,开票订单金额80.0元起,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":16818382,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"25\": {\"1\": 11, \"0\": 0}, \"45\": {\"1\": 16, \"0\": 0}, \"70\": {\"1\": 25, \"0\": 0}}","description":"满25减11,满45减16,满70减25(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18194242,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满25减11,满45减16,满70减25(不与美食活动同享)","type":102}],"address":"上海市虹口区东大名路687-713号7幢2层","average_cost":"¥19/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"三米粥铺,只做温暖的味道......","distance":2141,"float_delivery_fee":13,"float_minimum_order_amount":0,"id":1822568,"image_path":"a279a9db7301f9a58b14ccab24b74d31png","is_new":false,"is_premium":false,"latitude":31.24692,"longitude":121.49073,"max_applied_quantity_per_order":-1,"name":"三米粥铺(峨眉路店)","next_business_time":"","only_use_poi":false,"opening_hours":["06:40/24:00"],"order_lead_time":36,"phone":"15821077918","piecewise_agent_fee":{"description":"订单满100配送费4元,20至100付9元,不满20付13元","extra_fee":4,"is_extra":true,"rules":[{"fee":13,"price":0},{"fee":9,"price":20},{"fee":4,"price":100}],"tips":"配送费约¥9"},"promotion_info":"点外卖?还没想好吃什么吧!我只点三米粥铺,你不来试试?\n粥有五事利身!\n一者除饥,二者除口渴,三者下气,四者却脐下冷,五者消宿食\n——戒书","rating":4.3,"rating_count":1243,"recent_order_num":4113,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"该商家支持开发票,开票订单金额50.0元起,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":17635860,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"50\": {\"1\": 10, \"0\": 0}, \"30\": {\"1\": 5, \"0\": 0}}","description":"满30减5,满50减10(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19001531,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减5,满50减10(不与美食活动同享)","type":102}],"address":"闸北区东宝兴路458弄42号","average_cost":"¥30/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"","distance":2959,"float_delivery_fee":14,"float_minimum_order_amount":0,"id":2103641,"image_path":"c7281b6564926bfae951b28845d7dc4epng","is_new":false,"is_premium":false,"latitude":31.25917,"longitude":121.478919,"max_applied_quantity_per_order":-1,"name":"桥头排骨","next_business_time":"","only_use_poi":false,"opening_hours":["12:00/23:30"],"order_lead_time":40,"phone":"13661434542","piecewise_agent_fee":{"description":"订单满100配送费5元,20至100付10元,不满20付14元","extra_fee":5,"is_extra":true,"rules":[{"fee":14,"price":0},{"fee":10,"price":20},{"fee":5,"price":100}],"tips":"配送费约¥10"},"promotion_info":"本店食品,酥脆可口,油而不腻","rating":4.7,"rating_count":152,"recent_order_num":539,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":15902268,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"50\": {\"1\": 15, \"0\": 0}, \"100\": {\"1\": 30, \"0\": 0}}","description":"满50减15,满100减30(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18617213,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满50减15,满100减30(不与美食活动同享)","type":102}],"address":"静安区南京西路388号仙乐斯广场B1F","average_cost":"¥43/人","description":"`","distance":607,"float_delivery_fee":9,"float_minimum_order_amount":30,"id":40901,"image_path":"fc677195775eb2ab0df6e931a8e7e703jpeg","is_new":false,"is_premium":true,"latitude":31.23138,"longitude":121.469337,"max_applied_quantity_per_order":-1,"name":"红料理(仙乐斯店)","next_business_time":"","only_use_poi":false,"opening_hours":["10:00/02:15"],"order_lead_time":65,"phone":"021-33051511","piecewise_agent_fee":{"description":"配送费¥9","extra_fee":0,"is_extra":false,"rules":[{"fee":9,"price":30}],"tips":"配送费¥9"},"promotion_info":"本店可以下预定订单哦~","rating":4.4,"rating_count":634,"recent_order_num":1081,"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减30.0元","icon_color":"70bc46","icon_name":"新","id":19324905,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减30.0元"},{"attribute":"{\"50\": {\"1\": 15, \"0\": 0}, \"100\": {\"1\": 20, \"0\": 0}, \"30\": {\"1\": 10, \"0\": 0}}","description":"满30减10,满50减15,满100减20(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19010760,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减10,满50减15,满100减20(不与美食活动同享)","type":102}],"address":"黄浦区黄河路150号","average_cost":"¥27/人","bidding":"{\"index\":14,\"target\":{\"restaurantId\":611917,\"weight\":180,\"probability\":29.188251495361328},\"come_from\":1,\"next\":{\"restaurantId\":25624,\"weight\":270,\"probability\":15.39933967590332}}","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"快来点来自韩国的炸鸡块.有不同的味道喔!甜辣、辣酱、大蒜、酱油还有蜂蜜芥末。\n 里面是加了咖喱、菠萝、大蒜、桂皮、生姜等二十多种食材精心熬制的秘密甜辣酱。","distance":578,"float_delivery_fee":12,"float_minimum_order_amount":0,"id":611917,"image_path":"bf7cb97de0067cd367196e8c75761b00png","is_new":false,"is_premium":false,"latitude":31.235482,"longitude":121.470385,"max_applied_quantity_per_order":-1,"name":"Holic(韩国火热炸鸡)","next_business_time":"","only_use_poi":false,"opening_hours":["10:20/24:00"],"order_lead_time":36,"phone":"13122362348","piecewise_agent_fee":{"description":"订单满100配送费3元,20至100付8元,不满20付12元","extra_fee":3,"is_extra":true,"rules":[{"fee":12,"price":0},{"fee":8,"price":20},{"fee":3,"price":100}],"tips":"配送费约¥8"},"promotion_info":"欢迎您光临本店!!","rating":4.8,"rating_count":354,"recent_order_num":1513,"recommend":{"reason":"广告","track":"{\"rankType\":\"8\"}"},"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18204133,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"25\": {\"1\": 12, \"0\": 0}, \"60\": {\"1\": 20, \"0\": 0}}","description":"满25减12,满60减20(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19328001,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满25减12,满60减20(不与美食活动同享)","type":102},{"description":"新年特惠","icon_color":"f1884f","icon_name":"特","id":19470461,"name":"(不与其它活动同享)新年特惠","tips":"(不与其它活动同享)新年特惠"}],"address":"黄浦区中山南路1748号","average_cost":"¥25/人","description":"","distance":3596,"float_delivery_fee":15,"float_minimum_order_amount":20,"id":2113495,"image_path":"2716bb6202e5ef2f2c4b51f115036c8cpng","is_new":false,"is_premium":false,"latitude":31.20404,"longitude":121.49305,"max_applied_quantity_per_order":-1,"name":"嘉兴粽子(黄浦店)","next_business_time":"","only_use_poi":false,"opening_hours":["00:00/24:00"],"order_lead_time":46,"phone":"13122182771","piecewise_agent_fee":{"description":"配送费¥15","extra_fee":0,"is_extra":false,"rules":[{"fee":15,"price":20}],"tips":"配送费¥15"},"promotion_info":"","rating":4.6,"rating_count":271,"recent_order_num":669,"regular_customer_count":0,"status":1,"supports":[{"description":"该商家支持开发票,开票订单金额100.0元起,请在下单时填写好发票抬头","icon_color":"999999","icon_name":"票","id":4,"name":"开发票"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":19081083,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"100\": {\"1\": 33, \"0\": 0}, \"60\": {\"1\": 21, \"0\": 0}, \"30\": {\"1\": 11, \"0\": 0}}","description":"满30减11,满60减21,满100减33(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":19639826,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减11,满60减21,满100减33(不与美食活动同享)","type":102}],"address":"上海市黄浦区五里桥街道瞿溪路860号-2","average_cost":"¥29/人","description":"","distance":3641,"float_delivery_fee":7,"float_minimum_order_amount":55,"id":1339278,"image_path":"bde2dc1448c33e4fa17202091d35c761png","is_new":false,"is_premium":false,"latitude":31.200192,"longitude":121.480056,"max_applied_quantity_per_order":-1,"name":"韩式炸鸡啤酒","next_business_time":"","only_use_poi":false,"opening_hours":["10:45/03:10"],"order_lead_time":40,"phone":"17321267232 18979333232","piecewise_agent_fee":{"description":"配送费¥7","extra_fee":0,"is_extra":false,"rules":[{"fee":7,"price":55}],"tips":"配送费¥7"},"promotion_info":"欢迎光临韩式炸鸡啤酒屋,用餐高峰期请提前下单,谢谢!","rating":4.6,"rating_count":449,"recent_order_num":2055,"regular_customer_count":0,"status":1,"supports":[]},{"activities":[{"description":"新用户下单立减30.0元","icon_color":"70bc46","icon_name":"新","id":19324941,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减30.0元"},{"attribute":"{\"100\": {\"1\": 10, \"0\": 0}, \"60\": {\"1\": 8, \"0\": 0}, \"30\": {\"1\": 6, \"0\": 0}}","description":"满30减6,满60减8,满100减10(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18933224,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减6,满60减8,满100减10(不与美食活动同享)","type":102}],"address":"上海市黄浦区海口路17号","average_cost":"¥30/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"","distance":546,"float_delivery_fee":12,"float_minimum_order_amount":0,"id":1186616,"image_path":"1cc8913f4cf90a9621cea1615a22b8afjpeg","is_new":false,"is_premium":false,"latitude":31.23138,"longitude":121.481071,"max_applied_quantity_per_order":-1,"name":"彭浦第一炸(山东路店)","next_business_time":"","only_use_poi":false,"opening_hours":["16:00/02:30"],"order_lead_time":35,"phone":"15618266978","piecewise_agent_fee":{"description":"订单满100配送费3元,20至100付8元,不满20付12元","extra_fee":3,"is_extra":true,"rules":[{"fee":12,"price":0},{"fee":8,"price":20},{"fee":3,"price":100}],"tips":"配送费约¥8"},"promotion_info":"","rating":4.6,"rating_count":601,"recent_order_num":1198,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减20.0元","icon_color":"70bc46","icon_name":"新","id":18895011,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减20.0元"},{"attribute":"{\"25\": {\"1\": 15, \"0\": 0}, \"50\": {\"1\": 20, \"0\": 0}, \"100\": {\"1\": 27, \"0\": 0}}","description":"满25减15,满50减20,满100减27(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18860303,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满25减15,满50减20,满100减27(不与美食活动同享)","type":102}],"address":"上海市虹口区溧阳路735号","average_cost":"¥18/人","delivery_mode":{"color":"57A9FF","id":1,"is_solid":true,"text":"蜂鸟专送"},"description":"……","distance":2221,"float_delivery_fee":13,"float_minimum_order_amount":0,"id":546557,"image_path":"6bb0c8e1e6d92778671b0befef05be25jpeg","is_new":false,"is_premium":false,"latitude":31.25016,"longitude":121.4869,"max_applied_quantity_per_order":-1,"name":"黄焖鸡米饭京味水饺","next_business_time":"","only_use_poi":false,"opening_hours":["08:00/23:30"],"order_lead_time":39,"phone":"15921719607","piecewise_agent_fee":{"description":"订单满100配送费4元,20至100付9元,不满20付13元","extra_fee":4,"is_extra":true,"rules":[{"fee":13,"price":0},{"fee":9,"price":20},{"fee":4,"price":100}],"tips":"配送费约¥9"},"promotion_info":"各位小主,本店优先配送饿了么,遇到恶劣天气送餐较慢,请多多担待哈!如果您的美食凉了,或者口味不好,一定要第一时间和本店联系,做得不好的地方我们一定加油改进,在这个寒冷的冬季,我们一定努力温暖您的胃,如您对送餐服务口味满意请给我5分好评呦!!!饿了么网络订餐,汇集周边所有美食,水果、生鲜、烧烤、超市、美食快餐应有尽!美好生活,触手可得!!!","rating":4.5,"rating_count":465,"recent_order_num":2613,"regular_customer_count":0,"status":1,"supports":[{"description":"已加入“外卖保”计划,食品安全有保障","icon_color":"999999","icon_name":"保","id":7,"name":"外卖保"},{"description":"准时必达,超时秒赔","icon_color":"57A9FF","icon_name":"准","id":9,"name":"准时达"}]},{"activities":[{"description":"新用户下单立减28.0元","icon_color":"70bc46","icon_name":"新","id":19081144,"name":"新用户立减(不与其他活动共享)","tips":"新用户下单立减28.0元"},{"attribute":"{\"120\": {\"1\": 15, \"0\": 0}, \"60\": {\"1\": 10, \"0\": 0}, \"30\": {\"1\": 5, \"0\": 0}}","description":"满30减5,满60减10,满120减15(不与美食活动同享)","icon_color":"f07373","icon_name":"减","id":18375696,"is_exclusive_with_food_activity":true,"name":"满减优惠","tips":"满30减5,满60减10,满120减15(不与美食活动同享)","type":102}],"address":"黄浦区打浦桥街道顺昌路517-519号","average_cost":"¥44/人","bidding":"{\"index\":19,\"target\":{\"restaurantId\":25624,\"weight\":270,\"probability\":15.39933967590332},\"come_from\":1,\"next\":{\"restaurantId\":1141943,\"weight\":310,\"probability\":11.485037803649902}}","description":"各类炒菜, 夜宵,地方小吃,水饺,","distance":2298,"float_delivery_fee":4,"float_minimum_order_amount":40,"id":25624,"image_path":"f4a2d0d25081dfcd0c79dd54e01a9f28jpeg","is_new":false,"is_premium":false,"latitude":31.212324,"longitude":121.479564,"max_applied_quantity_per_order":-1,"name":"长顺来(家常小炒)","next_business_time":"","only_use_poi":false,"opening_hours":["16:15/04:40"],"order_lead_time":44,"phone":"13816089210","piecewise_agent_fee":{"description":"配送费¥4","extra_fee":0,"is_extra":false,"rules":[{"fee":4,"price":40}],"tips":"配送费¥4"},"promotion_info":"本店所有菜都是现切,现烧,绝对新鲜可靠。忙的时候送的可能会慢点,请新老客户见谅,我们会尽量改善。要吃米饭的顾客请到主食类点,别忘了收藏本餐厅,谢谢!!,如有疑问请致电13816089210","rating":4.2,"rating_count":364,"recent_order_num":1589,"recommend":{"reason":"广告","track":"{\"rankType\":\"8\"}"},"regular_customer_count":0,"status":1,"supports":[]}] + + diff --git a/src/store/index.js b/src/store/index.js index a3afddfd53680823900ade151056c4a53a571978..82c9e3f3a1b8454834b30ed4ba1e2c00fa1d37f5 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -3,20 +3,17 @@ import Vuex from 'vuex' import mutations from './mutations' import actions from './action' import getters from './getters' -import checkout from './modules/checkout/checkout' Vue.use(Vuex) const state = { - test1: null + latitude: '', // 当前位置纬度 + longitude: '', // 当前位置经度 } export default new Vuex.Store({ state, getters, actions, - mutations, - modules: { - checkout, - } + mutations }) \ No newline at end of file diff --git a/src/store/modules/checkout/checkout.js b/src/store/modules/checkout/checkout.js deleted file mode 100644 index 11f7519a866a150f45beef484ff16840044a8e91..0000000000000000000000000000000000000000 --- a/src/store/modules/checkout/checkout.js +++ /dev/null @@ -1,32 +0,0 @@ -import { GET_DATA2 } from '../../mutation-types' -import { cityGuess } from '../../../service/getData' - -const state = { - test2: null -} - -const getters = { - -} - -const mutations = { - [GET_DATA2] (state, { data }) { - console.log(data) - state.test2 = data - }, -} - -const actions = { - getData2({ commit, state }) { - cityGuess().then(res => { - commit(GET_DATA2, {data: res}) - }) - }, -} - -export default { - state, - getters, - mutations, - actions -} \ No newline at end of file diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js index 5e55360afa7e72b14d0397deab9c0d56e711a77c..739da1a12ea1e745ef0eb8a0416944f10187061d 100644 --- a/src/store/mutation-types.js +++ b/src/store/mutation-types.js @@ -1,2 +1,2 @@ -export const GET_DATA = 'GET_DATA' +export const RECORD_ADDRESS = 'RECORD_ADDRESS' export const GET_DATA2 = 'GET_DATA2' \ No newline at end of file diff --git a/src/store/mutations.js b/src/store/mutations.js index e8f081f8dadad47e1d09e550ada3e5d656d388ce..985a9c93262d50dafd22fc7ffb59159a7d096a8e 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -1,8 +1,9 @@ -import { GET_DATA } from './mutation-types.js' +import { RECORD_ADDRESS } from './mutation-types.js' export default { - [GET_DATA] (state, { data }) { - console.log(data) - state.test1 = data + // 记录当前经度纬度 + [RECORD_ADDRESS] (state, {latitude, longitude}) { + state.latitude = latitude; + state.longitude = longitude; }, } \ No newline at end of file diff --git a/src/style/common.scss b/src/style/common.scss index 8cae64c8e18d7131c346ddff22641fdeb12304a2..6842f2afc851530c52bcbd3de013639bdb49b88a 100644 --- a/src/style/common.scss +++ b/src/style/common.scss @@ -1,4 +1,4 @@ -body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, li, a, p, h1, h2, h3, h4,h5, i, b, textarea, button, input, select { +body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, li, a, p, h1, h2, h3, h4,h5, h6, i, b, textarea, button, input, select, figure, figcaption { padding: 0; margin: 0; list-style: none; @@ -10,6 +10,7 @@ body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, l font-weight: lighter; font-family: "Microsoft Yahei",sans-serif; -webkit-tap-highlight-color:transparent; + -webkit-font-smoothing: antialiased; &:focus { outline: none; } @@ -19,7 +20,7 @@ input[type="button"], input[type="submit"], input[type="search"], input[type="re -webkit-appearance: none; } -textarea { -webkit-appearance: none;} +textarea { -webkit-appearance: none;} html,body{ height: 100%; diff --git a/src/style/mixin.scss b/src/style/mixin.scss index 16d429876980fe684eb19b80fa3ca2d0bd671767..f526324d3658586b7186ba453baba1f5a043ab48 100644 --- a/src/style/mixin.scss +++ b/src/style/mixin.scss @@ -1,8 +1,8 @@ $blue: #3190e8; -$bordercolor: #e4e4e4; +$bc: #e4e4e4; -// 背景图片设置 -@mixin backimg($url) { +// 背景图片地址和大小 +@mixin bis($url) { background-image: url($url); background-repeat: no-repeat; background-size: 100% 100%; @@ -17,7 +17,7 @@ $bordercolor: #e4e4e4; } //定位上下居中 -@mixin center-top { +@mixin ct { position: absolute; top: 50%; transform: translateY(-50%); @@ -35,7 +35,14 @@ $bordercolor: #e4e4e4; } //字体大小,颜色 -@mixin sizecolor($size, $color){ +@mixin sc($size, $color){ font-size: $size; color: $color; +} + +//flex 布局和 子元素 对其方式 +@mixin fj($type: space-between){ + display: flex; + justify-content: $type; + } \ No newline at end of file diff --git a/src/style/swiper.min.css b/src/style/swiper.min.css new file mode 100755 index 0000000000000000000000000000000000000000..82047e2b220f03adb23ae3015c6b57699d51aeff --- /dev/null +++ b/src/style/swiper.min.css @@ -0,0 +1,15 @@ +/** + * Swiper 3.4.1 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * + * http://www.idangero.us/swiper/ + * + * Copyright 2016, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: December 13, 2016 + */ +.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{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");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{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")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{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")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{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");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{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")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{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")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;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");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{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")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}} \ No newline at end of file