perf: 同步数据逻辑调整
This commit is contained in:
@ -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">
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user