$(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;
}