diff --git a/RuoYi.edf b/RuoYi.edf index 8ff449fef..220dba556 100644 Binary files a/RuoYi.edf and b/RuoYi.edf differ diff --git a/src/main/java/com/ruoyi/framework/mybatis/ExecutorPageMethodInterceptor.java b/src/main/java/com/ruoyi/framework/mybatis/ExecutorPageMethodInterceptor.java index aa5acc617..ff1ae73b7 100644 --- a/src/main/java/com/ruoyi/framework/mybatis/ExecutorPageMethodInterceptor.java +++ b/src/main/java/com/ruoyi/framework/mybatis/ExecutorPageMethodInterceptor.java @@ -85,14 +85,16 @@ public class ExecutorPageMethodInterceptor implements Interceptor // System.out.println(count); PageUtilEntity pageUtilEntity = null; if (parameterObject instanceof PageUtilEntity) - { // 参数就是Page实体 + { + // 参数就是Page实体 pageUtilEntity = (PageUtilEntity) parameterObject; pageUtilEntity.setEntityOrField(true); pageUtilEntity.setTotalResult(count); } else - { // 参数为某个实体,该实体拥有Page属性 - Field pageField = ReflectHelper.getFieldByFieldName(parameterObject, "page"); + { + // 参数为某个实体,该实体拥有Page属性 + Field pageField = ReflectHelper.getFieldByFieldName(parameterObject, "PageUtilEntity"); if (pageField != null) { pageUtilEntity = (PageUtilEntity) ReflectHelper.getValueByFieldName(parameterObject, "PageUtilEntity"); @@ -102,7 +104,7 @@ public class ExecutorPageMethodInterceptor implements Interceptor } pageUtilEntity.setEntityOrField(false); pageUtilEntity.setTotalResult(count); - ReflectHelper.setValueByFieldName(parameterObject, "page", pageUtilEntity); // 通过反射,对实体对象设置分页对象 + ReflectHelper.setValueByFieldName(parameterObject, "PageUtilEntity", pageUtilEntity); // 通过反射,对实体对象设置分页对象 } else { @@ -200,6 +202,10 @@ public class ExecutorPageMethodInterceptor implements Interceptor if ("mysql".equals(dialect)) { pageSql.append(sql); + if(StringUtils.isNotEmpty(pageUtilEntity.getOrderByColumn())) + { + pageSql.append(" order by " + pageUtilEntity.getOrderByColumn() + " " + pageUtilEntity.getIsAsc()); + } pageSql.append(" limit " + pageUtilEntity.getPage() + "," + pageUtilEntity.getSize()); } else if ("oracle".equals(dialect)) diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js b/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js new file mode 100644 index 000000000..3262ff84e --- /dev/null +++ b/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js @@ -0,0 +1,146 @@ +/** + * @author zhixin wen + * extensions: https://github.com/vitalets/x-editable + */ + +(function($) { + + 'use strict'; + + $.extend($.fn.bootstrapTable.defaults, { + editable: true, + onEditableInit: function() { + return false; + }, + onEditableSave: function(field, row, oldValue, $el) { + return false; + }, + onEditableShown: function(field, row, $el, editable) { + return false; + }, + onEditableHidden: function(field, row, $el, reason) { + return false; + } + }); + + $.extend($.fn.bootstrapTable.Constructor.EVENTS, { + 'editable-init.bs.table': 'onEditableInit', + 'editable-save.bs.table': 'onEditableSave', + 'editable-shown.bs.table': 'onEditableShown', + 'editable-hidden.bs.table': 'onEditableHidden' + }); + + var BootstrapTable = $.fn.bootstrapTable.Constructor, + _initTable = BootstrapTable.prototype.initTable, + _initBody = BootstrapTable.prototype.initBody; + + BootstrapTable.prototype.initTable = function() { + var that = this; + _initTable.apply(this, Array.prototype.slice.apply(arguments)); + + if (!this.options.editable) { + return; + } + + $.each(this.columns, function(i, column) { + if (!column.editable) { + return; + } + + var editableOptions = {}, + editableDataMarkup = [], + editableDataPrefix = 'editable-'; + + var processDataOptions = function(key, value) { + // Replace camel case with dashes. + var dashKey = key.replace(/([A-Z])/g, function($1) { + return "-" + $1.toLowerCase(); + }); + if (dashKey.slice(0, editableDataPrefix.length) == editableDataPrefix) { + var dataKey = dashKey.replace(editableDataPrefix, 'data-'); + editableOptions[dataKey] = value; + } + }; + + $.each(that.options, processDataOptions); + + column.formatter = column.formatter || function(value, row, index) { + return value; + }; + column._formatter = column._formatter ? column._formatter : column.formatter; + column.formatter = function(value, row, index) { + var result = column._formatter ? column._formatter(value, row, index) : value; + + $.each(column, processDataOptions); + + $.each(editableOptions, function(key, value) { + editableDataMarkup.push(' ' + key + '="' + value + '"'); + }); + + var _dont_edit_formatter = false; + if (column.editable.hasOwnProperty('noeditFormatter')) { + _dont_edit_formatter = column.editable.noeditFormatter(value, row, index); + } + + if (_dont_edit_formatter === false) { + return ['' + '' + ].join(''); + } else { + return _dont_edit_formatter; + } + + }; + }); + }; + + BootstrapTable.prototype.initBody = function() { + var that = this; + _initBody.apply(this, Array.prototype.slice.apply(arguments)); + + if (!this.options.editable) { + return; + } + + $.each(this.columns, function(i, column) { + if (!column.editable) { + return; + } + + that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable) + .off('save').on('save', function(e, params) { + var data = that.getData(), + index = $(this).parents('tr[data-index]').data('index'), + row = data[index], + oldValue = row[column.field]; + + $(this).data('value', params.submitValue); + row[column.field] = params.submitValue; + that.trigger('editable-save', column.field, row, oldValue, $(this)); + that.resetFooter(); + }); + that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable) + .off('shown').on('shown', function(e, editable) { + var data = that.getData(), + index = $(this).parents('tr[data-index]').data('index'), + row = data[index]; + + that.trigger('editable-shown', column.field, row, $(this), editable); + }); + that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable) + .off('hidden').on('hidden', function(e, reason) { + var data = that.getData(), + index = $(this).parents('tr[data-index]').data('index'), + row = data[index]; + + that.trigger('editable-hidden', column.field, row, $(this), reason); + }); + }); + this.trigger('editable-init'); + }; + +})(jQuery); \ No newline at end of file diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js b/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js new file mode 100644 index 000000000..c25643e3e --- /dev/null +++ b/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js @@ -0,0 +1,7 @@ +/* +* bootstrap-table - v1.11.0 - 2016-07-02 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2016 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{editable:!0,onEditableInit:function(){return!1},onEditableSave:function(){return!1},onEditableShown:function(){return!1},onEditableHidden:function(){return!1}}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"editable-init.bs.table":"onEditableInit","editable-save.bs.table":"onEditableSave","editable-shown.bs.table":"onEditableShown","editable-hidden.bs.table":"onEditableHidden"});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initTable,d=b.prototype.initBody;b.prototype.initTable=function(){var b=this;c.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&a.each(this.columns,function(c,d){if(d.editable){var e={},f=[],g="editable-",h=function(a,b){var c=a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()});if(c.slice(0,g.length)==g){var d=c.replace(g,"data-");e[d]=b}};a.each(b.options,h),d.formatter=d.formatter||function(a){return a},d._formatter=d._formatter?d._formatter:d.formatter,d.formatter=function(c,g,i){var j=d._formatter?d._formatter(c,g,i):c;a.each(d,h),a.each(e,function(a,b){f.push(" "+a+'="'+b+'"')});var k=!1;return d.editable.hasOwnProperty("noeditFormatter")&&(k=d.editable.noeditFormatter(c,g,i)),k===!1?['"].join(""):k}}})},b.prototype.initBody=function(){var b=this;d.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&(a.each(this.columns,function(c,d){d.editable&&(b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("save").on("save",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g],i=h[d.field];a(this).data("value",e.submitValue),h[d.field]=e.submitValue,b.trigger("editable-save",d.field,h,i,a(this)),b.resetFooter()}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("shown").on("shown",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-shown",d.field,h,a(this),e)}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("hidden").on("hidden",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-hidden",d.field,h,a(this),e)}))}),this.trigger("editable-init"))}}(jQuery); \ No newline at end of file diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/page/bootstrap-page.js b/src/main/resources/static/ajax/libs/bootstrap-table/page/bootstrap-page.js index 629e4682e..ad1030b77 100644 --- a/src/main/resources/static/ajax/libs/bootstrap-table/page/bootstrap-page.js +++ b/src/main/resources/static/ajax/libs/bootstrap-table/page/bootstrap-page.js @@ -3,25 +3,25 @@ // 初始化表格 function initTable(_columns, _url) { $('.bootstrap-table').bootstrapTable({ - method: 'GET', - dataType: "json", - contentType: 'application/x-www-form-urlencoded', - url: _url, - // search: true, // 是否显示搜索框功能 - striped: true, // 是否显示行间隔色 - pagination: true, // 是否分页 - showColumns: false, // 是否显示隐藏某列下拉框 - singleSelect: false, // 是否单选复选框 + method: 'get', // 请求方式(*) + dataType: "json", // 返回格式(*) + url: _url, // 请求后台的URL(*) + pagination: true, // 是否显示分页(*) + pageSize: 10, // 每页的记录行数(*) + pageNumber: 1, // 初始化加载第一页,默认第一页 + pageList: [10, 25, 50], // 可供选择的每页的行数(*) + search: true, // 是否显示搜索框功能 + singleSelect: false, // 是否禁止多选 iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮 toolbar: '#tableToolbar', // 指定工作栏 - pageSize: 10, // 每页显示10条记录 - pageNumber: 1, // 默认第1页 - pageList: [10, 25, 50], // 可供选择的每页的行数 - sidePagination: "server", // 启用服务端分页 + sidePagination: "server", // 启用服务端分页 + showRefresh: true, // 是否显示刷新按钮 + showColumns: true, // 是否显示隐藏某列下拉框 + showToggle: true, // 是否显示详细视图和列表视图的切换按钮 cache: false, // 是否使用缓存 queryParams: function(params) { return { - // 查询参数 + // 传递参数查询参数 limit: params.limit, offset: params.offset, search: params.search, @@ -41,6 +41,6 @@ function refresh() { // 获取选中数组 function getIdSelections(_id) { return $.map($('.bootstrap-table').bootstrapTable('getSelections'), function (row) { - return row[_id] + return row[_id]; }); } \ No newline at end of file diff --git a/src/main/resources/templates/monitor/online/online.html b/src/main/resources/templates/monitor/online/online.html index 20bbaa88e..bf0c45521 100644 --- a/src/main/resources/templates/monitor/online/online.html +++ b/src/main/resources/templates/monitor/online/online.html @@ -17,8 +17,7 @@ + data-sort-name="last_access_time" data-sort-order="desc">