Files
2023-03-03 16:07:50 +08:00

389 lines
18 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@{
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">
&emsp;下一步&emsp;
</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">
&emsp;下一步&emsp;
</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">
&emsp;保存&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</body>