泛微oa流程表單二次開發新人注意事項

1.泛微的PC端和手機端使用的jQuery代碼通用嗎?javascript

  答:根據實際操做狀況,泛微的PC端和手機端使用的jQuery代碼並非通用的,pc端的代碼有些不能在手機模板流程表單中使用。html

極可能在開發手機模板的時候,手機的要單獨寫一套js代碼。java

2.泛微的流程表單裏有給開發人員二次開發的提交校驗方法,checkCustomize()方法,同一個流程表單裏只能寫一個提交校驗方法,注意:一個流程裏若是有多個地方須要判斷,那麼須要都在checkCustomize()方法下進行判斷,在方法中返回true,則進入到下一節點,返回Flase ,不能提交成功。使用代碼以下:ide

<!-- script代碼,若是須要引用js文件,請使用與HTML中相同的方式。 -->
<script type="text/javascript">
    jQuery(document).ready(function() {
        checkCustomize = function() { //提交驗證
            var returnval = true;
            var beginDateTime = jQuery("#field5973").val();
            var endDateTime = jQuery("#field5974").val();
            if(beginDateTime.valueOf() > endDateTime.valueOf()) {
                Dialog.alert("開始日期不能大於結束日期");
                jQuery("#field5973").val("");
                jQuery("#field5974").val("");
                jQuery("#field5973span").html("");
                jQuery("#field5974span").html("");
                returnval = false;
            }
            return returnval;
        }
    });
</script>

3.泛微系統有本身定義的alert警告框,以下:函數

 Dialog.alert("開始日期不能大於結束日期");

4.在進行流程表單開發過程當中,會遇到隱藏字段且移除必填校驗的字段或者給某個字段增長必填校驗,這個地方用泛微提供的顯示屬性聯動操做的話是很是方便的,字段隱藏後,就不會校驗字段必填了js實現就得考慮隱藏後,字段仍是會提示必填驗證,關於這一點,我在百度上借鑑了網友的代碼,pc端很是好用,手機端不適用,會引發其餘代碼失效,代碼引用以下:this

//Ecology8二次開發:HTML表單字段必填驗證的添加與移除
/**
 * 給字段添加必填驗證。
 */
var addInputCheckField = function(fieldId, spanImgId) {
    $('#' + fieldId).attr('viewtype', '1');
    var fieldStr = $('input[name=needcheck]').val();
    if (fieldStr.charAt(fieldStr.length - 1) != ',') {
        fieldStr += ',';
    }
    $('input[name=needcheck]').val(fieldStr + fieldId + ',');
    $('#' + spanImgId).html('<img src="/images/BacoError_wev8.gif" align="absMiddle">');
};
 
/**
 * 移除字段必填驗證。
 */
var removeInputCheckField = function(fieldId, spanImgId) {
    $('#' + fieldId).attr('viewtype', '0');
    var fieldStr = $('input[name=needcheck]').val();
    $('input[name=needcheck]').val(fieldStr.replace(fieldId + ',', ''));
    $('#' + spanImgId).html('');
};
 
// 調用移除必填驗證函數
removeInputCheckField('field10391', 'field10391span');    // 移除必填驗證,主表文本框、選擇框
removeInputCheckField('field10849', 'field10849spanimg');    // 移除必填驗證,主表瀏覽框
removeInputCheckField('field10859_0', 'field10859_0span');    // 移除必填驗證,明細表文本框、選擇框
removeInputCheckField('field10859_0', 'field10859_0spanimg');    // 移除必填驗證,明細表瀏覽框
 
// 調用添加必填驗證函數
addInputCheckField('field10391', 'field10391span');    // 添加必填驗證,主表文本框、選擇框
addInputCheckField('field10849', 'field10849spanimg');    // 添加必填驗證,主表瀏覽框
addInputCheckField('field10859_0', 'field10859_0span');    // 添加必填驗證,明細表文本框、選擇框
addInputCheckField('field10859_0', 'field10859_0spanimg');    // 添加必填驗證,明細表瀏覽框

————————————————
版權聲明:本文爲CSDN博主「九方科技」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/lcwell1990/article/details/77042693

 

5.代碼應先開發發起申請的這個流程,若是流程全用js代碼實現,在開發的時候需注意:spa

5.1.頁面的初始化加載.net

頁面剛進來時會有初始化的頁面效果,這個須要用jQuery加載方法作一下,須要把什麼字段隱藏,什麼字段顯示都在這個代碼中寫,代碼以下:code

