index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div class="min-h-400 pb-10">
  3. <!-- 未通过 -->
  4. <ProfileNotesEmpty v-if="!loading && !draftList.length" />
  5. <div v-else-if="draftList.length" class="grid grid-cols-1">
  6. <ProfileNotesRejectedItem
  7. v-for="item in draftList"
  8. :key="item.id"
  9. :data="item"
  10. @on-delete="handleDelete(item)"
  11. />
  12. </div>
  13. </div>
  14. </template>
  15. <script setup>
  16. const { loading, setLoading } = useLoading()
  17. loading.value = true
  18. const draftList = ref([])
  19. async function getNotesList() {
  20. setLoading(true)
  21. try {
  22. const { data } = await request('/website/tourism/publishTravelNotes/getDraftList', {
  23. query: {
  24. pageNum: 1,
  25. pageSize: 10000,
  26. type: 2
  27. }
  28. })
  29. draftList.value = data.dataList
  30. } finally {
  31. setLoading(false)
  32. }
  33. }
  34. async function handleDelete(item) {
  35. showConfirmDialog({
  36. title: '提示',
  37. message: '确定删除吗?'
  38. })
  39. .then(async () => {
  40. try {
  41. await request(`/website/tourism/publishTravelNotes/removeByDraftId`, {
  42. method: 'post',
  43. body: {
  44. writeId: item.id
  45. }
  46. })
  47. showSuccessToast('删除成功')
  48. getNotesList()
  49. } catch (error) {}
  50. })
  51. .catch(() => {
  52. // on cancel
  53. })
  54. }
  55. onMounted(() => {
  56. getNotesList()
  57. })
  58. </script>
  59. <style lang="scss" scoped></style>