Browse Source

feat: 根据id查找插件配置信息

test2
xuesinan 4 years ago
parent
commit
bee8705e5e
  1. 3
      CHANGELOG.md
  2. 3
      apis/plugin.js
  3. 19
      components/Render/Render.vue
  4. 144
      hooks/project/useGetTasks111.js
  5. 28
      utils/cacheAndRequest.js

3
CHANGELOG.md

@ -1,4 +1,4 @@
# 1.0.0 (2022-03-11) # 1.0.0 (2022-03-15)
### 🌟 新功能 ### 🌟 新功能
范围|描述|commitId 范围|描述|commitId
@ -106,6 +106,7 @@
范围|描述|commitId 范围|描述|commitId
--|--|-- --|--|--
- | 插件接口修改 | [53c6b90](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/53c6b90) - | 插件接口修改 | [53c6b90](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/53c6b90)
- | 插件id重复的显示问题 | [9010839](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/9010839)
- | 查询插件 | [542d714](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/542d714) - | 查询插件 | [542d714](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/542d714)
- | 查询查件详情 | [5935a3d](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/5935a3d) - | 查询查件详情 | [5935a3d](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/5935a3d)
- | 登录页验证码获取 | [108e322](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/108e322) - | 登录页验证码获取 | [108e322](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/108e322)

3
apis/plugin.js

@ -14,6 +14,9 @@ export function setupPlugin(app) {
// uni.$u.post(`${apiUrl}/pluginshop/plugin/query?pluginId=${param.pluginId}&styleType=${param.styleType}`); // uni.$u.post(`${apiUrl}/pluginshop/plugin/query?pluginId=${param.pluginId}&styleType=${param.styleType}`);
uni.$u.api.getOtherPlugin = param => uni.$u.post(`${apiUrl}/opt/business/businessPluginById`, param); uni.$u.api.getOtherPlugin = param => uni.$u.post(`${apiUrl}/opt/business/businessPluginById`, param);
// 根据插件id获取服务config
uni.$u.api.getConfigInfo = param => uni.$u.post(`${apiUrl}/ptostall/business/byBusinessPluginId`, param);
// 查询子任务 // 查询子任务
uni.$u.api.findSonTask = param => uni.$u.post(`${domain.value}/task/findSonTask`, param); uni.$u.api.findSonTask = param => uni.$u.post(`${domain.value}/task/findSonTask`, param);
// 查询子项目 // 查询子项目

19
components/Render/Render.vue

@ -101,15 +101,16 @@ export default {
}); });
} else { } else {
// API // API
// const params = { businessPluginId: this.businessPluginId }; const params = { id: this.businessPluginId };
// uni.$catchReq.getOtherPlugin(params, (err, res) => { uni.$catchReq.getConfigInfo(params, (err, res) => {
// if (err) { if (err) {
// console.error('err: ', err); console.error('err: ', err);
// this.pluginInfo = null; } else {
// } else { if (this.pluginInfo && res.config) {
// this.pluginInfo = res || null; this.pluginInfo.config = res.config;
// } }
// }); }
});
} }
}, },
}, },

144
hooks/project/useGetTasks111.js

