From 09421c59bfd0769c0cb5f4b45f6c089f479c9b89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=99=88=E7=BA=A2=E4=B8=BD?= <1181930680@qq.com>
Date: Thu, 25 Jul 2024 13:47:26 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/monitor/job/index.vue | 42 +++---
src/views/monitor/job/log/columns.ts | 52 +++++++
src/views/monitor/job/log/edit.vue | 117 ++++++++++++++++
src/views/monitor/job/log/index.vue | 162 ++++++++++++++++++++++
src/views/monitor/job/log/querySchemas.ts | 30 ++++
5 files changed, 381 insertions(+), 22 deletions(-)
create mode 100644 src/views/monitor/job/log/columns.ts
create mode 100644 src/views/monitor/job/log/edit.vue
create mode 100644 src/views/monitor/job/log/index.vue
create mode 100644 src/views/monitor/job/log/querySchemas.ts
diff --git a/src/views/monitor/job/index.vue b/src/views/monitor/job/index.vue
index 11d5cc6..903996c 100644
--- a/src/views/monitor/job/index.vue
+++ b/src/views/monitor/job/index.vue
@@ -43,6 +43,11 @@
@success="reloadTable('noRefresh')"
>
+
+
@@ -56,11 +61,17 @@
import { columns } from './columns';
import { PlusOutlined } from '@vicons/antd';
import {message,confirm} from "@/utils/auth";
+ import { useRouter } from 'vue-router';
+ const router = useRouter();
const editDialog = defineAsyncComponent(() =>
import('./edit.vue')
)
+const jobLog = defineAsyncComponent(() =>
+ import('./log/index.vue')
+)
const jobId =ref(0)
const editVisible=ref(false)
+const editLogVisible=ref(false)
const selectionData = ref([])
const tableRef = ref();
const formParams = reactive({
@@ -76,27 +87,7 @@ const selectionData = ref([])
return h(TableAction, {
style: 'button',
actions: [
- // {
- // label: '启动',
- // type: 'warning',
- // onClick: handelChangeStatus.bind(null, record),
- // ifShow: () => {
- // return record.row.status==0 ||record.row.status==2;
- // },
- // },
- // {
- // label: '暂停',
- // type: 'warning',
- // onClick: handelChangeStatus.bind(null, record),
- // ifShow: () => {
- // return record.row.status==1;
- // },
- // },
- // {
- // label: '执行一次',
- // type: 'warning',
- // onClick: handelRunOnce.bind(null, record),
- // },
+
{
label: '编辑',
type: 'warning',
@@ -139,7 +130,7 @@ const selectionData = ref([])
},
{
label: '调度日志',
- key: 'jogLog'
+ key: 'jobLog'
},
],
select: (key) => {
@@ -147,6 +138,8 @@ const selectionData = ref([])
handelChangeStatus(record)
} else if(key=='runOnce') {
handelRunOnce(record)
+ } else if(key=='jobLog'){
+ handleJobLog(record)
}
},
});
@@ -212,6 +205,11 @@ async function handleDelete(record: Recordable) {
message("删除成功");
reloadTable()
}
+ const handleJobLog=(record)=>{
+ // router.push({path:'/monitorJob/log'})
+ editLogVisible.value = true
+ jobId.value=record.row.id
+ }
function onSelectionChange(value){
selectionData.value = value
}
diff --git a/src/views/monitor/job/log/columns.ts b/src/views/monitor/job/log/columns.ts
new file mode 100644
index 0000000..fc9f6c0
--- /dev/null
+++ b/src/views/monitor/job/log/columns.ts
@@ -0,0 +1,52 @@
+import { h } from 'vue';
+import { ElTag } from 'element-plus';
+
+export const columns = [
+ {
+ type: 'selection',
+ },
+ {
+ label: '任务名称',
+ prop: 'jobName',
+ },
+ {
+ label: '任务组名',
+ prop: 'jobGroup',
+ },
+ {
+ label: '任务触发器',
+ prop: 'jobTrigger',
+ },
+ {
+ label: '任务信息',
+ prop: 'jobMessage',
+ },
+ {
+ label: '执行状态',
+ prop: 'status',
+ render(record) {
+ let typeText = ''
+ switch (record.row.status) {
+ case 0:
+ typeText='未发布'
+ break;
+ case 1:
+ typeText='运行中'
+ break;
+ case 2:
+ typeText='暂停'
+ break;
+ case 3:
+ typeText='删除'
+ break;
+ default:
+ break;
+ }
+ return h('span', typeText || '-');
+ },
+ },
+ {
+ label: '执行时间',
+ prop: 'startTime',
+ },
+];
diff --git a/src/views/monitor/job/log/edit.vue b/src/views/monitor/job/log/edit.vue
new file mode 100644
index 0000000..b2cdf40
--- /dev/null
+++ b/src/views/monitor/job/log/edit.vue
@@ -0,0 +1,117 @@
+
+
+
+ {{formData.jobName}}
+ {{formData.jobGroup}}
+ {{formData.jobTrigger}}
+ {{formData.jobMessage}}
+ {{formData.cronExpression}}
+ {{formData.startTime}}
+ {{formData.endTime}}
+
+
+
+
+
+
+
diff --git a/src/views/monitor/job/log/index.vue b/src/views/monitor/job/log/index.vue
new file mode 100644
index 0000000..b79430d
--- /dev/null
+++ b/src/views/monitor/job/log/index.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/monitor/job/log/querySchemas.ts b/src/views/monitor/job/log/querySchemas.ts
new file mode 100644
index 0000000..ed7e917
--- /dev/null
+++ b/src/views/monitor/job/log/querySchemas.ts
@@ -0,0 +1,30 @@
+import { FormSchema } from '@/components/Form/index';
+export const schemas: FormSchema[] = [
+ {
+ field: 'jobName',
+ component: 'Input',
+ label: '任务名称',
+ componentProps: {
+ placeholder: '请输入数据源名称',
+ },
+ },
+ {
+ field: 'status',
+ component: 'Select',
+ label: '任务状态',
+ componentProps: {
+ placeholder: '请选择任务状态',
+ clearable: true,
+ options: [
+ {
+ label: '正常',
+ value: 0,
+ },
+ {
+ label: '失败',
+ value: 1,
+ },
+ ],
+ },
+ },
+];