1、使用Promise,重写red.getJSON /red.post, 解决"回调地狱"问题
2、修改 数据源管理/平台信息管理
This commit is contained in:
@@ -42,9 +42,9 @@ function getServiceDetail({name}, callback) {
|
||||
});
|
||||
}*/
|
||||
const meta = {
|
||||
getPlats: (callback) => {
|
||||
/*getPlats: (callback) => {
|
||||
red.getJSON("/meta/plat_list", {}, json => callback(json));
|
||||
},
|
||||
},*/
|
||||
getTableList(callback) {
|
||||
red.getJSON("/meta/tablelist",{}, json => callback(json));
|
||||
},
|
||||
|
||||
17
root/api/plat.js
Normal file
17
root/api/plat.js
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
const plat = {
|
||||
|
||||
platList(params) { // 平台列表
|
||||
return red.getX('/plat/list', params)
|
||||
},
|
||||
platSave({plat}) {
|
||||
return red.postX('/plat/save', {plat})
|
||||
},
|
||||
|
||||
dbList(params) { // 数据源列表
|
||||
return red.getX('/plat/db_list', params)
|
||||
},
|
||||
dbSave({plat}) {
|
||||
return red.postX('/plat/db_save', {plat})
|
||||
},
|
||||
}
|
||||
@@ -90,6 +90,7 @@
|
||||
<script src="./res/zui/js/zui.js" defer></script>
|
||||
<script src="./res/js/red.js" defer></script>
|
||||
<script src="./api/meta.js" defer></script>
|
||||
<script src="./api/plat.js" defer></script>
|
||||
<script src="./res/zui/lib/sortable/zui.sortable.js" defer></script>
|
||||
<!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
|
||||
<script type="module">
|
||||
|
||||
@@ -100,13 +100,14 @@
|
||||
</row>
|
||||
|
||||
<script>
|
||||
let {dbList, dbSave} = plat
|
||||
|
||||
var vm = new Vue({
|
||||
el: ".plat",
|
||||
data: {
|
||||
cfg: {
|
||||
title: "数据中心 管理",
|
||||
cols: [
|
||||
{col: "_id", label: "ID"},
|
||||
{col: "name", label: "数据平台名称"},
|
||||
{col: "url", label: "数据平台连接地址"},
|
||||
{col: "user", label: "用户"},
|
||||
@@ -150,7 +151,11 @@
|
||||
},
|
||||
methods: {
|
||||
findList: function () {
|
||||
var para = {
|
||||
dbList().then(res => {
|
||||
vm.list = res;
|
||||
})
|
||||
|
||||
/*var para = {
|
||||
doc:"db_plat",
|
||||
shows: JSON.stringify(["_id", "name", "url", "user", "pwd", "catalogs", "remark", "status"])
|
||||
};
|
||||
@@ -159,7 +164,7 @@
|
||||
json.rows[i]["pulse"] = "";
|
||||
}
|
||||
vm.list = json;
|
||||
})
|
||||
})*/
|
||||
},
|
||||
update: function (kv, row) {
|
||||
red.post("/meta/save", {
|
||||
@@ -178,14 +183,20 @@
|
||||
$('#myModal').modal({moveable: true});
|
||||
},
|
||||
save: function (row) {
|
||||
red.post("/meta/save", {
|
||||
dbSave({plat: row}).then(() => {
|
||||
red.showMsg({msg: "操作成功"})
|
||||
$('#myModal').modal('hide')
|
||||
vm.findList()
|
||||
})
|
||||
|
||||
/* red.post("/meta/save", {
|
||||
_id: row._id || "db_plat",
|
||||
doc: JSON.stringify(row)
|
||||
}, function (json) {
|
||||
red.showMsg();
|
||||
$('#myModal').modal('hide');
|
||||
vm.findList();
|
||||
});
|
||||
}); */
|
||||
},
|
||||
loadCatalogs: function () {
|
||||
vm.catalogs = [];
|
||||
@@ -198,13 +209,13 @@
|
||||
});
|
||||
},
|
||||
dbPulse: function (row) {
|
||||
row["check"] = true;
|
||||
/*row["check"] = true;
|
||||
$.getJSON("/_db/pulse", {
|
||||
dbPlatId: row._id
|
||||
}, function (json) {
|
||||
row["pulse"] = json.body;
|
||||
row["check"] = false;
|
||||
});
|
||||
});*/
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
|
||||
@@ -76,13 +76,14 @@
|
||||
</row>
|
||||
|
||||
<script>
|
||||
let { platList, platSave } = plat;
|
||||
|
||||
var vm = new Vue({
|
||||
el: ".plat",
|
||||
data: {
|
||||
cfg: {
|
||||
title: "业务平台 管理",
|
||||
cols: [
|
||||
{col: "_id", label: "ID"},
|
||||
{col: "name", label: "业务名称"},
|
||||
{col: "token", label: "Token"},
|
||||
{col: "remark", label: "说明"},
|
||||
@@ -100,15 +101,9 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
findList: function () {
|
||||
var para = {
|
||||
doc:"sys_plat",
|
||||
shows: JSON.stringify(["_id", "_key", "name", "token","remark", "status"]),
|
||||
filter: JSON.stringify([{col:"status",type:"!=",value:-1}]),
|
||||
};
|
||||
red.getJSON("/meta/find", para, function (json) {
|
||||
vm.list = json;
|
||||
red.setData("sysPlats", json.rows);
|
||||
findList () {
|
||||
platList().then(res => {
|
||||
vm.list = res
|
||||
})
|
||||
},
|
||||
update: function (kv, row) {
|
||||
@@ -127,14 +122,10 @@
|
||||
$('#myModal').modal({moveable: true});
|
||||
},
|
||||
save: function (row) {
|
||||
red.post("/meta/save", {
|
||||
_id: row._id || "sys_plat",
|
||||
doc: JSON.stringify(row)
|
||||
}, function (json) {
|
||||
red.showMsg();
|
||||
$('#myModal').modal('hide');
|
||||
vm.findList();
|
||||
});
|
||||
platSave({plat: row}).then(() => {
|
||||
red.showMsg({msg: "操作成功"})
|
||||
$('#myModal').modal('hide')
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
|
||||
@@ -51,6 +51,44 @@ var red = {
|
||||
callback(data)
|
||||
})
|
||||
},
|
||||
getX(url, params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get(url, params).then(res => {
|
||||
let data = res.data || {}
|
||||
red.loginCheck(data)
|
||||
if (data.code == -1) {
|
||||
red.showMsg({type:"error", msg: data.message})
|
||||
return;
|
||||
}
|
||||
if (data.code == 0) {
|
||||
data = data.body
|
||||
}
|
||||
|
||||
resolve(data)
|
||||
})
|
||||
})
|
||||
},
|
||||
postX(url, params) {
|
||||
return new Promise(resolve => {
|
||||
axios({
|
||||
url,
|
||||
method: 'post',
|
||||
params,
|
||||
|
||||
}).then(res => {
|
||||
let data = res.data || {}
|
||||
red.loginCheck(data)
|
||||
if (data.code == -1) {
|
||||
red.showMsg({type:"error", msg: data.message})
|
||||
return;
|
||||
}
|
||||
if (data.code == 0) {
|
||||
data = data.body
|
||||
}
|
||||
resolve(data)
|
||||
});
|
||||
})
|
||||
},
|
||||
post: function(url, params, callback) {
|
||||
params["platToken"] = red.getPlatToken()
|
||||
axios.post(url, params).then(res => {
|
||||
|
||||
@@ -102,10 +102,11 @@
|
||||
<script src="../res/js/red.js" defer></script>
|
||||
<script src="../res/libs/axios.min.js" defer></script>
|
||||
<script src="../api/meta.js"></script>
|
||||
<script src="../api/plat.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
|
||||
<script type="module">
|
||||
import { login } from '../api/user.js'
|
||||
let { getPlats } = meta;
|
||||
let { platList } = plat;
|
||||
|
||||
var vm = new Vue({
|
||||
el: ".login",
|
||||
@@ -122,14 +123,15 @@
|
||||
loginCheck: function ({username, pwd}) {
|
||||
login({username, pwd}, function (json) {
|
||||
if (json.code == 0) {
|
||||
getPlats(function (json) {
|
||||
platList().then(res => {
|
||||
let rows = res.rows
|
||||
red.showMsg({msg:"请选择业务平台"})
|
||||
|
||||
vm.sysPlats = json;
|
||||
vm.sysPlats = rows;
|
||||
if (!vm.sysPlat) {
|
||||
vm.sysPlat = json[0];
|
||||
vm.sysPlat = rows[0];
|
||||
}
|
||||
red.setData("sysPlats", json);
|
||||
red.setData("sysPlats", rows);
|
||||
setTimeout(function () {
|
||||
vm.choose = true;
|
||||
}, 500);
|
||||
|
||||
Reference in New Issue
Block a user