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. 150
      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>

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

@ -146,50 +146,77 @@
<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"
</el-select> placeholder="请选择系统"
</el-form-item> clearable
<el-form-item label="表名"> filterable
<el-input v-model="leftQueryForm.tabName" placeholder="请输入表名" clearable style="width: 180px"/> style="width: 100px"
</el-form-item> >
<el-form-item> <el-option
<el-button type="primary" @click="loadLeftTable">查询</el-button> v-for="item in dsSysList"
</el-form-item> :key="item.id"
</el-form> :label="item.name"
:value="item.id"
<el-table />
:data="leftTableData" </el-select>
height="300" </el-form-item>
border <el-form-item label="模式名">
style="margin-top: 10px" <el-input
@selection-change="handleLeftSelect" v-model="leftQueryForm.mdlName"
> placeholder="请输入模式名"
<el-table-column type="selection" width="50" /> clearable
<el-table-column prop="ssysId" label="系统名" > style="width: 100px"
<template #default="scope"> />
<span > </el-form-item>
{{ <el-form-item label="表名">
getNameById(scope.row.ssysId) <el-input
}} v-model="leftQueryForm.tabName"
</span> placeholder="请输入表名"
</template> clearable
</el-table-column> style="width: 120px"
<el-table-column prop="mdlName" label="模式名" /> />
<el-table-column prop="tabEngName" label="表名" /> </el-form-item>
</el-table> <el-form-item>
<el-button type="primary" @click="loadLeftTable">查询</el-button>
</el-form-item>
</el-form>
<el-table
:data="leftTableData"
height="300"
border
style="margin-top: 10px"
@selection-change="handleLeftSelect"
>
<el-table-column type="selection" width="50" />
<el-table-column label="源系统" align="center" prop="ssysId">
<template #default="scope">
<span >
{{
getNameById(scope.row.ssysId)
}}
</span>
</template>
</el-table-column>
<el-table-column prop="mdlName" label="模式名" />
<el-table-column prop="tabEngName" label="表名" />
</el-table>
<pagination <pagination
v-show="leftTotal > 0" style="position: absolute!important;right: 800px!important;margin-top: 20px;"
:total="leftTotal" v-show="leftTotal > 0"
v-model:page="leftQueryForm.pageNum" :total="leftTotal"
v-model:limit="leftQueryForm.pageSize" v-model:page="leftQueryForm.pageNum"
@pagination="loadLeftTable" v-model:limit="leftQueryForm.pageSize"
style="left: 0%!;" @pagination="loadLeftTable"
/> />
</el-col>
</el-col>
<!-- 中间穿梭按钮 --> <!-- 中间穿梭按钮 -->
<el-col :span="4" class="flex-col-center"> <el-col :span="4" class="flex-col-center">
@ -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