offline-evaluate.wxml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!--module/order/pages/offline-evaluate/offline-evaluate.wxml 线下服务评价-->
  2. <t-navbar wx:if="{{!videoFullscreen}}" title="评价" left-arrow />
  3. <scroll-view class="page-scroll__container" type="list" scroll-y style="{{containerStyle}}">
  4. <view class="evaluate-container">
  5. <!-- 服务信息卡片:缩略图 + 服务名|日期 时间 + 操作人 + 机构,右上角关闭 -->
  6. <view class="service-card" wx:if="{{service.name}}">
  7. <image class="service-img" src="{{service.image}}" mode="aspectFill" />
  8. <view class="service-info">
  9. <view class="service-name-row">
  10. <text class="service-name">{{service.name}}</text>
  11. <text class="service-divider">|</text>
  12. <text class="service-date">{{service.date}}</text>
  13. <text class="service-time">{{service.time}}</text>
  14. </view>
  15. <view class="service-row" wx:if="{{service.operator}}">操作人: {{service.operator}}</view>
  16. <view class="service-row" wx:if="{{service.institution}}">机构: {{service.institution}}</view>
  17. </view>
  18. </view>
  19. <!-- 服务质量 评分 -->
  20. <view class="rate-row">
  21. <text class="rate-label">服务质量</text>
  22. <view class="rate-wrap">
  23. <t-rate
  24. value="{{scoreServiceQuality}}"
  25. count="{{5}}"
  26. color="{{rateColor}}"
  27. placement=""
  28. bind:change="onScoreServiceQuality"
  29. />
  30. <text class="rate-score">{{scoreServiceQuality || '0'}}分</text>
  31. </view>
  32. </view>
  33. <!-- 服务态度 评分 -->
  34. <view class="rate-row">
  35. <text class="rate-label">服务态度</text>
  36. <view class="rate-wrap">
  37. <t-rate
  38. value="{{scoreAttitude}}"
  39. count="{{5}}"
  40. color="{{rateColor}}"
  41. placement=""
  42. bind:change="onScoreAttitude"
  43. />
  44. <text class="rate-score">{{scoreAttitude || '0'}}分</text>
  45. </view>
  46. </view>
  47. <!-- 环境 评分 -->
  48. <view class="rate-row">
  49. <text class="rate-label">环 境</text>
  50. <view class="rate-wrap">
  51. <t-rate
  52. value="{{scoreEnvironment}}"
  53. count="{{5}}"
  54. color="{{rateColor}}"
  55. placement=""
  56. bind:change="onScoreEnvironment"
  57. />
  58. <text class="rate-score">{{scoreEnvironment || '0'}}分</text>
  59. </view>
  60. </view>
  61. <!-- 评价输入 -->
  62. <view class="comment-section">
  63. <textarea
  64. class="comment-input"
  65. placeholder="展开说说对商品的想法吧"
  66. placeholder-class="comment-placeholder"
  67. value="{{content}}"
  68. bindinput="onContentInput"
  69. maxlength="{{500}}"
  70. show-confirm-bar="{{false}}"
  71. />
  72. <view class="comment-count" wx:if="{{content.length > 0}}">{{content.length}}/500</view>
  73. </view>
  74. <!-- 图/视频 上传(图片+视频总数不超过9个,添加按钮在最后,一行4个) -->
  75. <view class="upload-section">
  76. <view class="media-grid">
  77. <view class="media-item" wx:for="{{mediaList}}" wx:key="path">
  78. <image wx:if="{{item.type === 'image'}}" class="media-thumb" src="{{item.path}}" mode="aspectFill" bindtap="onPreviewImage" data-url="{{item.path}}" />
  79. <view wx:else class="media-item-video" bindtap="onPreviewVideo" data-index="{{index}}">
  80. <video id="offline-video-{{index}}" class="media-thumb" src="{{item.path}}" show-center-play-btn="{{true}}" object-fit="cover" controls="{{true}}" bindfullscreenchange="onVideoFullscreenChange" />
  81. <view class="media-item-play"><t-icon name="play-circle-filled" size="56rpx" color="rgba(255,255,255,0.95)" /></view>
  82. </view>
  83. <view class="media-delete" catchtap="onRemoveMedia" data-index="{{index}}">
  84. <t-icon name="close" size="32rpx" color="#fff" />
  85. </view>
  86. </view>
  87. <view class="upload-trigger" wx:if="{{mediaList.length < 9}}" bindtap="onChooseMedia">
  88. <t-icon name="add" size="48rpx" color="#999" />
  89. <text class="upload-label">图/视频</text>
  90. </view>
  91. </view>
  92. </view>
  93. </view>
  94. </scroll-view>
  95. <!-- 发布按钮(视频全屏时隐藏,避免遮挡进度条) -->
  96. <view class="publish-footer" wx:if="{{!videoFullscreen}}" style="padding-bottom: {{container.safeBottomOffset}}px;">
  97. <view class="publish-btn {{canPublish ? '' : 'disabled'}}" bindtap="onPublish">发布</view>
  98. </view>