2025-03-23
我去旅行,是因为我决定了要去,并不是因为对风景的兴趣。——马尔克斯的《霍乱时期的爱情》
这个issue
:
https://github.com/apache/shenyu/issues/5966
其中提到由于没有填写handler
导致无法提交,于是先临时添加一个必填标识
https://github.com/apache/shenyu-dashboard/pull/525
这里发现有两个Handler
的表单项,一眼看过去好像是个BUG
,本来是打算合二为一,发现由于此处的设计是两个FormItem
,删掉下面的Handler
的label
,会导致被删除的表单项往左偏移而对不齐
此处介绍一下两个都称之为Handle
的表单项的区别,第一个是组件独特的表单项,例如request
插件就是request
对应的xxx.js
,表单项里包含填写多个params
、headers
、cookies
等,如果是其他组件则是填写其他的东西;第二个是在PluginTemplate
动态配置出来的
目前的代码逻辑比较绕,大概介绍一下:
src/routes/Plugin/Common/Rule.js
是一个AddModal
的组件,也就是我pr
里截图的弹窗表单
其中有这样一段代码
1 |
|
其中customRulePage
1 |
|
而PluginRuleHandle
1 |
|
看到上面三个就知道这么一个逻辑:
如果
PluginRuleHandle
中自定义了一些对应组件的handler
,就用ComposeRuleHandle
,否则有pluginHandleList
就用CommonRuleHandle
,此处pluginHandleList
是通过pluginId
查询网页对应PluginTemlate
菜单配置的表单项得到
接下来介绍ComposeRuleHandle
,这个组件包含两个组件,一个是PluginRuleHandle
中配置的对应组件的Handle
,还有一个是刚刚提到的CommonRuleHandle
,每一个组件都是一个FormItem
,因此才有两个FormItem
总结一下:
Rule.js
:弹窗里的表单,包含下面所有组件
PluginRuleHandle.js
:配置项,配置预设插件与定制化handle
组件
ComposeRuleHandle.js
:在PluginRuleHandle.js
中配置了定制化handle
组件的,使用定制化+CommonRuleHandle.js
俩表单项
CommonRuleHandle.js
:在网页菜单PluginTemplate
动态配置生成的表单项