detail.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div class='app-container'>
  3. <el-form :model="form" ref="form" :rules="rules" label-width="100px">
  4. <el-form-item label="用户Id:">
  5. <span>{{ form.uid }}</span>
  6. </el-form-item>
  7. <el-form-item label="手机号:">
  8. <span>{{ form.phone }}</span>
  9. </el-form-item>
  10. <el-form-item label="图片:">
  11. <el-image v-for="item in form.url" :key="item" :src="item" :preview-src-list="form.url">
  12. <span slot="error" />
  13. </el-image>
  14. </el-form-item>
  15. <el-form-item label="反馈类型:">
  16. <span>{{ form.type }}</span>
  17. </el-form-item>
  18. <el-form-item label="反馈内容:">
  19. <span>{{ form.content }}</span>
  20. </el-form-item>
  21. <el-form-item v-if="reply" label="回复:" prop="reply" style="width: 500px;">
  22. <el-input v-model="form.reply" type="textarea" :readonly="disabled" :autosize="{ minRows: 5, maxRows: 20 }"
  23. placeholder="请输入回复" />
  24. </el-form-item>
  25. </el-form>
  26. <div class="form-btn">
  27. <el-button @click="close">取消</el-button>
  28. <el-button v-if="!disabled" type="primary" @click="getSubmit">确定</el-button>
  29. </div>
  30. </div>
  31. </template>
  32. <script>
  33. import { detail, submit } from '@/api/operation/feedbacklist'
  34. export default {
  35. data() {
  36. return {
  37. // 表单
  38. form: {
  39. id: this.$route.query.id
  40. },
  41. // 校验
  42. rules: {
  43. reply: [{
  44. required: true, message: '请输入回复', trigger: 'blur'
  45. }]
  46. },
  47. // 只读
  48. disabled: this.$route.query.boolean ? Boolean(this.$route.query.boolean) : false
  49. }
  50. },
  51. computed: {
  52. reply() {
  53. return this.disabled ? this.form.reply ? true : false : true
  54. }
  55. },
  56. mounted() {
  57. this.getDetail()
  58. },
  59. methods: {
  60. // 详情
  61. getDetail() {
  62. detail(this.form.id).then(res => {
  63. if (res.code === 0) {
  64. this.form = res.data
  65. this.form.url = res.data.url.split(',')
  66. }
  67. })
  68. },
  69. // 取消
  70. close() {
  71. this.$tab.closeOpenPage("/operation/feedback/feedbacklist");
  72. },
  73. // 提交
  74. getSubmit() {
  75. this.$refs.form.validate((valid) => {
  76. if (valid) {
  77. submit(this.form).then(res => {
  78. if (res.code === 0) {
  79. this.$message.success('提交成功!')
  80. this.close()
  81. }
  82. })
  83. } else {
  84. return false
  85. }
  86. })
  87. }
  88. }
  89. }
  90. </script>
  91. <style lang="scss" scoped>
  92. .el-image {
  93. width: 200px;
  94. margin-right: 10px;
  95. }
  96. </style>