.
This commit is contained in:
@@ -95,13 +95,14 @@
|
||||
<!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
|
||||
<script type="module">
|
||||
import { logout } from './api/user.js'
|
||||
let { platList } = plat
|
||||
/*import meta from './api/meta.js'*/
|
||||
//import { getServiceInfo, getServiceDetail, getServiceList } from './api/meta.js'
|
||||
var vm = new Vue({
|
||||
el: ".container-fluid",
|
||||
data: {
|
||||
sysPlat: red.getData("sysPlat"),
|
||||
sysPlats: red.getData("sysPlats"),
|
||||
sysPlat: red.getData('sysPlat'),
|
||||
sysPlats: red.getData('sysPlats'),
|
||||
pages: [
|
||||
/*{name: "DDL", url: "/qtask/ddl.html"},*/
|
||||
{name: "MetaData", url: "/meta", nodes: [
|
||||
@@ -132,16 +133,9 @@
|
||||
{name: "关于", url: "/single/about.html"}
|
||||
|
||||
],
|
||||
menus: red.getData("menus", {name: "MetaData", url: "/meta", nodes: [
|
||||
/*{url:"/metadata/metatable/list.html", name:"TableList"},*/
|
||||
{url:"/metadata/metatable/metaTable.html", name:"MetaTable"},
|
||||
/*{url:"/metadata/metaLink.html", name:"MetaLink"},*/
|
||||
{url:"/metadata/metaService.html", name:"MetaService"},
|
||||
{url:"/metadata/dataList.html", name:"数据查询"},
|
||||
]
|
||||
}),
|
||||
page: red.getData("page", {url:"/qtask/list.html", name:"QTask"}),
|
||||
pageId: red.getData("pageId", "QTask")
|
||||
menus: {},
|
||||
page: {},
|
||||
pageId: ''
|
||||
},
|
||||
watch: {
|
||||
page: function () {
|
||||
@@ -174,6 +168,9 @@
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.menus = red.getData('menus', this.pages[0]['nodes'])
|
||||
this.page = red.getData('page', this.menus[0])
|
||||
this.pageId = red.getData("pageId", this.page['mame'])
|
||||
//绑定事件
|
||||
$('.menu .nav').on('click', 'li:not(.nav-parent) > a', function() {
|
||||
var $this = $(this);
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
<table class="table table-bordered table-hover" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th v-for="field in cfg.cols"
|
||||
v-text="field.label"
|
||||
<th v-for="field in cfg.shows"
|
||||
v-text="getFieldLabel(field.col)"
|
||||
:class="{'sort':field.order>0, 'sort-up':field.col==order.col && order.desc==1, 'sort-down':field.col==order.col && order.desc!=1}"
|
||||
@click="sortEvent(field.col)"
|
||||
>
|
||||
@@ -63,13 +63,10 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="row in list.rows">
|
||||
<td v-for="field in cfg.cols" v-title="dealField(row, field.col)" v-text="dealField(row, field.col)"></td>
|
||||
<td v-for="field in cfg.shows" v-title="dealField(row, field.col)" v-text="dealField(row, field.col)"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
<p v-text="list['rows'][0]"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="pager pull-right" style="margin: 5px 10px">
|
||||
@@ -100,7 +97,8 @@
|
||||
el:".data-list",
|
||||
data: {
|
||||
cfg:{
|
||||
cols: [],
|
||||
items:[],
|
||||
shows: [],
|
||||
filters: []
|
||||
},
|
||||
services:[],
|
||||
@@ -175,6 +173,7 @@
|
||||
};
|
||||
|
||||
getDataList(fbean, json => {
|
||||
console.log(json)
|
||||
vm.list = json;
|
||||
});
|
||||
},
|
||||
@@ -244,7 +243,7 @@
|
||||
} else if (bean[field] == "unknown") { //特殊值处理
|
||||
str = "";
|
||||
} else {
|
||||
str = bean[field] || "";
|
||||
str = bean[field.replace('$', '.')] || "";
|
||||
}
|
||||
|
||||
return str;
|
||||
@@ -257,7 +256,24 @@
|
||||
vm.order.desc = 1;
|
||||
}
|
||||
vm.findList();
|
||||
}
|
||||
},
|
||||
getFieldLabel: function (col) {
|
||||
if (!col) {
|
||||
return "";
|
||||
}
|
||||
|
||||
var items = this.cfg.items[col.split("$")[0]];
|
||||
if (items) {
|
||||
return items[col.split("$")[1]]['label']
|
||||
/*for (var i = 0; i < items.items.length; i++) {
|
||||
if (tableInfo.items[i].name == col.split("$")[1]) {
|
||||
return tableInfo.items[i].label;
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
return '';
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.serviceList();
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
<span class="input-group-btn" style="padding-left: 20px">
|
||||
<button @click="status=3" :class="['btn',{'btn-primary':status==3}]" type="button"> 导出配置</button>
|
||||
</span>
|
||||
<span class="input-group-btn">
|
||||
<!--<span class="input-group-btn">
|
||||
<button @click="status=4" :class="['btn',{'btn-primary':status==4}]" type="button"> 导入配置</button>
|
||||
</span>
|
||||
</span>-->
|
||||
|
||||
<span class="input-group-btn" style="padding-left: 30px">
|
||||
<button @click="save()" :class="['btn',{'btn-primary':status!=0},{'disabled':status==0}]" type="button"> 保存</button>
|
||||
@@ -450,14 +450,14 @@
|
||||
*/
|
||||
save: function () {
|
||||
if (vm.status == 1 && vm.itemSort.length > 0) {
|
||||
red.post("/meta/itemsort", {
|
||||
red.postX("/meta/itemsort", {
|
||||
serviceKey: vm.table,
|
||||
items: JSON.stringify(vm.itemSort)
|
||||
});
|
||||
}
|
||||
|
||||
else if (vm.status == 2 && vm.itemEdit.length > 0) {
|
||||
red.post("/meta/itemupdate", {
|
||||
red.postX("/meta/itemupdate", {
|
||||
serviceKey: vm.table,
|
||||
items: JSON.stringify(vm.itemEdit)
|
||||
});
|
||||
@@ -468,16 +468,16 @@
|
||||
|
||||
var dataStr = JSON.stringify(red.replace$(items[vm.status]));
|
||||
|
||||
red.post(urls[vm.status], {
|
||||
red.postX(urls[vm.status], {
|
||||
serviceKey: this.service,
|
||||
items: dataStr
|
||||
});
|
||||
}
|
||||
|
||||
else if (vm.status == 5) {
|
||||
var dataStr = JSON.stringify(red.replace$(vm.serviceInfo.shows));
|
||||
let dataStr = JSON.stringify(red.replace$(vm.serviceInfo.shows));
|
||||
console.log("dataStr", dataStr);
|
||||
red.post("/meta/showsort", {
|
||||
red.postX("/meta/showsort", {
|
||||
serviceKey: vm.service,
|
||||
items: dataStr
|
||||
});
|
||||
@@ -490,7 +490,7 @@
|
||||
filterData.push(this.filterMap[this.filterArr[i]]);
|
||||
}
|
||||
|
||||
red.post("/meta/filter_update", {
|
||||
red.postX("/meta/filter_update", {
|
||||
serviceKey: vm.service,
|
||||
filters: JSON.stringify(red.replace$(filterData))
|
||||
});
|
||||
@@ -499,7 +499,7 @@
|
||||
|
||||
else if (vm.status == 7) {
|
||||
console.log(vm.row);
|
||||
red.post("/meta/dbplatupdate", vm.row)
|
||||
red.postX("/meta/dbplatupdate", vm.row)
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
<th>附加属性</th>
|
||||
<th>备注</th>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in meta.items">
|
||||
<tr v-for="(item, index) in meta.items" class="item">
|
||||
<td v-show="status==3"><input type="checkbox" v-model="meta.exports" :value="item.name" class="form-control"></td>
|
||||
<td v-show="status==4"><input type="checkbox" v-model="meta.imports" :value="item.name" class="form-control"></td>
|
||||
<td v-show="status==5"><input type="checkbox" v-model="meta.shows" :value="item.name" class="form-control"></td>
|
||||
@@ -395,7 +395,7 @@
|
||||
setMove: function () {
|
||||
if (this.status == 1) {
|
||||
$('#sortableList,table>tbody').sortable({
|
||||
selector: '.list-group-item, tr',
|
||||
selector: '.item', // '.list-group-item, tr',
|
||||
finish: function (e) {
|
||||
var rows = e.list;
|
||||
vm.itemSort = [];
|
||||
@@ -487,15 +487,17 @@
|
||||
*
|
||||
*/
|
||||
save: function () {
|
||||
console.log(this.itemSort)
|
||||
if (vm.status == 1 && vm.itemSort.length > 0) {
|
||||
red.post("/meta/itemsort", {
|
||||
console.log(this.itemSort)
|
||||
red.postX("/meta/itemsort", {
|
||||
serviceKey: vm.table,
|
||||
items: JSON.stringify(vm.itemSort)
|
||||
});
|
||||
}
|
||||
|
||||
else if (vm.status == 2 && vm.itemEdit.length > 0) {
|
||||
red.post("/meta/itemupdate", {
|
||||
red.postX("/meta/itemupdate", {
|
||||
serviceKey: vm.table,
|
||||
items: JSON.stringify(vm.itemEdit)
|
||||
});
|
||||
@@ -528,7 +530,7 @@
|
||||
|
||||
else if (vm.status == 7) {
|
||||
console.log(vm.row);
|
||||
red.post("/meta/dbplatupdate", {metaTable: JSON.stringify(vm.row)})
|
||||
red.postX("/meta/dbplatupdate", {metaTable: JSON.stringify(vm.row)})
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
@@ -33,7 +33,13 @@ var red = {
|
||||
return plat["_key"];
|
||||
},
|
||||
getPlatToken: function() {
|
||||
var plat = red.getData("sysPlat") || {};
|
||||
let plat = red.getData("sysPlat");
|
||||
if (!plat) {
|
||||
red.showMsg({type:'error', placement: 'center', msg: '登陆过期,请前往登陆'});
|
||||
setTimeout(function () {
|
||||
location.href = "/user/login.html";
|
||||
}, 2000);
|
||||
}
|
||||
return plat["token"];
|
||||
},
|
||||
getJSON: function (url, params, callback) {
|
||||
@@ -69,12 +75,12 @@ var red = {
|
||||
})
|
||||
},
|
||||
postX(url, params) {
|
||||
params["platToken"] = red.getPlatToken()
|
||||
return new Promise(resolve => {
|
||||
axios({
|
||||
url,
|
||||
method: 'post',
|
||||
params,
|
||||
|
||||
}).then(res => {
|
||||
let data = res.data || {}
|
||||
red.loginCheck(data)
|
||||
@@ -82,9 +88,10 @@ var red = {
|
||||
red.showMsg({type:"error", msg: data.message})
|
||||
return;
|
||||
}
|
||||
if (data.code == 0) {
|
||||
else if (data.code == 0) {
|
||||
data = data.body
|
||||
}
|
||||
red.showMsg()
|
||||
resolve(data)
|
||||
});
|
||||
})
|
||||
@@ -165,8 +172,8 @@ var red = {
|
||||
return fmt;
|
||||
},
|
||||
loginCheck: function (json) {
|
||||
if (json && json["code"] == -2) {
|
||||
red.showMsg({type:"error", placement: "center", msg: "登陆过期,请前往登陆"});
|
||||
if (json && (json['code'] == -2 || json['referid'])) {
|
||||
red.showMsg({type:'error', placement: 'center', msg: '登陆过期,请前往登陆'});
|
||||
setTimeout(function () {
|
||||
location.href = "/user/login.html";
|
||||
}, 2000);
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package net.tccn.dbq;
|
||||
|
||||
import net.tccn.base.Kv;
|
||||
import net.tccn.base.PageBean;
|
||||
import net.tccn.dbq.fbean.FBean;
|
||||
import net.tccn.dbq.jdbc.api.DbAccount;
|
||||
import net.tccn.dbq.jdbc.api.DbKit;
|
||||
import net.tccn.dbq.parser.ParseMysql;
|
||||
import net.tccn.dbq.parser.Parser;
|
||||
import net.tccn.meta.MetaKit;
|
||||
import net.tccn.meta.MetaService;
|
||||
import net.tccn.meta.MetaTable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class DbExecutors {
|
||||
private final static Parser PARSER = new ParseMysql();
|
||||
@@ -15,8 +20,20 @@ public class DbExecutors {
|
||||
|
||||
String[] sqls = PARSER.parse(fBean);
|
||||
|
||||
//当前的业务 => 获取主表 信息 => 数据源信息 => 数据源对象 => 创建数据工具对象 => 查询数据
|
||||
MetaService metaService = MetaKit.getMetaService(fBean.getName());
|
||||
|
||||
MetaTable mainTable = MetaKit.getMetaTableByAlias(metaService.getTable());
|
||||
|
||||
return PageBean.by(Arrays.asList(Kv.of("findSql:", sqls[0]).set("countSql", sqls[1]) ), 0);
|
||||
DbAccount dbAccount = DbAccount.dao.findByKey(mainTable.getDbPlatId());
|
||||
|
||||
DbKit dbKit = new DbKit(dbAccount);
|
||||
System.out.println("countSql: " + sqls[0]);
|
||||
System.out.println("findSql: " + sqls[1]);
|
||||
|
||||
Integer count = dbKit.queryColumn(sqls[0], int.class);
|
||||
List<Map> list = dbKit.findList(sqls[1], Map.class);
|
||||
|
||||
return PageBean.by(list, count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,17 +42,18 @@ public class DbSourceMysql implements DbSource {
|
||||
Map row = new HashMap();
|
||||
for (int i = 1; i <= count; i++) {
|
||||
String columnTypeName = metaData.getColumnTypeName(i);
|
||||
String columnName = metaData.getColumnName(i);
|
||||
row.put(columnName, null);
|
||||
//String columnName = metaData.getColumnName(i);
|
||||
String columnLabel = metaData.getColumnLabel(i);
|
||||
row.put(columnLabel, null);
|
||||
|
||||
if (rs.getObject(i) != null) {
|
||||
switch (columnTypeName) {
|
||||
case "DATETIME":
|
||||
case "TIMESTAMP":
|
||||
case "DATE":
|
||||
row.put(columnName, rs.getTimestamp(i).getTime()); break;
|
||||
row.put(columnLabel, rs.getTimestamp(i).getTime()); break;
|
||||
default:
|
||||
row.put(columnName, rs.getObject(i));
|
||||
row.put(columnLabel, rs.getObject(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ public class ParseMysql implements Parser {
|
||||
if (!isEmpty.test(shows)) {
|
||||
shows.forEach(x -> {
|
||||
//buf.append("`").append("x").append("`").append(",");
|
||||
bufSelect.append(x).append(",");
|
||||
bufSelect.append(x).append(" as ").append("'").append(x.replace(".", "\\.")).append("',");
|
||||
});
|
||||
bufSelect.deleteCharAt(bufSelect.length() - 1);
|
||||
} else {
|
||||
|
||||
@@ -157,8 +157,10 @@ public class MetadataService extends BaseService { //arango
|
||||
public List<String> showSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
|
||||
if (items == null || items.size() == 0) return null;
|
||||
|
||||
MetaKit.showUpdate.apply(serviceKey, items);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey);
|
||||
|
||||
metaService.setShows(items);
|
||||
metaService.update();
|
||||
return items;
|
||||
}
|
||||
|
||||
|
||||
@@ -122,6 +122,8 @@ public class RunTest<T> {
|
||||
|
||||
//System.out.println("a$id".split("[$]")[0]);
|
||||
|
||||
System.out.println("x.abx".replace(".", "\\."));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user