mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-15 21:32:49 +00:00
perf: 优化数据排序
This commit is contained in:
parent
f2ec6ad05e
commit
edd5cd1ca1
@ -512,12 +512,12 @@ export default {
|
|||||||
return this.showDialog || dialog.type === 'user'
|
return this.showDialog || dialog.type === 'user'
|
||||||
}).sort((a, b) => {
|
}).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
if (a.todo_num > 0 || b.todo_num > 0) {
|
if (a.todo_num > 0 || b.todo_num > 0) {
|
||||||
return b.todo_num - a.todo_num;
|
return $A.sortFloat(b.todo_num, a.todo_num);
|
||||||
}
|
}
|
||||||
return $A.dayjs(b.last_at) - $A.dayjs(a.last_at);
|
return $A.sortDay(b.last_at, a.last_at);
|
||||||
}).map(({id, name, pinyin, email, type, group_type, avatar, dialog_user}) => {
|
}).map(({id, name, pinyin, email, type, group_type, avatar, dialog_user}) => {
|
||||||
return {
|
return {
|
||||||
name,
|
name,
|
||||||
|
|||||||
29
resources/assets/js/functions/common.js
vendored
29
resources/assets/js/functions/common.js
vendored
@ -2178,5 +2178,34 @@ const timezone = require("dayjs/plugin/timezone");
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =============================================================================
|
||||||
|
* *********************************** time ********************************
|
||||||
|
* =============================================================================
|
||||||
|
*/
|
||||||
|
$.extend({
|
||||||
|
/**
|
||||||
|
* 计算排序值 (日期格式)
|
||||||
|
* @param v1
|
||||||
|
* @param v2
|
||||||
|
* @returns {number}
|
||||||
|
*/
|
||||||
|
sortDay(v1, v2) {
|
||||||
|
if (v1 === v2) return 0;
|
||||||
|
return ($A.dayjs(v1).valueOf() || 0) - ($A.dayjs(v2).valueOf() || 0);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算排序值 (数字格式)
|
||||||
|
* @param v1
|
||||||
|
* @param v2
|
||||||
|
* @returns {number}
|
||||||
|
*/
|
||||||
|
sortFloat(v1, v2) {
|
||||||
|
if (v1 === v2) return 0;
|
||||||
|
return (parseFloat(v1) || 0) - (parseFloat(v2) || 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
window.$A = $;
|
window.$A = $;
|
||||||
})(window, window.$ = window.jQuery = require('jquery'));
|
})(window, window.$ = window.jQuery = require('jquery'));
|
||||||
|
|||||||
@ -667,7 +667,7 @@ export default {
|
|||||||
const {projectKeyValue, cacheProjects} = this;
|
const {projectKeyValue, cacheProjects} = this;
|
||||||
const data = $A.cloneJSON(cacheProjects).sort((a, b) => {
|
const data = $A.cloneJSON(cacheProjects).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
return b.id - a.id;
|
return b.id - a.id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -138,7 +138,7 @@ export default {
|
|||||||
const baseUrl = $A.mainUrl("images/emoticon")
|
const baseUrl = $A.mainUrl("images/emoticon")
|
||||||
if ($A.isArray(window.emojiData)) {
|
if ($A.isArray(window.emojiData)) {
|
||||||
this.emojiData = window.emojiData.sort(function (a, b) {
|
this.emojiData = window.emojiData.sort(function (a, b) {
|
||||||
return a.emoji_order - b.emoji_order;
|
return $A.sortFloat(a.emoji_order, b.emoji_order);
|
||||||
}).map(item => {
|
}).map(item => {
|
||||||
return {
|
return {
|
||||||
type: 'emoji',
|
type: 'emoji',
|
||||||
|
|||||||
@ -1722,7 +1722,7 @@ export default {
|
|||||||
let allTask = this.$store.getters.transforTasks(combinedTasks);
|
let allTask = this.$store.getters.transforTasks(combinedTasks);
|
||||||
if (allTask.length > 0) {
|
if (allTask.length > 0) {
|
||||||
allTask = allTask.sort((a, b) => {
|
allTask = allTask.sort((a, b) => {
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
}).splice(0, 100)
|
}).splice(0, 100)
|
||||||
this.taskList.push({
|
this.taskList.push({
|
||||||
label: [{id: 0, value: this.$L('我的待完成任务'), disabled: true}],
|
label: [{id: 0, value: this.$L('我的待完成任务'), disabled: true}],
|
||||||
@ -1738,7 +1738,7 @@ export default {
|
|||||||
let assistTask = this.$store.getters.assistTask;
|
let assistTask = this.$store.getters.assistTask;
|
||||||
if (assistTask.length > 0) {
|
if (assistTask.length > 0) {
|
||||||
assistTask = assistTask.sort((a, b) => {
|
assistTask = assistTask.sort((a, b) => {
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
}).splice(0, 100)
|
}).splice(0, 100)
|
||||||
this.taskList.push({
|
this.taskList.push({
|
||||||
label: [{id: 0, value: this.$L('我协助的任务'), disabled: true}],
|
label: [{id: 0, value: this.$L('我协助的任务'), disabled: true}],
|
||||||
@ -1764,7 +1764,7 @@ export default {
|
|||||||
&& task.parent_id === 0
|
&& task.parent_id === 0
|
||||||
&& !task.archived_at
|
&& !task.archived_at
|
||||||
}).sort((a, b) => {
|
}).sort((a, b) => {
|
||||||
return $A.dayjs(b.complete_at || "2099-12-31 23:59:59") - $A.dayjs(a.complete_at || "2099-12-31 23:59:59")
|
return $A.sortDay(b.complete_at || "2099-12-31 23:59:59", a.complete_at || "2099-12-31 23:59:59")
|
||||||
})
|
})
|
||||||
if (tasks.length > 0) {
|
if (tasks.length > 0) {
|
||||||
taskCallback(tasks)
|
taskCallback(tasks)
|
||||||
|
|||||||
@ -147,7 +147,7 @@ export default {
|
|||||||
if (a.userid === dialogData.owner_id || b.userid === dialogData.owner_id) {
|
if (a.userid === dialogData.owner_id || b.userid === dialogData.owner_id) {
|
||||||
return (a.userid === dialogData.owner_id ? 0 : 1) - (b.userid === dialogData.owner_id ? 0 : 1);
|
return (a.userid === dialogData.owner_id ? 0 : 1) - (b.userid === dialogData.owner_id ? 0 : 1);
|
||||||
}
|
}
|
||||||
return $A.dayjs(a.created_at) - $A.dayjs(b.created_at);
|
return $A.sortDay(a.created_at, b.created_at);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -968,12 +968,12 @@ export default {
|
|||||||
return !(dialog.name === undefined || dialog.dialog_delete === 1);
|
return !(dialog.name === undefined || dialog.dialog_delete === 1);
|
||||||
}).sort((a, b) => {
|
}).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
if (a.todo_num > 0 || b.todo_num > 0) {
|
if (a.todo_num > 0 || b.todo_num > 0) {
|
||||||
return b.todo_num - a.todo_num;
|
return $A.sortFloat(b.todo_num, a.todo_num);
|
||||||
}
|
}
|
||||||
return $A.dayjs(b.last_at) - $A.dayjs(a.last_at);
|
return $A.sortDay(b.last_at, a.last_at);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -96,7 +96,7 @@ export default {
|
|||||||
const {projectKeyValue, cacheProjects} = this;
|
const {projectKeyValue, cacheProjects} = this;
|
||||||
const data = $A.cloneJSON(cacheProjects).sort((a, b) => {
|
const data = $A.cloneJSON(cacheProjects).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
return b.id - a.id;
|
return b.id - a.id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -785,7 +785,7 @@ export default {
|
|||||||
return project_id == projectId
|
return project_id == projectId
|
||||||
}).sort((a, b) => {
|
}).sort((a, b) => {
|
||||||
if (a.sort != b.sort) {
|
if (a.sort != b.sort) {
|
||||||
return a.sort - b.sort;
|
return $A.sortFloat(a.sort, b.sort);
|
||||||
}
|
}
|
||||||
return a.id - b.id;
|
return a.id - b.id;
|
||||||
});
|
});
|
||||||
@ -794,10 +794,10 @@ export default {
|
|||||||
return task.column_id == column.id;
|
return task.column_id == column.id;
|
||||||
})).sort((a, b) => {
|
})).sort((a, b) => {
|
||||||
if (a.complete_at || b.complete_at) {
|
if (a.complete_at || b.complete_at) {
|
||||||
return $A.dayjs(a.complete_at) - $A.dayjs(b.complete_at);
|
return $A.sortDay(a.complete_at, b.complete_at);
|
||||||
}
|
}
|
||||||
if (a.sort != b.sort) {
|
if (a.sort != b.sort) {
|
||||||
return a.sort - b.sort;
|
return $A.sortFloat(a.sort, b.sort);
|
||||||
}
|
}
|
||||||
return a.id - b.id;
|
return a.id - b.id;
|
||||||
});
|
});
|
||||||
@ -820,12 +820,12 @@ export default {
|
|||||||
[a, b] = [b, a];
|
[a, b] = [b, a];
|
||||||
}
|
}
|
||||||
if (sortField == 'level') {
|
if (sortField == 'level') {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
} else if (sortField == 'end_at') {
|
} else if (sortField == 'end_at') {
|
||||||
if (a.end_at == b.end_at) {
|
if (a.end_at == b.end_at) {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
}
|
}
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -845,12 +845,12 @@ export default {
|
|||||||
[a, b] = [b, a];
|
[a, b] = [b, a];
|
||||||
}
|
}
|
||||||
if (sortField == 'level') {
|
if (sortField == 'level') {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
} else if (sortField == 'end_at') {
|
} else if (sortField == 'end_at') {
|
||||||
if (a.end_at == b.end_at) {
|
if (a.end_at == b.end_at) {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
}
|
}
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -876,12 +876,12 @@ export default {
|
|||||||
[a, b] = [b, a];
|
[a, b] = [b, a];
|
||||||
}
|
}
|
||||||
if (sortField == 'level') {
|
if (sortField == 'level') {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
} else if (sortField == 'end_at') {
|
} else if (sortField == 'end_at') {
|
||||||
if (a.end_at == b.end_at) {
|
if (a.end_at == b.end_at) {
|
||||||
return a.p_level - b.p_level;
|
return $A.sortFloat(a.p_level, b.p_level)
|
||||||
}
|
}
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -903,7 +903,7 @@ export default {
|
|||||||
return task.complete_at;
|
return task.complete_at;
|
||||||
});
|
});
|
||||||
return array.sort((a, b) => {
|
return array.sort((a, b) => {
|
||||||
return $A.dayjs(b.complete_at) - $A.dayjs(a.complete_at);
|
return $A.sortDay(b.complete_at, a.complete_at);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -240,7 +240,7 @@ export default {
|
|||||||
return project_id == projectId
|
return project_id == projectId
|
||||||
}).sort((a, b) => {
|
}).sort((a, b) => {
|
||||||
if (a.sort != b.sort) {
|
if (a.sort != b.sort) {
|
||||||
return a.sort - b.sort;
|
return $A.sortFloat(a.sort, b.sort);
|
||||||
}
|
}
|
||||||
return a.id - b.id;
|
return a.id - b.id;
|
||||||
}).map(item => {
|
}).map(item => {
|
||||||
|
|||||||
@ -358,7 +358,7 @@ export default {
|
|||||||
initCascaderData() {
|
initCascaderData() {
|
||||||
const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => {
|
const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
return b.id - a.id;
|
return b.id - a.id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -207,7 +207,7 @@ export default {
|
|||||||
//
|
//
|
||||||
const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => {
|
const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
return b.id - a.id;
|
return b.id - a.id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -166,7 +166,7 @@ export default {
|
|||||||
hidden: hiddenColumns.includes(type),
|
hidden: hiddenColumns.includes(type),
|
||||||
count: dashboardTask[`${type}_count`],
|
count: dashboardTask[`${type}_count`],
|
||||||
list: data.sort((a, b) => {
|
list: data.sort((a, b) => {
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -176,7 +176,7 @@ export default {
|
|||||||
hidden: hiddenColumns.includes('assist'),
|
hidden: hiddenColumns.includes('assist'),
|
||||||
count: assistTask.length,
|
count: assistTask.length,
|
||||||
list: assistTask.sort((a, b) => {
|
list: assistTask.sort((a, b) => {
|
||||||
return $A.dayjs(a.end_at || "2099-12-31 23:59:59") - $A.dayjs(b.end_at || "2099-12-31 23:59:59");
|
return $A.sortDay(a.end_at || "2099-12-31 23:59:59", b.end_at || "2099-12-31 23:59:59");
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
return list;
|
return list;
|
||||||
|
|||||||
@ -731,18 +731,18 @@ export default {
|
|||||||
dialogSort(a, b) {
|
dialogSort(a, b) {
|
||||||
// 根据置顶时间排序
|
// 根据置顶时间排序
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
// 根据未读数排序
|
// 根据未读数排序
|
||||||
if (a.todo_num > 0 || b.todo_num > 0) {
|
if (a.todo_num > 0 || b.todo_num > 0) {
|
||||||
return b.todo_num - a.todo_num;
|
return $A.sortFloat(b.todo_num, a.todo_num);
|
||||||
}
|
}
|
||||||
// 根据草稿排序
|
// 根据草稿排序
|
||||||
if (a.extra_draft_has || b.extra_draft_has) {
|
if (a.extra_draft_has || b.extra_draft_has) {
|
||||||
return b.extra_draft_has - a.extra_draft_has;
|
return $A.sortFloat(b.extra_draft_has, a.extra_draft_has);
|
||||||
}
|
}
|
||||||
// 根据最后会话时间排序
|
// 根据最后会话时间排序
|
||||||
return $A.dayjs(b.last_at) - $A.dayjs(a.last_at);
|
return $A.sortDay(b.last_at, a.last_at);
|
||||||
},
|
},
|
||||||
|
|
||||||
userClass(user) {
|
userClass(user) {
|
||||||
|
|||||||
4
resources/assets/js/store/actions.js
vendored
4
resources/assets/js/store/actions.js
vendored
@ -1324,7 +1324,7 @@ export default {
|
|||||||
if (ids.includes(state.projectId)) {
|
if (ids.includes(state.projectId)) {
|
||||||
const project = $A.cloneJSON(state.cacheProjects).sort((a, b) => {
|
const project = $A.cloneJSON(state.cacheProjects).sort((a, b) => {
|
||||||
if (a.top_at || b.top_at) {
|
if (a.top_at || b.top_at) {
|
||||||
return $A.dayjs(b.top_at) - $A.dayjs(a.top_at);
|
return $A.sortDay(b.top_at, a.top_at);
|
||||||
}
|
}
|
||||||
return b.id - a.id;
|
return b.id - a.id;
|
||||||
}).find(({id}) => id && id != project_id);
|
}).find(({id}) => id && id != project_id);
|
||||||
@ -2809,7 +2809,7 @@ export default {
|
|||||||
return state.cacheDialogs
|
return state.cacheDialogs
|
||||||
.filter(func)
|
.filter(func)
|
||||||
.sort((a, b) => {
|
.sort((a, b) => {
|
||||||
return $A.dayjs(a.last_at) - $A.dayjs(b.last_at);
|
return $A.sortDay(a.last_at, b.last_at);
|
||||||
})
|
})
|
||||||
.find(({id}) => id > 0)
|
.find(({id}) => id > 0)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -527,7 +527,7 @@ class BaiduMapPicker {
|
|||||||
// 按距离排序(如果有距离信息)
|
// 按距离排序(如果有距离信息)
|
||||||
pois.sort((a, b) => {
|
pois.sort((a, b) => {
|
||||||
if (a.distance_current && b.distance_current) {
|
if (a.distance_current && b.distance_current) {
|
||||||
return a.distance_current - b.distance_current;
|
return $A.sortFloat(a.distance_current, b.distance_current);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user