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 1997b680ff..72493215a7 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -170,7 +170,11 @@ public class ChartViewService { x.add(a.toString()); for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) { int j = i - xAxis.size(); - series.get(j).getData().add(new BigDecimal(StringUtils.isEmpty(d[i]) ? "0" : d[i])); + try { + series.get(j).getData().add(new BigDecimal(StringUtils.isEmpty(d[i]) ? "0" : d[i])); + } catch (Exception e) { + series.get(j).getData().add(new BigDecimal(0)); + } } } Map map = new HashMap<>(); @@ -316,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 bbacba1f4b..1767d5438f 100644 --- a/frontend/src/components/canvas/components/Editor/index.vue +++ b/frontend/src/components/canvas/components/Editor/index.vue @@ -319,7 +319,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/widget/DeWidget/DeButton.vue b/frontend/src/components/widget/DeWidget/DeButton.vue index 3139c3a308..b4ccf843a7 100644 --- a/frontend/src/components/widget/DeWidget/DeButton.vue +++ b/frontend/src/components/widget/DeWidget/DeButton.vue @@ -13,27 +13,24 @@ export default { props: { - options: { + element: { type: Object, default: null + }, + inDraw: { + type: Boolean, + default: true } }, data() { return { - + options: null, + operator: 'eq', + values: null } }, - mounted() { - this.$nextTick(() => { - // this.defaultOptions = Object.assign({}, this.options) - // const dom = this.$refs[this.options.refId] - // for (const key in this.options.attrs) { - // if (Object.hasOwnProperty.call(this.defaultOptions.attrs, key)) { - // const element = this.defaultOptions.attrs[key] - // dom.$props[key] = element - // } - // } - }) + created() { + this.options = this.element.options } } diff --git a/frontend/src/components/widget/DeWidget/DeDate.vue b/frontend/src/components/widget/DeWidget/DeDate.vue index a65add192b..6c35974ae3 100644 --- a/frontend/src/components/widget/DeWidget/DeDate.vue +++ b/frontend/src/components/widget/DeWidget/DeDate.vue @@ -14,10 +14,24 @@ export default { props: { - options: { + element: { type: Object, default: null + }, + inDraw: { + type: Boolean, + default: true } + }, + data() { + return { + options: null, + operator: 'eq', + values: null + } + }, + created() { + this.options = this.element.options } } diff --git a/frontend/src/components/widget/DeWidget/DeDrawingWidget.vue b/frontend/src/components/widget/DeWidget/DeDrawingWidget.vue deleted file mode 100644 index 0cebb0cd2d..0000000000 --- a/frontend/src/components/widget/DeWidget/DeDrawingWidget.vue +++ /dev/null @@ -1,39 +0,0 @@ - diff --git a/frontend/src/components/widget/DeWidget/DeInputSearch.vue b/frontend/src/components/widget/DeWidget/DeInputSearch.vue index 4626a4b688..227c854393 100644 --- a/frontend/src/components/widget/DeWidget/DeInputSearch.vue +++ b/frontend/src/components/widget/DeWidget/DeInputSearch.vue @@ -1,6 +1,6 @@