Blame view

src/views/system/components/addTask.vue 4.13 KB
任超 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
<template>
  <!-- 编辑 -->
  <dialogBox ref="addTask" width="60%" @submitForm="handleSubmit" :closed="true" @closeDialog="handleClose"
    customClass="editValidRule" multiple title="新增定时任务">
    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
      <el-row :gutter="20">
        <el-col :span="12">
          <el-form-item label="任务名" prop="job_name">
            <el-input v-model="ruleForm.job_name" placeholder="任务名"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="任务分组" prop="job_group">
            <el-input v-model="ruleForm.job_group" placeholder="任务分组"></el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="12">
          <el-form-item label="cron表达式" prop="cron_expression">
            <el-input v-model="ruleForm.cron_expression" placeholder="cron表达式"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="任务类名" prop="bean_class">
            <el-input v-model="ruleForm.bean_class" placeholder="任务执行时调用哪个类的方法 包名+类名"></el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="24">
          <el-form-item label="任务描述" prop="description">
            <el-input v-model="ruleForm.description" placeholder="任务描述"></el-input>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <message-tips :message="message" ref="msg" />
  </dialogBox>
</template>

<script>
import system from '@/api/system.js'
export default {
  props: {
    taskData: {
      type: Object,
      default: null
    }
  },
  data () {
    return {
      ruleForm: {
        job_name: '',
        job_group: '',
        cron_expression: '',
        bean_class: '',
        description: ''
      },
      rules: {
        job_name: [
          { required: true, message: '任务名', trigger: 'blur' }
        ],
        job_group: [
          { required: true, message: '分组', trigger: 'blur' }
        ],
        cron_expression: [
          { required: true, message: 'cron表达式', trigger: 'blur' }
        ],
        bean_class: [
          { required: true, message: '任务类名', trigger: 'blur' }
        ],
        description: [
          { required: true, message: '任务描述', trigger: 'blur' }
        ],
      },
      message: ''
    }
  },
  methods: {
    isShow () {
      this.$refs.addTask.isShow()
      setTimeout(() => {
        if (this.taskData) {
          this.ruleForm = _.cloneDeep(this.taskData)
        }
      }, 0)
    },
    handleSubmit () {
      let _this = this
      this.$refs['ruleForm'].validate(async (valid) => {
        if (valid) {
          if (!_this.taskData) {
            try {
              let res = await system.sjsbTaskSave(_this.ruleForm)
              if (res.code == 200) {
                _this.loading = false
                _this.$message({
                  message: res.message,
                  type: 'success'
                })
                _this.handleClose()
                _this.$parent.featchData()
              }
            } catch (error) {
              _this.message = error
              _this.$refs.msg.messageShow()
            }
          } else {
            try {
              let res = await system.updateCron(_this.ruleForm)
              if (res.code == 200) {
                _this.$message({
                  message: res.message,
                  type: 'success'
                })
                _this.handleClose()
                _this.$parent.featchData()
              }
            } catch (error) {
              _this.message = error
              _this.$refs.msg.messageShow()
            }
          }
        } else {
          this.$message('请检查表单完整性')
          return false;
        }
      })
    },
    handleClose () {
      this.$refs.addTask.isHide()
      this.$refs['ruleForm'].resetFields()
    }
  }
}
</script>
<style rel="stylesheet/less" lang="less" scoped>

</style>