From 93f1af87a73a6af0bd5b79632d04c1526703376e Mon Sep 17 00:00:00 2001 From: luoliwoshang <2643523683@qq.com> Date: Wed, 28 Feb 2024 11:40:39 +0800 Subject: [PATCH] feat(gui):update the request of get project and modify loading status --- spx-gui/src/api/project.ts | 66 ++++++----- spx-gui/src/router/index.ts | 9 +- spx-gui/src/widgets/spx-runner/SpxRunner.vue | 105 ++++++++++++++++++ .../src/widgets/spx-runner/SpxRunnerDemo.vue | 34 ++++++ spx-gui/src/widgets/spx-runner/index.ts | 2 +- spx-gui/src/widgets/spx-runner/spx-runner.vue | 46 -------- spx-gui/src/widgets/widget.config.ts | 80 ++++++------- 7 files changed, 226 insertions(+), 116 deletions(-) create mode 100644 spx-gui/src/widgets/spx-runner/SpxRunner.vue create mode 100644 spx-gui/src/widgets/spx-runner/SpxRunnerDemo.vue delete mode 100644 spx-gui/src/widgets/spx-runner/spx-runner.vue diff --git a/spx-gui/src/api/project.ts b/spx-gui/src/api/project.ts index ec2132332..978d4d10f 100644 --- a/spx-gui/src/api/project.ts +++ b/spx-gui/src/api/project.ts @@ -1,8 +1,16 @@ -import type { Project } from "@/interface/library"; -import { service } from "@/axios" -import type { ResponseData } from "@/axios"; -import type { FormatResponse } from "@/components/code-editor"; -import type { AxiosResponse } from "axios"; +/* + * @Author: Zhang Zhi Yang + * @Date: 2024-02-07 21:43:44 + * @LastEditors: Zhang Zhi Yang + * @LastEditTime: 2024-02-27 18:46:18 + * @FilePath: \builder\spx-gui\src\api\project.ts + * @Description: + */ +import type { Project } from '@/interface/library' +import { service } from '@/axios' +import type { ResponseData } from '@/axios' +import type { FormatResponse } from '@/components/code-editor' +import type { AxiosResponse } from 'axios' /** * Saves a project. @@ -13,20 +21,20 @@ import type { AxiosResponse } from "axios"; * @returns Project */ export function saveProject(name: string, uid: number, file: File): Promise { - const url = '/project/save'; - const formData = new FormData(); - formData.append('name', name); - formData.append('uid', uid.toString()); - formData.append('file', file); + const url = '/project/save' + const formData = new FormData() + formData.append('name', name) + formData.append('uid', uid.toString()) + formData.append('file', file) - return service({ - url: url, - method: 'post', - data: formData, - headers: { - 'Content-Type': 'multipart/form-data' - }, - }); + return service({ + url: url, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) } /** @@ -36,16 +44,16 @@ export function saveProject(name: string, uid: number, file: File): Promise>> { - const url = '/project/fmt'; - const formData = new FormData(); - formData.append('body', body); + const url = '/project/fmt' + const formData = new FormData() + formData.append('body', body) - return service({ - url: url, - method: 'post', - data: formData, - headers: { - 'Content-Type': 'multipart/form-data' - }, - }); + return service({ + url: url, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) } diff --git a/spx-gui/src/router/index.ts b/spx-gui/src/router/index.ts index 1fcee4fc1..93ded72f7 100644 --- a/spx-gui/src/router/index.ts +++ b/spx-gui/src/router/index.ts @@ -2,8 +2,8 @@ * @Author: Xu Ning * @Date: 2024-01-15 09:16:35 * @LastEditors: Zhang Zhi Yang - * @LastEditTime: 2024-02-05 16:42:18 - * @FilePath: /spx-gui/src/router/index.ts + * @LastEditTime: 2024-02-28 14:08:00 + * @FilePath: \spx-gui\src\router\index.ts * @Description: */ import type { App } from 'vue' @@ -30,6 +30,11 @@ const routes: Array = [ name: 'StageViewer', component: () => import('../components/stage-viewer-demo/StageViewerDemo.vue') }, + { + path: '/runner/widget/:id', + name: 'StageViewer', + component: () => import('../widgets/spx-runner/SpxRunnerDemo.vue') + }, { path: '/editor/homepage', name: 'EditorHomepage', diff --git a/spx-gui/src/widgets/spx-runner/SpxRunner.vue b/spx-gui/src/widgets/spx-runner/SpxRunner.vue new file mode 100644 index 000000000..60284dace --- /dev/null +++ b/spx-gui/src/widgets/spx-runner/SpxRunner.vue @@ -0,0 +1,105 @@ + + + + diff --git a/spx-gui/src/widgets/spx-runner/SpxRunnerDemo.vue b/spx-gui/src/widgets/spx-runner/SpxRunnerDemo.vue new file mode 100644 index 000000000..6bcfc5db9 --- /dev/null +++ b/spx-gui/src/widgets/spx-runner/SpxRunnerDemo.vue @@ -0,0 +1,34 @@ + + + + diff --git a/spx-gui/src/widgets/spx-runner/index.ts b/spx-gui/src/widgets/spx-runner/index.ts index 63a01b3de..6682e2fdb 100644 --- a/spx-gui/src/widgets/spx-runner/index.ts +++ b/spx-gui/src/widgets/spx-runner/index.ts @@ -7,7 +7,7 @@ * @Description: */ import { defineCustomElement } from "vue"; -import spxRunner from "./spx-runner.vue"; +import spxRunner from "./SpxRunner.vue"; export const spxRunnerWidget = defineCustomElement(spxRunner) customElements.define("spx-runner", spxRunnerWidget) \ No newline at end of file diff --git a/spx-gui/src/widgets/spx-runner/spx-runner.vue b/spx-gui/src/widgets/spx-runner/spx-runner.vue deleted file mode 100644 index 6d7adccf1..000000000 --- a/spx-gui/src/widgets/spx-runner/spx-runner.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/spx-gui/src/widgets/widget.config.ts b/spx-gui/src/widgets/widget.config.ts index 51418cf88..17e476064 100644 --- a/spx-gui/src/widgets/widget.config.ts +++ b/spx-gui/src/widgets/widget.config.ts @@ -2,50 +2,54 @@ * @Author: Zhang Zhi Yang * @Date: 2024-02-27 17:11:17 * @LastEditors: Zhang Zhi Yang - * @LastEditTime: 2024-02-27 18:03:23 + * @LastEditTime: 2024-02-28 11:19:49 * @FilePath: \builder\spx-gui\src\widgets\widget.config.ts - * @Description: + * @Description: */ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' const resolve = (dir: string) => path.join(__dirname, dir) export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => { - return { - plugins: [ - vue( - { - template: { - compilerOptions: { - isCustomElement: (tag) => tag.includes('-') - } - } - }), - ], - define: { 'process.env.NODE_ENV': '"production"' }, - build: { - target: 'esnext', - outDir:'spx-widgets', - minify: 'terser', - lib: { - entry: 'src/widgets/spx-runner/index.ts', - formats: ['es', 'cjs', 'iife'], - name: 'runnerWidget' - } - }, + return { + plugins: [ + vue({ + template: { + compilerOptions: { + isCustomElement: (tag) => tag.includes('-') + } + } + }) + ], - resolve: { - alias: { - // '@': fileURLToPath(new URL('./src', import.meta.url)) - '@': resolve('../../src'), - comps: resolve('../components'), - apis: resolve('../apis'), - views: resolve('../views'), - utils: resolve('../utils'), - routes: resolve('../routes'), - styles: resolve('../styles'), - store: resolve('../store') - } - }, + define: { 'process.env.NODE_ENV': '"production"' }, + build: { + target: 'esnext', + outDir: 'spx-widgets', + minify: 'terser', + lib: { + entry: 'src/widgets/spx-runner/index.ts', + formats: ['es'], + name: 'spxWidgets', + fileName: 'spx-widgets' + }, + rollupOptions: { + external: ['../../public/**'] + } + }, + + resolve: { + alias: { + // '@': fileURLToPath(new URL('./src', import.meta.url)) + '@': resolve('../../src'), + comps: resolve('../components'), + apis: resolve('../apis'), + views: resolve('../views'), + utils: resolve('../utils'), + routes: resolve('../routes'), + styles: resolve('../styles'), + store: resolve('../store') + } } -}) \ No newline at end of file + } +})