曹え 5811 发布于:2021-12-30 01:40:26
最简单的全局变量添加的方法
第一步:创建函数文件 common/tui.js
/**
* 常用方法封装 请求,文件上传等
* @author echo.
**/
const tui = {
imgUrl: function() {
return 'https://bzl.h5.org.cn/qiandao'
//return 'https://test.thorui.cn'
//return 'https://uat.thorui.cn'
// return 'https://prod.thorui.cn'
},
//接口地址
apiUrl: function() {
return 'https://bzl.h5.org.cn/qiandao/wx_api.php?m='
//return 'https://test.thorui.cn'
//return 'https://uat.thorui.cn'
// return 'https://prod.thorui.cn'
},
toast: function(text, duration, success) {
uni.showToast({
title: text || "出错啦~",
icon: success ? 'success' : 'none',
duration: duration || 2000
})
},
modal: function(title, content, showCancel, callback, confirmColor, confirmText) {
uni.showModal({
title: title || '提示',
content: content,
showCancel: showCancel,
cancelColor: "#555",
confirmColor: confirmColor || "#5677fc",
confirmText: confirmText || "确定",
success(res) {
if (res.confirm) {
callback && callback(true)
} else {
callback && callback(false)
}
}
})
},
isAndroid: function() {
const res = uni.getSystemInfoSync();
return res.platform.toLocaleLowerCase() == "android"
},
isPhoneX: function() {
const res = uni.getSystemInfoSync();
let iphonex = false;
let models = ['iphonex', 'iphonexr', 'iphonexsmax', 'iphone11', 'iphone11pro', 'iphone11promax']
const model = res.model.replace(/s/g, "").toLowerCase()
if (models.includes(model)) {
iphonex = true;
}
return iphonex;
},
constNum: function() {
let time = 0;
// #ifdef APP-PLUS
time = this.isAndroid() ? 300 : 0;
// #endif
return time
},
delayed: null,
showLoading: function(title, mask = true) {
uni.showLoading({
mask: mask,
title: title || '请稍候...'
})
},
/**
* 请求数据处理
* @param string url 请求地址
* @param string method 请求方式
* GET or POST
* @param {*} postData 请求参数
* @param bool isDelay 是否延迟显示loading
* @param bool isForm 数据格式
* true: 'application/x-www-form-urlencoded'
* false:'application/json'
* @param bool hideLoading 是否隐藏loading
* true: 隐藏
* false:显示
*/
A: async function(url,postData, method, isDelay, isForm, hideLoading) {
//接口请求
let loadding = false;
tui.delayed && uni.hideLoading();
clearTimeout(tui.delayed);
tui.delayed = null;
if (!hideLoading) {
if (isDelay) {
tui.delayed = setTimeout(() => {
loadding = true
tui.showLoading()
}, 1000)
} else {
loadding = true
tui.showLoading()
}
}
return new Promise((resolve, reject) => {
uni.request({
url: tui.apiUrl() + url,
data: postData,
header: {
'Content-Type': 'application/x-www-form-urlencoded',
//'content-type': isForm ? 'application/x-www-form-urlencoded' : 'application/json'
//'Authorization': tui.getToken()
},
method: method ? method : 'POST', //'GET','POST'
dataType: 'json',
success: (res) => {
clearTimeout(tui.delayed)
tui.delayed = null;
if (loadding && !hideLoading) {
uni.hideLoading()
}
resolve(res.data)
},
fail: (res) => {
clearTimeout(tui.delayed)
tui.delayed = null;
tui.toast("网络不给力,请稍后再试~")
reject(res)
}
})
})
},
/**
* 上传文件
* @param string url 请求地址
* @param string src 文件路径
*/
uploadFile: function(url, src) {
tui.showLoading()
return new Promise((resolve, reject) => {
const uploadTask = uni.uploadFile({
url: tui.apiUrl() + url,
filePath: src,
name: 'imageFile',
header: {
'Authorization': tui.getToken()
},
formData: {
// sizeArrayText:""
},
success: function(res) {
uni.hideLoading()
let d = JSON.parse(res.data.replace(/ufeff/g, "") || "{}")
if (d.code % 100 == 0) {
//返回图片地址
let fileObj = d.data;
resolve(fileObj)
} else {
that.toast(res.msg);
}
},
fail: function(res) {
reject(res)
that.toast(res.msg);
}
})
})
},
tuiJsonp: function(url, callback, callbackname) {
// #ifdef H5
window[callbackname] = callback;
let tuiScript = document.createElement("script");
tuiScript.src = url;
tuiScript.type = "text/javascript";
document.head.appendChild(tuiScript);
document.head.removeChild(tuiScript);
// #endif
},
//设置用户信息
setUserInfo: function(mobile, token) {
//uni.setStorageSync("thorui_token", token)
uni.setStorageSync("thorui_mobile", mobile)
},
//获取token
getToken() {
return uni.getStorageSync("thorui_token")
},
//判断是否登录
isLogin: function() {
return uni.getStorageSync("thorui_mobile") ? true : false
},
//跳转页面,校验登录状态
href(url, isVerify) {
if (isVerify && !tui.isLogin()) {
uni.navigateTo({
url: '/pages/common/login/login'
})
} else {
uni.navigateTo({
url: url
});
}
}
}
export default tui第二步:在 main.js 里面引入
import tui from './common/tui.js' Vue.prototype.tui = tui
第三步:使用方法
//在html里面使用
{{tui.apiUrl()}}
// 在js里面使用
this.tui.apiUrl()
// 在js的函数里面使用
login() {
let _this = this;
uni.login({
provider: 'weixin',
success: function(loginRes) {
let code = loginRes.code;
//通过_this 调用 tui.js 里面的 A 函数
_this.tui.A('getOpenid',{code:code}).then(res=>{
console.log(res)
})
},
});
},登录后可以留言提问!
微信扫码登录