パンマイクロOAプロセスフォームのOAプロセスに一般的に使用されるjs

1.日付フィールドの選択範囲を制御します。たとえば、コスト生成日は、現在の日付の10日前から今日までしか選択できません。それ以外の場合、プロセスを送信することはできません。

封装方法: cus_judgeDateRange(fieldid, floorday, upperday)
* @param {
    
    fieldid} 日期字段ID
* @param {
    
    floorday} 下限天数(与当前日期比较),空值代表不限制
* @param {
    
    upperday} 上限天数(与当前日期比较),空值代表不限制
* @return 返回true表示在范围内,false表示超出限定范围或日期置为空

2. 2つの日付と時刻のフィールドの組み合わせの時間差をリアルタイムで計算し、別のフィールドに割り当てます。
パッケージ化方法:cus_CalTimeDiff(begfields、endfields、unit、digit)

 * @param {
    
    begfields} 开始时间
 * @param {
    
    endfields} 结束时间
 * @param {
    
    unit} 计量结果单位1()、2(小时)、3(分钟)、4(),默认为天
 * @param {
    
    digit} 计算结果保留小数位数,默认2位小数
 * @return 以endfields字段值减去beginfields字段值得到时间差值

3.プロセスを送信する場合、検証の終了時刻は開始時刻よりも長くする必要があります。それ以外の場合、プロセスの送信は許可されません。
パッケージメソッド:cus_CompareTime(timefield1、timefield2)

 * @param {
    
    timefield1} 字段1(开始时间)
 * @param {
    
    timefield2} 字段2(结束时间)
 * @return 返回true表示timefield2较大,false表示timefield1较大或相等
 * 注:timefield1/timefield2结构,可为单独日期字段、单独时间字段、日期+时间组合字段(以英文逗号隔开);日期字段空值默认取今天,时间字段空值默认为00:00

4. E8フォームフィールドにラジオボタン(ラジオスタイル)がありません。ラジオボタンを実現するにはどうすればよいですか?選択ボックスフィールドを単一選択ボックスの表示/編集に変換します

封装方法:cus_ConvertSelectToRadio(fieldids)
 * @param {
    
    fields}字段id集合,以逗号隔开
 *:转换后可能不支持联动功能,只是转换样式显示/编辑

5.さまざまな選択ボックスの値に従って、詳細領域の表示と非表示を制御します

步骤一:设计器明细所在单元格/行设置自定义属性name:_detailarea
步骤二:代码块插入
cus_HideAreaByName("_detailarea");    //封装的根据name属性隐藏区域方法
cus_ShowAreaByName("_detailarea");    //封装的根据name属性显示区域方法

6.選択ボックスの異なる値に従って、詳細列の非表示/表示を制御します

步骤一:需要隐藏的列设置列自定义属性class:_detailcolumn
步骤二:代码块插入
封装接口:cus_ControlDetailColumnByClass(cusclassname, status)
 * @param {
    
    cusclassname}  列自定义class属性
 * @param {
    
    status}  1为显示,2为隐藏

7、指定されたフィールドが必須であることを確認します

cus_verifyExistNullField("field13031,field13032", "字段未填写");    //封装的校验是否存在空值字段方法

8.フィールドIDに従って、フィールドの対応する値を直接取得します

cus_getFieldValue(fieldid)

9、テキストタイプフィールドに値を割り当てます

cus_setInputFieldValue(fieldid, fieldvalue)

10.詳細行で注意すべき点

明细行数据行数:indexnum0
明细行序号行数:nodesnum0

11.ブラウジングボタンのステッチを処理します

function BrowseBoxData(viewtype, ahtml, id) {
    
    
	var ismust = 1;
	if (viewtype == '1') {
    
    
		ismust = 2;
	}

	var str = "<span class=\"e8_showNameClass\">";
	str += ahtml;

	// str += "<span class=\"e8_delClass\" id=\"" + id + "\" οnclick=\"del(event,this," + ismust + ",false,{});\" style=\"opacity: 1; visibility: visible;\">&nbsp;x&nbsp;</span></span>";
	str += "<span class=\"e8_delClass\" id=\"" + id + "\" οnclick=\"del(event,this," + ismust + ",false,{});\" style=\"opacity: 0; visibility: hidden;\">&nbsp;x&nbsp;</span></span>";
	return str;
};

ここに写真の説明を挿入

12.すべての詳細行を削除します

$("#detailDiv_0").find("tr").each(function(){
    
    
			if("datarow" == $(this).attr("_target")){
    
    
				$(this).remove();
			}
		});

13、ブラウジングボタン
1をシミュレートし、ブラウジングクリックイベントを書き換えます
ここに写真の説明を挿入

2.ajaxを使用してバックグラウンドjspページを呼び出します
ここに写真の説明を挿入
ここに写真の説明を挿入

14.プロセスバインディングイベントの注意事項
プロセス自体には多くのバインディングイベントがあるため、多くの場合、attrを使用して対応するイベントをスプライスすることはできません。bindPropertyを使用してバインドすることをお勧めします。
ここに写真の説明を挿入

15.提出前に行ったjs

checkCustomize = function (){
    
    //提交的时候判断
	if(true){
    
    
		流程提交
	}else{
    
    
		流程不提交
	}
}

コメント欄にメッセージを残して、一緒に話し合ってください~~~

必要に応じて、WeChat:hdygzh2019に連絡してください。同時に、あなたの意図を説明し、一緒に進歩してください!

おすすめ

転載: blog.csdn.net/Y_6155/article/details/109018957