diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.java index 58aa8aa7fe..b24a3973a3 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.java @@ -1,13 +1,12 @@ package io.dataease.base.mapper.ext; -import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.dto.panel.po.PanelViewPo; import java.util.List; public interface ExtPanelViewMapper { - List groups(GridExample example); + List groups(String userId); - List views(GridExample example); + List views(String userId); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.xml index e5ca5bc850..ff3d44bfa5 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelViewMapper.xml @@ -11,32 +11,23 @@ - select id, pid, name, `type` - from chart_group - - - - - order by ${orderByClause} - - - order by create_time desc - + from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'chart') cids) t,chart_group + + FIND_IN_SET(chart_group.id,cids) + + order by create_time desc + - + select id, scene_id as pid , name, `type` + from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'chart') cids) t, chart_view + + FIND_IN_SET(chart_view.id,cids) + + order by create_time desc diff --git a/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java b/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java index 06a09292ca..a99d45efc0 100644 --- a/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java +++ b/backend/src/main/java/io/dataease/controller/panel/api/ViewApi.java @@ -18,9 +18,13 @@ import java.util.List; public interface ViewApi { - @ApiOperation("视图树") +// @ApiOperation("视图树") +// @PostMapping("/tree") +// List tree(BaseGridRequest request); + + @ApiOperation("授权的视图树") @PostMapping("/tree") - List tree(BaseGridRequest request); + List treeWithAuth(); @ApiOperation("根据仪表板Id查询视图") diff --git a/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java b/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java index b283e06d54..74ce250504 100644 --- a/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java +++ b/backend/src/main/java/io/dataease/controller/panel/server/ViewServer.java @@ -34,16 +34,9 @@ public class ViewServer implements ViewApi { * @return */ @Override - public List tree(@RequestBody BaseGridRequest request) { - List conditions = new ArrayList<>(); - ConditionEntity condition = new ConditionEntity(); - condition.setField("create_by"); - condition.setOperator("eq"); - condition.setValue(AuthUtils.getUser().getUsername()); - conditions.add(condition); - request.setConditions(conditions); - List groups = panelViewService.groups(request); - List views = panelViewService.views(request); + public List treeWithAuth() { + List groups = panelViewService.groups(); + List views = panelViewService.views(); List panelViewDtos = panelViewService.buildTree(groups, views); return panelViewDtos; } diff --git a/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java b/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java index 53a2c4852d..79f06b6784 100644 --- a/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java +++ b/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java @@ -2,9 +2,16 @@ package io.dataease.job.sechedule; import io.dataease.commons.utils.LogUtil; import org.quartz.*; +import org.quartz.impl.triggers.CronTriggerImpl; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -73,7 +80,9 @@ public class ScheduleManager { triggerBuilder.withIdentity(triggerKey); - triggerBuilder.startAt(startTime); + if (startTime.before(new Date())) { + triggerBuilder.startAt(getNTimeByCron(cron)); + } if (endTime != null) { triggerBuilder.endAt(endTime); @@ -149,7 +158,9 @@ public class ScheduleManager { triggerBuilder.withIdentity(triggerKey);// 触发器名,触发器组 - triggerBuilder.startAt(startTime); + if (startTime.before(new Date())) { + triggerBuilder.startAt(getNTimeByCron(cron)); + } if (endTime != null) { triggerBuilder.endAt(endTime); @@ -395,4 +406,23 @@ public class ScheduleManager { return returnMap; } + + public static Date getNTimeByCron(String cron) { + try { + CronTriggerImpl cronTriggerImpl = new CronTriggerImpl(); + cronTriggerImpl.setCronExpression(cron); + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); +// calendar.add(java.util.Calendar.YEAR, 1); + calendar.add(Calendar.MONTH, 2); + + List dates = TriggerUtils.computeFireTimesBetween(cronTriggerImpl, null, now, calendar.getTime()); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nextTime = dateFormat.format(dates.get(0)); + Date date = dateFormat.parse(nextTime); + return date; + } catch (Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 06784d2f0f..b84486d115 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -228,11 +228,11 @@ i18n_auth_manage=Manage i18n_auth_grant=Grant i18n_template_system=System Template i18n_template_self=Self Template -i18n_name_cant_repeat_same_group=Name is already exists in the same group +i18n_name_cant_repeat_same_group=Name is already used in the same group i18n_chart_count=Count* i18n_excel_have_merge_region=Excel has merged region i18n_cron_expression_error=Cron expression error -i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat +i18n_same_folder_can_not_repeat=Name is already used in the same folder i18n_default_panel=Default Dashboard i18n_panel_list=Dashboard i18n_processing_data=Processing data now, Refresh later diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index a6e9f29685..83339dfbfb 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -230,11 +230,11 @@ i18n_auth_manage=管理 i18n_auth_grant=授权 i18n_template_system=系统模板 i18n_template_self=用户模板 -i18n_name_cant_repeat_same_group=同一分组下名称不能重复 +i18n_name_cant_repeat_same_group=同一分组下该名称已被使用 i18n_chart_count=记录数* i18n_excel_have_merge_region=Excel 存在合并单元格 i18n_cron_expression_error=Cron 表达式校验错误 -i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 +i18n_same_folder_can_not_repeat=同一目录下该名称已被使用 i18n_default_panel=默认仪表板 i18n_panel_list=仪表板 i18n_processing_data=正在处理数据,稍后刷新 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index 55266c1429..228e7081b3 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -230,11 +230,11 @@ i18n_auth_manage=管理 i18n_auth_grant=授權 i18n_template_system=系統模板 i18n_template_self=用戶模板 -i18n_name_cant_repeat_same_group=同一分組下名稱不能重復 +i18n_name_cant_repeat_same_group=同一分組下該名稱已被使用 i18n_chart_count=記錄數* i18n_excel_have_merge_region=Excel存在合並單元格 i18n_cron_expression_error=Cron表達式校驗錯誤 -i18n_same_folder_can_not_repeat=相同的目錄下名稱不能重復 +i18n_same_folder_can_not_repeat=同一目錄下該名稱已被使用 i18n_default_panel=默認儀表板 i18n_panel_list=儀表板 i18n_processing_data=正在處理數據,稍後刷新 diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss index 44ea9d2e00..5f4cf7b031 100644 --- a/frontend/src/styles/index.scss +++ b/frontend/src/styles/index.scss @@ -90,11 +90,15 @@ div:focus { width: 50% !important; .el-dialog__header{ - background-color: #f4f4f5; + // background-color: #f4f4f5; padding: 10px 20px !important; + + .el-dialog__headerbtn { + top: 15px !important; + } } .el-dialog__body{ - padding: 1px 20px !important; + padding: 1px 15px !important; } } diff --git a/frontend/src/views/chart/group/Group.vue b/frontend/src/views/chart/group/Group.vue index 6e37a985d6..06d17d430f 100644 --- a/frontend/src/views/chart/group/Group.vue +++ b/frontend/src/views/chart/group/Group.vue @@ -445,6 +445,7 @@ export default { }, close() { + this.$refs['groupForm'].resetFields() this.editGroup = false this.groupForm = { name: '', diff --git a/frontend/src/views/dataset/group/Group.vue b/frontend/src/views/dataset/group/Group.vue index c41fcd43af..6aaac29707 100644 --- a/frontend/src/views/dataset/group/Group.vue +++ b/frontend/src/views/dataset/group/Group.vue @@ -458,6 +458,7 @@ export default { }, close() { + this.$refs['groupForm'].resetFields() this.editGroup = false this.groupForm = { name: '', diff --git a/frontend/src/views/panel/edit/index.vue b/frontend/src/views/panel/edit/index.vue index 41277a5ad9..31ffdab3af 100644 --- a/frontend/src/views/panel/edit/index.vue +++ b/frontend/src/views/panel/edit/index.vue @@ -127,7 +127,7 @@ :in-draw="false" /> -
+
{{ $t('commons.cancel') }} {{ $t('commons.confirm') }} diff --git a/frontend/src/views/panel/filter/filterDialog.vue b/frontend/src/views/panel/filter/filterDialog.vue index 72caacdb66..bf47ec0b71 100644 --- a/frontend/src/views/panel/filter/filterDialog.vue +++ b/frontend/src/views/panel/filter/filterDialog.vue @@ -521,7 +521,7 @@ export default { .ms-main-container { height: 100%; min-height: 400px; - + padding: 5px 10px; } .filter-field { @@ -588,13 +588,14 @@ export default { } .filter-content { - height: calc(50vh - 130px); + height: calc(50vh - 120px); top: 160px; } .filter-dialog-tabs { border: 1px solid #E6E6E6; + padding: 10px; height: 100%; >>> div.el-tabs__content { height: calc(100% - 55px); @@ -602,12 +603,12 @@ export default { } .filter-common { - margin: 10px 10px; + margin: 10px 5px; } .component-header { - margin: 20px 10px !important; + margin: 5px 5px 15px; } .component-result-content { diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue index 287b26702d..32a9ff2ae0 100644 --- a/frontend/src/views/system/user/index.vue +++ b/frontend/src/views/system/user/index.vue @@ -309,8 +309,16 @@ export default { methods: { sortChange({ column, prop, order }) { + this.orderConditions = [] + if (!order) { + this.search(this.last_condition) + return + } if (prop === 'dept') { - prop = 'deptId' + prop = 'u.deptId' + } + if (prop === 'status') { + prop = 'u.enabled' } this.orderConditions = [] addOrder({ field: prop, value: order }, this.orderConditions)