Blame view

ant-design-vue-jeecg/src/views/system/modules/QuartzJobModal.vue 4.2 KB
肖超群 authored
1
2
3
4
5
6
7
8
9
<template>
  <a-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    @ok="handleOk"
    @cancel="handleCancel"
    okText="保存并安排任务"
谭毅彬 authored
10
    :cancelText="$t('button.close')">
肖超群 authored
11
12
13
14

    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
15
16
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('monitor.scheduledTaskClassName')" prop="jobClassName" hasFeedback>
          <a-input :placeholder="$t('monitor.inputScheduledTaskClassName')" v-model="model.jobClassName"/>
肖超群 authored
17
        </a-form-model-item>
18
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('monitor.cronExpression')" prop="cronExpression">
肖超群 authored
19
          <!-- <j-cron v-model="model.cronExpression"/>-->
肖超群 authored
20
          <j-easy-cron v-model="model.cronExpression"/>
肖超群 authored
21
        </a-form-model-item>
22
23
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('monitor.parameter')" prop="parameter">
          <a-textarea :placeholder="$t('monitor.inputParam')" :rows="5" v-model="model.parameter"/>
肖超群 authored
24
        </a-form-model-item>
25
26
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('monitor.description')" prop="description">
          <a-textarea :placeholder="$t('monitor.inputDescription')" :rows="3" v-model="model.description"/>
肖超群 authored
27
        </a-form-model-item>
28
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('monitor.status')" prop="status">
肖超群 authored
29
30
31
32
33
34
35
36
          <j-dict-select-tag type="radioButton" v-model="model.status" dictCode="quartz_status"/>
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </a-modal>
</template>

<script>
肖超群 authored
37
38
39
import {httpAction} from '@/api/manage'
// import JCron from "@/components/jeecg/JCron";
import cronValidator from "@/components/jeecg/JEasyCron/validator";
40
import { translateResultMessage } from '@/api/api'
肖超群 authored
41
肖超群 authored
42
43
44
45
46
47
48
export default {
  name: "QuartzJobModal",
  components: {
    // JCron,
  },
  data() {
    return {
谭毅彬 authored
49
      title: this.$t('system.options'),
肖超群 authored
50
51
52
53
54
55
      buttonStyle: 'solid',
      visible: false,
      model: {},
      labelCol: {
        xs: {span: 24},
        sm: {span: 5},
肖超群 authored
56
      },
肖超群 authored
57
58
59
      wrapperCol: {
        xs: {span: 24},
        sm: {span: 16},
肖超群 authored
60
      },
肖超群 authored
61
62
63
      cron: {
        label: '',
        value: ''
肖超群 authored
64
      },
肖超群 authored
65
66
67
      confirmLoading: false,
      validatorRules: {
        cronExpression: [
68
69
          // {required: true, message: '请输入cron表达式!'},
          {required: true, message: this.$t('monitor.inputCronExpression')},
肖超群 authored
70
71
          {validator: cronValidator,}
        ],
72
        jobClassName: [{required: true, message: this.$t('monitor.inputScheduledTaskClassName')}],
肖超群 authored
73
      },
肖超群 authored
74
75
76
      url: {
        add: "/sys/quartzJob/add",
        edit: "/sys/quartzJob/edit",
肖超群 authored
77
78
      },
    }
肖超群 authored
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
  },
  created() {
  },
  methods: {
    add() {
      // 统一设置默认值
      this.edit({
        cronExpression: '* * * * * ? *',
        status: 0,
      })
    },
    edit(record) {
      this.visible = true;
      this.$nextTick(() => {
        this.$refs.form.resetFields()
        this.model = Object.assign({}, record)
      })
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleOk() {
      const that = this;
      // 触发表单验证
      this.$refs.form.validate((ok, err) => {
        if (ok) {
          that.confirmLoading = true;
          let httpurl = '';
          let method = '';
          if (!this.model.id) {
            httpurl += this.url.add;
            method = 'post';
          } else {
            httpurl += this.url.edit;
            method = 'put';
          }

          console.log('提交参数', this.model)
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
120
              that.$message.success(translateResultMessage(res, res.message))
肖超群 authored
121
122
123
              that.$emit('ok');
              that.close();
            } else {
124
              that.$message.warning(translateResultMessage(res, res.message))
肖超群 authored
125
126
127
128
129
130
131
132
133
134
135
136
            }
          }).finally(() => {
            that.confirmLoading = false;
          })

        }
      })
    },
    handleCancel() {
      this.close()
    },
肖超群 authored
137
  }
肖超群 authored
138
}
肖超群 authored
139
140
141
142
143
</script>

<style scoped>

</style>