feat: 修复发布时图片未上传完成导致详情图片丢失的问题,修复详情球局日期展示问题,修复球局管理取消活动无响应的问题

This commit is contained in:
2025-10-24 15:59:03 +08:00
parent 4126ad5679
commit f93b27c4a7
8 changed files with 308 additions and 193 deletions

View File

@@ -57,7 +57,7 @@ const defaultFormData: PublishBallFormData = {
wechat_contact: '',
default_wechat_contact: ''
}
}
const PublishBall: React.FC = () => {
@@ -66,7 +66,7 @@ const PublishBall: React.FC = () => {
const userInfo = useUserInfo();
const publishAiData = usePublishBallData()
const { statusNavbarHeightInfo } = useGlobalState();
// 使用全局键盘状态
const { keyboardHeight, isKeyboardVisible, addListener, initializeKeyboardListener } = useKeyboardHeight()
// 获取页面参数并设置导航标题
@@ -181,7 +181,7 @@ const PublishBall: React.FC = () => {
const validateFormData = (formData: PublishBallFormData, isOnSubmit: boolean = false) => {
const { activityInfo, title, timeRange, image_list, players, current_players } = formData;
const { play_type, price, location_name } = activityInfo;
const { max } = players;
if (!image_list?.length && activityType === 'group') {
if (!isOnSubmit) {
@@ -192,6 +192,19 @@ const PublishBall: React.FC = () => {
}
return false
}
// 判断图片是否上传完成
if (image_list?.length > 0) {
const uploadInProgress = image_list.some((item) =>
item.url.startsWith("http://tmp/")
);
if (uploadInProgress) {
Taro.showToast({
title: `封面图片上传中...`,
icon: "none",
});
return;
}
}
if (!title) {
if (!isOnSubmit) {
Taro.showToast({
@@ -268,7 +281,7 @@ const PublishBall: React.FC = () => {
})
}
return false
}
}
}
if (current_players && (current_players > max)) {
if (!isOnSubmit) {
@@ -464,7 +477,7 @@ const PublishBall: React.FC = () => {
wechat: { ...defaultFormData.wechat, default_wechat_contact: userPhone, is_wechat_contact: is_wechat_contact === 0 ? false : true},
image_list: image_list?.map(item => ({ url: item, id: item })) || [],
...(current_players ? { current_players } : {}),
}
}
@@ -487,7 +500,7 @@ const PublishBall: React.FC = () => {
return acc
}, [] as FormFieldConfig[])
setOptionsConfig(newFormSchema)
}
}
const initFormData = () => {
const params = getParams()
const userPhone = (userInfo as any)?.phone || ''
@@ -532,7 +545,7 @@ const PublishBall: React.FC = () => {
}
}
const getGameDetail = async (gameId) => {
if (!gameId) return;
@@ -577,7 +590,7 @@ const PublishBall: React.FC = () => {
useEffect(() => {
// 初始化全局键盘监听器
initializeKeyboardListener()
// 添加本地监听器
const removeListener = addListener((height, visible) => {
console.log('PublishBall 收到键盘变化:', height, visible)