diff --git a/components/task/index.vue b/components/task/index.vue index bd4e498..2968932 100644 --- a/components/task/index.vue +++ b/components/task/index.vue @@ -3,7 +3,7 @@ - @@ -63,6 +63,11 @@ }) : Toast('暂未开放') }, changeCurrent(e) { + if(e.currentIndex==3){ + this.$refs.controlRef._onClick(this.current); + this.navTo('/subpkg/taskAdmin/taskAdmin'); + return ; + } if (this.current !== e.currentIndex) { this.current = +e.currentIndex; switch (this.current) { diff --git a/pages/oaLogin/oaLogin.vue b/pages/oaLogin/oaLogin.vue index 3a335d5..a5030d1 100644 --- a/pages/oaLogin/oaLogin.vue +++ b/pages/oaLogin/oaLogin.vue @@ -42,6 +42,7 @@ Toast } from "../../libs/uniApi"; import bj from "@/static/animation/bj2.json" + import encrypt from "@/utils/encrypt.js" // #ifdef APP-PLUS var jpushModule = uni.requireNativePlugin("JG-JPush"); @@ -75,18 +76,6 @@ onLoad() { this.options.data = bj; // this.$refs.lottie.call('play'); - uni.getSystemInfo({ - success: function (res) { - // 获取屏幕宽度 - var screenWidth = res.windowWidth; - // 获取屏幕高度 - var screenHeight = res.windowHeight; - // 计算屏幕比例 - var screenRatio = screenWidth / screenHeight; - - console.log("屏幕比例:" + screenRatio); - } - }); }, methods: { changeTabs(e) { @@ -117,7 +106,7 @@ title: '正在登录中' }) let res = await loginAccount(that.formData); - console.log(that.formData) + encrypt.encode('ACT', this.formData); this.$store.commit('SET_USERINFO', { user: data, token: res.data.token diff --git a/utils/base64.js b/utils/base64.js new file mode 100644 index 0000000..0b335e5 --- /dev/null +++ b/utils/base64.js @@ -0,0 +1,164 @@ +/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */ +;(function(root) { + + // Detect free variables `exports`. + var freeExports = typeof exports == 'object' && exports; + + // Detect free variable `module`. + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + + // Detect free variable `global`, from Node.js or Browserified code, and use + // it as `root`. + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /*--------------------------------------------------------------------------*/ + + var InvalidCharacterError = function(message) { + this.message = message; + }; + InvalidCharacterError.prototype = new Error; + InvalidCharacterError.prototype.name = 'InvalidCharacterError'; + + var error = function(message) { + // Note: the error messages used throughout this file match those used by + // the native `atob`/`btoa` implementation in Chromium. + throw new InvalidCharacterError(message); + }; + + var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + // http://whatwg.org/html/common-microsyntaxes.html#space-character + var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; + + // `decode` is designed to be fully compatible with `atob` as described in the + // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob + // The optimized base64-decoding algorithm used is based on @atk’s excellent + // implementation. https://gist.github.com/atk/1020396 + var decode = function(input) { + input = String(input) + .replace(REGEX_SPACE_CHARACTERS, ''); + var length = input.length; + if (length % 4 == 0) { + input = input.replace(/==?$/, ''); + length = input.length; + } + if ( + length % 4 == 1 || + // http://whatwg.org/C#alphanumeric-ascii-characters + /[^+a-zA-Z0-9/]/.test(input) + ) { + error( + 'Invalid character: the string to be decoded is not correctly encoded.' + ); + } + var bitCounter = 0; + var bitStorage; + var buffer; + var output = ''; + var position = -1; + while (++position < length) { + buffer = TABLE.indexOf(input.charAt(position)); + bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; + // Unless this is the first of a group of 4 characters… + if (bitCounter++ % 4) { + // …convert the first 8 bits to a single ASCII character. + output += String.fromCharCode( + 0xFF & bitStorage >> (-2 * bitCounter & 6) + ); + } + } + return output; + }; + + // `encode` is designed to be fully compatible with `btoa` as described in the + // HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa + var encode = function(input) { + input = String(input); + if (/[^\0-\xFF]/.test(input)) { + // Note: no need to special-case astral symbols here, as surrogates are + // matched, and the input is supposed to only contain ASCII anyway. + error( + 'The string to be encoded contains characters outside of the ' + + 'Latin1 range.' + ); + } + var padding = input.length % 3; + var output = ''; + var position = -1; + var a; + var b; + var c; + var buffer; + // Make sure any padding is handled outside of the loop. + var length = input.length - padding; + + while (++position < length) { + // Read three bytes, i.e. 24 bits. + a = input.charCodeAt(position) << 16; + b = input.charCodeAt(++position) << 8; + c = input.charCodeAt(++position); + buffer = a + b + c; + // Turn the 24 bits into four chunks of 6 bits each, and append the + // matching character for each of them to the output. + output += ( + TABLE.charAt(buffer >> 18 & 0x3F) + + TABLE.charAt(buffer >> 12 & 0x3F) + + TABLE.charAt(buffer >> 6 & 0x3F) + + TABLE.charAt(buffer & 0x3F) + ); + } + + if (padding == 2) { + a = input.charCodeAt(position) << 8; + b = input.charCodeAt(++position); + buffer = a + b; + output += ( + TABLE.charAt(buffer >> 10) + + TABLE.charAt((buffer >> 4) & 0x3F) + + TABLE.charAt((buffer << 2) & 0x3F) + + '=' + ); + } else if (padding == 1) { + buffer = input.charCodeAt(position); + output += ( + TABLE.charAt(buffer >> 2) + + TABLE.charAt((buffer << 4) & 0x3F) + + '==' + ); + } + + return output; + }; + + var base64 = { + 'encode': encode, + 'decode': decode, + 'version': '1.0.0' + }; + + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define(function() { + return base64; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = base64; + } else { // in Narwhal or RingoJS v0.7.0- + for (var key in base64) { + base64.hasOwnProperty(key) && (freeExports[key] = base64[key]); + } + } + } else { // in Rhino or a web browser + root.base64 = base64; + } + +}(this)); diff --git a/utils/encrypt.js b/utils/encrypt.js new file mode 100644 index 0000000..49748f0 --- /dev/null +++ b/utils/encrypt.js @@ -0,0 +1,62 @@ +import Base64 from "@/utils/base64.js" + +// 加密 +const encode = (key, data='')=>{ + try{ + let str; + typeof data == 'object'? str = JSON.stringify(data) : str = data; + uni.setStorageSync(key, Base64.encode(str)) + return true; + }catch(e){ + console.log(e); + return false; + } +} + +// 解密 +const decode = (key)=>{ + try{ + let str = uni.getStorageSync(key); + str = Base64.decode(str); + isJSON(str) ? str = JSON.parse(str) : null; + return str; + }catch(e){ + console.log(e); + return undefined; + } +} + +const isJSON = (str)=>{ + try{ + JSON.parse(str) + return true; + }catch(e){ + return false; + } +} + + +const LOGIN = ()=>{ + return new Promise((reslove, reject) => { + uni.request({ + url: Url + '/api' + url, + method: 'POST', + data: data, + success: (res) => { + + }, + fail: (message) => { + uni.showToast({ + title: '网络错误', + icon: 'none' + }) + reject('请求失败'); + } + }) + }); +} + +export default { + encode, + decode +} \ No newline at end of file