12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038 |
- module.exports =
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // object to store loaded chunks
- /******/ // "0" means "already loaded"
- /******/ var installedChunks = {
- /******/ 0: 0
- /******/ };
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/ // This file contains only the entry chunk.
- /******/ // The chunk loading function for additional chunks
- /******/ __webpack_require__.e = function requireEnsure(chunkId) {
- /******/ var promises = [];
- /******/
- /******/
- /******/ // require() chunk loading for javascript
- /******/
- /******/ // "0" is the signal for "already loaded"
- /******/ if(installedChunks[chunkId] !== 0) {
- /******/ var chunk = require("./" + ({"1":"components/contact-consult","2":"components/contact-join-us","3":"pages/about/index","4":"pages/brand/detail","5":"pages/brand/index","6":"pages/brand/ross","7":"pages/case/index","8":"pages/contact/consult","9":"pages/contact/index","10":"pages/contact/job","11":"pages/contact/join-us","12":"pages/cooperation/index","13":"pages/index","14":"pages/news/detail","15":"pages/news/index","16":"pages/product/binary-premium","17":"pages/product/binary/therapy-1","18":"pages/product/binary/therapy-2","19":"pages/product/binary/therapy-3","20":"pages/product/binary/therapy-4","21":"pages/product/diactivplus","22":"pages/product/intradermik","23":"pages/product/kestos","24":"pages/product/mesobiolift","25":"pages/product/rollaction"}[chunkId]||chunkId) + ".js");
- /******/ var moreModules = chunk.modules, chunkIds = chunk.ids;
- /******/ for(var moduleId in moreModules) {
- /******/ modules[moduleId] = moreModules[moduleId];
- /******/ }
- /******/ for(var i = 0; i < chunkIds.length; i++)
- /******/ installedChunks[chunkIds[i]] = 0;
- /******/ }
- /******/ return Promise.all(promises);
- /******/ };
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "/_nuxt/";
- /******/
- /******/ // uncaught error handler for webpack runtime
- /******/ __webpack_require__.oe = function(err) {
- /******/ process.nextTick(function() {
- /******/ throw err; // catch this error by using import().catch()
- /******/ });
- /******/ };
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 12);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, exports) {
- module.exports = require("vue");
- /***/ }),
- /* 1 */
- /***/ (function(module, exports) {
- module.exports = require("ufo");
- /***/ }),
- /* 2 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
- /* globals __VUE_SSR_CONTEXT__ */
- // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
- // This module is a runtime utility for cleaner component module output and will
- // be included in the final webpack user bundle.
- function normalizeComponent(
- scriptExports,
- render,
- staticRenderFns,
- functionalTemplate,
- injectStyles,
- scopeId,
- moduleIdentifier /* server only */,
- shadowMode /* vue-cli only */
- ) {
- // Vue.extend constructor export interop
- var options =
- typeof scriptExports === 'function' ? scriptExports.options : scriptExports
- // render functions
- if (render) {
- options.render = render
- options.staticRenderFns = staticRenderFns
- options._compiled = true
- }
- // functional template
- if (functionalTemplate) {
- options.functional = true
- }
- // scopedId
- if (scopeId) {
- options._scopeId = 'data-v-' + scopeId
- }
- var hook
- if (moduleIdentifier) {
- // server build
- hook = function (context) {
- // 2.3 injection
- context =
- context || // cached call
- (this.$vnode && this.$vnode.ssrContext) || // stateful
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
- // 2.2 with runInNewContext: true
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- // inject component styles
- if (injectStyles) {
- injectStyles.call(this, context)
- }
- // register component module identifier for async chunk inferrence
- if (context && context._registeredComponents) {
- context._registeredComponents.add(moduleIdentifier)
- }
- }
- // used by ssr in case component is cached and beforeCreate
- // never gets called
- options._ssrRegister = hook
- } else if (injectStyles) {
- hook = shadowMode
- ? function () {
- injectStyles.call(
- this,
- (options.functional ? this.parent : this).$root.$options.shadowRoot
- )
- }
- : injectStyles
- }
- if (hook) {
- if (options.functional) {
- // for template-only hot-reload because in that case the render fn doesn't
- // go through the normalizer
- options._injectStyles = hook
- // register for functional component in vue file
- var originalRender = options.render
- options.render = function renderWithStyleInjection(h, context) {
- hook.call(context)
- return originalRender(h, context)
- }
- } else {
- // inject component registration as beforeCreate hook
- var existing = options.beforeCreate
- options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
- }
- }
- return {
- exports: scriptExports,
- options: options
- }
- }
- /***/ }),
- /* 3 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- // css base code, injected by the css-loader
- // eslint-disable-next-line func-names
- module.exports = function (useSourceMap) {
- var list = []; // return the list of modules as css string
- list.toString = function toString() {
- return this.map(function (item) {
- var content = cssWithMappingToString(item, useSourceMap);
- if (item[2]) {
- return "@media ".concat(item[2], " {").concat(content, "}");
- }
- return content;
- }).join('');
- }; // import a list of modules into the list
- // eslint-disable-next-line func-names
- list.i = function (modules, mediaQuery, dedupe) {
- if (typeof modules === 'string') {
- // eslint-disable-next-line no-param-reassign
- modules = [[null, modules, '']];
- }
- var alreadyImportedModules = {};
- if (dedupe) {
- for (var i = 0; i < this.length; i++) {
- // eslint-disable-next-line prefer-destructuring
- var id = this[i][0];
- if (id != null) {
- alreadyImportedModules[id] = true;
- }
- }
- }
- for (var _i = 0; _i < modules.length; _i++) {
- var item = [].concat(modules[_i]);
- if (dedupe && alreadyImportedModules[item[0]]) {
- // eslint-disable-next-line no-continue
- continue;
- }
- if (mediaQuery) {
- if (!item[2]) {
- item[2] = mediaQuery;
- } else {
- item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
- }
- }
- list.push(item);
- }
- };
- return list;
- };
- function cssWithMappingToString(item, useSourceMap) {
- var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring
- var cssMapping = item[3];
- if (!cssMapping) {
- return content;
- }
- if (useSourceMap && typeof btoa === 'function') {
- var sourceMapping = toComment(cssMapping);
- var sourceURLs = cssMapping.sources.map(function (source) {
- return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */");
- });
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
- }
- return [content].join('\n');
- } // Adapted from convert-source-map (MIT)
- function toComment(sourceMap) {
- // eslint-disable-next-line no-undef
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
- var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
- return "/*# ".concat(data, " */");
- }
- /***/ }),
- /* 4 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- // ESM COMPAT FLAG
- __webpack_require__.r(__webpack_exports__);
- // EXPORTS
- __webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ addStylesServer; });
- // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js
- /**
- * Translates the list format produced by css-loader into something
- * easier to manipulate.
- */
- function listToStyles (parentId, list) {
- var styles = []
- var newStyles = {}
- for (var i = 0; i < list.length; i++) {
- var item = list[i]
- var id = item[0]
- var css = item[1]
- var media = item[2]
- var sourceMap = item[3]
- var part = {
- id: parentId + ':' + i,
- css: css,
- media: media,
- sourceMap: sourceMap
- }
- if (!newStyles[id]) {
- styles.push(newStyles[id] = { id: id, parts: [part] })
- } else {
- newStyles[id].parts.push(part)
- }
- }
- return styles
- }
- // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesServer.js
- function addStylesServer (parentId, list, isProduction, context) {
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- if (context) {
- if (!context.hasOwnProperty('styles')) {
- Object.defineProperty(context, 'styles', {
- enumerable: true,
- get: function() {
- return renderStyles(context._styles)
- }
- })
- // expose renderStyles for vue-server-renderer (vuejs/#6353)
- context._renderStyles = renderStyles
- }
- var styles = context._styles || (context._styles = {})
- list = listToStyles(parentId, list)
- if (isProduction) {
- addStyleProd(styles, list)
- } else {
- addStyleDev(styles, list)
- }
- }
- }
- // In production, render as few style tags as possible.
- // (mostly because IE9 has a limit on number of style tags)
- function addStyleProd (styles, list) {
- for (var i = 0; i < list.length; i++) {
- var parts = list[i].parts
- for (var j = 0; j < parts.length; j++) {
- var part = parts[j]
- // group style tags by media types.
- var id = part.media || 'default'
- var style = styles[id]
- if (style) {
- if (style.ids.indexOf(part.id) < 0) {
- style.ids.push(part.id)
- style.css += '\n' + part.css
- }
- } else {
- styles[id] = {
- ids: [part.id],
- css: part.css,
- media: part.media
- }
- }
- }
- }
- }
- // In dev we use individual style tag for each module for hot-reload
- // and source maps.
- function addStyleDev (styles, list) {
- for (var i = 0; i < list.length; i++) {
- var parts = list[i].parts
- for (var j = 0; j < parts.length; j++) {
- var part = parts[j]
- styles[part.id] = {
- ids: [part.id],
- css: part.css,
- media: part.media
- }
- }
- }
- }
- function renderStyles (styles) {
- var css = ''
- for (var key in styles) {
- var style = styles[key]
- css += '<style data-vue-ssr-id="' + style.ids.join(' ') + '"' +
- (style.media ? ( ' media="' + style.media + '"' ) : '') + '>' +
- style.css + '</style>'
- }
- return css
- }
- /***/ }),
- /* 5 */
- /***/ (function(module, exports) {
- module.exports = require("vue-no-ssr");
- /***/ }),
- /* 6 */
- /***/ (function(module, exports) {
- module.exports = require("vue-client-only");
- /***/ }),
- /* 7 */
- /***/ (function(module, exports) {
- module.exports = require("vue-router");
- /***/ }),
- /* 8 */
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__(15);
- if(content.__esModule) content = content.default;
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add CSS to SSR context
- var add = __webpack_require__(4).default
- module.exports.__inject__ = function (context) {
- add("1a25bb1a", content, true, context)
- };
- /***/ }),
- /* 9 */
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__(17);
- if(content.__esModule) content = content.default;
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- // add CSS to SSR context
- var add = __webpack_require__(4).default
- module.exports.__inject__ = function (context) {
- add("1a73ea6b", content, true, context)
- };
- /***/ }),
- /* 10 */
- /***/ (function(module, exports) {
- module.exports = require("node-fetch");
- /***/ }),
- /* 11 */
- /***/ (function(module, exports) {
- module.exports = require("vue-meta");
- /***/ }),
- /* 12 */
- /***/ (function(module, exports, __webpack_require__) {
- __webpack_require__(13);
- module.exports = __webpack_require__(22);
- /***/ }),
- /* 13 */
- /***/ (function(module, exports) {
- global.installComponents = function (component, components) {
- var options = typeof component.exports === 'function'
- ? component.exports.extendOptions
- : component.options
- if (typeof component.exports === 'function') {
- options.components = component.exports.options.components
- }
- options.components = options.components || {}
- for (var i in components) {
- options.components[i] = options.components[i] || components[i]
- }
- if (options.functional) {
- provideFunctionalComponents(component, options.components)
- }
- }
- var functionalPatchKey = '_functionalComponents'
- function provideFunctionalComponents(component, components) {
- if (component.exports[functionalPatchKey]) {
- return
- }
- component.exports[functionalPatchKey] = true
- var render = component.exports.render
- component.exports.render = function (h, vm) {
- return render(h, Object.assign({}, vm, {
- _c: function (n, a, b) {
- return vm._c(components[n] || n, a, b)
- }
- }))
- }
- }
- /***/ }),
- /* 14 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_error_vue_vue_type_style_index_0_id_608a1420_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
- /* harmony import */ var _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_error_vue_vue_type_style_index_0_id_608a1420_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_error_vue_vue_type_style_index_0_id_608a1420_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
- /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_error_vue_vue_type_style_index_0_id_608a1420_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_error_vue_vue_type_style_index_0_id_608a1420_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /***/ }),
- /* 15 */
- /***/ (function(module, exports, __webpack_require__) {
- // Imports
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
- var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
- // Module
- ___CSS_LOADER_EXPORT___.push([module.i, ".__nuxt-error-page{padding:1rem;background:#f7f8fb;color:#47494e;text-align:center;display:flex;justify-content:center;align-items:center;flex-direction:column;font-family:sans-serif;font-weight:100!important;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;position:absolute;top:0;left:0;right:0;bottom:0}.__nuxt-error-page .error{max-width:450px}.__nuxt-error-page .title{font-size:1.5rem;margin-top:15px;color:#47494e;margin-bottom:8px}.__nuxt-error-page .description{color:#7f828b;line-height:21px;margin-bottom:10px}.__nuxt-error-page a{color:#7f828b!important;text-decoration:none}.__nuxt-error-page .logo{position:fixed;left:12px;bottom:12px}", ""]);
- // Exports
- module.exports = ___CSS_LOADER_EXPORT___;
- /***/ }),
- /* 16 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_loading_vue_vue_type_style_index_0_id_d4ff419a_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
- /* harmony import */ var _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_loading_vue_vue_type_style_index_0_id_d4ff419a_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_loading_vue_vue_type_style_index_0_id_d4ff419a_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
- /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_loading_vue_vue_type_style_index_0_id_d4ff419a_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _vue_style_loader_index_js_ref_3_oneOf_1_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_3_oneOf_1_2_nuxt_components_dist_loader_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_nuxt_loading_vue_vue_type_style_index_0_id_d4ff419a_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /***/ }),
- /* 17 */
- /***/ (function(module, exports, __webpack_require__) {
- // Imports
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
- var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
- // Module
- ___CSS_LOADER_EXPORT___.push([module.i, ".nuxt-progress{position:fixed;top:0;left:0;right:0;height:2px;width:0;opacity:1;transition:width .1s,opacity .4s;background-color:#000;z-index:999999}.nuxt-progress.nuxt-progress-notransition{transition:none}.nuxt-progress-failed{background-color:red}", ""]);
- // Exports
- module.exports = ___CSS_LOADER_EXPORT___;
- /***/ }),
- /* 18 */
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__(19);
- if(content.__esModule) content = content.default;
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- __webpack_require__(4).default("66f1fac8", content, true)
- /***/ }),
- /* 19 */
- /***/ (function(module, exports, __webpack_require__) {
- // Imports
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
- var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
- // Module
- ___CSS_LOADER_EXPORT___.push([module.i, "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}", ""]);
- // Exports
- module.exports = ___CSS_LOADER_EXPORT___;
- /***/ }),
- /* 20 */
- /***/ (function(module, exports, __webpack_require__) {
- // style-loader: Adds some css to the DOM by adding a <style> tag
- // load the styles
- var content = __webpack_require__(21);
- if(content.__esModule) content = content.default;
- if(typeof content === 'string') content = [[module.i, content, '']];
- if(content.locals) module.exports = content.locals;
- __webpack_require__(4).default("4a67d21f", content, true)
- /***/ }),
- /* 21 */
- /***/ (function(module, exports, __webpack_require__) {
- // Imports
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
- var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
- // Module
- ___CSS_LOADER_EXPORT___.push([module.i, "body{min-height:100vh;color:#272727;font-family:\"Microsoft YaHei\",SimSun,Arial,Helvetica,sans-serif}input,select,textarea{outline-color:#f3920d}h1,h2,h3,h4,h5,h6,p{margin:0;font-size:16px}ol,ul{margin:0}li,ol,ul{list-style-type:none;padding:0}a{text-decoration:none;color:#272727}*{-webkit-tap-highlight-color:rgba(0,0,0,0)}::-webkit-scrollbar{width:8px;height:8px;background-color:#f5f5f5}::-webkit-scrollbar-thumb{border-radius:4px;background-color:#cccecf}.flex{display:flex;justify-content:space-between;align-items:center}.fl{float:left!important}.fr{float:right!important}.clearfix:after{content:\"\";display:block;clear:both}@keyframes rowup-left{0%{transform:translateZ(0)}to{transform:translate3d(-600px,0,0)}}@keyframes rowup-right{0%{transform:translateZ(0)}to{transform:translate3d(600px,0,0)}}@media screen and (min-width:768px){html{font-size:16px!important}.only-mobile{display:none!important}.container{width:1200px;margin:0 auto}.mt18{margin-top:18px}.mr18{margin-right:18px}.mb18{margin-bottom:18px}.ml18{margin-left:18px}.section-title{position:relative;text-align:center;height:70px;margin:100px 0 60px}.section-title img{display:block;height:58px;margin:0 auto}.section-title h3{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:41px;font-weight:400;font-weight:700}.banner.swiper-container{width:100%;height:700px}.banner.swiper-container .swiper-slide img{display:block;height:100%}.banner.swiper-container .swiper-pagination-bullet{width:10px;height:10px;background:#fff;box-sizing:border-box;border:1px solid #000}.banner.swiper-container .swiper-pagination-bullet.swiper-pagination-bullet-active{background:#000}.banner.single{width:100%;height:530px}.banner.single img{display:block;height:530px}.navbar{height:90px;background-color:#fff;position:sticky;left:0;top:0;z-index:90}.navbar .container{width:100%;box-sizing:border-box;padding:0 40px;height:90px;display:flex;justify-content:space-between;align-items:center}.navbar .navbar-header .logo{display:flex;justify-content:center;align-items:center}.navbar .navbar-header .logo h1{font-size:0}.navbar .navbar-header .logo img{display:block;height:42px}.navbar .navbar-collapse .nav{position:relative;display:flex;justify-content:center;align-items:center}.navbar .navbar-collapse .nav>li{margin-left:116px;position:relative}.navbar .navbar-collapse .nav>li:after{content:\"\";display:none;width:28px;height:3px;background:#f3920d;position:absolute;left:50%;bottom:0;transform:translateX(-50%)}.navbar .navbar-collapse .nav>li.active>a{color:#f3920d}.navbar .navbar-collapse .nav>li.active:after{display:block}.navbar .navbar-collapse .nav>li:hover>a{color:#f3920d}.navbar .navbar-collapse .nav>li:hover:after{display:block}.navbar .navbar-collapse .nav>li:first-child{margin-left:0}.navbar .navbar-collapse .nav>li>a{height:66px;display:block}.navbar .navbar-collapse .nav>li>a span{display:block;text-align:center}.navbar .navbar-collapse .nav>li>a span:first-child{font-size:28px}.navbar .navbar-collapse .nav>li>a span:last-child{font-size:20px;margin-top:2px}.navbar .navbar-collapse .nav .dropdown{position:relative}.navbar .navbar-collapse .nav .dropdown:hover .dropdown-menu{display:block}.navbar .navbar-collapse .nav .dropdown .dropdown-menu{display:none;top:66px;position:absolute;background:#fff;left:50%;transform:translateX(-50%)}.navbar .navbar-collapse .nav .dropdown .dropdown-menu>li:hover{background:#f3920d}.navbar .navbar-collapse .nav .dropdown .dropdown-menu>li:hover>a{color:#fff}.navbar .navbar-collapse .nav .dropdown .dropdown-menu>li:hover .dropdown-submenu{display:block}.navbar .navbar-collapse .nav .dropdown .dropdown-menu>li>a{display:block;line-height:50px;text-align:center;width:128px;font-size:20px}.navbar .navbar-collapse .nav .dropdown .dropdown-menu .submenu-toggle{background:url(/img/icon-arrow-right.png) no-repeat;background-position:98%;background-size:18px}.navbar .navbar-collapse .nav .dropdown .dropdown-menu .dropdown-submenu{display:none;position:absolute;top:0;left:128px;background:#fff;width:220px;min-height:200px;box-sizing:border-box;padding:10px 24px;border-left:1px solid #e8e8e8}.navbar .navbar-collapse .nav .dropdown .dropdown-menu .dropdown-submenu>li{margin:9px 0}.navbar .navbar-collapse .nav .dropdown .dropdown-menu .dropdown-submenu>li>a{display:block;line-height:32px;text-align:center;background:#eee;color:#000;font-size:14px}.navbar .navbar-collapse .nav .dropdown .dropdown-menu .dropdown-submenu>li>a:hover{color:#f3920d;background-color:rgba(243,146,13,.3)}.footer{margin-top:120px;padding-top:42px;background:#1b1b1b}.footer .container{width:1650px}.footer .container .section{margin-right:34px;float:left}.footer .container .section .logo img:first-child{width:188px}.footer .container .section .logo img:last-child{width:136px;margin-left:30px}.footer .container .section .item{position:relative;margin-top:20px;padding-left:44px;font-size:25px;color:#fff;font-weight:lighter}.footer .container .section .item:before{content:\"\";display:block;width:27px;height:27px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-repeat:no-repeat;background-position:50%;background-size:27px}.footer .container .section .item.mobile:before{background-image:url(/img/icon-mobile.png)}.footer .container .section .item.mobile span:last-child{margin-left:16px}.footer .container .section .item.email:before{background-image:url(/img/icon-email.png)}.footer .container .section .item.address:before{background-image:url(/img/icon-address.png)}.footer .container .section .item.contact:before{background-image:url(/img/icon-contact.png)}.footer .container .section .item.site:before{background-image:url(/img/icon-site.png)}.footer .container .nav{margin-left:86px;float:left}.footer .container .nav li{text-align:left;margin-top:14px}.footer .container .nav li:first-child{margin-top:12px}.footer .container .nav li a{font-size:20px;font-weight:lighter;color:#fff;text-transform:uppercase}.footer .container .nav li a:hover{color:#f3920d}.footer .container .qrcode-content{float:right;display:flex;justify-content:center;align-items:flex-start;margin-top:80px}.footer .container .qrcode-content .qrcode{width:150px;text-align:center;margin-left:25px}.footer .container .qrcode-content .qrcode img{width:119px;height:119px;background-color:#fff}.footer .container .qrcode-content .qrcode .tip{font-size:25px;color:#fff;margin-top:11px;text-align:center;font-weight:lighter}.footer .line{width:1784px;height:1px;background-color:#fff;margin:40px auto 0}.footer .link{display:flex;justify-content:center;align-items:center}.footer .link i{display:block;height:10px;width:1px;background-color:hsla(0,0%,100%,.4);margin:0 16px}.footer .link a{color:hsla(0,0%,100%,.4);font-size:12px}.footer .link a:hover{color:#f3920d}.footer .copyright{text-align:center;color:#bebebe;font-size:22px;font-weight:lighter;line-height:64px}.footer .copyright a{color:#fff;text-decoration:underline}.footer .copyright *{margin:0 24px}}@media screen and (max-width:768px){html{font-size:50px}.only-pc{display:none!important}.scroll-box{overflow-x:auto;white-space:nowrap;font-size:0}.scroll-box::-webkit-scrollbar{width:0;height:0}.scroll-box::-webkit-scrollbar-thumb{display:none}.section-title{position:relative;text-align:center;height:.64rem;margin:1rem 0 .65rem}.section-title img{display:block;height:.58rem;margin:0 auto}.section-title h3{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:.34rem;font-weight:700}.banner.swiper-container{width:7.5rem;height:2.74rem}.banner.swiper-container .swiper-slide img{display:block;width:7.5rem;height:2.74rem}.banner.swiper-container .swiper-pagination{bottom:0}.banner.swiper-container .swiper-pagination .swiper-pagination-bullet{width:.1rem;height:.1rem;background:#fff;box-sizing:border-box;border:.01rem solid #000}.banner.swiper-container .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background:#000}.banner.single,.banner.single img{width:100%;height:2.08rem}.banner.single img{display:block}.navbar{font-size:.26rem;height:1.04rem;background:#fff;position:sticky;left:0;top:0;z-index:90}.navbar .navbar-header{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;background:#fff}.navbar .navbar-header .logo{display:flex;justify-content:center;align-items:center;width:2rem;height:1.04rem;background:#f3920d}.navbar .navbar-header .logo h1{font-size:0}.navbar .navbar-header .logo img{display:block;width:1.78rem}.navbar .navbar-header .navbar-toggle{display:flex;justify-content:center;align-items:center}.navbar .navbar-header .navbar-toggle .name{font-size:.3rem;color:#f3920d;margin-right:.16rem}.navbar .navbar-header .navbar-toggle .icon-bar{display:inline-block;width:.48rem;height:.48rem;background:url(/img/icon-menu.png) no-repeat 50%;background-size:.42rem;font-size:0;margin-right:.32rem;margin-bottom:.03rem}.navbar .navbar-header .navbar-toggle[aria-expanded=true] .icon-bar{background-image:url(/img/icon-menu-close.png);background-size:.48rem}.navbar .navbar-header .navbar-toggle[aria-expanded=true] .name{display:none}.navbar .navbar-collapse{display:none;position:absolute;width:100%;height:100vh;overflow-y:auto;box-sizing:border-box;padding-left:1.34rem;right:0;top:0;z-index:1;background-color:transparent;transition:background-color .2s}.navbar .navbar-collapse::-webkit-scrollbar{width:2px;height:2px;background-color:#f5f5f5}.navbar .navbar-collapse::-webkit-scrollbar-thumb{border-radius:2px;background-color:#cccecf}.navbar .navbar-collapse .nav{background:#fff;padding:1.04rem .48rem .48rem;box-sizing:border-box;min-height:100vh}.navbar .navbar-collapse .nav li a{display:block}.navbar .navbar-collapse .nav>li{border-top:.01rem solid #d8d8d8;border-bottom:.01rem solid #d8d8d8}.navbar .navbar-collapse .nav>li>a{font-size:.3rem;line-height:1rem}.navbar .navbar-collapse .nav>li>a span:last-child{display:none}.navbar .navbar-collapse .nav .dropdown .dropdown-toggle{background-image:url(/img/icon-menu-arrow-down.png);background-position:100%;background-size:.48rem;background-repeat:no-repeat}.navbar .navbar-collapse .nav .dropdown.open .dropdown-toggle{background-image:url(/img/icon-menu-arrow-up.png)}.navbar .navbar-collapse .nav .dropdown .dropdown-menu{display:none;padding-bottom:.24rem}.navbar .navbar-collapse .nav .dropdown .dropdown-menu>li>a{line-height:.66rem;color:#666}.navbar .navbar-collapse .nav .dropdown .dropdown-submenu{padding:.24rem 0}.navbar .navbar-collapse .nav .dropdown .dropdown-submenu li{float:left;margin-right:.4rem;margin-top:.24rem}.navbar .navbar-collapse .nav .dropdown .dropdown-submenu li:nth-child(2n){margin-right:0}.navbar .navbar-collapse .nav .dropdown .dropdown-submenu li:nth-child(-n+2){margin-top:0}.navbar .navbar-collapse .nav .dropdown .dropdown-submenu li a{line-height:.56rem;width:2.08rem;height:.56rem;background:#f7f7f7;text-align:center;color:#666}.footer{position:relative;background:#050001;box-sizing:border-box;margin-top:1rem}.footer .container{width:6.86rem;margin:0 auto;position:relative}.footer .container .logo img:first-child{width:1.88rem}.footer .container .logo img:last-child{width:1.36rem}.footer .container .title{font-size:.3rem;color:#fff;margin-top:.46rem}.footer .container .section{opacity:.8;width:100%;padding:.32rem 0;margin-top:3.8rem;border-top:.01rem solid #fff;border-left:0;border-right:0;border-bottom:.01rem solid hsla(0,0%,100%,.3)}.footer .container .section .item{position:relative;margin-top:.25rem;padding-left:.6rem;font-size:.24rem;color:#fff}.footer .container .section .item:nth-child(2){margin-top:0}.footer .container .section .item:before{content:\"\";display:block;width:.4rem;height:.4rem;position:absolute;left:0;top:50%;transform:translateY(-50%);background-repeat:no-repeat;background-position:50%;background-size:.4rem}.footer .container .section .item.mobile:before{background-image:url(/img/icon-mobile.png)}.footer .container .section .item.mobile span:last-child{margin-left:.4rem}.footer .container .section .item.email:before{background-image:url(/img/icon-email.png)}.footer .container .section .item.address:before{background-image:url(/img/icon-address.png)}.footer .container .section .item.contact:before{background-image:url(/img/icon-contact.png)}.footer .container .section .item.site:before{background-image:url(/img/icon-site.png)}.footer .container .nav{opacity:.8;position:absolute;top:2.11rem}.footer .container .nav.first{left:0}.footer .container .nav.second{left:3.91rem}.footer .container .nav li{margin-top:.24rem}.footer .container .nav li a{display:block;font-size:.24rem;color:#fff}.footer .container .qrcode-content{position:absolute;right:0;bottom:-2.04rem;display:flex;justify-content:center}.footer .container .qrcode-content .qrcode:first-child{margin-right:.16rem}.footer .container .qrcode-content .qrcode img{display:block;width:1.19rem;height:1.19rem;background-color:#fff}.footer .container .qrcode-content .qrcode .tip{font-size:.2rem;color:#fff;margin-top:.16rem;text-align:center;opacity:.8}.footer .copyright{width:100%;box-sizing:border-box;text-align:left;color:#fff;font-size:.2rem;padding:.4rem;opacity:.8}.footer .copyright a{width:4.2rem;color:#fff}.footer .copyright *{display:block;margin-bottom:.16rem}}", ""]);
- // Exports
- module.exports = ___CSS_LOADER_EXPORT___;
- /***/ }),
- /* 22 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- // ESM COMPAT FLAG
- __webpack_require__.r(__webpack_exports__);
- // NAMESPACE OBJECT: ./node_modules/.cache/nuxt/components/index.js
- var components_namespaceObject = {};
- __webpack_require__.r(components_namespaceObject);
- __webpack_require__.d(components_namespaceObject, "ContactConsult", function() { return ContactConsult; });
- __webpack_require__.d(components_namespaceObject, "ContactJoinUs", function() { return ContactJoinUs; });
- // EXTERNAL MODULE: external "vue"
- var external_vue_ = __webpack_require__(0);
- var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
- // EXTERNAL MODULE: external "ufo"
- var external_ufo_ = __webpack_require__(1);
- // EXTERNAL MODULE: external "node-fetch"
- var external_node_fetch_ = __webpack_require__(10);
- var external_node_fetch_default = /*#__PURE__*/__webpack_require__.n(external_node_fetch_);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/middleware.js
- const middleware = {};
- /* harmony default export */ var nuxt_middleware = (middleware);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/utils.js
- // window.{{globals.loadedCallback}} hook
- // Useful for jsdom testing or plugins (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading)
- if (false) {}
- function createGetCounter(counterObject, defaultKey = '') {
- return function getCounter(id = defaultKey) {
- if (counterObject[id] === undefined) {
- counterObject[id] = 0;
- }
- return counterObject[id]++;
- };
- }
- function empty() {}
- function globalHandleError(error) {
- if (external_vue_default.a.config.errorHandler) {
- external_vue_default.a.config.errorHandler(error);
- }
- }
- function interopDefault(promise) {
- return promise.then(m => m.default || m);
- }
- function hasFetch(vm) {
- return vm.$options && typeof vm.$options.fetch === 'function' && !vm.$options.fetch.length;
- }
- function purifyData(data) {
- if (true) {
- return data;
- }
- return Object.entries(data).filter(([key, value]) => {
- const valid = !(value instanceof Function) && !(value instanceof Promise);
- if (!valid) {
- console.warn(`${key} is not able to be stringified. This will break in a production environment.`);
- }
- return valid;
- }).reduce((obj, [key, value]) => {
- obj[key] = value;
- return obj;
- }, {});
- }
- function getChildrenComponentInstancesUsingFetch(vm, instances = []) {
- const children = vm.$children || [];
- for (const child of children) {
- if (child.$fetch) {
- instances.push(child);
- continue; // Don't get the children since it will reload the template
- }
- if (child.$children) {
- getChildrenComponentInstancesUsingFetch(child, instances);
- }
- }
- return instances;
- }
- function applyAsyncData(Component, asyncData) {
- if (
- // For SSR, we once all this function without second param to just apply asyncData
- // Prevent doing this for each SSR request
- !asyncData && Component.options.__hasNuxtData) {
- return;
- }
- const ComponentData = Component.options._originDataFn || Component.options.data || function () {
- return {};
- };
- Component.options._originDataFn = ComponentData;
- Component.options.data = function () {
- const data = ComponentData.call(this, this);
- if (this.$ssrContext) {
- asyncData = this.$ssrContext.asyncData[Component.cid];
- }
- return {
- ...data,
- ...asyncData
- };
- };
- Component.options.__hasNuxtData = true;
- if (Component._Ctor && Component._Ctor.options) {
- Component._Ctor.options.data = Component.options.data;
- }
- }
- function sanitizeComponent(Component) {
- // If Component already sanitized
- if (Component.options && Component._Ctor === Component) {
- return Component;
- }
- if (!Component.options) {
- Component = external_vue_default.a.extend(Component); // fix issue #6
- Component._Ctor = Component;
- } else {
- Component._Ctor = Component;
- Component.extendOptions = Component.options;
- }
- // If no component name defined, set file path as name, (also fixes #5703)
- if (!Component.options.name && Component.options.__file) {
- Component.options.name = Component.options.__file;
- }
- return Component;
- }
- function getMatchedComponents(route, matches = false, prop = 'components') {
- return Array.prototype.concat.apply([], route.matched.map((m, index) => {
- return Object.keys(m[prop]).map(key => {
- matches && matches.push(index);
- return m[prop][key];
- });
- }));
- }
- function getMatchedComponentsInstances(route, matches = false) {
- return getMatchedComponents(route, matches, 'instances');
- }
- function flatMapComponents(route, fn) {
- return Array.prototype.concat.apply([], route.matched.map((m, index) => {
- return Object.keys(m.components).reduce((promises, key) => {
- if (m.components[key]) {
- promises.push(fn(m.components[key], m.instances[key], m, key, index));
- } else {
- delete m.components[key];
- }
- return promises;
- }, []);
- }));
- }
- function resolveRouteComponents(route, fn) {
- return Promise.all(flatMapComponents(route, async (Component, instance, match, key) => {
- // If component is a function, resolve it
- if (typeof Component === 'function' && !Component.options) {
- try {
- Component = await Component();
- } catch (error) {
- // Handle webpack chunk loading errors
- // This may be due to a new deployment or a network problem
- if (error && error.name === 'ChunkLoadError' && typeof window !== 'undefined' && window.sessionStorage) {
- const timeNow = Date.now();
- const previousReloadTime = parseInt(window.sessionStorage.getItem('nuxt-reload'));
- // check for previous reload time not to reload infinitely
- if (!previousReloadTime || previousReloadTime + 60000 < timeNow) {
- window.sessionStorage.setItem('nuxt-reload', timeNow);
- window.location.reload(true /* skip cache */);
- }
- }
- throw error;
- }
- }
- match.components[key] = Component = sanitizeComponent(Component);
- return typeof fn === 'function' ? fn(Component, instance, match, key) : Component;
- }));
- }
- async function getRouteData(route) {
- if (!route) {
- return;
- }
- // Make sure the components are resolved (code-splitting)
- await resolveRouteComponents(route);
- // Send back a copy of route with meta based on Component definition
- return {
- ...route,
- meta: getMatchedComponents(route).map((Component, index) => {
- return {
- ...Component.options.meta,
- ...(route.matched[index] || {}).meta
- };
- })
- };
- }
- async function setContext(app, context) {
- // If context not defined, create it
- if (!app.context) {
- app.context = {
- isStatic: true,
- isDev: false,
- isHMR: false,
- app,
- payload: context.payload,
- error: context.error,
- base: app.router.options.base,
- env: {}
- };
- // Only set once
- if (context.ssrContext) {
- app.context.ssrContext = context.ssrContext;
- }
- app.context.redirect = (status, path, query) => {
- if (!status) {
- return;
- }
- app.context._redirected = true;
- // if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' })
- let pathType = typeof path;
- if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) {
- query = path || {};
- path = status;
- pathType = typeof path;
- status = 302;
- }
- if (pathType === 'object') {
- path = app.router.resolve(path).route.fullPath;
- }
- // "/absolute/route", "./relative/route" or "../relative/route"
- if (/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path)) {
- app.context.next({
- path,
- query,
- status
- });
- } else {
- path = Object(external_ufo_["withQuery"])(path, query);
- if (true) {
- app.context.next({
- path,
- status
- });
- }
- if (false) {}
- }
- };
- if (true) {
- app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn);
- }
- if (false) {}
- }
- // Dynamic keys
- const [currentRouteData, fromRouteData] = await Promise.all([getRouteData(context.route), getRouteData(context.from)]);
- if (context.route) {
- app.context.route = currentRouteData;
- }
- if (context.from) {
- app.context.from = fromRouteData;
- }
- app.context.next = context.next;
- app.context._redirected = false;
- app.context._errored = false;
- app.context.isHMR = false;
- app.context.params = app.context.route.params || {};
- app.context.query = app.context.route.query || {};
- }
- function middlewareSeries(promises, appContext) {
- if (!promises.length || appContext._redirected || appContext._errored) {
- return Promise.resolve();
- }
- return promisify(promises[0], appContext).then(() => {
- return middlewareSeries(promises.slice(1), appContext);
- });
- }
- function promisify(fn, context) {
- let promise;
- if (fn.length === 2) {
- // fn(context, callback)
- promise = new Promise(resolve => {
- fn(context, function (err, data) {
- if (err) {
- context.error(err);
- }
- data = data || {};
- resolve(data);
- });
- });
- } else {
- promise = fn(context);
- }
- if (promise && promise instanceof Promise && typeof promise.then === 'function') {
- return promise;
- }
- return Promise.resolve(promise);
- }
- // Imported from vue-router
- function getLocation(base, mode) {
- if (mode === 'hash') {
- return window.location.hash.replace(/^#\//, '');
- }
- base = decodeURI(base).slice(0, -1); // consideration is base is normalized with trailing slash
- let path = decodeURI(window.location.pathname);
- if (base && path.startsWith(base)) {
- path = path.slice(base.length);
- }
- const fullPath = (path || '/') + window.location.search + window.location.hash;
- return Object(external_ufo_["normalizeURL"])(fullPath);
- }
- // Imported from path-to-regexp
- /**
- * Compile a string to a template function for the path.
- *
- * @param {string} str
- * @param {Object=} options
- * @return {!function(Object=, Object=)}
- */
- function compile(str, options) {
- return tokensToFunction(parse(str, options), options);
- }
- function getQueryDiff(toQuery, fromQuery) {
- const diff = {};
- const queries = {
- ...toQuery,
- ...fromQuery
- };
- for (const k in queries) {
- if (String(toQuery[k]) !== String(fromQuery[k])) {
- diff[k] = true;
- }
- }
- return diff;
- }
- function normalizeError(err) {
- let message;
- if (!(err.message || typeof err === 'string')) {
- try {
- message = JSON.stringify(err, null, 2);
- } catch (e) {
- message = `[${err.constructor.name}]`;
- }
- } else {
- message = err.message || err;
- }
- return {
- ...err,
- message,
- statusCode: err.statusCode || err.status || err.response && err.response.status || 500
- };
- }
- /**
- * The main path matching regexp utility.
- *
- * @type {RegExp}
- */
- const PATH_REGEXP = new RegExp([
- // Match escaped characters that would otherwise appear in future matches.
- // This allows the user to escape special characters that won't transform.
- '(\\\\.)',
- // Match Express-style parameters and un-named parameters with a prefix
- // and optional suffixes. Matches appear as:
- //
- // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
- // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined]
- // "/*" => ["/", undefined, undefined, undefined, undefined, "*"]
- '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'].join('|'), 'g');
- /**
- * Parse a string for the raw tokens.
- *
- * @param {string} str
- * @param {Object=} options
- * @return {!Array}
- */
- function parse(str, options) {
- const tokens = [];
- let key = 0;
- let index = 0;
- let path = '';
- const defaultDelimiter = options && options.delimiter || '/';
- let res;
- while ((res = PATH_REGEXP.exec(str)) != null) {
- const m = res[0];
- const escaped = res[1];
- const offset = res.index;
- path += str.slice(index, offset);
- index = offset + m.length;
- // Ignore already escaped sequences.
- if (escaped) {
- path += escaped[1];
- continue;
- }
- const next = str[index];
- const prefix = res[2];
- const name = res[3];
- const capture = res[4];
- const group = res[5];
- const modifier = res[6];
- const asterisk = res[7];
- // Push the current path onto the tokens.
- if (path) {
- tokens.push(path);
- path = '';
- }
- const partial = prefix != null && next != null && next !== prefix;
- const repeat = modifier === '+' || modifier === '*';
- const optional = modifier === '?' || modifier === '*';
- const delimiter = res[2] || defaultDelimiter;
- const pattern = capture || group;
- tokens.push({
- name: name || key++,
- prefix: prefix || '',
- delimiter,
- optional,
- repeat,
- partial,
- asterisk: Boolean(asterisk),
- pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'
- });
- }
- // Match any characters still remaining.
- if (index < str.length) {
- path += str.substr(index);
- }
- // If the path exists, push it onto the end.
- if (path) {
- tokens.push(path);
- }
- return tokens;
- }
- /**
- * Prettier encoding of URI path segments.
- *
- * @param {string}
- * @return {string}
- */
- function encodeURIComponentPretty(str, slashAllowed) {
- const re = slashAllowed ? /[?#]/g : /[/?#]/g;
- return encodeURI(str).replace(re, c => {
- return '%' + c.charCodeAt(0).toString(16).toUpperCase();
- });
- }
- /**
- * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
- *
- * @param {string}
- * @return {string}
- */
- function encodeAsterisk(str) {
- return encodeURIComponentPretty(str, true);
- }
- /**
- * Escape a regular expression string.
- *
- * @param {string} str
- * @return {string}
- */
- function escapeString(str) {
- return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1');
- }
- /**
- * Escape the capturing group by escaping special characters and meaning.
- *
- * @param {string} group
- * @return {string}
- */
- function escapeGroup(group) {
- return group.replace(/([=!:$/()])/g, '\\$1');
- }
- /**
- * Expose a method for transforming tokens into the path function.
- */
- function tokensToFunction(tokens, options) {
- // Compile all the tokens into regexps.
- const matches = new Array(tokens.length);
- // Compile all the patterns before compilation.
- for (let i = 0; i < tokens.length; i++) {
- if (typeof tokens[i] === 'object') {
- matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));
- }
- }
- return function (obj, opts) {
- let path = '';
- const data = obj || {};
- const options = opts || {};
- const encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;
- for (let i = 0; i < tokens.length; i++) {
- const token = tokens[i];
- if (typeof token === 'string') {
- path += token;
- continue;
- }
- const value = data[token.name || 'pathMatch'];
- let segment;
- if (value == null) {
- if (token.optional) {
- // Prepend partial segment prefixes.
- if (token.partial) {
- path += token.prefix;
- }
- continue;
- } else {
- throw new TypeError('Expected "' + token.name + '" to be defined');
- }
- }
- if (Array.isArray(value)) {
- if (!token.repeat) {
- throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`');
- }
- if (value.length === 0) {
- if (token.optional) {
- continue;
- } else {
- throw new TypeError('Expected "' + token.name + '" to not be empty');
- }
- }
- for (let j = 0; j < value.length; j++) {
- segment = encode(value[j]);
- if (!matches[i].test(segment)) {
- throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`');
- }
- path += (j === 0 ? token.prefix : token.delimiter) + segment;
- }
- continue;
- }
- segment = token.asterisk ? encodeAsterisk(value) : encode(value);
- if (!matches[i].test(segment)) {
- throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"');
- }
- path += token.prefix + segment;
- }
- return path;
- };
- }
- /**
- * Get the flags for a regexp from the options.
- *
- * @param {Object} options
- * @return {string}
- */
- function flags(options) {
- return options && options.sensitive ? '' : 'i';
- }
- function addLifecycleHook(vm, hook, fn) {
- if (!vm.$options[hook]) {
- vm.$options[hook] = [];
- }
- if (!vm.$options[hook].includes(fn)) {
- vm.$options[hook].push(fn);
- }
- }
- const urlJoin = external_ufo_["joinURL"];
- const stripTrailingSlash = external_ufo_["withoutTrailingSlash"];
- const isSamePath = external_ufo_["isSamePath"];
- function setScrollRestoration(newVal) {
- try {
- window.history.scrollRestoration = newVal;
- } catch (e) {}
- }
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/mixins/fetch.server.js
- async function serverPrefetch() {
- if (!this._fetchOnServer) {
- return;
- }
- // Call and await on $fetch
- try {
- await this.$options.fetch.call(this);
- } catch (err) {
- if (false) {}
- this.$fetchState.error = normalizeError(err);
- }
- this.$fetchState.pending = false;
- // Define an ssrKey for hydration
- this._fetchKey = this._fetchKey || this.$ssrContext.fetchCounters['']++;
- // Add data-fetch-key on parent element of Component
- const attrs = this.$vnode.data.attrs = this.$vnode.data.attrs || {};
- attrs['data-fetch-key'] = this._fetchKey;
- // Add to ssrContext for window.__NUXT__.fetch
- this.$ssrContext.nuxt.fetch[this._fetchKey] = this.$fetchState.error ? {
- _error: this.$fetchState.error
- } : purifyData(this._data);
- }
- /* harmony default export */ var fetch_server = ({
- created() {
- if (!hasFetch(this)) {
- return;
- }
- if (typeof this.$options.fetchOnServer === 'function') {
- this._fetchOnServer = this.$options.fetchOnServer.call(this) !== false;
- } else {
- this._fetchOnServer = this.$options.fetchOnServer !== false;
- }
- const defaultKey = this.$options._scopeId || this.$options.name || '';
- const getCounter = createGetCounter(this.$ssrContext.fetchCounters, defaultKey);
- if (typeof this.$options.fetchKey === 'function') {
- this._fetchKey = this.$options.fetchKey.call(this, getCounter);
- } else {
- const key = 'string' === typeof this.$options.fetchKey ? this.$options.fetchKey : defaultKey;
- this._fetchKey = key ? key + ':' + getCounter(key) : String(getCounter(key));
- }
- // Added for remove vue undefined warning while ssr
- this.$fetch = () => {}; // issue #8043
- external_vue_default.a.util.defineReactive(this, '$fetchState', {
- pending: true,
- error: null,
- timestamp: Date.now()
- });
- addLifecycleHook(this, 'serverPrefetch', serverPrefetch);
- }
- });
- // EXTERNAL MODULE: external "vue-meta"
- var external_vue_meta_ = __webpack_require__(11);
- var external_vue_meta_default = /*#__PURE__*/__webpack_require__.n(external_vue_meta_);
- // EXTERNAL MODULE: external "vue-client-only"
- var external_vue_client_only_ = __webpack_require__(6);
- var external_vue_client_only_default = /*#__PURE__*/__webpack_require__.n(external_vue_client_only_);
- // EXTERNAL MODULE: external "vue-no-ssr"
- var external_vue_no_ssr_ = __webpack_require__(5);
- var external_vue_no_ssr_default = /*#__PURE__*/__webpack_require__.n(external_vue_no_ssr_);
- // EXTERNAL MODULE: external "vue-router"
- var external_vue_router_ = __webpack_require__(7);
- var external_vue_router_default = /*#__PURE__*/__webpack_require__.n(external_vue_router_);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/router.scrollBehavior.js
- if (false) {}
- function shouldScrollToTop(route) {
- const Pages = getMatchedComponents(route);
- if (Pages.length === 1) {
- const {
- options = {}
- } = Pages[0];
- return options.scrollToTop !== false;
- }
- return Pages.some(({
- options
- }) => options && options.scrollToTop);
- }
- /* harmony default export */ var router_scrollBehavior = (function (to, from, savedPosition) {
- // If the returned position is falsy or an empty object, will retain current scroll position
- let position = false;
- const isRouteChanged = to !== from;
- // savedPosition is only available for popstate navigations (back button)
- if (savedPosition) {
- position = savedPosition;
- } else if (isRouteChanged && shouldScrollToTop(to)) {
- position = {
- x: 0,
- y: 0
- };
- }
- const nuxt = window.$nuxt;
- if (
- // Initial load (vuejs/vue-router#3199)
- !isRouteChanged ||
- // Route hash changes
- to.path === from.path && to.hash !== from.hash) {
- nuxt.$nextTick(() => nuxt.$emit('triggerScroll'));
- }
- return new Promise(resolve => {
- // wait for the out transition to complete (if necessary)
- nuxt.$once('triggerScroll', () => {
- // coords will be used if no selector is provided,
- // or if the selector didn't match any element.
- if (to.hash) {
- let hash = to.hash;
- // CSS.escape() is not supported with IE and Edge.
- if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') {
- hash = '#' + window.CSS.escape(hash.substr(1));
- }
- try {
- if (document.querySelector(hash)) {
- // scroll to anchor by returning the selector
- position = {
- selector: hash
- };
- }
- } catch (e) {
- console.warn('Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).');
- }
- }
- resolve(position);
- });
- });
- });
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/router.js
- const _82724b94 = () => interopDefault(__webpack_require__.e(/* import() | pages/about/index */ 3).then(__webpack_require__.bind(null, 102)));
- const _39825c08 = () => interopDefault(__webpack_require__.e(/* import() | pages/brand/index */ 5).then(__webpack_require__.bind(null, 103)));
- const _064d2cbe = () => interopDefault(__webpack_require__.e(/* import() | pages/case/index */ 7).then(__webpack_require__.bind(null, 104)));
- const _14ea7583 = () => interopDefault(__webpack_require__.e(/* import() | pages/contact/index */ 9).then(__webpack_require__.bind(null, 105)));
- const _7b589bc8 = () => interopDefault(__webpack_require__.e(/* import() | pages/cooperation/index */ 12).then(__webpack_require__.bind(null, 106)));
- const _f2fd73c4 = () => interopDefault(__webpack_require__.e(/* import() | pages/news/index */ 15).then(__webpack_require__.bind(null, 107)));
- const _1cee7d17 = () => interopDefault(__webpack_require__.e(/* import() | pages/brand/detail */ 4).then(__webpack_require__.bind(null, 108)));
- const _3f7353a3 = () => interopDefault(__webpack_require__.e(/* import() | pages/brand/ross */ 6).then(__webpack_require__.bind(null, 109)));
- const _3eeac95d = () => interopDefault(__webpack_require__.e(/* import() | pages/contact/consult */ 8).then(__webpack_require__.bind(null, 110)));
- const _20936d2e = () => interopDefault(__webpack_require__.e(/* import() | pages/contact/job */ 10).then(__webpack_require__.bind(null, 111)));
- const _da0705dc = () => interopDefault(__webpack_require__.e(/* import() | pages/contact/join-us */ 11).then(__webpack_require__.bind(null, 112)));
- const _3c0ae596 = () => interopDefault(__webpack_require__.e(/* import() | pages/news/detail */ 14).then(__webpack_require__.bind(null, 113)));
- const _750ce5f9 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/binary-premium */ 16).then(__webpack_require__.bind(null, 114)));
- const _355b1c76 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/diactivplus */ 21).then(__webpack_require__.bind(null, 115)));
- const _6835b704 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/intradermik */ 22).then(__webpack_require__.bind(null, 116)));
- const _5a9b3dcd = () => interopDefault(__webpack_require__.e(/* import() | pages/product/kestos */ 23).then(__webpack_require__.bind(null, 117)));
- const _1a6f4e21 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/mesobiolift */ 24).then(__webpack_require__.bind(null, 118)));
- const _a9cc653e = () => interopDefault(__webpack_require__.e(/* import() | pages/product/rollaction */ 25).then(__webpack_require__.bind(null, 119)));
- const _b2576ba4 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/binary/therapy-1 */ 17).then(__webpack_require__.bind(null, 120)));
- const _b23b3ca2 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/binary/therapy-2 */ 18).then(__webpack_require__.bind(null, 121)));
- const _b21f0da0 = () => interopDefault(__webpack_require__.e(/* import() | pages/product/binary/therapy-3 */ 19).then(__webpack_require__.bind(null, 122)));
- const _b202de9e = () => interopDefault(__webpack_require__.e(/* import() | pages/product/binary/therapy-4 */ 20).then(__webpack_require__.bind(null, 123)));
- const _08c79791 = () => interopDefault(__webpack_require__.e(/* import() | pages/index */ 13).then(__webpack_require__.bind(null, 124)));
- const emptyFn = () => {};
- external_vue_default.a.use(external_vue_router_default.a);
- const routerOptions = {
- mode: 'history',
- base: '/',
- linkActiveClass: 'nuxt-link-active',
- linkExactActiveClass: 'nuxt-link-exact-active',
- scrollBehavior: router_scrollBehavior,
- routes: [{
- path: "/about",
- component: _82724b94,
- redirect: "/about.html",
- name: "about"
- }, {
- path: "/brand",
- component: _39825c08,
- redirect: "/brand.html",
- name: "brand"
- }, {
- path: "/case",
- component: _064d2cbe,
- redirect: "/case.html",
- name: "case"
- }, {
- path: "/contact",
- component: _14ea7583,
- redirect: "/contact.html",
- name: "contact"
- }, {
- path: "/cooperation",
- component: _7b589bc8,
- redirect: "/cooperation.html",
- name: "cooperation"
- }, {
- path: "/news",
- component: _f2fd73c4,
- redirect: "/news.html",
- name: "news"
- }, {
- path: "/brand/detail",
- component: _1cee7d17,
- redirect: "/brand/detail.html",
- name: "brand-detail"
- }, {
- path: "/brand/ross",
- component: _3f7353a3,
- redirect: "/brand/ross.html",
- name: "brand-ross"
- }, {
- path: "/contact/consult",
- component: _3eeac95d,
- redirect: "/contact/consult.html",
- name: "contact-consult"
- }, {
- path: "/contact/job",
- component: _20936d2e,
- redirect: "/contact/job.html",
- name: "contact-job"
- }, {
- path: "/contact/join-us",
- component: _da0705dc,
- redirect: "/contact/join-us.html",
- name: "contact-join-us"
- }, {
- path: "/news/detail",
- component: _3c0ae596,
- redirect: "/news/detail.html",
- name: "news-detail"
- }, {
- path: "/product/binary-premium",
- component: _750ce5f9,
- redirect: "/product/binary-premium.html",
- name: "product-binary-premium"
- }, {
- path: "/product/diactivplus",
- component: _355b1c76,
- redirect: "/product/diactivplus.html",
- name: "product-diactivplus"
- }, {
- path: "/product/intradermik",
- component: _6835b704,
- redirect: "/product/intradermik.html",
- name: "product-intradermik"
- }, {
- path: "/product/kestos",
- component: _5a9b3dcd,
- redirect: "/product/kestos.html",
- name: "product-kestos"
- }, {
- path: "/product/mesobiolift",
- component: _1a6f4e21,
- redirect: "/product/mesobiolift.html",
- name: "product-mesobiolift"
- }, {
- path: "/product/rollaction",
- component: _a9cc653e,
- redirect: "/product/rollaction.html",
- name: "product-rollaction"
- }, {
- path: "/product/binary/therapy-1",
- component: _b2576ba4,
- redirect: "/product/binary/therapy-1.html",
- name: "product-binary-therapy-1"
- }, {
- path: "/product/binary/therapy-2",
- component: _b23b3ca2,
- redirect: "/product/binary/therapy-2.html",
- name: "product-binary-therapy-2"
- }, {
- path: "/product/binary/therapy-3",
- component: _b21f0da0,
- redirect: "/product/binary/therapy-3.html",
- name: "product-binary-therapy-3"
- }, {
- path: "/product/binary/therapy-4",
- component: _b202de9e,
- redirect: "/product/binary/therapy-4.html",
- name: "product-binary-therapy-4"
- }, {
- path: "/",
- component: _08c79791,
- redirect: "/index.html",
- name: "index"
- }, {
- path: "/about.html",
- component: _82724b94,
- name: "about.html"
- }, {
- path: "/brand.html",
- component: _39825c08,
- name: "brand.html"
- }, {
- path: "/case.html",
- component: _064d2cbe,
- name: "case.html"
- }, {
- path: "/contact.html",
- component: _14ea7583,
- name: "contact.html"
- }, {
- path: "/cooperation.html",
- component: _7b589bc8,
- name: "cooperation.html"
- }, {
- path: "/news.html",
- component: _f2fd73c4,
- name: "news.html"
- }, {
- path: "/brand/detail.html",
- component: _1cee7d17,
- name: "brand-detail.html"
- }, {
- path: "/brand/ross.html",
- component: _3f7353a3,
- name: "brand-ross.html"
- }, {
- path: "/contact/consult.html",
- component: _3eeac95d,
- name: "contact-consult.html"
- }, {
- path: "/contact/job.html",
- component: _20936d2e,
- name: "contact-job.html"
- }, {
- path: "/contact/join-us.html",
- component: _da0705dc,
- name: "contact-join-us.html"
- }, {
- path: "/news/detail.html",
- component: _3c0ae596,
- name: "news-detail.html"
- }, {
- path: "/product/binary-premium.html",
- component: _750ce5f9,
- name: "product-binary-premium.html"
- }, {
- path: "/product/diactivplus.html",
- component: _355b1c76,
- name: "product-diactivplus.html"
- }, {
- path: "/product/intradermik.html",
- component: _6835b704,
- name: "product-intradermik.html"
- }, {
- path: "/product/kestos.html",
- component: _5a9b3dcd,
- name: "product-kestos.html"
- }, {
- path: "/product/mesobiolift.html",
- component: _1a6f4e21,
- name: "product-mesobiolift.html"
- }, {
- path: "/product/rollaction.html",
- component: _a9cc653e,
- name: "product-rollaction.html"
- }, {
- path: "/product/binary/therapy-1.html",
- component: _b2576ba4,
- name: "product-binary-therapy-1.html"
- }, {
- path: "/product/binary/therapy-2.html",
- component: _b23b3ca2,
- name: "product-binary-therapy-2.html"
- }, {
- path: "/product/binary/therapy-3.html",
- component: _b21f0da0,
- name: "product-binary-therapy-3.html"
- }, {
- path: "/product/binary/therapy-4.html",
- component: _b202de9e,
- name: "product-binary-therapy-4.html"
- }, {
- path: "/index.html",
- component: _08c79791,
- name: "index.html"
- }],
- fallback: false
- };
- function createRouter(ssrContext, config) {
- const base = config._app && config._app.basePath || routerOptions.base;
- const router = new external_vue_router_default.a({
- ...routerOptions,
- base
- });
- // TODO: remove in Nuxt 3
- const originalPush = router.push;
- router.push = function push(location, onComplete = emptyFn, onAbort) {
- return originalPush.call(this, location, onComplete, onAbort);
- };
- const resolve = router.resolve.bind(router);
- router.resolve = (to, current, append) => {
- if (typeof to === 'string') {
- to = Object(external_ufo_["normalizeURL"])(to);
- }
- return resolve(to, current, append);
- };
- return router;
- }
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-child.js
- /* harmony default export */ var nuxt_child = ({
- name: 'NuxtChild',
- functional: true,
- props: {
- nuxtChildKey: {
- type: String,
- default: ''
- },
- keepAlive: Boolean,
- keepAliveProps: {
- type: Object,
- default: undefined
- }
- },
- render(_, {
- parent,
- data,
- props
- }) {
- const h = parent.$createElement;
- data.nuxtChild = true;
- const _parent = parent;
- const transitions = parent.$nuxt.nuxt.transitions;
- const defaultTransition = parent.$nuxt.nuxt.defaultTransition;
- let depth = 0;
- while (parent) {
- if (parent.$vnode && parent.$vnode.data.nuxtChild) {
- depth++;
- }
- parent = parent.$parent;
- }
- data.nuxtChildDepth = depth;
- const transition = transitions[depth] || defaultTransition;
- const transitionProps = {};
- transitionsKeys.forEach(key => {
- if (typeof transition[key] !== 'undefined') {
- transitionProps[key] = transition[key];
- }
- });
- const listeners = {};
- listenersKeys.forEach(key => {
- if (typeof transition[key] === 'function') {
- listeners[key] = transition[key].bind(_parent);
- }
- });
- if (false) {}
- // make sure that leave is called asynchronous (fix #5703)
- if (transition.css === false) {
- const leave = listeners.leave;
- // only add leave listener when user didnt provide one
- // or when it misses the done argument
- if (!leave || leave.length < 2) {
- listeners.leave = (el, done) => {
- if (leave) {
- leave.call(_parent, el);
- }
- _parent.$nextTick(done);
- };
- }
- }
- let routerView = h('routerView', data);
- if (props.keepAlive) {
- routerView = h('keep-alive', {
- props: props.keepAliveProps
- }, [routerView]);
- }
- return h('transition', {
- props: transitionProps,
- on: listeners
- }, [routerView]);
- }
- });
- const transitionsKeys = ['name', 'mode', 'appear', 'css', 'type', 'duration', 'enterClass', 'leaveClass', 'appearClass', 'enterActiveClass', 'enterActiveClass', 'leaveActiveClass', 'appearActiveClass', 'enterToClass', 'leaveToClass', 'appearToClass'];
- const listenersKeys = ['beforeEnter', 'enter', 'afterEnter', 'enterCancelled', 'beforeLeave', 'leave', 'afterLeave', 'leaveCancelled', 'beforeAppear', 'appear', 'afterAppear', 'appearCancelled'];
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/.cache/nuxt/components/nuxt-error.vue?vue&type=template&id=608a1420&
- var render = function render() {
- var _vm = this,
- _c = _vm._self._c;
- return _c('div', {
- staticClass: "__nuxt-error-page"
- }, [_vm._ssrNode("<div class=\"error\">", "</div>", [_vm._ssrNode("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"90\" height=\"90\" fill=\"#DBE1EC\" viewBox=\"0 0 48 48\"><path d=\"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z\"></path></svg> <div class=\"title\">" + _vm._ssrEscape(_vm._s(_vm.message)) + "</div> "), _vm.statusCode === 404 ? _vm._ssrNode("<p class=\"description\">", "</p>", [typeof _vm.$route === 'undefined' ? _vm._ssrNode("<a href=\"/\" class=\"error-link\">", "</a>") : _c('NuxtLink', {
- staticClass: "error-link",
- attrs: {
- "to": "/"
- }
- }, [_vm._v("Back to the home page")])], 1) : _vm._e(), _vm._ssrNode(" <div class=\"logo\"><a href=\"https://nuxtjs.org\" target=\"_blank\" rel=\"noopener\">Nuxt</a></div>")], 2)]);
- };
- var staticRenderFns = [];
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-error.vue?vue&type=template&id=608a1420&
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/.cache/nuxt/components/nuxt-error.vue?vue&type=script&lang=js&
- /* harmony default export */ var nuxt_errorvue_type_script_lang_js_ = ({
- name: 'NuxtError',
- props: {
- error: {
- type: Object,
- default: null
- }
- },
- computed: {
- statusCode() {
- return this.error && this.error.statusCode || 500;
- },
- message() {
- return this.error.message || 'Error';
- }
- },
- head() {
- return {
- title: this.message,
- meta: [{
- name: 'viewport',
- content: 'width=device-width,initial-scale=1.0,minimum-scale=1.0'
- }]
- };
- }
- });
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-error.vue?vue&type=script&lang=js&
- /* harmony default export */ var components_nuxt_errorvue_type_script_lang_js_ = (nuxt_errorvue_type_script_lang_js_);
- // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
- var componentNormalizer = __webpack_require__(2);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-error.vue
- function injectStyles (context) {
-
- var style0 = __webpack_require__(14)
- if (style0.__inject__) style0.__inject__(context)
- }
- /* normalize component */
- var nuxt_error_component = Object(componentNormalizer["a" /* default */])(
- components_nuxt_errorvue_type_script_lang_js_,
- render,
- staticRenderFns,
- false,
- injectStyles,
- null,
- "f161290c"
-
- )
- /* harmony default export */ var nuxt_error = (nuxt_error_component.exports);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt.js
- /* harmony default export */ var components_nuxt = ({
- name: 'Nuxt',
- components: {
- NuxtChild: nuxt_child,
- NuxtError: nuxt_error
- },
- props: {
- nuxtChildKey: {
- type: String,
- default: undefined
- },
- keepAlive: Boolean,
- keepAliveProps: {
- type: Object,
- default: undefined
- },
- name: {
- type: String,
- default: 'default'
- }
- },
- errorCaptured(error) {
- // if we receive and error while showing the NuxtError component
- // capture the error and force an immediate update so we re-render
- // without the NuxtError component
- if (this.displayingNuxtError) {
- this.errorFromNuxtError = error;
- this.$forceUpdate();
- }
- },
- computed: {
- routerViewKey() {
- // If nuxtChildKey prop is given or current route has children
- if (typeof this.nuxtChildKey !== 'undefined' || this.$route.matched.length > 1) {
- return this.nuxtChildKey || compile(this.$route.matched[0].path)(this.$route.params);
- }
- const [matchedRoute] = this.$route.matched;
- if (!matchedRoute) {
- return this.$route.path;
- }
- const Component = matchedRoute.components.default;
- if (Component && Component.options) {
- const {
- options
- } = Component;
- if (options.key) {
- return typeof options.key === 'function' ? options.key(this.$route) : options.key;
- }
- }
- const strict = /\/$/.test(matchedRoute.path);
- return strict ? this.$route.path : this.$route.path.replace(/\/$/, '');
- }
- },
- beforeCreate() {
- external_vue_default.a.util.defineReactive(this, 'nuxt', this.$root.$options.nuxt);
- },
- render(h) {
- // if there is no error
- if (!this.nuxt.err) {
- // Directly return nuxt child
- return h('NuxtChild', {
- key: this.routerViewKey,
- props: this.$props
- });
- }
- // if an error occurred within NuxtError show a simple
- // error message instead to prevent looping
- if (this.errorFromNuxtError) {
- this.$nextTick(() => this.errorFromNuxtError = false);
- return h('div', {}, [h('h2', 'An error occurred while showing the error page'), h('p', 'Unfortunately an error occurred and while showing the error page another error occurred'), h('p', `Error details: ${this.errorFromNuxtError.toString()}`), h('nuxt-link', {
- props: {
- to: '/'
- }
- }, 'Go back to home')]);
- }
- // track if we are showing the NuxtError component
- this.displayingNuxtError = true;
- this.$nextTick(() => this.displayingNuxtError = false);
- return h(nuxt_error, {
- props: {
- error: this.nuxt.err
- }
- });
- }
- });
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/.cache/nuxt/components/nuxt-loading.vue?vue&type=script&lang=js&
- /* harmony default export */ var nuxt_loadingvue_type_script_lang_js_ = ({
- name: 'NuxtLoading',
- data() {
- return {
- percent: 0,
- show: false,
- canSucceed: true,
- reversed: false,
- skipTimerCount: 0,
- rtl: false,
- throttle: 200,
- duration: 5000,
- continuous: false
- };
- },
- computed: {
- left() {
- if (!this.continuous && !this.rtl) {
- return false;
- }
- return this.rtl ? this.reversed ? '0px' : 'auto' : !this.reversed ? '0px' : 'auto';
- }
- },
- beforeDestroy() {
- this.clear();
- },
- methods: {
- clear() {
- clearInterval(this._timer);
- clearTimeout(this._throttle);
- this._timer = null;
- },
- start() {
- this.clear();
- this.percent = 0;
- this.reversed = false;
- this.skipTimerCount = 0;
- this.canSucceed = true;
- if (this.throttle) {
- this._throttle = setTimeout(() => this.startTimer(), this.throttle);
- } else {
- this.startTimer();
- }
- return this;
- },
- set(num) {
- this.show = true;
- this.canSucceed = true;
- this.percent = Math.min(100, Math.max(0, Math.floor(num)));
- return this;
- },
- get() {
- return this.percent;
- },
- increase(num) {
- this.percent = Math.min(100, Math.floor(this.percent + num));
- return this;
- },
- decrease(num) {
- this.percent = Math.max(0, Math.floor(this.percent - num));
- return this;
- },
- pause() {
- clearInterval(this._timer);
- return this;
- },
- resume() {
- this.startTimer();
- return this;
- },
- finish() {
- this.percent = this.reversed ? 0 : 100;
- this.hide();
- return this;
- },
- hide() {
- this.clear();
- setTimeout(() => {
- this.show = false;
- this.$nextTick(() => {
- this.percent = 0;
- this.reversed = false;
- });
- }, 500);
- return this;
- },
- fail(error) {
- this.canSucceed = false;
- return this;
- },
- startTimer() {
- if (!this.show) {
- this.show = true;
- }
- if (typeof this._cut === 'undefined') {
- this._cut = 10000 / Math.floor(this.duration);
- }
- this._timer = setInterval(() => {
- /**
- * When reversing direction skip one timers
- * so 0, 100 are displayed for two iterations
- * also disable css width transitioning
- * which otherwise interferes and shows
- * a jojo effect
- */
- if (this.skipTimerCount > 0) {
- this.skipTimerCount--;
- return;
- }
- if (this.reversed) {
- this.decrease(this._cut);
- } else {
- this.increase(this._cut);
- }
- if (this.continuous) {
- if (this.percent >= 100) {
- this.skipTimerCount = 1;
- this.reversed = !this.reversed;
- } else if (this.percent <= 0) {
- this.skipTimerCount = 1;
- this.reversed = !this.reversed;
- }
- }
- }, 100);
- }
- },
- render(h) {
- let el = h(false);
- if (this.show) {
- el = h('div', {
- staticClass: 'nuxt-progress',
- class: {
- 'nuxt-progress-notransition': this.skipTimerCount > 0,
- 'nuxt-progress-failed': !this.canSucceed
- },
- style: {
- width: this.percent + '%',
- left: this.left
- }
- });
- }
- return el;
- }
- });
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-loading.vue?vue&type=script&lang=js&
- /* harmony default export */ var components_nuxt_loadingvue_type_script_lang_js_ = (nuxt_loadingvue_type_script_lang_js_);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-loading.vue
- var nuxt_loading_render, nuxt_loading_staticRenderFns
- function nuxt_loading_injectStyles (context) {
-
- var style0 = __webpack_require__(16)
- if (style0.__inject__) style0.__inject__(context)
- }
- /* normalize component */
- var nuxt_loading_component = Object(componentNormalizer["a" /* default */])(
- components_nuxt_loadingvue_type_script_lang_js_,
- nuxt_loading_render,
- nuxt_loading_staticRenderFns,
- false,
- nuxt_loading_injectStyles,
- null,
- "6779722e"
-
- )
- /* harmony default export */ var nuxt_loading = (nuxt_loading_component.exports);
- // EXTERNAL MODULE: ./assets/css/normalize.css
- var normalize = __webpack_require__(18);
- // EXTERNAL MODULE: ./assets/css/base.scss
- var css_base = __webpack_require__(20);
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./layouts/default.vue?vue&type=template&id=678c62c5&
- var defaultvue_type_template_id_678c62c5_render = function render() {
- var _vm = this,
- _c = _vm._self._c;
- return _c('div', [_vm._ssrNode("<nav class=\"header navbar\"><div class=\"container\"><div class=\"navbar-header\"><a href=\"/\" class=\"logo\"><h1>艾斯佰丽</h1> <img src=\"/img/logo.png\" alt=\"艾斯佰丽\" class=\"only-pc\"> <img src=\"/img/logo3.png\" alt=\"艾斯佰丽\" class=\"only-mobile\"></a> <div data-toggle=\"collapse\" data-target=\"#navbar-collapse\" aria-expanded=\"false\" class=\"only-mobile navbar-toggle active\"><span class=\"name\">菜单</span> <span class=\"icon-bar\"></span></div></div> <div id=\"navbar-collapse\" class=\"navbar-collapse\"><ul class=\"nav clearfix\">" + _vm._ssrList(_vm.navbar, function (nav) {
- return "<li" + _vm._ssrClass(null, {
- dropdown: nav.children,
- active: _vm.isActive(nav)
- }) + ">" + (nav.children ? "<a data-toggle=\"dropdown\" href=\"javascript:void(0)\" class=\"dropdown-toggle only-mobile\">" + _vm._ssrEscape(_vm._s(nav.name) + "\n ") + "</a> <a" + _vm._ssrAttr("href", nav.link) + _vm._ssrAttr("target", nav.target) + " class=\"only-pc\"><span>" + _vm._ssrEscape(_vm._s(nav.name)) + "</span> <span>" + _vm._ssrEscape(_vm._s(nav.subname)) + "</span></a> <ul class=\"dropdown-menu\"><li class=\"only-mobile\"><a" + _vm._ssrAttr("href", nav.link) + _vm._ssrAttr("target", nav.target) + ">" + _vm._ssrEscape(_vm._s(nav.name)) + "</a></li> " + _vm._ssrList(nav.children, function (subNav) {
- return subNav.children ? "<li><a href=\"javascript:void(0)\" class=\"submenu-toggle\">" + _vm._ssrEscape(_vm._s(subNav.name)) + "</a> <ul class=\"dropdown-submenu clearfix\">" + _vm._ssrList(subNav.children, function (lastNav) {
- return "<li><a" + _vm._ssrAttr("href", lastNav.link) + _vm._ssrAttr("target", lastNav.target) + ">" + _vm._ssrEscape(_vm._s(lastNav.name)) + "</a></li>";
- }) + "</ul></li>" : "<li><a" + _vm._ssrAttr("href", subNav.link) + _vm._ssrAttr("target", subNav.target) + ">" + _vm._ssrEscape(_vm._s(subNav.name)) + "</a></li>";
- }) + "</ul>" : "<a" + _vm._ssrAttr("href", nav.link) + "><span>" + _vm._ssrEscape(_vm._s(nav.name)) + "</span> <span>" + _vm._ssrEscape(_vm._s(nav.subname)) + "</span></a>") + "</li>";
- }) + "</ul></div></div></nav> "), _c('nuxt'), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"footer\">", "</div>", [_vm._ssrNode("<div class=\"container clearfix\">", "</div>", [_vm._ssrNode("<div class=\"logo only-mobile\"><img src=\"/img/logo3.png\" alt> <img src=\"/img/logo-ross.png\" alt></div> <div class=\"title only-mobile\">关于我们</div> <div class=\"section\"><div class=\"logo only-pc\"><img src=\"/img/logo3.png\" alt> <img src=\"/img/logo-ross.png\" alt></div> <div class=\"item contact\">\n 深圳艾斯佰丽生物科技有限公司\n </div> <div class=\"item address\">广东省深圳市福田区卓越世纪中心四号楼32层</div> <div class=\"item mobile\">0755-23769340</div> <div class=\"item site\">http://www.spainross.com</div></div> "), _vm._ssrNode("<ul class=\"nav first\">", "</ul>", [_vm._ssrNode("<li>", "</li>", [_c('nuxt-link', {
- attrs: {
- "to": "/about.html"
- }
- }, [_vm._v("艾斯佰丽")])], 1), _vm._ssrNode(" <li><a href=\"/brand.html\">品牌中心</a></li> <li><a href=\"/product/binary-premium.html\">binary premium</a></li> <li><a href=\"/product/kestos.html\">kestos T2</a></li> <li><a href=\"/product/intradermik.html\">intradermik</a></li> <li><a href=\"/product/rollaction.html\">rollaction</a></li>")], 2), _vm._ssrNode(" <ul class=\"nav second\"><li><a href=\"/product/mesobiolift.html\">Mesobiolift RF</a></li> <li><a href=\"/product/diactivplus.html\">Diactivplus</a></li> <li><a href=\"https://zp.caimei365.com/12/ross\" target=\"_blank\">正品认证系统</a></li> <li><a href=\"/cooperative.html\">合作加盟</a></li> <li><a href=\"/contact.html\">联系我们</a></li></ul> <div class=\"qrcode-content\"><div class=\"qrcode\"><img src=\"/img/qrcode1.png\" alt=\"二维码\"> <div class=\"tip\">西班牙ROS'S</div></div> <div class=\"qrcode\"><img src=\"/img/qrcode2.png\" alt=\"二维码\"> <div class=\"tip\">正品认证系统</div></div></div>")], 2), _vm._ssrNode(" <div class=\"line\"></div> <div class=\"copyright\"><a href=\"https://www.caimei365.com/\" target=\"_blank\">本网站由采美365网提供技术支持</a> <span>Copyright ©2019</span> <span>acebelleshenzhen.com</span> <span>版权所有\n <a href=\"https://beian.miit.gov.cn/\" target=\"_blank\">粤ICP备2020131296号</a></span></div> <div style=\"width: 300px; margin: -12px auto; padding: 20px 0;display: flex;\"><a target=\"_blank\" href=\"https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030402006354\" style=\"\\n display: inline-block;\\n text-decoration: none;\\n height: 20px;\\n line-height: 20px;\\n \"><img src=\"/img/beian.png\" style=\"float: left\"> <p style=\"float: left;height: 20px;line-height: 20px; margin: 0px 0px 0px 5px;color: #939393 !important;\">\n 粤公网安备 44030402006354号\n </p></a></div>")], 2)], 2);
- };
- var defaultvue_type_template_id_678c62c5_staticRenderFns = [];
- // CONCATENATED MODULE: ./layouts/default.vue?vue&type=template&id=678c62c5&
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./layouts/default.vue?vue&type=script&lang=js&
- /* harmony default export */ var defaultvue_type_script_lang_js_ = ({
- data() {
- return {
- navbar: [{
- name: "首页",
- link: "/index.html",
- target: "_self",
- subname: "Home"
- }, {
- name: "艾斯佰丽",
- link: "/about.html",
- target: "_self",
- subname: "About Us"
- }, {
- name: "品牌中心",
- link: "/brand.html",
- target: "_self",
- subname: "Brand",
- children: [{
- name: "ROS'S介绍",
- link: "/brand/ross.html",
- target: "_self"
- }, {
- name: "产品系列",
- target: "_self",
- children: [{
- name: "Binary Premium",
- link: "/product/binary-premium.html",
- target: "_self"
- }, {
- name: "Diactivplus",
- link: "/product/diactivplus.html",
- target: "_self"
- }, {
- name: "Intradermik",
- link: "/product/intradermik.html",
- target: "_self"
- }, {
- name: "Mesobiolift RF",
- link: "/product/mesobiolift.html",
- target: "_self"
- }, {
- name: "Rollaction",
- link: "/product/rollaction.html",
- target: "_self"
- }, {
- name: "Kestos T2",
- link: "/product/kestos.html",
- target: "_self"
- }]
- }, {
- name: "案例展示",
- link: "/case.html",
- target: "_self"
- }, {
- name: "授权认证",
- link: "https://zp.caimei365.com/12/ross",
- target: "_blank"
- }]
- }, {
- name: "合作加盟",
- link: "/cooperation.html",
- target: "_self",
- subname: "Cooperation",
- children: [{
- name: "品牌实力",
- link: "/cooperation.html?index=1",
- target: "_self"
- }, {
- name: "提供支持",
- link: "/cooperation.html?index=2",
- target: "_self"
- }, {
- name: "服务模式",
- link: "/cooperation.html?index=3",
- target: "_self"
- }, {
- name: "在线咨询",
- link: "/cooperation.html?index=4",
- target: "_self"
- }]
- }, {
- name: "新闻动态",
- link: "/news.html",
- target: "_self",
- subname: "News"
- }, {
- name: "联系我们",
- link: "/contact.html",
- target: "_self",
- subname: "Contact Us",
- children: [{
- name: "联系方式",
- link: "/contact/consult.html",
- target: "_self"
- }, {
- name: "人才招聘",
- link: "/contact/job.html",
- target: "_self"
- }]
- }]
- };
- },
- methods: {
- isActive(nav) {
- // return window.location.href.indexOf(nav) > -1
- return this.$route.fullPath.indexOf(nav.link) > -1;
- }
- }
- });
- // CONCATENATED MODULE: ./layouts/default.vue?vue&type=script&lang=js&
- /* harmony default export */ var layouts_defaultvue_type_script_lang_js_ = (defaultvue_type_script_lang_js_);
- // CONCATENATED MODULE: ./layouts/default.vue
- /* normalize component */
- var default_component = Object(componentNormalizer["a" /* default */])(
- layouts_defaultvue_type_script_lang_js_,
- defaultvue_type_template_id_678c62c5_render,
- defaultvue_type_template_id_678c62c5_staticRenderFns,
- false,
- null,
- null,
- "98dabdb6"
-
- )
- /* harmony default export */ var layouts_default = (default_component.exports);
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/App.js
- const layouts = {
- "_default": sanitizeComponent(layouts_default)
- };
- /* harmony default export */ var App = ({
- render(h, props) {
- const loadingEl = h('NuxtLoading', {
- ref: 'loading'
- });
- const layoutEl = h(this.layout || 'nuxt');
- const templateEl = h('div', {
- domProps: {
- id: '__layout'
- },
- key: this.layoutName
- }, [layoutEl]);
- const transitionEl = h('transition', {
- props: {
- name: 'layout',
- mode: 'out-in'
- },
- on: {
- beforeEnter(el) {
- // Ensure to trigger scroll event after calling scrollBehavior
- window.$nuxt.$nextTick(() => {
- window.$nuxt.$emit('triggerScroll');
- });
- }
- }
- }, [templateEl]);
- return h('div', {
- domProps: {
- id: '__nuxt'
- }
- }, [loadingEl, transitionEl]);
- },
- data: () => ({
- isOnline: true,
- layout: null,
- layoutName: '',
- nbFetching: 0
- }),
- beforeCreate() {
- external_vue_default.a.util.defineReactive(this, 'nuxt', this.$options.nuxt);
- },
- created() {
- // Add this.$nuxt in child instances
- this.$root.$options.$nuxt = this;
- if (false) {}
- // Add $nuxt.error()
- this.error = this.nuxt.error;
- // Add $nuxt.context
- this.context = this.$options.context;
- },
- async mounted() {
- this.$loading = this.$refs.loading;
- if (this.isPreview) {
- if (this.$store && this.$store._actions.nuxtServerInit) {
- this.$loading.start();
- await this.$store.dispatch('nuxtServerInit', this.context);
- }
- await this.refresh();
- this.$loading.finish();
- }
- },
- watch: {
- 'nuxt.err': 'errorChanged'
- },
- computed: {
- isOffline() {
- return !this.isOnline;
- },
- isFetching() {
- return this.nbFetching > 0;
- },
- isPreview() {
- return Boolean(this.$options.previewData);
- }
- },
- methods: {
- refreshOnlineStatus() {
- if (false) {}
- },
- async refresh() {
- const pages = getMatchedComponentsInstances(this.$route);
- if (!pages.length) {
- return;
- }
- this.$loading.start();
- const promises = pages.map(page => {
- const p = [];
- // Old fetch
- if (page.$options.fetch && page.$options.fetch.length) {
- p.push(promisify(page.$options.fetch, this.context));
- }
- if (page.$fetch) {
- p.push(page.$fetch());
- } else {
- // Get all component instance to call $fetch
- for (const component of getChildrenComponentInstancesUsingFetch(page.$vnode.componentInstance)) {
- p.push(component.$fetch());
- }
- }
- if (page.$options.asyncData) {
- p.push(promisify(page.$options.asyncData, this.context).then(newData => {
- for (const key in newData) {
- external_vue_default.a.set(page.$data, key, newData[key]);
- }
- }));
- }
- return Promise.all(p);
- });
- try {
- await Promise.all(promises);
- } catch (error) {
- this.$loading.fail(error);
- globalHandleError(error);
- this.error(error);
- }
- this.$loading.finish();
- },
- errorChanged() {
- if (this.nuxt.err) {
- if (this.$loading) {
- if (this.$loading.fail) {
- this.$loading.fail(this.nuxt.err);
- }
- if (this.$loading.finish) {
- this.$loading.finish();
- }
- }
- let errorLayout = (nuxt_error.options || nuxt_error).layout;
- if (typeof errorLayout === 'function') {
- errorLayout = errorLayout(this.context);
- }
- this.setLayout(errorLayout);
- }
- },
- setLayout(layout) {
- if (!layout || !layouts['_' + layout]) {
- layout = 'default';
- }
- this.layoutName = layout;
- this.layout = layouts['_' + layout];
- return this.layout;
- },
- loadLayout(layout) {
- if (!layout || !layouts['_' + layout]) {
- layout = 'default';
- }
- return Promise.resolve(layouts['_' + layout]);
- },
- getRouterBase() {
- return Object(external_ufo_["withoutTrailingSlash"])(this.$router.options.base);
- },
- getRoutePath(route = '/') {
- const base = this.getRouterBase();
- return Object(external_ufo_["withoutTrailingSlash"])(Object(external_ufo_["withoutBase"])(Object(external_ufo_["parsePath"])(route).pathname, base));
- },
- getStaticAssetsPath(route = '/') {
- const {
- staticAssetsBase
- } = window.__NUXT__;
- return urlJoin(staticAssetsBase, this.getRoutePath(route));
- },
- async fetchStaticManifest() {
- return window.__NUXT_IMPORT__('manifest.js', Object(external_ufo_["normalizeURL"])(urlJoin(this.getStaticAssetsPath(), 'manifest.js')));
- },
- setPagePayload(payload) {
- this._pagePayload = payload;
- this._fetchCounters = {};
- },
- async fetchPayload(route, prefetch) {
- const path = Object(external_ufo_["decode"])(this.getRoutePath(route));
- const manifest = await this.fetchStaticManifest();
- if (!manifest.routes.includes(path)) {
- if (!prefetch) {
- this.setPagePayload(false);
- }
- throw new Error(`Route ${path} is not pre-rendered`);
- }
- const src = urlJoin(this.getStaticAssetsPath(route), 'payload.js');
- try {
- const payload = await window.__NUXT_IMPORT__(path, Object(external_ufo_["normalizeURL"])(src));
- if (!prefetch) {
- this.setPagePayload(payload);
- }
- return payload;
- } catch (err) {
- if (!prefetch) {
- this.setPagePayload(false);
- }
- throw err;
- }
- }
- },
- components: {
- NuxtLoading: nuxt_loading
- }
- });
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/index.js
- const ContactConsult = () => __webpack_require__.e(/* import() | components/contact-consult */ 1).then(__webpack_require__.bind(null, 29)).then(c => wrapFunctional(c.default || c));
- const ContactJoinUs = () => __webpack_require__.e(/* import() | components/contact-join-us */ 2).then(__webpack_require__.bind(null, 55)).then(c => wrapFunctional(c.default || c));
- // nuxt/nuxt.js#8607
- function wrapFunctional(options) {
- if (!options || !options.functional) {
- return options;
- }
- const propKeys = Array.isArray(options.props) ? options.props : Object.keys(options.props || {});
- return {
- render(h) {
- const attrs = {};
- const props = {};
- for (const key in this.$attrs) {
- if (propKeys.includes(key)) {
- props[key] = this.$attrs[key];
- } else {
- attrs[key] = this.$attrs[key];
- }
- }
- return h(options, {
- on: this.$listeners,
- attrs,
- props,
- scopedSlots: this.$scopedSlots
- }, this.$slots.default);
- }
- };
- }
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/plugin.js
- for (const name in components_namespaceObject) {
- external_vue_default.a.component(name, components_namespaceObject[name]);
- external_vue_default.a.component('Lazy' + name, components_namespaceObject[name]);
- }
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/index.js
- /* Plugins */
- // Source: .\\components\\plugin.js (mode: 'all')
- // Component: <ClientOnly>
- external_vue_default.a.component(external_vue_client_only_default.a.name, external_vue_client_only_default.a);
- // TODO: Remove in Nuxt 3: <NoSsr>
- external_vue_default.a.component(external_vue_no_ssr_default.a.name, {
- ...external_vue_no_ssr_default.a,
- render(h, ctx) {
- if (false) {}
- return external_vue_no_ssr_default.a.render(h, ctx);
- }
- });
- // Component: <NuxtChild>
- external_vue_default.a.component(nuxt_child.name, nuxt_child);
- external_vue_default.a.component('NChild', nuxt_child);
- // Component NuxtLink is imported in server.js or client.js
- // Component: <Nuxt>
- external_vue_default.a.component(components_nuxt.name, components_nuxt);
- Object.defineProperty(external_vue_default.a.prototype, '$nuxt', {
- get() {
- const globalNuxt = this.$root.$options.$nuxt;
- if (false) {}
- return globalNuxt;
- },
- configurable: true
- });
- external_vue_default.a.use(external_vue_meta_default.a, {
- "keyName": "head",
- "attribute": "data-n-head",
- "ssrAttribute": "data-n-head-ssr",
- "tagIDKeyName": "hid"
- });
- const defaultTransition = {
- "name": "page",
- "mode": "out-in",
- "appear": false,
- "appearClass": "appear",
- "appearActiveClass": "appear-active",
- "appearToClass": "appear-to"
- };
- async function createApp(ssrContext, config = {}) {
- const router = await createRouter(ssrContext, config);
- // Create Root instance
- // here we inject the router and store to all child components,
- // making them available everywhere as `this.$router` and `this.$store`.
- const app = {
- head: {
- "title": "caimei-authentic-website",
- "htmlAttrs": {
- "lang": "en"
- },
- "meta": [{
- "charset": "utf-8"
- }, {
- "name": "keywords",
- "content": "ross、西班牙ross、ross智能体疗、云智能体疗、ross产康、ross美容"
- }, {
- "hid": "description",
- "name": "description",
- "content": "西班牙ROSS坚持创新45年,专注人体健康发展、致力于免疫力提升,为您的健康保驾护航,助你更美更健康!"
- }, {
- "name": "viewport",
- "content": "width=device-width, initial-scale=1"
- }, {
- "name": "format-detection",
- "content": "telephone=no"
- }, {
- "name": "viewport",
- "content": "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
- }],
- "link": [{
- "rel": "icon",
- "type": "image\u002Fx-icon",
- "href": "\u002Ffavicon.ico"
- }, {
- "rel": "stylesheet",
- "href": "\u002Flibs\u002Fswiper\u002Fswiper.min.css"
- }],
- "script": [{
- "src": "\u002Flibs\u002Fjquery-3.6.0.min.js"
- }, {
- "src": "\u002Flibs\u002Fswiper\u002Fswiper.min.js"
- }, {
- "src": "\u002Fjs\u002Fmain.js"
- }],
- "style": []
- },
- router,
- nuxt: {
- defaultTransition,
- transitions: [defaultTransition],
- setTransitions(transitions) {
- if (!Array.isArray(transitions)) {
- transitions = [transitions];
- }
- transitions = transitions.map(transition => {
- if (!transition) {
- transition = defaultTransition;
- } else if (typeof transition === 'string') {
- transition = Object.assign({}, defaultTransition, {
- name: transition
- });
- } else {
- transition = Object.assign({}, defaultTransition, transition);
- }
- return transition;
- });
- this.$options.nuxt.transitions = transitions;
- return transitions;
- },
- err: null,
- dateErr: null,
- error(err) {
- err = err || null;
- app.context._errored = Boolean(err);
- err = err ? normalizeError(err) : null;
- let nuxt = app.nuxt; // to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207
- if (this) {
- nuxt = this.nuxt || this.$options.nuxt;
- }
- nuxt.dateErr = Date.now();
- nuxt.err = err;
- // Used in src/server.js
- if (ssrContext) {
- ssrContext.nuxt.error = err;
- }
- return err;
- }
- },
- ...App
- };
- const next = ssrContext ? ssrContext.next : location => app.router.push(location);
- // Resolve route
- let route;
- if (ssrContext) {
- route = router.resolve(ssrContext.url).route;
- } else {
- const path = getLocation(router.options.base, router.options.mode);
- route = router.resolve(path).route;
- }
- // Set context to app.context
- await setContext(app, {
- route,
- next,
- error: app.nuxt.error.bind(app),
- payload: ssrContext ? ssrContext.payload : undefined,
- req: ssrContext ? ssrContext.req : undefined,
- res: ssrContext ? ssrContext.res : undefined,
- beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined,
- ssrContext
- });
- function inject(key, value) {
- if (!key) {
- throw new Error('inject(key, value) has no key provided');
- }
- if (value === undefined) {
- throw new Error(`inject('${key}', value) has no value provided`);
- }
- key = '$' + key;
- // Add into app
- app[key] = value;
- // Add into context
- if (!app.context[key]) {
- app.context[key] = value;
- }
- // Check if plugin not already installed
- const installKey = '__nuxt_' + key + '_installed__';
- if (external_vue_default.a[installKey]) {
- return;
- }
- external_vue_default.a[installKey] = true;
- // Call Vue.use() to install the plugin into vm
- external_vue_default.a.use(() => {
- if (!Object.prototype.hasOwnProperty.call(external_vue_default.a.prototype, key)) {
- Object.defineProperty(external_vue_default.a.prototype, key, {
- get() {
- return this.$root.$options[key];
- }
- });
- }
- });
- }
- // Inject runtime config as $config
- inject('config', config);
- // Add enablePreview(previewData = {}) in context for plugins
- if (false) {}
- // Plugin execution
- if (typeof /* Cannot get final name for export "default" in "./node_modules/.cache/nuxt/components/plugin.js" (known exports: , known reexports: ) */ undefined === 'function') {
- await /* Cannot get final name for export "default" in "./node_modules/.cache/nuxt/components/plugin.js" (known exports: , known reexports: ) */ undefined(app.context, inject);
- }
- // Lock enablePreview in context
- if (false) {}
- // Wait for async component to be resolved first
- await new Promise((resolve, reject) => {
- // Ignore 404s rather than blindly replacing URL in browser
- if (false) {}
- router.replace(app.context.route.fullPath, resolve, err => {
- // https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js
- if (!err._isRouter) return reject(err);
- if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve();
- // navigated to a different route in router guard
- const unregister = router.afterEach(async (to, from) => {
- if ( true && ssrContext && ssrContext.url) {
- ssrContext.url = to.fullPath;
- }
- app.context.route = await getRouteData(to);
- app.context.params = to.params || {};
- app.context.query = to.query || {};
- unregister();
- resolve();
- });
- });
- });
- return {
- app,
- router
- };
- }
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/components/nuxt-link.server.js
- /* harmony default export */ var nuxt_link_server = ({
- name: 'NuxtLink',
- extends: external_vue_default.a.component('RouterLink'),
- props: {
- prefetch: {
- type: Boolean,
- default: true
- },
- noPrefetch: {
- type: Boolean,
- default: false
- }
- }
- });
- // CONCATENATED MODULE: ./node_modules/.cache/nuxt/server.js
- // should be included after ./index.js
- // Update serverPrefetch strategy
- external_vue_default.a.config.optionMergeStrategies.serverPrefetch = external_vue_default.a.config.optionMergeStrategies.created;
- // Fetch mixin
- if (!external_vue_default.a.__nuxt__fetch__mixin__) {
- external_vue_default.a.mixin(fetch_server);
- external_vue_default.a.__nuxt__fetch__mixin__ = true;
- }
- // Component: <NuxtLink>
- external_vue_default.a.component(nuxt_link_server.name, nuxt_link_server);
- external_vue_default.a.component('NLink', nuxt_link_server);
- if (!global.fetch) {
- global.fetch = external_node_fetch_default.a;
- }
- const noopApp = () => new external_vue_default.a({
- render: h => h('div', {
- domProps: {
- id: '__nuxt'
- }
- })
- });
- const createNext = ssrContext => opts => {
- // If static target, render on client-side
- ssrContext.redirected = opts;
- if (ssrContext.target === 'static' || !ssrContext.res) {
- ssrContext.nuxt.serverRendered = false;
- return;
- }
- let fullPath = Object(external_ufo_["withQuery"])(opts.path, opts.query);
- const $config = ssrContext.runtimeConfig || {};
- const routerBase = $config._app && $config._app.basePath || '/';
- if (!fullPath.startsWith('http') && routerBase !== '/' && !fullPath.startsWith(routerBase)) {
- fullPath = Object(external_ufo_["joinURL"])(routerBase, fullPath);
- }
- // Avoid loop redirect
- if (decodeURI(fullPath) === decodeURI(ssrContext.url)) {
- ssrContext.redirected = false;
- return;
- }
- ssrContext.res.writeHead(opts.status, {
- Location: Object(external_ufo_["normalizeURL"])(fullPath)
- });
- ssrContext.res.end();
- };
- // This exported function will be called by `bundleRenderer`.
- // This is where we perform data-prefetching to determine the
- // state of our application before actually rendering it.
- // Since data fetching is async, this function is expected to
- // return a Promise that resolves to the app instance.
- /* harmony default export */ var server = __webpack_exports__["default"] = (async ssrContext => {
- // Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect
- ssrContext.redirected = false;
- ssrContext.next = createNext(ssrContext);
- // Used for beforeNuxtRender({ Components, nuxtState })
- ssrContext.beforeRenderFns = [];
- // Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__)
- ssrContext.nuxt = {
- layout: 'default',
- data: [],
- fetch: {},
- error: null,
- serverRendered: true,
- routePath: ''
- };
- ssrContext.fetchCounters = {};
- // Remove query from url is static target
- if (ssrContext.url) {
- ssrContext.url = ssrContext.url.split('?')[0];
- }
- // Public runtime config
- ssrContext.nuxt.config = ssrContext.runtimeConfig.public;
- if (ssrContext.nuxt.config._app) {
- __webpack_require__.p = Object(external_ufo_["joinURL"])(ssrContext.nuxt.config._app.cdnURL, ssrContext.nuxt.config._app.assetsPath);
- }
- // Create the app definition and the instance (created for each request)
- const {
- app,
- router
- } = await createApp(ssrContext, ssrContext.runtimeConfig.private);
- const _app = new external_vue_default.a(app);
- // Add ssr route path to nuxt context so we can account for page navigation between ssr and csr
- ssrContext.nuxt.routePath = app.context.route.path;
- // Add meta infos (used in renderer.js)
- ssrContext.meta = _app.$meta();
- // Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext)
- ssrContext.asyncData = {};
- const beforeRender = async () => {
- // Call beforeNuxtRender() methods
- await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, {
- Components,
- nuxtState: ssrContext.nuxt
- })));
- };
- const renderErrorPage = async () => {
- // Don't server-render the page in static target
- if (ssrContext.target === 'static') {
- ssrContext.nuxt.serverRendered = false;
- }
- // Load layout for error page
- const layout = (nuxt_error.options || nuxt_error).layout;
- const errLayout = typeof layout === 'function' ? layout.call(nuxt_error, app.context) : layout;
- ssrContext.nuxt.layout = errLayout || 'default';
- await _app.loadLayout(errLayout);
- _app.setLayout(errLayout);
- await beforeRender();
- return _app;
- };
- const render404Page = () => {
- app.context.error({
- statusCode: 404,
- path: ssrContext.url,
- message: 'This page could not be found'
- });
- return renderErrorPage();
- };
- // Components are already resolved by setContext -> getRouteData (app/utils.js)
- const Components = getMatchedComponents(app.context.route);
- /*
- ** Call global middleware (nuxt.config.js)
- */
- let midd = [];
- midd = midd.map(name => {
- if (typeof name === 'function') {
- return name;
- }
- if (typeof nuxt_middleware[name] !== 'function') {
- app.context.error({
- statusCode: 500,
- message: 'Unknown middleware ' + name
- });
- }
- return nuxt_middleware[name];
- });
- await middlewareSeries(midd, app.context);
- // ...If there is a redirect or an error, stop the process
- if (ssrContext.redirected) {
- return noopApp();
- }
- if (ssrContext.nuxt.error) {
- return renderErrorPage();
- }
- /*
- ** Set layout
- */
- let layout = Components.length ? Components[0].options.layout : nuxt_error.layout;
- if (typeof layout === 'function') {
- layout = layout(app.context);
- }
- await _app.loadLayout(layout);
- if (ssrContext.nuxt.error) {
- return renderErrorPage();
- }
- layout = _app.setLayout(layout);
- ssrContext.nuxt.layout = _app.layoutName;
- /*
- ** Call middleware (layout + pages)
- */
- midd = [];
- layout = sanitizeComponent(layout);
- if (layout.options.middleware) {
- midd = midd.concat(layout.options.middleware);
- }
- Components.forEach(Component => {
- if (Component.options.middleware) {
- midd = midd.concat(Component.options.middleware);
- }
- });
- midd = midd.map(name => {
- if (typeof name === 'function') {
- return name;
- }
- if (typeof nuxt_middleware[name] !== 'function') {
- app.context.error({
- statusCode: 500,
- message: 'Unknown middleware ' + name
- });
- }
- return nuxt_middleware[name];
- });
- await middlewareSeries(midd, app.context);
- // ...If there is a redirect or an error, stop the process
- if (ssrContext.redirected) {
- return noopApp();
- }
- if (ssrContext.nuxt.error) {
- return renderErrorPage();
- }
- /*
- ** Call .validate()
- */
- let isValid = true;
- try {
- for (const Component of Components) {
- if (typeof Component.options.validate !== 'function') {
- continue;
- }
- isValid = await Component.options.validate(app.context);
- if (!isValid) {
- break;
- }
- }
- } catch (validationError) {
- // ...If .validate() threw an error
- app.context.error({
- statusCode: validationError.statusCode || '500',
- message: validationError.message
- });
- return renderErrorPage();
- }
- // ...If .validate() returned false
- if (!isValid) {
- // Render a 404 error page
- return render404Page();
- }
- // If no Components found, returns 404
- if (!Components.length) {
- return render404Page();
- }
- // Call asyncData & fetch hooks on components matched by the route.
- const asyncDatas = await Promise.all(Components.map(Component => {
- const promises = [];
- // Call asyncData(context)
- if (Component.options.asyncData && typeof Component.options.asyncData === 'function') {
- const promise = promisify(Component.options.asyncData, app.context);
- promise.then(asyncDataResult => {
- ssrContext.asyncData[Component.cid] = asyncDataResult;
- applyAsyncData(Component);
- return asyncDataResult;
- });
- promises.push(promise);
- } else {
- promises.push(null);
- }
- // Call fetch(context)
- if (Component.options.fetch && Component.options.fetch.length) {
- promises.push(Component.options.fetch(app.context));
- } else {
- promises.push(null);
- }
- return Promise.all(promises);
- }));
- // datas are the first row of each
- ssrContext.nuxt.data = asyncDatas.map(r => r[0] || {});
- // ...If there is a redirect or an error, stop the process
- if (ssrContext.redirected) {
- return noopApp();
- }
- if (ssrContext.nuxt.error) {
- return renderErrorPage();
- }
- // Call beforeNuxtRender methods & add store state
- await beforeRender();
- return _app;
- });
- /***/ }),
- /* 23 */
- /***/ (function(module, exports) {
- module.exports = require("url");
- /***/ })
- /******/ ]);
- //# sourceMappingURL=server.js.map
|