Trigger.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="dialogVisible"
  5. width="30%"
  6. >
  7. <div>
  8. <el-form ref="ruleForm" :model="formData" :rules="rules" label-width="100px">
  9. <el-form-item label="名称">
  10. <el-input v-model="formData.triggerTitle" placeholder="输入Trigger名称" />
  11. </el-form-item>
  12. <el-form-item label="Tigger Code">
  13. <el-input v-model="formData.triggerCode" placeholder="Code" />
  14. </el-form-item>
  15. <el-form-item label="Group Code">
  16. <el-input v-model="formData.triggerGroupCode" placeholder="Group Code" />
  17. </el-form-item>
  18. <el-form-item label="Cron">
  19. <el-input v-model="formData.triggerCron" placeholder="Cron" />
  20. </el-form-item>
  21. <el-form-item label="说明">
  22. <el-input v-model="formData.triggerDesc" placeholder="输入说明" />
  23. </el-form-item>
  24. </el-form>
  25. </div>
  26. <span slot="footer" class="dialog-footer">
  27. <el-button @click="dialogVisible = false">取消</el-button>
  28. <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
  29. </span>
  30. </el-dialog>
  31. </template>
  32. <script>
  33. import { ACTION_ADD, ACTION_UPDATE } from '@/utils/actionType'
  34. import { getJobTriggerById, createJobTrigger, updateJobTrigger } from '@/api/system/jobTriggerApi'
  35. export default {
  36. props: {
  37. title: {
  38. type: String,
  39. default: ''
  40. }
  41. },
  42. data() {
  43. return {
  44. dialogVisible: false,
  45. actionType: '',
  46. formData: {
  47. triggerId: '',
  48. triggerTitle: '',
  49. triggerCode: '',
  50. triggerGroupCode: '',
  51. triggerCron: '',
  52. triggerDesc: ''
  53. },
  54. rules: {
  55. triggerTitle: [
  56. { required: true, message: '请填写Job名称', trigger: 'blur' }
  57. ]
  58. }
  59. }
  60. },
  61. methods: {
  62. formSuccess() {
  63. this.$emit('formSuccess')
  64. },
  65. // Show Add Model
  66. showAddModel() {
  67. this.actionType = ACTION_ADD
  68. this.resetFormData()
  69. this.dialogVisible = true
  70. },
  71. // Show Edit Model
  72. showEditModel(triggerId) {
  73. this.actionType = ACTION_UPDATE
  74. this.resetFormData()
  75. this.dialogVisible = true
  76. getJobTriggerById(triggerId).then((resp) => {
  77. const { data } = resp
  78. this.formData = data
  79. }).catch((error) => {
  80. console.log(error)
  81. })
  82. },
  83. // Reset Form Data
  84. resetFormData() {
  85. this.formData = {
  86. triggerId: '',
  87. triggerTitle: '',
  88. triggerCode: '',
  89. triggerGroupCode: '',
  90. triggerCron: '',
  91. triggerDesc: ''
  92. }
  93. },
  94. // Submit Form
  95. submitForm(formName) {
  96. this.$refs[formName].validate((valid) => {
  97. if (valid) {
  98. this.handleActionCommand()
  99. } else {
  100. console.log('error submit!!')
  101. return false
  102. }
  103. })
  104. },
  105. // Handle ACTION Command
  106. handleActionCommand() {
  107. const actionType = this.actionType
  108. switch (actionType) {
  109. // Action: ADD
  110. case ACTION_ADD:
  111. createJobTrigger(this.formData).then((resp) => {
  112. const { msg } = resp
  113. this.dialogVisible = false
  114. this.formSuccess()
  115. this.$message.success(msg)
  116. }).catch((error) => {
  117. console.log(error)
  118. })
  119. break
  120. // Action: UPDATE
  121. case ACTION_UPDATE:
  122. updateJobTrigger(this.formData).then((resp) => {
  123. const { msg } = resp
  124. this.dialogVisible = false
  125. this.formSuccess()
  126. this.$message.success(msg)
  127. }).catch((error) => {
  128. console.log(error)
  129. })
  130. break
  131. }
  132. }
  133. }
  134. }
  135. </script>
  136. <style lang="scss">
  137. </style>
  138. <style lang="scss" scoped>
  139. </style>