You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
5.6 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

new Vue({
el: "#formEdit",
data() {
return {
tmp: {
Id: '',
SchemeCode: new Date().getTime(),
SortCode: '1',
FrmId:''
},
forms: [],
frmPreview: ''
}
},
updated() { //如果layui有刷新失败的可以在这里面处理
//layui.form.render(null,'formChangeFilter'); //只能 class="layui-form" 所在元素的 lay-filter="" 的值???
layui.form.render();
},
mounted() {
var _this = this
layui.config({
base: "/js/"
}).use(['form', 'ztree', 'layer', 'utils', 'element', 'jquery', 'cookie','table', 'droptree', 'openauth', 'flow/gooflow', 'flowlayout'], function () {
var form = layui.form,
element = layui.element,
layer = layui.layer,
$ = layui.jquery;
var table = layui.table;
var openauth = layui.openauth;
var index = layer.getFrameIndex(window.name); //获取窗口索引
var id = $.getUrlParam("id"); //ID
var update = (id != null && id != '');
//提交的URL
var url = "/FlowSchemes/Add";
if (update) {
url = "/FlowSchemes/Update";
}
$.getJSON('/forms/load', function (json) { //加载所有表单
_this.forms = json.data
})
var changeForm = function (id) { //切换表单
_this.tmp.FrmId = id;
$.getJSON("/forms/get?id=" + id, function (data) {
if (data.Result.FrmType == 0) {
_this.frmPreview = data.Result.Html
} else {
_this.frmPreview = '复杂表单暂时只能在<a href="http://demo.openauth.net.cn:1803">企业版</a>查看,开源版预计会在以后的开源版本中发布'
}
});
}
/*=========流程设计begin======================*/
var flowDesignPanel = $('#flowPanel').flowdesign({
height: 300,
widht: 300,
OpenNode: function (object) {
FlowDesignObject = object; //为NodeInfo窗口提供调用
if (object.type == 'start round mix' || object.type == 'end round') {
layer.msg("开始节点与结束节点不能设置");
return false;
}
layer.open({
type: 2,
area: ['550px', '450px'], //宽高
maxmin: true, //开启最大化最小化按钮
title: '节点设置【' + object.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.id, nodedata);
layer.close(index);
},
cancel: function (index) {
layer.close(index);
}
});
},
OpenLine: function (id, object) {
layer.msg("分支条件暂时只对企业版开放");
return;
}
});
if (update) {
$.getJSON('/flowschemes/get?id=' + id, function (obj) {
_this.tmp = $.extend({}, obj.Result)
changeForm(obj.Result.FrmId)
flowDesignPanel.loadData(JSON.parse(obj.Result.SchemeContent));
})
}
/*=========流程设计end=====================*/
//提交数据
form.on('submit(formSubmit)',
function (data) {
var content = flowDesignPanel.exportDataEx();
if (content == -1) {
return false; //阻止表单跳转。
}
var schemecontent = {
SchemeContent: JSON.stringify(content)
}
$.extend(data.field, schemecontent);
$.extend(data.field, {OrgId: $.cookie('defaultorgid')});
$.post(url,
data.field,
function (result) {
layer.msg(result.Message);
},
"json");
return false; //阻止表单跳转。
});
form.on('select(formChangeFilter)', function (obj) {
changeForm(obj.value)
});
flowDesignPanel.reinitSize($(window).width() - 30, $(window).height() - 100);
$(window).resize(function () {
flowDesignPanel.reinitSize($(window).width() - 30, $(window).height() - 100);
});
//该函数供给父窗口确定时调用
submit = function () {
//只能用隐藏的submit btn才行用form.submit()时data.field里没有数据
$("#btnSubmit").click();
}
//让层自适应iframe
layer.iframeAuto(index);
})
}
});