var s4 = new SM4Util();
var get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
var get_userId = $.cookie("GlWorkPlatform-userid");
var get_formeditid = sp.getUrlName("formeditid");
var get_routeinfoid = sp.getUrlName("routeinfoid");
var get_routeid = sp.getUrlName("routeid");
var get_id = sp.getUrlName("id");
var get_pagefrom = sp.getUrlName("pagefrom");
var get_leftActive = sp.getUrlName("leftActive");
var get_leftActiveType = sp.getUrlName("leftActiveType");
////返回按钮事件
function btnGoBack() {
if (get_pagefrom == "formManageformlist") {
window.location.href = "../formManage/formlist.html?leftActive=" + get_leftActive + "&leftActiveType=" + get_leftActiveType;
} else {
window.location.href = "viewlist.html";
}
};
///左侧tab点击切换
$('#sptabLeftCode').settabs({
event: 'click'
});
var get_userid = "";
var get_routeid = sp.getUrlName("routeid");
//////取得权限设置
function getRole() {
$.ajax({
url: 'json/role.txt',
type: 'get',
data: { userid: get_userid },
dataType: "json",
success: function (res) {
if (res.success) {
if (res.message == "addAndEdit") {
///新增和编辑权限
$("#btnSaveHtmlFileSpan").show();
} else if (res.message == "edit") {
///编辑权限可以设计和保存
$("#btnSaveHtmlFileSpan").show();
} else if (res.message == "read") {
///只读权限,提交按钮删除
$("#btnSaveHtmlFileSpan").remove();
} else {
$("#btnSaveHtmlFileSpan").remove();
sp.dialog("您好,返回的权限不正确");
}
} else {
sp.dialog("您好,未得到权限设置");
}
},
error: function (returndata) {
}
});
};
getRole();
var fbDragVars = {};////声明变量存储要拖拽的左侧字段控件
var queryDataColsCustom_data = {};///声明变量存储加载到的左侧字段的数据
/////主表字段构成20180826
function getFbTableDataFild() {
queryDataColsCustom_data = {};///声明变量存储加载到的左侧字段的数据
var fbdataurl = "";///声明数据路径
if (get_routeid == "23001") {
fbdataurl = "json.page/fawen/fawen_huiYiJiYao_24.txt?v=" + new Date();////发文--会议纪要--word24
} else if (get_routeid == "23002") {
fbdataurl = "json.page/fawen/fawen_dangweizhengshiwen_17.txt?v=" + new Date();////发文--党委正式文--word17
} else if (get_routeid == "23003") {
fbdataurl = "json.page/fawen/fawen_dangweiqitawen_13.txt?v=" + new Date();////发文--党委其他文--word13
} else if (get_routeid == "23003") {
fbdataurl = "json.page/shouwen/shouwen_lingdaopishidangkouchengbandan_3.txt?v=" + new Date();////收文--领导批示党口承办单--word3
} else if (get_routeid == "23003") {
fbdataurl = "json.page/shouwen/shouwen_zhujianweiwenjianchengbandan_4.txt?v=" + new Date();////收文--住建委文件承办单--word4
} else if (get_routeid == "23991") {
fbdataurl = "json.page/spandown/spandown_test_1.txt?v=" + new Date();////为了演示
} else {
fbdataurl = "json/formdata.txt?v=" + new Date();////为了演示
}
var postData = {
"formeditid": get_formeditid,
"billkey":""
}
var postData_post = {
"data": s4.encryptData_CBC(JSON.stringify(postData))
}
$.ajax({
type: "post",
//url: fbdataurl,
url: apiurljs.login + "g2work/formedit/queryDataColsCustom",
//data: {
// "data": s4.encryptData_CBC(JSON.stringify(postData))
//},
data: JSON.stringify(postData_post),
dataType: "json",
contentType: "application/json",
headers: { Authorization: "Bearer " + get_AccessToken }, ////请求头headers
success: function (obj) {
var res = strToJson(s4.decryptData_CBC(obj.data)).data;
queryDataColsCustom_data = res;
//console.log(JSON.stringify(res));
//遍历主表 20180828
//console.log(res);
if (sp.isval(res.TableCols)) {
$.each(res.TableCols, function (index, item) {
//console.log(item.showtype);
if (item.EKIND == "edit") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "datetime") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "number") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "decimal") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "text") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "select") {
var options = "";
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
options = ""
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "radiobox") {
var control = "";
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
control = ""
fbDragVars[varname] = "
" + control + "
";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "checkbox") {
var control = "";
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
control = ""
fbDragVars[varname] = "
" + control + "
";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "imgupload") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
}
else if (item.EKIND == "fileupload") {
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "
";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else if (item.EKIND == "popradiobox") {
///弹出窗口,单项选择器
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
var varname_layer = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control_$010$_layer" + item.CODE;
fbDragVars[varname_layer] = "
" +
"
选择" + item.CNAME + "×
" +
"
"+
"
"+
""+
"
"+
"
"+
"
"+
"
"+
"关 闭" +
"确 定" +
"
"+
"
"+
"
";
} else if (item.EKIND == "popcheckbox") {
///弹出窗口,多项选择器
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
var varname_layer = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control_$010$_layer" + item.CODE;
fbDragVars[varname_layer] = "
" +
"
选择" + item.CNAME + "×
" +
"
" +
"
" +
"" +
"
" +
"
" +
"
" +
"
" +
"关 闭" +
"确 定" +
"
" +
"
" +
"
";
} else if (item.EKIND == "optionbox") {
///意见控件
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "
"+
"
"+
"签写意见";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
var varname_layer = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control_$010$_layer_optionbox" + item.CODE;
fbDragVars[varname_layer] = "
" +
"
签写意见×
" +
"
" +
"
" +
"
" +
"
文字
" +
"
手签
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"" +
"
" +
"
" +
"
常用语
" +
"" +
"
" +
"常用语1" +
"常用语2" +
"
" +
"
新增常用语
" +
"" +
"
" +
"" +
"
新增
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
"+
"" +
"
" +
"
清 除
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"关 闭" +
"确 定" +
"
" +
"
" +
"
";
} else if (item.EKIND == "htmltext") {
///HTML编辑控件,
var varname = "fb$_10_0$main$_101_$table$" + index + "_$vars$_$010$_$control";
fbDragVars[varname] = "正在开发中..";
var fbleftcol = "" + item.CNAME + "";
$("#controlDivPart").append(fbleftcol);
} else { return; }
});
////遍历子表json20180828---删除掉了,20230306
///将此方法放在dom成功之后调用
setup_draggable();////调用h5的拖拽的方法
} else {
sp.dialog("您好," + res.TableName + " 为空表");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log(errorThrown);
}
});
};
/////拖拽方法,异步加载json生成左侧的字段时,将此方法放在dom成功之后
function setup_draggable() {
var iframeWindow = $('#formBuilderTextarea_ifr')[0].contentWindow;
$('.draggable').on("dragstart", function (ev) {
//ondragstart - 用户开始拖动元素时触发
var dt = ev.originalEvent.dataTransfer;
//dt.setData('crossIframeDragType', $(this).attr("data-type"));
dt.setData('crossIframeDragType', $(this).attr("id"));
dt.effectAllowed = 'move';
iframeWindow.isCrossIFrameDragging = true;
}).on("dragend", function (ev) {
//ondragend - 用户完成元素拖动后触发
iframeWindow.isCrossIFrameDragging = false;
});
/////为iframe中的td添加拖拽进入事件,然后判断isCrossIFrameDragging
$(iframeWindow.document)
.on("dragenter", 'td', function (ev) {
//console.log('dragenter');
///说明文档-http://www.runoob.com/jsref/event-ondragstart.html
///ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
if (iframeWindow.isCrossIFrameDragging) {
$(ev.target).addClass("hover");
}
})
.on('dragleave', 'td', function (ev) {
//console.log('dragleave');
//ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
if (iframeWindow.isCrossIFrameDragging) {
$(ev.target).removeClass('hover');
//console.log();
}
})
.on("dragover", 'td', function (ev) {
//console.log('dragover');
//ondragover-当某被拖动的对象在另一对象容器范围内拖动时触发此事件
if (iframeWindow.isCrossIFrameDragging) {
ev.preventDefault();
ev.originalEvent.dataTransfer.dropEffect = 'move';
}
})
.on("drop", 'td', function (ev) {
ev.stopPropagation();
//console.log('drop');
$(iframeWindow.document).find('td').find("br").remove(); ///将里面含br的去掉
//ondrop - 在一个拖动过程中,释放鼠标键时触发此事件
var df = ev.originalEvent.dataTransfer;
var get_crossIframeDragType = df.getData("crossIframeDragType");
if (iframeWindow.isCrossIFrameDragging) {
//$(ev.target).removeClass('hover').text("丢掉了[" + data + "],好样的,继续!");
var gettd1html = $(ev.target).html();
$(ev.target).html(gettd1html.replace(/ /g, ""));//将里面的 换行符去掉
var get_text = $("#" + get_crossIframeDragType).text();
var get_control = $("#" + get_crossIframeDragType).attr("data-control");
var _varcontrol = "fbDragVars." + get_control + "_$vars$_$010$_$control";
//注释这两行,其业务是当前td放置标题,下一个td放置控件---20230107
//$(ev.target).removeClass('hover').append(get_text);
//$(ev.target).next("td").removeClass('hover').append(eval(_varcontrol));
///修改成拖动字段只放置控件,标题未录入模式;---20230107
var get_controid = $("#" + get_crossIframeDragType).attr("data-controlid");
if ($(iframeWindow.document).find('body').find("#" + get_controid).length <1) {
//没有重复项
$(ev.target).removeClass('hover').append(eval(_varcontrol));
var get_controlType = $("#" + get_crossIframeDragType).attr("data-type");
if (get_controlType == "popradiobox") {
var setLayerVarcontrol = "fbDragVars." + get_control + "_$vars$_$010$_$control_$010$_layer" + $("#" + get_crossIframeDragType).attr("data-code");
$(iframeWindow.document).find(".sp-fb-grid").after(eval(setLayerVarcontrol));
}
if (get_controlType == "popcheckbox") {
var setLayerVarcontrol = "fbDragVars." + get_control + "_$vars$_$010$_$control_$010$_layer" + $("#" + get_crossIframeDragType).attr("data-code");
$(iframeWindow.document).find(".sp-fb-grid").after(eval(setLayerVarcontrol));
}
if (get_controlType == "optionbox") {
var setLayerVarcontrol = "fbDragVars." + get_control + "_$vars$_$010$_$control_$010$_layer_optionbox" + $("#" + get_crossIframeDragType).attr("data-code");
//if ($(iframeWindow.document).find("#layer_optionbox").length < 1) {
// $(iframeWindow.document).find(".sp-fb-grid").after(eval(setLayerVarcontrol));
//}
$(iframeWindow.document).find("#layer_optionbox").remove();
$(iframeWindow.document).find(".sp-fb-grid").after(eval(setLayerVarcontrol));
}
setgridControlOperate();/////控件综合设置
} else {
sp.dialog("您好,表单中已有 \"" + get_text + "\" 组件!");
}
}
});
}
///根据id判断加载视图中有无先前设计好的表单文件,有则加载到设计区域,无则设计区域为空*********************************************
function fucGetFile() {
var postData = {
"ckey": "",
"userid": get_userId,
"formeditid": get_formeditid,
"directionid": "0",
"routeinfoid": "0",
"routeid": "0",
"id": "0"
}
//console.log(JSON.stringify(postData));
var postData_post = {
"data": s4.encryptData_CBC(JSON.stringify(postData))
}
//var postData_post_2 = {
// "data": JSON.stringify(postData)
//}
//console.log(postData_post_2);
$.ajax({
type: "post",
//url: fbdataurl,
url: apiurljs.login + "g2app/abase/queryDataCustom",
//data: {
// "data": s4.encryptData_CBC(JSON.stringify(postData))
//},
data: JSON.stringify(postData_post),
dataType: "json",
contentType: "application/json",
headers: { Authorization: "Bearer " + get_AccessToken }, ////请求头headers
success: function (obj) {
var res = strToJson(s4.decryptData_CBC(obj.data)).data;
//console.log(res);
//console.log(s4.decryptData_CBC(res.TableData));
if (sp.isval(res.TableData)) {
var iframeWindow = $('#formBuilderTextarea_ifr')[0].contentWindow;
$(iframeWindow.document).find('body').html(s4.decryptData_CBC(res.TableData));
setgridControlOperate();
}
},
//请求执行异常执行的方法
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("您好,表单加载失败");
}
});
}
///加载数据,整体设置*********************************************
function getData() {
if (get_routeid != "" && get_routeid != null && get_routeid != undefined) {
fucGetFile();////判断是否有设计过的自定义表单
getFbTableDataFild();///主子表字段构成
} else {
sp.dialog("未得到参数routeid,请确保参数正确!");
location.href = "viewlist.html";
}
}
//表单设计--点击切换事件
btnStartDesign = function (obj) {
$(".sp-list-type-title").removeClass("sp-list-type-active");
$(obj).addClass("sp-list-type-active");
$(".sp-form-builder").hide();
$($(obj).attr("data-href")).show();
};
////清空
btn_spbldClear = function () {
if (confirm("您确定要清空表单吗?")) {
var iframeWindow = $('#formBuilderTextarea_ifr')[0].contentWindow;
$(iframeWindow.document).find("body").html("");
$(iframeWindow.document).find("body").text("");
$(".sp-list-type-title").removeClass("sp-list-type-active");
$("#btnStartDesign_tab").addClass("sp-list-type-active");
$(".sp-form-builder").hide();
$("#formBuilderTextareaPart").show();
}
}
////表单预览
btnViewDesign = function (obj) {
//$(".sp-list-type-title").removeClass("sp-list-type-active");
//$(obj).addClass("sp-list-type-active");
//$(".sp-form-builder").hide();
//$($(obj).attr("data-href")).show();
sp.layer($(obj).attr("data-href"));
var iframeWindow = $('#formBuilderTextarea_ifr')[0].contentWindow;
if ($(iframeWindow.document).find('table').length > 0) {
$(iframeWindow.document).find('table').removeClass("mce-item-table").removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find('td').removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find('div').removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find(".mce-resizehandle").remove();
var gettablehtml = $(iframeWindow.document).find('body').html();
gettablehtml = gettablehtml.replace(/ ])*>/g, "").replace(/sp-grid-control-checked/g, "");
////start---向iframe中跨域传递消息
var iframeViewID = document.getElementById('iframeViewPart');
var targetOrigin = '*';
var func = { name: "formBuilderHtml", arg: gettablehtml };//传输name名称以及html代码
iframeViewID.contentWindow.postMessage(func, targetOrigin);
////end---向iframe中跨域传递消息
} else {
////start---向iframe中跨域传递消息
var iframeViewID = document.getElementById('iframeViewPart');
var targetOrigin = '*';
var func = { name: "formBuilderHtml", arg: 0 };//传输name名称以及html代码
iframeViewID.contentWindow.postMessage(func, targetOrigin);
////end---向iframe中跨域传递消息
}
};
///表单源码
btnViewCode = function (obj) {
$(".sp-list-type-title").removeClass("sp-list-type-active");
$(obj).addClass("sp-list-type-active");
$(".sp-form-builder").hide();
$($(obj).attr("data-href")).show();
var iframeWindow = $('#formBuilderTextarea_ifr')[0].contentWindow;
if ($(iframeWindow.document).find('table').length > 0 || $(iframeWindow.document).find('div').length > 0) {
$(iframeWindow.document).find('table').removeClass("mce-item-table").removeAttr("data-mce-selected").removeAttr("data-mce-style");
//$(iframeWindow.document).find('table').removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find('td').removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find('div').removeAttr("data-mce-selected").removeAttr("data-mce-style");
$(iframeWindow.document).find(".mce-resizehandle").remove();
var gettablehtml = $(iframeWindow.document).find('body').html();
//gettablehtml = gettablehtml.toString().replace(/