diff --git a/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java b/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java index 61016f3dab..7a8a4bd558 100644 --- a/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java +++ b/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java @@ -1,10 +1,12 @@ package io.dataease.controller.panel.api; +import io.dataease.base.domain.ChartView; import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.dto.panel.PanelViewDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,6 +22,11 @@ public interface ViewApi { List tree(BaseGridRequest request); + @ApiOperation("根据仪表板Id查询视图") + @PostMapping("/viewsWithIds") + List viewsWithIds(List viewIds); + + diff --git a/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java b/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java index acf7e6bb12..a1ac5b96ec 100644 --- a/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java +++ b/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java @@ -1,13 +1,16 @@ package io.dataease.controller.panel.server; +import io.dataease.base.domain.ChartView; import io.dataease.commons.utils.AuthUtils; import io.dataease.controller.panel.api.ViewApi; import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.base.ConditionEntity; import io.dataease.dto.panel.PanelViewDto; import io.dataease.dto.panel.po.PanelViewPo; +import io.dataease.service.chart.ChartViewService; import io.dataease.service.panel.PanelViewService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -20,6 +23,9 @@ public class ViewServer implements ViewApi { @Autowired private PanelViewService panelViewService; + @Autowired + private ChartViewService chartViewService; + /** * 为什么查两次? * 因为left join 会导致全表扫描 @@ -40,4 +46,10 @@ public class ViewServer implements ViewApi { List panelViewDtos = panelViewService.buildTree(groups, views); return panelViewDtos; } + + @Override + public List viewsWithIds(@RequestBody List viewIds) { + + return chartViewService.viewsByIds(viewIds); + } } 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 78fd1a72da..72493215a7 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -320,4 +320,10 @@ public class ChartViewService { } return map; } + + public List viewsByIds(List viewIds){ + ChartViewExample example = new ChartViewExample(); + example.createCriteria().andIdIn(viewIds); + return chartViewMapper.selectByExample(example); + } } diff --git a/frontend/src/api/panel/view.js b/frontend/src/api/panel/view.js index 35b71a64ac..07c3a2ed8e 100644 --- a/frontend/src/api/panel/view.js +++ b/frontend/src/api/panel/view.js @@ -8,3 +8,12 @@ export function tree(data) { data }) } + +export function viewsWithIds(data) { + return request({ + url: '/api/panelView/viewsWithIds', + method: 'post', + loading: true, + data + }) +} diff --git a/frontend/src/components/canvas/components/Editor/index.vue b/frontend/src/components/canvas/components/Editor/index.vue index 3c6c103ced..a0306c9e4f 100644 --- a/frontend/src/components/canvas/components/Editor/index.vue +++ b/frontend/src/components/canvas/components/Editor/index.vue @@ -314,7 +314,8 @@ export default { setConditionValue(obj) { const { component, value, operator } = obj const fieldId = component.options.attrs.fieldId - const condition = new Condition(component.id, fieldId, operator, value, null) + const viewIds = component.options.attrs.viewIds + const condition = new Condition(component.id, fieldId, operator, value, viewIds) this.addCondition(condition) }, addCondition(condition) { diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index 6c27e1c77e..0ac4d5b8e8 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -31,7 +31,7 @@ export default { methods: { getData(id) { if (id) { - post('/chart/view/getData/' + id, null).then(response => { + post('/chart/view/getData/' + id, {}).then(response => { // 将视图传入echart组件 this.chart = response.data }) diff --git a/frontend/src/components/widget/DeWidget/DeSelect.vue b/frontend/src/components/widget/DeWidget/DeSelect.vue index d08e699d3f..e889d8884b 100644 --- a/frontend/src/components/widget/DeWidget/DeSelect.vue +++ b/frontend/src/components/widget/DeWidget/DeSelect.vue @@ -1,6 +1,6 @@