From 17e2ec66c030b8cdd1e1b55bdf5486af08bc24fb Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 24 Jan 2022 21:18:36 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E5=88=97=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/impl/direct/DirectFieldService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java index 46478da856..dcc84db5af 100644 --- a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java @@ -56,6 +56,11 @@ public class DirectFieldService implements DataSetFieldService { List desensitizationList = new ArrayList<>(); fields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), userId); + //禁用的 + if(!fields.stream().map(DatasetTableField::getId).collect(Collectors.toList()).contains(fieldId)){ + return new ArrayList<>(); + } + if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(field.getDataeaseName())) { List results = new ArrayList<>(); results.add(ColumnPermissionConstants.Desensitization_desc); From 164f97ff48b06863bb6a8651e2dc020b48e0adb8 Mon Sep 17 00:00:00 2001 From: junjie Date: Tue, 25 Jan 2022 10:29:03 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=E5=88=97=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E5=BA=94=E5=BF=BD=E7=95=A5=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E4=B8=AD'=E8=AE=B0=E5=BD=95=E6=95=B0*'=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/dataease/service/chart/ChartViewService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1c835c47d3..1ea9ba9245 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -245,7 +245,7 @@ public class ChartViewService { fields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), requestList.getUser()); //将没有权限的列删掉 List dataeaseNames = fields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()); - dataeaseNames.add("count"); + dataeaseNames.add("*"); fieldCustomFilter = fieldCustomFilter.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); extStack = extStack.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); extBubble = extBubble.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); From 65139d788a65aae5abc4db32b566a74f092d9cbe Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 25 Jan 2022 10:48:53 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=E6=96=87=E4=BB=B6=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E8=AE=BE=E7=BD=AE=E5=9C=A8=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=97=A0=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../canvas/components/Editor/ComponentWrapper.vue | 6 +----- .../src/components/canvas/components/Editor/Preview.vue | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue index 86b7d657fe..bfb04d56e0 100644 --- a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue +++ b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue @@ -150,11 +150,7 @@ export default { height: '100%' } } else { - if (this.terminal === 'pc') { - return getStyle(style, ['top', 'left', 'width', 'height', 'rotate']) - } else { - return getStyle(style, ['top', 'left', 'width', 'height', 'rotate', 'fontSize']) - } + return getStyle(style, ['top', 'left', 'width', 'height', 'rotate']) } }, diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 534a6fa3dc..ce4d28cf6c 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -297,7 +297,11 @@ export default { component.style[key] = this.format(component.style[key], this.scaleHeight) } if (this.needToChangeWidth.includes(key)) { - component.style[key] = this.format(component.style[key], this.scaleWidth) + if (component.type === 'v-text' && key === 'fontSize' && this.terminal === 'mobile') { + // do nothing 移动端字符大小无需按照比例缩放,当前保持不变 + } else { + component.style[key] = this.format(component.style[key], this.scaleWidth) + } } }) }) From 3f232a36a6f600aaea1839a8a13a2f4d489ac91e Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 25 Jan 2022 11:34:12 +0800 Subject: [PATCH 4/6] =?UTF-8?q?refactor:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=BB=84=E4=BB=B6=E6=A0=87=E9=A2=98=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E8=B7=9F=E9=9A=8Fpc=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/canvas/components/Editor/Preview.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index ce4d28cf6c..98e5af8d00 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -297,8 +297,8 @@ export default { component.style[key] = this.format(component.style[key], this.scaleHeight) } if (this.needToChangeWidth.includes(key)) { - if (component.type === 'v-text' && key === 'fontSize' && this.terminal === 'mobile') { - // do nothing 移动端字符大小无需按照比例缩放,当前保持不变 + if (key === 'fontSize' && this.terminal === 'mobile') { + // do nothing 移动端字符大小无需按照比例缩放,当前保持不变(包括 v-text 和 过滤组件) } else { component.style[key] = this.format(component.style[key], this.scaleWidth) } From 8f2539cbdcd665cc2ce91f1f888d19194234f398 Mon Sep 17 00:00:00 2001 From: fit2cloudrd Date: Tue, 25 Jan 2022 12:02:51 +0800 Subject: [PATCH 5/6] =?UTF-8?q?refactor:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: wangjiahao <1522128093@qq.com> --- frontend/src/components/canvas/components/Editor/Preview.vue | 4 +++- .../canvas/custom-component/UserViewMobileDialog.vue | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 98e5af8d00..17690278c3 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -40,7 +40,6 @@ > > .el-dialog__headerbtn { + top: 7px + } .mobile-dialog-css > > > .el-dialog__body { padding: 0px; } diff --git a/frontend/src/components/canvas/custom-component/UserViewMobileDialog.vue b/frontend/src/components/canvas/custom-component/UserViewMobileDialog.vue index 5825da271f..87a4f60b24 100644 --- a/frontend/src/components/canvas/custom-component/UserViewMobileDialog.vue +++ b/frontend/src/components/canvas/custom-component/UserViewMobileDialog.vue @@ -89,5 +89,6 @@ export default { } .full-div{ background-size:100% 100% !important; + padding: 5px 0px 5px 0px !important; } From f33e4b93c62fc3fd3d0f3cdf8d1b9a23ea0e31af Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 25 Jan 2022 13:52:57 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=E5=88=97=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableFieldController.java | 41 +++++++++++++++++-- .../service/chart/ChartViewService.java | 31 ++++++++------ .../service/dataset/DataSetFieldService.java | 2 +- .../impl/direct/DirectFieldService.java | 33 +++++++-------- frontend/src/api/dataset/dataset.js | 8 ++++ .../src/views/panel/filter/filterDialog.vue | 6 +-- 6 files changed, 86 insertions(+), 35 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index 50403b2892..4ef2b9b0eb 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -61,6 +61,19 @@ public class DataSetTableFieldController { return fields; } + @ApiOperation("查询表下属字段") + @PostMapping("listWithPermission/{tableId}") + public List listWithPermission(@PathVariable String tableId) { + DatasetTableField datasetTableField = DatasetTableField.builder().build(); + datasetTableField.setTableId(tableId); + List fields = dataSetTableFieldsService.list(datasetTableField); + List desensitizationList = new ArrayList<>(); + fields = permissionService.filterColumnPermissons(fields, desensitizationList, tableId, null); + fields = fields.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName())).collect(Collectors.toList()); + return fields; + } + + //管理权限,可以列出所有字段 @ApiOperation("查询表下属字段") @PostMapping("listForPermissionSeting/{tableId}") public List listForPermissionSeting(@PathVariable String tableId) { @@ -70,6 +83,7 @@ public class DataSetTableFieldController { return fields; } + //管理权限,可以列出所有字段 @ApiOperation("分组查询表下属字段") @PostMapping("listByDQ/{tableId}") public DatasetTableField4Type listByDQ(@PathVariable String tableId) { @@ -77,10 +91,8 @@ public class DataSetTableFieldController { datasetTableField.setTableId(tableId); datasetTableField.setGroupType("d"); List dimensionList = dataSetTableFieldsService.list(datasetTableField); - dimensionList = permissionService.filterColumnPermissons(dimensionList, new ArrayList<>(), tableId, null); datasetTableField.setGroupType("q"); List quotaList = dataSetTableFieldsService.list(datasetTableField); - quotaList = permissionService.filterColumnPermissons(quotaList, new ArrayList<>(), tableId, null); DatasetTableField4Type datasetTableField4Type = new DatasetTableField4Type(); datasetTableField4Type.setDimensionList(dimensionList); @@ -134,7 +146,30 @@ public class DataSetTableFieldController { public List multFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { List results = new ArrayList<>(); for (String fieldId : multFieldValuesRequest.getFieldIds()) { - List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId()); + List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), true); + if (CollectionUtil.isNotEmpty(fieldValues)) { + results.addAll(fieldValues); + } + + } + ArrayList list = results.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection( + () -> new TreeSet<>(Comparator.comparing(t -> { + if (ObjectUtils.isEmpty(t)) + return ""; + return t.toString(); + }))), + ArrayList::new)); + return list; + } + + @ApiOperation("多字段值枚举") + @PostMapping("multFieldValuesForPermissions") + public List multFieldValuesForPermissions(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { + List results = new ArrayList<>(); + for (String fieldId : multFieldValuesRequest.getFieldIds()) { + List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), false); if (CollectionUtil.isNotEmpty(fieldValues)) { results.addAll(fieldValues); } 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 1c835c47d3..1eca1ea7d4 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -305,14 +305,19 @@ public class ChartViewService { filterRequest.setFieldId(fId); DatasetTableField datasetTableField = dataSetTableFieldsService.get(fId); - filterRequest.setDatasetTableField(datasetTableField); - if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { - if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) { - if (filterRequest.getViewIds().contains(view.getId())) { + if(datasetTableField == null){ + continue; + } + if(!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())){ + filterRequest.setDatasetTableField(datasetTableField); + if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { + if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) { + if (filterRequest.getViewIds().contains(view.getId())) { + extFilterList.add(filterRequest); + } + } else { extFilterList.add(filterRequest); } - } else { - extFilterList.add(filterRequest); } } } @@ -324,14 +329,16 @@ public class ChartViewService { if (ObjectUtils.isNotEmpty(requestList.getLinkageFilters())) { for (ChartExtFilterRequest request : requestList.getLinkageFilters()) { DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId()); - request.setDatasetTableField(datasetTableField); - if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { - if (CollectionUtils.isNotEmpty(request.getViewIds())) { - if (request.getViewIds().contains(view.getId())) { + if(!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())){ + request.setDatasetTableField(datasetTableField); + if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { + if (CollectionUtils.isNotEmpty(request.getViewIds())) { + if (request.getViewIds().contains(view.getId())) { + extFilterList.add(request); + } + } else { extFilterList.add(request); } - } else { - extFilterList.add(request); } } } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java index 8f8a178dcf..1f59651366 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java @@ -5,5 +5,5 @@ import java.util.List; public interface DataSetFieldService { - List fieldValues(String fieldId, Long userId) throws Exception; + List fieldValues(String fieldId, Long userId, Boolean userPermissions) throws Exception; } diff --git a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java index dcc84db5af..ea36b7d970 100644 --- a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java @@ -42,7 +42,7 @@ public class DirectFieldService implements DataSetFieldService { private PermissionService permissionService; @Override - public List fieldValues(String fieldId, Long userId) throws Exception { + public List fieldValues(String fieldId, Long userId, Boolean userPermissions) throws Exception { DatasetTableField field = dataSetTableFieldsService.selectByPrimaryKey(fieldId); if (field == null || StringUtils.isEmpty(field.getTableId())) return null; @@ -52,23 +52,24 @@ public class DirectFieldService implements DataSetFieldService { DatasetTableField datasetTableField = DatasetTableField.builder().tableId(field.getTableId()).checked(Boolean.TRUE).build(); List fields = dataSetTableFieldsService.list(datasetTableField); - //列权限 - List desensitizationList = new ArrayList<>(); - fields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), userId); - - //禁用的 - if(!fields.stream().map(DatasetTableField::getId).collect(Collectors.toList()).contains(fieldId)){ - return new ArrayList<>(); + List customFilter = new ArrayList<>(); + if(userPermissions){ + //列权限 + List desensitizationList = new ArrayList<>(); + fields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), userId); + //禁用的 + if(!fields.stream().map(DatasetTableField::getId).collect(Collectors.toList()).contains(fieldId)){ + return new ArrayList<>(); + } + if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(field.getDataeaseName())) { + List results = new ArrayList<>(); + results.add(ColumnPermissionConstants.Desensitization_desc); + return results; + } + //行权限 + customFilter = permissionService.getCustomFilters(fields, datasetTable, userId); } - if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(field.getDataeaseName())) { - List results = new ArrayList<>(); - results.add(ColumnPermissionConstants.Desensitization_desc); - return results; - } - //行权限 - List customFilter = permissionService.getCustomFilters(fields, datasetTable, userId); - DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceProvider datasourceProvider = null; if (datasetTable.getMode() == 0) {// 直连 diff --git a/frontend/src/api/dataset/dataset.js b/frontend/src/api/dataset/dataset.js index f177d0683a..6167a87d2d 100644 --- a/frontend/src/api/dataset/dataset.js +++ b/frontend/src/api/dataset/dataset.js @@ -103,6 +103,14 @@ export function fieldList(id, showLoading = true) { }) } +export function fieldListWithPermission(id, showLoading = true) { + return request({ + url: '/dataset/field/listWithPermission/' + id, + loading: showLoading, + method: 'post' + }) +} + export function fieldListDQ(id, showLoading = true) { return request({ url: '/dataset/field/listByDQ/' + id, diff --git a/frontend/src/views/panel/filter/filterDialog.vue b/frontend/src/views/panel/filter/filterDialog.vue index 67c4c817ff..efbf3df595 100644 --- a/frontend/src/views/panel/filter/filterDialog.vue +++ b/frontend/src/views/panel/filter/filterDialog.vue @@ -184,7 +184,7 @@ import { } from 'vuex' import { groupTree, - fieldList, + fieldListWithPermission, post } from '@/api/dataset/dataset' import { @@ -489,7 +489,7 @@ export default { }, loadField(tableId) { - fieldList(tableId).then(res => { + fieldListWithPermission(tableId).then(res => { let datas = res.data if (this.widget && this.widget.filterFieldMethod) { datas = this.widget.filterFieldMethod(datas) @@ -498,7 +498,7 @@ export default { }) }, comLoadField(tableId) { - fieldList(tableId).then(res => { + fieldListWithPermission(tableId).then(res => { let datas = res.data if (this.widget && this.widget.filterFieldMethod) { datas = this.widget.filterFieldMethod(datas)