mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-05-11 16:18:03 +08:00
433 lines
20 KiB
Plaintext
433 lines
20 KiB
Plaintext
@{
|
|
ViewBag.Title = "工作流节点设置";
|
|
Layout = "~/Views/Shared/_Form.cshtml";
|
|
}
|
|
<link href="~/Content/styles/learun-ckbox-radio.css" rel="stylesheet" />
|
|
<link href="~/Content/styles/learun-flow.css" rel="stylesheet" />
|
|
<script>
|
|
var node, nodelist = [], frmContentJson, frmType, NodePramData;
|
|
$(function () {
|
|
initLoadPageData();
|
|
initControl();
|
|
})
|
|
function initLoadPageData()
|
|
{
|
|
var _FlowDesignObject = parent.FlowDesignObject;
|
|
node = _FlowDesignObject.$nodeData[_FlowDesignObject.$focus];
|
|
node.id = _FlowDesignObject.$focus;
|
|
for (var i in _FlowDesignObject.$nodeData) {
|
|
_FlowDesignObject.$nodeData[i]["id"] = i;
|
|
nodelist.push(_FlowDesignObject.$nodeData[i]);
|
|
}
|
|
|
|
frmContentJson = JSON.parse(parent.frmData["FrmContent"]);
|
|
initFrmCotent(frmContentJson);
|
|
}
|
|
//初始化控件
|
|
function initControl() {
|
|
GetDesignateMemberTree();
|
|
$('.systemdatabase').hide();
|
|
if (node.type != "confluencenode")//是否会签节点
|
|
{
|
|
$('#confluencenode').hide();
|
|
}
|
|
$('#NodeName').val(node.name);
|
|
|
|
//由谁执行
|
|
//var dd = $("#NodeMake").ComboBox({
|
|
// data: [{ "key": 0, "value": "操作执行人员" }, { "key": 1, "value": "系统执行" }],
|
|
// id: "key",
|
|
// text: "value"
|
|
//}).ComboBoxSetValue(0);
|
|
//表单
|
|
$("#NodeFrm").ComboBox({
|
|
url: "../../FlowManage/FormDesign/GetAllListJson",
|
|
id: "frmmainid",
|
|
text: "frmname",
|
|
description: "==请选择==",
|
|
allowSearch: true
|
|
});
|
|
//驳回类型
|
|
$("#NodeRejectType").ComboBox({
|
|
data: [{ "key": 0, "value": "前一步" }, { "key": 1, "value": "第一步" }, { "key": 2, "value": "某一步" }, { "key": 3, "value": "用户指定" }, { "key": 4, "value": "不处理" }],
|
|
id: "key",
|
|
text: "value"
|
|
}).bind("change", function () {
|
|
var _value = $(this).attr('data-value');
|
|
var _comdata = [];
|
|
if (_value == 2) {
|
|
_comdata = nodelist;
|
|
}
|
|
//驳回到某一步
|
|
$("#NodeRejectStep").ComboBox({
|
|
data: _comdata,
|
|
id: "id",
|
|
text: "name"
|
|
});
|
|
}).ComboBoxSetValue(0);
|
|
//驳回到某一步
|
|
$("#NodeRejectStep").ComboBox({
|
|
description: "==请选择==",
|
|
allowSearch: true,
|
|
height: "110px",
|
|
});
|
|
//会签策略
|
|
$("#NodeConfluenceType").ComboBox({
|
|
data: [{ "key": 0, "value": "所有步骤通过" }, { "key": 1, "value": "一个步骤通过即可" }, { "key": 2, "value": "按百分比计算" }],
|
|
id: "key",
|
|
text: "value",
|
|
description: "==请选择==",
|
|
});
|
|
//处理者
|
|
$("input[name='NodeDesignateTypename']").click(function () {
|
|
var id = $(this).attr('id');
|
|
if (id == 'NodeDesignateType2') {
|
|
$("#Treebackground").hide();
|
|
} else {
|
|
$("#Treebackground").show();
|
|
}
|
|
});
|
|
|
|
|
|
if (node.setInfo != undefined)
|
|
{
|
|
var _NodeCode = $('#NodeCode').val();
|
|
node.setInfo.NodeCode = node.setInfo.NodeCode == "" ? _NodeCode : node.setInfo.NodeCode;
|
|
$("#BaseInfo").SetWebControls(node.setInfo);
|
|
$('#NodeDataBase').trigger('change');
|
|
$('#NodeTable').ComboBoxSetValue(node.setInfo.NodeTable);
|
|
$('#NodeTable').trigger('change');
|
|
$('#NodePram').ComboBoxSetValue(node.setInfo.NodePram);
|
|
|
|
$("#" + node.setInfo.NodeDesignate).trigger("click");
|
|
if (node.setInfo.NodeDesignate == "NodeDesignateType2")
|
|
{
|
|
$("#Role").setCheckedNodes(node.setInfo.NodeDesignateData.role);
|
|
$("#Post").setCheckedNodes(node.setInfo.NodeDesignateData.post);
|
|
$("#UserGroup").setCheckedNodes(node.setInfo.NodeDesignateData.usergroup);
|
|
$("#User").setCheckedNodes(node.setInfo.NodeDesignateData.user);
|
|
}
|
|
$.each(node.setInfo.frmPermissionInfo, function (i, item) {
|
|
if (item.look) {
|
|
$('#PermissionInfo').find('#frm_' + item.fieldid).attr("checked", "checked");
|
|
}
|
|
else {
|
|
$('#PermissionInfo').find('#frm_' + item.fieldid).removeAttr("checked");
|
|
}
|
|
if (item.down != undefined)
|
|
{
|
|
if (item.down) {
|
|
$('#PermissionInfo').find('#frmx_' + item.fieldid).attr("checked", "checked");
|
|
}
|
|
else {
|
|
$('#PermissionInfo').find('#frmx_' + item.fieldid).removeAttr("checked");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
function initLoadSysTemTable()
|
|
{
|
|
//数据库选择
|
|
var _NodeDb = "";
|
|
$("#NodeDataBase").ComboBoxTree({
|
|
description: "==请选择库==",
|
|
height: "150px",
|
|
url: "../../SystemManage/DataBaseLink/GetTreeJson",
|
|
allowSearch: true
|
|
}).bind("change", function () {
|
|
var value = $(this).attr('data-value');
|
|
_NodeDb = value;
|
|
//数据表
|
|
$("#NodeTable").ComboBox({
|
|
param: { dataBaseLinkId: value },
|
|
url: "../../SystemManage/DataBaseTable/GetTableListJson",
|
|
id: "name",
|
|
text: "name"
|
|
});
|
|
});
|
|
//数据表
|
|
$("#NodeTable").ComboBox({
|
|
description: "==请选择表==",
|
|
height: "140px",
|
|
allowSearch: true
|
|
}).bind("change", function () {
|
|
var value = $(this).attr('data-value');
|
|
var tablefiledJsonData = [];
|
|
$.ajax({
|
|
url: "../../SystemManage/DataBaseTable/GetTableFiledListJson",
|
|
data: { dataBaseLinkId: _NodeDb, tableName: value },
|
|
type: "GET",
|
|
dataType: "json",
|
|
async: false,
|
|
success: function (data) {
|
|
tablefiledJsonData = data;
|
|
$.each(tablefiledJsonData, function (id, item) {
|
|
item.remark = item.column + "【" + item.remark + "】";
|
|
});
|
|
NodePramData = tablefiledJsonData;
|
|
//数据表
|
|
$("#NodePram").ComboBox({
|
|
data: tablefiledJsonData,
|
|
id: "column",
|
|
text: "remark"
|
|
});
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
dialogMsg(errorThrown, -1);
|
|
}
|
|
});
|
|
});
|
|
$("#NodePram").ComboBox({
|
|
description: "==请选择字段==",
|
|
height: "140px",
|
|
allowSearch: true
|
|
});
|
|
}
|
|
function GetDesignateMemberTree()
|
|
{
|
|
//GetTree('Role');
|
|
//GetTree('Post');
|
|
//GetTree('UserGroup');
|
|
//GetTree('User');
|
|
//function GetTree(type) {
|
|
// var item = {
|
|
// height: 262,
|
|
// showcheck: true,
|
|
// data: $.arrayClone(parent.AllAuthorizeCheckData[type]),
|
|
// oncheckboxclick: function (item, et, s) {
|
|
// var $item = $("#" + item.mytype + "Div");
|
|
// if (et == 1) {
|
|
// var mytype = "";
|
|
// var _html = "";
|
|
// var _title = '';
|
|
// switch (item.mytype) {
|
|
// case "Role":
|
|
// mytype = 'label-success';
|
|
// break;
|
|
// case "Post":
|
|
// mytype = 'label-info';
|
|
// break;
|
|
// case "UserGroup":
|
|
// mytype = 'label-warning';
|
|
// break;
|
|
// case "User":
|
|
// mytype = 'label-danger';
|
|
// break;
|
|
// }
|
|
// _html += '<span id="' + item.id + '" data-value="' + item.mytype + '" class="flow-card-box label ' + mytype + ' ">' + item.text + '<i class="fa fa-close"></i></span>';
|
|
// $item.append(_html);
|
|
// $item.show();
|
|
|
|
// $(".flow-card-box").click(function () {
|
|
// $(this).remove();
|
|
// $('#' + $(this).attr('data-value')).setNoCheckedNodes($(this).attr('id'));
|
|
// if ($item.find('.flow-card-box').length == 0) {
|
|
// $item.hide();
|
|
// }
|
|
// })
|
|
// }
|
|
// else if (et == 0) {
|
|
// $item.find('#' + item.id).remove();
|
|
// if ($item.find('.flow-card-box').length == 0) {
|
|
// $item.hide();
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
// };
|
|
// $("#" + type).treeview(item);
|
|
//}
|
|
}
|
|
function initFrmCotent(data)
|
|
{
|
|
$.each(data, function (i, item) {
|
|
var rowdata = '<tr><td><i class="fa fa-star"></i></td><td>' + item.control_label + '</td><td>';
|
|
if (item.control_type == 'image' || item.control_type == 'upload')
|
|
{
|
|
rowdata += '<div class="ckbox ckbox-color_a"><input id="frmx_' + item.control_field + '" value="'+ item.control_field +'" type="checkbox" checked><label for="frmx_' + item.control_field + '">下载</label></div>';
|
|
}
|
|
rowdata += '<div class="ckbox ckbox-color_a"><input id="frm_' + item.control_field + '" value="'+ item.control_field +'" type="checkbox" checked><label for="frm_' + item.control_field + '">查看</label></div>';
|
|
rowdata += '</td></tr>';
|
|
|
|
$('#PermissionInfo').find('table').append(rowdata);
|
|
});
|
|
}
|
|
//保存字段设置
|
|
function AcceptClick() {
|
|
if (!$('#BaseInfo').Validform()) {
|
|
return false;
|
|
}
|
|
var baseinfo = $("#BaseInfo").GetWebControls();
|
|
baseinfo["NodeDesignate"] = $('.bottomline').find('input:checked').attr("id");
|
|
if (baseinfo["NodeDesignate"] == 'NodeDesignateType2') {
|
|
var _Designate = {};
|
|
_Designate["role"] = $("#Role").getCheckedAllNodes();
|
|
_Designate["post"] = $("#Post").getCheckedAllNodes();
|
|
_Designate["usergroup"] = $("#UserGroup").getCheckedAllNodes();
|
|
_Designate["user"] = $("#User").getCheckedAllNodes();
|
|
baseinfo["NodeDesignateData"] = _Designate;
|
|
}
|
|
var _PermissionInfo = [];
|
|
$.each($('#PermissionInfo').find('tr'),function(i,item){
|
|
var _ck = $(item).find('input');
|
|
|
|
var _point = {};
|
|
$.each(_ck,function(j,d){
|
|
_point["fieldid"] = $(d).val();
|
|
if($(d).attr("id").indexOf("frmx_") == -1)
|
|
{
|
|
_point["look"] = $(d)[0].checked;
|
|
}
|
|
else
|
|
{
|
|
_point["down"] = $(d)[0].checked;
|
|
}
|
|
});
|
|
_PermissionInfo.push(_point);
|
|
});
|
|
baseinfo["frmPermissionInfo"] = _PermissionInfo;
|
|
var sqlinfo = $("#SQLInfo").GetWebControls();
|
|
baseinfo = $.extend(baseinfo, sqlinfo);
|
|
parent.callBackNode(node.id, baseinfo, NodePramData);
|
|
}
|
|
</script>
|
|
<ul class="nav nav-tabs">
|
|
<li class="active"><a href="#BaseInfo" data-toggle="tab">基本配置</a></li>
|
|
<li><a href="#MakerInfo" data-toggle="tab">审核者</a></li>
|
|
<li><a href="#PermissionInfo" data-toggle="tab">权限分配</a></li>
|
|
@*<li><a href="#SQLInfo" data-toggle="tab">节点通过后执行SQL</a></li>*@
|
|
</ul>
|
|
<div class="tab-content">
|
|
<div id="BaseInfo" class="tab-pane active" style="padding-top:15px;padding-right:30px;">
|
|
<table class="form">
|
|
<tr>
|
|
<td class="formTitle">节点标识</td>
|
|
<td class="formValue">
|
|
<input id="NodeCode" type="text" class="form-control" value="@Guid.NewGuid().ToString()" disabled isvalid="yes" checkexpession="NotNull" />
|
|
</td>
|
|
<td class="formTitle">节点名称<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<input id="NodeName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
|
|
</td>
|
|
</tr>
|
|
<tr class="systemdatabase">
|
|
<td class="formTitle">绑定表名<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<div id="NodeDataBase" style="float:left;width:128px;" type="selectTree" class="ui-select" ></div>
|
|
<div id="NodeTable" style="float:right;width:128px;" type="select" class="ui-select" ></div>
|
|
</td>
|
|
<td class="formTitle">绑定字段<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<div id="NodePram" type="select" class="ui-select"></div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="formTitle">驳回类型<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<div id="NodeRejectType" type="select" class="ui-select" isvalid="yes" checkexpession="NotNull"></div>
|
|
</td>
|
|
<td class="formTitle">驳回步骤</td>
|
|
<td class="formValue">
|
|
<div id="NodeRejectStep" type="select" class="ui-select"></div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
@*<td class="formTitle">由谁执行<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<div id="NodeMake" type="select" class="ui-select" isvalid="yes" checkexpession="NotNull"></div>
|
|
</td>*@
|
|
<td class="formTitle">选项</td>
|
|
<td class="formValue">
|
|
<div class="ckbox ckbox-color_a"><input id="NodeIsOver" type="checkbox" /><label for="NodeIsOver">是否允许终止流程</label></div>
|
|
</td>
|
|
|
|
</tr>
|
|
<tr id="confluencenode">
|
|
<td class="formTitle">会签策略<font face="宋体">*</font></td>
|
|
<td class="formValue">
|
|
<div id="NodeConfluenceType" type="select" class="ui-select"></div>
|
|
</td>
|
|
<td class="formTitle">会签比例</td>
|
|
<td class="formValue">
|
|
<input id="NodeConfluenceRate" type="text" class="form-control" value="100" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="formTitle">
|
|
备注
|
|
</th>
|
|
<td class="formValue" colspan="3">
|
|
<textarea id="Description" class="form-control" style="height: 80px;"></textarea>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div id="MakerInfo" class="tab-pane">
|
|
<div class="bottomline">
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType1" type="radio" checked /><label for="NodeDesignateType1">所有成员</label></div>
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType2" type="radio" /><label for="NodeDesignateType2">指定成员</label></div>
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType3" type="radio" /><label for="NodeDesignateType3">发起者领导</label></div>
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType4" type="radio" /><label for="NodeDesignateType4">前一步骤领导</label></div>
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType5" type="radio" /><label for="NodeDesignateType5">发起者部门领导</label></div>
|
|
<div class="rdio rdio-color_a"><input name="NodeDesignateTypename" id="NodeDesignateType6" type="radio" /><label for="NodeDesignateType6">发起者公司领导</label></div>
|
|
</div>
|
|
<div id="DesignateMember" >
|
|
<div class="standtabborder" style="height: 262px;">
|
|
<div class="standtab standtabactived" onclick="$.standTabchange(this, 'Role')">
|
|
角色
|
|
</div>
|
|
<div class="standtab " onclick="$.standTabchange(this, 'Post')">
|
|
岗位
|
|
</div>
|
|
<div class="standtab " onclick="$.standTabchange(this, 'UserGroup')">
|
|
用户组
|
|
</div>
|
|
<div class="standtab " onclick="$.standTabchange(this, 'User')">
|
|
用户
|
|
</div>
|
|
</div>
|
|
<div id="Role" class="standtab-pane"></div>
|
|
<div id="Post" style="display: none;" class="standtab-pane"></div>
|
|
<div id="UserGroup" style="display: none;" class="standtab-pane"></div>
|
|
<div id="User" style="display: none;" class="standtab-pane"></div>
|
|
<div style="margin: 0px; border-right: none; border-left: none; border-bottom: none; background-color: #fff; overflow: auto; padding-bottom: 10px;height:262px;">
|
|
<div id="RoleDiv" class="flow-portal-panel">
|
|
<div class="flow-portal-panel-title"><i class="fa fa-paw"></i> 角色</div>
|
|
</div>
|
|
<div id="PostDiv" class="flow-portal-panel">
|
|
<div class="flow-portal-panel-title"><i class="fa fa-graduation-cap"></i> 岗位</div>
|
|
</div>
|
|
<div id="UserGroupDiv" class="flow-portal-panel">
|
|
<div class="flow-portal-panel-title"><i class="fa fa-group"></i> 用户组</div>
|
|
</div>
|
|
<div id="UserDiv" class="flow-portal-panel">
|
|
<div class="flow-portal-panel-title"><i class="fa fa-user"></i> 用户</div>
|
|
</div>
|
|
</div>
|
|
<div id="Treebackground" style="position: fixed; top: 87px; left: 0px; z-index: 2; width: 750px; height: 262px; background: #000; filter: alpha(opacity=10); opacity: 0.1;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="PermissionInfo" class="tab-pane" style="overflow-y:auto;">
|
|
<div style="line-height:45px;padding-left:10px;color: #666; font-weight: 300;font-size: 16px;">
|
|
<i class="fa fa-tags"></i> 表单权限配置(默认都是勾选的)
|
|
</div>
|
|
<div style="overflow-y:auto;height:261px;">
|
|
<table class="table flow-table-Permission"></table>
|
|
</div>
|
|
</div>
|
|
<div id="SQLInfo" class="tab-pane">
|
|
<div style="padding:10px;">
|
|
<div id="NodeDataBaseToSQL" style="margin-bottom:10px;" type="selectTree" class="ui-select"></div>
|
|
<textarea id="NodeSQL" class="form-control" placeholder="请在此处填写需要执行的SQL语句,用{0}表示流程实例的主键Id!" style="height: 240px;"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<style>
|
|
.standtab-pane {
|
|
width:224px;
|
|
border-right:1px solid #ccc;
|
|
float:left;
|
|
}
|
|
</style>
|