From 9c44af4beea48fc34024442ff125d82575afe0ca Mon Sep 17 00:00:00 2001 From: siyaqi Date: Sat, 27 Dec 2025 18:49:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_admin/dao/metadata_config_dao.py | 1 + .../src/views/dataAsset/assetDetail/index.vue | 2 +- .../views/metadataConfig/bizConfig/index.vue | 150 ++++++++++++------ .../metadataConfig/taskBizConfig/index.vue | 2 +- 4 files changed, 103 insertions(+), 52 deletions(-) diff --git a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py index a38065c..7544db7 100644 --- a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py +++ b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py @@ -200,6 +200,7 @@ class MetadataConfigDao: .outerjoin(subquery, SecuBizConfig.onum == subquery.c.biz_onum) .where( 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.create_time.between( datetime.combine(datetime.strptime(query_object.begin_time, '%Y-%m-%d'), time.min), diff --git a/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue b/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue index dd3f8b5..85f2bb1 100644 --- a/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue +++ b/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue @@ -177,7 +177,7 @@ diff --git a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue index f02bfc1..37f27d7 100644 --- a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue +++ b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue @@ -146,50 +146,77 @@ - - - - - - - - - - - 查询 - - - - - - - - - - - + + + + + + + + + + + + + + 查询 + + + + + + + + + + + - + style="position: absolute!important;right: 800px!important;margin-top: 20px;" + v-show="leftTotal > 0" + :total="leftTotal" + v-model:page="leftQueryForm.pageNum" + v-model:limit="leftQueryForm.pageSize" + @pagination="loadLeftTable" + /> + + + + @@ -252,10 +279,11 @@ const queryForm = reactive({ pageSize: 10 }) const leftQueryForm = reactive({ - ssysCd: '', + ssysId: '', tabName: '', + mdlName: '', pageNum: 1, - pageSize: 10 + pageSize: 10, }) const bizList = ref([]) @@ -424,17 +452,27 @@ function handleLeftSelect(rows) { } function handleRightSelect(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() { const res = await getMetaDataList(leftQueryForm) leftTableData.value = res.data.rows || [] leftTotal.value = res.data.total || 0 + filterLeftTable() } async function loadRightTable(onum) { const res = await getBizRalaList(onum) rightTableData.value = res.data || [] + filterLeftTable() } // 用唯一键:ssysCd + mdlName + tabEngName 来判断是否重复 @@ -444,18 +482,30 @@ function buildKey(row) { function moveToRight() { const existingKeys = new Set(rightTableData.value.map(buildKey)) - leftSelected.value.forEach(item => { - if (!existingKeys.has(buildKey(item))) { - let additem=item - additem.onum=item.extractOnum - rightTableData.value.push(item) - } + const toMove = leftSelected.value.filter(item => !existingKeys.has(buildKey(item))) + toMove.forEach(item => { + let additem = { ...item, onum: item.extractOnum } + rightTableData.value.push(additem) }) + // 左边删除选中的 + leftTableData.value = leftTableData.value.filter( + item => !toMove.includes(item) + ) + leftSelected.value = [] } + function moveToLeft() { 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))) + + // 放回左边 + leftTableData.value.push(...toRemove) + + rightSelected.value = [] } onMounted(() => { diff --git a/vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue index 8854d49..7fc00da 100644 --- a/vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue +++ b/vue-fastapi-frontend/src/views/metadataConfig/taskBizConfig/index.vue @@ -554,7 +554,7 @@ function filterLeftTable() { } function buildKey(row) { - return `${row.ssysCd}||${row.mdlName}||${row.tabEngName}` + return `${row.ssysId}||${row.mdlName}||${row.tabEngName}` } function moveToRight() {