chore: 容器框架升级,修复项目命令行异常问题
This commit is contained in:
80
apps/renderer/src/App.vue
Normal file
80
apps/renderer/src/App.vue
Normal file
@@ -0,0 +1,80 @@
|
||||
<script setup lang="ts">
|
||||
import { computed, watch, ref, getCurrentInstance } from 'vue'
|
||||
import { ElLoading } from 'element-plus'
|
||||
import Postmate from 'postmate'
|
||||
import { createProvider } from '@vtj/web'
|
||||
import { useQuery } from '@tanstack/vue-query'
|
||||
import { LowCodeService } from './service'
|
||||
import { getFile } from './io'
|
||||
import { request, jsonp } from '@vtj/utils'
|
||||
// import * as VtjUI from '@vtj/ui'
|
||||
|
||||
// 响应式状态
|
||||
const renderer = ref()
|
||||
const lowCodeService = new LowCodeService()
|
||||
|
||||
// Postmate 握手协议
|
||||
const postmate = new Postmate.Model({
|
||||
sayHi: (data: any) => {
|
||||
console.log('sayHi',data)
|
||||
}
|
||||
})
|
||||
|
||||
// 数据模型
|
||||
const model = {
|
||||
name: '',
|
||||
applicationId: -1,
|
||||
projectId: -1,
|
||||
fileId: '',
|
||||
url: '',
|
||||
accessToken: ''
|
||||
}
|
||||
|
||||
// 数据查询
|
||||
const { data: file, isFetching } = useQuery({
|
||||
queryKey: ['getFile'],
|
||||
queryFn: async () => {
|
||||
await postmate.then((parent) => {
|
||||
parent.emit('some-event', 'y-code-renderer is ready')
|
||||
Object.assign(model, parent.model)
|
||||
localStorage.setItem('y-code-access-token', model.accessToken || '')
|
||||
})
|
||||
|
||||
return getFile(model.fileId).then(() => {
|
||||
request.useRequest((req) => {
|
||||
req.headers.set('Authorization', `Bearer ${model.accessToken}`)
|
||||
return req
|
||||
})
|
||||
const { provider, onReady } = createProvider({
|
||||
nodeEnv: import.meta.env.NODE_ENV,
|
||||
service: lowCodeService,
|
||||
project: { id: model.projectId },
|
||||
adapter: {
|
||||
request,
|
||||
jsonp
|
||||
}
|
||||
})
|
||||
onReady(async () => {
|
||||
const instance = getCurrentInstance()
|
||||
instance?.appContext.app.use(provider)
|
||||
renderer.value = await provider.getRenderComponent(model.fileId)
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// 加载状态监控
|
||||
watch(isFetching, (newVal) => {
|
||||
if (newVal) {
|
||||
ElLoading.service({ text: '低代码文件加载中...' })
|
||||
} else {
|
||||
ElLoading.service().close()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div style="padding: 20px;">
|
||||
<component :is="renderer" v-if="renderer" />
|
||||
</div>
|
||||
</template>
|
||||
Reference in New Issue
Block a user