admin
2021-09-30 1a1a315efb1b5dc294013126f35819e36565040c
src/main/resources/generater/admin/add.ftl
@@ -3,7 +3,7 @@
<head>
    <meta charset="UTF-8">
    <title>新增${controllerData.title}</title>
    <title>${title}</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
@@ -26,14 +26,14 @@
    <div class="layui-row">
        <form class="layui-form" lay-filter="add">
            <#list addFormRows as value>
            <#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>
@@ -45,6 +45,7 @@
                        <#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>
@@ -60,39 +61,101 @@
    </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>
    layui.use(['form', 'layer', 'jquery'], function () {
        },
        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();
            }
        }
    };
</script>
<script>
    layui.use(['form', 'layer', 'jquery', 'upload'], function () {
        $ = layui.jquery;
        var form = layui.form,
                layer = layui.layer;
                layer = layui.layer,
                upload = layui.upload;
        var verify = {};
        <#list regexVerifyList as regex>
        verify["${regex.key}"] = [/${regex.expression}/, '${regex.msg}'];
        </#list>
        //自定义验证规则
        form.verify({
            username: function (value) {
                if (value.length < 3) {
                    return '名称至少得3个字符';
                }
            },
            code: function (value) {
                if (value) {
                    if (!(/^([A-Za-z0-9]|\-|_)+$/).test(value)) {
                        return '标识只能包含 数字、英文字符、_ 、-';
                    }
                }
            },
            packageName: [/^([A-Za-z0-9]|\-|_|\.)+$/, '包名只能包含 数字、英文字符、_ 、-、.'],
            desc: function (value) {
                if (value != null && value.length > 128) {
                    return '简介最大为128个字符';
                }
            },
            remarks: function (value) {
                if (value != null && value.length > 128) {
                    return '备注最大为128个字符';
                }
            },
        form.verify(verify);
        });
        //渲染上传控件
        uploadTool.init(upload);
        //监听提交
@@ -112,69 +175,58 @@
                            data.field[onkeys[0]][onkeys[1]] = value;
                        }
                    }
                    //发异步,把数据提交给php
                    ksapp.postJSON('/admin/api/pushplatform-app/add', data.field, function (res) {
                        if (res.code == 0) {
                            layer.alert("增加成功", {
                                        icon: 6
                                    },
                                    function () {
                                        //关闭当前frame
                                        xadmin.close();
                                        // 可以对父窗口进行刷新
                                        // xadmin.father_reload();
                                    });
                        } else {
                            layer.msg(res.msg);
                        }
                    uploadTool.upload(function(){
                        //发异步,把数据提交给php
                        ksapp.postJSON('${addApi}', 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) {
                        }, function (res) {
                        });
                    });
                    return false;
                });
        //请求select的数据API
         <#if preRequestList??&&(preRequestList?size>0)>
             <#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();
             } else {
                 layer.msg(res.msg);
             }
    var app = new Vue({
        el: '.layui-form',
        data: {
            appList: [],
            platformList: [
                {name: "小米", platform: "xm"},
                {name: "华为", platform: "hw"},
                {name: "OPPO", platform: "oppo"},
                {name: "VIVO", platform: "vivo"},
                {name: "魅族", platform: "mz"}
            ]
        },
        created: function () {
            this.getAppList();
        },
        watch: {
            appList: function () {
                app.render();
            }
        },
        methods: {
            getAppList: function () {
                ksapp.post("/admin/api/app/list", {page: 1, limit: 100}, function (e) {
                    if (e.code == 0) {
                        app.appList = e.data.list;
                    } else
                        layer.msg(e.msg);
                }, function (e) {
                });
            },
            render: function () {
                console.log("render")
            }
        }
    });
         }, function (res) {
         });
             </#list>
         </#if>
    })
    ;
</script>
</body>