增加数据源管理

pull/59/head
smallchill 6 years ago
parent ec3830eb7f
commit 89a0f3592c
  1. 13
      src/api/tool/code.js
  2. 78
      src/views/tool/code.vue
  3. 42
      src/views/tool/datasource.vue

@ -1,10 +1,11 @@
import request from '@/router/axios';
export const getList = (current, size) => {
export const getList = (current, size, params) => {
return request({
url: '/api/blade-develop/code/list',
method: 'get',
params: {
...params,
current,
size
}
@ -47,6 +48,16 @@ export const update = (row) => {
})
}
export const copy = (id) => {
return request({
url: '/api/blade-develop/code/copy',
method: 'post',
params: {
id,
}
})
}
export const getCode = (id) => {
return request({
url: '/api/blade-develop/code/detail',

@ -32,12 +32,22 @@
@click="handleBuild">代码生成
</el-button>
</template>
<template slot-scope="scope" slot="menu">
<el-button type="text"
size="small"
icon="el-icon-document-copy"
v-if="permission.code_edit"
plain
class="none-border"
@click.stop="handleCopy(scope.row)">复制
</el-button>
</template>
</avue-crud>
</basic-container>
</template>
<script>
import {getList, getCode, build, remove, add, update} from "@/api/tool/code";
import {getList, getCode, build, remove, add, update, copy} from "@/api/tool/code";
import {mapGetters} from "vuex";
export default {
@ -55,6 +65,8 @@
option: {
height: 'auto',
calcHeight: 350,
dialogWidth: 400,
dialogHeight: 500,
tip: false,
border: true,
index: true,
@ -62,6 +74,23 @@
labelWidth: 120,
viewBtn: true,
column: [
{
label: "数据源",
prop: "datasourceId",
search: true,
span: 24,
type: "select",
dicUrl: "/api/blade-develop/datasource/select",
props: {
label: "name",
value: "id"
},
rules: [{
required: true,
message: "请选择数据源",
trigger: "blur"
}]
},
{
label: "模块名",
prop: "codeName",
@ -94,6 +123,7 @@
{
label: "表前缀",
prop: "tablePrefix",
hide: true,
rules: [{
required: true,
message: "请输入表前缀",
@ -103,6 +133,7 @@
{
label: "主键名",
prop: "pkName",
hide: true,
rules: [{
required: true,
message: "请输入主键名",
@ -119,6 +150,38 @@
trigger: "blur"
}]
},
{
label: "基础业务",
prop: "baseMode",
type: 'radio',
dicUrl: "/api/blade-system/dict/dictionary?code=yes_no",
props: {
label: "dictValue",
value: "dictKey"
},
hide: true,
rules: [{
required: true,
message: "请选择基础业务",
trigger: "blur"
}]
},
{
label: "包装器",
prop: "wrapMode",
type: 'radio',
dicUrl: "/api/blade-system/dict/dictionary?code=yes_no",
props: {
label: "dictValue",
value: "dictKey"
},
hide: true,
rules: [{
required: true,
message: "请选择包装器",
trigger: "blur"
}]
},
{
label: "后端生成路径",
prop: "apiPath",
@ -269,6 +332,15 @@
this.$refs.crud.toggleSelection();
});
},
handleCopy(row) {
copy(row.id).then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "复制成功!"
});
});
},
beforeOpen(done, type) {
if (["edit", "view"].includes(type)) {
getCode(this.form.id).then(res => {
@ -298,4 +370,8 @@
</script>
<style>
.none-border {
border: 0;
background-color: transparent !important;
}
</style>

@ -58,28 +58,42 @@
selection: true,
column: [
{
label: "驱动类",
prop: "driverClass",
span: 24,
label: "名称",
prop: "name",
width: 120,
rules: [{
required: true,
message: "请输入驱动类",
message: "请输入数据源名称",
trigger: "blur"
}]
},
{
label: "连接地址",
prop: "jdbcUrl",
span: 24,
label: "驱动类",
prop: "driverClass",
type: 'select',
dicData: [
{
label: 'com.mysql.cj.jdbc.Driver',
value: 'com.mysql.cj.jdbc.Driver',
}, {
label: 'org.postgresql.Driver',
value: 'org.postgresql.Driver',
}, {
label: 'oracle.jdbc.OracleDriver',
value: 'oracle.jdbc.OracleDriver',
}
],
width: 200,
rules: [{
required: true,
message: "请输入连接地址",
message: "请输入驱动类",
trigger: "blur"
}]
},
{
label: "用户名",
prop: "username",
width: 120,
rules: [{
required: true,
message: "请输入用户名",
@ -89,17 +103,29 @@
{
label: "密码",
prop: "password",
hide: true,
rules: [{
required: true,
message: "请输入密码",
trigger: "blur"
}]
},
{
label: "连接地址",
prop: "url",
span: 24,
rules: [{
required: true,
message: "请输入连接地址",
trigger: "blur"
}]
},
{
label: "备注",
prop: "remark",
span: 24,
minRows: 3,
hide: true,
type: "textarea"
},
]

Loading…
Cancel
Save