2026.6.4 个人信息
parent
85624e1cfd
commit
1105dbb2cf
|
|
@ -1,3 +1,7 @@
|
|||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.enableJetifier=true
|
||||
# This builtInKotlin flag was added automatically by Flutter migrator
|
||||
android.builtInKotlin=false
|
||||
# This newDsl flag was added automatically by Flutter migrator
|
||||
android.newDsl=false
|
||||
|
|
|
|||
|
|
@ -0,0 +1,205 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:qhd_prevention/pages/home/unit/unit_join_detail_page.dart';
|
||||
import 'package:qhd_prevention/pages/home/unit/unit_quit_apply_page.dart';
|
||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||
import 'package:qhd_prevention/services/SessionService.dart';
|
||||
import 'package:qhd_prevention/services/StorageService.dart';
|
||||
|
||||
import 'package:qhd_prevention/tools/tools.dart';
|
||||
import 'package:qhd_prevention/customWidget/custom_button.dart';
|
||||
import 'package:qhd_prevention/http/ApiService.dart';
|
||||
|
||||
class UnitServiceListPage extends StatefulWidget {
|
||||
const UnitServiceListPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_UnitServiceListPageState createState() => _UnitServiceListPageState();
|
||||
}
|
||||
|
||||
class _UnitServiceListPageState extends State<UnitServiceListPage> {
|
||||
// Data and state variables
|
||||
List<dynamic> list = [];
|
||||
int currentPage = 1;
|
||||
int rows = 10;
|
||||
int totalPage = 1;
|
||||
bool isLoading = false;
|
||||
|
||||
List<Map<String, dynamic>> flowList = [];
|
||||
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
final ScrollController _scrollController = ScrollController();
|
||||
final employmentFlag = {'0': '离职', '1': '在职', '3': '未入职'};
|
||||
final statusInfo = {
|
||||
'1': '待审批',
|
||||
'2': '通过',
|
||||
'3': '驳回',
|
||||
};
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_fetchData();
|
||||
_scrollController.addListener(_onScroll);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_scrollController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _onScroll() {
|
||||
if (_scrollController.position.pixels >=
|
||||
_scrollController.position.maxScrollExtent &&
|
||||
!isLoading) {
|
||||
if (currentPage < totalPage) {
|
||||
currentPage++;
|
||||
_fetchData();
|
||||
}
|
||||
}
|
||||
}
|
||||
String formatDate(String dateTimeStr) {
|
||||
if (dateTimeStr == null || dateTimeStr.isEmpty) {
|
||||
return '';
|
||||
}
|
||||
// 解析字符串为DateTime对象
|
||||
DateTime dateTime = DateTime.parse(dateTimeStr);
|
||||
final time = dateTime == null ? '' : '${dateTime.year}年${dateTime.month}月${dateTime.day}日';
|
||||
// 格式化为年月日
|
||||
return time;
|
||||
}
|
||||
Future<void> _fetchData() async {
|
||||
// if (isLoading) return;
|
||||
// setState(() => isLoading = true);
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// final data = {
|
||||
// 'pageIndex': currentPage,
|
||||
// 'pageSize': rows,
|
||||
// 'eqUserId': SessionService.instance.accountId
|
||||
// };
|
||||
// final response = await BasicInfoApi.getFirmListByUser(data);
|
||||
// setState(() {
|
||||
// if (currentPage == 1) {
|
||||
// list = response['data'];
|
||||
// } else {
|
||||
// list.addAll(response['data']);
|
||||
// }
|
||||
// Map<String, dynamic> page = response['page'];
|
||||
// totalPage = page['totalPage'] ?? 1;
|
||||
// isLoading = false;
|
||||
// });
|
||||
// } catch (e) {
|
||||
// print('Error fetching data: $e');
|
||||
// setState(() => isLoading = false);
|
||||
// }
|
||||
}
|
||||
|
||||
//查看
|
||||
void _goToDetail(Map<String, dynamic> item) async {
|
||||
await pushPage(
|
||||
UnitJoinDetailPage(firmId: item['id'],),
|
||||
context,
|
||||
);
|
||||
_fetchData();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Widget _buildListItem(Map<String, dynamic> item) {
|
||||
return Card(
|
||||
color: Colors.white,
|
||||
margin: const EdgeInsets.all(8.0),
|
||||
child: InkWell(
|
||||
onTap: () => _goToDetail(item),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'服务单位名称:${item['corpinfoName'] ?? ''}',
|
||||
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"所属公司: ${item['corpinfoName'] ?? ''}(相关方)",
|
||||
maxLines: 5,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
Text(
|
||||
"项目名称: ${item['corpinfoName'] ?? ''}",
|
||||
maxLines: 5,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
"项目类型: ${statusInfo['${item['status']}'] ?? ''}",
|
||||
maxLines: 5,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Widget _buildListContent() {
|
||||
if (isLoading && list.isEmpty) {
|
||||
// 初始加载时显示居中的加载指示器
|
||||
return Center(child: CircularProgressIndicator());
|
||||
} else if (list.isEmpty) {
|
||||
// 没有数据
|
||||
return NoDataWidget.show();
|
||||
} else {
|
||||
// 有数据或加载更多
|
||||
return ListView.builder(
|
||||
padding: EdgeInsets.zero,
|
||||
|
||||
controller: _scrollController,
|
||||
itemCount: list.length + (isLoading ? 1 : 0),
|
||||
itemBuilder: (context, index) {
|
||||
if (index >= list.length) {
|
||||
// 加载更多时在列表底部显示加载指示器
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 16.0),
|
||||
child: Center(child: CircularProgressIndicator()),
|
||||
);
|
||||
}
|
||||
return _buildListItem(list[index]);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
key: _scaffoldKey,
|
||||
appBar: MyAppbar(title: '服务单位', actions: []),
|
||||
|
||||
body: SafeArea(child: _buildListContent()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import 'package:qhd_prevention/customWidget/work_tab_icon_grid.dart';
|
|||
import 'package:qhd_prevention/http/ApiService.dart';
|
||||
import 'package:qhd_prevention/customWidget/IconBadgeButton.dart';
|
||||
import 'package:qhd_prevention/pages/home/unit/unit_join_list_page.dart';
|
||||
import 'package:qhd_prevention/pages/home/unit/unit_service_list_page.dart';
|
||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||
import 'package:qhd_prevention/tools/tools.dart';
|
||||
import 'package:qhd_prevention/common/route_aware_state.dart';
|
||||
|
|
@ -144,7 +145,8 @@ class _UnitTabPageState extends RouteAwareState<UnitTabPage> {
|
|||
final title = _masterButtons[index]['title'] as String;
|
||||
switch (title) {
|
||||
case '服务单位管理':
|
||||
ToastUtil.showNormal(context, '您还没有参与项目');
|
||||
// ToastUtil.showNormal(context, '您还没有参与项目');
|
||||
pushPage(UnitServiceListPage(), context);
|
||||
break;
|
||||
case '就职单位管理':
|
||||
pushPage(UnitJoinListPage(), context);
|
||||
|
|
|
|||
|
|
@ -402,7 +402,8 @@ class _LoginPageState extends State<LoginPage> {
|
|||
const WebViewPage(
|
||||
name: "用户服务协议",
|
||||
url:
|
||||
'http://47.92.102.56:7811/file/xieyi/zsyhxy.htm',
|
||||
'https://qaaq.qhdsafety.com/help/gwj/gwj-zsyhxy.htm',
|
||||
// 'http://47.92.102.56:7811/file/xieyi/zsyhxy.htm',
|
||||
),
|
||||
context,
|
||||
);
|
||||
|
|
@ -428,7 +429,8 @@ class _LoginPageState extends State<LoginPage> {
|
|||
const WebViewPage(
|
||||
name: "隐私政策",
|
||||
url:
|
||||
'http://47.92.102.56:7811/file/xieyi/zsysq.htm',
|
||||
'https://qaaq.qhdsafety.com/help/gwj/gwj-zsysq.htm',
|
||||
// 'http://47.92.102.56:7811/file/xieyi/zsysq.htm',
|
||||
),
|
||||
context,
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue