123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import { useState, useEffect } from 'react'
-
- import Taro from '@tarojs/taro'
- import { View, Picker, Image, ScrollView, Text } from '@tarojs/components'
- import CouponCard from '@/components/CouponCard'
- import { compressImage } from '@/utils'
- import SaveIcon from '@/components/SaveIcon'
- import Location from '@/components/Location'
-
- import grassOFF from '@/assets/icons/housemantj/grassOFF.png'
- import grassNO from '@/assets/icons/housemantj/grassNO.png'
- import Popup from '@/components/Popup'
- import { saveTravel, newTravelMine } from '@/services/travel'
-
- import './style.less'
-
-
- const CouponMedia = CouponCard.Media
- const Action = CouponCard.Action
-
- //套餐卡片
- export default (props) => {
- const { item, st, editable, setScroll, goshop, travelMine, resourceList, det, handelNoteList } = props
- console.log("🚀 ~ file: index.jsx ~ line 24 ~ resourceList", resourceList)
- // const travelId = travelMineContent?.records[0]?.travelId
- const targetId = props.item?.targetId
- const targetType = props.item?.targetType
-
- const goFood = () => {
- Taro.navigateTo({ url: `/pages/details/foodDetails/foodDetails?id=${targetId}` })
-
- }
- const [showCutover, setShowCutover] = useState(false)
- const [valueList, setValueList] = useState([])
-
- const [traveCoumun, setTraveCoumun] = useState()
-
- useEffect(() => {
-
- setValueList(travelMine?.records)
- setTraveCoumun(travelMine?.records[0].dayNum)
-
- }, [travelMine?.records, item])
-
- const onClose = () => {
- //关闭当前套餐详情弹窗
- setShowCutover(false)
- //使父组件恢复滚动
- setScroll(true)
- }
-
- //列改变
-
-
- const numberTrave = (new Array(traveCoumun).fill()).map((_, index) => ({ id: index + 1, title: `第 ${index + 1} 天` }))
-
- const array = [valueList, travelMine?.records == '' ? [] : numberTrave]
-
-
- const handleColumn = e => {
- console.log("🚀 ~ file: index.jsx ~ line 63 ~ e", e)
- // console.log(e.detail.column);
- const { column, value } = e.detail
-
- if (column == 0) {
-
- const firstValue = valueList[value] || ''
- setTraveCoumun(firstValue.dayNum)
-
- }
-
-
-
- }
-
-
- const day = new Date();
- const y = day.getFullYear();
- const m = day.getMonth() + 1;
- const d = day.getDate();
- let number = 0
-
- const hanleChange = (e) => {
- console.log("🚀 ~ file: index.jsx ~ line 63 ~ e", e)
-
- if (travelMine?.records == '') {
-
-
- // newTravelMine({ title: `我的行程 ${y}-${m}-${d}` }).then(res => {
- // handelNoteList()
- // // 首先创建一个行程,然后才能拿到下面的这些数据
-
- // const [firstInx, secondInx] = e.detail?.value
-
- // const firstValue = valueList[firstInx] || ''
-
- // const secondValue = numberTrave[secondInx] || ''
-
- // const { travelId } = firstValue
-
- // //行程内容
- // const { id } = secondValue//天数
- // // saveTravel({})
- // saveTravel(res.travelId, { dayOrder: id, targetId: targetId, targetType: targetType }).then((val) => {
- // Taro.showToast({
- // title: '添加成功',
- // icon: 'none',
- // duration: 1000
- // })
- // resourceList(travelId)
- // })
- // })
-
- return;
- } else {
- const [firstInx, secondInx] = e.detail.value
-
- const firstValue = valueList[firstInx]
-
- const secondValue = numberTrave[secondInx]
-
- const { travelId } = firstValue
-
-
- //行程内容
- const { id } = secondValue//天数
-
- saveTravel(travelId, { dayOrder: id, targetId: targetId, targetType: targetType }).then((res) => {
- Taro.showToast({
- title: '添加成功',
- icon: 'none',
-
- duration: 1000
- })
- resourceList(travelId)
-
- // setGrowGrass(grassNO)
-
- })
- }
- }
-
-
- const handlePayClick = () => {
- if (travelMine?.records == '') {
- Taro.showToast({
- title: '暂无行程,已自动创建',
- icon: 'none',
- duration: 3000
- })
-
- newTravelMine({ title: `我的行程 ${y}-${m}-${d}` }).then(res => {
- handelNoteList()
- // 首先创建一个行程,然后才能拿到下面的这些数据
- })
-
- }
- // Taro.navigateTo({ url: `/pages/PayOrder/index?packageId=${item.packageId}&scene=${scene || ''}&subOrderId=${subOrderId}&id=${id}` })
-
- }
- const PayAction = travelMine?.total >= 1 ?
- <View className='view-picker'>
- <Picker
- className='picker-box'
- mode='multiSelector'
- range={array}
- range-key='title'
- onColumnChange={handleColumn}
- onChange={hanleChange}
- scrollType='link'
- // value={}
- >
- <Action.Icon icon={item.isVisited < 1 ? grassOFF : grassNO} text={item.isVisited < 1 ? '种草' : '已种草'} onClick={handlePayClick} />
- </Picker>
- </View>
- :
- <Action.Icon icon={item.isVisited < 1 ? grassOFF : grassNO} text={item.isVisited < 1 ? '种草' : '已种草'} onClick={handlePayClick} />
-
-
- return (
- <View style={{ margin: '15px 5px' }} >
- <View className='packageDetail' style={{ display: goshop ? '' : 'none' }}>
- <Popup show={showCutover} maskClosable={showCutover} onClose={onClose}>
- <ScrollView
- scrollY
- style={{ maxHeight: '60vh' }}
- >
- <Image mode='widthFix' src={item.details ? item.details : item.poster} />
- </ScrollView>
- </Popup >
- </View>
- <CouponCard action={PayAction}>
- <CouponMedia onClick={goFood}>
- <CouponMedia.Header
- cashback={item.cashback}
- image={compressImage(item.poster)}
- badge='note'
- />
- <CouponMedia.Body star={st}>
- <View className='foodCard'>
- <View className='cpn-card-text'>
- {(item.title).toString().length > 25 ? (item.title).substring(0, 25) + '...' : (item.title)}
- </View>
- <View className='cpn-card-text' style={{ marginTop: '10rpx' }}>
- <Text className='cpn-card-text_mn'>¥{`${(item.averagePrice == '' ? 0 / 100 : item.averagePrice / 100).toFixed(2)}元`}</Text>
- {/* <Text className='cpn-card-text_rm'>{`门市价${(item.standardPrice / 100)?.toFixed(2)}元`}</Text> */}
- </View>
- <View className='cpn-md-act'>
- <Location {...det} />
- <SaveIcon saved={item.isSaved > 0} targetType='shop_package' editable={editable} targetId={item.targetId} />
- </View>
- </View>
- </CouponMedia.Body>
- </CouponMedia>
- </CouponCard>
- </View>
- )
- }
|