commit a23e58535aa4facba6f2de0d34c9c9a72ba9b533 Author: zby Date: Mon Dec 26 12:02:35 2022 +0800 红玫瑰 diff --git a/app.js b/app.js new file mode 100644 index 0000000..5bcbb6d --- /dev/null +++ b/app.js @@ -0,0 +1,5 @@ + +require('./common/runtime.js') +require('./common/vendor.js') +require('./common/main.js') + diff --git a/app.json b/app.json new file mode 100644 index 0000000..50331ea --- /dev/null +++ b/app.json @@ -0,0 +1,57 @@ +{ + "pages": [ + "pages/index/index", + "pages/searc/index", + "pages/user/index", + "pages/clickSearch/index", + "pages/rechargeRecord/index", + "pages/hot/index", + "pages/viewingrecords/index", + "pages/video/index", + "pages/wallpaper/index", + "pages/gzh/index", + "pages/zx/index", + "pages/tg/index", + "pages/qyweixin/index", + "pages/qrCode/index", + "pages/pay/index", + "pages/advertisement/index" + ], + "subPackages": [], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8", + "navigationStyle": "custom" + }, + "tabBar": { + "color": "#999999", + "selectedColor": "#FF8A00", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/index/index", + "iconPath": "static/image/index2.png", + "selectedIconPath": "static/image/index1.png", + "text": "首页" + }, + + { + "pagePath": "pages/wallpaper/index", + "iconPath": "static/image/wallpaper_icon2.png", + "selectedIconPath": "static/image/wallpaper_icon1.png", + "text": "壁纸" + }, + { + "pagePath": "pages/user/index", + "iconPath": "static/image/user1.png", + "selectedIconPath": "static/image/user2.png", + "text": "我的" + } + ] + }, + "usingComponents": {}, + + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..a07298e --- /dev/null +++ b/app.wxss @@ -0,0 +1,3 @@ + + +[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;} \ No newline at end of file diff --git a/cloudfunctions/public/config.json b/cloudfunctions/public/config.json new file mode 100644 index 0000000..5ecc33e --- /dev/null +++ b/cloudfunctions/public/config.json @@ -0,0 +1,6 @@ +{ + "permissions": { + "openapi": [ + ] + } +} \ No newline at end of file diff --git a/cloudfunctions/public/index.js b/cloudfunctions/public/index.js new file mode 100644 index 0000000..eb1ddb9 --- /dev/null +++ b/cloudfunctions/public/index.js @@ -0,0 +1,30 @@ +// 云函数入口文件 +const cloud = require('wx-server-sdk') + +cloud.init() + +// 云函数入口函数 +exports.main = async (event, context) => { + const wxContext = cloud.getWXContext() + + switch (event.action) { + case 'getUrlScheme': { + return getUrlScheme() + } + } + + return 'action not found' +} + +async function getUrlScheme() { + return cloud.openapi.urlscheme.generate({ + jumpWxa: { + path: '/page/component/index', // + query: '', + }, + // 如果想不过期则置为 false,并可以存到数据库 + isExpire: false, + // 一分钟有效期 + expireTime: parseInt(Date.now() / 1000 + 60), + }) +} diff --git a/cloudfunctions/public/package.json b/cloudfunctions/public/package.json new file mode 100644 index 0000000..c805526 --- /dev/null +++ b/cloudfunctions/public/package.json @@ -0,0 +1,14 @@ +{ + "name": "public", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.3.2" + } +} \ No newline at end of file diff --git a/common/main.js b/common/main.js new file mode 100644 index 0000000..3450b88 --- /dev/null +++ b/common/main.js @@ -0,0 +1,113 @@ +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"], [ +/* 0 */ +/*!******************************************!*\ + !*** D:/HBuilderProjects/qinjiu/main.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function (module, exports, __webpack_require__) { + + "use strict"; +/* WEBPACK VAR INJECTION */(function (createApp) { + __webpack_require__(/*! uni-pages */ 5); var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 6)); + + var _request = _interopRequireDefault(__webpack_require__(/*! @/utils/request.js */ 10)); + + + var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 4)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__; _vue.default.prototype.$http = _request.default; + _vue.default.config.productionTip = false; + _App.default.mpType = 'app'; + var app = new _vue.default(_objectSpread({}, + _App.default)); + + createApp(app).$mount(); + /* WEBPACK VAR INJECTION */ +}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createApp"])) + + /***/ +}), +/* 1 */, +/* 2 */, +/* 3 */, +/* 4 */, +/* 5 */, +/* 6 */ +/*!******************************************!*\ + !*** D:/HBuilderProjects/qinjiu/App.vue ***! + \******************************************/ +/*! no static exports found */ +/***/ (function (module, __webpack_exports__, __webpack_require__) { + + "use strict"; + __webpack_require__.r(__webpack_exports__); +/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 7); +/* harmony reexport (unknown) */ for (var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if (__WEBPACK_IMPORT_KEY__ !== 'default') (function (key) { __webpack_require__.d(__webpack_exports__, key, function () { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 9); + var render, staticRenderFns, recyclableRender, components + var renderjs + + + + + /* normalize component */ + + var component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__["default"])( + _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"], + render, + staticRenderFns, + false, + null, + null, + null, + false, + components, + renderjs + ) + + component.options.__file = "App.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + + /***/ +}), +/* 7 */ +/*!*******************************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/App.vue?vue&type=script&lang=js& ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function (module, __webpack_exports__, __webpack_require__) { + + "use strict"; + __webpack_require__.r(__webpack_exports__); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 8); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for (var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if (__WEBPACK_IMPORT_KEY__ !== 'default') (function (key) { __webpack_require__.d(__webpack_exports__, key, function () { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); + + /***/ +}), +/* 8 */ +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/HBuilderProjects/qinjiu/App.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = + { + + onLaunch: function () { + + + }, + onShow: function onShow() { + console.log('App Show'); + }, + onHide: function onHide() { + console.log('App Hide'); + } + }; exports.default = _default; + + /***/ +}) +], [[0, "common/runtime", "common/vendor"]]]); +//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map \ No newline at end of file diff --git a/common/runtime.js b/common/runtime.js new file mode 100644 index 0000000..e324854 --- /dev/null +++ b/common/runtime.js @@ -0,0 +1,273 @@ + + !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}(); + /******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded CSS chunks +/******/ var installedCssChunks = { +/******/ "common/runtime": 0 +/******/ } +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "common/runtime": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // script path function +/******/ function jsonpScriptSrc(chunkId) { +/******/ return __webpack_require__.p + "" + chunkId + ".js" +/******/ } +/******/ +/******/ // 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 = []; +/******/ +/******/ +/******/ // mini-css-extract-plugin CSS loading +/******/ var cssChunks = {"components/nav-bar/nav-bar":1,"components/dt-video/dt-video":1,"components/nav-drawer/nav-drawer":1,"components/tabbar/tabbar":1}; +/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); +/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { +/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) { +/******/ var href = "" + ({"components/nav-bar/nav-bar":"components/nav-bar/nav-bar","components/dt-video/dt-video":"components/dt-video/dt-video","components/nav-drawer/nav-drawer":"components/nav-drawer/nav-drawer","components/tabbar/tabbar":"components/tabbar/tabbar"}[chunkId]||chunkId) + ".wxss"; +/******/ var fullhref = __webpack_require__.p + href; +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve(); +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return resolve(); +/******/ } +/******/ var linkTag = document.createElement("link"); +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ linkTag.onload = resolve; +/******/ linkTag.onerror = function(event) { +/******/ var request = event && event.target && event.target.src || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.request = request; +/******/ delete installedCssChunks[chunkId] +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ }; +/******/ linkTag.href = fullhref; +/******/ +/******/ var head = document.getElementsByTagName("head")[0]; +/******/ head.appendChild(linkTag); +/******/ }).then(function() { +/******/ installedCssChunks[chunkId] = 0; +/******/ })); +/******/ } +/******/ +/******/ // JSONP chunk loading for javascript +/******/ +/******/ var installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise(function(resolve, reject) { +/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; +/******/ }); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var script = document.createElement('script'); +/******/ var onScriptComplete; +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.src = jsonpScriptSrc(chunkId); +/******/ +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ onScriptComplete = function (event) { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var chunk = installedChunks[chunkId]; +/******/ if(chunk !== 0) { +/******/ if(chunk) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ chunk[1](error); +/******/ } +/******/ installedChunks[chunkId] = undefined; +/******/ } +/******/ }; +/******/ var timeout = setTimeout(function(){ +/******/ onScriptComplete({ type: 'timeout', target: script }); +/******/ }, 120000); +/******/ script.onerror = script.onload = onScriptComplete; +/******/ document.head.appendChild(script); +/******/ } +/******/ } +/******/ 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 = "/"; +/******/ +/******/ // on error function for async loading +/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; +/******/ +/******/ var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // run deferred modules from other chunks +/******/ checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ([]); +//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map + \ No newline at end of file diff --git a/common/vendor.js b/common/vendor.js new file mode 100644 index 0000000..6a1a746 --- /dev/null +++ b/common/vendor.js @@ -0,0 +1,9475 @@ +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"], { + +/***/ 1: +/*!************************************************************!*\ + !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports, __webpack_require__) { + + "use strict"; +/* WEBPACK VAR INJECTION */(function (global) { + Object.defineProperty(exports, "__esModule", { value: true }); exports.createApp = createApp; exports.createComponent = createComponent; exports.createPage = createPage; exports.createPlugin = createPlugin; exports.createSubpackageApp = createSubpackageApp; exports.default = void 0; var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 3); + var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 4)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + + var realAtob; + + var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + var b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; + + if (typeof atob !== 'function') { + realAtob = function realAtob(str) { + str = String(str).replace(/[\t\n\f\r ]+/g, ''); + if (!b64re.test(str)) { throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); } + + // Adding the padding if missing, for semplicity + str += '=='.slice(2 - (str.length & 3)); + var bitmap; var result = ''; var r1; var r2; var i = 0; + for (; i < str.length;) { + bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 | + (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++))); + + result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : + r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : + String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255); + } + return result; + }; + } else { + // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法 + realAtob = atob; + } + + function b64DecodeUnicode(str) { + return decodeURIComponent(realAtob(str).split('').map(function (c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); + } + + function getCurrentUserInfo() { + var token = wx.getStorageSync('uni_id_token') || ''; + var tokenArr = token.split('.'); + if (!token || tokenArr.length !== 3) { + return { + uid: null, + role: [], + permission: [], + tokenExpired: 0 + }; + + } + var userInfo; + try { + userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1])); + } catch (error) { + throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message); + } + userInfo.tokenExpired = userInfo.exp * 1000; + delete userInfo.exp; + delete userInfo.iat; + return userInfo; + } + + function uniIdMixin(Vue) { + Vue.prototype.uniIDHasRole = function (roleId) { + var _getCurrentUserInfo = + + + getCurrentUserInfo(), role = _getCurrentUserInfo.role; + return role.indexOf(roleId) > -1; + }; + Vue.prototype.uniIDHasPermission = function (permissionId) { + var _getCurrentUserInfo2 = + + + getCurrentUserInfo(), permission = _getCurrentUserInfo2.permission; + return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1; + }; + Vue.prototype.uniIDTokenValid = function () { + var _getCurrentUserInfo3 = + + + getCurrentUserInfo(), tokenExpired = _getCurrentUserInfo3.tokenExpired; + return tokenExpired > Date.now(); + }; + } + + var _toString = Object.prototype.toString; + var hasOwnProperty = Object.prototype.hasOwnProperty; + + function isFn(fn) { + return typeof fn === 'function'; + } + + function isStr(str) { + return typeof str === 'string'; + } + + function isPlainObject(obj) { + return _toString.call(obj) === '[object Object]'; + } + + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + + function noop() { } + + /** + * Create a cached version of a pure function. + */ + function cached(fn) { + var cache = Object.create(null); + return function cachedFn(str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }); + }); + + function sortObject(obj) { + var sortObj = {}; + if (isPlainObject(obj)) { + Object.keys(obj).sort().forEach(function (key) { + sortObj[key] = obj[key]; + }); + } + return !Object.keys(sortObj) ? obj : sortObj; + } + + var HOOKS = [ + 'invoke', + 'success', + 'fail', + 'complete', + 'returnValue']; + + + var globalInterceptors = {}; + var scopedInterceptors = {}; + + function mergeHook(parentVal, childVal) { + var res = childVal ? + parentVal ? + parentVal.concat(childVal) : + Array.isArray(childVal) ? + childVal : [childVal] : + parentVal; + return res ? + dedupeHooks(res) : + res; + } + + function dedupeHooks(hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res; + } + + function removeHook(hooks, hook) { + var index = hooks.indexOf(hook); + if (index !== -1) { + hooks.splice(index, 1); + } + } + + function mergeInterceptorHook(interceptor, option) { + Object.keys(option).forEach(function (hook) { + if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { + interceptor[hook] = mergeHook(interceptor[hook], option[hook]); + } + }); + } + + function removeInterceptorHook(interceptor, option) { + if (!interceptor || !option) { + return; + } + Object.keys(option).forEach(function (hook) { + if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { + removeHook(interceptor[hook], option[hook]); + } + }); + } + + function addInterceptor(method, option) { + if (typeof method === 'string' && isPlainObject(option)) { + mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option); + } else if (isPlainObject(method)) { + mergeInterceptorHook(globalInterceptors, method); + } + } + + function removeInterceptor(method, option) { + if (typeof method === 'string') { + if (isPlainObject(option)) { + removeInterceptorHook(scopedInterceptors[method], option); + } else { + delete scopedInterceptors[method]; + } + } else if (isPlainObject(method)) { + removeInterceptorHook(globalInterceptors, method); + } + } + + function wrapperHook(hook) { + return function (data) { + return hook(data) || data; + }; + } + + function isPromise(obj) { + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; + } + + function queue(hooks, data) { + var promise = false; + for (var i = 0; i < hooks.length; i++) { + var hook = hooks[i]; + if (promise) { + promise = Promise.resolve(wrapperHook(hook)); + } else { + var res = hook(data); + if (isPromise(res)) { + promise = Promise.resolve(res); + } + if (res === false) { + return { + then: function then() { } + }; + + } + } + } + return promise || { + then: function then(callback) { + return callback(data); + } + }; + + } + + function wrapperOptions(interceptor) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + ['success', 'fail', 'complete'].forEach(function (name) { + if (Array.isArray(interceptor[name])) { + var oldCallback = options[name]; + options[name] = function callbackInterceptor(res) { + queue(interceptor[name], res).then(function (res) { + /* eslint-disable no-mixed-operators */ + return isFn(oldCallback) && oldCallback(res) || res; + }); + }; + } + }); + return options; + } + + function wrapperReturnValue(method, returnValue) { + var returnValueHooks = []; + if (Array.isArray(globalInterceptors.returnValue)) { + returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue)); + } + var interceptor = scopedInterceptors[method]; + if (interceptor && Array.isArray(interceptor.returnValue)) { + returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue)); + } + returnValueHooks.forEach(function (hook) { + returnValue = hook(returnValue) || returnValue; + }); + return returnValue; + } + + function getApiInterceptorHooks(method) { + var interceptor = Object.create(null); + Object.keys(globalInterceptors).forEach(function (hook) { + if (hook !== 'returnValue') { + interceptor[hook] = globalInterceptors[hook].slice(); + } + }); + var scopedInterceptor = scopedInterceptors[method]; + if (scopedInterceptor) { + Object.keys(scopedInterceptor).forEach(function (hook) { + if (hook !== 'returnValue') { + interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); + } + }); + } + return interceptor; + } + + function invokeApi(method, api, options) { + for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { params[_key - 3] = arguments[_key]; } + var interceptor = getApiInterceptorHooks(method); + if (interceptor && Object.keys(interceptor).length) { + if (Array.isArray(interceptor.invoke)) { + var res = queue(interceptor.invoke, options); + return res.then(function (options) { + return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params)); + }); + } else { + return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params)); + } + } + return api.apply(void 0, [options].concat(params)); + } + + var promiseInterceptor = { + returnValue: function returnValue(res) { + if (!isPromise(res)) { + return res; + } + return new Promise(function (resolve, reject) { + res.then(function (res) { + if (res[0]) { + reject(res[0]); + } else { + resolve(res[1]); + } + }); + }); + } + }; + + + var SYNC_API_RE = + /^\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo/; + + var CONTEXT_API_RE = /^create|Manager$/; + + // Context例外情况 + var CONTEXT_API_RE_EXC = ['createBLEConnection']; + + // 同步例外情况 + var ASYNC_API = ['createBLEConnection']; + + var CALLBACK_API_RE = /^on|^off/; + + function isContextApi(name) { + return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1; + } + function isSyncApi(name) { + return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1; + } + + function isCallbackApi(name) { + return CALLBACK_API_RE.test(name) && name !== 'onPush'; + } + + function handlePromise(promise) { + return promise.then(function (data) { + return [null, data]; + }). + catch(function (err) { return [err]; }); + } + + function shouldPromise(name) { + if ( + isContextApi(name) || + isSyncApi(name) || + isCallbackApi(name)) { + return false; + } + return true; + } + + /* eslint-disable no-extend-native */ + if (!Promise.prototype.finally) { + Promise.prototype.finally = function (callback) { + var promise = this.constructor; + return this.then( + function (value) { return promise.resolve(callback()).then(function () { return value; }); }, + function (reason) { + return promise.resolve(callback()).then(function () { + throw reason; + }); + }); + + }; + } + + function promisify(name, api) { + if (!shouldPromise(name)) { + return api; + } + return function promiseApi() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { params[_key2 - 1] = arguments[_key2]; } + if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) { + return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, options].concat(params))); + } + return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) { + invokeApi.apply(void 0, [name, api, Object.assign({}, options, { + success: resolve, + fail: reject + })].concat( + params)); + }))); + }; + } + + var EPS = 1e-4; + var BASE_DEVICE_WIDTH = 750; + var isIOS = false; + var deviceWidth = 0; + var deviceDPR = 0; + + function checkDeviceWidth() { + var _wx$getSystemInfoSync = + + + + + wx.getSystemInfoSync(), platform = _wx$getSystemInfoSync.platform, pixelRatio = _wx$getSystemInfoSync.pixelRatio, windowWidth = _wx$getSystemInfoSync.windowWidth; // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni + + deviceWidth = windowWidth; + deviceDPR = pixelRatio; + isIOS = platform === 'ios'; + } + + function upx2px(number, newDeviceWidth) { + if (deviceWidth === 0) { + checkDeviceWidth(); + } + + number = Number(number); + if (number === 0) { + return 0; + } + var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth); + if (result < 0) { + result = -result; + } + result = Math.floor(result + EPS); + if (result === 0) { + if (deviceDPR === 1 || !isIOS) { + result = 1; + } else { + result = 0.5; + } + } + return number < 0 ? -result : result; + } + + var LOCALE_ZH_HANS = 'zh-Hans'; + var LOCALE_ZH_HANT = 'zh-Hant'; + var LOCALE_EN = 'en'; + var LOCALE_FR = 'fr'; + var LOCALE_ES = 'es'; + + var messages = {}; + + var locale; + + { + locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN; + } + + function initI18nMessages() { + if (!isEnableLocale()) { + return; + } + var localeKeys = Object.keys(__uniConfig.locales); + if (localeKeys.length) { + localeKeys.forEach(function (locale) { + var curMessages = messages[locale]; + var userMessages = __uniConfig.locales[locale]; + if (curMessages) { + Object.assign(curMessages, userMessages); + } else { + messages[locale] = userMessages; + } + }); + } + } + + initI18nMessages(); + + var i18n = (0, _uniI18n.initVueI18n)( + locale, + {}); + + var t = i18n.t; + var i18nMixin = i18n.mixin = { + beforeCreate: function beforeCreate() { + var _this = this; + var unwatch = i18n.i18n.watchLocale(function () { + _this.$forceUpdate(); + }); + this.$once('hook:beforeDestroy', function () { + unwatch(); + }); + }, + methods: { + $$t: function $$t(key, values) { + return t(key, values); + } + } + }; + + + var setLocale = i18n.setLocale; + var getLocale = i18n.getLocale; + + function initAppLocale(Vue, appVm, locale) { + var state = Vue.observable({ + locale: locale || i18n.getLocale() + }); + + var localeWatchers = []; + appVm.$watchLocale = function (fn) { + localeWatchers.push(fn); + }; + Object.defineProperty(appVm, '$locale', { + get: function get() { + return state.locale; + }, + set: function set(v) { + state.locale = v; + localeWatchers.forEach(function (watch) { return watch(v); }); + } + }); + + } + + function isEnableLocale() { + return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length; + } + + function include(str, parts) { + return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); + } + + function startsWith(str, parts) { + return parts.find(function (part) { return str.indexOf(part) === 0; }); + } + + function normalizeLocale(locale, messages) { + if (!locale) { + return; + } + locale = locale.trim().replace(/_/g, '-'); + if (messages && messages[locale]) { + return locale; + } + locale = locale.toLowerCase(); + if (locale === 'chinese') { + // 支付宝 + return LOCALE_ZH_HANS; + } + if (locale.indexOf('zh') === 0) { + if (locale.indexOf('-hans') > -1) { + return LOCALE_ZH_HANS; + } + if (locale.indexOf('-hant') > -1) { + return LOCALE_ZH_HANT; + } + if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { + return LOCALE_ZH_HANT; + } + return LOCALE_ZH_HANS; + } + var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]); + if (lang) { + return lang; + } + } + // export function initI18n() { + // const localeKeys = Object.keys(__uniConfig.locales || {}) + // if (localeKeys.length) { + // localeKeys.forEach((locale) => + // i18n.add(locale, __uniConfig.locales[locale]) + // ) + // } + // } + + function getLocale$1() { + // 优先使用 $locale + var app = getApp({ + allowDefault: true + }); + + if (app && app.$vm) { + return app.$vm.$locale; + } + return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN; + } + + function setLocale$1(locale) { + var app = getApp(); + if (!app) { + return false; + } + var oldLocale = app.$vm.$locale; + if (oldLocale !== locale) { + app.$vm.$locale = locale; + onLocaleChangeCallbacks.forEach(function (fn) { + return fn({ + locale: locale + }); + }); + + return true; + } + return false; + } + + var onLocaleChangeCallbacks = []; + function onLocaleChange(fn) { + if (onLocaleChangeCallbacks.indexOf(fn) === -1) { + onLocaleChangeCallbacks.push(fn); + } + } + + if (typeof global !== 'undefined') { + global.getLocale = getLocale$1; + } + + var interceptors = { + promiseInterceptor: promiseInterceptor + }; + + + var baseApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + upx2px: upx2px, + getLocale: getLocale$1, + setLocale: setLocale$1, + onLocaleChange: onLocaleChange, + addInterceptor: addInterceptor, + removeInterceptor: removeInterceptor, + interceptors: interceptors + }); + + + function findExistsPageIndex(url) { + var pages = getCurrentPages(); + var len = pages.length; + while (len--) { + var page = pages[len]; + if (page.$page && page.$page.fullPath === url) { + return len; + } + } + return -1; + } + + var redirectTo = { + name: function name(fromArgs) { + if (fromArgs.exists === 'back' && fromArgs.delta) { + return 'navigateBack'; + } + return 'redirectTo'; + }, + args: function args(fromArgs) { + if (fromArgs.exists === 'back' && fromArgs.url) { + var existsPageIndex = findExistsPageIndex(fromArgs.url); + if (existsPageIndex !== -1) { + var delta = getCurrentPages().length - 1 - existsPageIndex; + if (delta > 0) { + fromArgs.delta = delta; + } + } + } + } + }; + + + var previewImage = { + args: function args(fromArgs) { + var currentIndex = parseInt(fromArgs.current); + if (isNaN(currentIndex)) { + return; + } + var urls = fromArgs.urls; + if (!Array.isArray(urls)) { + return; + } + var len = urls.length; + if (!len) { + return; + } + if (currentIndex < 0) { + currentIndex = 0; + } else if (currentIndex >= len) { + currentIndex = len - 1; + } + if (currentIndex > 0) { + fromArgs.current = urls[currentIndex]; + fromArgs.urls = urls.filter( + function (item, index) { return index < currentIndex ? item !== urls[currentIndex] : true; }); + + } else { + fromArgs.current = urls[0]; + } + return { + indicator: false, + loop: false + }; + + } + }; + + + var UUID_KEY = '__DC_STAT_UUID'; + var deviceId; + function useDeviceId(result) { + deviceId = deviceId || wx.getStorageSync(UUID_KEY); + if (!deviceId) { + deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7); + wx.setStorage({ + key: UUID_KEY, + data: deviceId + }); + + } + result.deviceId = deviceId; + } + + function addSafeAreaInsets(result) { + if (result.safeArea) { + var safeArea = result.safeArea; + result.safeAreaInsets = { + top: safeArea.top, + left: safeArea.left, + right: result.windowWidth - safeArea.right, + bottom: result.screenHeight - safeArea.bottom + }; + + } + } + + function populateParameters(result) { + var _result$brand = + + + + + + result.brand, brand = _result$brand === void 0 ? '' : _result$brand, _result$model = result.model, model = _result$model === void 0 ? '' : _result$model, _result$system = result.system, system = _result$system === void 0 ? '' : _result$system, _result$language = result.language, language = _result$language === void 0 ? '' : _result$language, theme = result.theme, version = result.version, platform = result.platform, fontSizeSetting = result.fontSizeSetting, SDKVersion = result.SDKVersion, pixelRatio = result.pixelRatio, deviceOrientation = result.deviceOrientation; + // const isQuickApp = "mp-weixin".indexOf('quickapp-webview') !== -1 + + // osName osVersion + var osName = ''; + var osVersion = ''; + { + osName = system.split(' ')[0] || ''; + osVersion = system.split(' ')[1] || ''; + } + var hostVersion = version; + + // deviceType + var deviceType = getGetDeviceType(result, model); + + // deviceModel + var deviceBrand = getDeviceBrand(brand); + + // hostName + var _hostName = getHostName(result); + + // deviceOrientation + var _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持 + + // devicePixelRatio + var _devicePixelRatio = pixelRatio; + + // SDKVersion + var _SDKVersion = SDKVersion; + + // hostLanguage + var hostLanguage = language.replace(/_/g, '-'); + + // wx.getAccountInfoSync + + var parameters = { + appId: "__UNI__AD7219D", + appName: "qinjiu", + appVersion: "1.0.0", + appVersionCode: "100", + appLanguage: getAppLanguage(hostLanguage), + uniCompileVersion: "3.4.15", + uniRuntimeVersion: "3.4.15", + uniPlatform: undefined || "mp-weixin", + deviceBrand: deviceBrand, + deviceModel: model, + deviceType: deviceType, + devicePixelRatio: _devicePixelRatio, + deviceOrientation: _deviceOrientation, + osName: osName.toLocaleLowerCase(), + osVersion: osVersion, + hostTheme: theme, + hostVersion: hostVersion, + hostLanguage: hostLanguage, + hostName: _hostName, + hostSDKVersion: _SDKVersion, + hostFontSizeSetting: fontSizeSetting, + windowTop: 0, + windowBottom: 0, + // TODO + osLanguage: undefined, + osTheme: undefined, + ua: undefined, + hostPackageName: undefined, + browserName: undefined, + browserVersion: undefined + }; + + + Object.assign(result, parameters); + } + + function getGetDeviceType(result, model) { + var deviceType = result.deviceType || 'phone'; + { + var deviceTypeMaps = { + ipad: 'pad', + windows: 'pc', + mac: 'pc' + }; + + var deviceTypeMapsKeys = Object.keys(deviceTypeMaps); + var _model = model.toLocaleLowerCase(); + for (var index = 0; index < deviceTypeMapsKeys.length; index++) { + var _m = deviceTypeMapsKeys[index]; + if (_model.indexOf(_m) !== -1) { + deviceType = deviceTypeMaps[_m]; + break; + } + } + } + return deviceType; + } + + function getDeviceBrand(brand) { + var deviceBrand = brand; + if (deviceBrand) { + deviceBrand = brand.toLocaleLowerCase(); + } + return deviceBrand; + } + + function getAppLanguage(defaultLanguage) { + return getLocale$1 ? + getLocale$1() : + defaultLanguage; + } + + function getHostName(result) { + var _platform = 'WeChat'; + var _hostName = result.hostName || _platform; // mp-jd + { + if (result.environment) { + _hostName = result.environment; + } else if (result.host && result.host.env) { + _hostName = result.host.env; + } + } + + return _hostName; + } + + var getSystemInfo = { + returnValue: function returnValue(result) { + useDeviceId(result); + addSafeAreaInsets(result); + populateParameters(result); + } + }; + + + var showActionSheet = { + args: function args(fromArgs) { + if (typeof fromArgs === 'object') { + fromArgs.alertText = fromArgs.title; + } + } + }; + + + var getAppBaseInfo = { + returnValue: function returnValue(result) { + var _result = + result, version = _result.version, language = _result.language, SDKVersion = _result.SDKVersion, theme = _result.theme; + + var _hostName = getHostName(result); + + var hostLanguage = language.replace('_', '-'); + + result = sortObject(Object.assign(result, { + appId: "__UNI__AD7219D", + appName: "qinjiu", + appVersion: "1.0.0", + appVersionCode: "100", + appLanguage: getAppLanguage(hostLanguage), + hostVersion: version, + hostLanguage: hostLanguage, + hostName: _hostName, + hostSDKVersion: SDKVersion, + hostTheme: theme + })); + + } + }; + + + var getDeviceInfo = { + returnValue: function returnValue(result) { + var _result2 = + result, brand = _result2.brand, model = _result2.model; + var deviceType = getGetDeviceType(result, model); + var deviceBrand = getDeviceBrand(brand); + useDeviceId(result); + + result = sortObject(Object.assign(result, { + deviceType: deviceType, + deviceBrand: deviceBrand, + deviceModel: model + })); + + } + }; + + + var getWindowInfo = { + returnValue: function returnValue(result) { + addSafeAreaInsets(result); + + result = sortObject(Object.assign(result, { + windowTop: 0, + windowBottom: 0 + })); + + } + }; + + + // import navigateTo from 'uni-helpers/navigate-to' + + var protocols = { + redirectTo: redirectTo, + // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP + previewImage: previewImage, + getSystemInfo: getSystemInfo, + getSystemInfoSync: getSystemInfo, + showActionSheet: showActionSheet, + getAppBaseInfo: getAppBaseInfo, + getDeviceInfo: getDeviceInfo, + getWindowInfo: getWindowInfo + }; + + var todos = [ + 'vibrate', + 'preloadPage', + 'unPreloadPage', + 'loadSubPackage']; + + var canIUses = []; + + var CALLBACKS = ['success', 'fail', 'cancel', 'complete']; + + function processCallback(methodName, method, returnValue) { + return function (res) { + return method(processReturnValue(methodName, res, returnValue)); + }; + } + + function processArgs(methodName, fromArgs) { + var argsOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var returnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var keepFromArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + if (isPlainObject(fromArgs)) {// 一般 api 的参数解析 + var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值 + if (isFn(argsOption)) { + argsOption = argsOption(fromArgs, toArgs) || {}; + } + for (var key in fromArgs) { + if (hasOwn(argsOption, key)) { + var keyOption = argsOption[key]; + if (isFn(keyOption)) { + keyOption = keyOption(fromArgs[key], fromArgs, toArgs); + } + if (!keyOption) {// 不支持的参数 + console.warn("The '".concat(methodName, "' method of platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support option '").concat(key, "'")); + } else if (isStr(keyOption)) {// 重写参数 key + toArgs[keyOption] = fromArgs[key]; + } else if (isPlainObject(keyOption)) {// {name:newName,value:value}可重新指定参数 key:value + toArgs[keyOption.name ? keyOption.name : key] = keyOption.value; + } + } else if (CALLBACKS.indexOf(key) !== -1) { + if (isFn(fromArgs[key])) { + toArgs[key] = processCallback(methodName, fromArgs[key], returnValue); + } + } else { + if (!keepFromArgs) { + toArgs[key] = fromArgs[key]; + } + } + } + return toArgs; + } else if (isFn(fromArgs)) { + fromArgs = processCallback(methodName, fromArgs, returnValue); + } + return fromArgs; + } + + function processReturnValue(methodName, res, returnValue) { + var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + if (isFn(protocols.returnValue)) {// 处理通用 returnValue + res = protocols.returnValue(methodName, res); + } + return processArgs(methodName, res, returnValue, {}, keepReturnValue); + } + + function wrapper(methodName, method) { + if (hasOwn(protocols, methodName)) { + var protocol = protocols[methodName]; + if (!protocol) {// 暂不支持的 api + return function () { + console.error("Platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support '".concat(methodName, "'.")); + }; + } + return function (arg1, arg2) {// 目前 api 最多两个参数 + var options = protocol; + if (isFn(protocol)) { + options = protocol(arg1); + } + + arg1 = processArgs(methodName, arg1, options.args, options.returnValue); + + var args = [arg1]; + if (typeof arg2 !== 'undefined') { + args.push(arg2); + } + if (isFn(options.name)) { + methodName = options.name(arg1); + } else if (isStr(options.name)) { + methodName = options.name; + } + var returnValue = wx[methodName].apply(wx, args); + if (isSyncApi(methodName)) {// 同步 api + return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName)); + } + return returnValue; + }; + } + return method; + } + + var todoApis = Object.create(null); + + var TODOS = [ + 'onTabBarMidButtonTap', + 'subscribePush', + 'unsubscribePush', + 'onPush', + 'offPush', + 'share']; + + + function createTodoApi(name) { + return function todoApi(_ref) { + var fail = _ref.fail, complete = _ref.complete; + var res = { + errMsg: "".concat(name, ":fail method '").concat(name, "' not supported") + }; + + isFn(fail) && fail(res); + isFn(complete) && complete(res); + }; + } + + TODOS.forEach(function (name) { + todoApis[name] = createTodoApi(name); + }); + + var providers = { + oauth: ['weixin'], + share: ['weixin'], + payment: ['wxpay'], + push: ['weixin'] + }; + + + function getProvider(_ref2) { + var service = _ref2.service, success = _ref2.success, fail = _ref2.fail, complete = _ref2.complete; + var res = false; + if (providers[service]) { + res = { + errMsg: 'getProvider:ok', + service: service, + provider: providers[service] + }; + + isFn(success) && success(res); + } else { + res = { + errMsg: 'getProvider:fail service not found' + }; + + isFn(fail) && fail(res); + } + isFn(complete) && complete(res); + } + + var extraApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + getProvider: getProvider + }); + + + var getEmitter = function () { + var Emitter; + return function getUniEmitter() { + if (!Emitter) { + Emitter = new _vue.default(); + } + return Emitter; + }; + }(); + + function apply(ctx, method, args) { + return ctx[method].apply(ctx, args); + } + + function $on() { + return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments)); + } + function $off() { + return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments)); + } + function $once() { + return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments)); + } + function $emit() { + return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments)); + } + + var eventApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + $on: $on, + $off: $off, + $once: $once, + $emit: $emit + }); + + + /** + * 框架内 try-catch + */ + /** + * 开发者 try-catch + */ + function tryCatch(fn) { + return function () { + try { + return fn.apply(fn, arguments); + } catch (e) { + // TODO + console.error(e); + } + }; + } + + function getApiCallbacks(params) { + var apiCallbacks = {}; + for (var name in params) { + var param = params[name]; + if (isFn(param)) { + apiCallbacks[name] = tryCatch(param); + delete params[name]; + } + } + return apiCallbacks; + } + + var cid; + var cidErrMsg; + + function normalizePushMessage(message) { + try { + return JSON.parse(message); + } catch (e) { } + return message; + } + + function invokePushCallback( + args) { + if (args.type === 'clientId') { + cid = args.cid; + cidErrMsg = args.errMsg; + invokeGetPushCidCallbacks(cid, args.errMsg); + } else if (args.type === 'pushMsg') { + onPushMessageCallbacks.forEach(function (callback) { + callback({ + type: 'receive', + data: normalizePushMessage(args.message) + }); + + }); + } else if (args.type === 'click') { + onPushMessageCallbacks.forEach(function (callback) { + callback({ + type: 'click', + data: normalizePushMessage(args.message) + }); + + }); + } + } + + var getPushCidCallbacks = []; + + function invokeGetPushCidCallbacks(cid, errMsg) { + getPushCidCallbacks.forEach(function (callback) { + callback(cid, errMsg); + }); + getPushCidCallbacks.length = 0; + } + + function getPushClientid(args) { + if (!isPlainObject(args)) { + args = {}; + } var _getApiCallbacks = + + + + + getApiCallbacks(args), success = _getApiCallbacks.success, fail = _getApiCallbacks.fail, complete = _getApiCallbacks.complete; + var hasSuccess = isFn(success); + var hasFail = isFn(fail); + var hasComplete = isFn(complete); + getPushCidCallbacks.push(function (cid, errMsg) { + var res; + if (cid) { + res = { + errMsg: 'getPushClientid:ok', + cid: cid + }; + + hasSuccess && success(res); + } else { + res = { + errMsg: 'getPushClientid:fail' + (errMsg ? ' ' + errMsg : '') + }; + + hasFail && fail(res); + } + hasComplete && complete(res); + }); + if (typeof cid !== 'undefined') { + Promise.resolve().then(function () { return invokeGetPushCidCallbacks(cid, cidErrMsg); }); + } + } + + var onPushMessageCallbacks = []; + // 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现 + var onPushMessage = function onPushMessage(fn) { + if (onPushMessageCallbacks.indexOf(fn) === -1) { + onPushMessageCallbacks.push(fn); + } + }; + + var offPushMessage = function offPushMessage(fn) { + if (!fn) { + onPushMessageCallbacks.length = 0; + } else { + var index = onPushMessageCallbacks.indexOf(fn); + if (index > -1) { + onPushMessageCallbacks.splice(index, 1); + } + } + }; + + var api = /*#__PURE__*/Object.freeze({ + __proto__: null, + getPushClientid: getPushClientid, + onPushMessage: onPushMessage, + offPushMessage: offPushMessage, + invokePushCallback: invokePushCallback + }); + + + var MPPage = Page; + var MPComponent = Component; + + var customizeRE = /:/g; + + var customize = cached(function (str) { + return camelize(str.replace(customizeRE, '-')); + }); + + function initTriggerEvent(mpInstance) { + var oldTriggerEvent = mpInstance.triggerEvent; + var newTriggerEvent = function newTriggerEvent(event) { + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { args[_key3 - 1] = arguments[_key3]; } + return oldTriggerEvent.apply(mpInstance, [customize(event)].concat(args)); + }; + try { + // 京东小程序 triggerEvent 为只读 + mpInstance.triggerEvent = newTriggerEvent; + } catch (error) { + mpInstance._triggerEvent = newTriggerEvent; + } + } + + function initHook(name, options, isComponent) { + var oldHook = options[name]; + if (!oldHook) { + options[name] = function () { + initTriggerEvent(this); + }; + } else { + options[name] = function () { + initTriggerEvent(this); for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } + return oldHook.apply(this, args); + }; + } + } + if (!MPPage.__$wrappered) { + MPPage.__$wrappered = true; + Page = function Page() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + initHook('onLoad', options); + return MPPage(options); + }; + Page.after = MPPage.after; + + Component = function Component() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + initHook('created', options); + return MPComponent(options); + }; + } + + var PAGE_EVENT_HOOKS = [ + 'onPullDownRefresh', + 'onReachBottom', + 'onAddToFavorites', + 'onShareTimeline', + 'onShareAppMessage', + 'onPageScroll', + 'onResize', + 'onTabItemTap']; + + + function initMocks(vm, mocks) { + var mpInstance = vm.$mp[vm.mpType]; + mocks.forEach(function (mock) { + if (hasOwn(mpInstance, mock)) { + vm[mock] = mpInstance[mock]; + } + }); + } + + function hasHook(hook, vueOptions) { + if (!vueOptions) { + return true; + } + + if (_vue.default.options && Array.isArray(_vue.default.options[hook])) { + return true; + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true; + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true; + } + return false; + } + + if (isFn(vueOptions[hook])) { + return true; + } + var mixins = vueOptions.mixins; + if (Array.isArray(mixins)) { + return !!mixins.find(function (mixin) { return hasHook(hook, mixin); }); + } + } + + function initHooks(mpOptions, hooks, vueOptions) { + hooks.forEach(function (hook) { + if (hasHook(hook, vueOptions)) { + mpOptions[hook] = function (args) { + return this.$vm && this.$vm.__call_hook(hook, args); + }; + } + }); + } + + function initVueComponent(Vue, vueOptions) { + vueOptions = vueOptions.default || vueOptions; + var VueComponent; + if (isFn(vueOptions)) { + VueComponent = vueOptions; + } else { + VueComponent = Vue.extend(vueOptions); + } + vueOptions = VueComponent.options; + return [VueComponent, vueOptions]; + } + + function initSlots(vm, vueSlots) { + if (Array.isArray(vueSlots) && vueSlots.length) { + var $slots = Object.create(null); + vueSlots.forEach(function (slotName) { + $slots[slotName] = true; + }); + vm.$scopedSlots = vm.$slots = $slots; + } + } + + function initVueIds(vueIds, mpInstance) { + vueIds = (vueIds || '').split(','); + var len = vueIds.length; + + if (len === 1) { + mpInstance._$vueId = vueIds[0]; + } else if (len === 2) { + mpInstance._$vueId = vueIds[0]; + mpInstance._$vuePid = vueIds[1]; + } + } + + function initData(vueOptions, context) { + var data = vueOptions.data || {}; + var methods = vueOptions.methods || {}; + + if (typeof data === 'function') { + try { + data = data.call(context); // 支持 Vue.prototype 上挂的数据 + } catch (e) { + if (Object({ "NODE_ENV": "development", "VUE_APP_NAME": "qinjiu", "VUE_APP_PLATFORM": "mp-weixin", "BASE_URL": "/" }).VUE_APP_DEBUG) { + console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data); + } + } + } else { + try { + // 对 data 格式化 + data = JSON.parse(JSON.stringify(data)); + } catch (e) { } + } + + if (!isPlainObject(data)) { + data = {}; + } + + Object.keys(methods).forEach(function (methodName) { + if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) { + data[methodName] = methods[methodName]; + } + }); + + return data; + } + + var PROP_TYPES = [String, Number, Boolean, Object, Array, null]; + + function createObserver(name) { + return function observer(newVal, oldVal) { + if (this.$vm) { + this.$vm[name] = newVal; // 为了触发其他非 render watcher + } + }; + } + + function initBehaviors(vueOptions, initBehavior) { + var vueBehaviors = vueOptions.behaviors; + var vueExtends = vueOptions.extends; + var vueMixins = vueOptions.mixins; + + var vueProps = vueOptions.props; + + if (!vueProps) { + vueOptions.props = vueProps = []; + } + + var behaviors = []; + if (Array.isArray(vueBehaviors)) { + vueBehaviors.forEach(function (behavior) { + behaviors.push(behavior.replace('uni://', "wx".concat("://"))); + if (behavior === 'uni://form-field') { + if (Array.isArray(vueProps)) { + vueProps.push('name'); + vueProps.push('value'); + } else { + vueProps.name = { + type: String, + default: '' + }; + + vueProps.value = { + type: [String, Number, Boolean, Array, Object, Date], + default: '' + }; + + } + } + }); + } + if (isPlainObject(vueExtends) && vueExtends.props) { + behaviors.push( + initBehavior({ + properties: initProperties(vueExtends.props, true) + })); + + + } + if (Array.isArray(vueMixins)) { + vueMixins.forEach(function (vueMixin) { + if (isPlainObject(vueMixin) && vueMixin.props) { + behaviors.push( + initBehavior({ + properties: initProperties(vueMixin.props, true) + })); + + + } + }); + } + return behaviors; + } + + function parsePropType(key, type, defaultValue, file) { + // [String]=>String + if (Array.isArray(type) && type.length === 1) { + return type[0]; + } + return type; + } + + function initProperties(props) { + var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + var properties = {}; + if (!isBehavior) { + properties.vueId = { + type: String, + value: '' + }; + + // 用于字节跳动小程序模拟抽象节点 + properties.generic = { + type: Object, + value: null + }; + + // scopedSlotsCompiler auto + properties.scopedSlotsCompiler = { + type: String, + value: '' + }; + + properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots + type: null, + value: [], + observer: function observer(newVal, oldVal) { + var $slots = Object.create(null); + newVal.forEach(function (slotName) { + $slots[slotName] = true; + }); + this.setData({ + $slots: $slots + }); + + } + }; + + } + if (Array.isArray(props)) {// ['title'] + props.forEach(function (key) { + properties[key] = { + type: null, + observer: createObserver(key) + }; + + }); + } else if (isPlainObject(props)) {// {title:{type:String,default:''},content:String} + Object.keys(props).forEach(function (key) { + var opts = props[key]; + if (isPlainObject(opts)) {// title:{type:String,default:''} + var value = opts.default; + if (isFn(value)) { + value = value(); + } + + opts.type = parsePropType(key, opts.type); + + properties[key] = { + type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null, + value: value, + observer: createObserver(key) + }; + + } else {// content:String + var type = parsePropType(key, opts); + properties[key] = { + type: PROP_TYPES.indexOf(type) !== -1 ? type : null, + observer: createObserver(key) + }; + + } + }); + } + return properties; + } + + function wrapper$1(event) { + // TODO 又得兼容 mpvue 的 mp 对象 + try { + event.mp = JSON.parse(JSON.stringify(event)); + } catch (e) { } + + event.stopPropagation = noop; + event.preventDefault = noop; + + event.target = event.target || {}; + + if (!hasOwn(event, 'detail')) { + event.detail = {}; + } + + if (hasOwn(event, 'markerId')) { + event.detail = typeof event.detail === 'object' ? event.detail : {}; + event.detail.markerId = event.markerId; + } + + if (isPlainObject(event.detail)) { + event.target = Object.assign({}, event.target, event.detail); + } + + return event; + } + + function getExtraValue(vm, dataPathsArray) { + var context = vm; + dataPathsArray.forEach(function (dataPathArray) { + var dataPath = dataPathArray[0]; + var value = dataPathArray[2]; + if (dataPath || typeof value !== 'undefined') {// ['','',index,'disable'] + var propPath = dataPathArray[1]; + var valuePath = dataPathArray[3]; + + var vFor; + if (Number.isInteger(dataPath)) { + vFor = dataPath; + } else if (!dataPath) { + vFor = context; + } else if (typeof dataPath === 'string' && dataPath) { + if (dataPath.indexOf('#s#') === 0) { + vFor = dataPath.substr(3); + } else { + vFor = vm.__get_value(dataPath, context); + } + } + + if (Number.isInteger(vFor)) { + context = value; + } else if (!propPath) { + context = vFor[value]; + } else { + if (Array.isArray(vFor)) { + context = vFor.find(function (vForItem) { + return vm.__get_value(propPath, vForItem) === value; + }); + } else if (isPlainObject(vFor)) { + context = Object.keys(vFor).find(function (vForKey) { + return vm.__get_value(propPath, vFor[vForKey]) === value; + }); + } else { + console.error('v-for 暂不支持循环数据:', vFor); + } + } + + if (valuePath) { + context = vm.__get_value(valuePath, context); + } + } + }); + return context; + } + + function processEventExtra(vm, extra, event) { + var extraObj = {}; + + if (Array.isArray(extra) && extra.length) { + /** + *[ + * ['data.items', 'data.id', item.data.id], + * ['metas', 'id', meta.id] + *], + *[ + * ['data.items', 'data.id', item.data.id], + * ['metas', 'id', meta.id] + *], + *'test' + */ + extra.forEach(function (dataPath, index) { + if (typeof dataPath === 'string') { + if (!dataPath) {// model,prop.sync + extraObj['$' + index] = vm; + } else { + if (dataPath === '$event') {// $event + extraObj['$' + index] = event; + } else if (dataPath === 'arguments') { + if (event.detail && event.detail.__args__) { + extraObj['$' + index] = event.detail.__args__; + } else { + extraObj['$' + index] = [event]; + } + } else if (dataPath.indexOf('$event.') === 0) {// $event.target.value + extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event); + } else { + extraObj['$' + index] = vm.__get_value(dataPath); + } + } + } else { + extraObj['$' + index] = getExtraValue(vm, dataPath); + } + }); + } + + return extraObj; + } + + function getObjByArray(arr) { + var obj = {}; + for (var i = 1; i < arr.length; i++) { + var element = arr[i]; + obj[element[0]] = element[1]; + } + return obj; + } + + function processEventArgs(vm, event) { + var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; var isCustom = arguments.length > 4 ? arguments[4] : undefined; var methodName = arguments.length > 5 ? arguments[5] : undefined; + var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象 + if (isCustom) {// 自定义事件 + isCustomMPEvent = event.currentTarget && + event.currentTarget.dataset && + event.currentTarget.dataset.comType === 'wx'; + if (!args.length) {// 无参数,直接传入 event 或 detail 数组 + if (isCustomMPEvent) { + return [event]; + } + return event.detail.__args__ || event.detail; + } + } + + var extraObj = processEventExtra(vm, extra, event); + + var ret = []; + args.forEach(function (arg) { + if (arg === '$event') { + if (methodName === '__set_model' && !isCustom) {// input v-model value + ret.push(event.target.value); + } else { + if (isCustom && !isCustomMPEvent) { + ret.push(event.detail.__args__[0]); + } else {// wxcomponent 组件或内置组件 + ret.push(event); + } + } + } else { + if (Array.isArray(arg) && arg[0] === 'o') { + ret.push(getObjByArray(arg)); + } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) { + ret.push(extraObj[arg]); + } else { + ret.push(arg); + } + } + }); + + return ret; + } + + var ONCE = '~'; + var CUSTOM = '^'; + + function isMatchEventType(eventType, optType) { + return eventType === optType || + + optType === 'regionchange' && ( + + eventType === 'begin' || + eventType === 'end'); + + + } + + function getContextVm(vm) { + var $parent = vm.$parent; + // 父组件是 scoped slots 或者其他自定义组件时继续查找 + while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) { + $parent = $parent.$parent; + } + return $parent && $parent.$parent; + } + + function handleEvent(event) { + var _this2 = this; + event = wrapper$1(event); + + // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]] + var dataset = (event.currentTarget || event.target).dataset; + if (!dataset) { + return console.warn('事件信息不存在'); + } + var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰 + if (!eventOpts) { + return console.warn('事件信息不存在'); + } + + // [['handle',[1,2,a]],['handle1',[1,2,a]]] + var eventType = event.type; + + var ret = []; + + eventOpts.forEach(function (eventOpt) { + var type = eventOpt[0]; + var eventsArray = eventOpt[1]; + + var isCustom = type.charAt(0) === CUSTOM; + type = isCustom ? type.slice(1) : type; + var isOnce = type.charAt(0) === ONCE; + type = isOnce ? type.slice(1) : type; + + if (eventsArray && isMatchEventType(eventType, type)) { + eventsArray.forEach(function (eventArray) { + var methodName = eventArray[0]; + if (methodName) { + var handlerCtx = _this2.$vm; + if (handlerCtx.$options.generic) {// mp-weixin,mp-toutiao 抽象节点模拟 scoped slots + handlerCtx = getContextVm(handlerCtx) || handlerCtx; + } + if (methodName === '$emit') { + handlerCtx.$emit.apply(handlerCtx, + processEventArgs( + _this2.$vm, + event, + eventArray[1], + eventArray[2], + isCustom, + methodName)); + + return; + } + var handler = handlerCtx[methodName]; + if (!isFn(handler)) { + throw new Error(" _vm.".concat(methodName, " is not a function")); + } + if (isOnce) { + if (handler.once) { + return; + } + handler.once = true; + } + var params = processEventArgs( + _this2.$vm, + event, + eventArray[1], + eventArray[2], + isCustom, + methodName); + + params = Array.isArray(params) ? params : []; + // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据 + if (/=\s*\S+\.eventParams\s*\|\|\s*\S+\[['"]event-params['"]\]/.test(handler.toString())) { + // eslint-disable-next-line no-sparse-arrays + params = params.concat([, , , , , , , , , , event]); + } + ret.push(handler.apply(handlerCtx, params)); + } + }); + } + }); + + if ( + eventType === 'input' && + ret.length === 1 && + typeof ret[0] !== 'undefined') { + return ret[0]; + } + } + + var eventChannels = {}; + + var eventChannelStack = []; + + function getEventChannel(id) { + if (id) { + var eventChannel = eventChannels[id]; + delete eventChannels[id]; + return eventChannel; + } + return eventChannelStack.shift(); + } + + var hooks = [ + 'onShow', + 'onHide', + 'onError', + 'onPageNotFound', + 'onThemeChange', + 'onUnhandledRejection']; + + + function initEventChannel() { + _vue.default.prototype.getOpenerEventChannel = function () { + // 微信小程序使用自身getOpenerEventChannel + { + return this.$scope.getOpenerEventChannel(); + } + }; + var callHook = _vue.default.prototype.__call_hook; + _vue.default.prototype.__call_hook = function (hook, args) { + if (hook === 'onLoad' && args && args.__id__) { + this.__eventChannel__ = getEventChannel(args.__id__); + delete args.__id__; + } + return callHook.call(this, hook, args); + }; + } + + function initScopedSlotsParams() { + var center = {}; + var parents = {}; + + _vue.default.prototype.$hasScopedSlotsParams = function (vueId) { + var has = center[vueId]; + if (!has) { + parents[vueId] = this; + this.$on('hook:destroyed', function () { + delete parents[vueId]; + }); + } + return has; + }; + + _vue.default.prototype.$getScopedSlotsParams = function (vueId, name, key) { + var data = center[vueId]; + if (data) { + var object = data[name] || {}; + return key ? object[key] : object; + } else { + parents[vueId] = this; + this.$on('hook:destroyed', function () { + delete parents[vueId]; + }); + } + }; + + _vue.default.prototype.$setScopedSlotsParams = function (name, value) { + var vueIds = this.$options.propsData.vueId; + if (vueIds) { + var vueId = vueIds.split(',')[0]; + var object = center[vueId] = center[vueId] || {}; + object[name] = value; + if (parents[vueId]) { + parents[vueId].$forceUpdate(); + } + } + }; + + _vue.default.mixin({ + destroyed: function destroyed() { + var propsData = this.$options.propsData; + var vueId = propsData && propsData.vueId; + if (vueId) { + delete center[vueId]; + delete parents[vueId]; + } + } + }); + + } + + function parseBaseApp(vm, _ref3) { + var mocks = _ref3.mocks, initRefs = _ref3.initRefs; + initEventChannel(); + { + initScopedSlotsParams(); + } + if (vm.$options.store) { + _vue.default.prototype.$store = vm.$options.store; + } + uniIdMixin(_vue.default); + + _vue.default.prototype.mpHost = "mp-weixin"; + + _vue.default.mixin({ + beforeCreate: function beforeCreate() { + if (!this.$options.mpType) { + return; + } + + this.mpType = this.$options.mpType; + + this.$mp = _defineProperty({ + data: {} + }, + this.mpType, this.$options.mpInstance); + + + this.$scope = this.$options.mpInstance; + + delete this.$options.mpType; + delete this.$options.mpInstance; + if (this.mpType === 'page' && typeof getApp === 'function') {// hack vue-i18n + var app = getApp(); + if (app.$vm && app.$vm.$i18n) { + this._i18n = app.$vm.$i18n; + } + } + if (this.mpType !== 'app') { + initRefs(this); + initMocks(this, mocks); + } + } + }); + + + var appOptions = { + onLaunch: function onLaunch(args) { + if (this.$vm) {// 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return; + } + { + if (wx.canIUse && !wx.canIUse('nextTick')) {// 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断 + console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上'); + } + } + + this.$vm = vm; + + this.$vm.$mp = { + app: this + }; + + + this.$vm.$scope = this; + // vm 上也挂载 globalData + this.$vm.globalData = this.globalData; + + this.$vm._isMounted = true; + this.$vm.__call_hook('mounted', args); + + this.$vm.__call_hook('onLaunch', args); + } + }; + + + // 兼容旧版本 globalData + appOptions.globalData = vm.$options.globalData || {}; + // 将 methods 中的方法挂在 getApp() 中 + var methods = vm.$options.methods; + if (methods) { + Object.keys(methods).forEach(function (name) { + appOptions[name] = methods[name]; + }); + } + + initAppLocale(_vue.default, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN); + + initHooks(appOptions, hooks); + + return appOptions; + } + + var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__']; + + function findVmByVueId(vm, vuePid) { + var $children = vm.$children; + // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200) + for (var i = $children.length - 1; i >= 0; i--) { + var childVm = $children[i]; + if (childVm.$scope._$vueId === vuePid) { + return childVm; + } + } + // 反向递归查找 + var parentVm; + for (var _i = $children.length - 1; _i >= 0; _i--) { + parentVm = findVmByVueId($children[_i], vuePid); + if (parentVm) { + return parentVm; + } + } + } + + function initBehavior(options) { + return Behavior(options); + } + + function isPage() { + return !!this.route; + } + + function initRelation(detail) { + this.triggerEvent('__l', detail); + } + + function selectAllComponents(mpInstance, selector, $refs) { + var components = mpInstance.selectAllComponents(selector); + components.forEach(function (component) { + var ref = component.dataset.ref; + $refs[ref] = component.$vm || component; + { + if (component.dataset.vueGeneric === 'scoped') { + component.selectAllComponents('.scoped-ref').forEach(function (scopedComponent) { + selectAllComponents(scopedComponent, selector, $refs); + }); + } + } + }); + } + + function initRefs(vm) { + var mpInstance = vm.$scope; + Object.defineProperty(vm, '$refs', { + get: function get() { + var $refs = {}; + selectAllComponents(mpInstance, '.vue-ref', $refs); + // TODO 暂不考虑 for 中的 scoped + var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for'); + forComponents.forEach(function (component) { + var ref = component.dataset.ref; + if (!$refs[ref]) { + $refs[ref] = []; + } + $refs[ref].push(component.$vm || component); + }); + return $refs; + } + }); + + } + + function handleLink(event) { + var _ref4 = + + + + event.detail || event.value, vuePid = _ref4.vuePid, vueOptions = _ref4.vueOptions; // detail 是微信,value 是百度(dipatch) + + var parentVm; + + if (vuePid) { + parentVm = findVmByVueId(this.$vm, vuePid); + } + + if (!parentVm) { + parentVm = this.$vm; + } + + vueOptions.parent = parentVm; + } + + function parseApp(vm) { + return parseBaseApp(vm, { + mocks: mocks, + initRefs: initRefs + }); + + } + + function createApp(vm) { + App(parseApp(vm)); + return vm; + } + + var encodeReserveRE = /[!'()*]/g; + var encodeReserveReplacer = function encodeReserveReplacer(c) { return '%' + c.charCodeAt(0).toString(16); }; + var commaRE = /%2C/g; + + // fixed encodeURIComponent which is more conformant to RFC3986: + // - escapes [!'()*] + // - preserve commas + var encode = function encode(str) { + return encodeURIComponent(str). + replace(encodeReserveRE, encodeReserveReplacer). + replace(commaRE, ','); + }; + + function stringifyQuery(obj) { + var encodeStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : encode; + var res = obj ? Object.keys(obj).map(function (key) { + var val = obj[key]; + + if (val === undefined) { + return ''; + } + + if (val === null) { + return encodeStr(key); + } + + if (Array.isArray(val)) { + var result = []; + val.forEach(function (val2) { + if (val2 === undefined) { + return; + } + if (val2 === null) { + result.push(encodeStr(key)); + } else { + result.push(encodeStr(key) + '=' + encodeStr(val2)); + } + }); + return result.join('&'); + } + + return encodeStr(key) + '=' + encodeStr(val); + }).filter(function (x) { return x.length > 0; }).join('&') : null; + return res ? "?".concat(res) : ''; + } + + function parseBaseComponent(vueComponentOptions) { + var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, isPage = _ref5.isPage, initRelation = _ref5.initRelation; var _initVueComponent = + initVueComponent(_vue.default, vueComponentOptions), _initVueComponent2 = _slicedToArray(_initVueComponent, 2), VueComponent = _initVueComponent2[0], vueOptions = _initVueComponent2[1]; + + var options = _objectSpread({ + multipleSlots: true, + addGlobalClass: true + }, + vueOptions.options || {}); + + + { + // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项 + if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) { + Object.assign(options, vueOptions['mp-weixin'].options); + } + } + + var componentOptions = { + options: options, + data: initData(vueOptions, _vue.default.prototype), + behaviors: initBehaviors(vueOptions, initBehavior), + properties: initProperties(vueOptions.props, false, vueOptions.__file), + lifetimes: { + attached: function attached() { + var properties = this.properties; + + var options = { + mpType: isPage.call(this) ? 'page' : 'component', + mpInstance: this, + propsData: properties + }; + + + initVueIds(properties.vueId, this); + + // 处理父子关系 + initRelation.call(this, { + vuePid: this._$vuePid, + vueOptions: options + }); + + + // 初始化 vue 实例 + this.$vm = new VueComponent(options); + + // 处理$slots,$scopedSlots(暂不支持动态变化$slots) + initSlots(this.$vm, properties.vueSlots); + + // 触发首次 setData + this.$vm.$mount(); + }, + ready: function ready() { + // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发 + // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800 + if (this.$vm) { + this.$vm._isMounted = true; + this.$vm.__call_hook('mounted'); + this.$vm.__call_hook('onReady'); + } + }, + detached: function detached() { + this.$vm && this.$vm.$destroy(); + } + }, + + pageLifetimes: { + show: function show(args) { + this.$vm && this.$vm.__call_hook('onPageShow', args); + }, + hide: function hide() { + this.$vm && this.$vm.__call_hook('onPageHide'); + }, + resize: function resize(size) { + this.$vm && this.$vm.__call_hook('onPageResize', size); + } + }, + + methods: { + __l: handleLink, + __e: handleEvent + } + }; + + + // externalClasses + if (vueOptions.externalClasses) { + componentOptions.externalClasses = vueOptions.externalClasses; + } + + if (Array.isArray(vueOptions.wxsCallMethods)) { + vueOptions.wxsCallMethods.forEach(function (callMethod) { + componentOptions.methods[callMethod] = function (args) { + return this.$vm[callMethod](args); + }; + }); + } + + if (isPage) { + return componentOptions; + } + return [componentOptions, VueComponent]; + } + + function parseComponent(vueComponentOptions) { + return parseBaseComponent(vueComponentOptions, { + isPage: isPage, + initRelation: initRelation + }); + + } + + var hooks$1 = [ + 'onShow', + 'onHide', + 'onUnload']; + + + hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS); + + function parseBasePage(vuePageOptions, _ref6) { + var isPage = _ref6.isPage, initRelation = _ref6.initRelation; + var pageOptions = parseComponent(vuePageOptions); + + initHooks(pageOptions.methods, hooks$1, vuePageOptions); + + pageOptions.methods.onLoad = function (query) { + this.options = query; + var copyQuery = Object.assign({}, query); + delete copyQuery.__id__; + this.$page = { + fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery) + }; + + this.$vm.$mp.query = query; // 兼容 mpvue + this.$vm.__call_hook('onLoad', query); + }; + + return pageOptions; + } + + function parsePage(vuePageOptions) { + return parseBasePage(vuePageOptions, { + isPage: isPage, + initRelation: initRelation + }); + + } + + function createPage(vuePageOptions) { + { + return Component(parsePage(vuePageOptions)); + } + } + + function createComponent(vueOptions) { + { + return Component(parseComponent(vueOptions)); + } + } + + function createSubpackageApp(vm) { + var appOptions = parseApp(vm); + var app = getApp({ + allowDefault: true + }); + + vm.$scope = app; + var globalData = app.globalData; + if (globalData) { + Object.keys(appOptions.globalData).forEach(function (name) { + if (!hasOwn(globalData, name)) { + globalData[name] = appOptions.globalData[name]; + } + }); + } + Object.keys(appOptions).forEach(function (name) { + if (!hasOwn(app, name)) { + app[name] = appOptions[name]; + } + }); + if (isFn(appOptions.onShow) && wx.onAppShow) { + wx.onAppShow(function () { + for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } + vm.__call_hook('onShow', args); + }); + } + if (isFn(appOptions.onHide) && wx.onAppHide) { + wx.onAppHide(function () { + for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } + vm.__call_hook('onHide', args); + }); + } + if (isFn(appOptions.onLaunch)) { + var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync(); + vm.__call_hook('onLaunch', args); + } + return vm; + } + + function createPlugin(vm) { + var appOptions = parseApp(vm); + if (isFn(appOptions.onShow) && wx.onAppShow) { + wx.onAppShow(function () { + for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { args[_key7] = arguments[_key7]; } + vm.__call_hook('onShow', args); + }); + } + if (isFn(appOptions.onHide) && wx.onAppHide) { + wx.onAppHide(function () { + for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { args[_key8] = arguments[_key8]; } + vm.__call_hook('onHide', args); + }); + } + if (isFn(appOptions.onLaunch)) { + var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync(); + vm.__call_hook('onLaunch', args); + } + return vm; + } + + todos.forEach(function (todoApi) { + protocols[todoApi] = false; + }); + + canIUses.forEach(function (canIUseApi) { + var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name : + canIUseApi; + if (!wx.canIUse(apiName)) { + protocols[canIUseApi] = false; + } + }); + + var uni = {}; + + if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') { + uni = new Proxy({}, { + get: function get(target, name) { + if (hasOwn(target, name)) { + return target[name]; + } + if (baseApi[name]) { + return baseApi[name]; + } + if (api[name]) { + return promisify(name, api[name]); + } + { + if (extraApi[name]) { + return promisify(name, extraApi[name]); + } + if (todoApis[name]) { + return promisify(name, todoApis[name]); + } + } + if (eventApi[name]) { + return eventApi[name]; + } + if (!hasOwn(wx, name) && !hasOwn(protocols, name)) { + return; + } + return promisify(name, wrapper(name, wx[name])); + }, + set: function set(target, name, value) { + target[name] = value; + return true; + } + }); + + } else { + Object.keys(baseApi).forEach(function (name) { + uni[name] = baseApi[name]; + }); + + { + Object.keys(todoApis).forEach(function (name) { + uni[name] = promisify(name, todoApis[name]); + }); + Object.keys(extraApi).forEach(function (name) { + uni[name] = promisify(name, todoApis[name]); + }); + } + + Object.keys(eventApi).forEach(function (name) { + uni[name] = eventApi[name]; + }); + + Object.keys(api).forEach(function (name) { + uni[name] = promisify(name, api[name]); + }); + + Object.keys(wx).forEach(function (name) { + if (hasOwn(wx, name) || hasOwn(protocols, name)) { + uni[name] = promisify(name, wrapper(name, wx[name])); + } + }); + } + + wx.createApp = createApp; + wx.createPage = createPage; + wx.createComponent = createComponent; + wx.createSubpackageApp = createSubpackageApp; + wx.createPlugin = createPlugin; + + var uni$1 = uni; var _default = + + uni$1; exports.default = _default; + /* WEBPACK VAR INJECTION */ + }.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 2))) + + /***/ + }), + +/***/ 10: +/*!***************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/utils/request.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function (module, exports, __webpack_require__) { + + "use strict"; +/* WEBPACK VAR INJECTION */(function (uni) { + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // uni.request请求封装 + var baseUrl = 'https://honmeigui.huiliuwan.cn/'; //请求的根路径 + var request = function request() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let val = uni.getStorageSync('uid'); + if (val) { + console.log(456) + } else { + wx.login({ + success: function success(res) { + if (res.code) { + //发起网络请求 + wx.request({ + url: 'https://honmeigui.huiliuwan.cn/reg', + data: { + code: res.code + }, + success: function success(res) { + try { + uni.setStorageSync('uid', res.data.uid); + } catch (e) { + // error + } + } + }); + } else { + console.log('登录失败!' + res.errMsg); + } + } + }); + } + + + + return new Promise(function (resolve, reject) { + // 配置默认请求头 + options.header = { + "Content-Type": "application/x-www-form-urlencoded" + }; + + uni.request({ + url: baseUrl + options.url || '', + method: options.method || 'GET', + data: options.data || {}, + header: options.header || {} + }). + + then(function (data) { + var _data = _slicedToArray( + data, 2), err = _data[0], res = _data[1]; + if (res.statusCode === 200) { + // console.log('请求接口成功'); + resolve(res); + } else { + console.log('请求接口没有找到'); + reject(res); + } + // console.log(res); + }).catch(function (error) { + reject(error); + }); + }); + }; + + // GET请求 + var get = function get(url) { + var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + options.url = url; + options.method = 'GET'; + options.data = data; + return request(options); + }; + + // POST请求 + var post = function post(url) { + var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + options.url = url; + options.method = 'POST'; + + options.data = data; + + return request(options); + }; + + // 默认向外暴露的数据 + var _default = { + request: request, + get: get, + post: post + }; exports.default = _default; + /* WEBPACK VAR INJECTION */ + }.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"])) + + /***/ + }), + +/***/ 100: +/*!*****************************************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/components/dt-video/static/icon/xiaoxi.png ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAYAAAD9yHLdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAGDRJREFUeNrt3WuQFcUVB/DTy3tBkMcqri8EoggGgkZhUXyABAUfGMUYNRJNSalRSxMjVkzF+EETjakkRrRcVDBWygqosVJGkYgQLEARUV4CwRU2wALyiAgsD+GefPjTK0sAedzp0zPz/3051YPlnJ25d87tnp4eESIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIbzjoBomJSVVUtKREVFW3XTpw4cW3b/l9bRER8bNAA8YgjEBs23P9eduxA3LgRcedOxHXrsJ+1a7Ef3163Du01a5xzzjlV6+NEVAwsIBQ1LWhBC8cdhwtw9+7Y2r07LswdO6LdoQP+vUMHtE84AbFJE+v869u2DfE//0H+S5eivXQp8q+qQnvOHPz73LmuxJW4kuXLrTMn2hsWEDKBnoLvGVRUYGufPogVFbig9uiBduvW1vnaWr8ecfZsHK9330V72jQcp2nT0LPx/x1RGCwglAgUiNJStM4/H/HiixH790fs0gXR8XN4WPyQ2IIFiBMnIr7xBuLkySgwW7ZYZ0rZwi8uHRYMMR11FH4JX3kltg4ZgnjuuYhNm1rnmW++cEyZgvjqq+jJvPwyhsjWrLHOkNKJBYQOCHoUfihp6FBcgK6+GoXD9zD8zWhKh507cR4nTUJ77Ficz5deQo/lv/+1zpDixgJCe4WCccYZaA0fjnj99Yh+aIqyads2FJa//x3tykoUlokTOYuMdscCknMYgmrRAq2bbsKF4rbb0D7lFOv8KCaLFiGOHIkCM3o0hsA2bbLOjGywgOQMCsbRR6NQ3Hortt5xB2KbNtb5UZp88QXimDEoKL/9Lacd5wsLSMbVf47iF7/A1htvRGzc2Do/ypLt2xGffRbxoYcw5LVihXVmlAwWkIxBwSgrQ8H46U+x9c47EZs1s86P8sQXlDFjEB98EAWlpsY6MyoOFpCUq/+8xc9+hnjvvYi82U2RUFHRzZvxw+aRR7Dxscf4fEq6sYCkFHoal16KL+Tjj2OrX8qDKA2WL0dhuf9+fI5feIGzvNKFBSQl0NPws6IqKxH9g3pEKaeiopMnozF8OG7GL15snRbtX4l1ArR36GE0bIjCMWIEtn70ESILB2WMfyDViRM3Zw4+97/6Fb4HnOwRK/ZAIoMvTI8e+CI9/zy2+kUFiXJGRUX9D6cbbkDPZO5c67QI2AMxhl9aziEOH+5XV8W/snBQzjlx4r71LcQZM3yPvO69L2SKPRAj+AKUl+MX1pgx+IIMGGCdF1F6jB+PeOONuPm+apV1RnnDAhIYhqjOOQcFY9w4bG3f3jovovTyqwl/73soJH5xSEoau4CB1B+ievttbGXhIDp8ZWWIEybUn3RCSWMPJCH4IPv3YDzzDOJ111nnRZQfL7yAIeKbb8bNd/9KYSoWFpAiQ+HwixL+7W+InHZLZGf6dBSSyy/nC7SKiwWkSFA4OnZE6/XXEbkcOlEUVFS0qgqNQYNQSP79b+u00o4F5DDVvXhJRUXHj8c9jnbtrPMion3xPZCBA3HT/cMPrTNKK95EP0SYTXXmmWhNmMDCQZQW/qb7pEn4Adinj3VGacUCcpDwgTvvPP+KT2zli5iI0qdVK4wcTJiAH4QXXmidUdpwCOsAoXD064fWa68h8v0aRNnhl5UfPJjPkxwYFpCvgcLRuzda//wnon+HOBFlT20teiYXXYSb7e+8Y51RrFhA9qH+oob+l0jr1tZ5EVEoGzYg9u+PHskHH1hnFBsWkD2gcHTujNb06bw5TpR3n32GWFGBQvLpp9YZxYIFZBcMVbVti5ZfDffkk63zIqII1HuOpHdvDG2tXWudlrXcz8Kq/8Iav7ghCwcR7caJE9epE+Irr+C60aSJdVrWcl9A8IF47jk0LrjAOh0iil3fvrhuPP20dSbWcltAMGR1991ocZFDIjpYw4bhOvLjH1tnYiV390DqP3nqZ1fxnctEdKi+/BL3SPr3z9u039wUkLo3AIqIyKxZiEcfbZ0XEWVFTQ0Kyemno5CsXm2dUdIyP4Tl3zmOE+vfy8HCQUTFVl6OeyPPP1933cm4zBcQuPtunNiLL7bOhIiybuBAxNtvt84kaZmtkPgF0K0bWjNnIvo3BBIRJW3bNox8nHUWhrTmzLHOqNgy1wPB/OxGjdD6y18QWTiIKDT/nMiYMbguNWxonVGxZa6AYKjq3nvR6NHDOh0iyjEnTlzPnog/+Yl1OsX/8zICFf7kk3GiZs/GVvY8iCgWW7ZgSKt7dwxpffKJdUaHK/U9kLrZDk6cuFGjsJWFg4hi498flJ0n2FNfQOD730c891zrTIiI9smJE9evH0ZMrrrKOp3D/3NSCj0PX9EXLEA88UTrvIiIDsyyZYhdumCZ+Npa64wOVsp7ICNGILJwEFHaHH884l13WWdyqFLXA0HPo3173Iz65BN0CZs3t86LiOjQbNqE61mnTri57l9gFb+U9kB+/nMWDiLKhhYtEP3jB+mRmh5I/cUQ/fQ3fw+EiCjttm5F7NwZ90RWrLDO6OukrAfyy18isnAQUdb4xw/8vd34Rd8Dqd/zWLIEke/vIKKs2roV90Q6dIh9WfiU9EDuvBORhYOIsq5pU9zjjX8132h7IOh5+Jvk1dWIbdta50VEFMb69eiJnHgieiKbNllntKd4eyAqKvqjH6HBwkFEedOmDXoiw4ZZZ7IvkfdAPv4YrVNPtc6HiCg4FRVduBCFpGtXzM5StU7Li64HgsJx3nlosXAQUY45ceK6dEGjTx/rdPYUXQGBm2+2zoCIKC7xXRejGcJCz6NNG7T8AzRclp2ICGprMaRVXo6b6hs2WGcUTw9ERUWHDkWDhYOIqL7SUgxpXXmldSZePAVERESuvto6AyKiuMVznTQfwsKLVcrKUFlrarA1ey+fJyIqjh07MGJz7LHWq/faX6idOHH+zVwsHMlatQpxyRJ8ADdvts4o39q2xee/Y0e0W7WyzuiA+c+PEyfu00/RLtaSGyk+LkE0bIjjM2QI2pWV1hmZwc3z8eOVEjBuHGLPntbnmfYOPfBGjXCeBg9Ge9Ys60/O3i1ejHjNNYjJLWqaruNi5R//sP78msEBKC1F3LLF+lRkw86d+KLFN92PDgzOX+PGOJ+jR1t/ouCNN5DXEUfwuMRk82bEHE46wh8+aJD1KciWBx6wPq9UHDifDRrgwjlxos3nae5cxHhe3BbHcYlIQQtaGDjQ6nwYz8K6+GLb/WdFdTXGoH/zG+tMqDiwZMXOnRjr9qtRFwrBElBR0XvuQR7x3CszPy6xceLEXXSR1e6NC0j//rb7z4oXX8RsjG3brDOh4sIFc/58XNDffz/MXmtqcGGaMMH674/ruMTK7joavICg3+VX1/VrvNDhmTnTOgNKmBMnLtR5njUrtkX79inocYnVaafhuupX8ggnfA9ERUUrKtBw5s+hpJ6Kisb3ngBKwsaN2dpPXvMtNn8d7dUr9J7DFxAnTtzZZwffb1Y5ceL8K38p2449Nlv7yWu+SQl/XTXqgfTuHXy/mTZggHUGlAwMTZTs+p6GGuvu1Quze1q2tP774zouETO6rhr1QL75zeD7zbQrr8QXqlMn60yoyFRU9Prr0QjV02zSJPp3cpscl9j16BF6j8HuQeAXzXHH4YO5bFnoPzQfpk7FF6t/f87KSjf8IDjpJJzPGTPwvWnXLmwWW7Zg/+eei8+T/c3qOI5L7MrLMQli5cqk9xSuB+LEievePdj+cunss3Gc33wTX7RjjrHOiA4OzpsfipgyxfYC2ayZn86LvAYP5nGJnIqKhrvOBl68kENXYZx3Hj5Ifu2i557D9tdfR6yuRmQPxYyKijZvjgtht27Y6BcV/e53EWOZpdi6NeJrr+Hz5J8PefFFxDlzED//PF/HJUJOnLjTTkPjzTeT310gGMKqrMQfyLWaiIiS8dRTGMK67bak9xT4JvpJJ4XdHxFR3oS7zga+B9KhQ7D9ERHljYqKhrvOJj6EVX++dm0tYpMmof5AIqJ82boVsbQ06SVpku+BqKiony3BwkFElKymTXHd9WsOJif5AsLpdkREYTlx4rJQQOr1QIiIKIzkr7uBeiDJV0IiItpdFnogIvLVg0hERBRG8u8HCVRAmjULsx8iIoKmTZPeQ6AC0rhxmP0QEREkP+uVBYSIKGtUVDT56y4LCBFRJmWhB6Kiosk9CUlERDYCTePdssX6DyUiypfkX9cQaAiLBYSIKCwWECIiOlhOnLjt25PeDQsIEVEm+VV5k8MCQkSUNSoqum5d0rsJVEC++CLMfoiICENY69cnvZtA03hXrEh8P0REBCoqumZN0rsJNI2XBYSIKKzkeyCJv9LWw6ttP/8crVatQu2XiChfsvRK23rYEyEiSoyKii5dmnTh8MIVEN4LISIKYMmSUHsK3ANZujTs/oiIcsSJExfuOtsw7B82f36w/VERVVcjjhqFnuS//oX2qlU4r4WCdYbF1bIlYo8eiNdei/id71hntneFAs7Lyy/jfLz0EtoLFqC9eXM+j0teVVVZZ1B0uIner59Sivz+91rQghaSXxY6djgegwYhrl9vfWaguhrn58wzeVxIVRWfh3AFPdwsrIIWtFBWhl9En30War90KB59FDfhRoywziQ2dRdsJ06c74mFfmWz//706oXzZD80HMdxISgvx+di5cqk9xTsHogrcSWuxD/YsmpVqP3SwVi0CEMf999vnUms8Dl+/30cp4cftsnirrtiKRxxHZccU1HRtWtDFQ4v8E10/4fOnRt8v7R/Kir6u9/hQrBjh3U66fD444jJL5sNy5cj/vWv1n/5/oU+LgSzZ4feY/gC4sSJmzUr+H5p/5w4cW+9ZZ1GWqDQ+jXeZswIs9eJE/ELM95JCzbHhfD9fffd0LsNX0BERGTKFJv90j6pqGhNjXUa6RTq+aZwQxPFwee+wpo6NfQejYaw3nkHDQ6VxOWII6wzSB0VFQ21NE+Kzk/Q45J3fhr3tGmh9xy8gKCLu3EjWhzKioYTJ+7b37ZOIy0wZ7KkBMetZ8/kdygqesYZ1n93dMeFRGTePFxXN2wIvWejISxv8mTb/VN9P/yhdQbpctFFiO3bJ74rJ07cWWfhAt21q/VfHs1xyTsVFZ040Wr3xgXEzxenOFx9NS5Q/fpZZxIrPO/QogVajz0Wdu8lJbhg/OlPOE8NGlgfjziOS96NH2+1Z7sCoqKi/mY6X3kbB7frwdKxY3GBqqiwzigWuEC2bImewMsvY+uppwZPxIkT5wv8M88gr8aNc39ccqm2FsfdblKSWQHBmN2mTWhNmGCVB+1N27aIkybhAvHoo4jHH2+dWSgooKWliNddh60ffogYy9pPfsjxvfdwfi65BLFRo3wfl7yYNAnTuv37P8ILtpTJvuAD/4MfoJL++c/W+dDXUFHRqiqcr5oatDP0wJgTJ86P3XfsiFhaap3WwfniC5yXTz9Fe+1aHpeMUVHR4cPxQ3zUKKs07AuIqqoeeSRaq1cj2nXJiYji9uWXiMccgx7IunVWmRjfRBfBAfCvun37bet8iIiipaKib71lXTg88wJSx7/PgIiI9s6JEzdunHUaX6UTCdwL8U+urliBA9W8uXVeRERxqK3FD+3ycqsHB/cUTQ+k/gGJfbVRIqLQxo6NpXB40RSQ+iorrTMgIorLM89YZ7CnaIaw9oQhrVmzuKYOEeWWioouXIjrYNeuuHmuap2WF2kPRHbdLLKb30xEZM6JE/fEE7EVjq/Si1T9JRKqq7HVPy9CRJR1fpruCSeggNTWWme0p2h7IPXfbPbEE9b5EBGFNXJkrIXDi7YH4uFJdb8209KliH7VTyKirNm6Ffc+OnTAD2m/Qkd8ou2BeHVPXKqo6NNPW+dDRJSsysrYC4cXfQ/EQ0/EL+bmF4lr1sw6LyKi4vCr6nbujB/O8b9TPvoeiIcDumoVWs89Z50PEVHRqKion20Vf+HwUtMD8TA7q6wMs7MWL8ZWvwQKEVHabNyIAtKpE4au1qyxzuhApaYH4tUdYBUVfegh63yIiA7Pww+nrXB4qeuBeHWv8nTixM2bh63f+IZ1XkREX8u/8MuJE9etm/WbBQ9V6nogHir29u1o3XefdT5ERAfMiRN3zz1pLRxf/RkZgVla/uXyffta50NE9H/8C6FKXIkrGTDAOp3DldoeyN7xiXUiilVtLXoet9xinUmxZKeAqKjo5MnWaRAR/R8VFX3gAQxZVVVZp1MsGRvCKtlVEP1L50uyUyCJKKU++AAFpHdvDF3t2GGdUbFk7ALbuPGuPytjfxcRpY9f0+qmm7JWOLzsXGhVVLRdO+s0iIjgnntQOObMsc4kKdkpICIi0qWLdQZElHfjxyM++aR1JknLTgFx4sSddpp1GkSUV8uXYyTkhhtifYNgsWWngIiIyDnnWGdARHnjJ+1cc01alyQ5VKkvIJh91aABWhdcYJ0PEeWIiorecQd6HFOnWqcTWuoLCE7g6aej0aaNdTpElBejR6PHkd8X3aW/gDhx4i680DoNIsqLKVPww/XWW60zsZb+AqKioiwgRJS0BQsQhwxBz2PbNuuMrKX2SXTc+2jdGi3/7uBGjazzIqKs8deXigrc61iyxDqjWKS3B6KiopdcggYLBxEV24YNiIMGsXDsXXoLiIiIDBlinQERZYiKim7e7H+gonDMmmWdVqxSN4SFoatmzXCC16zBTfTmza3zIqK027IF0fc4uLr310lpD2TAABYOIiqOjRsRWTgOVkPrBA4Nh66I6HB9/jmiLxzTp1tnlDapGcKq/8R5TQ3iUUdZ50VEabN6NYbABw7EdNzZs60zSqv0DGGpqGhFBRosHER0sD75BNeRvn1ZOIojPQVEREQuv9w6AyJKm6lT/Q9QFI7Fi60zyor0FBAnTtxll1mnQURpMXo0Cke/figca9daZ5Q10RcQ3Pvo0AGtk0+2zoeIYuVfGXvffbgp7l8lu327dWZZFf8sLBUVPecc9ECskyGi+KxYgTh0KGdThRV9DwSFo08f6zSIKDavvYYfmD17snDYiL+AiIhI377WGRCRta1bEe+6C/Gyy/L2BsDYRDsopAUtaKFVK/RA1q/H1pKUFDwiKp4PPkAcNgw9jfnzrTMiiPeC7MSJ69RpV5rx5klERebXpHrwwbrptywcUYr8Jvrxx1tnQEQBqKjoW2/hh+Mtt6BgVFVZp0X7F+8vexUV5Xs+iLJr2TJ8z4cNw72MAQNYONIl8h6IXyUza778EnHhQsTZs/FF8ksrLFqEX2L+C7ZyJdq7zWdXUdGyMmzv3Bkbr7oKcehQxBYtrP9Soq/47/PDDyP+4Q8oHP7mOKVNvDfRVVW1TRu0/CyL2O+FqCIuXIgL/PTpuMBPnYrtH32E7fPmJfWAEyYflJWhde+92P9tt6FdWmp9hChPamvxeX/qKbQfeYSzprIl2gLi4YL47LO4EN50k202mzbhCzFzJvKZNq1+oZg+HV3wdeusj5uH43f00WiNGOHHmNFu1sw6P8oS35OorET89a/xfVi1yjozSkZKCogfivnjH5MpJLsNKamo6Hvvob1bdOLEffwxvhA7d1ofl0OFnt0xx6B1++34e4cPx9/Xrp11fpQm/ofSk0/iczRyJHoYq1dbZ0ZhRF9A9oQLYMeO/p3FuPD5NbLat8f2QgHb/ZCSX/9/2TJsr65Ge8EC/PuiRXldM6fuFcEiInLttYh33onYvbt1fhQT/30ZORJx9Gj8oKqttc6MbKSugFAYKCznn4+W7/FdcQUib85nmy8I48YhjhqFQuHv5REBCwgdEBQUfxP+iivQg7vuOvToBgzA9oaRz+qj+vzQ7cSJiGPH4ry+8gp65Bs2WGdIcWMBocNS/yb9pZeioAwahLYvLOyx2PI9ismTUSBefRXn6ZVXYpv0QenCAkKJQGFp0gStvn1xwRo8GO3+/RG7dUOMfXp27AoFxPnz657oFhGR8eNx3KdMQaHg8xZUXCwgZAIFpmVLtHr1qr9sf+/eddtFRKR1a+t8zaioqH+T3uzZfro42n4a+bRpHHIiCywgFDXce2nfHq2uXRFPOQWxWzdcQLt0wYX1uOOw/dhjEWMbOtu6FfkuXYr2kiXI27erqvDvc+Zg+7x56DmsXGmdOdHesIBQJtXd9FdR0fJybG3fHhfmo45C26+11qoV/juH9166I4/c///dDwX5VWP9zWh/L2G3uKsHwXdyExEREREREREREREREREREREREREREREREREREREREREREREREREVz/8ABN6s4wj5ODEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDktMDNUMTQ6MzQ6MDYrMDg6MDCH5HtTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTA5LTAzVDE0OjM0OjA2KzA4OjAw9rnD7wAAAEp0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fdGQ1dmR1cTloZWQveGlhb3hpXy5zdmcaFJupAAAAAElFTkSuQmCC" + + /***/ + }), + +/***/ 15: +/*!*******************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/static/image/kbi.png ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,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" + + /***/ + }), + +/***/ 2: +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + var g; + + // This works in non-strict mode + g = (function () { + return this; + })(); + + try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); + } catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; + } + + // g can still be undefined, but nothing to do about it... + // We return undefined, instead of nothing here, so it's + // easier to handle this case. if(!global) { ...} + + module.exports = g; + + + /***/ + }), + +/***/ 24: +/*!***********************************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/static/image/index_search_yellow.png ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABFpJREFUWEfFmG9oHEUUwH/vDNiLVVpoMR8UK+ZDPqRYsdCCgi1UWlGxgqCiYARFC0UrhtutrbgFoblNigERIgasIBhRqKAfIhZsQWlAhQpKW1ppxIIRAkbUXMR0n8zs3GZv7y65Pa86ELhwb9783r95b07IsXSE27nMLoRtKBuAGxBWAYsoMwgXgCmU41Q4KQGLOdRbUVlpgwZ0UeQx4CBC70ryqe9nUMa4mjHZxy+t7lsWSIe5l4jRhiDKAsIs2L81KOsQVjc4eI4IX3zebAWqIZAGrOIahlH21ihRvgYmUCZZ4Fw2JHqYXgrcgfAIsCsDcJx5HpXAGtB01QFZmG6O1ShUphB8KXGyFSuNjA5xK0KAsDvZo0wTsV32M91MTw1QHYzapDxIhSPtJKgFC3kYZTwJp4FaZKscaJxXtUBlXkdcmEyOKLvF59NWvdJMTkNusZUntjLNOsE8dzcyMgHSEXYSMWnFOwhThdQRbiJiCuhxZwTicShrhAWyoSpyJrFAGRSPI//WM9n9OsROCimjhX4p8UNaLgYKeR4YdeSnxeO2TsMkngp5C3jK/h9xVHyebAR0BuhzX2zLU015wTVgHUUu2iQ3RVNhvQTMVfWIDrMFU9Zx7lxR7zTx0rPpS9MAvYISOCBfPMp5rc4rryF32UqLnfCJeNy/5KGQj4H7XEz7xef7vAfklXf98XfXmGelxPoloDLnba+K41ls9wLMDVXmFMJWu2+etdU8Ei1TsaTKtHjcnFdxu/Ia2vYUt5WIJDKiIeqUficlNrZ7QN59GvI2MGD3XcUmeZFvzce0hy6Jx415Fbcrr2Xec1NBnYd+spOfaRcVrv3PcijkK2CzNehveqrN1oTsM2CHK8E+8TjXrtV59mnIr3awgzkpsTZd9ocB3yXXXvF5I4/idmRrLmOYlBL3pIGWLik4ISW2t3NInj0aMgwMuqjUXMbiLilzF8WzSsQm8eOMvxLLDYE/u3BBgQ0yyI+Jh8yHmvaRcWGnoTRkKUWUj8TjwfQZ1XloDd1cTKiVAfF4p+Mw8Zxt5nPzlmsYjaWJscwTCEddXBeIuFP2802noDSgh6JtF3FqKGPisSerPztTH0u9EmaI2NGJZmthuvk8mbmUC1TYKAELywMFrKabU0B/4ilhQEq8366nbIlHTKQGfKNqXEo83Uhno3dZrTWxeye4zCF5ibOtgmmAycsDwD6gq26fMioeLyzroeqXajxV5AMk9fo0rQUmKTDOn3yZHjtT+8wjcwvwOPBQUiSxwFmULxA3T8eG1kGt9LZ/xr3t46pIL5MHYl+gf4CtGtMPe5MKSihZRBhlnpdNzmiZ1xDrtXhloFr59cNUh4fYUcH0ntaWGfiUdynwavapsxzUikCZcDzg3vybUfqQuty45B4Mkygfis9vzeibQbUMVBcx87vRdVxPRBcFFuliVp7jr9bc56KVDR8MtQ2U5+DlZGs8pSz870A2r01/U5voY/8A7GqY2rP86Z0AAAAASUVORK5CYII=" + + /***/ + }), + +/***/ 25: +/*!*************************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/static/image/more_icon.png ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAUxJREFUWEft1q1OA0EQB/CZWwSCh0DUIHgHBAmpKk2bINCX7OYEGndvsR8KgUAiEciKPgCiEkM2aEhA3O2STSqay4n9SjckPX2X+eU/c7OLUPjBwvXhAPg/CSil7qy1p1rr+7Ztf3PNjncCUsofADgGgBet9TwXwhsghLgBgEdEPMqJ8Aa4yDnnC0R82iJeu66bN03zndKOIMAQYa1d9X0/TUEEAxxCCDFzSbiZSEVEARxCKXVlrX3eItaEkOu6rj9D2xENGCIAYFNV1UUoIgmQA5EMGEMYY6aMsXefdmQBjMzEhlJ6VhLwRik93xtg949ww2iMuWSMfewFMCwe+ickzUBqcZdQNGCwiFaEkGXoDogGFF3Fuydi6jkQnEDR45hzfouID8UuJEKIL0Q8yXkbCmqBlLIBgEmxS6nPVot5J3oPxBQb++YAKJ7AH1JK4yE7yqNcAAAAAElFTkSuQmCC" + + /***/ + }), + +/***/ 26: +/*!*******************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/static/image/huo.png ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAAXNSR0IArs4c6QAAAuRJREFUWEftl09IFFEcxz8/3YP/AoMOHjooFAgFeTASKiyoU8c6dCgqMAiCCMyZFYImgnJnPRQEERh06BIRGHQM9BCUIEQURFQkFHQpMgQtMH8x4/hn19F9M7OTK+yDPezs9/d+n/2+3/u9ecIGG7LBeKkCp71iVYerDhc5kFpJqEMzjXRLH0/K6XoqwJrjFMIg8FYsDlY0sLrkgUsB5GhFA6vLNeDyMkcrF1hduoHRouWvaOBXQEcBsDIuNrsrroY1zx6UlyvAlAmxaQsD9rqIOExG/TNl6RJFG22JQfnNDJvEYXbhobrsBYaAYbHoXy/gleWwSEi72Lz3vmqeIyjDQMaDFouz6wOcYwqhKTS50iM299SlBXgDbPF1ynOx2f9fgDXHVubISD8TAci3NRL7nUJz9AaHybzUK5d6muUCf6JAR65hvUErNYygDEiWu3qddjK8WzPpXzqpIYtwrEh3XCwepgvs8gLoAu6LxRl1/Vbm1fDqY76DzCLsKxI9E4vDqQEHm+ZpsKRfmaGNBnaWBJ4vAQ/Y22zFY5tYfDKFjlQSmuNRwbIqhxB+GAGvTjQoFn3pALv8BJoXJ/eWeo6T1PLBNOEKnfJRbLabxhs77HcG4UvIxA+AE6YJQ3XTbDY99cyBTTZXXOpaOqSX1ybh5sAm7cskY5hGl07DUlOYAzs00cBUqQlj/Z5GSfidKcdnhNZYUKsFpbXpfGCXO8C5MgMPiW3+EmRcEgFw2K0iGb/QJX2MmU4SCTiAHgEOmCYooUv3aPaBB9iBMI5Qlwjae1tTuiRr1s4WckV2OHD5PHA7ETBcFItbUeeIBexD57mC4kRN6OsVR2yuxomNDRw4fTRw2rtNmAzv0tkjFo9NxGGaRMA+tEML9dgIpwtejAqzTaLc9D6S5VdcWC8uMfBCcnWoo5FdKJ3g39+88R0YZ5qx5TfnigBOAhEltmwOR0maRFsFTuKeSWzVYROXkmg2nMP/ALWmyy0oWpXQAAAAAElFTkSuQmCC" + + /***/ + }), + +/***/ 3: +/*!*************************************************************!*\ + !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function (module, exports, __webpack_require__) { + + "use strict"; +/* WEBPACK VAR INJECTION */(function (uni, global) { + Object.defineProperty(exports, "__esModule", { value: true }); exports.compileI18nJsonStr = compileI18nJsonStr; exports.hasI18nJson = hasI18nJson; exports.initVueI18n = initVueI18n; exports.isI18nStr = isI18nStr; exports.normalizeLocale = normalizeLocale; exports.parseI18nJson = parseI18nJson; exports.resolveLocale = resolveLocale; exports.isString = exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var isArray = Array.isArray; + var isObject = function isObject(val) { return val !== null && typeof val === 'object'; }; + var defaultDelimiters = ['{', '}']; var + BaseFormatter = /*#__PURE__*/function () { + function BaseFormatter() { + _classCallCheck(this, BaseFormatter); + this._caches = Object.create(null); + } _createClass(BaseFormatter, [{ + key: "interpolate", value: function interpolate( + message, values) { + var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters; + if (!values) { + return [message]; + } + var tokens = this._caches[message]; + if (!tokens) { + tokens = parse(message, delimiters); + this._caches[message] = tokens; + } + return compile(tokens, values); + } + }]); return BaseFormatter; + }(); exports.Formatter = BaseFormatter; + + var RE_TOKEN_LIST_VALUE = /^(?:\d)+/; + var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; + function parse(format, _ref) { + var _ref2 = _slicedToArray(_ref, 2), startDelimiter = _ref2[0], endDelimiter = _ref2[1]; + var tokens = []; + var position = 0; + var text = ''; + while (position < format.length) { + var char = format[position++]; + if (char === startDelimiter) { + if (text) { + tokens.push({ type: 'text', value: text }); + } + text = ''; + var sub = ''; + char = format[position++]; + while (char !== undefined && char !== endDelimiter) { + sub += char; + char = format[position++]; + } + var isClosed = char === endDelimiter; + var type = RE_TOKEN_LIST_VALUE.test(sub) ? + 'list' : + isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? + 'named' : + 'unknown'; + tokens.push({ value: sub, type: type }); + } + // else if (char === '%') { + // // when found rails i18n syntax, skip text capture + // if (format[position] !== '{') { + // text += char + // } + // } + else { + text += char; + } + } + text && tokens.push({ type: 'text', value: text }); + return tokens; + } + function compile(tokens, values) { + var compiled = []; + var index = 0; + var mode = isArray(values) ? + 'list' : + isObject(values) ? + 'named' : + 'unknown'; + if (mode === 'unknown') { + return compiled; + } + while (index < tokens.length) { + var token = tokens[index]; + switch (token.type) { + case 'text': + compiled.push(token.value); + break; + case 'list': + compiled.push(values[parseInt(token.value, 10)]); + break; + case 'named': + if (mode === 'named') { + compiled.push(values[token.value]); + } else { + if (true) { + console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!")); + } + } + break; + case 'unknown': + if (true) { + console.warn("Detect 'unknown' type of token!"); + } + break; + } + + index++; + } + return compiled; + } + + var LOCALE_ZH_HANS = 'zh-Hans'; exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS; + var LOCALE_ZH_HANT = 'zh-Hant'; exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT; + var LOCALE_EN = 'en'; exports.LOCALE_EN = LOCALE_EN; + var LOCALE_FR = 'fr'; exports.LOCALE_FR = LOCALE_FR; + var LOCALE_ES = 'es'; exports.LOCALE_ES = LOCALE_ES; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var hasOwn = function hasOwn(val, key) { return hasOwnProperty.call(val, key); }; + var defaultFormatter = new BaseFormatter(); + function include(str, parts) { + return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); + } + function startsWith(str, parts) { + return parts.find(function (part) { return str.indexOf(part) === 0; }); + } + function normalizeLocale(locale, messages) { + if (!locale) { + return; + } + locale = locale.trim().replace(/_/g, '-'); + if (messages && messages[locale]) { + return locale; + } + locale = locale.toLowerCase(); + if (locale.indexOf('zh') === 0) { + if (locale.indexOf('-hans') > -1) { + return LOCALE_ZH_HANS; + } + if (locale.indexOf('-hant') > -1) { + return LOCALE_ZH_HANT; + } + if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { + return LOCALE_ZH_HANT; + } + return LOCALE_ZH_HANS; + } + var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]); + if (lang) { + return lang; + } + } var + I18n = /*#__PURE__*/function () { + function I18n(_ref3) { + var locale = _ref3.locale, fallbackLocale = _ref3.fallbackLocale, messages = _ref3.messages, watcher = _ref3.watcher, formater = _ref3.formater; _classCallCheck(this, I18n); + this.locale = LOCALE_EN; + this.fallbackLocale = LOCALE_EN; + this.message = {}; + this.messages = {}; + this.watchers = []; + if (fallbackLocale) { + this.fallbackLocale = fallbackLocale; + } + this.formater = formater || defaultFormatter; + this.messages = messages || {}; + this.setLocale(locale || LOCALE_EN); + if (watcher) { + this.watchLocale(watcher); + } + } _createClass(I18n, [{ + key: "setLocale", value: function setLocale( + locale) { + var _this = this; + var oldLocale = this.locale; + this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; + if (!this.messages[this.locale]) { + // 可能初始化时不存在 + this.messages[this.locale] = {}; + } + this.message = this.messages[this.locale]; + // 仅发生变化时,通知 + if (oldLocale !== this.locale) { + this.watchers.forEach(function (watcher) { + watcher(_this.locale, oldLocale); + }); + } + } + }, { + key: "getLocale", value: function getLocale() { + return this.locale; + } + }, { + key: "watchLocale", value: function watchLocale( + fn) { + var _this2 = this; + var index = this.watchers.push(fn) - 1; + return function () { + _this2.watchers.splice(index, 1); + }; + } + }, { + key: "add", value: function add( + locale, message) { + var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var curMessages = this.messages[locale]; + if (curMessages) { + if (override) { + Object.assign(curMessages, message); + } else { + Object.keys(message).forEach(function (key) { + if (!hasOwn(curMessages, key)) { + curMessages[key] = message[key]; + } + }); + } + } else { + this.messages[locale] = message; + } + } + }, { + key: "f", value: function f( + message, values, delimiters) { + return this.formater.interpolate(message, values, delimiters).join(''); + } + }, { + key: "t", value: function t( + key, locale, values) { + var message = this.message; + if (typeof locale === 'string') { + locale = normalizeLocale(locale, this.messages); + locale && (message = this.messages[locale]); + } else { + values = locale; + } + if (!hasOwn(message, key)) { + console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default.")); + return key; + } + return this.formater.interpolate(message[key], values).join(''); + } + }]); return I18n; + }(); exports.I18n = I18n; + + + function watchAppLocale(appVm, i18n) { + // 需要保证 watch 的触发在组件渲染之前 + if (appVm.$watchLocale) { + // vue2 + appVm.$watchLocale(function (newLocale) { + i18n.setLocale(newLocale); + }); + } else { + appVm.$watch(function () { return appVm.$locale; }, function (newLocale) { + i18n.setLocale(newLocale); + }); + } + } + function getDefaultLocale() { + if (typeof uni !== 'undefined' && uni.getLocale) { + return uni.getLocale(); + } + // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale + if (typeof global !== 'undefined' && global.getLocale) { + return global.getLocale(); + } + return LOCALE_EN; + } + function initVueI18n(locale) { + var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined; var watcher = arguments.length > 3 ? arguments[3] : undefined; + // 兼容旧版本入参 + if (typeof locale !== 'string') { + var _ref4 = + [ + messages, + locale]; locale = _ref4[0]; messages = _ref4[1]; + + } + if (typeof locale !== 'string') { + // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined + locale = getDefaultLocale(); + } + if (typeof fallbackLocale !== 'string') { + fallbackLocale = + typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale || + LOCALE_EN; + } + var i18n = new I18n({ + locale: locale, + fallbackLocale: fallbackLocale, + messages: messages, + watcher: watcher + }); + + var _t = function t(key, values) { + if (typeof getApp !== 'function') { + // app view + /* eslint-disable no-func-assign */ + _t = function t(key, values) { + return i18n.t(key, values); + }; + } else { + var isWatchedAppLocale = false; + _t = function t(key, values) { + var appVm = getApp().$vm; + // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化 + // options: { + // type: Array, + // default () { + // return [{ + // icon: 'shop', + // text: t("uni-goods-nav.options.shop"), + // }, { + // icon: 'cart', + // text: t("uni-goods-nav.options.cart") + // }] + // } + // }, + if (appVm) { + // 触发响应式 + appVm.$locale; + if (!isWatchedAppLocale) { + isWatchedAppLocale = true; + watchAppLocale(appVm, i18n); + } + } + return i18n.t(key, values); + }; + } + return _t(key, values); + }; + return { + i18n: i18n, + f: function f(message, values, delimiters) { + return i18n.f(message, values, delimiters); + }, + t: function t(key, values) { + return _t(key, values); + }, + add: function add(locale, message) { + var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + return i18n.add(locale, message, override); + }, + watch: function watch(fn) { + return i18n.watchLocale(fn); + }, + getLocale: function getLocale() { + return i18n.getLocale(); + }, + setLocale: function setLocale(newLocale) { + return i18n.setLocale(newLocale); + } + }; + + } + + var isString = function isString(val) { return typeof val === 'string'; }; exports.isString = isString; + var formater; + function hasI18nJson(jsonObj, delimiters) { + if (!formater) { + formater = new BaseFormatter(); + } + return walkJsonObj(jsonObj, function (jsonObj, key) { + var value = jsonObj[key]; + if (isString(value)) { + if (isI18nStr(value, delimiters)) { + return true; + } + } else { + return hasI18nJson(value, delimiters); + } + }); + } + function parseI18nJson(jsonObj, values, delimiters) { + if (!formater) { + formater = new BaseFormatter(); + } + walkJsonObj(jsonObj, function (jsonObj, key) { + var value = jsonObj[key]; + if (isString(value)) { + if (isI18nStr(value, delimiters)) { + jsonObj[key] = compileStr(value, values, delimiters); + } + } else { + parseI18nJson(value, values, delimiters); + } + }); + return jsonObj; + } + function compileI18nJsonStr(jsonStr, _ref5) { + var locale = _ref5.locale, locales = _ref5.locales, delimiters = _ref5.delimiters; + if (!isI18nStr(jsonStr, delimiters)) { + return jsonStr; + } + if (!formater) { + formater = new BaseFormatter(); + } + var localeValues = []; + Object.keys(locales).forEach(function (name) { + if (name !== locale) { + localeValues.push({ + locale: name, + values: locales[name] + }); + + } + }); + localeValues.unshift({ locale: locale, values: locales[locale] }); + try { + return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2); + } + catch (e) { } + return jsonStr; + } + function isI18nStr(value, delimiters) { + return value.indexOf(delimiters[0]) > -1; + } + function compileStr(value, values, delimiters) { + return formater.interpolate(value, values, delimiters).join(''); + } + function compileValue(jsonObj, key, localeValues, delimiters) { + var value = jsonObj[key]; + if (isString(value)) { + // 存在国际化 + if (isI18nStr(value, delimiters)) { + jsonObj[key] = compileStr(value, localeValues[0].values, delimiters); + if (localeValues.length > 1) { + // 格式化国际化语言 + var valueLocales = jsonObj[key + 'Locales'] = {}; + localeValues.forEach(function (localValue) { + valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters); + }); + } + } + } else { + compileJsonObj(value, localeValues, delimiters); + } + } + function compileJsonObj(jsonObj, localeValues, delimiters) { + walkJsonObj(jsonObj, function (jsonObj, key) { + compileValue(jsonObj, key, localeValues, delimiters); + }); + return jsonObj; + } + function walkJsonObj(jsonObj, walk) { + if (isArray(jsonObj)) { + for (var i = 0; i < jsonObj.length; i++) { + if (walk(jsonObj, i)) { + return true; + } + } + } else + if (isObject(jsonObj)) { + for (var key in jsonObj) { + if (walk(jsonObj, key)) { + return true; + } + } + } + return false; + } + + function resolveLocale(locales) { + return function (locale) { + if (!locale) { + return locale; + } + locale = normalizeLocale(locale) || locale; + return resolveLocaleChain(locale).find(function (locale) { return locales.indexOf(locale) > -1; }); + }; + } + function resolveLocaleChain(locale) { + var chain = []; + var tokens = locale.split('-'); + while (tokens.length) { + chain.push(tokens.join('-')); + tokens.pop(); + } + return chain; + } + /* WEBPACK VAR INJECTION */ + }.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"], __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 2))) + + /***/ + }), + +/***/ 35: +/*!*********************************************************!*\ + !*** D:/HBuilderProjects/qinjiu/static/image/isvip.png ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function (module, exports) { + + module.exports = "data:image/png;base64,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" + + /***/ + }), + +/***/ 4: +/*!******************************************************************************************!*\ + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***! + \******************************************************************************************/ +/*! exports provided: default */ +/***/ (function (module, __webpack_exports__, __webpack_require__) { + + "use strict"; + __webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function (global) {/*! + * Vue.js v2.6.11 + * (c) 2014-2022 Evan You + * Released under the MIT License. + */ + /* */ + + var emptyObject = Object.freeze({}); + + // These helpers produce better VM code in JS engines due to their + // explicitness and function inlining. + function isUndef(v) { + return v === undefined || v === null + } + + function isDef(v) { + return v !== undefined && v !== null + } + + function isTrue(v) { + return v === true + } + + function isFalse(v) { + return v === false + } + + /** + * Check if value is primitive. + */ + function isPrimitive(value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + function isObject(obj) { + return obj !== null && typeof obj === 'object' + } + + /** + * Get the raw type string of a value, e.g., [object Object]. + */ + var _toString = Object.prototype.toString; + + function toRawType(value) { + return _toString.call(value).slice(8, -1) + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + function isPlainObject(obj) { + return _toString.call(obj) === '[object Object]' + } + + function isRegExp(v) { + return _toString.call(v) === '[object RegExp]' + } + + /** + * Check if val is a valid array index. + */ + function isValidArrayIndex(val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + } + + function isPromise(val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) + } + + /** + * Convert a value to a string that is actually rendered. + */ + function toString(val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) + } + + /** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ + function toNumber(val) { + var n = parseFloat(val); + return isNaN(n) ? val : n + } + + /** + * Make a map and return a function for checking if a key + * is in that map. + */ + function makeMap( + str, + expectsLowerCase + ) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } + } + + /** + * Check if a tag is a built-in tag. + */ + var isBuiltInTag = makeMap('slot,component', true); + + /** + * Check if an attribute is a reserved attribute. + */ + var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + + /** + * Remove an item from an array. + */ + function remove(arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } + } + + /** + * Check whether an object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key) + } + + /** + * Create a cached version of a pure function. + */ + function cached(fn) { + var cache = Object.create(null); + return (function cachedFn(str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) + }); + + /** + * Capitalize a string. + */ + var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) + }); + + /** + * Hyphenate a camelCase string. + */ + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() + }); + + /** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + + /* istanbul ignore next */ + function polyfillBind(fn, ctx) { + function boundFn(a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn + } + + function nativeBind(fn, ctx) { + return fn.bind(ctx) + } + + var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + + /** + * Convert an Array-like object to a real Array. + */ + function toArray(list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret + } + + /** + * Mix properties into target object. + */ + function extend(to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to + } + + /** + * Merge an Array of Objects into a single Object. + */ + function toObject(arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res + } + + /* eslint-disable no-unused-vars */ + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ + function noop(a, b, c) { } + + /** + * Always return false. + */ + var no = function (a, b, c) { return false; }; + + /* eslint-enable no-unused-vars */ + + /** + * Return the same value. + */ + var identity = function (_) { return _; }; + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ + function looseEqual(a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } + } + + /** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ + function looseIndexOf(arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 + } + + /** + * Ensure a function is called only once. + */ + function once(fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } + } + + var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' + ]; + + var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' + ]; + + /* */ + + + + var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS + }); + + /* */ + + /** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ + var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; + + /** + * Check if a string starts with $ or _ + */ + function isReserved(str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F + } + + /** + * Define a property. + */ + function def(obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Parse simple path. + */ + var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); + function parsePath(path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } + } + + /* */ + + // can we use __proto__? + var hasProto = '__proto__' in {}; + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined'; + var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; + var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && /msie|trident/.test(UA); + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isEdge = UA && UA.indexOf('edge/') > 0; + var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); + var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); + var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + var isPhantomJS = UA && /phantomjs/.test(UA); + var isFF = UA && UA.match(/firefox\/(\d+)/); + + // Firefox has a "watch" function on Object.prototype... + var nativeWatch = ({}).watch; + if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get() { + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) { } + } + + // this needs to be lazy-evaled because vue may be required before + // vue-server-renderer can set VUE_ENV + var _isServer; + var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer + }; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + /* istanbul ignore next */ + function isNative(Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) + } + + var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + + var _Set; + /* istanbul ignore if */ // $flow-disable-line + if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set() { + this.set = Object.create(null); + } + Set.prototype.has = function has(key) { + return this.set[key] === true + }; + Set.prototype.add = function add(key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear() { + this.set = Object.create(null); + }; + + return Set; + }()); + } + + /* */ + + var warn = noop; + var tip = noop; + var generateComponentTrace = (noop); // work around flow check + var formatComponentName = (noop); + + if (true) { + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { + return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); + }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + if (vm.$options && vm.$options.__file) { // fixed by xxxxxx + return ('') + vm.$options.__file + } + return '' + } + var options = typeof vm === 'function' && vm.cid != null + ? vm.options + : vm._isVue + ? vm.$options || vm.constructor.options + : vm; + var name = options.name || options._componentTag; + var file = options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm && vm.$options.name !== 'PageBody') { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + !vm.$options.isReserved && tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { + return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); + }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; + } + + /* */ + + var uid = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ + var Dep = function Dep() { + this.id = uid++; + this.subs = []; + }; + + Dep.prototype.addSub = function addSub(sub) { + this.subs.push(sub); + }; + + Dep.prototype.removeSub = function removeSub(sub) { + remove(this.subs, sub); + }; + + Dep.prototype.depend = function depend() { + if (Dep.SharedObject.target) { + Dep.SharedObject.target.addDep(this); + } + }; + + Dep.prototype.notify = function notify() { + // stabilize the subscriber list first + var subs = this.subs.slice(); + if (true && !config.async) { + // subs aren't sorted in scheduler if not running async + // we need to sort them now to make sure they fire in correct + // order + subs.sort(function (a, b) { return a.id - b.id; }); + } + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + // The current target watcher being evaluated. + // This is globally unique because only one watcher + // can be evaluated at a time. + // fixed by xxxxxx (nvue shared vuex) + /* eslint-disable no-undef */ + Dep.SharedObject = {}; + Dep.SharedObject.target = null; + Dep.SharedObject.targetStack = []; + + function pushTarget(target) { + Dep.SharedObject.targetStack.push(target); + Dep.SharedObject.target = target; + Dep.target = target; + } + + function popTarget() { + Dep.SharedObject.targetStack.pop(); + Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1]; + Dep.target = Dep.SharedObject.target; + } + + /* */ + + var VNode = function VNode( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory + ) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + }; + + var prototypeAccessors = { child: { configurable: true } }; + + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + prototypeAccessors.child.get = function () { + return this.componentInstance + }; + + Object.defineProperties(VNode.prototype, prototypeAccessors); + + var createEmptyVNode = function (text) { + if (text === void 0) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node + }; + + function createTextVNode(val) { + return new VNode(undefined, undefined, undefined, String(val)) + } + + // optimized shallow clone + // used for static nodes and slot nodes because they may be reused across + // multiple renders, cloning them avoids errors when DOM manipulations rely + // on their elm reference. + function cloneVNode(vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned + } + + /* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto); + + var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' + ]; + + /** + * Intercept mutating methods and emit events + */ + methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); + }); + + /* */ + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * In some cases we may want to disable observation inside a component's + * update computation. + */ + var shouldObserve = true; + + function toggleObserving(value) { + shouldObserve = value; + } + + /** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ + var Observer = function Observer(value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑 + if (value.push !== value.__proto__.push) { + copyAugment(value, arrayMethods, arrayKeys); + } else { + protoAugment(value, arrayMethods); + } + } + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } + }; + + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + Observer.prototype.walk = function walk(obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } + }; + + /** + * Observe a list of Array items. + */ + Observer.prototype.observeArray = function observeArray(items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + // helpers + + /** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ + function protoAugment(target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment a target Object or Array by defining + * hidden properties. + */ + /* istanbul ignore next */ + function copyAugment(target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ + function observe(value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob + } + + /** + * Define a reactive property on an Object. + */ + function defineReactive$$1( + obj, + key, + val, + customSetter, + shallow + ) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter() { + var value = getter ? getter.call(obj) : val; + if (Dep.SharedObject.target) { // fixed by xxxxxx + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter(newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if (true && customSetter) { + customSetter(); + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); + } + + /** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ + function set(target, key, val) { + if (true && + (isUndef(target) || isPrimitive(target)) + ) { + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + true && warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val + } + + /** + * Delete a property and trigger change if necessary. + */ + function del(target, key) { + if (true && + (isUndef(target) || isPrimitive(target)) + ) { + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + true && warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); + } + + /** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ + function dependArray(value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } + } + + /* */ + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ + var strats = config.optionMergeStrategies; + + /** + * Options with restrictions + */ + if (true) { + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; + } + + /** + * Helper that recursively merges two data objects together. + */ + function mergeData(to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to + } + + /** + * Data + */ + function mergeDataOrFn( + parentVal, + childVal, + vm + ) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn() { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn() { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } + } + + strats.data = function ( + parentVal, + childVal, + vm + ) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + true && warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) + }; + + /** + * Hooks and props are merged as arrays. + */ + function mergeHook( + parentVal, + childVal + ) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res + } + + function dedupeHooks(hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res + } + + LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; + }); + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + function mergeAssets( + parentVal, + childVal, + vm, + key + ) { + var res = Object.create(parentVal || null); + if (childVal) { + true && assertObjectType(key, childVal, vm); + return extend(res, childVal) + } else { + return res + } + } + + ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + strats.watch = function ( + parentVal, + childVal, + vm, + key + ) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + if (true) { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret + }; + + /** + * Other object hashes. + */ + strats.props = + strats.methods = + strats.inject = + strats.computed = function ( + parentVal, + childVal, + vm, + key + ) { + if (childVal && "development" !== 'production') { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret + }; + strats.provide = mergeDataOrFn; + + /** + * Default strategy. + */ + var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal + }; + + /** + * Validate component names + */ + function checkComponents(options) { + for (var key in options.components) { + validateComponentName(key); + } + } + + function validateComponentName(name) { + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { + warn( + 'Invalid component name: "' + name + '". Component names ' + + 'should conform to valid custom element name in html5 specification.' + ); + } + if (isBuiltInTag(name) || config.isReservedTag(name)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + name + ); + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ + function normalizeProps(options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else if (true) { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else if (true) { + warn( + "Invalid value for option \"props\": expected an Array or an Object, " + + "but got " + (toRawType(props)) + ".", + vm + ); + } + options.props = res; + } + + /** + * Normalize all injections into Object-based format + */ + function normalizeInject(options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else if (true) { + warn( + "Invalid value for option \"inject\": expected an Array or an Object, " + + "but got " + (toRawType(inject)) + ".", + vm + ); + } + } + + /** + * Normalize raw function directives into object format. + */ + function normalizeDirectives(options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } + } + + function assertObjectType(name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + ".", + vm + ); + } + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ + function mergeOptions( + parent, + child, + vm + ) { + if (true) { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child, vm); + normalizeInject(child, vm); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField(key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ + function resolveAsset( + options, + type, + id, + warnMissing + ) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if (true && warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res + } + + /* */ + + + + function validateProp( + key, + propOptions, + propsData, + vm + ) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + if ( + true + ) { + assertProp(prop, key, value, vm, absent); + } + return value + } + + /** + * Get the default value of a prop. + */ + function getPropDefaultValue(vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if (true && isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def + } + + /** + * Assert whether a prop is valid. + */ + function assertProp( + prop, + name, + value, + vm, + absent + ) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i]); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + + if (!valid) { + warn( + getInvalidTypeMessage(name, value, expectedTypes), + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } + } + + var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; + + function assertType(value, type) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + var t = typeof value; + valid = t === expectedType.toLowerCase(); + // for primitive wrapper objects + if (!valid && t === 'object') { + valid = value instanceof type; + } + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + valid = value instanceof type; + } + return { + valid: valid, + expectedType: expectedType + } + } + + /** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ + function getType(fn) { + var match = fn && fn.toString().match(/^\s*function (\w+)/); + return match ? match[1] : '' + } + + function isSameType(a, b) { + return getType(a) === getType(b) + } + + function getTypeIndex(type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 + } + + function getInvalidTypeMessage(name, value, expectedTypes) { + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + + " Expected " + (expectedTypes.map(capitalize).join(', ')); + var expectedType = expectedTypes[0]; + var receivedType = toRawType(value); + var expectedValue = styleValue(value, expectedType); + var receivedValue = styleValue(value, receivedType); + // check if we need to specify expected value + if (expectedTypes.length === 1 && + isExplicable(expectedType) && + !isBoolean(expectedType, receivedType)) { + message += " with value " + expectedValue; + } + message += ", got " + receivedType + " "; + // check if we need to specify received value + if (isExplicable(receivedType)) { + message += "with value " + receivedValue + "."; + } + return message + } + + function styleValue(value, type) { + if (type === 'String') { + return ("\"" + value + "\"") + } else if (type === 'Number') { + return ("" + (Number(value))) + } else { + return ("" + value) + } + } + + function isExplicable(value) { + var explicitTypes = ['string', 'number', 'boolean']; + return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) + } + + function isBoolean() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) + } + + /* */ + + function handleError(err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } + } + + function invokeWithErrorHandling( + handler, + context, + args, + vm, + info + ) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + // issue #9511 + // avoid catch triggering multiple times when nested calls + res._handled = true; + } + } catch (e) { + handleError(e, vm, info); + } + return res + } + + function globalHandleError(err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e, null, 'config.errorHandler'); + } + } + } + logError(err, vm, info); + } + + function logError(err, vm, info) { + if (true) { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } + + /* */ + + var callbacks = []; + var pending = false; + + function flushCallbacks() { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // Here we have async deferring wrappers using microtasks. + // In 2.5 we used (macro) tasks (in combination with microtasks). + // However, it has subtle problems when state is changed right before repaint + // (e.g. #6813, out-in transitions). + // Also, using (macro) tasks in event handler would cause some weird behaviors + // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). + // So we now use microtasks everywhere, again. + // A major drawback of this tradeoff is that there are some scenarios + // where microtasks have too high a priority and fire in between supposedly + // sequential events (e.g. #4521, #6690, which have workarounds) + // or even between bubbling of the same event (#6566). + var timerFunc; + + // The nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore next, $flow-disable-line */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + } else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Technically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; + } else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; + } + + function nextTick(cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } + } + + /* */ + + /* not type checking this file because flow doesn't play well with Proxy */ + + var initProxy; + + if (true) { + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + 'referenced during render. Make sure that this property is reactive, ' + + 'either in the data option, or for class-based components, by ' + + 'initializing the property. ' + + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', + target + ); + }; + + var warnReservedPrefix = function (target, key) { + warn( + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + + 'prevent conflicts with Vue internals. ' + + 'See: https://vuejs.org/v2/api/#data', + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && isNative(Proxy); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set(target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has(target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); + if (!has && !isAllowed) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get(target, key) { + if (typeof key === 'string' && !(key in target)) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return target[key] + } + }; + + initProxy = function initProxy(vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; + } + + /* */ + + var seenObjects = new _Set(); + + /** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ + function traverse(val) { + _traverse(val, seenObjects); + seenObjects.clear(); + } + + function _traverse(val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } + } + + var mark; + var measure; + + if (true) { + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + // perf.clearMeasures(name) + }; + } + } + + /* */ + + var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } + }); + + function createFnInvoker(fns, vm) { + function invoker() { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker + } + + function updateListeners( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm + ) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + true && warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } + } + + /* */ + + /* */ + + // fixed by xxxxxx (mp properties) + function extractPropertiesFromVNodeData(data, Ctor, res, context) { + var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties; + if (isUndef(propOptions)) { + return res + } + var externalClasses = Ctor.options.mpOptions.externalClasses || []; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + var result = checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + // externalClass + if ( + result && + res[key] && + externalClasses.indexOf(altKey) !== -1 && + context[camelize(res[key])] + ) { + // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串) + res[key] = context[camelize(res[key])]; + } + } + } + return res + } + + function extractPropsFromVNodeData( + data, + Ctor, + tag, + context// fixed by xxxxxx + ) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + // fixed by xxxxxx + return extractPropertiesFromVNodeData(data, Ctor, {}, context) + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + if (true) { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + // fixed by xxxxxx + return extractPropertiesFromVNodeData(data, Ctor, res, context) + } + + function checkProp( + res, + hash, + key, + altKey, + preserve + ) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false + } + + /* */ + + // The template compiler attempts to minimize the need for normalization by + // statically analyzing the template at compile time. + // + // For plain HTML markup, normalization can be completely skipped because the + // generated render function is guaranteed to return Array. There are + // two cases where extra normalization is needed: + + // 1. When the children contains components - because a functional component + // may return an Array instead of a single root. In this case, just a simple + // normalization is needed - if any child is an Array, we flatten the whole + // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep + // because functional components already normalize their own children. + function simpleNormalizeChildren(children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children + } + + // 2. When the children contains constructs that always generated nested Arrays, + // e.g.