From 04b1c074dd3409b2ecaeccaac5c15535d3b69563 Mon Sep 17 00:00:00 2001 From: wenjy Date: Wed, 9 Mar 2022 18:25:44 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E4=BC=A0=E6=84=9F=E5=99=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA=E5=8F=82=E6=95=B0=E9=98=88?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/BaseAlarmInfoController.java | 16 + .../base/BaseSensorInfoController.java | 13 +- .../toolbar/bootstrap-table-toolbar.js | 211 +++++++++++ .../toolbar/bootstrap-table-toolbar.min.js | 7 + .../main/resources/static/ruoyi/js/ry-ui.js | 36 ++ .../templates/base/sensorInfo/sensorInfo.html | 327 ++++++++++++------ .../src/main/resources/templates/include.html | 4 +- 7 files changed, 501 insertions(+), 113 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js create mode 100644 ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseAlarmInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseAlarmInfoController.java index 5478658..45d7fdd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseAlarmInfoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseAlarmInfoController.java @@ -22,6 +22,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import sun.management.Sensor; /** * 传感器报警信息Controller @@ -58,6 +59,21 @@ public class BaseAlarmInfoController extends BaseController return getDataTable(list); } + /** + * 查询传感器报警信息参数 + */ + @RequiresPermissions("base:alarmInfo:list") + @PostMapping("/getAlarmParams") + @ResponseBody + public TableDataInfo getAlarmParams(String sensorId) + { + startPage(); + BaseAlarmInfo baseAlarmInfo = new BaseAlarmInfo(); + baseAlarmInfo.setSensorId(sensorId); + List list = baseAlarmInfoService.selectBaseAlarmInfoList(baseAlarmInfo); + return getDataTable(list); + } + /** * 导出传感器报警信息列表 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseSensorInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseSensorInfoController.java index dd3eb07..6f5c6f5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseSensorInfoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/base/BaseSensorInfoController.java @@ -8,9 +8,11 @@ import com.alibaba.fastjson.JSONArray; import com.mysql.cj.xdevapi.JsonArray; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.system.domain.BaseAlarmInfo; +import com.ruoyi.system.domain.BaseAlarmType; import com.ruoyi.system.domain.dto.BaseAlarmInfoDto; import com.ruoyi.system.domain.dto.BaseSensorInfoDto; import com.ruoyi.system.service.IBaseAlarmInfoService; +import com.ruoyi.system.service.IBaseAlarmTypeService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -46,6 +48,9 @@ public class BaseSensorInfoController extends BaseController { @Autowired private IBaseAlarmInfoService baseAlarmInfoService; + @Autowired + private IBaseAlarmTypeService baseAlarmTypeService; + @RequiresPermissions("base:sensorInfo:view") @GetMapping() public String sensorInfo() { @@ -189,9 +194,13 @@ public class BaseSensorInfoController extends BaseController { @GetMapping("/getParamList") @ResponseBody public AjaxResult getParamList(){ + List baseAlarmTypes = baseAlarmTypeService.selectBaseAlarmTypeList(new BaseAlarmType()); List json = new ArrayList(); - json.add(new JsonRootBean("p-01","温度","A2001")); - json.add(new JsonRootBean("p-02","湿度","A2002")); + baseAlarmTypes.forEach(x->{ + if(x.getAlarmtypeId().length()>2){ + json.add(new JsonRootBean(x.getObjId().toString(),x.getAlarmtypeName(),x.getAlarmtypeId())); + } + }); AjaxResult ajax=new AjaxResult(); ajax.put("code", 200); ajax.put("value",json); diff --git a/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js new file mode 100644 index 0000000..c6dbae2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js @@ -0,0 +1,211 @@ +/** + * @author: aperez + * @version: v2.0.0 + * + * @update Dennis Hernández + */ + +!function($) { + 'use strict'; + + var firstLoad = false; + + var sprintf = $.fn.bootstrapTable.utils.sprintf; + + var showAvdSearch = function(pColumns, searchTitle, searchText, that) { + if (!$("#avdSearchModal" + "_" + that.options.idTable).hasClass("modal")) { + var vModal = sprintf("
", "_" + that.options.idTable); + vModal += "
"; + vModal += "
"; + vModal += "
"; + vModal += " "; + vModal += sprintf("

%s

", searchTitle); + vModal += "
"; + vModal += "
"; + vModal += sprintf("
", "_" + that.options.idTable); + vModal += "
"; + vModal += "
"; + vModal += "
"; + vModal += "
"; + vModal += "
"; + + $("body").append($(vModal)); + + var vFormAvd = createFormAvd(pColumns, searchText, that), + timeoutId = 0;; + + $('#avdSearchModalContent' + "_" + that.options.idTable).append(vFormAvd.join('')); + + $('#' + that.options.idForm).off('keyup blur', 'input').on('keyup blur', 'input', function (event) { + clearTimeout(timeoutId); + timeoutId = setTimeout(function () { + that.onColumnAdvancedSearch(event); + }, that.options.searchTimeOut); + }); + + $("#btnCloseAvd" + "_" + that.options.idTable).click(function() { + $("#avdSearchModal" + "_" + that.options.idTable).modal('hide'); + }); + + $("#avdSearchModal" + "_" + that.options.idTable).modal(); + } else { + $("#avdSearchModal" + "_" + that.options.idTable).modal(); + } + }; + + var createFormAvd = function(pColumns, searchText, that) { + var htmlForm = []; + htmlForm.push(sprintf('
', that.options.idForm, that.options.actionForm)); + for (var i in pColumns) { + var vObjCol = pColumns[i]; + if (!vObjCol.checkbox && vObjCol.visible && vObjCol.searchable) { + htmlForm.push('
'); + htmlForm.push(sprintf('', vObjCol.title)); + htmlForm.push('
'); + htmlForm.push(sprintf('', vObjCol.field, vObjCol.title, vObjCol.field)); + htmlForm.push('
'); + htmlForm.push('
'); + } + } + + htmlForm.push('
'); + htmlForm.push('
'); + htmlForm.push(sprintf('', "_" + that.options.idTable, searchText)); + htmlForm.push('
'); + htmlForm.push('
'); + htmlForm.push('
'); + + return htmlForm; + }; + + $.extend($.fn.bootstrapTable.defaults, { + advancedSearch: false, + idForm: 'advancedSearch', + actionForm: '', + idTable: undefined, + onColumnAdvancedSearch: function (field, text) { + return false; + } + }); + + $.extend($.fn.bootstrapTable.defaults.icons, { + advancedSearchIcon: 'glyphicon-chevron-down' + }); + + $.extend($.fn.bootstrapTable.Constructor.EVENTS, { + 'column-advanced-search.bs.table': 'onColumnAdvancedSearch' + }); + + $.extend($.fn.bootstrapTable.locales, { + formatAdvancedSearch: function() { + return 'Advanced search'; + }, + formatAdvancedCloseButton: function() { + return "Close"; + } + }); + + $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales); + + var BootstrapTable = $.fn.bootstrapTable.Constructor, + _initToolbar = BootstrapTable.prototype.initToolbar, + _load = BootstrapTable.prototype.load, + _initSearch = BootstrapTable.prototype.initSearch; + + BootstrapTable.prototype.initToolbar = function() { + _initToolbar.apply(this, Array.prototype.slice.apply(arguments)); + + if (!this.options.search) { + return; + } + + if (!this.options.advancedSearch) { + return; + } + + if (!this.options.idTable) { + return; + } + + var that = this, + html = []; + + html.push(sprintf('
', this.options.buttonsAlign, this.options.buttonsAlign)); + html.push(sprintf('
'); + + that.$toolbar.prepend(html.join('')); + + that.$toolbar.find('button[name="advancedSearch"]') + .off('click').on('click', function() { + showAvdSearch(that.columns, that.options.formatAdvancedSearch(), that.options.formatAdvancedCloseButton(), that); + }); + }; + + BootstrapTable.prototype.load = function(data) { + _load.apply(this, Array.prototype.slice.apply(arguments)); + + if (!this.options.advancedSearch) { + return; + } + + if (typeof this.options.idTable === 'undefined') { + return; + } else { + if (!firstLoad) { + var height = parseInt($(".bootstrap-table").height()); + height += 10; + $("#" + this.options.idTable).bootstrapTable("resetView", {height: height}); + firstLoad = true; + } + } + }; + + BootstrapTable.prototype.initSearch = function () { + _initSearch.apply(this, Array.prototype.slice.apply(arguments)); + + if (!this.options.advancedSearch) { + return; + } + + var that = this; + var fp = $.isEmptyObject(this.filterColumnsPartial) ? null : this.filterColumnsPartial; + + this.data = fp ? $.grep(this.data, function (item, i) { + for (var key in fp) { + var fval = fp[key].toLowerCase(); + var value = item[key]; + value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, + that.header.formatters[$.inArray(key, that.header.fields)], + [value, item, i], value); + + if (!($.inArray(key, that.header.fields) !== -1 && + (typeof value === 'string' || typeof value === 'number') && + (value + '').toLowerCase().indexOf(fval) !== -1)) { + return false; + } + } + return true; + }) : this.data; + }; + + BootstrapTable.prototype.onColumnAdvancedSearch = function (event) { + var text = $.trim($(event.currentTarget).val()); + var $field = $(event.currentTarget)[0].id; + + if ($.isEmptyObject(this.filterColumnsPartial)) { + this.filterColumnsPartial = {}; + } + if (text) { + this.filterColumnsPartial[$field] = text; + } else { + delete this.filterColumnsPartial[$field]; + } + + this.options.pageNumber = 1; + this.onSearch(event); + this.updatePagination(); + this.trigger('column-advanced-search', $field, text); + }; +}(jQuery); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js new file mode 100644 index 0000000..bffb3cb --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.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";var b=!1,c=a.fn.bootstrapTable.utils.sprintf,d=function(b,d,f,g){if(a("#avdSearchModal_"+g.options.idTable).hasClass("modal"))a("#avdSearchModal_"+g.options.idTable).modal();else{var h=c('",a("body").append(a(h));var i=e(b,f,g),j=0;a("#avdSearchModalContent_"+g.options.idTable).append(i.join("")),a("#"+g.options.idForm).off("keyup blur","input").on("keyup blur","input",function(a){clearTimeout(j),j=setTimeout(function(){g.onColumnAdvancedSearch(a)},g.options.searchTimeOut)}),a("#btnCloseAvd_"+g.options.idTable).click(function(){a("#avdSearchModal_"+g.options.idTable).modal("hide")}),a("#avdSearchModal_"+g.options.idTable).modal()}},e=function(a,b,d){var e=[];e.push(c('
',d.options.idForm,d.options.actionForm));for(var f in a){var g=a[f];!g.checkbox&&g.visible&&g.searchable&&(e.push('
'),e.push(c('',g.title)),e.push('
'),e.push(c('',g.field,g.title,g.field)),e.push("
"),e.push("
"))}return e.push('
'),e.push('
'),e.push(c('',"_"+d.options.idTable,b)),e.push("
"),e.push("
"),e.push("
"),e};a.extend(a.fn.bootstrapTable.defaults,{advancedSearch:!1,idForm:"advancedSearch",actionForm:"",idTable:void 0,onColumnAdvancedSearch:function(){return!1}}),a.extend(a.fn.bootstrapTable.defaults.icons,{advancedSearchIcon:"glyphicon-chevron-down"}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-advanced-search.bs.table":"onColumnAdvancedSearch"}),a.extend(a.fn.bootstrapTable.locales,{formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var f=a.fn.bootstrapTable.Constructor,g=f.prototype.initToolbar,h=f.prototype.load,i=f.prototype.initSearch;f.prototype.initToolbar=function(){if(g.apply(this,Array.prototype.slice.apply(arguments)),this.options.search&&this.options.advancedSearch&&this.options.idTable){var a=this,b=[];b.push(c('
',this.options.buttonsAlign,this.options.buttonsAlign)),b.push(c('
"),a.$toolbar.prepend(b.join("")),a.$toolbar.find('button[name="advancedSearch"]').off("click").on("click",function(){d(a.columns,a.options.formatAdvancedSearch(),a.options.formatAdvancedCloseButton(),a)})}},f.prototype.load=function(){if(h.apply(this,Array.prototype.slice.apply(arguments)),this.options.advancedSearch&&"undefined"!=typeof this.options.idTable&&!b){var c=parseInt(a(".bootstrap-table").height());c+=10,a("#"+this.options.idTable).bootstrapTable("resetView",{height:c}),b=!0}},f.prototype.initSearch=function(){if(i.apply(this,Array.prototype.slice.apply(arguments)),this.options.advancedSearch){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=c[f].toLowerCase(),h=d[f];if(h=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[h,d,e],h),-1===a.inArray(f,b.header.fields)||"string"!=typeof h&&"number"!=typeof h||-1===(h+"").toLowerCase().indexOf(g))return!1}return!0}):this.data}},f.prototype.onColumnAdvancedSearch=function(b){var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget)[0].id;a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.options.pageNumber=1,this.onSearch(b),this.updatePagination(),this.trigger("column-advanced-search",d,c)}}(jQuery); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js index eda1e75..4576fae 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js @@ -1192,6 +1192,42 @@ var table = { } return url; }, + + // 修改参数 + editParam: function(id) { + table.set(); + $.modal.open("设置" + table.options.modalName, $.operate.editParamUrl(id)); + }, + // 修改参数访问地址 + editParamUrl: function(id) { + var url = "/404.html"; + if ($.common.isNotEmpty(id)) { + url = table.options.editParamUrl.replace("{id}", id); + } else { + var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); + if (id.length == 0) { + $.modal.alertWarning("请至少选择一条记录"); + return; + } + url = table.options.editParamUrl.replace("{id}", id); + } + return url; + }, + + // 删除参数 + removeParam: function(id) { + table.set(); + $.modal.confirm("确定删除该条" + table.options.modalName + "信息吗?", function() { + var url = $.common.isEmpty(id) ? table.options.removeParamUrl : table.options.removeParamUrl.replace("{id}", id); + if(table.options.type == table_type.bootstrapTreeTable) { + $.operate.get(url); + } else { + var data = { "ids": id }; + $.operate.submit(url, "post", "json", data); + } + }); + }, + // 保存信息 刷新表格 save: function(url, data, callback) { var config = { diff --git a/ruoyi-admin/src/main/resources/templates/base/sensorInfo/sensorInfo.html b/ruoyi-admin/src/main/resources/templates/base/sensorInfo/sensorInfo.html index b1693d7..6f90b7a 100644 --- a/ruoyi-admin/src/main/resources/templates/base/sensorInfo/sensorInfo.html +++ b/ruoyi-admin/src/main/resources/templates/base/sensorInfo/sensorInfo.html @@ -1,9 +1,9 @@ - - - + + +
@@ -13,10 +13,14 @@ 监控单元
- - - - + + + +
@@ -26,7 +30,7 @@
-
+
@@ -50,12 +54,15 @@
  • -  搜索 -  重置 +  搜索 +  重置
  • @@ -66,10 +73,12 @@ 添加 - + 修改 - + 删除 @@ -80,59 +89,79 @@
    -
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    - - - - + function onClickRow(row, $element) { + initTable(row.sensorId); + } + + // 根据选中行查询关联文件 + function initTable(id) { + //先销毁表格,必须先销毁才能实现动态加载数据 + $('#bootstrap-table1').bootstrapTable('destroy'); + $('#bootstrap-table1').bootstrapTable({ + method: "post", //向服务器请求数据的方式 + url: "/base/alarmInfo/getAlarmParams?sensorId=" + id, + deleteUrl: "/base/alarmInfo/delete", + striped: true, //表格显示条纹 + pagination: false, //不启动分页 + pageSize: 1, //每页显示的记录数 + pageNumber: 1, //当前第几页 + pageList: [5, 10, 15, 20, 25], //记录数可选列表 + striped: true, //显示行间隔色 + // search: true, //启用查询 + // showColumns: true, //显示下拉框勾选要显示的列 + // showRefresh: true, //显示刷新按钮 + // showToggle:true, //显示切换视图模式按钮 + sortOrder: "asc", //排序方式 + sidePagination: "server", //分页方式:client客户端分页,server服务端分页 + //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder + //设置为limit可以获取limit, offset, search, sort, order + queryParamsType: "undefined", + columns: [ + { + title: '序号', + formatter: function (value, row, index) { + // 显示行号 + let options = $('#bootstrap-table1').bootstrapTable('getOptions'); + return options.pageSize * (options.pageNumber - 1) + index + 1; + } + }, + { + field: 'sensorName', + title: '传感器' + }, + { + field: 'alarmTypeName', + title: '报警类型' + }, + { + field: 'maxValue', + title: '阈值(最大)', + align:'center' + }, + { + field: 'minValue', + title: '阈值(最小)' + }, + { + field: 'enableFlag', + title: '是否启用', + formatter: function(value, row, index) { + return $.table.selectDictLabel(enableFlagDatas, value); + } + },{ + title: '操作', + align: 'center', + formatter: function(value, row, index) { + let actions = []; + actions.push('编辑 '); + actions.push('删除'); + return actions.join(''); + } + } + ], + onLoadSuccess: function () { //加载成功时执行 + //layer.msg("加载成功"); + }, + onLoadError: function () { //加载失败时执行 + layer.msg("加载数据失败", {time: 1500, icon: 2}); + } + }); + } + + - + + +