Sửa hiển thị tên/email của người thanh toán

This commit is contained in:
2026-06-14 16:05:14 +07:00
parent 71007bd9a1
commit 3a29f98c96
8 changed files with 36 additions and 14 deletions
+12 -7
View File
@@ -250,13 +250,18 @@ export const AddLocationModal = ({ isOpen, onClose, tourId, initialLegId, editin
</div>
<div>
<label className="block text-xs font-bold text-gray-600 mb-1">Thành viên đã thanh toán</label>
<select className="w-full px-3 py-2 bg-white border border-gray-200 rounded-xl outline-none text-sm"
value={formData.paidById} onChange={e => setFormData({...formData, paidById: e.target.value})}>
<option value="">-- Chọn người thanh toán --</option>
{currentTour?.participants?.map((p: any) => (
<option key={p.userId} value={p.userId}>{p.user?.name || p.userId}</option>
))}
</select>
<select className="w-full px-3 py-2 bg-white border border-gray-200 rounded-xl outline-none text-sm"
value={formData.paidById} onChange={e => setFormData({...formData, paidById: e.target.value})}>
<option value="">-- Chọn người thanh toán --</option>
{currentTour?.participants?.map((p: any) => {
const name = p.user?.name;
const email = p.user?.email;
const label = [name, email && name ? `(${email})` : email].filter(Boolean).join(' ');
return (
<option key={p.userId} value={p.userId}>{label || p.userId}</option>
);
})}
</select>
</div>
</div>
<div>
+6 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -7,10 +7,10 @@ export declare class JwtStrategy extends JwtStrategy_base {
private prisma;
constructor(prisma: PrismaService);
validate(payload: any): Promise<{
name: string | null;
id: string;
email: string;
passwordHash: string;
name: string | null;
avatar: string | null;
createdAt: Date;
isAdmin: boolean;
+7 -1
View File
@@ -305,7 +305,13 @@ let TourController = class TourController {
const tour = await this.prisma.tour.findUnique({
where: { id },
include: {
participants: true,
participants: {
include: {
user: {
select: { id: true, name: true, email: true }
}
}
},
photos: true,
legs: {
orderBy: { sequence: 'asc' },
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+7 -1
View File
@@ -339,7 +339,13 @@ class TourController {
const tour = await this.prisma.tour.findUnique({
where: { id },
include: {
participants: true,
participants: {
include: {
user: {
select: { id: true, name: true, email: true }
}
}
},
photos: true,
legs: {
orderBy: { sequence: 'asc' },