应用场景 #
- 需要选中数据行,执行批量动作, 比如批量状态修改,打开新的功能项
- 表格侧面自定义功能按钮
单功能数据集方式 #
配置方法 #
- 在"新增修改"面板"批量动作"可以配置按钮的显示名和颜色
{"action1":["动作1","black"],...}
- 在用户批量选择行后, 会自动提交两个参数:
action: 按钮的名称,如上是action1
updatelist: 选择行清单主键的字符串,主键是在只读字段中定义了, 如:'key1','key2', 注意已自带单引号了
直接执行更新脚本 #
- 新建一个懒加载数据集, 比如编号为6号
update action_log set status='$action' where id in ({$updatelist})
- 在"数据管理"界面配置批量"功能"对应的ds为6, 即可实现选中行后,批量将status改为按钮对应的action名
- 也可以按action的值来判定执行不同语句(参考参数联动的方法)
/* update action_log1 set status='$action' where id in ({$updatelist}) -- $action__action1*/
/* update action_log2 set status='$action' where id in ({$updatelist}) -- $action__action2*/
个性化的功能 #
- 如果需要执行复杂的需求,推荐使python数据源
action='$action'
updatelist="$updatelist"
sql=''
if action=='arrive':
sql=f"update action_log set remark='已到达' where code in ({updatelist})"
if sql:
ds=ds_sql('local',sql)
ds={"status":200, "msg":ds}
else:
ds={"status":400, "msg":"无效参数"}
功能数据集映射方式 #
- 在面板“数据管理” 中 可配置功能ds映射,方法如下:
- 功能按钮,图标:数据集,逗号分隔
el-icon-goods:5,库存:3,el-icon-food:6!
- 同样在点击按钮时,会自动向数据集传递action和updatelist,在数据集查询中写入相应逻辑即可
- 如果加!号会自动弹出窗口显示, 显示的内容需要在数据集的图形中进行配置,比如
let dataset = __dataset__;
let series =[];
for (let i=1;i<dataset.length;i++){
series.push({
name: dataset[i][0],
value: dataset[i][1],
})
}
ds_chart({
series : [
{
name:dataset[0][1],
type:'pie',
itemStyle: {
borderRadius: 6
},
data: series
}
]
});
注意我们需要把option替换成了ds_chart() 函数
同样对于vue组件也可以
let dataset = __dataset__;
let table = `<div id="v__name__" style="height:100%">
<el-table :data="ds_createMap_all(ds)">
<el-table-column v-for="item of ds[0]" :label="item" :property="item" ></el-table-column>
</el-table></div>`;
setTimeout(function() {
ds_chart(table);
ds_vue('#v__name__',dataset);
}, 100);
注意不同的是setTimeout这一部分
行按钮方式 #
- 在面板“数据管理” 中 可配置“查看ds映射”,方法如下:
- 功能按钮,图标:数据集,逗号分隔
el-icon-goods:5,库存:3,el-icon-food:6!执行动作:7!!
- 当点击时,系统会自动将这一行表格的数据做为参数传递给数据集
- 当不加!时,会自动基于查询到的数据集数据展示卡片,表格或图形
- 当加一个!时,可参考上一节“功能数据集映射方式”
- 当加两个!时,不会显示弹出窗体,仅执行数据集