From df79a2d313afd7cdd80ee06c1ee28c6a9b09874c Mon Sep 17 00:00:00 2001 From: fuzi1996 Date: Fri, 27 May 2022 20:57:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?ft:=E4=BD=BF=E7=94=A8=E5=B8=B8=E9=87=8F?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbapi-ui/.gitignore | 2 + dbapi-ui/package.json | 12 +- dbapi-ui/src/components/api/add.vue | 3 - dbapi-ui/src/components/api/api.vue | 630 ++++++++++++------ dbapi-ui/src/components/api/common.vue | 501 +++++++++----- .../src/components/api/common/SqlCode.vue | 195 ++++-- .../src/components/api/common/callExample.vue | 156 +++++ dbapi-ui/src/components/api/common/codeUI.vue | 42 +- .../src/components/api/common/codeView.vue | 152 +++++ dbapi-ui/src/components/api/request.vue | 288 +++++--- dbapi-ui/src/components/common/mytabs.vue | 2 - dbapi-ui/src/constant/common.js | 20 + dbapi-ui/src/constant/index.js | 2 + dbapi-ui/src/constant/language.js | 12 + dbapi-ui/src/i18n/langs/index.js | 2 +- dbapi-ui/src/icon/demo_index.html | 20 +- dbapi-ui/src/icon/iconfont.js | 2 +- dbapi-ui/src/main.js | 46 +- dbapi-ui/src/plugins/element.js | 2 +- dbapi-ui/src/router/index.js | 4 +- dbapi-ui/src/store/index.js | 12 +- dbapi-ui/src/utils/code/index.js | 62 ++ dbapi-ui/src/utils/code/shell/index.js | 10 + dbapi-ui/src/utils/index.js | 0 dbapi-ui/vue.config.js | 2 + 25 files changed, 1579 insertions(+), 600 deletions(-) create mode 100644 dbapi-ui/src/components/api/common/callExample.vue create mode 100644 dbapi-ui/src/components/api/common/codeView.vue create mode 100644 dbapi-ui/src/constant/common.js create mode 100644 dbapi-ui/src/constant/index.js create mode 100644 dbapi-ui/src/constant/language.js create mode 100644 dbapi-ui/src/utils/code/index.js create mode 100644 dbapi-ui/src/utils/code/shell/index.js create mode 100644 dbapi-ui/src/utils/index.js diff --git a/dbapi-ui/.gitignore b/dbapi-ui/.gitignore index dfc6081..e1d14df 100644 --- a/dbapi-ui/.gitignore +++ b/dbapi-ui/.gitignore @@ -22,3 +22,5 @@ pnpm-debug.log* *.njsproj *.sln *.sw? + +**/.history/** diff --git a/dbapi-ui/package.json b/dbapi-ui/package.json index d731ae9..8488b93 100644 --- a/dbapi-ui/package.json +++ b/dbapi-ui/package.json @@ -1,5 +1,5 @@ { - "name": "DBApi", + "name": "dbapi", "version": "0.1.0", "private": true, "scripts": { @@ -12,13 +12,14 @@ "element-ui": "^2.4.5", "moment": "^2.29.1", "qs.js": "^0.1.12", + "sql-formatter": "^4.0.2", "vue": "^2.6.11", "vue-axios": "^3.1.3", + "vue-clipboard2": "^0.3.3", "vue-codemirror": "^4.0.6", "vue-i18n": "^8.26.7", "vue-router": "^3.2.0", - "vuex": "^3.4.0", - "sql-formatter": "^4.0.2" + "vuex": "^3.4.0" }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", @@ -29,7 +30,6 @@ "node-sass": "^5.0.0", "sass-loader": "^10.0.5", "vue-cli-plugin-element": "^1.0.1", - "vue-template-compiler": "^2.6.11", - "sql-formatter": "^4.0.2" + "vue-template-compiler": "^2.6.11" } -} +} \ No newline at end of file diff --git a/dbapi-ui/src/components/api/add.vue b/dbapi-ui/src/components/api/add.vue index 96ea7b1..539c0a7 100644 --- a/dbapi-ui/src/components/api/add.vue +++ b/dbapi-ui/src/components/api/add.vue @@ -23,8 +23,6 @@ export default { save() { const detail = this.$refs.apiAdd.detail - - debugger const sqlList = this.$store.getters.getSql let p = { name: detail.name, @@ -59,7 +57,6 @@ export default { ).then((response) => { if (response.data.success) { this.$message.success(response.data.msg) - debugger this.$router.push("/api") } else { this.$message.error(response.data.msg) diff --git a/dbapi-ui/src/components/api/api.vue b/dbapi-ui/src/components/api/api.vue index 687a33f..391a202 100644 --- a/dbapi-ui/src/components/api/api.vue +++ b/dbapi-ui/src/components/api/api.vue @@ -3,154 +3,352 @@
- - + + - + - + - + - - + + - - + - - - + + + {{ $t('m.cancel') }} - {{ $t('m.export') }} + {{ $t('m.export') }} - - - + + + {{ $t('m.cancel') }} - {{ $t('m.export') }} + {{ $t('m.export') }} - + - {{ item.name }} + {{ item.name }} {{ item.id }} - + {{ $t('m.cancel') }} - {{ $t('m.export') }} + {{ $t('m.export') }}
@@ -160,11 +358,12 @@ diff --git a/dbapi-ui/src/components/api/common/SqlCode.vue b/dbapi-ui/src/components/api/common/SqlCode.vue index 7ac15ed..0d09a29 100644 --- a/dbapi-ui/src/components/api/common/SqlCode.vue +++ b/dbapi-ui/src/components/api/common/SqlCode.vue @@ -2,9 +2,17 @@
- +
-
+
{{ item.label }}
-
+
{{ it.label }} {{ it.TypeName }} @@ -31,37 +46,88 @@
-
运行SQL
-
运行选中SQL
-
解析动态SQL
-
格式化SQL
+
运行SQL
+
运行选中SQL
+
解析动态SQL
+
格式化SQL
-
foreach
-
if
-
where
-
trim
- - +
foreach
+
if
+
where
+
trim
+ +
- +
-
-
+
+
SQL-{{ item.label }}
- +
-
+
添加 @@ -71,34 +137,67 @@
参数设置:
- +
填写sql运行需要的参数值,拼接成json格式
- +
- - json格式化 + + json格式化
-
+
{{ error }}
-
+
{{ updateMsg }}
-
+
{{ sqlMeta.sql }}
{{ sqlMeta.jdbcParamValues }}
- - + +
查询结果为空
@@ -110,15 +209,13 @@ + + \ No newline at end of file diff --git a/dbapi-ui/src/components/api/common/codeUI.vue b/dbapi-ui/src/components/api/common/codeUI.vue index 5328b4e..0e7f066 100644 --- a/dbapi-ui/src/components/api/common/codeUI.vue +++ b/dbapi-ui/src/components/api/common/codeUI.vue @@ -1,30 +1,27 @@ + \ No newline at end of file diff --git a/dbapi-ui/src/components/api/request.vue b/dbapi-ui/src/components/api/request.vue index 375c993..aea56cf 100644 --- a/dbapi-ui/src/components/api/request.vue +++ b/dbapi-ui/src/components/api/request.vue @@ -1,49 +1,107 @@ ")}catch(c){console&&console.log(c)}}function s(){z||(z=!0,a())}function v(){try{m.documentElement.doScroll("left")}catch(c){return void setTimeout(v,50)}s()}l=function(){var c,l=document.createElement("div");l.innerHTML=o,o=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?i(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),l()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(a=l,m=c.document,z=!1,v(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,s())})}(window); \ No newline at end of file +!(function(c) { let l; let h; let a; let m; let z; let o = ''; var t = (t = document.getElementsByTagName("script"))[t.length - 1].getAttribute("data-injectcss"); const i = function(c, l) { l.parentNode.insertBefore(c, l) }; if(t && !c.__iconfont__svg__cssinject__) { c.__iconfont__svg__cssinject__ = !0; try{ document.write("") }catch(c) { console && console.log(c) } }function s() { z || (z = !0, a()) }function v() { try{ m.documentElement.doScroll("left") }catch(c) { return void setTimeout(v, 50) }s() }l = function() { let c; let l = document.createElement("div"); l.innerHTML = o, o = null, (l = l.getElementsByTagName("svg")[0]) && (l.setAttribute("aria-hidden", "true"), l.style.position = "absolute", l.style.width = 0, l.style.height = 0, l.style.overflow = "hidden", l = l, (c = document.body).firstChild ? i(l, c.firstChild) : c.appendChild(l)) }, document.addEventListener ? ~["complete", "loaded", "interactive"].indexOf(document.readyState) ? setTimeout(l, 0) : (h = function() { document.removeEventListener("DOMContentLoaded", h, !1), l() }, document.addEventListener("DOMContentLoaded", h, !1)) : document.attachEvent && (a = l, m = c.document, z = !1, v(), m.onreadystatechange = function() { m.readyState == "complete" && (m.onreadystatechange = null, s()) }) }(window)); diff --git a/dbapi-ui/src/main.js b/dbapi-ui/src/main.js index ac9c7cf..0b0a82e 100644 --- a/dbapi-ui/src/main.js +++ b/dbapi-ui/src/main.js @@ -14,31 +14,35 @@ import './icon/iconfont.css' import VueCodeMirror from 'vue-codemirror' import 'codemirror/lib/codemirror.css' -Vue.use(VueCodeMirror) - import install from '@/components/common/index.js' -Vue.use(install) +import VueClipboard from 'vue-clipboard2' -import moment from 'moment'; //导入模块 -moment.locale('zh-cn'); //设置语言 或 moment.lang('zh-cn'); -Vue.prototype.$moment = moment;//赋值使用 +import moment from 'moment'; + +import { CONTENT_TYPE } from "@/constant"; + +Vue.use(VueClipboard) +Vue.use(VueCodeMirror) +Vue.use(install) // 导入模块 +moment.locale('zh-cn'); // 设置语言 或 moment.lang('zh-cn'); +Vue.prototype.$moment = moment;// 赋值使用 Vue.config.productionTip = false -//使用vue-axios,这样才可以全局使用this.axios调用 +// 使用vue-axios,这样才可以全局使用this.axios调用 Vue.use(VueAxios, axios); // axios.defaults.baseURL = '/api' -axios.defaults.headers = {'Content-Type': 'application/x-www-form-urlencoded'} -//全局拦截post请求的参数,用qs序列化 +axios.defaults.headers = { 'Content-Type': CONTENT_TYPE.FORM_URLENCODED } +// 全局拦截post请求的参数,用qs序列化 axios.interceptors.request.use(config => { - //form表单提交multipart/form-data的时候,不需要序列化参数 - if (config.method === 'post' && config.headers['Content-Type'] === 'application/x-www-form-urlencoded') { - config.data = qs.stringify(config.data, {indices: false}); + // form表单提交multipart/form-data的时候,不需要序列化参数 + if (config.method === 'post' && config.headers['Content-Type'] === CONTENT_TYPE.FORM_URLENCODED) { + config.data = qs.stringify(config.data, { indices: false }); } - //拦截所有请求,添加登陆用户的token + // 拦截所有请求,添加登陆用户的token if (localStorage.getItem('token')) { const x = config.headers.Authorization if (x === null || x === undefined) { @@ -49,14 +53,12 @@ axios.interceptors.request.use(config => { }) -//后台用户登陆信息校验不成功就跳转到登录页面 +// 后台用户登陆信息校验不成功就跳转到登录页面 axios.interceptors.response.use(response => { - return response }, error => { if (error.response.status == '401') { - - //不是api请求测试的请求,就跳转登录页 + // 不是api请求测试的请求,就跳转登录页 if (!error.response.config.url.startsWith("http://")) { router.push("/login"); } else { @@ -72,12 +74,12 @@ Vue.filter('dateFormat', function (originVal) { const dt = new Date(originVal) const y = dt.getFullYear() - const m = (dt.getMonth() + 1 + '').padStart(2, '0') - const d = (dt.getDate() + '').padStart(2, '0') + const m = (String(dt.getMonth() + 1)).padStart(2, '0') + const d = (String(dt.getDate())).padStart(2, '0') - const hh = (dt.getHours() + '').padStart(2, '0') - const mm = (dt.getMinutes() + '').padStart(2, '0') - const ss = (dt.getSeconds() + '').padStart(2, '0') + const hh = (String(dt.getHours())).padStart(2, '0') + const mm = (String(dt.getMinutes())).padStart(2, '0') + const ss = (String(dt.getSeconds())).padStart(2, '0') return `${y}-${m}-${d} ${hh}:${mm}:${ss}` }) diff --git a/dbapi-ui/src/plugins/element.js b/dbapi-ui/src/plugins/element.js index 779d850..bda0e51 100644 --- a/dbapi-ui/src/plugins/element.js +++ b/dbapi-ui/src/plugins/element.js @@ -117,7 +117,7 @@ Vue.use(DatePicker); // Vue.use(TimeSelect); // Vue.use(TimePicker); Vue.use(Popover); -Vue.use(Popconfirm ); +Vue.use(Popconfirm); Vue.use(Tooltip); // Vue.use(Breadcrumb); diff --git a/dbapi-ui/src/router/index.js b/dbapi-ui/src/router/index.js index 32ca04a..56e8360 100644 --- a/dbapi-ui/src/router/index.js +++ b/dbapi-ui/src/router/index.js @@ -26,7 +26,9 @@ Vue.use(VueRouter) const routes = [ {path: '/login', name: 'login', component: Login}, { - path: '/', name: 'Home', component: Home, + path: '/', +name: 'Home', +component: Home, children: [ // {path: '/about/donate', name: 'donate', component: donate}, // {path: '/tool/json', name: 'json', component: json}, diff --git a/dbapi-ui/src/store/index.js b/dbapi-ui/src/store/index.js index 88c03b6..06a1da8 100644 --- a/dbapi-ui/src/store/index.js +++ b/dbapi-ui/src/store/index.js @@ -6,13 +6,13 @@ Vue.use(Vuex) export default new Vuex.Store({ state: { sqls: [{sqlText: 'test', id: 0, transformPlugin: null, transformPluginParams: null}], - seq: 0, //用来做for循环key - labelSeq: 0, //用来显示 + seq: 0, // 用来做for循环key + labelSeq: 0, // 用来显示 cmList: [], mode: null }, mutations: { - clearTransformPluginParam(state,index){ + clearTransformPluginParam(state, index) { state.sqls[index].transformPluginParams = null }, addSql(state) { @@ -36,7 +36,7 @@ export default new Vuex.Store({ emptyCmList(state, payload) { state.cmList = [] }, - //编辑或新增页面初始化sql + // 编辑或新增页面初始化sql initSqls(state, payload) { state.cmList = [] state.labelSeq = 0 @@ -52,7 +52,6 @@ export default new Vuex.Store({ label: state.labelSeq } }) - // debugger console.log('--------------' + state.sqls) }, setMode(state, payload) { @@ -65,8 +64,7 @@ export default new Vuex.Store({ const p = [] for (let i = 0; i < state.sqls.length; i++) { - let obj = {} - // debugger + const obj = {} obj.transformPlugin = state.sqls[i].transformPlugin obj.transformPluginParams = state.sqls[i].transformPluginParams obj.sqlText = state.cmList[i].getValue() diff --git a/dbapi-ui/src/utils/code/index.js b/dbapi-ui/src/utils/code/index.js new file mode 100644 index 0000000..15c70fe --- /dev/null +++ b/dbapi-ui/src/utils/code/index.js @@ -0,0 +1,62 @@ + +/** + * address 请求地址 "127.0.0.1:8520/api" + * detail 完整示例 + * { + * "name": "dbapi", + * "note": null, + * "path": "test", + * "params": [ + * { + * "name": "id", + * "type": "string" + * } + * ], + * "groupId": "djwUzW2E", + * "previlege": 1, + * "cachePlugin": null, + * "cachePluginParams": null, + * "alarmPlugin": null, + * "alarmPluginParam": null, + * "jsonParam": null, + * "sqlList": [ + * { + * "sqlText": "-- 请输入sql,一个标签只能输入一条sql\\nselect * from user\\n\\n\\nid = #{id}\\n", + * "transformPlugin": null, + * "transformPluginParams": null + * } + * ], + * "contentType": "application/x-www-form-urlencoded", + * "openTrans": 0 + * } + */ + +import { LANGUAGE } from '@/utils' +import { generateShellCode } from './shell' + +function getRequestUrl(address, detail) { + // 暂时认为都是http + return `http://${address}/${detail.path}` +} + +function generateParam({ lang, address, detail }) { + const contentType = detail.contentType + const requestUrl = getRequestUrl(address, detail) + return { + lang, + address, requestUrl, contentType, + detail + } +} + +function generateCallExampleCode({ lang, address, detail }) { + const param = generateParam({ lang, address, detail }) + switch (lang) { + case LANGUAGE.SHELL: + return generateShellCode(param) + default: + return '' + } +} + + diff --git a/dbapi-ui/src/utils/code/shell/index.js b/dbapi-ui/src/utils/code/shell/index.js new file mode 100644 index 0000000..e7a2728 --- /dev/null +++ b/dbapi-ui/src/utils/code/shell/index.js @@ -0,0 +1,10 @@ +/** + * curl 'http://192.168.0.3:8520/api/test-json' \ + * -H 'Authorization: ' \ + * -H 'Content-Type: application/json' \ + * --data-raw $'{\n "id":1\n}' + */ + +export function generateShellCallExampleCode({ lang, address, requestUrl, detail }) { + +} \ No newline at end of file diff --git a/dbapi-ui/src/utils/index.js b/dbapi-ui/src/utils/index.js new file mode 100644 index 0000000..e69de29 diff --git a/dbapi-ui/vue.config.js b/dbapi-ui/vue.config.js index 9fa30ef..b73b863 100644 --- a/dbapi-ui/vue.config.js +++ b/dbapi-ui/vue.config.js @@ -1,5 +1,7 @@ module.exports = { devServer: { + disableHostCheck: true, + public: '0.0.0.0:8521', proxy: "http://127.0.0.1:8520", //开发环境的跨域问题解决 port: 8521 } -- Gitee From 19547d8667d0944db5ec9f7653d627989fd8f358 Mon Sep 17 00:00:00 2001 From: fuzi1996 Date: Sat, 28 May 2022 22:22:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?ft:=E6=B7=BB=E5=8A=A0=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbapi/basic/util/JdbcUtil.java | 3 +- .../src/main/resources/application.properties | 8 +- dbapi-ui/src/components/api/api.vue | 5 +- dbapi-ui/src/components/api/common.vue | 15 +- .../src/components/api/common/callExample.vue | 87 ++++------- .../src/components/api/common/codeView.vue | 68 +++++--- dbapi-ui/src/components/api/request.vue | 9 +- dbapi-ui/src/constant/common.js | 8 +- dbapi-ui/src/plugins/element.js | 4 +- dbapi-ui/src/router/index.js | 32 ++-- dbapi-ui/src/store/index.js | 3 +- dbapi-ui/src/utils/code/go/index.js | 90 +++++++++++ dbapi-ui/src/utils/code/index.js | 37 ++++- dbapi-ui/src/utils/code/java/index.js | 146 ++++++++++++++++++ dbapi-ui/src/utils/code/javascript/index.js | 112 ++++++++++++++ dbapi-ui/src/utils/code/python/index.js | 72 +++++++++ dbapi-ui/src/utils/code/shell/index.js | 79 +++++++++- dbapi-ui/src/utils/index.js | 1 + dbapi-ui/src/views/Login.vue | 62 +++++--- dbapi-ui/vue.config.js | 2 - 20 files changed, 686 insertions(+), 157 deletions(-) create mode 100644 dbapi-ui/src/utils/code/go/index.js create mode 100644 dbapi-ui/src/utils/code/java/index.js create mode 100644 dbapi-ui/src/utils/code/javascript/index.js create mode 100644 dbapi-ui/src/utils/code/python/index.js diff --git a/dbapi-service/src/main/java/com/gitee/freakchicken/dbapi/basic/util/JdbcUtil.java b/dbapi-service/src/main/java/com/gitee/freakchicken/dbapi/basic/util/JdbcUtil.java index 2d3f394..7c9ed83 100644 --- a/dbapi-service/src/main/java/com/gitee/freakchicken/dbapi/basic/util/JdbcUtil.java +++ b/dbapi-service/src/main/java/com/gitee/freakchicken/dbapi/basic/util/JdbcUtil.java @@ -85,7 +85,6 @@ public class JdbcUtil { default: sql = "select * from " + table + " where 1=2"; } - log.info(sql); pst = conn.prepareStatement(sql); ResultSetMetaData rsd = pst.executeQuery().getMetaData(); @@ -129,13 +128,13 @@ public class JdbcUtil { public static Object executeSql(Connection connection, String sql, List jdbcParamValues) throws SQLException { log.debug(sql); log.debug(JSON.toJSONString(jdbcParamValues)); - PreparedStatement statement = connection.prepareStatement(sql); //参数注入 for (int i = 1; i <= jdbcParamValues.size(); i++) { statement.setObject(i, jdbcParamValues.get(i - 1)); } boolean hasResultSet = statement.execute(); + if (hasResultSet) { ResultSet rs = statement.getResultSet(); int columnCount = rs.getMetaData().getColumnCount(); diff --git a/dbapi-service/src/main/resources/application.properties b/dbapi-service/src/main/resources/application.properties index 041e548..b41acf4 100644 --- a/dbapi-service/src/main/resources/application.properties +++ b/dbapi-service/src/main/resources/application.properties @@ -53,10 +53,4 @@ spring.datasource.password= #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbapi?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8 #spring.datasource.username=root -#spring.datasource.password=root - - - - - - +#spring.datasource.password=root \ No newline at end of file diff --git a/dbapi-ui/src/components/api/api.vue b/dbapi-ui/src/components/api/api.vue index 391a202..1adfb97 100644 --- a/dbapi-ui/src/components/api/api.vue +++ b/dbapi-ui/src/components/api/api.vue @@ -152,7 +152,7 @@ > // import dataTag from "@/components/common/dataTag"; import group from "@/components/api/group"; -import { CONTENT_TYPE } from "@/constant"; +import { CONTENT_TYPE, PREVILEGE } from "@/constant"; export default { name: "api", data() { return { CONTENT_TYPE: Object.freeze(CONTENT_TYPE), + PREVILEGE: Object.freeze(PREVILEGE), dialogVisible: false, dialogVisible2: false, dialogVisible3: false, diff --git a/dbapi-ui/src/components/api/common.vue b/dbapi-ui/src/components/api/common.vue index 9819366..23640f5 100644 --- a/dbapi-ui/src/components/api/common.vue +++ b/dbapi-ui/src/components/api/common.vue @@ -175,8 +175,8 @@ - {{ $t('m.private') }} - {{ $t('m.public') }} + {{ $t('m.private') }} + {{ $t('m.public') }} - + @@ -392,7 +396,7 @@ import sqlCode from "@/components/api/common/SqlCode"; import MySelect from "../common/MySelect"; import callExample from "@/components/api/common/callExample"; -import { DATA_TYPE, CONTENT_TYPE } from "@/constant"; +import { DATA_TYPE, CONTENT_TYPE, PREVILEGE } from "@/constant"; export default { components: { MySelect, @@ -402,6 +406,7 @@ export default { data() { return { CONTENT_TYPE: Object.freeze(CONTENT_TYPE), + PREVILEGE: Object.freeze(PREVILEGE), datasources: [], address: null, show: false, @@ -413,7 +418,7 @@ export default { path: null, params: [], groupId: null, - previlege: 0, //访问权限 + previlege: PREVILEGE.PRIVATE, //访问权限 cachePlugin: null, cachePluginParams: null, alarmPlugin: null, diff --git a/dbapi-ui/src/components/api/common/callExample.vue b/dbapi-ui/src/components/api/common/callExample.vue index 04ac290..d60e94b 100644 --- a/dbapi-ui/src/components/api/common/callExample.vue +++ b/dbapi-ui/src/components/api/common/callExample.vue @@ -36,6 +36,8 @@