Merge pull request #13644 from dataease/pr@dev-v2@fixds

fix: 【数据源】Excel数据源在替换数据时显示不正确
This commit is contained in:
taojinlong 2024-11-28 15:22:53 +08:00 committed by GitHub
commit 9104e3789c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 0 deletions

View File

@ -843,6 +843,10 @@ public class DatasourceServer implements DatasourceApi {
if (CollectionUtils.isEmpty(newTableFields) || CollectionUtils.isEmpty(oldTableFields)) { if (CollectionUtils.isEmpty(newTableFields) || CollectionUtils.isEmpty(oldTableFields)) {
return false; return false;
} }
boolean isHistory = oldTableFields.stream().filter(tableField -> !tableField.isChecked()).collect(Collectors.toList()).size() == oldTableFields.size();
if (isHistory) {
oldTableFields.forEach(tableField -> tableField.setChecked(true));
}
newTableFields.forEach(tableField -> tableField.setChecked(false)); newTableFields.forEach(tableField -> tableField.setChecked(false));
for (TableField oldField : oldTableFields) { for (TableField oldField : oldTableFields) {
if (!oldField.isChecked()) { if (!oldField.isChecked()) {
@ -867,6 +871,10 @@ public class DatasourceServer implements DatasourceApi {
private void mergeFields(List<TableField> oldFields, List<TableField> newFields) { private void mergeFields(List<TableField> oldFields, List<TableField> newFields) {
newFields.forEach(tableField -> tableField.setChecked(false)); newFields.forEach(tableField -> tableField.setChecked(false));
boolean isHistory = oldFields.stream().filter(tableField -> !tableField.isChecked()).collect(Collectors.toList()).size() == oldFields.size();
if (isHistory) {
oldFields.forEach(tableField -> tableField.setChecked(true));
}
for (TableField newField : newFields) { for (TableField newField : newFields) {
for (TableField oldField : oldFields) { for (TableField oldField : oldFields) {
if (oldField.getName().equals(newField.getName())) { if (oldField.getName().equals(newField.getName())) {

View File

@ -215,6 +215,13 @@ const saveExcelDs = (params, successCb, finallyCb) => {
if (selectNode[i].changeFiled) { if (selectNode[i].changeFiled) {
changeFiled = true changeFiled = true
} }
if (selectNode[i].fields.filter(field => field.checked).length == 0) {
ElMessage({
message: selectNode[i].excelLabel + t('datasource.api_field_not_empty'),
type: 'error'
})
return
}
for (let j = 0; j < selectNode[i].fields.length; j++) { for (let j = 0; j < selectNode[i].fields.length; j++) {
if ( if (
selectNode[i].fields[j].checked && selectNode[i].fields[j].checked &&