优化定时任务日志
This commit is contained in:
parent
7d3d66c952
commit
87c2aecae9
@ -12,7 +12,7 @@ VITE_DROP_CONSOLE = true
|
|||||||
|
|
||||||
# 跨域代理,可以配置多个,请注意不要换行
|
# 跨域代理,可以配置多个,请注意不要换行
|
||||||
#VITE_PROXY = [["/appApi","http://localhost:8001"],["/upload","http://localhost:8001/upload"]]
|
#VITE_PROXY = [["/appApi","http://localhost:8001"],["/upload","http://localhost:8001/upload"]]
|
||||||
VITE_PROXY=[["/api","http://192.168.124.203:8081/api"]]
|
VITE_PROXY=[["/api","http://192.168.124.32:8081/api"]]
|
||||||
|
|
||||||
# API 接口地址
|
# API 接口地址
|
||||||
VITE_GLOB_API_URL =
|
VITE_GLOB_API_URL =
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="消息详情"
|
title="消息详情"
|
||||||
|
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="消息详情"
|
title="消息详情"
|
||||||
|
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="邮件日志详情"
|
title="邮件日志详情"
|
||||||
|
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="文件日志详情"
|
title="文件日志详情"
|
||||||
|
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="短信日志详情"
|
title="短信日志详情"
|
||||||
|
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -20,10 +20,17 @@ export const columns = [
|
|||||||
{
|
{
|
||||||
label: '任务触发器',
|
label: '任务触发器',
|
||||||
prop: 'jobTrigger',
|
prop: 'jobTrigger',
|
||||||
|
width: 150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '任务信息',
|
label: '任务日志信息',
|
||||||
prop: 'jobMessage',
|
prop: 'jobMessage',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '执行表达式',
|
||||||
|
prop: 'cronExpression',
|
||||||
|
width: 150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '执行状态',
|
label: '执行状态',
|
||||||
@ -50,7 +57,22 @@ export const columns = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '执行时间',
|
label: '任务开始时间',
|
||||||
prop: 'startTime',
|
prop: 'startTime',
|
||||||
|
width: 180,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '任务结束时间',
|
||||||
|
prop: 'endTime',
|
||||||
|
width: 180,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '任务执行时间',
|
||||||
|
prop: 'createTime',
|
||||||
|
width: 180,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '任务执行耗时',
|
||||||
|
prop: 'consumeTime',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -1,44 +1,59 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="日志详情"
|
title="执行日志详情"
|
||||||
|
width="750"
|
||||||
width="700"
|
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
<el-descriptions column="2">
|
<el-descriptions class="margin-top" :column="2" border>
|
||||||
<el-descriptions-item label="任务名称:">{{formData.jobName}}</el-descriptions-item>
|
<el-descriptions-item label="任务名称" label-class-name="des-width">
|
||||||
<el-descriptions-item label="任务组名:">{{formData.jobGroup}}</el-descriptions-item>
|
{{formData.jobName}}
|
||||||
<el-descriptions-item label="任务触发器:">{{formData.jobTrigger}}</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="任务信息:">{{formData.jobMessage}}</el-descriptions-item>
|
<el-descriptions-item label="任务组名" label-class-name="des-width">
|
||||||
<el-descriptions-item label="cron执行表达式:">{{formData.cronExpression}}</el-descriptions-item>
|
{{formData.jobGroup}}
|
||||||
<el-descriptions-item label="任务开始时间:">{{formData.startTime}}</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="任务结束时间:">{{formData.endTime}}</el-descriptions-item>
|
<el-descriptions-item label="任务触发器">
|
||||||
</el-descriptions>
|
{{formData.jobTrigger}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务日志信息">
|
||||||
|
{{formData.jobMessage}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行表达式">
|
||||||
|
{{formData.cronExpression}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行状态">
|
||||||
|
<el-tag :type="formData.status?'danger':'success'">{{formData.status?'异常':'正常'}}</el-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务开始时间">
|
||||||
|
{{formData.startTime}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务结束时间">
|
||||||
|
{{formData.endTime}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行时间">
|
||||||
|
{{formData.createTime}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行耗时">
|
||||||
|
{{formData.consumeTime}}s
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行异常信息" :span="3">
|
||||||
|
{{formData.exceptionInfo}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="dialogClose">关闭</el-button>
|
<el-button @click="dialogClose">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {getJobLogDetail} from "@/api/monitor/job";
|
import {getJobLogDetail} from "@/api/monitor/job";
|
||||||
import {onMounted, reactive, shallowRef} from "vue";
|
import {onMounted, ref,} from "vue";
|
||||||
|
|
||||||
const formData = reactive({
|
const emit = defineEmits(["success", "update:visible"]);
|
||||||
id: "",
|
const formData = ref({});
|
||||||
jobName: "",
|
|
||||||
jobGroup:'',
|
|
||||||
jobTrigger:'',
|
|
||||||
jobMessage:'',
|
|
||||||
cronExpression:'',
|
|
||||||
startTime:'',
|
|
||||||
endTime:''
|
|
||||||
});
|
|
||||||
|
|
||||||
const emit = defineEmits(["update:visible"]);
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
visible: {
|
visible: {
|
||||||
@ -60,53 +75,8 @@ const dialogClose = () => {
|
|||||||
|
|
||||||
const setFormData = async () => {
|
const setFormData = async () => {
|
||||||
const data = await getJobLogDetail(props.logId);
|
const data = await getJobLogDetail(props.logId);
|
||||||
for (const key in formData) {
|
formData.value = data
|
||||||
if (data[key] != null && data[key] != undefined) {
|
|
||||||
//@ts-ignore
|
|
||||||
formData[key] = data[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
const getReviceType =(type)=>{
|
|
||||||
let typeText = ''
|
|
||||||
switch (type) {
|
|
||||||
case 1:
|
|
||||||
typeText='系统用户'
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
typeText='会员用户'
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
typeText='其他'
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return typeText
|
|
||||||
}
|
|
||||||
const getTyepText =(type)=>{
|
|
||||||
let typeText = ''
|
|
||||||
switch (type) {
|
|
||||||
case 1:
|
|
||||||
typeText='登录'
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
typeText='注册'
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
typeText='找回密码'
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
typeText='业务'
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
typeText='其他'
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return typeText
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.logId) {
|
if (props.logId) {
|
||||||
@ -115,3 +85,12 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
:deep(.des-width) {
|
||||||
|
width:120px;
|
||||||
|
}
|
||||||
|
:deep(.el-descriptions__body .el-descriptions__table .el-descriptions__cell) {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
116
src/views/monitor/job/log/edit2.vue
Normal file
116
src/views/monitor/job/log/edit2.vue
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-model="props.visible"
|
||||||
|
title="日志详情"
|
||||||
|
width="750"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:before-close="dialogClose"
|
||||||
|
>
|
||||||
|
<el-descriptions column="2">
|
||||||
|
<el-descriptions-item label="任务名称:">{{formData.jobName}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务组名:">{{formData.jobGroup}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务触发器:">{{formData.jobTrigger}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务信息:">{{formData.jobMessage}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="cron执行表达式:">{{formData.cronExpression}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务开始时间:">{{formData.startTime}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务结束时间:">{{formData.endTime}}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="dialogClose">关闭</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import {getJobLogDetail} from "@/api/monitor/job";
|
||||||
|
import {onMounted, reactive, shallowRef} from "vue";
|
||||||
|
|
||||||
|
const formData = reactive({
|
||||||
|
id: "",
|
||||||
|
jobName: "",
|
||||||
|
jobGroup:'',
|
||||||
|
jobTrigger:'',
|
||||||
|
jobMessage:'',
|
||||||
|
cronExpression:'',
|
||||||
|
startTime:'',
|
||||||
|
endTime:''
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(["update:visible"]);
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
logId: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
default: 0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const dialogClose = () => {
|
||||||
|
emit("update:visible", false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const setFormData = async () => {
|
||||||
|
const data = await getJobLogDetail(props.logId);
|
||||||
|
for (const key in formData) {
|
||||||
|
if (data[key] != null && data[key] != undefined) {
|
||||||
|
//@ts-ignore
|
||||||
|
formData[key] = data[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const getReviceType =(type)=>{
|
||||||
|
let typeText = ''
|
||||||
|
switch (type) {
|
||||||
|
case 1:
|
||||||
|
typeText='系统用户'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
typeText='会员用户'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
typeText='其他'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return typeText
|
||||||
|
}
|
||||||
|
const getTyepText =(type)=>{
|
||||||
|
let typeText = ''
|
||||||
|
switch (type) {
|
||||||
|
case 1:
|
||||||
|
typeText='登录'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
typeText='注册'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
typeText='找回密码'
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
typeText='业务'
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
typeText='其他'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return typeText
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (props.logId) {
|
||||||
|
setFormData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
@ -75,7 +75,7 @@ const selectionData = ref([])
|
|||||||
status:''
|
status:''
|
||||||
});
|
});
|
||||||
const actionColumn = reactive({
|
const actionColumn = reactive({
|
||||||
width: 250,
|
width: 200,
|
||||||
label: '操作',
|
label: '操作',
|
||||||
prop: 'action',
|
prop: 'action',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="登录日志详情"
|
title="登录日志详情"
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="props.visible"
|
v-model="props.visible"
|
||||||
title="操作日志详情"
|
title="操作日志详情"
|
||||||
width="700"
|
width="750"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:before-close="dialogClose"
|
:before-close="dialogClose"
|
||||||
>
|
>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="props.visible" :title="props.userId ? '编辑' : '新增'" width="700" :close-on-click-modal="false"
|
<el-dialog v-model="props.visible" :title="props.userId ? '编辑' : '新增'" width="750" :close-on-click-modal="false"
|
||||||
:before-close="dialogClose">
|
:before-close="dialogClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="84px">
|
<el-form ref="formRef" :model="formData" label-width="84px">
|
||||||
<el-form-item label="头像" prop="avatar" :rules="{ required: true, message: '请输上传头像', trigger: 'blur' }">
|
<el-form-item label="头像" prop="avatar" :rules="{ required: true, message: '请输上传头像', trigger: 'blur' }">
|
||||||
|
Loading…
Reference in New Issue
Block a user