| | |
| | | package ${packageName}; |
| | | <!DOCTYPE html> |
| | | <html class="x-admin-sm"> |
| | | |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.data.mongodb.core.query.Update; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.stereotype.Repository; |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>${title}</title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/> |
| | | <link rel="stylesheet" href="./css/font.css"> |
| | | <link rel="stylesheet" href="./css/xadmin.css"> |
| | | <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="./js/xadmin.js"></script> |
| | | <script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script> |
| | | <script src="js/http.js" type="text/javascript" charset="utf-8"></script> |
| | | <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> |
| | | <!-- 让IE8/9支持媒体查询,从而兼容栅格 --> |
| | | <!--[if lt IE 9]> |
| | | <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> |
| | | <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> |
| | | <![endif]--> |
| | | </head> |
| | | <body> |
| | | <div class="layui-fluid"> |
| | | <div class="layui-row"> |
| | | <form class="layui-form" lay-filter="add"> |
| | | |
| | | <#list importClasses as value> |
| | | import ${value}; |
| | | </#list> |
| | | <#list rowsList as value> |
| | | <div class="layui-form-item"> |
| | | <label for="L_appCode" class="layui-form-label"> |
| | | <#if value.params.require??&&value.params.require> |
| | | <span class="x-red">*</span> |
| | | </#if> |
| | | ${value.params.title}</label> |
| | | <div class="layui-input-block"> |
| | | <#switch value.type> |
| | | <#case "CheckBox"><#include "/admin/form/checkBox.ftl" ><#break> |
| | | <#case "Img"> <#include "/admin/form/img.ftl"><#break> |
| | | <#case "Password"> <#include "/admin/form/password.ftl"><#break> |
| | | <#case "RadioGroup"> <#include "/admin/form/radioGroup.ftl"><#break> |
| | | <#case "Select"> <#include "/admin/form/select.ftl"><#break> |
| | | <#case "Switch"> <#include "/admin/form/switch.ftl"><#break> |
| | | <#case "Text"> <#include "/admin/form/text.ftl"><#break> |
| | | <#case "TextArea"> <#include "/admin/form/textArea.ftl"><#break> |
| | | <#default> |
| | | </#switch> |
| | | </div> |
| | | |
| | | <#if (value.desc!"") != ""> |
| | | <div class="layui-form-mid layui-word-aux">${value.desc}</div> |
| | | </#if> |
| | | </div> |
| | | </#list> |
| | | |
| | | @Repository |
| | | public class ${daoName} extends ${baseDaoClassName}<${entityClassName}>{ |
| | | <div class="layui-form-item"> |
| | | <label for="L_remarks" class="layui-form-label"></label> |
| | | <button class="layui-btn" lay-filter="add" lay-submit="">确定修改</button> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <script> |
| | | //初始化上传控件 |
| | | var uploadTool = { |
| | | callback: null, |
| | | chooseImage: {}, |
| | | uploadArray: new Array(), |
| | | init: function (upload) { |
| | | this.uploadArray = new Array(); |
| | | <#list rowsList as value> |
| | | <#if value.type=='Img'&&value.params.uploadApi??> |
| | | this.uploadArray.push(upload.render({ |
| | | elem: '#upload_${value.key}', //绑定元素 |
| | | url: '${value.params.uploadApi}', //上传接口 |
| | | <#if value.params.uploadApiParams??&&(value.params.uploadApiParams?size>0)> |
| | | data: { |
| | | <#list value.params.uploadApiParams as item> |
| | | "${item.key}": "${item.value}", |
| | | </#list> |
| | | }, |
| | | </#if> |
| | | auto: false, |
| | | accept: 'images', |
| | | acceptMime: 'image/*', |
| | | field: "file_${value.key}", |
| | | choose: function (obj) { |
| | | //将每次选择的文件追加到文件队列 |
| | | var files = obj.pushFile(); |
| | | //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9) |
| | | obj.preview(function (index, file, result) { |
| | | console.log(index); //得到文件索引 |
| | | console.log(file); //得到文件对象 |
| | | console.log(result); //得到文件base64编码,比如图片 |
| | | $("#img_${value.key}").attr("src", result); |
| | | //记录选中的文件 |
| | | uploadTool.chooseImage["${value.key}"] = "1"; |
| | | }); |
| | | }, |
| | | before: function (obj) { |
| | | layer.load(); |
| | | }, |
| | | done: function (res, index, upload) { |
| | | layer.closeAll('loading'); //关闭loading |
| | | //上传完毕后删除 |
| | | if (res.code == 0) { |
| | | //获取链接 |
| | | $("input[name='${value.key}']").val(res.data.url); |
| | | delete chooseImage["${value.key}"]; |
| | | if (Object.keys(chooseImage).length == 0) { |
| | | //全部上传成功 |
| | | callback(); |
| | | } |
| | | } else { |
| | | layer.msg(res.msg); |
| | | } |
| | | }, |
| | | error: function (index, upload) { |
| | | layer.msg("${value.params.title}上传出错"); |
| | | layer.closeAll('loading'); //关闭loading |
| | | } |
| | | })); |
| | | </#if> |
| | | </#list> |
| | | |
| | | public void updateSelective(${entityClassName} bean) { |
| | | Query query = new Query(); |
| | | Update update=new Update(); |
| | | query.addCriteria(Criteria.where("${identityColumn.columnName}").is(bean.${identityColumn.columnMehtod})); |
| | | <#if columnDataList??> |
| | | <#list columnDataList as value> |
| | | if(bean.${value.columnMehtod} != null) { |
| | | update.set("${value.columnName}", bean.${value.columnMehtod}); |
| | | }, |
| | | upload: function (result) { |
| | | if (this.uploadArray.length > 0) { |
| | | this.callback = result; |
| | | //同时上传 |
| | | for (var i = 0; i < this.uploadArray.length; i++) { |
| | | this.uploadArray[i].upload(); |
| | | } |
| | | } else { |
| | | result(); |
| | | } |
| | | } |
| | | </#list> |
| | | </#if> |
| | | update.set("updateTime", new Date()); |
| | | update(query, update); |
| | | } |
| | | }; |
| | | |
| | | |
| | | public List<${entityClassName}> list(DaoQuery daoQuery){ |
| | | Query query=getQuery(daoQuery); |
| | | if(daoQuery.sortList!=null&&daoQuery.sortList.size()>0){ |
| | | query.with(new Sort(daoQuery.sortList)); |
| | | </script> |
| | | |
| | | <script> |
| | | //填充数据 |
| | | function fillData(form) { |
| | | var id = ksapp.getQueryParam("id"); |
| | | if (id) { |
| | | } else { |
| | | layer.msg("id为空"); |
| | | return; |
| | | } |
| | | query.skip(daoQuery.start); |
| | | query.limit(daoQuery.count); |
| | | return findList(query); |
| | | } |
| | | |
| | | public long count(DaoQuery daoQuery){ |
| | | Query query=getQuery(daoQuery); |
| | | return count(query); |
| | | } |
| | | |
| | | private Query getQuery(DaoQuery daoQuery){ |
| | | List<Criteria> andList=new ArrayList<>(); |
| | | <#list daoQueryColumnDataList as value> |
| | | <#if (value.type!"") == "Date"> |
| | | if(daoQuery.min${value.columnName?cap_first}!=null){ |
| | | andList.add(Criteria.where("${value.columnName}").gte(daoQuery.min${value.columnName?cap_first})); |
| | | } |
| | | if(daoQuery.max${value.columnName?cap_first}!=null){ |
| | | andList.add(Criteria.where("${value.columnName}").lt(daoQuery.max${value.columnName?cap_first})); |
| | | } |
| | | <#else> |
| | | if(daoQuery.${value.columnName}!=null){ |
| | | <#if (value.queryType!"") == "equal"> |
| | | andList.add(Criteria.where("${value.columnName}").is(daoQuery.${value.columnName})); |
| | | <#else> |
| | | andList.add(Criteria.where("${value.columnName}").regex(daoQuery.${value.columnName})); |
| | | </#if> |
| | | } |
| | | </#if> |
| | | </#list> |
| | | Query query=new Query(); |
| | | Criteria[] ands=new Criteria[andList.size()]; |
| | | andList.toArray(ands); |
| | | if(ands.length>0){ |
| | | query.addCriteria(new Criteria().andOperator(ands)); |
| | | } |
| | | return query; |
| | | ksapp.postJSON('${detailApi}', {id: id}, function (res) { |
| | | if (res.code == 0) { |
| | | form.data(res.data); |
| | | } else { |
| | | layer.msg(res.msg); |
| | | } |
| | | }, function (res) { |
| | | layer.msg("详情获取失败"); |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | public static class DaoQuery{ |
| | | <#if daoQueryColumnDataList??> |
| | | <#list daoQueryColumnDataList as value> |
| | | <#if (value.type!"") == "Date"> |
| | | public ${value.type} min${value.columnName?cap_first}; |
| | | public ${value.type} max${value.columnName?cap_first}; |
| | | <#else> |
| | | public ${value.type} ${value.columnName}; |
| | | <script> |
| | | layui.use(['form', 'layer', 'jquery', 'upload'], function () { |
| | | $ = layui.jquery; |
| | | var form = layui.form, |
| | | layer = layui.layer, |
| | | upload = layui.upload; |
| | | |
| | | var verify = {}; |
| | | <#list regexVerifyList as regex> |
| | | verify["${regex.key}"] = [/${regex.expression}/, '${regex.msg}']; |
| | | </#list> |
| | | //自定义验证规则 |
| | | form.verify(verify); |
| | | |
| | | //渲染上传控件 |
| | | uploadTool.init(upload); |
| | | |
| | | //填充表单数据 |
| | | //请求数据 |
| | | //form.data(); |
| | | |
| | | |
| | | //监听提交 |
| | | form.on('submit(add)', |
| | | function (data) { |
| | | console.log(data.field); |
| | | //转换json对象 |
| | | for (key in data.field) { |
| | | if (key.indexOf(".") > -1) { |
| | | var value = data.field[key]; |
| | | delete data.field[key]; |
| | | var onkeys = key.split("."); |
| | | //创建对象 |
| | | if (data.field[onkeys[0]] == undefined) { |
| | | data.field[onkeys[0]] = {}; |
| | | } |
| | | data.field[onkeys[0]][onkeys[1]] = value; |
| | | } |
| | | } |
| | | uploadTool.upload(function () { |
| | | //发异步,把数据提交给php |
| | | var params = data.field; |
| | | params.id = ksapp.getQueryParam("id"); |
| | | |
| | | ksapp.postJSON('${updateApi}', data.field, function (res) { |
| | | if (res.code == 0) { |
| | | layer.alert("增加成功", { |
| | | icon: 6 |
| | | }, |
| | | function () { |
| | | //关闭当前frame |
| | | xadmin.close(); |
| | | // 可以对父窗口进行刷新 |
| | | // xadmin.father_reload(); |
| | | }); |
| | | } else { |
| | | layer.msg(res.msg); |
| | | } |
| | | |
| | | }, function (res) { |
| | | }); |
| | | }); |
| | | return false; |
| | | }); |
| | | //请求select的数据API |
| | | |
| | | <#if preRequestList??&&(preRequestList?size>0)> |
| | | var preRequestCount = ${preRequestList?size} |
| | | <#list preRequestList as request> |
| | | <#assign apiKeys=request.params?keys/> |
| | | var params = {}; |
| | | <#list apiKeys as key> |
| | | params["${key}"]=${request.params["${key}"]} |
| | | </#list> |
| | | |
| | | ksapp.postJSON('${request.url}', params, function (res) { |
| | | if (res.code == 0) { |
| | | //填充数据 |
| | | $("${request.fillTarget}").empty(); |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | var html = "<option value='" + res.data[i].key + "'>"; |
| | | html += res.data[i].value + "</option>"; |
| | | $("${request.fillTarget}").append(html); |
| | | } |
| | | //重新渲染表单 |
| | | form.render(); |
| | | preRequestCount--; |
| | | if (preRequestCount <= 0) { |
| | | //开始填充数据 |
| | | fillData(form) |
| | | } |
| | | |
| | | } else { |
| | | layer.msg(res.msg); |
| | | } |
| | | |
| | | }, function (res) { |
| | | }); |
| | | </#list> |
| | | <#else> |
| | | fillData(form) |
| | | </#if> |
| | | </#list> |
| | | </#if> |
| | | public int start; |
| | | public int count; |
| | | public List<Sort.Order> sortList; |
| | | } |
| | | } |
| | | }) |
| | | ; |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |