You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

88 lines
2.1 KiB

import {request} from '@/common/js/request'
export default{
data(){
return {
page: 0, //页码
pageNum: 6, //每页加载数据量
loadingType: 1, //0加载前 1加载中 2没有更多
isLoading: false, //刷新数据
loaded: false, //加载完毕
}
},
methods: {
log(data){
console.log(JSON.parse(JSON.stringify(data)))
},
/**
* navigatorTo跳转页面
* @param {String} url
* @param {Object} options
* @param {Boolean} options.login 是否检测登录
*/
navTo(url, options={}){
this.$util.throttle(()=>{
if(!url){
return;
}
if((~url.indexOf('login=1') || options.login) && !this.$store.getters.hasLogin){
url = '/pages/auth/login';
}
uni.navigateTo({
url
})
}, 300)
},
/**
* $request云函数请求
* @param {String} module
* @param {String} operation
* @param {Boolean} data 请求参数
* @param {Boolean} ext 附加参数
* @param {Boolean} ext.showLoading 是否显示loading状态,默认不显示
* @param {Boolean} ext.hideLoading 是否关闭loading状态,默认关闭
* @param {Boolean} ext.login 未登录拦截
* @param {Boolean} ext.setLoaded 加载完成是设置页面加载完毕
*/
$request(module, operation, data={}, ext={}){
if(ext.login && !this.$util.isLogin()){
return;
}
if(ext.showLoading){
this.isLoading = true;
}
return new Promise((resolve, reject)=> {
request(module, operation, data, ext).then(result => {
if(ext.hideLoading !== false){
this.isLoading = false;
}
setTimeout(()=>{
if(this.setLoaded !== false){
this.loaded = true;
}
}, 100)
this.$refs.confirmBtn && this.$refs.confirmBtn.stop();
resolve(result);
}).catch((err) => {
reject(err);
})
})
},
imageOnLoad(data, key){
setTimeout(()=>{
this.$set(data, 'loaded', true);
}, 100)
},
showPopup(key){
this.$util.throttle(()=>{
this.$refs[key].open();
}, 200)
},
hidePopup(key){
this.$refs[key].close();
},
stopPrevent(){},
},
}