feat:过滤条件优化

This commit is contained in:
junjie 2021-10-12 11:14:05 +08:00
parent dadb1f4f4d
commit aa68de259c
14 changed files with 290 additions and 179 deletions

View File

@ -39,10 +39,10 @@ public class CKQueryProvider extends QueryProvider {
@Override @Override
public Integer transFieldType(String field) { public Integer transFieldType(String field) {
if(field.indexOf("ARRAY") > -1){ if (field.indexOf("ARRAY") > -1) {
field = "ARRAY"; field = "ARRAY";
} }
if(field.indexOf("DATETIME64") > -1){ if (field.indexOf("DATETIME64") > -1) {
field = "DATETIME64"; field = "DATETIME64";
} }
switch (field) { switch (field) {
@ -81,7 +81,7 @@ public class CKQueryProvider extends QueryProvider {
} }
@Override @Override
public Integer transFieldSize(String field){ public Integer transFieldSize(String field) {
Integer type = transFieldType(field); Integer type = transFieldType(field);
switch (type) { switch (type) {
case 0: case 0:
@ -128,9 +128,9 @@ public class CKQueryProvider extends QueryProvider {
// 处理横轴字段 // 处理横轴字段
if (f.getDeExtractType() == DeTypeConstants.DE_TIME) { if (f.getDeExtractType() == DeTypeConstants.DE_TIME) {
if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) { if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) {
if(f.getType().equalsIgnoreCase("DATE")){ if (f.getType().equalsIgnoreCase("DATE")) {
fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000"; fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000";
}else { } else {
fieldName = String.format(CKConstants.toInt32, originField) + "*1000"; fieldName = String.format(CKConstants.toInt32, originField) + "*1000";
} }
} else { } else {
@ -725,7 +725,7 @@ public class CKQueryProvider extends QueryProvider {
} }
@Override @Override
public String convertTableToSql(String tableName, Datasource ds){ public String convertTableToSql(String tableName, Datasource ds) {
return "SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName); return "SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName);
} }
@ -752,9 +752,13 @@ public class CKQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -800,31 +804,37 @@ public class CKQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = CKConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
if(field.getDeType() == DeTypeConstants.DE_TIME){ if (field.getDeType() == DeTypeConstants.DE_TIME) {
whereValue = String.format(CKConstants.toDateTime, "'" + value + "'"); whereValue = String.format(CKConstants.toDateTime, "'" + value + "'");
}else { } else {
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value); whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value);
} }
} }
if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "null")){ if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue("is null") .whereTermAndValue("is null")
.build()); .build());
}else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")){ } else if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue("is not null") .whereTermAndValue("is not null")
.build()); .build());
}else { } else {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue(whereTerm + whereValue) .whereTermAndValue(whereTerm + whereValue)
@ -893,17 +903,17 @@ public class CKQueryProvider extends QueryProvider {
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0)); whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0));
} }
if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")){ if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue("is null") .whereTermAndValue("is null")
.build()); .build());
}else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "not_null")){ } else if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "not_null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue("is not null") .whereTermAndValue("is not null")
.build()); .build());
}else { } else {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
.whereTermAndValue(whereTerm + whereValue) .whereTermAndValue(whereTerm + whereValue)
@ -956,9 +966,9 @@ public class CKQueryProvider extends QueryProvider {
String fieldName = ""; String fieldName = "";
if (x.getDeExtractType() == DeTypeConstants.DE_TIME) { if (x.getDeExtractType() == DeTypeConstants.DE_TIME) {
if (x.getDeType() == DeTypeConstants.DE_INT || x.getDeType() == DeTypeConstants.DE_FLOAT) { if (x.getDeType() == DeTypeConstants.DE_INT || x.getDeType() == DeTypeConstants.DE_FLOAT) {
if(x.getType().equalsIgnoreCase("DATE")){ if (x.getType().equalsIgnoreCase("DATE")) {
fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000"; fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000";
}else { } else {
fieldName = String.format(CKConstants.toInt32, originField) + "*1000"; fieldName = String.format(CKConstants.toInt32, originField) + "*1000";
} }
} else if (x.getDeType() == DeTypeConstants.DE_TIME) { } else if (x.getDeType() == DeTypeConstants.DE_TIME) {
@ -994,7 +1004,7 @@ public class CKQueryProvider extends QueryProvider {
fieldName = String.format(CKConstants.AGG_FIELD, y.getSummary(), originField); fieldName = String.format(CKConstants.AGG_FIELD, y.getSummary(), originField);
} else { } else {
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
String cast = y.getDeType() == 2? String.format(CKConstants.toInt64, originField) : String.format(CKConstants.toFloat64, originField); String cast = y.getDeType() == 2 ? String.format(CKConstants.toInt64, originField) : String.format(CKConstants.toFloat64, originField);
String agg = String.format(CKConstants.AGG_FIELD, y.getSummary(), cast); String agg = String.format(CKConstants.AGG_FIELD, y.getSummary(), cast);
fieldName = String.format(CKConstants.toDecimal, agg); fieldName = String.format(CKConstants.toDecimal, agg);
} else { } else {
@ -1016,9 +1026,15 @@ public class CKQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = CKConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originField);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@ -1027,19 +1043,19 @@ public class CKQueryProvider extends QueryProvider {
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, f.getValue()); whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, f.getValue());
} }
if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "null")){ if (y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(fieldAlias) .whereField(fieldAlias)
.whereAlias(fieldAlias) .whereAlias(fieldAlias)
.whereTermAndValue("is null") .whereTermAndValue("is null")
.build()); .build());
}else if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")){ } else if (y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(fieldAlias) .whereField(fieldAlias)
.whereAlias(fieldAlias) .whereAlias(fieldAlias)
.whereTermAndValue("is not null") .whereTermAndValue("is not null")
.build()); .build());
}else { } else {
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(fieldAlias) .whereField(fieldAlias)
.whereAlias(fieldAlias) .whereAlias(fieldAlias)

View File

@ -700,7 +700,7 @@ public class DorisQueryProvider extends QueryProvider {
} }
@Override @Override
public String convertTableToSql(String tableName, Datasource ds){ public String convertTableToSql(String tableName, Datasource ds) {
return createSQLPreview("SELECT * FROM " + String.format(DorisConstants.KEYWORD_TABLE, tableName), null); return createSQLPreview("SELECT * FROM " + String.format(DorisConstants.KEYWORD_TABLE, tableName), null);
} }
@ -734,9 +734,13 @@ public class DorisQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -783,9 +787,15 @@ public class DorisQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -952,9 +962,15 @@ public class DorisQueryProvider extends QueryProvider {
whereName = originField; whereName = originField;
} }
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@ -1003,9 +1019,15 @@ public class DorisQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -682,9 +682,13 @@ public class EsQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -730,9 +734,15 @@ public class EsQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = EsSqlLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -913,9 +923,15 @@ public class EsQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = EsSqlLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originField);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -694,7 +694,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
@Override @Override
public String convertTableToSql(String tableName, Datasource ds){ public String convertTableToSql(String tableName, Datasource ds) {
return createSQLPreview("SELECT * FROM " + String.format(MySQLConstants.KEYWORD_TABLE, tableName), null); return createSQLPreview("SELECT * FROM " + String.format(MySQLConstants.KEYWORD_TABLE, tableName), null);
} }
@ -721,9 +721,13 @@ public class MysqlQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -769,9 +773,15 @@ public class MysqlQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -936,9 +946,15 @@ public class MysqlQueryProvider extends QueryProvider {
whereName = originField; whereName = originField;
} }
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originField);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@ -986,9 +1002,15 @@ public class MysqlQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originField);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -109,10 +109,10 @@ public class OracleQueryProvider extends QueryProvider {
return st_sql.render(); return st_sql.render();
} }
public void setSchema(SQLObj tableObj, Datasource ds){ public void setSchema(SQLObj tableObj, Datasource ds) {
if(ds != null && !tableObj.getTableName().startsWith("(") && !tableObj.getTableName().endsWith(")")){ if (ds != null && !tableObj.getTableName().startsWith("(") && !tableObj.getTableName().endsWith(")")) {
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format( OracleConstants.KEYWORD_TABLE, schema); schema = String.format(OracleConstants.KEYWORD_TABLE, schema);
tableObj.setTableName(schema + "." + tableObj.getTableName()); tableObj.setTableName(schema + "." + tableObj.getTableName());
} }
} }
@ -744,9 +744,9 @@ public class OracleQueryProvider extends QueryProvider {
} }
@Override @Override
public String convertTableToSql(String tableName, Datasource ds){ public String convertTableToSql(String tableName, Datasource ds) {
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format( OracleConstants.KEYWORD_TABLE, schema); schema = String.format(OracleConstants.KEYWORD_TABLE, schema);
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, tableName), null); return createSQLPreview("SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, tableName), null);
} }
@ -773,9 +773,13 @@ public class OracleQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -823,9 +827,15 @@ public class OracleQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -1009,9 +1019,15 @@ public class OracleQueryProvider extends QueryProvider {
whereName = originField; whereName = originField;
} }
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@ -1059,9 +1075,15 @@ public class OracleQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -750,9 +750,13 @@ public class PgQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -798,9 +802,15 @@ public class PgQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = PgConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -980,9 +990,15 @@ public class PgQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = PgConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -149,7 +149,7 @@ public class SqlserverQueryProvider extends QueryProvider {
@Override @Override
public String createQueryTableWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds) { public String createQueryTableWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds) {
Integer size = (page-1)*pageSize + realSize; Integer size = (page - 1) * pageSize + realSize;
return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQL(table, fields, isGroup, ds)); return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQL(table, fields, isGroup, ds));
} }
@ -162,7 +162,7 @@ public class SqlserverQueryProvider extends QueryProvider {
@Override @Override
public String createQuerySQLWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) { public String createQuerySQLWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
Integer size = (page-1)*pageSize + realSize; Integer size = (page - 1) * pageSize + realSize;
return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQLAsTmp(sql, fields, isGroup)); return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQLAsTmp(sql, fields, isGroup));
} }
@ -677,9 +677,9 @@ public class SqlserverQueryProvider extends QueryProvider {
} }
@Override @Override
public String convertTableToSql(String tableName, Datasource ds){ public String convertTableToSql(String tableName, Datasource ds) {
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format( SqlServerSQLConstants.KEYWORD_TABLE, schema); schema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema);
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, tableName), null); return createSQLPreview("SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, tableName), null);
} }
@ -706,9 +706,13 @@ public class SqlserverQueryProvider extends QueryProvider {
case "not like": case "not like":
return " NOT LIKE "; return " NOT LIKE ";
case "null": case "null":
return " IN "; return " IS NULL ";
case "not_null": case "not_null":
return " IS NOT NULL AND %s <> ''"; return " IS NOT NULL ";
case "empty":
return " = ";
case "not_empty":
return " <> ";
case "between": case "between":
return " BETWEEN "; return " BETWEEN ";
default: default:
@ -748,9 +752,15 @@ public class SqlserverQueryProvider extends QueryProvider {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = SqlServerSQLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@ -937,9 +947,15 @@ public class SqlserverQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理 // 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = SqlServerSQLConstants.WHERE_VALUE_NULL; // whereValue = MySQLConstants.WHERE_VALUE_NULL;
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField); // whereTerm = String.format(whereTerm, originName);
whereValue = "";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@ -762,8 +762,10 @@ export default {
filter_le: 'Less than or equal to', filter_le: 'Less than or equal to',
filter_gt: 'Greater than', filter_gt: 'Greater than',
filter_ge: 'Greater than or equal to', filter_ge: 'Greater than or equal to',
filter_null: 'Empty', filter_null: 'Null',
filter_not_null: 'Not Empty', filter_not_null: 'Not Null',
filter_empty: 'Empty String',
filter_not_empty: 'Not Empty String',
filter_include: 'Contain', filter_include: 'Contain',
filter_not_include: 'Not Contain', filter_not_include: 'Not Contain',
rose_type: 'Rose pattern', rose_type: 'Rose pattern',

View File

@ -763,8 +763,10 @@ export default {
filter_le: '小于等于', filter_le: '小于等于',
filter_gt: '大于', filter_gt: '大于',
filter_ge: '大于等于', filter_ge: '大于等于',
filter_null: '爲空', filter_null: '為空',
filter_not_null: '不爲空', filter_not_null: '不為空',
filter_empty: '空字符串',
filter_not_empty: '非空字符串',
filter_include: '包含', filter_include: '包含',
filter_not_include: '不包含', filter_not_include: '不包含',
rose_type: '玫瑰圖模式', rose_type: '玫瑰圖模式',

View File

@ -765,6 +765,8 @@ export default {
filter_ge: '大于等于', filter_ge: '大于等于',
filter_null: '为空', filter_null: '为空',
filter_not_null: '不为空', filter_not_null: '不为空',
filter_empty: '空字符串',
filter_not_empty: '非空字符串',
filter_include: '包含', filter_include: '包含',
filter_not_include: '不包含', filter_not_include: '不包含',
rose_type: '玫瑰图模式', rose_type: '玫瑰图模式',

View File

@ -23,7 +23,7 @@
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable /> <el-input v-show="!f.term.includes('null') && !f.term.includes('empty')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" /> <el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
@ -44,56 +44,48 @@ export default {
}, },
data() { data() {
return { return {
options: [{ options: [
label: '', {
options: [{ label: '',
value: 'eq', options: [{
label: this.$t('chart.filter_eq') value: 'eq',
}, { label: this.$t('chart.filter_eq')
value: 'not_eq', }, {
label: this.$t('chart.filter_not_eq') value: 'not_eq',
}] label: this.$t('chart.filter_not_eq')
}, }]
{ },
label: '', {
options: [{ label: '',
value: 'like', options: [{
label: this.$t('chart.filter_like') value: 'like',
}, { label: this.$t('chart.filter_like')
value: 'not like', }, {
label: this.$t('chart.filter_not_like') value: 'not like',
}] label: this.$t('chart.filter_not_like')
}, }]
// { },
// label: '', {
// options: [{ label: '',
// value: 'lt', options: [{
// label: this.$t('chart.filter_lt') value: 'null',
// }, { label: this.$t('chart.filter_null')
// value: 'gt', }, {
// label: this.$t('chart.filter_gt') value: 'not_null',
// }] label: this.$t('chart.filter_not_null')
// }, }]
// { },
// label: '', {
// options: [{ label: '',
// value: 'le', options: [{
// label: this.$t('chart.filter_le') value: 'empty',
// }, { label: this.$t('chart.filter_empty')
// value: 'ge', }, {
// label: this.$t('chart.filter_ge') value: 'not_empty',
// }] label: this.$t('chart.filter_not_empty')
// }, }]
{ }
label: '', ]
options: [{
value: 'null',
label: this.$t('chart.filter_null')
}, {
value: 'not_null',
label: this.$t('chart.filter_not_null')
}]
}]
} }
}, },
mounted() { mounted() {
@ -113,7 +105,7 @@ export default {
</script> </script>
<style scoped> <style scoped>
.filter-item{ .filter-item {
width: 100%; width: 100%;
border-radius: 4px; border-radius: 4px;
border: 1px solid #DCDFE6; border: 1px solid #DCDFE6;
@ -123,19 +115,22 @@ export default {
justify-content: left; justify-content: left;
align-items: center; align-items: center;
} }
.form-item>>>.el-form-item__label{
.form-item >>> .el-form-item__label {
font-size: 12px; font-size: 12px;
} }
span{
font-size: 12px;
}
.value-item>>>.el-input{ span {
position: relative; font-size: 12px;
display: inline-block; }
width: 80px!important;
} .value-item >>> .el-input {
.el-select-dropdown__item{ position: relative;
display: inline-block;
width: 80px !important;
}
.el-select-dropdown__item {
padding: 0 20px; padding: 0 20px;
font-size: 12px; font-size: 12px;
} }

View File

@ -83,16 +83,6 @@ export default {
value: 'ge', value: 'ge',
label: this.$t('chart.filter_ge') label: this.$t('chart.filter_ge')
}] }]
},
{
label: '',
options: [{
value: 'null',
label: this.$t('chart.filter_null')
}, {
value: 'not_null',
label: this.$t('chart.filter_not_null')
}]
}] }]
} }
}, },

