浏览代码

feat:任务模块调整

Leo 2 年之前
父节点
当前提交
0efe090410

+ 29 - 8
src/component/CronSelect.jsx

@@ -1,5 +1,4 @@
-import { Input, Radio, Select, Space } from 'antd'
-import { set } from 'lodash'
+import { Input, Radio, Select, Space, Tooltip } from 'antd'
 import React, {
   useState,
   useImperativeHandle,
@@ -7,6 +6,7 @@ import React, {
   useEffect,
 } from 'react'
 import styled from 'styled-components'
+import { QuestionCircleOutlined } from '@ant-design/icons'
 
 const CronWrapper = styled.div`
   .time_select {
@@ -36,7 +36,8 @@ const CronSelect = ({ cron_data }, ref) => {
 
   useEffect(() => {
     const cron_type = cron_data?.cron_select_type
-    let keys = Object.keys(cron_data)
+    let keys = []
+    if (![null, undefined].includes(cron_type)) keys = Object.keys(cron_data)
     setCronType(String(cron_type))
     switch (cron_type) {
       case 0:
@@ -254,12 +255,32 @@ const CronSelect = ({ cron_data }, ref) => {
     </Space>
   )
 
+  const cronExample = (
+    <Space direction="vertical">
+      <p>格式:分 时 天 月 周</p>
+      <p>0 * * * * (每小时)</p>
+      <p>0 0 * * * (每天)</p>
+      <p>0 0 * * 1(每周)</p>
+      <p>0 0 1 * *(每月)</p>
+      <p>*/15 * * * *(每隔15分钟执行一次)</p>
+      <p>* *12 * * *(每隔12小时执行一次)</p>
+      <p>15 10 16 * *(每月16日10:15分运行)</p>
+    </Space>
+  )
+
   const cronSet = (
-    <Input
-      placeholder="cron表达式"
-      value={cronVal}
-      onChange={onChangeCronVal}
-    />
+    <Space>
+      <Input
+        placeholder="cron表达式"
+        value={cronVal}
+        onChange={onChangeCronVal}
+      />
+      <Tooltip placement="right" title={cronExample}>
+        <QuestionCircleOutlined
+          style={{ color: '#d9d9d9', fontSize: '16px' }}
+        />
+      </Tooltip>
+    </Space>
   )
 
   return (

+ 1 - 1
src/module/taskmgmt/component/TaskCreaterView.jsx

@@ -39,7 +39,7 @@ const layout = {
     span: 2,
   },
   wrapperCol: {
-    span: 8,
+    span: 10,
   },
 }
 

+ 2 - 8
src/module/taskmgmt/component/TaskForm.jsx

@@ -1,10 +1,4 @@
-import React, {
-  useState,
-  useEffect,
-  useRef,
-  useImperativeHandle,
-  forwardRef,
-} from 'react'
+import React, { useState, useEffect, useRef, forwardRef } from 'react'
 import styled from 'styled-components'
 import {
   Form,
@@ -40,7 +34,7 @@ const layout = {
     span: 2,
   },
   wrapperCol: {
-    span: 8,
+    span: 10,
   },
 }
 

+ 8 - 10
src/module/taskmgmt/page/TaskMgmtView.jsx

@@ -21,6 +21,7 @@ import {
   deleteJmJob,
   executeJmJob,
   updateJmJobStatus,
+  getCronNext,
 } from '../services'
 import copy from 'copy-to-clipboard'
 
@@ -86,17 +87,14 @@ const TaskMgmtView = () => {
     navigate('/task-log', { state: { id } })
   }
 
-  const cronNextDay = val => {
+  const cronNextDay = async val => {
     if (val.executionCycle !== '执行一次') {
-      console.log('val')
-      const list = [
-        '2022-09-29 12:00',
-        '2022-09-29 14:00',
-        '2022-09-29 16:00',
-        '2022-09-29 18:00',
-        '2022-09-29 20:00',
-      ]
-      setDayData(list)
+      const { data } = await getCronNext(val.executionCycle)
+      if (data.code === 200) {
+        setDayData(data.data)
+      } else {
+        message.error(data.msg)
+      }
     }
   }
 

+ 7 - 0
src/module/taskmgmt/services/index.js

@@ -71,3 +71,10 @@ export const deleteTag = params =>
     url: `/jpt/constants/?type=${params.type}&value=${params.val}`,
     method: 'delete',
   })
+
+//cron近5天
+export const getCronNext = params =>
+  request({
+    url: `/jpt/jm_job_info/cron_next_execute?cron_expression=${params}`,
+    method: 'get',
+  })