index.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <div style="height: calc(100vh - 105px);" class="w-full pb-10">
  3. <!-- 审核中 -->
  4. <ProfileNotesEmpty v-if="!loading && !draftList.length" />
  5. <div v-else-if="draftList.length">
  6. <van-list
  7. v-model:loading="loading"
  8. v-model:error="error"
  9. :finished="finished"
  10. :immediate-check="false"
  11. offset="80"
  12. error-text="请求失败,点击重新加载"
  13. finished-text=""
  14. @load="getNotesList"
  15. >
  16. <ProfileNotesAuditingItem
  17. v-for="item in draftList"
  18. :key="item.id"
  19. :data="item"
  20. @on-revoke="handleRevoke(item)"
  21. />
  22. </van-list>
  23. </div>
  24. </div>
  25. </template>
  26. <script setup>
  27. const { loading, setLoading } = useLoading()
  28. loading.value = true
  29. const finished = ref(false);
  30. const error = ref(false);
  31. const pageNum=ref(1)
  32. const draftList = ref([])
  33. async function getNotesList() {
  34. setLoading(true)
  35. pageNum.value++
  36. try {
  37. const { data } = await request('/website/tourism/publishTravelNotes/getDraftList', {
  38. query: {
  39. pageNum: pageNum.value,
  40. pageSize: 5,
  41. type: 1
  42. }
  43. })
  44. draftList.value = draftList.value.concat(data.dataList);
  45. loading.value = false;
  46. if (draftList.value.length >= data.totalCount) {
  47. finished.value = true;
  48. }
  49. } finally {
  50. setLoading(false)
  51. }
  52. }
  53. async function handleRevoke(item) {
  54. showConfirmDialog({
  55. title: '提示',
  56. message: '确定撤销审核吗?'
  57. })
  58. .then(async () => {
  59. try {
  60. await request(`/website/tourism/publishTravelNotes/withdraw`, {
  61. method: 'post',
  62. body: {
  63. writeId: item.id
  64. }
  65. })
  66. showSuccessToast('撤销成功')
  67. getNotesList()
  68. } catch (error) {}
  69. })
  70. .catch(() => {
  71. // on cancel
  72. })
  73. }
  74. onMounted(() => {
  75. getNotesList()
  76. })
  77. </script>
  78. <style lang="scss" scoped></style>