$(document).ready(function() {
        
            var type = $('#field24579').val();
            if(type == "1") {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
                $('#field24575_format').hide();
                
            } else if(type == "0") {
                $('.col3').show();
                $('.ht01').show();
                $("#field24575").show();
                $('#field24575_format').hide();

            } else {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $('#field24575_format').hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
            }
        
    });

 

5.2加載完頁面後,用戶這時會操做裏面的內容,好比說,根據某個字段,判斷另一個字段是否必填顯示或者隱藏,這個改變是用change事件或者點擊事件等事件來控制的orm

例如:

//去掉input框中填寫字段兩頭的空格
$(document).ready(function() {
        $('#field24570').change(function() {
        $(this).val($.trim($(this).val()));
    });
});

5.3.用戶一頓操做猛如虎以後,頁面發生了天翻地覆的變化,若是用戶點擊保存後,用戶的頁面操做後的頁面怎麼展現出來,還須要jQuery加載事件來完成,這個加載事件分爲2部分,第一部分是初始化加載頁面,第二部分是保存後的初始化加載頁面,在發起申請流程裏,保存後的加載方法和一開始進入頁面的加載方法是同一塊代碼塊,是相同的代碼每有一個事件發生,頁面初始化加載裏面,就得寫對應的頁面顯示效果,不能你操做了頁面以後保存,頁面的效果沒有展現出來

示範代碼以下:

<!-- script代碼,若是須要引用js文件,請使用與HTML中相同的方式。 -->
<script type="text/javascript">
    $(document).ready(function() {
        $('#field24579').change(function() {//input改變事件
            var type = $('#field24579').val();
            if(type == "1") {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
                $('#field24575_format').hide();
                
            } else if(type == "0") {
                $('.col3').show();
                $('.ht01').show();
                $("#field24575").show();
                $("#field24575").val("");
                $("#field24575span").html("");
                $('#field24575_format').hide();
                $("#field24575span").html("<img src='/images/BacoError_wev8.gif' align='absmiddle'>");
            } else {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $('#field24575_format').hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
            }
        })
    });
    $(document).ready(function() {
        $('#field24570').change(function() {
            $(this).val($.trim($(this).val()));
        });
    });
    
    $(document).ready(function() { //頁面加載方法和事件方法相對應,能夠選擇多個加載代碼塊裏寫
        
            var type = $('#field24579').val();
            if(type == "1") {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
                $('#field24575_format').hide();
                
            } else if(type == "0") {
                $('.col3').show();
                $('.ht01').show();
                $("#field24575").show();
                $('#field24575_format').hide();

            } else {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $('#field24575_format').hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
            }
        
    });


</script>

5.4上面發起申請流程代碼寫完後,須要提交,提交後的頁面是審覈模板了,這時須要在審覈模板裏把你在發起申請流程模板裏的加載頁面初始化的全部代碼拷貝到每個審覈節點,若是不加,用戶操做後在發起申請頁面已經把須要隱藏的字段隱藏了,在提交頁面後的審覈頁面就會再次出現隱藏的字段,由於這個時候審批人員只能填寫審批意見,因此,頁面的改變事件代碼就不起做用了,只是只讀,因此在全部的審覈流程上,只須要初始化加載代碼

例如 審覈流程代碼塊:

<!-- script代碼,若是須要引用js文件,請使用與HTML中相同的方式。 -->
<script type="text/javascript">
    $(document).ready(function() {
        
            var type = $('#field24579').val();
            if(type == "1") {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
                $('#field24575_format').hide();
                
            } else if(type == "0") {
                $('.col3').show();
                $('.ht01').show();
                $("#field24575").show();
                $('#field24575_format').hide();

            } else {
                $('.col3').hide();
                $('.ht01').hide();
                $("#field24575").hide();
                $('#field24575_format').hide();
                $("#field24575span").html("");
                $("#field24575").val("0");
            }
        
    });


</script>

 

5.5.發起申請代碼開發完成後,應先同步到歸檔節點,由於發起申請的模板裏的字段是可編輯的,同步到歸檔後,全部的字段就不可編輯了,成爲只讀字段,注意:歸檔裏面的代碼只是發起申請頁面加載初始化方法,而後從歸檔同步至全部的審覈節點,發起申請不能同步,不然發起申請字段會變成只讀,發起流程的人員不能操做頁面,填寫數據,到此,流程開發結束!

 

6.若有不嚴謹的地方,能夠指出評論,共同進步,以便完善!

相關文章
相關標籤/搜索