123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import { requestUrl, instanceRequset, instanceResponse } from '../config'
- function URL (argA, argB) {
- let reg1 = /^http:[?=.a-zA-Z0-9_\/\\-]+$/i,
- reg2 = /^https:[?=.a-zA-Z0-9_\/\\-]+$/i;
- if (argB.length == 0 || reg1.test(argA) || reg2.test(argA)) return argA;
- return argB + argA;
- }
- class Index {
- // 全局报错提示
- static err = () => wx.$err = data => {
- console.log(data);
- wx.showModal({ showCancel: false, title: "报错提示", confirmText: "了解", content: JSON.stringify(data) })
- }
- // 获取系统信息
- static system = that => {
- return new Promise((resolve, reject) => {
- // color ui使用
- try {
- let { statusBarHeight: StatusBar, safeArea, screenHeight } = wx.getSystemInfoSync(),
- capsule = wx.getMenuButtonBoundingClientRect();
- let Ios = screenHeight - safeArea.bottom;
- that.globalData = capsule ? { Ios, StatusBar, Custom: capsule, CustomBar: capsule.bottom + capsule.top - StatusBar } : { Ios, StatusBar, CustomBar: StatusBar + 50 };
- resolve();
- } catch (err) { reject(err) }
- })
- }
- // 全局请求封装
- static request = () => {
- function _request (data) {
- data["url"] = URL(data.url, requestUrl);
- data = instanceRequset(data);
- return new Promise((resolve, reject) => {
- wx.request({
- ...data,
- success: function (res) {
- try { let data = instanceResponse(res); resolve(data); } catch (err) { console.log(err); reject(err) }
- },
- fail: function (err) {
- reject(err)
- },
- })
- })
- }
- wx.$request = _request;
- }
- // 全局文件上传封装
- static uploadFile = () => {
- function uploadFile (data) {
- data["url"] = URL(data.url, requestUrl);
- data = instanceRequset(data);
- return new Promise((resolve, reject) => {
- wx.uploadFile({
- ...data,
- success: function (res) {
- try { let data = instanceResponse(res); resolve(data); } catch (err) { reject(err) }
- },
- fail: function (err) {
- reject(err)
- },
- })
- })
- }
- wx.$uploadFile = uploadFile;
- }
- // 小程序需要的参数
- static mustArg = () => {
- function login () { return new Promise((resolve, reject) => wx.login({ success: res => resolve(res), fail: () => reject("code获取失败!") })) };
- function getUserInfo () { return new Promise((resolve, reject) => wx.getUserInfo({ success: res => resolve(res), fail: () => reject("账号信息获取失败!") })) }
- return new Promise(async (resolve, reject) => {
- try {
- // appId
- const accountinfo = wx.getAccountInfoSync();
- let { appId } = accountinfo.miniProgram;
- // code
- let { code } = await login();
- // encryptedData, iv, userInfo
- let { encryptedData, iv, userInfo } = await getUserInfo();
- resolve({ appId, code, encryptedData, iv, userInfo })
- } catch (err) { reject(err) }
- })
- }
- }
- async function init () {
- try {
- await Index.system(this);
- Index.err();
- // 清空token
- wx.setStorageSync("token", '');
- Index.request();
- Index.uploadFile();
- // 小程序需要的参数
- let mustArg = await Index.mustArg();
- // 小程序首次请求
- let user = await wx.$request({ url: "/account/code2Session/", method: "post", data: { code: mustArg.code, appid: mustArg.appId } });
- wx.setStorageSync("token", user.data.token ? 'JWT ' + user.data.token : '');
- this.globalData = { ...this.globalData, mustArg, user: user.data, _initState: true, };
- console.log(this.globalData)
- } catch (err) {
- console.log(err)
- }
- }
- module.exports = init;
|