View File

@ -23,7 +23,7 @@
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable /> <el-input v-show="!f.term.includes('null') && !f.term.includes('empty')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" /> <el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
@ -80,6 +80,16 @@ export default {
value: 'not_null', value: 'not_null',
label: this.$t('chart.filter_not_null') label: this.$t('chart.filter_not_null')
}] }]
},
{
label: '',
options: [{
value: 'empty',
label: this.$t('chart.filter_empty')
}, {
value: 'not_empty',
label: this.$t('chart.filter_not_empty')
}]
} }
], ],
dateOptions: [ dateOptions: [
@ -112,16 +122,6 @@ export default {
value: 'ge', value: 'ge',
label: this.$t('chart.filter_ge') label: this.$t('chart.filter_ge')
}] }]
},
{
label: '',
options: [{
value: 'null',
label: this.$t('chart.filter_null')
}, {
value: 'not_null',
label: this.$t('chart.filter_not_null')
}]
} }
], ],
valueOptions: [ valueOptions: [
@ -154,16 +154,6 @@ export default {
value: 'ge', value: 'ge',
label: this.$t('chart.filter_ge') label: this.$t('chart.filter_ge')
}] }]
},
{
label: '',
options: [{
value: 'null',
label: this.$t('chart.filter_null')
}, {
value: 'not_null',
label: this.$t('chart.filter_not_null')
}]
} }
], ],
options: [] options: []

