feat: 增加应用跟项目列表,包含增删改查功能
This commit is contained in:
parent
a78d892a57
commit
2d202cd6d7
@ -79,6 +79,7 @@
|
||||
.responsive-iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
border: none;
|
||||
}
|
||||
</style>
|
||||
|
@ -12,6 +12,26 @@ const routes: Array<RouteRecordRaw> = [
|
||||
icon: 'ant-design:appstore-outlined',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
name: `${moduleName}-list`,
|
||||
meta: {
|
||||
title: '项目列表',
|
||||
keepAlive: true,
|
||||
icon: 'ant-design:list',
|
||||
app: {
|
||||
url: 'https://localhost:10010',
|
||||
name: 'low-code-platform-project-list',
|
||||
// sync: true,
|
||||
// alive: true,
|
||||
// degrade: true,
|
||||
applicationId: 0,
|
||||
projectId: 4,
|
||||
fileId: '4g4mz6qi8u',
|
||||
},
|
||||
},
|
||||
component: () => import('@/components/renderer-adapter/index.vue'),
|
||||
},
|
||||
{
|
||||
path: 'add',
|
||||
name: `${moduleName}-add`,
|
||||
|
@ -18,9 +18,12 @@
|
||||
"@sy/web-vitals": "workspace:*",
|
||||
"@tanstack/vue-query": "^5.66.9",
|
||||
"@vtj/core": "^0.10.7",
|
||||
"@vtj/pro": "^0.10.7",
|
||||
"@vtj/ui": "^0.10.7",
|
||||
"@vtj/web": "^0.10.7",
|
||||
"@vtj/renderer": "^0.10.7",
|
||||
"@vtj/icons": "0.10.7",
|
||||
"@vtj/materials": "^0.10.7",
|
||||
"@vtj/renderer": "^0.10.7",
|
||||
"axios": "^1.8.1",
|
||||
"core-js": "^3.40.0",
|
||||
"element-plus": "^2.9.4",
|
||||
|
@ -3,11 +3,12 @@
|
||||
import { computed, watch, ref, getCurrentInstance } from 'vue'
|
||||
import { ElLoading } from 'element-plus'
|
||||
import Postmate from 'postmate'
|
||||
import { createRenderer, createProvider } from '@vtj/renderer'
|
||||
import { createProvider } from '@vtj/web'
|
||||
import { useQuery } from '@tanstack/vue-query'
|
||||
|
||||
import { LowCodeService } from './service'
|
||||
import { getFile } from './io'
|
||||
import * as VtjUI from '@vtj/ui'
|
||||
console.log('VtjUI',VtjUI)
|
||||
|
||||
// 响应式状态
|
||||
const renderer = ref()
|
||||
@ -30,18 +31,22 @@ const { data: file, isFetching } = useQuery({
|
||||
queryKey: ['getFile'],
|
||||
queryFn: async () => {
|
||||
await handshake.then((parent) => {
|
||||
parent.emit('sync-context', 'Hello, World!')
|
||||
// parent.emit('sync-context', 'Hello, World!')
|
||||
Object.assign(model, parent.model)
|
||||
console.log('model', model)
|
||||
|
||||
// console.log('model', model)
|
||||
})
|
||||
|
||||
return getFile(model.fileId).then(() => {
|
||||
const { provider, onReady } = createProvider({
|
||||
nodeEnv: import.meta.env.NODE_ENV,
|
||||
service: lowCodeService,
|
||||
project: { id: '4' }
|
||||
project: { id: model.projectId },
|
||||
components: {
|
||||
...VtjUI,
|
||||
}
|
||||
})
|
||||
onReady(async () => {
|
||||
console.log('onReady')
|
||||
const instance = getCurrentInstance()
|
||||
instance?.appContext.app.use(provider)
|
||||
renderer.value = await provider.getRenderComponent(model.fileId)
|
||||
@ -61,5 +66,7 @@ watch(isFetching, (newVal) => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<component :is="renderer" v-if="renderer" />
|
||||
<div style="padding: 20px;">
|
||||
<component :is="renderer" v-if="renderer" />
|
||||
</div>
|
||||
</template>
|
||||
|
@ -2,12 +2,20 @@ import { createApp } from "vue";
|
||||
import "@sy/web-vitals";
|
||||
import { IconsPlugin } from "@vtj/icons";
|
||||
import { VueQueryPlugin } from "@tanstack/vue-query";
|
||||
|
||||
import * as VtjUI from "@vtj/ui";
|
||||
import App from "./App.vue";
|
||||
import ElementPlus from "element-plus";
|
||||
import "element-plus/dist/index.css";
|
||||
import "@vtj/ui/dist/style.css";
|
||||
|
||||
createApp(App)
|
||||
const app = createApp(App);
|
||||
|
||||
// 批量注册组件
|
||||
Object.entries(VtjUI).forEach(([name, component]) => {
|
||||
console.log("name", name, component);
|
||||
app.component(name, component);
|
||||
});
|
||||
app
|
||||
.use(ElementPlus)
|
||||
.use(IconsPlugin)
|
||||
.use(VueQueryPlugin)
|
||||
|
@ -32,7 +32,7 @@ export class LowCodeService extends BaseService {
|
||||
}
|
||||
|
||||
public async getFile(id: string): Promise<BlockSchema> {
|
||||
console.log("1111getFile", id);
|
||||
console.log("service getFile", id);
|
||||
return getLowCodeFile(id).then((lowCodeFile) => {
|
||||
if (lowCodeFile.dsl) {
|
||||
return Promise.resolve(lowCodeFile.dsl as BlockSchema);
|
||||
|
@ -7,7 +7,7 @@
|
||||
"@/*": ["src/*"],
|
||||
"$vtj/*": [".vtj/*"]
|
||||
},
|
||||
"lib": ["ES2015", "DOM"],
|
||||
"lib": ["ES2022", "DOM"],
|
||||
"module": "NodeNext",
|
||||
"target": "ES2022",
|
||||
"moduleResolution": "NodeNext"
|
||||
|
11
pnpm-lock.yaml
generated
11
pnpm-lock.yaml
generated
@ -448,9 +448,18 @@ importers:
|
||||
'@vtj/materials':
|
||||
specifier: ^0.10.7
|
||||
version: 0.10.7
|
||||
'@vtj/pro':
|
||||
specifier: ^0.10.7
|
||||
version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))
|
||||
'@vtj/renderer':
|
||||
specifier: ^0.10.7
|
||||
version: 0.10.7
|
||||
'@vtj/ui':
|
||||
specifier: ^0.10.7
|
||||
version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))
|
||||
'@vtj/web':
|
||||
specifier: ^0.10.7
|
||||
version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))
|
||||
axios:
|
||||
specifier: ^1.8.1
|
||||
version: 1.8.1(debug@4.4.0)
|
||||
@ -13152,7 +13161,7 @@ snapshots:
|
||||
|
||||
'@simonwep/pickr@1.8.2':
|
||||
dependencies:
|
||||
core-js: 3.40.0
|
||||
core-js: 3.41.0
|
||||
nanopop: 2.4.2
|
||||
|
||||
'@sindresorhus/is@4.6.0': {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user