Skip to content

CronBuilder Cron 表达式构建器

Cron 表达式可视化构建器组件。提供「简单设置」和「Cron 专家模式」两种编辑方式。简单模式通过下拉选择自动生成 Quartz 6 段 Cron 表达式;专家模式直接编写 Cron 表达式。支持自动解析已有表达式回填简单模式。

基础用法

vue
<template>
  <CronBuilder v-model="cronExpression" />
  <p>当前 Cron: {{ cronExpression }}</p>
</template>

<script setup>
import { ref } from 'vue'
import CronBuilder from '@/components/job/CronBuilder.vue'

const cronExpression = ref('0 0 8 * * ?')
</script>

Props

属性类型默认值说明
modelValueString''Cron 表达式(v-model 绑定),Quartz 6 段格式

Events

事件名参数说明
update:modelValue(cron: string)Cron 表达式变化
modeChange(mode: 'simple' | 'expert')模式切换时触发

简单模式

通过下拉选择生成 Cron 表达式,支持的频率类型:

频率类型说明示例结果
interval每隔 N 分钟(1-59)0 0/5 * * * ?
hourly每小时第 N 分钟0 30 * * * ?
daily每天指定时间0 0 8 * * ?
weekly每周指定星期和时间0 0 9 ? * MON
monthly每月指定日期和时间0 0 10 15 * ?

专家模式

直接输入 6 段 Quartz Cron 表达式:

秒 分 时 日 月 周
0  0  8  *  *  ?    → 每天 8:00:00
0  */5 * * * ?      → 每 5 分钟
0  30 9 ? * MON-FRI → 工作日 9:30

在 AiCrudPage 中使用

js
const editSchema = [
  { field: 'cronExpression', label: '执行周期', type: 'input',
    slot: 'cron', span: 2,
    rules: [{ required: true, message: '请设置执行周期' }] },
]
vue
<AiCrudPage :edit-schema="editSchema">
  <template #form-cron="{ value, updateValue }">
    <CronBuilder :model-value="value" @update:model-value="updateValue" />
  </template>
</AiCrudPage>

注意事项

  • 使用 Quartz 6 段格式(秒 分 时 日 月 周),非标准 Linux 5 段格式
  • 传入已有表达式时,组件会尝试解析并回填简单模式的选项
  • 无法解析的表达式会自动切换到专家模式

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架