应用画布与经营画布的图表联动
在应用画布中,可以通过表单等控件,去筛选通过“ADP图表”控件或“iframe”控件嵌入进来的经营画布图表,例如只看某个时间段内的图表结果,或只看某种内容筛选后的图表结果。
【情况一】经营画布的表是在“查询集合管理”的sql结果基础上进行统计的,并且可以通过sql中设置的参数进行数据筛选。
结合表单的筛选条件,将条件传输给ADP图表的参数,根据参数的结果进行ADP图表的展示。ADP图表适用于单表的展示。
{
"status": 0,
"msg": "",
"data": {
"mycfg": [{
"defaultVal": [
{
"index": 0,
"val": "{{date}}"
}
]
}]
}
}
【情况二】经营画布的表是在“查询集合管理”的sql结果基础上进行统计的,并且可以通过sql中设置的参数进行数据筛选,其中参数的个数是多个。
{
"status": 0,
"msg": "",
"data": {
"mycfg": {
"defaultVal": [
{
"index": 0,
"val": "{{brand}}"
},
{
"index": 1,
"val": "{{tag}}"
},
{
"index": 2,
"val": "{{category}}"
}
]
}
}
}
{
"status": 0,
"msg": null,
"data": {
"options": [
{% set idset = {} %}
{% for item in rows %}
{% if item['crc'] not in idset %}
{% if idset.update({item['crc']:True}) %}{% endif %}
{% if loop.index0 > 0 %},{% endif %}
{
"label": "{{item['brand']}}",
"value": "{{item['brand_data']}}"
}
{% endif %}
{% endfor %}
]
}
}
如果使用iframe将整个经营画布嵌入到应用画布中,且经营画布的所有图或部分图都是用查询集合管理的结果制作的,则一共有几个图,就需要写几组defaultVal,defaultVal的顺序就是作图的时候的顺序(在业务画布上右键属性,可以看到图表ID,从小到大),如果中间有不需要传参的图,则保留{}即可。
如下:下例为共10张图,其中第二张图不需要传参,其他9张图需要传参,参数为startdate和enddate
{
"status": 0,
"msg": "",
"data": {
"mycfg": [
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
},
{
"defaultVal": [
{
"index": 0,
"val": "{{startdate}}"
},
{
"index": 1,
"val": "{{enddate}}"
}
]
}
]
}
}
【情况三】经营画布整张图(通过数据库表直接做的图)都需要嵌入在应用画布中,然后通过表单来传输筛选条件。
1、表单为时间筛选
/shareproject?taskid=1559&projectid=1165&sign=20220223152715a5794fd3&displayfull=1&scroll=0&fullSize=1&name=adp帮助项目1&huabuid=1728&isinterface=1&filter=${yanshi}
{% set configs_list = [] %}
{% do configs_list.append( { "name": "release_date", "opt": "gte", "value":startdate }) %}
{% do configs_list.append( { "name": "release_date", "opt": "lte", "value":enddate }) %}
{
"status":0,
"msg":null,
"data":{
"yanshi":{{configs_list|tojson|tojson}}
}
}
2、表单为文本类型的字段筛选
{% set configs_list = [] %}
{% do configs_list.append( { "name": "media_name", "opt": "in", "value":laiyuan}) %}
{
"status":0,
"msg":null,
"data":{
"yanshi":{{configs_list|tojson|tojson}}
}
}
注:opt不支持like
【情况四】在应用画布中,使用增删改查同时实现数据查询结果与图表的联动展示。
问题没有解决?请留言提问
