|
|
|
/**
|
|
|
|
* 等待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 => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getProjects(startTime, endTime)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putProjects(data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 通过项目id获取角色信息
|
|
|
|
* @param {object} params 提交的参数
|
|
|
|
*/
|
|
|
|
findShowRole(params, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getShowRole(params.projectId)
|
|
|
|
.then(data => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.findShowRole(params)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putShowRole(params.projectId, data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 根据时间基准点和角色查找定期任务
|
|
|
|
* @param {object} params 提交的参数
|
|
|
|
*/
|
|
|
|
getRegularTask(params, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getStorageRegularTask(params)
|
|
|
|
.then(data => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getRegularTask(params)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putStorageRegularTask(params, data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 根据角色查找永久的日常任务
|
|
|
|
* @param {object} params 提交的参数
|
|
|
|
*/
|
|
|
|
getPermanent(params, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getStoragePermanent(params)
|
|
|
|
.then(data => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getPermanent(params)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putStoragePermanent(params, data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 根据时间和角色查找日常任务
|
|
|
|
* @param {object} params 提交的参数
|
|
|
|
*/
|
|
|
|
getGlobal(params, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getDailyTask(params)
|
|
|
|
.then(data => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getGlobal(params)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putDailyTask(params, data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取插件信息
|
|
|
|
* @param {object} params 提交的参数
|
|
|
|
*/
|
|
|
|
getOtherPlugin(params, fn) {
|
|
|
|
let remote = false;
|
|
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
|
|
uni.$t.cache
|
|
|
|
.getPlugin(params.pluginId)
|
|
|
|
.then(data => {
|
|
|
|
!remote && fn(null, data);
|
|
|
|
})
|
|
|
|
.catch(err => !remote && fn(err));
|
|
|
|
|
|
|
|
waitTokenRequest(() => {
|
|
|
|
// 拿到api数据后 再用api的数据
|
|
|
|
uni.$u.api
|
|
|
|
.getOtherPlugin(params)
|
|
|
|
.then(data => {
|
|
|
|
remote = true;
|
|
|
|
fn(null, data);
|
|
|
|
// 存api到cache里
|
|
|
|
uni.$t.cache.putPlugin(params.pluginId, data);
|
|
|
|
})
|
|
|
|
.catch(err => fn(err));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
};
|