diff --git a/doc/sql/mysql/tianze-pro-update.sql b/doc/sql/mysql/tianze-pro-update.sql index 3d9b7082..a75b68cb 100644 --- a/doc/sql/mysql/tianze-pro-update.sql +++ b/doc/sql/mysql/tianze-pro-update.sql @@ -35,3 +35,14 @@ CREATE TABLE `sys_log_text` ( PRIMARY KEY (`id`) USING BTREE, INDEX `sys_id`(`sys_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + + +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/dao/HandsOnDao.java b/web/src/main/java/com/ibeetl/jlw/dao/HandsOnDao.java new file mode 100644 index 00000000..78cdb5b4 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/dao/HandsOnDao.java @@ -0,0 +1,27 @@ +package com.ibeetl.jlw.dao; + +import java.util.List; +import java.util.Map; + +import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.web.query.HandsOnQuery; + +import org.beetl.sql.mapper.annotation.SqlResource; +import org.beetl.sql.mapper.BaseMapper; +import org.beetl.sql.core.engine.PageQuery; +import org.beetl.sql.mapper.annotation.Update; + +/** + * HandsOn Dao + */ +@SqlResource("jlw.handsOn") +public interface HandsOnDao extends BaseMapper{ + PageQuery queryByCondition(PageQuery query); + PageQuery queryByConditionQuery(PageQuery query); + @Update + void deleteHandsOnByIds(String ids); + @Update + int updateGivenByIds(HandsOnQuery handsOnQuery); + List getByIds(String ids); + List getValuesByQuery(HandsOnQuery handsOnQuery); +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/HandsOn.java b/web/src/main/java/com/ibeetl/jlw/entity/HandsOn.java new file mode 100644 index 00000000..272fc2d7 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/HandsOn.java @@ -0,0 +1,113 @@ +package com.ibeetl.jlw.entity; + +import javax.validation.constraints.NotNull; + +import com.ibeetl.admin.core.entity.BaseEntity; +import org.beetl.sql.annotation.entity.*; + +import com.ibeetl.admin.core.util.ValidateConfig; + +import com.ibeetl.admin.core.annotation.Dict; + +import java.math.BigDecimal; +import java.util.Date; + +/* +* 课程实操 +* gen by Spring Boot2 Admin 2022-09-22 +*/ +public class HandsOn extends BaseEntity{ + + //实操主键 + @NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class) + // @SeqID(name = ORACLE_CORE_SEQ_NAME) + @AssignID(value = "maskAutoID",param = "com.ibeetl.jlw.entity.HandsOn") + + private Long handsOnId ; + + //归属课程 + + private Long courseInfoId ; + + //归属章节 + + private String courseChildNode ; + + //实操名称 + + private String handsOnName ; + + //实操介绍 + + private String handsOnRecommend ; + + public HandsOn(){ + } + + /**实操主键 + *@return + */ + public Long getHandsOnId(){ + return handsOnId; + } + /**实操主键 + *@param handsOnId + */ + public void setHandsOnId(Long handsOnId){ + this.handsOnId = handsOnId; + } + + /**归属课程 + *@return + */ + public Long getCourseInfoId(){ + return courseInfoId; + } + /**归属课程 + *@param courseInfoId + */ + public void setCourseInfoId(Long courseInfoId){ + this.courseInfoId = courseInfoId; + } + + /**归属章节 + *@return + */ + public String getCourseChildNode(){ + return courseChildNode; + } + /**归属章节 + *@param courseChildNode + */ + public void setCourseChildNode(String courseChildNode){ + this.courseChildNode = courseChildNode; + } + + /**实操名称 + *@return + */ + public String getHandsOnName(){ + return handsOnName; + } + /**实操名称 + *@param handsOnName + */ + public void setHandsOnName(String handsOnName){ + this.handsOnName = handsOnName; + } + + /**实操介绍 + *@return + */ + public String getHandsOnRecommend(){ + return handsOnRecommend; + } + /**实操介绍 + *@param handsOnRecommend + */ + public void setHandsOnRecommend(String handsOnRecommend){ + this.handsOnRecommend = handsOnRecommend; + } + + +} diff --git a/web/src/main/java/com/ibeetl/jlw/service/HandsOnService.java b/web/src/main/java/com/ibeetl/jlw/service/HandsOnService.java new file mode 100644 index 00000000..46647b6e --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/service/HandsOnService.java @@ -0,0 +1,161 @@ +package com.ibeetl.jlw.service; + +import java.io.*; +import java.text.DateFormat; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.math.BigDecimal; + +import cn.jlw.util.ToolUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.util.TimeTool; +import com.ibeetl.admin.core.web.JsonResult; +import com.ibeetl.admin.core.web.JsonReturnCode; +import com.ibeetl.jlw.dao.HandsOnDao; +import com.ibeetl.jlw.entity.HandsOn; +import com.ibeetl.jlw.web.query.HandsOnQuery; +import com.ibeetl.jlw.entity.FileEntity; + +import com.ibeetl.admin.core.service.CoreBaseService; +import com.ibeetl.admin.core.util.PlatformException; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.beetl.sql.core.engine.PageQuery; +import org.beetl.sql.core.SqlId; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * HandsOn Service + * 当分布式ID开启后请勿使用insert(*,true) + */ + +@Service +@Transactional +public class HandsOnService extends CoreBaseService{ + + @Resource private HandsOnDao handsOnDao; + + public PageQueryqueryByCondition(PageQuery query){ + PageQuery ret = handsOnDao.queryByCondition(query); + queryListAfter(ret.getList()); + return ret; + } + + public PageQueryqueryByConditionQuery(PageQuery query){ + PageQuery ret = handsOnDao.queryByConditionQuery(query); + queryListAfter(ret.getList()); + return ret; + } + + public void deleteByList(List list){ + String ids = ""; + ToolUtils.deleteNullList(list); + for(int i=0;null != list && i handsOnList = new ArrayList<>(); + try { + handsOnList = JSON.parseArray(handsOnQuery.getHandsOnJsonStr(), HandsOn.class); + } catch (Exception e) { + try { + handsOnList.add(JSONObject.parseObject(handsOnQuery.getHandsOnJsonStr(), HandsOn.class)); + } catch (Exception e1) {} + } + ToolUtils.deleteNullList(handsOnList); + if(null != handsOnList && handsOnList.size()>0){ + for(int i=0;i 0; + if(!flag){ + msg = "更新指定参数失败"; + } + }else{ + msg = "指定参数为空"; + } + return msg; + } + + public List getValues (Object paras){ + return sqlManager.select(SqlId.of("jlw.handsOn.getHandsOnValues"), HandsOn.class, paras); + } + + public List getValuesByQuery (HandsOnQuery handsOnQuery){ + return handsOnDao.getValuesByQuery(handsOnQuery); + } + + public HandsOn getInfo (Long handsOnId){ + HandsOnQuery handsOnQuery = new HandsOnQuery(); + handsOnQuery.setHandsOnId(handsOnId); + List list = handsOnDao.getValuesByQuery(handsOnQuery); + if(null != list && list.size()>0){ + return list.get(0); + }else{ + return null; + } + } + + public HandsOn getInfo (HandsOnQuery handsOnQuery){ + List list = handsOnDao.getValuesByQuery(handsOnQuery); + if(null != list && list.size()>0){ + return list.get(0); + }else{ + return null; + } + } + +} diff --git a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java new file mode 100644 index 00000000..95e1f5dc --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java @@ -0,0 +1,217 @@ +package com.ibeetl.jlw.web; + +import cn.jlw.Interceptor.RFile; +import cn.jlw.Interceptor.SCoreUser; +import cn.jlw.Interceptor.getFile; +import cn.jlw.util.ToolUtils; +import cn.jlw.validate.ValidateConfig; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.file.FileService; +import com.ibeetl.admin.core.util.ConvertUtil; +import com.ibeetl.admin.core.util.PlatformException; +import com.ibeetl.admin.core.util.TimeTool; +import com.ibeetl.admin.core.web.JsonResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.beetl.sql.core.engine.PageQuery; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; + +import com.ibeetl.admin.console.web.dto.DictExcelImportData; +import com.ibeetl.admin.console.web.query.UserQuery; +import com.ibeetl.admin.core.annotation.Function; +import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.service.*; +import com.ibeetl.jlw.web.query.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.math.BigDecimal; + +import javax.annotation.Resource; + +/** + * HandsOn 课程实操 接口 + * 切记不要对非线程安全的静态变量进行写操作 + */ + +@RestController +public class HandsOnController{ + + private final Log log = LogFactory.getLog(this.getClass()); + private static final String MODEL = "/jlw/handsOn"; + private static final String API = "/api/handsOn"; + + + @Resource private HandsOnService handsOnService; + + @Resource FileService fileService; + + /* 前端接口 */ + + @PostMapping(API + "/getPageList.do") + public JsonResult getPageList(HandsOnQuery condition,@SCoreUser CoreUser coreUser){ + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + PageQuery page = condition.getPageQuery(); + handsOnService.queryByConditionQuery(page); + return JsonResult.success(page); + } + } + + + @GetMapping(API + "/getInfo.do") + public JsonResultgetInfo(HandsOnQuery param,@SCoreUser CoreUser coreUser) { + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + HandsOn handsOn = handsOnService.getInfo(param); + return JsonResult.success(handsOn); + } + } + + + @GetMapping(API + "/getList.do") + public JsonResult>getList(HandsOnQuery param,@SCoreUser CoreUser coreUser) { + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + Listlist = handsOnService.getValuesByQuery(param); + return JsonResult.success(list); + } + } + + + /* 后台页面 */ + + @GetMapping(MODEL + "/index.do") + @Function("handsOn.query") + public ModelAndView index() { + ModelAndView view = new ModelAndView("/jlw/handsOn/index.html") ; + view.addObject("search", HandsOnQuery.class.getName()); + return view; + } + + @GetMapping(MODEL + "/edit.do") + @Function("handsOn.edit") + public ModelAndView edit(Long handsOnId) { + ModelAndView view = new ModelAndView("/jlw/handsOn/edit.html"); + HandsOn handsOn = handsOnService.queryById(handsOnId); + view.addObject("handsOn", handsOn); + return view; + } + + @GetMapping(MODEL + "/add.do") + @Function("handsOn.add") + public ModelAndView add(Long handsOnId) { + ModelAndView view = new ModelAndView("/jlw/handsOn/add.html"); + if(null != handsOnId){ + HandsOn handsOn = handsOnService.queryById(handsOnId); + view.addObject("handsOn", handsOn); + }else { + view.addObject("handsOn", new HandsOn()); + } + return view; + } + + /* 后台接口 */ + + @PostMapping(MODEL + "/list.json") + @Function("handsOn.query") + public JsonResult list(HandsOnQuery condition){ + PageQuery page = condition.getPageQuery(); + handsOnService.queryByCondition(page); + return JsonResult.success(page); + } + + @PostMapping(MODEL + "/addAll.json") + @Function("handsOn.add") + public JsonResult addAll(HandsOnQuery handsOnQuery,@SCoreUser CoreUser coreUser){ + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + String msg = handsOnService.addAll(handsOnQuery); + if (StringUtils.isBlank(msg)) { + return JsonResult.success(); + } else { + return JsonResult.failMessage("新增失败,"+msg); + } + } + } + + @PostMapping(MODEL + "/add.json") + @Function("handsOn.add") + public JsonResult add(@Validated(ValidateConfig.ADD.class) HandsOnQuery handsOnQuery, BindingResult result,@SCoreUser CoreUser coreUser){ + if(result.hasErrors()){ + return JsonResult.failMessage(result); + }else{ + return handsOnService.add(handsOnQuery); + } + } + + @PostMapping(MODEL + "/edit.json") + @Function("handsOn.edit") + public JsonResult update(@Validated(ValidateConfig.UPDATE.class) HandsOnQuery handsOnQuery, BindingResult result) { + if(result.hasErrors()){ + return JsonResult.failMessage(result); + }else { + String msg = handsOnService.edit(handsOnQuery); + if (StringUtils.isBlank(msg)) { + return JsonResult.success(); + } else { + return JsonResult.failMessage("更新失败,"+msg); + } + } + } + + + @GetMapping(MODEL + "/view.json") + @Function("handsOn.query") + public JsonResultqueryInfo(Long handsOnId) { + HandsOn handsOn = handsOnService.queryById( handsOnId); + return JsonResult.success(handsOn); + } + + @GetMapping(MODEL + "/getValues.json") + @Function("handsOn.query") + public JsonResult>getValues(HandsOnQuery param) { + Listlist = handsOnService.getValuesByQuery(param); + return JsonResult.success(list); + } + + + @PostMapping(MODEL + "/delete.json") + @Function("handsOn.delete") + @ResponseBody + public JsonResult delete(String ids) { + handsOnService.deleteHandsOn(ids); + return JsonResult.success(); + } + + +} diff --git a/web/src/main/resources/sql/jlw/handsOn.md b/web/src/main/resources/sql/jlw/handsOn.md new file mode 100644 index 00000000..e326c97e --- /dev/null +++ b/web/src/main/resources/sql/jlw/handsOn.md @@ -0,0 +1,164 @@ +queryByCondition +=== +* 根据不为空的参数进行分页查询 + + select + @pageTag(){ + t.* + @} + from hands_on t + where 1=1 + @//数据权限,该sql语句功能点,如果不考虑数据权限,可以删除此行 + and #function("handsOn.query")# + @if(!isEmpty(handsOnId)){ + and t.hands_on_id =#handsOnId# + @} + @if(!isEmpty(courseInfoId)){ + and t.course_info_id =#courseInfoId# + @} + @if(!isEmpty(courseChildNode)){ + and t.course_child_node =#courseChildNode# + @} + @if(!isEmpty(handsOnName)){ + and t.hands_on_name =#handsOnName# + @} + @if(!isEmpty(handsOnRecommend)){ + and t.hands_on_recommend =#handsOnRecommend# + @} + + +queryByConditionQuery +=== +* 根据不为空的参数进行分页查询(无权限) + + select + @pageTag(){ + t.* + @} + from hands_on t + where 1=1 + @if(!isEmpty(handsOnId)){ + and t.hands_on_id =#handsOnId# + @} + @if(!isEmpty(courseInfoId)){ + and t.course_info_id =#courseInfoId# + @} + @if(!isEmpty(courseChildNode)){ + and t.course_child_node =#courseChildNode# + @} + @if(!isEmpty(handsOnName)){ + and t.hands_on_name =#handsOnName# + @} + @if(!isEmpty(handsOnRecommend)){ + and t.hands_on_recommend =#handsOnRecommend# + @} + + + + +deleteHandsOnByIds +=== + +* 批量删除 + + delete from hands_on where find_in_set(hands_on_id,#ids#) + + + +getByIds +=== + +select * from hands_on where find_in_set(hands_on_id,#ids#) + + +updateGivenByIds +=== + +* 批量更新指定字段,无论此字段是否有值 + + update hands_on + set + @if(contain("courseInfoId",_given)){ + @if(isEmpty(courseInfoId)){ + course_info_id = null , + @}else{ + course_info_id = #courseInfoId# , + @} + @} + @if(contain("courseChildNode",_given)){ + @if(isEmpty(courseChildNode)){ + course_child_node = null , + @}else{ + course_child_node = #courseChildNode# , + @} + @} + @if(contain("handsOnName",_given)){ + @if(isEmpty(handsOnName)){ + hands_on_name = null , + @}else{ + hands_on_name = #handsOnName# , + @} + @} + @if(contain("handsOnRecommend",_given)){ + @if(isEmpty(handsOnRecommend)){ + hands_on_recommend = null , + @}else{ + hands_on_recommend = #handsOnRecommend# , + @} + @} + hands_on_id = hands_on_id + where find_in_set(hands_on_id,#handsOnIdPlural#) + + + +getHandsOnValues +=== + +* 根据不为空的参数进行查询 + + select t.* + from hands_on t + where 1=1 + @if(!isEmpty(handsOnId)){ + and t.hands_on_id =#handsOnId# + @} + @if(!isEmpty(courseInfoId)){ + and t.course_info_id =#courseInfoId# + @} + @if(!isEmpty(courseChildNode)){ + and t.course_child_node =#courseChildNode# + @} + @if(!isEmpty(handsOnName)){ + and t.hands_on_name =#handsOnName# + @} + @if(!isEmpty(handsOnRecommend)){ + and t.hands_on_recommend =#handsOnRecommend# + @} + + +getValuesByQuery +=== + +* 根据不为空的参数进行查询 + + select t.* + from hands_on t + where 1=1 and #function("handsOn.query")# + @if(!isEmpty(handsOnId)){ + and t.hands_on_id =#handsOnId# + @} + @if(!isEmpty(courseInfoId)){ + and t.course_info_id =#courseInfoId# + @} + @if(!isEmpty(courseChildNode)){ + and t.course_child_node =#courseChildNode# + @} + @if(!isEmpty(handsOnName)){ + and t.hands_on_name =#handsOnName# + @} + @if(!isEmpty(handsOnRecommend)){ + and t.hands_on_recommend =#handsOnRecommend# + @} + + + diff --git a/web/src/main/resources/static/js/jlw/handsOn/add.js b/web/src/main/resources/static/js/jlw/handsOn/add.js new file mode 100644 index 00000000..3de8eaae --- /dev/null +++ b/web/src/main/resources/static/js/jlw/handsOn/add.js @@ -0,0 +1,38 @@ +layui.define([ 'form', 'laydate', 'table','handsOnApi'], function(exports) { + var form = layui.form; + var handsOnApi = layui.handsOnApi; + var index = layui.index; + var view = { + 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(); + }); + } + + }); + }); + + $("#addButton-cancel").click(function(){ + Lib.closeFrame(); + }); + } + + } + exports('add',view); +}); diff --git a/web/src/main/resources/static/js/jlw/handsOn/del.js b/web/src/main/resources/static/js/jlw/handsOn/del.js new file mode 100644 index 00000000..d84c5f4d --- /dev/null +++ b/web/src/main/resources/static/js/jlw/handsOn/del.js @@ -0,0 +1,23 @@ +layui.define(['table', 'handsOnApi'], function(exports) { + var handsOnApi = layui.handsOnApi; + var table=layui.table; + var view = { + init:function(){ + }, + delBatch:function(){ + var data = Common.getMoreDataFromTable(table,"handsOnTable"); + if(data==null){ + return ; + } + Common.openConfirm("确认要删除这些HandsOn?",function(){ + var ids =Common.concatBatchId(data,"handsOnId"); + handsOnApi.del(ids,function(){ + Common.info("删除成功"); + dataReload(); + }) + }) + } + } + exports('del',view); + +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/handsOn/edit.js b/web/src/main/resources/static/js/jlw/handsOn/edit.js new file mode 100644 index 00000000..6d90106b --- /dev/null +++ b/web/src/main/resources/static/js/jlw/handsOn/edit.js @@ -0,0 +1,28 @@ +layui.define([ 'form', 'laydate', 'table','handsOnApi'], function(exports) { + var form = layui.form; + var handsOnApi = layui.handsOnApi; + var index = layui.index; + var view = { + init:function(){ + Lib.initGenrealForm($("#updateForm"),form); + this.initSubmit(); + }, + initSubmit:function(){ + $("#updateButton").click(function(){ + form.on('submit(form)', function(){ + handsOnApi.updateHandsOn($('#updateForm'),function(){ + parent.window.dataReload(); + Common.info("更新成功"); + Lib.closeFrame(); + }); + }); + }); + $("#updateButton-cancel").click(function(){ + Lib.closeFrame(); + }); + } + + } + exports('edit',view); + +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/handsOn/handsOnApi.js b/web/src/main/resources/static/js/jlw/handsOn/handsOnApi.js new file mode 100644 index 00000000..2c27a4f1 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/handsOn/handsOnApi.js @@ -0,0 +1,18 @@ +/*访问后台的代码*/ +layui.define([], function(exports) { + var api={ + updateHandsOn:function(form,callback){ + Lib.submitForm("/jlw/handsOn/edit.json",form,{},callback) + }, + addHandsOn:function(form,callback){ + Lib.submitForm("/jlw/handsOn/add.json",form,{},callback) + }, + del:function(ids,callback){ + Common.post("/jlw/handsOn/delete.json",{"ids":ids},function(){ + callback(); + }) + } + + }; + exports('handsOnApi',api); +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/handsOn/index.js b/web/src/main/resources/static/js/jlw/handsOn/index.js new file mode 100644 index 00000000..c600eba3 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/handsOn/index.js @@ -0,0 +1,157 @@ +layui.define([ 'form', 'laydate', 'table' ], function(exports) { + var form = layui.form; + var laydate = layui.laydate; + var table = layui.table; + var handsOnTable = null; + var view ={ + init:function(){ + var that = this + this.initTable(); + this.initSearchForm(); + this.initToolBar(); + window.dataReload = function(){ + Lib.doSearchForm($("#searchForm"),handsOnTable) + that.initToolBar(); + } + }, + initTable:function(){ + var sx_ = localStorage.getItem("handsOnTable_field_"+Common.userInfoId); //筛选值显示、隐藏缓存 + if($.isEmpty(sx_)){sx_ = {};}else {sx_ = JSON.parse(sx_);} + handsOnTable = table.render({ + elem : '#handsOnTable', + height : Lib.getTableHeight(1), + cellMinWidth: 100, + method : 'post', + url : Common.ctxPath + '/jlw/handsOn/list.json' // 数据接口 + ,page : Lib.tablePage // 开启分页 + ,toolbar: '#toolbar_handsOn' //自定义头部左侧工具栏 + ,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏 + ,limit : 10, + cols : [ [ // 表头 + { + type : 'checkbox', + + }, + { + field : 'handsOnId', + title : '实操主键', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['handsOnId'])?false:sx_['handsOnId'], + + width : 60, + }, + { + field : 'courseInfoId', + title : '归属课程', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['courseInfoId'])?false:sx_['courseInfoId'], + }, + { + field : 'courseChildNode', + title : '归属章节', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['courseChildNode'])?false:sx_['courseChildNode'], + }, + { + field : 'handsOnName', + title : '实操名称', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['handsOnName'])?false:sx_['handsOnName'], + }, + { + field : 'handsOnRecommend', + title : '实操介绍', + align:"center", + hideField :false, + hide:$.isEmpty(sx_['handsOnRecommend'])?false:sx_['handsOnRecommend'], + } + ,{ + field : 'operation_',title : '操作',align:"center", templet: function (d) { + var htm = ''; + htm += ''; + return htm; + } + } + + ] ] + + }); + + table.on('checkbox(handsOnTable)', function(obj){ + var handsOn = obj.data; + if(obj.checked){ + //按钮逻辑Lib.buttonEnable() + }else{ + + } + }) + }, + + initSearchForm:function(){ + Lib.initSearchForm( $("#searchForm"),handsOnTable,form); + }, + + initToolBar:function(){ + 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(); + }); + }, + search: function () { + Lib.doSearchForm($("#searchForm"), handsOnTable, 1); + view.initToolBar() + }, + refresh: function () { + searchForm.reset(); + Lib.doSearchForm($("#searchForm"), handsOnTable, 1); + view.initToolBar() + }, + } + //触发事件 + $('.ext-toolbar').on('click', function() { + var type = $(this).data('type'); + toolbar[type] ? toolbar[type].call(this) : ''; + }); + + }, initTableTool: table.on('tool(handsOnTable)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + var url = "/jlw/handsOn/add.do?handsOnId="+data.handsOnId; + Common.openDlg(url,"HandsOn管理>"+data.handsOnId+">编辑"); + }else if(obj.event === "del"){ + layer.confirm('是否确定删除该信息?', function (index) { + var ret = Common.postAjax("/jlw/handsOn/delete.json",{ids:data.handsOnId}); + layer.msg(ret.code == 0?"删除成功!":ret.msg, { + offset: ['50%'], + icon: ret.code == 0?1:2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + },function (){ + if(ret.code == 0){ + Lib.tableRefresh(); + } + }); + }); + } + }) + } + exports('index',view); + +}); diff --git a/web/src/main/resources/templates/jlw/handsOn/add.html b/web/src/main/resources/templates/jlw/handsOn/add.html new file mode 100644 index 00000000..32caa2f8 --- /dev/null +++ b/web/src/main/resources/templates/jlw/handsOn/add.html @@ -0,0 +1,50 @@ + + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ + +
+ + + + + + diff --git a/web/src/main/resources/templates/jlw/handsOn/edit.html b/web/src/main/resources/templates/jlw/handsOn/edit.html new file mode 100644 index 00000000..fc642e6d --- /dev/null +++ b/web/src/main/resources/templates/jlw/handsOn/edit.html @@ -0,0 +1,49 @@ + + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ + + + + + diff --git a/web/src/main/resources/templates/jlw/handsOn/index.html b/web/src/main/resources/templates/jlw/handsOn/index.html new file mode 100644 index 00000000..89974b93 --- /dev/null +++ b/web/src/main/resources/templates/jlw/handsOn/index.html @@ -0,0 +1,29 @@ + + + +
+ + + +