$(function () { page.init(); //$("#girdtable").on("click", ".subtrdel_js", function () { // if ($(".grid").find(".body").length > 1) { // if (confirm("确认删除该数据行吗??")) { // $(this).closest('tr').remove(); // deleteMethod($(this).closest('tr')); // } // } //}); }); var $loadUrl; var page = { init: function () { page.initForm(); page.bind(); }, /*初始化表单*/ initForm: function () { /*初始化表单*/ if (!!keyValue) { $.ajax({ url: '/FormDesigner/FindFormData?keyValue=' + keyValue, async: false, cache: false, dataType: "json", success: function (response) { if (response.status === 1) { // console.log("流程初始化表单:" + JSON.stringify(response.data.maindata)); if (response.data != null && response.data.maindata != undefined) { $('#iform').FormRender(response.data); $loadUrl = response.data.loadurl;//数据加载地址 } else { layer.alert("无效的表单内容,请检查表单设计"); } } else { layer.alert(response.error); } }, complete: function () { if (taskid !== '') { page.loadInitData($loadUrl); } /*页面权限按钮*/ page.initAuthority(); /*重新装载页面业务Js*/ page.reLoadprofession(); } }); } }, reLoadprofession: function () { /*业务JS装载*/ if (window.loadJsUrl != null && window.loadJsUrl != undefined && window.loadJsUrl !== '') { $.getScript(window.loadJsUrl, function () { if (window.initMethod != null && window.initMethod != undefined && window.initMethod !== '') { eval(window.initMethod); } }); } }, /*绑定事件和初始化控件*/ bind: function () { $(".subtradd_js").on("click", function () { var $row = createTabBody($children.columns, true); $("#girdtable").append($row); var nindex = $("#girdtable").find('tr[class="body"]').length; $.each(window.authorize, function (index, obj) { if (obj.Status === 0)//编辑 { $("#girdtable").find('tr[class="body"]').eq(nindex-1).find("[name='" + obj.Field + "']").removeAttr("disabled").addClass("edit"); } if (obj.Status === 1)//只读 { $("#girdtable").find('tr[class="body"]').eq(nindex-1).find("[name='" + obj.Field + "']").attr("disabled", "disabled"); } if (obj.Status === 2)//隐藏 { if ($("#girdtable").find('tr[class="body"]').eq(nindex - 1).find("[name='" + obj.Field + "']").closest("td").length > 0) { var $tdindex = $("#girdtable").find('tr[class="body"]').eq(nindex - 1).find("[name='" + obj.Field + "']").closest("td").index();//列索引 $('#girdtable').find('tr[class="body"]').eq(nindex - 1).find('td:eq("' + $tdindex + '")').hide(); } } }); setTimeout("initDateTime()", 500); createMethod($row); }); $("#girdtable").on("click", ".subtrdel_js", function () { if ($(".grid").find(".body").length > 1) { if (confirm("确认删除该数据行吗??")) { $(this).closest('tr').remove(); deleteMethod($(this).closest('tr')); } } }); }, /*数据权限加载*/ initAuthority: function () { $.ajax({ url: '/WorkFlowRun/InitAuthority?flowid=' + flowid + '&taskid=' + taskid, async: false, cache: false, dataType: "json", success: function (data) { window.authorize = data.Permission.Authorize; window.keyField = data.KeyField; window.childKeyField = data.ChildKeyField; window.IsFirstStep = data.IsFirstStep; window.annexNumber = data.AnnexNumber; window.StepId = data.StepId; /*当前节点按钮*/ var $btnItems = data.Button; if (data.HasBack && data.HistoryItems.length > 0) { page.createHistoryOption(data.HistoryItems); } /*历史处理意见*/ var $annalItems = data.Opinion;// if ($annalItems != null && $annalItems.length > 0) { page.createOpinion($annalItems, $btnItems); } if ($btnItems.length > 0) { /*控制显示隐藏*/ $.each(window.authorize, function (index, obj) { if (obj.Status === 0) //编辑 { $("[name='" + obj.Field + "']").removeAttr("disabled").addClass("edit"); } if (obj.Status === 1) //只读 { $("[name='" + obj.Field + "']").attr("disabled", "disabled"); } if (obj.Status === 2) //隐藏 { if ($("[name='" + obj.Field + "']").closest("td").length > 0) { var $tdindex = $("[name='" + obj.Field + "']").closest("td").index(); //列索引 $('#girdtable tr').find('td:eq("' + $tdindex + '")').hide(); } else if ($("[name='" + obj.Field + "']").closest("div").length > 0) { $("[name='" + obj.Field + "']").closest("div").parent().hide(); } } }); } else { //add by yaozy 2019/6/12 判断权限列表是否为空 if (window.authorize != null) { /*控制显示隐藏*/ $.each(window.authorize, function (index, obj) { if (obj.Status === 2) //隐藏 { if ($("[name='" + obj.Field + "']").closest("td").length > 0) { var $tdindex = $("[name='" + obj.Field + "']").closest("td").index(); //列索引 $('#girdtable tr').find('td:eq("' + $tdindex + '")').hide(); } else if ($("[name='" + obj.Field + "']").closest("div").length > 0) { $("[name='" + obj.Field + "']").closest("div").parent().hide(); } } }); } var $tdindex = $(".subtradd_js").closest("td").index(); //列索引 $('#girdtable tr').find('td:eq("' + $tdindex + '")').hide(); } page.createButton($btnItems); if (window.IsFirstStep === false) { var $tdindex = $(".subtradd_js").closest("td").index(); //列索引 $('#girdtable tr').find('td:eq("' + $tdindex + '")').hide(); } } }); }, /*页面按钮创建*/ createButton: function ($btnItems) { var $row = $('
'); /*附件控件*/ $row.append(initannex()); if ($btnItems.length > 0) { $.each($btnItems, function (index, obj) { var $btn = $(''); $row.append($btn); }); } $("#iform").append($row); }, createHistoryOption: function ($annalItems) { var $row = $('
'); var $history = $('
'); var $title = $('
历史意见  
'); $history.append($title); var $panel = $(''); var $content = $('
'); var $table = $('
'); var $thead = $('#' + ' 步骤名称' + ' 发送时间' + ' 处理人' + ' 完成时间' + ' 处理结果' + ' 处理意见' + ''); $table.append($thead); $table.append($thead); var $tbody = $(''); $.each($annalItems, function (index, obj) { //console.log(obj.OrderBy); var $trow = $('' + (obj.OrderBy) + '' + '' + obj.StepName + '' + '' + JsonDateToDate(obj.ReceiveTime).Format("yyyy-MM-dd HH:mm") + '' + '' + (obj.DealName == null ? "" : obj.DealName) + '' + '' + JsonDateToDate(obj.CompletedTime).Format("yyyy-MM-dd HH:mm") + '' + '' + obj.ReviewStatus + '' + '' + (obj.Comment === null ? "" : obj.Comment) + '' + ''); $tbody.append($trow); }); $table.append($tbody); $content.append($table); $panel.append($content); $history.append($panel); $row.append($history); $("#iform").append($row); }, /*历史处理意见*/ createOpinion: function ($annalItems, $btnItems) { var $row = $('
'); var $title = $('
处理详情
'); $row.append($title); var $content = $('
'); var $table = $('
'); var $thead = $('#' + ' 步骤名称' + ' 发送时间' + ' 处理人' + ' 状态' + ' 完成时间' + ' 处理结果' + ' 处理意见' + ''); $table.append($thead); var $tbody = $(''); $.each($annalItems, function (index, obj) { var $trow = $('' + (index + 1) + '' + '' + obj.StepName + '' + '' + (obj.ReceiveTime == null ? "" : obj.ReceiveTime) + '' + '' + (obj.DealName == null ? "" : obj.DealName) + '' + '' + obj.StepState + '' + '' + (obj.CompletedTime == null ? "" : obj.CompletedTime) + '' + '' + obj.ReviewStatus + '' + '' + (obj.Comment === null ? "" : obj.Comment) + '' + ''); $tbody.append($trow); }); $table.append($tbody); $content.append($table); if ($btnItems != null && $btnItems.length > 0 && window.IsFirstStep === false) { var $verify = $('
' + '
' + '' + '
'); $content.append($verify); } $row.append($content); $("#iform").append($row); }, /*获取数据*/ loadInitData: function ($url) { $.ajax({ url: $url + "?sysid=" + sysid, async: false, cache: false, dataType: "json", success: function (data) { window.initItems = data; window.childrenItems = data.Children; var $data = data.Children; for (var name in data) { if (name !== "children") { var $value = data[name]; if ($value != null && $value !== '') { var $control = $(".main [field='" + name + "']"); var $controltype = $control.prop("tagName"); if ($controltype != null && $controltype !== '') { var $type = $control.attr("type"); if ($type !== "radio" && $type !== "checkbox") { $(".main [field='" + name + "']").val($value); } if ($type === "radio") { $(".main [field='" + name + "'][value='" + $value + "']").attr("checked", "checked"); } if ($type === "checkbox") { var $items = $(".main [field='" + name + "']"); var $arr = $value.split(","); $.each($items, function (index, obj) { var value = $(obj).attr("value"); if (contains($arr, value)) $(obj).attr("checked", "checked"); }); } } } } } if ($data != null && $data.length > 0) { var $grid = $('
'); var $zrow = renderGirdtableByData($children, $data); $grid.append($zrow); $childTable = $children.columns[0].table; $("#iform").append($grid); } } }); } }; initannex = function () { var $annex = $('
'); var $control = $(""); if (window.IsFirstStep === false) { $control = $(""); } if (window.StepId == '03230afe-ae86-4d2e-a37d-592fb2f41f14') { $control = $(""); } $annex.append($control); return $annex; } deleteMethod = function (self) { console.log("删除表格后的计算事件,请自己实现"); } createMethod = function () { console.log("创建表格后事件,请自己实现"); } // 设置主表权限控制 setPowerMain = function () { var $main = $("#iform .main"); /*控制显示隐藏*/ $.each(window.authorize, function (index, obj) { if (obj.Status === 0) //编辑 { $main.find("[name='" + obj.Field + "']").removeAttr("disabled").addClass("edit"); } if (obj.Status === 1) //只读 { $main.find("[name='" + obj.Field + "']").attr("disabled", "disabled"); } if (obj.Status === 2) //隐藏 { if ($main.find("[name='" + obj.Field + "']").closest("div").length > 0) { $main.find("[name='" + obj.Field + "']").closest("div").parent().hide(); } } }); } // 设置子表权限 setPowerChild = function () { var $child = $("#iform #girdtable"); /*控制显示隐藏*/ $.each(window.authorize, function (index, obj) { if (obj.Status === 0) //编辑 { $child.find("[name='" + obj.Field + "']").removeAttr("disabled").addClass("edit"); } if (obj.Status === 1) //只读 { $child.find("[name='" + obj.Field + "']").attr("disabled", "disabled"); } if (obj.Status === 2) //隐藏 { if ($child.find("[name='" + obj.Field + "']").closest("td").length > 0) { var $tdindex = $child.find("[name='" + obj.Field + "']").closest("td").index(); //列索引 $('#girdtable tr').find('td:eq("' + $tdindex + '")').hide(); } } }); } $(document).on("keyup", "input[checkexpession='Num'],input[checkexpession='NumOrNull']", function () { var val = $(this).val(); if (isNaN(val) && val != '-') { $(this).val($(this).val().substring(0, $(this).val().length - 1)); } else { $(this).val($.trim($(this).val())); } }); //+--------------------------------------------------- //| Json格式日期转为 date对象 //| 格式 /Datexxxxx //+--------------------------------------------------- function JsonDateToDate(jsondate) { var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10)); return date; } Date.prototype.Format = function (formatStr) { var str = formatStr; var Week = ['日', '一', '二', '三', '四', '五', '六']; var mt = this.getMonth() + 1; str = str.replace(/yyyy|YYYY/, this.getFullYear()); str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100)); str = str.replace(/MM/, mt > 9 ? mt : '0' + mt); str = str.replace(/M/g, mt); str = str.replace(/w|W/g, Week[this.getDay()]); str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate()); str = str.replace(/d|D/g, this.getDate()); str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours()); str = str.replace(/h|H/g, this.getHours()); str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes()); str = str.replace(/m/g, this.getMinutes()); str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds()); str = str.replace(/s|S/g, this.getSeconds()); return str; }