addDialog.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <ele-modal
  3. custom-class="ele-dialog-form long-dialog-form"
  4. :centered="true"
  5. :visible.sync="addRepairNotesDialog"
  6. title="评价"
  7. :close-on-click-modal="false"
  8. width="800px"
  9. :maxable="true"
  10. append-to-body
  11. @close="handleClose"
  12. >
  13. <el-form
  14. ref="form"
  15. :model="form"
  16. :rules="rules"
  17. label-width="100px"
  18. class="create-form"
  19. >
  20. <el-form-item label="服务态度" prop="attitudeRating">
  21. <div class="block">
  22. <el-rate v-model="form.attitudeRating" show-text :texts="texts">
  23. </el-rate>
  24. </div>
  25. </el-form-item>
  26. <el-form-item label="响应速度" prop="responseSpeed">
  27. <div class="block">
  28. <el-rate v-model="form.responseSpeed" show-text :texts="texts">
  29. </el-rate>
  30. </div>
  31. </el-form-item>
  32. <el-form-item label="整体满意度" prop="serviceRating">
  33. <div class="block">
  34. <el-rate v-model="form.serviceRating" show-text :texts="texts">
  35. </el-rate>
  36. </div>
  37. </el-form-item>
  38. <el-form-item label="评价" prop="comment">
  39. <el-input
  40. type="textarea"
  41. placeholder="请输入内容"
  42. v-model="form.comment"
  43. :disabled="type == 'view'"
  44. >
  45. </el-input>
  46. </el-form-item>
  47. </el-form>
  48. <div slot="footer" class="footer">
  49. <el-button type="primary" @click="submitAdd">确认</el-button>
  50. <el-button @click="handleClose">返回</el-button>
  51. </div>
  52. </ele-modal>
  53. </template>
  54. <script>
  55. import { evaluateSave } from '@/api/salesServiceManagement/index';
  56. import fileMain from '@/components/addDoc/index.vue';
  57. const def = {
  58. attachmen: [],
  59. attitudeRating: '',
  60. code: '',
  61. comment: '',
  62. isAnonymous: '',
  63. responseSpeed: '',
  64. serviceRating: '',
  65. workId: ''
  66. };
  67. export default {
  68. components: {},
  69. data() {
  70. return {
  71. texts: ['非常不满意', '不满意', '一般', '满意', '非常满意'],
  72. rules: {
  73. attitudeRating: [
  74. { required: true, message: '请选择服务态度', trigger: 'change' }
  75. ],
  76. responseSpeed: [
  77. { required: true, message: '请选择响应速度', trigger: 'change' }
  78. ],
  79. serviceRating: [
  80. { required: true, message: '请选择服务评分', trigger: 'change' }
  81. ]
  82. },
  83. title: '新增',
  84. addRepairNotesDialog: false,
  85. type: 'add',
  86. form: { ...def }
  87. };
  88. },
  89. created() {},
  90. methods: {
  91. open(row, type) {
  92. this.addRepairNotesDialog = true;
  93. this.type = type;
  94. this.title = type == 'add' ? '新增' : '详情';
  95. if (type != 'add') {
  96. this.getDetail(row.id);
  97. } else {
  98. this.form.workId = row.id;
  99. }
  100. },
  101. async getDetail(id) {
  102. const res = await getSalesDemandById(id);
  103. this.form = res;
  104. },
  105. handleClose() {
  106. this.addRepairNotesDialog = false;
  107. this.form = { ...def };
  108. },
  109. async submitAdd() {
  110. alert(1)
  111. try {
  112. alert(1)
  113. let valid = await this.$refs.form.validate();
  114. console.log(this.form);
  115. return;
  116. const res = await evaluateSave(this.form);
  117. if (res) {
  118. this.$message.success('操作成功!');
  119. this.$emit('refresh');
  120. this.handleClose();
  121. }
  122. } catch (error) {}
  123. }
  124. }
  125. };
  126. </script>
  127. <style lang="scss" scoped>
  128. .block {
  129. height: 36px;
  130. display: flex;
  131. align-items: center;
  132. }
  133. </style>