diff --git a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java index 485f6af09e..d2be520475 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java @@ -13,6 +13,7 @@ import io.dataease.plugins.common.base.domain.SysUser; import io.dataease.plugins.common.base.mapper.SysUserMapper; import io.dataease.plugins.common.service.PluginCommonService; import io.dataease.plugins.config.SpringContextUtil; +import io.dataease.plugins.util.PluginUtils; import io.dataease.plugins.xpack.cas.service.CasXpackService; import io.dataease.plugins.xpack.ldap.service.LdapXpackService; import io.dataease.plugins.xpack.oidc.service.OidcXpackService; @@ -95,7 +96,7 @@ public class AuthUserServiceImpl implements AuthUserService { public List permissions(Long userId) { try { // 用户登录获取菜单权限时同时更新插件菜单表 - dynamicMenuService.syncPluginMenu(); + dynamicMenuService.syncPluginMenu(PluginUtils.pluginMenus()); } catch (Exception e) { LogUtil.error(e); //ignore diff --git a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java index 86a808436f..dc8b5e8954 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java @@ -12,6 +12,7 @@ import io.dataease.plugins.util.PluginUtils; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -118,12 +119,9 @@ public class DynamicMenuServiceImpl implements DynamicMenuService { return null == pid || pid == 0L; } - @Transactional - public void syncPluginMenu() { + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void syncPluginMenu(List pluginSysMenuList) { extPluginSysMenuMapper.deletePluginMenu(); - List pluginSysMenuList = PluginUtils.pluginMenus(); - Set pluginSysMenuSet = new HashSet<>(pluginSysMenuList); - pluginSysMenuList = new ArrayList<>(pluginSysMenuSet); if (CollectionUtils.isNotEmpty(pluginSysMenuList)) { extPluginSysMenuMapper.savePluginMenu(pluginSysMenuList); } diff --git a/backend/src/main/java/io/dataease/commons/model/BaseRspModel.java b/backend/src/main/java/io/dataease/commons/model/BaseRspModel.java index c2478a9147..6b75aab6a8 100644 --- a/backend/src/main/java/io/dataease/commons/model/BaseRspModel.java +++ b/backend/src/main/java/io/dataease/commons/model/BaseRspModel.java @@ -3,9 +3,7 @@ package io.dataease.commons.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import java.io.Serializable; -import java.util.List; @Data public class BaseRspModel implements Serializable { diff --git a/backend/src/main/java/io/dataease/commons/wrapper/XssAndSqlHttpServletRequestWrapper.java b/backend/src/main/java/io/dataease/commons/wrapper/XssAndSqlHttpServletRequestWrapper.java index 973d0173e1..a9251e291c 100644 --- a/backend/src/main/java/io/dataease/commons/wrapper/XssAndSqlHttpServletRequestWrapper.java +++ b/backend/src/main/java/io/dataease/commons/wrapper/XssAndSqlHttpServletRequestWrapper.java @@ -17,7 +17,6 @@ import com.google.gson.Gson; import io.dataease.commons.holder.ThreadLocalContextHolder; import io.dataease.commons.utils.CommonBeanFactory; import io.dataease.commons.utils.ServletUtils; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.core.env.Environment; import org.springframework.util.StreamUtils; diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java index 34e6002cd1..c8b9d03057 100644 --- a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java +++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -8,11 +8,9 @@ import io.dataease.commons.constants.ResourceAuthLevel; import io.dataease.controller.request.chart.*; import io.dataease.controller.response.ChartDetail; import io.dataease.dto.chart.ChartViewDTO; -import io.dataease.plugins.common.base.domain.ChartViewCacheWithBLOBs; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.service.chart.ChartViewCacheService; import io.dataease.service.chart.ChartViewService; -import io.dataease.service.panel.PanelViewService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java index d6d8620060..8833cccf3a 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java @@ -1,14 +1,12 @@ package io.dataease.controller.dataset; import com.github.xiaoymin.knife4j.annotations.ApiSupport; -import io.dataease.auth.annotation.DeLog; import io.dataease.auth.annotation.DePermission; import io.dataease.auth.annotation.DePermissions; import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.ResourceAuthLevel; import io.dataease.commons.constants.SysLogConstants; import io.dataease.commons.utils.DeLogUtils; -import io.dataease.controller.dataset.request.DeleteGroupRequest; import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.dto.SysLogDTO; import io.dataease.dto.dataset.DataSetGroupDTO; @@ -20,7 +18,6 @@ import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.Logical; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; - import javax.annotation.Resource; import java.util.List; diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index b1644ab116..6832a45023 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -34,7 +34,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @Author gin diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java index 241d0fd29f..c8d3478e44 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java @@ -6,7 +6,6 @@ import io.dataease.auth.annotation.DePermissionProxy; import io.dataease.auth.annotation.DePermissions; import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; import io.dataease.plugins.common.base.domain.PanelGroup; -import io.dataease.plugins.common.base.domain.PanelGroupWithBLOBs; import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.ResourceAuthLevel; import io.dataease.controller.handler.annotation.I18n; @@ -19,10 +18,8 @@ import io.dataease.service.panel.PanelGroupService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import springfox.documentation.annotations.ApiIgnore; - import org.apache.shiro.authz.annotation.Logical; import org.springframework.web.bind.annotation.*; - import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelViewLinkageController.java b/backend/src/main/java/io/dataease/controller/panel/PanelViewLinkageController.java index 54e5b24fbe..69f707ae48 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelViewLinkageController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelViewLinkageController.java @@ -5,7 +5,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.auth.annotation.DePermissionProxy; import io.dataease.commons.model.BaseRspModel; import io.dataease.controller.request.panel.PanelLinkageRequest; -import io.dataease.dto.PanelViewLinkageDTO; import io.dataease.dto.PermissionProxy; import io.dataease.service.panel.PanelViewLinkageService; import io.swagger.annotations.Api; diff --git a/backend/src/main/java/io/dataease/controller/request/chart/ChartCalRequest.java b/backend/src/main/java/io/dataease/controller/request/chart/ChartCalRequest.java index 89d8b40e09..9193118bc1 100644 --- a/backend/src/main/java/io/dataease/controller/request/chart/ChartCalRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/chart/ChartCalRequest.java @@ -1,6 +1,5 @@ package io.dataease.controller.request.chart; -import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.dto.chart.ChartViewDTO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/backend/src/main/java/io/dataease/controller/request/chart/ChartExtRequest.java b/backend/src/main/java/io/dataease/controller/request/chart/ChartExtRequest.java index dfb72cd05a..55c24e6ae2 100644 --- a/backend/src/main/java/io/dataease/controller/request/chart/ChartExtRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/chart/ChartExtRequest.java @@ -5,8 +5,6 @@ import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; -import springfox.documentation.annotations.ApiIgnore; - import java.util.List; /** diff --git a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetTableRequest.java b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetTableRequest.java index bd33c0b6ae..c3d1c793fd 100644 --- a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetTableRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetTableRequest.java @@ -6,8 +6,6 @@ import io.dataease.plugins.common.dto.datasource.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; -import springfox.documentation.annotations.ApiIgnore; - import java.util.List; /** diff --git a/backend/src/main/java/io/dataease/controller/response/ChartDetail.java b/backend/src/main/java/io/dataease/controller/response/ChartDetail.java index 39143f3784..d38736e20c 100644 --- a/backend/src/main/java/io/dataease/controller/response/ChartDetail.java +++ b/backend/src/main/java/io/dataease/controller/response/ChartDetail.java @@ -1,8 +1,6 @@ package io.dataease.controller.response; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; -import io.dataease.plugins.common.base.domain.DatasetTable; -import io.dataease.plugins.common.base.domain.Datasource; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/backend/src/main/java/io/dataease/controller/sys/LicenseController.java b/backend/src/main/java/io/dataease/controller/sys/LicenseController.java index d45745a8bb..d6e7869f7a 100644 --- a/backend/src/main/java/io/dataease/controller/sys/LicenseController.java +++ b/backend/src/main/java/io/dataease/controller/sys/LicenseController.java @@ -1,8 +1,5 @@ package io.dataease.controller.sys; - - -import com.google.gson.Gson; import io.dataease.commons.license.DefaultLicenseService; import io.dataease.commons.license.F2CLicenseResponse; import io.dataease.controller.ResultHolder; @@ -12,7 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; - import javax.annotation.Resource; @ApiIgnore diff --git a/backend/src/main/java/io/dataease/controller/sys/MsgController.java b/backend/src/main/java/io/dataease/controller/sys/MsgController.java index c1cd24783f..5cadd80227 100644 --- a/backend/src/main/java/io/dataease/controller/sys/MsgController.java +++ b/backend/src/main/java/io/dataease/controller/sys/MsgController.java @@ -21,7 +21,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; diff --git a/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java b/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java index c9a0992f59..a43458f112 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java @@ -6,7 +6,6 @@ import io.dataease.plugins.common.base.domain.MyPlugin; import io.dataease.commons.utils.PageUtils; import io.dataease.commons.utils.Pager; import io.dataease.controller.sys.base.BaseGridRequest; -import io.dataease.controller.sys.request.PluginStatus; import io.dataease.service.sys.PluginService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/backend/src/main/java/io/dataease/controller/wizard/ReptileController.java b/backend/src/main/java/io/dataease/controller/wizard/ReptileController.java index 3fb4b2cd80..9d252df2ff 100644 --- a/backend/src/main/java/io/dataease/controller/wizard/ReptileController.java +++ b/backend/src/main/java/io/dataease/controller/wizard/ReptileController.java @@ -4,15 +4,11 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.service.wizard.ReptileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.context.MessageSource; -import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import javax.annotation.Resource; import java.util.List; -import java.util.Map; @Api(tags = "首页") @ApiSupport(order = 80) diff --git a/backend/src/main/java/io/dataease/dto/chart/ScatterChartDataDTO.java b/backend/src/main/java/io/dataease/dto/chart/ScatterChartDataDTO.java index d8ee6cd6ef..1c67f46bb4 100644 --- a/backend/src/main/java/io/dataease/dto/chart/ScatterChartDataDTO.java +++ b/backend/src/main/java/io/dataease/dto/chart/ScatterChartDataDTO.java @@ -1,8 +1,6 @@ package io.dataease.dto.chart; import lombok.Data; - -import java.math.BigDecimal; import java.util.List; /** diff --git a/backend/src/main/java/io/dataease/dto/dataset/ExcelSheetData.java b/backend/src/main/java/io/dataease/dto/dataset/ExcelSheetData.java index 9380de31f9..c085d37048 100644 --- a/backend/src/main/java/io/dataease/dto/dataset/ExcelSheetData.java +++ b/backend/src/main/java/io/dataease/dto/dataset/ExcelSheetData.java @@ -3,8 +3,6 @@ package io.dataease.dto.dataset; import io.dataease.plugins.common.dto.datasource.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.annotations.ApiIgnore; - import java.util.List; import java.util.Map; diff --git a/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java b/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java index 90998aa082..bfd71cc075 100644 --- a/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java +++ b/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java @@ -5,8 +5,6 @@ import io.dataease.plugins.common.base.domain.PanelGroupWithBLOBs; import io.dataease.plugins.common.model.ITreeBase; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - -import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/backend/src/main/java/io/dataease/plugins/server/ColumnPermissionsController.java b/backend/src/main/java/io/dataease/plugins/server/ColumnPermissionsController.java index 621750a2ae..20d75b4e89 100644 --- a/backend/src/main/java/io/dataease/plugins/server/ColumnPermissionsController.java +++ b/backend/src/main/java/io/dataease/plugins/server/ColumnPermissionsController.java @@ -12,18 +12,13 @@ import io.dataease.plugins.common.entity.XpackConditionEntity; import io.dataease.plugins.common.entity.XpackGridRequest; import io.dataease.plugins.config.SpringContextUtil; import io.dataease.plugins.xpack.auth.dto.request.DataSetColumnPermissionsDTO; -import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO; import io.dataease.plugins.xpack.auth.dto.request.DatasetColumnPermissions; -import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions; import io.dataease.plugins.xpack.auth.service.ColumnPermissionService; -import io.dataease.plugins.xpack.auth.service.RowPermissionService; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; - import java.util.ArrayList; import java.util.List; @ApiIgnore diff --git a/backend/src/main/java/io/dataease/plugins/server/PluginCommonServer.java b/backend/src/main/java/io/dataease/plugins/server/PluginCommonServer.java index 214a23e2b6..0b4e8370ca 100644 --- a/backend/src/main/java/io/dataease/plugins/server/PluginCommonServer.java +++ b/backend/src/main/java/io/dataease/plugins/server/PluginCommonServer.java @@ -6,7 +6,6 @@ import io.dataease.plugins.common.dto.StaticResource; import io.dataease.plugins.common.service.PluginComponentService; import io.dataease.plugins.common.service.PluginMenuService; import io.dataease.plugins.config.SpringContextUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java b/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java index 9cd0fa9f21..7daaec754f 100644 --- a/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java +++ b/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java @@ -20,10 +20,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import io.dataease.plugins.xpack.auth.service.AuthXpackService; import springfox.documentation.annotations.ApiIgnore; - import java.util.*; -import java.util.stream.Collectors; - @ApiIgnore @RequestMapping("/plugin/auth") @RestController diff --git a/backend/src/main/java/io/dataease/plugins/util/PluginUtils.java b/backend/src/main/java/io/dataease/plugins/util/PluginUtils.java index 57a8cabca5..ffbecb5d67 100644 --- a/backend/src/main/java/io/dataease/plugins/util/PluginUtils.java +++ b/backend/src/main/java/io/dataease/plugins/util/PluginUtils.java @@ -30,7 +30,7 @@ public class PluginUtils { if (f2CLicenseResponse.getStatus() != F2CLicenseResponse.Status.valid) return new ArrayList<>(); Map pluginMenuServiceMap = SpringContextUtil.getApplicationContext().getBeansOfType(PluginMenuService.class); - List menus = pluginMenuServiceMap.values().stream().flatMap(item -> item.menus().stream()).collect(Collectors.toList()); + List menus = pluginMenuServiceMap.values().stream().flatMap(item -> item.menus().stream()).distinct().collect(Collectors.toList()); return menus; } diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index 73a274818f..6f00e03989 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -20,9 +20,7 @@ import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.provider.ProviderFactory; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; - import javax.annotation.Resource; -import java.beans.PropertyVetoException; import java.lang.reflect.Method; import java.sql.*; import java.util.*; diff --git a/backend/src/main/java/io/dataease/service/chart/ChartGroupService.java b/backend/src/main/java/io/dataease/service/chart/ChartGroupService.java index dc45766d01..9e6891f5af 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartGroupService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartGroupService.java @@ -9,7 +9,6 @@ import io.dataease.dto.chart.ChartGroupDTO; import io.dataease.plugins.common.base.domain.ChartGroup; import io.dataease.plugins.common.base.domain.ChartGroupExample; import io.dataease.plugins.common.base.mapper.ChartGroupMapper; -import io.dataease.service.sys.SysAuthService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 80310e0ac4..8e251dc1b4 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -285,7 +285,7 @@ public class ChartViewService { try { ChartViewDTO view = this.getOne(id, request.getQueryFrom()); // 如果是从仪表板获取视图数据,则仪表板的查询模式,查询结果的数量,覆盖视图对应的属性 - if (CommonConstants.VIEW_QUERY_FROM.PANEL.equals(request.getQueryFrom()) && CommonConstants.VIEW_RESULT_MODE.CUSTOM.equals(request.getResultMode())) { + if (CommonConstants.VIEW_RESULT_MODE.CUSTOM.equals(request.getResultMode())) { view.setResultMode(request.getResultMode()); view.setResultCount(request.getResultCount()); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 4fcb323110..bb0bb9c8d3 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -7,7 +7,6 @@ import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; import io.dataease.auth.annotation.DeCleaner; import io.dataease.auth.api.dto.CurrentUserDto; -import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.base.ConditionEntity; import io.dataease.dto.SysLogDTO; @@ -45,7 +44,6 @@ import io.dataease.service.engine.EngineService; import io.dataease.service.sys.SysAuthService; import net.sf.jsqlparser.expression.BinaryExpression; import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.ExpressionVisitor; import net.sf.jsqlparser.expression.Parenthesis; import net.sf.jsqlparser.expression.operators.conditional.AndExpression; import net.sf.jsqlparser.expression.operators.conditional.OrExpression; @@ -53,7 +51,6 @@ import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.InExpression; import net.sf.jsqlparser.expression.operators.relational.LikeExpression; import net.sf.jsqlparser.parser.CCJSqlParserUtil; -import net.sf.jsqlparser.parser.SimpleNode; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; diff --git a/frontend/mock/index.js b/frontend/mock/index.js index 90e2ffe9ec..82f2c4e542 100644 --- a/frontend/mock/index.js +++ b/frontend/mock/index.js @@ -56,7 +56,6 @@ const responseFake = (url, type, respond) => { url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), type: type || 'get', response(req, res) { - console.log('request invoke:' + req.path) res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) } } diff --git a/frontend/src/components/AssistButton/ColorButton.vue b/frontend/src/components/AssistButton/ColorButton.vue new file mode 100644 index 0000000000..c4273ce710 --- /dev/null +++ b/frontend/src/components/AssistButton/ColorButton.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/frontend/src/components/Notification/index.vue b/frontend/src/components/Notification/index.vue index fe85d4c114..61eb3c5528 100644 --- a/frontend/src/components/Notification/index.vue +++ b/frontend/src/components/Notification/index.vue @@ -94,32 +94,30 @@ export default { // 先加载消息类型 loadMsgTypes() this.queryCount() - // this.search() - // 每30s定时刷新拉取消息 - /* this.timer = setInterval(() => { - this.queryCount() - }, 30000) */ }, mounted() { - bus.$on('refresh-top-notification', () => { - if (this.visible) this.search() - else this.queryCount() - }) - - bus.$on('web-msg-topic-call', msg => { - this.count = (this.count || this.paginationConfig.total) + 1 - // this.queryCount() - // this.search() - }) + this.initEvents() }, beforeDestroy() { this.timer && clearInterval(this.timer) + bus.$off('refresh-top-notification', this.refreshTopNotification) + bus.$off('web-msg-topic-call', this.webMsgTopicCall) }, destroyed() { this.timer && clearInterval(this.timer) }, methods: { - + refreshTopNotification() { + if (this.visible) this.search() + else this.queryCount() + }, + webMsgTopicCall() { + this.count = (this.count || this.paginationConfig.total) + 1 + }, + initEvents() { + bus.$on('refresh-top-notification', this.refreshTopNotification) + bus.$on('web-msg-topic-call', this.webMsgTopicCall) + }, showDetail(row) { const param = { ...{ msgNotification: true, msgType: row.typeId, sourceParam: row.param }} this.visible = false diff --git a/frontend/src/components/canvas/components/Editor/MarkLine.vue b/frontend/src/components/canvas/components/Editor/MarkLine.vue index b3fc0e25b3..4dc67b4d43 100644 --- a/frontend/src/components/canvas/components/Editor/MarkLine.vue +++ b/frontend/src/components/canvas/components/Editor/MarkLine.vue @@ -40,10 +40,10 @@ export default { eventBus.$on('move', (isDownward, isRightward) => { this.showLine(isDownward, isRightward) }) - - eventBus.$on('unmove', () => { - this.hideLine() - }) + eventBus.$on('unmove', this.hideLine) + }, + beforeDestroy() { + eventBus.$off('unmove', this.hideLine) }, methods: { hideLine() { diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 9072ff6edb..65f1bda35c 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -287,6 +287,7 @@ export default { erd.uninstall(this.$refs.canvasInfoTemp) erd.uninstall(this.$refs.canvasInfoMain) clearInterval(this.timer) + eventBus.$off('openChartDetailsDialog', this.openChartDetailsDialog) }, methods: { _isMobile() { @@ -411,7 +412,6 @@ export default { }) } }, 1500) - eventBus.$on('openChartDetailsDialog', this.openChartDetailsDialog) } } diff --git a/frontend/src/components/canvas/components/Editor/PreviewMobile.vue b/frontend/src/components/canvas/components/Editor/PreviewMobile.vue index 02b2b192a5..bc759a2de4 100644 --- a/frontend/src/components/canvas/components/Editor/PreviewMobile.vue +++ b/frontend/src/components/canvas/components/Editor/PreviewMobile.vue @@ -178,6 +178,7 @@ export default { _this.canvasStyleDataInit() }, beforeDestroy() { + eventBus.$off('openChartDetailsDialog', this.openChartDetailsDialog) clearInterval(this.timer) }, methods: { diff --git a/frontend/src/components/canvas/components/Editor/Shape.vue b/frontend/src/components/canvas/components/Editor/Shape.vue index 7bc1fd3ba1..e8cac6dc69 100644 --- a/frontend/src/components/canvas/components/Editor/Shape.vue +++ b/frontend/src/components/canvas/components/Editor/Shape.vue @@ -94,13 +94,17 @@ export default { } this.element.type === 'custom' && (this.pointList = ['l', 'r']) - eventBus.$on('runAnimation', () => { + eventBus.$on('runAnimation', this.runAnimation) + }, + beforeDestroy() { + eventBus.$off('runAnimation', this.runAnimation) + }, + methods: { + runAnimation() { if (this.element === this.curComponent) { runAnimation(this.$el, this.curComponent.animations) } - }) - }, - methods: { + }, // 鼠标移入事件 enter() { this.mouseOn = true diff --git a/frontend/src/components/canvas/components/Editor/index.vue b/frontend/src/components/canvas/components/Editor/index.vue index 853bf428f8..4296e4d690 100644 --- a/frontend/src/components/canvas/components/Editor/index.vue +++ b/frontend/src/components/canvas/components/Editor/index.vue @@ -1051,9 +1051,7 @@ export default { // 获取编辑器元素 this.$store.commit('getEditor') const _this = this - eventBus.$on('hideArea', () => { - this.hideArea() - }) + eventBus.$on('hideArea', this.hideArea) eventBus.$on('startMoveIn', this.startMoveIn) eventBus.$on('openChartDetailsDialog', this.openChartDetailsDialog) bus.$on('onRemoveLastItem', this.removeLastItem) @@ -1065,6 +1063,12 @@ export default { }, 500) } }, + beforeDestroy() { + eventBus.$off('hideArea', this.hideArea) + eventBus.$off('startMoveIn', this.startMoveIn) + eventBus.$off('openChartDetailsDialog', this.openChartDetailsDialog) + bus.$off('onRemoveLastItem', this.removeLastItem) + }, created() { }, methods: { diff --git a/frontend/src/components/canvas/components/Toolbar.vue b/frontend/src/components/canvas/components/Toolbar.vue index 26b0361302..087bfdd9a9 100644 --- a/frontend/src/components/canvas/components/Toolbar.vue +++ b/frontend/src/components/canvas/components/Toolbar.vue @@ -202,6 +202,11 @@ export default { this.mobileLayoutInitStatus = this.mobileLayoutStatus this.showGridSwitch = this.canvasStyleData.aidedDesign.showGrid }, + beforeDestroy() { + eventBus.$off('preview', this.preview) + eventBus.$off('save', this.save) + eventBus.$off('clearCanvas', this.clearCanvas) + }, methods: { close() { // 关闭页面清理缓存 @@ -734,4 +739,8 @@ export default { .el-dropdown-menu__item{ line-height: 32px; } + +::v-deep .el-radio-button__inner{ +padding:7px 7px +} diff --git a/frontend/src/components/canvas/custom-component/DeFrame.vue b/frontend/src/components/canvas/custom-component/DeFrame.vue index db2dc4ec31..8db2bed8b4 100644 --- a/frontend/src/components/canvas/custom-component/DeFrame.vue +++ b/frontend/src/components/canvas/custom-component/DeFrame.vue @@ -67,14 +67,18 @@ export default { created() { }, mounted() { - bus.$on('frameLinksChange-' + this.element.id, () => { + bus.$on('frameLinksChange-' + this.element.id, this.frameLinksChange) + }, + beforeDestroy() { + bus.$off('frameLinksChange-' + this.element.id, this.frameLinksChange) + }, + methods: { + frameLinksChange() { this.frameShow = false this.$nextTick(() => { this.frameShow = true }) - }) - }, - methods: { + }, loaded(e) { }, onError(e) { @@ -91,7 +95,7 @@ export default { display: flex; align-items: center; justify-content: center; - background-color: #FFFFFF; + background-color: rgba(255,255,255,0.3); font-size: 12px; color: #9ea6b2; } diff --git a/frontend/src/components/canvas/custom-component/DeStreamMedia.vue b/frontend/src/components/canvas/custom-component/DeStreamMedia.vue index ca721e004d..48c8b2633f 100644 --- a/frontend/src/components/canvas/custom-component/DeStreamMedia.vue +++ b/frontend/src/components/canvas/custom-component/DeStreamMedia.vue @@ -84,7 +84,14 @@ export default { }, mounted() { this.initOption() - bus.$on('streamMediaLinksChange-' + this.element.id, () => { + bus.$on('streamMediaLinksChange-' + this.element.id, this.streamMediaLinksChange) + }, + beforeDestroy() { + bus.$off('streamMediaLinksChange-' + this.element.id, this.streamMediaLinksChange) + this.destroyPlayer() + }, + methods: { + streamMediaLinksChange() { this.pOption = this.element.streamMediaLinks[this.element.streamMediaLinks.videoType] this.flvPlayer = null this.videoShow = false @@ -92,12 +99,7 @@ export default { this.videoShow = true this.initOption() }) - }) - }, - beforeDestroy() { - this.destroyPlayer() - }, - methods: { + }, initOption() { if (flvjs.isSupported() && this.pOption.url) { this.destroyPlayer() @@ -139,7 +141,7 @@ export default { display: flex; align-items: center; justify-content: center; - background-color: beige; + background-color: rgba(245, 245, 220, 0.3); font-size: 12px; color: #000000; } diff --git a/frontend/src/components/canvas/custom-component/DeVideo.vue b/frontend/src/components/canvas/custom-component/DeVideo.vue index da7590ecb2..40f705ce53 100644 --- a/frontend/src/components/canvas/custom-component/DeVideo.vue +++ b/frontend/src/components/canvas/custom-component/DeVideo.vue @@ -90,15 +90,19 @@ export default { this.initOption() }, mounted() { - bus.$on('videoLinksChange-' + this.element.id, () => { + bus.$on('videoLinksChange-' + this.element.id, this.videoLinksChange) + }, + beforeDestroy() { + bus.$off('videoLinksChange-' + this.element.id, this.videoLinksChange) + }, + methods: { + videoLinksChange() { this.showVideo = false this.$nextTick(() => { this.showVideo = true this.initOption() }) - }) - }, - methods: { + }, initOption() { this.pOption = this.element.videoLinks[this.element.videoLinks.videoType] this.pOption.height = this.h - (this.curGap * 2) @@ -135,7 +139,7 @@ export default { display: flex; align-items: center; justify-content: center; - background-color: #FFFFFF; + background-color: rgba(255,255,255,0.3); font-size: 12px; color: #9ea6b2; } diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index 3075c9402e..202080869b 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -404,6 +404,17 @@ export default { this.bindPluginEvent() }, + beforeDestroy() { + bus.$off('plugin-chart-click', this.pluginChartClick) + bus.$off('plugin-jump-click', this.pluginJumpClick) + bus.$off('plugin-add-view-track-filter', this.pluginAddViewTrackFilter) + bus.$off('view-in-cache', this.viewInCache) + bus.$off('batch-opt-change', this.batchOptChange) + bus.$off('onSubjectChange', this.optFromBatchThemeChange) + bus.$off('onThemeColorChange', this.optFromBatchThemeChange) + bus.$off('onThemeAttrChange', this.optFromBatchSingleProp) + bus.$off('clear_panel_linkage', this.clearPanelLinkage) + }, created() { this.refId = uuid.v1 if (this.element && this.element.propValue && this.element.propValue.viewId) { @@ -441,7 +452,7 @@ export default { this.$store.commit('recordViewEdit', { viewId: this.chart.id, hasEdit: true }) this.mergeScale() }, - optFromBatchThemeChange(changeType) { + optFromBatchThemeChange() { const updateParams = { 'id': this.chart.id } const sourceCustomAttr = JSON.parse(this.sourceCustomAttrStr) const sourceCustomStyle = JSON.parse(this.sourceCustomStyleStr) @@ -467,38 +478,34 @@ export default { : this.$refs[this.element.propValue.id].chartResize() } }, - bindPluginEvent() { - bus.$on('plugin-chart-click', param => { - param.viewId && param.viewId === this.element.propValue.viewId && this.chartClick(param) - }) - bus.$on('plugin-jump-click', param => { - param.viewId && param.viewId === this.element.propValue.viewId && this.jumpClick(param) - }) - bus.$on('plugin-add-view-track-filter', param => { - param.viewId && param.viewId === this.element.propValue.viewId && this.addViewTrackFilter(param) - }) - bus.$on('view-in-cache', param => { - param.viewId && param.viewId === this.element.propValue.viewId && this.getDataEdit(param) - }) - bus.$on('batch-opt-change', param => { - this.batchOptChange(param) - }) - bus.$on('onSubjectChange', () => { - this.optFromBatchThemeChange('subject') - }) - bus.$on('onThemeColorChange', () => { - this.optFromBatchThemeChange('themeColor') - }) - bus.$on('onThemeAttrChange', (param) => { - this.optFromBatchSingleProp(param) - }) - bus.$on('clear_panel_linkage', (param) => { - if (param.viewId === 'all' || param.viewId === this.element.propValue.viewId) { - this.$refs[this.element.propValue.id].reDrawView() - } - }) + pluginChartClick(param) { + param.viewId && param.viewId === this.element.propValue.viewId && this.chartClick(param) + }, + pluginJumpClick(param) { + param.viewId && param.viewId === this.element.propValue.viewId && this.jumpClick(param) + }, + pluginAddViewTrackFilter(param) { + param.viewId && param.viewId === this.element.propValue.viewId && this.addViewTrackFilter(param) + }, + viewInCache(param) { + param.viewId && param.viewId === this.element.propValue.viewId && this.getDataEdit(param) + }, + clearPanelLinkage(param) { + if (param.viewId === 'all' || param.viewId === this.element.propValue.viewId) { + this.$refs[this.element.propValue.id].reDrawView() + } + }, + bindPluginEvent() { + bus.$on('plugin-chart-click', this.pluginChartClick) + bus.$on('plugin-jump-click', this.pluginJumpClick) + bus.$on('plugin-add-view-track-filter', this.pluginAddViewTrackFilter) + bus.$on('view-in-cache', this.viewInCache) + bus.$on('batch-opt-change', this.batchOptChange) + bus.$on('onSubjectChange', this.optFromBatchThemeChange) + bus.$on('onThemeColorChange', this.optFromBatchThemeChange) + bus.$on('onThemeAttrChange', this.optFromBatchSingleProp) + bus.$on('clear_panel_linkage', this.clearPanelLinkage) }, - addViewTrackFilter(linkageParam) { this.$store.commit('addViewTrackFilter', linkageParam) }, diff --git a/frontend/src/components/canvas/utils/style.js b/frontend/src/components/canvas/utils/style.js index 88e7defa3e..99c9c236a1 100644 --- a/frontend/src/components/canvas/utils/style.js +++ b/frontend/src/components/canvas/utils/style.js @@ -1,5 +1,6 @@ import { sin, cos } from '@/components/canvas/utils/translate' import store from '@/store' +import { colorReverse } from '@/components/canvas/utils/utils' export const LIGHT_THEME_COLOR_MAIN = '#000000' export const LIGHT_THEME_COLOR_SLAVE1 = '#CCCCCC' @@ -257,6 +258,10 @@ export const THEME_ATTR_TRANS_MAIN = { } } +export const THEME_ATTR_TRANS_SLAVE1_BACKGROUND = { + 'tooltip': ['backgroundColor'] +} + // 移动端特殊属性 export const mobileSpecialProps = { 'lineWidth': 3, // 线宽固定值 @@ -325,10 +330,12 @@ export function adaptCurTheme(customStyle, customAttr) { recursionThemTransObj(THEME_STYLE_TRANS_MAIN, customStyle, LIGHT_THEME_COLOR_MAIN) recursionThemTransObj(THEME_STYLE_TRANS_SLAVE1, customStyle, LIGHT_THEME_COLOR_SLAVE1) recursionThemTransObj(THEME_ATTR_TRANS_MAIN, customAttr, LIGHT_THEME_COLOR_MAIN) + recursionThemTransObj(THEME_ATTR_TRANS_SLAVE1_BACKGROUND, customAttr, LIGHT_THEME_COMPONENT_BACKGROUND) } else { recursionThemTransObj(THEME_STYLE_TRANS_MAIN, customStyle, DARK_THEME_COLOR_MAIN) recursionThemTransObj(THEME_STYLE_TRANS_SLAVE1, customStyle, DARK_THEME_COLOR_SLAVE1) recursionThemTransObj(THEME_ATTR_TRANS_MAIN, customAttr, DARK_THEME_COLOR_MAIN) + recursionThemTransObj(THEME_ATTR_TRANS_SLAVE1_BACKGROUND, customAttr, DARK_THEME_COMPONENT_BACKGROUND) } customAttr['color'] = { ...canvasStyle.chartInfo.chartColor } customStyle['text'] = { ...canvasStyle.chartInfo.chartTitle, title: customStyle['text']['title'] } @@ -347,6 +354,14 @@ export function adaptCurThemeCommonStyle(component) { for (const styleKey in filterStyle) { component.style[styleKey] = filterStyle[styleKey] } + } else { + if (component.style.color) { + if (store.state.canvasStyleData.panel.themeColor === 'light') { + component.style.color = LIGHT_THEME_COLOR_MAIN + } else { + component.style.color = DARK_THEME_COLOR_MAIN + } + } } return component } @@ -366,7 +381,6 @@ export function adaptCurThemeFilterStyleAll(styleKey) { item.style[styleKey] = filterStyle[styleKey] } }) - console.log('componentData=' + JSON.stringify(componentData)) } export function isFilterComponent(component) { diff --git a/frontend/src/components/canvas/utils/utils.js b/frontend/src/components/canvas/utils/utils.js index a251c94adb..b9d25c17a9 100644 --- a/frontend/src/components/canvas/utils/utils.js +++ b/frontend/src/components/canvas/utils/utils.js @@ -1,5 +1,5 @@ import { - BASE_MOBILE_STYLE, COMMON_BACKGROUND, COMMON_BACKGROUND_NONE, + BASE_MOBILE_STYLE, COMMON_BACKGROUND_NONE, HYPERLINKS } from '@/components/canvas/custom-component/component-list' @@ -174,7 +174,6 @@ export function checkViewTitle(opt, id, tile) { return false } } catch (e) { - console.log('checkViewTitle error', e) return false } } @@ -205,3 +204,9 @@ export function dataURLToBlob(dataurl) { // ie 图片转格式 } return new Blob([u8arr], { type: mime }) } + +export function colorReverse(OldColorValue) { + OldColorValue = '0x' + OldColorValue.replace(/#/g, '') + const str = '000000' + (0xFFFFFF - OldColorValue).toString(16) + return '#' + str.substring(str.length - 6, str.length) +} diff --git a/frontend/src/components/widget/DeWidget/DeDate.vue b/frontend/src/components/widget/DeWidget/DeDate.vue index 83934b8679..7864ba6992 100644 --- a/frontend/src/components/widget/DeWidget/DeDate.vue +++ b/frontend/src/components/widget/DeWidget/DeDate.vue @@ -112,12 +112,20 @@ export default { } }, mounted() { - bus.$on('onScroll', () => { + bus.$on('onScroll', this.onScroll) + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('onScroll', this.onScroll) + bus.$off('reset-default-value', this.resetDefaultValue) + }, + methods: { + onScroll() { if (this.onFocus) { this.$refs.dateRef.hidePicker() } - }) - bus.$on('reset-default-value', id => { + }, + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { if (!this.element.options.attrs.default.isDynamic) { this.values = this.fillValueDerfault() @@ -128,12 +136,7 @@ export default { this.values = widget.dynamicDateFormNow(this.element) this.dateChange(this.values) } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - methods: { + }, onBlur() { this.onFocus = false }, diff --git a/frontend/src/components/widget/DeWidget/DeInputSearch.vue b/frontend/src/components/widget/DeWidget/DeInputSearch.vue index da83bef29e..063fca3a2b 100644 --- a/frontend/src/components/widget/DeWidget/DeInputSearch.vue +++ b/frontend/src/components/widget/DeWidget/DeInputSearch.vue @@ -71,17 +71,18 @@ export default { } }, mounted() { - bus.$on('reset-default-value', id => { + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('reset-default-value', this.resetDefaultValue) + }, + methods: { + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { this.value = this.fillValueDerfault() this.search() } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - methods: { + }, search() { if (!this.inDraw) { this.element.options.value = this.value diff --git a/frontend/src/components/widget/DeWidget/DeNumberRange.vue b/frontend/src/components/widget/DeWidget/DeNumberRange.vue index 6a5a5a34b4..1d286c6161 100644 --- a/frontend/src/components/widget/DeWidget/DeNumberRange.vue +++ b/frontend/src/components/widget/DeWidget/DeNumberRange.vue @@ -104,7 +104,13 @@ export default { } }, mounted() { - bus.$on('reset-default-value', id => { + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('reset-default-value', this.resetDefaultValue) + }, + methods: { + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { const values = this.element.options.value this.form.min = values[0] @@ -113,12 +119,7 @@ export default { } this.search() } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - methods: { + }, searchWithKey(index) { this.timeMachine = setTimeout(() => { if (index === this.changeIndex) { diff --git a/frontend/src/components/widget/DeWidget/DeSelect.vue b/frontend/src/components/widget/DeWidget/DeSelect.vue index fb655c29b1..3d8edb3d8e 100644 --- a/frontend/src/components/widget/DeWidget/DeSelect.vue +++ b/frontend/src/components/widget/DeWidget/DeSelect.vue @@ -172,29 +172,36 @@ export default { }, created() { + if (this.element && this.element.options && this.element.options.attrs) { + this.element.options.attrs.visual = true + } + if (!this.element.options.attrs.sort) { this.element.options.attrs.sort = {} } this.initLoad() }, + mounted() { - bus.$on('onScroll', () => { + bus.$on('onScroll', this.onScroll) + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('onScroll', this.onScroll) + bus.$off('reset-default-value', this.resetDefaultValue) + }, + methods: { + onScroll() { if (this.onFocus) { this.$refs.deSelect.blur() } - }) - bus.$on('reset-default-value', id => { + }, + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { this.value = this.fillValueDerfault() this.changeValue(this.value) } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - - methods: { + }, onBlur() { this.onFocus = false }, diff --git a/frontend/src/components/widget/DeWidget/DeSelectGrid.vue b/frontend/src/components/widget/DeWidget/DeSelectGrid.vue index 623e92189c..65097931d5 100644 --- a/frontend/src/components/widget/DeWidget/DeSelectGrid.vue +++ b/frontend/src/components/widget/DeWidget/DeSelectGrid.vue @@ -200,7 +200,13 @@ export default { this.initLoad() }, mounted() { - bus.$on('reset-default-value', id => { + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('reset-default-value', this.resetDefaultValue) + }, + methods: { + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { this.value = this.fillValueDerfault() this.changeValue(this.value) @@ -210,13 +216,7 @@ export default { this.isIndeterminate = this.value.length > 0 && this.value.length < this.datas.length } } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - - methods: { + }, changeInputStyle() { if (!this.$parent.handlerInputStyle) return this.$nextTick(() => { diff --git a/frontend/src/components/widget/DeWidget/DeSelectTree.vue b/frontend/src/components/widget/DeWidget/DeSelectTree.vue index 9b65c5dc8a..a53c0deaff 100644 --- a/frontend/src/components/widget/DeWidget/DeSelectTree.vue +++ b/frontend/src/components/widget/DeWidget/DeSelectTree.vue @@ -203,21 +203,19 @@ export default { this.initLoad() }, mounted() { - bus.$on('onScroll', () => { + bus.$on('reset-default-value', this.resetDefaultValue) + }, + beforeDestroy() { + bus.$off('reset-default-value', this.resetDefaultValue) + }, - }) - bus.$on('reset-default-value', id => { + methods: { + resetDefaultValue(id) { if (this.inDraw && this.manualModify && this.element.id === id) { this.value = this.fillValueDerfault() this.changeValue(this.value) } - }) - }, - beforeDestroy() { - bus.$off('reset-default-value') - }, - - methods: { + }, onFoucs() { this.$nextTick(() => { this.handleCoustomStyle() diff --git a/frontend/src/components/widget/DeWidget/DeTabs.vue b/frontend/src/components/widget/DeWidget/DeTabs.vue index 4fff2799ea..a250968fff 100644 --- a/frontend/src/components/widget/DeWidget/DeTabs.vue +++ b/frontend/src/components/widget/DeWidget/DeTabs.vue @@ -283,6 +283,9 @@ export default { bus.$on('add-new-tab', this.addNewTab) this.activeTabName = this.element.options.tabList[0].name }, + beforeDestroy() { + bus.$off('add-new-tab', this.addNewTab) + }, methods: { beforeHandleCommond(item, param) { return { @@ -337,13 +340,12 @@ export default { return } this.$warning(this.$t('detabs.please') + this.$t('detabs.selectOthers')) - }, sureViewSelector() { const nodes = this.$refs.viewSelect.getCurrentSelected() if (!nodes || nodes.length === 0) { this.$warning(this.$t('detabs.please') + this.$t('detabs.selectview')) - + return } const node = nodes[0] diff --git a/frontend/src/layout/components/Topbar.vue b/frontend/src/layout/components/Topbar.vue index c6f5b46a34..932850a3a5 100644 --- a/frontend/src/layout/components/Topbar.vue +++ b/frontend/src/layout/components/Topbar.vue @@ -197,14 +197,19 @@ export default { bus.$on('set-top-menu-active-info', this.setTopMenuActiveInfo) bus.$on('set-top-text-info', this.setTopTextInfo) bus.$on('set-top-text-active-info', this.setTopTextActiveInfo) - bus.$on('sys-logout', param => { - this.logout(param) - }) + bus.$on('sys-logout', this.logout) this.showTips && this.$nextTick(() => { const drop = this.$refs['my-drop'] drop && drop.show && drop.show() }) }, + beforeDestroy() { + bus.$off('set-top-menu-info', this.setTopMenuInfo) + bus.$off('set-top-menu-active-info', this.setTopMenuActiveInfo) + bus.$off('set-top-text-info', this.setTopTextInfo) + bus.$off('set-top-text-active-info', this.setTopTextActiveInfo) + bus.$off('sys-logout', this.logout) + }, created() { this.loadUiInfo() }, diff --git a/frontend/src/layout/index.vue b/frontend/src/layout/index.vue index 646650b1cd..221a405f0d 100644 --- a/frontend/src/layout/index.vue +++ b/frontend/src/layout/index.vue @@ -99,11 +99,15 @@ export default { }) }, mounted() { - bus.$on('PanelSwitchComponent', (c) => { - this.componentName = c.name - }) + bus.$on('PanelSwitchComponent', this.panelSwitchComponent) + }, + beforeDestroy() { + bus.$off('PanelSwitchComponent', this.panelSwitchComponent) }, methods: { + panelSwitchComponent(c) { + this.componentName = c.name + }, handleClickOutside() { this.$store.dispatch('app/closeSideBar', { withoutAnimation: false }) }, diff --git a/frontend/src/plugins/Export2Excel.js b/frontend/src/plugins/Export2Excel.js index d3bc687d21..7acea69eb1 100644 --- a/frontend/src/plugins/Export2Excel.js +++ b/frontend/src/plugins/Export2Excel.js @@ -115,7 +115,6 @@ export function export_table_to_excel(id) { } function formatJson(jsonData) { - console.log(jsonData) } export function export_json_to_excel(th, jsonData, defaultTitle) { diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index d716637351..fad58ca06b 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -238,11 +238,7 @@ const data = { }) }, addViewFilter(state, data) { - console.log('data ') - console.log(data) const condition = formatCondition(data) - console.log('condition ') - console.log(condition) const vValid = valueValid(condition) // 1.根据componentId过滤 const filterComponentId = condition.componentId @@ -252,8 +248,6 @@ const data = { for (let index = 0; index < state.componentData.length; index++) { const element = state.componentData[index] - console.log('element: ') - console.log(element) if (element.type && element.type === 'de-tabs') { for (let idx = 0; idx < element.options.tabList.length; idx++) { const ele = element.options.tabList[idx].content @@ -278,8 +272,6 @@ const data = { if (!element.type || element.type !== 'view') continue const currentFilters = element.filters || [] const vidMatch = viewIdMatch(condition.viewIds, element.propValue.viewId) - console.log(vidMatch) - let j = currentFilters.length while (j--) { const filter = currentFilters[j] diff --git a/frontend/src/views/chart/components/drag-item/ChartDragItem.vue b/frontend/src/views/chart/components/drag-item/ChartDragItem.vue index 1f0343777d..a88470fa5a 100644 --- a/frontend/src/views/chart/components/drag-item/ChartDragItem.vue +++ b/frontend/src/views/chart/components/drag-item/ChartDragItem.vue @@ -157,7 +157,10 @@ export default { } }, mounted() { - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { clickItem(param) { diff --git a/frontend/src/views/chart/components/drag-item/DimensionExtItem.vue b/frontend/src/views/chart/components/drag-item/DimensionExtItem.vue index 5076a946bd..fb2b85c5cd 100644 --- a/frontend/src/views/chart/components/drag-item/DimensionExtItem.vue +++ b/frontend/src/views/chart/components/drag-item/DimensionExtItem.vue @@ -131,7 +131,10 @@ export default { } }, mounted() { - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { clickItem(param) { diff --git a/frontend/src/views/chart/components/drag-item/DimensionItem.vue b/frontend/src/views/chart/components/drag-item/DimensionItem.vue index bd2c348ef8..fc8d195559 100644 --- a/frontend/src/views/chart/components/drag-item/DimensionItem.vue +++ b/frontend/src/views/chart/components/drag-item/DimensionItem.vue @@ -141,9 +141,12 @@ export default { } }, mounted() { - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) this.init() }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) + }, methods: { init() { if (!this.item.formatterCfg) { diff --git a/frontend/src/views/chart/components/drag-item/DrillItem.vue b/frontend/src/views/chart/components/drag-item/DrillItem.vue index 0103c45771..191a765ede 100644 --- a/frontend/src/views/chart/components/drag-item/DrillItem.vue +++ b/frontend/src/views/chart/components/drag-item/DrillItem.vue @@ -73,7 +73,10 @@ export default { } }, mounted() { - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { clickItem(param) { diff --git a/frontend/src/views/chart/components/drag-item/FilterItem.vue b/frontend/src/views/chart/components/drag-item/FilterItem.vue index 4c96c40683..2c541e522f 100644 --- a/frontend/src/views/chart/components/drag-item/FilterItem.vue +++ b/frontend/src/views/chart/components/drag-item/FilterItem.vue @@ -74,7 +74,10 @@ export default { } }, mounted() { - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { clickItem(param) { diff --git a/frontend/src/views/chart/components/drag-item/QuotaExtItem.vue b/frontend/src/views/chart/components/drag-item/QuotaExtItem.vue index e96f4cb582..8f093a08ce 100644 --- a/frontend/src/views/chart/components/drag-item/QuotaExtItem.vue +++ b/frontend/src/views/chart/components/drag-item/QuotaExtItem.vue @@ -176,7 +176,10 @@ export default { mounted() { this.init() this.isEnableCompare() - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { init() { diff --git a/frontend/src/views/chart/components/drag-item/QuotaItem.vue b/frontend/src/views/chart/components/drag-item/QuotaItem.vue index 33faf2238a..95831b6a2f 100644 --- a/frontend/src/views/chart/components/drag-item/QuotaItem.vue +++ b/frontend/src/views/chart/components/drag-item/QuotaItem.vue @@ -173,7 +173,10 @@ export default { mounted() { this.init() this.isEnableCompare() - bus.$on('reset-change-table', () => this.getItemTagType()) + bus.$on('reset-change-table', this.getItemTagType) + }, + beforeDestroy() { + bus.$off('reset-change-table', this.getItemTagType) }, methods: { init() { diff --git a/frontend/src/views/chart/components/normal/LabelNormal.vue b/frontend/src/views/chart/components/normal/LabelNormal.vue index a2e0007652..bc9754d1d4 100644 --- a/frontend/src/views/chart/components/normal/LabelNormal.vue +++ b/frontend/src/views/chart/components/normal/LabelNormal.vue @@ -99,9 +99,10 @@ export default { this.init() this.calcHeight() // 监听元素变动事件 - eventBus.$on('resizing', (componentId) => { - this.chartResize() - }) + eventBus.$on('resizing', this.chartResize) + }, + beforeDestroy() { + eventBus.$off('resizing', this.chartResize) }, methods: { init() { diff --git a/frontend/src/views/chart/components/normal/LabelNormalText.vue b/frontend/src/views/chart/components/normal/LabelNormalText.vue index 5da713827e..db542ec0a0 100644 --- a/frontend/src/views/chart/components/normal/LabelNormalText.vue +++ b/frontend/src/views/chart/components/normal/LabelNormalText.vue @@ -117,9 +117,10 @@ export default { this.init() this.calcHeight() // 监听元素变动事件 - eventBus.$on('resizing', (componentId) => { - this.chartResize() - }) + eventBus.$on('resizing', this.chartResize) + }, + beforeDestroy() { + eventBus.$off('resizing', this.chartResize) }, methods: { init() { diff --git a/frontend/src/views/chart/components/shape-attr/ColorSelector.vue b/frontend/src/views/chart/components/shape-attr/ColorSelector.vue index 94d888454b..c785665929 100644 --- a/frontend/src/views/chart/components/shape-attr/ColorSelector.vue +++ b/frontend/src/views/chart/components/shape-attr/ColorSelector.vue @@ -251,9 +251,10 @@ export default { }, mounted() { this.init() - bus.$on('prop-change-data', () => { - this.initCustomColor() - }) + bus.$on('prop-change-data', this.initCustomColor) + }, + beforeDestroy() { + bus.$off('prop-change-data', this.initCustomColor) }, methods: { changeColorOption(modifyName = 'value') { diff --git a/frontend/src/views/chart/components/table/TableNormal.vue b/frontend/src/views/chart/components/table/TableNormal.vue index 149773d2b3..8fe83af248 100644 --- a/frontend/src/views/chart/components/table/TableNormal.vue +++ b/frontend/src/views/chart/components/table/TableNormal.vue @@ -145,11 +145,10 @@ export default { mounted() { this.init() // 监听元素变动事件 - eventBus.$on('resizing', (componentId) => { - this.chartResize() - }) + eventBus.$on('resizing', this.chartResize) }, beforeDestroy() { + eventBus.$off('resizing',this.chartResize) clearInterval(this.scrollTimer) }, methods: { diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index 1d17a7817c..7c0e35a8b4 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -1334,6 +1334,16 @@ export default { }, mounted() { }, + beforeDestroy() { + bus.$off('show-dimension-edit-filter', this.showDimensionEditFilter) + bus.$off('show-rename', this.showRename) + bus.$off('show-quota-edit-filter', this.showQuotaEditFilter) + bus.$off('show-quota-edit-compare', this.showQuotaEditCompare) + bus.$off('show-edit-filter', this.showEditFilter) + bus.$off('calc-data', this.calcData) + bus.$off('plugins-calc-style', this.calcStyle) + bus.$off('plugin-chart-click', this.chartClick) + }, activated() { }, diff --git a/frontend/src/views/dataset/data/ViewTable.vue b/frontend/src/views/dataset/data/ViewTable.vue index 4810573dcf..ddbd599ea9 100644 --- a/frontend/src/views/dataset/data/ViewTable.vue +++ b/frontend/src/views/dataset/data/ViewTable.vue @@ -173,8 +173,6 @@ export default { }, created() { this.taskLogTimer = setInterval(() => { - console.log(this.sycnStatus) - console.log(this.lastRequestComplete) if (this.sycnStatus !== 'Underway') { return; } diff --git a/frontend/src/views/panel/GrantAuth/shareTree.vue b/frontend/src/views/panel/GrantAuth/shareTree.vue index d0c5135784..dbfa223781 100644 --- a/frontend/src/views/panel/GrantAuth/shareTree.vue +++ b/frontend/src/views/panel/GrantAuth/shareTree.vue @@ -100,12 +100,7 @@ export default { } }, created() { - bus.$on('refresh-my-share-out', () => { - this.initOutData().then(res => { - this.outDatas = res.data - this.setMainNull() - }) - }) + bus.$on('refresh-my-share-out', this.refreshMyShareOut) this.initData().then(res => { this.datas = res.data if (this.msgPanelIds && this.msgPanelIds.length > 0) { @@ -116,8 +111,16 @@ export default { this.outDatas = res.data }) }, - + beforeDestroy() { + bus.$off('refresh-my-share-out', this.refreshMyShareOut) + }, methods: { + refreshMyShareOut() { + this.initOutData().then(res => { + this.outDatas = res.data + this.setMainNull() + }) + }, initData() { const param = {} return loadTree(param) diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentStyle.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentStyle.vue index c9120b89b0..72090ff79e 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentStyle.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentStyle.vue @@ -40,9 +40,10 @@ export default { ]), created() { this.initForm() - bus.$on('onThemeColorChange', () => { - this.initForm() - }) + bus.$on('onThemeColorChange', this.initForm) + }, + beforeDestroy() { + bus.$off('onThemeColorChange', this.initForm) }, methods: { initForm() { diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/FilterStyleSelector.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/FilterStyleSelector.vue index ece0914936..e97f9de547 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/FilterStyleSelector.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/FilterStyleSelector.vue @@ -71,9 +71,10 @@ export default { }, created() { this.initForm() - bus.$on('onThemeColorChange', () => { - this.initForm() - }) + bus.$on('onThemeColorChange', this.initForm) + }, + beforeDestroy() { + bus.$off('onThemeColorChange', this.initForm) }, mounted() { }, diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/OverallSetting.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/OverallSetting.vue index 694edac30b..c1ca5b3b81 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/OverallSetting.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/OverallSetting.vue @@ -1,56 +1,115 @@ @@ -65,20 +124,26 @@ import { LIGHT_THEME_PANEL_BACKGROUND } from '@/components/canvas/utils/style' import bus from '@/utils/bus' -import { DEFAULT_COLOR_CASE_DARK, DEFAULT_TITLE_STYLE_DARK, DEFAULT_COLOR_CASE, DEFAULT_TITLE_STYLE } from '@/views/chart/chart/chart' +import { + DEFAULT_COLOR_CASE_DARK, + DEFAULT_TITLE_STYLE_DARK, + DEFAULT_COLOR_CASE, + DEFAULT_TITLE_STYLE +} from '@/views/chart/chart/chart' import { FILTER_COMMON_STYLE, FILTER_COMMON_STYLE_DARK } from '@/views/panel/panel' import { deepCopy } from '@/components/canvas/utils/utils' +import ColorButton from '@/components/AssistButton/ColorButton' export default { name: 'OverallSetting', + components: { ColorButton }, data() { return { colorIndex: 0, overallSettingForm: {} } }, - watch: { - }, + watch: {}, computed: { ...mapState([ 'canvasStyleData' @@ -113,6 +178,14 @@ export default { bus.$emit('onThemeColorChange') } this.$store.commit('recordSnapshot') + }, + colorButtonClick(val) { + if (val !== this.overallSettingForm.panel.themeColor) { + this.overallSettingForm.panel.themeColor = val + this.themeChange('themeColor') + } else { + this.overallSettingForm.panel.themeColor = val + } } } } @@ -120,35 +193,42 @@ export default { diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelColorSelector.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelColorSelector.vue index c6f3ea228e..1d94308284 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelColorSelector.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/PanelColorSelector.vue @@ -183,9 +183,10 @@ export default { ]), created() { this.initForm() - bus.$on('onThemeColorChange', () => { - this.initForm() - }) + bus.$on('onThemeColorChange',this.initForm) + }, + beforeDestroy() { + bus.$off('onThemeColorChange',this.initForm) }, mounted() { }, diff --git a/frontend/src/views/panel/SubjectSetting/PanelStyle/ViewTitle.vue b/frontend/src/views/panel/SubjectSetting/PanelStyle/ViewTitle.vue index 1df809ffae..5180770753 100644 --- a/frontend/src/views/panel/SubjectSetting/PanelStyle/ViewTitle.vue +++ b/frontend/src/views/panel/SubjectSetting/PanelStyle/ViewTitle.vue @@ -60,9 +60,10 @@ export default { ]), created() { this.initForm() - bus.$on('onThemeColorChange', () => { - this.initForm() - }) + bus.$on('onThemeColorChange',this.initForm) + }, + beforeDestroy() { + bus.$off('onThemeColorChange',this.initForm) }, mounted() { this.init() diff --git a/frontend/src/views/panel/SubjectSetting/PreSubject/Slider.vue b/frontend/src/views/panel/SubjectSetting/PreSubject/Slider.vue index 390fc68563..d6940b92c5 100644 --- a/frontend/src/views/panel/SubjectSetting/PreSubject/Slider.vue +++ b/frontend/src/views/panel/SubjectSetting/PreSubject/Slider.vue @@ -1,20 +1,32 @@