From 1a97e90cf81b81bc730f51e26e93d1bb6bbacbf8 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Fri, 29 Dec 2023 12:42:09 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E9=93=BE=E6=8E=A5=E8=BF=87=E6=BB=A4=E5=99=A8=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=8C=B9=E9=85=8D=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/frontend/src/store/index.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/store/index.js b/core/frontend/src/store/index.js index 79d5cb63c6..d8ee5e643f 100644 --- a/core/frontend/src/store/index.js +++ b/core/frontend/src/store/index.js @@ -452,7 +452,11 @@ const data = { currentFilters.push(condition) } if (element.type === 'custom' && element.id === targetViewId) { // 过滤组件处理 - element.options.value = [dimension.value] + if (['de-select-tree'].includes(element.component)) { + element.options.value = dimension.value + } else { + element.options.value = [dimension.value] + } // 去掉动态时间 if (element.options.manualModify) { element.options.manualModify = false @@ -486,10 +490,20 @@ const data = { Object.keys(params).forEach(function(sourceInfo) { // 获取外部参数的值 sourceInfo 是外部参数名称 支持数组传入 let paramValue = params[sourceInfo] + let paramValueStr = params[sourceInfo] let operator = 'in' if (paramValue && !Array.isArray(paramValue)) { paramValue = [paramValue] operator = 'eq' + } else if (paramValue && Array.isArray(paramValue)) { + paramValueStr = '' + paramValue.forEach((innerValue, index) => { + if (index === 0) { + paramValueStr = innerValue + } else { + paramValueStr = paramValueStr + ',' + innerValue + } + }) } // 获取所有目标联动信息 const targetInfoList = trackInfo[sourceInfo] || [] @@ -513,7 +527,11 @@ const data = { currentFilters.push(condition) } if (element.type === 'custom' && element.id === targetViewId) { // 过滤组件处理 - element.options.value = paramValue + if (['de-select-tree'].includes(element.component)) { + element.options.value = paramValueStr + } else { + element.options.value = paramValue + } // 去掉动态时间 if (element.options.manualModify) { element.options.manualModify = false From e9feee70419644e637414a9dfbdd7a04b5b3564d Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Fri, 29 Dec 2023 14:13:46 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E8=A7=86=E5=9B=BE=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/frontend/src/lang/en.js | 1 + core/frontend/src/lang/tw.js | 1 + core/frontend/src/lang/zh.js | 1 + core/frontend/src/views/chart/view/ChartEdit.vue | 4 ++-- .../view-3dpie-frontend/src/views/highcharts/3dpie/data.vue | 4 ++-- .../src/views/echarts/map/buddle/data.vue | 4 ++-- .../view-chartmix-frontend/src/views/antv/chartmix/data.vue | 4 ++-- .../view-racebar-frontend/src/views/antv/racebar/data.vue | 4 ++-- .../view-sankey-frontend/src/views/antv/sankey/data.vue | 4 ++-- .../view-symbolmap-frontend/src/views/antv/symbolmap/data.vue | 4 ++-- 10 files changed, 17 insertions(+), 14 deletions(-) diff --git a/core/frontend/src/lang/en.js b/core/frontend/src/lang/en.js index 5a561a72cf..8c652bdea0 100644 --- a/core/frontend/src/lang/en.js +++ b/core/frontend/src/lang/en.js @@ -1112,6 +1112,7 @@ export default { desc: 'Descending Order', sort: 'Sort', filter: 'Filter', + is_set: 'Is Set', none: 'None', background: 'Background', diff --git a/core/frontend/src/lang/tw.js b/core/frontend/src/lang/tw.js index 7c07f95526..1051ba935c 100644 --- a/core/frontend/src/lang/tw.js +++ b/core/frontend/src/lang/tw.js @@ -1112,6 +1112,7 @@ export default { desc: '降序', sort: '排序', filter: '過濾', + is_set: '已設定', none: '無', background: '背景', border: '邊角', diff --git a/core/frontend/src/lang/zh.js b/core/frontend/src/lang/zh.js index 2c3915f3c0..74828f46dd 100644 --- a/core/frontend/src/lang/zh.js +++ b/core/frontend/src/lang/zh.js @@ -1111,6 +1111,7 @@ export default { desc: '降序', sort: '排序', filter: '过滤', + is_set: '已设置', none: '无', background: '背景', border: '边角', diff --git a/core/frontend/src/views/chart/view/ChartEdit.vue b/core/frontend/src/views/chart/view/ChartEdit.vue index 62c546f8e8..674265486d 100644 --- a/core/frontend/src/views/chart/view/ChartEdit.vue +++ b/core/frontend/src/views/chart/view/ChartEdit.vue @@ -1121,7 +1121,7 @@ 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} diff --git a/extensions/dataease-extensions-view/view-bubblemap/view-bubblemap-frontend/src/views/echarts/map/buddle/data.vue b/extensions/dataease-extensions-view/view-bubblemap/view-bubblemap-frontend/src/views/echarts/map/buddle/data.vue index c6cf9eae40..ca8d0c8b10 100644 --- a/extensions/dataease-extensions-view/view-bubblemap/view-bubblemap-frontend/src/views/echarts/map/buddle/data.vue +++ b/extensions/dataease-extensions-view/view-bubblemap/view-bubblemap-frontend/src/views/echarts/map/buddle/data.vue @@ -96,7 +96,7 @@ 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} diff --git a/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue b/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue index 5466118a33..9c5d016740 100644 --- a/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue +++ b/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue @@ -116,7 +116,7 @@ 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} 已设置 + >{{ $t('chart.is_set') }} - 过滤 + {{ $t('chart.filter') }} Date: Fri, 29 Dec 2023 14:35:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20=E6=96=87=E6=9C=AC=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=99=A8=E5=85=B3=E9=97=AD=E9=A6=96=E9=A1=B9?= =?UTF-8?q?=E5=90=8E=E5=86=8D=E5=BC=80=E5=90=AF=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/widget/deWidget/DeSelect.vue | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/frontend/src/components/widget/deWidget/DeSelect.vue b/core/frontend/src/components/widget/deWidget/DeSelect.vue index a4795c5a66..94f7eabab2 100644 --- a/core/frontend/src/components/widget/deWidget/DeSelect.vue +++ b/core/frontend/src/components/widget/deWidget/DeSelect.vue @@ -164,8 +164,10 @@ export default { 'defaultValueStr': function(value, old) { if (value === old) return this.$nextTick(() => { - this.value = this.fillValueDerfault() - this.changeValue(value) + if (!this.selectFirst) { + this.value = this.fillValueDerfault() + this.changeValue(value) + } }) }, 'element.options.attrs.fieldId': function(value, old) { @@ -363,8 +365,8 @@ export default { const id = ele.id const eleVal = ele.options.value.toString() if (this.inDraw && this.manualModify && this.element.id === id) { - if (this.selectFirst) { - this.fillFirstValue() + if (ele.options.attrs.selectFirst) { + this.fillFirstValue(true) this.firstChange(this.value) return } @@ -503,8 +505,8 @@ export default { } return this.value.split(',') }, - fillFirstValue() { - if (!this.selectFirst) { + fillFirstValue(isSelectFirst) { + if (!this.selectFirst && !isSelectFirst) { return } let defaultV = this.data[0].id From e9e9001324cba4d4a5e4bc8993d75ae6cff94fcc Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 29 Dec 2023 14:37:50 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E5=AE=9A=E6=97=B6=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E9=A6=96=E9=A1=B9=E7=9A=84=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/build/SelectBuild.java | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/build/SelectBuild.java b/core/backend/src/main/java/io/dataease/service/chart/build/SelectBuild.java index 5a55d50488..079b4253b8 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/build/SelectBuild.java +++ b/core/backend/src/main/java/io/dataease/service/chart/build/SelectBuild.java @@ -1,11 +1,18 @@ package io.dataease.service.chart.build; +import cn.hutool.core.bean.BeanUtil; +import io.dataease.commons.utils.LogUtil; +import io.dataease.controller.dataset.DataSetTableFieldController; +import io.dataease.controller.request.dataset.MultFieldValuesRequest; import io.dataease.dto.chart.FilterParamTO; +import io.dataease.dto.dataset.DeSortDTO; import io.dataease.service.chart.FilterBuildTemplate; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -14,6 +21,10 @@ import java.util.stream.Collectors; @Service("selectWidget") public class SelectBuild extends FilterBuildTemplate { + + @Resource + private DataSetTableFieldController dataSetTableFieldController; + @Override protected FilterParamTO buildParam(Map component) { FilterParamTO result = new FilterParamTO(); @@ -23,30 +34,34 @@ public class SelectBuild extends FilterBuildTemplate { Object valueObj = null; List realValues = null; - if(ObjectUtils.isEmpty(component.get("options"))) return result; - Map options = (Map)component.get("options"); + if (ObjectUtils.isEmpty(component.get("options"))) return result; + Map options = (Map) component.get("options"); valueObj = options.get("value"); String defaultValue = ""; Map attrs = (Map) options.get("attrs"); boolean multiple = (boolean) attrs.get("multiple"); - if(!ObjectUtils.isEmpty(valueObj)) { - if(valueObj instanceof List) { + if (!ObjectUtils.isEmpty(valueObj)) { + if (valueObj instanceof List) { defaultValue = ""; - }else { + } else { defaultValue = valueObj.toString(); } } - if(multiple) { + boolean isSelectFirst = StringUtils.equals("custom", component.get("type").toString()) && ObjectUtils.isNotEmpty(attrs.get("selectFirst")) && (boolean) attrs.get("selectFirst"); + if (isSelectFirst) { + defaultValue = getFirst(attrs); + } + if (multiple) { if (StringUtils.isBlank(defaultValue)) { realValues = new ArrayList<>(); - }else { + } else { realValues = Arrays.asList(defaultValue.split(",")); } } else { if (StringUtils.isBlank(defaultValue)) { realValues = new ArrayList<>(); - }else { + } else { realValues = Arrays.asList(defaultValue.split(",")).stream().limit(1).collect(Collectors.toList()); } } @@ -54,4 +69,22 @@ public class SelectBuild extends FilterBuildTemplate { result.setValue(realValues); return result; } + + private String getFirst(Map attrs) { + MultFieldValuesRequest request = new MultFieldValuesRequest(); + request.setFieldIds(Arrays.stream(attrs.get("fieldId").toString().split(",")).collect(Collectors.toList())); + if (ObjectUtils.isNotEmpty(attrs.get("sort"))) { + DeSortDTO sort = BeanUtil.copyProperties(attrs.get("sort"), DeSortDTO.class); + request.setSort(sort); + } + List list = null; + try { + list = dataSetTableFieldController.multFieldValues(request); + } catch (Exception e) { + LogUtil.error(e.getMessage()); + return null; + } + if (CollectionUtils.isEmpty(list)) return null; + return list.get(0).toString(); + } } From 8028a5d11820e13b6aac2d94d7caa10707249d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=98=89=E8=B1=AA?= <42510293+ziyujiahao@users.noreply.github.com> Date: Fri, 29 Dec 2023 14:58:56 +0800 Subject: [PATCH 5/5] Pr@dev@refactor view refresh (#7474) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 视图刷新优化,解决部分出错视图停止刷新问题 * refactor: 视图刷新优化,解决部分出错视图停止刷新问题 --- .../src/components/canvas/customComponent/UserView.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/frontend/src/components/canvas/customComponent/UserView.vue b/core/frontend/src/components/canvas/customComponent/UserView.vue index eb90163773..95a9046390 100644 --- a/core/frontend/src/components/canvas/customComponent/UserView.vue +++ b/core/frontend/src/components/canvas/customComponent/UserView.vue @@ -827,6 +827,9 @@ export default { } }, getData(id, cache = true, dataBroadcast = false) { + if (this.requestStatus === 'waiting') { + return + } if (id) { const filters = this.filter.filter const group = this.groupRequiredInvalid(filters) @@ -933,6 +936,12 @@ export default { return true }).catch(err => { console.error('err-' + err) + // 还没有构内部刷新 + if (!this.innerRefreshTimer) { + setTimeout(() => { + this.getData(this.element.propValue.viewId) + }, 5000) + } this.requestStatus = 'error' if (err.message && err.message.indexOf('timeout') > -1) { this.message = this.$t('panel.timeout_refresh')