diff --git a/backend/src/main/java/io/dataease/base/domain/ChartView.java b/backend/src/main/java/io/dataease/base/domain/ChartView.java new file mode 100644 index 0000000000..9835b73b31 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/ChartView.java @@ -0,0 +1,27 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class ChartView implements Serializable { + private String id; + + private String name; + + private String sceneId; + + private String tableId; + + private String type; + + private String title; + + private String createBy; + + private Long createTime; + + private Long updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/ChartViewExample.java b/backend/src/main/java/io/dataease/base/domain/ChartViewExample.java new file mode 100644 index 0000000000..bbc4c8b82b --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/ChartViewExample.java @@ -0,0 +1,810 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class ChartViewExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ChartViewExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("`name` is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("`name` is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("`name` =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("`name` <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("`name` >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("`name` >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("`name` <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("`name` <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("`name` like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("`name` not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("`name` in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("`name` not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("`name` between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("`name` not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andSceneIdIsNull() { + addCriterion("scene_id is null"); + return (Criteria) this; + } + + public Criteria andSceneIdIsNotNull() { + addCriterion("scene_id is not null"); + return (Criteria) this; + } + + public Criteria andSceneIdEqualTo(String value) { + addCriterion("scene_id =", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdNotEqualTo(String value) { + addCriterion("scene_id <>", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdGreaterThan(String value) { + addCriterion("scene_id >", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdGreaterThanOrEqualTo(String value) { + addCriterion("scene_id >=", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdLessThan(String value) { + addCriterion("scene_id <", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdLessThanOrEqualTo(String value) { + addCriterion("scene_id <=", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdLike(String value) { + addCriterion("scene_id like", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdNotLike(String value) { + addCriterion("scene_id not like", value, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdIn(List values) { + addCriterion("scene_id in", values, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdNotIn(List values) { + addCriterion("scene_id not in", values, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdBetween(String value1, String value2) { + addCriterion("scene_id between", value1, value2, "sceneId"); + return (Criteria) this; + } + + public Criteria andSceneIdNotBetween(String value1, String value2) { + addCriterion("scene_id not between", value1, value2, "sceneId"); + return (Criteria) this; + } + + public Criteria andTableIdIsNull() { + addCriterion("table_id is null"); + return (Criteria) this; + } + + public Criteria andTableIdIsNotNull() { + addCriterion("table_id is not null"); + return (Criteria) this; + } + + public Criteria andTableIdEqualTo(String value) { + addCriterion("table_id =", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotEqualTo(String value) { + addCriterion("table_id <>", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdGreaterThan(String value) { + addCriterion("table_id >", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdGreaterThanOrEqualTo(String value) { + addCriterion("table_id >=", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLessThan(String value) { + addCriterion("table_id <", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLessThanOrEqualTo(String value) { + addCriterion("table_id <=", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLike(String value) { + addCriterion("table_id like", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotLike(String value) { + addCriterion("table_id not like", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdIn(List values) { + addCriterion("table_id in", values, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotIn(List values) { + addCriterion("table_id not in", values, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdBetween(String value1, String value2) { + addCriterion("table_id between", value1, value2, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotBetween(String value1, String value2) { + addCriterion("table_id not between", value1, value2, "tableId"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("`type` is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("`type` is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("`type` =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("`type` <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("`type` >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("`type` >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("`type` <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("`type` <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("`type` like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("`type` not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("`type` in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("`type` not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("`type` between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("`type` not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTitleIsNull() { + addCriterion("title is null"); + return (Criteria) this; + } + + public Criteria andTitleIsNotNull() { + addCriterion("title is not null"); + return (Criteria) this; + } + + public Criteria andTitleEqualTo(String value) { + addCriterion("title =", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotEqualTo(String value) { + addCriterion("title <>", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleGreaterThan(String value) { + addCriterion("title >", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleGreaterThanOrEqualTo(String value) { + addCriterion("title >=", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLessThan(String value) { + addCriterion("title <", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLessThanOrEqualTo(String value) { + addCriterion("title <=", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLike(String value) { + addCriterion("title like", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotLike(String value) { + addCriterion("title not like", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleIn(List values) { + addCriterion("title in", values, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotIn(List values) { + addCriterion("title not in", values, "title"); + return (Criteria) this; + } + + public Criteria andTitleBetween(String value1, String value2) { + addCriterion("title between", value1, value2, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotBetween(String value1, String value2) { + addCriterion("title not between", value1, value2, "title"); + return (Criteria) this; + } + + public Criteria andCreateByIsNull() { + addCriterion("create_by is null"); + return (Criteria) this; + } + + public Criteria andCreateByIsNotNull() { + addCriterion("create_by is not null"); + return (Criteria) this; + } + + public Criteria andCreateByEqualTo(String value) { + addCriterion("create_by =", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByNotEqualTo(String value) { + addCriterion("create_by <>", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByGreaterThan(String value) { + addCriterion("create_by >", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByGreaterThanOrEqualTo(String value) { + addCriterion("create_by >=", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByLessThan(String value) { + addCriterion("create_by <", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByLessThanOrEqualTo(String value) { + addCriterion("create_by <=", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByLike(String value) { + addCriterion("create_by like", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByNotLike(String value) { + addCriterion("create_by not like", value, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByIn(List values) { + addCriterion("create_by in", values, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByNotIn(List values) { + addCriterion("create_by not in", values, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByBetween(String value1, String value2) { + addCriterion("create_by between", value1, value2, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateByNotBetween(String value1, String value2) { + addCriterion("create_by not between", value1, value2, "createBy"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Long value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Long value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Long value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Long value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Long value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Long value1, Long value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Long value1, Long value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Long value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Long value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Long value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Long value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Long value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Long value1, Long value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Long value1, Long value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/ChartViewWithBLOBs.java b/backend/src/main/java/io/dataease/base/domain/ChartViewWithBLOBs.java new file mode 100644 index 0000000000..655f2fb30b --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/ChartViewWithBLOBs.java @@ -0,0 +1,23 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ChartViewWithBLOBs extends ChartView implements Serializable { + private String xAxis; + + private String yAxis; + + private String customAttr; + + private String customStyle; + + private String customFilter; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.java b/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.java new file mode 100644 index 0000000000..5c36634bc0 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.java @@ -0,0 +1,37 @@ +package io.dataease.base.mapper; + +import io.dataease.base.domain.ChartView; +import io.dataease.base.domain.ChartViewExample; +import io.dataease.base.domain.ChartViewWithBLOBs; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ChartViewMapper { + long countByExample(ChartViewExample example); + + int deleteByExample(ChartViewExample example); + + int deleteByPrimaryKey(String id); + + int insert(ChartViewWithBLOBs record); + + int insertSelective(ChartViewWithBLOBs record); + + List selectByExampleWithBLOBs(ChartViewExample example); + + List selectByExample(ChartViewExample example); + + ChartViewWithBLOBs selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") ChartViewWithBLOBs record, @Param("example") ChartViewExample example); + + int updateByExampleWithBLOBs(@Param("record") ChartViewWithBLOBs record, @Param("example") ChartViewExample example); + + int updateByExample(@Param("record") ChartView record, @Param("example") ChartViewExample example); + + int updateByPrimaryKeySelective(ChartViewWithBLOBs record); + + int updateByPrimaryKeyWithBLOBs(ChartViewWithBLOBs record); + + int updateByPrimaryKey(ChartView record); +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.xml new file mode 100644 index 0000000000..eec202f585 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ChartViewMapper.xml @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, `name`, scene_id, table_id, `type`, title, create_by, create_time, update_time + + + x_axis, y_axis, custom_attr, custom_style, custom_filter + + + + + + delete from chart_view + where id = #{id,jdbcType=VARCHAR} + + + delete from chart_view + + + + + + insert into chart_view (id, `name`, scene_id, + table_id, `type`, title, + create_by, create_time, update_time, + x_axis, y_axis, custom_attr, + custom_style, custom_filter) + values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, + #{tableId,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, + #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{updateTime,jdbcType=BIGINT}, + #{xAxis,jdbcType=LONGVARCHAR}, #{yAxis,jdbcType=LONGVARCHAR}, #{customAttr,jdbcType=LONGVARCHAR}, + #{customStyle,jdbcType=LONGVARCHAR}, #{customFilter,jdbcType=LONGVARCHAR}) + + + insert into chart_view + + + id, + + + `name`, + + + scene_id, + + + table_id, + + + `type`, + + + title, + + + create_by, + + + create_time, + + + update_time, + + + x_axis, + + + y_axis, + + + custom_attr, + + + custom_style, + + + custom_filter, + + + + + #{id,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{sceneId,jdbcType=VARCHAR}, + + + #{tableId,jdbcType=VARCHAR}, + + + #{type,jdbcType=VARCHAR}, + + + #{title,jdbcType=VARCHAR}, + + + #{createBy,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=BIGINT}, + + + #{updateTime,jdbcType=BIGINT}, + + + #{xAxis,jdbcType=LONGVARCHAR}, + + + #{yAxis,jdbcType=LONGVARCHAR}, + + + #{customAttr,jdbcType=LONGVARCHAR}, + + + #{customStyle,jdbcType=LONGVARCHAR}, + + + #{customFilter,jdbcType=LONGVARCHAR}, + + + + + + update chart_view + + + id = #{record.id,jdbcType=VARCHAR}, + + + `name` = #{record.name,jdbcType=VARCHAR}, + + + scene_id = #{record.sceneId,jdbcType=VARCHAR}, + + + table_id = #{record.tableId,jdbcType=VARCHAR}, + + + `type` = #{record.type,jdbcType=VARCHAR}, + + + title = #{record.title,jdbcType=VARCHAR}, + + + create_by = #{record.createBy,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=BIGINT}, + + + update_time = #{record.updateTime,jdbcType=BIGINT}, + + + x_axis = #{record.xAxis,jdbcType=LONGVARCHAR}, + + + y_axis = #{record.yAxis,jdbcType=LONGVARCHAR}, + + + custom_attr = #{record.customAttr,jdbcType=LONGVARCHAR}, + + + custom_style = #{record.customStyle,jdbcType=LONGVARCHAR}, + + + custom_filter = #{record.customFilter,jdbcType=LONGVARCHAR}, + + + + + + + + update chart_view + set id = #{record.id,jdbcType=VARCHAR}, + `name` = #{record.name,jdbcType=VARCHAR}, + scene_id = #{record.sceneId,jdbcType=VARCHAR}, + table_id = #{record.tableId,jdbcType=VARCHAR}, + `type` = #{record.type,jdbcType=VARCHAR}, + title = #{record.title,jdbcType=VARCHAR}, + create_by = #{record.createBy,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=BIGINT}, + update_time = #{record.updateTime,jdbcType=BIGINT}, + x_axis = #{record.xAxis,jdbcType=LONGVARCHAR}, + y_axis = #{record.yAxis,jdbcType=LONGVARCHAR}, + custom_attr = #{record.customAttr,jdbcType=LONGVARCHAR}, + custom_style = #{record.customStyle,jdbcType=LONGVARCHAR}, + custom_filter = #{record.customFilter,jdbcType=LONGVARCHAR} + + + + + + update chart_view + set id = #{record.id,jdbcType=VARCHAR}, + `name` = #{record.name,jdbcType=VARCHAR}, + scene_id = #{record.sceneId,jdbcType=VARCHAR}, + table_id = #{record.tableId,jdbcType=VARCHAR}, + `type` = #{record.type,jdbcType=VARCHAR}, + title = #{record.title,jdbcType=VARCHAR}, + create_by = #{record.createBy,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=BIGINT}, + update_time = #{record.updateTime,jdbcType=BIGINT} + + + + + + update chart_view + + + `name` = #{name,jdbcType=VARCHAR}, + + + scene_id = #{sceneId,jdbcType=VARCHAR}, + + + table_id = #{tableId,jdbcType=VARCHAR}, + + + `type` = #{type,jdbcType=VARCHAR}, + + + title = #{title,jdbcType=VARCHAR}, + + + create_by = #{createBy,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=BIGINT}, + + + update_time = #{updateTime,jdbcType=BIGINT}, + + + x_axis = #{xAxis,jdbcType=LONGVARCHAR}, + + + y_axis = #{yAxis,jdbcType=LONGVARCHAR}, + + + custom_attr = #{customAttr,jdbcType=LONGVARCHAR}, + + + custom_style = #{customStyle,jdbcType=LONGVARCHAR}, + + + custom_filter = #{customFilter,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update chart_view + set `name` = #{name,jdbcType=VARCHAR}, + scene_id = #{sceneId,jdbcType=VARCHAR}, + table_id = #{tableId,jdbcType=VARCHAR}, + `type` = #{type,jdbcType=VARCHAR}, + title = #{title,jdbcType=VARCHAR}, + create_by = #{createBy,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=BIGINT}, + update_time = #{updateTime,jdbcType=BIGINT}, + x_axis = #{xAxis,jdbcType=LONGVARCHAR}, + y_axis = #{yAxis,jdbcType=LONGVARCHAR}, + custom_attr = #{customAttr,jdbcType=LONGVARCHAR}, + custom_style = #{customStyle,jdbcType=LONGVARCHAR}, + custom_filter = #{customFilter,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=VARCHAR} + + + update chart_view + set `name` = #{name,jdbcType=VARCHAR}, + scene_id = #{sceneId,jdbcType=VARCHAR}, + table_id = #{tableId,jdbcType=VARCHAR}, + `type` = #{type,jdbcType=VARCHAR}, + title = #{title,jdbcType=VARCHAR}, + create_by = #{createBy,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=BIGINT}, + update_time = #{updateTime,jdbcType=BIGINT} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java new file mode 100644 index 0000000000..9c2cfcd498 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -0,0 +1,47 @@ +package io.dataease.controller.chart; + +import io.dataease.base.domain.ChartViewWithBLOBs; +import io.dataease.controller.request.chart.ChartViewRequest; +import io.dataease.dto.chart.ChartViewDTO; +import io.dataease.service.chart.ChartViewService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * @Author gin + * @Date 2021/3/1 1:17 下午 + */ +@RestController +@RequestMapping("/chart/view") +public class ChartViewController { + @Resource + private ChartViewService chartViewService; + + @PostMapping("/save") + public ChartViewWithBLOBs save(@RequestBody ChartViewWithBLOBs chartViewWithBLOBs) { + return chartViewService.save(chartViewWithBLOBs); + } + + @PostMapping("/list") + public List list(@RequestBody ChartViewRequest chartViewRequest) { + return chartViewService.list(chartViewRequest); + } + + @PostMapping("/get/{id}") + public ChartViewWithBLOBs get(@PathVariable String id) { + return chartViewService.get(id); + } + + @PostMapping("/delete/{id}") + public void delete(@PathVariable String id) { + chartViewService.delete(id); + } + + @PostMapping("/getData/{id}") + public ChartViewDTO getData(@PathVariable String id) throws Exception { + return chartViewService.getData(id); + } +} diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java index 1543f54a0b..5660a44244 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -1,6 +1,7 @@ package io.dataease.controller.dataset; import io.dataease.base.domain.DatasetTable; +import io.dataease.base.domain.DatasetTableField; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.datasource.dto.TableFiled; import io.dataease.service.dataset.DataSetTableService; @@ -50,6 +51,11 @@ public class DataSetTableController { return dataSetTableService.getFields(dataSetTableRequest); } + @PostMapping("getFieldsFromDE") + public Map> getFieldsFromDE(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception { + return dataSetTableService.getFieldsFromDE(dataSetTableRequest); + } + @PostMapping("getData") public List getData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception { return dataSetTableService.getData(dataSetTableRequest); diff --git a/backend/src/main/java/io/dataease/controller/request/chart/ChartViewRequest.java b/backend/src/main/java/io/dataease/controller/request/chart/ChartViewRequest.java new file mode 100644 index 0000000000..e0db452e92 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/request/chart/ChartViewRequest.java @@ -0,0 +1,15 @@ +package io.dataease.controller.request.chart; + +import io.dataease.base.domain.ChartViewWithBLOBs; +import lombok.Getter; +import lombok.Setter; + +/** + * @Author gin + * @Date 2021/3/1 1:32 下午 + */ +@Setter +@Getter +public class ChartViewRequest extends ChartViewWithBLOBs { + private String sort; +} diff --git a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java index 852384b7a6..5924dd3d41 100644 --- a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java +++ b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java @@ -74,4 +74,8 @@ public class DatasourceService { return datasourceProvider.getTables(datasourceRequest); } + public Datasource get(String id) { + return datasourceMapper.selectByPrimaryKey(id); + } + } diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java new file mode 100644 index 0000000000..e150636e16 --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java @@ -0,0 +1,17 @@ +package io.dataease.dto.chart; + +import io.dataease.base.domain.ChartViewWithBLOBs; +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +/** + * @Author gin + * @Date 2021/3/1 4:19 下午 + */ +@Setter +@Getter +public class ChartViewDTO extends ChartViewWithBLOBs { + private Map data; +} diff --git a/backend/src/main/java/io/dataease/dto/chart/Series.java b/backend/src/main/java/io/dataease/dto/chart/Series.java new file mode 100644 index 0000000000..bfbb353f71 --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/chart/Series.java @@ -0,0 +1,19 @@ +package io.dataease.dto.chart; + +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @Author gin + * @Date 2021/3/1 3:51 下午 + */ +@Getter +@Setter +public class Series { + private String name; + private String type; + private List data; +} diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java new file mode 100644 index 0000000000..803c3f094d --- /dev/null +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -0,0 +1,159 @@ +package io.dataease.service.chart; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import io.dataease.base.domain.*; +import io.dataease.base.mapper.ChartViewMapper; +import io.dataease.commons.utils.BeanUtils; +import io.dataease.controller.request.chart.ChartViewRequest; +import io.dataease.datasource.constants.DatasourceTypes; +import io.dataease.datasource.provider.DatasourceProvider; +import io.dataease.datasource.provider.ProviderFactory; +import io.dataease.datasource.request.DatasourceRequest; +import io.dataease.datasource.service.DatasourceService; +import io.dataease.dto.chart.ChartViewDTO; +import io.dataease.dto.chart.Series; +import io.dataease.dto.dataset.DataTableInfoDTO; +import io.dataease.service.dataset.DataSetTableFieldsService; +import io.dataease.service.dataset.DataSetTableService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.MessageFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author gin + * @Date 2021/3/1 12:34 下午 + */ +@Service +public class ChartViewService { + @Resource + private ChartViewMapper chartViewMapper; + @Resource + private DataSetTableService dataSetTableService; + @Resource + private DatasourceService datasourceService; + @Resource + private DataSetTableFieldsService dataSetTableFieldsService; + + public ChartViewWithBLOBs save(ChartViewWithBLOBs chartView) { + long timestamp = System.currentTimeMillis(); + chartView.setUpdateTime(timestamp); + int i = chartViewMapper.updateByPrimaryKeyWithBLOBs(chartView); + if (i == 0) { + chartView.setId(UUID.randomUUID().toString()); + chartView.setCreateTime(timestamp); + chartView.setUpdateTime(timestamp); + chartViewMapper.insert(chartView); + } + return chartView; + } + + public List list(ChartViewRequest chartViewRequest) { + ChartViewExample chartViewExample = new ChartViewExample(); + ChartViewExample.Criteria criteria = chartViewExample.createCriteria(); + if (StringUtils.isNotEmpty(chartViewRequest.getSceneId())) { + criteria.andSceneIdEqualTo(chartViewRequest.getSceneId()); + } + if (StringUtils.isNotEmpty(chartViewRequest.getSort())) { + chartViewExample.setOrderByClause(chartViewRequest.getSort()); + } + return chartViewMapper.selectByExampleWithBLOBs(chartViewExample); + } + + public ChartViewWithBLOBs get(String id) { + return chartViewMapper.selectByPrimaryKey(id); + } + + public void delete(String id) { + chartViewMapper.deleteByPrimaryKey(id); + } + + public ChartViewDTO getData(String id) throws Exception { + ChartViewWithBLOBs view = chartViewMapper.selectByPrimaryKey(id); + List xAxis = new Gson().fromJson(view.getXAxis(), new TypeToken>() { + }.getType()); + List yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken>() { + }.getType()); + + List x = new ArrayList<>(); + List series = new ArrayList<>(); + if (CollectionUtils.isEmpty(xAxis) || CollectionUtils.isEmpty(yAxis)) { + ChartViewDTO dto = new ChartViewDTO(); + BeanUtils.copyBean(dto, view); + return dto; + } + List xIds = xAxis.stream().map(DatasetTableField::getId).collect(Collectors.toList()); + List yIds = yAxis.stream().map(DatasetTableField::getId).collect(Collectors.toList()); + List xList = dataSetTableFieldsService.getListByIds(xIds); + List yList = dataSetTableFieldsService.getListByIds(yIds); + + // 获取数据源 + DatasetTable table = dataSetTableService.get(view.getTableId()); + Datasource ds = datasourceService.get(table.getDataSourceId()); + + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); + DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(table.getInfo(), DataTableInfoDTO.class); + datasourceRequest.setTable(dataTableInfoDTO.getTable()); + datasourceRequest.setQuery(getSQL(ds.getType(), dataTableInfoDTO.getTable(), xList, yList)); + List data = datasourceProvider.getData(datasourceRequest); + + // todo 处理结果,目前做一个单系列图表,后期图表组件再扩展 + for (DatasetTableField y : yList) { + Series series1 = new Series(); + series1.setName(y.getName()); + series1.setType(view.getType()); + series1.setData(new ArrayList<>()); + series.add(series1); + } + for (String[] d : data) { + StringBuilder a = new StringBuilder(); + BigDecimal b = new BigDecimal("0"); + for (int i = 0; i < xList.size(); i++) { + if (i == xList.size() - 1) { + a.append(d[i]); + } else { + a.append(d[i]).append("\n"); + } + } + x.add(a.toString()); + for (int i = xList.size(); i < xList.size() + yList.size(); i++) { + int j = i - xList.size(); + series.get(j).getData().add(new BigDecimal(d[i])); + } + } + Map map = new HashMap<>(); + map.put("x", x); + map.put("series", series); + + ChartViewDTO dto = new ChartViewDTO(); + BeanUtils.copyBean(dto, view); + dto.setData(map); + return dto; + } + + public String getSQL(String type, String table, List xAxis, List yAxis) { + DatasourceTypes datasourceType = DatasourceTypes.valueOf(type); + switch (datasourceType) { + case mysql: + return transMysqlSQL(table, xAxis, yAxis); + case sqlServer: + default: + return ""; + } + } + + public String transMysqlSQL(String table, List xAxis, List yAxis) { + // TODO 此处sum后期由用户前端传入 + String[] field = yAxis.stream().map(y -> "sum(" + y.getOriginName() + ")").toArray(String[]::new); + String[] group = xAxis.stream().map(DatasetTableField::getOriginName).toArray(String[]::new); + return MessageFormat.format("SELECT {0},{1} FROM {2} GROUP BY {3}", StringUtils.join(group, ","), StringUtils.join(field, ","), table, StringUtils.join(group, ",")); + } +} diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java index 7b469d1319..e53e38faef 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java @@ -54,4 +54,10 @@ public class DataSetTableFieldsService { datasetTableFieldExample.createCriteria().andTableIdEqualTo(tableId); datasetTableFieldMapper.deleteByExample(datasetTableFieldExample); } + + public List getListByIds(List ids) { + DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); + datasetTableFieldExample.createCriteria().andIdIn(ids); + return datasetTableFieldMapper.selectByExample(datasetTableFieldExample); + } } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index aa2e9879d0..6bd40b6720 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -91,6 +91,29 @@ public class DataSetTableService { return datasourceProvider.getTableFileds(datasourceRequest); } + public Map> getFieldsFromDE(DataSetTableRequest dataSetTableRequest) throws Exception { + DatasetTableField datasetTableField = new DatasetTableField(); + datasetTableField.setTableId(dataSetTableRequest.getId()); + datasetTableField.setChecked(Boolean.TRUE); + List fields = dataSetTableFieldsService.list(datasetTableField); + + List dimension = new ArrayList<>(); + List quota = new ArrayList<>(); + + fields.forEach(field -> { + if (field.getDeType() == 2) { + quota.add(field); + } else { + dimension.add(field); + } + }); + Map> map = new HashMap<>(); + map.put("dimension", dimension); + map.put("quota", quota); + + return map; + } + public List getData(DataSetTableRequest dataSetTableRequest) throws Exception { Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); diff --git a/backend/src/main/resources/db/migration/V10__chart.sql b/backend/src/main/resources/db/migration/V10__chart.sql index 3d4e563eb4..a15352a795 100644 --- a/backend/src/main/resources/db/migration/V10__chart.sql +++ b/backend/src/main/resources/db/migration/V10__chart.sql @@ -1,12 +1,35 @@ -- chart start -CREATE TABLE IF NOT EXISTS `chart_group` ( - `id` varchar(50) NOT NULL COMMENT 'ID', - `name` varchar(64) NOT NULL COMMENT '名称', - `pid` varchar(50) COMMENT '父级ID', - `level` int(10) COMMENT '当前分组处于第几级', - `type` varchar(50) COMMENT 'group or scene', - `create_by` varchar(50) COMMENT '创建人ID', - `create_time` bigint(13) COMMENT '创建时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE IF NOT EXISTS `chart_group` +( + `id` varchar(50) NOT NULL COMMENT 'ID', + `name` varchar(64) NOT NULL COMMENT '名称', + `pid` varchar(50) COMMENT '父级ID', + `level` int(10) COMMENT '当前分组处于第几级', + `type` varchar(50) COMMENT 'group or scene', + `create_by` varchar(50) COMMENT '创建人ID', + `create_time` bigint(13) COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `chart_view` +( + `id` varchar(50) NOT NULL COMMENT 'ID', + `name` varchar(64) COMMENT '名称', + `scene_id` varchar(50) NOT NULL COMMENT '场景ID', + `table_id` varchar(50) NOT NULL COMMENT '数据集表ID', + `type` varchar(50) COMMENT '图表类型', + `title` varchar(50) COMMENT 'EChart标题', + `x_axis` longtext COMMENT '横轴field', + `y_axis` longtext COMMENT '纵轴field', + `custom_attr` longtext COMMENT '图形属性', + `custom_style` longtext COMMENT '组件样式', + `custom_filter` longtext COMMENT '结果过滤', + `create_by` varchar(50) COMMENT '创建人ID', + `create_time` bigint(13) COMMENT '创建时间', + `update_time` bigint(13) COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `IDX_TABLE_ID` (`table_id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; -- chart end diff --git a/frontend/src/business/components/chart/chart/chart.js b/frontend/src/business/components/chart/chart/chart.js new file mode 100644 index 0000000000..aa166a1dc2 --- /dev/null +++ b/frontend/src/business/components/chart/chart/chart.js @@ -0,0 +1,20 @@ +export const BASE_BAR = { + title: { + text: '' + }, + tooltip: {}, + legend: { + data: [] + }, + xAxis: { + data: [] + }, + yAxis: { + type: 'value' + }, + series: [] +}; + +export default { + BASE_BAR, +} diff --git a/frontend/src/business/components/chart/group/Group.vue b/frontend/src/business/components/chart/group/Group.vue index 2e9d5f542a..621228c274 100644 --- a/frontend/src/business/components/chart/group/Group.vue +++ b/frontend/src/business/components/chart/group/Group.vue @@ -139,7 +139,7 @@ - {{sceneData}} + {{sceneData}} - + - + @@ -247,7 +247,7 @@ export default { computed: { sceneData: function () { this.chartTree(); - return this.$store.state.chart.sceneData; + return this.$store.state.chart.chartSceneData; } }, mounted() { @@ -340,10 +340,10 @@ export default { }); }, - saveTable(table) { + saveTable(view) { this.$refs['tableForm'].validate((valid) => { if (valid) { - this.$post("/chart/table/update", table, response => { + this.$post("/chart/view/save", view, response => { this.closeTable(); this.$message({ message: this.$t('commons.save_success'), @@ -389,7 +389,7 @@ export default { cancelButtonText: this.$t('chart.cancel'), type: 'warning' }).then(() => { - this.$post("/chart/table/delete/" + data.id, null, response => { + this.$post("/chart/view/delete/" + data.id, null, response => { this.$message({ type: 'success', message: this.$t('chart.delete_success'), @@ -431,8 +431,8 @@ export default { chartTree() { this.chartData = []; if (this.currGroup) { - this.$post('/chart/table/list', { - sort: 'type asc,create_time desc,name asc', + this.$post('/chart/view/list', { + sort: 'create_time desc,name asc', sceneId: this.currGroup.id }, response => { this.chartData = response.data; @@ -444,6 +444,7 @@ export default { if (data.type === 'scene') { this.sceneMode = true; this.currGroup = data; + this.$store.commit("setSceneId", this.currGroup.id); } if (node.expanded) { this.expandedArray.push(data.id); @@ -476,13 +477,10 @@ export default { }, sceneClick(data, node) { - // this.$store.commit('setChart', data.id); - // this.$router.push({ - // name: 'ChartGroup', - // params: { - // table: data - // } - // }); + this.$store.commit('setViewId', null); + this.$store.commit('setViewId', data.id); + this.$store.commit('setTableId', data.tableId); + this.$router.push("/chart/chart-edit"); }, selectTable() { @@ -491,10 +489,18 @@ export default { createChart() { console.log(this.table); - this.selectTableFlag = false; - this.$store.commit("setTableId", null); - this.$store.commit("setTableId", this.table.id); - this.$router.push("/chart/chart-edit"); + let view = {}; + view.name = this.table.name; + view.sceneId = this.currGroup.id; + view.tableId = this.table.id; + this.$post('/chart/view/save', view, response => { + this.selectTableFlag = false; + this.$store.commit("setTableId", null); + this.$store.commit("setTableId", this.table.id); + this.$router.push("/chart/chart-edit"); + this.$store.commit("setViewId", response.data.id); + this.chartTree(); + }) }, getTable(table) { diff --git a/frontend/src/business/components/chart/view/ChartEdit.vue b/frontend/src/business/components/chart/view/ChartEdit.vue index 396389c6e8..8ec70441eb 100644 --- a/frontend/src/business/components/chart/view/ChartEdit.vue +++ b/frontend/src/business/components/chart/view/ChartEdit.vue @@ -2,33 +2,41 @@ {{tableId}} - - {{tableId}} - + {{sceneId}} + {{vId}} + + {{view.name}} + - 取消 + {{$t('chart.cancel')}} - - 确认 + + {{$t('chart.confirm')}} - -
- 纬度 - + +
+ {{$t('chart.dimension')}} + -
{{item.name}}
+
{{item.name}}
-
- 指标 - +
+ {{$t('chart.quota')}} + -
{{item.name}}
+
{{item.name}}
@@ -36,56 +44,80 @@ -
+
- 标题 - 显示 + {{$t('chart.title')}} + {{$t('chart.show')}}
-
- 图表类型 +
+ {{$t('chart.chart_type')}}
- 折线图 - 柱状图 + + 折线图 + 柱状图
-
+
- 图形属性 - 组件样式 + TODO + TODO
-
- 结果过滤器 - +
+ {{$t('chart.result_filter')}} +
TODO
- - - - - - - - - -
-
+ + + + {{$t('chart.x_axis')}} + + + + {{item.name}} + + + + + + {{$t('chart.y_axis')}} + + + + {{item.name}} + + + + + + +
+
@@ -97,19 +129,23 @@