小程序请求封装 页面引用
2020-06-09 本文已影响0人
糖醋里脊120625
封装
class HTTP {
request(param) {
let _this = this;
let baseUrl = 'https://www.redxibao.com';
return new Promise((resolve, reject) => {
let access_token = wx.getStorageSync('login').token || '';
wx.request({
method: param.method || 'get',
url: baseUrl + param.url || '',
data: param.data || null,
header: access_token ? {
'content-type': 'application/x-www-form-urlencoded',
"Authorization": `${access_token}`
} : {
'content-type': 'application/x-www-form-urlencoded',
},
success: (res => {
if (res.data.code === 200) {
//200: 服务端业务处理正常结束
resolve(res.data)
} else if (res.data.code === 1003){
//未登录
wx.navigateTo({
url: '/pages/login/login/login',
})
}else{
//其它错误,提示用户错误信息
/***
* 需要根据接口文档改!!!
*/
// reject(res)
resolve(res)
}
}),
fail: (err => {
if (err.responseJSON) {
// reject(err.responseJSON.message)
} else {
// reject(err);
}
})
});
});
}
}
export default HTTP;
引用
const app = getApp();
import util from "../../utils/util.js"
import HTTP from "../../utils/request.js"
var _http = new HTTP();
Page({
/**
* 页面的初始数据
*/
data: {
tabbar: {},
_index: '-1',
list:[],
pagesize:10,
page:1,
isMore:true,
status: false,
text: "",
keyword:"",
isPage:false,
info:[],
},
joinus(){
console.log("跳加入我们的页面")
},
gotodetail(e){
var viewbean = e.currentTarget.dataset.bean;
wx.navigateTo({
url: '/pages/wisdomdetail/wisdomdetail?team_id='+viewbean.id,
})
},
// 点击cover播放,其它视频结束
videoPlay: function (e) {
var _index = e.currentTarget.dataset.id
this.setData({
// _index: _index
})
//停止正在播放的视频
var videoContextPrev = wx.createVideoContext(_index + "")
videoContextPrev.stop();
setTimeout(function () {
//将点击视频进行播放
var videoContext = wx.createVideoContext(_index + "")
videoContext.play();
}, 500)
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
app.editTabbar();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
wx.hideTabBar({
fail: function () {
setTimeout(function () {
wx.hideTabBar()
}, 500)
}
});
},
List(page){
_http.request({
url:"/api/volunteer/teams",
method:"GET",
data:{
page:page,
pagesize:this.data.pagesize
}
}).then(res=>{
let data = res.data.info;
if(data.length < 10 ){
this.setData({
isMore:false
})
}
this.setData({
list: this.data.info.concat(res.data.info)
})
if (this.data.info.length == 0) {
this.setData({
isMore: false,
isPage: true
})
}
})
},
//获取搜索文字
Search(e) {
console.log(e)
this.setData({
keyword: e.detail.value
})
},
//点击搜索
SearchSubmit() {
let { keyword } = this.data;
if (!keyword) {
return;
}
this.setData({
list: [], //新闻
})
_http.request({
url: "/api/search/index",
method: "GET",
data: {
type: 2,
keyword: keyword
}
}).then(res => {
console.log(res)
if(res.data.list.length == 0){
this.setData({
isPage:true
})
}
this.setData({
list: res.data.list
})
})
},
/**
* 生命周期函数--监听页面显示
**/
onShow: function () {
let returns = wx.getStorageSync('returns')
if (!returns) {
this.setData({
page: 1,
list: []
})
this.List(1);
} else {
wx.setStorageSync("returns", false)
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 点赞
*/
//视频点赞
FabulousV(e) {
let { id, zan } = e.currentTarget.dataset;
console.log(id,zan)
if (zan == 1) {
util.showToast('您不能重复点赞', 'none')
return;
}
_http.request({
url: "/api/video/articleZanDo",
method: "POST",
data: {
video_id: id
}
}).then(res => {
let { list } = this.data;
for (let i in list) {
if (list[i].id == id) {
list[i].is_zan = list[i].is_zan == 1 ? 0 : 1
list[i].zan_count = list[i].is_zan == 1 ? list[i].zan_count + 1 : list[i].zan_count - 1
this.setData({
status: true,
text: "视频点赞+" + res.data.point + "积分"
})
setTimeout(() => {
this.setData({
status: false,
})
}, 2000)
}
}
this.setData({
list: list,
})
})
},
/**
* 页面上拉触底事件的处理函数
**/
onReachBottom: function () {
this.setData({
page: this.data.page + 1
})
this.List(this.data.page)
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})