OpenAuth.Net/OpenAuth.Mvc/userJs/flowSchemeDesign.js

172 lines
5.9 KiB
JavaScript
Raw Normal View History

2018-03-17 21:41:04 +08:00
layui.config({
base: "/js/"
2018-03-19 17:21:56 +08:00
}).use(['form', 'vue', 'ztree', 'layer', 'queryString', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow/gooflow', 'utils/flowlayout'], function () {
2018-03-17 21:41:04 +08:00
var form = layui.form, element = layui.element,
//layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
layer = layui.layer,
$ = layui.jquery;
var table = layui.table;
var openauth = layui.openauth;
2018-03-17 23:04:19 +08:00
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
2018-03-17 21:41:04 +08:00
var id = $.getUrlParam("id"); //ID
2018-03-17 23:04:19 +08:00
var update = (id !=null && id != '');
2018-03-17 21:41:04 +08:00
//提交的URL
var url = "/FlowSchemes/Add";
var vm = new Vue({
el: "#formEdit"
});
//表单选择
var frmTree = function () {
var zTreeObj;
var setting = {
view: { selectedMulti: true },
check: {
enable: true,
2018-03-17 23:04:19 +08:00
chkStyle: "radio",
radioType: "all", //整个节点一个分组
2018-03-17 21:41:04 +08:00
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
},
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: {
onClick: function (event, treeId, treeNode) {
2018-03-17 23:04:19 +08:00
$.get("/forms/previewdata?id=" + treeNode.Id, function (data) {
2018-03-17 21:41:04 +08:00
$("#frmPreview").html(data);
});
},
onCheck: function (event, treeId, treeNode) {
$("#FrmId").val(treeNode.Id);
2018-03-17 23:04:19 +08:00
$.get("/forms/previewdata?id=" + treeNode.Id, function (data) {
$("#frmPreview").html(data);
});
2018-03-17 21:41:04 +08:00
}
}
};
var url = '/forms/load';
$.getJSON(url, function (json) { //todo这个地方要用同步方式不然后面的setCheck会出问题
zTreeObj = $.fn.zTree.init($("#frmTree"), setting);
zTreeObj.addNodes(null, json.data);
2018-03-17 21:41:04 +08:00
$("#menutree").html("点击预览表单效果");
zTreeObj.expandAll(true);
});
2018-03-17 21:41:04 +08:00
var setCheck = function (id) { //设置已经选中的表单
if (id == null | id == '') return;
var node = zTreeObj.getNodeByParam("Id", id, null);
zTreeObj.checkNode(node, true, false);
$.get("/forms/previewdata?id=" + id, function (data) {
$("#frmPreview").html(data);
});
}
return {
setCheck: setCheck
}
}();
/*=========流程设计begin======================*/
var flowDesignPanel = $('#flowPanel').flowdesign({
2018-03-19 17:21:56 +08:00
height: 300,
widht: 300,
2018-03-17 21:41:04 +08:00
OpenNode: function (object) {
FlowDesignObject = object; //为NodeInfo窗口提供调用
2018-03-19 17:21:56 +08:00
if (object.type == 'start round mix' || object.type == 'end round') {
layer.msg("开始节点与结束节点不能设置");
2018-03-17 21:41:04 +08:00
return false;
}
layer.open({
type: 2,
area: ['500px', '450px'], //宽高
maxmin: true, //开启最大化最小化按钮
2018-03-19 17:21:56 +08:00
title: '节点设置【' + object.name + '】',
2018-03-17 21:41:04 +08:00
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();
2018-03-19 17:21:56 +08:00
flowDesignPanel.SetNodeEx(object.id, nodedata);
2018-03-17 21:41:04 +08:00
layer.close(index);
},
cancel: function (index) {
layer.close(index);
}
});
},
OpenLine: function (id, object) {
lay.msg("暂不能设置分支条件");
return;
}
});
/*=========流程设计end=====================*/
if (update) {
2018-03-17 23:04:19 +08:00
$.getJSON('/flowschemes/get?id=' + id,
2018-03-17 21:41:04 +08:00
function (data) {
2018-03-17 23:04:19 +08:00
var obj = data.Result;
2018-03-17 21:41:04 +08:00
url = "/FlowSchemes/Update";
2018-03-17 23:04:19 +08:00
vm.$set('$data', obj);
flowDesignPanel.loadData(JSON.parse(obj.SchemeContent));
frmTree.setCheck(obj.FrmId);
2018-03-17 21:41:04 +08:00
});
} else {
vm.$set('$data',
{
Id: ''
});
}
//提交数据
2018-03-17 23:04:19 +08:00
form.on('submit(formSubmit)',
2018-03-17 21:41:04 +08:00
function (data) {
2018-03-19 17:21:56 +08:00
var content = flowDesignPanel.exportData();
2018-03-17 23:04:19 +08:00
if (content == -1) {
return false; //阻止表单跳转。
}
2018-03-17 21:41:04 +08:00
var schemecontent = {
SchemeContent: JSON.stringify(content)
}
$.extend(data.field, schemecontent);
$.post(url,
data.field,
function (result) {
layer.msg(result.Message);
},
"json");
2018-03-19 17:21:56 +08:00
return false; //阻止表单跳转。
2018-03-17 21:41:04 +08:00
});
2018-03-19 17:21:56 +08:00
$(window).resize(function() {
flowDesignPanel.reinitSize($(window).width()-30, $(window).height()-100);
});
2018-03-17 23:04:19 +08:00
//该函数供给父窗口确定时调用
submit = function () {
//只能用隐藏的submit btn才行用form.submit()时data.field里没有数据
$("#btnSubmit").click();
}
//让层自适应iframe
parent.layer.iframeAuto(index);
2018-03-17 21:41:04 +08:00
})