TryFeedback.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template>
  2. <el-dialog title="试用反馈" :visible.sync="dialogFormVisible" width="600px" @close="close">
  3. <el-form ref="form" label-position="top" :model="form" :rules="rules">
  4. <el-row :gutter="20">
  5. <el-col :span="24">
  6. <el-form-item label="反馈时间" prop="feedbackTrialTime">
  7. <el-date-picker
  8. v-model="form.feedbackTrialTime"
  9. placeholder="选择反馈时间"
  10. style="width: 100%"
  11. type="date"
  12. value-format="yyyy-MM-dd" />
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="24">
  16. <el-form-item :label="summarizeLabel" prop="feedbackTrialContent">
  17. <el-input
  18. v-model="form.feedbackTrialContent"
  19. :placeholder="summarizeLabel"
  20. :rows="5"
  21. show-word-limit
  22. type="textarea" />
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="24">
  26. <el-form-item label="讲解纪要补充" prop="feedbackTrialDist">
  27. <el-input
  28. v-model="form.feedbackTrialDist"
  29. placeholder="讲解纪要补充"
  30. :rows="5"
  31. show-word-limit
  32. type="textarea" />
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="24">
  36. <el-form-item :label="nextPlanLabel" prop="feedbackTrialPlan">
  37. <el-input
  38. v-model="form.feedbackTrialPlan"
  39. :placeholder="nextPlanLabel"
  40. :rows="5"
  41. show-word-limit
  42. type="textarea" />
  43. </el-form-item>
  44. </el-col>
  45. </el-row>
  46. </el-form>
  47. <template #footer>
  48. <el-button @click="close">取 消</el-button>
  49. <el-button type="primary" @click="save">确 定</el-button>
  50. </template>
  51. </el-dialog>
  52. </template>
  53. <script>
  54. import workOrderApi from '@/api/work/index'
  55. export default {
  56. name: 'WorkOrderFeedback',
  57. data() {
  58. return {
  59. workType: '',
  60. fbType: '',
  61. form: {
  62. feedbackTrialTime: '',
  63. feedbackTrialContent: '',
  64. feedbackTrialDist: '',
  65. feedbackTrialPlan: '',
  66. workOrderId: '',
  67. },
  68. rules: {
  69. feedbackTrialTime: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  70. feedbackTrialContent: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  71. feedbackTrialDist: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  72. feedbackTrialPlan: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  73. },
  74. feedbackTrialTypeObj: {
  75. start: '10',
  76. process: '20',
  77. summarize: '30',
  78. },
  79. dialogFormVisible: false,
  80. }
  81. },
  82. computed: {
  83. summarizeLabel() {
  84. let str = ''
  85. switch (this.fbType) {
  86. case 'start':
  87. str = this.workType == '产品试用申请(软件)' ? '部署安装总结' : '会议总结'
  88. break
  89. case 'process':
  90. str = '过程问题'
  91. break
  92. case 'summarize':
  93. str = '使用总结'
  94. break
  95. }
  96. return str
  97. },
  98. nextPlanLabel() {
  99. let str = ''
  100. switch (this.fbType) {
  101. case 'start':
  102. str = '跟进计划'
  103. break
  104. case 'process':
  105. str = '跟进计划'
  106. break
  107. case 'summarize':
  108. str = '下一步计划'
  109. break
  110. }
  111. return str
  112. },
  113. },
  114. mounted() {},
  115. methods: {
  116. open(row, type) {
  117. console.log(row, type)
  118. this.form.workOrderId = row.id
  119. this.workType = row.orderTypeName
  120. this.fbType = type
  121. this.dialogFormVisible = true
  122. },
  123. close() {
  124. this.$refs['form'].resetFields()
  125. this.form = this.$options.data().form
  126. this.dialogFormVisible = false
  127. },
  128. save() {
  129. this.$refs['form'].validate(async (valid) => {
  130. if (valid) {
  131. let params = Object.assign(this.form)
  132. params.feedbackTrialType = this.feedbackTrialTypeObj[this.fbType]
  133. const { msg } = await workOrderApi.feedbackTrail(params)
  134. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  135. this.$emit('update-detail')
  136. this.close()
  137. }
  138. })
  139. },
  140. },
  141. }
  142. </script>