routine update

This commit is contained in:
yubaolee 2018-03-14 17:39:40 +08:00
parent 0a21ac28ff
commit 0c2cb7911d
8 changed files with 245 additions and 134 deletions

View File

@ -25,6 +25,12 @@ namespace OpenAuth.Mvc.Controllers
return View();
}
//流程节点信息
public ActionResult NodeInfo()
{
return View();
}
//添加或修改
[System.Web.Mvc.HttpPost]
public string Add(FlowScheme obj)

View File

@ -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>

View File

@ -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>

View File

@ -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>

View 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>

View File

@ -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=====================*/
})

View File

@ -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
})

View 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;
}
})