style: 固定 CellData 映射基础区和添加按钮
This commit is contained in:
@@ -808,3 +808,9 @@
|
|||||||
- CellData「规则设置」弹窗中的映射规则增加“图形化 / JSON”切换。图形化模式可维护目标表、主键字段、主键表达式、来源目录、CSV 前缀和字段映射;字段映射支持“CSV 字段”和“固定值”两种模式。
|
- CellData「规则设置」弹窗中的映射规则增加“图形化 / JSON”切换。图形化模式可维护目标表、主键字段、主键表达式、来源目录、CSV 前缀和字段映射;字段映射支持“CSV 字段”和“固定值”两种模式。
|
||||||
- JSON 模式仍使用 Monaco 编辑器,支持格式化、校验、恢复默认;两种模式共用同一份 `CellData.mapping` JSON,切换时自动互转。
|
- JSON 模式仍使用 Monaco 编辑器,支持格式化、校验、恢复默认;两种模式共用同一份 `CellData.mapping` JSON,切换时自动互转。
|
||||||
- 验证:`frontend` `npm run build` 通过;构建产物已清理。
|
- 验证:`frontend` `npm run build` 通过;构建产物已清理。
|
||||||
|
|
||||||
|
## 2026-06-25:固定图形化映射基础区与添加来源按钮
|
||||||
|
|
||||||
|
- CellData「规则设置」弹窗不再整体滚动;高级匹配、目标表、主键字段和主键表达式固定显示,图形化模式下仅来源列表滚动。
|
||||||
|
- “添加来源”按钮固定在来源列表下方,始终可见;弹窗底部保存按钮也保持可见。
|
||||||
|
- 验证:`frontend` `npm run build` 通过;构建产物已清理。
|
||||||
|
|||||||
@@ -774,7 +774,9 @@
|
|||||||
<n-button size="small" @click="addCellDataMappingField(sourceIndex)">添加字段</n-button>
|
<n-button size="small" @click="addCellDataMappingField(sourceIndex)">添加字段</n-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<n-button size="small" @click="addCellDataMappingSource">添加来源</n-button>
|
<div class="cell-data-mapping-actions">
|
||||||
|
<n-button size="small" @click="addCellDataMappingSource">添加来源</n-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+29
-4
@@ -1640,16 +1640,24 @@ select {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cell-data-settings-body {
|
.cell-data-settings-body {
|
||||||
display: grid;
|
display: flex;
|
||||||
|
height: min(68vh, 680px);
|
||||||
|
min-height: 0;
|
||||||
|
flex-direction: column;
|
||||||
gap: 14px;
|
gap: 14px;
|
||||||
max-height: 68vh;
|
|
||||||
overflow-y: auto;
|
|
||||||
padding-right: 4px;
|
padding-right: 4px;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cell-data-settings-section {
|
.cell-data-settings-section {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
flex: 0 0 auto;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cell-data-settings-section:last-child {
|
||||||
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cell-data-section-title {
|
.cell-data-section-title {
|
||||||
@@ -1668,12 +1676,16 @@ select {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cell-data-mapping-form,
|
.cell-data-mapping-form,
|
||||||
.cell-data-source-list,
|
|
||||||
.cell-data-source-card {
|
.cell-data-source-card {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cell-data-mapping-form {
|
||||||
|
min-height: 0;
|
||||||
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
||||||
|
}
|
||||||
|
|
||||||
.cell-data-mapping-key {
|
.cell-data-mapping-key {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(140px, 0.8fr) minmax(120px, 0.6fr) minmax(240px, 1.4fr);
|
grid-template-columns: minmax(140px, 0.8fr) minmax(120px, 0.6fr) minmax(240px, 1.4fr);
|
||||||
@@ -1687,6 +1699,19 @@ select {
|
|||||||
border-radius: var(--td-radius-default);
|
border-radius: var(--td-radius-default);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cell-data-source-list {
|
||||||
|
display: grid;
|
||||||
|
gap: 10px;
|
||||||
|
min-height: 0;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cell-data-mapping-actions {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
.cell-data-source-header,
|
.cell-data-source-header,
|
||||||
.cell-data-source-meta,
|
.cell-data-source-meta,
|
||||||
.cell-data-field-row {
|
.cell-data-field-row {
|
||||||
|
|||||||
Reference in New Issue
Block a user