<style>
|
.controls .chosen-container {
|
width: 75% !important;
|
}
|
</style>
|
<form class="form-horizontal" id="sjkbform" method="post" xmlns:th="http://www.w3.org/1999/xhtml">
|
<div class="portlet box ltblue">
|
<div class="portlet-title">
|
数据库表信息
|
<div class="caption">
|
<i class="fa fa-reorder"></i>
|
</div>
|
<div class="tools">
|
<a class="collapse" onclick="portlet_body_ShowOrHide(this);"></a>
|
</div>
|
</div>
|
<div class="portlet-body">
|
<div class="row">
|
<div class="col-sm-6">
|
<div class="control-group">
|
<input type="hidden" class="form-control col-sm-11" id="tabletype" name="tabletype" th:value="${tabletype}"/>
|
<label class="control-label">数据源<span style="color: red;">*</span></label>
|
<div class="controls input-icon">
|
<input type="hidden" class="form-control col-sm-11" id="databasetype" name="databasetype" th:value="${databasetype}" />
|
<input th:value="${Res_ExtDataBase.datasourceid}" id="datasourceid" name="datasourceid" class="form-control col-sm-8" type="hidden" required=""/>
|
<input id="databasename" th:value="${Databasename}" class="form-control col-sm-7" style="width:57%" readonly="readonly" onpropertychange="" />
|
<button title="选择数据源" type="button" class="btn btn-primary" id="ShowDataBase" style="vertical-align:baseline; padding: 0.375em 0.7em;">选择</button>
|
<button title="测试数据源" type="button" class="btn btn-primary" style="vertical-align:baseline; padding: 0.375em 0.7em;" id="TestConnection">测试</button>
|
<!--<button title="新增数据源" type="button" class="btn btn-primary" onclick="addShuJuYuan();" style="vertical-align:baseline;padding: 0.375em 0.7em;">新增</button>-->
|
|
<!--<a class="btn " style="background-color: #e5e5e5;vertical-align:baseline !important;color: black;width:9%" title='选择数据源' id="ShowDataBase">...</a>-->
|
<span class="input-warning tooltips" data-original-title="">
|
<i class="fa-warning-sign" style="display: none;margin-left:30px;"></i>
|
</span>
|
</div>
|
</div>
|
</div>
|
<div class="col-sm-6" id="space">
|
<div class="control-group">
|
<label class="control-label">表空间</label>
|
<div class="controls input-icon">
|
<input th:value="${Res_ExtDataBase.spacename}" id="spacename" name="spacename" class="form-control col-sm-9"/>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="row">
|
<div class="col-sm-6">
|
<div class="control-group">
|
<label class="control-label">表名称</label>
|
<div class="controls input-icon">
|
<select class="form-control col-sm-9" id="tablename" name="tablename" onchange="changeFieldConfig(this.value);">
|
<option value="">--请选择--</option>
|
<option th:each="item:${map}" th:value="${item.key}" th:text="${item.value}" th:selected="(${Res_ExtDataBase.tablename}==${item.value})?'true':'false'"></option>
|
</select>
|
</div>
|
</div>
|
</div>
|
<div class="col-sm-6">
|
<div class="control-group">
|
<label class="control-label">主键<span style="color: red;">*</span></label>
|
<div class="controls input-icon">
|
<select id="primarykey" name="primarykey" class="form-control col-sm-9 form-control-chosen" multiple data-placeholder="请选择主键" required="">
|
<!--<option th:each="item:${keys}" th:value="${item}" th:text="${item}" selected="true"></option>-->
|
</select>
|
<!--<input th:value="${Res_ExtDataBase.primarykey}" id="primarykey" name="primarykey" class="form-control col-sm-9" required=""/>
|
<label class="col-sm-9">说明:属性类型表主键不能为空、且字段配置必须勾选。</label>-->
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="row">
|
<div class="col-sm-6">
|
<div class="control-group">
|
<label class="control-label">时间戳字段</label>
|
<div id="div_timefield" class="controls input-icon">
|
<input th:value="${Res_ExtDataBase.timestampfield}" id="timestampfield" name="timestampfield" class="form-control col-sm-9" maxchar="50"/>
|
<span class="input-warning tooltips" data-original-title="">
|
<i class="fa-warning-sign" style="display: none;margin-left:30px;"></i>
|
</span>
|
</div>
|
<div id="timefield" class="controls input-icon">
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="row">
|
<div class="col-sm-12">
|
<div class="control-group">
|
<label class="control-label">字段配置<span style="color: red;">*</span></label>
|
<div class="controls input-icon">
|
<textarea required="" readonly="readonly" th:text="${Res_ExtDataBase.fieldconfig}" id="fieldconfig" name="fieldconfig"
|
class="form-control col-sm-11" cols="20" style="height: 300px; vertical-align: bottom;" ></textarea>
|
<button title="配置" type="button" class="btn btn-primary" onclick="peizhi()" style="vertical-align:baseline;padding: 0.375em 0.7em;">配置</button>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="form-actions navbar-fixed-bottom" style="z-index: 0;">
|
<div style="float: left;">
|
<button class="btn btn-primary" id="addSJKBSave" type="button">
|
<i class="fa fa-check"></i> 保存
|
</button>
|
<button th:if="${not #lists.isEmpty(resMainInfoId)}" class="btn btn-danger" id="SJKBDelete"
|
type="button">
|
<i class="fa fa-trash-o"></i> 删除
|
</button>
|
<button class="btn btn-warning" id="close" type="button" onclick="window.close()">
|
<i class="fa fa-remove"></i> 关闭
|
</button>
|
</div>
|
</div>
|
</form>
|
<script th:inline="javascript">
|
//测试数据源连接
|
$("#TestConnection").on('click', function () {
|
var datasourceid = $("#datasourceid").val();
|
if(datasourceid != null && datasourceid != "" && datasourceid != undefined) {
|
$.ajax({
|
url: '/res/manage/datasource/newtestconnection?datasourceid=' + datasourceid,
|
type: 'post',
|
dataType: 'text',
|
data: {},
|
success: function (data) {
|
if (data == 'true') {
|
alert("连接成功!");
|
} else {
|
alert("连接失败!");
|
}
|
},
|
error: function (e) {
|
alert("连接失败!");
|
}
|
})
|
}
|
else {
|
alert("请先选择数据源");
|
}
|
})
|
|
|
//配置按钮 弹出窗口
|
function peizhi() {
|
var datasourceid=$("#datasourceid").val();
|
var primarykey=$("#primarykey").val();
|
//数据库表参数
|
var tablename=$("#tablename option:selected").val();
|
var resMainInfoId = $("#resMainInfoId").val();
|
if(tablename==""){
|
alert("请选择要打开的表");
|
return;
|
}
|
if(primarykey==null || primarykey==''){
|
alert("请选择主键");
|
return;
|
}
|
window.open("ZiDuanBieMingBasic?datasourceid="+datasourceid+"&tablename="+tablename+"&resMainInfoId="+resMainInfoId+"&primarykey="+primarykey);
|
|
//window.location.href ="ZiDuanBieMingBasic";
|
}
|
|
//当表名称改变时,获取表的主键
|
var primarykeys = [[${keys}]];
|
function zhujian() {
|
var datasourceid=$("#datasourceid").val();
|
//数据库表参数
|
var tablename=$("#tablename option:selected").val();
|
var resMainInfoId = $("#resMainInfoId").val();
|
if(tablename==""){
|
alert("请选择要打开的表")
|
}else {
|
var tabletype =$("#tabletype").val();
|
$.ajax({
|
url: '/res/ZiYuan/selectTabFileds',
|
type: 'post',
|
dataType: 'json',
|
data: {'datasourceid': datasourceid,'tablename':tablename,'resMainInfoId':resMainInfoId,'tabletype':tabletype},
|
success: function (result) {
|
var option="";
|
for (var i = 0; i < result.length; i++) {
|
var flag =false;
|
for(var j=0;j<primarykeys.length;j++){
|
if(result[i]==primarykeys[j]){
|
option+="<option value='" + result[i] + "' selected='true' '>" + result[i] + "</option>";
|
flag=true;
|
break;
|
}
|
}
|
if(!flag){
|
option+="<option value='" + result[i] + "'>" + result[i] + "</option>";
|
}
|
}
|
$("#primarykey").empty().append(option).trigger("chosen:updated");
|
$.ajax({
|
url: '/res/ZiYuan/selectDataField',
|
type: 'post',
|
dataType: 'json',
|
data: {'datasourceid': datasourceid,'tablename':tablename,'resMainInfoId':resMainInfoId},
|
success:function(result){
|
if(result.length>0){
|
var div = document.getElementById("new_div");
|
if(div){
|
div.parentNode.removeChild(div);
|
}
|
var new_div= document.createElement("div");
|
new_div.id="new_div";
|
$("#timefield").append(new_div);
|
var select ="<select id='select_name' class='form-control col-sm-9' onchange='setTimeStampField(this)'><option value=''>--请选择--</option>";
|
for(var m=0;m<result.length;m++){
|
if($("#timestampfield").val()==result[m]){
|
select+="<option value='"+result[m]+"' selected='true'>"+result[m]+"</option>";
|
}else{
|
select+="<option value='"+result[m]+"'>"+result[m]+"</option>";
|
}
|
}
|
select+="</select>";
|
$("#timestampfield").attr("type","hidden");
|
$("#new_div").append(select);
|
}else{
|
var div = document.getElementById("new_div");
|
if(div){
|
div.parentNode.removeChild(div);
|
}
|
$("#timestampfield").attr("type","text");
|
}
|
}
|
});
|
},
|
error: function (e) {
|
alert(e.message);
|
}
|
})
|
|
}
|
}
|
|
function setTimeStampField(obj){
|
$("#timestampfield").val(obj.value);
|
}
|
|
$("#tablename").change(function () {
|
// $("#primarykey").val("");
|
// $("#primarykey").empty();
|
// $("#primarykey").trigger("chosen:updated");
|
zhujian();
|
});
|
|
/*<![CDATA[*/
|
|
$("#databasename").change(function () {
|
$("#tablename").empty();
|
selectSqlTablt();
|
});
|
|
function selectSqlTablt(){
|
//获取选个数据库类型
|
var sqlType =$("#databasetype").val();
|
var datasourceid=$("#datasourceid").val();
|
$('#sjkbform').ajaxSubmit({
|
url: '/res/ZiYuan/selectSqlTable',
|
type: 'post',
|
dataType: 'json',
|
data: {'datasourceid': datasourceid},
|
success: function (data) {
|
var json = eval(data);
|
$("#tablename").append("<option value=\"\">选择数据库表</option>");
|
for (var i = 0; i < json.length; i++) {
|
$("#tablename").append("<option value='"+ json[i].TABLENAME+"'>" +json[i].TABLENAME+"</option>");
|
}
|
},
|
error: function (e) {
|
alert(e.message);
|
}
|
})
|
|
}
|
|
|
function spaceShowOrHide() {
|
if($("#databasetype").val() == "Oracle" ){
|
$("#space").css("display","");
|
}
|
else {
|
$("#space").css("display","none");
|
$("#spacename").val("");
|
}
|
}
|
|
//设置一些右边有按钮的文本框的宽度(让它们在不同分辨率下可以对齐,暂时使用JS实现,后面有时间再使用CSS实现) ccr add 2018-12-30
|
function setInputWidthForDatabase() {
|
var tablenameWidth = $("#tablename").width(); //获取表名称文本框的宽度
|
$("#databasename").width(tablenameWidth - 106); //数据源
|
}
|
|
$(function () {
|
var flag = [[${Res_ExtDataBase.datasourceid}]];
|
cheackForm("sjkbform");
|
spaceShowOrHide();
|
if(flag != null) {
|
zhujian();
|
}
|
$('#primarykey').chosen();
|
//设置文本框宽度 ccr add 2018-12-30
|
setInputWidthForDatabase();
|
//页面大小改变事件 ccr add 2018-12-30
|
$(window).resize(function() {
|
setTimeout("setInputWidthForDatabase();", 500);
|
});
|
});
|
|
/*]]>*/
|
|
</script>
|
<script th:inline="javascript">
|
|
//弹出数据源页面
|
$("#ShowDataBase").on("click", function () {
|
layer.open({
|
type: 2,
|
title: "选择数据源",
|
shadeClose: true,
|
area: ["980px", "685px"],
|
content: "../../manage/datasource/panel_select"
|
})
|
})
|
|
var resMainInfoId = $("#resMainInfoId").val();
|
|
var admin = [[${admin}]];
|
var auditstatus = [[${resMainInfo.auditstatus}]];
|
$('#addSJKBSave').on('click', function () {
|
var tabletype =$("#tabletype").val();
|
if(tabletype==1){
|
var primarykey = $("#primarykey").val();
|
if(primarykey==null || primarykey==''){
|
alert("主键不能为空!");
|
return;
|
}
|
}
|
//判断当前用户是否是管理员,是管理员或是未提交的资源才可以修改资源相关信息
|
if(admin == true || auditstatus == 0 || auditstatus == null) {
|
if ($('#sjkbform').valid()) {
|
var datasourceid = $("#datasourceid").val();
|
$('#sjkbform').ajaxSubmit({
|
url: '/res/resExtDataBase/insertSelectiveAndUpdate',
|
type: 'post',
|
dataType: 'text',
|
data: {'datasourceid': datasourceid, 'resourceid': resMainInfoId},
|
success: function (data) {
|
if (data == "1") {
|
alert("保存成功!");
|
// parent.FTabPages.resetTab();
|
reloadExt("ExtDataBase");
|
} else {
|
alert("保存失败!");
|
}
|
},
|
error: function (e) {
|
alert(e.message);
|
}
|
});
|
} else {
|
// alert("您输入的信息存在错误,请更正后再提交!");
|
}
|
}
|
else {
|
alert("注销后才可以对该资源进行修改!");
|
}
|
});
|
$("#SJKBDelete").click(function () {
|
if(confirm("删除扩展信息,确定删除吗?")) {
|
$.ajax({
|
url: '/res/resExtDataBase/deleteByPrimaryKey?resourceid=' + resMainInfoId,
|
type: 'post',
|
dataType: 'json',
|
data: {},
|
success: function (data) {
|
if (data == "1") {
|
alert("删除成功!");
|
// parent.FTabPages.resetTab();
|
reloadExt("ExtDataBase");
|
} else {
|
alert("删除失败!");
|
}
|
},
|
error: function (e) {
|
alert(e.message)
|
}
|
});
|
}
|
});
|
function changeFieldConfig(tablename){
|
var resMainInfoId = $("#resMainInfoId").val();
|
$.ajax({
|
url: '/res/ResManage/ResRegister/changeFieldConfig?resMainInfoId=' + resMainInfoId+'&tablename='+tablename,
|
type: 'post',
|
dataType: 'text',
|
success:function(data){
|
$("#fieldconfig").val(data);
|
},
|
error:function(){
|
alert("请求失败,网络异常!");
|
}
|
});
|
}
|
</script>
|
|
<script>
|
function addShuJuYuan() {
|
layer.open({
|
type: 2,
|
title: "新增数据源",
|
shadeClose: true,
|
area: ["900px", "590px"],
|
content: "../../manage/datasource/edit"
|
})
|
}
|
</script>
|