1 Star 0 Fork 0

yvette / flbds-app

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.js 5.43 KB
一键复制 编辑 原始数据 按行查看 历史
yvette 提交于 2023-12-19 17:40 . 1
import Vue from 'vue'
import store from './store'
import App from './App'
import * as filters from './filters'
import config from './config'
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
// #ifdef H5
const jweixin = require('./components/jweixin-module')
const jwx = require('./components/jweixin-module/jwx')
Vue.mixin({
onShow() {
jwx.configWeiXin(jwx => {
})
}
})
// #endif
const msg = (title, duration = 1500, mask = false, icon = 'none') => {
// 统一提示方便全局修改
if (Boolean(title) === false) {
return
}
uni.showToast({
title,
duration,
mask,
icon
})
}
let userInfo
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')
}
const accessToken = userInfo ? userInfo.accessToken : ''
const baseUrl = config.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'
})
}
},
fail: () => {},
complete: () => {
loginLock = false
}
})
}
} else {
if (failCallback) {
failCallback(res.data)
} else {
uni.showToast({
title: res.data.errmsg,
icon: 'none'
})
}
}
}
}
})
})
}
const uploadImg = (successCallback) => {
if (!userInfo || !userInfo.accessToken) {
userInfo = uni.getStorageSync('userInfo')
}
const accessToken = userInfo ? userInfo.accessToken : ''
const baseUrl = config.baseUrl
uni.chooseImage({
sizeType: ['compressed'],
success: function(res) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
uni.showLoading({
title: '图片上传中'
})
const fileName = ('imgs/' + random_string(15) + get_suffix(res.tempFilePaths[i]))
uni.uploadFile({
url: baseUrl + '/upload/user',
filePath: res.tempFilePaths[i],
name: 'file',
formData: {
name: res.tempFilePaths[i],
key: fileName
},
header: {
// #ifdef MP-WEIXIN
APPID: uni.getAccountInfoSync().miniProgram.appId,
// #endif
ACCESSTOKEN: accessToken
},
success: function(uploadRes) {
uni.hideLoading()
console.log(uploadRes)
if (uploadRes.statusCode === 200) {
if (successCallback) {
successCallback(JSON.parse(uploadRes.data).url)
} else {
uni.showToast({
title: '上传成功',
icon: 'none'
})
}
} else {
uni.hideLoading()
uni.showToast({
title: '网络错误 code=' + uploadRes.statusCode,
icon: 'none'
})
}
}
})
}
}
})
}
function get_suffix(filename) {
const pos = filename.lastIndexOf('.')
let suffix = ''
if (pos !== -1) {
suffix = filename.substring(pos)
}
return suffix
}
function random_string(len) {
len = len || 32
const chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
const maxPos = chars.length
let pwd = ''
for (let i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos))
}
return pwd
}
const prePage = () => {
const pages = getCurrentPages()
const prePage = pages[pages.length - 2]
if (!prePage) {
return null
}
let res = prePage.$vm
// #ifdef H5
res = prePage
// #endif
return res
}
const globalData = {}
export function style(width) {
if (config.OSS_PROVIDER === 'aliyun') {
return '?x-oss-process=style/' + width + 'px'
} else if (config.OSS_PROVIDER === 'qcloud') {
return '?imageMogr2/thumbnail/' + width + 'x/interlace/0'
}
}
Vue.config.productionTip = false
Vue.prototype.$fire = new Vue()
Vue.prototype.$store = store
Vue.prototype.$api = {
msg,
prePage,
request,
uploadImg,
logout,
isVip,
setUserInfo,
config,
globalData,
style
}
// #ifdef H5
Vue.prototype.$jweixin = jweixin
// #endif
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
1
https://gitee.com/yt20/flbds-app.git
git@gitee.com:yt20/flbds-app.git
yt20
flbds-app
flbds-app
master

搜索帮助