• E8开发经验分享


    目录

    JS开发

    引入js文件

    表单提交校验

    一些常用函数

    最近一年都在接触泛微OA的一些开发工作,这篇文章将总结这一年以来的二次开发经验。

    JS开发

    引入js文件

    泛微表单建模中可以直接插入JS代码块,但是在这个里面写代码非常反人类,因为它不支持tab缩进,一些语法的标亮提示也没有,所以我习惯把JS写在js文件中,在代码块中引入该js文件即可:

    $(document).ready(function(){
    jQuery.post("/workflow/js/demo.js?"+Math.random(),function(data){});
    });
    写好的js只要放在ecology根目录下的/workflow/js/里即可,js路径后面加上随机函数Math.random()是为了刷新页面后及时载入最新的js文件内容。

    表单提交校验

    在js中新增函数checkCustomize,该函数中判断后返回true则允许提交,返回false则禁止提交。

    一些常用函数

    浏览按钮的禁用与启用:如果想禁用浏览按钮,比如限制用户必须先填某些内容才能选择浏览框,可以用如下代码
    //禁用
    $("#field13769__").attr("disabled",true);
    $("#field13769_browserbtn").attr("disabled",true);
    $("#innerContentfield13769div").css("cursor",'not-allowed');
    $("#field13769_browserbtn").css("cursor",'not-allowed');
    $("#field13769span .e8_showNameClass .e8_delClass").html("");

    //启用
    $("#field13769__").attr("disabled",false);
    $("#field13769_browserbtn").attr("disabled",false);
    $("#innerContentfield13769div").css("cursor",'');
    $("#field13769_browserbtn").css("cursor",'');
    $("#field13769span .e8_showNameClass .e8_delClass").html(" x ");
    明细表遍历:如果想遍历明细表可以用如下代码
    //第一个明细表即oTable0,第二个即oTable1,以此类推...
    jQuery("#oTable0").find("tr[_target=datarow]").each(function(index,obj){
    var i = $(obj).attr("_rowindex");//明细字段的序号
    });
    添加或删除明细:如果想实现程序自动新增明细行或删除明细行,可以用如下代码
    //删除明细行,下面这个是删除所有明细行,如果想删除特定明细行只需选中特定明细行的check框即可
    jQuery("input[type='checkbox'][name='check_node_0']").each(function(){
    jQuery(this).attr({'checked':'checked'});
    });
    //deleteRow0即为删除第一个明细表被勾选的明细行,deleteRow1即为删除第二个明细表被勾选的明细行,以此类推...
    deleteRow0(0,true);

    //添加明细行,addRow0即为给第一个明细表新增一行,addRow1即为给第二个明细表新增一行,以此类推...
    addRow0(0);
    原生提示框:提示框与泛微自带提示框样式统一
    window.top.Dialog.alert("这里写提示信息");
    隐藏明细表的加号按钮,如果不想让用户手工添行,必须通过自动联动添明细行,可以将明细表的加号按钮隐藏
    //addbutton0即为第一个明细表的加号按钮,addbutton1即为第二个明细表的加号按钮,以此类推...
    document.getElementById('$addbutton0$').style.display="none";
    流程中引入JSP,可以做一些复杂的开发
    --只需在表中修改对应的字段即可
    workflow_base,该表中id即对应流程的workflowID,custompage中为引入的JSP文件如今
    在页面上获取requestid、workflowid等
    <!--在引入的JSP中添加如下代码-->
    <%@ page language="java" contentType="text/html; charset=UTF-8" %>
    <%@ page import="java.util.*" %>
    <%@ page import="weaver.general.*" %>
    <%
    int workflowid = Util.getIntValue(request.getParameter("workflowid"));
    int requestid = Util.getIntValue(request.getParameter("requestid"));
    %>
    <script type="text/javascript">
    //在js中即可使用
    var workflowid = '<%=workflowid %>';
    var requestid = '<%=requestid %>';
    </script>
    增加或移除必填验证,应用场景,在明细表中想根据某个字段的值确认另一个字段是否必填,因为泛微自带的编辑属性只能配置主表的且还是下拉选的才能配置
    //移除必填验证
    function removeInputCheckField1(fieldId) {
    $('#' + fieldId).attr('viewtype', '0');
    var fieldStr = $('input[name=needcheck]').val();
    $('input[name=needcheck]').val(fieldStr.replace(fieldId + ',', ''));
    $("#"+fieldId).val('');
    $("#"+fieldId).css("cursor",'not-allowed');
    $("#"+fieldId).attr("disabled",true);
    $("#"+fieldId+"_browserbtn").attr("disabled",false);
    $('#' + fieldId + "span").html("");
    }
    //增加必填控制
    function addInputCheckField1(fieldId) {
    $('#' + fieldId).attr('viewtype', '1');
    var fieldStr = $('input[name=needcheck]').val();
    if(fieldStr.indexOf(fieldId) == -1){
    if (fieldId.charAt(fieldStr.length - 1) != ',') {
    fieldStr += ',';
    }
    $('input[name=needcheck]').val(fieldStr + fieldId + ',');
    }
    $("#"+fieldId).css("cursor",'');
    $("#"+fieldId).attr("disabled",false);
    if($("#"+fieldId).val() == '' || $("#"+fieldId).val() == null || $("#"+fieldId).val() == undefined){
    $('#' + fieldId + "span").html('<img src="/images/BacoError_wev8.gif" align="absMiddle">');
    }

    ————————————————
    版权声明:本文为CSDN博主「cap_jack_sp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sinat_19671783/article/details/104967644

  • 相关阅读:
    Windows Phone 8初学者开发—第2部分:安装Windows Phone SDK 8.0
    Windows Phone 8初学者开发—第1部分:系列介绍
    开始翻译Windows Phone 8 Development for Absolute Beginners教程
    Windows 8 动手实验系列教程 实验8:Windows应用商店API
    Windows 8 动手实验系列教程 实验7:磁贴和通知
    Windows 8 动手实验系列教程 实验6:设置和首选项
    Windows 8 动手实验系列教程 实验5:进程生命周期管理
    Unix时间戳计算
    转载css层级优先级。
    增加原型方法写出删除一个数组相同元素的函数
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/14548843.html
Copyright © 2020-2023  润新知