|
|
|
/**
|
|
|
|
* 等待token执行api
|
|
|
|
* 没有token 就延时执行自己 直到有了token在请求
|
|
|
|
* @param {function} requestFn 执行请求的函数
|
|
|
|
*/
|
|
|
|
export const waitTokenRequest = requestFn => {
|
|
|
|
if (!requestFn || typeof requestFn !== 'function') throw new Error(`requestFn must be a function`);
|
|
|
|
if (uni.$t.storage.getStorageSync(uni.$t.app.tokenKey)) {
|
|
|
|
requestFn();
|
|
|
|
} else {
|
|
|
|
setTimeout(() => waitTokenRequest(requestFn), 10);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export default {
|
|
|
|
/**
|
|
|
|
* 获取项目列表
|
|
|
|
* @param {number} startTime 起始时间
|
|
|
|
* @param {number} endTime 截止时间
|
|
|
|
*/
|
|
|
|
getProjects(startTime, endTime, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getProjectsByDay(startTime, endTime)
|
|
|
|
.then(data => {
|
|
|
|
// console.log('cache data: ', data);
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getProjects(startTime, endTime)
|
|
|
|
.then(data => {
|
|
|
|
// console.log('api data: ', data);
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putProjects(data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查询小红点
|
|
|
|
* @param { string } endTime 结束时间
|
|
|
|
* @param { string } startTime 开始时间
|
|
|
|
*/
|
|
|
|
findRedPoint(startTime, endTime, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getDotListByDay(startTime, endTime)
|
|
|
|
.then(data => {
|
|
|
|
// console.log('cache data: ', data);
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.findRedPoint(startTime, endTime)
|
|
|
|
.then(data => {
|
|
|
|
// console.log('api data: ', data);
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putDotList(data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
};
|