'新增导出功能'
This commit is contained in:
@@ -78,5 +78,16 @@ const meta = {
|
||||
itemUpdate({alias, items}) {
|
||||
return red.postX('/meta/itemupdate', {alias, items: JSON.stringify(items)})
|
||||
},
|
||||
|
||||
//client
|
||||
exportData({fbean, cate}) {
|
||||
if (cate == 'excel') {
|
||||
location.href = "/data/export?fBean=" + JSON.stringify(fbean) + "&platToken=" + red.getPlatToken() + "&cate=csv";
|
||||
} else if (cate == 'cvs') {
|
||||
|
||||
} else if (cate == 'json') {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,14 +22,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--<h3>高级查询 - [测试用例]</h3>
|
||||
<div class="col-md-6">
|
||||
<select class="form-control" v-model="service" style="width: 300px;">
|
||||
<option v-for="t in services" :value="t.name">{{t.comment}} [{{t.name}}]</option>
|
||||
</select>
|
||||
</div>-->
|
||||
|
||||
<!-- 业务列表 -->
|
||||
<div class="col-md-2">
|
||||
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 业务列表(Meta-Service)</div>
|
||||
@@ -129,7 +121,7 @@
|
||||
</row>
|
||||
|
||||
<script>
|
||||
let {getServiceList, getCfg, getDataList} = meta;
|
||||
let {getServiceList, getCfg, getDataList, exportData} = meta;
|
||||
var vm = new Vue({
|
||||
el:".data-list",
|
||||
data: {
|
||||
@@ -140,9 +132,6 @@
|
||||
},
|
||||
services:[],
|
||||
service:"",
|
||||
//tables: [],
|
||||
//table: "",
|
||||
//filters: [],
|
||||
|
||||
addFilter: "recompany",
|
||||
para: {},
|
||||
@@ -174,67 +163,17 @@
|
||||
},
|
||||
methods: {
|
||||
findList() {
|
||||
vm.list = {rows:[], total:0};
|
||||
// filters
|
||||
let filters = [];
|
||||
//filters.push({col: "status", value: 9, type: "NOTEQUAL"});
|
||||
for (i in this.cfg.filters) {
|
||||
let filter = this.cfg.filters[i];
|
||||
if (filter.checked && filter['value']) {
|
||||
let {name: col, value, type} = filter;
|
||||
filters.push({col, value, type});
|
||||
}
|
||||
}
|
||||
// orders
|
||||
let orders = [];
|
||||
//截取真实字段名,(考虑如果多表关联情况,是否需要加入真实字段名)
|
||||
if (vm.order.col) {
|
||||
var end = vm.order.col.indexOf("\|");
|
||||
if (end < 0) {
|
||||
end = vm.order.col.indexOf("=")
|
||||
}
|
||||
|
||||
var col = vm.order.col;
|
||||
if (end > 0) {
|
||||
col = vm.order.col.substring(0, end);
|
||||
}
|
||||
|
||||
orders.push({col: col, desc: vm.order.desc});
|
||||
}
|
||||
|
||||
// fbean
|
||||
let fbean = {
|
||||
name: this.service,
|
||||
filters: filters,
|
||||
orders: orders,
|
||||
limit: vm.limit,
|
||||
};
|
||||
|
||||
this.list = {rows:[], total:0};
|
||||
let fbean = this.buildFBean();
|
||||
getDataList(fbean, json => {
|
||||
console.log(json)
|
||||
vm.list = json;
|
||||
});
|
||||
},
|
||||
exportExcel() {
|
||||
var data = [];
|
||||
for (k in vm.para) {
|
||||
if (vm.para[k] != '') {
|
||||
var d = {};
|
||||
d["col"] = k;
|
||||
d["value"] = vm.para[k];
|
||||
d["type"] = $("select[name=" + k + "_cate]").val();
|
||||
data.push(d);
|
||||
}
|
||||
}
|
||||
//data.push({col: "status", value: 9, type: "NOTEQUAL"});
|
||||
|
||||
var fBean = {
|
||||
keyService: vm.table,
|
||||
filters: data,
|
||||
orders: [{col: "status", desc: -1}],
|
||||
limit: {ps: 5}
|
||||
}
|
||||
location.href = "/export/data?fBean=" + JSON.stringify(fBean) + "&platToken=" + red.getPlatToken() + "&cate=csv";
|
||||
let fbean = this.buildFBean();
|
||||
fbean['limit'] = {pn:1, ps: 1000}
|
||||
exportData({fbean, cate:'excel'})
|
||||
return;
|
||||
},
|
||||
serviceList() {
|
||||
@@ -247,31 +186,31 @@
|
||||
getCfg({name: this.service}).then(res => this.cfg = res);
|
||||
},
|
||||
dealField(bean, field) {
|
||||
var str = "";
|
||||
let str = "";
|
||||
if (!bean || !field) {
|
||||
|
||||
} else if (typeof(field) === 'function') {
|
||||
str = field(bean);
|
||||
} else if (field.indexOf("||") > 0) {//处理字典数据
|
||||
var dic_type = field.split("||")[1];
|
||||
var v = bean[field.split("||")[0]];
|
||||
let dic_type = field.split("||")[1];
|
||||
let v = bean[field.split("||")[0]];
|
||||
str = kvExtDeal(dic_type, v);
|
||||
} else if (field.indexOf("|") > 0) {//处理字典数据
|
||||
var dic_type = field.split("|")[1];
|
||||
var v = bean[field.split("|")[0]];
|
||||
let dic_type = field.split("|")[1];
|
||||
let v = bean[field.split("|")[0]];
|
||||
str = v;//kvDeal(dic_type, v);
|
||||
}
|
||||
else if (field.indexOf("=") > 0) {//处理字典数据
|
||||
var fun = field.split("=")[1];
|
||||
var v = bean[field.split("=")[0]];
|
||||
let fun = field.split("=")[1];
|
||||
let v = bean[field.split("=")[0]];
|
||||
return v;
|
||||
//eval("str =$funs."+ fun +"('"+ v +"')");
|
||||
}
|
||||
else if (field.indexOf("-") > 0) {
|
||||
var name = field.split("-")[0];
|
||||
var path = field.split("-")[1];
|
||||
let name = field.split("-")[0];
|
||||
let path = field.split("-")[1];
|
||||
if (bean[name]) {
|
||||
var href = config.services.issct + "/downLoadFdfs?fileId=" + encodeURI(bean[path]) + "&filename=" + encodeURI(bean[name]);
|
||||
let href = config.services.issct + "/downLoadFdfs?fileId=" + encodeURI(bean[path]) + "&filename=" + encodeURI(bean[name]);
|
||||
str = "<a href='" + href + "' target='_blank'>" + bean[name] + "</a>";
|
||||
}
|
||||
} else if (bean[field] === 0) { //特殊值 "0" 处理
|
||||
@@ -304,6 +243,44 @@
|
||||
}
|
||||
return '';
|
||||
},
|
||||
buildFBean() {
|
||||
// filters
|
||||
let filters = [];
|
||||
//filters.push({col: "status", value: 9, type: "NOTEQUAL"});
|
||||
for (i in this.cfg.filters) {
|
||||
let filter = this.cfg.filters[i];
|
||||
if (filter.checked && filter['value']) {
|
||||
let {name: col, value, type} = filter;
|
||||
filters.push({col, value, type});
|
||||
}
|
||||
}
|
||||
// orders
|
||||
let orders = [];
|
||||
//截取真实字段名,(考虑如果多表关联情况,是否需要加入真实字段名)
|
||||
if (vm.order.col) {
|
||||
var end = vm.order.col.indexOf("\|");
|
||||
if (end < 0) {
|
||||
end = vm.order.col.indexOf("=")
|
||||
}
|
||||
|
||||
var col = vm.order.col;
|
||||
if (end > 0) {
|
||||
col = vm.order.col.substring(0, end);
|
||||
}
|
||||
|
||||
orders.push({col: col, desc: vm.order.desc});
|
||||
}
|
||||
|
||||
// fbean
|
||||
let fbean = {
|
||||
name: this.service,
|
||||
filters: filters,
|
||||
orders: orders,
|
||||
limit: this.limit,
|
||||
};
|
||||
|
||||
return fbean
|
||||
},
|
||||
showInfo() {
|
||||
$('#f-info').modal({moveable: true})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user