perf: 同步数据逻辑调整

This commit is contained in:
rd
2025-07-23 14:46:37 +08:00
parent 4d63f623cc
commit de4c709815
2 changed files with 15 additions and 6 deletions

View File

@ -95,7 +95,7 @@
</a-dropdown> </a-dropdown>
</div> </div>
</div> </div>
<div v-if="item.status === 2" class="mask"> <div v-if="isSyncFailed(item)" class="mask">
<div class="flex items-center mb-16px box"> <div class="flex items-center mb-16px box">
<img :src="icon3" width="16" height="16" class="mr-8px" /> <img :src="icon3" width="16" height="16" class="mr-8px" />
<span class="name !mb-0">更新数据失败</span> <span class="name !mb-0">更新数据失败</span>
@ -148,7 +148,7 @@ const props = defineProps({
}, },
}); });
const emits = defineEmits(['openEdit', 'update', 'selectionChange', 'delete']); const emits = defineEmits(['openEdit', 'update', 'selectionChange', 'delete', 'updateSyncStatus']);
const router = useRouter(); const router = useRouter();
@ -174,9 +174,6 @@ const isSyncing = (item) => {
if (!props.syncMediaAccounts.length) return false; if (!props.syncMediaAccounts.length) return false;
const target = props.syncMediaAccounts.find((v) => v.id === item.id); const target = props.syncMediaAccounts.find((v) => v.id === item.id);
if(target) {
return target?.status === 0;
}
return target?.status === 0; return target?.status === 0;
}; };
@ -268,7 +265,7 @@ const goDetail = (item) => {
const onDeleteSyncStatus = async (item) => { const onDeleteSyncStatus = async (item) => {
await deleteSyncStatus(item.id); await deleteSyncStatus(item.id);
item.status = 1; emits('updateSyncStatus', item);
}; };
const formatTime = (time) => { const formatTime = (time) => {
return exactFormatTime(time, 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm:ss'); return exactFormatTime(time, 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm:ss');
@ -282,6 +279,10 @@ const getLastSyncedAt = (item) => {
} }
return formatTime(item.last_synced_at); return formatTime(item.last_synced_at);
}; };
const isSyncFailed = (item) => {
const target = props.syncMediaAccounts.find((v) => v.id === item.id);
return target?.status === 2;
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -87,6 +87,7 @@
@delete="handleDelete" @delete="handleDelete"
@openEdit="handleOpenEdit" @openEdit="handleOpenEdit"
@update="getData" @update="getData"
@updateSyncStatus="handleUpdateSyncStatus"
/> />
<NoData v-else /> <NoData v-else />
@ -297,6 +298,13 @@ const getAsyncStatus = async () => {
} }
} }
}; };
const handleUpdateSyncStatus = (item) => {
const target = syncMediaAccounts.value.find((v) => v.id === item.id);
// 点击取消,设置状态为成功
if (target) {
target.status = 1;
}
};
const startSyncDataPolling = () => { const startSyncDataPolling = () => {
isLoadingTaskStatus.value = true; isLoadingTaskStatus.value = true;