Commit d51d8e82 by inrgihc

修复反馈的问题

parent 4a5be8f9
NOTHING
\ No newline at end of file
// SQLREST - 一个Java语言编写的快速构建RESTful的API接口工具
// Copyright (c) 2025, tang(inrgihc@126.com). All rights reserved.
// Use of this source code is governed by a BSD-style license
// https://gitee.com/inrgihc/sqlrest
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of tang(inrgihc) nor the names of other contributors
// may be used to endorse or promote products derived from this software
// without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
......@@ -6,7 +6,7 @@
### 1、功能介绍
一句话, sqlrest工具提供快速构建RESTful的API接口工具,包括SQl方式和Groovy脚本方式。利用SQL生成数据API的方式,用户只需选择数据
一句话, sqlrest提供利用SQL快速构建RESTful接口的工具,包括SQl方式和Groovy脚本方式。用户只需选择数据
源、输入SQL或脚本、简单path配置即可快速生成API接口。具体功能包括:
- Mybatis的SQL方式构建RESTful接口
......@@ -235,6 +235,6 @@ MYSQLDB_PASSWORD=123456
## 五、问题反馈
如果您看到并使用了本工具,或您觉得本工具对您有价值,请为此项目**点个赞**,以表示对本项目的支持,多谢!如果您在使用时遇到了bug,欢迎在issue中反馈。也可扫描下方二维码入群讨论:(加好友请注明:"程序交流")
如果您看到并使用了本工具,或您觉得本工具对您有价值,请为此项目**点个赞**,以表示对本项目的支持,多谢!如果您在使用时遇到了bug,欢迎在issue中反馈。也可扫描下方二维码入群讨论:(加好友请注明:"SQLREST交流")
![structure](https://gitee.com/inrgihc/dbswitch/raw/master/images/weixin.PNG)
......@@ -71,7 +71,7 @@ public class ApiExecuteService {
private String convertInvalidArgs(List<ItemParam> invalidArgs) {
return "无效参数," + invalidArgs.stream().map(
p -> p.getIsArray() ? "数组" : "" + "参数'" + p.getName() + "'位于" + p.getLocation().getIn()
p -> (p.getIsArray() ? "数组" : "") + "参数'" + p.getName() + "'位于" + p.getLocation().getIn()
).collect(Collectors.joining(";"));
}
......@@ -96,7 +96,9 @@ public class ApiExecuteService {
.collect(Collectors.toList());
if (isArray) {
if (CollectionUtils.isEmpty(hv)) {
invalidArgs.add(param);
if(required) {
invalidArgs.add(param);
}
} else {
map.put(name, hv);
}
......@@ -146,7 +148,9 @@ public class ApiExecuteService {
.collect(Collectors.toList());
map.put(name, list);
} else {
invalidArgs.add(param);
if(required) {
invalidArgs.add(param);
}
}
} else {
String value = request.getParameter(name);
......
......@@ -128,8 +128,24 @@ public class ApiAssignmentService {
.collect(Collectors.toList());
Map<String, Object> params = new HashMap<>();
if (!CollectionUtils.isEmpty(request.getParamValues())) {
List<ParamValue> invalidArgs = new ArrayList<>();
for (ParamValue paramValue : request.getParamValues()) {
if (paramValue.getRequired()) {
if (StringUtils.isBlank(paramValue.getValue())) {
invalidArgs.add(paramValue);
}
}
}
if (invalidArgs.size() > 0) {
String msg = "必填参数为空," + invalidArgs.stream().map(
p -> (p.getIsArray() ? "数组" : "") + "参数'" + p.getName()
).collect(Collectors.joining(";"));
throw new CommonException(ResponseErrorCode.ERROR_INVALID_ARGUMENT, msg);
}
Map<String, List<ParamValue>> names = request.getParamValues()
.stream().collect(Collectors.groupingBy(ParamValue::getName));
.stream().filter(i -> StringUtils.isNotBlank(i.getValue()))
.collect(Collectors.groupingBy(ParamValue::getName));
for (Map.Entry<String, List<ParamValue>> entry : names.entrySet()) {
String paramName = entry.getKey();
List<ParamValue> value = entry.getValue();
......@@ -167,8 +183,14 @@ public class ApiAssignmentService {
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding(Charsets.UTF_8.name());
response.getWriter().append(JacksonUtils.toJsonStr(entity, request.getFormatMap().stream()
.collect(Collectors.toMap(DataTypeFormatMapValue::getKey, DataTypeFormatMapValue::getValue, (a, b) -> a))));
Map<DataTypeFormatEnum, String> formatMap = request.getFormatMap().stream()
.collect(
Collectors.toMap(
DataTypeFormatMapValue::getKey,
DataTypeFormatMapValue::getValue,
(a, b) -> a));
response.getWriter().append(JacksonUtils.toJsonStr(entity, formatMap));
}
public Long createAssignment(ApiAssignmentSaveRequest request) {
......@@ -187,6 +209,10 @@ public class ApiAssignmentService {
}
}
}
if (null == request.getDatasourceId() || null == dataSourceDao.getById(request.getDatasourceId())) {
throw new CommonException(ResponseErrorCode.ERROR_INVALID_ARGUMENT,
"Invalid datasourceId or maybe not exist.");
}
if (CollectionUtils.isEmpty(request.getContextList())) {
throw new CommonException(ResponseErrorCode.ERROR_INVALID_ARGUMENT, "contextList");
}
......@@ -250,6 +276,10 @@ public class ApiAssignmentService {
}
}
}
if (null == request.getDatasourceId() || null == dataSourceDao.getById(request.getDatasourceId())) {
throw new CommonException(ResponseErrorCode.ERROR_INVALID_ARGUMENT,
"Invalid datasourceId or maybe not exist.");
}
if (null == request.getNamingStrategy()) {
request.setNamingStrategy(NamingStrategyEnum.CAMEL_CASE);
}
......
......@@ -16,6 +16,7 @@
"vue": "^2.5.2",
"vue-codemirror": "^4.0.6",
"vue-count-to": "^1.0.13",
"vue-json-viewer": "^2.2.22",
"vue-router": "^3.0.1"
},
"devDependencies": {
......@@ -2042,6 +2043,16 @@
"node": ">=4"
}
},
"node_modules/clipboard": {
"version": "2.0.11",
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
"dependencies": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"node_modules/cliui": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1604880017635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz",
......@@ -3835,6 +3846,11 @@
"node": ">=0.10.0"
}
},
"node_modules/delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
"node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
......@@ -5160,6 +5176,14 @@
"node": ">=4"
}
},
"node_modules/good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
"dependencies": {
"delegate": "^3.1.2"
}
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
......@@ -11600,6 +11624,11 @@
"node": ">= 4.3 < 5.0.0 || >= 5.10"
}
},
"node_modules/select": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
},
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
......@@ -12656,6 +12685,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
"node_modules/tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"node_modules/to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
......@@ -13242,6 +13276,17 @@
"integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
"dev": true
},
"node_modules/vue-json-viewer": {
"version": "2.2.22",
"resolved": "https://registry.npmmirror.com/vue-json-viewer/-/vue-json-viewer-2.2.22.tgz",
"integrity": "sha512-3oPH5BxoUWva/qp7wNJj+15FBXyi9Yu5VDW4mCWivjHR1pUpMv34fjqqxML7jh2uOqm1S/3Xks5nQ5JjC5+OWw==",
"dependencies": {
"clipboard": "^2.0.4"
},
"peerDependencies": {
"vue": "^2.6.9"
}
},
"node_modules/vue-loader": {
"version": "13.7.3",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.3.tgz?cache=0&sync_timestamp=1606320732519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-13.7.3.tgz",
......@@ -16307,6 +16352,16 @@
"integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=",
"dev": true
},
"clipboard": {
"version": "2.0.11",
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"cliui": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1604880017635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz",
......@@ -17831,6 +17886,11 @@
}
}
},
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
......@@ -18970,6 +19030,14 @@
"slash": "^1.0.0"
}
},
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
"requires": {
"delegate": "^3.1.2"
}
},
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
......@@ -24267,6 +24335,11 @@
"ajv": "^5.0.0"
}
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
},
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
......@@ -25173,6 +25246,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
......@@ -25681,6 +25759,14 @@
"integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
"dev": true
},
"vue-json-viewer": {
"version": "2.2.22",
"resolved": "https://registry.npmmirror.com/vue-json-viewer/-/vue-json-viewer-2.2.22.tgz",
"integrity": "sha512-3oPH5BxoUWva/qp7wNJj+15FBXyi9Yu5VDW4mCWivjHR1pUpMv34fjqqxML7jh2uOqm1S/3Xks5nQ5JjC5+OWw==",
"requires": {
"clipboard": "^2.0.4"
}
},
"vue-loader": {
"version": "13.7.3",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.3.tgz?cache=0&sync_timestamp=1606320732519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-13.7.3.tgz",
......@@ -18,6 +18,7 @@
"vue": "^2.5.2",
"vue-codemirror": "^4.0.6",
"vue-count-to": "^1.0.13",
"vue-json-viewer": "^2.2.22",
"vue-router": "^3.0.1"
},
"devDependencies": {
......
......@@ -11,10 +11,12 @@ import 'element-ui/lib/theme-chalk/index.css';
import * as echarts from 'echarts'
import VueCodeMirror from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
import JsonViewer from 'vue-json-viewer'
Vue.use(VueCodeMirror)
Vue.use(axios)
Vue.use(ElementUI)
Vue.use(JsonViewer)
Vue.prototype.$http = axios
Vue.config.productionTip = false
......
......@@ -521,7 +521,7 @@
<el-card>
<el-row>
<el-col>
<div style="float: right; padding: 25px">
<div style="float: right; padding: 0px">
<el-button type="primary"
size="mini"
icon="el-icon-arrow-down"
......@@ -605,9 +605,8 @@
v-if="!isOnlyShowDetail"
min-width="25%">
<template slot-scope="scope">
<el-button size="mini"
type="danger"
@click="deleteDebugParamsItem(scope.$index)">删除</el-button>
<el-link icon="el-icon-delete"
@click="deleteDebugParamsItem(scope.$index)"></el-link>
</template>
</el-table-column>
</el-table>
......@@ -627,8 +626,17 @@
</el-row>
<el-row>
<el-col :span="24">
<textarea v-model="debugResponse"
style="width:98%; height:400px"></textarea>
<el-tabs type="border-card">
<el-tab-pane label="执行结果">
<json-viewer :value="debugResponse"
:expand-depth=5
copyable
boxed
sort></json-viewer>
</el-tab-pane>
<el-tab-pane label="执行信息">
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
</el-card>
......@@ -641,6 +649,7 @@ import multiSqlEditer from '@/components/codeEditer/multiSqlEditer'
import scriptEditer from '@/components/codeEditer/scriptEditer'
import urlencode from "urlencode";
import qs from "qs";
import JsonViewer from 'vue-json-viewer';
export default {
name: "common",
......@@ -695,7 +704,7 @@ export default {
keywordHints: [],
inputParams: [],
debugParams: [],
debugResponse: "",
debugResponse: {},
outputParams: [],
responseNamingStrategy: [],
responseTypeFormat: [],
......@@ -758,7 +767,7 @@ export default {
default: false
}
},
components: { multiSqlEditer, scriptEditer },
components: { multiSqlEditer, scriptEditer, JsonViewer },
methods: {
isUpdatePage: function () {
if (this.$route.query.id) {
......@@ -1239,6 +1248,11 @@ export default {
sqls = this.$refs.scriptEditer.queryContent()
}
if (!this.createParam.dataSourceId) {
alert('请选择一个数据源来')
return
}
if (this.checkSqlsOrScriptEmpty(sqls)) {
alert(isSql ? '请检查SQL窗口内容' : '请检查脚本内容')
} else {
......@@ -1335,7 +1349,7 @@ export default {
);
},
handleDebug: function () {
this.debugResponse = ""
this.debugResponse = {}
var sqls = []
var isSql = true;
if (this.createParam.engine === 'SQL') {
......@@ -1346,6 +1360,11 @@ export default {
sqls = this.$refs.scriptEditer.queryContent()
}
if (!this.createParam.dataSourceId) {
alert('请选择一个数据源来')
return
}
if (this.checkSqlsOrScriptEmpty(sqls)) {
alert(isSql ? '请检查SQL窗口内容' : '请检查脚本内容')
} else {
......@@ -1407,7 +1426,7 @@ export default {
}).then(
res => {
if (0 === res.data.code) {
this.debugResponse = JSON.stringify(res.data.data.answer, null, 2);
this.debugResponse = res.data.data.answer;
this.outputParams = [];
let map = res.data.data.types;
for (let key in map) {
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>SQLREST工具</title><link href=/static/css/app.5990ceeaea163540ff3d5b5eb9a84001.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.cc921e50c8b83a5c752c.js></script><script type=text/javascript src=/static/js/vendor.b8089f9fd73f8896df25.js></script><script type=text/javascript src=/static/js/app.d7a659051b7e0c1fbe0a.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>SQLREST工具</title><link href=/static/css/app.12783dabb8bbeeb2d735eddc756c5fdf.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.0d4f9ff79bf0a95f3929.js></script><script type=text/javascript src=/static/js/vendor.c8d1b4a2f97faeee1f2b.js></script><script type=text/javascript src=/static/js/app.e91c35ee8dfca24534db.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([21],{"4/hK":function(n,e){},"6Wpa":function(n,e){},NHnr:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=t("//Fk"),r=t.n(o),i=t("7+uW"),a={render:function(){var n=this.$createElement,e=this._self._c||n;return e("div",{staticClass:"body-wrapper"},[e("router-view")],1)},staticRenderFns:[]};var c=t("VU/8")({name:"App"},a,!1,function(n){t("z/cX")},"data-v-c3654c36",null).exports,u=t("/ocq");i.default.use(u.a);var l=new u.a({routes:[{path:"/",name:"首页",component:function(){return t.e(2).then(t.bind(null,"4er+"))},redirect:"/dashboard",children:[{path:"/dashboard",name:"概览",icon:"el-icon-menu",component:function(){return t.e(9).then(t.bind(null,"ARoL"))}},{path:"/datasource",name:"连接配置",icon:"el-icon-coin",component:function(){return t.e(8).then(t.bind(null,"WGg6"))},children:[{path:"/datasource/driver",name:"驱动配置",icon:"el-icon-help",component:function(){return t.e(3).then(t.bind(null,"uOvO"))}},{path:"/datasource/list",name:"连接管理",icon:"el-icon-bank-card",component:function(){return Promise.all([t.e(0),t.e(5)]).then(t.bind(null,"U0nr"))}}]},{path:"/setting",name:"系统设置",icon:"el-icon-s-tools",component:function(){return t.e(6).then(t.bind(null,"VlR1"))},children:[{path:"/setting/group",name:"授权分组",icon:"el-icon-tickets",component:function(){return Promise.all([t.e(0),t.e(15)]).then(t.bind(null,"cGhg"))}},{path:"/setting/client",name:"客户应用",icon:"el-icon-pie-chart",component:function(){return Promise.all([t.e(0),t.e(13)]).then(t.bind(null,"i2vO"))}},{path:"/setting/firewall",name:"访问控制",icon:"el-icon-notebook-2",component:function(){return Promise.all([t.e(0),t.e(14)]).then(t.bind(null,"n/J7"))}},{path:"/setting/topology",name:"拓扑结构",icon:"el-icon-link",component:function(){return Promise.all([t.e(0),t.e(10)]).then(t.bind(null,"aSAZ"))}}]},{path:"/interface",name:"接口开发",icon:"el-icon-paperclip",component:function(){return t.e(7).then(t.bind(null,"zsKB"))},children:[{path:"/interface/module",name:"模块管理",icon:"el-icon-folder",component:function(){return Promise.all([t.e(0),t.e(17)]).then(t.bind(null,"BOPB"))}},{path:"/interface/list",name:"接口管理",icon:"el-icon-refrigerator",component:function(){return t.e(16).then(t.bind(null,"6PtB"))}}]},{path:"/aboutme",name:"关于系统",icon:"el-icon-s-custom",component:function(){return t.e(1).then(t.bind(null,"AEfp"))}},{path:"/user/self",name:"个人中心",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(4)]).then(t.bind(null,"nqIE"))}},{path:"/interface/create",name:"创建任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(19)]).then(t.bind(null,"5fz/"))}},{path:"/interface/update",name:"修改任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(12)]).then(t.bind(null,"DuIM"))}},{path:"/interface/detail",name:"查看任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(11)]).then(t.bind(null,"+sv1"))}}]},{path:"/login",name:"登录",component:function(){return Promise.all([t.e(0),t.e(18)]).then(t.bind(null,"T+/8"))}}]}),p=t("mtWM"),d=t.n(p).a.create();d.interceptors.request.use(function(n){return n.url=""+n.url,n});var s=d,h=t("zL8q"),m=t.n(h),f=(t("muQq"),t("6Wpa"),t("tvR6"),t("XLwt")),b=t("E5Az"),v=t.n(b);t("4/hK");i.default.use(v.a),i.default.use(s),i.default.use(m.a),i.default.prototype.$http=s,i.default.config.productionTip=!1,i.default.prototype.$echarts=f,s.interceptors.request.use(function(n){var e=sessionStorage.getItem("token");return e&&(n.headers.Authorization="Bearer "+e),n},function(n){return r.a.reject(n)}),s.interceptors.response.use(function(n){return!n.data||401!==n.data.code&&403!==n.data.code&&404!==n.data.code||l.push({path:"/login"}),n},function(n){return r.a.reject(n.response)}),new i.default({el:"#app",router:l,components:{App:c},template:"<App/>"})},muQq:function(n,e){},tvR6:function(n,e){},"z/cX":function(n,e){}},["NHnr"]);
//# sourceMappingURL=app.d7a659051b7e0c1fbe0a.js.map
\ No newline at end of file
webpackJsonp([21],{"4/hK":function(n,e){},"6Wpa":function(n,e){},NHnr:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=t("//Fk"),i=t.n(o),r=t("7+uW"),a={render:function(){var n=this.$createElement,e=this._self._c||n;return e("div",{staticClass:"body-wrapper"},[e("router-view")],1)},staticRenderFns:[]};var c=t("VU/8")({name:"App"},a,!1,function(n){t("z/cX")},"data-v-c3654c36",null).exports,u=t("/ocq");r.default.use(u.a);var l=new u.a({routes:[{path:"/",name:"首页",component:function(){return t.e(2).then(t.bind(null,"4er+"))},redirect:"/dashboard",children:[{path:"/dashboard",name:"概览",icon:"el-icon-menu",component:function(){return t.e(9).then(t.bind(null,"ARoL"))}},{path:"/datasource",name:"连接配置",icon:"el-icon-coin",component:function(){return t.e(8).then(t.bind(null,"WGg6"))},children:[{path:"/datasource/driver",name:"驱动配置",icon:"el-icon-help",component:function(){return t.e(3).then(t.bind(null,"uOvO"))}},{path:"/datasource/list",name:"连接管理",icon:"el-icon-bank-card",component:function(){return Promise.all([t.e(0),t.e(5)]).then(t.bind(null,"U0nr"))}}]},{path:"/setting",name:"系统设置",icon:"el-icon-s-tools",component:function(){return t.e(6).then(t.bind(null,"VlR1"))},children:[{path:"/setting/group",name:"授权分组",icon:"el-icon-tickets",component:function(){return Promise.all([t.e(0),t.e(15)]).then(t.bind(null,"cGhg"))}},{path:"/setting/client",name:"客户应用",icon:"el-icon-pie-chart",component:function(){return Promise.all([t.e(0),t.e(13)]).then(t.bind(null,"i2vO"))}},{path:"/setting/firewall",name:"访问控制",icon:"el-icon-notebook-2",component:function(){return Promise.all([t.e(0),t.e(14)]).then(t.bind(null,"n/J7"))}},{path:"/setting/topology",name:"拓扑结构",icon:"el-icon-link",component:function(){return Promise.all([t.e(0),t.e(10)]).then(t.bind(null,"aSAZ"))}}]},{path:"/interface",name:"接口开发",icon:"el-icon-paperclip",component:function(){return t.e(7).then(t.bind(null,"zsKB"))},children:[{path:"/interface/module",name:"模块管理",icon:"el-icon-folder",component:function(){return Promise.all([t.e(0),t.e(17)]).then(t.bind(null,"BOPB"))}},{path:"/interface/list",name:"接口管理",icon:"el-icon-refrigerator",component:function(){return t.e(16).then(t.bind(null,"6PtB"))}}]},{path:"/aboutme",name:"关于系统",icon:"el-icon-s-custom",component:function(){return t.e(1).then(t.bind(null,"AEfp"))}},{path:"/user/self",name:"个人中心",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(4)]).then(t.bind(null,"nqIE"))}},{path:"/interface/create",name:"创建任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(19)]).then(t.bind(null,"5fz/"))}},{path:"/interface/update",name:"修改任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(12)]).then(t.bind(null,"DuIM"))}},{path:"/interface/detail",name:"查看任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(11)]).then(t.bind(null,"+sv1"))}}]},{path:"/login",name:"登录",component:function(){return Promise.all([t.e(0),t.e(18)]).then(t.bind(null,"T+/8"))}}]}),p=t("mtWM"),d=t.n(p).a.create();d.interceptors.request.use(function(n){return n.url=""+n.url,n});var s=d,h=t("zL8q"),m=t.n(h),f=(t("muQq"),t("6Wpa"),t("tvR6"),t("XLwt")),b=t("E5Az"),v=t.n(b),g=(t("4/hK"),t("R0ti")),P=t.n(g);r.default.use(v.a),r.default.use(s),r.default.use(m.a),r.default.use(P.a),r.default.prototype.$http=s,r.default.config.productionTip=!1,r.default.prototype.$echarts=f,s.interceptors.request.use(function(n){var e=sessionStorage.getItem("token");return e&&(n.headers.Authorization="Bearer "+e),n},function(n){return i.a.reject(n)}),s.interceptors.response.use(function(n){return!n.data||401!==n.data.code&&403!==n.data.code&&404!==n.data.code||l.push({path:"/login"}),n},function(n){return i.a.reject(n.response)}),new r.default({el:"#app",router:l,components:{App:c},template:"<App/>"})},muQq:function(n,e){},tvR6:function(n,e){},"z/cX":function(n,e){}},["NHnr"]);
//# sourceMappingURL=app.e91c35ee8dfca24534db.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,o,a){for(var f,d,i,u=0,s=[];u<r.length;u++)d=r[u],t[d]&&s.push(t[d][0]),t[d]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(n&&n(r,o,a);s.length;)s.shift()();if(a)for(u=0;u<a.length;u++)i=c(c.s=a[u]);return i};var r={},t={22:0};function c(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,c){n=t[e]=[r,c]});n[2]=r;var o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,c.nc&&a.setAttribute("nonce",c.nc),a.src=c.p+"static/js/"+e+"."+{0:"5e232764ba39e5cb5f7f",1:"b17200cccd46e216dcb3",2:"140338f6a5528feea1a3",3:"776d791724a8de12ff9e",4:"f8494b8dd039413f79c8",5:"6a80c59d0b7ae08a93a1",6:"8f85de06573e2a5f9562",7:"7ea6008d16a44e79a428",8:"7483ee6d3a25506eb489",9:"1f165c58c9933d0da8a7",10:"cdd03027e5c73f31170c",11:"cdde61370dec5108c322",12:"57d1188c7336fe654844",13:"87e236ff95561ecee286",14:"ee24dde6964d89f2361a",15:"90f76861c7f64c5bc1af",16:"50e6c855e99d2fb9c3d9",17:"9641c0ac4f8087f8899d",18:"5e7f065a8d031847e833",19:"3936346cb7e30aa279e2"}[e]+".js";var f=setTimeout(d,12e4);function d(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=d,o.appendChild(a),r},c.m=e,c.c=r,c.d=function(e,n,r){c.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},c.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(n,"a",n),n},c.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},c.p="/",c.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.cc921e50c8b83a5c752c.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,o,a){for(var f,d,i,u=0,s=[];u<r.length;u++)d=r[u],t[d]&&s.push(t[d][0]),t[d]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(n&&n(r,o,a);s.length;)s.shift()();if(a)for(u=0;u<a.length;u++)i=c(c.s=a[u]);return i};var r={},t={22:0};function c(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,c){n=t[e]=[r,c]});n[2]=r;var o=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,c.nc&&a.setAttribute("nonce",c.nc),a.src=c.p+"static/js/"+e+"."+{0:"cf5eec153d522d9fe40b",1:"b17200cccd46e216dcb3",2:"140338f6a5528feea1a3",3:"776d791724a8de12ff9e",4:"f8494b8dd039413f79c8",5:"6a80c59d0b7ae08a93a1",6:"8f85de06573e2a5f9562",7:"7ea6008d16a44e79a428",8:"7483ee6d3a25506eb489",9:"1f165c58c9933d0da8a7",10:"cdd03027e5c73f31170c",11:"cdde61370dec5108c322",12:"57d1188c7336fe654844",13:"87e236ff95561ecee286",14:"ee24dde6964d89f2361a",15:"90f76861c7f64c5bc1af",16:"50e6c855e99d2fb9c3d9",17:"9641c0ac4f8087f8899d",18:"5e7f065a8d031847e833",19:"3936346cb7e30aa279e2"}[e]+".js";var f=setTimeout(d,12e4);function d(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=d,o.appendChild(a),r},c.m=e,c.c=r,c.d=function(e,n,r){c.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},c.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(n,"a",n),n},c.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},c.p="/",c.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.0d4f9ff79bf0a95f3929.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment