@@ -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 += '
';
- });
- $('
').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
-
-
+