collectBtn.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <script setup>
  2. import {ref} from 'vue'
  3. import {apiChartIsCollect,apiChartCollect,apiChartCollectCancel} from '@/request/yb/api'
  4. import { useRoute } from 'vue-router'
  5. import { ElMessage } from 'element-plus';
  6. const route=useRoute()
  7. let isCollect=ref(false)
  8. async function getInitStatus(){
  9. const res=await apiChartIsCollect({
  10. unique_code:route.query.code||'',
  11. authorization:route.query.token||''
  12. })
  13. if(res.code===200){
  14. isCollect.value=res.data
  15. }
  16. }
  17. getInitStatus()
  18. // 收藏状态修改
  19. function handleCollectStatusChange(){
  20. if(isCollect.value){
  21. handleCollectCancel()
  22. }else{
  23. handleCollect()
  24. }
  25. }
  26. // 收藏
  27. async function handleCollect(){
  28. const res=await apiChartCollect({
  29. unique_code:route.query.code||'',
  30. authorization:route.query.token||'',
  31. report_id:Number(route.query.reportId)||0,
  32. report_chapter_id:Number(route.query.chapterId)||0
  33. })
  34. if(res.code===200){
  35. ElMessage.success('收藏成功');
  36. isCollect.value=true
  37. }else{
  38. ElMessage.warning(res.msg);
  39. }
  40. }
  41. //取消收藏
  42. async function handleCollectCancel(){
  43. const res=await apiChartCollectCancel({
  44. unique_code:route.query.code||'',
  45. authorization:route.query.token||''
  46. })
  47. if(res.code===200){
  48. ElMessage.success('取消收藏成功');
  49. isCollect.value=false
  50. }else{
  51. ElMessage.warning(res.msg);
  52. }
  53. }
  54. </script>
  55. <template>
  56. <div @click="handleCollectStatusChange">{{isCollect?'取消收藏':'收藏'}}</div>
  57. </template>
  58. <style>
  59. </style>