diff --git a/src/components/UserInfo/index.tsx b/src/components/UserInfo/index.tsx index 760c73b..62cf654 100644 --- a/src/components/UserInfo/index.tsx +++ b/src/components/UserInfo/index.tsx @@ -188,7 +188,7 @@ const UserInfoCardComponent: React.FC = ({ if (!is_current_user) return; if (!nickname_change_status.can_change) { return Taro.showToast({ - title: `30天内仅可修改4次昵称,${nickname_change_status.next_period_start_time}后可修改`, + title: `30天内仅可修改4次昵称,${nickname_change_status.next_period_start_date}后可修改`, icon: "none", duration: 2000, }); @@ -619,7 +619,7 @@ const UserInfoCardComponent: React.FC = ({ onCancel={handle_edit_modal_cancel} validationMessage={ editing_field === "nickname" - ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_time} 前还可修改 ${nickname_change_status.remaining_count} 次。` + ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_date} 前还可修改 ${nickname_change_status.remaining_count} 次。` : "请填写 2-100 个字符" } /> diff --git a/src/services/userService.ts b/src/services/userService.ts index 77cdad5..324654f 100644 --- a/src/services/userService.ts +++ b/src/services/userService.ts @@ -96,6 +96,7 @@ export interface NicknameChangeStatus { period_start_time: string; next_period_start_time: string; days_until_next_period: number; + next_period_start_date?: string; } // 后端球局数据接口 diff --git a/src/store/userStore.ts b/src/store/userStore.ts index df712a7..def90fe 100644 --- a/src/store/userStore.ts +++ b/src/store/userStore.ts @@ -45,6 +45,15 @@ const fetchUserInfoWithLock = async (set) => { return fetchUserInfoPromise; }; +const getTimeNextDate = (time: string) => { + const date = new Date(time); + date.setDate(date.getDate() + 1); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + return `${year}-${month}-${day}`; +}; + export const useUser = create()((set) => ({ user: {}, fetchUserInfo: () => fetchUserInfoWithLock(set), @@ -68,7 +77,13 @@ export const useUser = create()((set) => ({ checkNicknameChangeStatus: async () => { try { const res = await checkNicknameChangeStatusApi(); - set({ nicknameChangeStatus: res.data }); + const { next_period_start_time } = res.data; + set({ + nicknameChangeStatus: { + ...res.data, + next_period_start_date: getTimeNextDate(next_period_start_time), + }, + }); } catch (error) { console.error("检查昵称变更状态失败:", error); } diff --git a/src/user_pages/edit/index.tsx b/src/user_pages/edit/index.tsx index c3b6275..a448bd7 100644 --- a/src/user_pages/edit/index.tsx +++ b/src/user_pages/edit/index.tsx @@ -197,7 +197,7 @@ const EditProfilePage: React.FC = () => { if (field === "nickname") { if (!nickname_change_status.can_change) { return Taro.showToast({ - title: `30天内仅可修改4次昵称,${nickname_change_status.next_period_start_time}后可修改`, + title: `30天内仅可修改4次昵称,${nickname_change_status.next_period_start_date}后可修改`, icon: "none", duration: 2000, }); @@ -828,7 +828,7 @@ const EditProfilePage: React.FC = () => { onCancel={handle_edit_modal_cancel} validationMessage={ editing_field === "nickname" - ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_time} 前还可修改 ${nickname_change_status.remaining_count} 次。` + ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_date} 前还可修改 ${nickname_change_status.remaining_count} 次。` : "请填写 2-100 个字符" } />