diff --git a/resources/assets/js/components/UserSelect.vue b/resources/assets/js/components/UserSelect.vue index 0c3595d75..7a28b3692 100755 --- a/resources/assets/js/components/UserSelect.vue +++ b/resources/assets/js/components/UserSelect.vue @@ -512,12 +512,12 @@ export default { return this.showDialog || dialog.type === 'user' }).sort((a, b) => { 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) { - 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}) => { return { name, diff --git a/resources/assets/js/functions/common.js b/resources/assets/js/functions/common.js index b6433f96e..0dfa3f2ec 100755 --- a/resources/assets/js/functions/common.js +++ b/resources/assets/js/functions/common.js @@ -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, window.$ = window.jQuery = require('jquery')); diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 54e6159dd..23bca3581 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -667,7 +667,7 @@ export default { const {projectKeyValue, cacheProjects} = this; const data = $A.cloneJSON(cacheProjects).sort((a, b) => { 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; }); diff --git a/resources/assets/js/pages/manage/components/ChatInput/emoji.vue b/resources/assets/js/pages/manage/components/ChatInput/emoji.vue index 60bbe5bb5..6bb32247f 100644 --- a/resources/assets/js/pages/manage/components/ChatInput/emoji.vue +++ b/resources/assets/js/pages/manage/components/ChatInput/emoji.vue @@ -138,7 +138,7 @@ export default { const baseUrl = $A.mainUrl("images/emoticon") if ($A.isArray(window.emojiData)) { 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 => { return { type: 'emoji', diff --git a/resources/assets/js/pages/manage/components/ChatInput/index.vue b/resources/assets/js/pages/manage/components/ChatInput/index.vue index 3f08aaec2..069436a21 100755 --- a/resources/assets/js/pages/manage/components/ChatInput/index.vue +++ b/resources/assets/js/pages/manage/components/ChatInput/index.vue @@ -1722,7 +1722,7 @@ export default { let allTask = this.$store.getters.transforTasks(combinedTasks); if (allTask.length > 0) { 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) this.taskList.push({ label: [{id: 0, value: this.$L('我的待完成任务'), disabled: true}], @@ -1738,7 +1738,7 @@ export default { let assistTask = this.$store.getters.assistTask; if (assistTask.length > 0) { 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) this.taskList.push({ label: [{id: 0, value: this.$L('我协助的任务'), disabled: true}], @@ -1764,7 +1764,7 @@ export default { && task.parent_id === 0 && !task.archived_at }).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) { taskCallback(tasks) diff --git a/resources/assets/js/pages/manage/components/DialogGroupInfo.vue b/resources/assets/js/pages/manage/components/DialogGroupInfo.vue index d92c37dfc..7164ea7ac 100644 --- a/resources/assets/js/pages/manage/components/DialogGroupInfo.vue +++ b/resources/assets/js/pages/manage/components/DialogGroupInfo.vue @@ -147,7 +147,7 @@ export default { 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.dayjs(a.created_at) - $A.dayjs(b.created_at); + return $A.sortDay(a.created_at, b.created_at); }) }, diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index e41971f4e..e36694707 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -968,12 +968,12 @@ export default { return !(dialog.name === undefined || dialog.dialog_delete === 1); }).sort((a, b) => { 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) { - 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); }); }, diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 55c3c1b3a..94fb908c5 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -96,7 +96,7 @@ export default { const {projectKeyValue, cacheProjects} = this; const data = $A.cloneJSON(cacheProjects).sort((a, b) => { 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; }); diff --git a/resources/assets/js/pages/manage/components/ProjectPanel.vue b/resources/assets/js/pages/manage/components/ProjectPanel.vue index fcb513c98..f155d614f 100644 --- a/resources/assets/js/pages/manage/components/ProjectPanel.vue +++ b/resources/assets/js/pages/manage/components/ProjectPanel.vue @@ -785,7 +785,7 @@ export default { return project_id == projectId }).sort((a, b) => { if (a.sort != b.sort) { - return a.sort - b.sort; + return $A.sortFloat(a.sort, b.sort); } return a.id - b.id; }); @@ -794,10 +794,10 @@ export default { return task.column_id == column.id; })).sort((a, b) => { 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) { - return a.sort - b.sort; + return $A.sortFloat(a.sort, b.sort); } return a.id - b.id; }); @@ -820,12 +820,12 @@ export default { [a, b] = [b, a]; } if (sortField == 'level') { - return a.p_level - b.p_level; + return $A.sortFloat(a.p_level, b.p_level) } else if (sortField == '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]; } if (sortField == 'level') { - return a.p_level - b.p_level; + return $A.sortFloat(a.p_level, b.p_level) } else if (sortField == '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]; } if (sortField == 'level') { - return a.p_level - b.p_level; + return $A.sortFloat(a.p_level, b.p_level) } else if (sortField == '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 array.sort((a, b) => { - return $A.dayjs(b.complete_at) - $A.dayjs(a.complete_at); + return $A.sortDay(b.complete_at, a.complete_at); }); }, diff --git a/resources/assets/js/pages/manage/components/ProjectWorkflow.vue b/resources/assets/js/pages/manage/components/ProjectWorkflow.vue index 61964c767..8e59365e6 100644 --- a/resources/assets/js/pages/manage/components/ProjectWorkflow.vue +++ b/resources/assets/js/pages/manage/components/ProjectWorkflow.vue @@ -240,7 +240,7 @@ export default { return project_id == projectId }).sort((a, b) => { if (a.sort != b.sort) { - return a.sort - b.sort; + return $A.sortFloat(a.sort, b.sort); } return a.id - b.id; }).map(item => { diff --git a/resources/assets/js/pages/manage/components/TaskAdd.vue b/resources/assets/js/pages/manage/components/TaskAdd.vue index 78be26efc..1ab0ebbd2 100644 --- a/resources/assets/js/pages/manage/components/TaskAdd.vue +++ b/resources/assets/js/pages/manage/components/TaskAdd.vue @@ -358,7 +358,7 @@ export default { initCascaderData() { const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => { 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; }); diff --git a/resources/assets/js/pages/manage/components/TaskMove.vue b/resources/assets/js/pages/manage/components/TaskMove.vue index ba4981a44..44d9ad5bb 100644 --- a/resources/assets/js/pages/manage/components/TaskMove.vue +++ b/resources/assets/js/pages/manage/components/TaskMove.vue @@ -207,7 +207,7 @@ export default { // const data = $A.cloneJSON(this.cacheProjects).sort((a, b) => { 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; }); diff --git a/resources/assets/js/pages/manage/dashboard.vue b/resources/assets/js/pages/manage/dashboard.vue index c1fddb3f7..e274fce42 100644 --- a/resources/assets/js/pages/manage/dashboard.vue +++ b/resources/assets/js/pages/manage/dashboard.vue @@ -166,7 +166,7 @@ export default { hidden: hiddenColumns.includes(type), count: dashboardTask[`${type}_count`], 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'), count: assistTask.length, 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; diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue index 1f675aa10..9bec04f7f 100644 --- a/resources/assets/js/pages/manage/messenger.vue +++ b/resources/assets/js/pages/manage/messenger.vue @@ -731,18 +731,18 @@ export default { dialogSort(a, b) { // 根据置顶时间排序 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) { - 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) { - 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) { diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 64cc7cdf7..9453763a1 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -1324,7 +1324,7 @@ export default { if (ids.includes(state.projectId)) { const project = $A.cloneJSON(state.cacheProjects).sort((a, b) => { 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; }).find(({id}) => id && id != project_id); @@ -2809,7 +2809,7 @@ export default { return state.cacheDialogs .filter(func) .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) } diff --git a/resources/assets/statics/public/tools/map/main.js b/resources/assets/statics/public/tools/map/main.js index 4ffbfbd63..b297e110c 100644 --- a/resources/assets/statics/public/tools/map/main.js +++ b/resources/assets/statics/public/tools/map/main.js @@ -527,7 +527,7 @@ class BaiduMapPicker { // 按距离排序(如果有距离信息) pois.sort((a, b) => { 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; });