type(table,access,authorization)根据表单查询相应的表结构和表框架

dev-1
王熙朝 2024-04-23 22:31:04 +08:00
parent 4d648c5950
commit 32b2c54503
6 changed files with 122 additions and 244 deletions

View File

@ -8,18 +8,10 @@ export function tableNameList() {
}) })
} }
export function tableNameList2(data) {
return request({
url: '/system/accredit/tableNameList2',
method: 'get',
data
})
}
export function selectTableXml(tableName) { export function selectTableXml(tableName) {
return request({ return request({
url: '/system/accredit/selectTableXml/' + tableName, url: '/system/accredit/selectTableXml/' + tableName,
method: 'get' method: 'post'
}) })
} }
@ -39,4 +31,34 @@ export function listSelectSysUser(data) {
}) })
} }
export function listSqlJdbc(data) {
return request({
url: '/system/accredit/listSqlJdbc',
method: 'get',
data
})
}
export function listListstructure(data) {
return request({
url: '/system/accredit/listListstructure',
method: 'post',
data
})
}
// 根据表名查询表框架
export function selNameTableList(name) {
return request({
url: '/system/accredit/selNameTableList/'+ name,
method: 'post'
})
}
// 根据表名获取表结构
export function selNameListStructure(tableName) {
return request({
url: '/system/accredit/selNameListStructure/'+ tableName,
method: 'post'
})
}

View File

