Browse Source

代码提交

master
siyaqi 1 month ago
parent
commit
9c44af4bee
  1. 1
      vue-fastapi-backend/module_admin/dao/metadata_config_dao.py
  2. 2
      vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue
  3. 78
      vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue
  4. 2
      vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue

1
vue-fastapi-backend/module_admin/dao/metadata_config_dao.py

@ -200,6 +200,7 @@ class MetadataConfigDao:
.outerjoin(subquery, SecuBizConfig.onum == subquery.c.biz_onum) .outerjoin(subquery, SecuBizConfig.onum == subquery.c.biz_onum)
.where( .where(
SecuBizConfig.risk_lvl.like(f"%{query_object.risk_lvl}%") if query_object.risk_lvl else True, SecuBizConfig.risk_lvl.like(f"%{query_object.risk_lvl}%") if query_object.risk_lvl else True,
SecuBizConfig.biz_name.like(f"%{query_object.biz_name}%") if query_object.biz_name else True,
SecuBizConfig.isStop == query_object.isStop if query_object.isStop is not None else True, SecuBizConfig.isStop == query_object.isStop if query_object.isStop is not None else True,
SecuBizConfig.create_time.between( SecuBizConfig.create_time.between(
datetime.combine(datetime.strptime(query_object.begin_time, '%Y-%m-%d'), time.min), datetime.combine(datetime.strptime(query_object.begin_time, '%Y-%m-%d'), time.min),

2
vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue

@ -177,7 +177,7 @@
<el-form-item label="数据资产来源" prop="dataAstSrc"> <el-form-item label="数据资产来源" prop="dataAstSrc">
<el-tree-select v-model="form.dataAstSrc" :data="treeDataChildren" <el-tree-select v-model="form.dataAstSrc" :data="treeDataChildren"
:props="{ value: 'name', label: 'name', children: 'children' }" value-key="id" placeholder="请选择" :props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" placeholder="请选择"
check-strictly /> check-strictly />
</el-form-item> </el-form-item>

78
vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue

@ -146,14 +146,38 @@
<el-row :gutter="20" style="margin-top: 20px"> <el-row :gutter="20" style="margin-top: 20px">
<!-- 左侧表格可选元数据 --> <!-- 左侧表格可选元数据 -->
<el-col :span="10"> <el-col :span="10">
<el-form :model="leftQueryForm" inline size="small" > <el-form :model="leftQueryForm" inline size="small">
<el-form-item label="系统名"> <el-form-item label="系统名">
<el-select v-model="leftQueryForm.ssysCd" placeholder="请选择系统" clearable filterable style="width: 180px"> <el-select
<el-option v-for="item in dsSysList" :key="item.id" :label="item.name" :value="item.name" /> v-model="leftQueryForm.ssysId"
placeholder="请选择系统"
clearable
filterable
style="width: 100px"
>
<el-option
v-for="item in dsSysList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item>
<el-form-item label="模式名">
<el-input
v-model="leftQueryForm.mdlName"
placeholder="请输入模式名"
clearable
style="width: 100px"
/>
</el-form-item> </el-form-item>
<el-form-item label="表名"> <el-form-item label="表名">
<el-input v-model="leftQueryForm.tabName" placeholder="请输入表名" clearable style="width: 180px"/> <el-input
v-model="leftQueryForm.tabName"
placeholder="请输入表名"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="loadLeftTable">查询</el-button> <el-button type="primary" @click="loadLeftTable">查询</el-button>
@ -168,7 +192,7 @@
@selection-change="handleLeftSelect" @selection-change="handleLeftSelect"
> >
<el-table-column type="selection" width="50" /> <el-table-column type="selection" width="50" />
<el-table-column prop="ssysId" label="系统名" > <el-table-column label="源系统" align="center" prop="ssysId">
<template #default="scope"> <template #default="scope">
<span > <span >
{{ {{
@ -182,13 +206,16 @@
</el-table> </el-table>
<pagination <pagination
style="position: absolute!important;right: 800px!important;margin-top: 20px;"
v-show="leftTotal > 0" v-show="leftTotal > 0"
:total="leftTotal" :total="leftTotal"
v-model:page="leftQueryForm.pageNum" v-model:page="leftQueryForm.pageNum"
v-model:limit="leftQueryForm.pageSize" v-model:limit="leftQueryForm.pageSize"
@pagination="loadLeftTable" @pagination="loadLeftTable"
style="left: 0%!;"
/> />
</el-col> </el-col>
<!-- 中间穿梭按钮 --> <!-- 中间穿梭按钮 -->
@ -252,10 +279,11 @@ const queryForm = reactive({
pageSize: 10 pageSize: 10
}) })
const leftQueryForm = reactive({ const leftQueryForm = reactive({
ssysCd: '', ssysId: '',
tabName: '', tabName: '',
mdlName: '',
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
}) })
const bizList = ref([]) const bizList = ref([])
@ -424,17 +452,27 @@ function handleLeftSelect(rows) {
} }
function handleRightSelect(rows) { function handleRightSelect(rows) {
rightSelected.value = rows rightSelected.value = rows
}
function filterLeftTable() {
const rightKeys = new Set(rightTableData.value.map(buildKey))
leftTableData.value = leftTableData.value.filter(
item => !rightKeys.has(buildKey(item))
)
} }
async function loadLeftTable() { async function loadLeftTable() {
const res = await getMetaDataList(leftQueryForm) const res = await getMetaDataList(leftQueryForm)
leftTableData.value = res.data.rows || [] leftTableData.value = res.data.rows || []
leftTotal.value = res.data.total || 0 leftTotal.value = res.data.total || 0
filterLeftTable()
} }
async function loadRightTable(onum) { async function loadRightTable(onum) {
const res = await getBizRalaList(onum) const res = await getBizRalaList(onum)
rightTableData.value = res.data || [] rightTableData.value = res.data || []
filterLeftTable()
} }
// ssysCd + mdlName + tabEngName // ssysCd + mdlName + tabEngName
@ -444,18 +482,30 @@ function buildKey(row) {
function moveToRight() { function moveToRight() {
const existingKeys = new Set(rightTableData.value.map(buildKey)) const existingKeys = new Set(rightTableData.value.map(buildKey))
leftSelected.value.forEach(item => { const toMove = leftSelected.value.filter(item => !existingKeys.has(buildKey(item)))
if (!existingKeys.has(buildKey(item))) { toMove.forEach(item => {
let additem=item let additem = { ...item, onum: item.extractOnum }
additem.onum=item.extractOnum rightTableData.value.push(additem)
rightTableData.value.push(item)
}
}) })
//
leftTableData.value = leftTableData.value.filter(
item => !toMove.includes(item)
)
leftSelected.value = []
} }
function moveToLeft() { function moveToLeft() {
const removeKeys = new Set(rightSelected.value.map(buildKey)) const removeKeys = new Set(rightSelected.value.map(buildKey))
//
const toRemove = rightTableData.value.filter(item => removeKeys.has(buildKey(item)))
rightTableData.value = rightTableData.value.filter(item => !removeKeys.has(buildKey(item))) rightTableData.value = rightTableData.value.filter(item => !removeKeys.has(buildKey(item)))
//
leftTableData.value.push(...toRemove)
rightSelected.value = []
} }
onMounted(() => { onMounted(() => {

2
vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue

@ -554,7 +554,7 @@ function filterLeftTable() {
} }
function buildKey(row) { function buildKey(row) {
return `${row.ssysCd}||${row.mdlName}||${row.tabEngName}` return `${row.ssysId}||${row.mdlName}||${row.tabEngName}`
} }
function moveToRight() { function moveToRight() {

Loading…
Cancel
Save