添加项目文件。
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
@{
|
||||
ViewBag.Title = "Form";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">区域标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="AreaCode" id="AreaCode" readonly 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="AreaName" id="AreaName" 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">
|
||||
<select id="AreaColor" name="AreaColor">
|
||||
<option value="red">红色</option>
|
||||
<option value="yellow">黄色</option>
|
||||
<option value="blue">蓝色</option>
|
||||
<option value="green">绿色</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var FlowDesignObject;
|
||||
function initForm(data) {
|
||||
FlowDesignObject = data.FlowDesignObject;
|
||||
}
|
||||
layui.use(['form', 'jquery', 'common', 'optimizeSelectOption'], function () {
|
||||
var $ = layui.jquery,
|
||||
common = layui.common;
|
||||
var form = layui.form;
|
||||
var Method = $.request("Method");
|
||||
//从flowschemes.js进入的节点信息
|
||||
var area = FlowDesignObject;
|
||||
var tmp = {
|
||||
AreaName: area.name,
|
||||
AreaCode: area.id,//默认的code
|
||||
AreaColor: area.color,//默认的code
|
||||
};
|
||||
var cout = 0;
|
||||
//初始化节点设置信息
|
||||
if (Method == "Details") {
|
||||
var readForm = layui.$('[lay-filter="adminform"]');
|
||||
readForm.find('button').prop('disabled', true);
|
||||
common.setReadOnly('adminform');
|
||||
}
|
||||
common.val('adminform', tmp);
|
||||
form.render(); //重新渲染,防止radio/select等失效
|
||||
wcLoading.close();
|
||||
//提供给上父页面调用
|
||||
getVal = function () {
|
||||
tmp.AreaName = $('#AreaName').val();
|
||||
tmp.AreaColor = $('#AreaColor').val();
|
||||
var result = {
|
||||
AreaName: tmp.AreaName,
|
||||
AreaCode: tmp.AreaCode,
|
||||
AreaColor: tmp.AreaColor,
|
||||
};
|
||||
return result;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,174 @@
|
||||
@{
|
||||
ViewBag.Title = "Details";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<link href="~/js/lay-module/flow/WaterFlow.css" rel="stylesheet" />
|
||||
<link href="~/js/lay-module/formDesigner/formPreview.css" rel="stylesheet" />
|
||||
<script>
|
||||
//只读参数
|
||||
var readonly = true;
|
||||
layui.use(['form', 'layer', 'jquery', 'waterflow', 'flowlayout', 'common','formPreview', 'element', 'optimizeSelectOption'], function () {
|
||||
var form = layui.form, element = layui.element,
|
||||
layer = layui.layer,
|
||||
common = layui.common,
|
||||
formPreview = layui.formPreview,
|
||||
$ = layui.jquery;
|
||||
|
||||
//var index = layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var keyValue = $.request("keyValue");
|
||||
/*=========流程设计(begin)======================*/
|
||||
var flowDesignPanel = $('#flowPanel').flowdesign({
|
||||
height: 300,
|
||||
widht: 300,
|
||||
toolBtns: false,
|
||||
OpenNode: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
valueList = $("#valueList").val().split(',');
|
||||
if (object.type == 'start round mix' || object.type == 'end round') {
|
||||
layer.msg("开始节点与结束节点不能设置");
|
||||
return false;
|
||||
}
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 650;
|
||||
var height = 450;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '节点设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/NodeInfo?Method=' + 'Details',
|
||||
btn: [],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
data.valueList = valueList;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
OpenLine: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
valueList = $("#valueList").val().split(',');
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 650;
|
||||
var height = 400;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '连线设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/LineInfo?Method=' + 'Details',
|
||||
btn: [],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
data.valueList = valueList;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
},
|
||||
});
|
||||
return;
|
||||
},
|
||||
OpenArea: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 450;
|
||||
var height = 250;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '区域设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/AreaInfo?Method=' + 'Details',
|
||||
btn: ['确定', '取消'],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
});
|
||||
/*=========流程设计(end)=====================*/
|
||||
common.ajax({
|
||||
url: '/SystemManage/Flowscheme/GetFormJson',
|
||||
dataType: 'json',
|
||||
data: { keyValue: keyValue },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
var obj = data;
|
||||
flowDesignPanel.loadData(JSON.parse(obj.F_SchemeContent));
|
||||
common.ajax({
|
||||
url: '/SystemManage/Form/GetFormJson',
|
||||
dataType: 'json',
|
||||
data: { keyValue: obj.F_FrmId },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
if (data.F_FrmType == 0) {
|
||||
//表单设计器
|
||||
formPreview.render({
|
||||
data: JSON.parse(data.F_Content),
|
||||
elem: '#frmPreview',
|
||||
readonly:true
|
||||
});
|
||||
}
|
||||
else {
|
||||
$("#frmPreview").load(document.location.origin + '/form/' + data.F_WebId + '.html');
|
||||
}
|
||||
if (!!data.F_ContentData) {
|
||||
$("#valueList").val(data.F_ContentData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
form.render();
|
||||
flowDesignPanel.reinitSize($(window).width() - 50, $(window).height() - 200);
|
||||
$(window).resize(function () {
|
||||
flowDesignPanel.reinitSize($(window).width() - 50, $(window).height() - 200);
|
||||
});
|
||||
wcLoading.close();
|
||||
//让层自适应iframe
|
||||
//layer.iframeAuto(index);
|
||||
})
|
||||
</script>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="tab" style="margin: 0px">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">表单预览</li>
|
||||
<li>流程预览</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<input type="text" name="valueList" id="valueList" class="layui-hide" hidden>
|
||||
<div class="layui-tab-item layui-fluid layui-show">
|
||||
<form class="layui-form layuimini-form">
|
||||
<div class="layui-form-item">
|
||||
<fieldset class="layui-elem-field" style="padding-top:15px;">
|
||||
<div id="frmPreview"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div id="flowPanel" style=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
388
WaterCloud.Web/Areas/SystemManage/Views/Flowscheme/Form.cshtml
Normal file
388
WaterCloud.Web/Areas/SystemManage/Views/Flowscheme/Form.cshtml
Normal file
@@ -0,0 +1,388 @@
|
||||
@{
|
||||
ViewBag.Title = "Form";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<link href="~/js/lay-module/flow/WaterFlow.css" rel="stylesheet" />
|
||||
<link href="~/css/stepcss.css" rel="stylesheet" />
|
||||
<link href="~/js/lay-module/formDesigner/formPreview.css" rel="stylesheet" />
|
||||
<script>
|
||||
//只读参数
|
||||
var readonly = true;
|
||||
layui.use(['form', 'layer', 'element', 'jquery', 'table', 'waterflow', 'flowlayout', 'common', 'step','formPreview', 'optimizeSelectOption'], function () {
|
||||
var form = layui.form,
|
||||
element = layui.element,
|
||||
layer = layui.layer,
|
||||
$ = layui.jquery,
|
||||
step = layui.step,
|
||||
common = layui.common,
|
||||
formPreview = layui.formPreview,
|
||||
table = layui.table;
|
||||
|
||||
var keyValue = $.request("keyValue");
|
||||
//提交的URL
|
||||
//权限字段
|
||||
common.authorizeFields('stepForm');
|
||||
var postData = {};//分步骤表单,最终提交只能获取最后一个表单的数据,所以定义全局数组保存表单数据
|
||||
step.render({
|
||||
elem: '#stepForm',
|
||||
filter: 'stepForm',
|
||||
width: '100%', //设置容器宽度
|
||||
stepWidth: '750px',
|
||||
height: '600px',
|
||||
stepItems: [{
|
||||
title: '基本信息'
|
||||
}, {
|
||||
title: '选择表单'
|
||||
}, {
|
||||
title: '流程设计'
|
||||
}]
|
||||
});
|
||||
$(function () {
|
||||
$('#F_SchemeCode').val(new Date().getTime());
|
||||
initControl();
|
||||
if (!!keyValue) {
|
||||
common.ajax({
|
||||
url: "/SystemManage/Flowscheme/GetFormJson",
|
||||
dataType: "json",
|
||||
data: { keyValue: keyValue },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
common.val('adminform', data);
|
||||
form.render();
|
||||
changeForm(data.F_FrmId)
|
||||
flowDesignPanel.loadData(JSON.parse(data.F_SchemeContent));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
wcLoading.close();
|
||||
function initControl() {
|
||||
$("#F_FrmId").bindSelect({
|
||||
url: "/SystemManage/Form/GetListJson",
|
||||
id: 'F_Id',
|
||||
text: 'F_Name'
|
||||
});
|
||||
form.render();
|
||||
}
|
||||
|
||||
var changeForm = function (id) { //切换表单
|
||||
$('#F_FrmId').val(id);
|
||||
common.ajax({
|
||||
url: '/SystemManage/Form/GetFormJson',
|
||||
dataType: 'json',
|
||||
data: { keyValue: id },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
postData.F_FrmType = data.F_FrmType;
|
||||
if (data.F_FrmType == 0) {
|
||||
//表单设计器
|
||||
formPreview.render({
|
||||
data: JSON.parse(data.F_Content),
|
||||
elem: '#frmPreview',
|
||||
readonly:true
|
||||
});
|
||||
}
|
||||
else {
|
||||
$("#frmPreview").load(document.location.origin + '/form/' + data.F_WebId + '.html');
|
||||
}
|
||||
if (!!data.F_ContentData) {
|
||||
$("#valueList").val(data.F_ContentData);
|
||||
}
|
||||
}
|
||||
});
|
||||
form.render();
|
||||
}
|
||||
|
||||
|
||||
/*=========流程设计(begin)======================*/
|
||||
var flowDesignPanel = $('#flowPanel').flowdesign({
|
||||
height: 300,
|
||||
widht: 300,
|
||||
OpenNode: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
valueList = $("#valueList").val().split(',');
|
||||
if (object.type == 'start round mix' || object.type == 'end round') {
|
||||
layer.msg("开始节点与结束节点不能设置");
|
||||
return false;
|
||||
}
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 650;
|
||||
var height = 550;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '节点设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/NodeInfo',
|
||||
btn: ['确定', '取消'],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
data.valueList = valueList;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
},
|
||||
yes: function (index, layero) {
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
var nodedata = iframeWin.getVal();
|
||||
flowDesignPanel.SetNodeEx(object.id, nodedata);
|
||||
top.layer.close(index);
|
||||
}
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
},
|
||||
OpenLine: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
valueList = $("#valueList").val().split(',');
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 650;
|
||||
var height = 500;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '连线设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/LineInfo',
|
||||
btn: ['确定', '取消'],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
data.valueList = valueList;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
},
|
||||
yes: function (index, layero) {
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
var linedata = iframeWin.getVal();
|
||||
flowDesignPanel.SetLineEx(object.id, linedata);
|
||||
top.layer.close(index);
|
||||
}
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
return;
|
||||
},
|
||||
OpenArea: function (object) {
|
||||
FlowDesignObject = object; //为NodeInfo窗口提供调用
|
||||
//高度宽度超出就适应屏幕
|
||||
var width = 450;
|
||||
var height = 350;
|
||||
var _width = document.body.clientWidth > width ? width + 'px' : document.body.clientWidth - 20 + 'px';
|
||||
var _height = document.body.clientHeight > height ? height + 'px' : document.body.clientHeight - 20 + 'px';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [_width, _height], //宽高
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
title: '区域设置【' + object.name + '】',
|
||||
content: '/SystemManage/Flowscheme/AreaInfo',
|
||||
btn: ['确定', '取消'],
|
||||
success: function (layero, index) {
|
||||
//子界面定义一个窗口方法initForm,里面调用common.val给参数赋值
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var data = {};
|
||||
data.FlowDesignObject = FlowDesignObject;
|
||||
data.valueList = valueList;
|
||||
layero.find('iframe')[0].contentWindow.initForm(data);
|
||||
}
|
||||
},
|
||||
yes: function (index, layero) {
|
||||
if (layero.find('iframe')[0].contentWindow.initForm) {
|
||||
var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
||||
var areadata = iframeWin.getVal();
|
||||
flowDesignPanel.SetAreaEx(object.id, areadata);
|
||||
top.layer.close(index);
|
||||
}
|
||||
},
|
||||
cancel: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
/*=========流程设计(end)=====================*/
|
||||
//提交数据
|
||||
form.on('submit(saveBtn)',
|
||||
function (data) {
|
||||
var content = flowDesignPanel.exportDataEx();
|
||||
if (content == -1) {
|
||||
return false; //阻止表单跳转。
|
||||
}
|
||||
var schemecontent = {
|
||||
F_SchemeContent: JSON.stringify(content)
|
||||
}
|
||||
$.extend(data.field, schemecontent);
|
||||
|
||||
return false; //阻止表单跳转。
|
||||
});
|
||||
$('.pre').click(function () {
|
||||
step.pre('#stepForm');
|
||||
});
|
||||
|
||||
$('.next').click(function () {
|
||||
step.next('#stepForm');
|
||||
});
|
||||
form.on('submit(formStep)', function (data) {
|
||||
postData = $.extend(postData, data.field);
|
||||
step.next('#stepForm');
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on('submit(formStep2)', function (data) {
|
||||
if (!data.field.F_FrmId) {
|
||||
common.modalMsg("请选择表单", "warning");
|
||||
return false;
|
||||
}
|
||||
postData = $.extend(postData, data.field);
|
||||
step.next('#stepForm');
|
||||
return false;
|
||||
});
|
||||
//监听提交
|
||||
form.on('submit(saveBtn)', function (data) {
|
||||
var content = flowDesignPanel.exportDataEx();
|
||||
if (content == -1) {
|
||||
return false; //阻止表单跳转。
|
||||
}
|
||||
var schemecontent = {
|
||||
F_SchemeContent: JSON.stringify(content)
|
||||
}
|
||||
if (!postData["F_EnabledMark"]) postData["F_EnabledMark"] = false;
|
||||
$.extend(data.field, schemecontent);
|
||||
$.extend(postData, data.field);
|
||||
postData.F_AuthorizeType = 0;
|
||||
common.submitForm({
|
||||
url: "/SystemManage/Flowscheme/SubmitForm?keyValue=" + keyValue,
|
||||
param: postData,
|
||||
success: function () {
|
||||
common.reloadIframe("/SystemManage/Flowscheme/Index", 'data-search-btn');
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
form.on('select(formChangeFilter)', function (obj) {
|
||||
if (!!obj.value) {
|
||||
changeForm(obj.value);
|
||||
}
|
||||
else {
|
||||
$("#frmPreview").html('');
|
||||
$("#valueList").val('');
|
||||
}
|
||||
});
|
||||
|
||||
flowDesignPanel.reinitSize($(window).width() - 50, $(window).height() - 100);
|
||||
$(window).resize(function () {
|
||||
flowDesignPanel.reinitSize($(window).width() - 50, $(window).height() - 100);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-carousel" id="stepForm" lay-filter="stepForm">
|
||||
<div carousel-item>
|
||||
<div>
|
||||
<form class="layui-form layuimini-form">
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">流程编号</label>
|
||||
<input type="text" name="valueList" id="valueList" class="layui-hide" hidden>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="F_SchemeCode" id="F_SchemeCode" required lay-verify="required"
|
||||
placeholder="流程编号" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">流程名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="F_SchemeName" id="F_SchemeName" required lay-verify="required"
|
||||
placeholder="流程名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" pattern="[0-9]*" id="F_SortCode" name="F_SortCode" lay-verify="required|number" oninput="if(value.length>8)value=value.slice(0,8)" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">选项</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="F_EnabledMark" id="F_EnabledMark" checked="" value="true" title="有效标识">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text layui-hide">
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="F_Description" name="F_Description" class="layui-textarea" placeholder="请输入备注"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group-bottom text-right">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formStep">
|
||||
 下一步 
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<form class="layui-form layuimini-form">
|
||||
<div class="layui-form-item">
|
||||
<select id="F_FrmId" name="F_FrmId" lay-filter='formChangeFilter' lay-search>
|
||||
<option value="" selected>请选择</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<fieldset class="layui-elem-field" style="padding-top:15px;">
|
||||
<div id="frmPreview"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="form-group-bottom text-right">
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
|
||||
<button class="layui-btn" lay-submit lay-filter="formStep2">
|
||||
 下一步 
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<form class="layui-form layuimini-form">
|
||||
<div class="layui-form-item">
|
||||
<div id="flowPanel" style=""></div>
|
||||
</div>
|
||||
<div class="form-group-bottom text-right">
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
|
||||
<button class="layui-btn site-demo-active" lay-submit lay-filter="saveBtn">
|
||||
 保存 
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
211
WaterCloud.Web/Areas/SystemManage/Views/Flowscheme/Index.cshtml
Normal file
211
WaterCloud.Web/Areas/SystemManage/Views/Flowscheme/Index.cshtml
Normal file
@@ -0,0 +1,211 @@
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
Layout = "~/Views/Shared/_Index.cshtml";
|
||||
}
|
||||
<div class="layui-fluid" style="padding:0 0px">
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-md4 layui-col-xs5">
|
||||
<div class="layui-card" style="padding: 5px;">
|
||||
<fieldset class="table-search-fieldset" style="border:1px solid #e6e6e6">
|
||||
<legend>部门列表</legend>
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="temp_keyword" name="temp_keyword" autocomplete="off" class="layui-input" placeholder="">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="temp-search-btn"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
<table class="layui-hide" id="currentTable" lay-filter="currentTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8 layui-col-xs7">
|
||||
<div class="layui-card" style="padding: 5px;">
|
||||
<fieldset class="table-search-fieldset" id="searchField">
|
||||
<legend>流程列表</legend>
|
||||
<form class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">关键字:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container" id="toolbar">
|
||||
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新增</button>
|
||||
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide" lay-event="edit"><i class="layui-icon"></i>修改</button>
|
||||
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon"></i>删除</button>
|
||||
<button id="NF-details" name="NF-details" authorize class="layui-btn layui-btn-sm layui-btn-normal layui-hide" lay-event="details"> <i class="layui-icon"></i>预览</button>
|
||||
</div>
|
||||
</script>
|
||||
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.use(['form', 'table', 'treeTablelay', 'common', 'commonTable'], function () {
|
||||
var form = layui.form,
|
||||
table = layui.table,
|
||||
commonTable = layui.commonTable,
|
||||
treeTablelay = layui.treeTablelay,
|
||||
common = layui.common;
|
||||
var entity;
|
||||
var ItemId;
|
||||
//权限控制(js是值传递)
|
||||
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
|
||||
var options = {
|
||||
elem: '#currentTable',
|
||||
url: '/SystemOrganize/Organize/GetTreeGridJson',
|
||||
defaultToolbar: [],
|
||||
toolbar: false,
|
||||
search: false,
|
||||
treeColIndex: 0,
|
||||
height: 'full-130',
|
||||
treeIdName: 'F_Id', // id字段名称
|
||||
treePidName: 'F_ParentId', // pid字段名称
|
||||
cols: [[
|
||||
{ field: 'F_FullName', title: '部门名称', width: 250, filter: true },
|
||||
{ field: 'F_EnCode', title: '部门编号', width: 180, filter: true },
|
||||
{
|
||||
field: 'F_CategoryId', title: '部门分类', width: 120, filter: true,
|
||||
templet: function (d) {
|
||||
return top.clients.dataItems["OrganizeCategory"][d.F_CategoryId] == null ? "" : top.clients.dataItems["OrganizeCategory"][d.F_CategoryId];
|
||||
}
|
||||
}
|
||||
]],
|
||||
};
|
||||
commonTable.rendertreetable(options);
|
||||
commonTable.rendertable({
|
||||
elem: '#currentTableId',
|
||||
id: 'currentTableId',
|
||||
url: '/SystemManage/Flowscheme/GetGridJson',
|
||||
where: { ItemId: ItemId },
|
||||
limit: 9999,//每页数据 默认
|
||||
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||
layout: ['count'] //自定义分页布局
|
||||
, first: false //不显示首页
|
||||
, last: false //不显示尾页
|
||||
},
|
||||
search: false,
|
||||
height: 'full-130',
|
||||
autoSort: true,
|
||||
cols: [[
|
||||
{ type: "radio", width: 50 },
|
||||
{ field: 'F_SchemeCode', title: '流程编号', width: 150, sort: true },
|
||||
{ field: 'F_SchemeName', title: '流程名称', width: 200, sort: true },
|
||||
{ field: 'F_SchemeVersion', title: '流程版本', width: 120, sort: true, hide: true },
|
||||
{ field: 'F_Description', title: '备注', minWidth: 250, sort: true },
|
||||
{ field: 'F_SortCode', title: '排序', width: 80, sort: true },
|
||||
{
|
||||
field: 'F_EnabledMark', title: '状态', width: 80,
|
||||
templet: function (d) {
|
||||
if (d.F_EnabledMark == true) {
|
||||
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>有效</span>";
|
||||
} else {
|
||||
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>无效</span>";
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'F_CreatorTime', title: '创建时间', width: 120,
|
||||
templet: function (d) {
|
||||
if (d.F_CreatorTime) {
|
||||
var time = new Date(d.F_CreatorTime);
|
||||
return time.Format("yyyy-MM-dd");
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
]]
|
||||
});
|
||||
// 监听搜索操作
|
||||
form.on('submit(temp-search-btn)', function (data) {
|
||||
var queryJson = data.field.temp_keyword;
|
||||
//执行搜索重载
|
||||
options.where = { keyword: queryJson };
|
||||
commonTable.rendertreetable(options);
|
||||
itemId = null;
|
||||
return false;
|
||||
});
|
||||
// 监听搜索操作
|
||||
form.on('submit(data-search-btn)', function (data) {
|
||||
//执行搜索重载
|
||||
commonTable.reloadtable({
|
||||
elem: 'currentTableId',
|
||||
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||
layout: ['count'] //自定义分页布局
|
||||
, first: false //不显示首页
|
||||
, last: false //不显示尾页
|
||||
},
|
||||
where: { ItemId: ItemId, keyword: data.field.txt_keyword }
|
||||
});
|
||||
entity = null;
|
||||
return false;
|
||||
});
|
||||
wcLoading.close();
|
||||
//行点击事件监听,控制按钮显示
|
||||
var oneList = ["NF-edit", "NF-delete", "NF-details"];//选择1条显示
|
||||
commonTable.tableRowClick("radio", "currentTableFilter", "currentTableId", oneList);
|
||||
table.on('row(currentTable)', function (obj) {
|
||||
obj.tr.addClass("layui-table-click").siblings().removeClass("layui-table-click");
|
||||
ItemId = obj.data.F_Id;
|
||||
$('button[lay-filter="data-search-btn"]').click();//按钮刷新
|
||||
})
|
||||
//toolbar监听事件
|
||||
table.on('toolbar(currentTableFilter)', function (obj) {
|
||||
var data = table.checkStatus('currentTableId').data;
|
||||
if (obj.event === 'add') { // 监听添加操作
|
||||
common.openNewTabByIframe({
|
||||
title: "添加流程",
|
||||
href: "/SystemManage/Flowscheme/Form",
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'delete') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
common.deleteForm({
|
||||
url: "/SystemManage/Flowscheme/DeleteForm",
|
||||
param: { keyValue: data[0].F_Id },
|
||||
success: function () {
|
||||
common.reload('data-search-btn');
|
||||
entity = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'edit') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
common.openNewTabByIframe({
|
||||
title: "编辑流程",
|
||||
href: "/SystemManage/Flowscheme/Form?keyValue=" + data[0].F_Id,
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'details') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
common.openNewTabByIframe({
|
||||
title: "预览流程",
|
||||
href: "/SystemManage/Flowscheme/Details?keyValue=" + data[0].F_Id,
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,246 @@
|
||||
@{
|
||||
ViewBag.Title = "Form";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<div class="layui-input-item layui-hide" id="divInputTemplate">
|
||||
<label class="layui-form-label required">条件规则</label>
|
||||
<div class="layui-input-block" style="padding-right: 70px;">
|
||||
<div class="layui-input-block" style="margin-left:0px">
|
||||
<select id="ComparesCondition" name="ComparesCondition" lay-verify="required" lay-search>
|
||||
<option value="and" selected>并且</option>
|
||||
<option value="or">或者</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:145px">
|
||||
<select id="ComparesFieldName" name="ComparesFieldName" lay-verify="required" lay-search>
|
||||
<option value="" selected>请选择</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:100px">
|
||||
<select id="ComparesOperation" name="ComparesOperation" lay-verify="required" lay-search>
|
||||
<option value="" selected>请选择</option>
|
||||
<option value=">">></option>
|
||||
<option value=">=">>=</option>
|
||||
<option value="<"><</option>
|
||||
<option value="<="><=</option>
|
||||
<option value="=">=</option>
|
||||
<option value="!=">!=</option>
|
||||
<option value="in">in</option>
|
||||
<option value="not in">not in</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:180px">
|
||||
<input type="text" id="ComparesName" name="ComparesName" class="layui-input" lay-verify="required" value="" placeholder="请输入值">
|
||||
<input type="text" id="ComparesValue" name="ComparesValue" lay-verify="required" class="layui-input layui-hide">
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-danger" style="position: absolute;top: 0;right: 6px;cursor: pointer;" onclick="deleteRule('divInputTemplate')"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-primary" style="position: absolute;top: 0;right: 6px;cursor: pointer;margin-top:40px" onclick="search(searchCout)">...</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">连线标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="LineCode" id="LineCode" readonly 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="LineName" id="LineName" 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="NodeForm" id="NodeForm" readonly lay-verify="required"
|
||||
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="NodeTo" id="NodeTo" readonly lay-verify="required"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">连线条件</label>
|
||||
<div class="layui-input-block" style="padding-right: 70px;">
|
||||
<button id="NF-add" class="layui-btn"><i class="layui-icon"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ruledata">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var FlowDesignObject, valueList;
|
||||
function initForm(data) {
|
||||
FlowDesignObject = data.FlowDesignObject;
|
||||
valueList = data.valueList;
|
||||
}
|
||||
layui.use(['form', 'layer', 'element', 'jquery', 'common', 'optimizeSelectOption'], function () {
|
||||
var layer = layui.layer,
|
||||
$ = layui.jquery,
|
||||
common = layui.common;
|
||||
var form = layui.form;
|
||||
var Method = $.request("Method");
|
||||
//从flowschemes.js进入的节点信息
|
||||
var line = FlowDesignObject;
|
||||
var valuelist = valueList;
|
||||
$('#ComparesFieldName').append($("<option></option>").val("申请人").html("申请人"));
|
||||
$('#ComparesFieldName').append($("<option></option>").val("所属部门").html("所属部门"));
|
||||
for (var i = 0; i < valuelist.length; i++) {
|
||||
$('#ComparesFieldName').append($("<option></option>").val(valuelist[i]).html(valuelist[i]));
|
||||
}
|
||||
var tmp = {
|
||||
LineName: line.name,
|
||||
LineCode: line.id,//默认的code
|
||||
NodeForm: line.from,
|
||||
NodeTo: line.to,
|
||||
ComparesOperation0: "",
|
||||
ComparesFieldName0: "",
|
||||
ComparesValue0: "",
|
||||
ComparesName0: "",
|
||||
ComparesCondition0: "and",
|
||||
};
|
||||
var cout = 0;
|
||||
$(document).on('click', '#NF-add', function () {
|
||||
var target = $('#ruledata');
|
||||
var html = $("#divInputTemplate").prop("outerHTML");
|
||||
html = html.replace(/ComparesFieldName/g, "ComparesFieldName" + cout); // 替换多个
|
||||
html = html.replace(/条件规则/g, "条件规则" + (cout + 1)); // 替换多个
|
||||
html = html.replace(/ComparesOperation/g, "ComparesOperation" + cout); // 替换多个
|
||||
html = html.replace(/ComparesValue/g, "ComparesValue" + cout); // 替换多个
|
||||
html = html.replace(/ComparesName/g, "ComparesName" + cout); // 替换多个
|
||||
html = html.replace(/ComparesCondition/g, "ComparesCondition" + cout); // 替换多个
|
||||
html = html.replace(/divInputTemplate/g, "divInput" + cout);
|
||||
html = html.replace(/searchCout/g, cout);
|
||||
var obj = $(html);
|
||||
obj.removeClass("layui-hide");
|
||||
obj.appendTo(target);
|
||||
cout++;
|
||||
form.render();
|
||||
});
|
||||
//初始化节点设置信息
|
||||
if (!!line.Compares) {
|
||||
for (var i = 0; i < line.Compares.length; i++) {
|
||||
$('#NF-add').click();
|
||||
tmp['ComparesOperation' + i] = line.Compares[i].Operation;
|
||||
tmp['ComparesFieldName' + i] = line.Compares[i].FieldName;
|
||||
tmp['ComparesValue' + i] = line.Compares[i].Value;
|
||||
tmp['ComparesName' + i] = line.Compares[i].Name;
|
||||
tmp['ComparesCondition' + i] = line.Compares[i].Condition;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (Method != "Details") {
|
||||
$('#NF-add').click();
|
||||
}
|
||||
}
|
||||
if (Method == "Details") {
|
||||
var readForm = layui.$('[lay-filter="adminform"]');
|
||||
readForm.find('button').prop('disabled', true);
|
||||
common.setReadOnly('adminform');
|
||||
}
|
||||
common.val('adminform', tmp);
|
||||
form.render(); //重新渲染,防止radio/select等失效
|
||||
wcLoading.close();
|
||||
//select验证
|
||||
form.verify({
|
||||
required: function (value, item) {
|
||||
var msg = "必填项不能为空";
|
||||
value = $.trim(value);
|
||||
var isEmpty = !value || value.length < 1;
|
||||
// 当前验证元素是select且为空时,将页面定位至layui渲染的select处,或自定义想定位的位置
|
||||
if (item.tagName == 'SELECT' && isEmpty) {
|
||||
$("html").animate({
|
||||
scrollTop: $(item).siblings(".layui-form-select").offset().top - 74
|
||||
}, 50);
|
||||
}
|
||||
if (isEmpty) {
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
});
|
||||
//提供给上父页面调用
|
||||
getVal = function () {
|
||||
tmp.LineName = $('#LineName').val();
|
||||
var result = {
|
||||
LineName: tmp.LineName,
|
||||
LineCode: tmp.LineCode,
|
||||
Compares: [],
|
||||
};
|
||||
for (var i = 0; i < cout; i++) {
|
||||
var FieldName = $('#ComparesFieldName' + i).val();
|
||||
if (!FieldName) {
|
||||
continue;
|
||||
}
|
||||
var Operation = $('#ComparesOperation' + i).val();
|
||||
var Value = $('#ComparesValue' + i).val();
|
||||
var Name = $('#ComparesName' + i).val();
|
||||
var Condition = $('#ComparesCondition' + i).val();
|
||||
if (!Value) {
|
||||
Value = Name;
|
||||
}
|
||||
var temp = { //节点指定操作人
|
||||
FieldName: FieldName,
|
||||
Operation: Operation,
|
||||
Value: Value,
|
||||
Name: Name,
|
||||
Condition: Condition,
|
||||
};
|
||||
result.Compares.push(temp);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
})
|
||||
function deleteRule(data) {
|
||||
var obj = document.getElementById(data);//建议使用ID
|
||||
if (obj != null) {
|
||||
obj.parentNode.removeChild(obj);
|
||||
}
|
||||
layui.use(['jquery', 'form'], function () {
|
||||
layui.form.render();
|
||||
});
|
||||
}
|
||||
function search(data) {
|
||||
var fields = $('#ComparesFieldName' + data).val();
|
||||
if (fields != '申请人' && fields != '所属部门') {
|
||||
return false;
|
||||
}
|
||||
$('#ComparesName' + data).val(null);
|
||||
$('#ComparesValue' + data).val(null);
|
||||
layui.use(['jquery', 'form', 'common'], function () {
|
||||
var form = layui.form,
|
||||
$ = layui.$,
|
||||
common = layui.common;
|
||||
//不同弹窗
|
||||
if (fields == '申请人') {
|
||||
common.modalOpen({
|
||||
title: "选择用户",
|
||||
url: "/SystemOrganize/User/AddForm?name=" + "ComparesName" + data + "&value=" + "ComparesValue" + data,
|
||||
width: "650px",
|
||||
height: "600px",
|
||||
});
|
||||
}
|
||||
else if (fields == '所属部门') {
|
||||
common.modalOpen({
|
||||
title: "选择组织",
|
||||
url: "/SystemOrganize/Organize/AddForm?name=" + "ComparesName" + data + "&value=" + "ComparesValue" + data,
|
||||
width: "650px",
|
||||
height: "600px",
|
||||
});
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,435 @@
|
||||
@{
|
||||
ViewBag.Title = "Form";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<div class="layuimini-container ">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-tab layui-tab-brief" lay-filter="tab" style="margin: 0px">
|
||||
<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" readonly 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" id="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">
|
||||
<select id="NodeRejectType" lay-filter="NodeRejectType" name="NodeRejectType" required lay-verify="required">
|
||||
<option value="0">上一步</option>
|
||||
<option value="1">第一步</option>
|
||||
@*<option value="2">指定步骤</option>
|
||||
<option value="3">不处理</option>*@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">会签方式</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="NodeConfluenceType" lay-filter="NodeConfluenceType" name="NodeConfluenceType">
|
||||
<option value="all">全部分支都同意</option>
|
||||
<option value="one">至少一个分支同意</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">三方系统回调URL</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ThirdPartyUrl" id="ThirdPartyUrl"
|
||||
placeholder="http://www.xxxxxx.com/api/workflow/execute_callback" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">允许修改表单字段</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="CanWriteFormItemIds" name="CanWriteFormItemIds">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
<select id="NodeDesignate" lay-filter="NodeDesignate" name="NodeDesignate">
|
||||
<option value="ALL_USER">所有用户</option>
|
||||
<option value="SPECIAL_USER">指定用户</option>
|
||||
<option value="SPECIAL_ROLE">指定角色</option>
|
||||
<option value="USER_MANAGER">上一级的直属上级</option>
|
||||
<option value="DEPARTMENT_MANAGER">部门负责人</option>
|
||||
<option value="MORE_USER_MANAGER">连续多级直属上级</option>
|
||||
<option value="RUNTIME_SPECIAL_ROLE">运行时指定角色</option>
|
||||
<option value="RUNTIME_SPECIAL_USER">运行时指定用户</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" id="department">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
<input id="currentDepart" name="currentDepart" type="checkbox" value="true" title="当前部门">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" id="stoprole">
|
||||
<label>审批终点角色</label>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-hide" id="specialrole">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
<table class="layui-hide" id="RoleId" lay-filter="RoleTableFilter"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-hide" id="departmentmanager">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
<table class="layui-hide" id="OrganizeId" lay-filter="OrganizeTableFilter"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-hide" id="specialuser">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
<table class="layui-hide" id="UserId" lay-filter="UserTableFilter"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-hide" id="alluser">
|
||||
<div class="layui-input-block" style="margin-left: 0px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var FlowDesignObject, valueList;
|
||||
function initForm(data) {
|
||||
FlowDesignObject = data.FlowDesignObject;
|
||||
valueList = data.valueList;
|
||||
}
|
||||
layui.use(['form', 'commonTable', 'element', 'table', 'jquery', 'common', 'optimizeSelectOption', 'xmSelect'], function () {
|
||||
var commonTable = layui.commonTable,
|
||||
$ = layui.jquery,
|
||||
table = layui.table,
|
||||
common = layui.common,
|
||||
element = layui.element,
|
||||
xmSelect = layui.xmSelect,
|
||||
form = layui.form;
|
||||
var Method = $.request("Method");
|
||||
//从flowschemes.js进入的节点信息
|
||||
var node = FlowDesignObject;
|
||||
var tmp = {
|
||||
NodeName: node.name,
|
||||
NodeCode: node.id,//默认的code
|
||||
NodeRejectType: "1",
|
||||
NodeDesignate: "ALL_USER",
|
||||
NodeConfluenceType: "all",
|
||||
ThirdPartyUrl: "",
|
||||
CanWriteFormItemIds:[]
|
||||
};
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').removeClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
|
||||
var userids = '';
|
||||
var roleids = '';
|
||||
var orgids = '';
|
||||
//初始化节点设置信息
|
||||
if (node.setInfo != null) {
|
||||
tmp = Object.assign({}, tmp, node.setInfo);
|
||||
if (tmp.NodeDesignate === "SPECIAL_USER" && tmp.NodeDesignateData.users.length > 0) {
|
||||
form.val("adminform", {
|
||||
"NodeDesignate": 'SPECIAL_USER' //对应radio的value
|
||||
});
|
||||
userids = tmp.NodeDesignateData.users.join(',');
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').removeClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
} else if (tmp.NodeDesignate === "SPECIAL_ROLE" && tmp.NodeDesignateData.roles.length > 0) {
|
||||
form.val("adminform", {
|
||||
"NodeDesignate": 'SPECIAL_ROLE' //对应radio的value
|
||||
});
|
||||
roleids = tmp.NodeDesignateData.roles.join(',');
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').removeClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').removeClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
form.val("adminform", {
|
||||
"currentDepart": tmp.NodeDesignateData.currentDepart
|
||||
});
|
||||
} else if (tmp.NodeDesignate === "DEPARTMENT_MANAGER") {
|
||||
form.val("adminform", {
|
||||
"NodeDesignate": 'DEPARTMENT_MANAGER' //对应radio的value
|
||||
});
|
||||
if (tmp.NodeDesignateData.orgs.length > 0) {
|
||||
orgids = tmp.NodeDesignateData.orgs.join(',');
|
||||
}
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').removeClass("layui-hide");
|
||||
$('#departmentmanager').removeClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
form.val("adminform", {
|
||||
"currentDepart": tmp.NodeDesignateData.currentDepart
|
||||
});
|
||||
} else if (tmp.NodeDesignate === "MORE_USER_MANAGER" && tmp.NodeDesignateData.roles.length > 0) {
|
||||
form.val("adminform", {
|
||||
"NodeDesignate": 'MORE_USER_MANAGER' //对应radio的value
|
||||
});
|
||||
roleids = tmp.NodeDesignateData.roles.join(',');
|
||||
$('#stoprole').removeClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').removeClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
} else {
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').removeClass("layui-hide");
|
||||
}
|
||||
|
||||
}
|
||||
var xmData=[];
|
||||
for (var i = 0; i < valueList.length; i++)
|
||||
{
|
||||
xmData.push({
|
||||
value:i,
|
||||
name: valueList[i]
|
||||
});
|
||||
}
|
||||
var demo1 = xmSelect.render({
|
||||
el: '#CanWriteFormItemIds',
|
||||
data: xmData,
|
||||
model: {
|
||||
type: 'relative', //默认 absolute
|
||||
},
|
||||
filterable: true,
|
||||
toolbar: { show: true }
|
||||
});
|
||||
if (!!tmp.CanWriteFormItemIds) {
|
||||
demo1.setValue(tmp.CanWriteFormItemIds);
|
||||
}
|
||||
commonTable.rendertable({
|
||||
elem: '#UserId',
|
||||
id: 'UserId',
|
||||
url: '/SystemOrganize/User/GetListJson?ids=' + (!!userids ? userids : ""),
|
||||
page: false,
|
||||
height: 'full-120',
|
||||
toolbar: false,//工具栏
|
||||
|
||||
cols: [[
|
||||
{ type: 'checkbox' },
|
||||
|
||||
{ field: 'F_Account', title: '账户', width: 120, sort: true },
|
||||
{ field: 'F_RealName', title: '姓名', width: 120, sort: true },
|
||||
{
|
||||
field: 'F_CompanyName', title: '公司名称', width: 120, sort: true
|
||||
},
|
||||
{
|
||||
field: 'F_OrganizeName', title: '部门名称', width: 120, sort: true
|
||||
},
|
||||
{
|
||||
field: 'F_EnabledMark', title: '状态', width: 100, sort: true,
|
||||
templet: function (d) {
|
||||
if (d.F_EnabledMark == true) {
|
||||
return "<span class=\"layui-bg-green\">正常</span>";
|
||||
} else {
|
||||
return "<span class=\"layui-bg-red\">禁用</span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
commonTable.rendertable({
|
||||
elem: '#RoleId',
|
||||
id: 'RoleId',
|
||||
url: '/SystemOrganize/Role/GetSelectJson?ids=' + (!!roleids ? roleids : ""),
|
||||
page: false,
|
||||
height: 'full-160',
|
||||
toolbar: false,//工具栏
|
||||
|
||||
cols: [[
|
||||
{ type: 'checkbox' },
|
||||
|
||||
{ field: 'F_FullName', title: '角色名称', width: 120, sort: true },
|
||||
{
|
||||
field: 'F_Type', title: '角色类型', width: 120, sort: true,
|
||||
templet: function (d) {
|
||||
return top.clients.dataItems["RoleType"][d.F_Type] == undefined ? "" : top.clients.dataItems["RoleType"][d.F_Type];
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'F_CompanyName', title: '归属公司', width: 120, sort: true
|
||||
},
|
||||
{
|
||||
field: 'F_EnabledMark', title: '状态', width: 100, sort: true,
|
||||
templet: function (d) {
|
||||
if (d.F_EnabledMark == true) {
|
||||
return "<span class=\"layui-bg-green\">正常</span>";
|
||||
} else {
|
||||
return "<span class=\"layui-bg-red\">禁用</span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
var options = {
|
||||
id: 'OrganizeId',
|
||||
elem: '#OrganizeId',
|
||||
url: '/SystemOrganize/Organize/GetTreeGridJson',
|
||||
where: { ids: !!orgids ? orgids : "" },
|
||||
treeIdName: 'F_Id', // id字段名称
|
||||
treePidName: 'F_ParentId', // pid字段名称
|
||||
height: 'full-160',
|
||||
toolbar: false,//工具栏
|
||||
cols: [[
|
||||
{ type: 'checkbox' },
|
||||
{ field: 'F_FullName', title: '名称', width: 250 },
|
||||
{ field: 'F_EnCode', title: '编号', width: 200 },
|
||||
{
|
||||
field: 'F_CategoryId', title: '分类', width: 120,
|
||||
templet: function (d) {
|
||||
return top.clients.dataItems["OrganizeCategory"][d.F_CategoryId] == null ? "" : top.clients.dataItems["OrganizeCategory"][d.F_CategoryId];
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'F_ManagerName', title: '负责人', width: 120
|
||||
},
|
||||
{
|
||||
field: 'F_EnabledMark', title: '状态', width: 80,
|
||||
templet: function (d) {
|
||||
if (d.F_EnabledMark == true) {
|
||||
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>有效</span>";
|
||||
} else {
|
||||
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>无效</span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
]],
|
||||
};
|
||||
commonTable.rendertreetable(options);
|
||||
common.val('adminform', tmp);
|
||||
if (Method == "Details") {
|
||||
common.setReadOnly('adminform');
|
||||
}
|
||||
form.render(); //重新渲染,防止radio/select等失效
|
||||
wcLoading.close();
|
||||
form.on('select(NodeRejectType)',
|
||||
function (data) {
|
||||
tmp.NodeRejectType = data.value;
|
||||
});
|
||||
|
||||
form.on('select(NodeConfluenceType)',
|
||||
function (data) {
|
||||
tmp.NodeConfluenceType = data.value;
|
||||
});
|
||||
|
||||
form.on('select(NodeDesignate)',
|
||||
function (data) {
|
||||
tmp.NodeDesignate = data.value;
|
||||
if (data.value === "SPECIAL_USER") {
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').removeClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
} else if (data.value === "SPECIAL_ROLE") {
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').removeClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').removeClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
} else if (data.value === "DEPARTMENT_MANAGER") {
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').removeClass("layui-hide");
|
||||
$('#departmentmanager').removeClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
} else if (data.value === "MORE_USER_MANAGER") {
|
||||
$('#stoprole').removeClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').removeClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').addClass("layui-hide");
|
||||
}
|
||||
else {
|
||||
$('#stoprole').addClass("layui-hide");
|
||||
$('#department').addClass("layui-hide");
|
||||
$('#departmentmanager').addClass("layui-hide");
|
||||
$('#specialrole').addClass("layui-hide");
|
||||
$('#specialuser').addClass("layui-hide");
|
||||
$('#alluser').removeClass("layui-hide");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//提供给上父页面调用
|
||||
getVal = function () {
|
||||
var users = [];
|
||||
var roles = [];
|
||||
var orgs = [];
|
||||
if (tmp.NodeDesignate === "SPECIAL_USER") {
|
||||
var checkStatus = table.checkStatus("UserId").data;
|
||||
for (var i = 0; i < checkStatus.length; i++) {
|
||||
users.push(checkStatus[i].F_Id);
|
||||
}
|
||||
} else if (tmp.NodeDesignate === "SPECIAL_ROLE" || tmp.NodeDesignate === "MORE_USER_MANAGER") {
|
||||
var checkStatus = table.checkStatus("RoleId").data;
|
||||
for (var i = 0; i < checkStatus.length; i++) {
|
||||
roles.push(checkStatus[i].F_Id);
|
||||
}
|
||||
} else if (tmp.NodeDesignate === "DEPARTMENT_MANAGER") {
|
||||
var checkStatus = table.checkStatus("OrganizeId").data;
|
||||
for (var i = 0; i < checkStatus.length; i++) {
|
||||
orgs.push(checkStatus[i].F_Id);
|
||||
}
|
||||
}
|
||||
tmp.NodeRejectType = $('#NodeRejectType').val();
|
||||
tmp.NodeConfluenceType = $('#NodeConfluenceType').val();
|
||||
tmp.ThirdPartyUrl = $('#ThirdPartyUrl').val();
|
||||
tmp.NodeName = $('#NodeName').val();
|
||||
var vals = demo1.getValue("value");
|
||||
tmp.CanWriteFormItemIds = vals;
|
||||
var result = {
|
||||
NodeDesignateData: { //节点指定操作人
|
||||
users: users,
|
||||
roles: roles,
|
||||
orgs: orgs,
|
||||
currentDepart: $('#currentDepart').is(':checked') ? true : false,
|
||||
}
|
||||
};
|
||||
// $.extend(result, vm.tmp);
|
||||
result = $.extend(tmp, result);
|
||||
return result;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user