学员端小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
4.2 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <view class="consultItem">
  3. <view class="top_row">
  4. <view class="flex">
  5. <view class="tag"> {{ item.complainDO.userType==1?'投诉驾校':'投诉教练'}}</view>
  6. <view class="tag">{{ item.complainType }}</view>
  7. </view>
  8. <view class="status">{{dealStatus[item.complainDO.dealStatus]}}</view>
  9. </view>
  10. <view class="target">
  11. <view class="row">
  12. <view class="leftLab">
  13. <view class="icon">
  14. <image src="@/static/images/car/ic_jiaxiao.png" mode=""></image>
  15. </view>
  16. <view class="lab">驾校名称</view>
  17. </view>
  18. <view class="name towRowText">{{ item.complainDO.schoolName }}</view>
  19. </view>
  20. <view class="row" v-if="item.complainDO.coachName">
  21. <view class="leftLab">
  22. <view class="icon">
  23. <image src="@/static/images/index/edit.png" mode=""></image>
  24. </view>
  25. <view class="lab">教练名称</view>
  26. </view>
  27. <view class="name">{{ item.complainDO.coachName }}</view>
  28. </view>
  29. </view>
  30. <view class="content">
  31. <view class="lab">问题描述</view>
  32. <view class="text">{{ item.complainDO.content }}</view>
  33. </view>
  34. <view class="content" v-if="item.complainReplayDOS&&item.complainReplayDOS.length">
  35. <view class="lab">回复内容</view>
  36. <view class="text" v-for="(item2,index2) in item.complainReplayDOS" :key="index2">{{ item2.replyContent }}</view>
  37. </view>
  38. <view class="border_bottom">
  39. <view class="dateBox">
  40. <view class="date">创建时间{{ $u.date(item.createTime, 'yyyy-mm-dd')}}</view>
  41. <view class="date" v-if="item.complainDO.dealStatus==2&&item.complainReplayDOS.length">处理时间{{ $u.date(item.complainReplayDOS[0].updateTime, 'yyyy-mm-dd')}} </view>
  42. </view>
  43. <view class="close_btn" @click="closeFn(item.complainDO.id)" v-if="item.complainDO.dealStatus==1">关闭</view>
  44. </view>
  45. </view>
  46. </template>
  47. <script>
  48. import { consultationClosed } from '@/config/api.js'
  49. export default {
  50. props: ['item'],
  51. data() {
  52. return {
  53. dealStatus: ['','未处理', '已处理', '已关闭' ],//处理状态:1、未处理,2、已处理,3、已关闭
  54. }
  55. },
  56. methods: {
  57. closeFn(id) {
  58. uni.showModal({
  59. content:'确定要关闭吗?',
  60. success: async (res)=> {
  61. if (res.confirm) {
  62. const result = await consultationClosed({id: this.item.complainDO.id})
  63. this.$u.toast('关闭成功')
  64. this.item.complainDO.dealStatus = 3
  65. this.$emit('closeFn')
  66. } else if (res.cancel) {
  67. console.log('用户点击取消');
  68. }
  69. }
  70. })
  71. }
  72. }
  73. }
  74. </script>
  75. <style lang="scss" scoped>
  76. .consultItem {
  77. width: 100%;
  78. .target {
  79. border-bottom: 2rpx dashed #E8E9EC;
  80. }
  81. .row {
  82. display: flex;
  83. align-items: flex-start;
  84. padding: 24rpx 0;
  85. .leftLab {
  86. display: flex;
  87. align-items: center;
  88. .icon {
  89. width: 30rpx;
  90. height: 30rpx;
  91. }
  92. .lab {
  93. // margin-left: 10rpx;
  94. font-size: 28rpx;
  95. color: #ADADAD;
  96. white-space: nowrap;
  97. }
  98. }
  99. .name {
  100. font-size: 28rpx;
  101. color: #333;
  102. width: 0;
  103. flex: 1;
  104. padding-left: 15rpx;
  105. }
  106. }
  107. .top_row {
  108. display: flex;
  109. width: 100%;
  110. height: 116rpx;
  111. border-bottom: 2rpx dashed #E8E9EC;
  112. justify-content: space-between;
  113. align-items: center;
  114. .tag {
  115. width: 176rpx;
  116. height: 60rpx;
  117. background: rgba(38,144,12,0.1);
  118. border-radius: 8rpx;
  119. text-align: center;
  120. line-height: 60rpx;
  121. font-size: 28rpx;
  122. color: #0D9269;
  123. margin-right: 24rpx;
  124. }
  125. .status {
  126. font-size: 28rpx;
  127. color: $themC;
  128. }
  129. }
  130. .content {
  131. padding: 24rpx 0 20rpx 0;
  132. font-size: 28rpx;
  133. .lab {
  134. color: #ADADAD;
  135. margin-bottom: 4rpx;
  136. }
  137. .text {
  138. }
  139. }
  140. .border_bottom {
  141. border-top: 2rpx dashed #E8E9EC;
  142. display: flex;
  143. align-items: center;
  144. justify-content: space-between;
  145. padding: 30rpx 0 16rpx 0;
  146. .dateBox {
  147. .date {
  148. font-size: 28rpx;
  149. color: #ADADAD;
  150. margin-bottom: 16rpx;
  151. }
  152. }
  153. .close_btn {
  154. width: 140rpx;
  155. height: 60rpx;
  156. background: #FFFFFF;
  157. border-radius: 8rpx;
  158. border: 2rpx solid #E8E9EC;
  159. text-align: center;
  160. line-height: 60rpx;
  161. color: #ADADAD;
  162. font-size: 28rpx;
  163. }
  164. }
  165. }
  166. </style>