From c57d6f675dc2676af716e783ce792f338d3384c5 Mon Sep 17 00:00:00 2001 From: xuliangtong <1124839262@qq.com> Date: Fri, 23 Sep 2022 21:51:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AE=9E=E6=93=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/sql/mysql/tianze-pro.sql | 14 ++ .../com/ibeetl/jlw/web/HandsOnController.java | 4 + .../ibeetl/jlw/web/query/HandsOnQuery.java | 89 ++++++++ .../resources/static/js/jlw/handsOn/add.js | 96 ++++++--- .../resources/static/js/jlw/handsOn/index.js | 56 +++--- .../resources/templates/jlw/handsOn/add.html | 190 +++++++++++++++--- .../templates/jlw/handsOn/index.html | 2 - 7 files changed, 370 insertions(+), 81 deletions(-) create mode 100644 web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java diff --git a/doc/sql/mysql/tianze-pro.sql b/doc/sql/mysql/tianze-pro.sql index 084cf998..9e28fd33 100644 --- a/doc/sql/mysql/tianze-pro.sql +++ b/doc/sql/mysql/tianze-pro.sql @@ -29507,3 +29507,17 @@ INSERT INTO `wrong_question` VALUES (141, 197, NULL, NULL, 10, NULL, NULL); INSERT INTO `wrong_question` VALUES (142, 197, NULL, NULL, 10, NULL, NULL); SET FOREIGN_KEY_CHECKS = 1; + + +-- ---------------------------- +-- Table structure for hands_on +-- ---------------------------- +DROP TABLE IF EXISTS `hands_on`; +CREATE TABLE `hands_on` ( + `hands_on_id` bigint NOT NULL COMMENT '实操主键', + `course_info_id` bigint NULL DEFAULT NULL COMMENT '归属课程', + `course_child_node` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL COMMENT '归属章节', + `hands_on_name` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL COMMENT '实操名称', + `hands_on_recommend` longtext CHARACTER SET utf8mb4 NULL COMMENT '实操介绍', + PRIMARY KEY (`hands_on_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '课程实操'; \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java index 95e1f5dc..c604eb34 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java @@ -133,8 +133,12 @@ public class HandsOnController{ if(null != handsOnId){ HandsOn handsOn = handsOnService.queryById(handsOnId); view.addObject("handsOn", handsOn); + view.addObject("courseInfoId", handsOn.getCourseInfoId()); + view.addObject("twoChildNode", handsOn.getCourseChildNode()); }else { view.addObject("handsOn", new HandsOn()); + view.addObject("courseInfoId", ""); + view.addObject("twoChildNode", ""); } return view; } diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java new file mode 100644 index 00000000..f2371eca --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java @@ -0,0 +1,89 @@ +package com.ibeetl.jlw.web.query; + +import cn.jlw.validate.ValidateConfig; +import com.ibeetl.jlw.entity.HandsOn; +import org.apache.commons.lang3.StringUtils; +import com.ibeetl.admin.core.annotation.Query; +import com.ibeetl.admin.core.util.Tool; +import com.ibeetl.admin.core.util.enums.CoreDictType; +import com.ibeetl.admin.core.web.query.PageParam; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +/** + *HandsOn查询 + */ +public class HandsOnQuery extends PageParam { + @NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class) + @Query(name = "实操主键", display = false) + private Long handsOnId; + @Query(name = "归属课程", display = false) + private Long courseInfoId; + @Query(name = "归属章节", display = false) + private String courseChildNode; + @Query(name = "实操名称", display = false) + private String handsOnName; + @Query(name = "实操介绍", display = false) + private String handsOnRecommend; + + + private String handsOnJsonStr;//json格式 + + private String _given;//指定更新的特定字段,多个逗号隔开 + + public Long getHandsOnId(){ + return handsOnId; + } + public void setHandsOnId(Long handsOnId ){ + this.handsOnId = handsOnId; + } + public Long getCourseInfoId(){ + return courseInfoId; + } + public void setCourseInfoId(Long courseInfoId ){ + this.courseInfoId = courseInfoId; + } + public String getCourseChildNode(){ + return courseChildNode; + } + public void setCourseChildNode(String courseChildNode ){ + this.courseChildNode = courseChildNode; + } + public String getHandsOnName(){ + return handsOnName; + } + public void setHandsOnName(String handsOnName ){ + this.handsOnName = handsOnName; + } + public String getHandsOnRecommend(){ + return handsOnRecommend; + } + public void setHandsOnRecommend(String handsOnRecommend ){ + this.handsOnRecommend = handsOnRecommend; + } + + public HandsOn pojo(){ + HandsOn pojo = new HandsOn(); + pojo.setHandsOnId(this.getHandsOnId()); + pojo.setCourseInfoId(this.getCourseInfoId()); + pojo.setCourseChildNode(this.getCourseChildNode()); + pojo.setHandsOnName(this.getHandsOnName()); + pojo.setHandsOnRecommend(this.getHandsOnRecommend()); + return pojo; + } + + public String getHandsOnJsonStr(){ + return handsOnJsonStr; + } + public void setHandsOnJsonStr(String handsOnJsonStr ){ + this.handsOnJsonStr = handsOnJsonStr; + } + public String get_given() { + return _given; + } + public void set_given(String _given) { + this._given = _given; + } +} diff --git a/web/src/main/resources/static/js/jlw/handsOn/add.js b/web/src/main/resources/static/js/jlw/handsOn/add.js index 3de8eaae..914b074a 100644 --- a/web/src/main/resources/static/js/jlw/handsOn/add.js +++ b/web/src/main/resources/static/js/jlw/handsOn/add.js @@ -1,38 +1,84 @@ -layui.define([ 'form', 'laydate', 'table','handsOnApi'], function(exports) { +layui.define(['form', 'laydate', 'table','upload','layedit', 'handsOnApi'], function (exports) { var form = layui.form; var handsOnApi = layui.handsOnApi; var index = layui.index; + var upload = layui.upload; + var layedit = layui.layedit; + // var editor3 = Lib.editorMd("test-editor"); + // editor3.setToolbarAutoFixed(false); + layedit.set({ //富文本上传图片 + uploadImage: { + url: Common.ctxPath + "/jlw/file/update.do", + imgUrl:Common.ctxPath + } + }); + var handsOnId = $("input[name='handsOnId']").val(); + if(!$.isEmpty(handsOnId)){ + var ret = Common.getAjax("/jlw/handsOn/view.json",{handsOnId:handsOnId}); + if(ret.code == 0){ + layedit.setContent(one,Lib.repLaceltgt(ret.data.applicationIntroduction),false); + }else { + layer.msg(ret.msg, { + offset: ['50%'], + icon: 2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + }); + } + } + var one = layedit.build('test-editor'); //建立编辑器 var view = { - init:function(){ - Lib.initGenrealForm($("#addForm"),form); + init: function () { + Lib.initGenrealForm($("#addForm"), form); this.initSubmit(); }, - initSubmit:function(){ - $("#addButton").click(function(){ - form.on('submit(form)', function(){ - var handsOnId = $("#addForm input[name='handsOnId']").val(); - if(!$.isEmpty(handsOnId)){ - handsOnApi.updateHandsOn($('#addForm'),function(){ - parent.window.dataReload(); - Common.info("更新成功"); - Lib.closeFrame(); - }); - }else{ - handsOnApi.addHandsOn($('#addForm'),function(){ - parent.window.dataReload(); - Common.info("添加成功"); - Lib.closeFrame(); - }); - } - + initSubmit: function () { + $("#addButton").click(function () { + //数据集 + var fileName = ""; //文件名 + var imgFile = ""; //文件路径 + $("#demoList tr").each(function (i) { + fileName += $(this).find("input[name='fileName']").val(); + imgFile += $(this).find("input[name='imgFile']").val(); + if (i < $("#demoList tr").length - 1) { + fileName += "?"; + imgFile += "?"; + } + }); + if (!$.isEmpty(fileName) && !$.isEmpty(imgFile)) { + $("#addForm input[name='files']").val(imgFile + "||" + fileName); //写入form表单 + } else { + $("#addForm input[name='files']").val(""); //写入form表单 + } + var param = $("#addForm").serializeJson(); + param.handsOnRecommend = layedit.getContent(one); + var handsOnId = $("#addForm input[name='handsOnId']").val(); + var url = "/jlw/handsOn/add.json"; + if (!$.isEmpty(handsOnId)) { + url = "/jlw/handsOn/edit.json"; + } + var ret = Common.postAjax(url,param); + layer.msg(ret.code == 0 ? "保存成功!" : ret.msg, { + offset: ['50%'], + icon: ret.code == 0 ? 1 : 2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + }, function () { + layer.closeAll("loading"); + if (ret.code == 0) { + parent.Lib.tableRefresh(); + Lib.closeFrame(); + } }); }); - - $("#addButton-cancel").click(function(){ + + $("#addButton-cancel").click(function () { Lib.closeFrame(); }); } - + } - exports('add',view); + //选择归属课程 并且根据选择的课程查询章节 + form.on('select(select_courseInfoIds)', function (obj) { + Lib.getCourseInfo($("select[name='courseChildNode']"), obj.value); + }); + exports('add', view); }); diff --git a/web/src/main/resources/static/js/jlw/handsOn/index.js b/web/src/main/resources/static/js/jlw/handsOn/index.js index c600eba3..dc495bc1 100644 --- a/web/src/main/resources/static/js/jlw/handsOn/index.js +++ b/web/src/main/resources/static/js/jlw/handsOn/index.js @@ -20,7 +20,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { handsOnTable = table.render({ elem : '#handsOnTable', height : Lib.getTableHeight(1), - cellMinWidth: 100, + cellMinWidth: 120, method : 'post', url : Common.ctxPath + '/jlw/handsOn/list.json' // 数据接口 ,page : Lib.tablePage // 开启分页 @@ -33,46 +33,56 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { }, { - field : 'handsOnId', - title : '实操主键', + field : 'handsOnName', + title : '项目名称', align:"center", hideField :false, - hide:$.isEmpty(sx_['handsOnId'])?false:sx_['handsOnId'], - - width : 60, + hide:$.isEmpty(sx_['handsOnName'])?false:sx_['handsOnName'], }, { field : 'courseInfoId', - title : '归属课程', + title : '观看视频平均得分', align:"center", hideField :false, hide:$.isEmpty(sx_['courseInfoId'])?false:sx_['courseInfoId'], }, { field : 'courseChildNode', - title : '归属章节', + title : '观看PPT平均得分', align:"center", hideField :false, hide:$.isEmpty(sx_['courseChildNode'])?false:sx_['courseChildNode'], }, { field : 'handsOnName', - title : '实操名称', + title : '理论测评平均得分', align:"center", hideField :false, hide:$.isEmpty(sx_['handsOnName'])?false:sx_['handsOnName'], }, { field : 'handsOnRecommend', - title : '实操介绍', + title : '实训操作步骤平均得分', align:"center", hideField :false, hide:$.isEmpty(sx_['handsOnRecommend'])?false:sx_['handsOnRecommend'], - } + }, + { + field : 'handsOnRecommend', + title : '报告撰写平均得分', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['handsOnRecommend'])?false:sx_['handsOnRecommend'], + } ,{ - field : 'operation_',title : '操作',align:"center", templet: function (d) { - var htm = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button>'; - htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>'; + field : 'operation_',title : '操作',align:"center",fixed: 'right',width: '500', templet: function (d) { + var htm = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">实操成绩</button>'; + htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">评阅</button>' + htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">编辑</button>' + htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>' + htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">绑定知识点</button>' + htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">查看内容</button>' + ; return htm; } } @@ -99,21 +109,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { toolbar = { add: function () { var url = "/jlw/handsOn/add.do"; - Common.openDlg(url,"HandsOn管理>新增"); - }, - edit: function () { - var data = Common.getOneFromTable(table,"handsOnTable"); - if(data==null){ - return ; - } - var url = "/jlw/handsOn/add.do?handsOnId="+data.handsOnId; - Common.openDlg(url,"HandsOn管理>"+data.handsOnId+">编辑"); - }, - del: function () { - layui.use(['del'], function(){ - var delView = layui.del - delView.delBatch(); - }); + Common.openDlg(url,"实操管理>添加实操管理"); }, search: function () { Lib.doSearchForm($("#searchForm"), handsOnTable, 1); @@ -135,7 +131,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { var data = obj.data; if (obj.event === 'edit') { var url = "/jlw/handsOn/add.do?handsOnId="+data.handsOnId; - Common.openDlg(url,"HandsOn管理>"+data.handsOnId+">编辑"); + Common.openDlg(url,"HandsOn管理>"+data.handsOnName+">编辑"); }else if(obj.event === "del"){ layer.confirm('是否确定删除该信息?', function (index) { var ret = Common.postAjax("/jlw/handsOn/delete.json",{ids:data.handsOnId}); diff --git a/web/src/main/resources/templates/jlw/handsOn/add.html b/web/src/main/resources/templates/jlw/handsOn/add.html index 32caa2f8..81e87ecb 100644 --- a/web/src/main/resources/templates/jlw/handsOn/add.html +++ b/web/src/main/resources/templates/jlw/handsOn/add.html @@ -1,45 +1,185 @@ <!--# layout("/common/layout.html",{"jsBase":"/js/jlw/handsOn/"}){ --> - +<link rel="stylesheet" type="text/css" href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all"/> +<link rel="stylesheet" href="${ctxPath}/plugins/editorMd/css/editormd.css"/> +<script src="${ctxPath}/plugins/editorMd/editormd.min.js"></script> +<link rel="stylesheet" href="${ctxPath}/plugins/highlight/styles/a11y-light.min.css" /> +<script type="text/javascript" src="${ctxPath}/plugins/highlight/highlight.min.js?v=${jsVer}"></script> +<style type="text/css"> + #answer{ + background-color: #f9f9f9; + padding: 0; + padding-left: 30px; + line-height:30px; + } + #answer li{ + list-style-type: decimal !important; + } + /* #answer li:hover,#answer li:hover input{ + background-color: #f9f9f9; + } */ + #answer li::marker { + color: #999999; + } + #answer ol{ + padding: 5px 0; + padding-left: 6px; + background-color: white; + } +</style> <form class="layui-form" id="addForm"> <div class="layui-row"> <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">归属课程</label> - <div class="layui-input-inline"> - <input type="text" id="courseInfoId" name="courseInfoId" value="${handsOn.courseInfoId}" class="layui-input" > - </div> + <label class="layui-form-label">归属课程:</label> + <div class="layui-input-block"> + <layui:simpleDictSelect style='layui-input-inline' value="${courseInfoId}" type="course_info.course_info_name.course_info_status=1,course_info_type=1,find_in_set(course_label_id,(select group_concat(course_label_id) from course_label where course_label_status = 1))" + id="courseInfoIds" name="courseInfoId" layFilter="select_courseInfoIds"/> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <label class="layui-form-label">归属章节:</label> + <div class="layui-input-block" style="width: 400px;"> + <!--#if(courseInfoId != null){--> + <layui:simpleDictSelect style='layui-input-inline' value="${twoChildNode}" type="course_info.course_info_name.course_info_status=1,course_info_type=2,course_info_parent_id=${courseInfoId}" + id="courseInfoId1" name="courseChildNode" layFilter="select_courseInfoIds_1"/> + <!--#}else{--> + <select name="courseInfoId_1" lay-filter="select_courseInfoIds_1"> + <option value="">请选择</option> + </select> + <!--#}--> </div> - <div class="layui-inline"> - <label class="layui-form-label">归属章节</label> - <div class="layui-input-inline"> - <input type="text" id="courseChildNode" name="courseChildNode" value="${handsOn.courseChildNode}" class="layui-input" > - </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <label class="layui-form-label">实操名称:</label> + <div class="layui-input-block"> + <input type="text" id="handsOnName" name="handsOnName" value="${handsOn.handsOnName}" class="layui-input" > </div> </div> </div> <div class="layui-row"> <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">实操名称</label> - <div class="layui-input-inline"> - <input type="text" id="handsOnName" name="handsOnName" value="${handsOn.handsOnName}" class="layui-input" > - </div> + <label class="layui-form-label">实操介绍:</label> + <div class="layui-input-block"> + <div> +<!-- <textarea style="display:none;"></textarea>--> + <textarea style="display:none;" id="test-editor">${handsOn.handsOnRecommend}</textarea> + </div> </div> - <div class="layui-inline"> - <label class="layui-form-label">实操介绍</label> - <div class="layui-input-inline"> - <input type="text" id="handsOnRecommend" name="handsOnRecommend" value="${handsOn.handsOnRecommend}" class="layui-input" > - </div> + </div> + </div> + + <div class="layui-row"> + <div class="layui-form-item"> + <label class="layui-form-label">数据集:</label> + <div class="layui-input-block"> + <!--(多个地址?+|| 逗号隔开)--> + <input name="files" type="hidden" + value="${handsOn.files}"/> + <div class="layui-upload"> + <div class="uploader-drop" ondragenter="jQuery(this).addClass('uploader-dragover');" + ondragend="jQuery(this).removeClass('uploader-dragover');" + ondrop="jQuery(this).removeClass('uploader-dragover');"> + <a class="uploader-browse-folder" style="display: none;"><u>select folder</u></a> + <a class="uploader-browse-image" style="display: none;"><u>select images</u></a> + <button type="button" class="layui-btn bg_button uploader-browse">选择文件</button> + <button type="button" class="layui-btn bg_button" style="display: none;" id="testListAction"> + 开始上传 + </button> + </div> + + <div class="layui-upload-list" style="max-width: 80%;min-width: 800px;"> + <table class="layui-table" id="updateFileList"> + <colgroup> + <col> + <col width="150"> + <col width="260"> + <col width="150"> + </colgroup> + <thead> + <tr> + <th style="text-align: center;">文件名</th> + <th style="text-align: center;">大小</th> + <th style="text-align: center;">上传进度</th> + <th style="text-align: center;">操作</th> + </tr> + </thead> + <tbody id="demoList"> + <!--#if(handsOn.files != null && handsOn.files != ''){--> + <!--# var files = splitString(handsOn.files,'\\|\\|'); //数据集--> + <!--# var fileUrl = splitString(files[0],'\\?'); //文件路径--> + <!--# var fileName = splitString(files[1],'\\?'); //文件名称 --> + <!--# var i = 0;for(item in fileUrl){ --> + <tr class="uploader-file"> + <td class="uploader-file-name">${fileName[i]}</td> + <td class="uploader-file-size" style="text-align: center;">-</td> + <td class="uploader-file-progress" style="text-align: center;"><span + style="color: #73a2f8;">完成</span></td> + <td style="text-align: center;"> + <span class="uploader-file-cancel" style="padding: 0 10px;"> + <img src="${ctxPath}/plugins/simple-uploader/public/cancel.png" title="Cancel upload"> + </span> + <input name="imgFile" type="hidden" title="文件路径" value="${item}"> + <input name="fileName" type="hidden" title="文件名字" value="${fileName[i]}"> + </td> + </tr> + <!--# i = i+ 1; } --> + <!--#}--> + </tbody> + </table> + </div> + </div> </div> </div> </div> <div class="layui-row"> - <!-- 业务对象得有一个字段保存附件id,假设是attachmentId --> - <layui:attachment name="attachmentId" batchFileUUID="${uuid()}" bizType="entity.name" isNew="true" /> + <input name="et3QuestionIds" type="hidden" /> + <label class="layui-form-label">实训任务:</label> + <div class="layui-row"> + <div class="layui-input-block"> + <table class="layui-table" style="width: 60%;min-width: 1000px;"> + <colgroup> + <col width="200"> + <col> + <col> + <col width="200"> + </colgroup> + <thead> + <tr> + <th>任务顺序</th> + <th>任务标题</th> + <th>任务类型</th> + <th>分值</th> + <th>操作</th> + </tr> + </thead> + <tbody> + <tr> + <td></td> + <td></td> + <td></td> + <td></td> + <td><a class="layui-btn layui-btn-sm bg_button bj">编辑</a> <a style="background-color: red" class="layui-btn layui-btn-sm sc">删除</a></td> + </tr> + <tr><td colspan="6" class="t_c">暂无实训任务...</td></tr> + <tr> + <td colspan="6" style="padding-left: 50px;"> + 合计:<span class="sxzf"></span> + </td> + </tr> + </tbody> + </table> + </div> + </div> </div> <!-- 业务对象须有hidden字段,保存delFlag和version字段--> <input type="hidden" name="handsOnId" value="${handsOn.handsOnId}" /> - <layui:submitButtons id="addButton" buttonType="" showExamine="2" /> + <div style="text-align: center"> + <layui:submitButtons id="addButton" buttonType="" showExamine="2" /> + + </div> </form> <!--#} --> <script> @@ -48,3 +188,5 @@ layui.use(['add'], function(){ handsOnAdd.init(); }); </script> +<script type="text/javascript" src="${ctxPath}/plugins/simple-uploader/public/uploader.js?v=${jsVer}"></script> +<script type="text/javascript" src="${ctxPath}/plugins/simple-uploader/public/app.js?v=${jsVer}"></script> \ No newline at end of file diff --git a/web/src/main/resources/templates/jlw/handsOn/index.html b/web/src/main/resources/templates/jlw/handsOn/index.html index 89974b93..d86957ec 100644 --- a/web/src/main/resources/templates/jlw/handsOn/index.html +++ b/web/src/main/resources/templates/jlw/handsOn/index.html @@ -11,8 +11,6 @@ <layui:accessButton function="handsOn.query" id="searchFormSearch" action="search"><i class="layui-icon"></i>搜索</layui:accessButton> <!--# }--> <layui:accessButton function="handsOn.add" action="add">添加</layui:accessButton> - <layui:accessButton function="handsOn.edit" action="edit">修改</layui:accessButton> - <layui:accessButton function="handsOn.del" action="del">删除</layui:accessButton> <!--# if(!isEmpty(search)) {--> <layui:accessButton function="handsOn.query" action="refresh"><i class="layui-icon"></i>刷新</layui:accessButton> <!--# }-->