detail.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <template>
  2. <view class="feedback-detail" :style="viewColor">
  3. <view class="hd">
  4. <view class="item">
  5. <view class="label">反馈类型</view>
  6. <view class="txt">{{detail.category}}</view>
  7. </view>
  8. <view class="item">
  9. <view class="label">问题分类</view>
  10. <view class="txt">{{detail.type}}</view>
  11. </view>
  12. <view class="item">
  13. <view class="label">姓名</view>
  14. <view class="txt">{{detail.realname}}</view>
  15. </view>
  16. <view class="item">
  17. <view class="label">电话/邮箱</view>
  18. <view class="txt">{{detail.contact}}</view>
  19. </view>
  20. <view class="item" v-if="detail.reply">
  21. <view class="label">回复状态</view>
  22. <view class="txt color">已回复</view>
  23. </view>
  24. </view>
  25. <view class="content">
  26. <view class="con">{{detail.content}}</view>
  27. <view class="img-box" v-if="detail">
  28. <image class="img-list" v-for="(item,index) in detail.images" :key="index" :src="item" @click="clickImg(item)" mode="scaleToFill"></image>
  29. </view>
  30. </view>
  31. <view class="content" v-if="detail.reply">
  32. <view class="reply">
  33. <view class="reply-left">
  34. <image :src="`${domain}/static/images/gly.png`" mode=""></image>
  35. </view>
  36. <view class="reply-right">
  37. <view class="clearfix reply-right-top">
  38. <view class="pull-left">管理员</view>
  39. <view class="pull-right">{{detail.update_time}}</view>
  40. </view>
  41. <view class="">{{detail.reply}}</view>
  42. </view>
  43. </view>
  44. </view>
  45. </view>
  46. </template>
  47. <script>
  48. // +----------------------------------------------------------------------
  49. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  50. // +----------------------------------------------------------------------
  51. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  52. // +----------------------------------------------------------------------
  53. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  54. // +----------------------------------------------------------------------i
  55. // | Author: CRMEB Team <admin@crmeb.com>
  56. // +----------------------------------------------------------------------
  57. import { HTTP_REQUEST_URL } from '@/config/app';
  58. import { feedbackDetail } from '@/api/user.js'
  59. import { mapGetters } from "vuex";
  60. export default{
  61. computed: mapGetters(['viewColor']),
  62. data(){
  63. return {
  64. con:'',
  65. id:'',
  66. detail:{},
  67. domain: HTTP_REQUEST_URL,
  68. }
  69. },
  70. onLoad(options) {
  71. this.id = options.id
  72. feedbackDetail(options.id).then(res=>{
  73. this.detail = res.data
  74. })
  75. },
  76. methods:{
  77. clickImg(item) {
  78. wx.previewImage({
  79. urls: this.detail.images,
  80. current: item,
  81. success: function(res) {},
  82. fail: function(res) {},
  83. complete: function(res) {},
  84. })
  85. }
  86. }
  87. }
  88. </script>
  89. <style lang="scss">
  90. .feedback-detail{
  91. .hd{
  92. margin: 20rpx;
  93. padding: 30rpx;
  94. border-radius: 10rpx;
  95. background-color: #fff;
  96. .item{
  97. display: flex;
  98. justify-content: space-between;
  99. margin-bottom: 30rpx;
  100. font-size: 28rpx;
  101. color: #282828;
  102. &:last-child{
  103. margin-bottom: 0;
  104. }
  105. .txt{
  106. flex: 1;
  107. margin-left: 50rpx;
  108. text-align: right;
  109. color: #868686;
  110. }
  111. .color{
  112. color: var(--view-theme);
  113. }
  114. }
  115. }
  116. .content{
  117. position: relative;
  118. margin: 20rpx;
  119. padding: 30rpx;
  120. border-radius: 10rpx;
  121. line-height: 1.5;
  122. background-color: #fff;
  123. }
  124. .img-box{
  125. display: flex;
  126. flex-wrap: wrap;
  127. justify-content: space-between;
  128. .img-list{
  129. border-radius: 10rpx;
  130. margin-top: 20rpx;
  131. width: 210rpx;
  132. height: 210rpx;
  133. }
  134. }
  135. .reply{
  136. display: flex;
  137. .reply-left{
  138. width: 70rpx;
  139. uni-image, image{
  140. width: 50rpx;
  141. height: 50rpx;
  142. border-radius: 50%;
  143. }
  144. }
  145. .reply-right{
  146. width: calc( 100% - 70rpx );
  147. color: #282828;
  148. .reply-right-top{
  149. color: #999999;
  150. margin-bottom: 14rpx;
  151. }
  152. }
  153. }
  154. }
  155. </style>