From c1675873a3543cd0884242227af232aee204e0d6 Mon Sep 17 00:00:00 2001 From: zheng Wei Date: Thu, 5 Jun 2025 11:26:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E7=AC=AC=E4=B8=80=E6=AC=A1=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=B2=A1=E6=9C=89=E9=80=89=E4=B8=AD=E6=96=87=E4=BB=B6?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codegen/[codegenId]/[componentId]/useComponentDetail.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main/codegen/[codegenId]/[componentId]/useComponentDetail.ts b/app/main/codegen/[codegenId]/[componentId]/useComponentDetail.ts index f6f08276..daf64000 100644 --- a/app/main/codegen/[codegenId]/[componentId]/useComponentDetail.ts +++ b/app/main/codegen/[codegenId]/[componentId]/useComponentDetail.ts @@ -152,7 +152,7 @@ export function useComponentDetail() { version => version._id.toString() === activeVersionId, )?.code || "", ) - }, [activeVersionId]) + }, [activeVersionId, componentDetail]) useEffect(() => { if (!componentDetail || !provider || !model) return From 7c7604d2b106773008046aa6edd1545a037bc226 Mon Sep 17 00:00:00 2001 From: zheng Wei Date: Thu, 5 Jun 2025 15:13:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20ant=20design=20vue=20=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- artifacts/antdv-ui-renderer/.gitignore | 24 ++ .../antdv-ui-renderer/.vscode/extensions.json | 3 + artifacts/antdv-ui-renderer/README.md | 5 + artifacts/antdv-ui-renderer/components.d.ts | 16 + artifacts/antdv-ui-renderer/index.html | 13 + artifacts/antdv-ui-renderer/package.json | 25 ++ artifacts/antdv-ui-renderer/public/vite.svg | 1 + artifacts/antdv-ui-renderer/src/App.vue | 51 ++++ .../antdv-ui-renderer/src/assets/vue.svg | 1 + .../src/components/ErrorDisplay.vue | 160 ++++++++++ .../antdv-ui-renderer/src/components/Test.vue | 102 +++++++ .../antdv-ui-renderer/src/components/index.ts | 3 + artifacts/antdv-ui-renderer/src/main.ts | 16 + artifacts/antdv-ui-renderer/src/style.css | 87 ++++++ artifacts/antdv-ui-renderer/src/utils.ts | 282 ++++++++++++++++++ artifacts/antdv-ui-renderer/src/vite-env.d.ts | 9 + artifacts/antdv-ui-renderer/tsconfig.app.json | 18 ++ artifacts/antdv-ui-renderer/tsconfig.json | 7 + .../antdv-ui-renderer/tsconfig.node.json | 25 ++ artifacts/antdv-ui-renderer/vite.config.ts | 30 ++ .../element-ui-plus-renderer/src/utils.ts | 2 + data/codegens.template.json | 30 +- 22 files changed, 909 insertions(+), 1 deletion(-) create mode 100644 artifacts/antdv-ui-renderer/.gitignore create mode 100644 artifacts/antdv-ui-renderer/.vscode/extensions.json create mode 100644 artifacts/antdv-ui-renderer/README.md create mode 100644 artifacts/antdv-ui-renderer/components.d.ts create mode 100644 artifacts/antdv-ui-renderer/index.html create mode 100644 artifacts/antdv-ui-renderer/package.json create mode 100644 artifacts/antdv-ui-renderer/public/vite.svg create mode 100644 artifacts/antdv-ui-renderer/src/App.vue create mode 100644 artifacts/antdv-ui-renderer/src/assets/vue.svg create mode 100644 artifacts/antdv-ui-renderer/src/components/ErrorDisplay.vue create mode 100644 artifacts/antdv-ui-renderer/src/components/Test.vue create mode 100644 artifacts/antdv-ui-renderer/src/components/index.ts create mode 100644 artifacts/antdv-ui-renderer/src/main.ts create mode 100644 artifacts/antdv-ui-renderer/src/style.css create mode 100644 artifacts/antdv-ui-renderer/src/utils.ts create mode 100644 artifacts/antdv-ui-renderer/src/vite-env.d.ts create mode 100644 artifacts/antdv-ui-renderer/tsconfig.app.json create mode 100644 artifacts/antdv-ui-renderer/tsconfig.json create mode 100644 artifacts/antdv-ui-renderer/tsconfig.node.json create mode 100644 artifacts/antdv-ui-renderer/vite.config.ts diff --git a/artifacts/antdv-ui-renderer/.gitignore b/artifacts/antdv-ui-renderer/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/artifacts/antdv-ui-renderer/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/artifacts/antdv-ui-renderer/.vscode/extensions.json b/artifacts/antdv-ui-renderer/.vscode/extensions.json new file mode 100644 index 00000000..a7cea0b0 --- /dev/null +++ b/artifacts/antdv-ui-renderer/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/artifacts/antdv-ui-renderer/README.md b/artifacts/antdv-ui-renderer/README.md new file mode 100644 index 00000000..33895ab2 --- /dev/null +++ b/artifacts/antdv-ui-renderer/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/artifacts/antdv-ui-renderer/package.json b/artifacts/antdv-ui-renderer/package.json new file mode 100644 index 00000000..b01c0f88 --- /dev/null +++ b/artifacts/antdv-ui-renderer/package.json @@ -0,0 +1,25 @@ +{ + "name": "antdv-ui-renderer", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "ant-design-vue": "^4.0.0", + "@ant-design/icons-vue": "^7.0.1", + "dayjs": "^1.11.13", + "vue": "^3.5.13" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.3", + "@vue/tsconfig": "^0.7.0", + "typescript": "~5.8.3", + "vite": "^6.3.5", + "vue-tsc": "^2.2.8", + "unplugin-vue-components": "^0.26.0" + } +} diff --git a/artifacts/antdv-ui-renderer/public/vite.svg b/artifacts/antdv-ui-renderer/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/artifacts/antdv-ui-renderer/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/artifacts/antdv-ui-renderer/src/App.vue b/artifacts/antdv-ui-renderer/src/App.vue new file mode 100644 index 00000000..dc663844 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/App.vue @@ -0,0 +1,51 @@ + + + diff --git a/artifacts/antdv-ui-renderer/src/assets/vue.svg b/artifacts/antdv-ui-renderer/src/assets/vue.svg new file mode 100644 index 00000000..770e9d33 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/artifacts/antdv-ui-renderer/src/components/ErrorDisplay.vue b/artifacts/antdv-ui-renderer/src/components/ErrorDisplay.vue new file mode 100644 index 00000000..6e1214c0 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/components/ErrorDisplay.vue @@ -0,0 +1,160 @@ + + + \ No newline at end of file diff --git a/artifacts/antdv-ui-renderer/src/components/Test.vue b/artifacts/antdv-ui-renderer/src/components/Test.vue new file mode 100644 index 00000000..da4a1457 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/components/Test.vue @@ -0,0 +1,102 @@ + + diff --git a/artifacts/antdv-ui-renderer/src/components/index.ts b/artifacts/antdv-ui-renderer/src/components/index.ts new file mode 100644 index 00000000..b07c3336 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/components/index.ts @@ -0,0 +1,3 @@ +import ErrorDisplay from "./ErrorDisplay.vue" + +export { ErrorDisplay } diff --git a/artifacts/antdv-ui-renderer/src/main.ts b/artifacts/antdv-ui-renderer/src/main.ts new file mode 100644 index 00000000..4ce26453 --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/main.ts @@ -0,0 +1,16 @@ +import { createApp } from "vue" +import "./style.css" +import App from "./App.vue" +import "ant-design-vue/dist/reset.css" + +import Antdv from "ant-design-vue" +import * as AntdvIconsVue from "@ant-design/icons-vue" + +const app = createApp(App) +app.use(Antdv) + +for (const [key, component] of Object.entries(AntdvIconsVue)) { + app.component(key, component) +} + +app.mount("#app") diff --git a/artifacts/antdv-ui-renderer/src/style.css b/artifacts/antdv-ui-renderer/src/style.css new file mode 100644 index 00000000..9e683cea --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/style.css @@ -0,0 +1,87 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} + +button:hover { + border-color: #646cff; +} + +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; + width: 100%; + background-color: #fff; + height: 100%; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + + a:hover { + color: #747bff; + } + + button { + background-color: #f9f9f9; + } +} \ No newline at end of file diff --git a/artifacts/antdv-ui-renderer/src/utils.ts b/artifacts/antdv-ui-renderer/src/utils.ts new file mode 100644 index 00000000..caab7d4a --- /dev/null +++ b/artifacts/antdv-ui-renderer/src/utils.ts @@ -0,0 +1,282 @@ +import { createApp, defineComponent, h } from "vue/dist/vue.esm-bundler.js" + +import * as Vue from "vue/dist/vue.esm-bundler.js" +import * as Antdv from "ant-design-vue" +import * as AntdvIcons from "@ant-design/icons-vue" +import * as dayjs from "dayjs" +import ErrorDisplay from "./components/ErrorDisplay.vue" + +const mockModules: Record = { + vue: Vue, + "ant-design-vue": Antdv, + "@ant-design/icons-vue": AntdvIcons, + dayjs: dayjs, +} + +// 添加错误处理和成功处理函数 +const handleError = (errorMessage: string) => { + window.parent.postMessage( + { + type: "artifacts-error", + errorMessage, + }, + "*", + ) +} + +const handleSuccess = () => { + window.parent.postMessage( + { + type: "artifacts-success", + }, + "*", + ) +} + +export function createComponentFromString(componentString: string) { + const templateMatch = componentString.match(/