You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

395 lines
12 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
说明:
1. 围绕该文件工作的有两个js文件分别是。 FrmFool.js
2. 对于傻瓜表单自由表单的,展现方式不同以外其他的都相同.
3. 相同的部分写入到了该文件里不同的部分分别在不同的两个js文件里.
4. MapExt2021.js 文件是一个公用的文件,用于处理扩展业务逻辑的,它在多个地方别调用了.
*/
var isReadonly = false;
var IsSave = false;//是否已经保存
//初始化函数
$(function () {
//增加css样式
$('head').append('<link href="../../DataUser/Style/GloVarsCSS.css" rel="stylesheet" type="text/css" />');
initPageParam(); //初始化参数.
if (pageData.IsNew == 0) //数据编辑字段
IsSave = true;
//隐藏保存按钮.
if (GetHrefUrl().indexOf('&IsReadonly=1') > 1
|| GetHrefUrl().indexOf('&IsEdit=0') > 1) {
isReadonly = true;
$("#Save").hide();
$("#SaveAndClose").hide();
}
//构造表单.
GenerFrm(); //表单数据.
$("#ToolBar .layui-btn").on('click', function () {
switch (this.name) {
case "Save":
Save(false);
break;
case "SaveAndAdd":
Save(true);
break;
case "Delete":
DeleteDtlFrm();
break;
case "Close":
CloseIt();
break;
}
});
});
/**
* 网页页面参数获取
*/
var pageData = {};
var richTextType = getConfigByKey("RichTextType", 'tinymce');
function initPageParam() {
pageData.FK_Flow = GetQueryString("FK_Flow");
pageData.FK_Node = GetQueryString("FK_Node");
pageData.FID = GetQueryString("FID") == null ? 0 : GetQueryString("FID");
var oid = GetQueryString("WorkID");
if (oid == null)
oid = GetQueryString("OID");
oid = oid == null || oid == undefined || oid == "" ? 0 : oid;
pageData.OID = oid;
pageData.Paras = GetQueryString("Paras");
pageData.IsReadonly = GetQueryString("IsReadonly"); //如果是IsReadonly就表示是查看页面不是处理页面
pageData.IsStartFlow = GetQueryString("IsStartFlow"); //是否是启动流程页面 即发起流程
pageData.DoType1 = GetQueryString("DoType");
pageData.FK_MapData = GetQueryString("FK_MapData");
pageData.IsNew = GetQueryString("IsNew")||"0";
}
/**
* 表单数据获取
*/
var frmData = null;
function GenerFrm() {
var href = GetHrefUrl();
var urlParam = href.substring(href.indexOf('?') + 1, href.length);
urlParam = urlParam.replace('&DoType=', '&DoTypeDel=xx');
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddUrlData(urlParam);
handler.AddJson(pageData);
var data = handler.DoMethodReturnString("DtlFrm_Init");
if (data.indexOf('err@') == 0) {
layer.alert('装载表单出错,请查看控制台console,或者反馈给管理员.'+'<br/>'+data);
console.log(data);
return;
}
if (data.indexOf('url@') == 0) {
data = data.replace('url@', '');
SetHref(data);
return;
}
try {
frmData = JSON.parse(data);
}
catch (err) {
layer.alert("frmData数据转换JSON失败(请查看控制台console):" + data);
console.log(data);
return;
}
//获取没有解析的外部数据源
var uiBindKeys = frmData["UIBindKey"];
if (uiBindKeys.length != 0) {
//获取外部数据源 handler/JavaScript
var operdata;
for (var i = 0; i < uiBindKeys.length; i++) {
var sfTable = new Entity("BP.Sys.SFTable", uiBindKeys[i].No);
var srcType = sfTable.SrcType;
if (srcType != null && srcType != "") {
//Handler 获取外部数据源
if (srcType == 5) {
var selectStatement = sfTable.SelectStatement;
if (plant == "CCFlow")
selectStatement = basePath + "/DataUser/SFTableHandler.ashx" + selectStatement;
else
selectStatement = basePath + "/DataUser/SFTableHandler" + selectStatement;
operdata = DBAccess.RunDBSrc(selectStatement, 1);
}
//JavaScript获取外部数据源
if (srcType == 6) {
operdata = DBAccess.RunDBSrc(sfTable.FK_Val, 2);
}
frmData[uiBindKeys[i].No] = operdata;
}
}
}
//处理附件的问题
if (frmData.Sys_FrmAttachment.length != 0) {
Skip.addJs("./Ath.js");
Skip.addJs("./JS/FileUpload/fileUpload.js");
Skip.addJs("../Scripts/jquery-form.js");
Skip.addJs("../../DataUser/OverrideFiles/Ath.js");
$('head').append("<link href='./JS/FileUpload/css/fileUpload.css' rel='stylesheet' type='text/css' />");
}
//解析表单数据
$('head').append('<link href="../../DataUser/Style/FoolFrmStyle/Default.css" rel="stylesheet" type="text/css" />');
Skip.addJs("./FrmFool.js?ver=" + Math.random());
GenerFoolFrm(frmData);
//获得sys_mapdata.
var mapData = frmData["Sys_MapData"][0];
//初始化Sys_MapData
var w = mapData.FrmW;
//表单名称.
document.title = mapData.Name;
$('#ContentDiv').width(w);
$('#ContentDiv').css("margin-left", "auto").css("margin-right", "auto");
var enName = mapData.No;
loadScript("../../DataUser/JSLibData/" + enName + "_Self.js?t=" + Math.random());
//星级评分事件
setScore(isReadonly);
//如果是富文本编辑器
if ($(".rich").length > 0) {
var images_upload_url = "";
var directory = "ND" + pageData.FK_Flow;
var handlerUrl = "";
if (plant == "CCFlow")
handlerUrl = basePath + "/WF/Comm/Handler.ashx";
else
handlerUrl = basePath + "/WF/Comm/Sys/ProcessRequest.do";
images_upload_url = handlerUrl + '?DoType=HttpHandler&DoMethod=RichUploadFile';
images_upload_url += '&HttpHandlerName=BP.WF.HttpHandler.WF_Comm_Sys&Directory=' + directory;
layui.extend({
tinymce: '../Scripts/layui/ext/tinymce/tinymce'
}).use('tinymce', function () {
var tinymce = layui.tinymce;
$(".rich").each(function (i, item) {
var id = item.id;
tinymce.render({
elem: "#" + id
, height: 200
, images_upload_url: images_upload_url
, paste_data_images: true
});
})
});
}
//3.装载表单数据与修改表单元素风格.
LoadFrmDataAndChangeEleStyle(frmData);
layui.form.render();
//4.解析表单的扩展功能
AfterBindEn_DealMapExt(frmData);
$.each($(".ccdate"), function (i, item) {
var format = $(item).attr("data-info");
if (format.indexOf("HH") != -1) {
layui.laydate.render({
elem: '#' + item.id,
format: $(item).attr("data-info"), //可任意组合
type: 'datetime',
done: function (value, date, endDate) {
var data = $(this.elem).data();
$(this.elem).val(value);
if (data && data.ReqDay != null && data.ReqDay != undefined)
ReqDays(data.ReqDay);
}
});
} else {
layui.laydate.render({
elem: '#' + item.id,
format: $(item).attr("data-info"), //可任意组合
done: function (value, date, endDate) {
var data = $(this.elem).data();
$(this.elem).val(value);
if (data && data.ReqDay != null && data.ReqDay != undefined)
ReqDays(data.ReqDay);
}
});
}
})
}
/**
* 保存一条从表数据
* @param {any} isSaveAndNew 是不是保存且新增
*/
function Save(isSaveAndNew) {
//正在保存弹出层
var index = layer.msg('正在保存,请稍后..', {
icon: 16
, shade: 0.01
});
$("[name=Dtl]").each(function (i, obj) {
var contentWidow = obj.contentWindow;
if (contentWidow != null && contentWidow.SaveAll != undefined && typeof (contentWidow.SaveAll) == "function") {
contentWidow.SaveAll();
}
});
//监听提交
layui.form.on('submit(Save)', function (data) {
//保存信息
var formData = getFormData(data.field);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("IsForDtl", 1);
handler.AddPara("EnsName", GetQueryString("EnsName"));
handler.AddPara("RefPKVal", GetQueryString("RefPKVal"));
handler.AddPara("OID", GetQueryString("OID"));
for (var key in formData) {
handler.AddPara(key, encodeURIComponent(formData[key]));
}
var data = handler.DoMethodReturnString("FrmGener_Save");
layer.close(index);
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
//layer.alert("数据保存成功");
if (isSaveAndNew == false) {
layer.alert("数据保存成功");
//SetHref(GetHrefUrl() + "&IsSave=true");
IsSave = true;
return false;
}
IsSave = false;
var url = "DtlFrm.htm?EnsName=" + GetQueryString("EnsName") + "&RefPKVal=" + GetQueryString("RefPKVal") + "&OID=0&IsNew=1";
SetHref(url);
return false;
});
}
//设置表单元素不可用
function setFormEleDisabled() {
//文本框等设置为不可用
$('#divCCForm textarea').attr('disabled', 'disabled');
$('#divCCForm select').attr('disabled', 'disabled');
$('#divCCForm input[type!=button]').attr('disabled', 'disabled');
}
var pageData = {};
//回填扩展字段的值
function SetAth(data) {
var atParamObj = $('#iframeAthForm').data();
var tbId = atParamObj.tbId;
var divId = atParamObj.divId;
var athTb = $('#' + tbId);
var athDiv = $('#' + divId);
$('#athModal').modal('hide');
//不存在或来自于viewWorkNodeFrm
if (atParamObj != undefined && atParamObj.IsViewWorkNode != 1 && divId != undefined && tbId != undefined) {
if (atParamObj.AthShowModel == "1") {
athTb.val(data.join('*'));
athDiv.html(data.join(';&nbsp;'));
} else {
athTb.val('@AthCount=' + data.length);
athDiv.html("附件<span class='badge' >" + data.length + "</span>个");
}
} else {
$('#athModal').removeClass('in');
}
$('#athModal').hide();
var ifs = $("iframe[id^=track]").contents();
if (ifs.length > 0) {
for (var i = 0; i < ifs.length; i++) {
$(ifs[i]).find(".modal-backdrop").hide();
}
}
}
//查看页面的附件展示 查看页面调用
function ShowViewNodeAth(athLab, atParamObj, src) {
var athForm = $('iframeAthForm');
var athModal = $('athModal');
var athFormTitle = $('#athModal .modal-title');
athFormTitle.text("上传附件:" + athLab);
athModal.modal().show();
}
function SaveDtlData() {
if (IsChange == false)
return;
Save();
}
/**
* 删除从表数据
*/
function DeleteDtlFrm() {
layer.confirm('您确定要删除吗?', function (index) {
layer.close(index);
IsSave = true;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("EnsName", GetQueryString("EnsName"));
handler.AddPara("RefPKVal", GetQueryString("RefPKVal"));
handler.AddPara("OID", GetQueryString("OID"));
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
var data = handler.DoMethodReturnString("DtlFrm_Delete");
if (data.indexOf('err@') == 0) {
layer.alert(data);
return;
}
layer.alert(data);
CloseIt();
return;
})
}
/**
* 关闭弹出窗
*/
function CloseIt() {
dtlFrm_Delete();
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
function dtlFrm_Delete() {
if (IsSave == false) {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("EnsName", GetQueryString("EnsName"));
handler.AddPara("RefPKVal", GetQueryString("RefPKVal"));
handler.AddPara("OID", GetQueryString("OID"));
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
var data = handler.DoMethodReturnString("DtlFrm_Delete");
if (data.indexOf('err@') == 0) {
layer.alert(data);
return;
}
}
}