框架表单系统控制逻辑
R3框架明细界面(单对象),本质是表单系统,该系统中每个字段允许附加的控制逻辑如下(在表单系统中,每个字段按照主控以及被控的关系可以分为主控字段以及被控字段)
- 主控字段的值发生变化,是唯一触发被控字段受控逻辑的契机。被控字段受控场景有且仅有本文所述内容:
- 被控字段是否允许编辑
- 被控字段是否必填
- 被控字段是否显示在界面上。
- 被控字段的当前值、备选值。
- 以下讲解示例中,假设主控字段以A、A1、A2、...、An表示。被控字段以B、B1、B2、...、Bn表示。
受控点一:是否允许编辑
场景一: 当A取值为"a"时,B允许编辑。其他情况,B均不可编辑。此时,应该针对B进行配置,配置规则如下:
{
webconf:{
setAttributes:{
field:[
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
}
],
props:{ 设置属性( 是否可编辑)
disabled :true
}
}
}
}
场景二: 当A1取值为"a1",A2取值为"a2",...,An取值为"an"时,B不允许编辑,其他情况,B均可编辑。此时,应该针对B进行配置,配置规则如下:
{
webconf:{
setAttributes:{
field:[
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
},
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
}
],
props:{ 设置属性( 是否可编辑)
disabled :true
}
}
}
}
受控点二:是否必填
场景一: 当A取值为"a"时,B允许编辑。其他情况,B均不可编辑。此时,应该针对B进行配置,配置规则如下:
{
webconf:{
webconf:{
setAttributes:{
field:[
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
}
],
props:{ 设置属性( 是否必填)
required:true
}
}
}
}
}
场景二: 当A1取值为"a1",A2取值为"a2",...,An取值为"an"时,B不允许编辑,其他情况,B均可编辑。此时,应该针对B进行配置,配置规则如下:
{
webconf:{
webconf:{
setAttributes:{
field:[
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
},
{
refcolumn:"来源字段的key",
refval:"来源字段的值" //多个值域用逗号隔开
}
],
props:{ 设置属性( 是否必填)
required:true
}
}
}
}
}
受控点三:是否显示
场景一: 当A取值为"a1","a2",...,"an"时,B字段隐藏,其他情况B均显示。此时,应该针对B进行配置,配置规则如下:
{
hidecolumn:{
refcolumn:"TYPE", // 来源字段
refval:"1" // 来源字段的值,多字段用逗号隔开
},
}
受控点四: 备选值、即时赋值
控制备选值(值域)
场景一: 有外键字段A、外键字段B,B字段的查询条件取决于当前A的取值。当A发生变化时,B需要清空。此时,应该针对B进行配置,配置规则如下:
{
refcolval:{
fixcolumn:"AD_TABLE_ID", // 传参
expre:"equal", // 拼接条件
srccol:"AD_TABLE_ID" // 来源字段
}
}
如果 srccol === '$OBJID$' ,则 支持主表id 过滤
场景二: 有任意类型字段A,下拉Select类型字段B,B字段的查询条件取决于当前A的取值。当A发生变化时,B需要清空。此时,应该针对B进行配置,配置规则如下:
{
webconf:{
filtercolval:{
col:"", // 来源字段
map:{
"来源字段的key":['被控字段的值域']
}
}
}
}
控制当前值
场景一: 有任意类型字段A1、A2、...、An,当其中任意主控字段的值发生变化时,需要根据业务需求为B1、B2、...、Bn赋值。此种情况全部统一走R3接口服务处理。即:当A1、A2、...、An中任意字段值发生变化时,携带指定参数请求对应的服务接口,接口返回B1、B2、...、Bn的即时值,由前端实时赋值处理。
{
webconf:{ // 配置到主控字段
formRequest:{
refcolumn:"DBNAME,NULLABLE,AD_TABLE_ID", // 需要向后台传参字段,多字段用逗号隔开
url:'' // 后台服务端接口
}
}
}
多值查询功能
场景: B字段根据字段A1、A2、...、An的值进行多值查询的功能
{
webconf:{ // 配置到被控字段
refcolvalArray:[{
fixcolumn:"AD_TABLE_ID", // 传参
expre:"equal", // 拼接条件
srccol:"AD_TABLE_ID" // 来源字段
}]
}
}