与牧同行-小程序用户端
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.

101 lines
3.6 KiB

  1. <view class="detail-page">
  2. <!-- 背景 -->
  3. <view class="bg-blur"></view>
  4. <!-- 加载中状态 -->
  5. <view class="loading-container" wx:if="{{loading}}">
  6. <view class="loading-spinner"></view>
  7. <text>加载中...</text>
  8. </view>
  9. <!-- 主要内容 -->
  10. <scroll-view
  11. class="detail-scroll"
  12. scroll-y
  13. enhanced
  14. show-scrollbar="{{false}}"
  15. wx:else
  16. >
  17. <view class="detail-content" wx:if="{{noticeDetail.id}}">
  18. <!-- 标题卡片 -->
  19. <view class="title-card">
  20. <!-- 分类标签 -->
  21. <view class="category-wrap">
  22. <view class="category-tag" style="background: {{getTagBg(noticeDetail.warningType)}}; color: {{getLevelColor(noticeDetail.warningLevel)}};">
  23. {{noticeDetail.warningType || '通知公告'}}
  24. </view>
  25. <view class="level-tag" style="background: {{getLevelBg(noticeDetail.warningLevel)}}; color: {{getLevelColor(noticeDetail.warningLevel)}};">
  26. {{noticeDetail.warningLevel}}
  27. </view>
  28. </view>
  29. <!-- 标题 -->
  30. <text class="title">{{noticeDetail.title}}</text>
  31. <!-- 时间信息 -->
  32. <view class="time-info">
  33. <text class="time-icon">📅</text>
  34. <text class="time-text">发布时间:{{noticeDetail.createdTime || noticeDetail.lastUpdated || '未知时间'}}</text>
  35. </view>
  36. </view>
  37. <!-- 影响区域卡片 -->
  38. <view class="info-card" wx:if="{{noticeDetail.affectedRegions}}">
  39. <view class="info-header">
  40. <text class="info-icon">📍</text>
  41. <text class="info-title">影响区域</text>
  42. </view>
  43. <view class="region-tags">
  44. <text class="region-tag">
  45. {{noticeDetail.affectedRegions}}
  46. </text>
  47. </view>
  48. </view>
  49. <!-- 简要内容卡片 -->
  50. <view class="content-card" wx:if="{{noticeDetail.briefContent}}">
  51. <view class="content-header">
  52. <text class="content-icon">📋</text>
  53. <text class="content-title">简要内容</text>
  54. </view>
  55. <view class="brief-content">
  56. <rich-text nodes="{{noticeDetail.briefContent}}" space="emsp"></rich-text>
  57. </view>
  58. </view>
  59. <!-- 详细内容卡片 -->
  60. <view class="content-card" wx:if="{{noticeDetail.detailContent}}">
  61. <view class="content-header">
  62. <text class="content-icon">📄</text>
  63. <text class="content-title">详细内容</text>
  64. </view>
  65. <view class="detail-body">
  66. <rich-text nodes="{{noticeDetail.detailContent}}" space="emsp"></rich-text>
  67. </view>
  68. </view>
  69. <!-- 应对措施卡片 -->
  70. <view class="measures-card" wx:if="{{noticeDetail.responseMeasures}}">
  71. <view class="measures-header">
  72. <text class="measures-icon">🛡️</text>
  73. <text class="measures-title">应对措施</text>
  74. </view>
  75. <view class="measures-list">
  76. <view class="measure-item" >
  77. <text class="measure-text">{{noticeDetail.responseMeasures}}</text>
  78. </view>
  79. </view>
  80. </view>
  81. <!-- 底部留白 -->
  82. <view class="bottom-space"></view>
  83. </view>
  84. <!-- 错误状态 -->
  85. <view class="error-state" wx:else>
  86. <image src="/images/empty-notice.png" mode="aspectFit" style="width: 240rpx; height: 240rpx;" wx:if="{{false}}"></image>
  87. <text class="error-emoji">📭</text>
  88. <text class="error-text">公告不存在或已删除</text>
  89. <button class="back-btn" bindtap="goBack">返回列表</button>
  90. </view>
  91. </scroll-view>
  92. </view>