|
|
|
|
@ -170,6 +170,9 @@
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="是否分页" prop="dataSourceName">
|
|
|
|
|
<el-switch v-model="addSQLForm.isPage" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="SQL" prop="SQL">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="addSQLForm.SQL"
|
|
|
|
|
@ -254,7 +257,14 @@
|
|
|
|
|
import axios from 'axios';
|
|
|
|
|
import request from '@/utils/request';
|
|
|
|
|
import { options } from './tool.js';
|
|
|
|
|
import { addDataSourceApi, delDataSourceApi, editDataSourceApi, getDataSourceList, querySql } from './api/dataSource';
|
|
|
|
|
import {
|
|
|
|
|
addDataSourceApi,
|
|
|
|
|
delDataSourceApi,
|
|
|
|
|
editDataSourceApi,
|
|
|
|
|
getDataSourceList,
|
|
|
|
|
querySql,
|
|
|
|
|
querySql1
|
|
|
|
|
} from './api/dataSource';
|
|
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
|
|
|
|
import { getDatabaseLink, getFieldList, listDatabaseLink } from '@/views/boardGenerate/api/db';
|
|
|
|
|
|
|
|
|
|
@ -364,7 +374,8 @@ const createSQL = () => {
|
|
|
|
|
requestUrl: 'system/databaseLink/querySql',
|
|
|
|
|
requestMethod: 'querySql',
|
|
|
|
|
fieldOne: addSQLForm.value.db,
|
|
|
|
|
fieldTwo: addSQLForm.value.SQL
|
|
|
|
|
fieldTwo: addSQLForm.value.SQL,
|
|
|
|
|
fieldThree: addSQLForm.value.isPage
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (addSQLForm.value.dataSourceId) {
|
|
|
|
|
@ -412,7 +423,8 @@ const editDataSource = (e) => {
|
|
|
|
|
addSQLForm.value = {
|
|
|
|
|
...e,
|
|
|
|
|
db: parseFloat(e.fieldOne),
|
|
|
|
|
SQL: e.fieldTwo
|
|
|
|
|
SQL: e.fieldTwo,
|
|
|
|
|
isPage: e.fieldThree === 'true'
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getDbList();
|
|
|
|
|
@ -543,51 +555,73 @@ const findTier = () => {
|
|
|
|
|
};
|
|
|
|
|
const sqlFindTier = () => {
|
|
|
|
|
addSQLForm.value.designDataFieldList = [];
|
|
|
|
|
|
|
|
|
|
querySql(addSQLForm.value.SQL, addSQLForm.value.db).then((res) => {
|
|
|
|
|
let data = res;
|
|
|
|
|
if (data?.data) {
|
|
|
|
|
Object.keys(data.data?.[0]).forEach(key => {
|
|
|
|
|
if (addSQLForm.value.isPage) {
|
|
|
|
|
querySql1({ sql: addSQLForm.value.SQL, linkId: addSQLForm.value.db, pageSize: 10, pageNum: 1 }).then((res) => {
|
|
|
|
|
let data = res.data || {};
|
|
|
|
|
Object.keys(data.rows?.[0]).forEach(key => {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `data,map%${key}`
|
|
|
|
|
fieldTwo: `data,rows,map%${key}`
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: 'data',
|
|
|
|
|
remark: '',
|
|
|
|
|
fieldTwo: `data`
|
|
|
|
|
});
|
|
|
|
|
} else if (data?.rows) {
|
|
|
|
|
console.log(data?.rows);
|
|
|
|
|
Object.keys(data.rows?.[0]).forEach(key => {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `rows,map%${key}`
|
|
|
|
|
});
|
|
|
|
|
fieldTwo: `data,rows`
|
|
|
|
|
});
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: 'rows',
|
|
|
|
|
fieldOne: 'total',
|
|
|
|
|
remark: '',
|
|
|
|
|
fieldTwo: `rows`
|
|
|
|
|
fieldTwo: `data,total`
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
let exclude = ['code'];
|
|
|
|
|
Object.keys(data).forEach(key => {
|
|
|
|
|
if (!exclude.includes(key.toLowerCase())) {
|
|
|
|
|
if (typeof data[key] === 'string' || typeof data[key] === 'string') {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `${key}`
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
querySql(addSQLForm.value.SQL, addSQLForm.value.db).then((res) => {
|
|
|
|
|
let data = res;
|
|
|
|
|
if (data?.data) {
|
|
|
|
|
Object.keys(data.data?.[0]).forEach(key => {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `data,map%${key}`
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: 'data',
|
|
|
|
|
remark: '',
|
|
|
|
|
fieldTwo: `data`
|
|
|
|
|
});
|
|
|
|
|
} else if (data?.rows) {
|
|
|
|
|
Object.keys(data.rows?.[0]).forEach(key => {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `rows,map%${key}`
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: 'rows',
|
|
|
|
|
remark: '',
|
|
|
|
|
fieldTwo: `rows`
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
let exclude = ['code'];
|
|
|
|
|
Object.keys(data).forEach(key => {
|
|
|
|
|
if (!exclude.includes(key.toLowerCase())) {
|
|
|
|
|
if (typeof data[key] === 'string' || typeof data[key] === 'string') {
|
|
|
|
|
addSQLForm.value.designDataFieldList.push({
|
|
|
|
|
fieldOne: key,
|
|
|
|
|
remark: comparisonTable[key],
|
|
|
|
|
fieldTwo: `${key}`
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|