Compare commits

...

2 Commits

Author SHA1 Message Date
xueyinfei 206fa89318 Merge remote-tracking branch 'origin/master' 1 month ago
xueyinfei 5c7526bc06 数据资产发布 1 month ago
  1. 9
      vue-fastapi-frontend/src/api/meta/metaInfo.js
  2. 137
      vue-fastapi-frontend/src/views/meta/metaInfo/index.vue

9
vue-fastapi-frontend/src/api/meta/metaInfo.js

@ -56,6 +56,13 @@ export function postMetaSupp(data){
data: data
})
}
export function publishAstData(data){
return request({
url:'/default-api/system/dataAsset/addastappr',
method: 'post',
data: data
})
}
export function getMetaDataRelship(data){
return request({
url:'/default-api/dasset/meta/business/relation',
@ -81,3 +88,5 @@ export function getProcData(param){

137
vue-fastapi-frontend/src/views/meta/metaInfo/index.vue

@ -86,12 +86,27 @@
<el-button
type="primary"
plain
icon="Plus"
@click="applyDataAst"
>数据资产发布</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="CaretRight"
@click="runBloodAnalysisTask"
>执行血缘解析任务</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
ref="metaTable"
@select="handleSelection"
@select-all="handleSelectionAll"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="系统英文名" width="100" align="center" prop="ssysCd"></el-table-column>
<el-table-column label="模式名称" align="center" prop="mdlName"></el-table-column>
@ -565,11 +580,56 @@
</div>
</template>
</el-dialog>
<el-dialog
v-model="astPublish"
title="数据资产发布"
width="1100"
>
<el-table v-loading="loading" :data="dataAstList">
<el-table-column label="数据资产英文名称" align="center" prop="dataAstEngName"></el-table-column>
<el-table-column label="数据资产中文名称" align="center" prop="dataAstCnName"></el-table-column>
<el-table-column label="数据资产类型" align="center" prop="dataAstType"></el-table-column>
<el-table-column label="数据资产描述" align="center" prop="dataAstDesc">
<template #default="scope">
<el-input v-model="scope.row.dataAstDesc" ></el-input>
</template>
</el-table-column>
<!-- <el-table-column label="数据资产标签" align="center" prop="dataAstClas">-->
<!-- <template #default="scope">-->
<!-- <el-popover v-for="item in JSON.parse(scope.row.dataAstClas)" placement="right" width="auto" trigger="hover">-->
<!-- <template #reference>-->
<!-- <el-tag v-if="item.clasEffFlag && item.clasEffFlag === '1'">{{item.clasName}}</el-tag>-->
<!-- </template>-->
<!-- <div>-->
<!-- <div style="margin: 5px" v-for="item in scope.row.showTabClas"><el-tag v-if="item.clasEffFlag && item.clasEffFlag === '1'">{{item.clasName + ":" + item.clasValue}}</el-tag></div>-->
<!-- </div>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="数据资产来源" align="center" prop="dataAstSrc"></el-table-column>
<el-table-column label="数据资产编号" align="center" prop="astNo"></el-table-column>
<el-table-column label="操作" align="center" width="80">
<template #default="scope">
<el-button link type="danger" icon="Delete" @click.prevent="deleteAstData(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button @click="astPublish = false">取消</el-button>
<el-button type="primary" @click="confirmPublish">
发布
</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="Meta">
import {getDataSourceList, getMetaDataList, getColumnList, getMetaClasList, postMetaSupp, getMetaDataRelship, getMetaDataBloodRelship, getProcData, runBloodAnalysis} from "@/api/meta/metaInfo"
import {getDataSourceList, getMetaDataList, getColumnList, getMetaClasList, postMetaSupp, getMetaDataRelship, getMetaDataBloodRelship, getProcData, runBloodAnalysis, publishAstData} from "@/api/meta/metaInfo"
import { getMetaSecurityData } from "@/api/dataAsset/directory"
import { ref, nextTick, computed, watch, reactive, onMounted } from 'vue'
import SQLCodeMirror from "@/components/codemirror/SQLCodeMirror.vue";
@ -646,6 +706,9 @@
const bloodRelation = ref([])
const demoDataList = ref([])
const dbType = ref("MYSQL")
const selectedRows = ref([])
const dataAstList= ref([])
const astPublish = ref(false)
function changeColumnTab(){
if (activeColumnTab.value === 'businessRelation'){
@ -1043,11 +1106,35 @@
proxy.$refs.databaseTreeRef.setCurrentKey(null);
handleQuery()
}
function handleSelectionChange(){
function handleSelection(selection, row){
const isSelected = selection.some(item => item.extractOnum === row.extractOnum);
if (isSelected) {
//
if (!selectedRows.value.some(item => item.extractOnum === row.extractOnum)) {
selectedRows.value.push(row);
}
} else {
//
selectedRows.value = selectedRows.value.filter(item => item.extractOnum !== row.extractOnum);
}
}
function handleSelectionAll(selection) {
if (selection.length > 0) {
//
const newSelected = [selectedRows.value];
dataList.value.forEach(row => {
if (!newSelected.some(item => item.extractOnum === row.extractOnum)) {
newSelected.push(row);
}
});
selectedRows.value = newSelected;
} else {
//
dataList.value.forEach(row => {
selectedRows.value = selectedRows.value.filter(item => item.extractOnum !== row.extractOnum)
})
}
}
function getList(){
getMetaDataList(queryParams.value).then(res=>{
dataList.value = res.data.rows
@ -1103,6 +1190,13 @@
}
loading.value = false
total.value = res.data.total
proxy.$nextTick(() => {
//
dataList.value.forEach(row => {
const isSelected =selectedRows.value.some(item => item.extractOnum === row.extractOnum);
proxy.$refs.metaTable.toggleRowSelection(row, isSelected);
});
});
})
}
@ -1114,6 +1208,37 @@
let response = await runBloodAnalysis(query)
proxy.$modal.msgSuccess(response.data);
}
function confirmPublish(){
publishAstData({assetItems:dataAstList.value}).then(res=>{
proxy.$modal.msgSuccess(res.msg)
astPublish.value = false
})
}
function deleteAstData(row){
const index = dataAstList.value.findIndex(item => item.astNo === row.astNo);
dataAstList.value.splice(index,1)
}
function applyDataAst(){
if(selectedRows.value.length === 0){
proxy.$modal.msgWarning("请至少选择一条元数据进行发布")
}else{
dataAstList.value = []
selectedRows.value.forEach( row =>{
dataAstList.value.push({
dataAstEngName: row.tabEngName,
dataAstCnName: row.tabCnName?row.tabCnName:row.tabCrrctName,
dataAstType: row.tabType,
dataAstStat: '1',
dataAstDesc:'',
dataAstSrc: row.ssysCd,
astNo: row.extractOnum,
dataAstClas: JSON.stringify(row.batchTabClas)
})
})
astPublish.value = true
}
}
const filterNode = (value, data) => {
if (!value) return true;
return data.name.indexOf(value) !== -1;

Loading…
Cancel
Save