diff --git a/src/settings/designSetting.ts b/src/settings/designSetting.ts index fe10d8ff..7a124806 100644 --- a/src/settings/designSetting.ts +++ b/src/settings/designSetting.ts @@ -48,8 +48,11 @@ export const backgroundImageSize = 5 // 预览展示方式 export const previewScaleType = PreviewScaleEnum.FIT -// 数据请求间隔 +// 数据请求间隔(s) export const requestInterval = 30 +// 工作台自动保存间隔(s) +export const saveInterval = 30 + // 工作区域历史记录存储最大数量 export const editHistoryMax = 100 \ No newline at end of file diff --git a/src/views/chart/ContentEdit/components/EditDataSync/index.vue b/src/views/chart/ContentEdit/components/EditDataSync/index.vue index 34bbb93c..39043d04 100644 --- a/src/views/chart/ContentEdit/components/EditDataSync/index.vue +++ b/src/views/chart/ContentEdit/components/EditDataSync/index.vue @@ -1,10 +1,15 @@ diff --git a/src/views/chart/ContentEdit/index.vue b/src/views/chart/ContentEdit/index.vue index 0147e853..3b80d192 100644 --- a/src/views/chart/ContentEdit/index.vue +++ b/src/views/chart/ContentEdit/index.vue @@ -83,7 +83,7 @@ import { EditTools } from './components/EditTools' const chartEditStore = useChartEditStore() const { handleContextMenu } = useContextMenu() -const { dataSyncFetch } = useSync() +const { dataSyncFetch, intervalDataSyncUpdate } = useSync() // 布局处理 useLayout() @@ -128,6 +128,8 @@ onMounted(() => { useAddKeyboard() // 获取数据 dataSyncFetch() + // 定时更新数据 + intervalDataSyncUpdate() }) diff --git a/src/views/chart/hooks/useSync.hook.ts b/src/views/chart/hooks/useSync.hook.ts index e70b60e2..158fae7c 100644 --- a/src/views/chart/hooks/useSync.hook.ts +++ b/src/views/chart/hooks/useSync.hook.ts @@ -6,6 +6,7 @@ import { EditCanvasTypeEnum, ChartEditStoreEnum } from '@/store/modules/chartEdi import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' import { fetchChartComponent, createComponent } from '@/packages/index' import { CreateComponentType } from '@/packages/index.d' +import { saveInterval } from '@/settings/designSetting' // 接口状态 import { ResultEnum } from '@/enums/httpEnum' // 接口 @@ -71,7 +72,7 @@ export const useSync = () => { chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START) try { const { id } = routerParamsInfo.params - const res: any = await fetchProjectApi({ id: id[0] }) + const res: any = await fetchProjectApi({ projectId: id[0] }) if (res.code === ResultEnum.SUCCESS) { if (res.data) { const data = JSON.parse(res.data) @@ -84,7 +85,6 @@ export const useSync = () => { return } chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) - httpErrorHandle() } catch (error) { chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) httpErrorHandle() @@ -93,10 +93,11 @@ export const useSync = () => { // 数据保存 const dataSyncUpdate = async () => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START) // 获取id const { id } = routerParamsInfo.params - + let params = new FormData() params.append('projectId', id[0]) params.append('content', JSON.stringify(chartEditStore.getStorageInfo || {})) @@ -113,17 +114,23 @@ export const useSync = () => { chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) } - const syncTiming = setInterval(() => { - dataSyncUpdate() - }, 15000) + // 定时处理 + const intervalDataSyncUpdate = () => { + // 定时获取数据 + const syncTiming = setInterval(() => { + dataSyncUpdate() + }, saveInterval * 1000) - onUnmounted(() => { - clearInterval(syncTiming) - }) + // 销毁 + onUnmounted(() => { + clearInterval(syncTiming) + }) + } return { updateComponent, dataSyncFetch, - dataSyncUpdate + dataSyncUpdate, + intervalDataSyncUpdate } } \ No newline at end of file