From 1a1a315efb1b5dc294013126f35819e36565040c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 30 九月 2021 18:06:48 +0800
Subject: [PATCH] 后台管理自动化代码生成

---
 src/main/resources/generater/admin/update.ftl |  338 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 259 insertions(+), 79 deletions(-)

diff --git a/src/main/resources/generater/admin/update.ftl b/src/main/resources/generater/admin/update.ftl
index cc5ba65..3a33b09 100644
--- a/src/main/resources/generater/admin/update.ftl
+++ b/src/main/resources/generater/admin/update.ftl
@@ -1,92 +1,272 @@
-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>
+    <!-- 璁㊣E8/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();
+                    //棰勮鏈湴鏂囦欢锛屽鏋滄槸澶氭枃浠讹紝鍒欎細閬嶅巻銆�(涓嶆敮鎸乮e8/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鐨勬暟鎹瓵PI
+
+         <#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>
\ No newline at end of file

--
Gitblit v1.8.0