diff --git a/src/marketing/pages/member/activity-list.js b/src/marketing/pages/member/activity-list.js index bbfb24fe0..0ad769cd2 100644 --- a/src/marketing/pages/member/activity-list.js +++ b/src/marketing/pages/member/activity-list.js @@ -4,12 +4,11 @@ */ import React, { useEffect, useRef } from 'react' import { useImmer } from 'use-immer' -import Taro, { useDidShow, useRouter } from '@tarojs/taro' -import { View, ScrollView, Button } from '@tarojs/components' +import Taro, { useDidShow } from '@tarojs/taro' +import { View } from '@tarojs/components' import { SpPage, SpScrollView, SpSearchBar } from '@/components' import { SpTagBar, SpSelectModal } from '@/subpages/components' import api from '@/api' -import doc from '@/doc' import * as activityDoc from '@/doc/activity' import { pickBy } from '@/utils' import CompActivityItem from './comps/comp-activity-item' @@ -37,7 +36,6 @@ function ActivityIist(props) { const [state, setState] = useImmer(initialState) const { tradeStatus, status, recordList, isOpened, selectOptions, activityInfo, keyword } = state const recordRef = useRef() - const router = useRouter() useDidShow(() => { setState((draft) => { @@ -83,6 +81,14 @@ function ActivityIist(props) { }) } + const handleViewRecords = (item) => { + const id = item?.activityId + if (id == null || id === '') return + Taro.navigateTo({ + url: `/marketing/pages/member/item-activity?activity_id=${encodeURIComponent(id)}` + }) + } + const registrationSubmitFetch = async ({ activityId }) => { await api.user.joinActivity({ activity_id: activityId }) Taro.showToast({ @@ -191,6 +197,7 @@ function ActivityIist(props) { info={item} onClick={handleItemClick} onBtnAction={onBtnAction} + onViewRecords={handleViewRecords} /> ))} diff --git a/src/marketing/pages/member/comps/comp-activity-item.js b/src/marketing/pages/member/comps/comp-activity-item.js index ccb2232ae..56c14587f 100644 --- a/src/marketing/pages/member/comps/comp-activity-item.js +++ b/src/marketing/pages/member/comps/comp-activity-item.js @@ -13,7 +13,13 @@ import classNames from 'classnames' import './comp-activity-item.scss' function CompActivityItem(props) { - const { info = {}, isActivity = false, onClick = () => {}, onBtnAction = () => {} } = props + const { + info = {}, + isActivity = false, + onClick = () => {}, + onBtnAction = () => {}, + onViewRecords = () => {} + } = props if (!info) { return null @@ -58,8 +64,6 @@ function CompActivityItem(props) { onBtnAction(info, type) } - console.log('info', info) - return ( {reason} )} + {isActivity && 会员免费} + + {isActivity && recordId ? ( + { + e.stopPropagation() + onViewRecords(info) + }} + > + 查看报名记录 + + ) : null} {actionEdit && !isActivity && ( )} - + ) diff --git a/src/marketing/pages/member/comps/comp-activity-item.scss b/src/marketing/pages/member/comps/comp-activity-item.scss index 2dc628563..0e5a75d93 100644 --- a/src/marketing/pages/member/comps/comp-activity-item.scss +++ b/src/marketing/pages/member/comps/comp-activity-item.scss @@ -80,6 +80,8 @@ } } + + &-btns { display: flex; justify-content: flex-end; @@ -107,6 +109,21 @@ margin-left: 0; } } + .activity-item__content-btn-wrapper { + display: flex; + align-items: center; + justify-content: center; + } + + .activity-item__view-records { + padding: 12px 24px; + box-sizing: border-box; + background: linear-gradient(to right, #f67f70 0%, #cd352a 100%); + border-radius: 32px; + font-weight: 600; + font-size: 24px; + color: #ffffff; + } .sp-scrollview-body { background: #f5f5f5; @@ -119,6 +136,7 @@ } &__content { + &-title, &-time { color: #c7c7c7; @@ -136,4 +154,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/marketing/pages/member/item-activity.js b/src/marketing/pages/member/item-activity.js index d68d6e763..7e6aae333 100644 --- a/src/marketing/pages/member/item-activity.js +++ b/src/marketing/pages/member/item-activity.js @@ -42,6 +42,7 @@ function ItemActivity(props) { state const recordRef = useRef() const router = useRouter() + const filterActivityId = router.params?.activity_id // useEffect(() => { // Taro.eventCenter.on('onEventRecordStatusChange', () => { @@ -78,7 +79,7 @@ function ItemActivity(props) { draft.recordList = [] }) recordRef.current.reset() - }, [status]) + }, [status, filterActivityId]) const fetch = async ({ pageIndex, pageSize }) => { const params = { @@ -87,6 +88,9 @@ function ItemActivity(props) { order_type: 'normal', status } + if (filterActivityId) { + params.activity_id = filterActivityId + } const { list, total_count: total } = await api.user.registrationRecordList(params) const nList = pickBy(list, activityDoc.RECORD_LIST) setState((draft) => { diff --git a/src/pages/home/wgts/imghot-zone/index.jsx b/src/pages/home/wgts/imghot-zone/index.jsx index 8f9fdab46..657021e4a 100644 --- a/src/pages/home/wgts/imghot-zone/index.jsx +++ b/src/pages/home/wgts/imghot-zone/index.jsx @@ -4,7 +4,7 @@ */ import React, { useMemo } from 'react' import Taro from '@tarojs/taro' -import { View } from '@tarojs/components' +import { Button, View } from '@tarojs/components' import { SpImage, SpLogin } from '@/components' import { linkPage, classNames, styleNames, isArray, getDistributorId } from '@/utils' import { needLoginPage, needLoginPageType } from '@/consts' @@ -92,6 +92,17 @@ function WgtImgHotZone(props) { distributor_id }) + if (item.id === 'customerService') { + return ( +