|
|
@@ -15,12 +15,13 @@ import {onMounted, onUnmounted} from 'vue'
|
|
|
import {useFabricStore, useMainStore, useTemplatesStore, useUserStore} from '@/store'
|
|
|
import {useRouter} from 'vue-router'
|
|
|
import {unzip} from "@/utils/crypto"
|
|
|
-import {getDesignTemplateEdit, getPreViewTemplate, getTemplateData} from '@/api/template'
|
|
|
+import {getDesignTemplateEdit, getPreViewTemplate, getTemplateData, tmpSaveUserDesign, updateDesignTemplate} from '@/api/template'
|
|
|
import {contextMenus} from '@/configs/contextMenu'
|
|
|
import {initEditor} from '@/views/Canvas/useCanvas'
|
|
|
import {initPixi} from '@/views/Canvas/usePixi'
|
|
|
import {ElMessage, ElLoading} from 'element-plus'
|
|
|
import useCanvasHotkey from '@/hooks/useCanvasHotkey'
|
|
|
+import useCanvasExport from "@/hooks/useCanvasExport";
|
|
|
|
|
|
const fabricStore = useFabricStore()
|
|
|
const mainStore = useMainStore()
|
|
|
@@ -29,6 +30,8 @@ const templatesStore = useTemplatesStore()
|
|
|
const userStore = useUserStore()
|
|
|
const {uuid} = storeToRefs(userStore);
|
|
|
const {wrapperRef, canvasRef} = storeToRefs(fabricStore)
|
|
|
+const {getJSONData} = useCanvasExport()
|
|
|
+let outerSessionId = ""
|
|
|
|
|
|
const {drawAreaFocus} = storeToRefs(mainStore)
|
|
|
const {keydownListener, keyupListener, pasteListener} = useCanvasHotkey()
|
|
|
@@ -138,11 +141,27 @@ const initRouter = async (templateId: number, runMode: number, outerSessionId: a
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//递归调用的目的是不会导致任务堆积,虽然也没什么可能存一下超过5秒
|
|
|
+const tmpSaveCurrentTemplate = () => {
|
|
|
+ const tmpTemplate = {
|
|
|
+ templateName: outerSessionId,
|
|
|
+ jsonContent: getJSONData()
|
|
|
+ }
|
|
|
+
|
|
|
+ tmpSaveUserDesign(JSON.stringify(tmpTemplate)).then((res) => {
|
|
|
+ if (res.httpCode == 200) {
|
|
|
+ // ElMessage.success('暂存成功')
|
|
|
+ setTimeout(tmpSaveCurrentTemplate, 5000);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
const query = router.currentRoute.value.query
|
|
|
initRouter(query.template, query.runMode, query.sessionId)
|
|
|
initEditor(query.template)
|
|
|
initPixi()
|
|
|
+ outerSessionId = query.sessionId
|
|
|
document.addEventListener('keydown', keydownListener)
|
|
|
document.addEventListener('keyup', keyupListener)
|
|
|
window.addEventListener('blur', keyupListener)
|
|
|
@@ -173,6 +192,9 @@ onMounted(async () => {
|
|
|
getPreviewTemplateDetail(query.template, message.data, uuid.value)
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ //每隔5秒暂存一次用户的设计
|
|
|
+ setTimeout(tmpSaveCurrentTemplate, 5000);
|
|
|
}
|
|
|
})
|
|
|
|