用Go实现一个跨语言的定期任务调度器(3)

完整目录

这一篇介绍前端的实现

首先是前端表单

这里只介绍cron组件, 其他的都是文本输入组件, 非常简单

使用了react-js-cron这个组件

import { Cron } from 'react-js-cron'

function generationMonth() {
    let a = []
    for (let i =1; i <=12; i++){
        a.push(i+ "月")
    }
    return a
}
const months = generationMonth()
const weeks = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]

let CronI18 = {
    everyText: "每",
    emptyMonths: "每月",
    emptyMonthDays: "一个月的某一天",
    emptyMonthDaysShort: "1号",
    emptyWeekDays: "一周的某一天",
    emptyWeekDaysShort: "星期一",
    emptyHours: "每小时",
    emptyMinutes: "每分钟",
    emptyMinutesForHourPeriod: "任何时候",
    yearOption: "年",
    monthOption: "月",
    weekOption: "周",
    dayOption: "日",
    hourOption: "小时",
    minuteOption: "分钟",
    rebootOption: "重启",
    prefixPeriod: "每",
    prefixMonths: " ",
    prefixMonthDays: " ",
    prefixWeekDays: " ",
    prefixWeekDaysForMonthAndYearPeriod: " ",
    prefixHours: " ",
    prefixMinutes: ":",
    prefixMinutesForHourPeriod: " ",
    suffixMinutesForHourPeriod: "分钟",
    errorInvalidCron: "错误的cron表达式",
    weekDays: weeks,
    months: months,
    altWeekDays: weeks,
    altMonths: months,
}

function PeriodicTaskCreate(props) {
    const [value, setValue] = useState('* */2 * * *')

    return (
    <Cron value={value}  locale={CronI18} setValue={(v)=> {setValue(v)}} />
)
}
这里就是我的前端表单

有几个字段可以在提交表单时进行校验,

  • 环境变量, 我们可以在提交时检查, 如果环境变量不为空, 那么我们就把它转换为json, 如果转换失败, 那么就报错提示用户格式错误
  • 通知列表,如果不为空, 检查格式是用;分割的一个个标准邮箱
  • git的地址是否为标准的git ssh地址

当用户输入完所有信息后, 点击确定, 就会调用后端的API创建任务


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注