mirror of
https://github.com/dataease/dataease.git
synced 2026-05-19 02:08:10 +08:00
Merge pull request #13741 from dataease/pr@dev-v2@fixds
Pr@dev v2@fixds
This commit is contained in:
@@ -109,6 +109,21 @@
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>${selenium-java.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>xpack-base</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>xpack-permissions</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>xpack-sync</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.angus</groupId>
|
||||
<artifactId>angus-mail</artifactId>
|
||||
|
||||
@@ -44,7 +44,7 @@ public class TableInfoHandler extends DefaultChartHandler {
|
||||
Map<String, Object> mapSize = (Map<String, Object>) mapAttr.get("basicStyle");
|
||||
var tablePageMode = (String) mapSize.get("tablePageMode");
|
||||
formatResult.getContext().put("tablePageMode", tablePageMode);
|
||||
if (StringUtils.equalsIgnoreCase(tablePageMode, "page") && !view.getIsExcelExport()) {
|
||||
if (StringUtils.equalsIgnoreCase(tablePageMode, "page")) {
|
||||
if (chartExtRequest.getGoPage() == null) {
|
||||
chartExtRequest.setGoPage(1L);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import io.dataease.exception.DEException;
|
||||
import io.dataease.exportCenter.manage.ExportCenterManage;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldBaseDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.dto.FormatterCfgDTO;
|
||||
import io.dataease.license.manage.F2CLicLimitedManage;
|
||||
@@ -74,6 +73,9 @@ public class ChartDataServer implements ChartDataApi {
|
||||
|
||||
@Resource(name = "f2CLicLimitedManage")
|
||||
private F2CLicLimitedManage f2CLicLimitedManage;
|
||||
@Value("${dataease.export.page.size:50000}")
|
||||
private Integer extractPageSize;
|
||||
private final Long sheetLimit = 1000000L;
|
||||
|
||||
private Integer getExportLimit() {
|
||||
return Math.toIntExact(Math.min(f2CLicLimitedManage.checkDatasetLimit(), limit));
|
||||
@@ -95,7 +97,8 @@ public class ChartDataServer implements ChartDataApi {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void findExcelData(ChartExcelRequest request) {
|
||||
public ChartViewDTO findExcelData(ChartExcelRequest request) {
|
||||
ChartViewDTO chartViewInfo = new ChartViewDTO();
|
||||
try {
|
||||
ChartViewDTO viewDTO = request.getViewInfo();
|
||||
viewDTO.setIsExcelExport(true);
|
||||
@@ -103,16 +106,13 @@ public class ChartDataServer implements ChartDataApi {
|
||||
Integer[] dsTypes = null;
|
||||
//downloadType = dataset 为下载原始名字 这里做数据转换模拟 table-info类型图表导出
|
||||
if ("dataset".equals(request.getDownloadType())) {
|
||||
viewDTO.setResultMode(ChartConstants.VIEW_RESULT_MODE.ALL);
|
||||
viewDTO.setType("table-info");
|
||||
List<DatasetTableFieldDTO> sourceFields = datasetFieldServer.listByDatasetGroup(viewDTO.getTableId());
|
||||
List<String> fileNames = permissionManage.filterColumnPermissions(sourceFields, new HashMap<>(), viewDTO.getTableId(), null).stream().map(DatasetTableFieldDTO::getDataeaseName).collect(Collectors.toList());
|
||||
sourceFields = sourceFields.stream().filter(datasetTableFieldDTO -> fileNames.contains(datasetTableFieldDTO.getDataeaseName())).collect(Collectors.toList());
|
||||
dsHeader = sourceFields.stream()
|
||||
.map(DatasetTableFieldDTO::getName)
|
||||
.toArray(String[]::new);
|
||||
dsTypes = sourceFields.stream()
|
||||
.map(DatasetTableFieldDTO::getDeType)
|
||||
.toArray(Integer[]::new);
|
||||
dsHeader = sourceFields.stream().map(DatasetTableFieldDTO::getName).toArray(String[]::new);
|
||||
dsTypes = sourceFields.stream().map(DatasetTableFieldDTO::getDeType).toArray(Integer[]::new);
|
||||
TypeReference<List<ChartViewFieldDTO>> listTypeReference = new TypeReference<List<ChartViewFieldDTO>>() {
|
||||
};
|
||||
viewDTO.setXAxis(JsonUtil.parseList(JsonUtil.toJSONString(sourceFields).toString(), listTypeReference));
|
||||
@@ -124,7 +124,7 @@ public class ChartDataServer implements ChartDataApi {
|
||||
} else {
|
||||
viewDTO.setResultCount(curLimit);
|
||||
}
|
||||
ChartViewDTO chartViewInfo = getData(viewDTO);
|
||||
chartViewInfo = getData(viewDTO);
|
||||
List<Object[]> tableRow = (List) chartViewInfo.getData().get("sourceData");
|
||||
if ("dataset".equals(request.getDownloadType())) {
|
||||
request.setHeader(dsHeader);
|
||||
@@ -149,9 +149,10 @@ public class ChartDataServer implements ChartDataApi {
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return chartViewInfo;
|
||||
}
|
||||
|
||||
|
||||
public static String valueFormatter(BigDecimal value, FormatterCfgDTO formatter) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
@@ -240,9 +241,7 @@ public class ChartDataServer implements ChartDataApi {
|
||||
if ((StringUtils.isNotEmpty(linkToken) && !request.isDataEaseBi()) || (request.isDataEaseBi() && StringUtils.isEmpty(linkToken))) {
|
||||
OutputStream outputStream = response.getOutputStream();
|
||||
try {
|
||||
findExcelData(request);
|
||||
Workbook wb = new SXSSFWorkbook();
|
||||
|
||||
//给单元格设置样式
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
Font font = wb.createFont();
|
||||
@@ -257,35 +256,50 @@ public class ChartDataServer implements ChartDataApi {
|
||||
//设置单元格填充样式(使用纯色背景颜色填充)
|
||||
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||
|
||||
if (CollectionUtils.isEmpty(request.getMultiInfo())) {
|
||||
List<Object[]> details = request.getDetails();
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
|
||||
//明细sheet
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
|
||||
setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
if ("dataset".equals(request.getDownloadType()) || request.getViewInfo().getType().equalsIgnoreCase("table-info")) {
|
||||
List<Object[]> details = new ArrayList<>();
|
||||
Sheet detailsSheet;
|
||||
Integer sheetIndex = 1;
|
||||
request.getViewInfo().getChartExtRequest().setPageSize(Long.valueOf(extractPageSize));
|
||||
ChartViewDTO chartViewDTO = findExcelData(request);
|
||||
for (long i = 1; i < chartViewDTO.getTotalPage() + 1; i++) {
|
||||
request.getViewInfo().getChartExtRequest().setGoPage(i);
|
||||
findExcelData(request);
|
||||
details.addAll(request.getDetails());
|
||||
if ((details.size() + extractPageSize) > sheetLimit) {
|
||||
detailsSheet = wb.createSheet("数据" + sheetIndex);
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
sheetIndex++;
|
||||
details.clear();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//多个sheet
|
||||
for (int i = 0; i < request.getMultiInfo().size(); i++) {
|
||||
ChartExcelRequestInner requestInner = request.getMultiInfo().get(i);
|
||||
|
||||
List<Object[]> details = requestInner.getDetails();
|
||||
Integer[] excelTypes = requestInner.getExcelTypes();
|
||||
details.add(0, requestInner.getHeader());
|
||||
ViewDetailField[] detailFields = requestInner.getDetailFields();
|
||||
Object[] header = requestInner.getHeader();
|
||||
|
||||
//明细sheet
|
||||
Sheet detailsSheet = wb.createSheet("数据 " + (i + 1));
|
||||
|
||||
findExcelData(request);
|
||||
if (CollectionUtils.isEmpty(request.getMultiInfo())) {
|
||||
List<Object[]> details = request.getDetails();
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
} else {
|
||||
for (int i = 0; i < request.getMultiInfo().size(); i++) {
|
||||
ChartExcelRequestInner requestInner = request.getMultiInfo().get(i);
|
||||
List<Object[]> details = requestInner.getDetails();
|
||||
Integer[] excelTypes = requestInner.getExcelTypes();
|
||||
details.add(0, requestInner.getHeader());
|
||||
ViewDetailField[] detailFields = requestInner.getDetailFields();
|
||||
Object[] header = requestInner.getHeader();
|
||||
Sheet detailsSheet = wb.createSheet("数据 " + (i + 1));
|
||||
setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
//文件名称
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(request.getViewName(), StandardCharsets.UTF_8) + ".xlsx");
|
||||
@@ -308,7 +322,6 @@ public class ChartDataServer implements ChartDataApi {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void setExcelData(Sheet detailsSheet, CellStyle cellStyle, Object[] header, List<Object[]> details, ViewDetailField[] detailFields, Integer[] excelTypes) {
|
||||
boolean mergeHead = false;
|
||||
if (ArrayUtils.isNotEmpty(detailFields)) {
|
||||
|
||||
@@ -38,6 +38,7 @@ import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.factory.ProviderFactory;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ColumnPermissionItem;
|
||||
import io.dataease.extensions.view.dto.DatasetRowPermissionsTreeObj;
|
||||
import io.dataease.i18n.Translator;
|
||||
@@ -104,6 +105,11 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
private Long limit;
|
||||
private final static String DATA_URL_TITLE = "data:image/jpeg;base64,";
|
||||
private static final String exportData_path = "/opt/dataease2.0/data/exportData/";
|
||||
|
||||
public Integer getExtractPageSize() {
|
||||
return extractPageSize;
|
||||
}
|
||||
|
||||
@Value("${dataease.export.page.size:50000}")
|
||||
private Integer extractPageSize;
|
||||
static private List<String> STATUS = Arrays.asList("SUCCESS", "FAILED", "PENDING", "IN_PROGRESS", "ALL");
|
||||
@@ -122,7 +128,7 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
private DatasetTableFieldManage datasetTableFieldManage;
|
||||
@Resource
|
||||
private DatasetDataManage datasetDataManage;
|
||||
|
||||
private final Long sheetLimit = 1000000L;
|
||||
@Autowired(required = false)
|
||||
private DataFillingApi dataFillingApi = null;
|
||||
|
||||
@@ -512,10 +518,17 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
Long totalCount = datasetDataManage.getDatasetTotal(dto, replaceSql, null);
|
||||
Long curLimit = getExportLimit();
|
||||
totalCount = totalCount > curLimit ? curLimit : totalCount;
|
||||
Long sheetLimit = 1000000L;
|
||||
|
||||
Long sheetCount = (totalCount / sheetLimit) + (totalCount % sheetLimit > 0 ? 1 : 0);
|
||||
Workbook wb = new SXSSFWorkbook();
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + exportTask.getId() + ".xlsx");
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
Font font = wb.createFont();
|
||||
font.setFontHeightInPoints((short) 12);
|
||||
font.setBold(true);
|
||||
cellStyle.setFont(font);
|
||||
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
|
||||
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||
|
||||
for (Long s = 1L; s < sheetCount + 1; s++) {
|
||||
Long sheetSize;
|
||||
if (s.equals(sheetCount)) {
|
||||
@@ -539,14 +552,7 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
Map<String, Object> previewData = datasetDataManage.buildPreviewData(provider.fetchResultField(datasourceRequest), allFields, desensitizationList);
|
||||
List<Map<String, Object>> data = (List<Map<String, Object>>) previewData.get("data");
|
||||
if (p.equals(0L)) {
|
||||
detailsSheet = wb.createSheet("数据-" + s);
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
Font font = wb.createFont();
|
||||
font.setFontHeightInPoints((short) 12);
|
||||
font.setBold(true);
|
||||
cellStyle.setFont(font);
|
||||
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
|
||||
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||
detailsSheet = wb.createSheet("数据" + s);
|
||||
List<String> header = new ArrayList<>();
|
||||
for (DatasetTableFieldDTO field : allFields) {
|
||||
header.add(field.getName());
|
||||
@@ -617,6 +623,7 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
exportTaskMapper.updateById(exportTask);
|
||||
}
|
||||
}
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + exportTask.getId() + ".xlsx");
|
||||
wb.write(fileOutputStream);
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
@@ -647,53 +654,46 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
try {
|
||||
exportTask.setExportStatus("IN_PROGRESS");
|
||||
exportTaskMapper.updateById(exportTask);
|
||||
chartDataServer.findExcelData(request);
|
||||
|
||||
Workbook wb = new SXSSFWorkbook();
|
||||
|
||||
//给单元格设置样式
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
Font font = wb.createFont();
|
||||
//设置字体大小
|
||||
font.setFontHeightInPoints((short) 12);
|
||||
//设置字体加粗
|
||||
font.setBold(true);
|
||||
//给字体设置样式
|
||||
cellStyle.setFont(font);
|
||||
//设置单元格背景颜色
|
||||
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
|
||||
//设置单元格填充样式(使用纯色背景颜色填充)
|
||||
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||
|
||||
if (CollectionUtils.isEmpty(request.getMultiInfo())) {
|
||||
if (request.getViewInfo().getType().equalsIgnoreCase("chart-mix-dual-line")) {
|
||||
|
||||
} else {
|
||||
List<Object[]> details = request.getDetails();
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
List<Object[]> details = new ArrayList<>();
|
||||
Sheet detailsSheet;
|
||||
Integer sheetIndex = 1;
|
||||
if ("dataset".equals(request.getDownloadType()) || request.getViewInfo().getType().equalsIgnoreCase("table-info")) {
|
||||
request.getViewInfo().getChartExtRequest().setPageSize(Long.valueOf(extractPageSize));
|
||||
ChartViewDTO chartViewDTO = chartDataServer.findExcelData(request);
|
||||
for (long i = 1; i < chartViewDTO.getTotalPage() + 1; i++) {
|
||||
request.getViewInfo().getChartExtRequest().setGoPage(i);
|
||||
chartDataServer.findExcelData(request);
|
||||
details.addAll(request.getDetails());
|
||||
if (((details.size() + extractPageSize) > sheetLimit) || i == chartViewDTO.getTotalPage()) {
|
||||
detailsSheet = wb.createSheet("数据" + sheetIndex);
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
sheetIndex++;
|
||||
details.clear();
|
||||
exportTask.setExportStatus("IN_PROGRESS");
|
||||
double exportRogress = (double) (i / chartViewDTO.getTotalPage() + 1);
|
||||
DecimalFormat df = new DecimalFormat("#.##");
|
||||
String formattedResult = df.format((exportRogress) * 100);
|
||||
exportTask.setExportProgress(formattedResult);
|
||||
exportTaskMapper.updateById(exportTask);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//多个sheet
|
||||
for (int i = 0; i < request.getMultiInfo().size(); i++) {
|
||||
ChartExcelRequestInner requestInner = request.getMultiInfo().get(i);
|
||||
|
||||
List<Object[]> details = requestInner.getDetails();
|
||||
Integer[] excelTypes = requestInner.getExcelTypes();
|
||||
details.add(0, requestInner.getHeader());
|
||||
ViewDetailField[] detailFields = requestInner.getDetailFields();
|
||||
Object[] header = requestInner.getHeader();
|
||||
|
||||
//明细sheet
|
||||
Sheet detailsSheet = wb.createSheet("数据 " + (i + 1));
|
||||
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
}
|
||||
downloadNotTableInfoData(request, wb);
|
||||
}
|
||||
|
||||
try (FileOutputStream outputStream = new FileOutputStream(dataPath + "/" + exportTask.getId() + ".xlsx")) {
|
||||
wb.write(outputStream);
|
||||
outputStream.flush();
|
||||
@@ -713,6 +713,48 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
Running_Task.put(exportTask.getId(), future);
|
||||
}
|
||||
|
||||
private void downloadNotTableInfoData(ChartExcelRequest request, Workbook wb) {
|
||||
chartDataServer.findExcelData(request);
|
||||
//给单元格设置样式
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
Font font = wb.createFont();
|
||||
//设置字体大小
|
||||
font.setFontHeightInPoints((short) 12);
|
||||
//设置字体加粗
|
||||
font.setBold(true);
|
||||
//给字体设置样式
|
||||
cellStyle.setFont(font);
|
||||
//设置单元格背景颜色
|
||||
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
|
||||
//设置单元格填充样式(使用纯色背景颜色填充)
|
||||
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||
if (CollectionUtils.isEmpty(request.getMultiInfo())) {
|
||||
if (request.getViewInfo().getType().equalsIgnoreCase("chart-mix-dual-line")) {
|
||||
} else {
|
||||
List<Object[]> details = request.getDetails();
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
ViewDetailField[] detailFields = request.getDetailFields();
|
||||
Object[] header = request.getHeader();
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
}
|
||||
} else {
|
||||
//多个sheet
|
||||
for (int i = 0; i < request.getMultiInfo().size(); i++) {
|
||||
ChartExcelRequestInner requestInner = request.getMultiInfo().get(i);
|
||||
|
||||
List<Object[]> details = requestInner.getDetails();
|
||||
Integer[] excelTypes = requestInner.getExcelTypes();
|
||||
details.add(0, requestInner.getHeader());
|
||||
ViewDetailField[] detailFields = requestInner.getDetailFields();
|
||||
Object[] header = requestInner.getHeader();
|
||||
//明细sheet
|
||||
Sheet detailsSheet = wb.createSheet("数据 " + (i + 1));
|
||||
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setFileSize(String filePath, CoreExportTask exportTask) {
|
||||
File file = new File(filePath);
|
||||
|
||||
@@ -172,4 +172,9 @@ public class SysParameterManage {
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
public void insert(CoreSysSetting coreSysSetting) {
|
||||
coreSysSettingMapper.insert(coreSysSetting);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://localhost:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
|
||||
url: jdbc:mysql://123.57.152.118:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: 123456
|
||||
password: Password123@mysql
|
||||
messages:
|
||||
basename: i18n/lic,i18n/core,i18n/permissions,i18n/xpack,i18n/sync
|
||||
flyway:
|
||||
|
||||
@@ -108,47 +108,7 @@ defineExpose({
|
||||
invokeMethod
|
||||
})
|
||||
onMounted(async () => {
|
||||
const key = 'xpack-model-distributed'
|
||||
let distributed = false
|
||||
if (wsCache.get(key) === null) {
|
||||
const res = await xpackModelApi()
|
||||
const resData = isNull(res.data) ? 'null' : res.data
|
||||
wsCache.set('xpack-model-distributed', resData)
|
||||
distributed = res.data
|
||||
} else {
|
||||
distributed = wsCache.get(key)
|
||||
}
|
||||
if (isNull(distributed)) {
|
||||
setTimeout(() => {
|
||||
emits('loadFail')
|
||||
loading.value = false
|
||||
}, 1000)
|
||||
return
|
||||
}
|
||||
if (distributed) {
|
||||
if (window['DEXPack']) {
|
||||
const xpack = await window['DEXPack'].mapping[attrs.jsname]
|
||||
plugin.value = xpack.default
|
||||
} else if (!window._de_xpack_not_loaded) {
|
||||
window._de_xpack_not_loaded = true
|
||||
window['VueDe'] = Vue
|
||||
window['AxiosDe'] = axios
|
||||
window['PiniaDe'] = Pinia
|
||||
window['vueRouterDe'] = router
|
||||
window['MittAllDe'] = useEmitt().emitter.all
|
||||
window['I18nDe'] = i18n
|
||||
window['EchartsDE'] = echarts
|
||||
if (!window.tinymce) {
|
||||
window.tinymce = tinymce
|
||||
}
|
||||
loadDistributed().then(async res => {
|
||||
new Function(res.data)()
|
||||
useEmitt().emitter.emit('load-xpack')
|
||||
})
|
||||
}
|
||||
} else {
|
||||
loadComponent()
|
||||
}
|
||||
loadComponent()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@@ -417,22 +417,6 @@ const disabledFieldLength = item => {
|
||||
}
|
||||
}
|
||||
|
||||
const disabledSetKey = item => {
|
||||
if (item.hasOwnProperty('children') && item.children.length > 0) {
|
||||
return true
|
||||
}
|
||||
if (copyItem.value || copyDs.value) {
|
||||
return false
|
||||
}
|
||||
if (editItem.value) {
|
||||
return true
|
||||
}
|
||||
if (!item.checked) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
const disabledChangeFieldByChildren = item => {
|
||||
if (apiItem.type == 'params') {
|
||||
return true
|
||||
@@ -824,7 +808,7 @@ defineExpose({
|
||||
<el-checkbox
|
||||
:key="scope.row.jsonPath"
|
||||
v-model="scope.row.primaryKey"
|
||||
:disabled="disabledSetKey(scope.row)"
|
||||
:disabled="editItem || !scope.row.checked"
|
||||
>
|
||||
</el-checkbox>
|
||||
</template>
|
||||
|
||||
@@ -452,14 +452,18 @@ const returnItem = apiItem => {
|
||||
form.value.apiConfiguration.push(apiItem)
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < form.value.paramsConfiguration.length; i++) {
|
||||
if (form.value.paramsConfiguration[i].serialNumber === apiItem.serialNumber) {
|
||||
find = true
|
||||
form.value.paramsConfiguration[i] = apiItem
|
||||
if (apiItem.serialNumber === activeParamsID.value) {
|
||||
setActiveName(apiItem)
|
||||
if (form.value.paramsConfiguration) {
|
||||
for (let i = 0; i < form.value.paramsConfiguration.length; i++) {
|
||||
if (form.value.paramsConfiguration[i].serialNumber === apiItem.serialNumber) {
|
||||
find = true
|
||||
form.value.paramsConfiguration[i] = apiItem
|
||||
if (apiItem.serialNumber === activeParamsID.value) {
|
||||
setActiveName(apiItem)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
form.value.paramsConfiguration = []
|
||||
}
|
||||
if (!find) {
|
||||
state.itemRef = []
|
||||
|
||||
2
de-xpack
2
de-xpack
Submodule de-xpack updated: 5170c8ece2...1db43cdd44
Reference in New Issue
Block a user