add auth, format
This commit is contained in:
@@ -54,13 +54,21 @@ class _ModelHousesPageState extends ConsumerState<ModelHousesPage>
|
||||
children: [
|
||||
Text('Đây là nội dung hướng dẫn sử dụng cho tính năng Nhà mẫu:'),
|
||||
SizedBox(height: 12),
|
||||
Text('• Tab "Thư viện Mẫu 360": Là nơi công ty cung cấp các mẫu thiết kế 360° có sẵn để bạn tham khảo.'),
|
||||
Text(
|
||||
'• Tab "Thư viện Mẫu 360": Là nơi công ty cung cấp các mẫu thiết kế 360° có sẵn để bạn tham khảo.',
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text('• Tab "Yêu cầu Thiết kế": Là nơi bạn gửi yêu cầu (ticket) để đội ngũ thiết kế của chúng tôi hỗ trợ bạn.'),
|
||||
Text(
|
||||
'• Tab "Yêu cầu Thiết kế": Là nơi bạn gửi yêu cầu (ticket) để đội ngũ thiết kế của chúng tôi hỗ trợ bạn.',
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text('• Bấm nút "+" trong tab "Yêu cầu Thiết kế" để tạo một Yêu cầu Thiết kế mới.'),
|
||||
Text(
|
||||
'• Bấm nút "+" trong tab "Yêu cầu Thiết kế" để tạo một Yêu cầu Thiết kế mới.',
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text('• Khi yêu cầu hoàn thành, bạn có thể xem link thiết kế 3D trong trang chi tiết yêu cầu.'),
|
||||
Text(
|
||||
'• Khi yêu cầu hoàn thành, bạn có thể xem link thiết kế 3D trong trang chi tiết yêu cầu.',
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -127,10 +135,7 @@ class _ModelHousesPageState extends ConsumerState<ModelHousesPage>
|
||||
),
|
||||
body: TabBarView(
|
||||
controller: _tabController,
|
||||
children: const [
|
||||
_LibraryTab(),
|
||||
_DesignRequestsTab(),
|
||||
],
|
||||
children: const [_LibraryTab(), _DesignRequestsTab()],
|
||||
),
|
||||
floatingActionButton: AnimatedBuilder(
|
||||
animation: _tabController,
|
||||
@@ -141,7 +146,11 @@ class _ModelHousesPageState extends ConsumerState<ModelHousesPage>
|
||||
onPressed: _createNewRequest,
|
||||
backgroundColor: AppColors.primaryBlue,
|
||||
elevation: 4,
|
||||
child: const Icon(Icons.add, color: AppColors.white, size: 28),
|
||||
child: const Icon(
|
||||
Icons.add,
|
||||
color: AppColors.white,
|
||||
size: 28,
|
||||
),
|
||||
)
|
||||
: const SizedBox.shrink();
|
||||
},
|
||||
@@ -160,31 +169,39 @@ class _LibraryTab extends StatelessWidget {
|
||||
padding: const EdgeInsets.all(20),
|
||||
children: const [
|
||||
_LibraryCard(
|
||||
imageUrl: 'https://images.unsplash.com/photo-1600596542815-ffad4c1539a9?w=800&h=200&fit=crop',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1600596542815-ffad4c1539a9?w=800&h=200&fit=crop',
|
||||
title: 'Căn hộ Studio',
|
||||
date: '15/11/2024',
|
||||
description: 'Thiết kế hiện đại cho căn hộ studio 35m², tối ưu không gian sống với gạch men cao cấp và màu sắc hài hòa.',
|
||||
description:
|
||||
'Thiết kế hiện đại cho căn hộ studio 35m², tối ưu không gian sống với gạch men cao cấp và màu sắc hài hòa.',
|
||||
has360View: true,
|
||||
),
|
||||
_LibraryCard(
|
||||
imageUrl: 'https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&h=200&fit=crop',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=800&h=200&fit=crop',
|
||||
title: 'Biệt thự Hiện đại',
|
||||
date: '12/11/2024',
|
||||
description: 'Biệt thự 3 tầng với phong cách kiến trúc hiện đại, sử dụng gạch granite và ceramic premium tạo điểm nhấn.',
|
||||
description:
|
||||
'Biệt thự 3 tầng với phong cách kiến trúc hiện đại, sử dụng gạch granite và ceramic premium tạo điểm nhấn.',
|
||||
has360View: true,
|
||||
),
|
||||
_LibraryCard(
|
||||
imageUrl: 'https://images.unsplash.com/photo-1562663474-6cbb3eaa4d14?w=800&h=200&fit=crop',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1562663474-6cbb3eaa4d14?w=800&h=200&fit=crop',
|
||||
title: 'Nhà phố Tối giản',
|
||||
date: '08/11/2024',
|
||||
description: 'Nhà phố 4x15m với thiết kế tối giản, tận dụng ánh sáng tự nhiên và gạch men màu trung tính.',
|
||||
description:
|
||||
'Nhà phố 4x15m với thiết kế tối giản, tận dụng ánh sáng tự nhiên và gạch men màu trung tính.',
|
||||
has360View: true,
|
||||
),
|
||||
_LibraryCard(
|
||||
imageUrl: 'https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=800&h=200&fit=crop',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=800&h=200&fit=crop',
|
||||
title: 'Chung cư Cao cấp',
|
||||
date: '05/11/2024',
|
||||
description: 'Căn hộ 3PN với nội thất sang trọng, sử dụng gạch marble và ceramic cao cấp nhập khẩu Italy.',
|
||||
description:
|
||||
'Căn hộ 3PN với nội thất sang trọng, sử dụng gạch marble và ceramic cao cấp nhập khẩu Italy.',
|
||||
has360View: true,
|
||||
),
|
||||
],
|
||||
@@ -212,15 +229,15 @@ class _LibraryCard extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Card(
|
||||
elevation: 2,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||
margin: const EdgeInsets.only(bottom: 20),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Chức năng xem chi tiết sẽ được triển khai trong phiên bản tiếp theo'),
|
||||
content: Text(
|
||||
'Chức năng xem chi tiết sẽ được triển khai trong phiên bản tiếp theo',
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
@@ -243,9 +260,7 @@ class _LibraryCard extends StatelessWidget {
|
||||
placeholder: (context, url) => Container(
|
||||
height: 200,
|
||||
color: AppColors.grey100,
|
||||
child: const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
child: const Center(child: CircularProgressIndicator()),
|
||||
),
|
||||
errorWidget: (context, url, error) => Container(
|
||||
height: 200,
|
||||
@@ -381,11 +396,7 @@ class _DesignRequestsTab extends StatelessWidget {
|
||||
}
|
||||
|
||||
/// Design Request Status
|
||||
enum DesignRequestStatus {
|
||||
pending,
|
||||
designing,
|
||||
completed,
|
||||
}
|
||||
enum DesignRequestStatus { pending, designing, completed }
|
||||
|
||||
/// Request Card Widget
|
||||
class _RequestCard extends StatelessWidget {
|
||||
@@ -438,13 +449,13 @@ class _RequestCard extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Card(
|
||||
elevation: 2,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
||||
margin: const EdgeInsets.only(bottom: 16),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
context.push('/model-houses/design-request/${code.replaceAll('#', '')}');
|
||||
context.push(
|
||||
'/model-houses/design-request/${code.replaceAll('#', '')}',
|
||||
);
|
||||
},
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
child: Padding(
|
||||
@@ -490,10 +501,7 @@ class _RequestCard extends StatelessWidget {
|
||||
// Date
|
||||
Text(
|
||||
'Ngày gửi: $date',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
color: AppColors.grey500,
|
||||
),
|
||||
style: const TextStyle(fontSize: 14, color: AppColors.grey500),
|
||||
),
|
||||
|
||||
const SizedBox(height: 8),
|
||||
@@ -501,10 +509,7 @@ class _RequestCard extends StatelessWidget {
|
||||
// Description
|
||||
Text(
|
||||
description,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
color: AppColors.grey900,
|
||||
),
|
||||
style: const TextStyle(fontSize: 14, color: AppColors.grey900),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user