在studio中如何使用SVN
团队开发源代码管理可以是用SVN studio中带的是客户端,需要自己下载服务端进行安装,然后就是SVN服务端标准的操作,网上都可以找到相关的资料,这里不做说明 studio中客户端的使用可以参考,BeX5开发指南中1.5.2小节有讲解 https://pan.baidu.com/s/1cxHxro#list/path=%2F
团队开发源代码管理可以是用SVN studio中带的是客户端,需要自己下载服务端进行安装,然后就是SVN服务端标准的操作,网上都可以找到相关的资料,这里不做说明 studio中客户端的使用可以参考,BeX5开发指南中1.5.2小节有讲解 https://pan.baidu.com/s/1cxHxro#list/path=%2F
accordion组件点击heading部分可以控制accordion展开或收缩状态 展开或收缩状态是通过给组件设置不同的class样式控制的,因此要判断状态可以通过判断class样式实现 如下: $(this.getElementByXid("accordion")).find(".panel-collapse").hasClass("in"); 返回true是展开,false是收缩 accordion1是accordion组件的xid
平台默认提供的轮播组件是bootstrap的carousel,这个组件是左右轮播的,没有上下轮播的设置 如果需要上下轮播可以集成jquery的swiper插件实现 集成jquery插件的时需要注意插件用的jquery的版本,平台默认带的是1.11.1版本的,如果不是这个版本可能会有冲突 经测试swiper3可以在.w中直接集成,swiper4用的jquery的版本比平台默认的高不能直接集成需要用iframe嵌入html的方式实现 本例用的是swiper3, 1.下载swiper,解压到自己UI2相关目录 2.在自己的.w中引用1中解压的的swiper.min.js和swiper.min.css 如下: require("$UI/appdemo/swiper/swiper3/swiper.min"); require("css!$UI/appdemo/swiper/swiper3/swiper.min").load(); 3.在.w同名的css文件中添加如下样式 .swiper-container { width: 100%; height: 100%; } .swiper-slide { text-align: center; font-size: 18px; background: #fff; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; [...]
对于已经启动的流程,在某些特殊的情况下,如果修改流程图, 不建议直接修改process文件中的流程图,可以通过流程定制来解决 流程定制可以有管理员定制或者是每个用户自己定制两种 第一种:管理员定制 1.管理员登录x5系统,打开“协同办公——任务管理——流程模版管理”功能,在“流程模板”tab页中新建选择自己要修改的流程功能,然后编辑进行修改和相关的设置。 2.在“关联组织”tab页中把创建的模板分配给相关的组织 3.在process文件的“启动规则”中设置流程模版 第二种:每个用户自己定制 1.在需要定制的流程环节中添加流转规则,设置定制类型为流程图 2.在环节对应的.w中,给按钮添加process的“流程定制”操作,在页面操作的时候不能先点流转,需要先点“流程定制”进行流程图修改,然后再做流转
在后端流程事件中执行代码比较慢时如果需要流转对话框弹点击确定时弹出遮罩层提示可以参考下面的实现 遮罩层可以用popOver实现 参考http://docs.wex5.com/bex5-process-question-list-10008/扩展这个流程或者这个环节的流转对话 在流转对话框的.w中添加popOver,并在popOver设置弹出提示信息 在确定按钮的事件中调用popOver的显示,需要注意的是把确定按钮中原来的代码放到setTimeout中执行,如下: Model.prototype.okBtnClick = function(event){ var self = this; self.comp("popOver1_1").show(); setTimeout(function(){ self.updateControl(); if (self.checkControl()){ var receiver = self.comp("windowReceive"); receiver.windowEnsure({task: self.task, action: self.action, control: self.control, options: self.options}); }},1); }; [...]
运行时查看流程图时会显示流程执行者等显示,波特图中也会显示,但是发通知时设置的通知接收者是不会显示的,如果需要显示如下实现 1.在process组件的onAfterAdvance事件中获取接收人并存储 public static void noticeFlowProcessAfterAdvance() { String sNoticeExecutors = ""; ProcessControl flowControl = (ProcessControl) ContextHelper.getActionContext().getParameter("control"); List<ProcessControlItem> listToItem = flowControl.getNotices();//获取当前环节流程时所有的通知 for(int j = 0;j<listToItem.size();j++){//遍历所有的通知获取对应的执行者拼接字符串 if(j != 0) sNoticeExecutors = sNoticeExecutors+","; ProcessControlItem to = listToItem.get(j); [...]
一人多岗,并且多个岗位有同一个功能的功能权限,但是不同的岗位同一个action设置了不同的数据权限 平台默认的从功能菜单中打开功能时,是把所有岗位的数据权限按照and的方法拼接起来的,但是功能的当前执行者是主岗,如果需要数据权限也是主岗的参考下面的方案实现 1.在/BIZ/system/config/interceptor.config.m中定义一个拦截器 <item name="initExecutor" value="/system/logic/code,InitExecutor,before"/> 定义在其他拦截器的上面,如下: 2.在/BIZ/system/logic/code/dsrc下创建一个java类InitExecutor,注意要生成对应的class文件,具体实现如下: import java.lang.reflect.Field; import org.apache.log4j.Logger; import com.justep.common.SystemUtils; import com.justep.system.action.Interceptor; import com.justep.system.context.ActionContext; import com.justep.system.context.ContextHelper; //对于非登录的action, 如果executor没有指定或为*时,强制修改为当前人员成员 public class InitExecutor implements Interceptor{ public static Logger logger = [...]
从已定义关系中选择:在同一个模块或者引用的ontolgoy模块中已经定义了所需的关系,可以直接选择使用不用重新定义 添加新关系:在同一个模块或者引用的ontolgoy模块中没有定义所需的关系,需要新添加一个来使用 这个“添加新关系”自动完成了两件事: 1.在左侧的“关系”列表下新建了一个关系 2.把刚新建的关系包含到当前概念下 通过ontolgoy文件头部菜单栏中的“添加关系”只是在左侧的“关系”列表下新建了一个关系,如果概念中需要,需要通过“从已定义关系中选择”选择 因此对于没有定义的关系通过“添加新关系”操作相当于执行了“添加关系”和“从已定义关系中选择”
importExcel组件导入的时候需要选择excel文件,目前默认的在导入的时候没有控制只能选择excel文件 可以参考下面两种方案进行控制 方案一.修改/UI2/system/components/justep/excel/importExcel.js中createUploader方法的实现 在new Uploader的参数中加上accept属性的设置,控制上传类型。这个方案是弹出的选择文件框中只能选择xls或xlsx后缀的文件 如下: _createUploader : function(domNode) { this.uploader = new Uploader(domNode, { actionUrl : uploadURL, autoUpload: false, requestHeader : { Accept : 'application/json' }, name : 'excel', accept : "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }); [...]
在grid中放可编辑组件gridSelect时,平台默认的需点击两次才可以把焦点定位到gridSelect中并显示下拉 可以参考下面的方案实现点击一次就定位到gridSelect中并显示下拉 grid点击会触发onRowClick事件,可以先判断点击的是不是gridSelect所在的列,然后操作gridSelect,具体如下: Model.prototype.mainGridRowClick = function(event){ var grid = event.source; var rowID = event.rowID; var td = event.domEvent.target;//获取触发事件的dom节点 if(td.tagName.toUpperCase()!='TD') {//当grid的列中放了input等组件时,获取的当前元素不是td td = $(td).closest('td')[0];//获取到对应td } var index = $.jgrid.getCellIndex(td);//获取列索引 var colDef = event.source.getColDef(index);//获取列定义 var gridselect [...]