This commit is contained in:
2019-04-24 15:32:00 +08:00
parent 0527faf25e
commit e13588f3ab
5 changed files with 79 additions and 75 deletions

View File

@@ -66,6 +66,10 @@ const meta = {
filters = red.replace$(filters);
return red.postX('/meta/filter_update', {name, filters: JSON.stringify(filters)})
},
exportSave({name, exports}) {
exports = red.replace$(exports);
return red.postX('/meta/exportsave', {name, exports: JSON.stringify(exports)})
},
// Meta-Table
itemSort({alias, items}) {

View File

@@ -91,7 +91,7 @@
<!-- 实体字段信息 -->
<div class="col-md-4" style="padding-left: 0px;">
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 字段信息</div>
<div style="padding-left: 10px;background-color: #ccc;"> 字段信息</div>
<table class="table table-bordered">
<tr>
<td v-show="status==3 || status==4 || status==5 || status==6"><input type="checkbox"></td>
@@ -104,7 +104,7 @@
<th>备注</th>-->
</tr>
<tr v-for="(item, index) in serviceDetail['tables'][sheet].items">
<td v-show="status==3"><input type="checkbox" v-model="serviceInfo.exports" :value="sheet + '$' + item.name"></td>
<td v-show="status==3"><input type="checkbox" v-model="exportArr" :value="sheet + '$' + item.name"></td>
<td v-show="status==4"><input type="checkbox" v-model="serviceInfo.imports" :value="sheet + '$' + item.name"></td>
<td v-show="status==5"><input type="checkbox" v-model="showFields" :value="sheet + '$' + item.name"></td>
<td v-show="status==6"><input type="checkbox" v-model="filterArr" :value="sheet + '$' + item.name"></td>
@@ -122,8 +122,8 @@
<div class="col-md-6" style="padding-left: 0px;padding-right: 0px;">
<!-- shows -->
<div id="show" v-show="status==5">
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 列表配置</div>
<table class="table table-bordered table-auto" style="width: 100%;background-color: #fff;">
<div style="padding-left: 10px;background-color: #ccc;"> 列表配置</div>
<table class="table table-bordered table-auto">
<thead>
<tr>
<th></th>
@@ -145,7 +145,7 @@
<!-- exports -->
<div id="export" v-show="status==3">
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 查询配置</div>
<div style="padding-left: 10px;background-color: #ccc;"> 导出配置</div>
<table class="table table-bordered table-auto" style="width: 100%">
<thead>
<tr>
@@ -155,13 +155,12 @@
<!--<th>展示名</th>-->
</tr>
</thead>
<tr v-for="(item, index) in serviceInfo.exports">
<tr v-for="item in serviceInfo.exports">
<td class="icon icon-move">
<input name="name" :value="item" type="hidden">
<input type="hidden" name="item" :value="JSON.stringify(item)">
</td>
<td v-text="item" style="background-color: rgb(235, 235, 228);"></td>
<td v-text="">{{getFieldLabel(item)}}</td>
<td v-show="false"><input v-model="item.label" style="width: 100px;"></td>
<td v-text="item.col" style="background-color: rgb(235, 235, 228);"></td>
<td style="padding: 1px;"><input v-model="item.label" class="form-control" style="width: 130px;padding: 0px"></td>
</tr>
</table>
</div>
@@ -274,7 +273,7 @@
</row>
<script>
let { getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave, filterSave } = meta;
let { getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave, filterSave, exportSave } = meta;
let { showOk } = red
var vm = new Vue({
@@ -325,7 +324,10 @@
tables: [],
//shows
showFields: []
showFields: [],
//exports
exportArr:[],
},
watch: {
status: function (v) {
@@ -354,6 +356,13 @@
showFields.push(v['shows'][i]['col'])
}
this.showFields = showFields
//exports
let exportArr = []
for (let i in v['exports']) {
exportArr.push(v['exports'][i]['col'])
}
this.exportArr = exportArr
},
serviceDetail: function (v) {
var arr = [];
@@ -437,6 +446,36 @@
}
this.serviceInfo.shows = _shows
},
exportArr(v) {
let exports = this.serviceInfo.exports
//添加新增的
a:for(let i in v) {
b:for(let j in exports) {
if (v[i] == exports[j]['col']) {
if (!exports[j]['label']) {
exports[j]['label'] = this.getFieldLabel(v[i])
}
continue a
}
}
let label = this.getFieldLabel(v[i])
exports.push({col: v[i], label: label})
}
//去除删除的
let _exports = []
a:for(let i in exports) {
b:for (let j in v) {
if (exports[i]['col'] == v[j]) {
_exports.push(exports[i])
continue a;
}
}
}
this.serviceInfo.exports = _exports
}
},
methods: {
@@ -474,6 +513,7 @@
setMove: function () {
$(`#filter>table>tbody,
#show>table>tbody,
#export>table>tbody,
#show>table>tbody`).sortable({
selector: 'tr',
trigger: '.icon',
@@ -515,7 +555,7 @@
}
});
} else if (this.status == 3) {
$('#export>table>tbody').sortable({
/*$('#export>table>tbody').sortable({
selector: 'tr',
finish: function (e) {
let rows = e.list;
@@ -526,7 +566,7 @@
}
vm.serviceInfo.exports = shows;
}
});
});*/
}
else if (this.status == 6) {
/*$('#filter>table>tbody').sortable({
@@ -574,7 +614,7 @@
items: JSON.stringify(vm.itemEdit)
}).then(() => showOk());
}
else if (vm.status == 3 || vm.status == 4 /*|| vm.status == 5*/) {
else if (/*vm.status == 3 ||*/ vm.status == 4 /*|| vm.status == 5*/) {
var urls = {3: "/meta/exportsort", 4: "/meta/importsort", 5: "/meta/showsort"};
var items = {3: vm.serviceInfo.exports, 4: vm.serviceInfo.imports, 5: vm.serviceInfo.shows};
@@ -606,17 +646,15 @@
filters.push(JSON.parse(item))
}
filterSave({name: this.service, filters}).then(res => red.showOk())
/*let filterData = [];
for (i in this.filterArr) {
filterData.push(this.filterMap[this.filterArr[i]]);
}
else if (vm.status == 3) {
let doms = $("#export>table>tbody>tr")
let exports = []
for (let i = 0; i < doms.length; i++) {
let item = $(doms[i]).find("input[name='item']").val();
exports.push(JSON.parse(item))
}
red.postX("/meta/filter_update", {
serviceKey: vm.service,
filters: JSON.stringify(red.replace$(filterData))
}).then(() => showOk());*/
exportSave({name: this.service, exports}).then(res => red.showOk())
}
else if (vm.status == 7) {

View File

@@ -373,21 +373,11 @@ public class MetaKit {
MetaService metaService = getMetaService(name, token);
Kv<String, MetaTable> tables = getMetaTables(metaService, true);
List<String> exports = metaService.getExports();
List<Map<String,String>> exports = metaService.getExports();
Kv kv = Kv.of();
//从 meta-table 中得到字段label
exports.forEach(x -> {
try {
String[] arr = x.split("[.]");
MetaTable table = tables.get(arr[0]);
Optional<Field> any = table.getItems().stream().filter(y -> y.getName().equals(arr[1])).findAny();
Field field = any.get();
kv.put(x, field.getLabel());
} catch (Exception e) {
new IllegalArgumentException(String.format("字段信息处理异常:[%s]", x), e);
}
kv.put(x.get("col"), x.get("lable"));
});
return kv;
}
@@ -476,7 +466,7 @@ public class MetaKit {
String alias = col.split("[.]")[0];
return alias;
}),
metaService.getExports().stream().map(x -> x.split("[.]")[0]),
metaService.getExports().stream().map(x -> x.get("col").split("[.]")[0]),
metaService.getShows().stream().map(x -> x.get("col").split("[.]")[0])/*, todo: xxx
metaService.getEdits().stream().map(x -> x.split("[.]")[0])*/
);

View File

@@ -23,12 +23,8 @@ public class MetaService extends Doc<MetaService> {
private List<Map> edits = new ArrayList<>();
private List<String> details = new ArrayList<>();
private List<Map> filters = new ArrayList<>();
private List<String> exports = new ArrayList<>();
private List<Map<String,String>> exports = new ArrayList<>();
//待组装数据
//private MetaTable metaTable;
//private List<MetaLink> metaLinks;//[{alias:"b", table:"dept", link:[mk,lk]}, xxxx]
//private Map<String, MetaTable> tables;
//-------------------------------------------
public String getName() {
@@ -95,35 +91,11 @@ public class MetaService extends Doc<MetaService> {
this.filters = filters;
}
public List<String> getExports() {
public List<Map<String, String>> getExports() {
return exports;
}
public void setExports(List<String> exports) {
public void setExports(List<Map<String, String>> exports) {
this.exports = exports;
}
/*public MetaTable getMetaTable() {
return metaTable;
}
public void setMetaTable(MetaTable metaTable) {
this.metaTable = metaTable;
}*/
/*public List<MetaLink> getMetaLinks() {
return metaLinks;
}
public void setMetaLinks(List<MetaLink> metaLinks) {
this.metaLinks = metaLinks;
}*/
/*public Map<String, MetaTable> getTables() {
return tables;
}
public void setTables(Map<String, MetaTable> tables) {
this.tables = tables;
}*/
}

View File

@@ -160,16 +160,16 @@ public class MetadataService extends BaseService { //arango
return JBean.OK;
}
@RestMapping(name = "exportsort", comment = "导出字段排序保存")
public List<String> exportSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
if (items == null || items.size() == 0) return null;
@RestMapping(name = "exportsave", comment = "导出配置保存")
public JBean exportSave(String name , List<Map<String,String>> exports, @RestParam(name = "platToken") String token) {
if (exports == null || exports.size() == 0) return null;
MetaService metaService = MetaKit.getMetaService(serviceKey, token);
metaService.setExports(items);
MetaService metaService = MetaKit.getMetaService(name, token);
metaService.setExports(exports);
metaService.update();
MetaKit.reload(metaService);
return items;
return JBean.OK;
}
@RestMapping(name = "importsort", comment = "导入字段保存")