var pageConfig = { host: '', tableRelationDataIndex: 0, } // 表关系图表 var tableRelationCharts; $(document).ready(function(){ // 无论发布在哪、如何修改源码,请勿删除本行原作者信息,感谢 console.log("%c项目信息:\n开发者列表:暮光:城中城\n项目地址:https://gitee.com/zyplayer/zyplayer-doc","color:red"); $('select.chosen-select').chosen({ no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本 disable_search_threshold: 0, // 10 个以下的选择项则不显示检索框 search_contains: true, // 从任意位置开始检索 width: '100%' }); $('#checkAllTable').click(function(e){ $("#exportUl li").addClass("checked"); }); $('#notCheckAllTable').click(function(e){ $("#exportUl li").removeClass("checked"); }); $('#choiseExportDatabase').on('change', function(e){ var host = $('#choiseExportHost').val(); var dbName = $('#choiseExportDatabase').val(); postService("zyplayer-doc-db/doc-db/getTableList", {host: host, dbName: dbName}, function(result){ $('#exportUl').empty(); for (var i = 0; i < result.data.length; i++) { $("#exportUl").append('
  • '+result.data[i].tableName+'
  • '); } $('#exportModal').modal('ajustPosition', 'fit'); }); }); $('#choiseExportHost').on('change', function(e){ var host = $(this).val(); postService("zyplayer-doc-db/doc-db/getDatabaseList", {host: host}, function(result){ $('#choiseExportDatabase').empty(); $("#choiseExportDatabase").append(''); for (var i = 0; i < result.data.length; i++) { var dbName = result.data[i].dbName; $("#choiseExportDatabase").append(''); } $('#choiseExportDatabase').trigger('chosen:updated'); }); }); $('#choiseFuzzyHost').on('change', function(e){ var host = $(this).val(); postService("zyplayer-doc-db/doc-db/getDatabaseList", {host: host}, function(result){ $('#choiseFuzzyDatabase').empty(); $("#choiseFuzzyDatabase").append(''); for (var i = 0; i < result.data.length; i++) { var dbName = result.data[i].dbName; $("#choiseFuzzyDatabase").append(''); } $('#choiseFuzzyDatabase').trigger('chosen:updated'); }); }); $('#choiseHost').on('change', function(e){ pageConfig.host = $(this).val(); postService("zyplayer-doc-db/doc-db/getDatabaseList", {host: pageConfig.host}, function(result){ $('#choiseDatabase').empty(); $('#choiseTable').empty(); $("#choiseDatabase").append(''); $("#choiseTable").append(''); for (var i = 0; i < result.data.length; i++) { var dbName = result.data[i].dbName; $("#choiseDatabase").append(''); } $('#choiseDatabase').trigger('chosen:updated'); $('#choiseTable').trigger('chosen:updated'); }); }); $('#choiseDatabase').on('change', function(e){ var dbName = $(this).val(); var param = {host: pageConfig.host, dbName: dbName}; postService("zyplayer-doc-db/doc-db/getTableList", param, function(result){ $('#choiseTable').empty(); $("#choiseTable").append(''); for (var i = 0; i < result.data.length; i++) { var tableName = result.data[i].tableName; $("#choiseTable").append(''); } $('#choiseTable').trigger('chosen:updated'); }); }); $('#choiseTable').on('change', function(e){ getTableColumnList(); }); $('#tableDescShow .icon-edit').click(function(e){ var nowDesc = $("#tableDescShow .table-desc").html(); $("#tableDescInput").val((nowDesc == "暂无注释") ? "" : nowDesc); $("#tableDescShow").hide(); $("#tableDescInput").show().focus(); }); $("#tableDescInput").blur(function(){ $("#tableDescShow").show(); $("#tableDescInput").hide(); updateTableDesc(); }); $("#fuzzySearchBtn").click(function(){ $('#fuzzySearchModal').modal({moveable:true, backdrop: 'static'}); $('#choiseFuzzyHost').trigger('chosen:updated'); }); $("#exportBtn").click(function(){ $('#exportModal').modal({moveable:true, backdrop: 'static'}); }); $("#doExport").click(function(){ var host = $('#choiseExportHost').val(); var dbName = $('#choiseExportDatabase').val(); var tableNames = ""; $('#exportUl li.checked').text(function(index, value){ if(tableNames != "") {tableNames += ",";} tableNames += value; }); if(isEmpty(host)){ Toast.warn("请先选择库名");return; } if(isEmpty(dbName)){ Toast.warn("请先选择库名");return; } if(isEmpty(tableNames)){ Toast.warn("请输选择需要导出的表");return; } window.open("zyplayer-doc-db/doc-db/exportDatabase?host="+host +"&dbName="+dbName +"&tableNames="+tableNames); }); $("#exportUl").on("click", "li", function(){ $(this).toggleClass("checked"); }); $("#showEchartsBtn").click(function(){ $("#tableRelationBox").toggleClass("hide"); if($("#tableRelationBox").hasClass("hide")){ $(this).text("显示表关系图"); } else { $(this).text("隐藏表关系图"); tableRelationCharts.resize(); } }); $("#doSearch").click(function(){ fuzzySearchByDesc(); }); $("#aboutBtn").click(function(){ $('#aboutModal').modal({moveable:true, backdrop: 'static'}); }); $("#tableCloumnsTable tbody").on("click", ".column-desc", function(event){ $(this).find("span").hide(); $(this).find(".desc-input").show().focus(); }).on("blur", ".column-desc", function(event){ var newDesc = $(this).find(".desc-input").val(); var columnName = $(this).find(".desc-input").attr("column"); var oldDesc = $(this).find("span").text(); $(this).find("span").show(); $(this).find(".desc-input").hide(); if(newDesc != oldDesc){ var objThis = this; var param = getChoiseDbInfo(3); if(param == null){ return; } param.newDesc = newDesc; param.columnName = columnName; postService("zyplayer-doc-db/doc-db/updateTableColumnDesc", param, function(msg){ $(objThis).find("span").text(newDesc); }); } }); initData(); checkSystemUpgrade(); }); function initData(){ postService("zyplayer-doc-db/doc-db/getDataSourceList", {}, function(result){ $('#choiseHost,#choiseFuzzyHost,#choiseExportHost').empty(); if(validateResult(result)) { $("#choiseHost,#choiseFuzzyHost,#choiseExportHost").append(''); for (var i = 0; i < result.data.length; i++) { $("#choiseHost,#choiseFuzzyHost,#choiseExportHost").append(''); } } $('#choiseHost').trigger('chosen:updated'); $('#choiseFuzzyHost').trigger('chosen:updated'); $('#choiseExportHost').trigger('chosen:updated'); }); tableRelationCharts = echarts.init(document.getElementById('tableRelationCharts')); tableRelationCharts.setOption(tableRelationOption); tableRelationCharts.on('click', function (params) { //console.log(params.data); var dataIndex = params.data.index; var description = params.data.description; // 用户ID,T:user_info.id // 用户ID,T:order_db.user_info.id var indexOf = description.indexOf("T:"); if(indexOf < 0) { Toast.warn("该字段未关联表"); return; } var dbAndTable = description.substring(indexOf + 2, description.length); var dbNameChoise, tableNameChoise; var tempSplit = dbAndTable.split("."); if(tempSplit.length == 3) { dbNameChoise = tempSplit[0]; tableNameChoise = tempSplit[1]; } else if(tempSplit.length == 2) { tableNameChoise = tempSplit[0]; } else { tableNameChoise = dbAndTable; } var children = findChildren(tableRelationData, dataIndex); if(children != null && children.children.length <= 0) { // 查询表字段 var param = getChoiseDbInfo(2); if(param == null){ return; } if(isNotEmpty(dbNameChoise)){ param.dbName = dbNameChoise; } param.tableName = tableNameChoise; postService("zyplayer-doc-db/doc-db/getTableColumnList", param, function(msg){ var columnList = msg.data.columnList if(!columnList || columnList.length <= 0) { Toast.warn("未找到该字段关联的表信息");return; } changetableRelationOption(children, columnList); tableRelationCharts.setOption(tableRelationOption); var height = pageConfig.tableRelationDataIndex * 25; $("#tableRelationBox").css("height", height + "px"); tableRelationCharts.resize(); }); } }); } function changetableRelationOption(data, columnList){ var childrenArr = []; for (var i = 0; i < columnList.length; i++) { var item = columnList[i]; var description = getNotEmptyStr(item.description); var indexOf = description.indexOf("T:"); var dbAndTable = ""; if(indexOf >= 0) { dbAndTable = " " + description.substring(indexOf + 2, description.length); } childrenArr.push({ name: item.name + " " + item.type + dbAndTable, children: [], collapsed: false, index: pageConfig.tableRelationDataIndex++, description: getNotEmptyStr(item.description), length: item.length }); } data.children = childrenArr; } function findChildren(source, dataIndex){ var result = null; echarts.util.each(source.children, function (datum, index) { if(result != null) { return; } if(datum.index == dataIndex) { result = datum; } else if(datum.children && datum.children.length > 0) { result = findChildren(datum, dataIndex); } }); if(result != null) { return result; } } function getTableColumnList(){ var param = getChoiseDbInfo(3); if(param == null){ return; } $("#tableDescShow .icon-edit").hide(); $("#tableCloumnsTable tbody").empty(); $(".table-name").text(param.tableName); $(".table-desc").text("暂无注释"); postService("zyplayer-doc-db/doc-db/getTableColumnList", param, function(msg){ var columnList = msg.data.columnList for (var i = 0; i < columnList.length; i++) { var item = columnList[i]; //var isidentity = isNull(item.isidentity) ? '-' : (1 == item.isidentity ? '是' : '否'); $("#tableCloumnsTable tbody").append( '' +'' + item.name + '' +'' + (1 == item.isidentity ? '是' : '否') + '' +'' + getNotEmptyStr(item.type) + '' +'' + getNotEmptyStr(item.length) + '' +'' + (1 == item.nullable ? '允许' : '不允许') + '' +'' + ("true" == item.ispramary ? '是' : '否') + '' +'' + getNotEmptyStr(item.description) + '' +'' +'' ); } var tableInfo = msg.data.tableInfo; if (!!tableInfo && isNotEmpty(tableInfo.description)) { $(".table-desc").text(getNotEmptyStr(tableInfo.description)); } $("#tableDescShow .icon-edit").show(); pageConfig.tableRelationDataIndex = 0; changetableRelationOption(tableRelationData, columnList); tableRelationData.name = tableInfo.tableName; tableRelationCharts.setOption(tableRelationOption); var height = pageConfig.tableRelationDataIndex * 25; $("#tableRelationBox").css("height", height + "px"); tableRelationCharts.resize(); }); } function updateTableDesc(){ var tableDescInput = $("#tableDescInput").val(); var param = getChoiseDbInfo(3); if(param == null){ return; } param.newDesc = tableDescInput; postService("zyplayer-doc-db/doc-db/updateTableDesc", param, function(msg){ $("#tableDescShow .table-desc").text(tableDescInput); }); } function getChoiseDbInfo(type) { var host = $("#choiseHost").val(); var dbName = $("#choiseDatabase").val(); var tableName = $("#choiseTable").val(); if(type >= 1 && isEmpty(host)){ Toast.warn("请先选择连接");return null; } if(type >= 2 && isEmpty(dbName)){ Toast.warn("请先选择库名");return null; } if(type >= 3 && isEmpty(tableName)){ Toast.warn("请先选择表名");return null; } return {host: host, dbName: dbName, tableName: tableName}; } function fuzzySearchByDesc(){ var host = $("#choiseFuzzyHost").val(); var dbName = $("#choiseFuzzyDatabase").val(); var searchText = $("#searchText").val(); if(isEmpty(host)){ Toast.warn("请先选择库名");return; } if(isEmpty(dbName)){ Toast.warn("请先选择库名");return; } if(isEmpty(searchText)){ Toast.warn("请输入模糊匹配的内容");return; } $("#doSearch .icon").removeClass("hidden"); var param = {host: host, dbName: dbName, searchText: searchText}; postService("zyplayer-doc-db/doc-db/getTableAndColumnBySearch", param, function(msg){ $("#fuzzySearchTable tbody").empty(); for (var i = 0; i < msg.data.length; i++) { var item = msg.data[i]; $("#fuzzySearchTable tbody").append( '' +'' + item.tableName + '' +'' + item.columnName + '' +'' + getNotEmptyStr(item.description) + '' +'' ); } $('#fuzzySearchModal').modal('ajustPosition', 'fit'); }, function(){ $("#doSearch .icon").addClass("hidden"); }); } function checkSystemUpgrade() { ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { if (json.errCode == 200 && !!json.data) { $(".upgrade-info").show(); $("#upgradeNowVersion").html(json.data.nowVersion); $("#upgradeLastVersion").html(json.data.lastVersion); $("#upgradeUrl").html("" + json.data.upgradeUrl + ""); $("#upgradeContent").html(json.data.upgradeContent); console.log("zyplayer-doc发现新版本:" + "\n升级地址:" + json.data.upgradeUrl + "\n当前版本:" + json.data.nowVersion + "\n最新版本:" + json.data.lastVersion + "\n升级内容:" + json.data.upgradeContent ); } }); }