|
|
@ -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(() => { |
|
|
|