应用场景 #
开发个性化的数据提报或业务系统
配置说明 #
只针对一些特殊配置进行说明, 注意所有字段配置都是原始查询的字段名
模块 | 功能 | 样列 | 说明 |
---|---|---|---|
表格显示 | 表格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’;