From bdb4d839c3edc84b1c8ca3bdfd976de2920d4837 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Fri, 23 Jul 2021 11:52:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=94=B9=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/ExtractDataService.java | 4 +- .../db/migration/V13__system_task.sql | 6 ++ .../resources/i18n/messages_en_US.properties | 2 +- .../resources/i18n/messages_zh_CN.properties | 2 +- .../resources/i18n/messages_zh_TW.properties | 2 +- frontend/src/views/system/task/TaskRecord.vue | 20 ++++-- frontend/src/views/system/task/dataset.vue | 69 ++++++++++++++++--- 7 files changed, 87 insertions(+), 18 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index 28ca4b7a1c..0ca60d8dd0 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -195,12 +195,12 @@ public class ExtractDataService { extractData(datasetTable, "all_scope"); replaceTable(DorisTableUtils.dorisName(datasetTableId)); saveSucessLog(datasetTableTaskLog); - sendWebMsg(datasetTable, null, true); +// sendWebMsg(datasetTable, null, true); deleteFile("all_scope", datasetTableId); updateTableStatus(datasetTableId, datasetTable, JobStatus.Completed, execTime); } catch (Exception e) { saveErrorLog(datasetTableId, null, e); - sendWebMsg(datasetTable, null, false); +// sendWebMsg(datasetTable, null, false); updateTableStatus(datasetTableId, datasetTable, JobStatus.Error, null); dropDorisTable(DorisTableUtils.dorisTmpName(DorisTableUtils.dorisName(datasetTableId))); deleteFile("all_scope", datasetTableId); diff --git a/backend/src/main/resources/db/migration/V13__system_task.sql b/backend/src/main/resources/db/migration/V13__system_task.sql index 5f0b61148d..4caafbc099 100644 --- a/backend/src/main/resources/db/migration/V13__system_task.sql +++ b/backend/src/main/resources/db/migration/V13__system_task.sql @@ -11,6 +11,12 @@ update dataset_table_task set status='Stopped' where rate='SIMPLE'; update dataset_table_task set status='Underway' where rate='CRON'; +UPDATE dataset_table_task +SET dataset_table_task.last_exec_time = (SELECT dataset_table_task_log.start_time FROM dataset_table_task_log WHERE dataset_table_task_log.task_id = dataset_table_task.id limit 1); + +UPDATE dataset_table_task +SET dataset_table_task.last_exec_status = (SELECT dataset_table_task_log.status FROM dataset_table_task_log WHERE dataset_table_task_log.task_id = dataset_table_task.id limit 1); + ALTER TABLE `dataset_table_task_log` ADD COLUMN `trigger_type` VARCHAR(45) NULL AFTER `create_time`; ALTER TABLE `dataset_table_task` ADD COLUMN `extra_data` LONGTEXT NULL AFTER `last_exec_status`; diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index df2993d85d..4368a78131 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -251,7 +251,7 @@ i18n_datasource_not_allow_delete_msg= datasets are using this data source and ca i18n_task_name_repeat=Name is used in same data set i18n_id_or_pwd_error=Invalid ID or password i18n_datasource_delete=Data source is delete -i18n_dataset_delete=Data set is delete +i18n_dataset_delete_or_no_permission=Data set is delete or no permission i18n_chart_delete=Chart is delete i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed i18n_excel_header_empty=Excel first row can not empty diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 9300a340b3..4611604efa 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -250,7 +250,7 @@ i18n_datasource_not_allow_delete_msg= 个数据集正在使用此数据源,无 i18n_task_name_repeat=同一数据集下任务名称已被使用 i18n_id_or_pwd_error=无效的ID或密码 i18n_datasource_delete=当前用到的数据源已被删除 -i18n_dataset_delete=当前用到的数据集已被删除 +i18n_dataset_delete_or_no_permission=当前用到的数据集没有权限或已被删除 i18n_chart_delete=当前用到的视图已被删除 i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步 i18n_excel_header_empty=Excel第一行为空 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index 4853823bd0..be40e15ffa 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -253,7 +253,7 @@ i18n_datasource_not_allow_delete_msg= 個數據集正在使用此數據源,無 i18n_task_name_repeat=同一數據集下任務名稱已被使用 i18n_id_or_pwd_error=無效的ID或密碼 i18n_datasource_delete=當前用到的數據源已被刪除 -i18n_dataset_delete=當前用到的數據集已被刪除 +i18n_dataset_delete_or_no_permission=當前用到的數據集沒有權限或已被刪除 i18n_chart_delete=當前用到的視圖已被刪除 i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步 i18n_excel_header_empty=Excel第一行為空 diff --git a/frontend/src/views/system/task/TaskRecord.vue b/frontend/src/views/system/task/TaskRecord.vue index 5ca944c3a9..113768729a 100644 --- a/frontend/src/views/system/task/TaskRecord.vue +++ b/frontend/src/views/system/task/TaskRecord.vue @@ -55,11 +55,10 @@ import LayoutContent from '@/components/business/LayoutContent' import ComplexTable from '@/components/business/complex-table' import { formatCondition, formatQuickCondition, addOrder, formatOrders } from '@/utils/index' import '@riophae/vue-treeselect/dist/vue-treeselect.css' -import { post} from '@/api/dataset/dataset' +import { post } from '@/api/dataset/dataset' import cron from '@/components/cron/cron' import TableSelector from '@/views/chart/view/TableSelector' - export default { name: 'TaskRecord', components: { ComplexTable, LayoutContent, cron, TableSelector}, @@ -116,6 +115,8 @@ export default { error_massage: '' } }, + computed: { + }, created() { if(this.param == null){ this.last_condition = {} @@ -135,12 +136,23 @@ export default { this.search(this.last_condition, false) }, 5000) }, - computed: { - }, beforeDestroy() { clearInterval(this.timer) }, methods: { + msg2Current(routerParam) { + if (!routerParam || !routerParam.taskId) return + const taskId = routerParam.taskId + // console.log(taskId) + const current_condition = { + 'dataset_table_task.id': { + field: 'dataset_table_task.id', + operator: 'eq', + value: taskId + } + } + this.search(current_condition) + }, sortChange({ column, prop, order }) { this.orderConditions = [] if (!order) { diff --git a/frontend/src/views/system/task/dataset.vue b/frontend/src/views/system/task/dataset.vue index 906811a7dc..0fb9712b58 100644 --- a/frontend/src/views/system/task/dataset.vue +++ b/frontend/src/views/system/task/dataset.vue @@ -18,21 +18,39 @@ import LayoutContent from '@/components/business/LayoutContent' import ComplexTable from '@/components/business/complex-table' -import UnionView from "@/views/dataset/data/UnionView"; -import UpdateInfo from "@/views/dataset/data/UpdateInfo"; -import DatasetTaskList from "@/views/system/task/DatasetTaskList"; -import TaskRecord from "@/views/system/task/TaskRecord"; -import TabDataPreview from "@/views/dataset/data/TabDataPreview"; -import DatasetTableData from "@/views/dataset/common/DatasetTableData"; +import UnionView from '@/views/dataset/data/UnionView' +import UpdateInfo from '@/views/dataset/data/UpdateInfo' +import DatasetTaskList from '@/views/system/task/DatasetTaskList' +import TaskRecord from '@/views/system/task/TaskRecord' +import TabDataPreview from '@/views/dataset/data/TabDataPreview' +import DatasetTableData from '@/views/dataset/common/DatasetTableData' +import bus from '@/utils/bus' +import { mapGetters } from 'vuex' export default { - components: {DatasetTableData, LayoutContent, ComplexTable,UnionView, UpdateInfo, TabDataPreview, DatasetTaskList, TaskRecord}, + components: { DatasetTableData, LayoutContent, ComplexTable, UnionView, UpdateInfo, TabDataPreview, DatasetTaskList, TaskRecord }, data() { return { task: null, tabActive: 'DatasetTaskList' } }, - + computed: { + ...mapGetters([ + 'permission_routes' + ]) + }, + mounted() { + bus.$on('to-msg-dataset', params => { + this.toMsgShare(params) + }) + }, + created() { + this.$store.dispatch('app/toggleSideBarHide', false) + const routerParam = this.$router.currentRoute.params + routerParam && this.$nextTick(() => { + this.toMsgShare(routerParam) + }) + }, methods: { changeTab(){ this.task = null @@ -42,9 +60,42 @@ export default { this.task = task this.tabActive = 'TaskRecord' }, - jumpTask(task){ + jumpTask(task) { this.task = task this.tabActive = 'DatasetTaskList' + }, + toMsgShare(routerParam) { + if (routerParam !== null && routerParam.msgNotification) { + const panelShareTypeIds = [4, 5, 6] + // 说明是从消息通知跳转过来的 + if (panelShareTypeIds.includes(routerParam.msgType)) { // 是数据集同步 + if (routerParam.sourceParam) { + this.openSystem() + try { + const msgParam = JSON.parse(routerParam.sourceParam) + // this.param = msgParam.tableId + this.tabActive = 'TaskRecord' + this.$nextTick(() => { + this.$refs.task_record && this.$refs.task_record.msg2Current && this.$refs.task_record.msg2Current(msgParam) + }) + } catch (error) { + console.error(error) + } + } + } + } + }, + openSystem() { + const path = '/system' + let route = this.permission_routes.find( + item => item.path === '/' + path.split('/')[1] + ) + // 如果找不到这个路由,说明是首页 + if (!route) { + route = this.permission_routes.find(item => item.path === '/') + } + this.$store.commit('permission/SET_CURRENT_ROUTES', route) + // this.setSidebarHide(route) } }