2 Star 3 Fork 1

huangpanWeb/meiZhuang

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.js 4.80 KB
一键复制 编辑 原始数据 按行查看 历史
huangpanWeb 提交于 2021-04-13 15:37 . 美妆app
import Vue from 'vue'
import store from './store'
import App from './App'
import * as filters from './filters'
import * as config from './config'
import lib from './common/lib.js'
Vue.prototype.lib = lib
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
//#ifdef H5
let jweixin = require('./components/jweixin-module')
let jwx = require('./components/jweixin-module/jwx')
Vue.mixin({
onShow() {
jwx.configWeiXin(jwx => {
})
}
})
//#endif
const defConfig = config.def
const msg = (title, duration = 1500, mask = false, icon = 'none') => {
//统一提示方便全局修改
if (Boolean(title) === false) {
return;
}
uni.showToast({
title,
duration,
mask,
icon
});
}
let userInfo = undefined
const logout = () => {
userInfo = undefined
uni.removeStorage({
key: 'userInfo'
})
}
const setUserInfo = (i) => {
userInfo = i
}
const isVip = () => {
return userInfo && userInfo.level
}
let loginLock = false
const request = (_gp, _mt, data = {}, failCallback) => {
//异步请求数据
return new Promise(resolve => {
if (!userInfo || !userInfo.accessToken) {
userInfo = uni.getStorageSync('userInfo')
}
let accessToken = userInfo ? userInfo.accessToken : ''
let baseUrl = config.def().baseUrl
uni.request({
url: baseUrl + '/m.api',
data: {
...data,
_gp,
_mt
},
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'ACCESSTOKEN': accessToken
},
// 请求成功之后
success: (res) => {
if (res.statusCode === 200) {
if (res.data.errno === 200) {
resolve(res.data);
} else if (res.data.errno === 10001) {
if (failCallback) {
failCallback(res.data)
}
// 如果没有登录, 就展示提示框
if (!loginLock) {
loginLock = true
uni.showModal({
title: '登录提示',
content: '您尚未登录,是否立即登录?',
showCancel: true,
confirmText: '登录',
success: (e) => {
// 如果点击的是登录按钮 就跳转到登录页面
if (e.confirm) {
uni.navigateTo({
url: '/pages/public/login'
// url: '/pages/public/register'
})
}
},
fail: () => {},
complete: () => {
loginLock = false
}
})
}
} else {
if (failCallback) {
failCallback(res.data)
} else {
uni.showToast({
title: res.data.errmsg,
icon: 'none'
})
}
}
}
}
})
})
}
const uploadImg = (successCallback) => {
let baseUrl = config.def().baseUrl
uni.chooseImage({
sizeType: ['compressed'],
success: function(res) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
uni.request({
url: baseUrl + '/upload',
method: 'get',
success: function(signRes) {
uni.showLoading({
title: '图片上传中',
})
let fileName = ('imgs/' + random_string(15) + get_suffix(res.tempFilePaths[i]))
uni.uploadFile({
url: signRes.data.baseUrl,
filePath: res.tempFilePaths[i],
name: 'file',
formData: {
name: res.tempFilePaths[i],
key: fileName,
policy: signRes.data.policy,
OSSAccessKeyId: signRes.data.accessid,
success_action_status: '200',
signature: signRes.data.signature
},
success: function(uploadRes) {
uni.hideLoading()
if (uploadRes.statusCode === 200) {
if (successCallback) {
successCallback(signRes.data.baseUrl + fileName)
} else {
uni.showToast({
title: '上传成功',
icon: 'none'
})
}
} else {
uni.hideLoading()
uni.showToast({
title: '网络错误 code=' + uploadRes.statusCode,
icon: 'none'
})
}
}
})
}
})
}
}
})
}
function get_suffix(filename) {
var pos = filename.lastIndexOf('.')
var suffix = ''
if (pos != -1) {
suffix = filename.substring(pos)
}
return suffix;
}
function random_string(len) {
len = len || 32;
var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPos = chars.length;
var pwd = '';
for (var i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
const prePage = () => {
let pages = getCurrentPages();
let prePage = pages[pages.length - 2];
// #ifdef H5
return prePage;
// #endif
return prePage.$vm;
}
const globalData = {}
Vue.config.productionTip = false
Vue.prototype.$fire = new Vue();
Vue.prototype.$store = store;
Vue.prototype.$api = {
msg,
prePage,
request,
uploadImg,
logout,
isVip,
setUserInfo,
defConfig,
globalData
};
//#ifdef H5
Vue.prototype.$jweixin = jweixin;
//#endif
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/huangpan2019/mei-zhuang.git
git@gitee.com:huangpan2019/mei-zhuang.git
huangpan2019
mei-zhuang
meiZhuang
master

搜索帮助