mirror of
https://github.com/dataease/dataease.git
synced 2026-05-14 21:12:33 +08:00
fix:修复远程excel数据源同步数据的问题 (#15294)
Co-authored-by: taojinlong <jinlong@fit2cloud.com>
This commit is contained in:
@@ -927,21 +927,13 @@ public class DatasourceServer implements DatasourceApi {
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDatasource(transDTO(coreDatasource));
|
||||
List<DatasetTableDTO> datasetTableDTOS = ExcelUtils.getTables(datasourceRequest);
|
||||
List<ExcelSheetData> excelSheetDataList = new ArrayList<>();
|
||||
for (ExcelSheetData sheet : excelFileData.getSheets()) {
|
||||
for (DatasetTableDTO datasetTableDTO : datasetTableDTOS) {
|
||||
if (excelDataTableName(datasetTableDTO.getTableName()).equals(sheet.getTableName())) {
|
||||
List<TableField> newTableFields = sheet.getFields();
|
||||
datasourceRequest.setTable(datasetTableDTO.getTableName());
|
||||
List<TableField> oldTableFields = ExcelUtils.getTableFields(datasourceRequest);
|
||||
if (isEqual(newTableFields, oldTableFields)) {
|
||||
sheet.setDeTableName(datasetTableDTO.getTableName());
|
||||
excelSheetDataList.add(sheet);
|
||||
}
|
||||
sheet.setDeTableName(datasetTableDTO.getTableName());
|
||||
}
|
||||
}
|
||||
}
|
||||
excelFileData.setSheets(excelSheetDataList);
|
||||
}
|
||||
for (ExcelSheetData sheet : excelFileData.getSheets()) {
|
||||
for (int i = 0; i < sheet.getFields().size() - 1; i++) {
|
||||
|
||||
@@ -8,7 +8,7 @@ defineProps({
|
||||
<template>
|
||||
<div class="base-info-item">
|
||||
<p class="label">{{ label }}</p>
|
||||
<p class="value">
|
||||
<p class="value ellipsis">
|
||||
<slot></slot>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -190,7 +190,17 @@ const initApiItem = (
|
||||
) => {
|
||||
pluginDs.value = pluginDsList
|
||||
pluginIndex.value = indexPlugin
|
||||
isPlugin.value = isPluginDs
|
||||
if (!isPluginDs) {
|
||||
const arr = pluginDs.value.filter(ele => {
|
||||
return ele.type === from.type
|
||||
})
|
||||
if (arr && arr.length > 0) {
|
||||
isPlugin.value = true
|
||||
}
|
||||
} else {
|
||||
isPlugin.value = isPluginDs
|
||||
}
|
||||
|
||||
copyItem.value = val.copy
|
||||
copyDs.value = from.copy
|
||||
dsType.value = from.type
|
||||
|
||||
@@ -252,6 +252,10 @@ const validateExcel = () => {
|
||||
}
|
||||
|
||||
const clearForm = () => {
|
||||
state.excelData = []
|
||||
activeTab.value = ''
|
||||
tabList.value = []
|
||||
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
|
||||
return remoteExcelForm.value.clearValidate()
|
||||
}
|
||||
|
||||
|
||||
@@ -711,6 +711,7 @@ const init = (nodeInfo: Form | Param, id?: string, res?: object, supportSetKey:
|
||||
}
|
||||
nextTick(() => {
|
||||
detail?.value?.clearForm()
|
||||
excelRemote?.value?.clearForm()
|
||||
xpack?.value?.invokeMethod({
|
||||
methodName: 'clearForm',
|
||||
args: []
|
||||
@@ -725,6 +726,13 @@ const drawTitle = computed(() => {
|
||||
if (creator && id && currentDsType.value == 'Excel') {
|
||||
return editType === 1 ? t('data_source.append_data') : t('data_source.replace_data')
|
||||
}
|
||||
if (currentDsType.value == 'ExcelRemote') {
|
||||
return editDs.value
|
||||
? !form2.id
|
||||
? t('data_source.copy_data_source')
|
||||
: t('datasource.modify')
|
||||
: t('data_source.create_data_source')
|
||||
}
|
||||
return editDs.value
|
||||
? !form.id
|
||||
? t('data_source.copy_data_source')
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.slf4j.LoggerFactory;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.*;
|
||||
@@ -403,6 +404,7 @@ public class HttpClientUtil {
|
||||
}
|
||||
|
||||
private static String extractFileName(HttpResponse response, String url) {
|
||||
url = URLDecoder.decode(url);
|
||||
String fileName = "";
|
||||
String disposition = response.getHeaders("Content-Disposition").toString();
|
||||
if (disposition != null) {
|
||||
|
||||
Reference in New Issue
Block a user