albumCarousel.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <album-carousel-item v-if="images" :temp="temp" :sampleId="sampleId" :farmId="farmId" :images="images" :lock="lock"></album-carousel-item>
  3. </template>
  4. <script setup>
  5. import { ref, computed, onMounted, onUnmounted, watch } from "vue";
  6. import "./cacheImg.js"
  7. import AlbumCarouselItem from "./albumCarouselItem";
  8. import {dateFormat} from "@/utils/date_util.js"
  9. import eventBus from "@/api/eventBus.js";
  10. const props =defineProps({
  11. sampleId:{
  12. type: [Number, String],
  13. required: false
  14. },
  15. farmId:{
  16. type: [Number, String],
  17. required: true
  18. },
  19. blueGeoHash:{
  20. type: String,
  21. required: false
  22. },
  23. temp:{
  24. type: String,
  25. required: false
  26. },
  27. farmWork:{
  28. type: Object,
  29. required: false
  30. },
  31. lock:{
  32. type: Boolean,
  33. default: true
  34. }
  35. })
  36. const images = ref(null);
  37. onMounted(() => {
  38. getList()
  39. });
  40. watch(()=>props.farmId,(newValue,oldValue) =>{
  41. if(newValue){
  42. getList()
  43. }
  44. })
  45. const getList = () =>{
  46. if(!props.farmId) return
  47. let params = {farmId: props.farmId}
  48. if(props.blueGeoHash){
  49. params.blueZone = props.blueGeoHash
  50. }
  51. if(props.sampleId){
  52. params.sampleId = props.sampleId
  53. }
  54. if(props.farmWork?.executeDate){
  55. let execcuteDate = new Date(props.farmWork.executeDate)
  56. let beforeExecuteDate = new Date(props.farmWork.beforeExecuteDate)
  57. const pastDate = new Date(beforeExecuteDate);
  58. const futureDate = new Date(execcuteDate);
  59. params.startDate = dateFormat(pastDate, "YY-mm-dd");
  60. params.endDate = dateFormat(futureDate, "YY-mm-dd");
  61. }
  62. VE_API.image.list(params).then(res => {
  63. if(res.code === 0){
  64. images.value = res.data
  65. }
  66. })
  67. }
  68. </script>
  69. <style lang="scss" scoped>
  70. @import "src/styles/index";
  71. </style>