From 87df9b0f78d197788351ee7d3cb1ae42d04ed454 Mon Sep 17 00:00:00 2001 From: laoou Date: Tue, 29 Apr 2025 11:37:18 +0800 Subject: [PATCH] =?UTF-8?q?bugfix-=E4=BF=AE=E5=A4=8D=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=8F=98=E5=8C=96=E6=97=B6=E8=80=8C=E6=89=93?= =?UTF-8?q?=E5=BC=80=E7=9A=84=E6=A0=87=E7=AD=BE=E9=A1=B5=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knife4j-vue/src/views/api/Debug.vue | 16 ++++++++++++++++ .../src/views/settings/GlobalParameters.vue | 10 ++++++++++ knife4j-vue3/src/views/api/Debug.vue | 18 +++++++++++++++++- .../src/views/settings/GlobalParameters.vue | 10 ++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/knife4j-vue/src/views/api/Debug.vue b/knife4j-vue/src/views/api/Debug.vue index 9e0367b1..21044c3d 100644 --- a/knife4j-vue/src/views/api/Debug.vue +++ b/knife4j-vue/src/views/api/Debug.vue @@ -405,6 +405,12 @@ export default { } else { this.debugUrlStyle = "width: 70%;" } + // 监听全局参数更新事件 + this.$root.$on('global-parameters-updated', this.handleGlobalParametersUpdate); + }, + beforeDestroy() { + // 组件销毁前移除事件监听 + this.$root.$off('global-parameters-updated', this.handleGlobalParametersUpdate); }, computed: { language() { @@ -423,6 +429,16 @@ export default { } }, methods: { + // 处理全局参数更新事件 + handleGlobalParametersUpdate(data) { + // 检查是否是当前接口所属的分组的全局参数更新 + if (data && data.groupId === this.api.instanceId) { + // 重新读取全局参数 + this.globalParameters = data.parameters; + // 更新header和参数 + this.reloadCacheParameter(); + } + }, // 重置参数为原始默认值 resetCacheParameter() { // this.$emit('update:api', cloneDeep(this.oldApi)) diff --git a/knife4j-vue/src/views/settings/GlobalParameters.vue b/knife4j-vue/src/views/settings/GlobalParameters.vue index 6eb9ba80..e34de9b4 100644 --- a/knife4j-vue/src/views/settings/GlobalParameters.vue +++ b/knife4j-vue/src/views/settings/GlobalParameters.vue @@ -201,6 +201,11 @@ export default { const dfv = val; dfv[gpInstance.groupId] = gpInstance.globalParameters; localStore.setItem(Constants.globalParameter, dfv); + // 发送全局参数更新事件,使用Vue根实例作为事件总线 + gpInstance.$root.$emit('global-parameters-updated', { + groupId: gpInstance.groupId, + parameters: gpInstance.globalParameters + }); }); }, deleteParam(record) { @@ -231,6 +236,11 @@ export default { const dfv = val; dfv[key] = gpInstance.globalParameters; localStore.setItem(Constants.globalParameter, dfv); + // 发送全局参数更新事件,使用Vue根实例作为事件总线 + gpInstance.$root.$emit('global-parameters-updated', { + groupId: key, + parameters: gpInstance.globalParameters + }); }); this.visible = false; } else { diff --git a/knife4j-vue3/src/views/api/Debug.vue b/knife4j-vue3/src/views/api/Debug.vue index 7a64fa11..8e294dfc 100644 --- a/knife4j-vue3/src/views/api/Debug.vue +++ b/knife4j-vue3/src/views/api/Debug.vue @@ -444,6 +444,12 @@ export default { } else { this.debugUrlStyle = "width: 80%;" } + // 监听全局参数更新事件 + this.$root.$on('global-parameters-updated', this.handleGlobalParametersUpdate); + }, + beforeUnmount() { + // 组件销毁前移除事件监听 + this.$root.$off('global-parameters-updated', this.handleGlobalParametersUpdate); }, watch: { language: function (val, oldval) { @@ -451,8 +457,18 @@ export default { } }, methods: { + // 处理全局参数更新事件 + handleGlobalParametersUpdate(data) { + // 检查是否是当前接口所属的分组的全局参数更新 + if (data && data.groupId === this.api.instanceId) { + // 重新读取全局参数 + this.globalParameters = data.parameters; + // 更新header和参数 + this.reloadCacheParameter(); + } + }, // 重置参数为原始默认值 - resetCacheParameter() { + resetCacheParameter() { // this.$emit('update:api', cloneDeep(this.oldApi)) this.headerData = []; this.formData = []; diff --git a/knife4j-vue3/src/views/settings/GlobalParameters.vue b/knife4j-vue3/src/views/settings/GlobalParameters.vue index d6e60f7f..da87b3a7 100644 --- a/knife4j-vue3/src/views/settings/GlobalParameters.vue +++ b/knife4j-vue3/src/views/settings/GlobalParameters.vue @@ -208,6 +208,11 @@ export default { const dfv = val; dfv[this.groupId] = this.globalParameters; localStore.setItem(Constants.globalParameter, dfv); + // 发送全局参数更新事件,使用Vue根实例作为事件总线 + this.$root.$emit('global-parameters-updated', { + groupId: this.groupId, + parameters: this.globalParameters + }); }) }, deleteParam(record) { @@ -236,6 +241,11 @@ export default { const dfv = val; dfv[key] = this.globalParameters; localStore.setItem(Constants.globalParameter, dfv); + // 发送全局参数更新事件,使用Vue根实例作为事件总线 + gpInstance.$root.$emit('global-parameters-updated', { + groupId: key, + parameters: gpInstance.globalParameters + }) }) this.visible = false; } else { -- Gitee