登录页面

This commit is contained in:
2026-07-12 15:17:54 +08:00
parent becf91da52
commit bfac6c6663
63 changed files with 4662 additions and 431 deletions
@@ -0,0 +1,4 @@
export default definePageConfig({
navigationStyle: 'custom',
navigationBarTitleText: '地址管理',
});
@@ -0,0 +1,75 @@
import { useEffect, useState } from 'react';
import { View, Text } from '@tarojs/components';
import Taro from '@tarojs/taro';
import PageShell from '../../components/PageShell';
import SubPageHeader from '../../components/SubPageHeader';
import { request, toast } from '../../lib/api';
type Address = {
id: string;
receiverName: string;
phone: string;
province?: string;
city?: string;
district?: string;
detail: string;
isDefault?: boolean;
};
export default function AddressesPage() {
const [list, setList] = useState<Address[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
request<Address[]>('/user/addresses')
.then((data) => setList(Array.isArray(data) ? data : []))
.catch(() => setList([]))
.finally(() => setLoading(false));
}, []);
return (
<PageShell variant="sub" className="address-page" hasFixedFooter>
<SubPageHeader title="地址管理" />
<View className="sub-page-body" style={{ paddingBottom: 80 }}>
{loading ? <View className="u-empty"></View> : null}
{!loading && list.length === 0 ? (
<View className="u-empty"></View>
) : null}
{list.map((a) => (
<View key={a.id} className="address-item">
<View className="address-item-head">
<Text className="address-item-name">{a.receiverName}</Text>
<Text className="address-item-phone">{a.phone}</Text>
{a.isDefault ? <Text className="address-default-tag"></Text> : null}
</View>
<Text className="address-item-detail">
{[a.province, a.city, a.district, a.detail].filter(Boolean).join(' ')}
</Text>
<View className="address-item-actions">
<Text
className="address-action"
onClick={() =>
Taro.navigateTo({ url: `/pages/address-edit/index?id=${a.id}` })
}
>
</Text>
<Text
className="address-action"
onClick={() => toast('删除功能后续接入')}
>
</Text>
</View>
</View>
))}
</View>
<View
className="address-fab"
onClick={() => Taro.navigateTo({ url: '/pages/address-edit/index' })}
>
<Text></Text>
</View>
</PageShell>
);
}