|
@@ -1,8 +1,8 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small" style="max-width: 500px;">
|
|
|
|
|
- <el-form-item prop="databasetype" label="数据库">
|
|
|
|
|
- <el-select placeholder="数据库" size="small" v-model="formData.databasetype" class="filter-item">
|
|
|
|
|
|
|
+ <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small">
|
|
|
|
|
+ <el-form-item prop="databasetype" label="库类型">
|
|
|
|
|
+ <el-select placeholder="库类型" size="small" v-model="formData.databasetype" @change="changeDataBaseType" class="filter-item">
|
|
|
<el-option label="Mysql" value="Mysql">
|
|
<el-option label="Mysql" value="Mysql">
|
|
|
</el-option>
|
|
</el-option>
|
|
|
<el-option label="SqlServer" value="SqlServer">
|
|
<el-option label="SqlServer" value="SqlServer">
|
|
@@ -10,11 +10,24 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
- <el-form-item prop="code" label="code">
|
|
|
|
|
- <el-input v-model="formData.code"></el-input>
|
|
|
|
|
|
|
+ <el-form-item prop="dataSourceCode" label="数据库">
|
|
|
|
|
+
|
|
|
|
|
+ <el-select placeholder="数据库" size="small" v-model="formData.dataSourceCode" @change="changeDataSourceCode" class="filter-item">
|
|
|
|
|
+ <el-option v-for="item in datasourceInfoList" :label="item.databaseName" :value="item.code" :key="item.code"></el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+
|
|
|
<el-form-item prop="tableName" label="表名">
|
|
<el-form-item prop="tableName" label="表名">
|
|
|
- <el-input v-model="formData.tableName"></el-input>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <el-select placeholder="表名" size="small" clearable filterable v-model="formData.tableName" @change="changeTableName" class="filter-item">
|
|
|
|
|
+ <el-option v-for="item in tableList" :label="item" :value="item" :key="item"></el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <el-form-item prop="code" label="code" style="width:300px;">
|
|
|
|
|
+ <el-input v-model="formData.code"></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item prop="modules" label="功能">
|
|
<el-form-item prop="modules" label="功能">
|
|
@@ -36,16 +49,18 @@
|
|
|
<el-button @click="addField" type="text" icon="el-icon-plus">添加</el-button>
|
|
<el-button @click="addField" type="text" icon="el-icon-plus">添加</el-button>
|
|
|
<el-table :data="tablecolumnsFields">
|
|
<el-table :data="tablecolumnsFields">
|
|
|
|
|
|
|
|
- <el-table-column prop="name" label="显示" align="center">
|
|
|
|
|
|
|
+ <el-table-column prop="value" label="字段" width="150" align="center">
|
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
|
- <el-input v-model="row.label"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="row.value"></el-input>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column prop="value" label="字段" align="center">
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <el-table-column prop="name" label="显示" width="150" align="center">
|
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
|
- <el-input v-model="row.value"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="row.label"></el-input>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
+
|
|
|
<el-table-column prop="type" label="类型" width="150" align="center">
|
|
<el-table-column prop="type" label="类型" width="150" align="center">
|
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
|
<el-select v-model="row.type">
|
|
<el-select v-model="row.type">
|
|
@@ -106,12 +121,38 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ this.$http.get({
|
|
|
|
|
+ url: '/dataSourceInfo/all'
|
|
|
|
|
+ }).then(res => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+ this.MysqlDataSourceInfos.push(this.baseDataSource);
|
|
|
|
|
+
|
|
|
|
|
+ if (res.data.length > 0) {
|
|
|
|
|
+ res.data.forEach(item => {
|
|
|
|
|
+ if ('Mysql' == item.databaseType) {
|
|
|
|
|
+ this.MysqlDataSourceInfos.push(item);
|
|
|
|
|
+ } else if ('SqlServer' == item.databaseType) {
|
|
|
|
|
+ this.SqlServerDataSourceInfos.push(item);
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ this.datasourceInfoList = this.MysqlDataSourceInfos;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ this.getDatabaseTables();
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
saving: false,
|
|
saving: false,
|
|
|
formData: {
|
|
formData: {
|
|
|
- databasetype: 'Mysql'
|
|
|
|
|
|
|
+ databasetype: 'Mysql',
|
|
|
|
|
+ dataSourceCode: 'dataSource',
|
|
|
|
|
+ tableName: '',
|
|
|
|
|
+ modules: []
|
|
|
},
|
|
},
|
|
|
rules: {
|
|
rules: {
|
|
|
databasetype: [
|
|
databasetype: [
|
|
@@ -123,12 +164,12 @@ export default {
|
|
|
modules: [
|
|
modules: [
|
|
|
{ required: true, message: '请选择功能', trigger: 'blur' },
|
|
{ required: true, message: '请选择功能', trigger: 'blur' },
|
|
|
],
|
|
],
|
|
|
- tablecolumns: [
|
|
|
|
|
- { required: true, message: '请添加字段', trigger: 'blur' },
|
|
|
|
|
- ],
|
|
|
|
|
tableName: [
|
|
tableName: [
|
|
|
{ required: true, message: '请填写表名', trigger: 'blur' },
|
|
{ required: true, message: '请填写表名', trigger: 'blur' },
|
|
|
],
|
|
],
|
|
|
|
|
+ dataSourceCode: [
|
|
|
|
|
+ { required: true, message: '请填选择数据库', trigger: 'blur' },
|
|
|
|
|
+ ],
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
tablecolumnsFields: [
|
|
tablecolumnsFields: [
|
|
@@ -139,6 +180,17 @@ export default {
|
|
|
{ label: '日期', value: 'date' },
|
|
{ label: '日期', value: 'date' },
|
|
|
{ label: '图片', value: 'image' },
|
|
{ label: '图片', value: 'image' },
|
|
|
],
|
|
],
|
|
|
|
|
+ MysqlDataSourceInfos: [],
|
|
|
|
|
+ SqlServerDataSourceInfos: [],
|
|
|
|
|
+ baseDataSource: {
|
|
|
|
|
+ databaseType: 'Mysql',
|
|
|
|
|
+ code: 'dataSource',
|
|
|
|
|
+ databaseName: '基础数据库'
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ datasourceInfoList: [],
|
|
|
|
|
+ tableList: [],
|
|
|
|
|
+
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -204,6 +256,68 @@ export default {
|
|
|
this.tablecolumnsFields.splice(i, 1);
|
|
this.tablecolumnsFields.splice(i, 1);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ changeDataBaseType() {
|
|
|
|
|
+ if ('Mysql' == this.formData.databasetype) {
|
|
|
|
|
+ this.datasourceInfoList = this.MysqlDataSourceInfos;
|
|
|
|
|
+ this.formData.dataSourceCode = 'dataSource';
|
|
|
|
|
+ this.getDatabaseTables();
|
|
|
|
|
+ } else if ('SqlServer' == this.formData.databasetype) {
|
|
|
|
|
+ this.datasourceInfoList = this.SqlServerDataSourceInfos;
|
|
|
|
|
+ this.formData.dataSourceCode = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ getDatabaseTables(code) {
|
|
|
|
|
+ this.tableList = [];
|
|
|
|
|
+ this.$http.get({
|
|
|
|
|
+ url: '/genCode/tables',
|
|
|
|
|
+ data: {
|
|
|
|
|
+ code: code
|
|
|
|
|
+ }
|
|
|
|
|
+ }).then(res => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+
|
|
|
|
|
+ this.tableList = res.data;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ changeDataSourceCode() {
|
|
|
|
|
+
|
|
|
|
|
+ this.formData.tableName = '';
|
|
|
|
|
+ this.getDatabaseTables(this.formData.dataSourceCode);
|
|
|
|
|
+ },
|
|
|
|
|
+ changeTableName() {
|
|
|
|
|
+
|
|
|
|
|
+ this.tablecolumnsFields = [];
|
|
|
|
|
+
|
|
|
|
|
+ this.getTableFields(this.formData.tableName);
|
|
|
|
|
+ },
|
|
|
|
|
+ getTableFields(tableName) {
|
|
|
|
|
+ this.$http.get({
|
|
|
|
|
+ url: '/genCode/tableFields',
|
|
|
|
|
+ data: {
|
|
|
|
|
+ code: this.formData.dataSourceCode,
|
|
|
|
|
+ tableName: tableName,
|
|
|
|
|
+ databaseType: this.formData.databasetype,
|
|
|
|
|
+ }
|
|
|
|
|
+ }).then(res => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //this.tablecolumnsFields = res.data;
|
|
|
|
|
+
|
|
|
|
|
+ res.data.forEach(item => {
|
|
|
|
|
+
|
|
|
|
|
+ this.tablecolumnsFields.push({
|
|
|
|
|
+ label: item.remark,
|
|
|
|
|
+ value: item.name,
|
|
|
|
|
+ type: 'text',
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|