第一次

master^2^2
chentaisen 2024-09-10 09:22:01 +08:00
parent b7003dd31d
commit 3e46a8e8fb
4 changed files with 141 additions and 53 deletions

View File

@ -82,7 +82,7 @@ export function findTableIdByParentId(id) {
//表 //表
export function findTableValueByTableName(basicId,tableName) { export function findTableValueByTableName(basicId,tableName) {
return request({ return request({
url: `/source/value/findTableValueByTableName/?basicId=`+basicId+'&&tableName='+tableName, url: "/source/value/findTableValueByTableName?basicId="+basicId+"&tableName="+tableName,
method: 'post', method: 'post',
}) })
} }

View File

@ -26,6 +26,7 @@ import ExporFind from "./type/exporFind.vue";
import UniteFind from "./type/uniteFind.vue"; import UniteFind from "./type/uniteFind.vue";
export default { export default {
// import使" // import使"
name: 'type-table', name: 'type-table',

View File

@ -3,11 +3,11 @@
<el-form label-position="right" label-width="60px"> <el-form label-position="right" label-width="60px">
<el-form-item label="输入表"> <el-form-item label="输入表">
<span v-for="db in formDb"> <span v-for="db in formDb">
<el-input v-model="db.dbTable" placeholder="无输入表" style="width: 60%;" disabled /> <el-input v-model="db.dbTable" placeholder="无输入表" style="width: 60%;" disabled/>
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="输出表"> <el-form-item label="输出表">
<el-input v-model="toDb.dbTable" placeholder="无输出表" style="width: 60%;" disabled /> <el-input v-model="toDb.dbTable" placeholder="无输出表" style="width: 60%;" disabled/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div> <div>
@ -16,13 +16,15 @@
</div> </div>
<div align="center"> <div align="center">
<el-table ref="table" :data="formFields" height="450px"> <el-table ref="table" :data="formFields" height="450px">
<el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName" /> <el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName"/>
<el-table-column :show-overflow-tooltip="true" label="字段描述" prop="fieldComment" /> <el-table-column :show-overflow-tooltip="true" label="字段描述" prop="fieldComment"/>
<el-table-column :show-overflow-tooltip="true" label="字段类型" prop="fieldType" /> <el-table-column :show-overflow-tooltip="true" label="字段类型" prop="fieldType"/>
<el-table-column :show-overflow-tooltip="true" label="字段所属表" prop="tableName" /> <el-table-column :show-overflow-tooltip="true" label="字段所属表" prop="tableName"/>
<el-table-column :show-overflow-tooltip="true" label="输出字段"> <el-table-column :show-overflow-tooltip="true" label="输出字段">
<span slot-scope="scope" v-if="fieldsList && fieldsList.get(scope.row.fieldName)"> <span slot-scope="scope" v-if="fieldsList && fieldsList.get(scope.row.fieldName)">
{{ fieldsList.get(scope.row.fieldName).fieldName+ '(' + fieldsList.get(scope.row.fieldName).fieldComment + ')' }} {{
fieldsList.get(scope.row.fieldName).fieldName + '(' + fieldsList.get(scope.row.fieldName).fieldComment + ')'
}}
</span> </span>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -45,22 +47,22 @@
v-model="queryParams.tableName" v-model="queryParams.tableName"
clearable clearable
@change="handleQuery" @change="handleQuery"
placeholder="请输入表名称" /> placeholder="请输入表名称"/>
</el-form-item> </el-form-item>
<el-form-item label="表描述" prop="tableComment"> <el-form-item label="表描述" prop="tableComment">
<el-input <el-input
v-model="queryParams.tableComment" v-model="queryParams.tableComment"
clearable clearable
@change="handleQuery" @change="handleQuery"
placeholder="请输入表描述" /> placeholder="请输入表描述"/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"></el-button> <el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table ref="table" :data="tableOptions" height="300px"> <el-table ref="table" :data="tableOptions" height="300px">
<el-table-column :show-overflow-tooltip="true" label="表名称" prop="tableName" /> <el-table-column :show-overflow-tooltip="true" label="表名称" prop="tableName"/>
<el-table-column :show-overflow-tooltip="true" label="表描述" prop="tableComment" /> <el-table-column :show-overflow-tooltip="true" label="表描述" prop="tableComment"/>
<el-table-column label="操作" width="50px"> <el-table-column label="操作" width="50px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="selectTable(scope.row)"></el-button> <el-button type="text" @click="selectTable(scope.row)"></el-button>
@ -70,10 +72,10 @@
<el-divider content-position="left">选择字段 v</el-divider> <el-divider content-position="left">选择字段 v</el-divider>
<el-table ref="table" :data="fieldsOptions" height="280px" <el-table ref="table" :data="fieldsOptions" height="280px"
@row-click="clickRow" @selection-change="handleSelectionChange"> @row-click="clickRow" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55"/>
<el-table-column :show-overflow-tooltip="true" label="字段名称" prop="columnName" /> <el-table-column :show-overflow-tooltip="true" label="字段名称" prop="columnName"/>
<el-table-column :show-overflow-tooltip="true" label="字段描述" prop="columnComment" /> <el-table-column :show-overflow-tooltip="true" label="字段描述" prop="columnComment"/>
<el-table-column :show-overflow-tooltip="true" label="字段类型" prop="columnType" /> <el-table-column :show-overflow-tooltip="true" label="字段类型" prop="columnType"/>
</el-table> </el-table>
<br><br> <br><br>
<div align="center"> <div align="center">
@ -85,14 +87,15 @@
<el-dialog title="选择字段" :visible.sync="checkFieldsMapFlag" width="60%" :modal="false"> <el-dialog title="选择字段" :visible.sync="checkFieldsMapFlag" width="60%" :modal="false">
<div style="padding-left: 10px;padding-right: 10px;"> <div style="padding-left: 10px;padding-right: 10px;">
<el-table ref="table" :data="formFields" height="500px"> <el-table ref="table" :data="formFields" height="500px">
<el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName" /> <el-table-column :show-overflow-tooltip="true" label="字段名称" prop="fieldName"/>
<el-table-column :show-overflow-tooltip="true" label="字段描述" prop="fieldComment" /> <el-table-column :show-overflow-tooltip="true" label="字段描述" prop="fieldComment"/>
<el-table-column :show-overflow-tooltip="true" label="字段类型" prop="fieldType" /> <el-table-column :show-overflow-tooltip="true" label="字段类型" prop="fieldType"/>
<el-table-column :show-overflow-tooltip="true" label="字段所属表" prop="tableName" /> <el-table-column :show-overflow-tooltip="true" label="字段所属表" prop="tableName"/>
<el-table-column :show-overflow-tooltip="true" label="目标字段"> <el-table-column :show-overflow-tooltip="true" label="目标字段">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.toFidlesName" placeholder="请选择字段"> <el-select v-model="scope.row.toFidlesName" placeholder="请选择字段">
<el-option v-for="field in toFields" :label="field.fieldName+'('+field.fieldComment+')'" :value="field.fieldName"/> <el-option v-for="field in toFields" :label="field.fieldName+'('+field.fieldComment+')'"
:value="field.fieldName"/>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -106,6 +109,7 @@
</div> </div>
</template> </template>
<script> <script>
// jsjsjson, // jsjsjson,
// import from ', // import from ',
@ -166,7 +170,7 @@ export default {
// //
/** 1.查询该节点的上一级节点*/ /** 1.查询该节点的上一级节点*/
this.data.lineList.forEach(line => { this.data.lineList.forEach(line => {
if (line.to === this.node.id){ if (line.to === this.node.id) {
listDisposition({nodeCode: line.from}).then(res => { listDisposition({nodeCode: line.from}).then(res => {
const data = this.getVueDisp(res.data.rows) const data = this.getVueDisp(res.data.rows)
this.formDb = data.db this.formDb = data.db
@ -190,24 +194,24 @@ export default {
}, },
// //
save() { save() {
console.log('formDb',this.formDb) console.log('formDb', this.formDb)
console.log('toDb',this.toDb) console.log('toDb', this.toDb)
console.log('formFields',this.formFields) console.log('formFields', this.formFields)
console.log('toFields',this.toFields) console.log('toFields', this.toFields)
console.log('fieldsList',this.fieldsList) console.log('fieldsList', this.fieldsList)
// //
const field = this.formFields const field = this.formFields
let map = field.map(item => [item.fieldName, item.toFidlesName]); let map = field.map(item => [item.fieldName, item.toFidlesName]);
this.fieldsList = new Map() this.fieldsList = new Map()
map.forEach(item => { map.forEach(item => {
this.toFields.forEach(toField => { this.toFields.forEach(toField => {
if (toField.fieldName === item[1]){ if (toField.fieldName === item[1]) {
this.fieldsList.set(item[0], toField) this.fieldsList.set(item[0], toField)
} }
}) })
}) })
// //
let mysqlDisp = this.getMysqlDisp(this.toDb,this.fieldsList); let mysqlDisp = this.getMysqlDisp(this.toDb, this.fieldsList);
// //
batchAddUpd(mysqlDisp, this.disp.nodeCode).then(res => { batchAddUpd(mysqlDisp, this.disp.nodeCode).then(res => {
this.$message.success(res.msg) this.$message.success(res.msg)
@ -223,7 +227,7 @@ export default {
const params = this.queryParams const params = this.queryParams
if ((table.dbName === params.dbName || !params.dbName) && if ((table.dbName === params.dbName || !params.dbName) &&
(table.tableName.includes(params.tableName) || !params.tableName) && (table.tableName.includes(params.tableName) || !params.tableName) &&
(table.tableComment.includes(params.tableComment) || !params.tableComment)){ (table.tableComment.includes(params.tableComment) || !params.tableComment)) {
this.tableOptions.push(table) this.tableOptions.push(table)
} }
}) })
@ -235,7 +239,7 @@ export default {
dbName: row.dbName, dbName: row.dbName,
tableName: row.tableName, tableName: row.tableName,
tableComment: row.tableComment, tableComment: row.tableComment,
dbTable: row.dbName+'.'+row.tableName+'('+ row.tableComment +')' dbTable: row.dbName + '.' + row.tableName + '(' + row.tableComment + ')'
} }
selectDbTableColumnsByName(row.dbName, row.tableName).then(res => { selectDbTableColumnsByName(row.dbName, row.tableName).then(res => {
this.fieldsOptions = res.data this.fieldsOptions = res.data
@ -248,7 +252,7 @@ export default {
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.toFields = selection.map(item => { this.toFields = selection.map(item => {
return { return {
dbTable: this.toDb.dbName+'.'+this.toDb.tableName, dbTable: this.toDb.dbName + '.' + this.toDb.tableName,
fieldName: item.columnName, fieldName: item.columnName,
fieldType: item.columnType, fieldType: item.columnType,
fieldComment: item.columnComment fieldComment: item.columnComment
@ -280,7 +284,7 @@ export default {
dbName: disp.dispDesc, dbName: disp.dispDesc,
tableName: disp.dispValue, tableName: disp.dispValue,
tableComment: disp.dispLabel, tableComment: disp.dispLabel,
dbTable: disp.dispDesc+'.'+disp.dispValue+'('+disp.dispLabel+')' dbTable: disp.dispDesc + '.' + disp.dispValue + '(' + disp.dispLabel + ')'
}) })
} }
if (disp.dispKey === 'fields') { if (disp.dispKey === 'fields') {
@ -292,15 +296,15 @@ export default {
}) })
} }
// //
if (disp.dispKey === 'toDb'){ if (disp.dispKey === 'toDb') {
toDb = { toDb = {
dbName: disp.dispDesc, dbName: disp.dispDesc,
tableName: disp.dispValue, tableName: disp.dispValue,
tableComment: disp.dispLabel, tableComment: disp.dispLabel,
dbTable: disp.dispDesc+'.'+disp.dispValue+'('+disp.dispLabel+')' dbTable: disp.dispDesc + '.' + disp.dispValue + '(' + disp.dispLabel + ')'
} }
} }
if (disp.dispKey === 'toFields'){ if (disp.dispKey === 'toFields') {
fieldsMap.set(disp.dispDesc, { fieldsMap.set(disp.dispDesc, {
fieldName: disp.dispValue, fieldName: disp.dispValue,
fieldType: disp.dispType, fieldType: disp.dispType,

View File

@ -408,13 +408,86 @@
<span style="margin-left: 10px">{{ scope.row.center }}</span> <span style="margin-left: 10px">{{ scope.row.center }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleEditSelect()">选择 @click="handleEditSelect(scope.row)">选择
</el-button>
</template>
</el-table-column>
</el-table>
</template>
</div>
<span>
<!--tableDa-->
<el-button type="primary" @click="measurements()"> </el-button>
</span>
</el-card>
</el-col>
<span>
<el-col v-show="selectss">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>选择资产集</span>
<template>
<el-table
:data="tableDa"
style="width: 100%">
<el-table-column
label="主键"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column
label="数据源ID"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.basicId }}</span>
</template>
</el-table-column>
<el-table-column
label="表名称"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.tableName }}</span>
</template>
</el-table-column>
<el-table-column
label="表备注"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.tableRemark }}</span>
</template>
</el-table-column>
<el-table-column
label="类型"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.type }}</span>
</template>
</el-table-column>
<el-table-column
label="数据量"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.dataNum }}</span>
</template>
</el-table-column>
<el-table-column
label="是否核心"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.center }}</span>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEditSelect(scope.row)">选择
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -428,6 +501,7 @@
</el-card> </el-card>
</el-col> </el-col>
</span> </span>
</span>
</el-drawer> </el-drawer>
@ -530,7 +604,7 @@ export default {
// //
dataOrigin: {}, dataOrigin: {},
origins: [], origins: [],
tableDa: [],
tableOrigin: [], tableOrigin: [],
showCode: false, showCode: false,
// //
@ -552,12 +626,20 @@ export default {
this.findById(); this.findById();
}, },
methods: { methods: {
//
getDataTable(data) {
getDataTables(data.id).then(res => {
this.tableDa = res.data
})
},
// //
handleEditSelect() { handleEditSelect(data) {
findTableValueByTableName(this.tableOrigin.basicId, this.tableOrigin.tableName).then(res => { alert(data.id)
findTableValueByTableName(data.basicId, data.tableName).then(res => {
console.log(res.data) console.log(res.data)
this.tableDatas = res.data this.tableDatas = res.data
console.log(this.tableDatas) console.log(this.tableDatas)
this.getDataTable(data);
}) })
}, },
// //
@ -589,6 +671,7 @@ export default {
chanChild() { chanChild() {
findTableIdByParentId(this.dataOrigin.sourceId).then(res => { findTableIdByParentId(this.dataOrigin.sourceId).then(res => {
this.tableOrigin = res.data this.tableOrigin = res.data
console.log(this.tableOrigin)
// console.log(this.tableOrigin) // console.log(this.tableOrigin)
}) })
}, },