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.

784 lines
29 KiB
Plaintext

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="renderer" content="webkit|ie-comp|ie-stand" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<title>实体</title>
<!-- 目前不可以去掉. -->
<script src="../Comm/JScript.js" type="text/javascript"></script>
<script src="../Scripts/jquery-1.11.0.min.js" type="text/javascript"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/bootstrap.min.js"></script>
<link href="../Scripts/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<script type="text/javascript" src="../Scripts/config.js"></script>
<script type="text/javascript" src="../Comm/Gener.js"></script>
<script type="text/javascript" src="../Scripts/QueryString.js"></script>
<script src="../../DataUser/SFTable.js" type="text/javascript"></script>
<!-- 引入公共的frm加载以后的业务逻辑处理.-->
<script src="../CCForm/FrmEnd.js" type="text/javascript"></script>
<!-- 引入用户要重写的公共js -->
<script src="../../DataUser/JSLibData/CCBillRef.js" type="text/javascript"></script>
<script src="MyFrmGener.js" type="text/javascript"></script>
<!-- 该文件可以被集成厂商自己定义风格,可以自己修改,以达到流程设计器与自己的系统风格统一. -->
<link href="../Comm/CSS/layout.css" rel="stylesheet" />
<script src="../Scripts/zTree_v3/js/jquery.ztree.core.min.js"></script>
<script src="../Scripts/zTree_v3/js/jquery.ztree.excheck.min.js"></script>
<style type="text/css">
#nav-top {
background: #fff;
height: 45px;
padding: 10px;
margin-bottom: 10px;
}
.tlbox {
float: left;
background: #fff;
width: 300px;
}
.user-title {
background: #f0f0f0;
height: 31px;
position: relative;
}
.user-title .main-title {
display: inline-block;
line-height: 31px;
/* padding: 0 20px; */
font-size: 14px;
color: #427ec3;
}
.content-right {
margin-left: 310px;
position: relative;
overflow-y: auto;
overflow-x: hidden;
background: #fff;
}
.ztree {
background: #fff;
height: 160px;
overflow-y: auto;
overflow-x: hidden;
}
.ztree li a.curSelectedNode {
border: 1px solid #2991d9 !important;
background-color: #daf4ff !important;
}
#rMenu li {
text-align:center;
font-size:13px;
}
</style>
<script type="text/javascript">
var frmBill = null;
var webUser = new WebUser();
var frmID = GetQueryString("FrmID");
var FK_Field;//外键字段
//树形结构
var setting = {
view: {
showIcon: false
},
check: {
enable: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
onRightClick: zTreeOnRightClick
}
};
//初始化函数
$(function () {
var en = new Entity("BP.CCBill.FrmDict", frmID);
FK_Field = en.FK_Field;
if (FK_Field == null || FK_Field == undefined || FK_Field == "") {
alert("没有指定显示树状结构的外键字段,不能展示树状结构");
return;
}
//获取外键对应的数据
var mapAttr = new Entity("BP.Sys.MapAttr", frmID + "_" + FK_Field);
var uiBindKey = mapAttr.UIBindKey;
if (uiBindKey == null || uiBindKey == undefined) {
alert("设定的外键字段绑定的值丢失,请联系管理员");
return;
}
var sfTable = new Entity("BP.Sys.SFTable", mapAttr.UIBindKey);
var srcType = sfTable.SrcType;
var data;
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;
data = DBAccess.RunDBSrc(selectStatement, 1);
//JavaScript获取外部数据源
} else if (srcType == 6) {
data = DBAccess.RunDBSrc(sfTable.FK_Val, 2);
} else {
data = sfTable.DoMethodReturnString("GenerHisJson");
if (data.indexOf("err@") != -1) {
alert(data);
return;
}
data = JSON.parse(data);
}
}
var zNodes = [];
var open = false;
var id, name, pid;
for (var i = 0; i < data.length; i++) {
if (data[i].ParentNo == 0)
open = true;
else
open = false;
id = data[i].No;
if (id == null || id == undefined)
id = data[i].BillNo;
pid = data[i].ParentNo;
name = data[i].Name;
if (name == null || name == undefined)
name = data[i].Title;
zNodes.push({
"id": id,
"pId": pid,
"name": name,
"open": open,
"noR":true,
children: GetChildNodes(id, FK_Field),
"click": "ViewEntity(" + data[i].OID + ",0)"
})
}
$("#title").html(sfTable.Name);
//初始化树形结构
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//右击操作
var rMenu = $("#rMenu");
function zTreeOnRightClick(event, treeId, treeNode) {
if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {
$.fn.zTree.getZTreeObj("treeDemo").selectNode(treeNode);
showRMenu("root", event.clientX, event.clientY);
} else if (treeNode && !treeNode.noR) {
$.fn.zTree.getZTreeObj("treeDemo").selectNode(treeNode);
showRMenu("node", event.clientX + treeNode.name.length, event.clientY + 6);
}
}
//获取单据实体的所有数据
function GetChildNodes(parentNo, keyOfEn) {
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddPara("FrmID", frmID);
var data = handler.DoMethodReturnString("GetFrmEntitys");
if (data.indexOf("err@") != -1) {
alter(data);
return;
}
data = JSON.parse(data);
var zNodes = [];
var open = false;
for (var i = 0; i < data.length; i++) {
if (data[i][keyOfEn] == parentNo) {
zNodes.push({
"id": data[i].BillNo,
"pId": parentNo,
"name": data[i].Title,
"myOID": data[i].OID,
"open": open,
"click": "ViewEntity(" + data[i].OID + ",1)"
})
}
}
return zNodes;
}
function ViewEntity(workID, type) {
if (type == 0) {
$("#addBtn").show();
$("#editBtn").hide();
}
if (type == 1) {
$("#addBtn").hide();
$("#editBtn").show();
$("#baseFrame").attr("src", "../CCForm/Frm.htm?FK_MapData=" + frmID + "&WorkID=" + workID + "&IsReadOnly=1");
}
}
function OpenSetting() {
var url = "../Comm/RefFunc/En.htm?EnName=BP.CCBill.FrmDict&PKVal=" + GetQueryString("FrmID");
WinOpenFull(url);
}
///执行方法.
function Done(msg, funMyPK, methodName, afterOper, w, h) {
var isHaveAttr = false;
var attrs = new Entities("BP.Sys.MapAttrs", "FK_MapData", funMyPK);
for (var i = 0; i < attrs.length; i++) {
var attr = attrs[i];
isHaveAttr = true;
}
//带有参数的方法.
if (isHaveAttr == true) {
if (w == 0) w = 560;
if (h == 0) h = 260;
var url = "./Opt/DoMethodPara.htm?MyPK=" + funMyPK + "&WorkID=" + GetQueryString("WorkID") + "&FrmID=" + GetQueryString("FrmID");
//WinOpen(url);
OpenBootStrapModal(url, "MethodePara", methodName, w, h, null, false, null, null, function () {
//afterOper=0 关闭提示窗口,不做任何操作
//afterOper=1 关闭提示窗口刷新页面
if (afterOper == 1)
Reload();
//afterOper=2 关闭提示窗口跳转到Search.htm
if (afterOper == 2) {
if (window.parent.location.href.indexOf("SearchDict.htm") != -1) {
window.close();
}
else
SetHref("./SearchDict.htm?FrmID=" + GetQueryString("FrmID"));
}
});
return;
}
if (w == 0) w = 260;
if (h == 0) h = 160;
//不带有参数的方法.
if (msg != '' && msg.length > 5) {
if (window.confirm(msg) == false)
return;
}
var url = "./Opt/DoMethod.htm?MyPK=" + funMyPK + "&WorkID=" + GetQueryString("WorkID") + "&FrmID=" + GetQueryString("FrmID");
//WinOpen(url);
OpenBootStrapModal(url, "Methode", methodName, w, h, null, true, null, null, function () {
//afterOper=0 关闭提示窗口,不做任何操作
//afterOper=1 关闭提示窗口刷新页面
if (afterOper == 1)
Reload();
//afterOper=2 关闭提示窗口跳转到Search.htm
if (afterOper == 2) {
if (window.parent.location.href.indexOf("SearchBill") != -1) {
window.close();
}
else
SetHref("./SearchDict.htm?FrmID=" + GetQueryString("FrmID"));
}
});
}
function SaveIt() {
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddUrlData();
handler.AddPara("WorkID", $("#baseFrame")[0].contentWindow.$("#TB_OID").val());
//组织数据.
var dataStrs = getFormData(true, true);
$.each(dataStrs.split("&"), function (i, o) {
var param = o.split("=");
if (param.length == 2 && validate(param[1])) {
handler.AddPara(param[0], param[1]);
} else {
handler.AddPara(param[0], "");
}
});
/*
//需要把下拉框的标签, abc abcT 也要copy到里面去.否则班级的名字就不能存储. 另外单选按钮的值也没有copy里面去.
*/
var data = handler.DoMethodReturnString("MyDict_SaveIt");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
}
//获取表单数据
function getFormData(isCotainTextArea, isCotainUrlParam) {
var formss = $("#baseFrame")[0].contentWindow.$('#divCCForm').serialize();
var formArr = formss.split('&');
var formArrResult = [];
$.each(formArr, function (i, ele) {
if (ele.split('=')[0].indexOf('CB_') == 0) {
if ($("#baseFrame")[0].contentWindow.$('#' + ele.split('=')[0] + ':checked').length == 1) {
ele = ele.split('=')[0] + '=1';
} else {
ele = ele.split('=')[0] + '=0';
}
formArrResult.push(ele);
}
if (ele.split('=')[0].indexOf('DDL_') == 0) {
var ctrlID = ele.split('=')[0];
var item = $("#baseFrame")[0].contentWindow.$("#" + ctrlID).children('option:checked').text();
var mystr = '';
mystr = ctrlID.replace("DDL_", "TB_") + 'T=' + item;
formArrResult.push(mystr);
formArrResult.push(ele);
}
if (ele.split('=')[0].indexOf('RB_') == 0) {
formArrResult.push(ele);
}
});
$.each(formArr, function (i, ele) {
if (ele.split('=')[0].indexOf('TB_') == 0) {
var index = isExistArray(formArrResult, ele.split('=')[0]);
if (index == -1)
formArrResult.push(ele);
}
});
//获取表单中禁用的表单元素的值
var disabledEles = $("#baseFrame")[0].contentWindow.$('#divCCForm :disabled');
$.each(disabledEles, function (i, disabledEle) {
var name = $(disabledEle).attr('id');
switch (disabledEle.tagName.toUpperCase()) {
case "INPUT":
switch (disabledEle.type.toUpperCase()) {
case "CHECKBOX": //复选框
formArrResult.push(name + '=' + ($(disabledEle).is(':checked') ? 1 : 0));
break;
case "TEXT": //文本框
case "HIDDEN":
formArrResult.push(name + '=' + $(disabledEle).val());
break;
case "RADIO": //单选钮
name = $(disabledEle).attr('name');
var eleResult = name + '=' + $('[name="' + name + '"]:checked').val();
if ($.inArray(eleResult, formArrResult) == -1) {
formArrResult.push(eleResult);
}
break;
}
break;
//下拉框
case "SELECT":
formArrResult.push(name + '=' + $(disabledEle).children('option:checked').val());
var tbID = name.replace("DDL_", "TB_") + 'T';
if ($("#" + tbID).length == 1) {
var index = isExistArray(formArrResult, tbID);
if (index == -1)
formArrResult.push(tbID + '=' + $(disabledEle).children('option:checked').text());
}
break;
//文本区域
case "TEXTAREA":
formArrResult.push(name + '=' + $(disabledEle).val());
break;
}
});
//获取树形结构的表单值
var combotrees = $("#baseFrame")[0].contentWindow.$(".easyui-combotree");
$.each(combotrees, function (i, combotree) {
var name = $(combotree).attr('id');
var tree = $('#' + name).combotree('tree');
//获取当前选中的节点
var data = tree.tree('getSelected');
if (data != null) {
formArrResult.push(name + '=' + data.id);
formArrResult.push(name + 'T=' + data.text);
}
});
if (!isCotainTextArea) {
formArrResult = $.grep(formArrResult, function (value) {
return value.split('=').length == 2 ? value.split('=')[1].length <= 50 : true;
});
}
formss = formArrResult.join('&');
var dataArr = [];
if (formss != '')
dataArr.push(formss);
var formData = dataArr.join('&');
//为了复选框 合并一下值 复选框的值以 ,号分割
//用& 符号截取数据
var formDataArr = formData.split('&');
var formDataResultObj = {};
$.each(formDataArr, function (i, formDataObj) {
//计算出等号的INDEX
var indexOfEqual = formDataObj.indexOf('=');
var objectKey = formDataObj.substr(0, indexOfEqual);
var objectValue = formDataObj.substr(indexOfEqual + 1);
if (formDataResultObj[objectKey] == undefined) {
formDataResultObj[objectKey] = objectValue;
} else {
formDataResultObj[objectKey] = formDataResultObj[objectKey] + ',' + objectValue;
}
});
var formdataResultStr = '';
for (var ele in formDataResultObj) {
formdataResultStr = formdataResultStr + ele + '=' + formDataResultObj[ele] + '&';
}
// 处理没有选择的文本框.
//获得checkBoxIDs 格式为: CB_IsXX,CB_IsYY,
var ids = GenerCheckIDs();
if (ids) {
var scores = ids.split(",");
var arrLength = scores.length;
var sum = 0;
var average = null;
for (var i = 0; i < arrLength; i++) {
var field = scores[i];
var index = formdataResultStr.indexOf(field);
if (index == -1) {
formdataResultStr += '&' + field + '=0';
}
}
}
formdataResultStr = formdataResultStr.replace('&&', '&');
return formdataResultStr;
}
function isExistArray(arrys, no) {
for (var i = 0; i < arrys.length; i++) {
if (arrys[i].split('=')[0] == no)
return i;
}
return -1;
}
function DeleteIt() {
if (window.confirm('您确定要删除吗?') == false)
return;
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddUrlData();
var data = handler.DoMethodReturnString("MyDict_Delete");
alert(data);
SetHref('SearchDict.htm?FrmID=' + GetQueryString("FrmID"));
//window.close();
}
function SaveItAndClose() {
SaveIt();
window.close();
}
function NewIt() {
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddUrlData();
var data = handler.DoMethodReturnString("MyDict_CreateBlankDictID");
if (data.indexOf('err@') > 0) {
alert(data);
return;
}
SetHref('MyDict.htm?FrmID=' + GetQueryString("FrmID") + "&WorkID=" + data);
}
</script>
<!--JS 加载-->
<script type="text/javascript">
function s(id1, id2) {
$("#" + id1).show();
$("#" + id2).hide();
}
//新增
var IsNewAdd = false;
function addEntity(type) {
//获取当前选中的节点
var url = "../CCForm/Frm.htm?FK_MapData=" + GetQueryString("FrmID");
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
//新增时需要先生成WorkID
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddUrlData();
var workID = handler.DoMethodReturnString("MyDict_CreateBlankDictID");
if (workID.indexOf('err@') != -1) {
alert(workID);
return;
}
url += "&WorkID=" + workID;
var parentNo;
//创建同级
if (type == 0) {
parentNo = nodes[0].pId;
hideRMenu();
}else
parentNo = nodes[0].id
url += "&" + FK_Field + "=" + parentNo;
$("#baseFrame").attr("src", url);
IsNewAdd = true;
}
//修改
function EditEntity() {
hideRMenu();
//获取当前选中的节点
var url = "../CCForm/Frm.htm?FK_MapData=" + GetQueryString("FrmID");
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
if (nodes.length == 0) {
alert("没有选择节点,不能编辑或者查看数据");
return;
}
setBaseFrameSrc(nodes[0].myOID, 0);
IsNewAdd = false;
}
//删除
function DelEntity() {
hideRMenu();
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
if (nodes.length == 0) {
alert("请选择要删除的节点");
return;
}
var childrens = nodes[0].children;
if (childrens != null && childrens != undefined && childrens.length != 0) {
if (confirm("选择的节点是父节点,删除时需要删除对应的下级目录,你确定要删除吗?") == false)
return;
}
var parentNode = nodes[0].getParentNode();
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddPara("FrmID", frmID);
handler.AddPara("WorkID", nodes[0].myOID)
handler.DoMethodReturnString("MyEntityTree_Delete");
alert("删除成功");
//更新右侧的树形结构
treeObj.removeNode(nodes[0]);
//选择他的父节点
treeObj.selectNode(parentNode);
$("#baseFrame").attr("src", "");
}
//保存数据
function SaveEntity() {
//保存数据
SaveIt();
//初始化左侧树形数据
var win = $("#baseFrame")[0].contentWindow;
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
if (IsNewAdd == true) {
var newNode = {
id: win.$("#TB_OID").val(),
pid: win.$("#DDL_"+FK_Field).val(),
name: win.$("#TB_Title").val(),
open: true,
click: "ViewEntity(" + win.$("#TB_OID").val() + ")"
};
if (nodes.length == 0)
treeObj.addNodes(null, newNode);
else {
if (nodes[0].pId == win.$("#DDL_"+FK_Field).val())
treeObj.addNodes(nodes[0].getParentNode(), newNode);
else if(nodes[0].id == win.$("#DDL_"+FK_Field).val())
treeObj.addNodes(nodes[0], newNode);
}
treeObj.selectNode(newNode);
} else {
nodes[0].name = win.$("#TB_Title").val();
treeObj.updateNode(nodes[0]);
}
setBaseFrameSrc(win.$("#TB_OID").val(), 1);
}
//取消数据
function CancelEntity() {
if (IsNewAdd == true) {
var win = $("#baseFrame")[0].contentWindow;
//删除当前的数据
var handler = new HttpHandler("BP.CCBill.WF_CCBill");
handler.AddPara("FrmID", frmID);
handler.AddPara("WorkID", win.$("#TB_OID").val())
handler.DoMethodReturnString("MyBill_Delete");
//显示当前节点的数据
setBaseFrameSrc(win.$("#TB_ParentNo").val(), 1);
} else {
//显示当前节点的数据
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
setBaseFrameSrc(nodes[0].myOID, 1);
}
}
function showRMenu(type, x, y) {
if (rMenu) rMenu.css("display", "block");
$("#rMenu ul").show();
if (type == "root") {
$("#m_del").hide();
$("#m_check").hide();
$("#m_unCheck").hide();
} else {
$("#m_del").show();
$("#m_check").show();
$("#m_unCheck").show();
}
y += document.body.scrollTop;
x += document.body.scrollLeft;
$("#rMenu").css({ "top": y + "px", "left": x + "px", "display": "block" });
$("body").bind("mousedown", onBodyMouseDown);
}
function hideRMenu() {
if (rMenu) $("#rMenu").css({ "display": "none" });
$("body").unbind("mousedown", onBodyMouseDown);
}
function onBodyMouseDown(event) {
if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
$("#rMenu").css({ "display": "none" });
$("body").unbind("mousedown", onBodyMouseDown);
}
}
function setBaseFrameSrc(workId, isReadOnly) {
$("#baseFrame").attr("src", "../CCForm/Frm.htm?FK_MapData=" + frmID + "&WorkID=" + workId + "&IsReadOnly=" + isReadOnly + "&t=" + new Date().getTime());
}
//高度自适应
$(document).ready(function () {
$(".ztree").css("height", document.documentElement.clientHeight - 120 + "px"); //树形菜单自适应高度
$(".content-right").css("height", document.documentElement.clientHeight - 80 + "px"); //右侧表单内容自适应高度
});
/**/</script>
</head>
<body>
<div id="nav-top">
<div id="btn1">
<a href="javaScript:void(0)" id="addBtn" onclick="s('btn2', 'btn1');addEntity()" class="btn btn-default radius" target="baseFrame"><i class="icon"></i>新增</a>
<a href="javascript:;" id="editBtn" class="btn btn-default radius" onclick="s('btn2', 'btn1'); EditEntity();"><i class="icon"></i>修改</a>
<a href="javascript:;" class="btn btn-danger radius" onclick="DelEntity();"><i class="icon"></i>删除</a>
<a class="btn btn-default radius" href="javascript:;"><i class="icon"></i>刷新</a>
</div>
<div id="btn2" style="display:none">
<a href="javaScript:void(0)" id="saveBtn" onclick="s('btn1', 'btn2'); SaveEntity();" class="btn btn-default radius" target="baseFrame"><i class="icon"></i>保存</a>
<a href="javascript:;" class="btn btn-default radius" onclick="s('btn1', 'btn2');CancelEntity()"><i class="icon"></i>取消</a>
</div>
</div>
<div class="m10">
<div class="tlbox">
<div class="user-title"><span class="main-title" id="title"></span> </div>
<ul id="treeDemo" class="ztree"></ul>
</div>
<div class="content-right">
<iframe scrolling="auto" frameborder="0" id="baseFrame" name="baseFrame" style="width:100%;height:100%"></iframe>
</div>
</div>
<ul id="rMenu" class="dropdown-menu dropdown-context dropdown-context-up" style="display:none;border-color:#eee;background-color:#ffffff">
<li id="m_addLevel" onclick="s('btn2', 'btn1');addEntity(0);">新增同级</li>
<li class="divider"></li>
<li id="m_add" onclick="s('btn2', 'btn1');EditEntity();">修改</li>
<li class="divider"></li>
<li id="m_del" onclick="DelEntity();">删除</li>
</ul>
<!--图片附件显示大图-->
<div id="outerdiv" style="position: fixed; top: 0; left: 0; background: rgba(0,0,0,0.7);
z-index: 2; width: 100%; height: 100%; display: none;">
<div id="innerdiv" style="position: absolute;">
<img id="bigimg" style="border: 5px solid #fff;" src="" />
</div>
</div>
</body>
</html>