Crud配置说明

应用场景 #

开发个性化的数据提报或业务系统

配置说明 #

只针对一些特殊配置进行说明, 注意所有字段配置都是原始查询的字段名

模块 功能 样列 说明
表格显示 表格ds 0 定义表格数据来源的数据集编号
表格显示 详情ds 0 定义当点击查看时, 显示的钻取业页的数据集, 传参为只读字段(在新增修改中设定)的第一个字段的值
表格显示 表格字段 name1,name2 用于指定表头显示的字段
表格显示 短表格字段 name1,name2 指定后,将开启折叠显示,表头显示为短表格,展开显示为表格字段
表格显示 固定字段 name1,name2 当字段过多时,定义需要固定在左边显示的列
表格显示 字段宽度 OP:80,name1:100 定义字段宽度,如针对OP字段定义了宽度,那么操作列会自动转为非浮动
表格显示 字段对齐 code:left 默认为中间对齐,可以修改为left,right
表格显示 tag字段 name1,name2 定义那些字段显示为标签样式
表格显示 tag颜色 完成:green,未完成:yellow 定义tag字段的内容显示颜色
表格显示 分页条数 999 当设定为大于999时,将不开启分页
表格显示 后端分页 false 默认为前端分启,开启后为后端分页,此时你需要在表格数据集加入一个总数的查询,另外加入limit和offset参数
表格显示 树形ds 5 开启树形表格显示,点击时将第一列的数据作为参数传给指定数据集
筛选过滤 查询头 false 默认查询区与过滤区是分开的,开启后查询区并入过滤区
筛选过滤 选项ds 4 系统为自动从这个ds获取选项的值, ds的格式为多个查询,注意查询字段名要与选项的字段一一对应
筛选过滤 字段类型 status:select,photo:img 目前支持number,date,select,selects,text,file,photo
筛选过滤 选项定义 参考页面 手动定义选项值,会被选项ds的值覆盖
筛选过滤 可变维度 province,city 用于切换维度显示,切换时会向表格数据集维度名的参数
新增修改 带出ds映射 code:5 用于在编辑界面通过输入选项,然后自动带出相关的内容,注意数据集的查询字段要与需要带出的内容一致
新增修改 只读字段 code,.. 定义在编辑界面显示为只读参考用的字段, 注意第一个字段为主键
新增修改 功能ds 3 用于执行批量处理,参考下文使用方法
新增修改 导入ds 1 用于导入excel数据,注意在数据集中需要定义好导入字段
新增修改 审批ds 1 按字段提交修改要求,审批后生效,具体方法参考下文

批量动作设定 #

  • 在新增修改界面可以配置指量动作及功能ds设定
  • 如下方法
{"action1":["动作1","black"],...}
  • 在用户批量选择行后, 会自动提交两个参数:
action: 按钮的名称,如上是action1
updatelist: 选择行清单主键的字符串,主键是在只读字段中定义了, 如:'key1','key2', 注意已自带单引号了
  • 在功能ds中配置如下,推荐使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)

后端分页实现方法 #

  • 设定中开启后端分页
  • 在表格数据集(一般是0号), 加总数量的查询, 并加入limit 和 offset参数
select count(1)  from programmers_food
where 1=1 /* and province = '$province' */;

select * from programmers_food
where 1=1 /* and province = '$province' */
limit $limit /* offset $offset */

可变维度实现方法 #

  • 在筛选过滤页面中,设定可变维度,如: province,city
  • 在表格查询中编写,注意参数前带_, 即可实现切换不同维度统计
select 
customer,
/* $_province, */
/* $_city, */
sum(qty) as qty
from programmers_food
group by
customer,
/* $_province, */
/* $_city */

树形表格实现方法 #

  • 在表格显示设定树形ds, 如4号数据集
  • 编写数据集查询即可,注意传参为表格的第一列的名称和值

选项自动化 #

  • 在筛选过滤中设定选项ds,如4号数据集
  • 在字段类型中定义字段为select,如:city:select,province:select
  • 数据中编写查询,注意查询的字段名需要与对应的字段相同,如
select distinct province from programmers_food;
select distinct city from programmers_food
  • 在选项定义中定义选项名

实现在编辑界面数据自动带出 #

  • 在新增修改中设定带出ds映射, 如: city:3
  • 在指定的3号数据集中编写查询,如
select province,owner from programmers_food
where city = '$city'
  • 即可实现选择city时,自动带出province,owner的数据

个性化的定制 #

更多个性化定制可以模板开发中完成,具体使用方法,需要专业版本的服务支持

新增修改的配置方法 #

  • 不管是新增,更新,审批,导入的数据集配置方法都是一样的,参考 数据更新
  • 新建好数据集后,指定对定的数据集序号就可以开启了
  • 关于审批ds, 你需要先建好审批表,然后定义写入审批即可,以下为建表样列
create table modify_request(
    id INT NOT NULL AUTO_INCREMENT,
    tablename VARCHAR(50) NOT NULL,
    codename VARCHAR(50) NOT NULL,
    code VARCHAR(50) NOT NULL,
    columnname varchar(50),
    oldvalue varchar(100),
    newvalue varchar(255),
    requester varchar(50),
    checker varchar(50),
    flag int default 0,
    request_remark varchar(200),
    check_remark varchar(200),
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
) comment '变更清单';
dataset={
    "table":"modify_request",
    "sFields":[],
    "id":"id",
    "fDict":{},
    "autoDict":{"tablename":"表名","codename":"主键名","requester":"$username"}
}

自定义函数 #

//表格行格式,一般用于hightlight行数据
vapp.tableRowClassName=({row, rowIndex})=>{return 'classname';}
//表格行点击动作, 用于点击响应
vapp.handleRowClickChange=(row)=>{}
//自定义,一般用于自定义的操作
vapp.diyFun=(param)=>{}
//刷新表格
vapp.refreshTable();
//刷新过滤
vapp.data_filter();

自定义组件 #

<!--改写查询区域-->
{% block body_search %}{% endblock %}
<!--过滤区前端组件-->
{% block body_filter %}{% endblock %}
<!--改写表格组件-->
{% block body_table %}{% endblock %}
<!--自定义表格列-->
{% block body_table_column %}<span v-else-if="">{[ scope.row[item]]}</span>{% endblock %}
<!--自定义表格操作-->
{% block body_table_column_button %}{% endblock %}
<!--自定义修改页面-->
{% block dialog_modify %}
<el-dialog :title="title" :visible.sync="dialogFormVisible">
 <el-form ref="form" :model="form" :rules="rules"></el-form>
</el-dialog>
{% endblock %}
<!--自定义审批修改页-->
{% block dialog_request %}
<el-dialog  :visible.sync="dialogFormVisible_r"></el-dialog>
{% endblock %}
<!--自定义查看页-->
{% block dialog_card %}
<el-dialog  :visible.sync="dialogTableVisible"></el-dialog>
{% endblock %}

转化为组件 #

在模板中将 vapp.smtdrag=true; 并取消echarts引用的注释, 就可以把CRUD变成一个可拖拽的组件

自定义配置 #

你可以定义来指定那些配置不使用页面配置而采用个人定义,如: vapp.diyKeys=‘nameDict,optionDict’;