<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
request.setAttribute("basePath", basePath);
%>
<script type="text/javascript">
var basePath = '${basePath}';
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript"
src="${basePath}js/jquery-easyui-1.4/jquery.easyui.min.js"
charset="utf-8"></script>
<title>这是左侧页面</title>
</head>
<style type="text/css">
.likequery {
font-size: 12px;
height: 32px;
background-color: #E0ECFF;
border-radius: 5px;
outline: none;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-thumb {
background-color: rgba(18, 160, 236, 0.4);
border-radius: 4px;
}
::-webkit-scrollbar:horizontal {
height: 8px;
}
.aaa:HOVER {
cursor: pointer;
background-color: #eee;
width: 100%;
border-radius: 2px;
}
.aaa {
list-style: none;
font-size: 14px;
width: 100%;
}
.ul {
margin: 0;
padding: 0;
}
.rightBtnClass>.menu-line {
display: none;
}
.selectoption {
cursor: pointer;
}
.easyui-tabs {
width: 100%;
height: 100%;
}
</style>
<body>
<div class="easyui-tabs">
<div title="浏览" style="padding:10px">
<div style="float: left;margin: 0 10px 5px 0;">数据库</div>
<div style="float: right;margin: 5px 4px 5px 0;cursor: pointer">
<img id="refreshimg" name="refresh" onmousemove="refreshover('refresh2.png')" onmouseout="refreshover('refresh.png')" alt="" src="${basePath}p_w_picpaths/refresh.png" /></div>
<div style="margin-top: 15px;">
<select id="test" class="easyui-combobox"
style="height:32px;width:100%;">
</select>
</div>
<div>
<input id="liketable" class="likequery" value=""
onkeyup="likequery()" type="text" placeholder="搜索表名..."
style="width: 100%;margin-top: 20px;padding-left: 5px">
</div>
<div class="showtable"
style="overflow:auto;height: 66%;margin-top: 10px;">
<ul class="ul" id="couponprice"></ul>
</div>
<div id="mydiv"
style="position:absolute;display:none;background: silver;z-index: 999;">提示</div>
</div>
</div>
<!-- <a href="javascript:void(0)" 连接到右侧 </a> -->
<div id="rightBtn" class="easyui-menu rightBtnClass"
style="width:120px;">
<div onclick="callTableDesc()">表结构</div>
<div onclick="openWindowDate()">数据实例</div>
<div onclick="dataImport()">数据导入</div>
<div onclick="dataExport()">数据导出</div>
</div>
<div id="exporttype" class="easyui-dialog" title="请选择文件格式"
data-options="" closed="true"
style="width:200px;height:100px;padding:15 10 10 10">
<a id="exportCsv" href="javascript:void(0)" class="easyui-linkbutton"
target='_blank' <a
id="exportExcel" href="javascript:void(0)" class="easyui-linkbutton"
style="margin-left: 20" onclick="downloadMore('excelMore')">导出EXCEL</a>
</div>
<div id="downloading" class="easyui-dialog" title="提示" data-options=""
closed="true" style="width:150px;height:100px;padding:15 10 10 10">
<a>正在生成数据文件...</a>
</div>
<div id="importtype" class="easyui-dialog" title="请选择文件格式"
data-options="" closed="true"
style="width:200px;height:100px;padding:15 10 10 10">
<a id="importCsv" href="javascript:void(0)"
class="easyui-linkbutton" target='_blank'>导入CSV</a> <a
id="importExcel" href="javascript:void(0)"
class="easyui-linkbutton" style="margin-left: 20">导入EXCEL</a>
</div>
<!-- 上传csv -->
<div>
<div id="wimportCsv" class="easyui-window" title="导入CSV"
data-options="modal:true,closed:true"
style="width: 500px; height: 200px; padding: 10px;">
<form id="ffimportCsv" class="easyui-form" method="POST"
enctype="multipart/form-data"
action="${basePath}upLoadcsvAction/upload"
data-options="novalidate:true">
<div style="margin-bottom: 20px">
<input class="easyui-filebox" name="file" style="width: 300px"
data-options="buttonText:'浏览'">
</div>
<div style="margin-bottom: 20px">
<span>是否overwrite:</span> <span>是:</span> <input type="radio"
name="isOverWrite" value="true"> <span>否:</span> <input
type="radio" name="isOverWrite" value="false" checked>
</div>
<input id="ucsvTname" type="text" name="name" style="display: none;">
<div style="margin-bottom: 20px align-self: center;">
<input type="submit" value="提交">
</div>
</form>
</div>
</div>
<div id="tableDescRes">
<div id="w" class="easyui-window" title="表结构"
data-options="top:100,border:false,modal:true,closed:true"
style="width: 800px; height: 400px; padding: 0px;">
<div id="tt" class="easyui-tabs" style="width: auto; height: auto">
<div title="列" style="padding: 0px">
<table id="tdesc"></table>
</div>
<div title="属性" style="padding: 0px">
<table id="tfdesc"></table>
</div>
</div>
</div>
</div>
<div id="errorMsgId" class="easyui-dialog" title=" 错误提示"
data-options="" closed="true"
style="width:500px;height:300px;padding:10 10 10 10"></div>
</body>
<script type="text/javascript">
function errorMsg(msg) {
$("#errorMsgId").html(msg);
$(".easyui-dialog").dialog('close');
$("#errorMsgId").dialog('open');
}
function dataExport() {
$(".easyui-dialog").dialog('close');
$('#exporttype').dialog('open');
}
function dialogOpen() {
$("#downloading").dialog('open');
}
function dialogClose() {
$("#downloading").dialog('close');
}
function downloadMore(url) {
var tableName = $("#rightBtn").attr("table");
var dataBase = $("#test").combobox('getValue');
$(".easyui-dialog").dialog('close');
$("#downloading").dialog('open');
$.ajax({
type : "POST",
url : "${basePath}export/" + url,
data : {
tableName : tableName,
dataBase : dataBase
},
dataType : "text",
success : function(data) {
$("#downloading").dialog('close');
var fileType = "CSV";
if (url.indexOf("excelMore") >= 0) {
fileType = "EXCEL";
}
window.open("${basePath}export/downloadFile?filename=" + data + "&fileType=" + fileType);
}
});
}
function dataImport() {
$(".easyui-dialog").dialog('close');
$('#importtype').dialog('open');
var tableName = $("#rightBtn").attr("table");
var dataBase = $("#test").combobox('getValue');
$("#importCsv").attr("tableName", dataBase + "." + tableName);
$("#ucsvTname")[0].value = dataBase + "." + tableName;
}
/* 刷新左侧 */
function refresh1() {
showdbn();
}
function refreshover(img){
$("#refreshimg").attr("src","${basePath}p_w_picpaths/"+img);
}
/* 获取数据库 */
var orgCount = 0;
function showdbn() {
$("#test").combobox({
url : '${basePath}index/showdatabase',
textField : 'database_name',
valueField : 'database_name',
editable : false,
panelHeight : 'auto',
onLoadSuccess : function(data) {
orgCount = data.length;
var showtable = $('#test').combobox('getData');
if (showtable.length > 0) {
$('#test').combobox('select', showtable[0].database_name);
}
},
onSelect : function(record) {
var showtable = $('#test').combobox('getValue');
change();
},
onShowPanel : function() {
// 动态调整高度
if (orgCount > 10) {
$(this).combobox('panel').height(305);
}
}
});
}
$(function() {
showdbn();
ttttt();
});
var showtable;
/* 选择库展示表 */
function change() {
$("#couponprice").html("loading...");
$("#liketable").val("");
var showtable = $("#test").combobox('getValue');
$.ajax({
type : "POST",
url : "${basePath}index/likesql",
data : "databasename=" + showtable,
dataType : "text",
success : function(data) {
if (data != null && data.length != 2) {
var list = eval(data);
var count = list.length;
var name = "";
for (i = 0; i < count; i++) {
name += "<li class='aaa' + list[i].tab_name + "</li>";
}
$("#couponprice").html(name);
$("#liketable").css('display', 'block');
} else {
$("#couponprice").html("当前库没有表...");
$("#liketable").css('display', 'none');
}
$(".aaa").tooltip({
deltaX : -40,
deltaY : -5,
showDelay : 1000
});
$(".aaa").bind('contextmenu', function(e) {
e.preventDefault();
$('#rightBtn').menu('show', {
left : e.pageX - 10,
top : e.pageY - 10
});
$("#rightBtn").attr("table", $(e.currentTarget).html());
});
}
});
}
/* 中文提示 */
function over(e) {
var tb = e.innerHTML;
var dbn = $("#test").combobox('getValue');
$.ajax({
type : "POST",
url : "${basePath}index/comment",
data : "databasename=" + dbn + "&tablename=" + tb,
dataType : "text",
success : function(data) {
if (data != null) {
var list = eval(data);
var name = list[0].prpt_name;
if (name.indexOf(" does not have property: comment") >= 0) {
name = "无注释";
}
$(".aaa").tooltip({
content : name,
deltaX : -40,
deltaY : -5,
showDelay : 1000
});
}
}
})
}
/* 模糊查询 */
function likequery() {
var tablename = $("#liketable").val();
var showtable = $("#test").combobox('getValue');
$.ajax({
type : "POST",
url : "${basePath}index/likesql",
data : "databasename=" + showtable + "&name=" + tablename,
dataType : "text",
success : function(data) {
if (data != null) {
var list = eval(data);
var count = list.length;
var name = "";
for (i = 0; i < count; i++) {
name += "<li class='aaa' + list[i].tab_name + "</li>";
}
$("#couponprice").html(name);
$(".aaa").bind('contextmenu', function(e) {
e.preventDefault();
$('#rightBtn').menu('show', {
left : e.pageX - 10,
top : e.pageY - 10
});
$("#rightBtn").attr("table", $(e.currentTarget).html());
});
}
$(".aaa").tooltip({
deltaX : -40,
deltaY : -5,
showDelay : 1000
});
}
})
}
//csv import
function importCsv() {
$('#wimportCsv').window('open');
}
$('#ffimportCsv').form({
onSubmit : function() {
//console.log($("#importCsv").attr("tableName"));
},
success : function(data) {
$.messager.alert("提示", data, "info");
}
});
//右键表结构
function showTdesc(tableName) {
$('#tdesc').datagrid({
rownumbers:true,
url : basePath + 'tabledesc/desc',
method : 'post',
queryParams : {
tableName : tableName,
subject : 'datagrid'
},
columns : [ [
{
field : 'col_name',
title : '列名',
width : 100
},
{
field : 'data_type',
title : '字段类型',
width : 100
},
{
field : 'comment',
title : '备注'
}
] ]
});
$('#tdesc').datagrid('autoSizeColumn', 'comment');
}
/* function showTdesc(tableName) {
$('#tdesc').datagrid({
rownumbers:true,
url : basePath + 'tabledesc/desc',
method : 'post',
queryParams : {
tableName : tableName,
subject : 'datagrid'
},
columns : [ [
{
field : 'col_name',
title : '列名',
width : 100
},
{
field : 'data_type',
title : '字段类型',
width : 100
},
{
field : 'comment',
title : '备注'
}
] ]
});
$('#tdesc').datagrid('autoSizeColumn', 'comment');
} */
function showTprop(tableName) {
$.ajax({
type : "POST",
url : basePath + 'tabledesc/property',
data : {
"tableName" : tableName
},
dataType : "json",
success : function(data) {
//console.log(data);
if (data.error) {
$.messager.alert("提示", data.error, "error");
//alert(data.error);
$('#w').window('close');
} else {
var tfDesc = fuck(data.tfDesc);
var tCSentence = showCreateSentence(data.tCSentence);
tfDesc = tfDesc.concat(tCSentence);
//console.log(tfDesc);
$('#tfdesc').datagrid({
rownumbers:true,
fitColumns : false,
columns : [ [
{
field : 'col_name',
title : '属性名',
width : 100
},
{
field : 'data_type',
title : '值'
},
] ]
});
$('#tfdesc').datagrid('loadData', tfDesc);
}
}
});
}
function ttttt() {
$('#tt').tabs({
onSelect : function(title) {
if (title == '属性') {
setTimeout(function() {
$('#tfdesc').datagrid('autoSizeColumn', 'data_type');
}, 500);
}
}
});
}
function tableDesc(tableName) {
if (tableName) {
$('#w').window('open');
showTdesc(tableName);
setTimeout(function() {
showTprop(tableName);
}, 1000);
} else {
//alert("请选中表名!");
$.messager.alert("提示", "请选中表名!", "info");
}
}
;
function fuck(tfDesc) {
//console.log(111);
var resultTFD = [];
var enTfd = [ 'Database:', 'Owner:', 'CreateTime:', 'LastAccessTime:', 'Location:', 'InputFormat:', 'OutputFormat:', 'Compressed:' ];
var chTfd = [ '数据库:', '拥有者:', '创建日期:', '最后访问日期:', '位置:', '输入格式:', '输出格式:', '压缩格式:' ];
for (var int = 0; int < tfDesc.length; int++) {
var tfDesc_ele = tfDesc[int];
for (var int2 = 0; int2 < enTfd.length; int2++) {
var enTfd_ele = enTfd[int2];
if (tfDesc_ele.col_name.replace(/\s+/g, "") == enTfd_ele) {
tfDesc_ele.col_name = chTfd[int2];
resultTFD.push(tfDesc_ele);
}
}
}
//console.log(resultTFD);
return (resultTFD);
}
//建表语句
function showCreateSentence(data) {
var tCSentence = data;
var createSentence = "";
for (var i = 0; i < tCSentence.length; i++) {
//console.log(tCSentence[i].createtab_stmt);
createSentence += tCSentence[i].createtab_stmt;
}
//console.log(createSentence);
return ({
col_name : '建表语句',
data_type : createSentence
});
}
//biao jie gou end
function callTableDesc() {
var tableName = $("#rightBtn").attr("table");
var dataBase = $("#test").combobox('getValue');
tableDesc(dataBase + "." + tableName);
}
function openWindowDate() {
var tableName = $("#rightBtn").attr("table");
var dataBase = $("#test").combobox('getValue');
var url = "${basePath}DataInstance/DataInstanceInfo?tableName=" + tableName + "&dataBase=" + dataBase;
openWindow(url, "数据实例", 400, 800);
}
</script>
</html>