diff --git a/DOC/核心设计.EAP b/DOC/核心设计.EAP new file mode 100644 index 00000000..25556070 Binary files /dev/null and b/DOC/核心设计.EAP differ diff --git a/OpenAuth.App/Flow/FlowRuntime.cs b/OpenAuth.App/Flow/FlowRuntime.cs index 38ff2383..95e2f691 100644 --- a/OpenAuth.App/Flow/FlowRuntime.cs +++ b/OpenAuth.App/Flow/FlowRuntime.cs @@ -20,12 +20,11 @@ namespace OpenAuth.App.Flow _runtimeModel = new FlowRuntimeModel(); dynamic schemeContentJson = instance.SchemeContent.ToJson();//获取工作流模板内容的json对象; _runtimeModel.schemeContentJson = schemeContentJson;//模板流程json对象 + _runtimeModel.frmData = instance.FrmData; _runtimeModel.nodes = GetNodeDictionary(schemeContentJson);//节点集合 _runtimeModel.lines = GetLineDictionary(schemeContentJson);//线条集合 _runtimeModel.currentNodeId = (instance.ActivityId == "" ? _runtimeModel.startNodeId : instance.ActivityId); _runtimeModel.currentNodeType = GetNodeType(_runtimeModel.currentNodeId); - //todo:要获取表单数据 - // _runtimeModel.frmData = flowRuntimeInitModel.frmData; if (_runtimeModel.currentNodeType == 0 || _runtimeModel.currentNodeType == 4) { diff --git a/OpenAuth.App/FlowInstanceApp.cs b/OpenAuth.App/FlowInstanceApp.cs index 6750c9fd..8a94e21e 100644 --- a/OpenAuth.App/FlowInstanceApp.cs +++ b/OpenAuth.App/FlowInstanceApp.cs @@ -106,12 +106,8 @@ namespace OpenAuth.App /// ע /// Ϣ /// - public bool CreateInstance(FlowInstance flowInstance, string frmData = null) + public bool CreateInstance(FlowInstance flowInstance) { - if (frmData == null) - { - throw new Exception("ԶҪύ"); - } var wfruntime = new FlowRuntime(flowInstance); diff --git a/OpenAuth.Mvc/App_Start/BundleConfig.cs b/OpenAuth.Mvc/App_Start/BundleConfig.cs deleted file mode 100644 index 34b4cef2..00000000 --- a/OpenAuth.Mvc/App_Start/BundleConfig.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Web; -using System.Web.Optimization; - -namespace OpenAuth.Mvc -{ - public class BundleConfig - { - // 有关绑定的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=301862 - public static void RegisterBundles(BundleCollection bundles) - { - //树形组件 - bundles.Add(new StyleBundle("~/Content/scripts/plugins/tree/css").Include( - "~/Content/scripts/plugins/tree/tree.css")); - bundles.Add(new ScriptBundle("~/Content/scripts/plugins/tree/js").Include( - "~/Content/scripts/plugins/tree/tree.js")); - //表单验证 - bundles.Add(new ScriptBundle("~/Content/scripts/plugins/validator/js").Include( - "~/Content/scripts/plugins/validator/validator.js")); - //日期控件 - bundles.Add(new StyleBundle("~/Content/scripts/plugins/datetime/css").Include( - "~/Content/scripts/plugins/datetime/pikaday.css")); - bundles.Add(new ScriptBundle("~/Content/scripts/plugins/datepicker/js").Include( - "~/Content/scripts/plugins/datetime/pikaday.js")); - //导向组件 - bundles.Add(new StyleBundle("~/Content/scripts/plugins/wizard/css").Include( - "~/Content/scripts/plugins/wizard/wizard.css")); - bundles.Add(new ScriptBundle("~/Content/scripts/plugins/wizard/js").Include( - "~/Content/scripts/plugins/wizard/wizard.js")); - // - bundles.Add(new StyleBundle("~/Content/styles/ui.css").Include( - "~/Content/styles/ui.css")); - bundles.Add(new ScriptBundle("~/Content/scripts/utils/js").Include( - "~/Content/scripts/utils/ui.js", - "~/Content/scripts/utils/form.js")); - - //工作流 - bundles.Add(new StyleBundle("~/Content/styles/flowall.css").Include( - "~/Content/styles/ckbox-radio.css", - "~/Content/styles/applayout.css", - "~/Content/styles/flow.css")); - bundles.Add(new ScriptBundle("~/Content/scripts/flow/js").Include( - "~/Content/scripts/utils/applayout.js", - "~/Content/scripts/plugins/flow-ui/flow.js", - "~/Content/scripts/utils/flowlayout.js")); - } - } -} diff --git a/OpenAuth.Mvc/Controllers/FlowInstancesController.cs b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs index be3af167..9f69c102 100644 --- a/OpenAuth.Mvc/Controllers/FlowInstancesController.cs +++ b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs @@ -47,7 +47,7 @@ namespace OpenAuth.Mvc.Controllers { try { - App.CreateInstance(obj, null); + App.CreateInstance(obj); } catch (Exception ex) { diff --git a/OpenAuth.Mvc/Controllers/FormsController.cs b/OpenAuth.Mvc/Controllers/FormsController.cs index bee1fcb0..9f84c499 100644 --- a/OpenAuth.Mvc/Controllers/FormsController.cs +++ b/OpenAuth.Mvc/Controllers/FormsController.cs @@ -37,6 +37,24 @@ namespace OpenAuth.Mvc.Controllers return FormUtil.GetHtml(form, ""); } + public string Get(string id) + { + try + { + var result = new Response
+ { + Result = App.FindSingle(id) + }; + return JsonHelper.Instance.Serialize(result); + } + catch (Exception ex) + { + Result.Code = 500; + Result.Message = ex.Message; + return JsonHelper.Instance.Serialize(Result); + } + } + //添加或修改 [System.Web.Mvc.HttpPost] [ValidateInput(false)] diff --git a/OpenAuth.Mvc/Global.asax.cs b/OpenAuth.Mvc/Global.asax.cs index 18e9883b..20f569f8 100644 --- a/OpenAuth.Mvc/Global.asax.cs +++ b/OpenAuth.Mvc/Global.asax.cs @@ -19,7 +19,6 @@ namespace OpenAuth.Mvc AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); - BundleConfig.RegisterBundles(BundleTable.Bundles); ModelBinders.Binders.Add(typeof(JObject), new JobjectModelBinder()); diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index 47db008d..a4dea333 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -139,7 +139,6 @@ - @@ -193,8 +192,8 @@ - - + + diff --git a/OpenAuth.Mvc/Views/FlowInstances/Edit.cshtml b/OpenAuth.Mvc/Views/FlowInstances/Edit.cshtml index 0a17b49a..b90b2bde 100644 --- a/OpenAuth.Mvc/Views/FlowInstances/Edit.cshtml +++ b/OpenAuth.Mvc/Views/FlowInstances/Edit.cshtml @@ -9,6 +9,9 @@ + + +
@@ -49,7 +52,7 @@ - + diff --git a/OpenAuth.Mvc/Views/Forms/index.cshtml b/OpenAuth.Mvc/Views/Forms/index.cshtml index 151252c4..a1b5e13c 100644 --- a/OpenAuth.Mvc/Views/Forms/index.cshtml +++ b/OpenAuth.Mvc/Views/Forms/index.cshtml @@ -18,7 +18,7 @@ 表单名称 字段个数 表单中的字段数据 - 关联的数据库 + 关联的数据库 有效 备注 创建时间 @@ -57,7 +57,7 @@
-
diff --git a/OpenAuth.Mvc/js/utils/flowlayout.js b/OpenAuth.Mvc/js/flowlayout.js similarity index 97% rename from OpenAuth.Mvc/js/utils/flowlayout.js rename to OpenAuth.Mvc/js/flowlayout.js index f4afd8eb..a29e897d 100644 --- a/OpenAuth.Mvc/js/utils/flowlayout.js +++ b/OpenAuth.Mvc/js/flowlayout.js @@ -398,7 +398,7 @@ return flowPanel; } - exports('utils/flowlayout'); //只有这样写才能找到utils/flowlayout??好尴尬 + exports('flowlayout'); //只有这样写才能找到flowlayout??好尴尬 }); diff --git a/OpenAuth.Mvc/js/utils.js b/OpenAuth.Mvc/js/utils.js new file mode 100644 index 00000000..22b702d3 --- /dev/null +++ b/OpenAuth.Mvc/js/utils.js @@ -0,0 +1,14 @@ + +//把name/value的数组转为obj对象 +function arrayToObj(array) { + var result = {}; + for (var i = 0; i < array.length; i++) { + var field = array[i]; + if (field.name in result) { + result[field.name] += ',' + field.value; + } else { + result[field.name] = field.value; + } + } + return result; +} \ No newline at end of file diff --git a/OpenAuth.Mvc/js/utils/ui.js b/OpenAuth.Mvc/js/utils/ui.js deleted file mode 100644 index 40466427..00000000 --- a/OpenAuth.Mvc/js/utils/ui.js +++ /dev/null @@ -1,925 +0,0 @@ -$(function () { - $(".ui-filter-text").click(function () { - if ($(this).next('.ui-filter-list').is(":hidden")) { - $(this).css('border-bottom-color', '#fff'); - $(".ui-filter-list").slideDown(10); - $(this).addClass("active") - } else { - $(this).css('border-bottom-color', '#ccc'); - $(".ui-filter-list").slideUp(10); - $(this).removeClass("active") - } - }); - $(".profile-nav li").click(function () { - $(".profile-nav li").removeClass("active"); - $(".profile-nav li").removeClass("hover"); - $(this).addClass("active") - }).hover(function () { - if (!$(this).hasClass("active")) { - $(this).addClass("hover") - } - }, function () { - $(this).removeClass("hover") - }) -}) -Loading = function (bool, text) { - layui.use('layer', function () { - var layer = layui.layer; - if (bool) { - layer.load(1); - } else { - layer.closeAll('loading'); - } - }); - - -} - -$.fn.ComboBox = function (options) { - //options参数:description,height,width,allowSearch,url,param,data - var $select = $(this); - if (!$select.attr('id')) { - return false; - } - if (options) { - if ($select.find('.ui-select-text').length == 0) { - var $select_html = ""; - $select_html += "
" + options.description + "
"; - $select_html += "
"; - $select_html += "
" + $select.html() + "
"; - if (options.allowSearch) { - $select_html += "
"; - } - $select_html += "
"; - $select.html(''); - $select.append($select_html); - } - } - var $option_html = $($("

