修改弹窗遮挡

This commit is contained in:
筱野
2025-10-14 23:13:50 +08:00
parent f95353750a
commit d2e051f93a
6 changed files with 60 additions and 31 deletions

View File

@@ -1,4 +1,4 @@
import React, { useState, useCallback, forwardRef, useImperativeHandle } from 'react'
import React, { useState, useCallback, forwardRef, useImperativeHandle, useEffect } from 'react'
import Taro from '@tarojs/taro'
import { View, Text, Image, ScrollView } from '@tarojs/components'
import images from '@/config/images'
@@ -6,6 +6,7 @@ import TextareaTag from '@/components/TextareaTag'
// import CoverImageUpload, { type CoverImage } from '@/components/ImageUpload'
import UploadCover, { type CoverImageValue } from '@/components/UploadCover'
import { useDictionaryActions } from '@/store/dictionaryStore'
import './StadiumDetail.scss'
export interface Stadium {
@@ -25,6 +26,7 @@ export interface Stadium {
interface StadiumDetailProps {
stadium: Stadium
onAnyInput?: (value: boolean) => void
}
// 定义暴露给父组件的方法接口
@@ -65,7 +67,9 @@ const SectionContainer: React.FC<{ title: string; children: React.ReactNode, pro
const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
stadium,
onAnyInput
}, ref) => {
const [openPicker, setOpenPicker] = useState(false);
const { getDictionaryValue } = useDictionaryActions()
const court_type = getDictionaryValue('court_type') || []
const court_surface = getDictionaryValue('court_surface') || []
@@ -162,11 +166,16 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
}, [formData.court_type, formData.court_surface])
const changePicker = (value) => {
setOpenPicker(value)
}
console.log(stadium,'stadiumstadium');
return (
<View className='stadium-detail'>
<ScrollView className='stadium-detail-scroll' scrollY>
{/* 已选球场 */}
<ScrollView className='stadium-detail-scroll' scrollY={!openPicker}>
{/* 已选球场 */}
<View
className={`stadium-item`}
onClick={() => handleMapLocation()}
@@ -209,6 +218,8 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
<TextareaTag
value={formData[item.prop]}
onChange={(value) => updateFormData(item.prop, value)}
// onBlur={() => onAnyInput(false)}
// onFocus={() => onAnyInput(true)}
placeholder='有其他场地信息可备注'
options={(item.options || []).map((o) => ({ label: o, value: o }))}
/>
@@ -222,11 +233,10 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
<SectionContainer key={item.label} title={item.label} prop={item.prop}>
<UploadCover
value={formData[item.prop]}
changePicker={changePicker}
onChange={(value) => {
console.log(value, 'value')
if (value instanceof Function) {
const newValue = value(formData[item.prop])
console.log(newValue, 'newValue')
updateFormData(item.prop, newValue)
} else {
updateFormData(item.prop, value)