@ -30,7 +30,7 @@ export default function useGetTasks() {
// 初始化 定期任务 // 初始化 定期任务
async function initPlanTasks() { async function initPlanTasks() {
if (timeLineType.value === 1) setNextPlaceholderTasks({}); // if (timeLineType.value === 1) setNextPlaceholderTasks({});
console.log('查询定期任务11111111111111111'); console.log('查询定期任务11111111111111111');
await getTasks({}); // 获取初始数据 await getTasks({}); // 获取初始数据
// await dataRender({}); // await dataRender({});
@ -90,9 +90,9 @@ export default function useGetTasks() {
params.queryType === 0 ? store.commit('task/setUpNextPage', arr[index].upNextPage) : store.commit('task/setDownNextPage', arr[index].downNextPage); // 下一页 params.queryType === 0 ? store.commit('task/setUpNextPage', arr[index].upNextPage) : store.commit('task/setDownNextPage', arr[index].downNextPage); // 下一页
// 如果第一次渲染但没有空数据则加载空数据 // 如果第一次渲染但没有空数据则加载空数据
if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) { // if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) {
setNextPlaceholderTasks(params); // setNextPlaceholderTasks(params);
} // }
// 数据处理 // 数据处理
dataRender(params); dataRender(params);
@ -177,67 +177,73 @@ export default function useGetTasks() {
* 3-2-2-1查找下一页数据并重复上述步骤 * 3-2-2-1查找下一页数据并重复上述步骤
*/ */
let showTasks = currRoleShowTasks.value; // 显示的数据 let showTasks = currRoleShowTasks.value; // 显示的数据
let firstTime = showTasks.length > 0 ? showTasks[0].planStart : new Date().getTime(); // 显示的数据第一个数据的时间
let lastTime = showTasks.length > 0 ? showTasks[showTasks.length - 1].planStart : new Date().getTime(); // 显示的数据最后一个数据的时间
const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值 const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值
if (centerData.length) { if (centerData.length) {
let centerDataTime = '', // 中间数据的时间 let addNum = 0;
scaleTime = '', // 空时间节点的开始时间 centerData.forEach(v => {
centerTime = '', // 中间数据+/-15后的数据 let showFirstTime = showTasks.length > 0 ? showTasks[0].planStart : new Date().getTime(); // 显示的数据第一个数据的时间
isExceed = false; // 时间跨度是否大于15 let showLastTime = new Date().getTime(); // 显示的数据最后一个数据的时间
if (params.queryType) {
centerDataTime = centerData[centerData.length - 1].planStart;
scaleTime = currDownTimeNode.value;
centerTime = dayjs(+centerDataTime).subtract(params.pageSize, timeGranularity.value);
isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isAfter(+scaleTime, timeGranularity.value)
} else {
centerDataTime = centerData[0].planStart;
scaleTime = currUpTimeNode.value;
centerTime = dayjs(+centerDataTime).add(params.pageSize, timeGranularity.value);
isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isBefore(+scaleTime, timeGranularity.value)
}
const firstDetailIndex = showTasks.findIndex(task => task.detailId); // 显示任务中存在真实任务 if (showTasks.length) {
const firstId = firstDetailIndex > -1 ? showTasks[firstDetailIndex].id : ''; showLastTime = dayjs(+showTasks[showTasks.length - 1].planStart).add(1, timeGranularity.value);
let lastDetailIndex = -1;
showTasks.forEach((item, index) => {
if (item.detailId) {
lastDetailIndex = index;
} }
})
const lastId = lastDetailIndex > -1 ? showTasks[lastDetailIndex].id : ''; let dayNum = 0; // 两个日期中间相差的天数
let centerTime = '', // 中间数据+/-15后的数据
showTasks.forEach((task, index) => { isExceed = false; // 时间跨度是否大于15
const arr = centerData.filter(item => dayjs(+item.planStart).isSame(+task.planStart, timeGranularity.value));
if (arr.length) { if (params.queryType) {
if (params.queryType === 1 && task.id === lastId) { dayNum = dayjs(+v.planStart).diff(+showLastTime, timeGranularity.value, true);
showTasks.splice(index + 1, 0, [...arr]) // if (!showTasks.length) dayNum++;
} else if (params.queryType === 0 && task.id === firstId) { centerTime = dayjs(+v.planStart).subtract(params.pageSize, timeGranularity.value);
showTasks.splice(index, 0, [...arr]) isExceed = dayjs(+centerTime).isAfter(+showLastTime, timeGranularity.value)
} else { } else {
showTasks.splice(index, 1, [...arr]) dayNum = dayjs(+v.planStart).diff(+showFirstTime, timeGranularity.value);
} centerTime = dayjs(+v.planStart).add(params.pageSize, timeGranularity.value);
isExceed = dayjs(+centerTime).isBefore(+showFirstTime, timeGranularity.value)
}
dayNum = dayjs(+'1647513785000').get('month');
console.log(dayNum, v.planStart, showLastTime);
if (!isExceed) {
addNum++;
let time = params.queryType === 0 ? showFirstTime : showLastTime;
const newTasks = uni.$task.setPlaceholderTasks(+time, !params.queryType, timeGranularity.value, dayNum);
params.queryType === 0 ? showTasks.splice(0, 0, newTasks) : showTasks.splice(showTasks.length, 0, newTasks);
params.queryType === 0 ? showTasks.splice(0, 0, v) : showTasks.splice(showTasks.length, 0, v);
// showTasks = flatten(showTasks); // 1维拍平
console.log('isExceed', showTasks, v)
} }
}) })
showTasks = flatten(showTasks); // 1维拍平 showTasks = flatten(showTasks); // 1维拍平
if (!isExceed) { if (!addNum) {
if (centerData.length >= params.pageSize) { params.queryType === 0 ? setPrevPlaceholderTasks(params) : setNextPlaceholderTasks(params);
let len = -1; } else {
let data = params.queryType === 0 ? centerData[0] : centerData[centerData.length - 1]; if (addNum === centerData.length && centerData.length < params.pageSize && nextPage > 0) {
showTasks.forEach((item, index) => {
if (item.id === data.id) {
len = index;
}
})
if (len > -1) {
showTasks = params.queryType === 0 ? showTasks.slice(len) : showTasks.slice(0, len + 1);
}
} else if (nextPage > 0) {
console.log('数据不为空,时间跨度小于15')
getTasks({pageNum: nextPage, queryType: params.queryType}); getTasks({pageNum: nextPage, queryType: params.queryType});
} }
if (addNum < centerData.length || (addNum === centerData.length && centerData.length < params.pageSize && nextPage === 0)) {
// 补齐刻度
// const obj = { tasks: showTasks, data, timeGranularity: timeGranularity.value };
// showTasks = fillPlaceholderTask(obj);
let num = '';
if (params.queryType === 0) {
num = dayjs(+showTasks[0].planStart).diff(+firstTime, timeGranularity.value);
} else {
num = dayjs(+showTasks[showTasks.length - 1].planStart).diff(+lastTime, timeGranularity.value);
}
console.log('2222222222', firstTime, lastTime, num)
if (addNum < centerData.length) {
console.log('11111111111111111')
renderScaleTask(params);
}
}
} }
} else { } else {
if (nextPage > 0) { if (nextPage > 0) {
@ -284,6 +290,22 @@ export default function useGetTasks() {
params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks);
} }
/**
* 超出旧数据上下限 补齐时间刻度到新数据的起始时间颗粒度
*/
function fillPlaceholderTask(obj) {
const { prev, next } = uni.$task.computeFillPlaceholderTaskCount(obj);
if (prev) {
const newTasks = uni.$task.setPlaceholderTasks(+obj.tasks[0].planStart, true, obj.timeGranularity, prev);
store.commit('task/setUpTasks', newTasks);
}
if (next) {
const newTasks = uni.$task.setPlaceholderTasks(+obj.tasks[obj.tasks.length - 1].planStart, false, obj.timeGranularity, next);
store.commit('task/setDownTasks', newTasks);
}
return tasks.value;
}
// 设置时间轴向上的空数据 // 设置时间轴向上的空数据
function setPrevPlaceholderTasks() { function setPrevPlaceholderTasks() {
store.commit('task/setTopEnd', true); store.commit('task/setTopEnd', true);
@ -308,13 +330,13 @@ export default function useGetTasks() {
startTime = dayjs(+currRoleShowTasks.value[currRoleShowTasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf(); startTime = dayjs(+currRoleShowTasks.value[currRoleShowTasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf();
} }
if (params.taskId) { // if (params.taskId) {
currRoleRealTasks.value.forEach(item => { // currRoleRealTasks.value.forEach(item => {
if (item.id === params.taskId) { // if (item.id === params.taskId) {
startTime = Number(item.planStart); // startTime = Number(item.planStart);
} // }
}) // })
} // }
const initData = uni.$task.setPlaceholderTasks(startTime, false, timeGranularity.value); const initData = uni.$task.setPlaceholderTasks(startTime, false, timeGranularity.value);
store.commit('task/setCurrDownTimeNode', startTime); store.commit('task/setCurrDownTimeNode', startTime);

28
utils/cacheAndRequest.js

@ -243,4 +243,32 @@ export default {
.catch(err => fn(err)); .catch(err => fn(err));
}); });
}, },
/**
* 获取插件服务配置信息
* @param {object} params 提交的参数
*/
getConfigInfo(params, fn) {
// let remote = false;
// 有缓存 且 服务端数据未返回 就先返回缓存
// uni.$cache
// .getPlugin(params.pluginId)
// .then(data => {
// !remote && fn(null, data);
// })
// .catch(err => !remote && fn(err));
waitTokenRequest(() => {
// 拿到api数据后 再用api的数据
uni.$u.api
.getConfigInfo(params)
.then(data => {
// remote = true;
fn(null, data);
// 存api到cache里
// uni.$cache.putPlugin(params.pluginId, data);
})
.catch(err => fn(err));
});
},
}; };

Loading…
Cancel
Save