diff --git a/public/assets/js/backend.js b/public/assets/js/backend.js
old mode 100755
new mode 100644
index 0d4bca89..2b7ecdc4
--- a/public/assets/js/backend.js
+++ b/public/assets/js/backend.js
@@ -1,234 +1,252 @@
-define(['fast', 'moment'], function (Fast, Moment) {
- var Backend = {
- api: {
- sidebar: function (params) {
- colorArr = ['red', 'green', 'yellow', 'blue', 'teal', 'orange', 'purple'];
- $colorNums = colorArr.length;
- badgeList = {};
- $.each(params, function (k, v) {
- $url = Fast.api.fixurl(k);
-
- if ($.isArray(v))
- {
- $nums = typeof v[0] !== 'undefined' ? v[0] : 0;
- $color = typeof v[1] !== 'undefined' ? v[1] : colorArr[(!isNaN($nums) ? $nums : $nums.length) % $colorNums];
- $class = typeof v[2] !== 'undefined' ? v[2] : 'label';
- } else
- {
- $nums = v;
- $color = colorArr[(!isNaN($nums) ? $nums : $nums.length) % $colorNums];
- $class = 'label';
- }
- //必须nums大于0才显示
- badgeList[$url] = $nums > 0 ? '' + $nums + '' : '';
- });
- $.each(badgeList, function (k, v) {
- var anchor = top.window.$("li a[addtabs][url='" + k + "']");
- if (anchor) {
- top.window.$(".pull-right-container", anchor).html(v);
- top.window.$(".nav-addtabs li a[node-id='" + anchor.attr("addtabs") + "'] .pull-right-container").html(v);
- }
- });
- },
- addtabs: function (url, title, icon) {
- var dom = "a[url='{url}']"
- var leftlink = top.window.$(dom.replace(/\{url\}/, url));
- if (leftlink.size() > 0) {
- leftlink.trigger("click");
- } else {
- url = Fast.api.fixurl(url);
- leftlink = top.window.$(dom.replace(/\{url\}/, url));
- if (leftlink.size() > 0) {
- var event = leftlink.parent().hasClass("active") ? "dblclick" : "click";
- leftlink.trigger(event);
- } else {
- var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
- leftlink = top.window.$(dom.replace(/\{url\}/, baseurl));
- //能找到相对地址
- if (leftlink.size() > 0) {
- icon = typeof icon !== 'undefined' ? icon : leftlink.find("i").attr("class");
- title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
- leftlink.trigger("fa.event.toggleitem");
- }
- var navnode = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
- if (navnode.size() > 0) {
- navnode.trigger("click");
- } else {
- //追加新的tab
- var id = Math.floor(new Date().valueOf() * Math.random());
- icon = typeof icon !== 'undefined' ? icon : 'fa fa-circle-o';
- title = typeof title !== 'undefined' ? title : '';
- top.window.$("").append(' ' + title + '').prop("href", url).attr({url: url, addtabs: id}).addClass("hide").appendTo(top.window.document.body).trigger("click");
- }
- }
- }
- },
- closetabs: function (url) {
- if (typeof url === 'undefined') {
- top.window.$("ul.nav-addtabs li.active .close-tab").trigger("click");
- } else {
- var dom = "a[url='{url}']"
- var navlink = top.window.$(dom.replace(/\{url\}/, url));
- if (navlink.size() === 0) {
- url = Fast.api.fixurl(url);
- navlink = top.window.$(dom.replace(/\{url\}/, url));
- if (navlink.size() === 0) {
- } else {
- var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
- navlink = top.window.$(dom.replace(/\{url\}/, baseurl));
- //能找到相对地址
- if (navlink.size() === 0) {
- navlink = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
- }
- }
- }
- if (navlink.size() > 0 && navlink.attr('addtabs')) {
- top.window.$("ul.nav-addtabs li#tab_" + navlink.attr('addtabs') + " .close-tab").trigger("click");
- }
- }
- },
- replaceids: function (elem, url) {
- //如果有需要替换ids的
- if (url.indexOf("{ids}") > -1) {
- var ids = 0;
- var tableId = $(elem).data("table-id");
- if (tableId && $(tableId).size() > 0 && $(tableId).data("bootstrap.table")) {
- var Table = require("table");
- ids = Table.api.selectedids($(tableId)).join(",");
- }
- url = url.replace(/\{ids\}/g, ids);
- }
- return url;
- }
- },
- init: function () {
- //公共代码
- //添加ios-fix兼容iOS下的iframe
- if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
- $("html").addClass("ios-fix");
- }
- //配置Toastr的参数
- Toastr.options.positionClass = Config.controllername === 'index' ? "toast-top-right-index" : "toast-top-right";
- //点击包含.btn-dialog的元素时弹出dialog
- $(document).on('click', '.btn-dialog,.dialogit', function (e) {
- var that = this;
- var options = $.extend({}, $(that).data() || {});
- if (typeof options.tableId !== 'undefined' && typeof options.fieldIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
- var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
- if (tableOptions) {
- var columnObj = null;
- $.each(tableOptions.columns, function (i, columns) {
- $.each(columns, function (j, column) {
- if (typeof column.fieldIndex !== 'undefined' && column.fieldIndex === options.fieldIndex) {
- columnObj = column;
- return false;
- }
- });
- if (columnObj) {
- return false;
- }
- });
- if (columnObj) {
- var button = columnObj['buttons'][options.buttonIndex];
- if (button && typeof button.callback === 'function') {
- options.callback = button.callback;
- }
- }
- }
- }
- if (typeof options.confirm !== 'undefined') {
- Layer.confirm(options.confirm, function (index) {
- Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
- Layer.close(index);
- });
- } else {
- Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
- }
- return false;
- });
- //点击包含.btn-addtabs的元素时新增选项卡
- $(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
- var that = this;
- var options = $.extend({}, $(that).data() || {});
- if (typeof options.confirm !== 'undefined') {
- Layer.confirm(options.confirm, function (index) {
- Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
- Layer.close(index);
- });
- } else {
- Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
- }
-
- return false;
- });
- //点击包含.btn-ajax的元素时发送Ajax请求
- $(document).on('click', '.btn-ajax,.ajaxit', function (e) {
- var that = this;
- var options = $.extend({}, $(that).data() || {});
- if (typeof options.url === 'undefined' && $(that).attr("href")) {
- options.url = $(that).attr("href");
- }
- options.url = Backend.api.replaceids(this, options.url);
- var success = typeof options.success === 'function' ? options.success : null;
- var error = typeof options.error === 'function' ? options.error : null;
- delete options.success;
- delete options.error;
- if (typeof options.tableId !== 'undefined' && typeof options.fieldIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
- var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
- if (tableOptions) {
- var columnObj = null;
- $.each(tableOptions.columns, function (i, columns) {
- $.each(columns, function (j, column) {
- if (typeof column.fieldIndex !== 'undefined' && column.fieldIndex === options.fieldIndex) {
- columnObj = column;
- return false;
- }
- });
- if (columnObj) {
- return false;
- }
- });
- if (columnObj) {
- var button = columnObj['buttons'][options.buttonIndex];
- if (button && typeof button.success === 'function') {
- success = button.success;
- }
- if (button && typeof button.error === 'function') {
- error = button.error;
- }
- }
- }
- }
- //如果未设备成功的回调,设定了自动刷新的情况下自动进行刷新
- if (!success && typeof options.tableId !== 'undefined' && typeof options.refresh !== 'undefined' && options.refresh) {
- $("#" + options.tableId).bootstrapTable('refresh');
- }
- if (typeof options.confirm !== 'undefined') {
- Layer.confirm(options.confirm, function (index) {
- Backend.api.ajax(options, success, error);
- Layer.close(index);
- });
- } else {
- Backend.api.ajax(options, success, error);
- }
- return false;
- });
- //修复含有fixed-footer类的body边距
- if ($(".fixed-footer").size() > 0) {
- $(document.body).css("padding-bottom", $(".fixed-footer").outerHeight());
- }
- //修复不在iframe时layer-footer隐藏的问题
- if ($(".layer-footer").size() > 0 && self === top) {
- $(".layer-footer").show();
- }
- }
- };
- Backend.api = $.extend(Fast.api, Backend.api);
- //将Moment渲染至全局,以便于在子框架中调用
- window.Moment = Moment;
- //将Backend渲染至全局,以便于在子框架中调用
- window.Backend = Backend;
-
- Backend.init();
- return Backend;
-});
\ No newline at end of file
+define(['fast', 'moment'], function (Fast, Moment) {
+ var Backend = {
+ api: {
+ sidebar: function (params) {
+ colorArr = ['red', 'green', 'yellow', 'blue', 'teal', 'orange', 'purple'];
+ $colorNums = colorArr.length;
+ badgeList = {};
+ $.each(params, function (k, v) {
+ $url = Fast.api.fixurl(k);
+
+ if ($.isArray(v))
+ {
+ $nums = typeof v[0] !== 'undefined' ? v[0] : 0;
+ $color = typeof v[1] !== 'undefined' ? v[1] : colorArr[(!isNaN($nums) ? $nums : $nums.length) % $colorNums];
+ $class = typeof v[2] !== 'undefined' ? v[2] : 'label';
+ } else
+ {
+ $nums = v;
+ $color = colorArr[(!isNaN($nums) ? $nums : $nums.length) % $colorNums];
+ $class = 'label';
+ }
+ //必须nums大于0才显示
+ badgeList[$url] = $nums > 0 ? '' + $nums + '' : '';
+ });
+ $.each(badgeList, function (k, v) {
+ var anchor = top.window.$("li a[addtabs][url='" + k + "']");
+ if (anchor) {
+ top.window.$(".pull-right-container", anchor).html(v);
+ top.window.$(".nav-addtabs li a[node-id='" + anchor.attr("addtabs") + "'] .pull-right-container").html(v);
+ }
+ });
+ },
+ addtabs: function (url, title, icon) {
+ var dom = "a[url='{url}']"
+ var leftlink = top.window.$(dom.replace(/\{url\}/, url));
+ if (leftlink.size() > 0) {
+ leftlink.trigger("click");
+ } else {
+ url = Fast.api.fixurl(url);
+ leftlink = top.window.$(dom.replace(/\{url\}/, url));
+ if (leftlink.size() > 0) {
+ var event = leftlink.parent().hasClass("active") ? "dblclick" : "click";
+ leftlink.trigger(event);
+ } else {
+ var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
+ leftlink = top.window.$(dom.replace(/\{url\}/, baseurl));
+ //能找到相对地址
+ if (leftlink.size() > 0) {
+ icon = typeof icon !== 'undefined' ? icon : leftlink.find("i").attr("class");
+ title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
+ leftlink.trigger("fa.event.toggleitem");
+ }
+ var navnode = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
+ if (navnode.size() > 0) {
+ navnode.trigger("click");
+ } else {
+ //追加新的tab
+ var id = Math.floor(new Date().valueOf() * Math.random());
+ icon = typeof icon !== 'undefined' ? icon : 'fa fa-circle-o';
+ title = typeof title !== 'undefined' ? title : '';
+ top.window.$("").append(' ' + title + '').prop("href", url).attr({url: url, addtabs: id}).addClass("hide").appendTo(top.window.document.body).trigger("click");
+ }
+ }
+ }
+ },
+ closetabs: function (url) {
+ if (typeof url === 'undefined') {
+ top.window.$("ul.nav-addtabs li.active .close-tab").trigger("click");
+ } else {
+ var dom = "a[url='{url}']"
+ var navlink = top.window.$(dom.replace(/\{url\}/, url));
+ if (navlink.size() === 0) {
+ url = Fast.api.fixurl(url);
+ navlink = top.window.$(dom.replace(/\{url\}/, url));
+ if (navlink.size() === 0) {
+ } else {
+ var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
+ navlink = top.window.$(dom.replace(/\{url\}/, baseurl));
+ //能找到相对地址
+ if (navlink.size() === 0) {
+ navlink = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
+ }
+ }
+ }
+ if (navlink.size() > 0 && navlink.attr('addtabs')) {
+ top.window.$("ul.nav-addtabs li#tab_" + navlink.attr('addtabs') + " .close-tab").trigger("click");
+ }
+ }
+ },
+ replaceids: function (elem, url) {
+ //如果有需要替换ids的
+ if (url.indexOf("{ids}") > -1) {
+ var ids = 0;
+ var tableId = $(elem).data("table-id");
+ if (tableId && $(tableId).size() > 0 && $(tableId).data("bootstrap.table")) {
+ var Table = require("table");
+ ids = Table.api.selectedids($(tableId)).join(",");
+ }
+ url = url.replace(/\{ids\}/g, ids);
+ }
+ return url;
+ }
+ },
+ init: function () {
+ //公共代码
+ //添加ios-fix兼容iOS下的iframe
+ if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
+ $("html").addClass("ios-fix");
+ }
+ //配置Toastr的参数
+ Toastr.options.positionClass = Config.controllername === 'index' ? "toast-top-right-index" : "toast-top-right";
+ //点击包含.btn-dialog的元素时弹出dialog
+ $(document).on('click', '.btn-dialog,.dialogit', function (e) {
+ var that = this;
+ var options = $.extend({}, $(that).data() || {});
+ if (typeof options.tableId !== 'undefined' && typeof options.fieldIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
+ var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
+ if (tableOptions) {
+ var columnObj = null;
+ $.each(tableOptions.columns, function (i, columns) {
+ $.each(columns, function (j, column) {
+ if (typeof column.fieldIndex !== 'undefined' && column.fieldIndex === options.fieldIndex) {
+ columnObj = column;
+ return false;
+ }
+ });
+ if (columnObj) {
+ return false;
+ }
+ });
+ if (columnObj) {
+ var button = columnObj['buttons'][options.buttonIndex];
+ if (button && typeof button.callback === 'function') {
+ options.callback = button.callback;
+ }
+ }
+ }
+ }
+ if (typeof options.confirm !== 'undefined') {
+ Layer.confirm(options.confirm, function (index) {
+ Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
+ Layer.close(index);
+ });
+ } else {
+ Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
+ }
+ return false;
+ });
+ //点击包含.btn-addtabs的元素时新增选项卡
+ $(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
+ var that = this;
+ var options = $.extend({}, $(that).data() || {});
+ if (typeof options.confirm !== 'undefined') {
+ Layer.confirm(options.confirm, function (index) {
+ Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
+ Layer.close(index);
+ });
+ } else {
+ Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
+ }
+
+ return false;
+ });
+ //点击包含.btn-ajax的元素时发送Ajax请求
+ $(document).on('click', '.btn-ajax,.ajaxit', function (e) {
+ var that = this;
+ var options = $.extend({}, $(that).data() || {});
+ if (typeof options.url === 'undefined' && $(that).attr("href")) {
+ options.url = $(that).attr("href");
+ }
+ options.url = Backend.api.replaceids(this, options.url);
+ var success = typeof options.success === 'function' ? options.success : null;
+ var error = typeof options.error === 'function' ? options.error : null;
+ delete options.success;
+ delete options.error;
+ if (typeof options.tableId !== 'undefined' && typeof options.fieldIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
+ var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
+ if (tableOptions) {
+ var columnObj = null;
+ $.each(tableOptions.columns, function (i, columns) {
+ $.each(columns, function (j, column) {
+ if (typeof column.fieldIndex !== 'undefined' && column.fieldIndex === options.fieldIndex) {
+ columnObj = column;
+ return false;
+ }
+ });
+ if (columnObj) {
+ return false;
+ }
+ });
+ if (columnObj) {
+ var button = columnObj['buttons'][options.buttonIndex];
+ if (button && typeof button.success === 'function') {
+ success = button.success;
+ }
+ if (button && typeof button.error === 'function') {
+ error = button.error;
+ }
+ }
+ }
+ }
+ //如果未设备成功的回调,设定了自动刷新的情况下自动进行刷新
+ if (!success && typeof options.tableId !== 'undefined' && typeof options.refresh !== 'undefined' && options.refresh) {
+ $("#" + options.tableId).bootstrapTable('refresh');
+ }
+ if (typeof options.confirm !== 'undefined') {
+ Layer.confirm(options.confirm, function (index) {
+ Backend.api.ajax(options, success, error);
+ Layer.close(index);
+ });
+ } else {
+ Backend.api.ajax(options, success, error);
+ }
+ return false;
+ });
+ //修复含有fixed-footer类的body边距
+ if ($(".fixed-footer").size() > 0) {
+ $(document.body).css("padding-bottom", $(".fixed-footer").outerHeight());
+ }
+ //修复不在iframe时layer-footer隐藏的问题
+ if ($(".layer-footer").size() > 0 && self === top) {
+ $(".layer-footer").show();
+ }
+ //点击包含data-tips-image的元素弹出预览图片,在需要使用的img元素增加 data-tips-image="图片地址" 即可
+ $(document).on('click', '[data-tips-image]', function () {
+ var img = new Image(), src = this.getAttribute('data-tips-image') || this.src;
+ var imgWidth = this.getAttribute('data-width') || '480px';
+ img.onload = function () {
+ var $content = $(img).appendTo('body').css({background: '#fff', width: imgWidth, height: 'auto'});
+ layer.open({type: 1, area: imgWidth, title: false, closeBtn: 1, skin: 'layui-layer-nobg', shadeClose: true, content: $content, end: function () {
+ $(img).remove();
+ }
+ });
+ };
+ img.src = src;
+ });
+ //鼠标移入包含data-tips-text的元素触发tips提示,在需要使用的元素增加 data-tips-text="提示文字" 即可
+ $(document).on('mouseenter', '[data-tips-text]', function () {
+ var text = $(this).attr('data-tips-text'), placement = $(this).attr('data-tips-placement') || 'auto';
+ $(this).tooltip({title: text, placement: placement}).tooltip('show');
+ });
+ }
+ };
+ Backend.api = $.extend(Fast.api, Backend.api);
+ //将Moment渲染至全局,以便于在子框架中调用
+ window.Moment = Moment;
+ //将Backend渲染至全局,以便于在子框架中调用
+ window.Backend = Backend;
+
+ Backend.init();
+ return Backend;
+});