View File

@ -1201,7 +1201,7 @@ export default {
saveDimensionFilter() { saveDimensionFilter() {
for (let i = 0; i < this.dimensionItem.filter.length; i++) { for (let i = 0; i < this.dimensionItem.filter.length; i++) {
const f = this.dimensionItem.filter[i] const f = this.dimensionItem.filter[i]
if (!f.term.includes('null') && (!f.value || f.value === '')) { if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
this.$message({ this.$message({
message: this.$t('chart.filter_value_can_null'), message: this.$t('chart.filter_value_can_null'),
type: 'error', type: 'error',
@ -1225,7 +1225,7 @@ export default {
saveQuotaFilter() { saveQuotaFilter() {
for (let i = 0; i < this.quotaItem.filter.length; i++) { for (let i = 0; i < this.quotaItem.filter.length; i++) {
const f = this.quotaItem.filter[i] const f = this.quotaItem.filter[i]
if (!f.term.includes('null') && (!f.value || f.value === '')) { if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
this.$message({ this.$message({
message: this.$t('chart.filter_value_can_null'), message: this.$t('chart.filter_value_can_null'),
type: 'error', type: 'error',
@ -1258,7 +1258,7 @@ export default {
saveResultFilter() { saveResultFilter() {
for (let i = 0; i < this.filterItem.filter.length; i++) { for (let i = 0; i < this.filterItem.filter.length; i++) {
const f = this.filterItem.filter[i] const f = this.filterItem.filter[i]
if (!f.term.includes('null') && (!f.value || f.value === '')) { if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
this.$message({ this.$message({
message: this.$t('chart.filter_value_can_null'), message: this.$t('chart.filter_value_can_null'),
type: 'error', type: 'error',