CommentAdd.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!-- eslint-disable vue/no-mutating-props -->
  2. <template>
  3. <el-dialog
  4. title="评论"
  5. :visible.sync="selfVisible"
  6. width="500px"
  7. @close="close"
  8. @open="open">
  9. <el-form ref="form" label-width="80px" :model="form" :rules="rules">
  10. <el-row>
  11. <el-col :span="24">
  12. <el-form-item label="评论" prop="content">
  13. <el-input
  14. v-model="form.content"
  15. placeholder="请输入评论"
  16. type="textarea" />
  17. </el-form-item>
  18. </el-col>
  19. </el-row>
  20. </el-form>
  21. <template #footer>
  22. <!-- eslint-disable-next-line vue/no-mutating-props -->
  23. <el-button @click="selfVisible = false">取 消</el-button>
  24. <el-button type="primary" @click="save">确 定</el-button>
  25. </template>
  26. </el-dialog>
  27. </template>
  28. <script>
  29. import taskApi from '@/api/plat/task'
  30. export default {
  31. name: 'CommentAdd',
  32. props: {
  33. selfVisible: {
  34. type: Boolean,
  35. default: false,
  36. },
  37. theTask: {
  38. type: Object,
  39. // eslint-disable-next-line vue/require-valid-default-prop
  40. default: {},
  41. },
  42. doRefresh: {
  43. type: Function,
  44. default: undefined,
  45. },
  46. },
  47. data() {
  48. return {
  49. // 新增数据表单
  50. form: {
  51. taskId: '',
  52. content: '',
  53. remark: '',
  54. },
  55. // 校验规则
  56. rules: {
  57. content: [
  58. { required: true, message: '评论不能为空', trigger: 'blur' },
  59. ],
  60. },
  61. }
  62. },
  63. watch: {
  64. selfVisible(val) {
  65. this.$emit('update:selfVisible', val)
  66. },
  67. },
  68. methods: {
  69. // 打开弹窗
  70. open() {
  71. this.getData()
  72. if (this.$refs['form']) {
  73. this.$refs['form'].resetFields()
  74. }
  75. this.form.taskId = ''
  76. this.form.content = ''
  77. this.form.remark = ''
  78. },
  79. // 关闭弹窗
  80. close() {
  81. if (this.$refs['form']) {
  82. this.$refs['form'].resetFields()
  83. }
  84. // eslint-disable-next-line vue/no-mutating-props
  85. this.selfVisible = false
  86. },
  87. // 保存数据
  88. save() {
  89. this.$refs['form'].validate(async (valid) => {
  90. if (valid) {
  91. // eslint-disable-next-line vue/no-mutating-props
  92. this.selfVisible = false
  93. this.form.taskId = this.theTask.id
  94. const { msg } = await taskApi.createTaskComment(this.form)
  95. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  96. if (this.doRefresh) {
  97. this.doRefresh()
  98. }
  99. }
  100. })
  101. },
  102. },
  103. }
  104. </script>