From 480ab0e36bd0870be7c31724f333cf03264568ad Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Sep 2022 16:51:40 +0800 Subject: [PATCH 01/16] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=20excel=20?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/en.js | 4 ++-- frontend/src/lang/tw.js | 4 ++-- frontend/src/lang/zh.js | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index cce695692c..7f651aa463 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1602,8 +1602,8 @@ export default { merge_msg: 'If the fields in the data table are consistent, merge them into one data set?', merge_title: 'Merge data', field_name_less_50: 'Field name can not more 50 chars.', - excel_info_1: '1、Merged cells cannot exist in the file;', - excel_info_2: '2、The first line of the file is the title line, which cannot be empty or date;', + excel_info_1: '1、Merged cells cannot exist in the Excel file;', + excel_info_2: '2、The first line of the Excel file is the title line, which cannot be empty or date;', excel_info_3: '3、The file size shall not exceed 500m。', sync_field: 'Sync Field', confirm_sync_field: 'Confirm Sync', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index abd48e4d4a..970adeaf9c 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1602,8 +1602,8 @@ export default { merge_msg: '數據表中存在字段一致的情況,是否合並到一個數據集中?', merge_title: '合並數據', field_name_less_50: '字段名不能超過50個字符', - excel_info_1: '1、文件終不能存在合併單元格;', - excel_info_2: '2、文件的第一行為標題行,不能為空,不能為日期;', + excel_info_1: '1、Excel 文件終不能存在合併單元格;', + excel_info_2: '2、Excel 文件的第一行為標題行,不能為空,不能為日期;', excel_info_3: '3、文件不超過500M。', sync_field: '同步字段', confirm_sync_field: '確認同步', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 62976c8d72..099fff30fc 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1601,9 +1601,9 @@ export default { merge_msg: '数据表中存在字段一致的情况,是否合并到一个数据集中?', merge_title: '合并数据', field_name_less_50: '字段名不能超过50个字符', - excel_info_1: '1、文件中不能存在合并单元格;', - excel_info_2: '2、文件的第一行为标题行,不能为空,不能为日期型;', - excel_info_3: '3、Excel文件大小请确保在500M以内。', + excel_info_1: '1、Excel 文件中不能存在合并单元格;', + excel_info_2: '2、Excel 文件的第一行为标题行,不能为空,不能为日期型;', + excel_info_3: '3、文件大小请确保在500M以内。', sync_field: '同步字段', confirm_sync_field: '确认同步', confirm_sync_field_tips: '同步字段可能会导致已编辑字段发生变更,请确认', From 575929f69aa06be13be4e5bfba005b9ba7ef7e4e Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Sep 2022 17:10:23 +0800 Subject: [PATCH 02/16] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E5=8E=BB=E9=99=A4=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/dataset/group/Group.vue | 81 ++++++++++++---------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/frontend/src/views/dataset/group/Group.vue b/frontend/src/views/dataset/group/Group.vue index bbab6be283..3788236869 100644 --- a/frontend/src/views/dataset/group/Group.vue +++ b/frontend/src/views/dataset/group/Group.vue @@ -12,11 +12,11 @@ @command="(type) => clickAddData(type)" > - + @@ -58,12 +58,12 @@ class="main-area-input" > - - + + @@ -71,7 +71,7 @@
{{ $t('deDataset.no_dataset_click') }} - {{ + {{ $t('deDataset.create') }}
@@ -105,8 +105,7 @@ text-overflow: ellipsis; " :title="data.name" - >{{ data.name }} + >{{ data.name }} - + @@ -165,11 +164,11 @@ - + - + {{ $t('dataset.rename') }} @@ -224,11 +223,17 @@ /> - - {{ data.name }} + >{{ data.name }} - + - + {{ $t('dataset.rename') }} - + {{ $t('dataset.move_to') }} - + {{ $t('dataset.delete') }} @@ -305,13 +309,15 @@ @keypress.enter.native="saveGroup(groupForm)" > - + @@ -339,23 +345,25 @@ {{ $t('dataset.cancel') }} - {{ $t('dataset.confirm') }} + {{ $t('dataset.confirm') }}
@@ -367,18 +375,18 @@ :disabled="groupMoveConfirmDisabled" type="primary" @click="saveMoveGroup(tGroup)" - >{{ $t('dataset.confirm') }} + >{{ $t('dataset.confirm') }} @@ -390,7 +398,7 @@ :disabled="dsMoveConfirmDisabled" type="primary" @click="saveMoveDs(tDs)" - >{{ $t('dataset.confirm') }} + >{{ $t('dataset.confirm') }} @@ -431,7 +439,7 @@ export default { currentNodeId: { type: String, default: '' - }, + } }, data() { return { @@ -526,7 +534,7 @@ export default { } }, computed: { - hideCustomDs: function () { + hideCustomDs: function() { return this.$store.getters.hideCustomDs } }, @@ -629,7 +637,7 @@ export default { this.groupForm.pid = param.id this.groupForm.level = param.level + 1 }, - loadTree: _.debounce(function () { + loadTree: _.debounce(function() { this.searchPids = [] this.$refs.datasetTreeRef.filter(this.filterText) }, 600), @@ -876,7 +884,6 @@ export default { sceneId: param.id } }) - }, addData(name) { this.$emit('switchComponent', { name: name, param: this.currGroup }) @@ -1179,4 +1186,4 @@ export default { border-top: 1px solid rgba(31, 35, 41, 0.15); } } - \ No newline at end of file + From 3105660f449f5a00bf8fdfa10d1afef0492225bb Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Sep 2022 17:40:40 +0800 Subject: [PATCH 03/16] =?UTF-8?q?fix(=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86)?= =?UTF-8?q?:=20=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AF=B9=E5=BA=94=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/service/sys/SysUserService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/main/java/io/dataease/service/sys/SysUserService.java b/backend/src/main/java/io/dataease/service/sys/SysUserService.java index 52192680a5..14688326a4 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysUserService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysUserService.java @@ -421,6 +421,7 @@ public class SysUserService { public int delete(Long userId) { extAuthService.clearUserResource(userId); deleteUserRoles(userId); + sysUserAssistMapper.deleteByPrimaryKey(userId); return sysUserMapper.deleteByPrimaryKey(userId); } From c752f9c889fe72a1c64a6ae0e372ec5de44493fe Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Sep 2022 17:50:35 +0800 Subject: [PATCH 04/16] =?UTF-8?q?fix:=20=E6=A0=A1=E9=AA=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/system/SysParam/BasicSetting.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/system/SysParam/BasicSetting.vue b/frontend/src/views/system/SysParam/BasicSetting.vue index da530395c5..4e0f1852d7 100644 --- a/frontend/src/views/system/SysParam/BasicSetting.vue +++ b/frontend/src/views/system/SysParam/BasicSetting.vue @@ -343,14 +343,16 @@ export default { }, onSimpleCronChange() { if (this.formInline.dsCheckIntervalType === 'minute') { - if (this.formInline.dsCheckInterval < 1 || this.formInline.dsCheckInterval > 59) { + const pattern = '^([1-9]|[1-5][0-9])$' + if (!new RegExp(pattern).test(this.formInline.dsCheckInterval)) { this.$message({ message: this.$t('cron.minute_limit'), type: 'warning', showClose: true }) this.formInline.dsCheckInterval = 1 } return } if (this.formInline.dsCheckIntervalType === 'hour') { - if (this.formInline.dsCheckInterval < 1 || this.formInline.dsCheckInterval > 23) { + const pattern = '^([1-9]|[1-2][0-3])$' + if (!new RegExp(pattern).test(this.formInline.dsCheckInterval)) { this.$message({ message: this.$t('cron.hour_limit'), type: 'warning', showClose: true }) this.formInline.dsCheckInterval = 1 } From 020b221435e347db952522fa68f01b2e90e61456 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Sep 2022 17:54:41 +0800 Subject: [PATCH 05/16] =?UTF-8?q?fix:=20=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/tw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 970adeaf9c..afbcb185ce 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1602,7 +1602,7 @@ export default { merge_msg: '數據表中存在字段一致的情況,是否合並到一個數據集中?', merge_title: '合並數據', field_name_less_50: '字段名不能超過50個字符', - excel_info_1: '1、Excel 文件終不能存在合併單元格;', + excel_info_1: '1、Excel 文件中不能存在合併單元格;', excel_info_2: '2、Excel 文件的第一行為標題行,不能為空,不能為日期;', excel_info_3: '3、文件不超過500M。', sync_field: '同步字段', From ff226c65141a9de6f8428ee241a8b6d9f3bf0527 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Sep 2022 18:25:35 +0800 Subject: [PATCH 06/16] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95):=20=E9=A3=9E?= =?UTF-8?q?=E4=B9=A6=E6=89=AB=E7=A0=81=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/plugins/server/XLarkServer.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/io/dataease/plugins/server/XLarkServer.java b/backend/src/main/java/io/dataease/plugins/server/XLarkServer.java index 77553bbb4d..9f51798be4 100644 --- a/backend/src/main/java/io/dataease/plugins/server/XLarkServer.java +++ b/backend/src/main/java/io/dataease/plugins/server/XLarkServer.java @@ -94,15 +94,14 @@ public class XLarkServer { if (!isOpen) { DEException.throwException("未开启飞书"); } - LarkUserInfo larkUserInfo = larkXpackService.userInfo(code, state); + LarkUserInfo larkUserInfo = larkXpackService.userInfo(code, state, false); String username = larkUserInfo.getUser_id(); - String sub = larkUserInfo.getSub(); - SysUserEntity sysUserEntity = authUserService.getUserByLarkId(sub); + SysUserEntity sysUserEntity = authUserService.getUserByLarkId(username); if (null == sysUserEntity) { String email = StringUtils.isNotBlank(larkUserInfo.getEmail()) ? larkUserInfo.getEmail() : (username + "@lark.work"); sysUserService.validateExistUser(username, larkUserInfo.getName(), email); sysUserService.saveLarkCUser(larkUserInfo, email); - sysUserEntity = authUserService.getUserByLarkId(sub); + sysUserEntity = authUserService.getUserByLarkId(username); } TokenInfo tokenInfo = TokenInfo.builder().userId(sysUserEntity.getUserId()).username(sysUserEntity.getUsername()).build(); String realPwd = sysUserEntity.getPassword(); @@ -171,7 +170,7 @@ public class XLarkServer { DEException.throwException("未开启飞书"); } larkXpackService = SpringContextUtil.getBean(LarkXpackService.class); - LarkUserInfo larkUserInfo = larkXpackService.userInfo(code, state); + LarkUserInfo larkUserInfo = larkXpackService.userInfo(code, state, true); String userId = larkUserInfo.getUser_id(); From 721d342f008c884dae75073ace0ede245dc70f55 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 28 Sep 2022 18:36:27 +0800 Subject: [PATCH 07/16] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=B1=95=E7=A4=BA=E4=B8=8B=E6=AC=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableTaskController.java | 4 ++-- .../dataease/listener/AppStartListener.java | 3 ++- .../provider/datasource/ApiProvider.java | 2 +- .../dataset/DataSetTableTaskService.java | 19 ++++++++++++------- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java index 00910fd834..90b7bf6c6e 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java @@ -58,14 +58,14 @@ public class DataSetTableTaskController { @DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE) @ApiOperation("查询") @PostMapping("list") - public List list(@RequestBody DatasetTableTask datasetTableTask) { + public List list(@RequestBody DatasetTableTask datasetTableTask) { return dataSetTableTaskService.list(datasetTableTask); } @DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE) @ApiOperation("分页查询") @PostMapping("list/{goPage}/{pageSize}") - public Pager> list(@RequestBody DatasetTableTask datasetTableTask, @PathVariable int goPage, @PathVariable int pageSize) { + public Pager> list(@RequestBody DatasetTableTask datasetTableTask, @PathVariable int goPage, @PathVariable int pageSize) { Page page = PageHelper.startPage(goPage, pageSize, true); return PageUtils.setPageInfo(page, dataSetTableTaskService.list(datasetTableTask)); } diff --git a/backend/src/main/java/io/dataease/listener/AppStartListener.java b/backend/src/main/java/io/dataease/listener/AppStartListener.java index c19dbb0d8b..b064228641 100644 --- a/backend/src/main/java/io/dataease/listener/AppStartListener.java +++ b/backend/src/main/java/io/dataease/listener/AppStartListener.java @@ -1,6 +1,7 @@ package io.dataease.listener; import io.dataease.commons.utils.LogUtil; +import io.dataease.dto.dataset.DataSetTaskDTO; import io.dataease.plugins.common.base.domain.DatasetTableTask; import io.dataease.commons.constants.ScheduleType; import io.dataease.service.ScheduleService; @@ -26,7 +27,7 @@ public class AppStartListener implements ApplicationListener list = dataSetTableTaskService.list(new DatasetTableTask()); + List list = dataSetTableTaskService.list(new DatasetTableTask()); for (DatasetTableTask task : list) { try { if (!StringUtils.equalsIgnoreCase(task.getRate(), ScheduleType.SIMPLE.toString())) { diff --git a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index e592d2c5a2..31f63fbac0 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -360,7 +360,7 @@ public class ApiProvider extends Provider { private List fetchResult(String result, ApiDefinition apiDefinition) { List dataList = new LinkedList<>(); - if (StringUtils.isNotEmpty(apiDefinition.getDataPath()) && CollectionUtils.isNotEmpty(apiDefinition.getJsonFields())) { + if (StringUtils.isNotEmpty(apiDefinition.getDataPath()) && CollectionUtils.isEmpty(apiDefinition.getJsonFields())) { List datas = new ArrayList<>(); Object object = JsonPath.read(result, apiDefinition.getDataPath()); if (object instanceof List) { diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java index 9c289354aa..758f7582c6 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java @@ -263,14 +263,19 @@ public class DataSetTableTaskService { datasetTableTaskMapper.updateByExampleSelective(datasetTableTask, datasetTableTaskExample); } - public List list(DatasetTableTask datasetTableTask) { - DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample(); - DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria(); - if (datasetTableTask != null && StringUtils.isNotEmpty(datasetTableTask.getTableId())) { - criteria.andTableIdEqualTo(datasetTableTask.getTableId()); + public List list(DatasetTableTask datasetTableTask) { + BaseGridRequest request = new BaseGridRequest(); + List conditionEntities = new ArrayList<>(); + if(datasetTableTask != null && StringUtils.isNotEmpty(datasetTableTask.getTableId())){ + ConditionEntity entity = new ConditionEntity(); + entity.setField("table_id"); + entity.setOperator("eq"); + entity.setValue(datasetTableTask.getTableId()); + conditionEntities.add(entity); } - datasetTableTaskExample.setOrderByClause("create_time desc,name asc"); - return datasetTableTaskMapper.selectByExample(datasetTableTaskExample); + request.setConditions(conditionEntities); + GridExample gridExample = request.convertExample(); + return extDataSetTaskMapper.taskList(gridExample); } public List taskList4User(BaseGridRequest request) { From 81a8bba8fab1d8f5cb63cd6a64628947177c2992 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Sep 2022 22:14:25 +0800 Subject: [PATCH 08/16] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20echarts?= =?UTF-8?q?=E7=BC=A9=E7=95=A5=E5=9B=BE=E8=83=8C=E6=99=AF=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/chart/chart/common/common.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/chart/chart/common/common.js b/frontend/src/views/chart/chart/common/common.js index 5bd5f738e7..c5ce49d975 100644 --- a/frontend/src/views/chart/chart/common/common.js +++ b/frontend/src/views/chart/chart/common/common.js @@ -248,17 +248,19 @@ export function seniorCfg(chart_option, chart) { ] if (senior.functionCfg.sliderBg) { chart_option.dataZoom[1].dataBackground = { - lineStyle: { color: reverseColor(senior.functionCfg.sliderBg), opacity: 0.3 }, - areaStyle: { color: reverseColor(senior.functionCfg.sliderBg), opacity: 0.1 } + lineStyle: { color: hexToRgba(senior.functionCfg.sliderBg, 0.5) }, + areaStyle: { color: hexToRgba(senior.functionCfg.sliderBg, 0.5) } } + chart_option.dataZoom[1].borderColor = hexToRgba(senior.functionCfg.sliderBg, 0.3) } if (senior.functionCfg.sliderFillBg) { chart_option.dataZoom[1].selectedDataBackground = { lineStyle: { color: senior.functionCfg.sliderFillBg }, areaStyle: { color: senior.functionCfg.sliderFillBg } } - const rgba = hexToRgba(senior.functionCfg.sliderFillBg, 0.5) + const rgba = hexToRgba(senior.functionCfg.sliderFillBg, 0.2) chart_option.dataZoom[1].fillerColor = rgba + } if (senior.functionCfg.sliderTextClolor) { chart_option.dataZoom[1].textStyle = { color: senior.functionCfg.sliderTextClolor } From 27b2af481311a0d98947b4f9a92083bda1f4bd28 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Sep 2022 22:42:24 +0800 Subject: [PATCH 09/16] =?UTF-8?q?fix(=E8=BF=87=E6=BB=A4=E5=99=A8):=20?= =?UTF-8?q?=E9=9D=9E=E7=AE=A1=E7=90=86=E5=91=98=E5=88=A0=E9=99=A4=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E5=AD=97=E6=AE=B5=E6=8A=A5=E9=94=99=E6=97=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/panel/filter/filterMain/FilterHead.vue | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/panel/filter/filterMain/FilterHead.vue b/frontend/src/views/panel/filter/filterMain/FilterHead.vue index 859c45fa90..5ad4f90db3 100644 --- a/frontend/src/views/panel/filter/filterMain/FilterHead.vue +++ b/frontend/src/views/panel/filter/filterMain/FilterHead.vue @@ -87,9 +87,13 @@ export default { }, methods: { loadFields() { - fieldListWithPermission(this.firstTableId).then(res => { - this.tableFields = JSON.parse(JSON.stringify(res.data)) - }) + if (this.firstTableId) { + fieldListWithPermission(this.firstTableId).then(res => { + this.tableFields = JSON.parse(JSON.stringify(res.data)) + }) + } else { + this.tableFields = [] + } }, onMove(e, originalEvent) { return true From 4157957f85b1b19a6ef73c963f3aa0e980f66102 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 28 Sep 2022 22:51:11 +0800 Subject: [PATCH 10/16] =?UTF-8?q?fix(=E8=BF=87=E6=BB=A4=E5=99=A8):=20?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E8=AE=BE=E7=BD=AE=E5=90=8E=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=86=8D=E5=BC=80=E5=90=AF=E8=A2=AB=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/panel/filter/filterMain/FilterControl.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/views/panel/filter/filterMain/FilterControl.vue b/frontend/src/views/panel/filter/filterMain/FilterControl.vue index 149922bd3a..620b45ee7b 100644 --- a/frontend/src/views/panel/filter/filterMain/FilterControl.vue +++ b/frontend/src/views/panel/filter/filterMain/FilterControl.vue @@ -228,7 +228,6 @@ export default { }, showTitleChange(value) { if (!value) { - this.attrs.title = '' this.element.style.backgroundColor = '' } this.fillAttrs2Filter() From 0d9de24226d61a50c5b6c50b201be7f32eb0a478 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 29 Sep 2022 09:47:36 +0800 Subject: [PATCH 11/16] =?UTF-8?q?fix(=E8=BF=87=E6=BB=A4=E5=99=A8):=20?= =?UTF-8?q?=E6=A0=91=E8=BF=87=E6=BB=A4=E5=99=A8=E5=A4=9A=E9=80=89=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E9=80=89=E6=8B=A9=E9=83=A8=E5=88=86=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=86=8D=E5=85=A8=E9=80=89=E5=AF=B9=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/ElTreeSelect/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/ElTreeSelect/index.vue b/frontend/src/components/ElTreeSelect/index.vue index 4311d0f374..21f249fe73 100644 --- a/frontend/src/components/ElTreeSelect/index.vue +++ b/frontend/src/components/ElTreeSelect/index.vue @@ -241,6 +241,7 @@ export default { if (val) { this.ids = this._checkSum() this._emitFun() + this.$emit('check', null, this.ids, null) return } this._selectClearFun() From f17bbbc20ee5b93d9fc8dfeeab20e21303e6a575 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 29 Sep 2022 10:08:12 +0800 Subject: [PATCH 12/16] =?UTF-8?q?style(=E8=A7=86=E5=9B=BE):=20=E7=AC=A6?= =?UTF-8?q?=E5=8F=B7=E5=9C=B0=E5=9B=BE=E5=BC=B9=E5=87=BA=E6=94=BE=E5=A4=A7?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=A0=B7=E5=BC=8F=E9=94=99=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/canvas/custom-component/UserViewDialog.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/src/components/canvas/custom-component/UserViewDialog.vue b/frontend/src/components/canvas/custom-component/UserViewDialog.vue index ccb213a15c..4e23564411 100644 --- a/frontend/src/components/canvas/custom-component/UserViewDialog.vue +++ b/frontend/src/components/canvas/custom-component/UserViewDialog.vue @@ -270,6 +270,9 @@ export default { position: absolute; width: 100%; margin-left: -20px; + .ms-main-container { + padding: 0px !important; + } } .svg-background { From d6b5406b9690178f246ec43a4715feb4db41031e Mon Sep 17 00:00:00 2001 From: fit2cloudrd Date: Thu, 29 Sep 2022 11:00:30 +0800 Subject: [PATCH 13/16] Update issue templates --- .github/ISSUE_TEMPLATE/bug---.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug---.md b/.github/ISSUE_TEMPLATE/bug---.md index 2670424e7f..8c6c66613e 100644 --- a/.github/ISSUE_TEMPLATE/bug---.md +++ b/.github/ISSUE_TEMPLATE/bug---.md @@ -3,7 +3,7 @@ name: Bug 提交 about: 提交产品缺陷帮助我们更好的改进 title: "[Bug]" labels: 类型:bug -assignees: BBchicken-9527, youliyuan-fit2cloud, zyyfit +assignees: BBchicken-9527, zrfit --- From 3a1b88db2fd8e2728e285a2f90d6ae9eed317a6e Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 29 Sep 2022 12:01:00 +0800 Subject: [PATCH 14/16] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E5=A4=8D=E5=88=B6=E8=87=AA=E5=8A=A8=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E5=85=BC=E5=AE=B9=E5=AF=8C=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E8=A7=86=E5=9B=BE=E4=B8=8D=E9=9C=80=E8=A6=81=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=A0=87=E9=A2=98=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/db/migration/V40__1.15.sql | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/backend/src/main/resources/db/migration/V40__1.15.sql b/backend/src/main/resources/db/migration/V40__1.15.sql index 0b34538a39..93c1d0741f 100644 --- a/backend/src/main/resources/db/migration/V40__1.15.sql +++ b/backend/src/main/resources/db/migration/V40__1.15.sql @@ -209,3 +209,33 @@ RETURN oTemp; END ;; delimiter ; + +DROP FUNCTION IF EXISTS `GET_CHART_VIEW_COPY_NAME`; +delimiter ;; +CREATE FUNCTION `GET_CHART_VIEW_COPY_NAME`(chartId varchar(255),pid varchar(255)) + RETURNS varchar(255) CHARSET utf8mb4 + READS SQL DATA +BEGIN + +DECLARE chartName varchar(255); + +DECLARE regexpInfo varchar(255); + +DECLARE chartNameCount INTEGER; + +select (case when `type`='richTextView' then 'RICH_TEXT_VIEW' else `name` end) into chartName from chart_view where id =chartId; +/** +因为名称存在()等特殊字符,所以不能直接用REGEXP进行查找 +1.用like 'chartName%' 过滤可能的数据项 +2.REPLACE(name,chartName,'') REGEXP '-copy\\(([0-9])+\\)$' 过滤去掉chartName后的字符以 -copy(/d) 结尾的数据 +3.(LENGTH(REPLACE(name,chartName,''))-LENGTH(replace(REPLACE(name,chartName,''),'-',''))=1) 确定只出现一次 ‘-’ 防止多次copy +**/ +select (count(1)+1) into chartNameCount from chart_view +where (LENGTH(REPLACE(name,chartName,''))-LENGTH(replace(REPLACE(name,chartName,''),'-',''))=1) + and REPLACE(name,chartName,'') REGEXP '-copy\\(([0-9])+\\)$' and name like CONCAT(chartName,'%') and chart_view.scene_id=pid ; + +RETURN concat(chartName,'-copy(',chartNameCount,')'); + +END +;; +delimiter ; From 091fd073afb4c24d740056f2c6cbac742483adfe Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 29 Sep 2022 13:54:22 +0800 Subject: [PATCH 15/16] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E7=8A=B6=E6=80=81=E6=94=B9=E5=8F=98=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E5=9C=B0=E5=9B=BE=E4=B8=AD=E6=96=87=E5=AD=97?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=8F=8A=E6=97=B6=E5=8F=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/system/dynamic.js | 3 ++- frontend/src/lang/en.js | 1 + frontend/src/lang/tw.js | 1 + frontend/src/lang/zh.js | 1 + frontend/src/views/chart/components/ChartComponent.vue | 10 ++++++++++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frontend/src/api/system/dynamic.js b/frontend/src/api/system/dynamic.js index e16d914cca..6ca3f50daf 100644 --- a/frontend/src/api/system/dynamic.js +++ b/frontend/src/api/system/dynamic.js @@ -17,7 +17,8 @@ export function execute(options) { url: options.url, method: options.type, loading: true, - data: options.data + data: options.data, + hideMsg: options.hideMsg } if (options.responseType) { param.responseType = options.responseType diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 7f651aa463..178a099f0f 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -911,6 +911,7 @@ export default { password_input_error: 'Original password input error' }, chart: { + map_center_lost: 'The graph is missing the centroid or center attribute, please complete it and try again', margin_model: 'Model', margin_model_auto: 'Auto', margin_model_absolute: 'Absolute', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index afbcb185ce..9e18c8acca 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -911,6 +911,7 @@ export default { password_input_error: '原始密碼輸入錯誤' }, chart: { + map_center_lost: '圖形缺失中心點centroid或center屬性,請補全後再試', margin_model: '模式', margin_model_auto: '自動', margin_model_absolute: '絕對', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 099fff30fc..425c1d028d 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -910,6 +910,7 @@ export default { password_input_error: '原始密码输入错误' }, chart: { + map_center_lost: '图形缺失中心点centroid或center属性,请补全后再试', margin_model: '模式', margin_model_auto: '自动', margin_model_absolute: '绝对', diff --git a/frontend/src/views/chart/components/ChartComponent.vue b/frontend/src/views/chart/components/ChartComponent.vue index 2593b9d237..e65897ed6d 100644 --- a/frontend/src/views/chart/components/ChartComponent.vue +++ b/frontend/src/views/chart/components/ChartComponent.vue @@ -159,6 +159,16 @@ export default { }, resize() { this.drawEcharts() + }, + 'themeStyle.color'(value, old) { + if (value !== old) { + this.preDraw() + } + }, + 'themeStyle.commonBackground.color'(value, old) { + if (value !== old) { + this.preDraw() + } } }, mounted() { From f168bcdbd879b90bafe80632509c1f9b271fa1df Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 29 Sep 2022 14:07:32 +0800 Subject: [PATCH 16/16] =?UTF-8?q?fix(=E5=AE=9A=E6=97=B6=E6=8A=A5=E5=91=8A)?= =?UTF-8?q?:=20=E9=83=A8=E5=88=86=E6=B8=A0=E9=81=93=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=A4=B1=E8=B4=A5=E4=BC=9A=E4=B8=AD=E6=96=AD?= =?UTF-8?q?=E5=90=8E=E9=9D=A2=E5=85=B6=E4=BB=96=E6=B8=A0=E9=81=93=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/impl/EmailTaskHandler.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java b/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java index 0b7560cff0..c6625dc5b7 100644 --- a/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java +++ b/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java @@ -5,7 +5,6 @@ import io.dataease.auth.entity.TokenInfo; import io.dataease.auth.service.AuthUserService; import io.dataease.auth.service.impl.AuthUserServiceImpl; import io.dataease.auth.util.JWTUtils; -import io.dataease.commons.exception.DEException; import io.dataease.dto.PermissionProxy; import io.dataease.ext.ExtTaskMapper; import io.dataease.commons.utils.CommonBeanFactory; @@ -214,13 +213,17 @@ public class EmailTaskHandler extends TaskHandler implements Job { channels = Arrays.stream(recisetting.split(",")).collect(Collectors.toList()); } - + List errorMsgs = new ArrayList<>(); for (int i = 0; i < channels.size(); i++) { String channel = channels.get(i); switch (channel) { case "email": if (StringUtils.isNotBlank(recipients)) - emailService.sendWithImageAndFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files); + try { + emailService.sendWithImageAndFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files); + } catch (Exception e) { + errorMsgs.add("email: " + e.getMessage()); + } break; case "wecom": if (SpringContextUtil.getBean(AuthUserService.class).supportWecom()) { @@ -233,14 +236,14 @@ public class EmailTaskHandler extends TaskHandler implements Job { SysUserAssist sysUserAssist = sysUserService.assistInfo(userId); if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getWecomId())) continue; - wecomUsers.add(sysUserAssist.getLarkId()); + wecomUsers.add(sysUserAssist.getWecomId()); } if (CollectionUtils.isNotEmpty(wecomUsers)) { WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class); WecomMsgResult wecomMsgResult = wecomXpackService.pushOaMsg(wecomUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files); if (wecomMsgResult.getErrcode() != 0) { - DEException.throwException(wecomMsgResult.getErrmsg()); + errorMsgs.add("wecom: " + wecomMsgResult.getErrmsg()); } } @@ -257,14 +260,14 @@ public class EmailTaskHandler extends TaskHandler implements Job { SysUserAssist sysUserAssist = sysUserService.assistInfo(userId); if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getDingtalkId())) continue; - dingTalkUsers.add(sysUserAssist.getLarkId()); + dingTalkUsers.add(sysUserAssist.getDingtalkId()); } if (CollectionUtils.isNotEmpty(dingTalkUsers)) { DingtalkXpackService dingtalkXpackService = SpringContextUtil.getBean(DingtalkXpackService.class); DingtalkMsgResult dingtalkMsgResult = dingtalkXpackService.pushOaMsg(dingTalkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files); if (dingtalkMsgResult.getErrcode() != 0) { - DEException.throwException(dingtalkMsgResult.getErrmsg()); + errorMsgs.add("dingtalk: " + dingtalkMsgResult.getErrmsg()); } } @@ -288,7 +291,7 @@ public class EmailTaskHandler extends TaskHandler implements Job { LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class); LarkMsgResult larkMsgResult = larkXpackService.pushOaMsg(larkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files); if (larkMsgResult.getCode() != 0) { - DEException.throwException(larkMsgResult.getMsg()); + errorMsgs.add("lark: " + larkMsgResult.getMsg()); } } @@ -298,6 +301,11 @@ public class EmailTaskHandler extends TaskHandler implements Job { break; } } + if (CollectionUtils.isNotEmpty(errorMsgs)) { + String msg = errorMsgs.stream().collect(Collectors.joining(" \n ")); + Exception exception = new RuntimeException(msg); + throw exception; + } success(taskInstance); } catch (Exception e) { error(taskInstance, e);