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.

466 lines
19 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.

<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>字段权限</title>
<link href="../../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../../Scripts/bootstrap/js/bootstrap.min.js"></script>
<script src="../../Scripts/QueryString.js" type="text/javascript"></script>
<script src="../../Scripts/config.js" type="text/javascript"></script>
<script src="../../Comm/Gener.js" type="text/javascript"></script>
<base target="_self" />
<style type="text/css">
th, td {
text-align: center;
}
input[type=checkbox], input[type=radio] {
margin-top: 0px;
}
p,ul,li,div,a {
margin: 0px;
padding: 0px;
}
#NDs { /*大小*/
min-width: 180px;
}
ul { /*左边导航*/
height: 200px;
list-style: none;
float: left;
position: absolute;
min-width: 180px;
}
li {
line-height: 50px;
text-align: center;
}
#Table { /*右边显示内容*/
width: max-content;
overflow: hidden;
margin-left: 190px;
position: relative;
}
</style>
<script type="text/javascript">
var frmID;
var fk_flow;
var fk_Node;
var isShowNDRpt = false;
$(function () {
var frmID = GetQueryString("FK_MapData");
var nodeID = GetQueryString("FK_Node");
var flowNo = GetQueryString("FK_Flow");
//判断节点表单类型,如果是树节点就显示写入NDxxRpt列.
var isShowNDRpt = false;
var node = new Entity("BP.WF.Node", nodeID);
if (node.FormType == 5 || node.FormType == 11)
isShowNDRpt = true;
if (isShowNDRpt == false) {
$("#HDRpt").hide();
}
//获得字段集合.
var mapAttrs = new Entities("BP.Sys.MapAttrs");
mapAttrs.Retrieve("FK_MapData", frmID, "GroupID,Idx");
fieldsData = mapAttrs;
var groups = new Entities("BP.Sys.GroupFields", "FrmID", frmID);
for (var k = 0; k < groups.length; k++) {
var group = groups[k];
if (group.CtrlType == "Ath" || group.CtrlType == "Dtl")
continue;
html = "";
html += "<tr>";
html += "<td colspan=12 class=Sum><b>" + group.Lab + "</b></td>";
html += "</tr>";
$("#Table1 tr:last").after(html);
for (var i = 0; i < mapAttrs.length; i++) {
var en = mapAttrs[i];
if (en.GroupID != group.OID)
continue;
if (en.EditType != 0 || en.KeyOfEn == "FID")
continue;
//if (en.MyDataType == 2 && en.DefValType == 0 && en.DefVal == '10002') {
// en.DefVal = "";
//}
var html = "";
html += "<tr >";
html += "<td class=Idx>" + (i + 1) + "</td>";
html += "<td>" + en.KeyOfEn + "</td>";
html += "<td>" + en.Name + "</td>";
if (en.UIContralType >= 4) {
html += "<td class=Sum>组件</td>";
} else {
if (en.LGType == 0) html += "<td>普通</td>";
if (en.LGType == 1) html += "<td>枚举</td>";
if (en.LGType == 2) html += "<td>外键</td>";
}
if (en.UIContralType >= 4) {
html += "<td colspan=2> - </td>";
} else {
html += "<td><input onkeydown='upischange(" + i + ");' id='" + en.KeyOfEn + "_RegularExp" + "' type='text' placeholder='正则表达式' value=''/></td>";
html += "<td><input onkeydown='upischange(" + i + ");' id='" + en.KeyOfEn + "_DefVal" + "' type='text' placeholder='默认值…' value='" + en.DefVal + "'/>&nbsp;&nbsp;<a href='#' onclick=ShowHidden('state','" + en.KeyOfEn + "')>默认值<a/></td>";
}
html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='UIVisible' id='" + en.KeyOfEn + "_UIVisible" + "' type='checkbox' " + (en.UIVisible ? "checked" : "") + "><div id='lab_" + en.KeyOfEn + "_UIVisible" + "' style='padding-left:20px;'>可见</div></label></td>";
if (en.UIContralType == 14) {
html += "<td> - </td>";
} else {
html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='UIIsEnable' id='" + en.KeyOfEn + "_UIIsEnable" + "' type='checkbox' " + (en.UIIsEnable ? "checked" : "") + "><div id='lab_" + en.KeyOfEn + "_UIIsEnable" + "'style='padding-left:30px;'>可编辑</div></label></td>";
}
if (en.UIContralType >= 4) {
html += "<td colspan=3> - </td>";
} else {
html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='IsSigan' id='" + en.KeyOfEn + "_IsSigan" + "' type='checkbox' " + (en.IsSigan ? "checked" : "") + "><div id='lab_" + en.KeyOfEn + "_IsSigan" + "'style='padding-left:20px;'>签名</div></label></td>";
html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='IsNotNull' id='" + en.KeyOfEn + "_IsNotNull" + "' type='checkbox' " + (en.UIIsInput ? "checked" : "") + "><div id='lab_" + en.KeyOfEn + "_IsNotNull" + "'style='padding-left:20px;'>必填</div></label></td>";
if (isShowNDRpt == true)
html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='IsWriteToFlowTable' id='" + en.KeyOfEn + "_IsWriteToFlowTable" + "' type='checkbox' " + (en.IsWriteToFlowTable ? "checked" : "") + " style='margin-left:-45px'><div id='lab_" + en.KeyOfEn + "_IsWriteToFlowTable" + "'style='padding-left:20px;'>写入ND" + parseInt(flowNo) + "Rpt</div></label></td>";
}
//html += "<td><label class='checkbox' ><input onclick='checkclick(this," + i + ");' class='IsWriteToGenerWorkFlow' id='" + en.KeyOfEn + "_IsWriteToGenerWorkFlow" + "' type='checkbox' " + (en.IsWriteToGenerWorkFlow ? "checked" : "") + "><div id='lab_" + en.KeyOfEn + "_IsWriteToGenerWorkFlow" + "'>写入WF_GernrWorkFlow</div></label></td>";
html += "</tr>";
$("#Table1 tr:last").after(html);
}
}
//获得FF集合个性化的设置信息都在这个表里面与Sys_MapAttr无关系.
var ffs = new Entities("BP.WF.Template.FrmFields");
ffs.Retrieve("FK_MapData", frmID, "FK_Node", nodeID);
//给相关的字段赋值.
for (var i = 0; i < ffs.length; i++) {
var ff = ffs[i];
$("#" + ff.KeyOfEn + "_DefVal").val(ff.DefVal); //设置默认值.
$("#" + ff.KeyOfEn + "_RegularExp").val(ff.RegularExp); //设置默认值.
SetCheckBox(ff, "UIVisible", ff.UIVisible, '可见');
SetCheckBox(ff, "UIIsEnable", ff.UIIsEnable, '可编辑');
SetCheckBox(ff, "IsSigan", ff.IsSigan, '签名');
SetCheckBox(ff, "IsNotNull", ff.IsNotNull, '必填');
SetCheckBox(ff, "IsWriteToFlowTable", ff.IsWriteToFlowTable, '写入NDxxRpt');
SetCheckBox(ff, "IsWriteToGenerWorkFlow", ff.IsWriteToGenerWorkFlow, '写入WF_GernrWorkFlow');
}
//绑定节点: 为海事局处理.
var ffs = new Entities("BP.WF.Template.FrmNodes");
ffs.Retrieve("FK_Frm", frmID, "FK_Flow", node.FK_Flow);
var html = "<ul>";
// html += "<caption>请选择节点</caption>";
html += "<li style='font-size: 18px;'>";
html += "选择节点:</li>";
for (var i = 0; i < ffs.length; i++) {
var en = ffs[i];
var mynd = new Entity("BP.WF.Node", en.FK_Node);
if (en.FK_Node == node.NodeID)
html += "<li style='background: #f5f5f5;'><b style='color:#007aff'>" + mynd.Name + "</b></li>";
else
html += "<li><a style='color:black;' href='?FK_MapData=" + frmID + "&FK_Node=" + mynd.NodeID + "' >" + mynd.Name + "</a></li>";
}
html += "</ul>";
$("#NDs").html(html);
});
function AddDefVal(no, id) {
document.getElementById(id + "_DefVal").value = no;
}
/*隐藏与显示.*/
function ShowHidden(ctrlID, inputID) {
var ens = new Entities("BP.Sys.GloVars");
ens.Retrieve("GroupKey", "DefVal");
//var sql = "SELECT No,Name FROM Sys_GloVar WHERE GroupKey='DefVal'";
//var dts = DBAccess.RunSQLReturnTable(sql);
html = "<div id='state' style='padding-top:20px; padding-left:60px; width:360px; height:400px; position: absolute; z-index: 10; background-color: #F5F5F5; border: 2px outset black; display: none; color: Gray; top:100px;left:500px;>";
html += "<h4>系统默认值</h4>";
html += " <ol style='padding:10px;'>";
for (var i = 0; i < ens.length; i++) {
var en = ens[i];
html += " <li><a href=\"javascript:AddDefVal('" + en.No + "','" + inputID + "')\"> " + en.Name + " </a> </li>";
}
html += " </ol>";
html += "</div>";
$("#Table1").after(html);
var ctrl = document.getElementById(ctrlID);
ctrl.style.display = 'block';
document.onmouseup = function () {
ctrl.style.display = "none";
}
}
function SetCheckBox(ff, key, val, label) {
//是否可用.
var isCheckedReal = $('#' + ff.KeyOfEn + "_" + key).is(':checked');
if (isCheckedReal == true)
isCheckedReal = 1;
else
isCheckedReal = 0;
if (val != isCheckedReal) {
if (val == 1)
$("#" + ff.KeyOfEn + "_" + key).attr("checked", true);
else
$("#" + ff.KeyOfEn + "_" + key).attr("checked", false);
$("#lab_" + ff.KeyOfEn + "_" + key).html("<font color=green><b>" + label + "</b></font>");
}
}
var FieldsAttrs = new Object();
var fieldsData = null;
//保存字段方案
function Save() {
$("#Btn_Save").text("正在保存..");
var frmID = GetQueryString("FK_MapData");
var nodeID = parseInt(GetQueryString("FK_Node"));
var flowNo = GetQueryString("FK_Flow");
//获得字段集合.
var mapAttrs = new Entities("BP.Sys.MapAttrs");
mapAttrs.Retrieve("FK_MapData", frmID);
//删除以前的设置..
var ff = new Entity("BP.WF.Template.FrmField");
ff.Delete("FK_MapData", frmID, "FK_Node", nodeID);
for (var i = 0; i < mapAttrs.length; i++) {
var en = mapAttrs[i];
if (en.EditType != 0 || en.KeyOfEn == "FID")
continue;
ff = new Entity("BP.WF.Template.FrmField");
ff.SetPKVal(frmID + '_' + nodeID + '_' + en.KeyOfEn);
ff.FK_Flow = flowNo;
ff.FK_Node = nodeID;
ff.FK_MapData = frmID;
ff.KeyOfEn = en.KeyOfEn;
ff.EleType = "Field";
ff.Name = en.Name;
//给其他的字段赋值.
ff.DefVal = $("#" + en.KeyOfEn + "_DefVal").val(); //默认值.
ff.RegularExp = $("#" + en.KeyOfEn + "_RegularExp").val(); //表达式.
if ($('#' + ff.KeyOfEn + "_UIVisible").is(':checked'))
ff.UIVisible = 1;
else
ff.UIVisible = 0;
if ($('#' + ff.KeyOfEn + "_UIIsEnable").is(':checked'))
ff.UIIsEnable = 1;
else
ff.UIIsEnable = 0;
if ($('#' + ff.KeyOfEn + "_IsSigan").is(':checked'))
ff.IsSigan = 1;
else
ff.IsSigan = 0;
if ($('#' + ff.KeyOfEn + "_IsNotNull").is(':checked'))
ff.IsNotNull = 1;
else
ff.IsNotNull = 0;
if ($('#' + ff.KeyOfEn + "_IsWriteToFlowTable").is(':checked'))
ff.IsWriteToFlowTable = 1;
else
ff.IsWriteToFlowTable = 0;
//if ($('#' + ff.KeyOfEn + "_IsWriteToGenerWorkFlow").is(':checked'))
// ff.IsWriteToGenerWorkFlow = 1;
//else
// ff.IsWriteToGenerWorkFlow = 0;
//判断变化的是否需要保存.
var isNeedSave = false;
//if (ff.IsWriteToGenerWorkFlow == 1)
// isNeedSave = true;
if (ff.IsWriteToFlowTable == 1)
isNeedSave = true;
if (en.UIVisible != ff.UIVisible)
isNeedSave = true;
if (en.UIIsEnable != ff.UIIsEnable)
isNeedSave = true;
if (en.DefVal != ff.DefVal)
isNeedSave = true;
if (en.UIIsInput != ff.IsNotNull)
isNeedSave = true;
if (en.IsSigan != ff.IsSigan)
isNeedSave = true;
if (ff.RegularExp != "")
isNeedSave = true;
if (isNeedSave == false)
continue;
ff.Insert();
}
$("#Btn_Save").text(" 保 存 ");
Reload();
}
function replaceTrim(val) {//去除空格
return val.replace(/[ ]/g, "");
}
function upischange(index) {
fieldsData[index].IsChange = true;
}
//绑定是否全选或者取消全选
function checkclick(o, index) {
upischange(index);
var ischeckedall = true;
var rowstype = o.classList;
$('.' + rowstype).each(function () {
if (this.type == 'checkbox' && !this.checked) {
ischeckedall = false;
return ischeckedall;
}
});
if (ischeckedall)
$('#KeyOfEn_' + rowstype)[0].checked = true;
else
$('#KeyOfEn_' + rowstype)[0].checked = false;
}
//全选或者反选
function CheckAll(rowstype) {
$('.' + rowstype).each(function () {
if (this.type == 'checkbox') {
$('#KeyOfEn_' + rowstype)[0].checked ? this.checked = true : this.checked = false;
}
});
upstate(true);
}
function upstate(ischange) {
for (var i = 0; i < fieldsData.length; i++) {
en.IsChange = ischange;
}
}
/**/</script>
</head>
<body>
<div class="container-full">
<div class="attrnode-bar-header">
<span class="pull-right">
<button id="Btn_Save" name="Btn_Save" onclick="Save();" class="cc-btn-tab btn-save">保存</button>
</span>
<strong> 节点-表单-字段权限</strong>
</div>
<div >
<div id="NDs"></div>
<div id="Table" >
<table id="Table1" class="table">
<caption>
</caption>
<tr>
<th width="60">
</th>
<th>
字段
</th>
<th>
名称
</th>
<th>
类型
</th>
<th>
正则表达式
</th>
<th>
默认值
</th>
<th>
<label for="KeyOfEn_UIVisible">
<input onclick="CheckAll('UIVisible');" id='KeyOfEn_UIVisible' type="checkbox" />
可见
</label>
</th>
<th>
<label for="KeyOfEn_UIIsEnable">
<input onclick="CheckAll('UIIsEnable');" id='KeyOfEn_UIIsEnable' type='checkbox' />
可编辑
</label>
</th>
<th>
<label for="KeyOfEn_IsSigan">
<input onclick="CheckAll('IsSigan');" id='KeyOfEn_IsSigan' type='checkbox' />
签名
</label>
</th>
<th>
<label for="KeyOfEn_IsNotNull">
<input onclick="CheckAll('IsNotNull');" id='KeyOfEn_IsNotNull' type='checkbox' />
必填
</label>
</th>
<th id="HDRpt">
<input onclick="CheckAll('IsWriteToFlowTable');" id='KeyOfEn_IsWriteToFlowTable'
type='checkbox' /><label for="KeyOfEn_IsWriteToFlowTable">
其他
</label>
</th>
<!--<th>
<input onclick="CheckAll('IsWriteToGenerWorkFlow');" id='KeyOfEn_IsWriteToGenerWorkFlow'
type='checkbox' /><label for="KeyOfEn_IsWriteToGenerWorkFlow">
写入流程注册表
</label>
</th>-->
</tr>
</table>
</div>
</div>
</div>
</body>
</html>