|
|
|
|
<!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>
|
|
|
|
|
<title></title>
|
|
|
|
|
<link href="../../../Scripts/easyUI145/themes/icon.css" rel="stylesheet" type="text/css" />
|
|
|
|
|
<link href="../../../Scripts/easyUI145/themes/default/easyui.css" rel="stylesheet"
|
|
|
|
|
type="text/css" />
|
|
|
|
|
<link href="../../../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
|
|
|
|
|
<script src="../../../Scripts/easyUI145/jquery.min.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/easyUI145/jquery.easyui.min.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/QueryString.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/config.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Comm/JScript.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/CommonUnite.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/EasyUIUtility.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Scripts/QueryString.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../../Comm/Gener.js" type="text/javascript"></script>
|
|
|
|
|
<!-- 自己的系统风格统一. -->
|
|
|
|
|
<link href="../../../Style/skin/adminfont/iconfont.css" rel="stylesheet" />
|
|
|
|
|
<link href="../../../Style/skin/css/Default.css" rel="stylesheet" />
|
|
|
|
|
<!-- 自己的系统风格统一end -->
|
|
|
|
|
<script src="DDLBar.js" type="text/javascript"></script>
|
|
|
|
|
<script src="../../CCFlowEnum.js" type="text/javascript"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
var nodeID = 0;
|
|
|
|
|
var fk_flow = "";
|
|
|
|
|
$(function () {
|
|
|
|
|
|
|
|
|
|
InitBar(FormSlnType.SDKFormSmart);
|
|
|
|
|
|
|
|
|
|
Sln(); //设置权限控制方案.
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//权限控制方案.
|
|
|
|
|
function Sln() {
|
|
|
|
|
|
|
|
|
|
var nodeID = GetQueryString("FK_Node");
|
|
|
|
|
var node = new Entity("BP.WF.Node", nodeID);
|
|
|
|
|
//if (node.FormType != FormSlnType.FoolTruck)
|
|
|
|
|
// return;
|
|
|
|
|
|
|
|
|
|
$("#sln").html("正在加载表单方案,请稍后...");
|
|
|
|
|
|
|
|
|
|
var html = "<table style='width:95%;'>";
|
|
|
|
|
html + "<tr>";
|
|
|
|
|
html += "<th>节点ID</th>";
|
|
|
|
|
html += "<th>节点名称</th>";
|
|
|
|
|
html += "<th>表单方案</th>";
|
|
|
|
|
html += "<th> 元素 </th>";
|
|
|
|
|
html + "</tr>";
|
|
|
|
|
|
|
|
|
|
var nodes = new Entities("BP.WF.Nodes");
|
|
|
|
|
nodes.Retrieve("FK_Flow", node.FK_Flow, "NodeID");
|
|
|
|
|
|
|
|
|
|
var currentNode = GetQueryString("FK_Node");
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
|
|
|
|
|
|
|
|
var nd = nodes[i];
|
|
|
|
|
if (nd.NodeID == nodeID)
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
var sln = new Entity("BP.WF.Template.FoolTruckNodeFrm");
|
|
|
|
|
sln.MyPK = "ND" + nd.NodeID + "_" + currentNode + "_" + nd.FK_Flow;
|
|
|
|
|
|
|
|
|
|
if (sln.RetrieveFromDBSources() == 0) {
|
|
|
|
|
sln.FK_Flow = nd.FK_Flow;
|
|
|
|
|
sln.FK_Frm = "ND" + nd.NodeID;
|
|
|
|
|
sln.FK_Node = currentNode; //节点ID.
|
|
|
|
|
sln.FrmSln = 1; //只读方案.
|
|
|
|
|
sln.Insert();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//if (sln.FrmSln == 0) {
|
|
|
|
|
// html += "<li>[默认]<a href=\"javascript:EditSln('" + sln.MyPK + "')\">" + nd.NodeID + " - " + nd.Name + "</a></li>";
|
|
|
|
|
// continue;
|
|
|
|
|
//}
|
|
|
|
|
//if (sln.FrmSln == 1) {
|
|
|
|
|
// html += "<li>[只读]<a href=\"javascript:EditSln('" + sln.MyPK + "')\">" + nd.NodeID + " - " + nd.Name + "</a></li>";
|
|
|
|
|
// continue;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
html += "<tr>";
|
|
|
|
|
html += "<td>" + nd.NodeID + "</td>";
|
|
|
|
|
html += "<td><a href=\"javascript:EditSln('" + sln.MyPK + "')\">" + nd.Name + "</a></td>";
|
|
|
|
|
|
|
|
|
|
if (sln.FrmSln == 0) {
|
|
|
|
|
html += "<td>默认</td>";
|
|
|
|
|
}
|
|
|
|
|
if (sln.FrmSln == 1) {
|
|
|
|
|
html += "<td>只读</td>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (sln.FrmSln == 2) {
|
|
|
|
|
html += "<td>自定义</td>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
html += "<td> <a href=\"javascript:DefEle('" + nd.NodeID + "')\" >定义元素(字段)权限</a> </td>";
|
|
|
|
|
html + "</tr>";
|
|
|
|
|
// html += "<li>[" + sln.FrmSlnText + "]<a href=\"javascript:EditSln('" + sln.MyPK + "')\">" + json.NodeID + " - " + json.Name + "</a> " + def + "</li>";
|
|
|
|
|
}
|
|
|
|
|
html += "</table>";
|
|
|
|
|
$("#sln").html(html);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DefEle(nodeID, FK_Flow) {
|
|
|
|
|
var url = "13.SDKFormSmartEles.htm?FK_Flow=" + GetQueryString("FK_Flow") + "&FK_Node=" + nodeID + "&DoType=Field";
|
|
|
|
|
window.open(url);
|
|
|
|
|
}
|
|
|
|
|
function EditSln(mypk) {
|
|
|
|
|
|
|
|
|
|
var url = "../../../Comm/EnOnly.htm?EnName=BP.WF.Template.FoolTruckNodeFrm&MyPK=" + mypk;
|
|
|
|
|
|
|
|
|
|
OpenEasyUiDialog(url, "eudlgframe", '表单方案', 600, 300, "icon-property", true, null, null, null, function () {
|
|
|
|
|
Reload();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Save() {
|
|
|
|
|
$("#Btn_Save").val("正在保存...");
|
|
|
|
|
var nodeID = GetQueryString("FK_Node");
|
|
|
|
|
var node = new Entity("BP.WF.Node", nodeID);
|
|
|
|
|
node.FormType = FormSlnType.FoolTruck;
|
|
|
|
|
node.NodeFrmID = "ND" + nodeID;
|
|
|
|
|
node.Update();
|
|
|
|
|
|
|
|
|
|
//更新表单类型.
|
|
|
|
|
var frmID = "ND" + nodeID;
|
|
|
|
|
var mapData = new Entity("BP.Sys.MapData", frmID);
|
|
|
|
|
mapData.FrmType = FrmType.FoolForm;
|
|
|
|
|
mapData.Update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//执行流程检查.
|
|
|
|
|
var flow = new Entity("BP.WF.Flow", node.FK_Flow);
|
|
|
|
|
flow.DoMethodReturnString("DoCheck");
|
|
|
|
|
|
|
|
|
|
$("#Btn_Save").val("保存成功.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///设置该流程的所有节点都是用该方案。
|
|
|
|
|
function SetAllNodeFrmUseThisSln() {
|
|
|
|
|
|
|
|
|
|
if (confirm('您确定要设置吗?') == false)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var nodeID = GetQueryString("FK_Node");
|
|
|
|
|
var node = new Entity("BP.WF.Node", nodeID);
|
|
|
|
|
|
|
|
|
|
var flowNo = node.FK_Flow;
|
|
|
|
|
var nds = new Entities("BP.WF.Nodes");
|
|
|
|
|
nds.Retrieve("FK_Flow", flowNo);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < nds.length; i++) {
|
|
|
|
|
|
|
|
|
|
var jsNode = nds[i];
|
|
|
|
|
|
|
|
|
|
var node = new Entity("BP.WF.Node", jsNode);
|
|
|
|
|
|
|
|
|
|
node.FormType = FormSlnType.FoolTruck;
|
|
|
|
|
node.NodeFrmID = "ND" + node.NodeID;
|
|
|
|
|
node.Update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//更新表单类型.
|
|
|
|
|
var frmID = "ND" + node.NodeID;
|
|
|
|
|
var mapData = new Entity("BP.Sys.MapData", frmID);
|
|
|
|
|
mapData.FrmType = 0; //FormSlnType.FoolTruck;
|
|
|
|
|
mapData.Update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设置显示的主表单,在完成的流程轨迹里可以看到该表单.
|
|
|
|
|
SetNDxxRpt_FrmType(flowNo, 0);
|
|
|
|
|
|
|
|
|
|
//执行流程检查.
|
|
|
|
|
var flow = new Entity("BP.WF.Flow", flowNo);
|
|
|
|
|
flow.DoMethodReturnString("DoCheck");
|
|
|
|
|
|
|
|
|
|
alert('设置成功.');
|
|
|
|
|
Reload();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function SetDemo() {
|
|
|
|
|
|
|
|
|
|
var val = $("#TB_FormURL").val();
|
|
|
|
|
if (val != null) {
|
|
|
|
|
alert('请删除当前值,在设置demo.');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$("#TB_FormURL").val("/SDKFlowDemo/SDK/SmartSDKFrm.html");
|
|
|
|
|
$("#TB_FrmTable").val("HR_QingJia");
|
|
|
|
|
$("#TB_FrmPKField").val("WorkID");
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style type="text/css">
|
|
|
|
|
|
|
|
|
|
tbGreen {
|
|
|
|
|
color: green;
|
|
|
|
|
font-size: large;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div id="bar">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<fieldset>
|
|
|
|
|
<legend>只能SDK表单绑定url设置 -</legend>
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
<table style="width:100%; border-color:antiquewhite">
|
|
|
|
|
<tr>
|
|
|
|
|
<td colspan="4" style="width:70%;">
|
|
|
|
|
请输入URL:
|
|
|
|
|
<br />
|
|
|
|
|
<input type="text" style="width:97%;" class="tbGreen" placeholder="请输入SDK表单的URL" value="" id="TB_FormURL" name="TB_FormURL" />
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td>表单业务数据存储的主表: </td>
|
|
|
|
|
<td><input type="text" id="TB_FrmTable" placeholder="比如:HR_QingJia" style="width:98%;" /> </td>
|
|
|
|
|
<td>主表的int类型的主键: </td>
|
|
|
|
|
<td><input type="text" id="TB_FrmPKField" placeholder="比如:WorkID,没有就创建一个" style="width:98%;" /> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td colspan="4">
|
|
|
|
|
<a href="javascript:ShowFWCAttr()"><img src="../../../Img/Components.png" />组件属性</a>
|
|
|
|
|
-
|
|
|
|
|
<a href="javascript:SetAllNodeFrmUseThisSln()"> <img src="../../../Img/Setting.png" />设置该流程所有的节点都采用此表单方案</a>
|
|
|
|
|
-
|
|
|
|
|
<a href="javascript:SetDemo()">设置演示DEMO</a>
|
|
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</fieldset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<fieldset>
|
|
|
|
|
<legend>表单权限控制方案</legend>
|
|
|
|
|
<br />
|
|
|
|
|
<div id="sln">
|
|
|
|
|
</div>
|
|
|
|
|
</fieldset>
|
|
|
|
|
|
|
|
|
|
<fieldset>
|
|
|
|
|
<legend>开发步骤</legend>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>0. 首先您需要改造您的表单存储 WorkID 字段,并且作为该流程实例的标识 .</li>
|
|
|
|
|
<li>1. 首先引入/WF/ccbpm.js文件.</li>
|
|
|
|
|
<li>2. 在自己的页面上增加一个ID为ToolBar的div标记流程的控制按钮工具栏的摆放位置.</li>
|
|
|
|
|
<li>3. 如果要引入其他的控件,比如审核组件WorkCheck,评论组件FlowBBS, 需要在增加对应ID的div,以方便ccbpm解析.</li>
|
|
|
|
|
<li>4. 按照约定编写一个Save的方法,该方法返回true,false true=保存成功 false=保存失败. 在工具栏的发送与保存按钮调用,如果保存失败就不能发送.</li>
|
|
|
|
|
<li>5. 工具栏上的按钮是在节点属性上可以控制或者隐藏,比如:退回、移交、加签、轨迹等按钮.</li>
|
|
|
|
|
|
|
|
|
|
<li>6. 如果使用绝对路径可以使用ccbpm的全局变量@SDKFromServHost ,比如: @SDKFromServHost/MyFile.htm </li>
|
|
|
|
|
<li>7. 例如:/SDKFlowDemo/SDK/SmartSDKFrm.html , /SDKFlowDemo/SDK/SmartSDKFrm.html</li>
|
|
|
|
|
<li>8. 系统在实际执行的时候,会向您的页面里面传入参数</li>
|
|
|
|
|
|
|
|
|
|
<li>8. 比如:SmartSDKFrm.html?WorkID=1223&FK_Node=105&FK_Flow=001&UserNo=zhangsan&SID=xcwwxccsdsdsd</li>
|
|
|
|
|
<li>9. 您可以在您的页面里,接受系统参数进行相关的操作。</li>
|
|
|
|
|
<li>10. 首先接受WorkID作为您的业务表主键,进行数据的保存与读取,也可以使用FK_Node判断当前调用的节点进行相关的界面权限操作.</li>
|
|
|
|
|
<li>11. 其次可以使用FK_Node判断当前调用的节点进行相关的界面元素的权限操作,也可以使用我们系统提供的元素权限控制方案.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<legend>如何与我的业务表数据结合?</legend>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>1. 系统会向您的页面通过url的方式(ABC.htm?WorkID=xxxxx)传入WorkID参数,它是流程的实例,全局唯一,不重复,可以用它作为您的主键.</li>
|
|
|
|
|
<li>2. 如果您的业务表是以int类型作为主键的,请把workid作为主键存取,如果不是Int类型的主键,请扩展一个int类型的列(例如:WorkID)存取WorkID.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<legend>如何控制页面元素的权限?</legend>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>11. 其次可以使用FK_Node判断当前调用的节点进行相关的界面元素的权限操作,也可以使用我们系统提供的元素权限控制方案.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<legend>解释说明</legend>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>1. 如果要在您的业务表单上跑流程,仅仅要做的是把 SmartSDKFrm.js 放入到您的页面里面. </li>
|
|
|
|
|
<li>2. 系统就会自动生成流程引擎的控制toolbar, toolbar 的按钮权限在节点属性里直接控制.</li>
|
|
|
|
|
<li>3. 您可以充分利用ccbpm的很多组件功能,比如:定位、地图、拍照、附件、评论、写字板、超链接组件等等.</li>
|
|
|
|
|
<!--<li>运行效果图 - <a href="javascript:OpenAPI()">查看发送,退回API接口.</a> </li>-->
|
|
|
|
|
<li><img style=" border:1px;" class="HelpImg" src="SDKFrmSmart.png" /></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</fieldset>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|