diff --git a/knife4j-vue/src/views/api/Debug.vue b/knife4j-vue/src/views/api/Debug.vue index 9e0367b14168202f3a3fe4ce6a97ae3d2b365653..21044c3dbfbbc3e5d8fbe28ad1bfcee6295f78ec 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 6eb9ba80feb1b48afe0cce85a99279f85c3ac5a5..e34de9b450400be6f154093926bb6cc59531e57a 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 7a64fa11a0649d349c4a75a52dc88258064f5583..8e294dfc39e6d23a7b1c47c04c9ea5435be33daa 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 d6e60f7fb4a6d2aad47cd05e7342f78541e5e3d6..da87b3a732f423bfc2f88111fb963fa8c935ff79 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 {