# 功能封装
# 请求体的封装
import api from '@/api/url.js'
export default {
common: {
url: api.url,
data: {},
header: {
'Content-Type': 'application/json'
// 'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'GET',
dataType: 'json'
},
request(options = {}) {
options.url = this.common.url + options.url;
options.data = options.data || this.common.data;
options.header = options.header || this.common.header;
options.method = options.method || this.common.method;
options.dataType = options.dataType || this.common.dataType;
options.showLoading = options.showLoading || false
if (options.showLoading) uni.showLoading({
title: '加载中...'
})
return new Promise((res, rej) => {
uni.request({
...options,
timeout: 5000,
success: (result) => {
if (result.statusCode != 200) {
if (result.data.code !== 200) {
wx.showModal({
title: '错误提示',
content: res.data.message,
showCancel: false,
confirmText: '确定'
});
reject(res.data.message);
} else res(result.data)
} else {
let errorMessage = '';
switch (statusCode) {
case 400:
errorMessage = '请求错误';
break;
case 401:
errorMessage = '未授权,请登录';
break;
case 403:
errorMessage = '拒绝访问';
break;
case 404:
errorMessage = `请求地址出错: ${url}`;
break;
case 408:
errorMessage = '请求超时';
break;
case 500:
errorMessage = '服务器内部错误';
break;
case 501:
errorMessage = '服务未实现';
break;
case 502:
errorMessage = '网关错误';
break;
case 503:
errorMessage = '服务不可用';
break;
case 504:
errorMessage = '网关超时';
break;
case 505:
errorMessage = 'HTTP版本不受支持';
break;
default:
break;
}
wx.showModal({
title: '错误提示',
content: errorMessage,
showCancel: false,
confirmText: '确定'
});
rej(errorMessage)
}
},
fail: (err) => {
rej(err);
wx.showModal({
title: '错误提示',
content: '请求失败:' + err.errMsg,
showCancel: false,
confirmText: '确定'
});
},
complete: () => {
wx.hideLoading();
}
})
})
}
}
//在`main.js`中导入
//导入请求体
import $http from '@/api/request.js'
uni.$http = $http
# 提示模态框的封装
//封装提示模态框 (带确认按钮)
export default {
async showmodel(options = {}) {
//弹框标题
options.title = options.title || '提示';
//弹框提示内容
options.content = options.content || '提示内容';
//是否显示取消按钮
options.showCancel = options.showCancel || true;
//取消按钮文字
options.cancelText = options.cancelText || '取消';
//取消按钮颜色
options.cancelColor = options.cancelColor || '#5a0501';
//确认按钮文字
options.confirmText = options.confirmText || '确认';
//确认按钮颜色
options.confirmColor = options.confirmColor || '#FF814A';
const [err, succ] = await uni.showModal({
...options
})
if (err) return err
return succ
}
}
# 通知消息的封装 (只显示提示)
uni.$showmsg = (title = '请求失败!', duration = 2500) => {
uni.showToast({
title,
duration,
icon: 'none'
})
}
# 图片预览
# minix公共部分封装
module.exports = Behavior({
methods: {
showimg(index, imgurl) {
//调用uni.previewImage()方法预览图片
console.log(index)
wx.previewImage({
//预览时默认显示图片索引
current: index,
//所有图片的url地址数组
urls: imgurl
})
},
}
})
# 调用部分
<image src="{{item}}" mode="aspectFill" bindtap="img" data-index="{{index}}"></image>
//点击预览图片的处理函数
img(value)
{
let index = value.target.dataset.index
console.log(value.target.dataset.index)
this.showimg(index, this.data.comment.comment_img)
}
# 上传图片封装(minix)
# 文件封装
import api from '../../API/Url'
//上传图片的全局混入模块
module.exports = Behavior({
methods: {
upimg(url) {
console.log('调用全局混入弄快成功')
return new Promise((res, rej) => {
wx.uploadFile({
url: api.apiurl + '/adminFish.php?type=upload',//上传地址
filePath: url,
name: 'file',
success: (result) => {//上传成功得情况
if (result.statusCode !== 200) {
wx.$showmsg()
return rej();
}
res(result.data)
},
fail: () => {//上传失败得情况
wx.$showmsg()
}
})
})
}
}
})
# 使用
import Showimg from '../../mixin/showimg'
Component({
behaviors: [Showimg],
})
# 小程序更新机制兼容
autoUpdate: function () {
// 获取小程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate((res) => {
// 请求完新版本信息的回调
if (res.hasUpdate) {
//检测到新版本,需要更新,给出提示
wx.showModal({
title: '更新提示',
content: '检测到新版本,是否下载新版本并重启小程序?',
success: (res) => {
if (res.confirm) {
//2. 用户确定下载更新小程序,小程序下载及更新静默进行
this.downLoadAndUpdate(updateManager)
} else if (res.cancel) {
wx.showModal({
title: '温馨提示~',
content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问',
showCancel: false,
confirmText: "确定更新",
success: (res) => {
if (res.confirm) {
//下载新版本,并重新应用
this.downLoadAndUpdate(updateManager)
}
}
})
}
}
})
}
})
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
}
,
/**
* 下载小程序新版本并重启应用
*/
downLoadAndUpdate: function (updateManager) {
wx.showLoading();
//静默下载更新小程序新版本
updateManager.onUpdateReady(function () {
wx.hideLoading()
//新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
})
updateManager.onUpdateFailed(function () {
wx.hideLoading()
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了',
content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
})
})
}
})
← 微信小程序基础