gen.html 6.17 KB
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="container-div">
	<div class="row">
		<div class="col-sm-12 select-info">
			<form id="gen-form">
				<div class="select-list">
					<ul>
						<li>
							表名称:<input type="text" name="tableName"/>
						</li>
						<li>
							表描述:<input type="text" name="tableComment"/>
						</li>
						<li class="time">
							<label>表时间: </label>
							<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
							<span>-</span>
							<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
						</li>
						<li>
							<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
							<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
						</li>
					</ul>
				</div>
			</form>
		</div>

		<div class="btn-group-sm" id="toolbar" role="group">
			<a class="btn btn-success multiple disabled" onclick="javascript:batchGenCode()" shiro:hasPermission="tool:gen:code">
				<i class="fa fa-download"></i> 生成
			</a>
			<a class="btn btn-info" onclick="importTable()">
				<i class="fa fa-upload"></i> 导入
			</a>
			<a class="btn btn-primary single disabled" onclick="edit()" shiro:hasPermission="tool:gen:edit">
				<i class="fa fa-edit"></i> 修改
			</a>
			<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="tool:gen:remove">
				<i class="fa fa-remove"></i> 删除
			</a>
		</div>

		<div class="col-sm-12 select-info">
			<table id="bootstrap-table"></table>
		</div>
	</div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
	var prefix = ctx + "tool/gen";
	var editFlag = [[${@permission.hasPermi('tool:gen:edit')}]];
	var removeFlag = [[${@permission.hasPermi('tool:gen:remove')}]];
	var previewFlag = [[${@permission.hasPermi('tool:gen:preview')}]];
	var codeFlag = [[${@permission.hasPermi('tool:gen:code')}]];

	$(function() {
		var options = {
			url: prefix + "/list",
			updateUrl: prefix + "/edit/{id}",
			removeUrl: prefix + "/remove",
			sortName: "create_time",
			sortOrder: "desc",
			showExport: true,
			modalName: "生成配置",
			rememberSelected: true,
			uniqueId: "tableId",
			columns: [{
				field: 'state',
				checkbox: true
			},
				{
					field: 'tableId',
					title: '编号',
					visible: false
				},
				{
					title: "序号",
					formatter: function (value, row, index) {
						return $.table.serialNumber(index);
					}
				},
				{
					field: 'tableName',
					title: '表名称',
					sortable: true,
					formatter: function(value, row, index) {
						return $.table.tooltip(value);
					}
				},
				{
					field: 'tableComment',
					title: '表描述',
					sortable: true,
					formatter: function(value, row, index) {
						return $.table.tooltip(value, 15);
					}
				},
				{
					field: 'className',
					title: '实体类名称',
					sortable: true
				},
				{
					field: 'createTime',
					title: '创建时间',
					sortable: true
				},
				{
					field: 'updateTime',
					title: '更新时间',
					sortable: true
				},
				{
					title: '操作',
					align: 'center',
					formatter: function(value, row, index) {
						var actions = [];
						actions.push('<a class="btn btn-info btn-xs ' + previewFlag + '" href="javascript:void(0)" onclick="preview(\'' + row.tableId + '\')"><i class="fa fa-search"></i>预览</a> ');
						actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.tableId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
						actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.tableId + '\')"><i class="fa fa-remove"></i>删除</a> ');
						actions.push('<a class="btn btn-primary btn-xs ' + codeFlag + '" href="javascript:void(0)" onclick="genCode(\'' + row.tableName + '\')"><i class="fa fa-bug"></i>生成代码</a> ');
						return actions.join('');
					}
				}]
		};
		$.table.init(options);
	});

	// 预览代码
	function preview(tableId) {
		var preViewUrl = prefix + "/preview/" + tableId;
		$.modal.loading("正在加载数据,请稍后...");
		$.get(preViewUrl, function(result) {
			if (result.code == web_status.SUCCESS) {
				var items = [];
				$.each(result.data, function(index, value) {
					value = value.replace(/</g, "&lt;");
					value = value.replace(/>/g, "&gt;");
					var templateName = index.substring(index.lastIndexOf("/") + 1, index.length).replace(/\.vm/g, "");
					if(!$.common.equals("sql", templateName) && !$.common.equals("tree.html", templateName) && !$.common.equals("sub-domain.java", templateName)){
						items.push({
							title: templateName , content: "<pre class=\"layui-code\">" + value + "</pre>"
						})
					}
				});
				layer.tab({
					area: ['90%', '90%'],
					shadeClose: true,
					tab: items
				});
			} else {
				$.modal.alertError(result.msg);
			}
			$.modal.closeLoading();
		});
	}

	// 生成代码
	function genCode(tableName) {
		$.modal.confirm("确定要生成" + tableName + "表代码吗?", function() {
			location.href = prefix + "/genCode/" + tableName;
			layer.msg('执行成功,正在生成代码请稍后…', { icon: 1 });
		})
	}

	//批量生成代码
	function batchGenCode() {
		var rows = $.table.selectColumns("tableName");
		if (rows.length == 0) {
			$.modal.alertWarning("请选择要生成的数据");
			return;
		}
		$.modal.confirm("确认要生成选中的" + rows.length + "条数据吗?", function() {
			location.href = prefix + "/batchGenCode?tables=" + rows;
			layer.msg('执行成功,正在生成代码请稍后…', { icon: 1 });
		});
	}

	// 导入表结构
	function importTable() {
		var importTableUrl = prefix + "/importTable";
		$.modal.open("导入表结构", importTableUrl);
	}

	function edit() {
		let row = $('#bootstrap-table').bootstrapTable('getSelections');
		$.operate.editTab(row[0].tableId);
	}
</script>
</body>
</html>