index.vue 1.3 KB

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