import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../core/theme/app_colors.dart'; import '../../core/utils/date_utils.dart' as du; import '../../core/utils/responsive.dart'; import '../../shared/widgets/form_section.dart'; import '../../shared/widgets/form_field_row.dart'; import 'outing_log_model.dart'; final outingLogDetailProvider = FutureProvider.autoDispose.family((ref, id) async { return OutingLogModel( id: id, visitNo: 'VL202605001', salespersonId: 'u-001', salespersonName: '张三', deptId: 'dept-001', deptName: '市场部', customerName: '华软科技', visitDate: DateTime(2026, 5, 20), visitStartTime: DateTime(2026, 5, 20, 9, 0), visitEndTime: DateTime(2026, 5, 20, 11, 30), visitType: '常规拜访', visitPurpose: '产品演示及方案交流', visitLocation: '深圳市南山区科技园', visitSummary: '向客户展示了公司最新产品功能,客户对数据看板功能比较感兴趣,约定下周安排试用。', nextVisitTime: DateTime(2026, 5, 27), status: '已完成', createTime: DateTime(2026, 5, 20), updateTime: DateTime(2026, 5, 20), ); }); class OutingLogDetailPage extends ConsumerWidget { final String id; const OutingLogDetailPage({super.key, required this.id}); @override Widget build(BuildContext context, WidgetRef ref) { final detailAsync = ref.watch(outingLogDetailProvider(id)); final r = ResponsiveHelper.of(context); return Scaffold( appBar: AppBar(title: const Text('日志详情')), body: detailAsync.when( loading: () => const Center(child: CircularProgressIndicator()), error: (_, __) => const Center(child: Text('加载失败')), data: (log) => Align(alignment: Alignment.topCenter, child: ConstrainedBox( constraints: BoxConstraints(maxWidth: r.detailTwoColumns ? 700 : double.infinity), child: SingleChildScrollView( padding: const EdgeInsets.symmetric(vertical: 8), child: FormSection( title: '外出日志', children: [ FormFieldRow(label: '拜访单号', value: log.visitNo, showArrow: false), FormFieldRow(label: '日期', value: du.DateUtils.formatDate(log.visitDate), showArrow: false), FormFieldRow(label: '拜访客户', value: log.customerName.isEmpty ? '-' : log.customerName, showArrow: false), FormFieldRow(label: '联系人', value: log.contactName.isEmpty ? '-' : log.contactName, showArrow: false), FormFieldRow(label: '拜访方式', value: log.visitType, showArrow: false), FormFieldRow(label: '拜访地点', value: log.visitLocation.isEmpty ? '-' : log.visitLocation, showArrow: false), FormFieldRow(label: '拜访结果', value: log.visitResult.isEmpty ? '-' : log.visitResult, showArrow: false), FormFieldRow(label: '打卡校验', value: log.checkInStatus, showArrow: false), FormFieldRow(label: '创建人', value: log.salespersonName, showArrow: false), FormFieldRow(label: '创建时间', value: du.DateUtils.formatDateTime(log.createTime), showArrow: false), const SizedBox(height: 8), const Padding( padding: EdgeInsets.symmetric(horizontal: 14), child: Text('日志内容', style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600, color: AppColors.textSecondary)), ), Padding( padding: const EdgeInsets.all(14), child: Text(log.visitSummary.isEmpty ? '-' : log.visitSummary, style: const TextStyle(color: AppColors.textPrimary, fontSize: 14, height: 1.6)), ), ], ), ), ), ), ), ); } }