提交 a2425538 authored 作者: wangjiahao's avatar wangjiahao

Merge remote-tracking branch 'origin/dev' into fix_panel_edit_attr-auto-save

# Conflicts: # frontend/src/components/canvas/components/RectangleAttr.vue
......@@ -13,6 +13,8 @@ public class ChartViewWithBLOBs extends ChartView implements Serializable {
private String yAxis;
private String extStack;
private String customAttr;
private String customStyle;
......
......@@ -16,6 +16,7 @@
<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="ext_stack" jdbcType="LONGVARCHAR" property="extStack" />
<result column="custom_attr" jdbcType="LONGVARCHAR" property="customAttr" />
<result column="custom_style" jdbcType="LONGVARCHAR" property="customStyle" />
<result column="custom_filter" jdbcType="LONGVARCHAR" property="customFilter" />
......@@ -84,7 +85,7 @@
style_priority
</sql>
<sql id="Blob_Column_List">
x_axis, y_axis, custom_attr, custom_style, custom_filter, snapshot
x_axis, y_axis, ext_stack, custom_attr, custom_style, custom_filter, snapshot
</sql>
<select id="selectByExampleWithBLOBs" parameterType="io.dataease.base.domain.ChartViewExample" resultMap="ResultMapWithBLOBs">
select
......@@ -139,14 +140,14 @@
table_id, `type`, title,
create_by, create_time, update_time,
style_priority, x_axis, y_axis,
custom_attr, custom_style, custom_filter,
snapshot)
ext_stack, custom_attr, custom_style,
custom_filter, snapshot)
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},
#{stylePriority,jdbcType=VARCHAR}, #{xAxis,jdbcType=LONGVARCHAR}, #{yAxis,jdbcType=LONGVARCHAR},
#{customAttr,jdbcType=LONGVARCHAR}, #{customStyle,jdbcType=LONGVARCHAR}, #{customFilter,jdbcType=LONGVARCHAR},
#{snapshot,jdbcType=LONGVARCHAR})
#{extStack,jdbcType=LONGVARCHAR}, #{customAttr,jdbcType=LONGVARCHAR}, #{customStyle,jdbcType=LONGVARCHAR},
#{customFilter,jdbcType=LONGVARCHAR}, #{snapshot,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="io.dataease.base.domain.ChartViewWithBLOBs">
insert into chart_view
......@@ -187,6 +188,9 @@
<if test="yAxis != null">
y_axis,
</if>
<if test="extStack != null">
ext_stack,
</if>
<if test="customAttr != null">
custom_attr,
</if>
......@@ -237,6 +241,9 @@
<if test="yAxis != null">
#{yAxis,jdbcType=LONGVARCHAR},
</if>
<if test="extStack != null">
#{extStack,jdbcType=LONGVARCHAR},
</if>
<if test="customAttr != null">
#{customAttr,jdbcType=LONGVARCHAR},
</if>
......@@ -296,6 +303,9 @@
<if test="record.yAxis != null">
y_axis = #{record.yAxis,jdbcType=LONGVARCHAR},
</if>
<if test="record.extStack != null">
ext_stack = #{record.extStack,jdbcType=LONGVARCHAR},
</if>
<if test="record.customAttr != null">
custom_attr = #{record.customAttr,jdbcType=LONGVARCHAR},
</if>
......@@ -327,6 +337,7 @@
style_priority = #{record.stylePriority,jdbcType=VARCHAR},
x_axis = #{record.xAxis,jdbcType=LONGVARCHAR},
y_axis = #{record.yAxis,jdbcType=LONGVARCHAR},
ext_stack = #{record.extStack,jdbcType=LONGVARCHAR},
custom_attr = #{record.customAttr,jdbcType=LONGVARCHAR},
custom_style = #{record.customStyle,jdbcType=LONGVARCHAR},
custom_filter = #{record.customFilter,jdbcType=LONGVARCHAR},
......@@ -387,6 +398,9 @@
<if test="yAxis != null">
y_axis = #{yAxis,jdbcType=LONGVARCHAR},
</if>
<if test="extStack != null">
ext_stack = #{extStack,jdbcType=LONGVARCHAR},
</if>
<if test="customAttr != null">
custom_attr = #{customAttr,jdbcType=LONGVARCHAR},
</if>
......@@ -415,6 +429,7 @@
style_priority = #{stylePriority,jdbcType=VARCHAR},
x_axis = #{xAxis,jdbcType=LONGVARCHAR},
y_axis = #{yAxis,jdbcType=LONGVARCHAR},
ext_stack = #{extStack,jdbcType=LONGVARCHAR},
custom_attr = #{customAttr,jdbcType=LONGVARCHAR},
custom_style = #{customStyle,jdbcType=LONGVARCHAR},
custom_filter = #{customFilter,jdbcType=LONGVARCHAR},
......
package io.dataease.map.dto.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import lombok.Data;
......@@ -10,6 +11,7 @@ import java.util.Optional;
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AreaEntity implements Serializable {
private static final long serialVersionUID = -1326667005437020282L;
......
......@@ -5,6 +5,7 @@ import io.dataease.map.api.MapApi;
import io.dataease.map.dto.entity.AreaEntity;
import io.dataease.map.service.MapService;
import io.dataease.map.utils.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
......@@ -40,7 +41,9 @@ public class MapServer implements MapApi {
@Override
public List<AreaEntity> areaEntitys(@PathVariable String pcode) {
List<AreaEntity> areaEntities = mapService.areaEntities();
if (StringUtils.equals(pcode, "0")) {
return areaEntities;
}
return mapService.entitysByPid(areaEntities, pcode);
}
......
......@@ -36,10 +36,23 @@ public abstract class QueryProvider {
public abstract String getSQLAsTmp(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList);
public abstract String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack);
public abstract String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack);
public abstract String searchTable(String table);
public abstract String getSQLSummary(String table, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList);
/**
* 单指标汇总
*
* @param sql
* @param yAxis
* @param customFilter
* @param extFilterRequestList
* @return
*/
public abstract String getSQLSummaryAsTmp(String sql, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList);
public abstract String wrapSql(String sql);
......
......@@ -263,6 +263,104 @@ public class DorisQueryProvider extends QueryProvider {
return getSQL("(" + sql + ")", xAxis, yAxis, customFilter, extFilterRequestList);
}
@Override
public String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>();
List<ChartViewFieldDTO> xList = new ArrayList<>();
xList.addAll(xAxis);
xList.addAll(extStack);
if (CollectionUtils.isNotEmpty(xList)) {
for (int i = 0; i < xList.size(); i++) {
ChartViewFieldDTO x = xList.get(i);
String originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName());
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
// 处理横轴字段
xFields.add(getXFields(x, originField, fieldAlias));
// 处理横轴过滤
xWheres.addAll(getXWheres(x, originField, fieldAlias));
// 处理横轴排序
if (StringUtils.isNotEmpty(x.getSort()) && !StringUtils.equalsIgnoreCase(x.getSort(), "none")) {
xOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(x.getSort())
.build());
}
}
}
List<SQLObj> yFields = new ArrayList<>();
List<SQLObj> yWheres = new ArrayList<>();
List<SQLObj> yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(yAxis)) {
for (int i = 0; i < yAxis.size(); i++) {
ChartViewFieldDTO y = yAxis.get(i);
String originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getDataeaseName());
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(y.getSort())
.build());
}
}
}
// 处理视图中字段过滤
List<SQLObj> customWheres = transCustomFilterList(tableObj, customFilter);
// 处理仪表板字段过滤
List<SQLObj> extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List<SQLObj> fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
List<SQLObj> wheres = new ArrayList<>();
wheres.addAll(xWheres);
if (customWheres != null) wheres.addAll(customWheres);
if (extWheres != null) wheres.addAll(extWheres);
List<SQLObj> groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
List<SQLObj> aggWheres = new ArrayList<>();
aggWheres.addAll(yWheres);
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields);
if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
String sql = st_sql.render();
ST st = stg.getInstanceOf("querySql");
SQLObj tableSQL = SQLObj.builder()
.tableName(String.format(DorisConstants.BRACKETS, sql))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 1))
.build();
if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres);
if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders);
if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL);
return st.render();
}
@Override
public String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return getSQLStack("(" + table + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack);
}
@Override
public String searchTable(String table) {
return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'";
......@@ -471,10 +569,14 @@ public class DorisQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
whereValue = "'%" + value.get(0) + "%'";
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(DorisConstants.WHERE_BETWEEN, startTime, endTime);
if (request.getDatasetTableField().getDeType() == 1) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(DorisConstants.WHERE_BETWEEN, startTime, endTime);
} else {
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value.get(0));
}
......
......@@ -254,6 +254,123 @@ public class MysqlQueryProvider extends QueryProvider {
return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList);
}
@Override
public String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>();
List<ChartViewFieldDTO> xList = new ArrayList<>();
xList.addAll(xAxis);
xList.addAll(extStack);
if (CollectionUtils.isNotEmpty(xList)) {
for (int i = 0; i < xList.size(); i++) {
ChartViewFieldDTO x = xList.get(i);
String originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
// 处理横轴字段
xFields.add(getXFields(x, originField, fieldAlias));
// 处理横轴过滤
xWheres.addAll(getXWheres(x, originField, fieldAlias));
// 处理横轴排序
if (StringUtils.isNotEmpty(x.getSort()) && !StringUtils.equalsIgnoreCase(x.getSort(), "none")) {
xOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(x.getSort())
.build());
}
}
}
List<SQLObj> yFields = new ArrayList<>();
List<SQLObj> yWheres = new ArrayList<>();
List<SQLObj> yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(yAxis)) {
for (int i = 0; i < yAxis.size(); i++) {
ChartViewFieldDTO y = yAxis.get(i);
String originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(y.getSort())
.build());
}
}
}
List<SQLObj> stackFields = new ArrayList<>();
List<SQLObj> stackOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(extStack)) {
for (int i = 0; i < extStack.size(); i++) {
ChartViewFieldDTO stack = extStack.get(i);
String originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), stack.getOriginName());
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
// 处理横轴字段
stackFields.add(getXFields(stack, originField, fieldAlias));
// 处理横轴排序
if (StringUtils.isNotEmpty(stack.getSort()) && !StringUtils.equalsIgnoreCase(stack.getSort(), "none")) {
stackOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(stack.getSort())
.build());
}
}
}
// 处理视图中字段过滤
List<SQLObj> customWheres = transCustomFilterList(tableObj, customFilter);
// 处理仪表板字段过滤
List<SQLObj> extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List<SQLObj> fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
List<SQLObj> wheres = new ArrayList<>();
wheres.addAll(xWheres);
if (customWheres != null) wheres.addAll(customWheres);
if (extWheres != null) wheres.addAll(extWheres);
List<SQLObj> groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
List<SQLObj> aggWheres = new ArrayList<>();
aggWheres.addAll(yWheres);
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields);
if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
String sql = st_sql.render();
ST st = stg.getInstanceOf("querySql");
SQLObj tableSQL = SQLObj.builder()
.tableName(String.format(MySQLConstants.BRACKETS, sql))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 1))
.build();
if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres);
if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders);
if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL);
return st.render();
}
@Override
public String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack);
}
@Override
public String searchTable(String table) {
return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'";
......@@ -459,10 +576,14 @@ public class MysqlQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
whereValue = "'%" + value.get(0) + "%'";
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, startTime, endTime);
if (request.getDatasetTableField().getDeType() == 1) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, startTime, endTime);
} else {
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value.get(0));
}
......
......@@ -7,6 +7,8 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants;
import io.dataease.provider.doris.DorisConstants;
import io.dataease.provider.mysql.MySQLConstants;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -107,8 +109,7 @@ public class OracleQueryProvider extends QueryProvider {
}
private List<SQLObj> xFields(String table, List<DatasetTableField> fields){
private List<SQLObj> xFields(String table, List<DatasetTableField> fields) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0)))
......@@ -155,6 +156,7 @@ public class OracleQueryProvider extends QueryProvider {
}
return xFields;
}
private String sqlColumn(List<SQLObj> xFields) {
String[] array = xFields.stream().map(f -> {
return f.getFieldAlias();
......@@ -287,6 +289,104 @@ public class OracleQueryProvider extends QueryProvider {
return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList);
}
@Override
public String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0)))
.build();
List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>();
List<ChartViewFieldDTO> xList = new ArrayList<>();
xList.addAll(xAxis);
xList.addAll(extStack);
if (CollectionUtils.isNotEmpty(xList)) {
for (int i = 0; i < xList.size(); i++) {
ChartViewFieldDTO x = xList.get(i);
String originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
String fieldAlias = String.format(OracleConstants.ALIAS_FIX, String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i));
// 处理横轴字段
xFields.add(getXFields(x, originField, fieldAlias));
// 处理横轴过滤
xWheres.addAll(getXWheres(x, originField, fieldAlias));
// 处理横轴排序
if (StringUtils.isNotEmpty(x.getSort()) && !StringUtils.equalsIgnoreCase(x.getSort(), "none")) {
xOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(x.getSort())
.build());
}
}
}
List<SQLObj> yFields = new ArrayList<>();
List<SQLObj> yWheres = new ArrayList<>();
List<SQLObj> yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(yAxis)) {
for (int i = 0; i < yAxis.size(); i++) {
ChartViewFieldDTO y = yAxis.get(i);
String originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
String fieldAlias = String.format(OracleConstants.ALIAS_FIX, String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i));
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(y.getSort())
.build());
}
}
}
// 处理视图中字段过滤
List<SQLObj> customWheres = transCustomFilterList(tableObj, customFilter);
// 处理仪表板字段过滤
List<SQLObj> extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List<SQLObj> fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
List<SQLObj> wheres = new ArrayList<>();
wheres.addAll(xWheres);
if (customWheres != null) wheres.addAll(customWheres);
if (extWheres != null) wheres.addAll(extWheres);
List<SQLObj> groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
List<SQLObj> aggWheres = new ArrayList<>();
aggWheres.addAll(yWheres);
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields);
if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
String sql = st_sql.render();
ST st = stg.getInstanceOf("querySql");
SQLObj tableSQL = SQLObj.builder()
.tableName(String.format(OracleConstants.BRACKETS, sql))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 1))
.build();
if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres);
if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders);
if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL);
return st.render();
}
@Override
public String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack);
}
@Override
public String searchTable(String table) {
return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'";
......@@ -486,10 +586,14 @@ public class OracleQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
whereValue = "'%" + value.get(0) + "%'";
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(OracleConstants.WHERE_BETWEEN, startTime, endTime);
if (request.getDatasetTableField().getDeType() == 1) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
whereValue = String.format(OracleConstants.WHERE_BETWEEN, startTime, endTime);
} else {
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value.get(0));
}
......
......@@ -271,6 +271,16 @@ public class SqlserverQueryProvider extends QueryProvider {
return getSQL(" (" + sqlFix(sql) + ") AS tmp ", xAxis, yAxis, customFilter, extFilterRequestList);
}
@Override
public String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return null;
}
@Override
public String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return null;
}
@Override
public String searchTable(String table) {
return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'";
......
......@@ -134,6 +134,8 @@ public class ChartViewService {
}.getType());
List<ChartViewFieldDTO> yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken<List<ChartViewFieldDTO>>() {
}.getType());
List<ChartViewFieldDTO> extStack = new Gson().fromJson(view.getExtStack(), new TypeToken<List<ChartViewFieldDTO>>() {
}.getType());
List<ChartFieldCustomFilterDTO> fieldCustomFilter = new Gson().fromJson(view.getCustomFilter(), new TypeToken<List<ChartFieldCustomFilterDTO>>() {
}.getType());
List<ChartCustomFilterDTO> customFilter = fieldCustomFilter.stream().map(ele -> {
......@@ -145,24 +147,19 @@ public class ChartViewService {
return dto;
}).collect(Collectors.toList());
// if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
// xAxis = new ArrayList<>();
// if (CollectionUtils.isEmpty(yAxis)) {
// ChartViewDTO dto = new ChartViewDTO();
// BeanUtils.copyBean(dto, view);
// return dto;
// }
// } else {
// if (CollectionUtils.isEmpty(xAxis) || CollectionUtils.isEmpty(yAxis)) {
// ChartViewDTO dto = new ChartViewDTO();
// BeanUtils.copyBean(dto, view);
// return dto;
// }
// }
if (CollectionUtils.isEmpty(xAxis) && CollectionUtils.isEmpty(yAxis)) {
ChartViewDTO dto = new ChartViewDTO();
BeanUtils.copyBean(dto, view);
return dto;
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
xAxis = new ArrayList<>();
if (CollectionUtils.isEmpty(yAxis)) {
ChartViewDTO dto = new ChartViewDTO();
BeanUtils.copyBean(dto, view);
return dto;
}
} else {
if (CollectionUtils.isEmpty(xAxis) && CollectionUtils.isEmpty(yAxis)) {
ChartViewDTO dto = new ChartViewDTO();
BeanUtils.copyBean(dto, view);
return dto;
}
}
// 过滤来自仪表板的条件
......@@ -204,12 +201,16 @@ public class ChartViewService {
datasourceRequest.setTable(dataTableInfoDTO.getTable());
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummary(dataTableInfoDTO.getTable(), yAxis, customFilter, extFilterList));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
datasourceRequest.setQuery(qp.getSQLStack(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, extStack));
} else {
datasourceRequest.setQuery(qp.getSQL(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList));
}
} else if (StringUtils.equalsIgnoreCase(table.getType(), "sql")) {
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummaryAsTmp(dataTableInfoDTO.getSql(), yAxis, customFilter, extFilterList));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
datasourceRequest.setQuery(qp.getSQLAsTmpStack(dataTableInfoDTO.getSql(), xAxis, yAxis, customFilter, extFilterList, extStack));
} else {
datasourceRequest.setQuery(qp.getSQLAsTmp(dataTableInfoDTO.getSql(), xAxis, yAxis, customFilter, extFilterList));
}
......@@ -219,6 +220,8 @@ public class ChartViewService {
String sql = dataSetTableService.getCustomSQLDatasource(dt, list, ds);
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummaryAsTmp(sql, yAxis, customFilter, extFilterList));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
datasourceRequest.setQuery(qp.getSQLAsTmpStack(sql, xAxis, yAxis, customFilter, extFilterList, extStack));
} else {
datasourceRequest.setQuery(qp.getSQLAsTmp(sql, xAxis, yAxis, customFilter, extFilterList));
}
......@@ -245,6 +248,8 @@ public class ChartViewService {
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummary(tableName, yAxis, customFilter, extFilterList));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
datasourceRequest.setQuery(qp.getSQLStack(tableName, xAxis, yAxis, customFilter, extFilterList, extStack));
} else {
datasourceRequest.setQuery(qp.getSQL(tableName, xAxis, yAxis, customFilter, extFilterList));
}
......@@ -279,14 +284,71 @@ public class ChartViewService {
}
}
}
}
if (StringUtils.containsIgnoreCase(view.getType(), "pie") && data.size() > 1000) {
data = data.subList(0, 1000);
}
Map<String, Object> map = new TreeMap<>();
// 图表组件可再扩展
Map<String, Object> mapChart;
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
mapChart = transStackChartData(xAxis, yAxis, view, data, extStack);
} else {
mapChart = transChartData(xAxis, yAxis, view, data);
}
// table组件,明细表,也用于导出数据
Map<String, Object> mapTableNormal = transTableNormal(xAxis, yAxis, view, data, extStack);
map.putAll(mapChart);
map.putAll(mapTableNormal);
ChartViewDTO dto = new ChartViewDTO();
BeanUtils.copyBean(dto, view);
dto.setData(map);
dto.setSql(datasourceRequest.getQuery());
return dto;
}
/**
* 避免缓存击穿
* 虽然流量不一定能够达到击穿的水平
*
* @param datasourceProvider
* @param datasourceRequest
* @param viewId
* @return
* @throws Exception
*/
public List<String[]> cacheViewData(DatasourceProvider datasourceProvider, DatasourceRequest datasourceRequest, String viewId) throws Exception {
List<String[]> result;
Object cache = CacheUtils.get(JdbcConstants.VIEW_CACHE_KEY, viewId);
if (cache == null) {
if (lock.tryLock()) {// 获取锁成功
try {
result = datasourceProvider.getData(datasourceRequest);
if (result != null) {
CacheUtils.put(JdbcConstants.VIEW_CACHE_KEY, viewId, result, null, null);
}
} catch (Exception e) {
LogUtil.error(e);
throw e;
} finally {
lock.unlock();
}
} else {//获取锁失败
Thread.sleep(100);//避免CAS自旋频率过大 占用cpu资源过高
result = cacheViewData(datasourceProvider, datasourceRequest, viewId);
}
} else {
result = (List<String[]>) cache;
}
return result;
}
private Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
List<Series> series = new ArrayList<>();
for (ChartViewFieldDTO y : yAxis) {
......@@ -315,12 +377,117 @@ public class ChartViewService {
}
}
}
// table组件
map.put("x", x);
map.put("series", series);
return map;
}
private Map<String, Object> transStackChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
List<String> stack = new ArrayList<>();
List<Series> series = new ArrayList<>();
if (CollectionUtils.isNotEmpty(extStack)) {
BigDecimal defaultValue = StringUtils.containsIgnoreCase(view.getType(), "line") ? new BigDecimal(0) : null;
// 构建横轴
for (String[] d : data) {
StringBuilder a = new StringBuilder();
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
} else {
a.append(d[i]).append("\n");
}
}
x.add(a.toString());
}
x = x.stream().distinct().collect(Collectors.toList());
// 构建堆叠
for (String[] d : data) {
stack.add(d[xAxis.size()]);
}
stack = stack.stream().distinct().collect(Collectors.toList());
for (String s : stack) {
Series series1 = new Series();
series1.setName(s);
series1.setType(view.getType());
List<BigDecimal> list = new ArrayList<>();
for (int i = 0; i < x.size(); i++) {
list.add(defaultValue);
}
series1.setData(list);
series.add(series1);
}
for (Series ss : series) {
for (int i = 0; i < x.size(); i++) {
for (String[] row : data) {
String stackColumn = row[xAxis.size()];
if (StringUtils.equals(ss.getName(), stackColumn)) {
StringBuilder a = new StringBuilder();
for (int j = 0; j < xAxis.size(); j++) {
if (j == xAxis.size() - 1) {
a.append(row[j]);
} else {
a.append(row[j]).append("\n");
}
}
if (StringUtils.equals(a.toString(), x.get(i))) {
ss.getData().set(i, new BigDecimal(row[xAxis.size() + extStack.size()]));
break;
}
}
}
}
}
} else {
for (ChartViewFieldDTO y : yAxis) {
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();
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
} else {
a.append(d[i]).append("\n");
}
}
x.add(a.toString());
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
int j = i - xAxis.size();
try {
series.get(j).getData().add(new BigDecimal(StringUtils.isEmpty(d[i]) ? "0" : d[i]));
} catch (Exception e) {
series.get(j).getData().add(new BigDecimal(0));
}
}
}
}
map.put("x", x);
map.put("series", series);
return map;
}
private Map<String, Object> transTableNormal(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack) {
Map<String, Object> map = new TreeMap<>();
List<ChartViewFieldDTO> fields = new ArrayList<>();
List<Map<String, Object>> tableRow = new ArrayList<>();
if (ObjectUtils.isNotEmpty(xAxis) && !StringUtils.equalsIgnoreCase("text", view.getType()) && !StringUtils.equalsIgnoreCase("gauge", view.getType())) {
if (ObjectUtils.isNotEmpty(xAxis)) {
fields.addAll(xAxis);
}
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
if (ObjectUtils.isNotEmpty(extStack)) {
fields.addAll(extStack);
}
}
fields.addAll(yAxis);
data.forEach(ele -> {
Map<String, Object> d = new HashMap<>();
......@@ -334,54 +501,9 @@ public class ChartViewService {
}
tableRow.add(d);
});
Map<String, Object> map = new HashMap<>();
map.put("x", x);
map.put("series", series);
map.put("fields", fields);
map.put("tableRow", tableRow);
ChartViewDTO dto = new ChartViewDTO();
BeanUtils.copyBean(dto, view);
dto.setData(map);
dto.setSql(datasourceRequest.getQuery());
return dto;
}
/**
* 避免缓存击穿
* 虽然流量不一定能够达到击穿的水平
*
* @param datasourceProvider
* @param datasourceRequest
* @param viewId
* @return
* @throws Exception
*/
public List<String[]> cacheViewData(DatasourceProvider datasourceProvider, DatasourceRequest datasourceRequest, String viewId) throws Exception {
List<String[]> result;
Object cache = CacheUtils.get(JdbcConstants.VIEW_CACHE_KEY, viewId);
if (cache == null) {
if (lock.tryLock()) {// 获取锁成功
try {
result = datasourceProvider.getData(datasourceRequest);
if (result != null) {
CacheUtils.put(JdbcConstants.VIEW_CACHE_KEY, viewId, result, null, null);
}
} catch (Exception e) {
LogUtil.error(e);
throw e;
} finally {
lock.unlock();
}
} else {//获取锁失败
Thread.sleep(100);//避免CAS自旋频率过大 占用cpu资源过高
result = cacheViewData(datasourceProvider, datasourceRequest, viewId);
}
} else {
result = (List<String[]>) cache;
}
return result;
return map;
}
private void checkName(ChartViewWithBLOBs chartView) {
......
ALTER TABLE `chart_view` ADD COLUMN `ext_stack` LONGTEXT COMMENT '堆叠项' AFTER `y_axis`;
UPDATE `chart_view` SET `ext_stack` = '[]';
UPDATE `chart_view` SET `custom_filter` = '[]';
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -64,7 +64,7 @@
<!--要生成的数据库表 -->
<!-- <table tableName="datasource"/>-->
<table tableName="chart_view"/>
<!-- <table tableName="sys_dict"/>-->
<!-- <table tableName="sys_dict_item"/>-->
<!-- <table tableName="dataset_table_field"/>-->
......@@ -74,9 +74,9 @@
<!-- </table>-->
<!-- <table tableName="v_dataset"/>-->
<!-- <table tableName="sys_auth_detail"/>-->
<table tableName="dataset_table_task">
<columnOverride column="extra_data" javaType="java.lang.String" jdbcType="VARCHAR" />
</table>
<!-- <table tableName="dataset_table_task">-->
<!-- <columnOverride column="extra_data" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!-- </table>-->
</context>
......
import request from '@/utils/request'
export const areaMapping = () => {
return request({
url: '/api/map/areaEntitys/0',
method: 'get',
loading: true
})
}
export function geoJson(areaCode) {
return request({
url: '/api/map/resourceFull/' + areaCode,
method: 'get',
loading: true
})
}
......@@ -623,7 +623,7 @@ export default {
elementMouseDown(e) {
// private 设置当前组件数据及状态
this.$store.commit('setClickComponentStatus', true)
if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search') {
if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-number-range') {
e.preventDefault()
}
// 阻止冒泡事件
......
......@@ -226,7 +226,7 @@ export default {
handleMouseDownOnShape(e) {
this.$store.commit('setClickComponentStatus', true)
if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search') {
if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-number-range') {
e.preventDefault()
}
......
<template>
<el-form v-if="options!== null && options.attrs!==null" ref="form" :model="form" :rules="rules">
<div class="de-number-range-container">
<el-form-item prop="min">
<el-input v-model="form.min" :placeholder="options.attrs.placeholder" @change="handleMinChange" />
</el-form-item>
<span>~</span>
<el-form-item prop="max">
<el-input v-model="form.max" :placeholder="options.attrs.placeholder" @change="handleMaxChange" />
</el-form-item>
</div>
</el-form>
</template>
<script>
const MIN_NUMBER = -2147483648
const MAX_NUMBER = 2147483647
export default {
props: {
element: {
type: Object,
default: null
},
inDraw: {
type: Boolean,
default: true
}
},
data() {
return {
options: null,
operator: 'between',
values: null,
canEdit: false,
form: { min: '', max: '' },
rules: {
min: [
{ required: true, message: this.$t('denumberrange.please_key_min'), trigger: 'blur' },
{ validator: this.validateCom, trigger: 'blur' },
{ validator: this.validateMin, trigger: 'blur' }
],
max: [
{ required: true, message: this.$t('denumberrange.please_key_max'), trigger: 'blur' },
{ validator: this.validateCom, trigger: 'blur' },
{ validator: this.validateMax, trigger: 'blur' }
]
},
changeIndex: 0,
timeMachine: null
}
},
watch: {
form: {
handler(value) {
this.destryTimeMachine()
this.changeIndex++
this.searchWithKey(this.changeIndex)
},
deep: true
}
},
created() {
this.options = this.element.options
},
methods: {
searchWithKey(index) {
this.timeMachine = setTimeout(() => {
if (index === this.changeIndex) {
this.search()
}
this.destryTimeMachine()
}, 1000)
},
destryTimeMachine() {
this.timeMachine && clearTimeout(this.timeMachine)
this.timeMachine = null
},
getFormData() {
const ret = {}
this.$refs.form.validate((valid) => {
ret.valid = valid
ret.form = this.form
})
return ret
},
resetForm() {
this.$refs.form.resetFields()
},
handleMinChange() {
this.$refs.form.validateField('max')
},
handleMaxChange() {
this.$refs.form.validateField('min')
},
validateCom(rule, value, callback) {
const one = Number(value)
if (Number.isInteger(one)) {
if (one < MIN_NUMBER) {
return callback(new Error(this.$t('denumberrange.out_of_min')))
} else if (one > MAX_NUMBER) {
return callback(new Error(this.$t('denumberrange.out_of_max')))
}
return callback()
}
return callback(new Error(this.$t('denumberrange.must_int')))
},
validateMin(rule, value, callback) {
const one = Number(value)
const max = Number(this.form.max)
if (!max || one < max) {
return callback()
}
return callback(new Error(this.$t('denumberrange.min_out_max')))
},
validateMax(rule, value, callback) {
const one = Number(value)
const min = Number(this.form.min)
if (!min || one > min) {
return callback()
}
return callback(new Error(this.$t('denumberrange.max_out_min')))
},
search() {
this.$refs.form.validate(valid => {
if (!valid) {
return false
}
this.setCondition()
})
},
setCondition() {
const param = {
component: this.element,
// value: !this.values ? [] : Array.isArray(this.values) ? this.values : [this.values],
value: [this.form.min, this.form.max],
operator: this.operator
}
this.inDraw && this.$store.commit('addViewFilter', param)
}
}
}
</script>
<style lang="scss" scoped>
.de-number-range-container {
display: inline;
>>>div.el-form-item {
width: calc(50% - 5px) !important;
display: inline-block;
padding: 0 5px;
}
}
</style>
/**
* fieldId 字段ID
* value 字段值
* operator 操作[eq, ne, gt, ge, lt, le, in, not in, like, not like]
* operator 操作[eq, ne, gt, ge, lt, le, in, not in, like, not like, between]
* viewIds 过滤视图范围
*/
export class Condition {
......
import { WidgetService } from '../service/WidgetService'
const leftPanel = {
icon: 'iconfont icon-zuoce-qujian',
label: '数值区间',
defaultClass: 'text-filter'
}
const dialogPanel = {
options: {
attrs: {
placeholder: '请输入整数',
viewIds: []
},
value: ''
},
defaultClass: 'text-filter',
component: 'de-number-range'
}
const drawPanel = {
type: 'custom',
style: {
width: 500,
// height: 45.5,
height: 90,
fontSize: 14,
fontWeight: 500,
lineHeight: '',
letterSpacing: 0,
textAlign: '',
color: ''
},
component: 'de-number-range'
}
class NumberRangeServiceImpl extends WidgetService {
constructor(options = {}) {
Object.assign(options, { name: 'numberRangeWidget' })
super(options)
this.filterDialog = true
this.showSwitch = false
}
initLeftPanel() {
const value = JSON.parse(JSON.stringify(leftPanel))
return value
}
initFilterDialog() {
const value = JSON.parse(JSON.stringify(dialogPanel))
return value
}
initDrawPanel() {
const value = JSON.parse(JSON.stringify(drawPanel))
return value
}
filterFieldMethod(fields) {
return fields.filter(field => {
return field['deType'] === 2
})
}
}
const numberRangeServiceImpl = new NumberRangeServiceImpl()
export default numberRangeServiceImpl
<svg t="1626859344070" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="819" width="200" height="200"><path d="M948.3 170.5c-7.2-6.1-17.4-8.7-26.6-7.2l-237.1 42-60.4-20c-17.4-5.6-35.8 3.6-41.5 20.5-5.6 16.9 3.6 35.8 20.5 41.5l68.6 22.5c1.5 0.5 3.1 1 4.6 1v265.7L541.2 495c-11.8-3.6-23.6 3.1-27.1 14.3s3.1 23.6 14.3 27.1l148 45.6v273.9L392.8 776V652.8c0-12.3-9.7-22-22-22s-22 9.7-22 22v123.9L130.7 811V195.1c0-17.9-14.8-32.8-32.8-32.8s-32.8 14.8-32.8 32.8v654.3c0 9.7 4.1 18.4 11.3 25.1 7.2 6.1 16.9 9.2 26.1 7.7l270.8-42.5 304.1 85.5c3.1 1 5.6 1 8.7 1 2 0 4.1 0 5.6-0.5l240.1-43.5c15.4-3.1 26.6-16.4 26.6-32.3V195.6c1.7-9.7-2.9-19-10.1-25.1z" p-id="820"></path><path d="M376.4 97.8c-102.4 0-185.3 82.9-185.3 185.3 0 28.2 6.7 55.8 20.5 82.9 10.8 21 109.1 159.7 138.8 201.7 6.1 8.7 15.9 13.8 26.6 13.8 10.8 0 20.5-5.1 26.6-13.8 29.7-42.5 127.5-181.8 137.7-201.2 13.3-25.6 20.5-54.8 20.5-83.5 0-102.3-83-185.2-185.4-185.2z m0.5 240.1c-30.2 0-54.8-24.6-54.8-54.8s24.1-54.8 54.8-54.8c30.2 0 54.8 24.6 54.8 54.8s-24.6 54.8-54.8 54.8z" p-id="821"></path></svg>
\ No newline at end of file
<svg t="1626861945234" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5279" width="200" height="200"><path d="M0 0h307.2v122.88H0V0z m0 460.8h614.4v122.88H0V460.8z m0 440.32h1024V1024H0v-122.88z" p-id="5280"></path></svg>
<svg t="1626861978178" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4648" width="200" height="200"><path d="M0 0h1024v122.88H0V0z m0 460.8h614.4v122.88H0V460.8z m0 440.32h307.2V1024H0v-122.88z" p-id="4649"></path></svg>
......@@ -750,6 +750,7 @@ export default {
chart_funnel: 'Funnel',
chart_radar: 'Radar',
chart_gauge: 'Gauge',
chart_map: 'Map',
dateStyle: 'Date Style',
datePattern: 'Date Format',
y: 'Year',
......@@ -817,7 +818,11 @@ export default {
drag_block_funnel_width: 'Funnel Width',
drag_block_funnel_split: 'Funnel Split',
drag_block_radar_length: 'Branch Length',
drag_block_radar_label: 'Branch Label'
drag_block_radar_label: 'Branch Label',
stack_item: 'Stack Item',
map_range: 'Map range',
select_map_range: 'Please select map range',
area: 'Area'
},
dataset: {
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
......@@ -1282,5 +1287,14 @@ export default {
i18n_msg_type_dataset_sync_faild: 'Dataset synchronization failed',
i18n_msg_type_all: 'All type',
channel_inner_msg: 'On site news'
},
denumberrange: {
please_key_min: 'Please key min value',
please_key_max: 'Please key max value',
out_of_min: 'The min value cannot be less than the min integer -2³²',
out_of_max: 'The max value cannot be more than the max integer 2³²-1',
must_int: 'Please key interger',
min_out_max: 'The min value must be less than the max value',
max_out_min: 'The max value must be more than the min value'
}
}
......@@ -750,6 +750,7 @@ export default {
chart_funnel: '漏鬥圖',
chart_radar: '雷達圖',
chart_gauge: '儀表盤',
chart_map: '地圖',
dateStyle: '日期顯示',
datePattern: '日期格式',
y: '年',
......@@ -817,7 +818,11 @@ export default {
drag_block_funnel_width: '漏鬥層寬',
drag_block_funnel_split: '漏鬥分層',
drag_block_radar_length: '分支長度',
drag_block_radar_label: '分支標簽'
drag_block_radar_label: '分支標簽',
map_range: '地圖範圍',
select_map_range: '請選擇地圖範圍',
area: '地區',
stack_item: '堆疊項'
},
dataset: {
sheet_warn: '有多個sheet頁面,默認抽取第一個',
......@@ -1121,7 +1126,7 @@ export default {
lineHeight: '行高',
letterSpacing: '字間距',
textAlign: '左右對齊',
opacity: '透明度',
opacity: '透明度',
verticalAlign: '上下對齊',
text_align_left: '左對齊',
text_align_center: '左右居中',
......@@ -1282,5 +1287,14 @@ export default {
i18n_msg_type_dataset_sync_faild: '數據集同步失敗',
i18n_msg_type_all: '全部類型',
channel_inner_msg: '站內消息'
},
denumberrange: {
please_key_min: '請輸入最小值',
please_key_max: '請輸入最大值',
out_of_min: '最小值不能小于最小整數-2³²',
out_of_max: '最大值不能大于最大整數2³²-1',
must_int: '請輸入整數',
min_out_max: '最小值必須小于最大值',
max_out_min: '最大值必須大于最小值'
}
}
......@@ -750,6 +750,7 @@ export default {
chart_funnel: '漏斗图',
chart_radar: '雷达图',
chart_gauge: '仪表盘',
chart_map: '地图',
dateStyle: '日期显示',
datePattern: '日期格式',
y: '年',
......@@ -817,7 +818,11 @@ export default {
drag_block_funnel_width: '漏斗层宽',
drag_block_funnel_split: '漏斗分层',
drag_block_radar_length: '分支长度',
drag_block_radar_label: '分支标签'
drag_block_radar_label: '分支标签',
map_range: '地图范围',
select_map_range: '请选择地图范围',
area: '地区',
stack_item: '堆叠项'
},
dataset: {
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
......@@ -1122,7 +1127,7 @@ export default {
lineHeight: '行高',
letterSpacing: '字间距',
textAlign: '左右对齐',
opacity: '透明度',
opacity: '透明度',
verticalAlign: '上下对齐',
text_align_left: '左对齐',
text_align_center: '左右居中',
......@@ -1284,5 +1289,14 @@ export default {
i18n_msg_type_dataset_sync_faild: '数据集同步失败',
i18n_msg_type_all: '全部类型',
channel_inner_msg: '站内消息'
},
denumberrange: {
please_key_min: '请输入最小值',
please_key_max: '请输入最大值',
out_of_min: '最小值不能小于最小整数-2³²',
out_of_max: '最大值不能大于最大整数2³²-1',
must_int: '请输入整数',
min_out_max: '最小值必须小于最大值',
max_out_min: '最大值必须大于最小值'
}
}
......@@ -54,6 +54,18 @@
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe642;</span>
<div class="name">透明</div>
<div class="code-name">&amp;#xe642;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe61a;</span>
<div class="name">弧度</div>
<div class="code-name">&amp;#xe61a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62d;</span>
<div class="name">放大</div>
......@@ -282,9 +294,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1626147352097') format('woff2'),
url('iconfont.woff?t=1626147352097') format('woff'),
url('iconfont.ttf?t=1626147352097') format('truetype');
src: url('iconfont.woff2?t=1626919869905') format('woff2'),
url('iconfont.woff?t=1626919869905') format('woff'),
url('iconfont.ttf?t=1626919869905') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -310,6 +322,24 @@
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-touming"></span>
<div class="name">
透明
</div>
<div class="code-name">.icon-touming
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fangxing-"></span>
<div class="name">
弧度
</div>
<div class="code-name">.icon-fangxing-
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fangda"></span>
<div class="name">
......@@ -652,6 +682,22 @@
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-touming"></use>
</svg>
<div class="name">透明</div>
<div class="code-name">#icon-touming</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fangxing-"></use>
</svg>
<div class="name">弧度</div>
<div class="code-name">#icon-fangxing-</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fangda"></use>
......
@font-face {
font-family: "iconfont"; /* Project id 2459092 */
src: url('iconfont.woff2?t=1626147352097') format('woff2'),
url('iconfont.woff?t=1626147352097') format('woff'),
url('iconfont.ttf?t=1626147352097') format('truetype');
src: url('iconfont.woff2?t=1626919869905') format('woff2'),
url('iconfont.woff?t=1626919869905') format('woff'),
url('iconfont.ttf?t=1626919869905') format('truetype');
}
.iconfont {
......@@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-touming:before {
content: "\e642";
}
.icon-fangxing-:before {
content: "\e61a";
}
.icon-fangda:before {
content: "\e62d";
}
......
!function(h){var c,l,a,v,t,o,i='<svg><symbol id="icon-fangda" viewBox="0 0 1024 1024"><path d="M470.624 553.376a32 32 0 0 1 2.656 42.24l-2.656 3.008L269.28 800l145.984 0.032a32 32 0 0 1 31.776 28.256l0.224 3.744a32 32 0 0 1-28.288 31.776l-3.712 0.224H192l-2.4-0.096-4.032-0.544-3.552-0.96-3.552-1.408-3.136-1.664-3.072-2.144-2.88-2.56a32.32 32.32 0 0 1-3.104-3.584l-2.272-3.52-1.728-3.648-1.12-3.36-0.96-4.8L160 832V607.872a32 32 0 0 1 63.776-3.712l0.224 3.712-0.032 146.848 201.408-201.344a32 32 0 0 1 45.248 0zM608.736 160H832l2.4 0.096 4.032 0.544 3.552 0.96 3.552 1.408 3.136 1.664 3.072 2.144 2.88 2.56c1.152 1.12 2.176 2.336 3.104 3.584l2.272 3.52 1.728 3.648 1.12 3.36 0.96 4.8L864 192v224.128a32 32 0 0 1-63.776 3.712l-0.224-3.712v-146.88L598.624 470.624a32 32 0 0 1-47.904-42.24l2.656-3.008L754.688 224h-145.92a32 32 0 0 1-31.808-28.256l-0.224-3.744a32 32 0 0 1 28.288-31.776l3.712-0.224z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M416.4 958h191.2V849.7c0-12.7 6.4-25.5 19.1-31.9 31.9-12.7 63.7-31.9 89.2-51 12.7-6.4 25.5-6.4 38.2 0l95.6 57.3 95.6-165.7-95.6-57.3C837 588.5 830.6 575.7 837 563c0-19.1 6.4-31.9 6.4-51s0-31.9-6.4-51c0-12.7 6.4-25.5 12.7-31.9l95.6-57.3-95.6-165.7-95.6 57.3c-12.7 6.4-25.5 6.4-38.2 0-25.5-19.1-57.3-38.2-89.2-51-12.7-12.7-19.1-25.5-19.1-38.2V66H416.4v108.3c0 12.7-6.4 25.5-19.1 31.9-31.9 12.7-63.7 31.9-89.2 51-12.7 6.4-25.5 6.4-38.2 0l-95.6-51-95.6 165.6 95.6 57.3c12.7 6.4 19.1 19.1 12.7 31.9 0 19.1-6.4 31.9-6.4 51s0 31.9 6.4 51c6.4 12.7 0 25.5-12.7 31.9l-95.6 57.3 95.6 165.7 95.6-57.3c12.7-6.4 25.5-6.4 38.2 0 25.5 19.1 57.3 38.2 89.2 51 12.7 6.4 19.1 19.1 19.1 31.9V958z m223 63.7H384.6c-19.1 0-31.9-12.7-31.9-31.9v-121c-25.5-12.7-51-25.5-70.1-38.2l-101.9 63.7c-12.7 6.4-31.9 6.4-44.6-12.7L8.6 658.6c-12.7-19.1-6.4-38.2 12.7-44.6l101.9-63.7v-76.5L21.4 410.1c-19.1-6.4-25.5-25.5-12.7-44.6l127.4-223c6.4-12.7 25.5-19.1 44.6-6.4l101.9 63.7c19.1-12.7 44.6-31.9 70.1-38.2V34.1c0-19.1 12.7-31.9 31.9-31.9h254.9c19.1 0 31.9 12.7 31.9 31.9v121.1c25.5 12.7 51 25.5 70.1 38.2l101.9-63.7c12.7-6.4 31.9-6.4 44.6 12.7l127.4 223c12.7 19.1 6.4 38.2-12.7 44.6l-101.9 63.7v76.5l101.9 63.7c12.7 6.4 19.1 25.5 12.7 44.6L888 881.5c-6.4 12.7-25.5 19.1-44.6 12.7l-101.9-63.7c-19.1 12.7-44.6 31.9-70.1 38.2v121.1c-0.1 19.2-12.8 31.9-32 31.9zM512 703.2c-108.3 0-191.2-82.8-191.2-191.2S403.7 320.8 512 320.8 703.2 403.7 703.2 512 620.3 703.2 512 703.2z m0-318.6c-70.1 0-127.4 57.3-127.4 127.4S441.9 639.4 512 639.4 639.4 582.1 639.4 512 582.1 384.6 512 384.6z" ></path></symbol><symbol id="icon-quanping1" viewBox="0 0 1024 1024"><path d="M628.053333 628.053333a32 32 0 0 1 45.226667 0l158.72 158.634667V693.333333l0.298667-4.352A32 32 0 0 1 896 693.333333v181.333334l-0.341333 3.84a21.333333 21.333333 0 0 1-20.992 17.493333h-181.333334l-4.352-0.298667a32 32 0 0 1-27.648-31.701333l0.298667-4.352a32 32 0 0 1 31.701333-27.648h93.44l-158.72-158.72-3.114666-3.584a32 32 0 0 1 3.114666-41.642667z m-232.106666 0a32 32 0 0 1 3.114666 41.642667l-3.114666 3.584-158.72 158.72h93.44a32 32 0 0 1 31.701333 27.648l0.298667 4.352a32 32 0 0 1-27.648 31.701333L330.666667 896H149.333333a21.333333 21.333333 0 0 1-20.992-17.493333L128 874.666667v-181.333334a32 32 0 0 1 63.701333-4.352l0.298667 4.352v93.354667l158.72-158.634667a32 32 0 0 1 45.226667 0zM874.666667 128a21.333333 21.333333 0 0 1 20.992 17.493333L896 149.333333v181.333334a32 32 0 0 1-63.701333 4.352L832 330.666667V237.312L673.28 395.946667a32 32 0 0 1-48.341333-41.642667l3.114666-3.584 158.72-158.72h-93.44a32 32 0 0 1-31.701333-27.648L661.333333 160a32 32 0 0 1 27.648-31.701333L693.333333 128h181.333334zM330.666667 128l4.352 0.298667a32 32 0 0 1 27.648 31.701333l-0.298667 4.352a32 32 0 0 1-31.701333 27.648H237.226667l158.72 158.72 3.114666 3.584a32 32 0 0 1-48.341333 41.642667L192 237.312V330.666667l-0.298667 4.352A32 32 0 0 1 128 330.666667V149.333333l0.341333-3.84A21.333333 21.333333 0 0 1 149.333333 128h181.333334z" ></path></symbol><symbol id="icon-font-weight-bold" viewBox="0 0 1024 1024"><path d="M148.945455 55.854545h409.6c102.4 0 186.181818 27.927273 242.036363 83.781819 37.236364 37.236364 65.163636 93.090909 65.163637 148.945454 0 111.709091-65.163636 167.563636-130.327273 204.8 102.4 37.236364 176.872727 102.4 176.872727 223.418182 0 167.563636-130.327273 251.345455-335.127273 251.345455h-418.909091v-912.29091z m549.236363 260.654546c0-74.472727-55.854545-111.709091-158.254545-111.709091h-232.727273v242.036364h223.418182c93.090909-9.309091 167.563636-46.545455 167.563636-130.327273z m-139.636363 260.654545h-251.345455v251.345455h269.963636c111.709091 0 176.872727-46.545455 176.872728-121.018182-9.309091-83.781818-65.163636-130.327273-195.490909-130.327273z" ></path></symbol><symbol id="icon-letter_spacing" viewBox="0 0 1127 1024"><path d="M320.37397 751.711955a32.882959 32.882959 0 0 0 20.669289-6.81147 64.356648 64.356648 0 0 0 15.971723-18.555384 172.400656 172.400656 0 0 0 12.21367-25.601732q5.167322-13.857818 10.569522-28.890028L422.780899 549.012002h281.853933l57.075421 163.005524a67.175187 67.175187 0 0 0 16.44148 29.359785 35.936376 35.936376 0 0 0 29.124906 10.099766q27.480758 0 34.996863-17.615871a61.068352 61.068352 0 0 0 0-43.217603L617.729869 37.447114a52.142978 52.142978 0 0 0-19.02514-27.245881A59.189326 59.189326 0 0 0 563.707866 0.101467a54.961517 54.961517 0 0 0-35.231742 10.099766 53.082491 53.082491 0 0 0-18.555384 27.245881l-222.19485 651.317463q-11.743914 36.171255 0 49.559316a41.338577 41.338577 0 0 0 32.64808 13.388062zM563.707866 108.85011l125.190121 365.705478H438.517744zM1122.483287 906.731618l-132.471348-96.300094a11.743914 11.743914 0 0 0-18.555384 9.395131v61.068352H156.194054v-60.833473a11.743914 11.743914 0 0 0-18.555383-9.395132L4.932444 906.731618a11.743914 11.743914 0 0 0 0 19.02514l132.471348 96.065216a11.743914 11.743914 0 0 0 18.555384-9.395131v-61.068352h815.027622v60.833473a11.743914 11.743914 0 0 0 18.555384 9.395131l132.706227-96.065215a11.743914 11.743914 0 0 0 0.234878-18.790262z" ></path></symbol><symbol id="icon-letter-spacing" viewBox="0 0 1152 1024"><path d="M1024 0h128v1024h-128zM0 0h128v1024H0z m657.92 128H494.08L186.24 864h138.88l64-160h368.64l64 160h138.88z m49.28 448H448l128-313.6z" ></path></symbol><symbol id="icon-zimua" viewBox="0 0 1024 1024"><path d="M481.28 117.76h61.44c22.528 0 43.008 13.824 51.2 34.816l287.232 745.984c1.536 3.584-1.024 7.68-5.12 7.68h-117.248c-2.048 0-4.096-1.536-5.12-3.584l-70.144-192.512c-1.536-4.096-5.632-7.168-10.24-7.168H349.696c-4.608 0-8.704 3.072-10.24 7.168l-70.144 192.512c-1.024 2.048-3.072 3.584-5.12 3.584H147.968c-3.584 0-6.656-4.096-5.12-7.68L430.08 152.576c8.192-20.992 28.16-34.816 51.2-34.816z m-87.04 485.888h235.008c7.68 0 12.8-7.68 10.24-14.848l-124.928-342.016h-4.608L384 588.8c-3.072 7.168 2.56 14.848 10.24 14.848z" ></path></symbol><symbol id="icon-format_letter_spacing_" viewBox="0 0 1024 1024"><path d="M682.666667 704l128 106.666667-128 106.666666v-85.333333H341.333333v85.333333L213.333333 810.666667l128-106.666667v85.333333h341.333334v-85.333333zM170.666667 170.666667v682.666666H85.333333V170.666667h85.333334z m768 0v682.666666h-85.333334V170.666667h85.333334z m-394.666667 0l202.666667 469.333333h-89.6l-38.4-93.866667h-213.333334L366.933333 640H277.333333l202.666667-469.333333h64zM512 255.146667L432.213333 469.333333h159.573334L512 255.146667z" ></path></symbol><symbol id="icon-font_size" viewBox="0 0 1024 1024"><path d="M923.456 713.152V644.48h-68.608v205.76h68.608v68.544h-205.76v-68.544h68.608V644.48h-68.608v68.608h-68.544V644.48c0-37.824 30.72-68.544 68.544-68.544h205.76c37.824 0 68.544 30.72 68.544 68.544v68.608h-68.544zM512 233.152H443.456v548.544H580.48v137.152H169.152v-137.152h137.152V233.152H237.696c-75.712 0-137.152 61.44-137.152 137.152H32V164.48C32 126.72 62.72 96 100.544 96h548.608c37.888 0 68.544 30.72 68.544 68.544v205.76h-68.544c0-75.776-61.44-137.152-137.152-137.152z" ></path></symbol><symbol id="icon-align-center" viewBox="0 0 1024 1024"><path d="M34.45333333 77.86666667h954.56v124.37333333H34.45333333zM213.76 327.25333333H809.6v124.37333334H213.76zM34.45333333 575.46666667h954.56v124.37333333H34.45333333zM213.76 824.74666667H809.6v124.37333333H213.76z" ></path></symbol><symbol id="icon-juyou" viewBox="0 0 1024 1024"><path d="M53.355789 53.894737v108.328421H970.105263V53.894737H53.355789z m431.157895 377.802105H970.105263V323.368421H484.513684v108.328421z m-431.157895 269.473684H970.105263V592.842105H53.355789v108.328421z m431.157895 269.473685H970.105263V862.315789H484.513684v108.328422z" ></path></symbol><symbol id="icon-juzuo" viewBox="0 0 1331 1024"><path d="M898.304 819.712v127.488H153.6v-127.488z m279.296-256v127.488H153.6v-127.488z m-279.296-256V435.2H153.6V307.2zM1177.6 51.2v127.488H153.6V51.2z" ></path></symbol><symbol id="icon-solid_line" viewBox="0 0 1024 1024"><path d="M102.4 460.8h819.2v102.4H102.4z" ></path></symbol><symbol id="icon-huabi" viewBox="0 0 1024 1024"><path d="M884.641557 138.571009C811.672662 65.565275 755.277234 56.513108 726.075145 85.715197l-79.284741 79.283718 211.422224 211.422224 79.31851-79.284741C966.698434 267.936355 957.646268 211.538881 884.641557 138.571009z" ></path><path d="M144.589584 667.200758c-14.600533 14.564717-68.333318 226.898707-68.333318 226.898707-3.193739 8.709359-10.073426 42.179658 0 52.855812 7.039323 7.460925 25.424042 10.638291 52.855812 0 0 0 212.33399-53.730739 226.938616-68.333318l449.309192-449.345008L593.934592 217.85575 144.589584 667.200758zM132.177903 891.034662 185.764356 708.376553l129.110543 129.071657L132.177903 891.034662z" ></path></symbol><symbol id="icon-dianxian" viewBox="0 0 1024 1024"><path d="M228.32 532.76h-6.92c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h6.92c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76zM712.65 532.76h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76z m-96.87 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z m-96.86 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76z m-96.87 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z m-96.86 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76zM802.59 532.76h-6.92c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h6.92c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z" ></path></symbol><symbol id="icon-xuxian" viewBox="0 0 1024 1024"><path d="M304.43 532.76H221.4c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h83.03c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76zM581.19 532.76H442.81c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h138.38c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76zM802.59 532.76h-83.03c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h83.03c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z" ></path></symbol><symbol id="icon-beijingse1" viewBox="0 0 1024 1024"><path d="M882.980571 580.900571c0-25.6-9.289143-51.2-27.940571-67.437714L508.342857 166.692571 398.848 57.270857a33.718857 33.718857 0 0 0-48.932571 0 33.718857 33.718857 0 0 0 0 48.859429L436.150857 192.365714 114.980571 511.122286c-37.302857 37.229714-37.302857 100.059429 0 137.289143l300.178286 300.251428c18.651429 18.578286 44.251429 27.867429 67.510857 27.867429 25.6 0 48.859429-9.289143 67.510857-27.867429l300.178286-300.251428c20.992-18.651429 32.621714-41.910857 32.621714-67.510858zM163.84 559.981714l321.097143-318.902857 318.902857 318.902857c4.681143 4.681143 6.948571 11.629714 6.948571 18.578286h-653.897142c0-4.608 2.267429-11.629714 6.948571-18.578286z m709.778286 214.089143s-62.829714 83.821714-62.829715 118.710857c0 34.889143 27.940571 62.829714 62.902858 62.829715 34.889143 0 62.829714-27.940571 62.829714-62.902858 0-34.816-62.902857-118.637714-62.902857-118.637714z" fill="#606266" ></path></symbol><symbol id="icon-juxing" viewBox="0 0 1024 1024"><path d="M876.4664713541666 302.9680989583333H776.4029947916665V202.90462239583334c0-11.865234374999998-9.8876953125-21.7529296875-21.7529296875-21.7529296875s-21.7529296875 9.8876953125-21.7529296875 21.7529296875v100.0634765625H632.8336588541666c-11.865234374999998 0-21.7529296875 9.8876953125-21.7529296875 21.7529296875s9.8876953125 21.7529296875 21.7529296875 21.7529296875h100.0634765625v100.0634765625c0 11.865234374999998 9.8876953125 21.7529296875 21.7529296875 21.7529296875s21.7529296875-9.8876953125 21.7529296875-21.7529296875V346.4739583333333H876.4664713541666c11.865234374999998 0 21.7529296875-9.8876953125 21.7529296875-21.7529296875 0-12.2607421875-9.8876953125-21.7529296875-21.7529296875-21.7529296875zM146.75455729166666 386.0247395833333c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625h0.7910156249999999v-21.7529296875h36.38671875c10.678710937499998 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-9.0966796875-19.775390625-19.775390625-19.775390625l-56.953125-0.39550781249999994c-11.07421875 0-19.775390625 8.701171874999998-19.775390625 19.775390625v42.71484374999999c0 9.8876953125 8.701171874999998 18.984374999999996 19.775390625 18.984374999999996z m135.26367187500003-41.92382812499999h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-8.701171874999998-19.775390625-19.775390625-19.775390625h-98.876953125c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625 0 11.07421875 9.0966796875 19.775390625 19.775390625 19.775390625z m177.1875 0h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-8.701171874999998-19.775390625-19.775390625-19.775390625h-98.876953125c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625 0.7910156249999999 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625zM774.8209635416665 560.8391927083335c0-11.07421875-8.701171874999998-19.775390625-19.775390625-19.775390625s-19.775390625 8.701171874999998-19.775390625 19.775390625v98.876953125c0 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625s19.775390625-8.701171874999998 19.775390625-19.775390625v-98.876953125z m-19.775390625 157.41210937500003c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625v64.072265625h-79.1015625v1.1865234374999998c-11.07421875 0-19.775390625 8.701171874999998-19.775390625 19.775390625s8.701171874999998 19.775390625 19.775390625 19.775390625h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625V738.8177083333334c0-11.865234374999998-9.0966796875-20.56640625-19.775390625-20.56640625zM581.0221354166666 802.0989583333333L166.52994791666666 801.3079427083333V423.2024739583333h-0.7910156249999999c0-11.07421875-8.701171874999998-19.775390625-19.775390625-19.775390625s-19.775390625 8.701171874999998-19.775390625 19.775390625V821.8743489583334c0 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625H579.8356119791666c11.07421875 0 19.775390625-9.0966796875 19.775390625-19.775390625 0-11.07421875-9.0966796875-19.775390625-18.5888671875-19.775390625z" ></path></symbol><symbol id="icon-text" viewBox="0 0 1024 1024"><path d="M853.333333 1024 170.666667 1024c-93.866667 0-170.666667-76.8-170.666667-170.666667L0 170.666667c0-93.866667 76.8-170.666667 170.666667-170.666667l682.666667 0c93.866667 0 170.666667 76.8 170.666667 170.666667l0 682.666667C1024 947.2 947.2 1024 853.333333 1024zM170.666667 85.333333C123.733333 85.333333 85.333333 123.733333 85.333333 170.666667l0 682.666667c0 46.933333 38.4 85.333333 85.333333 85.333333l682.666667 0c46.933333 0 85.333333-38.4 85.333333-85.333333L938.666667 170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333L170.666667 85.333333z" ></path><path d="M725.333333 341.333333 298.666667 341.333333C273.066667 341.333333 256 324.266667 256 298.666667s17.066667-42.666667 42.666667-42.666667l426.666667 0c25.6 0 42.666667 17.066667 42.666667 42.666667S750.933333 341.333333 725.333333 341.333333z" ></path><path d="M298.666667 384C273.066667 384 256 366.933333 256 341.333333L256 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 42.666667C341.333333 366.933333 324.266667 384 298.666667 384z" ></path><path d="M725.333333 384c-25.6 0-42.666667-17.066667-42.666667-42.666667L682.666667 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 42.666667C768 366.933333 750.933333 384 725.333333 384z" ></path><path d="M512 768c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 426.666667C554.666667 750.933333 537.6 768 512 768z" ></path><path d="M554.666667 768l-85.333333 0c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667l85.333333 0c25.6 0 42.666667 17.066667 42.666667 42.666667S580.266667 768 554.666667 768z" ></path></symbol><symbol id="icon-picture" viewBox="0 0 1024 1024"><path d="M875.633778 64H148.366222A98.602667 98.602667 0 0 0 49.777778 162.588444v698.823112a98.602667 98.602667 0 0 0 98.588444 98.602666h727.267556a98.602667 98.602667 0 0 0 98.588444-98.602666h0.014222V162.588444A98.602667 98.602667 0 0 0 875.633778 64zM106.666667 861.411556v-136.405334l201.372444-288.042666c6.215111-8.888889 14.876444-14.250667 24.405333-15.089778 9.628444-0.952889 19.015111 2.929778 26.680889 10.595555l176.924445 176.910223-218.624 293.745777H148.366222A41.713778 41.713778 0 0 1 106.666667 861.411556z m810.680889 0a41.713778 41.713778 0 0 1-41.713778 41.713777H352.867556l252.202666-338.816c6.599111-8.832 15.815111-14.193778 25.998222-15.089777 10.268444-0.867556 20.181333 2.773333 28.174223 10.339555l155.562666 146.744889c5.688889 5.390222 14.705778 5.105778 20.110223-0.583111a14.250667 14.250667 0 0 0-0.583112-20.110222L678.784 538.865778c-13.994667-13.198222-31.886222-19.626667-50.218667-17.976889-18.360889 1.607111-34.801778 10.993778-46.307555 26.439111l-29.027556 38.997333-173.980444-173.966222c-13.738667-13.738667-31.232-20.366222-49.294222-18.816-18.062222 1.578667-34.133333 11.221333-45.226667 27.121778L106.666667 675.370667V162.588444A41.699556 41.699556 0 0 1 148.366222 120.888889h727.267556a41.699556 41.699556 0 0 1 41.699555 41.699555h0.014223v698.823112z" fill="" ></path><path d="M868.636444 717.937778a14.222222 14.222222 0 0 0-19.527111 20.664889l16.995556 16.056889a14.208 14.208 0 0 0 20.096-0.583112 14.193778 14.193778 0 0 0-0.554667-20.081777l-17.009778-16.056889zM636.743111 175.957333c-67.783111 0-122.908444 55.125333-122.908444 122.894223 0 67.768889 55.125333 122.908444 122.908444 122.908444 67.754667 0 122.908444-55.139556 122.908445-122.908444s-55.139556-122.894222-122.908445-122.894223z m0 217.372445c-52.081778 0-94.464-42.368-94.464-94.464s42.368-94.449778 94.464-94.449778 94.464 42.353778 94.464 94.449778-42.368 94.464-94.464 94.464z" fill="" ></path></symbol><symbol id="icon-shuru" viewBox="0 0 1024 1024"><path d="M970.666667 204.8l-151.466667-151.466667L701.866667 170.666667H64c-12.8 0-21.333333 8.533333-21.333333 21.333333v768c0 12.8 8.533333 21.333333 21.333333 21.333333h576c6.4 0 10.666667-2.133333 14.933333-6.4l192-192c4.266667-4.266667 6.4-8.533333 6.4-14.933333V322.133333l117.333334-117.333333z m-529.066667 469.333333l-98.133333-85.333333L742.4 189.866667l91.733333 91.733333-392.533333 392.533333z m-123.733333-49.066666l89.6 76.8-121.6 34.133333 32-110.933333zM910.933333 204.8l-46.933333 46.933333-91.733333-91.733333 46.933333-46.933333 91.733333 91.733333zM661.333333 908.8V789.333333h119.466667L661.333333 908.8z m149.333334-162.133333h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333v170.666667H85.333333V213.333333h573.866667l-128 128H170.666667v42.666667h317.866666l-128 128H170.666667v42.666667h147.2l-32 32-61.866667 213.333333 213.333333-61.866667 183.466667-183.466666H725.333333v-42.666667h-61.866666l147.2-147.2V746.666667z" ></path></symbol><symbol id="icon-tree" viewBox="0 0 1024 1024"><path d="M448.84 880.29H175.37c-20.14 0-36.46-16.33-36.46-36.46 0-20.14 16.33-36.46 36.46-36.46h273.48c20.14 0 36.46 16.33 36.46 36.46 0 20.14-16.33 36.46-36.47 36.46zM448.84 588.58H175.37c-20.14 0-36.46-16.33-36.46-36.46 0-20.14 16.33-36.46 36.46-36.46h273.48c20.14 0 36.46 16.33 36.46 36.46 0 20.14-16.33 36.46-36.47 36.46z" ></path><path d="M138.9 843.83V296.88c0-20.14 16.33-36.46 36.46-36.46 20.14 0 36.46 16.33 36.46 36.46v546.95c0 20.14-16.33 36.46-36.46 36.46-20.13 0-36.46-16.32-36.46-36.46z" ></path><path d="M211.83 348.16H138.9c-40.11 0-72.93-32.82-72.93-72.93V202.3c0-40.11 32.82-72.93 72.93-72.93h72.93c40.11 0 72.93 32.82 72.93 72.93v72.93c0 40.11-32.82 72.93-72.93 72.93zM922.87 625.05H605.12c-20.05 0-36.46-16.41-36.46-36.46v-72.93c0-20.05 16.41-36.46 36.46-36.46h317.75c20.05 0 36.46 16.41 36.46 36.46v72.93c0 20.05-16.41 36.46-36.46 36.46zM921.67 311.69h-508.1c-20.71 0-37.66-16.95-37.66-37.66V203.5c0-20.71 16.95-37.66 37.66-37.66h508.1c20.71 0 37.66 16.95 37.66 37.66v70.54c0 20.71-16.94 37.65-37.66 37.65zM922.87 916.76H605.12c-20.05 0-36.46-16.41-36.46-36.46v-72.93c0-20.05 16.41-36.46 36.46-36.46h317.75c20.05 0 36.46 16.41 36.46 36.46v72.93c0 20.05-16.41 36.46-36.46 36.46z" ></path></symbol><symbol id="icon-chaxunsousuo" viewBox="0 0 1024 1024"><path d="M724.173722 608.066299m33.939704 33.939705l203.638226 203.638225q33.939704 33.939704 0 67.879409l0 0q-33.939704 33.939704-67.879409 0l-203.638225-203.638226q-33.939704-33.939704 0-67.879408l0 0q33.939704-33.939704 67.879408 0Z" ></path><path d="M48.436376 928.00402m47.99799 0l287.98794 0q47.99799 0 47.99799 47.99799l0 0q0 47.99799-47.99799 47.99799l-287.98794 0q-47.99799 0-47.99799-47.99799l0 0q0-47.99799 47.99799-47.99799Z" ></path><path d="M464.418957 832.00804a415.982581 415.982581 0 1 1 293.747699-121.594909A415.342608 415.342608 0 0 1 464.418957 832.00804z m0-735.969182A319.986601 319.986601 0 1 0 688.409577 192.034839a319.986601 319.986601 0 0 0-223.99062-95.995981z" ></path></symbol><symbol id="icon-jidu" viewBox="0 0 1024 1024"><path d="M153.850705 812.896572v-537.121614c0.409313-0.511642 0.920955-0.920955 0.920955-1.432598 1.330269-12.688718 6.856001-23.637854 15.144599-32.949735 13.609673-15.451584 31.005496-22.716898 51.573498-22.716898H284.626362v-5.62806-44.205856c0-1.637254 0.511642-3.376836 0.716298-5.01409 0.920955-6.037374 6.242031-7.469971 10.539822-9.925852h9.516539c10.130509 3.581493 12.688718 11.563106 12.381732 21.386629-0.409313 12.177076-0.102328 24.45648-0.102328 36.633557v6.446687h389.359448c0-14.4283 0.306985-28.549615-0.102328-42.67093-0.306985-10.02818 1.841911-18.112122 12.381733-21.898272h9.516538c8.902568 3.683821 12.074748 10.437494 11.460778 19.954032-0.61397 10.64215-0.204657 21.181973-0.204657 31.824124v13.098031h5.730389c19.851704 0 39.703408-0.102328 59.555111 0.102328 4.093135 0 8.18627 0.204657 12.177076 1.023284 20.874988 4.809433 37.145198 16.065554 46.559409 35.81493 2.353553 4.911762 3.990806 10.232837 5.935045 15.349255v546.740482c-0.61397 1.739582-1.330269 3.581493-1.944239 5.423403-7.879285 23.84251-23.740182 39.191766-48.401319 44.922155-2.353553 0.511642-4.604777 1.330269-6.856001 1.944239H211.973219c-0.306985-0.306985-0.511642-0.818627-0.920956-0.920955-9.209553-0.61397-17.498151-3.888478-25.377435-8.697912-12.074748-7.265314-21.181973-16.986509-26.298392-30.186869-2.148896-5.525732-3.683821-11.460777-5.525731-17.293495z m33.25672-397.955031V803.482362c0 18.419107 14.121315 33.359049 33.461377 33.359049 194.526232 0.102328 389.052463 0.102328 583.578695 0 19.237734 0 33.563705-14.325972 33.563705-33.666034 0.102328-127.603478 0.102328-255.206955 0.102329-382.810432v-5.321076c-217.038473-0.102328-433.565304-0.102328-650.706106-0.102328z m0-33.666034h650.501449c0.102328-0.920955 0.204657-1.534926 0.204657-2.148896 0-31.721795 0.102328-63.443589-0.102329-95.165384 0-2.762866-0.61397-5.62806-1.534925-8.186269-5.116419-15.963226-16.679524-23.126212-31.926452-23.637854-20.056361-0.511642-40.112721-0.204657-60.169082-0.102328-1.22794 0-2.455881 0.204657-3.888478 0.409313 0 17.088838 0.204657 33.870691-0.204656 50.754872-0.102328 3.172179-1.534926 6.856001-3.683822 9.209553-5.62806 6.037374-12.688718 6.549016-20.261017 3.581493-5.01409-1.944239-9.107225-8.18627-9.107225-14.632957-0.102328-13.302688 0-26.707705 0-40.010393v-8.800239H317.576097c0 15.758569 0.204657 31.107825-0.102329 46.45708-0.204657 10.64215-3.581493 16.679524-14.939942 18.726091-6.856001 1.22794-18.419107-3.78615-18.316778-14.4283 0.204657-15.246927 0.102328-30.391526 0.102328-45.740781v-5.321076H224.150295c-2.967523 0-5.832717 0.61397-8.902568 0.818627-17.805136 1.22794-28.754272 19.135405-28.549616 33.461377 0.409313 29.879884 0.102328 59.65744 0.102329 89.537324 0.306985 1.330269 0.306985 3.172179 0.306985 5.218747z m-33.25672 431.621065c1.841911 5.730389 3.479165 11.767763 5.62806 17.395823 5.116419 13.20036 14.223643 23.023883 26.298391 30.18687 7.879285 4.707105 16.167882 7.981613 25.377436 8.697911 0.306985 0 0.61397 0.511642 0.920955 0.920955h-58.122514c-0.102328-19.135405-0.102328-38.066154-0.102328-57.201559z m659.097032 57.201559c2.353553-0.61397 4.604777-1.432597 6.856-1.944239 24.661137-5.832717 40.419706-21.181973 48.401319-44.922154 0.61397-1.841911 1.330269-3.581493 1.944239-5.423404v52.392126c-19.135405-0.102328-38.168482-0.102328-57.201558-0.102329z" fill="" ></path><path d="M227.424803 623.179774l10.02818-2.353552c25.275107-6.242031 44.410513-13.81433 56.792245-22.921555 12.893375-9.004897 23.433197-17.191166 31.517138-24.763466h-30.08454c-13.81433 0-33.359049 0.511642-58.224843 1.944239 0.511642-3.376836 0.511642-6.242031 0.920955-8.083941s0.511642-3.78615 0.511642-5.730389-0.511642-6.242031-1.432597-13.302688c32.949735 1.432597 52.494454 1.944239 58.224843 1.944239h59.145797v-22.512241c-25.275107 1.432597-39.601079 1.944239-42.977915 1.944239l-26.707705 0.409313-13.405016 0.511642c-0.920955-3.78615-2.353553-7.674628-3.376836-10.949136-0.920955-3.376836-4.297792-8.595583-9.107225-15.758569l10.02818 0.920956c6.242031 0.920955 18.112122 0.920955 35.81493 0.920955 20.568002 0 45.331468-0.920955 74.495053-3.376836 29.061257-2.353553 50.140901-5.218747 63.44359-8.595583l9.516538-2.353553c5.218747 9.004897 10.949136 17.60048 17.191166 26.196063l-30.493854 2.353553-32.438094 2.865194-29.572898 2.353552v23.842511h54.438692c5.218747 0 25.275107-0.511642 60.169082-1.944239-0.920955 3.78615-1.432597 7.162986-1.432597 8.595583-0.511642 1.944239-0.511642 3.376836-0.511642 3.786149 0 0.920955 0.511642 5.218747 1.944239 13.302689-24.865794-1.432597-44.819826-1.944239-60.169082-1.944239h-26.298391c6.242031 6.651344 15.246927 14.325972 26.707705 23.330868 11.972419 9.004897 31.517138 15.758569 59.145798 20.05636l9.107225 1.432598c-5.218747 5.218747-8.595583 9.516538-10.949136 12.893374-2.353553 3.376836-4.809433 8.595583-6.651344 15.246927l-9.107225-3.786149c-30.493854-13.302688-50.550215-24.354152-61.090037-32.847407-10.02818-8.595583-17.191166-15.246927-20.977316-19.544719L382.452283 575.801739l-3.786149-4.809434h-1.944239v29.982213c0 3.78615 0.511642 10.949136 1.432597 21.488958-6.651344-0.920955-10.539822-0.920955-12.381733-0.920956-1.432597 0-5.730389 0.511642-12.893375 0.920956 0.920955-10.02818 1.944239-17.191166 1.944239-21.488958V570.787649c-4.297792 4.297792-9.107225 9.004897-14.837613 14.735285s-11.460777 11.460777-18.112122 17.60048c-6.651344 5.730389-18.623763 14.325972-36.224243 24.763465 10.949136 0.920955 20.977316 1.432597 29.572899 1.432597h95.47237c10.539822 0 22.921555-0.511642 36.735884-1.432597-18.112122 14.735285-30.493854 24.763466-37.65684 29.061257L378.666134 676.595183v0.511642h47.68502c15.246927 0 35.81493-0.511642 62.010992-1.944239-0.511642 4.297792-0.920955 7.162986-0.920955 9.004897 0 1.944239-0.511642 3.78615-0.511642 5.730388s0.511642 6.242031 1.432597 12.893375c-24.865794-1.432597-45.331468-2.353553-62.010992-2.353552H378.666134v33.359048c0 8.083941-1.432597 14.735285-4.297792 19.033077-2.865194 4.809433-17.191166 7.162986-43.387229 8.083941 0-3.78615-0.511642-7.162986-0.920955-9.004896-0.511642-2.353553-0.920955-4.297792-1.944239-6.242031-0.920955-2.353553-4.297792-8.083941-10.539822-17.191166 11.972419 2.353553 20.977316 3.376836 27.219346 2.865194 3.376836 0 5.730389-0.511642 7.162986-1.944239 1.432597-1.432597 1.944239-4.809433 1.944239-9.516538v-19.544719h-51.573498c-11.972419 0-31.926451 0.920955-60.169082 2.353553 0-3.376836 0.511642-7.162986 0.511642-10.437494s0.511642-6.242031 0.511642-7.674628l-0.920956-9.516538c25.275107 1.432597 45.331468 1.944239 60.169082 1.944239h50.550215v-6.242031l-0.511642-3.376836 3.78615-0.920955c7.674628-2.353553 18.112122-8.083941 31.926451-17.60048h-73.47177c-9.516538 0-20.056361 0.511642-31.005496 1.432597 0.511642-2.865194 0.920955-5.218747 0.920956-7.674628 0.511642-1.944239 0.511642-3.376836 0.511641-4.809433l-0.511641-2.865194-0.511642-7.674628c-9.516538 5.730389-18.623763 10.437494-26.707705 14.735285l-7.674628 3.78615c-3.376836-6.242031-5.730389-10.02818-7.674627-11.870091-1.330269-0.204657-6.549016-4.502448-14.632957-10.744479zM522.744479 740.448086l7.162986-10.949135c2.353553-3.78615 5.218747-9.516538 8.595583-16.167883s6.651344-16.167882 10.539822-28.549615c3.78615-11.870091 6.242031-28.140302 6.651344-48.094334 0.920955-20.056361 0.920955-34.791646 1.432597-44.819826V568.536425L555.182572 525.660837c18.112122 0.920955 28.651944 1.432597 32.438094 1.432598h71.629859c-2.353553-5.730389-5.218747-11.870091-8.595583-18.623764l-4.297792-7.674628c8.083941-1.432597 17.191166-4.297792 26.707705-8.595583l11.972419 35.303288h36.224243c10.02818 0 27.62866-0.511642 52.494454-1.944239-0.511642 3.376836-0.920955 5.730389-0.920956 7.674628v4.297791c0 0.920955 0.511642 4.809433 1.432598 10.949136-11.972419 0-22.409913-0.511642-32.438094-0.920955-10.02818-0.511642-16.679524-0.511642-20.568002-0.511642h-140.803837V578.87159h43.387229v-8.083941c0-3.78615 0-6.651344-0.511642-8.595583l-0.920956-9.004897c6.242031 0.920955 10.02818 1.432597 10.949136 1.432597s5.730389-0.511642 13.405016-1.432597c-0.920955 4.297792-0.920955 7.162986-1.432597 9.516538v15.758569h58.736485v-6.24203c0-5.218747 0-8.595583-0.511642-10.02818l-0.920955-9.004897c6.651344 0.920955 10.949136 1.432597 12.381732 1.432597 1.432597 0 5.730389-0.511642 12.893375-1.432597-0.920955 4.297792-0.920955 7.162986-1.432597 9.516538v15.758569h20.568002c9.516538 0 20.568002-0.511642 31.926452-1.432597-0.511642 3.376836-0.511642 5.730389-0.511642 7.162986 0 1.432597 0 3.376836-0.511642 4.809434-0.511642 1.432597 0 2.353553 0 2.865194l0.920955 7.674628c-11.460777-0.920955-22.0006-1.432597-31.926451-1.432598H726.582592V616.733087c0 6.651344 0 10.437494 0.511642 12.381733l0.920955 12.893374c-9.107225-0.920955-18.112122-1.432597-26.298391-1.432597h-53.006095c-8.083941 0-16.679524 0.511642-25.78675 1.432597 0.511642-5.218747 0.511642-9.516538 0.920956-12.893374 0-3.376836 0.511642-7.162986 0.511641-11.460778v-19.544719h-43.89887c0 6.242031-0.511642 12.381733-0.511642 18.623764s-0.920955 15.246927-1.944239 27.62866c-0.920955 11.870091-2.353553 22.409913-3.376836 31.005496-1.432597 8.595583-4.297792 20.056361-8.595584 34.280004-4.297792 14.325972-9.107225 26.707705-13.81433 36.224243l-5.218746 11.460777c-2.865194-2.865194-5.218747-5.218747-7.162986-6.651344-2.762866-2.148896-7.981613-5.525732-17.088838-10.232837z m53.517737-9.107225c23.433197 0 48.196662-5.218747 74.495054-15.758569-8.083941-8.083941-14.325972-14.735285-18.112122-19.544718-3.78615-5.218747-8.083941-12.893375-13.405016-22.409913l-23.433197 1.944239c0.511642-3.376836 0.511642-5.730389 0.511642-7.162986 0-1.432597 0-2.865194 0.511642-4.297792 0-1.432597 0-4.809433-0.920955-10.949135 12.381733 0.920955 24.354152 1.432597 35.303287 1.432597h79.202159c10.949136 0 22.409913-0.511642 34.382332-1.432597-4.809433 9.004897-10.02818 17.60048-15.758569 25.684421-5.730389 8.083941-17.702808 20.056361-34.791646 36.735884 15.758569 6.242031 28.140302 10.437494 37.65684 11.870091 9.107225 1.432597 16.679524 2.353553 22.921555 2.865195l16.679525 0.920955 8.083941 0.920955c-3.376836 3.376836-9.107225 10.437494-16.679524 20.465674l-3.78615 7.162986-9.107225-2.865194c-0.511642 0-8.083941-1.944239-22.921555-6.242031-14.837614-4.297792-32.438093-11.460777-53.415409-21.898271-27.62866 12.381733-53.927051 21.488958-79.202159 26.707705l-9.107225 1.944239c-1.944239-2.353553-3.376836-4.809433-4.809433-7.674628-1.432597-2.865194-2.353553-4.297792-2.865194-5.218747l-4.297792-5.730389-6.651344-8.083941h9.516538v0.61397z m126.887179-57.610872h-58.736484c2.865194 6.242031 6.242031 11.460777 10.02818 16.167882 3.78615 4.809433 9.516538 9.516538 16.679525 14.735286 5.218747-2.865194 10.02818-6.242031 14.837613-10.02818 4.809433-3.274508 10.539822-10.437494 17.191166-20.874988z m-56.792245-50.550215h58.736484v-25.275107h-58.736484v25.275107z" fill="" ></path></symbol><symbol id="icon-shuzishunxu" viewBox="0 0 1024 1024"><path d="M862.138182 252.16h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182z m0 290.909091h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182z m0 290.909091h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182zM149.178182 294.865455V139.636364h43.962182v155.229091h-43.985455z m76.776727 247.854545v44.916364H125.626182l50.059636-93.323637c2.304-4.352 3.490909-8.075636 3.490909-11.170909 0-5.748364-3.584-8.610909-10.682182-8.610909a10.100364 10.100364 0 0 0-10.496 10.24 12.334545 12.334545 0 0 0 3.956364 8.843636l-19.781818 35.374546C124.951273 517.818182 116.363636 502.458182 116.363636 482.909091c0-14.894545 5.236364-27.671273 15.685819-38.283636a51.688727 51.688727 0 0 1 38.260363-15.941819c15.383273 0 28.229818 5.376 38.562909 16.174546 10.309818 10.775273 15.453091 23.458909 15.453091 38.050909 0 8.541091-1.908364 16.523636-5.818182 23.970909L200.145455 542.72h25.809454z m-95.976727 177.431273h82.129454l-25.134545 59.810909c8.843636 6.050909 15.36 12.730182 19.549091 20.014545 4.189091 7.307636 6.283636 15.988364 6.283636 26.088728 0 15.499636-5.376 28.043636-16.174545 37.585454-10.775273 9.541818-24.692364 14.312727-41.774546 14.312727a92.858182 92.858182 0 0 1-25.367272-3.723636v-43.752727c6.842182 3.072 13.032727 4.608 18.618181 4.608 5.445818 0 9.658182-1.536 12.683637-4.724364 3.025455-3.165091 4.561455-7.726545 4.561454-13.637818a18.152727 18.152727 0 0 0-8.029091-15.36c-5.376-3.863273-12.520727-5.818182-21.527272-5.818182l11.380363-30.487273h-17.221818v-44.916363z" fill="#797979" ></path></symbol><symbol id="icon-Group-" viewBox="0 0 1024 1024"><path d="M160 352a32 32 0 0 1-32-32V192a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64V224H192zM416 288a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64zM160 608a32 32 0 0 1-32-32v-128a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64v-64H192zM416 544a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64zM160 864a32 32 0 0 1-32-32v-128a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64v-64H192zM416 800a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64z" ></path></symbol><symbol id="icon-riqi" viewBox="0 0 1024 1024"><path d="M819.6 202.6H700.7v-63.8c0-17.6-14.3-31.9-31.9-31.9-17.6 0-31.9 14.3-31.9 31.9v63.8h-255v-63.8c0-17.6-14.3-31.9-31.9-31.9s-31.9 14.3-31.9 31.9v63.8H199.3C140.7 202.6 93 250.3 93 308.9v504.8C93 872.3 140.7 920 199.3 920h620.3c58.6 0 106.3-47.7 106.3-106.3V308.9c0-58.6-47.7-106.3-106.3-106.3z m42.5 611.1c0 23.4-19.1 42.5-42.5 42.5H199.3c-23.4 0-42.5-19.1-42.5-42.5V308.9c0-23.4 19.1-42.5 42.5-42.5h118.8v47.8c0 17.6 14.3 31.9 31.9 31.9s31.9-14.3 31.9-31.9v-47.8H637v47.8c0 17.6 14.3 31.9 31.9 31.9 17.6 0 31.9-14.3 31.9-31.9v-47.8h118.8c23.4 0 42.5 19.1 42.5 42.5v504.8z" ></path><path d="M340.1 409.9H238c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM560.5 409.9H458.4c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM781 409.9H678.8c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4H781c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.6-23.4-23.4-23.4zM340.1 632.9H238c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM560.5 632.9H458.4c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM781 632.9H678.8c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4H781c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.6-23.4-23.4-23.4z" ></path></symbol><symbol id="icon-zuoce-qujian" viewBox="0 0 1024 1024"><path d="M915.456 198.656c-49.3568 0-90.9312 32.768-104.0384 77.824h-195.1744c-13.312-45.056-54.8864-77.824-104.0384-77.824-49.3568 0-90.9312 32.768-104.0384 77.824H30.72c-16.9984 0-30.72 13.7216-30.72 30.72s13.7216 30.72 30.72 30.72h377.2416c13.312 45.056 54.8864 77.824 104.0384 77.824 49.3568 0 90.9312-32.768 104.0384-77.824h195.1744c13.312 45.056 54.8864 77.824 104.0384 77.824 60.0064 0 108.544-48.5376 108.544-108.544 0.2048-60.0064-48.3328-108.544-108.3392-108.544z m-403.456 155.648c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z m403.456 0c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104zM993.28 686.08H616.0384c-13.312-45.056-54.8864-77.824-104.0384-77.824-49.3568 0-90.9312 32.768-104.0384 77.824h-193.1264c-13.312-45.056-54.8864-77.824-104.0384-77.824-55.7056 0-101.376 41.7792-107.7248 95.6416-1.8432 3.8912-2.8672 8.192-2.8672 12.9024s1.024 9.0112 2.8672 12.9024C9.216 783.5648 54.8864 825.344 110.592 825.344c49.3568 0 90.9312-32.768 104.0384-77.824h193.1264c13.312 45.056 54.8864 77.824 104.0384 77.824 49.3568 0 90.9312-32.768 104.0384-77.824H993.28c16.9984 0 30.72-13.7216 30.72-30.72s-13.7216-30.72-30.72-30.72zM110.592 763.904c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z m401.408 0c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z" fill="#646464" ></path></symbol><symbol id="icon-liebiao" viewBox="0 0 1024 1024"><path d="M92.5 573.1h179.4c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9zM950.9 823L848 720c31.9-40.7 51.7-91.2 51.7-146.9 0-132.1-107.1-239.2-239.2-239.2S421.3 441 421.3 573.1s107.1 239.2 239.2 239.2c55.7 0 106.3-19.9 146.9-51.7l103 103c11.2 11.2 29.3 11.2 40.5 0 11.2-11.3 11.2-29.4 0-40.6zM788.7 698.3c-0.5 0.5-1.3 0.7-1.7 1.2-0.5 0.5-0.7 1.3-1.2 1.7-32.4 31.6-76.4 51.2-125.3 51.2-99.1 0-179.4-80.3-179.4-179.4 0-99.1 80.3-179.4 179.4-179.4S839.9 474 839.9 573.1c0.1 48.8-19.6 92.9-51.2 125.2z m-696.2-484h538.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9z m239.2 119.6H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9h239.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9z m0 358.8H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9h239.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9z m0 0" ></path></symbol><symbol id="icon-xialakuang" viewBox="0 0 1024 1024"><path d="M970.105263 404.210526H53.894737v-323.368421h916.210526v323.368421z m-862.315789-53.894737h808.421052v-215.578947H107.789474v215.578947z" fill="#444A5C" ></path><path d="M970.105263 943.157895H53.894737v-592.842106h916.210526v592.842106z m-862.315789-53.894737h808.421052v-485.052632H107.789474v485.052632zM754.526316 307.2L662.905263 215.578947l37.726316-37.726315 53.894737 53.894736 53.894737-53.894736 37.726315 37.726315z" fill="#444A5C" ></path><path d="M264.084211 781.473684h485.052631v-53.894737h-485.052631v53.894737z m0-107.789473h485.052631v-53.894737h-485.052631v53.894737z m0-161.684211v53.894737h485.052631v-53.894737h-485.052631z" fill="#444A5C" ></path></symbol><symbol id="icon-xialashu" viewBox="0 0 1024 1024"><path d="M970.105263 323.368421H53.894737V53.894737h916.210526v269.473684zM107.789474 269.473684h808.421052V107.789474H107.789474v161.68421zM215.578947 538.947368H53.894737V377.263158h161.68421v161.68421zM107.789474 485.052632h53.894737V431.157895H107.789474v53.894737z" fill="#444A5C" ></path><path d="M269.473684 431.157895h431.157895v53.894737H269.473684V431.157895zM538.947368 646.736842h431.157895v53.894737h-431.157895v-53.894737zM538.947368 862.315789h431.157895v53.894737h-431.157895v-53.894737zM107.789474 485.052632h53.894737v431.157894H107.789474V485.052632zM161.684211 700.631579v-53.894737h161.68421v53.894737H161.684211M161.684211 916.210526v-53.894737h161.68421v53.894737H161.684211" fill="#444A5C" ></path><path d="M485.052632 754.526316H323.368421v-161.684211h161.684211v161.684211z m-107.789474-53.894737h53.894737v-53.894737H377.263158v53.894737zM485.052632 970.105263H323.368421v-161.68421h161.684211v161.68421z m-107.789474-53.894737h53.894737v-53.894737H377.263158v53.894737z" fill="#444A5C" ></path><path d="M754.526316 161.684211h107.789473v53.894736h-107.789473V161.684211z" fill="#444A5C" ></path></symbol><symbol id="icon-zhongzhi" viewBox="0 0 1024 1024"><path d="M624.593455 23.272727a93.090909 93.090909 0 0 1 93.090909 93.090909v168.587637l143.406545 0.023272a116.363636 116.363636 0 0 1 116.247273 111.313455l0.116363 5.050182V861.090909a116.363636 116.363636 0 0 1-116.363636 116.363636H162.909091a116.363636 116.363636 0 0 1-116.363636-116.363636V401.338182a116.363636 116.363636 0 0 1 116.363636-116.363637l146.664727-0.023272V116.363636a93.090909 93.090909 0 0 1 88.459637-92.974545l4.654545-0.116364zM139.636364 581.818182v279.272727a23.272727 23.272727 0 0 0 23.272727 23.272727h302.545454v-162.909091a46.545455 46.545455 0 1 1 93.09091 0v162.909091h93.090909v-162.909091a46.545455 46.545455 0 1 1 93.090909 0v162.909091h116.363636a23.272727 23.272727 0 0 0 23.272727-23.272727V581.818182H139.636364z m0-93.090909h744.727272v-87.389091a23.272727 23.272727 0 0 0-23.272727-23.272727h-166.679273a69.818182 69.818182 0 0 1-69.818181-69.818182V116.363636h-221.905455v191.883637a69.818182 69.818182 0 0 1-69.818182 69.818182H162.909091a23.272727 23.272727 0 0 0-23.272727 23.272727V488.727273z" ></path></symbol><symbol id="icon-ri" viewBox="0 0 1024 1024"><path d="M408.222897 789.115586v-35.345655h217.15862v34.886621h33.474207V388.378483h-283.68331v400.737103h33.050483z m217.15862-237.779862h-217.15862v-130.824827h217.15862v130.824827z m0 170.301793h-217.15862v-138.169379h217.15862v138.169379z" ></path><path d="M917.645241 144.772414a70.62069 70.62069 0 0 1 70.62069 70.620689v681.489656a70.62069 70.62069 0 0 1-70.62069 70.620689H94.384552a70.62069 70.62069 0 0 1-70.62069-70.620689V215.393103a70.62069 70.62069 0 0 1 70.62069-70.620689h823.260689z m0 45.903448H94.384552a24.717241 24.717241 0 0 0-24.50538 21.362759l-0.211862 3.354482v681.489656a24.717241 24.717241 0 0 0 21.362759 24.505379l3.354483 0.211862h823.260689a24.717241 24.717241 0 0 0 24.50538-21.362759l0.211862-3.354482V215.393103a24.717241 24.717241 0 0 0-21.362759-24.505379l-3.354483-0.211862z" ></path><path d="M312.214069 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656276 3.389793l-0.247172-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724zM691.023448 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656275 3.389793l-0.247173-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724z" ></path></symbol><symbol id="icon-nian" viewBox="0 0 1024 1024"><path d="M715.702857 32.365714a23.771429 23.771429 0 0 1 23.515429 20.260572l0.256 3.510857V149.942857l210.944 0.036572a73.142857 73.142857 0 0 1 73.142857 73.142857v705.828571a73.142857 73.142857 0 0 1-73.142857 73.142857H97.755429a73.142857 73.142857 0 0 1-73.142858-73.142857V223.085714a73.142857 73.142857 0 0 1 73.142858-73.142857h201.837714V56.100571a23.771429 23.771429 0 0 1 47.286857-3.510857l0.256 3.510857V149.942857h344.795429V56.137143a23.771429 23.771429 0 0 1 23.771428-23.771429zM299.593143 197.485714l-201.874286 0.036572a25.6 25.6 0 0 0-25.344 22.125714l-0.219428 3.474286v705.828571a25.6 25.6 0 0 0 22.125714 25.380572l3.474286 0.219428h852.662857a25.6 25.6 0 0 0 25.380571-22.125714l0.219429-3.474286V223.085714a25.6 25.6 0 0 0-22.125715-25.380571l-3.474285-0.219429H739.474286v45.933715a23.771429 23.771429 0 0 1-47.286857 3.510857l-0.256-3.510857V197.485714H347.136v45.970286a23.771429 23.771429 0 0 1-47.286857 3.510857l-0.256-3.510857V197.485714z m112.274286 181.504l35.657142 6.656c-5.229714 18.066286-11.410286 34.706286-18.066285 50.870857h295.241143v33.28h-149.284572v76.068572h132.644572v32.804571h-132.644572v102.692572h164.498286v33.28h-164.498286v106.020571h-34.706286V714.605714H321.097143v-33.28h78.445714v-135.497143h141.202286v-76.068571h-127.890286a285.805714 285.805714 0 0 1-75.117714 84.626286l-22.820572-28.525715c48.018286-36.132571 80.347429-85.101714 96.987429-146.907428z m128.841142 199.68H433.737143v102.692572h106.971428v-102.692572z" ></path></symbol><symbol id="icon-yue" viewBox="0 0 1024 1024"><path d="M371.959172 792.328828c29.837241-39.017931 47.315862-88.134621 52.788966-147.809104h197.843862v91.347862c0 13.312-5.508414 20.197517-16.066207 20.197517-17.44331 0-36.722759-0.918069-57.838345-1.836137l9.18069 32.591448h59.215448c25.705931 0 39.017931-13.312 39.017931-39.476966V388.378483h-263.026758v224.008827c-0.918069 63.346759-16.066207 115.67669-46.362483 156.989793l25.246896 22.951725z m250.632828-291.945931h-195.972414v-80.331035h195.972414v80.331035z m0 113.381517h-195.972414v-82.626207h195.972414v82.626207z" ></path><path d="M917.645241 144.772414a70.62069 70.62069 0 0 1 70.62069 70.620689v681.489656a70.62069 70.62069 0 0 1-70.62069 70.620689H94.384552a70.62069 70.62069 0 0 1-70.62069-70.620689V215.393103a70.62069 70.62069 0 0 1 70.62069-70.620689h823.260689z m0 45.903448H94.384552a24.717241 24.717241 0 0 0-24.50538 21.362759l-0.211862 3.354482v681.489656a24.717241 24.717241 0 0 0 21.362759 24.505379l3.354483 0.211862h823.260689a24.717241 24.717241 0 0 0 24.50538-21.362759l0.211862-3.354482V215.393103a24.717241 24.717241 0 0 0-21.362759-24.505379l-3.354483-0.211862z" ></path><path d="M312.214069 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656276 3.389793l-0.247172-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724zM691.023448 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656275 3.389793l-0.247173-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724z" ></path></symbol></svg>',z=(z=document.getElementsByTagName("script"))[z.length-1].getAttribute("data-injectcss");if(z&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(h){console&&console.log(h)}}function s(){t||(t=!0,a())}c=function(){var h,c,l;(l=document.createElement("div")).innerHTML=i,i=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",h=c,(l=document.body).firstChild?(c=l.firstChild).parentNode.insertBefore(h,c):l.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(a=c,v=h.document,t=!1,(o=function(){try{v.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}s()})(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,s())})}(window);
\ No newline at end of file
!function(h){var c,l,a,v,t,o,i='<svg><symbol id="icon-touming" viewBox="0 0 1024 1024"><path d="M0 819.2h204.8V1024H0zM0 0h204.8v204.8H0zM0 409.6h204.8v204.8H0z" fill="#999999" ></path><path d="M204.8 204.8h204.8v204.8H204.8zM204.8 614.4h204.8v204.8H204.8z" fill="#B7B7B7" ></path><path d="M409.6 0h204.8v204.8H409.6zM409.6 409.6h204.8v204.8H409.6z" fill="#C6C6C6" ></path><path d="M614.4 204.8h204.8v204.8h-204.8zM614.4 614.4h204.8v204.8h-204.8z" fill="#DDDDDD" ></path><path d="M409.6 819.2h204.8V1024H409.6z" fill="#C6C6C6" ></path><path d="M819.2 0H1024v204.8h-204.8zM819.2 409.6H1024v204.8h-204.8zM819.2 819.2H1024V1024h-204.8z" fill="#F4F4F4" ></path></symbol><symbol id="icon-fangxing-" viewBox="0 0 1024 1024"><path d="M293.047427 796.738991v-133.327352c0-217.759502 176.531539-394.289445 394.289445-394.289446h133.330542v-104.189607H652.839875c-256.250417 0-463.980461 207.730044-463.980461 463.977271v167.829134h104.188013z" ></path></symbol><symbol id="icon-fangda" viewBox="0 0 1024 1024"><path d="M470.624 553.376a32 32 0 0 1 2.656 42.24l-2.656 3.008L269.28 800l145.984 0.032a32 32 0 0 1 31.776 28.256l0.224 3.744a32 32 0 0 1-28.288 31.776l-3.712 0.224H192l-2.4-0.096-4.032-0.544-3.552-0.96-3.552-1.408-3.136-1.664-3.072-2.144-2.88-2.56a32.32 32.32 0 0 1-3.104-3.584l-2.272-3.52-1.728-3.648-1.12-3.36-0.96-4.8L160 832V607.872a32 32 0 0 1 63.776-3.712l0.224 3.712-0.032 146.848 201.408-201.344a32 32 0 0 1 45.248 0zM608.736 160H832l2.4 0.096 4.032 0.544 3.552 0.96 3.552 1.408 3.136 1.664 3.072 2.144 2.88 2.56c1.152 1.12 2.176 2.336 3.104 3.584l2.272 3.52 1.728 3.648 1.12 3.36 0.96 4.8L864 192v224.128a32 32 0 0 1-63.776 3.712l-0.224-3.712v-146.88L598.624 470.624a32 32 0 0 1-47.904-42.24l2.656-3.008L754.688 224h-145.92a32 32 0 0 1-31.808-28.256l-0.224-3.744a32 32 0 0 1 28.288-31.776l3.712-0.224z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M416.4 958h191.2V849.7c0-12.7 6.4-25.5 19.1-31.9 31.9-12.7 63.7-31.9 89.2-51 12.7-6.4 25.5-6.4 38.2 0l95.6 57.3 95.6-165.7-95.6-57.3C837 588.5 830.6 575.7 837 563c0-19.1 6.4-31.9 6.4-51s0-31.9-6.4-51c0-12.7 6.4-25.5 12.7-31.9l95.6-57.3-95.6-165.7-95.6 57.3c-12.7 6.4-25.5 6.4-38.2 0-25.5-19.1-57.3-38.2-89.2-51-12.7-12.7-19.1-25.5-19.1-38.2V66H416.4v108.3c0 12.7-6.4 25.5-19.1 31.9-31.9 12.7-63.7 31.9-89.2 51-12.7 6.4-25.5 6.4-38.2 0l-95.6-51-95.6 165.6 95.6 57.3c12.7 6.4 19.1 19.1 12.7 31.9 0 19.1-6.4 31.9-6.4 51s0 31.9 6.4 51c6.4 12.7 0 25.5-12.7 31.9l-95.6 57.3 95.6 165.7 95.6-57.3c12.7-6.4 25.5-6.4 38.2 0 25.5 19.1 57.3 38.2 89.2 51 12.7 6.4 19.1 19.1 19.1 31.9V958z m223 63.7H384.6c-19.1 0-31.9-12.7-31.9-31.9v-121c-25.5-12.7-51-25.5-70.1-38.2l-101.9 63.7c-12.7 6.4-31.9 6.4-44.6-12.7L8.6 658.6c-12.7-19.1-6.4-38.2 12.7-44.6l101.9-63.7v-76.5L21.4 410.1c-19.1-6.4-25.5-25.5-12.7-44.6l127.4-223c6.4-12.7 25.5-19.1 44.6-6.4l101.9 63.7c19.1-12.7 44.6-31.9 70.1-38.2V34.1c0-19.1 12.7-31.9 31.9-31.9h254.9c19.1 0 31.9 12.7 31.9 31.9v121.1c25.5 12.7 51 25.5 70.1 38.2l101.9-63.7c12.7-6.4 31.9-6.4 44.6 12.7l127.4 223c12.7 19.1 6.4 38.2-12.7 44.6l-101.9 63.7v76.5l101.9 63.7c12.7 6.4 19.1 25.5 12.7 44.6L888 881.5c-6.4 12.7-25.5 19.1-44.6 12.7l-101.9-63.7c-19.1 12.7-44.6 31.9-70.1 38.2v121.1c-0.1 19.2-12.8 31.9-32 31.9zM512 703.2c-108.3 0-191.2-82.8-191.2-191.2S403.7 320.8 512 320.8 703.2 403.7 703.2 512 620.3 703.2 512 703.2z m0-318.6c-70.1 0-127.4 57.3-127.4 127.4S441.9 639.4 512 639.4 639.4 582.1 639.4 512 582.1 384.6 512 384.6z" ></path></symbol><symbol id="icon-quanping1" viewBox="0 0 1024 1024"><path d="M628.053333 628.053333a32 32 0 0 1 45.226667 0l158.72 158.634667V693.333333l0.298667-4.352A32 32 0 0 1 896 693.333333v181.333334l-0.341333 3.84a21.333333 21.333333 0 0 1-20.992 17.493333h-181.333334l-4.352-0.298667a32 32 0 0 1-27.648-31.701333l0.298667-4.352a32 32 0 0 1 31.701333-27.648h93.44l-158.72-158.72-3.114666-3.584a32 32 0 0 1 3.114666-41.642667z m-232.106666 0a32 32 0 0 1 3.114666 41.642667l-3.114666 3.584-158.72 158.72h93.44a32 32 0 0 1 31.701333 27.648l0.298667 4.352a32 32 0 0 1-27.648 31.701333L330.666667 896H149.333333a21.333333 21.333333 0 0 1-20.992-17.493333L128 874.666667v-181.333334a32 32 0 0 1 63.701333-4.352l0.298667 4.352v93.354667l158.72-158.634667a32 32 0 0 1 45.226667 0zM874.666667 128a21.333333 21.333333 0 0 1 20.992 17.493333L896 149.333333v181.333334a32 32 0 0 1-63.701333 4.352L832 330.666667V237.312L673.28 395.946667a32 32 0 0 1-48.341333-41.642667l3.114666-3.584 158.72-158.72h-93.44a32 32 0 0 1-31.701333-27.648L661.333333 160a32 32 0 0 1 27.648-31.701333L693.333333 128h181.333334zM330.666667 128l4.352 0.298667a32 32 0 0 1 27.648 31.701333l-0.298667 4.352a32 32 0 0 1-31.701333 27.648H237.226667l158.72 158.72 3.114666 3.584a32 32 0 0 1-48.341333 41.642667L192 237.312V330.666667l-0.298667 4.352A32 32 0 0 1 128 330.666667V149.333333l0.341333-3.84A21.333333 21.333333 0 0 1 149.333333 128h181.333334z" ></path></symbol><symbol id="icon-font-weight-bold" viewBox="0 0 1024 1024"><path d="M148.945455 55.854545h409.6c102.4 0 186.181818 27.927273 242.036363 83.781819 37.236364 37.236364 65.163636 93.090909 65.163637 148.945454 0 111.709091-65.163636 167.563636-130.327273 204.8 102.4 37.236364 176.872727 102.4 176.872727 223.418182 0 167.563636-130.327273 251.345455-335.127273 251.345455h-418.909091v-912.29091z m549.236363 260.654546c0-74.472727-55.854545-111.709091-158.254545-111.709091h-232.727273v242.036364h223.418182c93.090909-9.309091 167.563636-46.545455 167.563636-130.327273z m-139.636363 260.654545h-251.345455v251.345455h269.963636c111.709091 0 176.872727-46.545455 176.872728-121.018182-9.309091-83.781818-65.163636-130.327273-195.490909-130.327273z" ></path></symbol><symbol id="icon-letter_spacing" viewBox="0 0 1127 1024"><path d="M320.37397 751.711955a32.882959 32.882959 0 0 0 20.669289-6.81147 64.356648 64.356648 0 0 0 15.971723-18.555384 172.400656 172.400656 0 0 0 12.21367-25.601732q5.167322-13.857818 10.569522-28.890028L422.780899 549.012002h281.853933l57.075421 163.005524a67.175187 67.175187 0 0 0 16.44148 29.359785 35.936376 35.936376 0 0 0 29.124906 10.099766q27.480758 0 34.996863-17.615871a61.068352 61.068352 0 0 0 0-43.217603L617.729869 37.447114a52.142978 52.142978 0 0 0-19.02514-27.245881A59.189326 59.189326 0 0 0 563.707866 0.101467a54.961517 54.961517 0 0 0-35.231742 10.099766 53.082491 53.082491 0 0 0-18.555384 27.245881l-222.19485 651.317463q-11.743914 36.171255 0 49.559316a41.338577 41.338577 0 0 0 32.64808 13.388062zM563.707866 108.85011l125.190121 365.705478H438.517744zM1122.483287 906.731618l-132.471348-96.300094a11.743914 11.743914 0 0 0-18.555384 9.395131v61.068352H156.194054v-60.833473a11.743914 11.743914 0 0 0-18.555383-9.395132L4.932444 906.731618a11.743914 11.743914 0 0 0 0 19.02514l132.471348 96.065216a11.743914 11.743914 0 0 0 18.555384-9.395131v-61.068352h815.027622v60.833473a11.743914 11.743914 0 0 0 18.555384 9.395131l132.706227-96.065215a11.743914 11.743914 0 0 0 0.234878-18.790262z" ></path></symbol><symbol id="icon-letter-spacing" viewBox="0 0 1152 1024"><path d="M1024 0h128v1024h-128zM0 0h128v1024H0z m657.92 128H494.08L186.24 864h138.88l64-160h368.64l64 160h138.88z m49.28 448H448l128-313.6z" ></path></symbol><symbol id="icon-zimua" viewBox="0 0 1024 1024"><path d="M481.28 117.76h61.44c22.528 0 43.008 13.824 51.2 34.816l287.232 745.984c1.536 3.584-1.024 7.68-5.12 7.68h-117.248c-2.048 0-4.096-1.536-5.12-3.584l-70.144-192.512c-1.536-4.096-5.632-7.168-10.24-7.168H349.696c-4.608 0-8.704 3.072-10.24 7.168l-70.144 192.512c-1.024 2.048-3.072 3.584-5.12 3.584H147.968c-3.584 0-6.656-4.096-5.12-7.68L430.08 152.576c8.192-20.992 28.16-34.816 51.2-34.816z m-87.04 485.888h235.008c7.68 0 12.8-7.68 10.24-14.848l-124.928-342.016h-4.608L384 588.8c-3.072 7.168 2.56 14.848 10.24 14.848z" ></path></symbol><symbol id="icon-format_letter_spacing_" viewBox="0 0 1024 1024"><path d="M682.666667 704l128 106.666667-128 106.666666v-85.333333H341.333333v85.333333L213.333333 810.666667l128-106.666667v85.333333h341.333334v-85.333333zM170.666667 170.666667v682.666666H85.333333V170.666667h85.333334z m768 0v682.666666h-85.333334V170.666667h85.333334z m-394.666667 0l202.666667 469.333333h-89.6l-38.4-93.866667h-213.333334L366.933333 640H277.333333l202.666667-469.333333h64zM512 255.146667L432.213333 469.333333h159.573334L512 255.146667z" ></path></symbol><symbol id="icon-font_size" viewBox="0 0 1024 1024"><path d="M923.456 713.152V644.48h-68.608v205.76h68.608v68.544h-205.76v-68.544h68.608V644.48h-68.608v68.608h-68.544V644.48c0-37.824 30.72-68.544 68.544-68.544h205.76c37.824 0 68.544 30.72 68.544 68.544v68.608h-68.544zM512 233.152H443.456v548.544H580.48v137.152H169.152v-137.152h137.152V233.152H237.696c-75.712 0-137.152 61.44-137.152 137.152H32V164.48C32 126.72 62.72 96 100.544 96h548.608c37.888 0 68.544 30.72 68.544 68.544v205.76h-68.544c0-75.776-61.44-137.152-137.152-137.152z" ></path></symbol><symbol id="icon-align-center" viewBox="0 0 1024 1024"><path d="M34.45333333 77.86666667h954.56v124.37333333H34.45333333zM213.76 327.25333333H809.6v124.37333334H213.76zM34.45333333 575.46666667h954.56v124.37333333H34.45333333zM213.76 824.74666667H809.6v124.37333333H213.76z" ></path></symbol><symbol id="icon-juyou" viewBox="0 0 1024 1024"><path d="M53.355789 53.894737v108.328421H970.105263V53.894737H53.355789z m431.157895 377.802105H970.105263V323.368421H484.513684v108.328421z m-431.157895 269.473684H970.105263V592.842105H53.355789v108.328421z m431.157895 269.473685H970.105263V862.315789H484.513684v108.328422z" ></path></symbol><symbol id="icon-juzuo" viewBox="0 0 1331 1024"><path d="M898.304 819.712v127.488H153.6v-127.488z m279.296-256v127.488H153.6v-127.488z m-279.296-256V435.2H153.6V307.2zM1177.6 51.2v127.488H153.6V51.2z" ></path></symbol><symbol id="icon-solid_line" viewBox="0 0 1024 1024"><path d="M102.4 460.8h819.2v102.4H102.4z" ></path></symbol><symbol id="icon-huabi" viewBox="0 0 1024 1024"><path d="M884.641557 138.571009C811.672662 65.565275 755.277234 56.513108 726.075145 85.715197l-79.284741 79.283718 211.422224 211.422224 79.31851-79.284741C966.698434 267.936355 957.646268 211.538881 884.641557 138.571009z" ></path><path d="M144.589584 667.200758c-14.600533 14.564717-68.333318 226.898707-68.333318 226.898707-3.193739 8.709359-10.073426 42.179658 0 52.855812 7.039323 7.460925 25.424042 10.638291 52.855812 0 0 0 212.33399-53.730739 226.938616-68.333318l449.309192-449.345008L593.934592 217.85575 144.589584 667.200758zM132.177903 891.034662 185.764356 708.376553l129.110543 129.071657L132.177903 891.034662z" ></path></symbol><symbol id="icon-dianxian" viewBox="0 0 1024 1024"><path d="M228.32 532.76h-6.92c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h6.92c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76zM712.65 532.76h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76z m-96.87 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z m-96.86 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76z m-96.87 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z m-96.86 0h-13.84c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h13.84c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76zM802.59 532.76h-6.92c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h6.92c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z" ></path></symbol><symbol id="icon-xuxian" viewBox="0 0 1024 1024"><path d="M304.43 532.76H221.4c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h83.03c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76zM581.19 532.76H442.81c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h138.38c11.47 0 20.76 9.3 20.76 20.76s-9.3 20.76-20.76 20.76zM802.59 532.76h-83.03c-11.47 0-20.76-9.3-20.76-20.76s9.29-20.76 20.76-20.76h83.03c11.47 0 20.76 9.3 20.76 20.76s-9.29 20.76-20.76 20.76z" ></path></symbol><symbol id="icon-beijingse1" viewBox="0 0 1024 1024"><path d="M882.980571 580.900571c0-25.6-9.289143-51.2-27.940571-67.437714L508.342857 166.692571 398.848 57.270857a33.718857 33.718857 0 0 0-48.932571 0 33.718857 33.718857 0 0 0 0 48.859429L436.150857 192.365714 114.980571 511.122286c-37.302857 37.229714-37.302857 100.059429 0 137.289143l300.178286 300.251428c18.651429 18.578286 44.251429 27.867429 67.510857 27.867429 25.6 0 48.859429-9.289143 67.510857-27.867429l300.178286-300.251428c20.992-18.651429 32.621714-41.910857 32.621714-67.510858zM163.84 559.981714l321.097143-318.902857 318.902857 318.902857c4.681143 4.681143 6.948571 11.629714 6.948571 18.578286h-653.897142c0-4.608 2.267429-11.629714 6.948571-18.578286z m709.778286 214.089143s-62.829714 83.821714-62.829715 118.710857c0 34.889143 27.940571 62.829714 62.902858 62.829715 34.889143 0 62.829714-27.940571 62.829714-62.902858 0-34.816-62.902857-118.637714-62.902857-118.637714z" fill="#606266" ></path></symbol><symbol id="icon-juxing" viewBox="0 0 1024 1024"><path d="M876.4664713541666 302.9680989583333H776.4029947916665V202.90462239583334c0-11.865234374999998-9.8876953125-21.7529296875-21.7529296875-21.7529296875s-21.7529296875 9.8876953125-21.7529296875 21.7529296875v100.0634765625H632.8336588541666c-11.865234374999998 0-21.7529296875 9.8876953125-21.7529296875 21.7529296875s9.8876953125 21.7529296875 21.7529296875 21.7529296875h100.0634765625v100.0634765625c0 11.865234374999998 9.8876953125 21.7529296875 21.7529296875 21.7529296875s21.7529296875-9.8876953125 21.7529296875-21.7529296875V346.4739583333333H876.4664713541666c11.865234374999998 0 21.7529296875-9.8876953125 21.7529296875-21.7529296875 0-12.2607421875-9.8876953125-21.7529296875-21.7529296875-21.7529296875zM146.75455729166666 386.0247395833333c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625h0.7910156249999999v-21.7529296875h36.38671875c10.678710937499998 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-9.0966796875-19.775390625-19.775390625-19.775390625l-56.953125-0.39550781249999994c-11.07421875 0-19.775390625 8.701171874999998-19.775390625 19.775390625v42.71484374999999c0 9.8876953125 8.701171874999998 18.984374999999996 19.775390625 18.984374999999996z m135.26367187500003-41.92382812499999h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-8.701171874999998-19.775390625-19.775390625-19.775390625h-98.876953125c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625 0 11.07421875 9.0966796875 19.775390625 19.775390625 19.775390625z m177.1875 0h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625s-8.701171874999998-19.775390625-19.775390625-19.775390625h-98.876953125c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625 0.7910156249999999 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625zM774.8209635416665 560.8391927083335c0-11.07421875-8.701171874999998-19.775390625-19.775390625-19.775390625s-19.775390625 8.701171874999998-19.775390625 19.775390625v98.876953125c0 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625s19.775390625-8.701171874999998 19.775390625-19.775390625v-98.876953125z m-19.775390625 157.41210937500003c-11.07421875 0-19.775390625 9.0966796875-19.775390625 19.775390625v64.072265625h-79.1015625v1.1865234374999998c-11.07421875 0-19.775390625 8.701171874999998-19.775390625 19.775390625s8.701171874999998 19.775390625 19.775390625 19.775390625h98.876953125c11.07421875 0 19.775390625-8.701171874999998 19.775390625-19.775390625V738.8177083333334c0-11.865234374999998-9.0966796875-20.56640625-19.775390625-20.56640625zM581.0221354166666 802.0989583333333L166.52994791666666 801.3079427083333V423.2024739583333h-0.7910156249999999c0-11.07421875-8.701171874999998-19.775390625-19.775390625-19.775390625s-19.775390625 8.701171874999998-19.775390625 19.775390625V821.8743489583334c0 11.07421875 8.701171874999998 19.775390625 19.775390625 19.775390625H579.8356119791666c11.07421875 0 19.775390625-9.0966796875 19.775390625-19.775390625 0-11.07421875-9.0966796875-19.775390625-18.5888671875-19.775390625z" ></path></symbol><symbol id="icon-text" viewBox="0 0 1024 1024"><path d="M853.333333 1024 170.666667 1024c-93.866667 0-170.666667-76.8-170.666667-170.666667L0 170.666667c0-93.866667 76.8-170.666667 170.666667-170.666667l682.666667 0c93.866667 0 170.666667 76.8 170.666667 170.666667l0 682.666667C1024 947.2 947.2 1024 853.333333 1024zM170.666667 85.333333C123.733333 85.333333 85.333333 123.733333 85.333333 170.666667l0 682.666667c0 46.933333 38.4 85.333333 85.333333 85.333333l682.666667 0c46.933333 0 85.333333-38.4 85.333333-85.333333L938.666667 170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333L170.666667 85.333333z" ></path><path d="M725.333333 341.333333 298.666667 341.333333C273.066667 341.333333 256 324.266667 256 298.666667s17.066667-42.666667 42.666667-42.666667l426.666667 0c25.6 0 42.666667 17.066667 42.666667 42.666667S750.933333 341.333333 725.333333 341.333333z" ></path><path d="M298.666667 384C273.066667 384 256 366.933333 256 341.333333L256 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 42.666667C341.333333 366.933333 324.266667 384 298.666667 384z" ></path><path d="M725.333333 384c-25.6 0-42.666667-17.066667-42.666667-42.666667L682.666667 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 42.666667C768 366.933333 750.933333 384 725.333333 384z" ></path><path d="M512 768c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 426.666667C554.666667 750.933333 537.6 768 512 768z" ></path><path d="M554.666667 768l-85.333333 0c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667l85.333333 0c25.6 0 42.666667 17.066667 42.666667 42.666667S580.266667 768 554.666667 768z" ></path></symbol><symbol id="icon-picture" viewBox="0 0 1024 1024"><path d="M875.633778 64H148.366222A98.602667 98.602667 0 0 0 49.777778 162.588444v698.823112a98.602667 98.602667 0 0 0 98.588444 98.602666h727.267556a98.602667 98.602667 0 0 0 98.588444-98.602666h0.014222V162.588444A98.602667 98.602667 0 0 0 875.633778 64zM106.666667 861.411556v-136.405334l201.372444-288.042666c6.215111-8.888889 14.876444-14.250667 24.405333-15.089778 9.628444-0.952889 19.015111 2.929778 26.680889 10.595555l176.924445 176.910223-218.624 293.745777H148.366222A41.713778 41.713778 0 0 1 106.666667 861.411556z m810.680889 0a41.713778 41.713778 0 0 1-41.713778 41.713777H352.867556l252.202666-338.816c6.599111-8.832 15.815111-14.193778 25.998222-15.089777 10.268444-0.867556 20.181333 2.773333 28.174223 10.339555l155.562666 146.744889c5.688889 5.390222 14.705778 5.105778 20.110223-0.583111a14.250667 14.250667 0 0 0-0.583112-20.110222L678.784 538.865778c-13.994667-13.198222-31.886222-19.626667-50.218667-17.976889-18.360889 1.607111-34.801778 10.993778-46.307555 26.439111l-29.027556 38.997333-173.980444-173.966222c-13.738667-13.738667-31.232-20.366222-49.294222-18.816-18.062222 1.578667-34.133333 11.221333-45.226667 27.121778L106.666667 675.370667V162.588444A41.699556 41.699556 0 0 1 148.366222 120.888889h727.267556a41.699556 41.699556 0 0 1 41.699555 41.699555h0.014223v698.823112z" fill="" ></path><path d="M868.636444 717.937778a14.222222 14.222222 0 0 0-19.527111 20.664889l16.995556 16.056889a14.208 14.208 0 0 0 20.096-0.583112 14.193778 14.193778 0 0 0-0.554667-20.081777l-17.009778-16.056889zM636.743111 175.957333c-67.783111 0-122.908444 55.125333-122.908444 122.894223 0 67.768889 55.125333 122.908444 122.908444 122.908444 67.754667 0 122.908444-55.139556 122.908445-122.908444s-55.139556-122.894222-122.908445-122.894223z m0 217.372445c-52.081778 0-94.464-42.368-94.464-94.464s42.368-94.449778 94.464-94.449778 94.464 42.353778 94.464 94.449778-42.368 94.464-94.464 94.464z" fill="" ></path></symbol><symbol id="icon-shuru" viewBox="0 0 1024 1024"><path d="M970.666667 204.8l-151.466667-151.466667L701.866667 170.666667H64c-12.8 0-21.333333 8.533333-21.333333 21.333333v768c0 12.8 8.533333 21.333333 21.333333 21.333333h576c6.4 0 10.666667-2.133333 14.933333-6.4l192-192c4.266667-4.266667 6.4-8.533333 6.4-14.933333V322.133333l117.333334-117.333333z m-529.066667 469.333333l-98.133333-85.333333L742.4 189.866667l91.733333 91.733333-392.533333 392.533333z m-123.733333-49.066666l89.6 76.8-121.6 34.133333 32-110.933333zM910.933333 204.8l-46.933333 46.933333-91.733333-91.733333 46.933333-46.933333 91.733333 91.733333zM661.333333 908.8V789.333333h119.466667L661.333333 908.8z m149.333334-162.133333h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333v170.666667H85.333333V213.333333h573.866667l-128 128H170.666667v42.666667h317.866666l-128 128H170.666667v42.666667h147.2l-32 32-61.866667 213.333333 213.333333-61.866667 183.466667-183.466666H725.333333v-42.666667h-61.866666l147.2-147.2V746.666667z" ></path></symbol><symbol id="icon-tree" viewBox="0 0 1024 1024"><path d="M448.84 880.29H175.37c-20.14 0-36.46-16.33-36.46-36.46 0-20.14 16.33-36.46 36.46-36.46h273.48c20.14 0 36.46 16.33 36.46 36.46 0 20.14-16.33 36.46-36.47 36.46zM448.84 588.58H175.37c-20.14 0-36.46-16.33-36.46-36.46 0-20.14 16.33-36.46 36.46-36.46h273.48c20.14 0 36.46 16.33 36.46 36.46 0 20.14-16.33 36.46-36.47 36.46z" ></path><path d="M138.9 843.83V296.88c0-20.14 16.33-36.46 36.46-36.46 20.14 0 36.46 16.33 36.46 36.46v546.95c0 20.14-16.33 36.46-36.46 36.46-20.13 0-36.46-16.32-36.46-36.46z" ></path><path d="M211.83 348.16H138.9c-40.11 0-72.93-32.82-72.93-72.93V202.3c0-40.11 32.82-72.93 72.93-72.93h72.93c40.11 0 72.93 32.82 72.93 72.93v72.93c0 40.11-32.82 72.93-72.93 72.93zM922.87 625.05H605.12c-20.05 0-36.46-16.41-36.46-36.46v-72.93c0-20.05 16.41-36.46 36.46-36.46h317.75c20.05 0 36.46 16.41 36.46 36.46v72.93c0 20.05-16.41 36.46-36.46 36.46zM921.67 311.69h-508.1c-20.71 0-37.66-16.95-37.66-37.66V203.5c0-20.71 16.95-37.66 37.66-37.66h508.1c20.71 0 37.66 16.95 37.66 37.66v70.54c0 20.71-16.94 37.65-37.66 37.65zM922.87 916.76H605.12c-20.05 0-36.46-16.41-36.46-36.46v-72.93c0-20.05 16.41-36.46 36.46-36.46h317.75c20.05 0 36.46 16.41 36.46 36.46v72.93c0 20.05-16.41 36.46-36.46 36.46z" ></path></symbol><symbol id="icon-chaxunsousuo" viewBox="0 0 1024 1024"><path d="M724.173722 608.066299m33.939704 33.939705l203.638226 203.638225q33.939704 33.939704 0 67.879409l0 0q-33.939704 33.939704-67.879409 0l-203.638225-203.638226q-33.939704-33.939704 0-67.879408l0 0q33.939704-33.939704 67.879408 0Z" ></path><path d="M48.436376 928.00402m47.99799 0l287.98794 0q47.99799 0 47.99799 47.99799l0 0q0 47.99799-47.99799 47.99799l-287.98794 0q-47.99799 0-47.99799-47.99799l0 0q0-47.99799 47.99799-47.99799Z" ></path><path d="M464.418957 832.00804a415.982581 415.982581 0 1 1 293.747699-121.594909A415.342608 415.342608 0 0 1 464.418957 832.00804z m0-735.969182A319.986601 319.986601 0 1 0 688.409577 192.034839a319.986601 319.986601 0 0 0-223.99062-95.995981z" ></path></symbol><symbol id="icon-jidu" viewBox="0 0 1024 1024"><path d="M153.850705 812.896572v-537.121614c0.409313-0.511642 0.920955-0.920955 0.920955-1.432598 1.330269-12.688718 6.856001-23.637854 15.144599-32.949735 13.609673-15.451584 31.005496-22.716898 51.573498-22.716898H284.626362v-5.62806-44.205856c0-1.637254 0.511642-3.376836 0.716298-5.01409 0.920955-6.037374 6.242031-7.469971 10.539822-9.925852h9.516539c10.130509 3.581493 12.688718 11.563106 12.381732 21.386629-0.409313 12.177076-0.102328 24.45648-0.102328 36.633557v6.446687h389.359448c0-14.4283 0.306985-28.549615-0.102328-42.67093-0.306985-10.02818 1.841911-18.112122 12.381733-21.898272h9.516538c8.902568 3.683821 12.074748 10.437494 11.460778 19.954032-0.61397 10.64215-0.204657 21.181973-0.204657 31.824124v13.098031h5.730389c19.851704 0 39.703408-0.102328 59.555111 0.102328 4.093135 0 8.18627 0.204657 12.177076 1.023284 20.874988 4.809433 37.145198 16.065554 46.559409 35.81493 2.353553 4.911762 3.990806 10.232837 5.935045 15.349255v546.740482c-0.61397 1.739582-1.330269 3.581493-1.944239 5.423403-7.879285 23.84251-23.740182 39.191766-48.401319 44.922155-2.353553 0.511642-4.604777 1.330269-6.856001 1.944239H211.973219c-0.306985-0.306985-0.511642-0.818627-0.920956-0.920955-9.209553-0.61397-17.498151-3.888478-25.377435-8.697912-12.074748-7.265314-21.181973-16.986509-26.298392-30.186869-2.148896-5.525732-3.683821-11.460777-5.525731-17.293495z m33.25672-397.955031V803.482362c0 18.419107 14.121315 33.359049 33.461377 33.359049 194.526232 0.102328 389.052463 0.102328 583.578695 0 19.237734 0 33.563705-14.325972 33.563705-33.666034 0.102328-127.603478 0.102328-255.206955 0.102329-382.810432v-5.321076c-217.038473-0.102328-433.565304-0.102328-650.706106-0.102328z m0-33.666034h650.501449c0.102328-0.920955 0.204657-1.534926 0.204657-2.148896 0-31.721795 0.102328-63.443589-0.102329-95.165384 0-2.762866-0.61397-5.62806-1.534925-8.186269-5.116419-15.963226-16.679524-23.126212-31.926452-23.637854-20.056361-0.511642-40.112721-0.204657-60.169082-0.102328-1.22794 0-2.455881 0.204657-3.888478 0.409313 0 17.088838 0.204657 33.870691-0.204656 50.754872-0.102328 3.172179-1.534926 6.856001-3.683822 9.209553-5.62806 6.037374-12.688718 6.549016-20.261017 3.581493-5.01409-1.944239-9.107225-8.18627-9.107225-14.632957-0.102328-13.302688 0-26.707705 0-40.010393v-8.800239H317.576097c0 15.758569 0.204657 31.107825-0.102329 46.45708-0.204657 10.64215-3.581493 16.679524-14.939942 18.726091-6.856001 1.22794-18.419107-3.78615-18.316778-14.4283 0.204657-15.246927 0.102328-30.391526 0.102328-45.740781v-5.321076H224.150295c-2.967523 0-5.832717 0.61397-8.902568 0.818627-17.805136 1.22794-28.754272 19.135405-28.549616 33.461377 0.409313 29.879884 0.102328 59.65744 0.102329 89.537324 0.306985 1.330269 0.306985 3.172179 0.306985 5.218747z m-33.25672 431.621065c1.841911 5.730389 3.479165 11.767763 5.62806 17.395823 5.116419 13.20036 14.223643 23.023883 26.298391 30.18687 7.879285 4.707105 16.167882 7.981613 25.377436 8.697911 0.306985 0 0.61397 0.511642 0.920955 0.920955h-58.122514c-0.102328-19.135405-0.102328-38.066154-0.102328-57.201559z m659.097032 57.201559c2.353553-0.61397 4.604777-1.432597 6.856-1.944239 24.661137-5.832717 40.419706-21.181973 48.401319-44.922154 0.61397-1.841911 1.330269-3.581493 1.944239-5.423404v52.392126c-19.135405-0.102328-38.168482-0.102328-57.201558-0.102329z" fill="" ></path><path d="M227.424803 623.179774l10.02818-2.353552c25.275107-6.242031 44.410513-13.81433 56.792245-22.921555 12.893375-9.004897 23.433197-17.191166 31.517138-24.763466h-30.08454c-13.81433 0-33.359049 0.511642-58.224843 1.944239 0.511642-3.376836 0.511642-6.242031 0.920955-8.083941s0.511642-3.78615 0.511642-5.730389-0.511642-6.242031-1.432597-13.302688c32.949735 1.432597 52.494454 1.944239 58.224843 1.944239h59.145797v-22.512241c-25.275107 1.432597-39.601079 1.944239-42.977915 1.944239l-26.707705 0.409313-13.405016 0.511642c-0.920955-3.78615-2.353553-7.674628-3.376836-10.949136-0.920955-3.376836-4.297792-8.595583-9.107225-15.758569l10.02818 0.920956c6.242031 0.920955 18.112122 0.920955 35.81493 0.920955 20.568002 0 45.331468-0.920955 74.495053-3.376836 29.061257-2.353553 50.140901-5.218747 63.44359-8.595583l9.516538-2.353553c5.218747 9.004897 10.949136 17.60048 17.191166 26.196063l-30.493854 2.353553-32.438094 2.865194-29.572898 2.353552v23.842511h54.438692c5.218747 0 25.275107-0.511642 60.169082-1.944239-0.920955 3.78615-1.432597 7.162986-1.432597 8.595583-0.511642 1.944239-0.511642 3.376836-0.511642 3.786149 0 0.920955 0.511642 5.218747 1.944239 13.302689-24.865794-1.432597-44.819826-1.944239-60.169082-1.944239h-26.298391c6.242031 6.651344 15.246927 14.325972 26.707705 23.330868 11.972419 9.004897 31.517138 15.758569 59.145798 20.05636l9.107225 1.432598c-5.218747 5.218747-8.595583 9.516538-10.949136 12.893374-2.353553 3.376836-4.809433 8.595583-6.651344 15.246927l-9.107225-3.786149c-30.493854-13.302688-50.550215-24.354152-61.090037-32.847407-10.02818-8.595583-17.191166-15.246927-20.977316-19.544719L382.452283 575.801739l-3.786149-4.809434h-1.944239v29.982213c0 3.78615 0.511642 10.949136 1.432597 21.488958-6.651344-0.920955-10.539822-0.920955-12.381733-0.920956-1.432597 0-5.730389 0.511642-12.893375 0.920956 0.920955-10.02818 1.944239-17.191166 1.944239-21.488958V570.787649c-4.297792 4.297792-9.107225 9.004897-14.837613 14.735285s-11.460777 11.460777-18.112122 17.60048c-6.651344 5.730389-18.623763 14.325972-36.224243 24.763465 10.949136 0.920955 20.977316 1.432597 29.572899 1.432597h95.47237c10.539822 0 22.921555-0.511642 36.735884-1.432597-18.112122 14.735285-30.493854 24.763466-37.65684 29.061257L378.666134 676.595183v0.511642h47.68502c15.246927 0 35.81493-0.511642 62.010992-1.944239-0.511642 4.297792-0.920955 7.162986-0.920955 9.004897 0 1.944239-0.511642 3.78615-0.511642 5.730388s0.511642 6.242031 1.432597 12.893375c-24.865794-1.432597-45.331468-2.353553-62.010992-2.353552H378.666134v33.359048c0 8.083941-1.432597 14.735285-4.297792 19.033077-2.865194 4.809433-17.191166 7.162986-43.387229 8.083941 0-3.78615-0.511642-7.162986-0.920955-9.004896-0.511642-2.353553-0.920955-4.297792-1.944239-6.242031-0.920955-2.353553-4.297792-8.083941-10.539822-17.191166 11.972419 2.353553 20.977316 3.376836 27.219346 2.865194 3.376836 0 5.730389-0.511642 7.162986-1.944239 1.432597-1.432597 1.944239-4.809433 1.944239-9.516538v-19.544719h-51.573498c-11.972419 0-31.926451 0.920955-60.169082 2.353553 0-3.376836 0.511642-7.162986 0.511642-10.437494s0.511642-6.242031 0.511642-7.674628l-0.920956-9.516538c25.275107 1.432597 45.331468 1.944239 60.169082 1.944239h50.550215v-6.242031l-0.511642-3.376836 3.78615-0.920955c7.674628-2.353553 18.112122-8.083941 31.926451-17.60048h-73.47177c-9.516538 0-20.056361 0.511642-31.005496 1.432597 0.511642-2.865194 0.920955-5.218747 0.920956-7.674628 0.511642-1.944239 0.511642-3.376836 0.511641-4.809433l-0.511641-2.865194-0.511642-7.674628c-9.516538 5.730389-18.623763 10.437494-26.707705 14.735285l-7.674628 3.78615c-3.376836-6.242031-5.730389-10.02818-7.674627-11.870091-1.330269-0.204657-6.549016-4.502448-14.632957-10.744479zM522.744479 740.448086l7.162986-10.949135c2.353553-3.78615 5.218747-9.516538 8.595583-16.167883s6.651344-16.167882 10.539822-28.549615c3.78615-11.870091 6.242031-28.140302 6.651344-48.094334 0.920955-20.056361 0.920955-34.791646 1.432597-44.819826V568.536425L555.182572 525.660837c18.112122 0.920955 28.651944 1.432597 32.438094 1.432598h71.629859c-2.353553-5.730389-5.218747-11.870091-8.595583-18.623764l-4.297792-7.674628c8.083941-1.432597 17.191166-4.297792 26.707705-8.595583l11.972419 35.303288h36.224243c10.02818 0 27.62866-0.511642 52.494454-1.944239-0.511642 3.376836-0.920955 5.730389-0.920956 7.674628v4.297791c0 0.920955 0.511642 4.809433 1.432598 10.949136-11.972419 0-22.409913-0.511642-32.438094-0.920955-10.02818-0.511642-16.679524-0.511642-20.568002-0.511642h-140.803837V578.87159h43.387229v-8.083941c0-3.78615 0-6.651344-0.511642-8.595583l-0.920956-9.004897c6.242031 0.920955 10.02818 1.432597 10.949136 1.432597s5.730389-0.511642 13.405016-1.432597c-0.920955 4.297792-0.920955 7.162986-1.432597 9.516538v15.758569h58.736485v-6.24203c0-5.218747 0-8.595583-0.511642-10.02818l-0.920955-9.004897c6.651344 0.920955 10.949136 1.432597 12.381732 1.432597 1.432597 0 5.730389-0.511642 12.893375-1.432597-0.920955 4.297792-0.920955 7.162986-1.432597 9.516538v15.758569h20.568002c9.516538 0 20.568002-0.511642 31.926452-1.432597-0.511642 3.376836-0.511642 5.730389-0.511642 7.162986 0 1.432597 0 3.376836-0.511642 4.809434-0.511642 1.432597 0 2.353553 0 2.865194l0.920955 7.674628c-11.460777-0.920955-22.0006-1.432597-31.926451-1.432598H726.582592V616.733087c0 6.651344 0 10.437494 0.511642 12.381733l0.920955 12.893374c-9.107225-0.920955-18.112122-1.432597-26.298391-1.432597h-53.006095c-8.083941 0-16.679524 0.511642-25.78675 1.432597 0.511642-5.218747 0.511642-9.516538 0.920956-12.893374 0-3.376836 0.511642-7.162986 0.511641-11.460778v-19.544719h-43.89887c0 6.242031-0.511642 12.381733-0.511642 18.623764s-0.920955 15.246927-1.944239 27.62866c-0.920955 11.870091-2.353553 22.409913-3.376836 31.005496-1.432597 8.595583-4.297792 20.056361-8.595584 34.280004-4.297792 14.325972-9.107225 26.707705-13.81433 36.224243l-5.218746 11.460777c-2.865194-2.865194-5.218747-5.218747-7.162986-6.651344-2.762866-2.148896-7.981613-5.525732-17.088838-10.232837z m53.517737-9.107225c23.433197 0 48.196662-5.218747 74.495054-15.758569-8.083941-8.083941-14.325972-14.735285-18.112122-19.544718-3.78615-5.218747-8.083941-12.893375-13.405016-22.409913l-23.433197 1.944239c0.511642-3.376836 0.511642-5.730389 0.511642-7.162986 0-1.432597 0-2.865194 0.511642-4.297792 0-1.432597 0-4.809433-0.920955-10.949135 12.381733 0.920955 24.354152 1.432597 35.303287 1.432597h79.202159c10.949136 0 22.409913-0.511642 34.382332-1.432597-4.809433 9.004897-10.02818 17.60048-15.758569 25.684421-5.730389 8.083941-17.702808 20.056361-34.791646 36.735884 15.758569 6.242031 28.140302 10.437494 37.65684 11.870091 9.107225 1.432597 16.679524 2.353553 22.921555 2.865195l16.679525 0.920955 8.083941 0.920955c-3.376836 3.376836-9.107225 10.437494-16.679524 20.465674l-3.78615 7.162986-9.107225-2.865194c-0.511642 0-8.083941-1.944239-22.921555-6.242031-14.837614-4.297792-32.438093-11.460777-53.415409-21.898271-27.62866 12.381733-53.927051 21.488958-79.202159 26.707705l-9.107225 1.944239c-1.944239-2.353553-3.376836-4.809433-4.809433-7.674628-1.432597-2.865194-2.353553-4.297792-2.865194-5.218747l-4.297792-5.730389-6.651344-8.083941h9.516538v0.61397z m126.887179-57.610872h-58.736484c2.865194 6.242031 6.242031 11.460777 10.02818 16.167882 3.78615 4.809433 9.516538 9.516538 16.679525 14.735286 5.218747-2.865194 10.02818-6.242031 14.837613-10.02818 4.809433-3.274508 10.539822-10.437494 17.191166-20.874988z m-56.792245-50.550215h58.736484v-25.275107h-58.736484v25.275107z" fill="" ></path></symbol><symbol id="icon-shuzishunxu" viewBox="0 0 1024 1024"><path d="M862.138182 252.16h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182z m0 290.909091h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182z m0 290.909091h-523.636364a34.909091 34.909091 0 0 1 0-69.818182h523.636364a34.909091 34.909091 0 0 1 0 69.818182zM149.178182 294.865455V139.636364h43.962182v155.229091h-43.985455z m76.776727 247.854545v44.916364H125.626182l50.059636-93.323637c2.304-4.352 3.490909-8.075636 3.490909-11.170909 0-5.748364-3.584-8.610909-10.682182-8.610909a10.100364 10.100364 0 0 0-10.496 10.24 12.334545 12.334545 0 0 0 3.956364 8.843636l-19.781818 35.374546C124.951273 517.818182 116.363636 502.458182 116.363636 482.909091c0-14.894545 5.236364-27.671273 15.685819-38.283636a51.688727 51.688727 0 0 1 38.260363-15.941819c15.383273 0 28.229818 5.376 38.562909 16.174546 10.309818 10.775273 15.453091 23.458909 15.453091 38.050909 0 8.541091-1.908364 16.523636-5.818182 23.970909L200.145455 542.72h25.809454z m-95.976727 177.431273h82.129454l-25.134545 59.810909c8.843636 6.050909 15.36 12.730182 19.549091 20.014545 4.189091 7.307636 6.283636 15.988364 6.283636 26.088728 0 15.499636-5.376 28.043636-16.174545 37.585454-10.775273 9.541818-24.692364 14.312727-41.774546 14.312727a92.858182 92.858182 0 0 1-25.367272-3.723636v-43.752727c6.842182 3.072 13.032727 4.608 18.618181 4.608 5.445818 0 9.658182-1.536 12.683637-4.724364 3.025455-3.165091 4.561455-7.726545 4.561454-13.637818a18.152727 18.152727 0 0 0-8.029091-15.36c-5.376-3.863273-12.520727-5.818182-21.527272-5.818182l11.380363-30.487273h-17.221818v-44.916363z" fill="#797979" ></path></symbol><symbol id="icon-Group-" viewBox="0 0 1024 1024"><path d="M160 352a32 32 0 0 1-32-32V192a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64V224H192zM416 288a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64zM160 608a32 32 0 0 1-32-32v-128a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64v-64H192zM416 544a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64zM160 864a32 32 0 0 1-32-32v-128a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32z m32-64h64v-64H192zM416 800a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64z" ></path></symbol><symbol id="icon-riqi" viewBox="0 0 1024 1024"><path d="M819.6 202.6H700.7v-63.8c0-17.6-14.3-31.9-31.9-31.9-17.6 0-31.9 14.3-31.9 31.9v63.8h-255v-63.8c0-17.6-14.3-31.9-31.9-31.9s-31.9 14.3-31.9 31.9v63.8H199.3C140.7 202.6 93 250.3 93 308.9v504.8C93 872.3 140.7 920 199.3 920h620.3c58.6 0 106.3-47.7 106.3-106.3V308.9c0-58.6-47.7-106.3-106.3-106.3z m42.5 611.1c0 23.4-19.1 42.5-42.5 42.5H199.3c-23.4 0-42.5-19.1-42.5-42.5V308.9c0-23.4 19.1-42.5 42.5-42.5h118.8v47.8c0 17.6 14.3 31.9 31.9 31.9s31.9-14.3 31.9-31.9v-47.8H637v47.8c0 17.6 14.3 31.9 31.9 31.9 17.6 0 31.9-14.3 31.9-31.9v-47.8h118.8c23.4 0 42.5 19.1 42.5 42.5v504.8z" ></path><path d="M340.1 409.9H238c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM560.5 409.9H458.4c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM781 409.9H678.8c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4H781c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.6-23.4-23.4-23.4zM340.1 632.9H238c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM560.5 632.9H458.4c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4h102.1c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.5-23.4-23.4-23.4zM781 632.9H678.8c-12.9 0-23.4 10.5-23.4 23.4v87.6c0 12.9 10.5 23.4 23.4 23.4H781c12.9 0 23.4-10.5 23.4-23.4v-87.6c0-12.9-10.6-23.4-23.4-23.4z" ></path></symbol><symbol id="icon-zuoce-qujian" viewBox="0 0 1024 1024"><path d="M915.456 198.656c-49.3568 0-90.9312 32.768-104.0384 77.824h-195.1744c-13.312-45.056-54.8864-77.824-104.0384-77.824-49.3568 0-90.9312 32.768-104.0384 77.824H30.72c-16.9984 0-30.72 13.7216-30.72 30.72s13.7216 30.72 30.72 30.72h377.2416c13.312 45.056 54.8864 77.824 104.0384 77.824 49.3568 0 90.9312-32.768 104.0384-77.824h195.1744c13.312 45.056 54.8864 77.824 104.0384 77.824 60.0064 0 108.544-48.5376 108.544-108.544 0.2048-60.0064-48.3328-108.544-108.3392-108.544z m-403.456 155.648c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z m403.456 0c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104zM993.28 686.08H616.0384c-13.312-45.056-54.8864-77.824-104.0384-77.824-49.3568 0-90.9312 32.768-104.0384 77.824h-193.1264c-13.312-45.056-54.8864-77.824-104.0384-77.824-55.7056 0-101.376 41.7792-107.7248 95.6416-1.8432 3.8912-2.8672 8.192-2.8672 12.9024s1.024 9.0112 2.8672 12.9024C9.216 783.5648 54.8864 825.344 110.592 825.344c49.3568 0 90.9312-32.768 104.0384-77.824h193.1264c13.312 45.056 54.8864 77.824 104.0384 77.824 49.3568 0 90.9312-32.768 104.0384-77.824H993.28c16.9984 0 30.72-13.7216 30.72-30.72s-13.7216-30.72-30.72-30.72zM110.592 763.904c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z m401.408 0c-26.0096 0-47.104-21.0944-47.104-47.104s21.0944-47.104 47.104-47.104 47.104 21.0944 47.104 47.104-21.0944 47.104-47.104 47.104z" fill="#646464" ></path></symbol><symbol id="icon-liebiao" viewBox="0 0 1024 1024"><path d="M92.5 573.1h179.4c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9zM950.9 823L848 720c31.9-40.7 51.7-91.2 51.7-146.9 0-132.1-107.1-239.2-239.2-239.2S421.3 441 421.3 573.1s107.1 239.2 239.2 239.2c55.7 0 106.3-19.9 146.9-51.7l103 103c11.2 11.2 29.3 11.2 40.5 0 11.2-11.3 11.2-29.4 0-40.6zM788.7 698.3c-0.5 0.5-1.3 0.7-1.7 1.2-0.5 0.5-0.7 1.3-1.2 1.7-32.4 31.6-76.4 51.2-125.3 51.2-99.1 0-179.4-80.3-179.4-179.4 0-99.1 80.3-179.4 179.4-179.4S839.9 474 839.9 573.1c0.1 48.8-19.6 92.9-51.2 125.2z m-696.2-484h538.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9z m239.2 119.6H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9h239.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9z m0 358.8H92.5c-16.5 0-29.9 13.4-29.9 29.9s13.4 29.9 29.9 29.9h239.2c16.5 0 29.9-13.4 29.9-29.9s-13.4-29.9-29.9-29.9z m0 0" ></path></symbol><symbol id="icon-xialakuang" viewBox="0 0 1024 1024"><path d="M970.105263 404.210526H53.894737v-323.368421h916.210526v323.368421z m-862.315789-53.894737h808.421052v-215.578947H107.789474v215.578947z" fill="#444A5C" ></path><path d="M970.105263 943.157895H53.894737v-592.842106h916.210526v592.842106z m-862.315789-53.894737h808.421052v-485.052632H107.789474v485.052632zM754.526316 307.2L662.905263 215.578947l37.726316-37.726315 53.894737 53.894736 53.894737-53.894736 37.726315 37.726315z" fill="#444A5C" ></path><path d="M264.084211 781.473684h485.052631v-53.894737h-485.052631v53.894737z m0-107.789473h485.052631v-53.894737h-485.052631v53.894737z m0-161.684211v53.894737h485.052631v-53.894737h-485.052631z" fill="#444A5C" ></path></symbol><symbol id="icon-xialashu" viewBox="0 0 1024 1024"><path d="M970.105263 323.368421H53.894737V53.894737h916.210526v269.473684zM107.789474 269.473684h808.421052V107.789474H107.789474v161.68421zM215.578947 538.947368H53.894737V377.263158h161.68421v161.68421zM107.789474 485.052632h53.894737V431.157895H107.789474v53.894737z" fill="#444A5C" ></path><path d="M269.473684 431.157895h431.157895v53.894737H269.473684V431.157895zM538.947368 646.736842h431.157895v53.894737h-431.157895v-53.894737zM538.947368 862.315789h431.157895v53.894737h-431.157895v-53.894737zM107.789474 485.052632h53.894737v431.157894H107.789474V485.052632zM161.684211 700.631579v-53.894737h161.68421v53.894737H161.684211M161.684211 916.210526v-53.894737h161.68421v53.894737H161.684211" fill="#444A5C" ></path><path d="M485.052632 754.526316H323.368421v-161.684211h161.684211v161.684211z m-107.789474-53.894737h53.894737v-53.894737H377.263158v53.894737zM485.052632 970.105263H323.368421v-161.68421h161.684211v161.68421z m-107.789474-53.894737h53.894737v-53.894737H377.263158v53.894737z" fill="#444A5C" ></path><path d="M754.526316 161.684211h107.789473v53.894736h-107.789473V161.684211z" fill="#444A5C" ></path></symbol><symbol id="icon-zhongzhi" viewBox="0 0 1024 1024"><path d="M624.593455 23.272727a93.090909 93.090909 0 0 1 93.090909 93.090909v168.587637l143.406545 0.023272a116.363636 116.363636 0 0 1 116.247273 111.313455l0.116363 5.050182V861.090909a116.363636 116.363636 0 0 1-116.363636 116.363636H162.909091a116.363636 116.363636 0 0 1-116.363636-116.363636V401.338182a116.363636 116.363636 0 0 1 116.363636-116.363637l146.664727-0.023272V116.363636a93.090909 93.090909 0 0 1 88.459637-92.974545l4.654545-0.116364zM139.636364 581.818182v279.272727a23.272727 23.272727 0 0 0 23.272727 23.272727h302.545454v-162.909091a46.545455 46.545455 0 1 1 93.09091 0v162.909091h93.090909v-162.909091a46.545455 46.545455 0 1 1 93.090909 0v162.909091h116.363636a23.272727 23.272727 0 0 0 23.272727-23.272727V581.818182H139.636364z m0-93.090909h744.727272v-87.389091a23.272727 23.272727 0 0 0-23.272727-23.272727h-166.679273a69.818182 69.818182 0 0 1-69.818181-69.818182V116.363636h-221.905455v191.883637a69.818182 69.818182 0 0 1-69.818182 69.818182H162.909091a23.272727 23.272727 0 0 0-23.272727 23.272727V488.727273z" ></path></symbol><symbol id="icon-ri" viewBox="0 0 1024 1024"><path d="M408.222897 789.115586v-35.345655h217.15862v34.886621h33.474207V388.378483h-283.68331v400.737103h33.050483z m217.15862-237.779862h-217.15862v-130.824827h217.15862v130.824827z m0 170.301793h-217.15862v-138.169379h217.15862v138.169379z" ></path><path d="M917.645241 144.772414a70.62069 70.62069 0 0 1 70.62069 70.620689v681.489656a70.62069 70.62069 0 0 1-70.62069 70.620689H94.384552a70.62069 70.62069 0 0 1-70.62069-70.620689V215.393103a70.62069 70.62069 0 0 1 70.62069-70.620689h823.260689z m0 45.903448H94.384552a24.717241 24.717241 0 0 0-24.50538 21.362759l-0.211862 3.354482v681.489656a24.717241 24.717241 0 0 0 21.362759 24.505379l3.354483 0.211862h823.260689a24.717241 24.717241 0 0 0 24.50538-21.362759l0.211862-3.354482V215.393103a24.717241 24.717241 0 0 0-21.362759-24.505379l-3.354483-0.211862z" ></path><path d="M312.214069 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656276 3.389793l-0.247172-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724zM691.023448 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656275 3.389793l-0.247173-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724z" ></path></symbol><symbol id="icon-nian" viewBox="0 0 1024 1024"><path d="M715.702857 32.365714a23.771429 23.771429 0 0 1 23.515429 20.260572l0.256 3.510857V149.942857l210.944 0.036572a73.142857 73.142857 0 0 1 73.142857 73.142857v705.828571a73.142857 73.142857 0 0 1-73.142857 73.142857H97.755429a73.142857 73.142857 0 0 1-73.142858-73.142857V223.085714a73.142857 73.142857 0 0 1 73.142858-73.142857h201.837714V56.100571a23.771429 23.771429 0 0 1 47.286857-3.510857l0.256 3.510857V149.942857h344.795429V56.137143a23.771429 23.771429 0 0 1 23.771428-23.771429zM299.593143 197.485714l-201.874286 0.036572a25.6 25.6 0 0 0-25.344 22.125714l-0.219428 3.474286v705.828571a25.6 25.6 0 0 0 22.125714 25.380572l3.474286 0.219428h852.662857a25.6 25.6 0 0 0 25.380571-22.125714l0.219429-3.474286V223.085714a25.6 25.6 0 0 0-22.125715-25.380571l-3.474285-0.219429H739.474286v45.933715a23.771429 23.771429 0 0 1-47.286857 3.510857l-0.256-3.510857V197.485714H347.136v45.970286a23.771429 23.771429 0 0 1-47.286857 3.510857l-0.256-3.510857V197.485714z m112.274286 181.504l35.657142 6.656c-5.229714 18.066286-11.410286 34.706286-18.066285 50.870857h295.241143v33.28h-149.284572v76.068572h132.644572v32.804571h-132.644572v102.692572h164.498286v33.28h-164.498286v106.020571h-34.706286V714.605714H321.097143v-33.28h78.445714v-135.497143h141.202286v-76.068571h-127.890286a285.805714 285.805714 0 0 1-75.117714 84.626286l-22.820572-28.525715c48.018286-36.132571 80.347429-85.101714 96.987429-146.907428z m128.841142 199.68H433.737143v102.692572h106.971428v-102.692572z" ></path></symbol><symbol id="icon-yue" viewBox="0 0 1024 1024"><path d="M371.959172 792.328828c29.837241-39.017931 47.315862-88.134621 52.788966-147.809104h197.843862v91.347862c0 13.312-5.508414 20.197517-16.066207 20.197517-17.44331 0-36.722759-0.918069-57.838345-1.836137l9.18069 32.591448h59.215448c25.705931 0 39.017931-13.312 39.017931-39.476966V388.378483h-263.026758v224.008827c-0.918069 63.346759-16.066207 115.67669-46.362483 156.989793l25.246896 22.951725z m250.632828-291.945931h-195.972414v-80.331035h195.972414v80.331035z m0 113.381517h-195.972414v-82.626207h195.972414v82.626207z" ></path><path d="M917.645241 144.772414a70.62069 70.62069 0 0 1 70.62069 70.620689v681.489656a70.62069 70.62069 0 0 1-70.62069 70.620689H94.384552a70.62069 70.62069 0 0 1-70.62069-70.620689V215.393103a70.62069 70.62069 0 0 1 70.62069-70.620689h823.260689z m0 45.903448H94.384552a24.717241 24.717241 0 0 0-24.50538 21.362759l-0.211862 3.354482v681.489656a24.717241 24.717241 0 0 0 21.362759 24.505379l3.354483 0.211862h823.260689a24.717241 24.717241 0 0 0 24.50538-21.362759l0.211862-3.354482V215.393103a24.717241 24.717241 0 0 0-21.362759-24.505379l-3.354483-0.211862z" ></path><path d="M312.214069 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656276 3.389793l-0.247172-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724zM691.023448 31.249655a22.951724 22.951724 0 0 1 22.704552 19.561931l0.247172 3.389793v180.824276a22.951724 22.951724 0 0 1-45.656275 3.389793l-0.247173-3.389793v-180.788965a22.951724 22.951724 0 0 1 22.951724-22.951724z" ></path></symbol></svg>',z=(z=document.getElementsByTagName("script"))[z.length-1].getAttribute("data-injectcss");if(z&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(h){console&&console.log(h)}}function s(){t||(t=!0,a())}c=function(){var h,c,l;(l=document.createElement("div")).innerHTML=i,i=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",h=c,(l=document.body).firstChild?(c=l.firstChild).parentNode.insertBefore(h,c):l.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(a=c,v=h.document,t=!1,(o=function(){try{v.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}s()})(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,s())})}(window);
\ No newline at end of file
......@@ -5,6 +5,20 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "4454064",
"name": "透明",
"font_class": "touming",
"unicode": "e642",
"unicode_decimal": 58946
},
{
"icon_id": "7311866",
"name": "弧度",
"font_class": "fangxing-",
"unicode": "e61a",
"unicode_decimal": 58906
},
{
"icon_id": "20921234",
"name": "放大",
......
......@@ -211,17 +211,19 @@ div:focus {
}
.custom-component-class {
width: 100%;
div:not(.de-number-range-container ) {
width: 100% !important;
}
div.el-input-group__append {
width: 10% !important;
}
div {
width: 100% !important;
}
}
%field-icon{
font-size: 13px;
margin: 0 3px 0 0;
margin: 0 2px 0 0;
}
.field-icon-text{
@extend %field-icon;
......@@ -239,6 +241,12 @@ div:focus {
@extend %field-icon;
color: #F56C6C;
}
.field-icon-sort{
font-size: 10px;
@extend %field-icon;
color: #999999;
margin: 0 2px 1px 0;
}
.ds-icon-scene{
width: 13px;
height: 13px;
......
......@@ -528,3 +528,37 @@ export const BASE_CHART = {
},
customFilter: []
}
export const BASE_MAP = {
title: {
text: '',
textStyle: {
fontWeight: 'normal'
}
},
tooltip: {},
visualMap: {
min: 50,
max: 52,
text: ['High', 'Low'],
realtime: false,
calculable: true,
inRange: {
color: ['lightskyblue', 'yellow', 'orangered']
}
},
// legend: {},
series: [
{
name: '',
type: 'map',
map: 'HK',
roam: true,
// label: {
// show: true
// },
data: []
}
]
}
......@@ -29,7 +29,7 @@ export function componentStyle(chart_option, chart) {
customStyle.text.isBolder ? style.fontWeight = 'bold' : style.fontWeight = 'normal'
chart_option.title.textStyle = style
}
if (customStyle.legend) {
if (customStyle.legend && chart_option.legend) {
chart_option.legend.show = customStyle.legend.show
// 水平方向
if (customStyle.legend.hPosition === 'left') {
......
import { hexColorToRGBA } from '@/views/chart/chart/util'
import { componentStyle } from '../common/common'
export function baseMapOption(chart_option, chart) {
// 处理shape attr
let customAttr = {}
if (chart.customAttr) {
customAttr = JSON.parse(chart.customAttr)
if (customAttr.color) {
chart_option.color = customAttr.color.colors
}
// tooltip
if (customAttr.tooltip) {
const tooltip = JSON.parse(JSON.stringify(customAttr.tooltip))
const reg = new RegExp('\n', 'g')
tooltip.formatter = tooltip.formatter.replace(reg, '<br/>')
chart_option.tooltip = tooltip
}
}
// 处理data
if (chart.data) {
chart_option.title.text = chart.title
if (chart.data.series.length > 0) {
chart_option.series[0].name = chart.data.series[0].name
// size
if (customAttr.size) {
chart_option.series[0].radius = [customAttr.size.pieInnerRadius + '%', customAttr.size.pieOuterRadius + '%']
}
// label
if (customAttr.label) {
chart_option.series[0].label = customAttr.label
chart_option.series[0].labelLine = customAttr.label.labelLine
}
// visualMap
const valueArr = chart.data.series[0].data
chart_option.visualMap.min = Math.min(...valueArr)
chart_option.visualMap.max = Math.max(...valueArr)
if (customAttr.color && customAttr.color.colors) {
chart_option.visualMap.inRange.color = customAttr.color.colors
}
for (let i = 0; i < valueArr.length; i++) {
const y = {
name: chart.data.x[i],
value: valueArr[i]
}
// color
y.itemStyle = {
color: hexColorToRGBA(customAttr.color.colors[i % 9], customAttr.color.alpha),
borderRadius: 0
}
chart_option.series[0].data.push(y)
}
}
}
// console.log(chart_option);
componentStyle(chart_option, chart)
return chart_option
}
......@@ -5,15 +5,17 @@
</template>
<script>
import { BASE_BAR, BASE_LINE, HORIZONTAL_BAR, BASE_PIE, BASE_FUNNEL, BASE_RADAR, BASE_GAUGE } from '../chart/chart'
import { BASE_BAR, BASE_LINE, HORIZONTAL_BAR, BASE_PIE, BASE_FUNNEL, BASE_RADAR, BASE_GAUGE, BASE_MAP } from '../chart/chart'
import { baseBarOption, stackBarOption, horizontalBarOption, horizontalStackBarOption } from '../chart/bar/bar'
import { baseLineOption, stackLineOption } from '../chart/line/line'
import { basePieOption, rosePieOption } from '../chart/pie/pie'
import { baseMapOption } from '../chart/map/map'
import { baseFunnelOption } from '../chart/funnel/funnel'
import { baseRadarOption } from '../chart/radar/radar'
import { baseGaugeOption } from '../chart/gauge/gauge'
import eventBus from '@/components/canvas/utils/eventBus'
// import eventBus from '@/components/canvas/utils/eventBus'
import { uuid } from 'vue-uuid'
import { geoJson } from '@/api/map/map'
export default {
name: 'ChartComponent',
......@@ -93,6 +95,29 @@ export default {
} else if (chart.type === 'gauge') {
chart_option = baseGaugeOption(JSON.parse(JSON.stringify(BASE_GAUGE)), chart)
}
if (chart.type === 'map') {
const customAttr = JSON.parse(chart.customAttr)
if (!customAttr.areaCode) return
let areaJson
if ((areaJson = localStorage.getItem('areaJson' + customAttr.areaCode)) !== null) {
this.initMapChart(areaJson, chart)
return
}
geoJson(customAttr.areaCode).then(res => {
this.initMapChart(res.data, chart)
// localStorage最大容量只有5M,先取消缓存
// localStorage.setItem('areaJson' + customAttr.areaCode, res.data)
})
return
}
this.myEcharts(chart_option)
},
initMapChart(geoJson, chart) {
this.$echarts.registerMap('HK', geoJson)
const base_json = JSON.parse(JSON.stringify(BASE_MAP))
const chart_option = baseMapOption(base_json, chart)
this.myEcharts(chart_option)
},
myEcharts(option) {
......
<template>
<span>
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
</el-tag>
<el-dropdown v-else trigger="click" size="mini" @command="clickItem">
<span class="el-dropdown-link">
<el-tag size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
<i class="el-icon-arrow-down el-icon--right" style="position: absolute;top: 6px;right: 10px;" />
</el-tag>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-dropdown placement="right-start" size="mini" style="width: 100%" @command="sort">
<span class="el-dropdown-link inner-dropdown-menu">
<span>
<i class="el-icon-sort" />
<span>{{ $t('chart.sort') }}</span>
<span class="summary-span">({{ $t('chart.'+item.sort) }})</span>
</span>
<i class="el-icon-arrow-right el-icon--right" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="beforeSort('none')">{{ $t('chart.none') }}</el-dropdown-item>
<el-dropdown-item :command="beforeSort('asc')">{{ $t('chart.asc') }}</el-dropdown-item>
<el-dropdown-item :command="beforeSort('desc')">{{ $t('chart.desc') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-delete" divided :command="beforeClickItem('remove')">
<span>{{ $t('chart.delete') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</span>
</el-dropdown>
</span>
</template>
<script>
export default {
name: 'ChartDragItem',
props: {
param: {
type: Object,
required: true
},
item: {
type: Object,
required: true
},
index: {
type: Number,
required: true
}
},
data() {
return {
}
},
mounted() {
},
methods: {
clickItem(param) {
if (!param) {
return
}
switch (param.type) {
case 'remove':
this.removeItem()
break
default:
break
}
},
beforeClickItem(type) {
return {
type: type
}
},
sort(param) {
// console.log(param)
this.item.sort = param.type
this.$emit('onItemChange', this.item)
},
beforeSort(type) {
return {
type: type
}
},
removeItem() {
this.item.index = this.index
this.$emit('onItemRemove', this.item)
}
}
}
</script>
<style scoped>
.item-axis {
padding: 1px 6px;
margin: 0 3px 2px 3px;
text-align: left;
height: 24px;
line-height: 22px;
display: flex;
border-radius: 4px;
box-sizing: border-box;
white-space: nowrap;
width: 159px;
}
.item-axis:hover {
background-color: #fdfdfd;
cursor: pointer;
}
span {
font-size: 12px;
}
.summary-span{
margin-left: 4px;
color: #878d9f;;
}
.inner-dropdown-menu{
display: flex;
justify-content: space-between;
align-items: center;
width: 100%
}
.item-span-style{
display: inline-block;
width: 100px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
</style>
<template>
<span>
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis">
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
</el-tag>
<el-dropdown v-else trigger="click" size="mini" @command="clickItem">
<span class="el-dropdown-link">
<el-tag size="small" class="item-axis">
<el-tag size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
<i class="el-icon-arrow-down el-icon--right" style="position: absolute;top: 6px;right: 10px;" />
......
<template>
<span>
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis">
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
......@@ -11,7 +11,7 @@
</el-tag>
<el-dropdown v-else trigger="click" size="mini" @command="clickItem">
<span class="el-dropdown-link">
<el-tag size="small" class="item-axis">
<el-tag size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
......
<template>
<span>
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis">
<el-tag v-if="!hasDataPermission('manage',param.privileges)" size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
<span v-if="item.summary" class="summary-span">{{ $t('chart.'+item.summary) }}</span>
</el-tag>
<el-dropdown v-else trigger="click" size="mini" @command="clickItem">
<span class="el-dropdown-link">
<el-tag size="small" class="item-axis">
<el-tag size="small" class="item-axis" :type="item.groupType === 'd'?'':'success'">
<span style="float: left">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
<svg-icon v-if="item.deType === 5" icon-class="field_location" class="field-icon-location" />
<svg-icon v-if="item.sort === 'asc'" icon-class="sort-asc" class-name="field-icon-sort" />
<svg-icon v-if="item.sort === 'desc'" icon-class="sort-desc" class-name="field-icon-sort" />
</span>
<span class="item-span-style" :title="item.name">{{ item.name }}</span>
<span v-if="item.summary" class="summary-span">{{ $t('chart.'+item.summary) }}</span>
......@@ -30,7 +34,7 @@
<span>
<i class="el-icon-notebook-2" />
<span>{{ $t('chart.summary') }}</span>
<span class="summary-span">({{ $t('chart.'+item.summary) }})</span>
<span class="summary-span-item">({{ $t('chart.'+item.summary) }})</span>
</span>
<i class="el-icon-arrow-right el-icon--right" />
</span>
......@@ -52,7 +56,7 @@
<!-- <span>-->
<!-- <i class="el-icon-s-grid" />-->
<!-- <span>{{ $t('chart.quick_calc') }}</span>-->
<!-- <span class="summary-span">(无)</span>-->
<!-- <span class="summary-span-item">(无)</span>-->
<!-- </span>-->
<!-- <i class="el-icon-arrow-right el-icon&#45;&#45;right" />-->
<!-- </span>-->
......@@ -67,7 +71,7 @@
<span>
<i class="el-icon-sort" />
<span>{{ $t('chart.sort') }}</span>
<span class="summary-span">({{ $t('chart.'+item.sort) }})</span>
<span class="summary-span-item">({{ $t('chart.'+item.sort) }})</span>
</span>
<i class="el-icon-arrow-right el-icon--right" />
</span>
......@@ -212,9 +216,16 @@ export default {
font-size: 12px;
}
.summary-span-item{
margin-left: 4px;
color: #878d9f;
}
.summary-span{
margin-left: 4px;
color: #878d9f;;
color: #878d9f;
position: absolute;
right: 30px;
}
.inner-dropdown-menu{
......@@ -226,7 +237,7 @@ export default {
.item-span-style{
display: inline-block;
width: 80px;
width: 70px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
......
......@@ -741,6 +741,9 @@ export default {
background: DEFAULT_BACKGROUND_COLOR,
split: DEFAULT_SPLIT
})
view.xaxis = JSON.stringify([])
view.yaxis = JSON.stringify([])
view.extStack = JSON.stringify([])
view.customFilter = JSON.stringify([])
post('/chart/view/save', view).then(response => {
this.closeCreateChart()
......
......@@ -55,7 +55,7 @@
@add="moveToDimension"
>
<transition-group>
<span v-for="item in dimensionData" :key="item.id" class="item" :title="item.name">
<span v-for="item in dimensionData" :key="item.id" class="item-dimension" :title="item.name">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
......@@ -77,7 +77,7 @@
@add="moveToQuota"
>
<transition-group>
<span v-for="item in quotaData" :key="item.id" class="item" :title="item.name">
<span v-for="item in quotaData" :key="item.id" class="item-quota" :title="item.name">
<svg-icon v-if="item.deType === 0" icon-class="field_text" class="field-icon-text" />
<svg-icon v-if="item.deType === 1" icon-class="field_time" class="field-icon-time" />
<svg-icon v-if="item.deType === 2 || item.deType === 3" icon-class="field_value" class="field-icon-value" />
......@@ -190,6 +190,11 @@
<svg-icon icon-class="gauge" class="chart-icon" />
</span>
</el-radio>
<el-radio value="map" label="map">
<span :title="$t('chart.chart_map')">
<svg-icon icon-class="map" class="chart-icon" />
</span>
</el-radio>
<el-radio value="" label="" disabled class="disabled-none-cursor"><svg-icon icon-class="" class="chart-icon" /></el-radio>
<el-radio value="" label="" disabled class="disabled-none-cursor"><svg-icon icon-class="" class="chart-icon" /></el-radio>
</div>
......@@ -212,13 +217,30 @@
</div>
<div style="overflow:auto;border-top: 1px solid #e6e6e6" class="attr-style">
<el-row style="height: 100%;">
<el-row v-if="chart.type !=='text' && chart.type !== 'gauge'" class="padding-lr">
<el-row v-if="view.type ==='map'" class="padding-lr">
<span style="width: 80px;text-align: right;">
<span>{{ $t('chart.map_range') }}</span>
</span>
<span class="tree-select-span">
<treeselect
ref="mapSelector"
v-model="view.customAttr.areaCode"
:options="places"
:placeholder="$t('chart.select_map_range')"
:normalizer="normalizer"
@input="save"
@deselect="save"
/>
</span>
</el-row>
<el-row v-if="view.type !=='text' && view.type !== 'gauge'" class="padding-lr">
<span style="width: 80px;text-align: right;">
<span v-if="chart.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
<span v-else-if="chart.type.includes('bar') || chart.type.includes('line')">{{ $t('chart.drag_block_type_axis') }}</span>
<span v-else-if="chart.type.includes('pie')">{{ $t('chart.drag_block_pie_label') }}</span>
<span v-else-if="chart.type.includes('funnel')">{{ $t('chart.drag_block_funnel_split') }}</span>
<span v-else-if="chart.type.includes('radar')">{{ $t('chart.drag_block_radar_label') }}</span>
<span v-if="view.type && view.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
<span v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line'))">{{ $t('chart.drag_block_type_axis') }}</span>
<span v-else-if="view.type && view.type.includes('pie')">{{ $t('chart.drag_block_pie_label') }}</span>
<span v-else-if="view.type && view.type.includes('funnel')">{{ $t('chart.drag_block_funnel_split') }}</span>
<span v-else-if="view.type && view.type.includes('radar')">{{ $t('chart.drag_block_radar_label') }}</span>
<span v-else-if="view.type && view.type.includes('map')">{{ $t('chart.area') }}</span>
/
<span>{{ $t('chart.dimension') }}</span>
</span>
......@@ -228,7 +250,7 @@
group="drag"
animation="300"
:move="onMove"
style="padding:2px 0 0 0;width:100%;min-height: 32px;border-radius: 4px;border: 1px solid #DCDFE6;overflow-x: auto;display: flex;align-items: center;background-color: white;"
class="drag-block-style"
@add="addXaxis"
>
<transition-group class="draggable-group">
......@@ -238,13 +260,14 @@
</el-row>
<el-row class="padding-lr" style="margin-top: 6px;">
<span style="width: 80px;text-align: right;">
<span v-if="chart.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
<span v-else-if="chart.type.includes('bar') || chart.type.includes('line')">{{ $t('chart.drag_block_value_axis') }}</span>
<span v-else-if="chart.type.includes('pie')">{{ $t('chart.drag_block_pie_angel') }}</span>
<span v-else-if="chart.type.includes('funnel')">{{ $t('chart.drag_block_funnel_width') }}</span>
<span v-else-if="chart.type.includes('radar')">{{ $t('chart.drag_block_radar_length') }}</span>
<span v-else-if="chart.type.includes('gauge')">{{ $t('chart.drag_block_gauge_angel') }}</span>
<span v-else-if="chart.type.includes('text')">{{ $t('chart.drag_block_label_value') }}</span>
<span v-if="view.type && view.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
<span v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line'))">{{ $t('chart.drag_block_value_axis') }}</span>
<span v-else-if="view.type && view.type.includes('pie')">{{ $t('chart.drag_block_pie_angel') }}</span>
<span v-else-if="view.type && view.type.includes('funnel')">{{ $t('chart.drag_block_funnel_width') }}</span>
<span v-else-if="view.type && view.type.includes('radar')">{{ $t('chart.drag_block_radar_length') }}</span>
<span v-else-if="view.type && view.type.includes('gauge')">{{ $t('chart.drag_block_gauge_angel') }}</span>
<span v-else-if="view.type && view.type.includes('text')">{{ $t('chart.drag_block_label_value') }}</span>
<span v-else-if="view.type && view.type.includes('map')">{{ $t('chart.chart_data') }}</span>
/
<span>{{ $t('chart.quota') }}</span>
</span>
......@@ -254,7 +277,7 @@
group="drag"
animation="300"
:move="onMove"
style="padding:2px 0 0 0;width:100%;min-height: 32px;border-radius: 4px;border: 1px solid #DCDFE6;overflow-x: auto;display: flex;align-items: center;background-color: white;"
class="drag-block-style"
@add="addYaxis"
>
<transition-group class="draggable-group">
......@@ -262,6 +285,26 @@
</transition-group>
</draggable>
</el-row>
<el-row v-if="view.type && view.type.includes('stack')" class="padding-lr" style="margin-top: 6px;">
<span style="width: 80px;text-align: right;">
<span>{{ $t('chart.stack_item') }}</span>
/
<span>{{ $t('chart.dimension') }}</span>
</span>
<draggable
v-model="view.extStack"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag"
animation="300"
:move="onMove"
class="drag-block-style"
@add="addStack"
>
<transition-group class="draggable-group">
<chart-drag-item v-for="(item,index) in view.extStack" :key="item.id" :param="param" :index="index" :item="item" @onItemChange="stackItemChange" @onItemRemove="stackItemRemove" />
</transition-group>
</draggable>
</el-row>
<div class="padding-lr filter-class" style="margin-top: 6px;">
<span>{{ $t('chart.result_filter') }}</span>
<!-- <el-button :disabled="!hasDataPermission('manage',param.privileges)" size="mini" class="filter-btn-class" @click="showResultFilter">-->
......@@ -301,7 +344,7 @@
<span>{{ $t('chart.shape_attr') }}</span>
<el-row>
<color-selector :param="param" class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
<size-selector :param="param" class="attr-selector" :chart="chart" @onSizeChange="onSizeChange" />
<size-selector v-show="chart.type !== 'map'" :param="param" class="attr-selector" :chart="chart" @onSizeChange="onSizeChange" />
<label-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onLabelChange="onLabelChange" />
<tooltip-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onTooltipChange="onTooltipChange" />
</el-row>
......@@ -309,11 +352,11 @@
<el-row class="padding-lr">
<span>{{ $t('chart.module_style') }}</span>
<el-row>
<x-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" :param="param" class="attr-selector" :chart="chart" @onChangeXAxisForm="onChangeXAxisForm" />
<y-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" :param="param" class="attr-selector" :chart="chart" @onChangeYAxisForm="onChangeYAxisForm" />
<split-selector v-show="view.type.includes('radar')" :param="param" class="attr-selector" :chart="chart" @onChangeSplitForm="onChangeSplitForm" />
<x-axis-selector v-show="view.type && (view.type.includes('bar') || view.type.includes('line'))" :param="param" class="attr-selector" :chart="chart" @onChangeXAxisForm="onChangeXAxisForm" />
<y-axis-selector v-show="view.type && (view.type.includes('bar') || view.type.includes('line'))" :param="param" class="attr-selector" :chart="chart" @onChangeYAxisForm="onChangeYAxisForm" />
<split-selector v-show="view.type && view.type.includes('radar')" :param="param" class="attr-selector" :chart="chart" @onChangeSplitForm="onChangeSplitForm" />
<title-selector :param="param" class="attr-selector" :chart="chart" @onTextChange="onTextChange" />
<legend-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onLegendChange="onLegendChange" />
<legend-selector v-show="view.type && !view.type.includes('map') && !view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onLegendChange="onLegendChange" />
<background-color-selector :param="param" class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" />
</el-row>
</el-row>
......@@ -434,6 +477,7 @@ import draggable from 'vuedraggable'
import DimensionItem from '../components/drag-item/DimensionItem'
import QuotaItem from '../components/drag-item/QuotaItem'
import FilterItem from '../components/drag-item/FilterItem'
import ChartDragItem from '../components/drag-item/ChartDragItem'
import ResultFilterEditor from '../components/filter/ResultFilterEditor'
import ChartComponent from '../components/ChartComponent'
import bus from '@/utils/bus'
......@@ -465,10 +509,10 @@ import QuotaFilterEditor from '../components/filter/QuotaFilterEditor'
import DimensionFilterEditor from '../components/filter/DimensionFilterEditor'
import TableNormal from '../components/table/TableNormal'
import LabelNormal from '../components/normal/LabelNormal'
import html2canvas from 'html2canvasde'
// import html2canvas from 'html2canvasde'
import TableSelector from './TableSelector'
import FieldEdit from '../../dataset/data/FieldEdit'
import { areaMapping } from '@/api/map/map'
export default {
name: 'ChartEdit',
components: {
......@@ -494,7 +538,8 @@ export default {
ChartComponent,
QuotaItem,
DimensionItem,
draggable
draggable,
ChartDragItem
},
props: {
param: {
......@@ -513,6 +558,7 @@ export default {
view: {
xaxis: [],
yaxis: [],
extStack: [],
show: true,
type: 'bar',
title: '',
......@@ -563,7 +609,8 @@ export default {
searchField: '',
editDsField: false,
changeDsTitle: '',
filterItem: {}
filterItem: {},
places: []
}
},
computed: {
......@@ -587,6 +634,7 @@ export default {
},
created() {
// this.get(this.$store.state.chart.viewId);
this.initAreas()
},
mounted() {
// this.get(this.$store.state.chart.viewId);
......@@ -667,6 +715,11 @@ export default {
ele.filter = []
}
})
view.extStack.forEach(function(ele) {
if (!ele.sort || ele.sort === '') {
ele.sort = 'none'
}
})
if (view.type.startsWith('pie') || view.type.startsWith('funnel') || view.type.startsWith('text') || view.type.startsWith('gauge')) {
if (view.yaxis.length > 1) {
view.yaxis.splice(1, view.yaxis.length)
......@@ -688,6 +741,7 @@ export default {
view.customAttr = JSON.stringify(view.customAttr)
view.customStyle = JSON.stringify(view.customStyle)
view.customFilter = JSON.stringify(view.customFilter)
view.extStack = JSON.stringify(view.extStack)
post('/chart/view/save', view).then(response => {
// this.get(response.data.id);
// this.getData(response.data.id)
......@@ -707,67 +761,67 @@ export default {
})
},
saveSnapshot() {
if (this.view.title && this.view.title.length > 50) {
this.$warning(this.$t('chart.title_limit'))
return
}
if (this.loading) {
return
}
this.loading = true
html2canvas(this.$refs.imageWrapper).then(canvas => {
const snapshot = canvas.toDataURL('image/jpeg', 0.1) // 0.1是图片质量
if (snapshot !== '') {
const view = JSON.parse(JSON.stringify(this.view))
view.id = this.view.id
view.sceneId = this.view.sceneId
view.name = this.view.name ? this.view.name : this.table.name
view.tableId = this.view.tableId
view.xaxis.forEach(function(ele) {
// if (!ele.summary || ele.summary === '') {
// ele.summary = 'sum'
// }
if (!ele.sort || ele.sort === '') {
ele.sort = 'none'
}
if (!ele.filter) {
ele.filter = []
}
})
view.yaxis.forEach(function(ele) {
if (!ele.summary || ele.summary === '') {
if (ele.id === 'count') {
ele.summary = 'count'
} else {
ele.summary = 'sum'
}
}
if (!ele.sort || ele.sort === '') {
ele.sort = 'none'
}
if (!ele.filter) {
ele.filter = []
}
})
if (view.type.startsWith('pie') || view.type.startsWith('funnel') || view.type.startsWith('gauge')) {
if (view.yaxis.length > 1) {
view.yaxis.splice(1, view.yaxis.length)
}
}
view.xaxis = JSON.stringify(view.xaxis)
view.yaxis = JSON.stringify(view.yaxis)
view.customAttr = JSON.stringify(view.customAttr)
view.customStyle = JSON.stringify(view.customStyle)
view.customFilter = JSON.stringify(view.customFilter)
view.snapshot = snapshot
post('/chart/view/save', view).then(response => {
this.loading = false
this.$success(this.$t('commons.save_success'))
})
}
})
},
// saveSnapshot() {
// if (this.view.title && this.view.title.length > 50) {
// this.$warning(this.$t('chart.title_limit'))
// return
// }
// if (this.loading) {
// return
// }
// this.loading = true
// html2canvas(this.$refs.imageWrapper).then(canvas => {
// const snapshot = canvas.toDataURL('image/jpeg', 0.1) // 0.1是图片质量
// if (snapshot !== '') {
// const view = JSON.parse(JSON.stringify(this.view))
// view.id = this.view.id
// view.sceneId = this.view.sceneId
// view.name = this.view.name ? this.view.name : this.table.name
// view.tableId = this.view.tableId
// view.xaxis.forEach(function(ele) {
// // if (!ele.summary || ele.summary === '') {
// // ele.summary = 'sum'
// // }
// if (!ele.sort || ele.sort === '') {
// ele.sort = 'none'
// }
// if (!ele.filter) {
// ele.filter = []
// }
// })
// view.yaxis.forEach(function(ele) {
// if (!ele.summary || ele.summary === '') {
// if (ele.id === 'count') {
// ele.summary = 'count'
// } else {
// ele.summary = 'sum'
// }
// }
// if (!ele.sort || ele.sort === '') {
// ele.sort = 'none'
// }
// if (!ele.filter) {
// ele.filter = []
// }
// })
// if (view.type.startsWith('pie') || view.type.startsWith('funnel') || view.type.startsWith('gauge')) {
// if (view.yaxis.length > 1) {
// view.yaxis.splice(1, view.yaxis.length)
// }
// }
// view.xaxis = JSON.stringify(view.xaxis)
// view.yaxis = JSON.stringify(view.yaxis)
// view.customAttr = JSON.stringify(view.customAttr)
// view.customStyle = JSON.stringify(view.customStyle)
// view.customFilter = JSON.stringify(view.customFilter)
// view.snapshot = snapshot
// post('/chart/view/save', view).then(response => {
// this.loading = false
// this.$success(this.$t('commons.save_success'))
// })
// }
// })
// },
closeEdit() {
if (this.view.title && this.view.title.length > 50) {
this.$warning(this.$t('chart.title_limit'))
......@@ -787,6 +841,7 @@ export default {
this.view = JSON.parse(JSON.stringify(response.data))
this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : []
this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : []
this.view.extStack = this.view.extStack ? JSON.parse(this.view.extStack) : []
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
......@@ -815,6 +870,7 @@ export default {
this.view = JSON.parse(JSON.stringify(response.data))
this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : []
this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : []
this.view.extStack = this.view.extStack ? JSON.parse(this.view.extStack) : []
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
......@@ -1201,12 +1257,53 @@ export default {
}
this.dragMoveDuplicate(this.view.customFilter, e)
this.save(true)
},
initAreas() {
let mapping
if ((mapping = localStorage.getItem('areaMapping')) !== null) {
this.places = JSON.parse(mapping)
return
}
Object.keys(this.places).length === 0 && areaMapping().then(res => {
this.places = res.data
localStorage.setItem('areaMapping', JSON.stringify(res.data))
})
},
normalizer(node) {
const resultNode = {
id: node.code,
label: node.name
}
if (node.children && node.children.length > 0) {
resultNode.children = node.children
}
if (resultNode.children && (!node.children || node.children.length === 0)) {
delete resultNode.children
}
return resultNode
},
addStack(e) {
this.dragCheckType(this.dimensionData, 'd')
if (this.view.extStack && this.view.extStack.length > 1) {
this.view.extStack = [this.view.extStack[0]]
}
this.save(true)
},
stackItemChange(item) {
this.save(true)
},
stackItemRemove(item) {
this.view.extStack.splice(item.index, 1)
this.save(true)
}
}
}
</script>
<style scoped>
<style lang='scss' scoped>
.padding-lr {
padding: 0 6px;
}
......@@ -1240,7 +1337,7 @@ export default {
overflow:auto;
}
.item {
.item-dimension {
padding: 2px 10px;
margin: 2px 2px 0 2px;
border: solid 1px #eee;
......@@ -1250,13 +1347,23 @@ export default {
background-color: white;
display: block;
word-break: break-all;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.item-on-move {
.item-dimension + .item-dimension {
margin-top: 2px;
}
.item-dimension:hover {
color: #1890ff;
background: #e8f4ff;
border-color: #a3d3ff;
cursor: pointer;
}
.item-quota {
padding: 2px 10px;
margin: 2px 2px 0 2px;
border: solid 1px #eee;
......@@ -1264,20 +1371,21 @@ export default {
color: #606266;
/*background-color: rgba(35,46,64,.05);*/
background-color: white;
display: block;
word-break: break-all;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.item + .item {
.item-quota + .item-quota {
margin-top: 2px;
}
.item:hover {
color: #1890ff;
background: #e8f4ff;
border-color: #a3d3ff;
.item-quota:hover {
color: #67c23a;
background: #f0f9eb;
border-color: #b2d3a3;
cursor: pointer;
}
......@@ -1413,4 +1521,21 @@ export default {
line-height: 40px;
padding: 0 0 0 10px;
}
.tree-select-span {
>>>div.vue-treeselect__control {
height: 32px !important;
font-weight: normal !important;
}
}
.drag-block-style{
padding:2px 0 0 0;
width:100%;
min-height: 32px;
border-radius: 4px;
border: 1px solid #DCDFE6;
overflow-x: hidden;
display: flex;
align-items: center;
background-color: white;
}
</style>
......@@ -97,6 +97,7 @@
<div
id="canvasInfo"
class="content this_canvas"
:class="{'border-hidden':canvasStyleData.selfAdaption}"
@drop="handleDrop"
@dragover="handleDragOver"
@mousedown="handleMouseDown"
......@@ -826,4 +827,9 @@ export default {
}
}
.border-hidden {
overflow: hidden;
}
</style>
......@@ -54,7 +54,8 @@ export default {
'textInputWidget'
],
'数字过滤组件': [
'numberSelectWidget'
'numberSelectWidget',
'numberRangeWidget'
]
// '按钮': [
// 'buttonSureWidget'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论