index.jsx 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { useState, useEffect, useRef } from 'react'
  2. import Taro from '@tarojs/taro'
  3. import { deleteTravel, deleteTravelItem } from '@/services/travel'
  4. import { View, Text, Image, ScrollView } from '@tarojs/components'
  5. import CouponCard from '@/components/CouponCard'
  6. import { compressImage } from '@/utils'
  7. import SaveIcon from '@/components/SaveIcon'
  8. import Location from '@/components/Location'
  9. import grassOFF from '@/assets/icons/housemantj/grassOFF.png'
  10. import DeleteTravel from '@/assets/icons/Travel/delete.png'
  11. import grassNO from '@/assets/icons/housemantj/grassNO.png'
  12. import Popup from '@/components/Popup'
  13. import './style.less'
  14. const CouponMedia = CouponCard.Media
  15. const Action = CouponCard.Action
  16. //套餐卡片
  17. export default (props) => {
  18. const { item, st, editable, setScroll, goshop, det, onDay, onDelete } = props
  19. // const travelId = travelMineContent?.records[0]?.travelId
  20. const { targetId, itemId } = props.item
  21. const goDetail = () => {
  22. Taro.navigateTo({ url: `/pages/details/mjDetails/sceneryDetails?id=${targetId}` })
  23. }
  24. const goFood = () => {
  25. Taro.navigateTo({ url: `/pages/details/foodDetails/foodDetails?id=${targetId}` })
  26. }
  27. const [showCutover, setShowCutover] = useState(false)
  28. const [valueList, setValueList] = useState([])
  29. // useEffect(() => {
  30. // }, [item])
  31. const onClose = () => {
  32. //关闭当前套餐详情弹窗
  33. setShowCutover(false)
  34. //使父组件恢复滚动
  35. setScroll(true)
  36. }
  37. const handlePayClick = (e) => {
  38. onDelete(itemId)
  39. // Taro.navigateTo({ url: `/pages/PayOrder/index?packageId=${item.packageId}&scene=${scene || ''}&subOrderId=${subOrderId}&id=${id}` })
  40. }
  41. const PayAction = <Action.Icon icon={DeleteTravel} text='删除' onClick={handlePayClick} />
  42. return (
  43. <View style={{ margin: '15px 5px' }} >
  44. <View className='packageDetail' style={{ display: goshop ? '' : 'none' }}>
  45. <Popup show={showCutover} maskClosable={showCutover} onClose={onClose}>
  46. <ScrollView
  47. scrollY
  48. style={{ maxHeight: '60vh' }}
  49. >
  50. <Image mode='widthFix' src={item.details ? item.details : item.poster} />
  51. </ScrollView>
  52. </Popup >
  53. </View>
  54. <CouponCard action={PayAction}>
  55. <CouponMedia onClick={item.targetType === 'tourist' ? goDetail : goFood}>
  56. <CouponMedia.Header
  57. cashback={item.cashback}
  58. image={compressImage(item.poster)}
  59. // badge='food'
  60. />
  61. <CouponMedia.Body star={st}>
  62. <View className='foodCard'>
  63. <View className='cpn-card-text'>
  64. {(item.title).toString().length > 25 ? (item.title).substring(0, 25) + '...' : (item.title)}
  65. </View>
  66. <View className='cpn-card-text' style={{ marginTop: '10rpx' }}>
  67. <Text className='cpn-card-text_mn'>¥{`${(item.averagePrice == '' ? '0.00' : item.averagePrice / 100)?.toFixed(2)}元`}</Text>
  68. {/* <Text className='cpn-card-text_rm'>{`门市价${(item.standardPrice / 100)?.toFixed(2)}元`}</Text> */}
  69. </View>
  70. <View className='cpn-md-act'>
  71. <Location {...det} />
  72. <SaveIcon saved={item.isSaved > 0} targetType='shop_package' editable={editable} targetId={item.packageId} />
  73. </View>
  74. </View>
  75. </CouponMedia.Body>
  76. </CouponMedia>
  77. </CouponCard>
  78. </View>
  79. )
  80. }