forked from ccsens_fe/tall-mui-3
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.
165 lines
4.4 KiB
165 lines
4.4 KiB
import store from '@/store/index';
|
|
|
|
/**
|
|
* 等待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 {
|
|
/**
|
|
* 通过项目id获取角色信息
|
|
* @param {object} params 提交的参数
|
|
*/
|
|
findShowRole(params, fn) {
|
|
let remote = false;
|
|
if (store.getters.useStorage) {
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
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;
|
|
if (store.getters.useStorage) {
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
uni.$t.cache
|
|
.getStorageRegularTask(params)
|
|
.then(data => {
|
|
console.log('cache data: ', data);
|
|
!remote && fn(null, data);
|
|
})
|
|
.catch(err => !remote && fn(err));
|
|
}
|
|
waitTokenRequest(() => {
|
|
// 拿到api数据后 再用api的数据
|
|
uni.$u.api
|
|
.getRegularTask(params)
|
|
.then(data => {
|
|
console.log('api data: ', uni.$u.deepClone(data));
|
|
remote = true;
|
|
|
|
fn(null, uni.$u.deepClone(data));
|
|
// 存api到cache里
|
|
uni.$t.cache.putStorageRegularTask(params, data);
|
|
})
|
|
.catch(err => fn(err));
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 根据角色查找永久的日常任务
|
|
* @param {object} params 提交的参数
|
|
*/
|
|
getPermanent(params, fn) {
|
|
let remote = false;
|
|
if (store.getters.useStorage) {
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
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;
|
|
if (store.getters.useStorage) {
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
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;
|
|
if (store.getters.useStorage) {
|
|
// 有缓存 且 服务端数据未返回 就先返回缓存
|
|
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));
|
|
});
|
|
},
|
|
};
|
|
|