From daae9c120f2551bd2f084dc64a5c18e2ff2befcf Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 23 Dec 2022 18:34:27 +0800 Subject: [PATCH 01/11] =?UTF-8?q?fix(=E5=9C=B0=E5=9B=BE):=20=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=8E=E6=A0=87=E8=AE=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=B2=A1=E6=9C=89=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/chart/chart/map/map.js | 2 +- .../functionStyle/MapMarkSelector.vue | 32 ++++++++++++++++++- .../components/map/MarkMapDataEditor.vue | 8 ++--- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/frontend/src/views/chart/chart/map/map.js b/frontend/src/views/chart/chart/map/map.js index 7645d6c1f1..b721601414 100644 --- a/frontend/src/views/chart/chart/map/map.js +++ b/frontend/src/views/chart/chart/map/map.js @@ -51,7 +51,7 @@ export function baseMapOption(chart_option, chart, themeStyle, curAreaCode, seri currentSeriesId = yAxis?.length ? yAxis[0].id : null } chart.data?.series.forEach((item, index) => { - if (item.data[0].quotaList[0].id === currentSeriesId) { + if (item.data?.length && item.data[0].quotaList[0].id === currentSeriesId) { seriesIndex = index return false } diff --git a/frontend/src/views/chart/components/functionStyle/MapMarkSelector.vue b/frontend/src/views/chart/components/functionStyle/MapMarkSelector.vue index 5b06b3e706..3781a99fce 100644 --- a/frontend/src/views/chart/components/functionStyle/MapMarkSelector.vue +++ b/frontend/src/views/chart/components/functionStyle/MapMarkSelector.vue @@ -143,6 +143,8 @@ import { DEFAULT_MARK } from '../../chart/chart' import DeIconGroupPicker from '@/components/deIconPicker/deIconGroupPicker' import deSvgIcons from '@/deicons' +import { getItemType } from '@/views/chart/components/dragItem/utils' +import bus from '@/utils/bus' export default { name: 'MapMarkSelector', components: { DeIconGroupPicker }, @@ -275,7 +277,12 @@ export default { } } }, + + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) + }, mounted() { + bus.$on('reset-change-table', this.getItemTagType) this.initData() this.loadSvg() }, @@ -309,6 +316,12 @@ export default { } if (customAttr.mark) { this.markForm = customAttr.mark + if (this.markForm.fieldId) { + const valid = this.fieldOptions.some(group => group.options.some(item => item.id === this.markForm.fieldId)) + if (!valid) { + this.markForm.fieldId = null + } + } } } }, @@ -360,8 +373,25 @@ export default { } this.changeMarkAttr('fieldId') + }, + getItemTagType() { + if (this.markForm.fieldId) { + const field = this.getField(this.markForm.fieldId) + if (!field) { + this.changeFields() + this.markForm.fieldId = null + return + } + const tagType = getItemType(this.dimensionData, this.quotaData, field) + if (tagType === 'danger') { + this.changeFields() + this.markForm.fieldId = null + } + } else { + this.changeFields() + this.markForm.fieldId = null + } } - } } diff --git a/frontend/src/views/chart/components/map/MarkMapDataEditor.vue b/frontend/src/views/chart/components/map/MarkMapDataEditor.vue index 79507d669f..c330c799d6 100644 --- a/frontend/src/views/chart/components/map/MarkMapDataEditor.vue +++ b/frontend/src/views/chart/components/map/MarkMapDataEditor.vue @@ -29,8 +29,8 @@ :param="param" :index="index" :item="item" - :dimension-data="dimension" - :quota-data="quota" + :dimension-data="dimensionData" + :quota-data="quotaData" @onDetailItemRemove="locationXItemRemove" /> @@ -69,8 +69,8 @@ :param="param" :index="index" :item="item" - :dimension-data="dimension" - :quota-data="quota" + :dimension-data="dimensionData" + :quota-data="quotaData" @onDetailItemRemove="locationYItemRemove" /> From 669f2aa235aeba804f6a36f2abfe901dbd517cbe Mon Sep 17 00:00:00 2001 From: junjun Date: Sat, 24 Dec 2022 18:28:54 +0800 Subject: [PATCH 02/11] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20MySQL?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=E6=94=AF=E6=8C=81=E6=8C=89?= =?UTF-8?q?=E5=AD=A3=E5=BA=A6=E3=80=81=E5=91=A8=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/mysql/MysqlQueryProvider.java | 29 +++++++- .../query/mysql/MysqlQueryProvider.java | 40 +++++++++-- frontend/src/lang/en.js | 2 + frontend/src/lang/tw.js | 2 + frontend/src/lang/zh.js | 2 + frontend/src/views/chart/chart/chart.js | 2 + .../components/dragItem/DimensionExtItem.vue | 25 ++++++- .../components/dragItem/DimensionItem.vue | 22 ++++++- .../components/dragItem/QuotaExtItem.vue | 9 +-- .../chart/components/dragItem/QuotaItem.vue | 3 +- frontend/src/views/chart/view/ChartEdit.vue | 66 ++++++++++--------- 11 files changed, 154 insertions(+), 48 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index e072cba02a..7a703ae880 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -1,6 +1,7 @@ package io.dataease.provider.engine.mysql; import com.alibaba.fastjson.JSONArray; +import com.sun.javafx.binding.StringFormatter; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; @@ -1141,8 +1142,12 @@ public class MysqlQueryProvider extends QueryProvider { switch (dateStyle) { case "y": return "%Y"; + case "y_Q": + return "CONCAT(%s,'" + split + "',%s)"; case "y_M": return "%Y" + split + "%m"; + case "y_W": + return "%Y" + split + "%u"; case "y_M_d": return "%Y" + split + "%m" + split + "%d"; case "H_m_s": @@ -1163,7 +1168,13 @@ public class MysqlQueryProvider extends QueryProvider { fieldName = String.format(MysqlConstants.UNIX_TIMESTAMP, originField) + "*1000"; } else if (x.getDeType() == 1) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - fieldName = String.format(MysqlConstants.DATE_FORMAT, originField, format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MysqlConstants.DATE_FORMAT, originField, "%Y"), + String.format(MysqlConstants.QUARTER, originField)); + } else { + fieldName = String.format(MysqlConstants.DATE_FORMAT, originField, format); + } } else { fieldName = originField; } @@ -1171,11 +1182,23 @@ public class MysqlQueryProvider extends QueryProvider { if (x.getDeType() == 1) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getDeExtractType() == 0) { - fieldName = String.format(MysqlConstants.DATE_FORMAT, originField, format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MysqlConstants.DATE_FORMAT, String.format(MysqlConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT), "%Y"), + String.format(MysqlConstants.QUARTER, String.format(MysqlConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT))); + } else { + fieldName = String.format(MysqlConstants.DATE_FORMAT, originField, format); + } } else { String cast = String.format(MysqlConstants.CAST, originField, MysqlConstants.DEFAULT_INT_FORMAT) + "/1000"; String from_unixtime = String.format(MysqlConstants.FROM_UNIXTIME, cast, MysqlConstants.DEFAULT_DATE_FORMAT); - fieldName = String.format(MysqlConstants.DATE_FORMAT, from_unixtime, format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MysqlConstants.DATE_FORMAT, from_unixtime, "%Y"), + String.format(MysqlConstants.QUARTER, from_unixtime)); + } else { + fieldName = String.format(MysqlConstants.DATE_FORMAT, from_unixtime, format); + } } } else if (x.getDeType() == 0 && x.getDeExtractType() == 0) { fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.CHAR); diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 3a4bd7d406..566488b0c2 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -18,8 +18,8 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; -import io.dataease.plugins.datasource.entity.PageInfo; import io.dataease.plugins.datasource.entity.Dateformat; +import io.dataease.plugins.datasource.entity.PageInfo; import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.Utils; import org.apache.commons.collections4.CollectionUtils; @@ -1138,8 +1138,12 @@ public class MysqlQueryProvider extends QueryProvider { switch (dateStyle) { case "y": return "%Y"; + case "y_Q": + return "CONCAT(%s,'" + split + "',%s)"; case "y_M": return "%Y" + split + "%m"; + case "y_W": + return "%Y" + split + "%u"; case "y_M_d": return "%Y" + split + "%m" + split + "%d"; case "H_m_s": @@ -1159,13 +1163,25 @@ public class MysqlQueryProvider extends QueryProvider { if (x.getDeType() == 2 || x.getDeType() == 3) { fieldName = String.format(MySQLConstants.UNIX_TIMESTAMP, originField) + "*1000"; } else if (x.getDeType() == 1) { + String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getType().equalsIgnoreCase("YEAR")) { - fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", transDateFormat(x.getDateStyle(), x.getDatePattern())); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", "%Y"), + String.format(MySQLConstants.QUARTER, "CONCAT(" + originField + ",'-01-01')")); + } else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", format); + } } else if (x.getType().equalsIgnoreCase("TIME")) { fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT('1970-01-01', " + originField + ")", MySQLConstants.DEFAULT_DATE_FORMAT); } else { - String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MySQLConstants.DATE_FORMAT, originField, "%Y"), + String.format(MySQLConstants.QUARTER, originField)); + } else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, format); + } } } else { fieldName = originField; @@ -1174,11 +1190,23 @@ public class MysqlQueryProvider extends QueryProvider { if (x.getDeType() == 1) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getDeExtractType() == 0) { - fieldName = String.format(MySQLConstants.DATE_FORMAT, String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT), format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MysqlConstants.DATE_FORMAT, String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT), "%Y"), + String.format(MysqlConstants.QUARTER, String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT))); + } else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT), format); + } } else { String cast = String.format(MySQLConstants.CAST, originField, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; String from_unixtime = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); - fieldName = String.format(MySQLConstants.DATE_FORMAT, from_unixtime, format); + if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { + fieldName = String.format(format, + String.format(MySQLConstants.DATE_FORMAT, from_unixtime, "%Y"), + String.format(MySQLConstants.QUARTER, from_unixtime)); + } else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, from_unixtime, format); + } } } else { if (x.getDeType() == DeTypeConstants.DE_INT) { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 601aabdfed..85afce9cbd 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1179,6 +1179,8 @@ export default { datePattern: 'Date Format', y: 'Year', y_M: 'Year Month', + y_Q: 'Year Quarter', + y_W: 'Year Week', y_M_d: 'Year Month Day', H_m_s: 'Hour Minute Second', y_M_d_H_m: 'Year Month Day Hour Minute', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 86904cd527..a42e5e77b3 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1178,6 +1178,8 @@ export default { datePattern: '日期格式', y: '年', y_M: '年月', + y_Q: '年季度', + y_W: '年周', y_M_d: '年月日', H_m_s: '時分秒', y_M_d_H_m: '年月日時分', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 9255752a76..0bc79e37fc 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1177,6 +1177,8 @@ export default { datePattern: '日期格式', y: '年', y_M: '年月', + y_Q: '年季度', + y_W: '年周', y_M_d: '年月日', H_m_s: '时分秒', y_M_d_H_m: '年月日时分', diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js index 47101d2a47..afece4b1fe 100644 --- a/frontend/src/views/chart/chart/chart.js +++ b/frontend/src/views/chart/chart/chart.js @@ -1133,3 +1133,5 @@ export const CHART_FONT_LETTER_SPACE = [ ] export const NOT_SUPPORT_PAGE_DATASET = ['kylin', 'sqlServer', 'es', 'presto', 'ds_doris', 'StarRocks'] + +export const SUPPORT_Y_M = ['y', 'y_M', 'y_M_d'] diff --git a/frontend/src/views/chart/components/dragItem/DimensionExtItem.vue b/frontend/src/views/chart/components/dragItem/DimensionExtItem.vue index 209acf49bb..d042757e50 100644 --- a/frontend/src/views/chart/components/dragItem/DimensionExtItem.vue +++ b/frontend/src/views/chart/components/dragItem/DimensionExtItem.vue @@ -108,7 +108,15 @@ {{ $t('chart.y') }} + {{ $t('chart.y_Q') }} {{ $t('chart.y_M') }} + {{ $t('chart.y_W') }} {{ $t('chart.y_M_d') }} {{ $t('chart.y') }} + {{ $t('chart.y_Q') }} {{ $t('chart.y_M') }} + {{ $t('chart.y_W') }} {{ $t('chart.y_M_d') }} { - return ele.deType === 1 + return ele.deType === 1 && SUPPORT_Y_M.includes(ele.dateStyle) }) // 暂时只支持类别轴/维度的时间类型字段 if (t1.length > 0 && this.chart.type !== 'text' && this.chart.type !== 'label' && this.chart.type !== 'gauge' && this.chart.type !== 'liquid') { diff --git a/frontend/src/views/chart/components/dragItem/QuotaItem.vue b/frontend/src/views/chart/components/dragItem/QuotaItem.vue index bda5a3ec84..3145bd92e3 100644 --- a/frontend/src/views/chart/components/dragItem/QuotaItem.vue +++ b/frontend/src/views/chart/components/dragItem/QuotaItem.vue @@ -246,6 +246,7 @@ import FieldErrorTips from '@/views/chart/components/dragItem/components/FieldEr import bus from '@/utils/bus' import { formatterItem } from '@/views/chart/chart/formatter' import { quotaViews } from '@/views/chart/chart/util' +import { SUPPORT_Y_M } from '@/views/chart/chart/chart' export default { name: 'QuotaItem', @@ -321,7 +322,7 @@ export default { xAxis = JSON.parse(this.chart.xaxis) } const t1 = xAxis.filter(ele => { - return ele.deType === 1 + return ele.deType === 1 && SUPPORT_Y_M.includes(ele.dateStyle) }) // 暂时只支持类别轴/维度的时间类型字段 if (t1.length > 0 && this.chart.type !== 'text' && this.chart.type !== 'label' && this.chart.type !== 'gauge' && this.chart.type !== 'liquid') { diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index 1fb3e092a3..1005804c3e 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -192,7 +192,7 @@ @command="chartFieldEdit" > - + - + {{ $t('chart.change_chart_type') }} - + @@ -435,7 +435,7 @@ v-model="view.refreshViewEnable" class="el-input-refresh-loading" @change="refreshAttrChange" - > + /> {{ $t('panel.enable_refresh_view') }} @@ -531,6 +531,7 @@ :item="item" :dimension-data="dimension" :quota-data="quota" + :chart="chart" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @@ -552,8 +553,8 @@ > {{ - $t('chart.drag_block_table_data_column') - }} + $t('chart.drag_block_table_data_column') + }} {{ $t('chart.drag_block_type_axis') }} @@ -561,18 +562,18 @@ v-else-if="view.type && view.type.includes('pie')" >{{ $t('chart.drag_block_pie_label') }} {{ - $t('chart.drag_block_funnel_split') - }} + $t('chart.drag_block_funnel_split') + }} {{ - $t('chart.drag_block_radar_label') - }} + $t('chart.drag_block_radar_label') + }} {{ $t('chart.area') }} {{ - $t('chart.drag_block_treemap_label') - }} + $t('chart.drag_block_treemap_label') + }} {{ - $t('chart.drag_block_word_cloud_label') - }} + $t('chart.drag_block_word_cloud_label') + }} {{ $t('chart.drag_block_label') }} / {{ $t('chart.dimension') }} @@ -673,6 +674,7 @@ :item="item" :dimension-data="dimension" :quota-data="quota" + :chart="chart" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @@ -695,8 +697,8 @@ > {{ - $t('chart.drag_block_table_data_column') - }} + $t('chart.drag_block_table_data_column') + }} {{ $t('chart.drag_block_value_axis') }} @@ -704,30 +706,30 @@ v-else-if="view.type && view.type.includes('pie')" >{{ $t('chart.drag_block_pie_angel') }} {{ - $t('chart.drag_block_funnel_width') - }} + $t('chart.drag_block_funnel_width') + }} {{ - $t('chart.drag_block_radar_length') - }} + $t('chart.drag_block_radar_length') + }} {{ - $t('chart.drag_block_gauge_angel') - }} + $t('chart.drag_block_gauge_angel') + }} {{ $t('chart.drag_block_label_value') }} {{ $t('chart.chart_data') }} {{ - $t('chart.drag_block_treemap_size') - }} + $t('chart.drag_block_treemap_size') + }} {{ - $t('chart.drag_block_value_axis_main') - }} + $t('chart.drag_block_value_axis_main') + }} {{ $t('chart.drag_block_progress') }} {{ - $t('chart.drag_block_word_cloud_size') - }} + $t('chart.drag_block_word_cloud_size') + }} / {{ $t('chart.quota') }} - + @@ -1355,7 +1357,7 @@ width="800px" class="dialog-css" > - + @@ -139,20 +141,21 @@ export default { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 85afce9cbd..96c9b23c63 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -2039,7 +2039,7 @@ export default { yes: 'Yes', no: 'No', live_tips: 'User Https First', - stream_media_add_tips: 'Please Add Stream Media Info...', + stream_media_add_tips: 'And Add Stream Media Info...', stream_mobile_tips: 'IOS terminal may not display', json_params_error: 'Third Party Parameters Parsing Failed. Please Check Whether The Parameters Format Is Correct', inner_padding: 'Inner Padding', @@ -2272,8 +2272,8 @@ export default { play_circle: 'Circle', video_links: 'Video Links', web_url: 'Web URL', - video_add_tips: 'Please Add Video Info...', - web_add_tips_pre: 'Please click', + video_add_tips: 'And Video Info...', + link_add_tips_pre: 'Please click', web_add_tips_suf: 'Add Web Url Info...', panel_view_result_show: 'View Result', panel_view_result_tips: 'Chose "Panel" Will Overwrite View`s Result,Range 1~10000', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index a42e5e77b3..71b5d50f4a 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -2033,7 +2033,7 @@ export default { yes: '是', no: '否', live_tips: '優先HTTPS鏈接', - stream_media_add_tips: '請點擊添加配置流媒體信息...', + stream_media_add_tips: '添加流媒體信息...', stream_mobile_tips: 'IOS終端可能無法顯示', json_params_error: '第三方參數解析失敗,請檢查參數格式是否正確', inner_padding: '內邊距', @@ -2266,8 +2266,8 @@ export default { play_circle: '循環播放', video_links: '視頻鏈接', web_url: '網頁地址', - video_add_tips: '請點擊添加配置視頻信息...', - web_add_tips_pre: '請點擊上方', + video_add_tips: '添加視頻信息...', + link_add_tips_pre: '請點擊上方', web_add_tips_suf: '添加網頁信息...', panel_view_result_show: '視圖結果', panel_view_result_tips: '選擇儀表闆會覆蓋視圖的結果展示數量,取值範圍1~10000', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 0bc79e37fc..900b91a444 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -2033,7 +2033,7 @@ export default { yes: '是', no: '否', live_tips: '优先HTTPS链接', - stream_media_add_tips: '请点击添加配置流媒体信息...', + stream_media_add_tips: '添加流媒体信息...', stream_mobile_tips: 'IOS终端可能无法显示', json_params_error: '第三方参数解析失败,请检查参数格式是否正确', inner_padding: '内边距', @@ -2266,8 +2266,8 @@ export default { play_circle: '循环播放', video_links: '视频链接', web_url: '网页地址', - video_add_tips: '请点击添加配置视频信息...', - web_add_tips_pre: '请点击上方', + video_add_tips: '添加视频信息...', + link_add_tips_pre: '请点击上方', web_add_tips_suf: '添加网页信息...', panel_view_result_show: '视图结果', panel_view_result_tips: '选择仪表板会覆盖视图的结果展示数量,取值范围1~10000', From 4859bec11260e2b160d742b2932d02c83201e70e Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 26 Dec 2022 15:15:32 +0800 Subject: [PATCH 10/11] =?UTF-8?q?fix:=20=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/job/sechedule/strategy/impl/EmailTaskHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2084079934..c30dd02c10 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 @@ -167,7 +167,7 @@ public class EmailTaskHandler extends TaskHandler implements Job { try { XpackEmailTemplateDTO emailTemplateDTO = emailXpackService.emailTemplate(taskInstance.getTaskId()); XpackEmailTaskRequest taskForm = emailXpackService.taskForm(taskInstance.getTaskId()); - if (ObjectUtils.isEmpty(taskForm) || (!isTempTask && (CronUtils.taskExpire(taskForm.getEndTime()) || !taskForm.getStatus()))) { + if (ObjectUtils.isEmpty(taskForm) || (!isTempTask && (CronUtils.taskExpire(taskForm.getEndTime()) || !emailXpackService.status(taskInstance.getTaskId())))) { removeInstance(taskInstance); return; } From 25b0aa20a439f9d885502dcac33db9aa77377868 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 26 Dec 2022 15:58:13 +0800 Subject: [PATCH 11/11] =?UTF-8?q?fix(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BB=AA=E8=A1=A8=E6=9D=BF=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=94=AE=E4=B8=8E=E6=B5=8F=E8=A7=88=E5=99=A8=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=94=AE=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=85=88=E4=BB=AA=E8=A1=A8=E6=9D=BF=E7=BC=96=E8=BE=91=E5=8C=BA?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/canvas/utils/shortcutKey.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/canvas/utils/shortcutKey.js b/frontend/src/components/canvas/utils/shortcutKey.js index 258c862030..1c0688e91e 100644 --- a/frontend/src/components/canvas/utils/shortcutKey.js +++ b/frontend/src/components/canvas/utils/shortcutKey.js @@ -53,11 +53,12 @@ export function listenGlobalKeyDown() { window.onkeydown = (e) => { if (!store.state.isInEditor) return const { keyCode } = e + e.preventDefault() + e.stopPropagation() if (keyCode === ctrlKey || keyCode === commandKey) { isCtrlOrCommandDown = true } else if (isCtrlOrCommandDown) { if (keyCode === zKey || keyCode === yKey || keyCode === dKey || keyCode === sKey || keyCode === enlargeKey) { - e.preventDefault() unlockMap[keyCode]() } }