jxTMS是以低成本快速定制为核心诉求的、SaaS模式的二次开发平台,详见:jxTMS简介。本文是讲述jxTMS平台中入口部分是如何设计的,整个系列请访问:jxTMS设计思想
入口是jxTMS中的五个基本定制内容之一,从本质上来说,入口就是一个json描述,web界面用之生成一个按钮、工具条、快捷栏项等可点击动作部件。当用户点击后,前端用这些json中的信息向jxTMS发出一个请求,可以打开一个界面或触发一个动作事件。
入口主要有两种定义方式:
-
在op.py中以回调函数的方式进行定义,这主要是快捷栏、菜单、主界面工具条栏中的工具条的定义
-
在web界面中作为控件定义,这主要是用户界面中的按钮、工具条的定义
依据jxTMS的基本理念:尽可能的静态定义、尽量少的动态编程。但为什么主要的入口会在op.py中以回调函数的编程方式进行定义,而不是在op文件中用文本进行定义呢?!
这主要是jxTMS中的capa既有java编写的也有python编写的,而且一开始的、用于组织管理的如人员管理、角色管理等基本的几个capa都是java编写的,而这些java编写的capa除了web界面其它部件都是用java实现的。所以入口就采用了编程的方式来设置,等后期逐步将数据类、数据源都改为文本定义后,由于入口定义的太多,也非常简单,所以就没有改为文本定义了。
入口主要有四种:
-
菜单项
-
快捷栏
-
主界面中动态在工具条栏中添加的工具条
-
web界面中静态定义的按钮或工具条
其中前三者都定义在op.py中,后者为便利考虑,直接以控件形式定义在web界面中。
一个入口就代表着一个功能,或是显示一个操作界面向用户显示业务信息,或是执行一个用户指定的操作。
那么,功能就存在权限问题,即当前用户是否有足够的权力来访问该功能。在jxTMS中,用户能否访问某个功能包括两个层面:
1、是否有权力访问
这需要解决的职权问题。即当前用户从组织的职务、职权方面来看,其是否有执行该功能的权力。
在jxTMS中,这主要是通过角色指定来完成。
2、在当前状态下,是否可以访问
这需要解决的是业务匹配问题。如任务管理都必须有【终止任务】的功能,但一个任务如果已经被终止了,那显然是不需要也不应该被再次终止的。
在jxTMS中,这主要是通过业务状态检查来实现的。
注:只有op.py中定义的入口才可以设置角色;只有动态显示于工具条栏中的工具条才需要设置业务状态检查
目前jxTMS已经开放个人注册试用,欢迎大家注册试用:
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
下面的系列文章讲述了jxTMS的一些基本功能: