feat(视图): 视图编辑保存,横纵维度指标,EChart展示
This commit is contained in:
parent
8fca61aeb0
commit
b6117d658a
27
backend/src/main/java/io/dataease/base/domain/ChartView.java
Normal file
27
backend/src/main/java/io/dataease/base/domain/ChartView.java
Normal file
@ -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;
|
||||||
|
}
|
||||||
@ -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<Criteria> oredCriteria;
|
||||||
|
|
||||||
|
public ChartViewExample() {
|
||||||
|
oredCriteria = new ArrayList<Criteria>();
|
||||||
|
}
|
||||||
|
|
||||||
|
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<Criteria> 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<Criterion> criteria;
|
||||||
|
|
||||||
|
protected GeneratedCriteria() {
|
||||||
|
super();
|
||||||
|
criteria = new ArrayList<Criterion>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
return criteria.size() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Criterion> getAllCriteria() {
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Criterion> 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<String> values) {
|
||||||
|
addCriterion("id in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("`name` in", values, "name");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andNameNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("scene_id in", values, "sceneId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andSceneIdNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("table_id in", values, "tableId");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTableIdNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("`type` in", values, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("title in", values, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleNotIn(List<String> 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<String> values) {
|
||||||
|
addCriterion("create_by in", values, "createBy");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateByNotIn(List<String> 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<Long> values) {
|
||||||
|
addCriterion("create_time in", values, "createTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andCreateTimeNotIn(List<Long> 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<Long> values) {
|
||||||
|
addCriterion("update_time in", values, "updateTime");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUpdateTimeNotIn(List<Long> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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<ChartViewWithBLOBs> selectByExampleWithBLOBs(ChartViewExample example);
|
||||||
|
|
||||||
|
List<ChartView> 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);
|
||||||
|
}
|
||||||
@ -0,0 +1,402 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="io.dataease.base.mapper.ChartViewMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="io.dataease.base.domain.ChartView">
|
||||||
|
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||||
|
<result column="name" jdbcType="VARCHAR" property="name" />
|
||||||
|
<result column="scene_id" jdbcType="VARCHAR" property="sceneId" />
|
||||||
|
<result column="table_id" jdbcType="VARCHAR" property="tableId" />
|
||||||
|
<result column="type" jdbcType="VARCHAR" property="type" />
|
||||||
|
<result column="title" jdbcType="VARCHAR" property="title" />
|
||||||
|
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||||
|
<result column="create_time" jdbcType="BIGINT" property="createTime" />
|
||||||
|
<result column="update_time" jdbcType="BIGINT" property="updateTime" />
|
||||||
|
</resultMap>
|
||||||
|
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="io.dataease.base.domain.ChartViewWithBLOBs">
|
||||||
|
<result column="x_axis" jdbcType="LONGVARCHAR" property="xAxis" />
|
||||||
|
<result column="y_axis" jdbcType="LONGVARCHAR" property="yAxis" />
|
||||||
|
<result column="custom_attr" jdbcType="LONGVARCHAR" property="customAttr" />
|
||||||
|
<result column="custom_style" jdbcType="LONGVARCHAR" property="customStyle" />
|
||||||
|
<result column="custom_filter" jdbcType="LONGVARCHAR" property="customFilter" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Example_Where_Clause">
|
||||||
|
<where>
|
||||||
|
<foreach collection="oredCriteria" item="criteria" separator="or">
|
||||||
|
<if test="criteria.valid">
|
||||||
|
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||||
|
<foreach collection="criteria.criteria" item="criterion">
|
||||||
|
<choose>
|
||||||
|
<when test="criterion.noValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.singleValue">
|
||||||
|
and ${criterion.condition} #{criterion.value}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.betweenValue">
|
||||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.listValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||||
|
#{listItem}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</foreach>
|
||||||
|
</trim>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</where>
|
||||||
|
</sql>
|
||||||
|
<sql id="Update_By_Example_Where_Clause">
|
||||||
|
<where>
|
||||||
|
<foreach collection="example.oredCriteria" item="criteria" separator="or">
|
||||||
|
<if test="criteria.valid">
|
||||||
|
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||||
|
<foreach collection="criteria.criteria" item="criterion">
|
||||||
|
<choose>
|
||||||
|
<when test="criterion.noValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.singleValue">
|
||||||
|
and ${criterion.condition} #{criterion.value}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.betweenValue">
|
||||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.listValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||||
|
#{listItem}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</foreach>
|
||||||
|
</trim>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</where>
|
||||||
|
</sql>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id, `name`, scene_id, table_id, `type`, title, create_by, create_time, update_time
|
||||||
|
</sql>
|
||||||
|
<sql id="Blob_Column_List">
|
||||||
|
x_axis, y_axis, custom_attr, custom_style, custom_filter
|
||||||
|
</sql>
|
||||||
|
<select id="selectByExampleWithBLOBs" parameterType="io.dataease.base.domain.ChartViewExample" resultMap="ResultMapWithBLOBs">
|
||||||
|
select
|
||||||
|
<if test="distinct">
|
||||||
|
distinct
|
||||||
|
</if>
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
,
|
||||||
|
<include refid="Blob_Column_List" />
|
||||||
|
from chart_view
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
<if test="orderByClause != null">
|
||||||
|
order by ${orderByClause}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
<select id="selectByExample" parameterType="io.dataease.base.domain.ChartViewExample" resultMap="BaseResultMap">
|
||||||
|
select
|
||||||
|
<if test="distinct">
|
||||||
|
distinct
|
||||||
|
</if>
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
from chart_view
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
<if test="orderByClause != null">
|
||||||
|
order by ${orderByClause}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="ResultMapWithBLOBs">
|
||||||
|
select
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
,
|
||||||
|
<include refid="Blob_Column_List" />
|
||||||
|
from chart_view
|
||||||
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
||||||
|
delete from chart_view
|
||||||
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
|
</delete>
|
||||||
|
<delete id="deleteByExample" parameterType="io.dataease.base.domain.ChartViewExample">
|
||||||
|
delete from chart_view
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</delete>
|
||||||
|
<insert id="insert" parameterType="io.dataease.base.domain.ChartViewWithBLOBs">
|
||||||
|
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>
|
||||||
|
<insert id="insertSelective" parameterType="io.dataease.base.domain.ChartViewWithBLOBs">
|
||||||
|
insert into chart_view
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">
|
||||||
|
id,
|
||||||
|
</if>
|
||||||
|
<if test="name != null">
|
||||||
|
`name`,
|
||||||
|
</if>
|
||||||
|
<if test="sceneId != null">
|
||||||
|
scene_id,
|
||||||
|
</if>
|
||||||
|
<if test="tableId != null">
|
||||||
|
table_id,
|
||||||
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
`type`,
|
||||||
|
</if>
|
||||||
|
<if test="title != null">
|
||||||
|
title,
|
||||||
|
</if>
|
||||||
|
<if test="createBy != null">
|
||||||
|
create_by,
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
create_time,
|
||||||
|
</if>
|
||||||
|
<if test="updateTime != null">
|
||||||
|
update_time,
|
||||||
|
</if>
|
||||||
|
<if test="xAxis != null">
|
||||||
|
x_axis,
|
||||||
|
</if>
|
||||||
|
<if test="yAxis != null">
|
||||||
|
y_axis,
|
||||||
|
</if>
|
||||||
|
<if test="customAttr != null">
|
||||||
|
custom_attr,
|
||||||
|
</if>
|
||||||
|
<if test="customStyle != null">
|
||||||
|
custom_style,
|
||||||
|
</if>
|
||||||
|
<if test="customFilter != null">
|
||||||
|
custom_filter,
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">
|
||||||
|
#{id,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="name != null">
|
||||||
|
#{name,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="sceneId != null">
|
||||||
|
#{sceneId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="tableId != null">
|
||||||
|
#{tableId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
#{type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="title != null">
|
||||||
|
#{title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="createBy != null">
|
||||||
|
#{createBy,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
#{createTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="updateTime != null">
|
||||||
|
#{updateTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="xAxis != null">
|
||||||
|
#{xAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="yAxis != null">
|
||||||
|
#{yAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customAttr != null">
|
||||||
|
#{customAttr,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customStyle != null">
|
||||||
|
#{customStyle,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customFilter != null">
|
||||||
|
#{customFilter,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
<select id="countByExample" parameterType="io.dataease.base.domain.ChartViewExample" resultType="java.lang.Long">
|
||||||
|
select count(*) from chart_view
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
<update id="updateByExampleSelective" parameterType="map">
|
||||||
|
update chart_view
|
||||||
|
<set>
|
||||||
|
<if test="record.id != null">
|
||||||
|
id = #{record.id,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.name != null">
|
||||||
|
`name` = #{record.name,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.sceneId != null">
|
||||||
|
scene_id = #{record.sceneId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.tableId != null">
|
||||||
|
table_id = #{record.tableId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.type != null">
|
||||||
|
`type` = #{record.type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.title != null">
|
||||||
|
title = #{record.title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.createBy != null">
|
||||||
|
create_by = #{record.createBy,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.createTime != null">
|
||||||
|
create_time = #{record.createTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="record.updateTime != null">
|
||||||
|
update_time = #{record.updateTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="record.xAxis != null">
|
||||||
|
x_axis = #{record.xAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.yAxis != null">
|
||||||
|
y_axis = #{record.yAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.customAttr != null">
|
||||||
|
custom_attr = #{record.customAttr,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.customStyle != null">
|
||||||
|
custom_style = #{record.customStyle,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.customFilter != null">
|
||||||
|
custom_filter = #{record.customFilter,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
<update id="updateByExampleWithBLOBs" parameterType="map">
|
||||||
|
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}
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
<update id="updateByExample" parameterType="map">
|
||||||
|
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}
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKeySelective" parameterType="io.dataease.base.domain.ChartViewWithBLOBs">
|
||||||
|
update chart_view
|
||||||
|
<set>
|
||||||
|
<if test="name != null">
|
||||||
|
`name` = #{name,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="sceneId != null">
|
||||||
|
scene_id = #{sceneId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="tableId != null">
|
||||||
|
table_id = #{tableId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
`type` = #{type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="title != null">
|
||||||
|
title = #{title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="createBy != null">
|
||||||
|
create_by = #{createBy,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
create_time = #{createTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="updateTime != null">
|
||||||
|
update_time = #{updateTime,jdbcType=BIGINT},
|
||||||
|
</if>
|
||||||
|
<if test="xAxis != null">
|
||||||
|
x_axis = #{xAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="yAxis != null">
|
||||||
|
y_axis = #{yAxis,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customAttr != null">
|
||||||
|
custom_attr = #{customAttr,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customStyle != null">
|
||||||
|
custom_style = #{customStyle,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="customFilter != null">
|
||||||
|
custom_filter = #{customFilter,jdbcType=LONGVARCHAR},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKeyWithBLOBs" parameterType="io.dataease.base.domain.ChartViewWithBLOBs">
|
||||||
|
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>
|
||||||
|
<update id="updateByPrimaryKey" parameterType="io.dataease.base.domain.ChartView">
|
||||||
|
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}
|
||||||
|
</update>
|
||||||
|
</mapper>
|
||||||
@ -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<ChartViewWithBLOBs> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package io.dataease.controller.dataset;
|
package io.dataease.controller.dataset;
|
||||||
|
|
||||||
import io.dataease.base.domain.DatasetTable;
|
import io.dataease.base.domain.DatasetTable;
|
||||||
|
import io.dataease.base.domain.DatasetTableField;
|
||||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||||
import io.dataease.datasource.dto.TableFiled;
|
import io.dataease.datasource.dto.TableFiled;
|
||||||
import io.dataease.service.dataset.DataSetTableService;
|
import io.dataease.service.dataset.DataSetTableService;
|
||||||
@ -50,6 +51,11 @@ public class DataSetTableController {
|
|||||||
return dataSetTableService.getFields(dataSetTableRequest);
|
return dataSetTableService.getFields(dataSetTableRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("getFieldsFromDE")
|
||||||
|
public Map<String, List<DatasetTableField>> getFieldsFromDE(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
|
return dataSetTableService.getFieldsFromDE(dataSetTableRequest);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("getData")
|
@PostMapping("getData")
|
||||||
public List<String[]> getData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
|
public List<String[]> getData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
return dataSetTableService.getData(dataSetTableRequest);
|
return dataSetTableService.getData(dataSetTableRequest);
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
@ -74,4 +74,8 @@ public class DatasourceService {
|
|||||||
return datasourceProvider.getTables(datasourceRequest);
|
return datasourceProvider.getTables(datasourceRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Datasource get(String id) {
|
||||||
|
return datasourceMapper.selectByPrimaryKey(id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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<String, Object> data;
|
||||||
|
}
|
||||||
19
backend/src/main/java/io/dataease/dto/chart/Series.java
Normal file
19
backend/src/main/java/io/dataease/dto/chart/Series.java
Normal file
@ -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<BigDecimal> data;
|
||||||
|
}
|
||||||
@ -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<ChartViewWithBLOBs> 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<DatasetTableField> xAxis = new Gson().fromJson(view.getXAxis(), new TypeToken<List<DatasetTableField>>() {
|
||||||
|
}.getType());
|
||||||
|
List<DatasetTableField> yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken<List<DatasetTableField>>() {
|
||||||
|
}.getType());
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isEmpty(xAxis) || CollectionUtils.isEmpty(yAxis)) {
|
||||||
|
ChartViewDTO dto = new ChartViewDTO();
|
||||||
|
BeanUtils.copyBean(dto, view);
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
List<String> xIds = xAxis.stream().map(DatasetTableField::getId).collect(Collectors.toList());
|
||||||
|
List<String> yIds = yAxis.stream().map(DatasetTableField::getId).collect(Collectors.toList());
|
||||||
|
List<DatasetTableField> xList = dataSetTableFieldsService.getListByIds(xIds);
|
||||||
|
List<DatasetTableField> 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<String[]> 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<String, Object> 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<DatasetTableField> xAxis, List<DatasetTableField> 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<DatasetTableField> xAxis, List<DatasetTableField> 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, ","));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -54,4 +54,10 @@ public class DataSetTableFieldsService {
|
|||||||
datasetTableFieldExample.createCriteria().andTableIdEqualTo(tableId);
|
datasetTableFieldExample.createCriteria().andTableIdEqualTo(tableId);
|
||||||
datasetTableFieldMapper.deleteByExample(datasetTableFieldExample);
|
datasetTableFieldMapper.deleteByExample(datasetTableFieldExample);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<DatasetTableField> getListByIds(List<String> ids) {
|
||||||
|
DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample();
|
||||||
|
datasetTableFieldExample.createCriteria().andIdIn(ids);
|
||||||
|
return datasetTableFieldMapper.selectByExample(datasetTableFieldExample);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,6 +91,29 @@ public class DataSetTableService {
|
|||||||
return datasourceProvider.getTableFileds(datasourceRequest);
|
return datasourceProvider.getTableFileds(datasourceRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, List<DatasetTableField>> getFieldsFromDE(DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
|
DatasetTableField datasetTableField = new DatasetTableField();
|
||||||
|
datasetTableField.setTableId(dataSetTableRequest.getId());
|
||||||
|
datasetTableField.setChecked(Boolean.TRUE);
|
||||||
|
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
|
||||||
|
|
||||||
|
List<DatasetTableField> dimension = new ArrayList<>();
|
||||||
|
List<DatasetTableField> quota = new ArrayList<>();
|
||||||
|
|
||||||
|
fields.forEach(field -> {
|
||||||
|
if (field.getDeType() == 2) {
|
||||||
|
quota.add(field);
|
||||||
|
} else {
|
||||||
|
dimension.add(field);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Map<String, List<DatasetTableField>> map = new HashMap<>();
|
||||||
|
map.put("dimension", dimension);
|
||||||
|
map.put("quota", quota);
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
public List<String[]> getData(DataSetTableRequest dataSetTableRequest) throws Exception {
|
public List<String[]> getData(DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
||||||
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
||||||
|
|||||||
@ -1,12 +1,35 @@
|
|||||||
-- chart start
|
-- chart start
|
||||||
CREATE TABLE IF NOT EXISTS `chart_group` (
|
CREATE TABLE IF NOT EXISTS `chart_group`
|
||||||
`id` varchar(50) NOT NULL COMMENT 'ID',
|
(
|
||||||
`name` varchar(64) NOT NULL COMMENT '名称',
|
`id` varchar(50) NOT NULL COMMENT 'ID',
|
||||||
`pid` varchar(50) COMMENT '父级ID',
|
`name` varchar(64) NOT NULL COMMENT '名称',
|
||||||
`level` int(10) COMMENT '当前分组处于第几级',
|
`pid` varchar(50) COMMENT '父级ID',
|
||||||
`type` varchar(50) COMMENT 'group or scene',
|
`level` int(10) COMMENT '当前分组处于第几级',
|
||||||
`create_by` varchar(50) COMMENT '创建人ID',
|
`type` varchar(50) COMMENT 'group or scene',
|
||||||
`create_time` bigint(13) COMMENT '创建时间',
|
`create_by` varchar(50) COMMENT '创建人ID',
|
||||||
PRIMARY KEY (`id`)
|
`create_time` bigint(13) COMMENT '创建时间',
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
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
|
-- chart end
|
||||||
|
|||||||
20
frontend/src/business/components/chart/chart/chart.js
Normal file
20
frontend/src/business/components/chart/chart/chart.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
export const BASE_BAR = {
|
||||||
|
title: {
|
||||||
|
text: ''
|
||||||
|
},
|
||||||
|
tooltip: {},
|
||||||
|
legend: {
|
||||||
|
data: []
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
data: []
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value'
|
||||||
|
},
|
||||||
|
series: []
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
BASE_BAR,
|
||||||
|
}
|
||||||
@ -139,7 +139,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-row>
|
</el-row>
|
||||||
<span>{{sceneData}}</span>
|
<span v-show="false">{{sceneData}}</span>
|
||||||
<el-tree
|
<el-tree
|
||||||
:data="chartData"
|
:data="chartData"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
@ -152,7 +152,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<span @click.stop style="margin-left: 12px;">
|
<span @click.stop style="margin-left: 12px;">
|
||||||
<el-dropdown trigger="click" @command="clickMore">
|
<el-dropdown trigger="click" @command="clickMore" size="small">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
<el-button
|
<el-button
|
||||||
icon="el-icon-more"
|
icon="el-icon-more"
|
||||||
@ -175,7 +175,7 @@
|
|||||||
</el-tree>
|
</el-tree>
|
||||||
|
|
||||||
<!--rename chart-->
|
<!--rename chart-->
|
||||||
<el-dialog :title="$t('chart.table')" :visible="editTable" :show-close="false" width="30%">
|
<el-dialog :title="$t('chart.chart')" :visible="editTable" :show-close="false" width="30%">
|
||||||
<el-form :model="tableForm" :rules="tableFormRules" ref="tableForm">
|
<el-form :model="tableForm" :rules="tableFormRules" ref="tableForm">
|
||||||
<el-form-item :label="$t('commons.name')" prop="name">
|
<el-form-item :label="$t('commons.name')" prop="name">
|
||||||
<el-input v-model="tableForm.name"></el-input>
|
<el-input v-model="tableForm.name"></el-input>
|
||||||
@ -247,7 +247,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
sceneData: function () {
|
sceneData: function () {
|
||||||
this.chartTree();
|
this.chartTree();
|
||||||
return this.$store.state.chart.sceneData;
|
return this.$store.state.chart.chartSceneData;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -340,10 +340,10 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
saveTable(table) {
|
saveTable(view) {
|
||||||
this.$refs['tableForm'].validate((valid) => {
|
this.$refs['tableForm'].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$post("/chart/table/update", table, response => {
|
this.$post("/chart/view/save", view, response => {
|
||||||
this.closeTable();
|
this.closeTable();
|
||||||
this.$message({
|
this.$message({
|
||||||
message: this.$t('commons.save_success'),
|
message: this.$t('commons.save_success'),
|
||||||
@ -389,7 +389,7 @@ export default {
|
|||||||
cancelButtonText: this.$t('chart.cancel'),
|
cancelButtonText: this.$t('chart.cancel'),
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$post("/chart/table/delete/" + data.id, null, response => {
|
this.$post("/chart/view/delete/" + data.id, null, response => {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('chart.delete_success'),
|
message: this.$t('chart.delete_success'),
|
||||||
@ -431,8 +431,8 @@ export default {
|
|||||||
chartTree() {
|
chartTree() {
|
||||||
this.chartData = [];
|
this.chartData = [];
|
||||||
if (this.currGroup) {
|
if (this.currGroup) {
|
||||||
this.$post('/chart/table/list', {
|
this.$post('/chart/view/list', {
|
||||||
sort: 'type asc,create_time desc,name asc',
|
sort: 'create_time desc,name asc',
|
||||||
sceneId: this.currGroup.id
|
sceneId: this.currGroup.id
|
||||||
}, response => {
|
}, response => {
|
||||||
this.chartData = response.data;
|
this.chartData = response.data;
|
||||||
@ -444,6 +444,7 @@ export default {
|
|||||||
if (data.type === 'scene') {
|
if (data.type === 'scene') {
|
||||||
this.sceneMode = true;
|
this.sceneMode = true;
|
||||||
this.currGroup = data;
|
this.currGroup = data;
|
||||||
|
this.$store.commit("setSceneId", this.currGroup.id);
|
||||||
}
|
}
|
||||||
if (node.expanded) {
|
if (node.expanded) {
|
||||||
this.expandedArray.push(data.id);
|
this.expandedArray.push(data.id);
|
||||||
@ -476,13 +477,10 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
sceneClick(data, node) {
|
sceneClick(data, node) {
|
||||||
// this.$store.commit('setChart', data.id);
|
this.$store.commit('setViewId', null);
|
||||||
// this.$router.push({
|
this.$store.commit('setViewId', data.id);
|
||||||
// name: 'ChartGroup',
|
this.$store.commit('setTableId', data.tableId);
|
||||||
// params: {
|
this.$router.push("/chart/chart-edit");
|
||||||
// table: data
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
|
|
||||||
selectTable() {
|
selectTable() {
|
||||||
@ -491,10 +489,18 @@ export default {
|
|||||||
|
|
||||||
createChart() {
|
createChart() {
|
||||||
console.log(this.table);
|
console.log(this.table);
|
||||||
this.selectTableFlag = false;
|
let view = {};
|
||||||
this.$store.commit("setTableId", null);
|
view.name = this.table.name;
|
||||||
this.$store.commit("setTableId", this.table.id);
|
view.sceneId = this.currGroup.id;
|
||||||
this.$router.push("/chart/chart-edit");
|
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) {
|
getTable(table) {
|
||||||
|
|||||||
@ -2,33 +2,41 @@
|
|||||||
<!--TODO 慢慢完善,写个DEMO-->
|
<!--TODO 慢慢完善,写个DEMO-->
|
||||||
<el-row style="height: 100%;overflow-y: hidden;width: 100%;">
|
<el-row style="height: 100%;overflow-y: hidden;width: 100%;">
|
||||||
<span v-show="false">{{tableId}}</span>
|
<span v-show="false">{{tableId}}</span>
|
||||||
<el-row style="height: 30px;">
|
<span v-show="false">{{sceneId}}</span>
|
||||||
<span>{{tableId}}</span>
|
<span v-show="false">{{vId}}</span>
|
||||||
<span style="float: right;">
|
<el-row style="height: 40px;" class="padding-lr">
|
||||||
|
<span style="line-height: 40px;">{{view.name}}</span>
|
||||||
|
<span style="float: right;line-height: 40px;">
|
||||||
<el-button size="mini">
|
<el-button size="mini">
|
||||||
取消
|
{{$t('chart.cancel')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" size="mini">
|
<el-button type="primary" size="mini" @click="save">
|
||||||
确认
|
{{$t('chart.confirm')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="display: flex;height: 100%">
|
<el-row style="display: flex;height: 100%">
|
||||||
<el-col style="height: 100%;width: 20%;min-width: 180px;max-width:220px;border: 1px solid #E6E6E6;">
|
<el-col
|
||||||
<div style="height: 50%;border-bottom: 1px solid #E6E6E6;overflow:auto">
|
style="height: 100%;width: 20%;min-width: 180px;max-width:220px;border: 1px solid #E6E6E6;border-left: 0 solid;">
|
||||||
纬度
|
<div style="height: 45%;border-bottom: 1px solid #E6E6E6;" class="padding-lr">
|
||||||
<draggable v-model="arr1" @end="end1" :options="{group:{name: 'itxst',pull:'clone'},sort: true}" animation="300"
|
<span>{{$t('chart.dimension')}}</span>
|
||||||
:move="onMove">
|
<draggable v-model="dimension" @end="end1" :options="{group:{name: 'itxst',pull:'clone'},sort: true}"
|
||||||
|
animation="300"
|
||||||
|
:move="onMove"
|
||||||
|
style="height: 90%;overflow:auto">
|
||||||
<transition-group>
|
<transition-group>
|
||||||
<div class="item" v-for="item in arr1" :key="item.id">{{item.name}}</div>
|
<div class="item" v-for="item in dimension" :key="item.id" @click="click1(item)">{{item.name}}</div>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</draggable>
|
</draggable>
|
||||||
</div>
|
</div>
|
||||||
<div style="height: 50%;overflow:auto">
|
<div style="height: 45%;" class="padding-lr">
|
||||||
指标
|
<span>{{$t('chart.quota')}}</span>
|
||||||
<draggable v-model="arr2" @end="end2" group="itxst" animation="300" :move="onMove">
|
<draggable v-model="quota" @end="end2" :options="{group:{name: 'itxst',pull:'clone'},sort: true}"
|
||||||
|
animation="300"
|
||||||
|
:move="onMove"
|
||||||
|
style="height: 90%;overflow:auto">
|
||||||
<transition-group>
|
<transition-group>
|
||||||
<div class="item" v-for="item in arr2" :key="item.id">{{item.name}}</div>
|
<div class="item" v-for="item in quota" :key="item.id" @click="click2(item)">{{item.name}}</div>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</draggable>
|
</draggable>
|
||||||
</div>
|
</div>
|
||||||
@ -36,56 +44,80 @@
|
|||||||
|
|
||||||
<el-col
|
<el-col
|
||||||
style="height: 100%;width: 25%;min-width: 200px;max-width:240px;border: 1px solid #E6E6E6;border-left: 0 solid;">
|
style="height: 100%;width: 25%;min-width: 200px;max-width:240px;border: 1px solid #E6E6E6;border-left: 0 solid;">
|
||||||
<div style="border-bottom: 1px solid #E6E6E6;overflow-y:hidden;">
|
<div style="border-bottom: 1px solid #E6E6E6;overflow-y:hidden;" class="padding-lr">
|
||||||
<el-row>
|
<el-row>
|
||||||
<span>标题</span>
|
<span>{{$t('chart.title')}}</span>
|
||||||
<el-checkbox v-model="checked" style="float: right;">显示</el-checkbox>
|
<el-checkbox v-model="view.show" style="float: right;">{{$t('chart.show')}}</el-checkbox>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form>
|
<el-form>
|
||||||
<el-form-item class="form-item">
|
<el-form-item class="form-item">
|
||||||
<el-input
|
<el-input
|
||||||
size="mini"
|
size="mini"
|
||||||
placeholder="标题"
|
:placeholder="$t('chart.title')"
|
||||||
prefix-icon="el-icon-search"
|
prefix-icon="el-icon-search"
|
||||||
v-model="title"
|
v-model="view.title"
|
||||||
clearable>
|
clearable>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div style="height: 30%;overflow:auto">
|
<div style="height: 25%;overflow:auto" class="padding-lr">
|
||||||
<span>图表类型</span>
|
<span>{{$t('chart.chart_type')}}</span>
|
||||||
<el-row>
|
<el-row>
|
||||||
<div class="chart-type">
|
<div class="chart-type">
|
||||||
<el-radio v-model="radio1" label="1">折线图</el-radio>
|
<!--TODO 这里要替换好看点的图标-->
|
||||||
<el-radio v-model="radio1" label="2">柱状图</el-radio>
|
<el-radio v-model="view.type" label="line">折线图</el-radio>
|
||||||
|
<el-radio v-model="view.type" label="bar">柱状图</el-radio>
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<div style="height: 40%;overflow:auto;border-top: 1px solid #e6e6e6">
|
<div style="height: 45%;overflow:auto;border-top: 1px solid #e6e6e6">
|
||||||
<el-tabs type="card">
|
<el-tabs type="card">
|
||||||
<el-tab-pane label="图形属性">图形属性</el-tab-pane>
|
<el-tab-pane :label="$t('chart.shape_attr')" class="padding-lr">TODO</el-tab-pane>
|
||||||
<el-tab-pane label="组件样式">组件样式</el-tab-pane>
|
<el-tab-pane :label="$t('chart.module_style')" class="padding-lr">TODO</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<div style="height: 30%;overflow:auto;border-top: 1px solid #e6e6e6">
|
<div style="height: 30%;overflow:auto;border-top: 1px solid #e6e6e6" class="padding-lr">
|
||||||
<span>结果过滤器</span>
|
<span>{{$t('chart.result_filter')}}</span>
|
||||||
|
<div>TODO</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;">
|
<el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;">
|
||||||
<el-row style="width: 100%;height: 100%;">
|
<el-row style="width: 100%;height: 100%;" class="padding-lr">
|
||||||
<el-form ref="form" :model="form" label-width="80px">
|
<el-row style="margin-top: 10px;">
|
||||||
<el-form-item label="横轴">
|
<el-row style="display:flex;height: 30px;">
|
||||||
<el-input v-model="form.x_axis" size="mini"></el-input>
|
<span style="line-height: 30px;width: 60px;text-align: right;">{{$t('chart.x_axis')}}</span>
|
||||||
</el-form-item>
|
<draggable v-model="view.xaxis" @end="end3" group="itxst"
|
||||||
<el-form-item label="纵轴">
|
animation="300"
|
||||||
<el-input v-model="form.y_axis" size="mini"></el-input>
|
:move="onMove"
|
||||||
</el-form-item>
|
style="width:100%;margin:0 10px;border-radius: 4px;border: 1px solid #DCDFE6;">
|
||||||
</el-form>
|
<transition-group>
|
||||||
<div class="Echarts" style="height: 100%;display: flex;">
|
<el-tag size="mini" class="item" v-for="(item,index) in view.xaxis" :key="index" closable
|
||||||
<div id="echart" style="width: 100%;height: 80%">
|
@close="clear1(index)">
|
||||||
|
{{item.name}}
|
||||||
|
</el-tag>
|
||||||
|
</transition-group>
|
||||||
|
</draggable>
|
||||||
|
</el-row>
|
||||||
|
<el-row style="display:flex;height: 30px;margin-top: 10px;">
|
||||||
|
<span style="line-height: 30px;width: 60px;text-align: right;">{{$t('chart.y_axis')}}</span>
|
||||||
|
<draggable v-model="view.yaxis" @end="end4" group="itxst"
|
||||||
|
animation="300"
|
||||||
|
:move="onMove"
|
||||||
|
style="width:100%;margin:0 10px;border-radius: 4px;border: 1px solid #DCDFE6;">
|
||||||
|
<transition-group>
|
||||||
|
<el-tag size="mini" class="item" v-for="(item,index) in view.yaxis" :key="index" closable
|
||||||
|
@close="clear2(index)">
|
||||||
|
{{item.name}}
|
||||||
|
</el-tag>
|
||||||
|
</transition-group>
|
||||||
|
</draggable>
|
||||||
|
</el-row>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<div class="Echarts" style="height: 100%;display: flex;margin-top: 10px;">
|
||||||
|
<div id="echart" style="width: 100%;height: 80vh;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -97,19 +129,23 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import draggable from "vuedraggable";
|
import draggable from "vuedraggable";
|
||||||
|
import {BASE_BAR} from "../chart/chart";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ChartEdit",
|
name: "ChartEdit",
|
||||||
components: {draggable},
|
components: {draggable},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
table: {},
|
||||||
x_axis: '',
|
dimension: [],
|
||||||
y_axis: ''
|
quota: [],
|
||||||
|
view: {
|
||||||
|
xaxis: [],
|
||||||
|
yaxis: [],
|
||||||
|
show: true,
|
||||||
|
type: 'bar',
|
||||||
|
title: '',
|
||||||
},
|
},
|
||||||
checked: true,
|
|
||||||
radio1: '2',
|
|
||||||
title: '',
|
|
||||||
//定义要被拖拽对象的数组
|
//定义要被拖拽对象的数组
|
||||||
arr1: [
|
arr1: [
|
||||||
{id: 1, name: 'id'},
|
{id: 1, name: 'id'},
|
||||||
@ -125,77 +161,171 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
// this.get(this.$store.state.chart.viewId);
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.myEcharts();
|
// this.get(this.$store.state.chart.viewId);
|
||||||
|
this.getData(this.$store.state.chart.viewId);
|
||||||
|
// this.myEcharts();
|
||||||
},
|
},
|
||||||
activated() {
|
activated() {
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
tableId() {
|
tableId() {
|
||||||
console.log(this.$store.state.chart.tableId);
|
console.log(this.$store.state.chart.tableId);
|
||||||
|
this.initTableData(this.$store.state.chart.tableId);
|
||||||
return this.$store.state.chart.tableId;
|
return this.$store.state.chart.tableId;
|
||||||
},
|
},
|
||||||
|
sceneId() {
|
||||||
|
console.log(this.$store.state.chart.sceneId);
|
||||||
|
return this.$store.state.chart.sceneId;
|
||||||
|
},
|
||||||
|
vId() {
|
||||||
|
console.log(this.$store.state.chart.viewId);
|
||||||
|
this.getData(this.$store.state.chart.viewId);
|
||||||
|
return this.$store.state.chart.viewId;
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
initTableData(id) {
|
||||||
|
if (id != null) {
|
||||||
|
this.$post('/dataset/table/get/' + id, null, response => {
|
||||||
|
this.table = response.data;
|
||||||
|
this.initTableField(id);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
initTableField(id) {
|
||||||
|
this.$post('/dataset/table/getFieldsFromDE', this.table, response => {
|
||||||
|
this.dimension = response.data.dimension;
|
||||||
|
this.quota = response.data.quota;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
click1(item) {
|
||||||
|
// console.log(item);
|
||||||
|
let c = this.view.xaxis.filter(function (ele) {
|
||||||
|
return ele.id === item.id;
|
||||||
|
});
|
||||||
|
// console.log(c);
|
||||||
|
if (c && c.length === 0) {
|
||||||
|
this.view.xaxis.push(item);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
click2(item) {
|
||||||
|
// console.log(item);
|
||||||
|
let c = this.view.yaxis.filter(function (ele) {
|
||||||
|
return ele.id === item.id;
|
||||||
|
});
|
||||||
|
// console.log(c);
|
||||||
|
if (c && c.length === 0) {
|
||||||
|
this.view.yaxis.push(item);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
clear1(index) {
|
||||||
|
this.view.xaxis.splice(this.view.xaxis.indexOf(index), 1);
|
||||||
|
},
|
||||||
|
clear2(index) {
|
||||||
|
this.view.yaxis.splice(this.view.yaxis.indexOf(index), 1);
|
||||||
|
},
|
||||||
|
get(id) {
|
||||||
|
if (id) {
|
||||||
|
this.$post('/chart/view/get/' + id, null, response => {
|
||||||
|
this.view = response.data;
|
||||||
|
this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : [];
|
||||||
|
this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : [];
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.view = {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
let view = JSON.parse(JSON.stringify(this.view));
|
||||||
|
view.id = this.view.id;
|
||||||
|
view.sceneId = this.sceneId;
|
||||||
|
view.name = this.table.name;
|
||||||
|
view.tableId = this.$store.state.chart.tableId;
|
||||||
|
view.xaxis = JSON.stringify(view.xaxis);
|
||||||
|
view.yaxis = JSON.stringify(view.yaxis);
|
||||||
|
this.$post('/chart/view/save', view, response => {
|
||||||
|
// this.get(response.data.id);
|
||||||
|
this.getData(response.data.id);
|
||||||
|
this.$store.commit("setChartSceneData", null);
|
||||||
|
this.$store.commit("setChartSceneData", this.sceneId);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getData(id) {
|
||||||
|
if (id) {
|
||||||
|
this.$post('/chart/view/getData/' + id, null, response => {
|
||||||
|
this.view = response.data;
|
||||||
|
this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : [];
|
||||||
|
this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : [];
|
||||||
|
|
||||||
|
let chart = response.data;
|
||||||
|
let chart_option = JSON.parse(JSON.stringify(BASE_BAR));
|
||||||
|
// console.log(chart_option);
|
||||||
|
if (chart.data) {
|
||||||
|
chart_option.title.text = chart.title;
|
||||||
|
chart_option.xAxis.data = chart.data.x;
|
||||||
|
chart.data.series.forEach(function (y) {
|
||||||
|
chart_option.legend.data.push(y.name);
|
||||||
|
chart_option.series.push(y);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// console.log(chart_option);
|
||||||
|
this.myEcharts(chart_option);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.view = {};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
//左边往右边拖动时的事件
|
//左边往右边拖动时的事件
|
||||||
end1(e) {
|
end1(e) {
|
||||||
console.log(e)
|
// console.log(e)
|
||||||
var that = this;
|
// var that = this;
|
||||||
var items = this.arr2.filter(function (m) {
|
// var items = this.arr2.filter(function (m) {
|
||||||
return m.id == that.moveId
|
// return m.id == that.moveId
|
||||||
})
|
// })
|
||||||
//如果左边
|
// //如果左边
|
||||||
if (items.length < 2) return;
|
// if (items.length < 2) return;
|
||||||
this.arr2.splice(e.newDraggableIndex, 1)
|
// this.arr2.splice(e.newDraggableIndex, 1)
|
||||||
},
|
},
|
||||||
//右边往左边拖动时的事件
|
//右边往左边拖动时的事件
|
||||||
end2(e) {
|
end2(e) {
|
||||||
console.log(e)
|
// console.log(e)
|
||||||
var that = this;
|
// var that = this;
|
||||||
var items = this.arr1.filter(function (m) {
|
// var items = this.yAxisData.filter(function (m) {
|
||||||
return m.id == that.moveId
|
// return m.id == that.moveId
|
||||||
})
|
// })
|
||||||
//如果左边
|
// //如果左边
|
||||||
if (items.length < 2) return;
|
// if (items.length < 2) return;
|
||||||
this.arr1.splice(e.newDraggableIndex, 1)
|
// this.yAxisData.splice(e.newDraggableIndex, 1)
|
||||||
|
},
|
||||||
|
end3(e) {
|
||||||
|
|
||||||
|
},
|
||||||
|
end4(e) {
|
||||||
|
|
||||||
},
|
},
|
||||||
//move回调方法
|
//move回调方法
|
||||||
onMove(e, originalEvent) {
|
onMove(e, originalEvent) {
|
||||||
console.log('onmove');
|
console.log(e);
|
||||||
this.moveId = e.relatedContext.element.id;
|
// this.moveId = e.relatedContext.element.id;
|
||||||
//不允许停靠
|
// //不允许停靠
|
||||||
if (e.relatedContext.element.id == 1) return false;
|
// if (e.relatedContext.element.id == 1) return false;
|
||||||
//不允许拖拽
|
// //不允许拖拽
|
||||||
if (e.draggedContext.element.id == 4) return false;
|
// if (e.draggedContext.element.id == 4) return false;
|
||||||
if (e.draggedContext.element.id == 11) return false;
|
// if (e.draggedContext.element.id == 11) return false;
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
myEcharts() {
|
myEcharts(option) {
|
||||||
// 基于准备好的dom,初始化echarts实例
|
// 基于准备好的dom,初始化echarts实例
|
||||||
var myChart = this.$echarts.init(document.getElementById('echart'));
|
var myChart = this.$echarts.init(document.getElementById('echart'));
|
||||||
|
|
||||||
// 指定图表的配置项和数据
|
// 指定图表的配置项和数据
|
||||||
var option = {
|
myChart.setOption(option, true);
|
||||||
title: {
|
|
||||||
text: 'ECharts示例'
|
|
||||||
},
|
|
||||||
tooltip: {},
|
|
||||||
legend: {
|
|
||||||
data: ['销量']
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
|
|
||||||
},
|
|
||||||
yAxis: {},
|
|
||||||
series: [{
|
|
||||||
name: '销量',
|
|
||||||
type: 'bar',
|
|
||||||
data: [5, 20, 36, 10, 10, 20]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
myChart.setOption(option);
|
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
myChart.resize();
|
myChart.resize();
|
||||||
}
|
}
|
||||||
@ -206,6 +336,10 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.padding-lr {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
.itxst {
|
.itxst {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
@ -226,7 +360,7 @@ export default {
|
|||||||
|
|
||||||
.item {
|
.item {
|
||||||
padding: 2px 12px;
|
padding: 2px 12px;
|
||||||
margin: 3px 10px 0px 10px;
|
margin: 3px 3px 0 3px;
|
||||||
border: solid 1px #eee;
|
border: solid 1px #eee;
|
||||||
background-color: #f1f1f1;
|
background-color: #f1f1f1;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
@ -242,24 +376,6 @@ export default {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item2 {
|
|
||||||
padding: 6px 12px;
|
|
||||||
margin: 0px 10px 0px 10px;
|
|
||||||
border: solid 1px #eee;
|
|
||||||
background-color: pink;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item2 + .item2 {
|
|
||||||
border-top: none;
|
|
||||||
margin-top: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item2:hover {
|
|
||||||
outline: solid 1px #ddd;
|
|
||||||
cursor: move;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,9 @@ const Chart = {
|
|||||||
state: {
|
state: {
|
||||||
chartSceneData: "",
|
chartSceneData: "",
|
||||||
chart: "",
|
chart: "",
|
||||||
tableId: ""
|
tableId: "",
|
||||||
|
sceneId: "",
|
||||||
|
viewId: ""
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setChartSceneData(state, chartSceneData) {
|
setChartSceneData(state, chartSceneData) {
|
||||||
@ -33,6 +35,12 @@ const Chart = {
|
|||||||
},
|
},
|
||||||
setTableId(state, tableId) {
|
setTableId(state, tableId) {
|
||||||
state.tableId = tableId;
|
state.tableId = tableId;
|
||||||
|
},
|
||||||
|
setSceneId(state, sceneId) {
|
||||||
|
state.sceneId = sceneId;
|
||||||
|
},
|
||||||
|
setViewId(state, viewId) {
|
||||||
|
state.viewId = viewId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1549,7 +1549,18 @@ export default {
|
|||||||
table: '表',
|
table: '表',
|
||||||
edit: '編輯',
|
edit: '編輯',
|
||||||
create_view: '創建試圖',
|
create_view: '創建試圖',
|
||||||
data_preview: '數據預覽'
|
data_preview: '數據預覽',
|
||||||
|
dimension: 'Dimension',
|
||||||
|
quota: 'Quota',
|
||||||
|
title: 'Title',
|
||||||
|
show: 'Show',
|
||||||
|
chart_type: 'Chart Type',
|
||||||
|
shape_attr: 'Attribute',
|
||||||
|
module_style: 'Style',
|
||||||
|
result_filter: 'Filter',
|
||||||
|
x_axis: 'X-Axis',
|
||||||
|
y_axis: 'Y-Axis',
|
||||||
|
chart: 'Chart'
|
||||||
},
|
},
|
||||||
dataset: {
|
dataset: {
|
||||||
datalist: 'Data List',
|
datalist: 'Data List',
|
||||||
@ -1574,18 +1585,18 @@ export default {
|
|||||||
sql_data: 'SQL Data',
|
sql_data: 'SQL Data',
|
||||||
excel_data: 'Excel Data',
|
excel_data: 'Excel Data',
|
||||||
custom_data: 'Custom Data',
|
custom_data: 'Custom Data',
|
||||||
pls_slc_tbl_left:'Please select table from left',
|
pls_slc_tbl_left: 'Please select table from left',
|
||||||
add_db_table:'Add Table',
|
add_db_table: 'Add Table',
|
||||||
pls_slc_data_source:'Select Data Source',
|
pls_slc_data_source: 'Select Data Source',
|
||||||
table:'Table',
|
table: 'Table',
|
||||||
edit: 'Edit',
|
edit: 'Edit',
|
||||||
create_view: 'Create View',
|
create_view: 'Create View',
|
||||||
data_preview:'Data Preview',
|
data_preview: 'Data Preview',
|
||||||
field_type:'Field Type',
|
field_type: 'Field Type',
|
||||||
field_name:'Field Name',
|
field_name: 'Field Name',
|
||||||
field_origin_name:'Origin Name',
|
field_origin_name: 'Origin Name',
|
||||||
field_check:'Checked',
|
field_check: 'Checked',
|
||||||
update_info:'Update Info',
|
update_info: 'Update Info',
|
||||||
join_view: 'Relation View',
|
join_view: 'Relation View',
|
||||||
text: 'Text',
|
text: 'Text',
|
||||||
time: 'Time',
|
time: 'Time',
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
commons: {
|
commons: {
|
||||||
upload:'上传',
|
upload: '上传',
|
||||||
cover: '覆盖',
|
cover: '覆盖',
|
||||||
not_cover: '不覆盖',
|
not_cover: '不覆盖',
|
||||||
import_mode: '导入模式',
|
import_mode: '导入模式',
|
||||||
@ -220,8 +220,8 @@ export default {
|
|||||||
loginImage: '登陆页面右侧图片',
|
loginImage: '登陆页面右侧图片',
|
||||||
loginTitle: '登陆页面提示信息',
|
loginTitle: '登陆页面提示信息',
|
||||||
pageTitle: '页面 Title',
|
pageTitle: '页面 Title',
|
||||||
favicon:"Favicon(浏览器Tab页上的小图标)",
|
favicon: "Favicon(浏览器Tab页上的小图标)",
|
||||||
advice_size:"建议图片大小",
|
advice_size: "建议图片大小",
|
||||||
},
|
},
|
||||||
system_config: {
|
system_config: {
|
||||||
base_config: '基本配置',
|
base_config: '基本配置',
|
||||||
@ -229,12 +229,12 @@ export default {
|
|||||||
url: '当前站点URL',
|
url: '当前站点URL',
|
||||||
url_tip: '例如:http://localhost:8081',
|
url_tip: '例如:http://localhost:8081',
|
||||||
logo: "系统LOGO(显示在系统主页左上角的LOGO)",
|
logo: "系统LOGO(显示在系统主页左上角的LOGO)",
|
||||||
advice_size:"建议图片大小",
|
advice_size: "建议图片大小",
|
||||||
title:"Title(浏览器Tab页上的显示的文字)",
|
title: "Title(浏览器Tab页上的显示的文字)",
|
||||||
favicon:"Favicon(浏览器Tab页上的小图标)",
|
favicon: "Favicon(浏览器Tab页上的小图标)",
|
||||||
system_name:"系统名称(显示在系统主页左上角的系统名称)",
|
system_name: "系统名称(显示在系统主页左上角的系统名称)",
|
||||||
login_image: "登录页图片(登录页中显示的图片)",
|
login_image: "登录页图片(登录页中显示的图片)",
|
||||||
login_name:"登录页显示的系统名称"
|
login_name: "登录页显示的系统名称"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
workspace: {
|
workspace: {
|
||||||
@ -1570,7 +1570,18 @@ export default {
|
|||||||
table: '表',
|
table: '表',
|
||||||
edit: '编辑',
|
edit: '编辑',
|
||||||
create_view: '创建试图',
|
create_view: '创建试图',
|
||||||
data_preview:'数据预览'
|
data_preview: '数据预览',
|
||||||
|
dimension: '维度',
|
||||||
|
quota: '指标',
|
||||||
|
title: '标题',
|
||||||
|
show: '显示',
|
||||||
|
chart_type: '图表类型',
|
||||||
|
shape_attr: '图形属性',
|
||||||
|
module_style: '组件样式',
|
||||||
|
result_filter: '结果过滤器',
|
||||||
|
x_axis: '横轴',
|
||||||
|
y_axis: '纵轴',
|
||||||
|
chart:'视图'
|
||||||
},
|
},
|
||||||
dataset: {
|
dataset: {
|
||||||
datalist: '数据列表',
|
datalist: '数据列表',
|
||||||
|
|||||||
@ -1550,7 +1550,18 @@ export default {
|
|||||||
table: '表',
|
table: '表',
|
||||||
edit: '編輯',
|
edit: '編輯',
|
||||||
create_view: '創建試圖',
|
create_view: '創建試圖',
|
||||||
data_preview: '數據預覽'
|
data_preview: '數據預覽',
|
||||||
|
dimension: '維度',
|
||||||
|
quota: '指標',
|
||||||
|
title: '標題',
|
||||||
|
show: '顯示',
|
||||||
|
chart_type: '圖表類型',
|
||||||
|
shape_attr: '圖形屬性',
|
||||||
|
module_style: '組件樣式',
|
||||||
|
result_filter: '結果過濾器',
|
||||||
|
x_axis: '橫軸',
|
||||||
|
y_axis: '縱軸',
|
||||||
|
chart:'視圖'
|
||||||
},
|
},
|
||||||
dataset: {
|
dataset: {
|
||||||
datalist: '數據列表',
|
datalist: '數據列表',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user