diff --git a/apps/platform/CHANGELOG.md b/apps/platform/CHANGELOG.md index 14c2f68..48ad83e 100644 --- a/apps/platform/CHANGELOG.md +++ b/apps/platform/CHANGELOG.md @@ -1,5 +1,12 @@ # @sy/y-code-platform +## 1.0.2 + +### Patch Changes + +- Updated dependencies + - @sy/wujie-vue3-renderer-adapter@1.0.2 + ## 1.0.1 ### Patch Changes diff --git a/apps/platform/package.json b/apps/platform/package.json index a3d8a0a..aa2e942 100644 --- a/apps/platform/package.json +++ b/apps/platform/package.json @@ -1,6 +1,6 @@ { "name": "@sy/y-code-platform", - "version": "1.0.1", + "version": "1.0.2", "private": true, "author": { "name": "wangxuefeng", diff --git a/packages/renderer-adapter/wujie-vue2/CHANGELOG.md b/packages/renderer-adapter/wujie-vue2/CHANGELOG.md index 815571c..b32fb11 100644 --- a/packages/renderer-adapter/wujie-vue2/CHANGELOG.md +++ b/packages/renderer-adapter/wujie-vue2/CHANGELOG.md @@ -1,5 +1,11 @@ # @sy/wujie-vue2-renderer-adapter +## 1.0.1 + +### Patch Changes + +- 渲染适配器增加 props 深度监听处理 + ## 1.0.0 ### Patch Changes diff --git a/packages/renderer-adapter/wujie-vue2/package.json b/packages/renderer-adapter/wujie-vue2/package.json index b38a79c..47f044f 100644 --- a/packages/renderer-adapter/wujie-vue2/package.json +++ b/packages/renderer-adapter/wujie-vue2/package.json @@ -1,6 +1,6 @@ { "name": "@sy/wujie-vue2-renderer-adapter", - "version": "1.0.0", + "version": "1.0.1", "description": "wujie-vue2 ycode renderer adapter", "type": "module", "scripts": { diff --git a/packages/renderer-adapter/wujie-vue2/src/adapter.vue b/packages/renderer-adapter/wujie-vue2/src/adapter.vue index 092b530..e24f61e 100644 --- a/packages/renderer-adapter/wujie-vue2/src/adapter.vue +++ b/packages/renderer-adapter/wujie-vue2/src/adapter.vue @@ -9,11 +9,53 @@ import { version } from '/package.json'; export default defineComponent({ name: 'WujieAdapter', + data() { + return { + // 使用 data 创建可变的 subAppProps + subAppPropsData: this.getInitialSubAppProps(), + }; + }, computed: { finalUrl() { return `${this.url}?fileId=${this.fileId}&projectId=${this.projectId}&applicationId=${this.applicationId}`; }, - subAppProps() { + }, + watch: { + // 监听所有 props 变化 + $props: { + handler(newProps) { + console.log('props 发生变化,更新 subAppProps'); + this.updateSubAppProps(newProps); + }, + deep: true, // 深度监听,捕获嵌套属性变化 + immediate: true, // 立即执行一次 + }, + // 单独监听常用的几个关键 prop,以确保它们的变化被捕获 + fileId() { + this.updateSubAppProps(this.$props); + }, + projectId() { + this.updateSubAppProps(this.$props); + }, + applicationId() { + this.updateSubAppProps(this.$props); + }, + payload: { + handler() { + this.updateSubAppProps(this.$props); + }, + deep: true, + }, + searchParams: { + handler() { + this.updateSubAppProps(this.$props); + }, + deep: true, + }, + }, + methods: { + // 获取初始 subAppProps + getInitialSubAppProps() { return { ...this.$props, adapterInfo: { @@ -21,15 +63,26 @@ export default defineComponent({ }, }; }, - }, - beforeUnmount() { - const { bus } = WujieVue; - bus.$off('message', this.handleMessage); - bus.$off('ready', this.handleReady); - bus.$off('render-success', this.handleRenderSuccess); - bus.$off('render-fail', this.handleRenderFail); - }, - methods: { + // 更新 subAppProps + updateSubAppProps(props) { + this.subAppPropsData = { + ...props, + adapterInfo: { + version, + }, + _timestamp: Date.now(), // 添加时间戳确保每次更新都是新对象 + }; + + // 如果子应用已加载,可以通过 bus 通知它 props 已更新 + if (this.name || this.fileId) { + try { + const { bus } = WujieVue; + bus.$emit('props-updated', this.subAppPropsData); + } catch (error) { + console.error('发送 props 更新事件失败:', error); + } + } + }, afterMount(appWindow: any) { console.log(`${this.name || this.fileId} 加载完成`, appWindow); }, @@ -56,6 +109,13 @@ export default defineComponent({ bus.$on('render-success', this.handleRenderSuccess); bus.$on('render-fail', this.handleRenderFail); }, + beforeUnmount() { + const { bus } = WujieVue; + bus.$off('message', this.handleMessage); + bus.$off('ready', this.handleReady); + bus.$off('render-success', this.handleRenderSuccess); + bus.$off('render-fail', this.handleRenderFail); + }, props: { applicationId: { required: true, @@ -90,6 +150,10 @@ export default defineComponent({ router: { type: Object, }, + searchParams: { + default: () => ({}), + type: Object, + }, sync: { default: true, type: Boolean, @@ -110,7 +174,7 @@ export default defineComponent({ width="100%" height="100%" :degrade="degrade" - :props="subAppProps" + :props="subAppPropsData" :before-load="beforeLoad" :after-mount="afterMount" :interceptors="interceptors" diff --git a/packages/renderer-adapter/wujie-vue3/CHANGELOG.md b/packages/renderer-adapter/wujie-vue3/CHANGELOG.md index bafe9b6..23b0113 100644 --- a/packages/renderer-adapter/wujie-vue3/CHANGELOG.md +++ b/packages/renderer-adapter/wujie-vue3/CHANGELOG.md @@ -1,5 +1,11 @@ # @sy/wujie-vue3-renderer-adapter +## 1.0.2 + +### Patch Changes + +- 渲染适配器增加 props 深度监听处理 + ## 1.0.0 ### Patch Changes diff --git a/packages/renderer-adapter/wujie-vue3/package.json b/packages/renderer-adapter/wujie-vue3/package.json index c33c4d1..56291e2 100644 --- a/packages/renderer-adapter/wujie-vue3/package.json +++ b/packages/renderer-adapter/wujie-vue3/package.json @@ -1,6 +1,6 @@ { "name": "@sy/wujie-vue3-renderer-adapter", - "version": "1.0.1", + "version": "1.0.2", "description": "wujie-vue3 ycode renderer adapter", "type": "module", "scripts": { diff --git a/packages/renderer-adapter/wujie-vue3/src/adapter.vue b/packages/renderer-adapter/wujie-vue3/src/adapter.vue index 79040d2..1ada9c1 100644 --- a/packages/renderer-adapter/wujie-vue3/src/adapter.vue +++ b/packages/renderer-adapter/wujie-vue3/src/adapter.vue @@ -75,7 +75,6 @@ const subAppProps = ref({ watch( () => ({ ...props }), (newProps) => { - console.log('props 发生变化', newProps); subAppProps.value = { ...newProps, adapterInfo: {