@ -275,6 +275,7 @@
<script> <script>
import { listAccess, getAccess, delAccess, addAccess, updateAccess } from "@/api/system/access"; import { listAccess, getAccess, delAccess, addAccess, updateAccess } from "@/api/system/access";
import { listSqlJdbc } from "@/api/system/accredit";
export default { export default {
name: "Access", name: "Access",
@ -457,13 +458,16 @@ export default {
}, },
/** 测试 **/ /** 测试 **/
handleCes(row) { handleCes(row) {
this.$router.push({ listSqlJdbc().then(res => {
path:'/', console.log(res.data)
name:'',
params:{
row:row
}
}) })
// this.$router.push({
// path:'/',
// name:'',
// params:{
// row:row
// }
// })
// if (row){ // if (row){
// this.$modal.msgSuccess("") // this.$modal.msgSuccess("")
// }else { // }else {

View File

@ -5,7 +5,7 @@
:load="expandTable" :load="expandTable"
:expand-on-click-node="false" :expand-on-click-node="false"
lazy lazy
@node-click="(data) => showAuth=data.type" @node-click="selName"
:props="defaultProps"> :props="defaultProps">
<div class="custom-tree-node" slot-scope="{ node, data }"> <div class="custom-tree-node" slot-scope="{ node, data }">
<div v-if="data.type === 'dataSource'">{{ data.name + '('+data.databaseName + '-' + data.systemName+')' }}</div> <div v-if="data.type === 'dataSource'">{{ data.name + '('+data.databaseName + '-' + data.systemName+')' }}</div>
@ -23,7 +23,7 @@
</template> </template>
<script> <script>
import { tableNameList, tableNameList2 } from '@/api/system/accredit' import { tableNameList } from '@/api/system/accredit'
import AuthDataSource from './auth/AuthDataSource.vue' import AuthDataSource from './auth/AuthDataSource.vue'
import AuthTable from './auth/AuthTable.vue' import AuthTable from './auth/AuthTable.vue'
// jsjsjson, // jsjsjson,
@ -68,29 +68,7 @@ export default {
type: "dataSource" type: "dataSource"
}, },
], ],
childrenList: [ childrenList: []
{
name: "sys_user",
as: "用户表",
dataTotal: 635847,
type: "dataTable",
childrenList: []
},
{
name: "sys_dept",
as: "部门表",
dataTotal: 362548,
type: "dataTable",
childrenList: []
},
{
name: "sys_notice",
as: "通知公告",
dataTotal: 6347,
type: "dataTable",
childrenList: []
}
]
} }
}, },
// data", // data",
@ -110,13 +88,13 @@ export default {
}, 500); }, 500);
}, },
thisLib() { thisLib() {
// tableNameList().then(res => { tableNameList().then(res => {
// this.childrenList = res.data; this.childrenList = res.data;
// }) })
// tableNameList2().then(res => { },
// console.log(res.data) selName(data) {
// }) this.showAuth=data.type
} }
}, },
// - 访this", // - 访this",
created() { created() {

View File

@ -20,53 +20,15 @@
<el-table <el-table
:data="tableData" :data="tableData"
style="width: 100%;"> style="width: 100%;">
<el-table-column prop="name" label="名称" /> <el-table-column prop="tableName" label="表名" />
<el-table-column prop="comment" label="注释" /> <el-table-column prop="columnLassName" label="类型" />
<el-table-column prop="isPrimaryKey" label="是否主键" > <el-table-column prop="columnTypeName" label="映射类型" />
<template slot-scope="scope"> <el-table-column prop="columnName" label="字段名称" />
<el-tag size="small" :type="scope.row.isPrimaryKey === 'Y' ? 'success' : ''"> <el-table-column prop="precisions" label="长度" />
{{scope.row.isPrimaryKey}} <el-table-column prop="scale" label="小数" />
</el-tag> <el-table-column prop="isNull" label="非空" />
</template> <el-table-column prop="schemaName" label="默认" />
</el-table-column> <el-table-column prop="columnComments" label="注解" />
<el-table-column prop="type" label="类型" />
<el-table-column prop="mappingType" label="映射类型" />
<el-table-column prop="length" label="长度" />
<el-table-column prop="decimalPlaces" label="小数位" />
<el-table-column prop="isNull" label="是否为空" >
<template slot-scope="scope">
<el-tag size="small" :type="scope.row.isNull === 'Y' ? 'success' : 'danger'">
{{scope.row.isNull}}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="defaultValue" label="默认值" />
<el-table-column prop="isDict" label="是否字典" >
<template slot-scope="scope">
<el-tag v-if="scope.row.isDict === 'Y'" size="small" type="success">
{{scope.row.isDict}}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="dictKey" label="映射字典" >
<template slot-scope="scope">
<el-popover
v-if="scope.row.isDict === 'Y'"
placement="left"
width="200"
trigger="hover">
<el-table :data="[
{ label: '男', value: '1' },
{ label: '女', value: '2' },
{ label: '未知', value: '0' },
]">
<el-table-column property="label" label="字典标签"/>
<el-table-column property="value" label="字典值"/>
</el-table>
<el-tag slot="reference">{{scope.row.dictKey}}</el-tag>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="id" label="操作" > <el-table-column prop="id" label="操作" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="update(scope.row)"></el-button> <el-button type="text" @click="update(scope.row)"></el-button>
@ -74,92 +36,60 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-dialog title="资产结构修改" width="80%" :visible.sync="formStatus"> <el-dialog title="资产结构修改" width="80%" :visible.sync="formStatus">
<el-form :model="form" label-width="120px"> <el-form :model="form" label-width="120px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label=""> <el-form-item label="名">
<el-input v-model="form.name" readonly autocomplete="off"></el-input> <el-input v-model="form.tableName" readonly autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="注释"> <el-form-item label="类型">
<el-input v-model="form.comment" readonly autocomplete="off"></el-input> <el-input v-model="form.columnLassName" readonly autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="映射类型">
<el-input v-model="form.columnTypeName" readonly autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否主键"> <el-form-item label="字段名称">
<el-tag size="small" :type="form.isPrimaryKey === 'Y' ? 'success' : 'danger'"> <el-input v-model="form.columnName" readonly autocomplete="off"></el-input>
{{form.isPrimaryKey}}
</el-tag>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="数据类型"> <el-form-item label="长度">
<el-input v-model="form.type" readonly autocomplete="off"></el-input> <el-input v-model="form.precisions" readonly autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="据长度"> <el-form-item label="数">
<el-input v-model="form.length" readonly autocomplete="off"></el-input> <el-input v-model="form.scale" readonly autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="小数位"> <el-form-item label="非空">
<el-input v-model="form.decimalPlaces" readonly autocomplete="off"></el-input> <el-input v-model="form.isNull" readonly autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否为空"> <el-form-item label="默认">
<el-tag size="small" :type="form.isNull === 'Y' ? 'success' : 'danger'"> <el-input v-model="form.schemaName" readonly autocomplete="off"></el-input>
{{form.isNull}}
</el-tag>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="默认值"> <el-form-item label="注解">
<el-input v-model="form.defaultValue" readonly autocomplete="off"></el-input> <el-input v-model="form.columnComments" readonly autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="映射字段">
<el-input v-model="form.mappingType" readonly autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否字典">
<el-switch
v-model="form.isDict"
active-value="Y"
inactive-value="N"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.isDict === 'Y'">
<el-col :span="24">
<el-form-item label="字典">
<el-select v-model="form.dictKey">
<el-option v-for="(value, key) in dictMap" :key="key" :label="key" :value="key"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item>
<el-table :data="dictMap[form.dictKey]" striped border>
<el-table-column property="label" label="字典标签"/>
<el-table-column property="val" label="字典值"/>
</el-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -172,78 +102,26 @@
</div> </div>
</template> </template>
<script> <script>
import { listListstructure,selNameListStructure } from '@/api/system/accredit'
export default { export default {
name: 'OverallAssetStructure', name: 'OverallAssetStructure',
data() { data() {
return { return {
tableData: [ tableName: this.$route.query.tableName,
{ tableData: [],
id: 1, form: {
name: "id", tableName: '',
comment: "主键", columnLassName: '',
isPrimaryKey: "Y", columnTypeName: '',
type: "bigint", columnName: '',
mappingType: "Long", precisions: '',
length: "-", scale: '',
decimalPlaces: "-", isNull: '',
isNull: "N", schemaName: '',
defaultValue: "-", columnComments: '',
isDict: "N", id: ''
dictKey: "-", },
}, {
id: 2,
name: "name",
comment: "姓名",
isPrimaryKey: "N",
type: "varchar",
mappingType: "String",
length: "64",
decimalPlaces: "-",
isNull: "N",
defaultValue: "-",
isDict: "N",
dictKey: "-",
}, {
id: 3,
name: "sex",
comment: "性别",
isPrimaryKey: "N",
type: "char",
mappingType: "String",
length: "1",
decimalPlaces: "-",
isNull: "N",
defaultValue: "-",
isDict: "Y",
dictKey: "system_sex",
}, {
id: 4,
name: "price",
comment: "金额",
isPrimaryKey: "N",
type: "double",
mappingType: "BigDecimal",
length: "10",
decimalPlaces: "2",
isNull: "N",
defaultValue: "0.00",
isDict: "N",
dictKey: "-",
}, {
id: 5,
name: "create_time",
comment: "创建时间",
isPrimaryKey: "N",
type: "datetime",
mappingType: "Date",
length: "-",
decimalPlaces: "-",
isNull: "Y",
defaultValue: "-",
isDict: "N",
dictKey: "-",
}, ],
form: {},
formStatus: false, formStatus: false,
dictMap: { dictMap: {
"system_sex": [ "system_sex": [
@ -262,7 +140,17 @@ export default {
update(row) { update(row) {
this.form = row; this.form = row;
this.formStatus = true; this.formStatus = true;
},
init() {
listListstructure().then(res => {
this.tableData = res.data
})
} }
},
// - 访this",
created() {
this.init()
} }
} }
</script> </script>

View File

@ -54,6 +54,7 @@ export default {
}, },
methods: { methods: {
handleSetLineChartData(type) { handleSetLineChartData(type) {
console.log(type)
this.$emit('handleSetLineChartData', type) this.$emit('handleSetLineChartData', type)
} }
} }

View File

@ -27,7 +27,7 @@
import OverallSpecificAssets from "@/views/assets/table/dashboard/OverallSpecificAssets.vue"; import OverallSpecificAssets from "@/views/assets/table/dashboard/OverallSpecificAssets.vue";
import OverallAssetStructure from "@/views/assets/table/dashboard/OverallAssetStructure.vue"; import OverallAssetStructure from "@/views/assets/table/dashboard/OverallAssetStructure.vue";
import OverallAssets from "@/views/assets/table/dashboard/OverallAssets.vue"; import OverallAssets from "@/views/assets/table/dashboard/OverallAssets.vue";
import { tableNameList } from "@/api/system/accredit"; import { tableNameList, selNameListStructure, selNameTableList } from "@/api/system/accredit";
export default { export default {
name: 'table', name: 'table',
@ -66,29 +66,7 @@ export default {
type: "dataSource" type: "dataSource"
}, },
], ],
childrenList: [ childrenList: [],
{
name: "sys_user",
as: "用户表",
dataTotal: 635847,
type: "dataTable",
childrenList: []
},
{
name: "sys_dept",
as: "部门表",
dataTotal: 362548,
type: "dataTable",
childrenList: []
},
{
name: "sys_notice",
as: "通知公告",
dataTotal: 6347,
type: "dataTable",
childrenList: []
}
],
showAssets: null, showAssets: null,
title: null title: null
} }
@ -106,18 +84,25 @@ export default {
}, 500); }, 500);
}, },
showAssetsFun(data){ showAssetsFun(data){
console.log(data)
this.title = data.name + '('+data.databaseName + '-' + data.systemName+')' this.title = data.name + '('+data.databaseName + '-' + data.systemName+')'
this.showAssets = data.type; this.showAssets = data.type;
if (data.as!=undefined){
this.$router.push({
path:OverallAssetStructure,
query:{tableName: data.name}
})
}
}, },
thisLib() { thisTable() {
tableNameList().then(res => { tableNameList().then(res => {
this.tableName = res.data this.childrenList = res.data
}) })
} }
}, },
// - 访this", // - 访this",
created() { created() {
this.thisLib() this.thisTable()
}, },
// - 访DOM", // - 访DOM",
mounted() { mounted() {