jiuyiUniapp/jiuyi/components/public/apiMixins.js

78 lines
2.7 KiB
JavaScript
Raw Normal View History

2024-12-18 15:46:27 +08:00
import { api } from '@/api/shop';
import { useStore } from 'vuex'
export default {
data() {
const { userinfo } = useStore().state
let uid = userinfo ? {
userId: userinfo.userId
} : {}
return {
userId: uid,
listProperty: {
params: {
// 条数
pageSize: 10,
// 页码
pageNum: 1,
navigation: 1
},
list: [],
// 总数
total: undefined,
status: 'more'
}
};
},
methods: {
// 获取数据 name请求方法名 params额外参数 isInitialLoad是否初始化加载
async getData(name, params, isInitialLoad = false) {
// 显示加载框
uni.showLoading({
title: '加载中'
});
if (this.listProperty.total === this.listProperty.list.length) {
uni.hideLoading();
uni.stopPullDownRefresh();
return uni.showToast({
title: '没有更多数据',
icon: 'none'
});
}
console.log('=== params额外参数=========================');
console.log({
...this.listProperty.params,
...params,
...this.userId
});
console.log('=name====================');
console.log(name);
try {
const res = await api[name.api][name.fn]({
...this.listProperty.params,
...params,
...this.userId
});
console.log('=== async getData=============');
console.log(res);
console.log('====================================');
if (res.data) {
const { rows, total } = res
this.listProperty.list = isInitialLoad ? rows : this.listProperty.list.concat(rows);
this.listProperty.total = total;
this.listProperty.status = this.listProperty.total === this.listProperty.list.length ? 'noMore' : 'more';
}
if (res.rows) {
const { data, total } = res
this.listProperty.list = data
this.listProperty.total = total;
}
} catch (error) {
console.log(error);
} finally {
uni.hideLoading();
uni.stopPullDownRefresh();
}
}
}
};