s-HR Cloud基于已有视图二开扩展添加一个按钮demo

栏目:s-hr cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

s-HR Cloud基于已有视图二开扩展添加一个按钮demo

背景:s-HR Cloud基于已有视图进行二开扩展添加一个按钮demo


视图举例:com.kingdee.shr.batchAffair.empBatchHire.dynamicList

一、视图配置

如下图,基于标准视图的扩展,增加一个demo按钮,视图配置调整4步

1、进行handler扩展,将标准handler进行注释,新增配置<handler class="com.kingdee.shr.batchAffair.web.handler.EmpBatchMaintainHireListHandlerExt" />

2、对js进行扩展,标准js保留,新增配置<script src="${appPath}/customer/web/js/shr/batchAffair/empBatchHireListExt.js" />

3、对js类进行扩展,标准js类注释,新增配置<jsClass name="shr.batchAffair.EmpBatchHireListExt" />

4、新增按钮配置,<button name="demo" caption="演示按钮"  />

image.webp


二、扩展js,注意js的类名,继承等


/**
 * 员工转正列表扩展
 */
shr.defineClass("shr.batchAffair.EmpBatchHireListExt", shr.batchAffair.EmpBatchHireList, {
	initalizeDOM: function() {
		shr.batchAffair.EmpBatchHireListExt.superClass.initalizeDOM.call(this);
	},
	demoAction:function(){
		var _self = this;
		//组装参数,根据需求组装
		var data ={};
		_self.doRemoteAction({
			method: 'demo',//请求handler的方法,注意,这里的method值,能带Action,只能是demo,对应后端就是请求demoAction方法
			param:data
		});
	},
});

image.webp


三、扩展handler,注意继承体系

package com.kingdee.shr.batchAffair.web.handler;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;

import com.kingdee.shr.base.syssetting.exception.SHRWebException;

public class EmpBatchMaintainHireListHandlerExt extends EmpBatchMaintainHireListHandler {

    public String demoAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
        //add your logic here
        return null;
    }
}


image.webp


四、部署

注意,s-HR的web端工程代码,和服务端代码部署需要区分开来,在开发时候,服务端的模块工程和web端模块工程需要分开,方便jar包制作和开发编码

如上面的Eclipse工程截图中,s-HR的web工程为:customer,字符集UTF-8;服务端工程为shr_custom,字符集GBK


s-HR web端工程,java的编码需要以UTF-8编码进行开发, java代码构建输出生成的jar包放入如下目录{安装目录}\eas\server\lib\addon\customer\lib\customer.jar,如图

image.webp


js代码放到{安装目录}\eas\server\deploy\easweb.ear\shr_web.war\addon\customer\web\js下,如图

image.webp

如果包含服务端代码(带有元数据的工程)需要部署,服务端代码工程需要以GBK编码进行开发

java的jar包放到{安装目录}/eas/server/lib/sp下

元数据的jar包放到{安装目录}/eas/server/metas/sp下


五、如果是直接二开的页面扩展,在原基础上修改扩展,不需要对js和handler进行新建扩展,视图只需要新增按钮配置,<button name="demo" caption="演示按钮"  />

在原js中增加方法demoAction,方法内容可以参考上面

在原handler中增加方法demoAction,方法内容可以参考上面


六、调试


前端js调试,如果在url中没参数debug=true,系统的js文件是压缩模式,无法调试,需要在url中增加此参数进行调试

通过调试模式,看到js源代码,可以参考标准功能js来调整二开的js


后端调试入口com.kingdee.shr.base.syssetting.web.dynamic.controller.DynamicController.executeAction(HttpServletRequest, HttpServletResponse, ModelMap)


http://ip:port/shr/ces.jsp工具可以查看系统信息,补丁信息,类加载信息,下载apusic日志等

image.webp


你好,我还有另外一个问题想问一下,我在使用按钮方法的时候,有没有办法获取当前账号的id?


客户环境部署私包,解决启动提示非法组件:


检查管理控制台,配置参数,路径:


{安装目录}\eas\admin\config\admin.vmoptions,


如果没有isDetectIllegalComponents参数,如果没有添加参数 isDetectIllegalComponents=false


重启管理控制台


启动服务



请问我把部署包放好后,启动集群报这些错误,是什么原因呢?我看项目里没有报错的这个文件,是包的问题吗?


你好,可以给个demo吗?我这里没有可继承的体系

s-HR Cloud基于已有视图二开扩展添加一个按钮demo

背景:s-HR Cloud基于已有视图进行二开扩展添加一个按钮demo视图举例:com.kingdee.shr.batchAffair.empBatchHire.dynamicList一、视图配...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息