From 2794927ea5a697a1e514a7c9cc204273db7f32c1 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 21 Jun 2021 09:47:03 +0800 Subject: [PATCH] 优化图片压缩细节,优惠图片上传组件预览 --- bases/Fetcher.js | 40 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 37 insertions(+), 3 deletions(-) diff --git a/bases/Fetcher.js b/bases/Fetcher.js index 4112dc5..5dce631 100644 --- a/bases/Fetcher.js +++ b/bases/Fetcher.js @@ -128,12 +128,22 @@ */ query(type, url, data = null, remap, options = {}) { return new Promise((resolve, reject) => { + const header = { + ...this._defaultConfig.header, + }; + if (process.env.TARO_ENV === 'weapp') { + header['Cookie'] = this._getCookies(); + } Taro.request({ ...this._defaultConfig, + header, url: this._defaultConfig.url + url, method: type.toUpperCase(), data, success: response => { + if (process.env.TARO_ENV === 'weapp') { + this._saveCookies(response.cookies); + } /** * @type {{state: {code, http, msg}, data: Object}} * @example response.state.code @@ -153,6 +163,24 @@ }, }); }); + } + + _saveCookies(cookies) { + const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}'); + cookies.forEach(cookie => { + const mc = cookie.match(/([a-zA-Z0-9_\-]+)=(.*?);/); + localCookies[mc[1]] = mc[2]; + }); + wx.setStorageSync('cookies', JSON.stringify(localCookies)); + } + + _getCookies() { + const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}'); + const cookiesArr = []; + Object.keys(localCookies).forEach(key => { + cookiesArr.push(key + '=' + localCookies[key]); + }); + return cookiesArr.join('; '); } /** @@ -251,7 +279,9 @@ } else { msg += '解析通讯数据异常!'; } - this.message('error', msg); + setTimeout(() => { + this.message('error', msg); + }, 20); } /** @@ -284,14 +314,18 @@ return response.data; } } else if (response.state.code === 2001) { - this.message('info', response.state.msg); + setTimeout(() => { + this.message('info', response.state.msg); + }, 20); return null; } else if (response.state.code === 9001) { if (process.env.TARO_ENV === 'weapp') { Taro.navigateTo({ url: '/pages/home/index/index?mode=login' }); } } else { - this.message('error', response.state.msg); + setTimeout(() => { + this.message('error', response.state.msg); + }, 20); return null; } } -- Gitblit v1.9.1