offline-evaluate.wxml 4.3 KB

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