大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

表单库组件

新建表单库、表单库列表等

新建表单 create_dataitem 

代码示例:

# 一个按钮
button = ui.button('新建', style="float:right").icon('plus')
# 点击按钮,会加载一个新建表单,传递表单初始值
create_form = button.load_on('click', context, request, 'zopen.datacontainer:create_dataitem', data=dict(owner=[pid]))
# 新建表单会抛出创建成功事件。捕获这个事件后,调用 zopen.okr:new_okr 脚本
create_form.on('created', context, request, 'zopen.okr:new_okr')
print button

其中load_on载入组件 zopen.datacontainer:create_dataitem 传递参数 data 是表单的初始值,使用dict说明各个参数

编辑表单 edit_dataitem 

button = ui.button('编辑', style="float:right").icon('pencil')
edit_form = button.load_on('click', context['okrs'], request, 'zopen.datacontainer:edit_form', data=dict(owner=[pid]))
# 新建表单会抛出创建成功事件
edit_form.on('updated', context, request, 'zopen.okr:new_okr')
print button

查看表单页 view_dataitem_default

这个会显示只读的表单页遮罩窗口

表单清单 dataitem_listing

表单清单组件,提供过滤、分页、排序的表单清单,界面如下:

调用 zopen.datacontainer:dataitem_listing 返回上述表单清单界面组件:

print root.call_script('zopen.datacontainer:dataitem_listing', context=context, request=request, view=view)

可传递如下参数:


- init_query_json: 初始的组合条件,list类型,支持多个条件(query_json)
- limit:只搜索前多少项,默认为None,表示不做限制
- sort:排序依据
- reverse: 倒序
- form_id: 中心表单id(汇总搜索条件)
- page_size: 单页显示条数,如果为0,就不做分页
- columns:表单显示的字段栏目
- widgets:类型为list,展示哪些小部件:

  - stage: 阶段筛选
  - export:导出/导入功能
  - setting: 显示列设置
  - select: 多选框
  - calendar:控制日历入口;
  - stat:统计入口

内置组件

流程历史 workflow_history

某个流程单对象的全部流程历史:

ui.portlets.workflow_history(context, request) 

容器下的对象树 container_tree

某个栏目下的对象树,可以方便的添加表单::

    ui.portlets.container_tree(context, request)

表单列表 dataitem_list

ui.portlets.dataitem_list(dataitem_batch, request, columns=['title', 'creators', 'created'])

其中:

- ``dataitem_batch`` 是一个表单的batch对象,渲染结果,可以自动分页
- ``columns`` 显示哪些列

表单搜索

ui.portlets.dataitem_search(container, request, search_url)

``search_url`` 是搜索结果处理脚本::

results = search_dataitem(container, request)