| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 | <!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>layui</title>    <meta name="renderer" content="webkit">    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">    <link rel="stylesheet" href="__PUBLIC__/layui/css/layui.css" media="all">    <link rel="stylesheet" href="__PUBLIC__/font-awesome/css/font-awesome.min.css" media="all"/>    <link rel="stylesheet" href="__CSS__/admin.css" media="all"></head><style>    .layui-form-item .layui-form-checkbox[lay-skin=primary] {        margin-top: auto;    }    .layui-table-cell, .layui-table-box, .layui-table-body {        overflow: visible;    }</style><body style="padding:10px;"><div class="tplay-body-div">    <div class="layui-tab">        <ul class="layui-tab-title">            <li class="layui-this">后台生成</li>            <li><a href="{:url('admin/api_generation/index')}" class="a_menu">接口生成</a></li>        </ul>    </div>    <div style="margin-top: 20px;">    </div>    <form class="layui-form" id="admin">        <div class="layui-form-item">            <label class="layui-form-label">数据表</label>            <div class="layui-input-inline">                <select name="table" lay-search="" lay-filter="tablename" lay-verify="required">                    <option value="">请选择</option>                    {foreach name="$tables" item="vo" key="k"}                    <option value="{$vo.TABLE_NAME}|{$vo.TABLE_COMMENT}"                    >{$vo.TABLE_NAME}({$vo.TABLE_COMMENT|default="无备注"})                    </option>                    {/foreach}                </select>            </div>            <div class="layui-form-mid layui-word-aux">选择要生成的表</div>        </div>        <div class="layui-form-item">            <label class="layui-form-label">后台功能</label>            <div class="layui-input-block">                <input type="checkbox" name="crud[create]" title="新增" checked>                <input type="checkbox" name="crud[delete]" title="删除" checked>                <input type="checkbox" name="crud[update]" title="修改" checked>                <input type="checkbox" name="crud[select]" title="查询" checked disabled>            </div>            <div class="layui-form-mid layui-word-aux">选择生成对应的后台功能,生成后须手动配置菜单和权限</div>        </div>        <div class="layui-form-item">            <div class="layui-input-block" style="display:none;" id="table_div">                <table class="layui-table" id="table" lay-filter="table"></table>            </div>        </div>        <div class="layui-form-item">            <div class="layui-input-block">                <button class="layui-btn" lay-submit lay-filter="admin">立即生成</button>            </div>        </div>    </form>    {include file="public/foot"}    <script>        layui.use(['table', 'layer', 'form'], function () {            var layer = layui.layer,                $ = layui.jquery,                table = layui.table,                form = layui.form;            var tableIns = table.render({                id: 'table'                , elem: '#table'                , size: 'lg' //小尺寸的表格                , defaultToolbar: []                , page: false //开启分页                , text: {none: '请先选择一个表'}                , cols: [[ //表头                    {field: 'Field', title: '字段名称', minWidth: 60},                    {field: 'Type', title: '数据类型', minWidth: 80},                    {field: 'Default', title: '默认值', minWidth: 80},                    {field: 'Comment', title: '注释', minWidth: 80},                    {                        field: 'ShowList', title: '列表显示', align: 'center', width: 100, templet: function (row) {                        var unuse = ['password'];                        if (unuse.indexOf(row.Field) >= 0 || row.Type == 'text') {                            return '<input type="checkbox" name="' + row.Field + '_ShowList" lay-skin="primary">';                        }                        return '<input type="checkbox" name="' + row.Field + '_ShowList" lay-skin="primary" checked>';                    }                    },                    {                        field: 'ShowSearch', title: '支持查询', align: 'center', width: 100, templet: function (row) {                        var unuse = ['password', 'thumb', 'image', 'sort', 'update_time'];                        if (unuse.indexOf(row.Field) >= 0 || row.Type == 'text') {                            return '<input type="checkbox" name="' + row.Field + '_ShowSearch" lay-skin="primary">';                        }                        return '<input type="checkbox" name="' + row.Field + '_ShowSearch" lay-skin="primary" checked>';                    }                    },                    {                        field: 'ShowEdit', title: '表单显示', align: 'center', width: 100, templet: function (row) {                        var unuse = ['id', 'ip', 'create_time', 'update_time', 'sort'];                        if (unuse.indexOf(row.Field) >= 0) {                            return '<input type="checkbox" name="' + row.Field + '_ShowEdit" lay-skin="primary">';                        }                        return '<input type="checkbox" name="' + row.Field + '_ShowEdit" lay-skin="primary" checked>';                    }                    },                    {                        field: 'Component', title: '表单组件', minWidth: 100, templet: function (row) {                        return buildComponentSelect(row);                    }                    },                ]]            });            form.on('submit(admin)', function (data) {                $.ajax({                    url: "{:url('generation')}",                    data: $('#admin').serialize(),                    type: 'post',                    dataType: 'json',                    async: false,                    success: function (res) {                        if (1 == res.code) {                            layer.alert('执行成功')                        } else {                            layer.confirm(res.msg, {icon: 3, title: '覆盖前请备份文件!'}, function (index) {                                $.ajax({                                    url: "{:url('generation')}",                                    data: $('#admin').serialize() + '&cover=true',                                    type: 'post',                                    dataType: 'json',                                    async: false,                                    success: function (res) {                                        if (res.code == 1) {                                            layer.alert('执行成功')                                        } else {                                            layer.alert('执行失败')                                        }                                    }                                })                            });                        }                    }                })                return false;            });            form.on('select(tablename)', function (data) {                if (data.value) {                    $("#table_div").show();                    tableIns.reload({                        url: "{:url('getFieldsInfo')}",                        where: {table: data.value},                    })                } else {                    $("#table_div").hide();                }            });        });        function getCheckOption(row) {            var check_option = '输入框';            if (row.Type == 'text') {                return '纯文本段落';            }            if (row.Type == 'float') {                return '数字';            }            if (row.Type.indexOf('int') >= 0) {                check_option = '数字';                if (row.Field.indexOf('thumb') >= 0 || row.Field.indexOf('image') >= 0) {                    return '图片';                }                if (row.Field.indexOf('time') >= 0) {                    return '时间';                }                if (row.Type == 'int(1)' || row.Type == 'tinyint(1)') {                    return '开关';                }                if(row.Comment.indexOf(',') >= 0){                    if(row.Field.indexOf('radio') >= 0){                        return '单选框';                    }                    return '下拉框';                }            }            if(row.Field.indexOf('checkbox') >= 0){                return '复选框';            }            return check_option;        }        function buildComponentSelect(row) {            var check_option = getCheckOption(row);            var options = ['输入框', '数字', '时间', '纯文本段落', '图片', '开关', '下拉框', '复选框', '单选框', '文章编辑器'];            var html = '<select name="' + row.Field + '_Component" lay-search="" lay-filter=""><option value="">请选择</option>';            for (var i in options) {                if (check_option == options[i]) {                    html += '<option value="' + i + '" selected>' + options[i] + '</option>';                } else {                    html += '<option value="' + i + '">' + options[i] + '</option>';                }            }            html += '</select>';            return html;        }    </script></div></body></html>
 |