comment.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <template>
  2. <view class="comment">
  3. <!-- <navbar pageName="评论"></navbar> -->
  4. <view class="content">
  5. <view class="text" v-if="title == '商户'">
  6. <textarea v-model="text" placeholder="请输入您的评论" />
  7. </view>
  8. <view class="text" v-else>
  9. <textarea v-model="comment" placeholder="请输入您的评论" />
  10. </view>
  11. <view class="fast">
  12. <view class="title">
  13. <text></text>
  14. 点击下方一键评论
  15. </view>
  16. <view class="tag" v-if="title == '商户'">
  17. <view class="word" v-for="(item,index) in jstag" :key="index" @click="addJsComment(item)">
  18. {{item.value}}
  19. </view>
  20. </view>
  21. <view class="tag" v-else>
  22. <view class="word" v-for="(item,index) in tag" :key="index" @click="addComment(item)">
  23. {{item.value}}
  24. </view>
  25. </view>
  26. <!-- <view class="star" v-if="title !== '商户'">
  27. 评分:
  28. <u-rate :count="count" v-model="nStar" :colors="colors" :icons="icons" inactive-icon="thumb-up"></u-rate>
  29. </view> -->
  30. </view>
  31. <view class="btn_box" v-if="title == '商户'">
  32. <view class="btn" @click="jsSubmit">提交评价</view>
  33. </view>
  34. <view class="btn_box" v-else>
  35. <view class="btn" @click="submit">提交</view>
  36. </view>
  37. </view>
  38. </view>
  39. </template>
  40. <script>
  41. import {
  42. commentOrder,
  43. tCommentUser
  44. } from '../../api/index.js'
  45. export default {
  46. data() {
  47. return {
  48. comment: '',
  49. text: '',
  50. orderNo: '',
  51. jsId: '',
  52. orderId: '',
  53. openId: '',
  54. name: '',
  55. count: 5,
  56. nStar: 0,
  57. title: '',
  58. colors: ['#ffc454', '#ffb409', '#ff9500'],
  59. icons: ['thumb-down-fill', 'thumb-down-fill', 'thumb-up-fill', 'thumb-up-fill'],
  60. jstag: [{
  61. value: '素质高'
  62. },
  63. {
  64. value: '年轻'
  65. },
  66. {
  67. value: '素质低'
  68. },
  69. {
  70. value: '好说话'
  71. },
  72. ],
  73. tag: [{
  74. value: '手法好'
  75. },
  76. {
  77. value: '专业'
  78. },
  79. {
  80. value: '态度好'
  81. },
  82. {
  83. value: '服务很满意'
  84. },
  85. ]
  86. }
  87. },
  88. methods: {
  89. addComment(item) {
  90. this.comment = this.comment + ' ' + ' ' + item.value
  91. },
  92. addJsComment(item) {
  93. this.text = this.text + ' ' + ' ' + item.value
  94. },
  95. submit() {
  96. let data = {}
  97. if (this.comment.trim() == '') {
  98. return
  99. }
  100. data.cText = this.comment.trim(),
  101. data.orderId = this.orderId,
  102. data.cJsid = this.jsId,
  103. data.orderNo = this.orderNo,
  104. data.name = this.name,
  105. data.nStar = this.nStar,
  106. commentOrder(data).then(res => {
  107. if (res.data.code == 200) {
  108. uni.showToast({
  109. title: '评论成功',
  110. })
  111. setTimeout(() => {
  112. // uni.switchTab({
  113. // url: '/pages/order/order'
  114. // })
  115. uni.navigateBack()
  116. }, 1000)
  117. } else {
  118. uni.showToast({
  119. title: res.data.msg,
  120. })
  121. }
  122. })
  123. },
  124. //商户评价客户
  125. jsSubmit() {
  126. let data = {}
  127. data.text = this.text.trim(),
  128. data.jsId = this.jsId,
  129. data.orderNo = this.orderNo,
  130. data.name = this.name,
  131. data.openId = this.openId
  132. tCommentUser(data).then(res => {
  133. if (res.data.code == 200) {
  134. uni.showToast({
  135. title: '评论成功',
  136. })
  137. setTimeout(() => {
  138. uni.navigateBack()
  139. }, 1000)
  140. } else {
  141. uni.showToast({
  142. title: res.data.msg,
  143. })
  144. }
  145. })
  146. }
  147. },
  148. onLoad(options) {
  149. this.orderNo = options.orderNo,
  150. this.jsId = options.cJsId,
  151. this.orderId = options.cId,
  152. this.name = options.cNickName
  153. this.title = options.title
  154. this.openId = options.cOpenId
  155. },
  156. watch: {
  157. txt(txt) {
  158. if (txt.indexOf('\n') != -1) { //敲了回车键了
  159. uni.hideKeyboard() //收起软键盘
  160. }
  161. }
  162. }
  163. }
  164. </script>
  165. <style lang="scss" scoped>
  166. .comment {
  167. width: 100vw;
  168. height: 100vh;
  169. background: #F7FFFF;
  170. .content {
  171. // padding: 30rpx;
  172. .text {
  173. margin-bottom: 28rpx;
  174. padding: 30rpx;
  175. background: linear-gradient(90deg, #E7FDFD 0%, #D3FBF9 100%);
  176. }
  177. textarea {
  178. border: 1px solid #dcdcdc;
  179. width: calc(100% - 40rpx);
  180. padding: 20rpx;
  181. border-radius: 16rpx;
  182. background: #FEFEFE;
  183. font-size: 26rpx
  184. }
  185. .fast {
  186. width: 686rpx;
  187. margin: 0 auto;
  188. background: linear-gradient(35deg, #FFFFFF 0%, #E4FFFD 100%);
  189. box-shadow: 0px 4rpx 12rpx 0px rgba(88, 209, 187, 0.1);
  190. border-radius: 16rpx;
  191. padding: 24rpx;
  192. box-sizing: border-box;
  193. .title {
  194. display: flex;
  195. align-items: center;
  196. font-weight: 600;
  197. text {
  198. display: inline-block;
  199. width: 6rpx;
  200. height: 34rpx;
  201. background: #20CBC2;
  202. margin-right: 12rpx;
  203. }
  204. }
  205. .tag {
  206. width: 100%;
  207. margin-top: 24rpx;
  208. display: flex;
  209. flex-wrap: wrap;
  210. // justify-content: space-between;
  211. .word {
  212. // margin: 0px 24rpx;
  213. // height: 48px;
  214. margin-right: 24rpx;
  215. margin-bottom: 24rpx;
  216. padding: 4rpx 20rpx;
  217. box-sizing: border-box;
  218. background: rgba(32, 203, 194, 0.1);
  219. box-shadow: 0px 4rpx 12rpx 0px rgba(88, 209, 187, 0.1);
  220. border-radius: 8rpx;
  221. font-size: 28rpx;
  222. }
  223. }
  224. }
  225. .star {
  226. margin-top: 40rpx;
  227. }
  228. .btn_box {
  229. width: 100%;
  230. position: fixed;
  231. left: 0;
  232. bottom: 0;
  233. height: 116rpx;
  234. background: #FFFFFF;
  235. .btn {
  236. width: 670rpx;
  237. height: 76rpx;
  238. background: linear-gradient(90deg, #1AD7CE 0%, #21C9C1 100%);
  239. border-radius: 106rpx;
  240. color: #fff;
  241. margin: 20rpx auto;
  242. display: flex;
  243. align-items: center;
  244. justify-content: center;
  245. }
  246. }
  247. }
  248. }
  249. ::v-deep.u-rate {
  250. // width: 100%;
  251. // margin-top: 30rpx;
  252. // padding: 0px 25% ;
  253. .u-star-wrap {
  254. margin: 0px 10rpx !important;
  255. }
  256. .u-icon {
  257. font-size: 50rpx !important;
  258. }
  259. }
  260. </style>