").append($select.find('.ui-select-option').clone()).html()); - $option_html.attr('id', $select.attr('id') + '-option'); - $select.find('.ui-select-option').remove(); - if ($option_html.length > 0) { - $('body').find('#' + $select.attr('id') + '-option').remove(); - } - $('body').prepend($option_html); - var $option = $("#" + $select.attr('id') + "-option"); - if (options.url != undefined) { - $option.find('.ui-select-option-content').html(''); - $.ajax({ - url: options.url, - data: options.param, - type: "GET", - dataType: "json", - async: false, - success: function (data) { - options.data = data; - var json = data; - loadComboBoxView(json); - }, - error: function (XMLHttpRequest, textStatus, errorThrown) { - dialogMsg(errorThrown, -1); - } - }); - } - else if (options.data != undefined) { - var json = options.data; - loadComboBoxView(json); - } - else { - $option.find('li').css('padding', "0 5px"); - $option.find('li').click(function (e) { - var data_text = $(this).text(); - var data_value = $(this).attr('data-value'); - $select.attr("data-value", data_value).attr("data-text", data_text); - $select.find('.ui-select-text').html(data_text).css('color', '#000'); - $option.slideUp(150); - $select.trigger("change"); - e.stopPropagation(); - }).hover(function (e) { - if (!$(this).hasClass('liactive')) { - $(this).toggleClass('on'); - } - e.stopPropagation(); - }); - } - function loadComboBoxView(json, searchValue, m) { - if (json.length > 0) { - var $_html = $('

    '); - if (options.description) { - $_html.append('
  • ' + options.description + '
  • '); - } - $.each(json, function (i) { - var row = json[i]; - var title = row[options.title]; - if (title == undefined) { - title = ""; - } - if (searchValue != undefined) { - if (row[m.text].indexOf(searchValue) != -1) { - $_html.append('
  • ' + row[options.text] + '
  • '); - } - } - else { - $_html.append('
  • ' + row[options.text] + '
  • '); - } - }); - $option.find('.ui-select-option-content').html($_html); - $option.find('li').css('padding', "0 5px"); - $option.find('li').click(function (e) { - var data_text = $(this).text(); - var data_value = $(this).attr('data-value'); - $select.attr("data-value", data_value).attr("data-text", data_text); - $select.find('.ui-select-text').html(data_text).css('color', '#000'); - $option.slideUp(150); - $select.trigger("change"); - e.stopPropagation(); - }).hover(function (e) { - if (!$(this).hasClass('liactive')) { - $(this).toggleClass('on'); - } - e.stopPropagation(); - }); - } - } - //操作搜索事件 - if (options.allowSearch) { - $option.find('.ui-select-option-search').find('input').bind("keypress", function (e) { - if (event.keyCode == "13") { - var value = $(this).val(); - loadComboBoxView($(this)[0].options.data, value, $(this)[0].options); - } - }).focus(function () { - $(this).select(); - })[0]["options"] = options; - } - - $select.unbind('click'); - $select.bind("click", function (e) { - if ($select.attr('readonly') == 'readonly' || $select.attr('disabled') == 'disabled') { - return false; - } - $(this).addClass('ui-select-focus'); - if ($option.is(":hidden")) { - $select.find('.ui-select-option').hide(); - $('.ui-select-option').hide(); - var left = $select.offset().left; - var top = $select.offset().top + 29; - var width = $select.width(); - if (options.width) { - width = options.width; - } - if (($option.height() + top) < $(window).height()) { - $option.slideDown(150).css({ top: top, left: left, width: width }); - } else { - var _top = (top - $option.height() - 32) - $option.show().css({ top: _top, left: left, width: width }); - $option.attr('data-show', true); - } - $option.css('border-top', '1px solid #ccc'); - $option.find('li').removeClass('liactive'); - $option.find('[data-value=' + $select.attr('data-value') + ']').addClass('liactive'); - $option.find('.ui-select-option-search').find('input').select(); - } else { - if ($option.attr('data-show')) { - $option.hide(); - } else { - $option.slideUp(150); - } - } - e.stopPropagation(); - }); - $(document).click(function (e) { - var e = e ? e : window.event; - var tar = e.srcElement || e.target; - if (!$(tar).hasClass('form-control')) { - if ($option.attr('data-show')) { - $option.hide(); - } else { - $option.slideUp(150); - } - $select.removeClass('ui-select-focus'); - e.stopPropagation(); - } - }); - return $select; -} -$.fn.ComboBoxSetValue = function (value) { - if ($.isNullOrEmpty(value)) { - return; - } - var $select = $(this); - var $option = $("#" + $select.attr('id') + "-option"); - $select.attr('data-value', value); - var data_text = $option.find('ul').find('[data-value=' + value + ']').html(); - if (data_text) { - $select.attr('data-text', data_text); - $select.find('.ui-select-text').html(data_text).css('color', '#000'); - $option.find('ul').find('[data-value=' + value + ']').addClass('liactive') - } - return $select; -} -$.fn.ComboBoxTree = function (options) { - //options参数:description,height,allowSearch,appendTo,click,url,param,method,icon - var $select = $(this); - if (!$select.attr('id')) { - return false; - } - if ($select.find('.ui-select-text').length == 0) { - var $select_html = ""; - $select_html += "
    " + options.description + "
    "; - $select_html += "
    "; - $select_html += "
    "; - if (options.allowSearch) { - $select_html += "
    "; - } - $select_html += "
    "; - $select.append($select_html); - } - - - var $option_html = $($("

    ").append($select.find('.ui-select-option').clone()).html()); - $option_html.attr('id', $select.attr('id') + '-option'); - $select.find('.ui-select-option').remove(); - if (options.appendTo) { - $(options.appendTo).prepend($option_html); - } else { - $('body').prepend($option_html); - } - var $option = $("#" + $select.attr('id') + "-option"); - var $option_content = $("#" + $select.attr('id') + "-option").find('.ui-select-option-content'); - loadtreeview(options.url); - function loadtreeview(url) { - $option_content.treeview({ - onnodeclick: function (item) { - $select.attr("data-value", item.id).attr("data-text", item.text); - $select.find('.ui-select-text').html(item.text).css('color', '#000'); - $select.trigger("change"); - if (options.click) { - options.click(item); - } - }, - height: options.height, - url: url, - param: options.param, - method: options.method, - description: options.description - }); - } - if (options.allowSearch) { - $option.find('.ui-select-option-search').find('input').attr('data-url', options.url); - $option.find('.ui-select-option-search').find('input').bind("keypress", function (e) { - if (event.keyCode == "13") { - var value = $(this).val(); - var url = changeUrlParam($option.find('.ui-select-option-search').find('input').attr('data-url'), "keyword", escape(value)); - loadtreeview(url); - } - }).focus(function () { - $(this).select(); - }); - } - if (options.icon) { - $option.find('i').remove(); - $option.find('img').remove(); - } - $select.find('.ui-select-text').unbind('click'); - $select.find('.ui-select-text').bind("click", function (e) { - if ($select.attr('readonly') == 'readonly' || $select.attr('disabled') == 'disabled') { - return false; - } - $(this).parent().addClass('ui-select-focus'); - if ($option.is(":hidden")) { - $select.find('.ui-select-option').hide(); - $('.ui-select-option').hide(); - var left = $select.offset().left; - var top = $select.offset().top + 29; - var width = $select.width(); - if (options.width) { - width = options.width; - } - if (($option.height() + top) < $(window).height()) { - $option.slideDown(150).css({ top: top, left: left, width: width }); - } else { - var _top = (top - $option.height() - 32); - $option.show().css({ top: _top, left: left, width: width }); - $option.attr('data-show', true); - } - $option.css('border-top', '1px solid #ccc'); - if (options.appendTo) { - $option.css("position", "inherit") - } - $option.find('.ui-select-option-search').find('input').select(); - } else { - if ($option.attr('data-show')) { - $option.hide(); - } else { - $option.slideUp(150); - } - } - e.stopPropagation(); - }); - $select.find('li div').click(function (e) { - var e = e ? e : window.event; - var tar = e.srcElement || e.target; - if (!$(tar).hasClass('bbit-tree-ec-icon')) { - $option.slideUp(150); - e.stopPropagation(); - } - }); - $(document).click(function (e) { - var e = e ? e : window.event; - var tar = e.srcElement || e.target; - if (!$(tar).hasClass('bbit-tree-ec-icon') && !$(tar).hasClass('form-control')) { - if ($option.attr('data-show')) { - $option.hide(); - } else { - $option.slideUp(150); - } - $select.removeClass('ui-select-focus'); - e.stopPropagation(); - } - }); - return $select; -} -$.fn.ComboBoxTreeSetValue = function (value) { - if (value == "") { - return; - } - var $select = $(this); - var $option = $("#" + $select.attr('id') + "-option"); - $select.attr('data-value', value); - var data_text = $option.find('ul').find('[data-value=' + value + ']').html(); - if (data_text) { - $select.attr('data-text', data_text); - $select.find('.ui-select-text').html(data_text).css('color', '#000'); - $option.find('ul').find('[data-value=' + value + ']').parent().parent().addClass('bbit-tree-selected'); - } - return $select; -} -$.fn.GetWebControls = function (keyValue) { - var reVal = ""; - $(this).find('input,select,textarea,.ui-select').each(function (r) { - var id = $(this).attr('id'); - var type = $(this).attr('type'); - switch (type) { - case "checkbox": - if ($("#" + id).is(":checked")) { - reVal += '"' + id + '"' + ':' + '"1",' - } else { - reVal += '"' + id + '"' + ':' + '"0",' - } - break; - case "select": - var value = $("#" + id).attr('data-value'); - if (value == "") { - value = " "; - } - reVal += '"' + id + '"' + ':' + '"' + $.trim(value) + '",' - break; - case "selectTree": - var value = $("#" + id).attr('data-value'); - if (value == "") { - value = " "; - } - reVal += '"' + id + '"' + ':' + '"' + $.trim(value) + '",' - break; - default: - var value = $("#" + id).val(); - if (value == "") { - value = " "; - } - reVal += '"' + id + '"' + ':' + '"' + $.trim(value) + '",' - break; - } - }); - reVal = reVal.substr(0, reVal.length - 1); - if (!keyValue) { - reVal = reVal.replace(/ /g, ''); - } - reVal = reVal.replace(/\\/g, '\\\\'); - reVal = reVal.replace(/\n/g, '\\n'); - var postdata = jQuery.parseJSON('{' + reVal + '}'); - //阻止伪造请求 - //if ($('[name=__RequestVerificationToken]').length > 0) { - // postdata["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val(); - //} - return postdata; -}; -$.fn.SetWebControls = function (data) { - var $id = $(this) - for (var key in data) { - var id = $id.find('#' + key); - if (id.attr('id')) { - var type = id.attr('type'); - if (id.hasClass("input-datepicker")) { - type = "datepicker"; - } - var value = $.trim(data[key]).replace(/ /g, ''); - switch (type) { - case "checkbox": - if (value == 1) { - id.attr("checked", 'checked'); - } else { - id.removeAttr("checked"); - } - break; - case "select": - id.ComboBoxSetValue(value); - break; - case "selectTree": - id.ComboBoxTreeSetValue(value); - break; - case "datepicker": - id.val(formatDate(value, 'yyyy-MM-dd')); - break; - default: - id.val(value); - break; - } - } - } -} -$.fn.Contextmenu = function () { - var element = $(this); - var oMenu = $('.contextmenu'); - $(document).click(function () { - oMenu.hide(); - }); - $(document).mousedown(function (e) { - if (3 == e.which) { - oMenu.hide(); - } - }) - var aUl = oMenu.find("ul"); - var aLi = oMenu.find("li"); - var showTimer = hideTimer = null; - var i = 0; - var maxWidth = maxHeight = 0; - var aDoc = [document.documentElement.offsetWidth, document.documentElement.offsetHeight]; - oMenu.hide(); - for (i = 0; i < aLi.length; i++) { - //为含有子菜单的li加上箭头 - aLi[i].getElementsByTagName("ul")[0] && (aLi[i].className = "sub"); - //鼠标移入 - aLi[i].onmouseover = function () { - var oThis = this; - var oUl = oThis.getElementsByTagName("ul"); - //鼠标移入样式 - oThis.className += " active"; - //显示子菜单 - if (oUl[0]) { - clearTimeout(hideTimer); - showTimer = setTimeout(function () { - for (i = 0; i < oThis.parentNode.children.length; i++) { - oThis.parentNode.children[i].getElementsByTagName("ul")[0] && - (oThis.parentNode.children[i].getElementsByTagName("ul")[0].style.display = "none"); - } - oUl[0].style.display = "block"; - oUl[0].style.top = oThis.offsetTop + "px"; - oUl[0].style.left = oThis.offsetWidth + "px"; - - //最大显示范围 - maxWidth = aDoc[0] - oUl[0].offsetWidth; - maxHeight = aDoc[1] - oUl[0].offsetHeight; - - //防止溢出 - maxWidth < getOffset.left(oUl[0]) && (oUl[0].style.left = -oUl[0].clientWidth + "px"); - maxHeight < getOffset.top(oUl[0]) && (oUl[0].style.top = -oUl[0].clientHeight + oThis.offsetTop + oThis.clientHeight + "px") - }, 300); - } - }; - //鼠标移出 - aLi[i].onmouseout = function () { - var oThis = this; - var oUl = oThis.getElementsByTagName("ul"); - //鼠标移出样式 - oThis.className = oThis.className.replace(/\s?active/, ""); - - clearTimeout(showTimer); - hideTimer = setTimeout(function () { - for (i = 0; i < oThis.parentNode.children.length; i++) { - oThis.parentNode.children[i].getElementsByTagName("ul")[0] && - (oThis.parentNode.children[i].getElementsByTagName("ul")[0].style.display = "none"); - } - }, 300); - }; - } - //自定义右键菜单 - $(element).bind("contextmenu", function () { - var event = event || window.event; - oMenu.show(); - oMenu.css('top', event.clientY + "px"); - oMenu.css('left', event.clientX + "px"); - //最大显示范围 - maxWidth = aDoc[0] - oMenu.width(); - maxHeight = aDoc[1] - oMenu.height(); - //防止菜单溢出 - if (oMenu.offset().top > maxHeight) { - oMenu.css('top', maxHeight + "px"); - } - if (oMenu.offset().left > maxWidth) { - oMenu.css('left', maxWidth + "px"); - } - return false; - }).bind("click", function () { - oMenu.hide(); - }); -} -$.fn.panginationEx = function (options) { - var $pager = $(this); - if (!$pager.attr('id')) { - return false; - } - var defaults = { - firstBtnText: '首页', - lastBtnText: '尾页', - prevBtnText: '上一页', - nextBtnText: '下一页', - showInfo: true, - showJump: true, - jumpBtnText: '跳转', - showPageSizes: true, - infoFormat: '{start} ~ {end}条,共{total}条', - sortname: '', - url: "", - success: null, - beforeSend: null, - complete: null - }; - var options = $.extend(defaults, options); - var params = $.extend({ sidx: options.sortname, sord: "asc" }, options.params); - options.remote = { - url: options.url, //请求地址 - params: params, //自定义请求参数 - beforeSend: function (XMLHttpRequest) { - if (options.beforeSend != null) { - options.beforeSend(XMLHttpRequest); - } - }, - success: function (result, pageIndex) { - //回调函数 - //result 为 请求返回的数据,呈现数据 - if (options.success != null) { - options.success(result.rows, pageIndex); - } - }, - complete: function (XMLHttpRequest, textStatu) { - if (options.complete != null) { - options.complete(XMLHttpRequest, textStatu); - } - //... - }, - pageIndexName: 'page', //请求参数,当前页数,索引从0开始 - pageSizeName: 'rows', //请求参数,每页数量 - totalName: 'records' //指定返回数据的总数据量的字段名 - } - $pager.page(options); -} -$.fn.LeftListShowOfemail = function (options) { - var $list = $(this); - if (!$list.attr('id')) { - return false; - } - $list.append('

      '); - var defaults = { - id: "id", - name: "text", - img: "fa fa-file-o", - - }; - var options = $.extend(defaults, options); - $list.height(options.height); - $.ajax({ - url: options.url, - data: options.param, - type: "GET", - dataType: "json", - async: false, - success: function (data) { - $.each(data, function (i, item) { - var $_li = $('
    • ' + item[options.name] + '
    • '); - if (i == 0) { - $_li.addClass("active"); - } - $list.find('ul').append($_li); - }); - $list.find('li').click(function () { - var key = $(this).attr('data-value'); - var value = $(this).attr('data-text'); - $list.find('li').removeClass('active'); - $(this).addClass('active'); - options.onnodeclick({ id: key, name: value }); - }); - }, - error: function (XMLHttpRequest, textStatus, errorThrown) { - dialogMsg(errorThrown, -1); - } - }); -} - - -dialogTop = function (content, type) { - layer.msg(content); -} -dialogOpen = function (options) { - Loading(true); - var defaults = { - id: null, - title: '系统窗口', - width: "100px", - height: "100px", - url: '', - shade: 0.3, - btn: ['确认', '关闭'], - callBack: null - }; - var options = $.extend(defaults, options); - var _url = options.url; - var _width = top.$.windowWidth() > parseInt(options.width.replace('px', '')) ? options.width : top.$.windowWidth() + 'px'; - var _height = top.$.windowHeight() > parseInt(options.height.replace('px', '')) ? options.height : top.$.windowHeight() + 'px'; - layer.open({ - id: options.id, - type: 2, - shade: options.shade, - title: options.title, - fix: false, - area: [_width, _height], - content: top.contentPath + _url, - btn: options.btn, - yes: function () { - options.callBack(options.id) - }, cancel: function () { - if (options.cancel != undefined) - { - options.cancel(); - } - return true; - } - }); -} -dialogContent = function (options) { - var defaults = { - id: null, - title: '系统窗口', - width: "100px", - height: "100px", - content: '', - btn: ['确认', '关闭'], - callBack: null - }; - var options = $.extend(defaults, options); - layer.open({ - id: options.id, - type: 1, - title: options.title, - fix: false, - area: [options.width, options.height], - content: options.content, - btn: options.btn, - yes: function () { - options.callBack(options.id) - } - }); -} -dialogAlert = function (content, type) { - if (type == -1) { - type = 2; - } - layer.alert(content, { - icon: type, - title: "提示" - }); -} -dialogConfirm = function (content, callBack) { - layer.confirm(content, { - icon: 7, - title: "提示", - btn: ['确认', '取消'], - }, function () { - callBack(true); - }, function () { - callBack(false) - }); -} -dialogMsg = function (content, type) { - if (type == -1) { - type = 2; - } - layer.msg(content, { icon: type, time: 4000, shift: 5 }); -} - -reload = function () { - location.reload(); - return false; -} -newGuid = function () { - var guid = ""; - for (var i = 1; i <= 32; i++) { - var n = Math.floor(Math.random() * 16.0).toString(16); - guid += n; - if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) guid += "-"; - } - return guid; -} -formatDate = function (v, format) { - if (!v) return ""; - var d = v; - if (typeof v === 'string') { - if (v.indexOf("/Date(") > -1) - d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10)); - else - d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0]));//.split(".")[0] 用来处理出现毫秒的情况,截取掉.xxx,否则会出错 - } - var o = { - "M+": d.getMonth() + 1, //month - "d+": d.getDate(), //day - "h+": d.getHours(), //hour - "m+": d.getMinutes(), //minute - "s+": d.getSeconds(), //second - "q+": Math.floor((d.getMonth() + 3) / 3), //quarter - "S": d.getMilliseconds() //millisecond - }; - if (/(y+)/.test(format)) { - format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); - } - for (var k in o) { - if (new RegExp("(" + k + ")").test(format)) { - format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); - } - } - return format; -}; -toDecimal = function (num) { - if (num == null) { - num = "0"; - } - num = num.toString().replace(/\$|\,/g, ''); - if (isNaN(num)) - num = "0"; - sign = (num == (num = Math.abs(num))); - num = Math.floor(num * 100 + 0.50000000001); - cents = num % 100; - num = Math.floor(num / 100).toString(); - if (cents < 10) - cents = "0" + cents; - for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3) ; i++) - num = num.substring(0, num.length - (4 * i + 3)) + '' + - num.substring(num.length - (4 * i + 3)); - return (((sign) ? '' : '-') + num + '.' + cents); -} -Date.prototype.DateAdd = function (strInterval, Number) { - //y年 q季度 m月 d日 w周 h小时 n分钟 s秒 ms毫秒 - var dtTmp = this; - switch (strInterval) { - case 's': return new Date(Date.parse(dtTmp) + (1000 * Number)); - case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number)); - case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number)); - case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number)); - case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number)); - case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); - case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); - case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); - } -} -request = function (keyValue) { - var search = location.search.slice(1); - var arr = search.split("&"); - for (var i = 0; i < arr.length; i++) { - var ar = arr[i].split("="); - if (ar[0] == keyValue) { - if (unescape(ar[1]) == 'undefined') { - return ""; - } else { - return unescape(ar[1]); - } - } - } - return ""; -} -changeUrlParam = function (url, key, value) { - var newUrl = ""; - var reg = new RegExp("(^|)" + key + "=([^&]*)(|$)"); - var tmp = key + "=" + value; - if (url.match(reg) != null) { - newUrl = url.replace(eval(reg), tmp); - } else { - if (url.match("[\?]")) { - newUrl = url + "&" + tmp; - } - else { - newUrl = url + "?" + tmp; - } - } - return newUrl; -} - -$.isbrowsername = function () { - var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 - var isOpera = userAgent.indexOf("Opera") > -1; - if (isOpera) { - return "Opera" - }; //判断是否Opera浏览器 - if (userAgent.indexOf("Firefox") > -1) { - return "FF"; - } //判断是否Firefox浏览器 - if (userAgent.indexOf("Chrome") > -1) { - if (window.navigator.webkitPersistentStorage.toString().indexOf('DeprecatedStorageQuota') > -1) { - return "Chrome"; - } else { - return "360"; - } - }//判断是否Chrome浏览器//360浏览器 - if (userAgent.indexOf("Safari") > -1) { - return "Safari"; - } //判断是否Safari浏览器 - if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) { - return "IE"; - }; //判断是否IE浏览器 -} -$.download = function (url, data, method) { - if (url && data) { - data = typeof data == 'string' ? data : jQuery.param(data); - var inputs = ''; - $.each(data.split('&'), function () { - var pair = this.split('='); - inputs += ''; - }); - $('
      ' + inputs + '
      ').appendTo('body').submit().remove(); - }; -}; -$.standTabchange = function (object, forid) { - $(".standtabactived").removeClass("standtabactived"); - $(object).addClass("standtabactived"); - $('.standtab-pane').css('display', 'none'); - $('#' + forid).css('display', 'block'); -} -$.isNullOrEmpty = function (obj) { - if ((typeof (obj) == "string" && obj == "") || obj == null || obj == undefined) { - return true; - } - else { - return false; - } -} -$.arrayClone = function (data) { - return $.map(data, function (obj) { - return $.extend(true, {}, obj); - }); -} -$.windowWidth = function () { - return $(window).width(); -} -$.windowHeight = function () { - return $(window).height(); -} -IsNumber = function (obj) { - $("#" + obj).bind("contextmenu", function () { - return false; - }); - $("#" + obj).css('ime-mode', 'disabled'); - $("#" + obj).keypress(function (e) { - if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { - return false; - } - }); -} -IsMoney = function (obj) { - $("#" + obj).bind("contextmenu", function () { - return false; - }); - $("#" + obj).css('ime-mode', 'disabled'); - $("#" + obj).bind("keydown", function (e) { - var key = window.event ? e.keyCode : e.which; - if (isFullStop(key)) { - return $(this).val().indexOf('.') < 0; - } - return (isSpecialKey(key)) || ((isNumber(key) && !e.shiftKey)); - }); - function isNumber(key) { - return key >= 48 && key <= 57 - } - function isSpecialKey(key) { - return key == 8 || key == 46 || (key >= 37 && key <= 40) || key == 35 || key == 36 || key == 9 || key == 13 - } - function isFullStop(key) { - return key == 190 || key == 110; - } -} -checkedArray = function (id) { - var isOK = true; - if (id == undefined || id == "" || id == 'null' || id == 'undefined') { - isOK = false; - dialogMsg('您没有选中任何项,请您选中后再操作。', 0); - } - return isOK; -} -checkedRow = function (id) { - var isOK = true; - if (id == undefined || id == "" || id == 'null' || id == 'undefined') { - isOK = false; - dialogMsg('您没有选中任何数据项,请选中后再操作!', 0); - } else if (id.split(",").length > 1) { - isOK = false; - dialogMsg('很抱歉,一次只能选择一条记录!', 0); - } - return isOK; -} \ No newline at end of file diff --git a/OpenAuth.Mvc/userJs/flowInstanceEdit.js b/OpenAuth.Mvc/userJs/flowInstanceEdit.js index 5e5f1567..d0ca1cbf 100644 --- a/OpenAuth.Mvc/userJs/flowInstanceEdit.js +++ b/OpenAuth.Mvc/userJs/flowInstanceEdit.js @@ -1,13 +1,13 @@ layui.config({ base: "/js/" -}).use(['form', 'vue', 'ztree', 'layer', 'queryString', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow/gooflow', 'utils/flowlayout'], function () { +}).use(['form', 'vue', 'ztree', 'layer', 'queryString', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow/gooflow', 'flowlayout'], function () { 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; - + var frmdata = {}; var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 var id = $.getUrlParam("id"); //ID var update = (id !=null && id != ''); @@ -55,7 +55,7 @@ /*=========流程设计(end)=====================*/ //流程模板选择 - var frmTree = function () { + var tree = function () { var zTreeObj; var setting = { view: { selectedMulti: true }, @@ -90,11 +90,20 @@ onCheck: function (event, treeId, treeNode) { $("#FrmId").val(treeNode.FrmId); //把流程模板的表单ID设置成流程实例的表单ID $("#SchemeContent").val(treeNode.SchemeContent); - - //预览表单 - $.get("/forms/previewdata?id=" + treeNode.FrmId, function (data) { - $("#frmPreview").html(data); + //取表单的结构数据 + $.getJSON("/forms/get?id=" + treeNode.FrmId, function (data) { + if (data.Code != 500) { + $("#FrmContentData").val(data.Result.ContentData); + $("#FrmContentParse").val(data.Result.ContentParse); + $("#frmPreview").html(data.Result.Content); + frmdata = arrayToObj(JSON.parse(data.Result.ContentData)); + $.extend(frmdata, vm.data); + vm = new Vue({ + el: "#formEdit", + data:frmdata + }); + } }); //预览流程 @@ -122,10 +131,6 @@ 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 { @@ -140,7 +145,7 @@ url = "/FlowInstances/Update"; vm.$set('$data', obj); flowDesignPanel.loadData(JSON.parse(obj.SchemeContent)); - frmTree.setCheck(obj.FrmId); + tree.setCheck(obj.FrmId); }); } else { vm.$set('$data', @@ -157,11 +162,12 @@ if (content == -1) { return false; //阻止表单跳转。 } - var schemecontent = { - SchemeContent: JSON.stringify(content) - } - $.extend(data.field, schemecontent); + $.extend(data.field, + { + SchemeContent: JSON.stringify(content), + FrmData: JSON.stringify(frmdata) + }); $.post(url, data.field, function (result) { diff --git a/OpenAuth.Mvc/userJs/flowSchemeDesign.js b/OpenAuth.Mvc/userJs/flowSchemeDesign.js index 40363100..97f522ce 100644 --- a/OpenAuth.Mvc/userJs/flowSchemeDesign.js +++ b/OpenAuth.Mvc/userJs/flowSchemeDesign.js @@ -1,6 +1,6 @@ layui.config({ base: "/js/" -}).use(['form', 'vue', 'ztree', 'layer', 'queryString', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow/gooflow', 'utils/flowlayout'], function () { +}).use(['form', 'vue', 'ztree', 'layer', 'queryString', 'element', 'jquery', 'table', 'droptree', 'openauth', 'flow/gooflow', 'flowlayout'], function () { var form = layui.form, element = layui.element, //layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer, layer = layui.layer, diff --git a/OpenAuth.Repository/Domain/FlowInstance.cs b/OpenAuth.Repository/Domain/FlowInstance.cs index 6233fcbe..8eddaa05 100644 --- a/OpenAuth.Repository/Domain/FlowInstance.cs +++ b/OpenAuth.Repository/Domain/FlowInstance.cs @@ -30,6 +30,7 @@ namespace OpenAuth.Repository.Domain this.SchemeId= string.Empty; this.DbName= string.Empty; this.FrmType= 0; + this.FrmData = string.Empty; this.FrmContentData= string.Empty; this.FrmContentParse= string.Empty; this.FrmId= string.Empty; @@ -137,5 +138,7 @@ namespace OpenAuth.Repository.Domain /// public string MakerList { get; set; } + public string FrmData { get; set; } + } } \ No newline at end of file diff --git a/OpenAuth.Repository/Mapping/FlowInstanceMap.cs b/OpenAuth.Repository/Mapping/FlowInstanceMap.cs index abd8d7de..44e673c3 100644 --- a/OpenAuth.Repository/Mapping/FlowInstanceMap.cs +++ b/OpenAuth.Repository/Mapping/FlowInstanceMap.cs @@ -58,6 +58,9 @@ namespace OpenAuth.Repository.Mapping Property(t => t.SchemeContent) .HasColumnName("SchemeContent") .IsOptional(); + Property(t => t.FrmData) + .HasColumnName("FrmData") + .IsOptional(); Property(t => t.SchemeId) .HasColumnName("SchemeId") .HasMaxLength(50) diff --git a/数据库设计关系图/OpenAuthDB.apm b/数据库设计关系图/OpenAuthDB.apm index acff10ff..5e0e35cf 100644 --- a/数据库设计关系图/OpenAuthDB.apm +++ b/数据库设计关系图/OpenAuthDB.apm @@ -1,5 +1,5 @@ - + @@ -8491,25 +8491,25 @@ Drop=No D9DFF694-358A-4F21-8C43-CF189A3DB03B -表单中的字段数据 +表单中的控件属性描述 ContentData 1504793917 Administrator -1519704375 +1521691854 Administrator -表单中的字段数据 +表单中的控件属性描述 text CKC_CONTENTDATA_FORM 3DEAE97A-7275-4C7F-8525-FE97FDC4A89B -表单替换的模板 经过处理 +表单控件位置模板 ContentParse 1519704128 Administrator -1519704375 +1521691888 Administrator -表单替换的模板 经过处理 +表单控件位置模板 text CKC_CONTENTPARSE_FORM @@ -9062,7 +9062,7 @@ Drop=No FlowInstance 1504793917 Administrator -1521190197 +1521692209 Administrator 工作流流程实例表 CKT_FLOWINSTANCE @@ -9184,8 +9184,9 @@ Drop=No PreviousId 1504801296 Administrator -1511955755 +1521691829 Administrator +前一个ID newid() varchar(50) 50 @@ -9236,43 +9237,56 @@ Drop=No CKC_DBNAME_FLOWINST +CB7CCE39-F5D9-440D-A988-245254F9C650 +表单数据 +FrmData +1521690644 +Administrator +1521691818 +Administrator +表单数据 +text +CKC_FRMDATA_FLOWINST + + 48BD95E4-3C6D-41FE-AF8F-5B95D2502165 表单类型 FrmType 1504801424 Administrator -1520667609 +1521691829 Administrator +表单类型 0 int 1 CKC_FRMTYPE_FLOWINST - + 382AE554-3ECB-431E-8ED9-28C9A9D5F874 -表单中的字段数据 +表单中的控件属性描述 FrmContentData 1521189949 Administrator -1521189968 +1521691818 Administrator -表单中的字段数据 +表单中的控件属性描述 text CKC_FRMCONTENTDATA_FLOWINST - + 88F0BD4F-1142-4ECF-B9CB-049BA1ACB4F1 -表单内容 +表单控件位置模板 FrmContentParse 1521189833 Administrator -1521189921 +1521691904 Administrator -表单内容 +表单控件位置模板 text CKC_FRMCONTENTPARSE_FLOWINST - + 3D624FF2-259D-48CA-BF04-F8DD5F05C091 表单ID FrmId @@ -9288,7 +9302,7 @@ Drop=No - + F969B35E-77F6-4658-834C-AB61B18A1B0B 流程类型 SchemeType @@ -9301,7 +9315,7 @@ Drop=No 50 CKC_SCHEMETYPE_FLOWINST - + 06748220-8AED-4D9D-B1BB-11CC17633057 有效标志(0暂停,1正常运行,3草稿) Disabled @@ -9315,7 +9329,7 @@ Drop=No 1 CKC_DISABLED_FLOWINST - + 13E11AE5-26B8-444A-9210-AC46929DE9BA 创建时间 CreateDate @@ -9329,7 +9343,7 @@ Drop=No 1 CKC_CREATEDATE_FLOWINST - + 11066BC1-6BBB-4A41-AD07-9B47EF4E2B35 创建用户主键 CreateUserId @@ -9345,7 +9359,7 @@ Drop=No - + 07BCDA70-08AF-4D4E-83A5-954DB379F72F 创建用户 CreateUserName @@ -9358,7 +9372,7 @@ Drop=No 50 CKC_CREATEUSERNAME_FLOWINST - + 3B6D943B-675D-4216-AF4F-E6B92EF6D791 等级 FlowLevel @@ -9372,7 +9386,7 @@ Drop=No 1 CKC_FLOWLEVEL_FLOWINST - + F45676E2-9A52-4630-BCCF-60D48F4C2B56 实例备注 Description @@ -9385,7 +9399,7 @@ Drop=No 200 CKC_DESCRIPTION_FLOWINST - + BCAC5426-B9D9-410F-8F34-38405BF65C51 是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回) IsFinish @@ -9399,7 +9413,7 @@ Drop=No 1 CKC_ISFINISH_FLOWINST - + 93828232-E3F3-4E75-9088-9554278FEF35 执行人 MakerList @@ -9414,7 +9428,7 @@ Drop=No - + D707945D-7815-4853-86EA-F9F300E6218E Id Id @@ -9429,7 +9443,7 @@ Drop=No - + 1925AD3C-50D1-4A4E-8EBE-201B4DAADA05 FlowInstance_PK FlowInstance_PK @@ -9439,10 +9453,10 @@ Drop=No Administrator 1 - + - + 9497F7B2-7AFA-4843-89F1-85ECA652423B 1504793917 Administrator @@ -9454,18 +9468,9 @@ Drop=No - -B71E44A0-EC46-4EB3-A0BD-6D0BA250B2C4 -Relationship_25_FK -Relationship_25_FK -1504793917 -Administrator -1521189828 -Administrator - - + diff --git a/数据库设计关系图/OpenAuthDB.pdm b/数据库设计关系图/OpenAuthDB.pdm index 8c4e7b36..4757b78b 100644 --- a/数据库设计关系图/OpenAuthDB.pdm +++ b/数据库设计关系图/OpenAuthDB.pdm @@ -1,5 +1,5 @@ - + @@ -8404,24 +8404,24 @@ Drop=No D9DFF694-358A-4F21-8C43-CF189A3DB03B -表单中的字段数据 +表单中的控件属性描述 ContentData 1504793917 Administrator -1519704375 +1521691854 Administrator -表单中的字段数据 +表单中的控件属性描述 text 3DEAE97A-7275-4C7F-8525-FE97FDC4A89B -表单替换的模板 经过处理 +表单控件位置模板 ContentParse 1519704128 Administrator -1519704375 +1521691888 Administrator -表单替换的模板 经过处理 +表单控件位置模板 text @@ -8938,7 +8938,7 @@ Drop=No FlowInstance 1504793917 Administrator -1521190197 +1521692209 Administrator 工作流流程实例表 @@ -9052,8 +9052,9 @@ Drop=No PreviousId 1504801296 Administrator -1511955755 +1521691829 Administrator +前一个ID newid() varchar(50) 50 @@ -9100,40 +9101,52 @@ Drop=No 50 +CB7CCE39-F5D9-440D-A988-245254F9C650 +表单数据 +FrmData +1521690644 +Administrator +1521691818 +Administrator +表单数据 +text + + 48BD95E4-3C6D-41FE-AF8F-5B95D2502165 表单类型 FrmType 1504801424 Administrator -1520667609 +1521691829 Administrator +表单类型 0 int 1 - + 382AE554-3ECB-431E-8ED9-28C9A9D5F874 -表单中的字段数据 +表单中的控件属性描述 FrmContentData 1521189949 Administrator -1521189968 +1521691818 Administrator -表单中的字段数据 -text - - -88F0BD4F-1142-4ECF-B9CB-049BA1ACB4F1 -表单内容 -FrmContentParse -1521189833 -Administrator -1521189921 -Administrator -表单内容 +表单中的控件属性描述 text +88F0BD4F-1142-4ECF-B9CB-049BA1ACB4F1 +表单控件位置模板 +FrmContentParse +1521189833 +Administrator +1521691904 +Administrator +表单控件位置模板 +text + + 3D624FF2-259D-48CA-BF04-F8DD5F05C091 表单ID FrmId @@ -9148,7 +9161,7 @@ Drop=No - + F969B35E-77F6-4658-834C-AB61B18A1B0B 流程类型 SchemeType @@ -9160,7 +9173,7 @@ Drop=No varchar(50) 50 - + 06748220-8AED-4D9D-B1BB-11CC17633057 有效标志(0暂停,1正常运行,3草稿) Disabled @@ -9173,7 +9186,7 @@ Drop=No int 1 - + 13E11AE5-26B8-444A-9210-AC46929DE9BA 创建时间 CreateDate @@ -9186,7 +9199,7 @@ Drop=No datetime 1 - + 11066BC1-6BBB-4A41-AD07-9B47EF4E2B35 创建用户主键 CreateUserId @@ -9201,7 +9214,7 @@ Drop=No - + 07BCDA70-08AF-4D4E-83A5-954DB379F72F 创建用户 CreateUserName @@ -9213,7 +9226,7 @@ Drop=No varchar(50) 50 - + 3B6D943B-675D-4216-AF4F-E6B92EF6D791 等级 FlowLevel @@ -9226,7 +9239,7 @@ Drop=No int 1 - + F45676E2-9A52-4630-BCCF-60D48F4C2B56 实例备注 Description @@ -9238,7 +9251,7 @@ Drop=No varchar(200) 200 - + BCAC5426-B9D9-410F-8F34-38405BF65C51 是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回) IsFinish @@ -9251,7 +9264,7 @@ Drop=No int 1 - + 93828232-E3F3-4E75-9088-9554278FEF35 执行人 MakerList @@ -9265,7 +9278,7 @@ Drop=No - + D707945D-7815-4853-86EA-F9F300E6218E Id Id @@ -9279,7 +9292,7 @@ Drop=No - + 1925AD3C-50D1-4A4E-8EBE-201B4DAADA05 FlowInstance_PK FlowInstance_PK @@ -9289,10 +9302,10 @@ Drop=No Administrator 1 - + - + 9497F7B2-7AFA-4843-89F1-85ECA652423B 1504793917 Administrator @@ -9304,18 +9317,9 @@ Drop=No - -B71E44A0-EC46-4EB3-A0BD-6D0BA250B2C4 -Relationship_25_FK -Relationship_25_FK -1504793917 -Administrator -1521189828 -Administrator - - +