thirdPartyContent.wxml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!--pages/thirdPartyContent/thirdPartyContent.wxml-->
  2. <view class="container">
  3. <!-- 统计信息 -->
  4. <view class="statistics-section">
  5. <view class="stat-item">
  6. <text class="stat-value">{{statistics.pending || 0}}</text>
  7. <text class="stat-label">待审核</text>
  8. </view>
  9. <view class="stat-item">
  10. <text class="stat-value">{{statistics.approved || 0}}</text>
  11. <text class="stat-label">已通过</text>
  12. </view>
  13. <view class="stat-item">
  14. <text class="stat-value">{{statistics.rejected || 0}}</text>
  15. <text class="stat-label">已驳回</text>
  16. </view>
  17. <view class="stat-item">
  18. <text class="stat-value">{{statistics.deletePending || 0}}</text>
  19. <text class="stat-label">待删除</text>
  20. </view>
  21. </view>
  22. <!-- 搜索栏和上传按钮 -->
  23. <view class="toolbar">
  24. <view class="search-box">
  25. <input
  26. class="search-input"
  27. placeholder="搜索书名或作者"
  28. value="{{keyword}}"
  29. bindinput="onSearchInput"
  30. bindconfirm="onSearch"
  31. />
  32. <text class="search-btn" bindtap="onSearch">搜索</text>
  33. </view>
  34. <button class="upload-btn" bindtap="goToUpload">+ 上传书籍</button>
  35. </view>
  36. <!-- 书籍列表 -->
  37. <view class="content-list" wx:if="{{!loading && contentList.length > 0}}">
  38. <view class="content-item" wx:for="{{contentList}}" wx:key="contentId">
  39. <image class="cover" src="{{item.coverUrl || '/images/default-cover.png'}}" mode="aspectFill"></image>
  40. <view class="content-info">
  41. <view class="title-row">
  42. <text class="title">{{item.title}}</text>
  43. <view class="status-badge" style="background-color: {{item.auditStatus === 0 ? '#ff9800' : (item.auditStatus === 1 ? '#4caf50' : '#f44336')}}">
  44. {{item.auditStatus === 0 ? '待审核' : (item.auditStatus === 1 ? '已通过' : '已驳回')}}
  45. </view>
  46. </view>
  47. <text class="author">作者:{{item.author}}</text>
  48. <text class="info">类型:{{item.contentType === 1 ? '电子书' : '听书'}} | 章节:{{item.totalChapters || 0}}章</text>
  49. <text class="info" wx:if="{{item.rejectReason}}">驳回理由:{{item.rejectReason}}</text>
  50. <view class="actions">
  51. <button class="action-btn" size="mini" bindtap="editContent" data-id="{{item.contentId}}">编辑</button>
  52. <button
  53. class="action-btn"
  54. size="mini"
  55. wx:if="{{item.isVisible === 1}}"
  56. bindtap="offlineContent"
  57. data-id="{{item.contentId}}"
  58. >
  59. 下架
  60. </button>
  61. <button
  62. class="action-btn"
  63. size="mini"
  64. wx:if="{{item.isVisible === 0 && item.auditStatus === 1}}"
  65. bindtap="onlineContent"
  66. data-id="{{item.contentId}}"
  67. >
  68. 上架
  69. </button>
  70. <button
  71. class="action-btn danger"
  72. size="mini"
  73. wx:if="{{item.deleteStatus !== 2 && item.deleteStatus !== 1}}"
  74. bindtap="requestDelete"
  75. data-id="{{item.contentId}}"
  76. >
  77. 申请删除
  78. </button>
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. <!-- 空状态 -->
  84. <view class="empty" wx:if="{{!loading && contentList.length === 0}}">
  85. <text class="empty-text">暂无书籍,点击"上传书籍"开始上传</text>
  86. </view>
  87. <!-- 加载中 -->
  88. <view class="loading" wx:if="{{loading}}">
  89. <text>加载中...</text>
  90. </view>
  91. <!-- 分页 -->
  92. <view class="pagination" wx:if="{{total > size}}">
  93. <button
  94. class="page-btn"
  95. disabled="{{current === 1}}"
  96. bindtap="onPageChange"
  97. data-current="{{current - 1}}"
  98. >
  99. 上一页
  100. </button>
  101. <text class="page-info">第 {{current}} 页 / 共 {{totalPages}} 页</text>
  102. <button
  103. class="page-btn"
  104. disabled="{{current >= totalPages}}"
  105. bindtap="onPageChange"
  106. data-current="{{current + 1}}"
  107. >
  108. 下一页
  109. </button>
  110. </view>
  111. </view>