# 指令控制2024.3+
此功能是看板可以接收并解析通过 postMessage 传过来的指令,来完成图表的联动、筛选组件的条件变更以及全局参数的修改等操作。
# 指令的组成
类型 | 图/表/卡片 | 组件 | 参数 |
名称 | 如:卡片一/柱状图等 | 如:文本输入/数值 | 第一组引号的“内容” |
筛选 | 如:选中/取消/下钻/上卷等 | 如:包含/开头为/>/!= | |
取值 | 引号“内容” | 引号“内容” | 第二组引号的“内容” |
目前一条指令的组成大致可以分为四部分:
1、类型
控制分析卡片的指令类型关键字为“图、表、卡片”,控制过滤组件的指令类型关键字为“组件”,控制全局参数的指令类型关键字为“参数”,匹配到其类型对应的关键字后,指令才能由该类型的组件或全局参数来执行。
2、名称
传递过来的指令具体要由谁去执行,就需要在指令中指定具体的名称,匹配规则会优先命中名称更长的组件或卡片。如看板中同时存在标题为
柱状图
和堆叠柱状图
的两个卡片,此时接收到的指令为堆叠柱状图选中"北京市"
,则该条指令会由标题为堆叠柱状图
的卡片来执行。全局参数同分析卡片和过滤组件不同,需要在指令中使用引号把想要设置的全局参数包起来才能被解析。
3、筛选
分析卡片可以执行的操作为“取消、上卷、下钻、选中”等(优先级也是按照该顺序解析,如命令中出现了取消选中字样,则会执行取消的操作而非选中),过滤组件的筛选器可选值更多,目前文本类的“包含、开头为、精准匹配”等以及数值类的“>、>=、!=”等,凡是出现在筛选器内的都是允许出现在指令中并能被正常解析的。
4、取值
指令内的所有值必须使用引号包裹才能被正确解析,如果不传递值时则默认取值为空。当需要设置多值时(下拉组件多选或者范围类组件设置值),可以使用~和中英文逗号作为分隔符,如
日期范围组件设置"2023-11-05~2023-11-30"
、下拉框组件选中“山东省,山西省”
等。全局参数因同时需要设置名称和取值,因此可能同一条指令中会出现两组引号,此时需要关注引号顺序,第一组引号内的为参数名,第二组引号内的为参数取值。
提示
一条指令只需要包含以上的四部分即为合法指令,除特殊要求外,对指令的文字顺序没有强制要求。如卡片一下钻"北京市"
和卡片一按照"北京市"下钻
可以看做同一条指令,设置组件文本输入包含"山东省"
和文本输入组件将"山东省"设置为包含
也可以看做同一条指令,因为他们都满足了指令的组成要素;甚至设置全局参数的指令可以简化为参数"city""北京市"
,只是这样写不方便理解,需要在最简的基础上加入一些词语方便使用者阅读。