From d4437d351a631c79a3f1ba36ed540be7c0a7bb63 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Thu, 12 Aug 2021 16:52:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20=E5=AD=97=E8=8A=82?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F$emit=E4=B8=8D=E8=A7=A6=E5=8F=91=20f?= =?UTF-8?q?ixed=20#2774?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/uni-mp-toutiao/dist/index.js | 642 +++++++++++++------------- 1 file changed, 321 insertions(+), 321 deletions(-) diff --git a/packages/uni-mp-toutiao/dist/index.js b/packages/uni-mp-toutiao/dist/index.js index 273819032d..b9fd8a990b 100644 --- a/packages/uni-mp-toutiao/dist/index.js +++ b/packages/uni-mp-toutiao/dist/index.js @@ -1,55 +1,55 @@ -import Vue from 'vue'; - -function b64DecodeUnicode (str) { - return decodeURIComponent(atob(str).split('').map(function (c) { - return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) - }).join('')) -} - -function getCurrentUserInfo () { - const token = ( tt).getStorageSync('uni_id_token') || ''; - const tokenArr = token.split('.'); - if (!token || tokenArr.length !== 3) { - return { - uid: null, - role: [], - permission: [], - tokenExpired: 0 - } - } - let 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) { - const { - role - } = getCurrentUserInfo(); - return role.indexOf(roleId) > -1 - }; - Vue.prototype.uniIDHasPermission = function (permissionId) { - const { - permission - } = getCurrentUserInfo(); - return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1 - }; - Vue.prototype.uniIDTokenValid = function () { - const { - tokenExpired - } = getCurrentUserInfo(); - return tokenExpired > Date.now() - }; -} - +import Vue from 'vue'; + +function b64DecodeUnicode (str) { + return decodeURIComponent(atob(str).split('').map(function (c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) + }).join('')) +} + +function getCurrentUserInfo () { + const token = ( tt).getStorageSync('uni_id_token') || ''; + const tokenArr = token.split('.'); + if (!token || tokenArr.length !== 3) { + return { + uid: null, + role: [], + permission: [], + tokenExpired: 0 + } + } + let 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) { + const { + role + } = getCurrentUserInfo(); + return role.indexOf(roleId) > -1 + }; + Vue.prototype.uniIDHasPermission = function (permissionId) { + const { + permission + } = getCurrentUserInfo(); + return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1 + }; + Vue.prototype.uniIDTokenValid = function () { + const { + tokenExpired + } = getCurrentUserInfo(); + return tokenExpired > Date.now() + }; +} + const _toString = Object.prototype.toString; const hasOwnProperty = Object.prototype.hasOwnProperty; @@ -88,8 +88,8 @@ function cached (fn) { const camelizeRE = /-(\w)/g; const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') -}); - +}); + const HOOKS = [ 'invoke', 'success', @@ -240,15 +240,15 @@ function getApiInterceptorHooks (method) { if (hook !== 'returnValue') { interceptor[hook] = globalInterceptors[hook].slice(); } - }); - const scopedInterceptor = scopedInterceptors[method]; - if (scopedInterceptor) { - Object.keys(scopedInterceptor).forEach(hook => { - if (hook !== 'returnValue') { - interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); - } - }); - } + }); + const scopedInterceptor = scopedInterceptors[method]; + if (scopedInterceptor) { + Object.keys(scopedInterceptor).forEach(hook => { + if (hook !== 'returnValue') { + interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); + } + }); + } return interceptor } @@ -278,8 +278,8 @@ const promiseInterceptor = { return res[0] }) } -}; - +}; + const SYNC_API_RE = /^\$|Window$|WindowStyle$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; @@ -350,8 +350,8 @@ function promisify (name, api) { }), ...params); }))) } -} - +} + const EPS = 1e-4; const BASE_DEVICE_WIDTH = 750; let isIOS = false; @@ -392,20 +392,20 @@ function upx2px (number, newDeviceWidth) { } } return number < 0 ? -result : result -} - +} + const interceptors = { promiseInterceptor -}; - -var baseApi = /*#__PURE__*/Object.freeze({ - __proto__: null, - upx2px: upx2px, - addInterceptor: addInterceptor, - removeInterceptor: removeInterceptor, - interceptors: interceptors -}); - +}; + +var baseApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + upx2px: upx2px, + addInterceptor: addInterceptor, + removeInterceptor: removeInterceptor, + interceptors: interceptors +}); + class EventChannel { constructor (id, events) { this.id = id; @@ -472,8 +472,8 @@ class EventChannel { type }); } -} - +} + const eventChannels = {}; const eventChannelStack = []; @@ -509,8 +509,8 @@ var navigateTo = { returnValue (fromRes, toRes) { fromRes.eventChannel = getEventChannel(); } -}; - +}; + function findExistsPageIndex (url) { const pages = getCurrentPages(); let len = pages.length; @@ -521,8 +521,8 @@ function findExistsPageIndex (url) { } } return -1 -} - +} + var redirectTo = { name (fromArgs) { if (fromArgs.exists === 'back' && fromArgs.delta) { @@ -541,8 +541,8 @@ var redirectTo = { } } } -}; - +}; + var previewImage = { args (fromArgs) { let currentIndex = parseInt(fromArgs.current); @@ -575,48 +575,48 @@ var previewImage = { loop: false } } -}; - -const UUID_KEY = '__DC_STAT_UUID'; -let deviceId; -function addUuid (result) { - deviceId = deviceId || tt.getStorageSync(UUID_KEY); - if (!deviceId) { - deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7); - tt.setStorage({ - key: UUID_KEY, - data: deviceId - }); - } - result.deviceId = deviceId; -} - -function addSafeAreaInsets (result) { - if (result.safeArea) { - const safeArea = result.safeArea; - result.safeAreaInsets = { - top: safeArea.top, - left: safeArea.left, - right: result.windowWidth - safeArea.right, - bottom: result.windowHeight - safeArea.bottom - }; - } -} - -var getSystemInfo = { - returnValue: function (result) { - addUuid(result); - addSafeAreaInsets(result); - } -}; - -const oName = 'getUserInfo'; -const nName = 'getUserProfile'; - -var getUserProfile = { - name: tt.canIUse(nName) ? nName : oName -}; - +}; + +const UUID_KEY = '__DC_STAT_UUID'; +let deviceId; +function addUuid (result) { + deviceId = deviceId || tt.getStorageSync(UUID_KEY); + if (!deviceId) { + deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7); + tt.setStorage({ + key: UUID_KEY, + data: deviceId + }); + } + result.deviceId = deviceId; +} + +function addSafeAreaInsets (result) { + if (result.safeArea) { + const safeArea = result.safeArea; + result.safeAreaInsets = { + top: safeArea.top, + left: safeArea.left, + right: result.windowWidth - safeArea.right, + bottom: result.windowHeight - safeArea.bottom + }; + } +} + +var getSystemInfo = { + returnValue: function (result) { + addUuid(result); + addSafeAreaInsets(result); + } +}; + +const oName = 'getUserInfo'; +const nName = 'getUserProfile'; + +var getUserProfile = { + name: tt.canIUse(nName) ? nName : oName +}; + // 不支持的 API 列表 const todos = [ 'preloadPage', @@ -788,8 +788,8 @@ const protocols = { digestAlgorithm: false } } -}; - +}; + const CALLBACKS = ['success', 'fail', 'cancel', 'complete']; function processCallback (methodName, method, returnValue) { @@ -874,8 +874,8 @@ function wrapper (methodName, method) { } } return method -} - +} + const todoApis = Object.create(null); const TODOS = [ @@ -902,15 +902,15 @@ function createTodoApi (name) { TODOS.forEach(function (name) { todoApis[name] = createTodoApi(name); -}); - +}); + var providers = { oauth: ['toutiao'], share: ['toutiao'], payment: ['toutiao'], push: ['toutiao'] -}; - +}; + function getProvider ({ service, success, @@ -932,18 +932,18 @@ function getProvider ({ isFn(fail) && fail(res); } isFn(complete) && complete(res); -} - -var extraApi = /*#__PURE__*/Object.freeze({ - __proto__: null, - getProvider: getProvider -}); - +} + +var extraApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + getProvider: getProvider +}); + const getEmitter = (function () { let Emitter; - return function getUniEmitter () { - if (!Emitter) { - Emitter = new Vue(); + return function getUniEmitter () { + if (!Emitter) { + Emitter = new Vue(); } return Emitter } @@ -964,113 +964,113 @@ function $once () { } function $emit () { return apply(getEmitter(), '$emit', [...arguments]) -} - -var eventApi = /*#__PURE__*/Object.freeze({ - __proto__: null, - $on: $on, - $off: $off, - $once: $once, - $emit: $emit -}); - -function createMediaQueryObserver () { - const mediaQueryObserver = {}; - const { - windowWidth, - windowHeight - } = tt.getSystemInfoSync(); - - const orientation = windowWidth < windowHeight ? 'portrait' : 'landscape'; - - mediaQueryObserver.observe = (options, callback) => { - let matches = true; - for (const item in options) { - const itemValue = item === 'orientation' ? options[item] : Number(options[item]); - if (options[item] !== '') { - if (item === 'width') { - if (itemValue === windowWidth) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - if (item === 'minWidth') { - if (windowWidth >= itemValue) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - if (item === 'maxWidth') { - if (windowWidth <= itemValue) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - - if (item === 'height') { - if (itemValue === windowHeight) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - if (item === 'minHeight') { - if (windowHeight >= itemValue) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - if (item === 'maxHeight') { - if (windowHeight <= itemValue) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - - if (item === 'orientation') { - if (options[item] === orientation) { - matches = true; - } else { - matches = false; - callback(matches); - return matches - } - } - } - } - callback(matches); - - return matches - }; - - mediaQueryObserver.disconnect = () => { - }; - - return mediaQueryObserver -} - -var api = /*#__PURE__*/Object.freeze({ - __proto__: null, - createMediaQueryObserver: createMediaQueryObserver -}); - +} + +var eventApi = /*#__PURE__*/Object.freeze({ + __proto__: null, + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + +function createMediaQueryObserver () { + const mediaQueryObserver = {}; + const { + windowWidth, + windowHeight + } = tt.getSystemInfoSync(); + + const orientation = windowWidth < windowHeight ? 'portrait' : 'landscape'; + + mediaQueryObserver.observe = (options, callback) => { + let matches = true; + for (const item in options) { + const itemValue = item === 'orientation' ? options[item] : Number(options[item]); + if (options[item] !== '') { + if (item === 'width') { + if (itemValue === windowWidth) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + if (item === 'minWidth') { + if (windowWidth >= itemValue) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + if (item === 'maxWidth') { + if (windowWidth <= itemValue) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + + if (item === 'height') { + if (itemValue === windowHeight) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + if (item === 'minHeight') { + if (windowHeight >= itemValue) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + if (item === 'maxHeight') { + if (windowHeight <= itemValue) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + + if (item === 'orientation') { + if (options[item] === orientation) { + matches = true; + } else { + matches = false; + callback(matches); + return matches + } + } + } + } + callback(matches); + + return matches + }; + + mediaQueryObserver.disconnect = () => { + }; + + return mediaQueryObserver +} + +var api = /*#__PURE__*/Object.freeze({ + __proto__: null, + createMediaQueryObserver: createMediaQueryObserver +}); + const MPPage = Page; const MPComponent = Component; @@ -1088,13 +1088,13 @@ function initTriggerEvent (mpInstance) { } function initHook (name, options) { - const oldHook = options[name]; + const oldHook = options.lifetimes[name]; if (!oldHook) { - options[name] = function () { + options.lifetimes[name] = function () { initTriggerEvent(this); }; } else { - options[name] = function (...args) { + options.lifetimes[name] = function (...args) { initTriggerEvent(this); return oldHook.apply(this, args) }; @@ -1112,8 +1112,8 @@ if (!MPPage.__$wrappered) { initHook('created', options); return MPComponent(options) }; -} - +} + const PAGE_EVENT_HOOKS = [ 'onPullDownRefresh', 'onReachBottom', @@ -1655,8 +1655,8 @@ function handleEvent (event) { ) { return ret[0] } -} - +} + const hooks = [ 'onShow', 'onHide', @@ -1816,8 +1816,8 @@ function parseBaseApp (vm, { initHooks(appOptions, hooks); return appOptions -} - +} + function findVmByVueId (vm, vuePid) { const $children = vm.$children; // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200) @@ -1858,8 +1858,8 @@ function handleLink (event) { } vueOptions.parent = parentVm; -} - +} + const mocks = ['__route__', '__webviewId__', '__nodeid__', '__nodeId__']; function isPage () { @@ -1959,8 +1959,8 @@ function handleLink$1 ({ vm._isMounted = true; vm.__call_hook('mounted'); vm.__call_hook('onReady'); -} - +} + function parseApp (vm) { Vue.prototype._$fallback = true; // 降级(调整原 vue 的部分生命周期,如 created,beforeMount,inject,provide) @@ -1987,13 +1987,13 @@ function parseApp (vm) { mocks, initRefs: function () {} // attached 时,可能查询不到 }) -} - +} + function createApp (vm) { App(parseApp(vm)); return vm -} - +} + const encodeReserveRE = /[!'()*]/g; const encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16); const commaRE = /%2C/g; @@ -2035,8 +2035,8 @@ function stringifyQuery (obj, encodeStr = encode) { return encodeStr(key) + '=' + encodeStr(val) }).filter(x => x.length > 0).join('&') : null; return res ? `?${res}` : '' -} - +} + function parseBaseComponent (vueComponentOptions, { isPage, initRelation @@ -2127,8 +2127,8 @@ function parseBaseComponent (vueComponentOptions, { return componentOptions } return [componentOptions, VueComponent] -} - +} + const components = []; function parseComponent (vueOptions) { @@ -2181,8 +2181,8 @@ function parseComponent (vueOptions) { componentOptions.methods.__l = handleLink$1; return componentOptions -} - +} + const hooks$1 = [ 'onShow', 'onHide', @@ -2211,8 +2211,8 @@ function parseBasePage (vuePageOptions, { }; return pageOptions -} - +} + function parsePage (vuePageOptions) { const pageOptions = parseBasePage(vuePageOptions, { isPage, @@ -2229,34 +2229,34 @@ function parsePage (vuePageOptions) { } else { this.is && console.warn(this.is + ' is not ready'); } - }; - - pageOptions.lifetimes.detached = function detached () { - this.$vm && this.$vm.$destroy(); - // 清理 - const webviewId = this.__webviewId__; - webviewId && Object.keys(instances).forEach(key => { - if (key.indexOf(webviewId + '_') === 0) { - delete instances[key]; - } - }); + }; + + pageOptions.lifetimes.detached = function detached () { + this.$vm && this.$vm.$destroy(); + // 清理 + const webviewId = this.__webviewId__; + webviewId && Object.keys(instances).forEach(key => { + if (key.indexOf(webviewId + '_') === 0) { + delete instances[key]; + } + }); }; return pageOptions -} - +} + function createPage (vuePageOptions) { { return Component(parsePage(vuePageOptions)) } -} - +} + function createComponent (vueOptions) { { return Component(parseComponent(vueOptions)) } -} - +} + function createSubpackageApp (vm) { const appOptions = parseApp(vm); const app = getApp({ @@ -2291,27 +2291,27 @@ function createSubpackageApp (vm) { vm.__call_hook('onLaunch', args); } return vm -} - -function createPlugin (vm) { - const appOptions = parseApp(vm); - if (isFn(appOptions.onShow) && tt.onAppShow) { - tt.onAppShow((...args) => { - appOptions.onShow.apply(vm, args); - }); - } - if (isFn(appOptions.onHide) && tt.onAppHide) { - tt.onAppHide((...args) => { - appOptions.onHide.apply(vm, args); - }); - } - if (isFn(appOptions.onLaunch)) { - const args = tt.getLaunchOptionsSync && tt.getLaunchOptionsSync(); - appOptions.onLaunch.call(vm, args); - } - return vm -} - +} + +function createPlugin (vm) { + const appOptions = parseApp(vm); + if (isFn(appOptions.onShow) && tt.onAppShow) { + tt.onAppShow((...args) => { + appOptions.onShow.apply(vm, args); + }); + } + if (isFn(appOptions.onHide) && tt.onAppHide) { + tt.onAppHide((...args) => { + appOptions.onHide.apply(vm, args); + }); + } + if (isFn(appOptions.onLaunch)) { + const args = tt.getLaunchOptionsSync && tt.getLaunchOptionsSync(); + appOptions.onLaunch.call(vm, args); + } + return vm +} + todos.forEach(todoApi => { protocols[todoApi] = false; }); @@ -2394,7 +2394,7 @@ tt.createComponent = createComponent; tt.createSubpackageApp = createSubpackageApp; tt.createPlugin = createPlugin; -var uni$1 = uni; - -export default uni$1; -export { createApp, createComponent, createPage, createPlugin, createSubpackageApp }; +var uni$1 = uni; + +export default uni$1; +export { createApp, createComponent, createPage, createPlugin, createSubpackageApp }; -- GitLab