feat: 批量更新任务结束后update更新时间
This commit is contained in:
@ -28,9 +28,7 @@
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<span class="label">数据更新时间</span>
|
||||
<span class="cts num">{{
|
||||
exactFormatTime(item.last_synced_at, 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm:ss')
|
||||
}}</span>
|
||||
<span class="cts num">{{ getLastSyncedAt(item) }}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<span class="label">平台</span>
|
||||
@ -144,6 +142,10 @@ const props = defineProps({
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
isLoadingTaskStatus: {
|
||||
type: Boolean,
|
||||
default: () => false,
|
||||
},
|
||||
});
|
||||
|
||||
const emits = defineEmits(['openEdit', 'update', 'selectionChange', 'delete']);
|
||||
@ -172,6 +174,9 @@ const isSyncing = (item) => {
|
||||
if (!props.syncMediaAccounts.length) return false;
|
||||
|
||||
const target = props.syncMediaAccounts.find((v) => v.id === item.id);
|
||||
if(target) {
|
||||
return target?.status === 0;
|
||||
}
|
||||
return target?.status === 0;
|
||||
};
|
||||
|
||||
@ -265,6 +270,18 @@ const onDeleteSyncStatus = async (item) => {
|
||||
await deleteSyncStatus(item.id);
|
||||
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>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@ -80,6 +80,7 @@
|
||||
<AccountTable
|
||||
v-if="dataSource.length > 0"
|
||||
:syncMediaAccounts="syncMediaAccounts"
|
||||
:isLoadingTaskStatus="isLoadingTaskStatus"
|
||||
:dataSource="dataSource"
|
||||
:selectedItems="selectedItems"
|
||||
@selectionChange="handleSelectionChange"
|
||||
@ -161,7 +162,7 @@ const dataSource = ref([]);
|
||||
const selectedItems = ref([]);
|
||||
const healthData = ref({});
|
||||
const syncMediaAccounts = ref([]);
|
||||
const startSyncData = ref(false);
|
||||
const isLoadingTaskStatus = ref(false); // 正在查询状态中
|
||||
|
||||
const isAbNormalStatus = computed(() => healthData.value?.total_abnormal_number > 0);
|
||||
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);
|
||||
if (isEnd) {
|
||||
clearSyncDataTimer();
|
||||
startSyncData.value = false;
|
||||
isLoadingTaskStatus.value = false;
|
||||
getData();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const startSyncDataPolling = () => {
|
||||
startSyncData.value = true;
|
||||
isLoadingTaskStatus.value = true;
|
||||
clearSyncDataTimer();
|
||||
|
||||
getAsyncStatus();
|
||||
@ -305,7 +306,7 @@ const startSyncDataPolling = () => {
|
||||
const handleSyncData = async (item) => {
|
||||
const { code } = await postSyncMediaAccountData(item.id);
|
||||
if (code === 200) {
|
||||
if (!startSyncData.value) {
|
||||
if (!isLoadingTaskStatus.value) {
|
||||
startSyncDataPolling();
|
||||
}
|
||||
}
|
||||
@ -322,7 +323,7 @@ const handleBatchSyncData = async () => {
|
||||
const ids = selectedItems.value.map((item) => item.id);
|
||||
const { code } = await postBatchSyncMediaAccountData({ ids });
|
||||
if (code === 200) {
|
||||
if (!startSyncData.value) {
|
||||
if (!isLoadingTaskStatus.value) {
|
||||
startSyncDataPolling();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user