解决按钮问题与键盘弹出问题

This commit is contained in:
筱野
2026-02-09 21:16:48 +08:00
parent 82ba753b8b
commit 0f8dd44f5a
2 changed files with 18 additions and 12 deletions

View File

@@ -3,6 +3,12 @@
.common-popup {
position: fixed;
z-index: 9999 !important;
padding: 0;
box-sizing: border-box;
max-height: calc(100vh - 10px);
display: flex;
flex-direction: column;
background-color: theme.$page-background-color;
&:global(.nut-popup-bottom.nut-popup-round) {
border-radius: 20px 20px 0 0 !important;
}
@@ -32,12 +38,7 @@
}
}
padding: 0;
box-sizing: border-box;
max-height: calc(100vh - 10px);
display: flex;
flex-direction: column;
background-color: theme.$page-background-color;
// .common-popup__header {
// padding: 12px 16px;

View File

@@ -72,6 +72,7 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
}, ref) => {
const [openPicker, setOpenPicker] = useState(false); //为了解决上传图片时按钮样式问题
const [scrollTop, setScrollTop] = useState(0);
const [isTextareaFocused, setIsTextareaFocused] = useState(false); // 记录 TextareaTag 是否 focus
const { getDictionaryValue } = useDictionaryActions()
const court_type = getDictionaryValue('court_type') || []
const court_surface = getDictionaryValue('court_surface') || []
@@ -199,12 +200,12 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
}
}
// 当键盘显示触发 changeTextarea
// 当键盘显示且 TextareaTag 当前 focus 时才触发 changeTextarea
useEffect(() => {
if (isKeyboardVisible) {
if (isKeyboardVisible && isTextareaFocused) {
changeTextarea(true)
}
}, [isKeyboardVisible])
}, [isKeyboardVisible, isTextareaFocused])
const changePicker = (value:boolean) => {
setOpenPicker(value);
@@ -269,11 +270,15 @@ const StadiumDetail = forwardRef<StadiumDetailRef, StadiumDetailProps>(({
<TextareaTag
value={formData[item.prop]}
onChange={(value) => {
//changeTextarea(true)
updateFormData(item.prop, value)
}}
// onBlur={() => changeTextarea(false)}
onFocus={() => changeTextarea(true)}
onBlur={() => {
setIsTextareaFocused(false)
}}
onFocus={() => {
setIsTextareaFocused(true)
changeTextarea(true)
}}
placeholder='有其他场地信息可备注'
options={(item.options || []).map((o) => ({ label: o, value: o }))}
/>