davinci icon indicating copy to clipboard operation
davinci copied to clipboard

控制器 取值配置 手动模式需要支持级联参数

Open taotao365s opened this issue 3 years ago • 8 comments

image

界面上有两个下拉框,第一个是主类型(表A),第二个是次类型(表B)

在展示时,需要两个下拉框将相关数据完全展示(所有的类型),而不是使用加载数据中的字段过滤(类型不全)

自动关联功能太弱了,只是关联已有数据

taotao365s avatar Nov 09 '21 06:11 taotao365s

你推荐一个实现方案吧

scottsut avatar Nov 09 '21 11:11 scottsut

方案

我的思路就是:从级联的地方开始,将参数依次传递下去,但是考虑到如果最外层是中文的话,那就GG了,所以是否可以在控制器上再增加一个请求参数别名(使用英文)?将这个英文传递到手动模式

taotao365s avatar Nov 11 '21 06:11 taotao365s

可以转换一下思路,表A 和 表B 关联成一张宽表,就可以使用级联关联了。另外,如果下拉框显示数据不是全量数据,原因是因为 view 中 写的 sql 带有变量默认值,把数据限定在某个范围内导致的。可以采用 $if$ $elseif$ ,不设置变量默认值

czy1994 avatar Nov 11 '21 10:11 czy1994

我的思路就是:从级联的地方开始,将参数依次传递下去,但是考虑到如果最外层是中文的话,那就GG了,所以是否可以在控制器上再增加一个请求参数别名(使用英文)?将这个英文传递到手动模式

这是按照字段名称来 monkey patch 的思路,我承认能解决你的问题。但在级联关系中的两个手动取值的控制器有可能出现字段名称不匹配的问题,会导致 sql 语句执行错误;而且这种参数传递不一定符合每个用户的预期。所以我们不选择采用这个方案,你有需要可以自己二开支持

scottsut avatar Nov 11 '21 10:11 scottsut

可以转换一下思路,表A 和 表B 关联成一张宽表,就可以使用级联关联了。另外,如果下拉框显示数据不是全量数据,原因是因为 view 中 写的 sql 带有变量默认值,把数据限定在某个范围内导致的。可以采用 $if$ $elseif$ ,不设置变量默认值

我理解你的意思,but 如果是组件支持租户级别的级联过滤,将是很大的亮点,这应该是davinci saas的使命

taotao365s avatar Nov 12 '21 00:11 taotao365s

我理解你的意思,but 如果是组件支持租户级别的级联过滤,将是很大的亮点,这应该是davinci saas的使命

所谓的”租户级别“现在是可以支持的,通过权限变量控制数据视图的结果可以做到租户级别的数据行权限控制;你的需求是想要两个从不同数据视图取值的控制器、在构成级联关系时可以正确地传递参数,正确的做法是需要手动指定两个控制器取值数据视图之间的字段关联关系。

scottsut avatar Nov 12 '21 03:11 scottsut

@scottsut 需要手动指定两个控制器取值数据视图之间的字段关联关系。 // 这个如何配置

taotao365s avatar Nov 29 '21 00:11 taotao365s

@scottsut 需要手动指定两个控制器取值数据视图之间的字段关联关系。 // 这个如何配置

我只提出了正确的做法,这个需要你们自己二开支持

scottsut avatar Nov 29 '21 04:11 scottsut