新建store存储地区和职业picker选项

This commit is contained in:
2025-10-17 17:10:15 +08:00
parent f3ab0020d3
commit 9ef35267cf
4 changed files with 96 additions and 55 deletions

View File

@@ -8,6 +8,7 @@ import { UserService, PickerOption } from "@/services/userService";
import { PopupPicker } from "@/components/Picker/index";
import { useUserActions } from "@/store/userStore";
import { UserInfoType } from "@/services/userService";
import { useCities, useProfessions } from "@/store/pickerOptionsStore";
// 用户信息接口
// export interface UserInfo {
@@ -82,33 +83,33 @@ export const UserInfoCard: React.FC<UserInfoCardProps> = ({
});
// 职业数据
const [professions, setProfessions] = useState<PickerOption[]>([]);
const professions = useProfessions();
// 城市数据
const [cities, setCities] = useState<PickerOption[]>([]);
const cities = useCities();
// 页面加载时初始化数据
useEffect(() => {
getProfessions();
getCities();
}, []);
// useEffect(() => {
// getProfessions();
// getCities();
// }, []);
const getProfessions = async () => {
try {
const res = await UserService.getProfessions();
setProfessions(res);
} catch (e) {
console.log("获取职业失败:", e);
}
};
const getCities = async () => {
try {
const res = await UserService.getCities();
setCities(res);
} catch (e) {
console.log("获取职业失败:", e);
}
};
// const getProfessions = async () => {
// try {
// const res = await UserService.getProfessions();
// setProfessions(res);
// } catch (e) {
// console.log("获取职业失败:", e);
// }
// };
// const getCities = async () => {
// try {
// const res = await UserService.getCities();
// setCities(res);
// } catch (e) {
// console.log("获取职业失败:", e);
// }
// };
// 处理编辑弹窗
const handle_open_edit_modal = (field: string) => {
if (field === "gender") {
@@ -223,8 +224,8 @@ export const UserInfoCard: React.FC<UserInfoCardProps> = ({
// 处理职业选择
const handle_occupation_change = (e: any) => {
const [country, province] = e;
handle_field_edit("occupation", `${country} ${province}`);
const [country, province, city] = e;
handle_field_edit("occupation", `${country} ${province} ${city}`);
};
const handle_edit_modal_cancel = () => {
setEditModalVisible(false);
@@ -401,7 +402,7 @@ export const UserInfoCard: React.FC<UserInfoCardProps> = ({
{user_info.occupation ? (
<View className="tag_item">
<Text className="tag_text">
{user_info.occupation.split(" ")[1]}
{user_info.occupation.split(" ")[2]}
</Text>
</View>
) : is_current_user ? (