Crud功能按钮

应用场景 #

  • 需要选中数据行,执行批量动作, 比如批量状态修改,打开新的功能项
  • 表格侧面自定义功能按钮

单功能数据集方式 #

配置方法 #

  • 在"新增修改"面板"批量动作"可以配置按钮的显示名和颜色
{"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!!
  • 当点击时,系统会自动将这一行表格的数据做为参数传递给数据集
  • 当不加!时,会自动基于查询到的数据集数据展示卡片,表格或图形
  • 当加一个!时,可参考上一节“功能数据集映射方式”
  • 当加两个!时,不会显示弹出窗体,仅执行数据集