feat: 批量更新任务结束后update更新时间

This commit is contained in:
rd
2025-07-18 16:11:57 +08:00
parent 3bfad30028
commit 3ed801ddc3
2 changed files with 26 additions and 8 deletions

View File

@ -28,9 +28,7 @@
</div> </div>
<div class="field-row"> <div class="field-row">
<span class="label">数据更新时间</span> <span class="label">数据更新时间</span>
<span class="cts num">{{ <span class="cts num">{{ getLastSyncedAt(item) }}</span>
exactFormatTime(item.last_synced_at, 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm:ss')
}}</span>
</div> </div>
<div class="field-row"> <div class="field-row">
<span class="label">平台</span> <span class="label">平台</span>
@ -144,6 +142,10 @@ const props = defineProps({
type: Array, type: Array,
default: () => [], default: () => [],
}, },
isLoadingTaskStatus: {
type: Boolean,
default: () => false,
},
}); });
const emits = defineEmits(['openEdit', 'update', 'selectionChange', 'delete']); const emits = defineEmits(['openEdit', 'update', 'selectionChange', 'delete']);
@ -172,6 +174,9 @@ 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;
}; };
@ -265,6 +270,18 @@ const onDeleteSyncStatus = async (item) => {
await deleteSyncStatus(item.id); await deleteSyncStatus(item.id);
item.status = 1; item.status = 1;
}; };
const formatTime = (time) => {
return exactFormatTime(time, 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm:ss');
};
const getLastSyncedAt = (item) => {
const target = props.syncMediaAccounts.find((v) => v.id === item.id);
if (props.isLoadingTaskStatus && target) {
if (target?.status !== 0) {
return formatTime(target.last_synced_at);
}
}
return formatTime(item.last_synced_at);
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -80,6 +80,7 @@
<AccountTable <AccountTable
v-if="dataSource.length > 0" v-if="dataSource.length > 0"
:syncMediaAccounts="syncMediaAccounts" :syncMediaAccounts="syncMediaAccounts"
:isLoadingTaskStatus="isLoadingTaskStatus"
:dataSource="dataSource" :dataSource="dataSource"
:selectedItems="selectedItems" :selectedItems="selectedItems"
@selectionChange="handleSelectionChange" @selectionChange="handleSelectionChange"
@ -161,7 +162,7 @@ const dataSource = ref([]);
const selectedItems = ref([]); const selectedItems = ref([]);
const healthData = ref({}); const healthData = ref({});
const syncMediaAccounts = ref([]); const syncMediaAccounts = ref([]);
const startSyncData = ref(false); const isLoadingTaskStatus = ref(false); // 正在查询状态中
const isAbNormalStatus = computed(() => healthData.value?.total_abnormal_number > 0); const isAbNormalStatus = computed(() => healthData.value?.total_abnormal_number > 0);
const isDisabledBatchSyncData = computed(() => selectedItems.value.some((item) => item.status !== EnumStatus.NORMAL)); const isDisabledBatchSyncData = computed(() => selectedItems.value.some((item) => item.status !== EnumStatus.NORMAL));
@ -288,14 +289,14 @@ const getAsyncStatus = async () => {
const isEnd = data.every((item) => item.status !== 0); const isEnd = data.every((item) => item.status !== 0);
if (isEnd) { if (isEnd) {
clearSyncDataTimer(); clearSyncDataTimer();
startSyncData.value = false; isLoadingTaskStatus.value = false;
getData(); getData();
} }
} }
}; };
const startSyncDataPolling = () => { const startSyncDataPolling = () => {
startSyncData.value = true; isLoadingTaskStatus.value = true;
clearSyncDataTimer(); clearSyncDataTimer();
getAsyncStatus(); getAsyncStatus();
@ -305,7 +306,7 @@ const startSyncDataPolling = () => {
const handleSyncData = async (item) => { const handleSyncData = async (item) => {
const { code } = await postSyncMediaAccountData(item.id); const { code } = await postSyncMediaAccountData(item.id);
if (code === 200) { if (code === 200) {
if (!startSyncData.value) { if (!isLoadingTaskStatus.value) {
startSyncDataPolling(); startSyncDataPolling();
} }
} }
@ -322,7 +323,7 @@ const handleBatchSyncData = async () => {
const ids = selectedItems.value.map((item) => item.id); const ids = selectedItems.value.map((item) => item.id);
const { code } = await postBatchSyncMediaAccountData({ ids }); const { code } = await postBatchSyncMediaAccountData({ ids });
if (code === 200) { if (code === 200) {
if (!startSyncData.value) { if (!isLoadingTaskStatus.value) {
startSyncDataPolling(); startSyncDataPolling();
} }
} }