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); filters = red.replace$(filters);
return red.postX('/meta/filter_update', {name, filters: JSON.stringify(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 // Meta-Table
itemSort({alias, items}) { itemSort({alias, items}) {

View File

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

View File

@@ -373,21 +373,11 @@ public class MetaKit {
MetaService metaService = getMetaService(name, token); MetaService metaService = getMetaService(name, token);
Kv<String, MetaTable> tables = getMetaTables(metaService, true); Kv<String, MetaTable> tables = getMetaTables(metaService, true);
List<String> exports = metaService.getExports(); List<Map<String,String>> exports = metaService.getExports();
Kv kv = Kv.of(); Kv kv = Kv.of();
//从 meta-table 中得到字段label
exports.forEach(x -> { exports.forEach(x -> {
try { kv.put(x.get("col"), x.get("lable"));
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);
}
}); });
return kv; return kv;
} }
@@ -476,7 +466,7 @@ public class MetaKit {
String alias = col.split("[.]")[0]; String alias = col.split("[.]")[0];
return alias; 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.getShows().stream().map(x -> x.get("col").split("[.]")[0])/*, todo: xxx
metaService.getEdits().stream().map(x -> x.split("[.]")[0])*/ 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<Map> edits = new ArrayList<>();
private List<String> details = new ArrayList<>(); private List<String> details = new ArrayList<>();
private List<Map> filters = 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() { public String getName() {
@@ -95,35 +91,11 @@ public class MetaService extends Doc<MetaService> {
this.filters = filters; this.filters = filters;
} }
public List<String> getExports() { public List<Map<String, String>> getExports() {
return exports; return exports;
} }
public void setExports(List<String> exports) { public void setExports(List<Map<String, String>> exports) {
this.exports = 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; return JBean.OK;
} }
@RestMapping(name = "exportsort", comment = "导出字段排序保存") @RestMapping(name = "exportsave", comment = "导出配置保存")
public List<String> exportSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) { public JBean exportSave(String name , List<Map<String,String>> exports, @RestParam(name = "platToken") String token) {
if (items == null || items.size() == 0) return null; if (exports == null || exports.size() == 0) return null;
MetaService metaService = MetaKit.getMetaService(serviceKey, token); MetaService metaService = MetaKit.getMetaService(name, token);
metaService.setExports(items); metaService.setExports(exports);
metaService.update(); metaService.update();
MetaKit.reload(metaService); MetaKit.reload(metaService);
return items; return JBean.OK;
} }
@RestMapping(name = "importsort", comment = "导入字段保存") @RestMapping(name = "importsort", comment = "导入字段保存")