mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-02 23:40:24 +08:00
Merge branch 'dev' of https://gitee.com/objs/mayfly-go into dev
This commit is contained in:
@@ -68,8 +68,8 @@
|
|||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="字段映射" name="field">
|
<el-tab-pane label="字段映射" name="field">
|
||||||
<el-form-item prop="fieldMap" label="字段映射" required>
|
<el-form-item prop="fieldMap" label="字段映射" required>
|
||||||
<el-table :data="form.fieldMap" style="width: 100%" :max-height="400" size="small">
|
<el-table :data="form.fieldMap" :max-height="400" size="small">
|
||||||
<el-table-column prop="src" label="源字段" />
|
<el-table-column prop="src" label="源字段" :width="200" />
|
||||||
<el-table-column prop="target" label="目标字段">
|
<el-table-column prop="target" label="目标字段">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select v-model="scope.row.target">
|
<el-select v-model="scope.row.target">
|
||||||
@@ -164,8 +164,6 @@ type FormData = {
|
|||||||
pageSize?: number;
|
pageSize?: number;
|
||||||
updField?: string;
|
updField?: string;
|
||||||
updFieldVal?: string;
|
updFieldVal?: string;
|
||||||
idRule?: 1 | 2;
|
|
||||||
pkField?: string;
|
|
||||||
fieldMap?: { src: string; target: string }[];
|
fieldMap?: { src: string; target: string }[];
|
||||||
status?: 1 | 2;
|
status?: 1 | 2;
|
||||||
};
|
};
|
||||||
@@ -177,7 +175,6 @@ const basicFormData = {
|
|||||||
pageSize: 100,
|
pageSize: 100,
|
||||||
updField: 'id',
|
updField: 'id',
|
||||||
updFieldVal: '0',
|
updFieldVal: '0',
|
||||||
idRule: 2,
|
|
||||||
fieldMap: [{ src: 'a', target: 'b' }],
|
fieldMap: [{ src: 'a', target: 'b' }],
|
||||||
status: 1,
|
status: 1,
|
||||||
} as FormData;
|
} as FormData;
|
||||||
@@ -359,18 +356,8 @@ const handleGetSrcFields = async () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果主键字段名为空或不存在于字段列表中,则取第一个字段
|
|
||||||
if (!state.form.pkField || !res.columns.find((a: any) => a.src === state.form.pkField)) {
|
|
||||||
state.form.pkField = res.columns[0].name;
|
|
||||||
}
|
|
||||||
|
|
||||||
state.srcTableFields = res.columns.map((a: any) => a.name);
|
state.srcTableFields = res.columns.map((a: any) => a.name);
|
||||||
|
|
||||||
// 如果主键规则是参照数据源,字段映射不显示数据源的id
|
|
||||||
if (state.form.idRule === 2) {
|
|
||||||
res.columns = res.columns.filter((a: any) => a.name !== state.form.pkField);
|
|
||||||
}
|
|
||||||
|
|
||||||
state.form.fieldMap = res.columns.map((a: any) => ({ src: a.name, target: filedMap[a.name] || '' }));
|
state.form.fieldMap = res.columns.map((a: any) => ({ src: a.name, target: filedMap[a.name] || '' }));
|
||||||
|
|
||||||
state.previewRes = res;
|
state.previewRes = res;
|
||||||
@@ -382,15 +369,19 @@ const handleGetTargetFields = async () => {
|
|||||||
if (columns && Array.isArray(columns)) {
|
if (columns && Array.isArray(columns)) {
|
||||||
state.targetColumnList = columns;
|
state.targetColumnList = columns;
|
||||||
// 过滤目标字段,不存在的字段值设置为空
|
// 过滤目标字段,不存在的字段值设置为空
|
||||||
let names = columns.map((a) => a.columnName);
|
let names = columns.map((a) => a.columnName?.toLowerCase());
|
||||||
|
|
||||||
state.form.fieldMap?.forEach((a) => {
|
state.form.fieldMap?.forEach((a) => {
|
||||||
if (a.target && !names.includes(a.target)) {
|
if (a.target && !names.includes(a.target)) {
|
||||||
a.target = '';
|
a.target = '';
|
||||||
}
|
}
|
||||||
// 优先设置字段名和src一样的值
|
// 优先设置字段名和src一样的值
|
||||||
if (names.includes(a.src)) {
|
if (names.includes(a.src?.toLowerCase())) {
|
||||||
a.target = a.src;
|
// 从columns中取出
|
||||||
|
let res = columns.find((col: any) => col.columnName?.toLowerCase() === a.src?.toLowerCase());
|
||||||
|
if (res) {
|
||||||
|
a.target = res.columnName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -428,7 +419,7 @@ const cancel = () => {
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.sync-task-edit {
|
.sync-task-edit {
|
||||||
.el-select {
|
.el-select {
|
||||||
width: 400px;
|
width: 360px;
|
||||||
}
|
}
|
||||||
.task-sql {
|
.task-sql {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
Reference in New Issue
Block a user