diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index 4e1401ccaf..9ce092b0e1 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -50,6 +50,7 @@ public class ShiroServiceImpl implements ShiroService { filterChainDefinitionMap.put("/api/link/validate**", ANON); filterChainDefinitionMap.put("/api/map/areaEntitys/**", ANON); filterChainDefinitionMap.put("/dataset/field/fieldValues/**", ANON); + filterChainDefinitionMap.put("/dataset/field/multFieldValues", ANON); filterChainDefinitionMap.put("/linkJump/queryPanelJumpInfo/**", ANON); filterChainDefinitionMap.put("/tempMobileLink/**", ANON); diff --git a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 5c2289c194..715e7ed21a 100644 --- a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -76,7 +76,7 @@ public class Db2QueryProvider extends QueryProvider { @Override public String createSQLPreview(String sql, String orderBy) { - return sqlFix(sql) + " fetch first 1000 rows only;"; + return "SELECT * FROM (" + sqlFix(sql) + ") DE_TMP " + " fetch first 1000 rows only;"; } @Override @@ -140,6 +140,12 @@ public class Db2QueryProvider extends QueryProvider { st_sql.add("isGroup", isGroup); if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); + + String customWheres = transCustomFilterList(tableObj, fieldCustomFilter); + List wheres = new ArrayList<>(); + if (customWheres != null) wheres.add(customWheres); + if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); + return st_sql.render(); } diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 9800e5a318..217c8c8374 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -8,7 +8,6 @@ import io.dataease.base.mapper.ext.ExtChartGroupMapper; import io.dataease.base.mapper.ext.ExtChartViewMapper; import io.dataease.commons.constants.CommonConstants; import io.dataease.commons.constants.JdbcConstants; -import io.dataease.commons.exception.DEException; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.CommonBeanFactory; @@ -304,9 +303,6 @@ public class ChartViewService { if (StringUtils.equalsIgnoreCase(dto.getId(), chartViewFieldDTO.getId())) { isDrill = true; DatasetTableField datasetTableField = dataSetTableFieldsService.get(dto.getId()); - if (ObjectUtils.isEmpty(datasetTableField)) { - DEException.throwException(Translator.get("i18n_drill_field_not_exist")); - } ChartViewFieldDTO d = new ChartViewFieldDTO(); BeanUtils.copyBean(d, datasetTableField); diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 73b1fa82b3..3dfc4411a5 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -887,7 +887,9 @@ public class DataSetTableService { List data = result.get("dataList"); List fields = result.get("fieldList"); String[] fieldArray = fields.stream().map(TableFiled::getFieldName).toArray(String[]::new); - + if (checkIsRepeat(fieldArray)) { + DataEaseException.throwException(Translator.get("i18n_excel_field_repeat")); + } List> jsonArray = new ArrayList<>(); if (CollectionUtils.isNotEmpty(data)) { jsonArray = data.stream().map(ele -> { @@ -1548,11 +1550,8 @@ public class DataSetTableService { List originNameList = new ArrayList<>(); for (int i = 0; i < fields.size(); i++) { TableFiled filed = fields.get(i); - System.out.println(new Gson().toJson(filed)); originNameList.add(filed.getFieldName()); - DatasetTableField datasetTableField = DatasetTableField.builder().build(); - // 物理字段名设定为唯一,查询当前数据集下是否已存在该字段,存在则update,不存在则insert DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); // 字段名一致,认为字段没有改变 diff --git a/backend/src/main/java/io/dataease/service/system/EmailService.java b/backend/src/main/java/io/dataease/service/system/EmailService.java index 3c03ffe25a..575bc8382c 100644 --- a/backend/src/main/java/io/dataease/service/system/EmailService.java +++ b/backend/src/main/java/io/dataease/service/system/EmailService.java @@ -29,7 +29,6 @@ import java.util.List; import java.util.Properties; import java.util.UUID; - @Service public class EmailService { @@ -47,7 +46,6 @@ public class EmailService { private static final String SMTP_CONNECTIONTIMEOUT_VAL = "5000"; - @Resource private SystemParameterMapper systemParameterMapper; @@ -57,7 +55,8 @@ public class EmailService { * @param content 内容 */ public void send(String to, String title, String content) { - if (StringUtils.isBlank(to)) return; + if (StringUtils.isBlank(to)) + return; MailInfo mailInfo = proxy().mailInfo(); JavaMailSenderImpl driver = driver(mailInfo); @@ -77,7 +76,8 @@ public class EmailService { } public void sendWithImage(String to, String title, String content, byte[] bytes) { - if (StringUtils.isBlank(to)) return; + if (StringUtils.isBlank(to)) + return; MailInfo mailInfo = proxy().mailInfo(); JavaMailSenderImpl driver = driver(mailInfo); MimeMessage mimeMessage = driver.createMimeMessage(); @@ -89,7 +89,8 @@ public class EmailService { MimeBodyPart text = new MimeBodyPart(); try { - text.setContent("

" + content + "

" + "
", "text/html; charset=gb2312"); + text.setContent(content + "
", + "text/html; charset=gb2312"); image.setDataHandler(png); image.setContentID(uuid); MimeMultipart multipart = new MimeMultipart(); @@ -131,7 +132,6 @@ public class EmailService { return CommonBeanFactory.getBean(EmailService.class); } - public MailInfo mailInfo() { String type = ParamConstants.Classify.MAIL.getValue(); List paramList = getParamList(type); @@ -159,14 +159,12 @@ public class EmailService { return mailInfo; } - public List getParamList(String type) { SystemParameterExample example = new SystemParameterExample(); example.createCriteria().andParamKeyLike(type + "%"); return systemParameterMapper.selectByExample(example); } - public void editMail(List parameters) { parameters.forEach(parameter -> { SystemParameterExample example = new SystemParameterExample(); @@ -227,6 +225,5 @@ public class EmailService { } } - } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 57c4b37ecc..bf8b774aba 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -265,7 +265,7 @@ i18n_sql_add_not_matching=The data column of incremental SQL does not match the i18n_sql_delete_not_matching=The data column of incremental delete SQL does not match the dataset, i18n_cst_ds_tb_or_field_deleted=Custom dataset union data is deleted or field changed,can not display i18n_no_all_delete_privilege_folder=This folder have sources which have no manage or view privilege,Can Not Be Deleted. -i18n_excel_field_repeat=Excel exists repeat field,please fix and upload again. +i18n_excel_field_repeat=Exists repeat field,please fix and retry. i18n_schema_is_empty=Database schema is empty 站内消息=Internal Messages 所有消息=All Messages @@ -297,5 +297,4 @@ i18n_invalid_ds=Invalid Datasource 任务管理=Task Manager 数据同步=Data Sync 定时报告=Regular report -i18n_rp_exist=Row permission of the same type already exists -i18n_drill_field_not_exist=Drill field changed,please delete and add again \ No newline at end of file +i18n_rp_exist=Row permission of the same type already exists \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 6fc6b77c23..643108af35 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -264,7 +264,7 @@ i18n_sql_add_not_matching=增量添加 SQL 的数据列与数据集不匹配, i18n_sql_delete_not_matching=增量删除 SQL 的数据列与数据集不匹配, i18n_cst_ds_tb_or_field_deleted=自定义数据集所关联数据被删除或字段发生变化,无法正常显示 i18n_no_all_delete_privilege_folder=该目录下存在没有管理权限或查看权限的资源,无法删除 -i18n_excel_field_repeat=Excel存在重复字段,请修改后重新上传 +i18n_excel_field_repeat=存在重复字段,请修改后重试 i18n_schema_is_empty=数据库 Schema 为空 站内消息=站内消息 所有消息=所有消息 @@ -296,5 +296,4 @@ i18n_invalid_ds=无效数据源 任务管理=任务管理 数据同步=数据同步 定时报告=定时报告 -i18n_rp_exist=已有同类型的行权限存在 -i18n_drill_field_not_exist=下钻字段发生变更,请删除字段重新添加 \ No newline at end of file +i18n_rp_exist=已有同类型的行权限存在 \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index db6b6df1a0..ace5c7bf60 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -160,6 +160,7 @@ license_valid_license_error=授權驗證失敗 license_valid_license_code=授權碼已經存在 import_xmind_count_error=思維導圖導入用例數量不能超過 500 條 import_xmind_not_found=未找到測試用例 + test_review_task_notice=測試評審任務通知 test_track.length_less_than=標題過長,字數必須小於 # check owner @@ -236,7 +237,7 @@ i18n_chart_count=記錄數* i18n_excel_have_merge_region=Excel存在合並單元格 i18n_cron_expression_error=Cron表達式校驗錯誤 i18n_same_folder_can_not_repeat=同一目錄下該名稱已被使用 -i18n_select_diff_folder=请选择不同的目录 +i18n_select_diff_folder= 请选择不同的目录 i18n_default_panel=默認儀表板 i18n_panel_list=儀表板 i18n_processing_data=正在處理數據,稍後刷新 @@ -252,7 +253,7 @@ i18n_sync_job_exists=已經有同步任務在運行,稍後重試 i18n_datasource_check_fail=校驗失敗,請檢查配置信息 i18n_not_find_user=未找到用戶 i18n_sql_not_empty=SQL 不能為空 -i18n_datasource_not_allow_delete_msg=個數據集正在使用此數據源,無法刪除 +i18n_datasource_not_allow_delete_msg= 個數據集正在使用此數據源,無法刪除 i18n_task_name_repeat=同一數據集下任務名稱已被使用 i18n_id_or_pwd_error=無效的ID或密碼 i18n_datasource_delete=當前用到的數據源已被刪除 @@ -266,7 +267,7 @@ i18n_sql_add_not_matching=增量添加 sql 的數據列與數據集不匹配, i18n_sql_delete_not_matching=增量刪除 sql 的數據列與數據集不匹配, i18n_cst_ds_tb_or_field_deleted=自定義數據集所關聯數據被刪除或字段發生變化,無法正常顯示 i18n_no_all_delete_privilege_folder=該目錄下存在沒有管理權限或查看權限的資源,無法刪除 -i18n_excel_field_repeat=Excel存在重復字段,請修改後重新上傳 +i18n_excel_field_repeat=存在重復字段,請修改後重试 i18n_schema_is_empty=數據庫 Schema 為空 站内消息=站內消息 所有消息=所有消息 @@ -298,5 +299,4 @@ i18n_invalid_ds=無效數據源 任务管理=任務管理 数据同步=數據同步 定时报告=定時報告 -i18n_rp_exist=已有同類型餓行權限存在 -i18n_drill_field_not_exist=下鉆字段發生變更,請刪除字段重新添加 \ No newline at end of file +i18n_rp_exist=已有同類型餓行權限存在 \ No newline at end of file diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 55672ef572..ea0b1fa68a 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -40,6 +40,7 @@ diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index e295bacb13..b1d40b3a97 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -213,9 +213,7 @@ export default { jumpCount++ } }) - if (this.scaleCoefficientType === 'pc') { - jumpCount && trackMenuInfo.push('jump') - } + jumpCount && trackMenuInfo.push('jump') linkageCount && trackMenuInfo.push('linkage') this.drillFields.length && trackMenuInfo.push('drill') return trackMenuInfo diff --git a/frontend/src/views/chart/group/Group.vue b/frontend/src/views/chart/group/Group.vue index b6d79352d1..3cf184e9fe 100644 --- a/frontend/src/views/chart/group/Group.vue +++ b/frontend/src/views/chart/group/Group.vue @@ -580,6 +580,7 @@ export default { showClose: true }) this.treeNode() + this.$emit('switchComponent', { name: '' }) }) }).catch(() => { }) diff --git a/frontend/src/views/dataset/data/ViewTable.vue b/frontend/src/views/dataset/data/ViewTable.vue index c6541c19a2..e8c3d57d85 100644 --- a/frontend/src/views/dataset/data/ViewTable.vue +++ b/frontend/src/views/dataset/data/ViewTable.vue @@ -56,7 +56,7 @@ - + diff --git a/frontend/src/views/dataset/group/Group.vue b/frontend/src/views/dataset/group/Group.vue index 103b3c899d..9df36e1942 100644 --- a/frontend/src/views/dataset/group/Group.vue +++ b/frontend/src/views/dataset/group/Group.vue @@ -457,6 +457,7 @@ export default { showClose: true }) this.treeNode() + this.$emit('switchComponent', { name: '' }) }) }).catch(() => { }) @@ -475,6 +476,7 @@ export default { showClose: true }) this.treeNode() + this.$emit('switchComponent', { name: '' }) this.$store.dispatch('dataset/setTable', new Date().getTime()) }) }).catch(() => { diff --git a/frontend/src/views/link/generate/index.vue b/frontend/src/views/link/generate/index.vue index 45e3fddae5..5572ba106c 100644 --- a/frontend/src/views/link/generate/index.vue +++ b/frontend/src/views/link/generate/index.vue @@ -15,11 +15,7 @@ {{ $t('panel.link_share_desc') }} - + @@ -37,17 +33,34 @@ - {{ $t('panel.passwd_protect') }} + {{ $t('panel.passwd_protect') }} {{ form.pwd }} - {{ $t('commons.reset') }} + + {{ $t('commons.reset') }} +
- {{ $t('panel.copy_link') }} - {{ $t('panel.copy_link_passwd') }} + {{ $t('panel.copy_link') }} + + {{ $t('panel.copy_link_passwd') }}
@@ -56,8 +69,14 @@