offline-evaluate.wxml 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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">
  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.operateTime}}</text>
  13. </view>
  14. <view class="service-row" wx:if="{{service.operateBy}}">操作人: {{service.operateBy}}</view>
  15. <view class="service-row" wx:if="{{service.conditioningProgramSupplierName}}">机构: {{service.conditioningProgramSupplierName}}</view>
  16. </view>
  17. </view>
  18. <!-- 服务质量 评分 -->
  19. <view class="rate-row">
  20. <text class="rate-label">服务质量</text>
  21. <view class="rate-wrap">
  22. <t-rate value="{{scoreServiceQuality}}" count="{{5}}" color="{{rateColor}}" placement="" bind:change="onScoreServiceQuality" />
  23. <text class="rate-score">{{scoreServiceQuality || '0'}}分</text>
  24. </view>
  25. </view>
  26. <!-- 服务态度 评分 -->
  27. <view class="rate-row">
  28. <text class="rate-label">服务态度</text>
  29. <view class="rate-wrap">
  30. <t-rate value="{{scoreAttitude}}" count="{{5}}" color="{{rateColor}}" placement="" bind:change="onScoreAttitude" />
  31. <text class="rate-score">{{scoreAttitude || '0'}}分</text>
  32. </view>
  33. </view>
  34. <!-- 环境 评分 -->
  35. <view class="rate-row">
  36. <text class="rate-label">环 境</text>
  37. <view class="rate-wrap">
  38. <t-rate value="{{scoreEnvironment}}" count="{{5}}" color="{{rateColor}}" placement="" bind:change="onScoreEnvironment" />
  39. <text class="rate-score">{{scoreEnvironment || '0'}}分</text>
  40. </view>
  41. </view>
  42. <!-- 评价输入 -->
  43. <view class="comment-section">
  44. <textarea class="comment-input" placeholder="展开说说对商品的想法吧" placeholder-class="comment-placeholder" value="{{content}}" bindinput="onContentInput" maxlength="{{200}}" show-confirm-bar="{{false}}" />
  45. <view class="comment-count" wx:if="{{content.length > 0}}">{{content.length}}/200</view>
  46. </view>
  47. <!-- 图/视频 上传(图片+视频总数不超过9个,添加按钮在最后,一行4个) -->
  48. <view class="upload-section">
  49. <view class="media-grid">
  50. <view class="media-item" wx:for="{{mediaList}}" wx:key="path">
  51. <image wx:if="{{item.type === 'image'}}" class="media-thumb" src="{{item.path}}" mode="aspectFill" bindtap="onPreviewMedia" data-index="{{index}}" />
  52. <view wx:else class="media-item-video" bindtap="onPreviewMedia" data-index="{{index}}">
  53. <video id="offline-video-{{index}}" class="media-thumb" src="{{item.path}}" show-center-play-btn="{{true}}" object-fit="cover" controls="{{true}}" bindfullscreenchange="onVideoFullscreenChange" />
  54. <view class="media-item-play">
  55. <t-icon name="play-circle-filled" size="56rpx" color="rgba(255,255,255,0.95)" />
  56. </view>
  57. </view>
  58. <view class="media-delete" catchtap="onRemoveMedia" data-index="{{index}}">
  59. <t-icon name="close" size="32rpx" color="#fff" />
  60. </view>
  61. </view>
  62. <view class="upload-trigger" wx:if="{{mediaList.length < 9}}" bindtap="onChooseMedia">
  63. <t-icon name="add" size="48rpx" color="#999" />
  64. <text class="upload-label">图/视频</text>
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. </scroll-view>
  70. <!-- 发布按钮(视频全屏时隐藏,避免遮挡进度条) -->
  71. <view class="publish-footer" wx:if="{{!videoFullscreen}}" style="padding-bottom: {{container.safeBottomOffset}}px;">
  72. <view class="publish-btn {{canPublish ? '' : 'disabled'}}" bindtap="onPublish">发布</view>
  73. </view>