支持查询条件自定义名称
This commit is contained in:
@@ -62,6 +62,10 @@ const meta = {
|
||||
shows = red.replace$(shows);
|
||||
return red.postX('/meta/showsort', {name, shows: JSON.stringify(shows)})
|
||||
},
|
||||
filterSave({name, filters}) {
|
||||
filters = red.replace$(filters);
|
||||
return red.postX('/meta/filter_update', {name, filters: JSON.stringify(filters)})
|
||||
},
|
||||
|
||||
// Meta-Table
|
||||
itemSort({alias, items}) {
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 实体字段信息 -->
|
||||
<div class="col-md-5" style="padding-left: 0px;">
|
||||
<div class="col-md-4" style="padding-left: 0px;">
|
||||
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 字段信息</div>
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
@@ -98,8 +98,8 @@
|
||||
<th v-show="status==1"></th>
|
||||
<th>字段名</th>
|
||||
<th>中文名</th>
|
||||
<th>数据类型</th>
|
||||
<!--<th>输入类型</th>
|
||||
<!--<th>数据类型</th>
|
||||
<th>输入类型</th>
|
||||
<th>附加属性</th>
|
||||
<th>备注</th>-->
|
||||
</tr>
|
||||
@@ -111,15 +111,15 @@
|
||||
|
||||
<td v-text="item.name" style="background-color: rgb(235, 235, 228);"></td>
|
||||
<td v-text="item.label"></td>
|
||||
<td v-text="item.type"></td>
|
||||
<!--<td v-text="item.inType"></td>
|
||||
<!--<td v-text="item.type"></td>
|
||||
<td v-text="item.inType"></td>
|
||||
<td v-text="item.inExt"></td>
|
||||
<td v-text="item.remark"></td>-->
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5" style="padding-left: 0px;padding-right: 0px;">
|
||||
<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>
|
||||
@@ -138,7 +138,7 @@
|
||||
<input name="label" :value="item.label" type="hidden">
|
||||
</td>
|
||||
<td v-text="item.col" style="background-color: rgb(235, 235, 228);"></td>
|
||||
<td ><input v-model="item.label" class="form-control" style="width: 100px;padding: 0px"></td>
|
||||
<td style="padding: 1px;"><input v-model="item.label" class="form-control" style="width: 130px;padding: 0px"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -208,20 +208,20 @@
|
||||
<th>支持查询类型</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr v-for="(item, index) in filterArr">
|
||||
<tr v-for="item in serviceInfo.filters">
|
||||
<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>
|
||||
<td v-text="item.name" 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>
|
||||
<td style="padding: 1px;">
|
||||
<label>
|
||||
<input type="checkbox" v-model="filterMap[item].checked" value="1"> 展示
|
||||
<input type="checkbox" v-model="item.checked" value="1"> 展示
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<td style="padding: 1px;">
|
||||
<label class="checkbox-inline" v-for="c in filterCate">
|
||||
<input type="checkbox" v-model="filterMap[item].filterType" :value="c"> {{c}}
|
||||
<input type="checkbox" v-model="item.filterType" :value="c"> {{c}}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -274,7 +274,7 @@
|
||||
</row>
|
||||
|
||||
<script>
|
||||
let { getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave } = meta;
|
||||
let { getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave, filterSave } = meta;
|
||||
let { showOk } = red
|
||||
|
||||
var vm = new Vue({
|
||||
@@ -294,7 +294,7 @@
|
||||
shows: [],
|
||||
exports: [],
|
||||
imports: [],
|
||||
filters: [{name:"", filterType:[""]}]
|
||||
filters: [{name: '', label: '', filterType: ['']}]
|
||||
},
|
||||
serviceDetail: {tables: {a:{items:[]}}},
|
||||
|
||||
@@ -316,8 +316,10 @@
|
||||
services: [],//业务列表
|
||||
service: "", //页面选择的业务类型
|
||||
table: "",//表别名
|
||||
|
||||
//filter
|
||||
filterArr:[],
|
||||
filterMap:{},
|
||||
//filterMap:{},
|
||||
|
||||
createRow: {},
|
||||
tables: [],
|
||||
@@ -339,19 +341,17 @@
|
||||
this.loadDetail(v);
|
||||
},
|
||||
serviceInfo: function(v) {
|
||||
let arr = [];
|
||||
let map = {};
|
||||
v["filters"].forEach(function (f) {
|
||||
arr.push(f["name"]);
|
||||
map[f["name"]] = f;
|
||||
//filters
|
||||
let filterArr = [];
|
||||
v['filters'].forEach(function (f) {
|
||||
filterArr.push(f["name"]);
|
||||
});
|
||||
this.filterMap = map;
|
||||
this.filterArr = arr;
|
||||
this.filterArr = filterArr;
|
||||
|
||||
//shows
|
||||
let showFields = []
|
||||
for (let i in v.shows) {
|
||||
showFields.push(v.shows[i]['col'])
|
||||
for (let i in v['shows']) {
|
||||
showFields.push(v['shows'][i]['col'])
|
||||
}
|
||||
this.showFields = showFields
|
||||
},
|
||||
@@ -366,23 +366,47 @@
|
||||
sheet: function (v) {
|
||||
this.table = v;
|
||||
},
|
||||
filterArr: function (v) {
|
||||
let map = {};
|
||||
for(j in v) {
|
||||
let k = v[j];
|
||||
map[k] = this.filterMap[k];
|
||||
if (!map[k]) {
|
||||
for (i in vm.serviceInfo.filters) {
|
||||
if (vm.serviceInfo.filters[i]["name"] == k) {
|
||||
map[k] = vm.serviceInfo.filters[i];
|
||||
filterArr: function (v) { // 添加或删除选项触发
|
||||
let filters = this.serviceInfo.filters
|
||||
//添加新增的
|
||||
a:for (let i in v) {
|
||||
b:for (let j in filters) {
|
||||
if (v[i] == filters[j]['name']) {
|
||||
if (!filters[j]['label']) {
|
||||
filters[j]['label'] = this.getFieldLabel(v[i])
|
||||
}
|
||||
continue a
|
||||
}
|
||||
}
|
||||
if (!map[k]) {
|
||||
map[k] = {name: k, filterType:["EQUAL"], checked: false};//构造filter 对象
|
||||
let label = this.getFieldLabel(v[i])
|
||||
filters.push({name: v[i], label, filterType:["EQUAL"], checked: false})//构造filter 对象
|
||||
}
|
||||
|
||||
// 去除删除的
|
||||
let _filters = []
|
||||
a:for(let i in filters) {
|
||||
b:for (let j in v) {
|
||||
if (filters[i]['name'] == v[j]) {
|
||||
_filters.push(filters[i])
|
||||
continue a;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.filterMap = map;
|
||||
this.serviceInfo.filters = _filters
|
||||
/*for(j in v) {
|
||||
let k = v[j];
|
||||
for (i in vm.serviceInfo.filters) {
|
||||
if (vm.serviceInfo.filters[i]["name"] == k) {
|
||||
map[k] = vm.serviceInfo.filters[i];
|
||||
}
|
||||
}
|
||||
if (!map[k]) { //新增
|
||||
let label = this.getFieldLabel(k)
|
||||
map[k] = {name: k, label, filterType:["EQUAL"], checked: false};//构造filter 对象
|
||||
}
|
||||
}*/
|
||||
//this.filterMap = map;
|
||||
//vm.serviceInfo.filters = map;
|
||||
},
|
||||
showFields(v) {
|
||||
let shows = this.serviceInfo.shows
|
||||
@@ -448,6 +472,15 @@
|
||||
return '';
|
||||
},
|
||||
setMove: function () {
|
||||
$(`#filter>table>tbody,
|
||||
#show>table>tbody,
|
||||
#show>table>tbody`).sortable({
|
||||
selector: 'tr',
|
||||
trigger: '.icon',
|
||||
finish: function (e) {}
|
||||
});
|
||||
|
||||
|
||||
if (this.status == 1) {
|
||||
$('#sortableList,table>tbody').sortable({
|
||||
selector: '.list-group-item, tr',
|
||||
@@ -463,11 +496,11 @@
|
||||
});
|
||||
}
|
||||
else if (this.status == 5) {
|
||||
$('#show>table>tbody').sortable({
|
||||
/*$('#show>table>tbody').sortable({
|
||||
selector: 'tr',
|
||||
trigger: '.icon',
|
||||
finish: function (e) {}
|
||||
});
|
||||
});*/
|
||||
} else if (this.status == 4) {
|
||||
$('#import>table>tbody').sortable({
|
||||
selector: 'tr',
|
||||
@@ -485,10 +518,10 @@
|
||||
$('#export>table>tbody').sortable({
|
||||
selector: 'tr',
|
||||
finish: function (e) {
|
||||
var rows = e.list;
|
||||
var shows = [];
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var item = $(rows[i]).find("input[name='name']").val();
|
||||
let rows = e.list;
|
||||
let shows = [];
|
||||
for (let i = 0; i < rows.length; i++) {
|
||||
let item = $(rows[i]).find("input[name='name']").val();
|
||||
shows.push(item);
|
||||
}
|
||||
vm.serviceInfo.exports = shows;
|
||||
@@ -496,18 +529,11 @@
|
||||
});
|
||||
}
|
||||
else if (this.status == 6) {
|
||||
$('#filter>table>tbody').sortable({
|
||||
/*$('#filter>table>tbody').sortable({
|
||||
selector: 'tr',
|
||||
finish: function (e) {
|
||||
var rows = e.list;
|
||||
var filterArr = [];
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var item = $(rows[i]).find("input[name='name']").val();
|
||||
filterArr.push(item);
|
||||
}
|
||||
vm.filterArr = filterArr;
|
||||
}
|
||||
});
|
||||
trigger: '.icon',
|
||||
finish: function (e) {}
|
||||
});*/
|
||||
}
|
||||
|
||||
else {
|
||||
@@ -573,7 +599,14 @@
|
||||
}
|
||||
|
||||
else if (vm.status == 6) {
|
||||
let filterData = [];
|
||||
let doms = $("#filter>table>tbody>tr")
|
||||
let filters = []
|
||||
for (let i = 0; i < doms.length; i++) {
|
||||
let item = $(doms[i]).find("input[name='item']").val();
|
||||
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]]);
|
||||
@@ -582,7 +615,7 @@
|
||||
red.postX("/meta/filter_update", {
|
||||
serviceKey: vm.service,
|
||||
filters: JSON.stringify(red.replace$(filterData))
|
||||
}).then(() => showOk());
|
||||
}).then(() => showOk());*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -94,9 +94,6 @@
|
||||
},
|
||||
},
|
||||
mounted: function () {
|
||||
red.dbPlats(function (json) {
|
||||
vm.dbPlats = json;
|
||||
});
|
||||
|
||||
this.tableList();
|
||||
}
|
||||
|
||||
@@ -139,6 +139,7 @@
|
||||
<script>
|
||||
let {getTableList, tableInfo, itemSort, itemUpdate} = meta;
|
||||
let {showOk} = red
|
||||
let {dbList} = plat
|
||||
|
||||
var vm = new Vue({
|
||||
el: ".meta-list",
|
||||
@@ -422,10 +423,9 @@
|
||||
|
||||
},
|
||||
mounted: function (){
|
||||
//dbPlats 列表初始化
|
||||
red.dbPlats(function (json) {
|
||||
vm.dbPlats = json;
|
||||
});
|
||||
dbList().then(res => {
|
||||
this.dbPlats = res.rows;
|
||||
})
|
||||
|
||||
this.tableList();
|
||||
|
||||
|
||||
@@ -147,11 +147,6 @@ var red = {
|
||||
callback(json);
|
||||
});
|
||||
},
|
||||
dbPlats: function(callBack) {
|
||||
red.getJSON("/meta/db_plat_list", {}, function (json) {
|
||||
callBack(json);
|
||||
});
|
||||
},
|
||||
|
||||
putAll: function(t, s) {
|
||||
t = t || {};
|
||||
@@ -191,8 +186,8 @@ var red = {
|
||||
}
|
||||
},
|
||||
replaceAll: function (d, s, t) {
|
||||
var reg=new RegExp(s,"g"); //创建正则RegExp对象
|
||||
var str = JSON.stringify(d);
|
||||
let reg=new RegExp(s,"g"); //创建正则RegExp对象
|
||||
let str = JSON.stringify(d);
|
||||
str = str.replace(reg, t)
|
||||
return JSON.parse(str);
|
||||
},
|
||||
|
||||
@@ -302,7 +302,7 @@ public class MetaKit {
|
||||
.findFirst()
|
||||
.ifPresent(y -> {
|
||||
filter.set("name", x.get("name"));
|
||||
filter.set("label", y.getLabel());
|
||||
filter.set("label", x.get("label") != null ? x.get("label") : y.getLabel());
|
||||
List<Kv> types = new ArrayList<>();
|
||||
List<String> list = (List) x.get("filterType");
|
||||
list.forEach(t -> {
|
||||
|
||||
@@ -196,11 +196,11 @@ public class MetadataService extends BaseService { //arango
|
||||
}
|
||||
|
||||
@RestMapping(name = "filter_update", comment = "查询配置修改")
|
||||
public JBean filterUpdate(@RestParam(name = "serviceKey") String serviceKey,
|
||||
public JBean filterUpdate(@RestParam(name = "name") String name,
|
||||
@RestParam(name = "filters") String filters,
|
||||
@RestParam(name = "platToken") String token) {
|
||||
List _filters = gson.fromJson(filters, List.class);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey, token);
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
metaService.setFilters(_filters);
|
||||
|
||||
metaService.update();
|
||||
|
||||
Reference in New Issue
Block a user