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.
62 lines
1.6 KiB
62 lines
1.6 KiB
export const filter = {
|
|
/**
|
|
* 过滤获取到的数据 根据开始截止时间
|
|
* @param {object} data 缓存拿到的数据
|
|
* @param {number} start ms
|
|
* @param {number} end ms
|
|
* @returns
|
|
*/
|
|
projects(data, start, end) {
|
|
if (!data || !data.length) return [];
|
|
return data.filter(item => start <= +item.endTime && end >= +item.startTime);
|
|
},
|
|
};
|
|
|
|
export default {
|
|
/**
|
|
* 项目列表某天的 获取
|
|
* @param {number} startTime
|
|
* @param {number} endTime
|
|
* @returns
|
|
*/
|
|
async getProjectsByDay(startTime, endTime) {
|
|
try {
|
|
const data = await uni.$t.storage.getStorage('projects');
|
|
return filter.projects(JSON.parse(data), startTime, endTime);
|
|
} catch (error) {
|
|
return [];
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 项目列表 存
|
|
* @param {array} data
|
|
*/
|
|
putProjects(data) {
|
|
try {
|
|
if (!data || !data.length) return; // 服务端没数据不做操作
|
|
let value = uni.$t.storage.getStorageSync('projects');
|
|
let locals = value ? JSON.parse(value) : [];
|
|
if (!locals || !locals.length) {
|
|
// 本地没数据
|
|
locals = data || [];
|
|
} else {
|
|
// 本地有数据
|
|
data.forEach(item => {
|
|
let localData = locals.find(local => item.id === local.id);
|
|
if (localData) {
|
|
// 有相同数据 就用新的data里的数据
|
|
localData = item;
|
|
} else {
|
|
// 没有就直接存本地
|
|
locals.push(item);
|
|
}
|
|
});
|
|
}
|
|
uni.$t.storage.setStorage('projects', locals);
|
|
} catch (error) {
|
|
console.error('error: ', error);
|
|
uni.$t.storage.setStorage('projects', []);
|
|
}
|
|
},
|
|
};
|
|
|