203 lines
7.6 KiB
Dart
203 lines
7.6 KiB
Dart
import 'package:ef/ef.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:vbvs_app/common/color/appFontsize.dart';
|
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
|
import 'package:vbvs_app/pages/mh_page/issue_preview_widget.dart';
|
|
|
|
import '../../controller/mh_controller/issue_controller.dart';
|
|
|
|
class IssueListPage extends GetView<IssueListController> {
|
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
BoxConstraints? bodysize;
|
|
|
|
IssueListController controller = Get.put(IssueListController());
|
|
// ScrollController scrollController = ScrollController();
|
|
// IssueListPage() {
|
|
// controller.model.issueList!.clear();
|
|
// controller.initData();
|
|
|
|
// scrollController.addListener(() {
|
|
// if (scrollController.position.pixels ==
|
|
// scrollController.position.maxScrollExtent &&
|
|
// controller.model.hasMore) {
|
|
// controller.initData();
|
|
// controller.updateAll();
|
|
// }
|
|
// });
|
|
// }
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return LayoutBuilder(builder: (context, cc) {
|
|
bodysize = cc;
|
|
return GestureDetector(
|
|
// onTap: () => FocusScope.of(context).unfocus(),,
|
|
child: Container(
|
|
decoration: const BoxDecoration(
|
|
image: DecorationImage(
|
|
image: AssetImage('assets/images/new_background.png'), // 本地图片
|
|
fit: BoxFit.fill, // 填满整个 Container
|
|
),
|
|
),
|
|
child: Scaffold(
|
|
backgroundColor: Colors.transparent,
|
|
appBar: AppBar(
|
|
backgroundColor: Colors.transparent,
|
|
automaticallyImplyLeading: false,
|
|
iconTheme: IconThemeData(color: Colors.white),
|
|
titleSpacing: 0,
|
|
title: SizedBox(
|
|
width: double.infinity,
|
|
height: 180.rpx,
|
|
child: Stack(
|
|
alignment: Alignment.center,
|
|
children: [
|
|
// 中间居中的标题
|
|
Text(
|
|
'问题与帮助',
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 30.rpx,
|
|
),
|
|
),
|
|
// 左侧图标
|
|
Positioned(
|
|
left: 0.rpx,
|
|
child: returnIconButtomNew(),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
actions: [],
|
|
centerTitle: false,
|
|
),
|
|
// backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
body: Container(
|
|
width: bodysize!.maxWidth,
|
|
height: bodysize!.maxHeight * 1,
|
|
decoration: BoxDecoration(
|
|
// color: AppColors.bg_color,
|
|
// color: Color(0xFFF6F6F6),
|
|
),
|
|
child: Obx(() {
|
|
if (controller.model.isLoading) {
|
|
return Center(child: CircularProgressIndicator()); // ✅ 加载中
|
|
}
|
|
|
|
if (controller.model.issueList.isEmpty) {
|
|
return Container(
|
|
width: MediaQuery.sizeOf(context).width,
|
|
height: 100,
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(31, 27, 0, 0),
|
|
child: Align(
|
|
alignment: AlignmentDirectional(-1, 0),
|
|
child: Text(
|
|
'暂无内容!',
|
|
style: TextStyle(
|
|
fontFamily: 'Readex Pro',
|
|
color: Color(0xFF9EA4B7),
|
|
fontSize: AppFontsize.title_size,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
// 有数据时渲染列表
|
|
return ListView(
|
|
children: controller.model.issueList!
|
|
.asMap()
|
|
.entries
|
|
.map((e) => IssuePreviewWidget(
|
|
index: e.key,
|
|
issueListController: controller,
|
|
))
|
|
.toList(),
|
|
);
|
|
}),
|
|
|
|
// Obx(() {
|
|
// return Visibility(
|
|
// visible: controller.model.issueList != null &&
|
|
// controller.model.issueList.isNotEmpty,
|
|
// replacement: Container(
|
|
// width: MediaQuery.sizeOf(context).width,
|
|
// height: 100,
|
|
// decoration: BoxDecoration(
|
|
// color: FlutterFlowTheme.of(context).secondaryBackground,
|
|
// ),
|
|
// child: Padding(
|
|
// padding: EdgeInsetsDirectional.fromSTEB(31, 27, 0, 0),
|
|
// child: Column(
|
|
// mainAxisSize: MainAxisSize.max,
|
|
// children: [
|
|
// Align(
|
|
// alignment: AlignmentDirectional(-1, 0),
|
|
// child: Text(
|
|
// '暂无内容!',
|
|
// style: FlutterFlowTheme.of(context)
|
|
// .bodyMedium
|
|
// .override(
|
|
// fontFamily: 'Readex Pro',
|
|
// color: Color(0xFF9EA4B7),
|
|
// fontSize: AppFontsize.title_size,
|
|
// letterSpacing: 0,
|
|
// fontWeight: FontWeight.w600,
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// child: Column(
|
|
// mainAxisSize: MainAxisSize.max,
|
|
// children: [
|
|
// // TitleComponentWidget(
|
|
// // titleName: '问题与帮助',
|
|
// // ),
|
|
// Flexible(
|
|
// child: Padding(
|
|
// padding:
|
|
// EdgeInsetsDirectional.fromSTEB(15, 13, 15, 15),
|
|
// child: Container(
|
|
// width: bodysize!.maxWidth,
|
|
// decoration: BoxDecoration(
|
|
// // color: Colors.white,
|
|
// // borderRadius: BorderRadius.circular(16),
|
|
// ),
|
|
// child: Obx(() => ListView(
|
|
// padding: const EdgeInsets.fromLTRB(
|
|
// 0,
|
|
// 5,
|
|
// 0,
|
|
// 0,
|
|
// ),
|
|
// shrinkWrap: true,
|
|
// scrollDirection: Axis.vertical,
|
|
// children: (controller.model.issueList!
|
|
// .asMap()
|
|
// .entries
|
|
// .map((e) => IssuePreviewWidget(
|
|
// index: e.key,
|
|
// issueListController: controller))
|
|
// .toList() as List<Widget>))),
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// );
|
|
// }),
|
|
),
|
|
),
|
|
));
|
|
});
|
|
}
|
|
}
|