mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-04-05 17:38:01 +08:00
routine update
This commit is contained in:
parent
0a21ac28ff
commit
0c2cb7911d
@ -25,6 +25,12 @@ namespace OpenAuth.Mvc.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
//流程节点信息
|
||||
public ActionResult NodeInfo()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
//添加或修改
|
||||
[System.Web.Mvc.HttpPost]
|
||||
public string Add(FlowScheme obj)
|
||||
|
@ -205,6 +205,7 @@
|
||||
<Content Include="js\flow-ui\img\wallbg.png" />
|
||||
<Content Include="js\utils\flowlayout.js" />
|
||||
<Content Include="js\utils\ui.js" />
|
||||
<Content Include="userJs\nodeInfo.js" />
|
||||
<Content Include="userJs\categories.js" />
|
||||
<Content Include="userJs\assign.js" />
|
||||
<Content Include="js\openauth.js" />
|
||||
@ -236,7 +237,6 @@
|
||||
<Content Include="userJs\modules.js" />
|
||||
<Content Include="js\queryString.js" />
|
||||
<Content Include="userJs\orgs.js" />
|
||||
<Content Include="userJs\flowDesign.js" />
|
||||
<Content Include="userJs\roles.js" />
|
||||
<Content Include="js\ueditor\dialogs\anchor\anchor.html" />
|
||||
<Content Include="js\ueditor\dialogs\attachment\attachment.css" />
|
||||
@ -643,7 +643,7 @@
|
||||
<Content Include="Views\Forms\Preview.cshtml" />
|
||||
<Content Include="Views\FlowInstances\Index.cshtml" />
|
||||
<Content Include="Views\FlowSchemes\Index.cshtml" />
|
||||
<Content Include="Views\FlowSchemes\Design.cshtml" />
|
||||
<Content Include="Views\FlowSchemes\NodeInfo.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
|
@ -1,19 +0,0 @@
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link href="/js/ueditor/formdesign/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<link href="/js/flow-ui/flow.css" rel="stylesheet" />
|
||||
<title>流程设计</title>
|
||||
</head>
|
||||
<body id="flowPanel" style="margin: 0">
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<script type="text/javascript" src="/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="/userJs/flowDesign.js"></script>
|
@ -1,6 +1,7 @@
|
||||
@section header
|
||||
{
|
||||
<link rel="stylesheet" href="/css/treetable.css" />
|
||||
<link href="/js/flow-ui/flow.css" rel="stylesheet" />
|
||||
}
|
||||
<blockquote class="layui-elem-quote news_search toolList">
|
||||
@Html.Action("MenuHeader", "Home")
|
||||
@ -43,9 +44,9 @@
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">基本信息</li>
|
||||
<li>表单设计</li>
|
||||
<li>流程设计</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content" style="height: 100px;">
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
||||
<div class="layui-form-item">
|
||||
@ -94,11 +95,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<iframe src="/flowschemes/design" style="margin: 0px;"></iframe>
|
||||
<div id="flowPanel" style=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formSubmit">立即提交</button>
|
||||
@ -109,6 +110,6 @@
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="/userJs/flowSchemes.js"></script>
|
||||
<script type="text/javascript" src="/userJs/flowSchemes.js?v2"></script>
|
||||
|
||||
|
||||
|
49
OpenAuth.Mvc/Views/FlowSchemes/NodeInfo.cshtml
Normal file
49
OpenAuth.Mvc/Views/FlowSchemes/NodeInfo.cshtml
Normal file
@ -0,0 +1,49 @@
|
||||
@section header
|
||||
{
|
||||
<link rel="stylesheet" href="/css/treetable.css" />
|
||||
}
|
||||
|
||||
<form class="layui-form" action="" id="formEdit">
|
||||
<div class="layui-row">
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">基本信息</li>
|
||||
<li>执行人</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">节点标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="NodeCode" id="NodeCode" v-model="NodeCode" required lay-verify="required"
|
||||
placeholder="流程编号" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">节点名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="NodeName" v-model="NodeName" required lay-verify="required"
|
||||
placeholder="节点名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="Description" v-model="Description" required lay-verify="required"
|
||||
placeholder="备注" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<ul id="tree" class="ztree" style="display: inline-block; width: 180px; padding: 10px; border: 1px solid #ddd; overflow: auto;"></ul>
|
||||
<ul id="menutree" class="ztree" style="display: inline-block; width: 180px; padding: 10px; border: 1px solid #ddd; overflow: auto;"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript" src="/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="/userJs/nodeInfo.js"></script>
|
@ -1,101 +0,0 @@
|
||||
layui.config({
|
||||
base: "/js/"
|
||||
}).use(['form', 'vue', 'layer', 'jquery', 'table', 'flow-ui/gooflow', 'utils/flowlayout', 'droptree', 'queryString'], function () {
|
||||
var form = layui.form,
|
||||
element = layui.element,
|
||||
//layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
|
||||
layer = layui.layer,
|
||||
$ = layui.jquery;
|
||||
|
||||
var postData = {};//提交数据
|
||||
var flowData = {};
|
||||
var frmData = {};
|
||||
var SchemeContentOld;
|
||||
var frmapp;
|
||||
var shcemeAuthorizeData = "";
|
||||
var AllAuthorizeCheckData = {};
|
||||
|
||||
|
||||
/*=========流程设计(begin)======================*/
|
||||
var FlowDesignPanel;
|
||||
var FlowDesignObject;//
|
||||
var LineId;
|
||||
var nodePramData = [];
|
||||
FlowDesignPanel = $('#flowPanel').flowdesign({
|
||||
height: ($(window).height() - 87),
|
||||
widht: 1000,
|
||||
OpenNode: function (object) {
|
||||
FlowDesignObject = object;
|
||||
if (object.$nodeData[object.$focus].type == 'startround') {
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
skin: 'layui-layer-rim', //加上边框
|
||||
area: ['800px', '450px'], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '节点设置【' + object.$nodeData[object.$focus].name + '】',
|
||||
content: '/FlowManage/FlowDesign/FlowNodeForm',
|
||||
btn: ['保存', '关闭'],
|
||||
yes: function (index, layero) {
|
||||
var body = layer.getChildFrame('body', index);
|
||||
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
iframeWin.AcceptClick();
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
},
|
||||
OpenLine: function (id, object) {
|
||||
FlowDesignObject = object;
|
||||
LineId = id;
|
||||
var _line = object.$lineData[id];
|
||||
var _fromNode = object.$nodeData[_line.from];
|
||||
if (_fromNode.type == "shuntnode") {
|
||||
dialogTop("前一个节点是分流节点无法设置流转条件", "error");
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
skin: 'layui-layer-rim', //加上边框
|
||||
area: ['800px', '450px'], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '流转条件设置',
|
||||
content: '/FlowManage/FlowDesign/FlowLineForm',
|
||||
btn: ['保存', '关闭'],
|
||||
yes: function (index, layero) {
|
||||
var body = layer.getChildFrame('body', index);
|
||||
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
iframeWin.AcceptClick();
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
function setFlowInfo(data) {
|
||||
FlowDesignPanel.loadData(data);
|
||||
}
|
||||
function callBackNode(id, data, _nodePramData) {
|
||||
nodePramData = _nodePramData;
|
||||
FlowDesignPanel.SetNodeEx(id, data);
|
||||
}
|
||||
function callBackLine(id, data) {
|
||||
FlowDesignPanel.SetLineEx(id, data);
|
||||
}
|
||||
function bindingFlow() {
|
||||
var _content = FlowDesignPanel.exportDataEx();
|
||||
if (_content == -1) {
|
||||
return false;
|
||||
}
|
||||
flowData["SchemeContent"] = JSON.stringify({ "Frm": frmData, "Flow": _content });
|
||||
return true;
|
||||
}
|
||||
/*=========流程设计(end)=====================*/
|
||||
|
||||
})
|
@ -1,6 +1,6 @@
|
||||
layui.config({
|
||||
base: "/js/"
|
||||
}).use(['form','vue', 'ztree', 'layer','element', 'jquery', 'table','droptree','openauth'], function () {
|
||||
}).use(['form', 'vue', 'ztree', 'layer', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow-ui/gooflow', 'utils/flowlayout'], function () {
|
||||
var form = layui.form, element = layui.element,
|
||||
//layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
|
||||
layer = layui.layer,
|
||||
@ -66,6 +66,55 @@
|
||||
}
|
||||
}();
|
||||
|
||||
/*=========流程设计(begin)======================*/
|
||||
var flowData = {};
|
||||
var frmData = {};
|
||||
var nodePramData = [];
|
||||
var flowDesignPanel = $('#flowPanel').flowdesign({
|
||||
height: 500,
|
||||
widht: 700,
|
||||
OpenNode: function (object) {
|
||||
if (object.$nodeData[object.$focus].type == 'startround') {
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
area: ['500px', '450px'], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '节点设置【' + object.$nodeData[object.$focus].name + '】',
|
||||
content: '/flowschemes/nodeInfo',
|
||||
btn: ['保存', '关闭'],
|
||||
yes: function (index, layero) {
|
||||
var body = layer.getChildFrame('body', index);
|
||||
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
var nodedata = iframeWin.getVal();
|
||||
flowDesignPanel.SetNodeEx(object.$focus, nodedata);
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
},
|
||||
OpenLine: function (id, object) {
|
||||
lay.msg("暂不能设置分支条件");
|
||||
return;
|
||||
}
|
||||
});
|
||||
function setFlowInfo(data) {
|
||||
flowDesignPanel.loadData(data);
|
||||
}
|
||||
|
||||
function bindingFlow() {
|
||||
var _content = flowDesignPanel.exportDataEx();
|
||||
if (_content == -1) {
|
||||
return false;
|
||||
}
|
||||
flowData["SchemeContent"] = JSON.stringify({ "Frm": frmData, "Flow": _content });
|
||||
return true;
|
||||
}
|
||||
/*=========流程设计(end)=====================*/
|
||||
|
||||
//添加(编辑)对话框
|
||||
var editDlg = function() {
|
||||
var vm = new Vue({
|
||||
@ -90,7 +139,8 @@
|
||||
}
|
||||
//提交数据
|
||||
form.on('submit(formSubmit)',
|
||||
function(data) {
|
||||
function (data) {
|
||||
$.exentd(data.field, flowData);
|
||||
$.post(url,
|
||||
data.field,
|
||||
function(data) {
|
||||
@ -158,8 +208,4 @@
|
||||
});
|
||||
|
||||
//监听页面主按钮操作 end
|
||||
|
||||
|
||||
|
||||
|
||||
})
|
129
OpenAuth.Mvc/userJs/nodeInfo.js
Normal file
129
OpenAuth.Mvc/userJs/nodeInfo.js
Normal file
@ -0,0 +1,129 @@
|
||||
layui.config({
|
||||
base: "/js/"
|
||||
}).use(['form', 'vue', 'ztree', 'layer', 'element', 'jquery', 'queryString'], function () {
|
||||
var //layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
|
||||
layer = layui.layer,
|
||||
$ = layui.jquery;
|
||||
|
||||
var users = [];
|
||||
|
||||
//菜单列表
|
||||
var menucon = {}; //table的参数,如搜索key,点击tree的id
|
||||
//菜单树状列表,等lay table没问题了,可以换成table
|
||||
var menutree = function () {
|
||||
var url = '/UserManager/Load';
|
||||
var menuTree;
|
||||
var setting = {
|
||||
view: { selectedMulti: true },
|
||||
check: {
|
||||
enable: true,
|
||||
chkStyle: "checkbox",
|
||||
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
|
||||
},
|
||||
data: {
|
||||
key: {
|
||||
name: 'Name',
|
||||
title: 'Name'
|
||||
},
|
||||
simpleData: {
|
||||
enable: true,
|
||||
idKey: 'Id',
|
||||
pIdKey: 'ParentId',
|
||||
rootPId: 'null'
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onCheck: function (event, treeId, treeNode) {
|
||||
users.push(treeNode.Id);
|
||||
}
|
||||
}
|
||||
};
|
||||
var load = function (options) {
|
||||
if (options != undefined) {
|
||||
$.extend(menucon, options);
|
||||
}
|
||||
|
||||
$.getJSON(url, menucon, function (json) {
|
||||
menuTree = $.fn.zTree.init($("#menutree"), setting);
|
||||
menuTree.addNodes(null, json.data);
|
||||
//如果已经分配了用户,则设置相应的状态
|
||||
|
||||
$.each(users,
|
||||
function (i) {
|
||||
var that = this;
|
||||
var node = menuTree.getNodeByParam("Id", that, null);
|
||||
menuTree.checkNode(node, true, false);
|
||||
});
|
||||
menuTree.expandAll(true);
|
||||
});
|
||||
};
|
||||
return {
|
||||
load: load
|
||||
}
|
||||
}();
|
||||
|
||||
//左边树状机构列表
|
||||
var ztree = function () {
|
||||
var url = '/UserSession/GetOrgs';
|
||||
var zTreeObj;
|
||||
var setting = {
|
||||
view: { selectedMulti: false },
|
||||
data: {
|
||||
key: {
|
||||
name: 'Name',
|
||||
title: 'Name'
|
||||
},
|
||||
simpleData: {
|
||||
enable: true,
|
||||
idKey: 'Id',
|
||||
pIdKey: 'ParentId',
|
||||
rootPId: 'null'
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onClick: function (event, treeId, treeNode) {
|
||||
menutree.load({ orgId: treeNode.Id });
|
||||
}
|
||||
}
|
||||
};
|
||||
var load = function () {
|
||||
$.getJSON(url, function (json) {
|
||||
zTreeObj = $.fn.zTree.init($("#tree"), setting);
|
||||
var newNode = { Name: "全部", Id: null, ParentId: "" };
|
||||
json.push(newNode);
|
||||
zTreeObj.addNodes(null, json);
|
||||
menutree.load({ orgId: '' });
|
||||
zTreeObj.expandAll(true);
|
||||
});
|
||||
};
|
||||
load();
|
||||
return {
|
||||
reload: load
|
||||
}
|
||||
}();
|
||||
|
||||
var vm = new Vue({
|
||||
el: "#formEdit"
|
||||
});
|
||||
|
||||
var _FlowDesignObject = parent.FlowDesignObject;
|
||||
node = _FlowDesignObject.$nodeData[_FlowDesignObject.$focus];
|
||||
node.id = _FlowDesignObject.$focus;
|
||||
vm.set($data.node.setInfo);
|
||||
|
||||
//提供给上父页面调用
|
||||
getVal = function () {
|
||||
var result = {
|
||||
NodeDesignateData: { //节点指定操作人
|
||||
users: users,
|
||||
role: [],
|
||||
org:[]
|
||||
}
|
||||
};
|
||||
$.extend(result, vm.$data);
|
||||
|
||||
console.log(JSON.stringify(result));
|
||||
return result;
|
||||
}
|
||||
|
||||
})
|
Loading…
Reference in New Issue
Block a user