Merge remote-tracking branch 'origin/main'
# Conflicts: # lib/http/ApiService.dart # pubspec.yamlmain
commit
acb1b59ebb
|
@ -1,48 +1,39 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:qhd_prevention/tools/tools.dart';
|
import 'package:qhd_prevention/tools/tools.dart';
|
||||||
|
|
||||||
import 'HttpManager.dart';
|
import 'HttpManager.dart';
|
||||||
|
|
||||||
class ApiService {
|
class ApiService {
|
||||||
|
// static const String basePath = "http://192.168.0.25:28199/";
|
||||||
|
// static const String basePath = "http://192.168.20.240:8500/integrated_whb";
|
||||||
|
// static const String baseFacePath = "http://192.168.0.25:38199/";
|
||||||
|
// 人脸识别服务
|
||||||
|
// static const String baseFacePath = "https://qaaqwh.qhdsafety.com/whb_stu_face/";
|
||||||
|
|
||||||
/// 人脸识别服务
|
// static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb/";
|
||||||
// static const String baseFacePath =
|
|
||||||
// "https://qaaqwh.qhdsafety.com/whb_stu_face/";
|
|
||||||
//
|
|
||||||
// /// 登录及其他管理后台接口
|
|
||||||
// static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb";
|
|
||||||
//
|
|
||||||
// /// 图片文件服务
|
|
||||||
// static const String baseImgPath = "https://file.zcloudchina.com/YTHFile";
|
// static const String baseImgPath = "https://file.zcloudchina.com/YTHFile";
|
||||||
//
|
// static const String adminPath = "https://qaaqwh.qhdsafety.com/integrated_whb/";
|
||||||
// /// 管理后台统一路径
|
// static const String projectManagerUrl = 'https://pm.qhdsafety.com/zy-projectManage/';
|
||||||
// static const String adminPath =
|
// static const String publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUoHAavCikaZxjlDM6Km8cX+ye78F4oF39AcEfnE1p2Yn9pJ9WFxYZ4Vkh6F8SKMi7k4nYsKceqB1RwG996SvHQ5C3pM3nbXCP4K15ad6QhN4a7lzlbLhiJcyIKszvvK8ncUDw8mVQ0j/2mwxv05yH6LN9OKU6Hzm1ninpWeE+awIDAQAB'
|
||||||
// "https://qaaqwh.qhdsafety.com/integrated_whb/";
|
|
||||||
//
|
|
||||||
// /// 项目管理系统
|
|
||||||
// static const String projectManagerUrl =
|
|
||||||
// 'https://pm.qhdsafety.com/zy-projectManage';
|
|
||||||
/// 人脸识别服务
|
/// 人脸识别服务
|
||||||
static const String baseFacePath =
|
static const String baseFacePath =
|
||||||
"http://192.168.0.25:38199/";
|
"https://qaaqwh.qhdsafety.com/whb_stu_face/";
|
||||||
|
|
||||||
/// 登录及其他管理后台接口
|
/// 登录及其他管理后台接口
|
||||||
static const String basePath = "http://192.168.20.240:8500/integrated_whb/";
|
static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb";
|
||||||
|
|
||||||
/// 图片文件服务
|
/// 图片文件服务
|
||||||
static const String baseImgPath = "https://file.zcloudchina.com/YTHFile";
|
static const String baseImgPath = "https://file.zcloudchina.com/YTHFile";
|
||||||
|
|
||||||
/// 管理后台统一路径
|
/// 管理后台统一路径
|
||||||
static const String adminPath =
|
static const String adminPath =
|
||||||
"http://192.168.20.240:8500/integrated_whb/";
|
"https://qaaqwh.qhdsafety.com/integrated_whb/";
|
||||||
|
|
||||||
/// 项目管理系统
|
/// 项目管理系统
|
||||||
static const String projectManagerUrl =
|
static const String projectManagerUrl =
|
||||||
'https://pm.qhdsafety.com/zy-projectManage';
|
'https://pm.qhdsafety.com/zy-projectManage';
|
||||||
|
|
||||||
/// RSA 秘钥
|
/// RSA 公钥
|
||||||
static const publicKey = '''
|
static const publicKey = '''
|
||||||
-----BEGIN PUBLIC KEY-----
|
-----BEGIN PUBLIC KEY-----
|
||||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUoHAavCikaZxjlDM6Km8cX+ye
|
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUoHAavCikaZxjlDM6Km8cX+ye
|
||||||
|
@ -229,7 +220,7 @@ U6Hzm1ninpWeE+awIDAQAB
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// TODO -------------–-------------------- 首页学习园地 -------------–--------------------
|
/// TODO -------------–-------------------- 首页学习园地 -------------–--------------------
|
||||||
/// 我的任务列表
|
/// 我的任务列表
|
||||||
static Future<Map<String, dynamic>> getStudyList(int page) {
|
static Future<Map<String, dynamic>> getStudyList(int page) {
|
||||||
return HttpManager().request(
|
return HttpManager().request(
|
||||||
|
@ -443,6 +434,74 @@ U6Hzm1ninpWeE+awIDAQAB
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 通知列表
|
||||||
|
static Future<Map<String, dynamic>> getNotifList(String showCount, String currentPage,String keyWord) {
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/notice/list',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"showCount" : showCount,
|
||||||
|
"currentPage" : currentPage,
|
||||||
|
"KEYWORDS":keyWord,
|
||||||
|
"corpinfoId" :SessionService.instance.corpinfoId,
|
||||||
|
"CORPINFO_ID":SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID":SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 通知列表-企业
|
||||||
|
static Future<Map<String, dynamic>> getNotifEnterprise(String showCount, String currentPage,String keyWord) {
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/notice/listForCp',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"showCount" : showCount,
|
||||||
|
"currentPage" : currentPage,
|
||||||
|
"KEYWORDS":keyWord,
|
||||||
|
"loginUserId" :SessionService.instance.loginUserId,
|
||||||
|
"CORPINFO_ID":SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID":SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// 通知详情
|
||||||
|
static Future<Map<String, dynamic>> getNotifDetail(String id) {
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/notice/goEdit',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"NOTICECORPUSERID_ID":id,
|
||||||
|
"loginUserId":SessionService.instance.loginUserId,
|
||||||
|
"corpinfoId":SessionService.instance.corpinfoId,
|
||||||
|
"ISMAIN":"0",
|
||||||
|
"CORPINFO_ID":SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID":SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 通知详情-企业
|
||||||
|
static Future<Map<String, dynamic>> getNotifEnterpriseDetail(String id) {
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/notice/goEditForPc',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"NOTICECORPUSERID_ID":id,
|
||||||
|
"loginUserId":SessionService.instance.loginUserId,
|
||||||
|
"corpinfoId":SessionService.instance.corpinfoId,
|
||||||
|
"ISMAIN":"0",
|
||||||
|
"CORPINFO_ID":SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID":SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
/// 更新人脸信息
|
/// 更新人脸信息
|
||||||
static Future<Map<String, dynamic>> reloadMyFace(String imagePath) async {
|
static Future<Map<String, dynamic>> reloadMyFace(String imagePath) async {
|
||||||
final file = File(imagePath);
|
final file = File(imagePath);
|
||||||
|
@ -465,6 +524,33 @@ U6Hzm1ninpWeE+awIDAQAB
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 删除通知-企业
|
||||||
|
static Future<Map<String, dynamic>> deleteNotif(String id) {
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/notice/delete',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"NOTICECORPUSERID_ID":id,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 获取离岗管理列表
|
||||||
|
static Future<Map<String, dynamic>> getAiAlarmList(String showCount, String currentPage,String keyWord) {
|
||||||
|
|
||||||
|
return HttpManager().request(
|
||||||
|
basePath,
|
||||||
|
'/app/aiwarning/list?showCount=$showCount¤tPage=$currentPage',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"tm": DateTime.now().millisecondsSinceEpoch,
|
||||||
|
"KEYWORDS": keyWord, //关键字模糊查询
|
||||||
|
"CORPINFO_ID":SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID":SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import 'package:qhd_prevention/pages/home/work/risk_list_page.dart';
|
||||||
|
|
||||||
import '../../tools/tools.dart';
|
import '../../tools/tools.dart';
|
||||||
import '../home/userInfo_page.dart';
|
import '../home/userInfo_page.dart';
|
||||||
|
import '../home/work/ai_alarm_page.dart';
|
||||||
import '../home/work/danger_page.dart';
|
import '../home/work/danger_page.dart';
|
||||||
import '../home/work/danger_repair_page.dart';
|
import '../home/work/danger_repair_page.dart';
|
||||||
|
|
||||||
|
@ -22,6 +23,7 @@ enum AppItem {
|
||||||
specialRecord, // 专项检查中的隐患记录
|
specialRecord, // 专项检查中的隐患记录
|
||||||
supervisionRectification, // 监管帮扶中的隐患整改
|
supervisionRectification, // 监管帮扶中的隐患整改
|
||||||
supervisionRecord, // 监管帮扶中的隐患记录
|
supervisionRecord, // 监管帮扶中的隐患记录
|
||||||
|
aiAlarm, // 监管帮扶中的隐患记录
|
||||||
}
|
}
|
||||||
|
|
||||||
class ApplicationPage extends StatelessWidget {
|
class ApplicationPage extends StatelessWidget {
|
||||||
|
@ -42,26 +44,6 @@ class ApplicationPage extends StatelessWidget {
|
||||||
// 跳转到检查记录页面
|
// 跳转到检查记录页面
|
||||||
pushPage(CheckRecordPage(), context);
|
pushPage(CheckRecordPage(), context);
|
||||||
break;
|
break;
|
||||||
case AppItem.riskRecord:
|
|
||||||
// 跳转到隐患记录页面
|
|
||||||
pushPage(DangerWaitListPage(DangerType.ristRecord), context);
|
|
||||||
break;
|
|
||||||
case AppItem.pendingRectification:
|
|
||||||
// 跳转到待整改隐患页面
|
|
||||||
pushPage(DangerWaitListPage(DangerType.wait), context);
|
|
||||||
break;
|
|
||||||
case AppItem.overdueRectification:
|
|
||||||
// 跳转到超期未整改页面
|
|
||||||
pushPage(DangerWaitListPage(DangerType.expired), context);
|
|
||||||
break;
|
|
||||||
case AppItem.riskAcceptance:
|
|
||||||
// 跳转到隐患验收页面
|
|
||||||
pushPage(DangerWaitListPage(DangerType.waitAcceptance), context);
|
|
||||||
break;
|
|
||||||
case AppItem.acceptedRisk:
|
|
||||||
// 跳转到已验收隐患页面
|
|
||||||
pushPage(DangerWaitListPage(DangerType.acceptanced), context);
|
|
||||||
break;
|
|
||||||
case AppItem.specialRectification:
|
case AppItem.specialRectification:
|
||||||
// 跳转到专项检查隐患整改页面
|
// 跳转到专项检查隐患整改页面
|
||||||
//Navigator.push(context, MaterialPageRoute(builder: (_) => SpecialRectificationPage()));
|
//Navigator.push(context, MaterialPageRoute(builder: (_) => SpecialRectificationPage()));
|
||||||
|
@ -78,6 +60,31 @@ class ApplicationPage extends StatelessWidget {
|
||||||
// 跳转到监管帮扶隐患记录页面
|
// 跳转到监管帮扶隐患记录页面
|
||||||
//Navigator.push(context, MaterialPageRoute(builder: (_) => SupervisionRecordPage()));
|
//Navigator.push(context, MaterialPageRoute(builder: (_) => SupervisionRecordPage()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AppItem.riskRecord:
|
||||||
|
// 跳转到隐患记录页面
|
||||||
|
pushPage(DangerWaitListPage(DangerType.ristRecord,1), context);
|
||||||
|
break;
|
||||||
|
case AppItem.pendingRectification:
|
||||||
|
// 跳转到待整改隐患页面
|
||||||
|
pushPage(DangerWaitListPage(DangerType.wait,2), context);
|
||||||
|
break;
|
||||||
|
case AppItem.overdueRectification:
|
||||||
|
// 跳转到超期未整改页面
|
||||||
|
pushPage(DangerWaitListPage(DangerType.expired,3), context);
|
||||||
|
break;
|
||||||
|
case AppItem.riskAcceptance:
|
||||||
|
// 跳转到隐患验收页面
|
||||||
|
pushPage(DangerWaitListPage(DangerType.waitAcceptance,4), context);
|
||||||
|
break;
|
||||||
|
case AppItem.acceptedRisk:
|
||||||
|
// 跳转到已验收隐患页面
|
||||||
|
pushPage(DangerWaitListPage(DangerType.acceptanced,5), context);
|
||||||
|
break;
|
||||||
|
case AppItem.aiAlarm:
|
||||||
|
// 跳转到隐患排查页面
|
||||||
|
pushPage(AiAlarmPage(), context);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,16 +100,7 @@ class ApplicationPage extends StatelessWidget {
|
||||||
{'item': AppItem.checkRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '检查记录', 'num': 0},
|
{'item': AppItem.checkRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '检查记录', 'num': 0},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'title': '隐患治理',
|
|
||||||
'list': [
|
|
||||||
{'item': AppItem.riskRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '隐患记录', 'num': 1},
|
|
||||||
{'item': AppItem.pendingRectification, 'icon': 'assets/icon-apps/icon-zl-3.png', 'title': '待整改隐患', 'num': 3},
|
|
||||||
{'item': AppItem.overdueRectification, 'icon': 'assets/icon-apps/icon-zl-4.png', 'title': '超期未整改', 'num': 0},
|
|
||||||
{'item': AppItem.riskAcceptance, 'icon': 'assets/icon-apps/icon-yh-1.png', 'title': '隐患验收', 'num': 2},
|
|
||||||
{'item': AppItem.acceptedRisk, 'icon': 'assets/icon-apps/icon-zl-1.png', 'title': '已验收隐患', 'num': 0},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
'title': '专项检查',
|
'title': '专项检查',
|
||||||
'list': [
|
'list': [
|
||||||
|
@ -117,6 +115,25 @@ class ApplicationPage extends StatelessWidget {
|
||||||
{'item': AppItem.supervisionRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '隐患记录', 'num': 0},
|
{'item': AppItem.supervisionRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '隐患记录', 'num': 0},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'title': '隐患治理',
|
||||||
|
'list': [
|
||||||
|
{'item': AppItem.riskRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '隐患记录', 'num': 0},
|
||||||
|
{'item': AppItem.pendingRectification, 'icon': 'assets/icon-apps/icon-zl-3.png', 'title': '待整改隐患', 'num': 0},
|
||||||
|
{'item': AppItem.overdueRectification, 'icon': 'assets/icon-apps/icon-zl-4.png', 'title': '超期未整改', 'num': 0},
|
||||||
|
{'item': AppItem.riskAcceptance, 'icon': 'assets/icon-apps/icon-yh-1.png', 'title': '隐患验收', 'num': 0},
|
||||||
|
{'item': AppItem.acceptedRisk, 'icon': 'assets/icon-apps/icon-zl-1.png', 'title': '已验收隐患', 'num': 0},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'title': '监测预警',
|
||||||
|
'list': [
|
||||||
|
{'item': AppItem.aiAlarm, 'icon': 'assets/icon-apps/icon-pc-1.png', 'title': 'AI报警', 'num': 0},
|
||||||
|
// {'item': AppItem.supervisionRecord, 'icon': 'assets/icon-apps/icon-zl-2.png', 'title': '隐患记录', 'num': 0},
|
||||||
|
],
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
@ -128,7 +145,7 @@ class ApplicationPage extends StatelessWidget {
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
return ClipRRect(
|
return ClipRRect(
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/images/apps-banner.jpg',
|
'assets/images/apps-banner.png',
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -333,13 +333,13 @@ class _HomePageState extends State<HomePage> {
|
||||||
if (index == 1) {
|
if (index == 1) {
|
||||||
pushPage(DangerPage(), context);
|
pushPage(DangerPage(), context);
|
||||||
} else if (index == 2) {
|
} else if (index == 2) {
|
||||||
pushPage(DangerWaitListPage(DangerType.wait), context);
|
pushPage(DangerWaitListPage(DangerType.wait,2), context);
|
||||||
} else if (index == 3) {
|
} else if (index == 3) {
|
||||||
pushPage(DangerWaitListPage(DangerType.expired), context);
|
pushPage(DangerWaitListPage(DangerType.expired,3), context);
|
||||||
} else if (index == 4) {
|
} else if (index == 4) {
|
||||||
pushPage(DangerWaitListPage(DangerType.waitAcceptance), context);
|
pushPage(DangerWaitListPage(DangerType.waitAcceptance,4), context);
|
||||||
} else if (index == 5) {
|
} else if (index == 5) {
|
||||||
pushPage(DangerWaitListPage(DangerType.acceptance), context);
|
pushPage(DangerWaitListPage(DangerType.acceptance,5), context);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|
|
@ -0,0 +1,188 @@
|
||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:qhd_prevention/customWidget/danner_repain_item.dart';
|
||||||
|
import 'package:qhd_prevention/customWidget/department_picker.dart';
|
||||||
|
import 'package:qhd_prevention/customWidget/search_bar_widget.dart';
|
||||||
|
import 'package:qhd_prevention/pages/home/scan_page.dart';
|
||||||
|
import 'package:qhd_prevention/pages/home/work/risk_list_page.dart';
|
||||||
|
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||||
|
import 'package:qhd_prevention/tools/SmallWidget.dart';
|
||||||
|
import 'package:qhd_prevention/tools/tools.dart';
|
||||||
|
|
||||||
|
import '../../../http/ApiService.dart';
|
||||||
|
|
||||||
|
class AiAlarmPage extends StatefulWidget {
|
||||||
|
const AiAlarmPage({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
_AiAlarmPageState createState() => _AiAlarmPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _AiAlarmPageState extends State<AiAlarmPage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
|
||||||
|
late List<dynamic> _list = [];
|
||||||
|
int pageNum = 1;
|
||||||
|
|
||||||
|
// 模拟数据
|
||||||
|
final List<NotificationItem> _notifications = List.generate(10, (i) {
|
||||||
|
bool read = i % 3 == 0;
|
||||||
|
String title = '测试数据标题标题 ${i + 1}';
|
||||||
|
String time = '2025-06-${10 + i} 12:3${i}';
|
||||||
|
return NotificationItem(title, time);
|
||||||
|
});
|
||||||
|
final List<Category> data = [
|
||||||
|
Category(
|
||||||
|
id: '1',
|
||||||
|
title: '分类一',
|
||||||
|
children: [
|
||||||
|
Category(id: '1-1', title: '子项 1-1'),
|
||||||
|
Category(id: '1-2', title: '子项 1-2'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Category(id: '2', title: '分类二'),
|
||||||
|
Category(
|
||||||
|
id: '3',
|
||||||
|
title: '分类三',
|
||||||
|
children: [
|
||||||
|
Category(
|
||||||
|
id: '3-1',
|
||||||
|
title: '子项 3-1',
|
||||||
|
children: [Category(id: '3-1-1', title: '子项 3-1-1')],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
];
|
||||||
|
final TextEditingController _searchController = TextEditingController();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_getAiAlarmList("");
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handleItemTap(NotificationItem item, int index) {
|
||||||
|
print("点击了是: ${item.title}");
|
||||||
|
pushPage(RiskListPage(), context);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示分类选择器
|
||||||
|
void showCategoryPicker() {
|
||||||
|
showModalBottomSheet(
|
||||||
|
context: context,
|
||||||
|
isScrollControlled: true,
|
||||||
|
barrierColor: Colors.black54,
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
builder:
|
||||||
|
(ctx) => DepartmentPicker(
|
||||||
|
data: data,
|
||||||
|
onSelected: (selectedId) {
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _getAiAlarmList(String keyWord) async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.getAiAlarmList("-1", pageNum.toString(),keyWord);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
final List<dynamic> newList = result['varList'] ?? [];
|
||||||
|
setState(() {
|
||||||
|
_list.addAll(newList);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: MyAppbar(
|
||||||
|
title: "AI报警",
|
||||||
|
),
|
||||||
|
body: SafeArea(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
// Search bar
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(10),
|
||||||
|
child: SearchBarWidget(
|
||||||
|
showResetButton: true,
|
||||||
|
onInputTap: () {
|
||||||
|
showCategoryPicker();
|
||||||
|
},
|
||||||
|
hintText: "",
|
||||||
|
isClickableOnly: true,
|
||||||
|
onSearch: (text) {
|
||||||
|
// print('----------');
|
||||||
|
_getAiAlarmList(text);
|
||||||
|
},
|
||||||
|
controller: _searchController,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
// List
|
||||||
|
Expanded(
|
||||||
|
child: _list.isEmpty
|
||||||
|
? Center(child: Text('暂无数据'))
|
||||||
|
: ListView.separated(
|
||||||
|
itemCount: _notifications.length,
|
||||||
|
separatorBuilder: (_, __) => const SizedBox(),
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
// NotificationItem item = _notifications[index];
|
||||||
|
// return GestureDetector(
|
||||||
|
// onTap: () => _handleItemTap(item, index),
|
||||||
|
// child: DannerRepainItem(
|
||||||
|
// title: '测试--------new',
|
||||||
|
// details: [
|
||||||
|
// '清单类型:测试',
|
||||||
|
// '排查周期:测试',
|
||||||
|
// '包含检查项:3',
|
||||||
|
// '负责人:是测试',
|
||||||
|
// '起始时间:2025-6-20',
|
||||||
|
// '',
|
||||||
|
// '测试一下是否跳过时间',
|
||||||
|
// ],
|
||||||
|
// showBottomTags: true,
|
||||||
|
// bottomTags: [
|
||||||
|
// riskTagText(1, "重大风险:0"),
|
||||||
|
// riskTagText(2, "较大:3"),
|
||||||
|
// riskTagText(3, "一般:1"),
|
||||||
|
// riskTagText(4, "低:0"),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 模拟数据模版
|
||||||
|
class NotificationItem {
|
||||||
|
final String title;
|
||||||
|
final String time;
|
||||||
|
|
||||||
|
NotificationItem(this.title, this.time);
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import 'package:qhd_prevention/pages/home/work/danger_repair_page.dart';
|
||||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||||
import 'package:qhd_prevention/tools/h_colors.dart';
|
import 'package:qhd_prevention/tools/h_colors.dart';
|
||||||
import 'package:qhd_prevention/tools/tools.dart';
|
import 'package:qhd_prevention/tools/tools.dart';
|
||||||
|
import '../../app/application_page.dart';
|
||||||
import '/customWidget/search_bar_widget.dart';
|
import '/customWidget/search_bar_widget.dart';
|
||||||
|
|
||||||
enum DangerType {
|
enum DangerType {
|
||||||
|
@ -21,8 +22,10 @@ enum DangerType {
|
||||||
const DangerType(this.displayName, this.detailTitle);
|
const DangerType(this.displayName, this.detailTitle);
|
||||||
}
|
}
|
||||||
class DangerWaitListPage extends StatefulWidget {
|
class DangerWaitListPage extends StatefulWidget {
|
||||||
const DangerWaitListPage(this.dangerType,{super.key});
|
const DangerWaitListPage(this.dangerType, this.appItem,{super.key});
|
||||||
final DangerType dangerType;
|
final DangerType dangerType;
|
||||||
|
final int appItem;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<DangerWaitListPage> createState() => _DangerWaitListPageState();
|
State<DangerWaitListPage> createState() => _DangerWaitListPageState();
|
||||||
}
|
}
|
||||||
|
@ -47,9 +50,34 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
|
||||||
final TextEditingController _searchController = TextEditingController();
|
final TextEditingController _searchController = TextEditingController();
|
||||||
|
|
||||||
// 隐患等级文本
|
// 隐患等级文本
|
||||||
final List<String> _levelTexts = ["较大隐患","一般隐患"];
|
final List<String> _levelTexts = ["重大隐患","一般隐患"];
|
||||||
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
|
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
switch(widget.appItem ){
|
||||||
|
case 1:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
// 取屏幕宽度
|
// 取屏幕宽度
|
||||||
|
@ -136,15 +164,15 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
SizedBox(height: 5),
|
SizedBox(height: 5),
|
||||||
Text(
|
// Text(
|
||||||
item['label1'] ?? '',
|
// item['label1'] ?? '',
|
||||||
style: TextStyle(fontSize: 14, color: Colors.grey),
|
// style: TextStyle(fontSize: 14, color: Colors.grey),
|
||||||
),
|
// ),
|
||||||
SizedBox(height: 5),
|
// SizedBox(height: 5),
|
||||||
Text(
|
// Text(
|
||||||
item['label2'] ?? '',
|
// item['label2'] ?? '',
|
||||||
style: TextStyle(fontSize: 14, color: Colors.grey),
|
// style: TextStyle(fontSize: 14, color: Colors.grey),
|
||||||
),
|
// ),
|
||||||
SizedBox(height: 5),
|
SizedBox(height: 5),
|
||||||
Text(
|
Text(
|
||||||
item['label2'] ?? '',
|
item['label2'] ?? '',
|
||||||
|
|
|
@ -283,42 +283,7 @@ class _MineDutyManagementPageState extends State<MineDutyManagementPage> {
|
||||||
|
|
||||||
final raw = await ApiService.getDutyManagement(showCount,currentPage);
|
final raw = await ApiService.getDutyManagement(showCount,currentPage);
|
||||||
|
|
||||||
// print(raw);
|
|
||||||
// setState(() {
|
|
||||||
// workInfos = [
|
|
||||||
// {
|
|
||||||
// "icon": "assets/icon-apps/jobico1.png",
|
|
||||||
// "index": 1,
|
|
||||||
// "detail": "待排查",
|
|
||||||
// "num": (hidCount['dpc'] ?? 0).toString(),
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// "icon": "assets/icon-apps/jobico2.png",
|
|
||||||
// "index": 2,
|
|
||||||
// "detail": "待整改",
|
|
||||||
// "num": (hidCount['dzg'] ?? 0).toString(),
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// "icon": "assets/icon-apps/jobico3.png",
|
|
||||||
// "index": 3,
|
|
||||||
// "detail": "已超期",
|
|
||||||
// "num": (hidCount['ycq'] ?? 0).toString(),
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// "icon": "assets/icon-apps/jobico4.png",
|
|
||||||
// "index": 4,
|
|
||||||
// "detail": "待验收",
|
|
||||||
// "num": (hidCount['dys'] ?? 0).toString(),
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// "icon": "assets/icon-apps/jobico5.png",
|
|
||||||
// "index": 5,
|
|
||||||
// "detail": "已验收",
|
|
||||||
// "num": (hidCount['yys'] ?? 0).toString(),
|
|
||||||
// },
|
|
||||||
// ];
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// 出错时可以 Toast 或者在页面上显示错误状态
|
// 出错时可以 Toast 或者在页面上显示错误状态
|
||||||
|
|
|
@ -5,6 +5,8 @@ import 'dart:io';
|
||||||
import '../../../../../customWidget/photo_picker_row.dart';
|
import '../../../../../customWidget/photo_picker_row.dart';
|
||||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||||
|
|
||||||
|
import '../../http/ApiService.dart';
|
||||||
|
|
||||||
// feedback_type.dart
|
// feedback_type.dart
|
||||||
enum FeedbackType {
|
enum FeedbackType {
|
||||||
systemError,
|
systemError,
|
||||||
|
@ -42,7 +44,7 @@ class _FeedbackPageState extends State<FeedbackPage> {
|
||||||
FeedbackType? _selectedType = FeedbackType.other;
|
FeedbackType? _selectedType = FeedbackType.other;
|
||||||
|
|
||||||
// 上传的图片
|
// 上传的图片
|
||||||
List<File> _images = [];
|
List<String> _images = [];
|
||||||
|
|
||||||
// 获取反馈类型名称
|
// 获取反馈类型名称
|
||||||
String _getTypeName(FeedbackType type) {
|
String _getTypeName(FeedbackType type) {
|
||||||
|
@ -60,31 +62,25 @@ class _FeedbackPageState extends State<FeedbackPage> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选择图片
|
// 获取反馈类型名称
|
||||||
Future<void> _pickImage() async {
|
String _getTypeNum(FeedbackType type) {
|
||||||
if (_images.length >= 4) return;
|
switch (type) {
|
||||||
|
case FeedbackType.systemError:
|
||||||
final picker = ImagePicker();
|
return '1';
|
||||||
try {
|
case FeedbackType.uiOptimization:
|
||||||
final pickedFile = await picker.pickImage(source: ImageSource.gallery);
|
return '2';
|
||||||
if (pickedFile != null) {
|
case FeedbackType.designIssue:
|
||||||
setState(() {
|
return '3';
|
||||||
_images.add(File(pickedFile.path));
|
case FeedbackType.performanceIssue:
|
||||||
});
|
return '4';
|
||||||
}
|
case FeedbackType.other:
|
||||||
} catch (e) {
|
return '9';
|
||||||
ScaffoldMessenger.of(
|
|
||||||
context,
|
|
||||||
).showSnackBar(const SnackBar(content: Text('无法访问相册,请检查权限设置')));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除图片
|
|
||||||
void _removeImage(int index) {
|
|
||||||
setState(() {
|
|
||||||
_images.removeAt(index);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -287,27 +283,84 @@ class _FeedbackPageState extends State<FeedbackPage> {
|
||||||
|
|
||||||
// 提交反馈
|
// 提交反馈
|
||||||
void _submitFeedback() {
|
void _submitFeedback() {
|
||||||
if (_formKey.currentState!.validate()) {
|
|
||||||
// 模拟提交过程
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
barrierDismissible: false,
|
|
||||||
builder: (context) => const Center(child: CircularProgressIndicator()),
|
|
||||||
);
|
|
||||||
|
|
||||||
Future.delayed(const Duration(seconds: 2), () {
|
final title = _titleController.text.trim();
|
||||||
Navigator.pop(context); // 关闭加载对话框
|
final text = _descriptionController.text.trim();
|
||||||
ScaffoldMessenger.of(
|
|
||||||
context,
|
|
||||||
).showSnackBar(const SnackBar(content: Text('反馈提交成功!')));
|
|
||||||
|
|
||||||
// 重置表单
|
if (title.isEmpty ) {
|
||||||
_formKey.currentState!.reset();
|
_showMessage('请填写标题');
|
||||||
setState(() {
|
return;
|
||||||
_images.clear();
|
}
|
||||||
_selectedType = FeedbackType.other;
|
|
||||||
});
|
if (text.isEmpty ) {
|
||||||
});
|
_showMessage('请填写问题和意见');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_images.isEmpty) {
|
||||||
|
_showMessage('请上传隐患图片');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String imagePaths="";
|
||||||
|
for(int i=0;i<_images.length;i++){
|
||||||
|
if(0==i){
|
||||||
|
imagePaths=_images[i];
|
||||||
|
}else {
|
||||||
|
imagePaths = "$imagePaths,${_images[i]}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String num=_getTypeNum(_selectedType!);
|
||||||
|
|
||||||
|
_setFeedBack(title,text,imagePaths,num);
|
||||||
|
|
||||||
|
// if (_formKey.currentState!.validate()) {
|
||||||
|
// // 模拟提交过程
|
||||||
|
// showDialog(
|
||||||
|
// context: context,
|
||||||
|
// barrierDismissible: false,
|
||||||
|
// builder: (context) => const Center(child: CircularProgressIndicator()),
|
||||||
|
// );
|
||||||
|
//
|
||||||
|
// Future.delayed(const Duration(seconds: 2), () {
|
||||||
|
// Navigator.pop(context); // 关闭加载对话框
|
||||||
|
// ScaffoldMessenger.of(
|
||||||
|
// context,
|
||||||
|
// ).showSnackBar(const SnackBar(content: Text('反馈提交成功!')));
|
||||||
|
//
|
||||||
|
// // 重置表单
|
||||||
|
// _formKey.currentState!.reset();
|
||||||
|
// setState(() {
|
||||||
|
// _images.clear();
|
||||||
|
// _selectedType = FeedbackType.other;
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future<void> _setFeedBack(String title, String text, String imagePaths, String num) async {
|
||||||
|
try {
|
||||||
|
|
||||||
|
final raw = await ApiService.setFeedBack(title,text,num,imagePaths);
|
||||||
|
|
||||||
|
if (raw['result'] == 'success') {
|
||||||
|
|
||||||
|
Navigator.pop(context); // 关闭加载对话框
|
||||||
|
_showMessage('反馈提交成功');
|
||||||
|
|
||||||
|
}else{
|
||||||
|
_showMessage('反馈提交失败');
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
// 出错时可以 Toast 或者在页面上显示错误状态
|
||||||
|
print('加载首页数据失败:$e');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _showMessage(String msg) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(msg)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,76 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_html/flutter_html.dart';
|
||||||
|
import 'package:qhd_prevention/pages/mine/webViewPage.dart';
|
||||||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||||||
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
class NotifDetailPage extends StatelessWidget {
|
import '../../http/ApiService.dart';
|
||||||
const NotifDetailPage({super.key});
|
|
||||||
|
|
||||||
|
class NotifDetailPage extends StatefulWidget {
|
||||||
|
const NotifDetailPage(this.item, this.selectedTab, {super.key,required this.onClose});
|
||||||
|
|
||||||
|
final Function(String) onClose; // 回调函数
|
||||||
|
final dynamic item;
|
||||||
|
final int selectedTab;
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<NotifDetailPage> createState() => _NotifDetailPageState(item,selectedTab,onClose);
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NotifDetailPageState extends State<NotifDetailPage> {
|
||||||
|
_NotifDetailPageState(this.item, this.selectedTab,this.onClose);
|
||||||
|
|
||||||
|
final Function(String) onClose; // 回调函数
|
||||||
|
final dynamic item;
|
||||||
|
final int selectedTab;
|
||||||
|
String title="";
|
||||||
|
String time="";
|
||||||
|
String text="";
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
if(0==selectedTab){
|
||||||
|
_getNotifDetail();
|
||||||
|
}else{
|
||||||
|
_getNotifEnterpriseDetail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _getNotifDetail() async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.getNotifDetail(item['NOTICE_ID']);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
final dynamic newList = result['pd'] ;
|
||||||
|
setState(() {
|
||||||
|
title= newList['SYNOPSIS'];
|
||||||
|
time= newList['CREATTIME'];
|
||||||
|
text= newList['CONTENT'];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _getNotifEnterpriseDetail() async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.getNotifEnterpriseDetail(item['NOTICECORPUSERID_ID']);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
final dynamic newList = result['pd'] ;
|
||||||
|
setState(() {
|
||||||
|
title= newList['SYNOPSIS'];
|
||||||
|
time= newList['CREATTIME'];
|
||||||
|
text= newList['CONTENT'];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -13,19 +81,41 @@ class NotifDetailPage extends StatelessWidget {
|
||||||
width: double.infinity, // 铺满父容器
|
width: double.infinity, // 铺满父容器
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: const EdgeInsets.all(15),
|
padding: const EdgeInsets.all(15),
|
||||||
child: Column(
|
child: SingleChildScrollView(
|
||||||
mainAxisSize: MainAxisSize.min,
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start, // 左对齐
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: const [
|
crossAxisAlignment: CrossAxisAlignment.start, // 左对齐
|
||||||
Text("通知标题"),
|
children: [
|
||||||
SizedBox(height: 8),
|
Padding(
|
||||||
Text("2025-1-1 01:01:01"),
|
padding: EdgeInsets.only(left: 10,right: 10),
|
||||||
SizedBox(height: 16),
|
child: Text(title,style: TextStyle(color: Colors.black,fontSize: 16,fontWeight: FontWeight.bold),),
|
||||||
Text("通知详情"),
|
),
|
||||||
],
|
|
||||||
|
SizedBox(height: 8),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(left: 10,right: 10),
|
||||||
|
child: Text(time,),
|
||||||
|
),
|
||||||
|
SizedBox(height: 8),
|
||||||
|
Html(
|
||||||
|
data: text,
|
||||||
|
),
|
||||||
|
// Text(item['CONTENT'],),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
super.dispose();
|
||||||
|
onClose('关闭详情'); // 触发回调
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ import 'package:qhd_prevention/customWidget/search_bar_widget.dart';
|
||||||
import 'package:qhd_prevention/pages/notif/notif_detail_page.dart';
|
import 'package:qhd_prevention/pages/notif/notif_detail_page.dart';
|
||||||
import 'package:qhd_prevention/tools/tools.dart';
|
import 'package:qhd_prevention/tools/tools.dart';
|
||||||
|
|
||||||
|
import '../../http/ApiService.dart';
|
||||||
|
|
||||||
class NotifPage extends StatefulWidget {
|
class NotifPage extends StatefulWidget {
|
||||||
const NotifPage({Key? key}) : super(key: key);
|
const NotifPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@ -10,9 +12,14 @@ class NotifPage extends StatefulWidget {
|
||||||
_NotifPageState createState() => _NotifPageState();
|
_NotifPageState createState() => _NotifPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _NotifPageState extends State<NotifPage> with SingleTickerProviderStateMixin {
|
class _NotifPageState extends State<NotifPage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
|
||||||
|
final TextEditingController searchController = TextEditingController();
|
||||||
|
late List<dynamic> _list = [];
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
int _selectedTab = 0;
|
int _selectedTab = 0;
|
||||||
|
int pageNum = 1;
|
||||||
|
|
||||||
// 模拟数据
|
// 模拟数据
|
||||||
final List<Map<String, dynamic>> _notifications = List.generate(10, (i) {
|
final List<Map<String, dynamic>> _notifications = List.generate(10, (i) {
|
||||||
|
@ -29,12 +36,85 @@ class _NotifPageState extends State<NotifPage> with SingleTickerProviderStateMix
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(length: 2, vsync: this);
|
_tabController = TabController(length: 2, vsync: this);
|
||||||
_tabController.addListener(() {
|
_tabController.addListener(() {
|
||||||
if (!_tabController.indexIsChanging) {
|
// if (!_tabController.indexIsChanging) {
|
||||||
|
// setState(() => _selectedTab = _tabController.index);
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (_tabController.indexIsChanging) {
|
||||||
setState(() => _selectedTab = _tabController.index);
|
setState(() => _selectedTab = _tabController.index);
|
||||||
|
print('切换到标签:${_tabController.index}');
|
||||||
|
reRefreshData();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_getNotifList("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reRefreshData(){
|
||||||
|
pageNum=1;
|
||||||
|
_list.clear();
|
||||||
|
searchController.text="";
|
||||||
|
if(0==_selectedTab){
|
||||||
|
_getNotifList("");
|
||||||
|
}else{
|
||||||
|
_getNotifEnterprise("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _getNotifList(String keyWord) async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.getNotifList("-1", pageNum.toString(),keyWord);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
final List<dynamic> newList = result['varList'] ?? [];
|
||||||
|
setState(() {
|
||||||
|
_list.addAll(newList);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
} finally {
|
||||||
|
LoadingDialogHelper.hide(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _getNotifEnterprise(String keyWord) async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.getNotifEnterprise("-1", pageNum.toString(),keyWord);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
final List<dynamic> newList = result['varList'] ?? [];
|
||||||
|
setState(() {
|
||||||
|
_list.addAll(newList);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
} finally {
|
||||||
|
LoadingDialogHelper.hide(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _deleteNotif(String id) async {
|
||||||
|
// LoadingDialogHelper.show(context);
|
||||||
|
try {
|
||||||
|
final result = await ApiService.deleteNotif(id);
|
||||||
|
if (result['result'] == 'success') {
|
||||||
|
setState(() {
|
||||||
|
reRefreshData();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('加载出错: $e');
|
||||||
|
} finally {
|
||||||
|
LoadingDialogHelper.hide(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_tabController.dispose();
|
_tabController.dispose();
|
||||||
|
@ -43,7 +123,7 @@ class _NotifPageState extends State<NotifPage> with SingleTickerProviderStateMix
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final TextEditingController searchController = TextEditingController();
|
|
||||||
|
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -52,111 +132,161 @@ class _NotifPageState extends State<NotifPage> with SingleTickerProviderStateMix
|
||||||
behavior: HitTestBehavior.opaque,
|
behavior: HitTestBehavior.opaque,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child:Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
// Tab bar
|
// Tab bar
|
||||||
TabBar(
|
TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
labelStyle: TextStyle(fontSize: 16),
|
labelStyle: TextStyle(fontSize: 16),
|
||||||
indicator: UnderlineTabIndicator(
|
indicator: UnderlineTabIndicator(
|
||||||
borderSide: BorderSide(width: 3.0, color: Colors.blue),
|
borderSide: BorderSide(width: 3.0, color: Colors.blue),
|
||||||
insets: EdgeInsets.symmetric(horizontal: 100.0),
|
insets: EdgeInsets.symmetric(horizontal: 100.0),
|
||||||
),
|
|
||||||
labelColor: Colors.blue,
|
|
||||||
unselectedLabelColor: Colors.grey,
|
|
||||||
tabs: const [
|
|
||||||
Tab(text: '政府公告'),
|
|
||||||
Tab(text: '企业公告'),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
|
labelColor: Colors.blue,
|
||||||
|
unselectedLabelColor: Colors.grey,
|
||||||
|
tabs: const [Tab(text: '政府公告'), Tab(text: '企业公告')],
|
||||||
|
),
|
||||||
|
|
||||||
// Search bar
|
// Search bar
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(10),
|
padding: const EdgeInsets.all(10),
|
||||||
child: SearchBarWidget(
|
child: SearchBarWidget(
|
||||||
controller: searchController,
|
key: Key("searchBody"),
|
||||||
onSearch: (keyword) {
|
controller: searchController,
|
||||||
print("用户输入的是: $keyword");
|
onSearch: (keyword) {
|
||||||
// TODO: 执行搜索
|
print("用户输入的是: $keyword");
|
||||||
},
|
// TODO: 执行搜索
|
||||||
)
|
// String word="整改";
|
||||||
),
|
pageNum=1;
|
||||||
|
_list.clear();
|
||||||
|
if(0==_selectedTab){
|
||||||
|
_getNotifList(keyword);
|
||||||
|
}else{
|
||||||
|
_getNotifEnterprise(keyword);
|
||||||
|
}
|
||||||
|
|
||||||
// List
|
},
|
||||||
Expanded(
|
|
||||||
child: ListView.separated(
|
|
||||||
itemCount: _notifications.length,
|
|
||||||
separatorBuilder: (_, __) => const Divider(height: 1),
|
|
||||||
itemBuilder: (context, index) {
|
|
||||||
final item = _notifications[index];
|
|
||||||
return _itemCell(item);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
)
|
|
||||||
|
// List
|
||||||
|
Expanded(
|
||||||
|
child:
|
||||||
|
_list.isEmpty
|
||||||
|
? Center(child: Text('暂无数据'))
|
||||||
|
: ListView.builder(
|
||||||
|
itemCount: _list.length,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
return _itemCell(_list[index]);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _itemCell(final item) {
|
Widget _itemCell(final item) {
|
||||||
return ListTile(
|
return Column(
|
||||||
onTap: () {
|
children: [
|
||||||
pushPage(NotifDetailPage(), context);
|
ListTile(
|
||||||
},
|
onTap: () {
|
||||||
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
|
Navigator.push(
|
||||||
title: Padding(
|
context,
|
||||||
padding: const EdgeInsets.only(bottom: 20), // 减小底部间距
|
MaterialPageRoute(
|
||||||
child: Text(
|
builder: (context) => NotifDetailPage(
|
||||||
item['title'],
|
item,_selectedTab,
|
||||||
style: const TextStyle(fontSize: 14),
|
onClose: (result) {
|
||||||
),
|
print('详情页面已关闭,返回结果: $result');
|
||||||
),
|
reRefreshData();
|
||||||
|
},
|
||||||
subtitle: Text(
|
|
||||||
item['time'],
|
|
||||||
style: TextStyle(fontSize: 13),
|
|
||||||
),
|
|
||||||
|
|
||||||
trailing: Container(
|
|
||||||
constraints: const BoxConstraints(minHeight: 100), // 确保最小高度
|
|
||||||
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
mainAxisSize: MainAxisSize.min, // 关键修改:使用最小尺寸
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
item['read'] ? '已读' : '未读',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12, // 稍微减小字体大小
|
|
||||||
color: item['read'] ? Colors.grey : Colors.red,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(height: 15,),
|
|
||||||
|
|
||||||
if (item['read'])
|
|
||||||
SizedBox(
|
|
||||||
height: 24, // 固定按钮高度
|
|
||||||
child: TextButton(
|
|
||||||
onPressed: () {},
|
|
||||||
child: const Text(
|
|
||||||
'删除',
|
|
||||||
style: TextStyle(fontSize: 13, color: Colors.white),
|
|
||||||
),
|
|
||||||
style: TextButton.styleFrom(
|
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
|
||||||
backgroundColor: Colors.red,
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(12),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
);
|
||||||
|
|
||||||
|
// pushPage(NotifDetailPage(item,_selectedTab), context);
|
||||||
|
},
|
||||||
|
contentPadding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 16,
|
||||||
|
vertical: 10,
|
||||||
|
),
|
||||||
|
title: Padding(
|
||||||
|
padding: const EdgeInsets.only(bottom: 20), // 减小底部间距
|
||||||
|
child: Text(item['SYNOPSIS'], style: const TextStyle(fontSize: 14)),
|
||||||
|
),
|
||||||
|
|
||||||
|
subtitle: Text(item['CREATTIME'], style: TextStyle(fontSize: 13)),
|
||||||
|
|
||||||
|
trailing: Container(
|
||||||
|
constraints: const BoxConstraints(minHeight: 100), // 确保最小高度
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
mainAxisSize: MainAxisSize.min, // 关键修改:使用最小尺寸
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
if (0 != _selectedTab)
|
||||||
|
Text(
|
||||||
|
item['TYPE'] == 1 ? '已读' : '未读',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 12, // 稍微减小字体大小
|
||||||
|
color: item['TYPE'] == 1 ? Colors.grey : Colors.red,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 15),
|
||||||
|
|
||||||
|
if (0 != _selectedTab && item['TYPE'] == 1)
|
||||||
|
SizedBox(
|
||||||
|
height: 24, // 固定按钮高度
|
||||||
|
child: TextButton(
|
||||||
|
onPressed: () async{
|
||||||
|
// 显示确认对话框
|
||||||
|
bool? confirm = await showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => AlertDialog(
|
||||||
|
title: Text("确认删除"),
|
||||||
|
content: Text("确定要删除这条通知吗?"),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () => Navigator.pop(context, false),
|
||||||
|
// onPressed: () => Navigator.pop(context, false),
|
||||||
|
child: Text("取消"),
|
||||||
|
),
|
||||||
|
TextButton(
|
||||||
|
onPressed: () => Navigator.pop(context, true),
|
||||||
|
// onPressed: () => Navigator.pop(context, true),
|
||||||
|
child: Text("确定", style: TextStyle(color: Colors.red)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
if (confirm == true) {
|
||||||
|
_deleteNotif(item['NOTICECORPUSERID_ID']);
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
style: TextButton.styleFrom(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Text( '删除', style: TextStyle(fontSize: 13, color: Colors.white),),
|
||||||
|
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
Divider(height: 1, color: Colors.black12),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
244
pubspec.lock
244
pubspec.lock
|
@ -6,7 +6,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: args
|
name: args
|
||||||
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
|
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.7.0"
|
version: "2.7.0"
|
||||||
asn1lib:
|
asn1lib:
|
||||||
|
@ -21,16 +21,16 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.12.0"
|
version: "2.13.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: boolean_selector
|
name: boolean_selector
|
||||||
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
|
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
camera:
|
camera:
|
||||||
|
@ -78,7 +78,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: characters
|
name: characters
|
||||||
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
clock:
|
clock:
|
||||||
|
@ -86,7 +86,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: clock
|
name: clock
|
||||||
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.1.2"
|
||||||
collection:
|
collection:
|
||||||
|
@ -94,7 +94,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.19.1"
|
version: "1.19.1"
|
||||||
connectivity_plus:
|
connectivity_plus:
|
||||||
|
@ -102,7 +102,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: connectivity_plus
|
name: connectivity_plus
|
||||||
sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99"
|
sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.4"
|
version: "6.1.4"
|
||||||
connectivity_plus_platform_interface:
|
connectivity_plus_platform_interface:
|
||||||
|
@ -110,7 +110,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: connectivity_plus_platform_interface
|
name: connectivity_plus_platform_interface
|
||||||
sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204"
|
sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "2.0.1"
|
||||||
convert:
|
convert:
|
||||||
|
@ -126,7 +126,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: cross_file
|
name: cross_file
|
||||||
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
|
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.4+2"
|
version: "0.3.4+2"
|
||||||
crypto:
|
crypto:
|
||||||
|
@ -134,7 +134,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: crypto
|
name: crypto
|
||||||
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
|
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.6"
|
version: "3.0.6"
|
||||||
csslib:
|
csslib:
|
||||||
|
@ -142,7 +142,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: csslib
|
name: csslib
|
||||||
sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e"
|
sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.2"
|
version: "1.0.2"
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
|
@ -150,7 +150,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: cupertino_icons
|
name: cupertino_icons
|
||||||
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
|
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.8"
|
version: "1.0.8"
|
||||||
dbus:
|
dbus:
|
||||||
|
@ -158,7 +158,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: dbus
|
name: dbus
|
||||||
sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c"
|
sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.11"
|
version: "0.7.11"
|
||||||
dio:
|
dio:
|
||||||
|
@ -190,7 +190,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: extended_image
|
name: extended_image
|
||||||
sha256: f6cbb1d798f51262ed1a3d93b4f1f2aa0d76128df39af18ecb77fa740f88b2e0
|
sha256: f6cbb1d798f51262ed1a3d93b4f1f2aa0d76128df39af18ecb77fa740f88b2e0
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.1"
|
version: "10.0.1"
|
||||||
extended_image_library:
|
extended_image_library:
|
||||||
|
@ -198,23 +198,23 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: extended_image_library
|
name: extended_image_library
|
||||||
sha256: "1f9a24d3a00c2633891c6a7b5cab2807999eb2d5b597e5133b63f49d113811fe"
|
sha256: "1f9a24d3a00c2633891c6a7b5cab2807999eb2d5b597e5133b63f49d113811fe"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.1"
|
version: "5.0.1"
|
||||||
fake_async:
|
fake_async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: fake_async
|
name: fake_async
|
||||||
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
|
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.2"
|
version: "1.3.3"
|
||||||
ffi:
|
ffi:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: ffi
|
name: ffi
|
||||||
sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
|
sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
file:
|
file:
|
||||||
|
@ -222,7 +222,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: file
|
name: file
|
||||||
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
|
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.1"
|
version: "7.0.1"
|
||||||
file_selector_linux:
|
file_selector_linux:
|
||||||
|
@ -230,7 +230,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: file_selector_linux
|
name: file_selector_linux
|
||||||
sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
|
sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.9.3+2"
|
version: "0.9.3+2"
|
||||||
file_selector_macos:
|
file_selector_macos:
|
||||||
|
@ -238,7 +238,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: file_selector_macos
|
name: file_selector_macos
|
||||||
sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711"
|
sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.9.4+3"
|
version: "0.9.4+3"
|
||||||
file_selector_platform_interface:
|
file_selector_platform_interface:
|
||||||
|
@ -246,7 +246,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: file_selector_platform_interface
|
name: file_selector_platform_interface
|
||||||
sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
|
sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.2"
|
version: "2.6.2"
|
||||||
file_selector_windows:
|
file_selector_windows:
|
||||||
|
@ -254,7 +254,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: file_selector_windows
|
name: file_selector_windows
|
||||||
sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
|
sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.9.3+4"
|
version: "0.9.3+4"
|
||||||
flutter:
|
flutter:
|
||||||
|
@ -262,12 +262,20 @@ packages:
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
flutter_html:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_html
|
||||||
|
sha256: "38a2fd702ffdf3243fb7441ab58aa1bc7e6922d95a50db76534de8260638558d"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: flutter_lints
|
name: flutter_lints
|
||||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.0"
|
version: "5.0.0"
|
||||||
flutter_plugin_android_lifecycle:
|
flutter_plugin_android_lifecycle:
|
||||||
|
@ -275,7 +283,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e
|
sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.28"
|
version: "2.0.28"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
@ -301,7 +309,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: html
|
name: html
|
||||||
sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602"
|
sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.15.6"
|
version: "0.15.6"
|
||||||
http:
|
http:
|
||||||
|
@ -309,7 +317,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: http
|
name: http
|
||||||
sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
|
sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
http_client_helper:
|
http_client_helper:
|
||||||
|
@ -317,7 +325,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: http_client_helper
|
name: http_client_helper
|
||||||
sha256: "8a9127650734da86b5c73760de2b404494c968a3fd55602045ffec789dac3cb1"
|
sha256: "8a9127650734da86b5c73760de2b404494c968a3fd55602045ffec789dac3cb1"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0"
|
version: "3.0.0"
|
||||||
http_parser:
|
http_parser:
|
||||||
|
@ -325,7 +333,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: http_parser
|
name: http_parser
|
||||||
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
|
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.1.2"
|
version: "4.1.2"
|
||||||
image_picker:
|
image_picker:
|
||||||
|
@ -333,7 +341,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker
|
name: image_picker
|
||||||
sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a"
|
sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.1.2"
|
||||||
image_picker_android:
|
image_picker_android:
|
||||||
|
@ -341,7 +349,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_android
|
name: image_picker_android
|
||||||
sha256: "317a5d961cec5b34e777b9252393f2afbd23084aa6e60fcf601dcf6341b9ebeb"
|
sha256: "317a5d961cec5b34e777b9252393f2afbd23084aa6e60fcf601dcf6341b9ebeb"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.12+23"
|
version: "0.8.12+23"
|
||||||
image_picker_for_web:
|
image_picker_for_web:
|
||||||
|
@ -349,7 +357,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_for_web
|
name: image_picker_for_web
|
||||||
sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83"
|
sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.6"
|
version: "3.0.6"
|
||||||
image_picker_ios:
|
image_picker_ios:
|
||||||
|
@ -357,7 +365,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_ios
|
name: image_picker_ios
|
||||||
sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100"
|
sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.12+2"
|
version: "0.8.12+2"
|
||||||
image_picker_linux:
|
image_picker_linux:
|
||||||
|
@ -365,7 +373,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_linux
|
name: image_picker_linux
|
||||||
sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9"
|
sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.1+2"
|
version: "0.2.1+2"
|
||||||
image_picker_macos:
|
image_picker_macos:
|
||||||
|
@ -373,7 +381,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_macos
|
name: image_picker_macos
|
||||||
sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1"
|
sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.1+2"
|
version: "0.2.1+2"
|
||||||
image_picker_platform_interface:
|
image_picker_platform_interface:
|
||||||
|
@ -381,7 +389,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_platform_interface
|
name: image_picker_platform_interface
|
||||||
sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0"
|
sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.1"
|
version: "2.10.1"
|
||||||
image_picker_windows:
|
image_picker_windows:
|
||||||
|
@ -389,7 +397,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: image_picker_windows
|
name: image_picker_windows
|
||||||
sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
|
sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.1+1"
|
version: "0.2.1+1"
|
||||||
intl:
|
intl:
|
||||||
|
@ -397,7 +405,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: intl
|
name: intl
|
||||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.20.2"
|
version: "0.20.2"
|
||||||
js:
|
js:
|
||||||
|
@ -405,23 +413,23 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: js
|
name: js
|
||||||
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
|
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.2"
|
version: "0.7.2"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.8"
|
version: "10.0.9"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.9"
|
version: "3.0.9"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
|
@ -429,7 +437,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.1"
|
||||||
lints:
|
lints:
|
||||||
|
@ -437,15 +445,23 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: lints
|
name: lints
|
||||||
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
|
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.1.1"
|
version: "5.1.1"
|
||||||
|
list_counter:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: list_counter
|
||||||
|
sha256: c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.2"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.17"
|
version: "0.12.17"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
|
@ -453,7 +469,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.11.1"
|
version: "0.11.1"
|
||||||
meta:
|
meta:
|
||||||
|
@ -461,7 +477,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0"
|
version: "1.16.0"
|
||||||
mime:
|
mime:
|
||||||
|
@ -469,7 +485,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: mime
|
name: mime
|
||||||
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
|
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.0"
|
version: "2.0.0"
|
||||||
mobile_scanner:
|
mobile_scanner:
|
||||||
|
@ -477,7 +493,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: mobile_scanner
|
name: mobile_scanner
|
||||||
sha256: "54005bdea7052d792d35b4fef0f84ec5ddc3a844b250ecd48dc192fb9b4ebc95"
|
sha256: "54005bdea7052d792d35b4fef0f84ec5ddc3a844b250ecd48dc192fb9b4ebc95"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.1"
|
version: "7.0.1"
|
||||||
nested:
|
nested:
|
||||||
|
@ -485,7 +501,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: nested
|
name: nested
|
||||||
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
|
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
nm:
|
nm:
|
||||||
|
@ -493,7 +509,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: nm
|
name: nm
|
||||||
sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
|
sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.0"
|
version: "0.5.0"
|
||||||
package_info_plus:
|
package_info_plus:
|
||||||
|
@ -501,7 +517,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: package_info_plus
|
name: package_info_plus
|
||||||
sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191"
|
sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.3.0"
|
version: "8.3.0"
|
||||||
package_info_plus_platform_interface:
|
package_info_plus_platform_interface:
|
||||||
|
@ -509,7 +525,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: package_info_plus_platform_interface
|
name: package_info_plus_platform_interface
|
||||||
sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c"
|
sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.0"
|
version: "3.2.0"
|
||||||
path:
|
path:
|
||||||
|
@ -517,7 +533,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
|
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.9.1"
|
||||||
path_provider:
|
path_provider:
|
||||||
|
@ -525,7 +541,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider
|
name: path_provider
|
||||||
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
|
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.5"
|
version: "2.1.5"
|
||||||
path_provider_android:
|
path_provider_android:
|
||||||
|
@ -533,7 +549,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
|
sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.17"
|
version: "2.2.17"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
|
@ -541,7 +557,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider_foundation
|
name: path_provider_foundation
|
||||||
sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
|
sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.1"
|
||||||
path_provider_linux:
|
path_provider_linux:
|
||||||
|
@ -549,7 +565,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider_linux
|
name: path_provider_linux
|
||||||
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
|
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.1"
|
version: "2.2.1"
|
||||||
path_provider_platform_interface:
|
path_provider_platform_interface:
|
||||||
|
@ -557,7 +573,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider_platform_interface
|
name: path_provider_platform_interface
|
||||||
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
|
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
path_provider_windows:
|
path_provider_windows:
|
||||||
|
@ -565,7 +581,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: path_provider_windows
|
name: path_provider_windows
|
||||||
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
|
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.3.0"
|
||||||
petitparser:
|
petitparser:
|
||||||
|
@ -573,7 +589,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: petitparser
|
name: petitparser
|
||||||
sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
|
sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.0"
|
version: "6.1.0"
|
||||||
photo_manager:
|
photo_manager:
|
||||||
|
@ -581,7 +597,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: photo_manager
|
name: photo_manager
|
||||||
sha256: a0d9a7a9bc35eda02d33766412bde6d883a8b0acb86bbe37dac5f691a0894e8a
|
sha256: a0d9a7a9bc35eda02d33766412bde6d883a8b0acb86bbe37dac5f691a0894e8a
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.7.1"
|
version: "3.7.1"
|
||||||
photo_manager_image_provider:
|
photo_manager_image_provider:
|
||||||
|
@ -589,7 +605,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: photo_manager_image_provider
|
name: photo_manager_image_provider
|
||||||
sha256: b6015b67b32f345f57cf32c126f871bced2501236c405aafaefa885f7c821e4f
|
sha256: b6015b67b32f345f57cf32c126f871bced2501236c405aafaefa885f7c821e4f
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.0"
|
version: "2.2.0"
|
||||||
photo_view:
|
photo_view:
|
||||||
|
@ -597,7 +613,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: photo_view
|
name: photo_view
|
||||||
sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e"
|
sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.15.0"
|
version: "0.15.0"
|
||||||
platform:
|
platform:
|
||||||
|
@ -605,7 +621,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: platform
|
name: platform
|
||||||
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
|
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.6"
|
version: "3.1.6"
|
||||||
plugin_platform_interface:
|
plugin_platform_interface:
|
||||||
|
@ -613,7 +629,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: plugin_platform_interface
|
name: plugin_platform_interface
|
||||||
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
|
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.8"
|
version: "2.1.8"
|
||||||
pointycastle:
|
pointycastle:
|
||||||
|
@ -629,7 +645,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: provider
|
name: provider
|
||||||
sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
|
sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.5"
|
version: "6.1.5"
|
||||||
shared_preferences:
|
shared_preferences:
|
||||||
|
@ -637,7 +653,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences
|
name: shared_preferences
|
||||||
sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5"
|
sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.3"
|
version: "2.5.3"
|
||||||
shared_preferences_android:
|
shared_preferences_android:
|
||||||
|
@ -645,7 +661,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_android
|
name: shared_preferences_android
|
||||||
sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac"
|
sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.10"
|
version: "2.4.10"
|
||||||
shared_preferences_foundation:
|
shared_preferences_foundation:
|
||||||
|
@ -653,7 +669,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_foundation
|
name: shared_preferences_foundation
|
||||||
sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
|
sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.4"
|
version: "2.5.4"
|
||||||
shared_preferences_linux:
|
shared_preferences_linux:
|
||||||
|
@ -661,7 +677,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_linux
|
name: shared_preferences_linux
|
||||||
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
|
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.1"
|
||||||
shared_preferences_platform_interface:
|
shared_preferences_platform_interface:
|
||||||
|
@ -669,7 +685,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_platform_interface
|
name: shared_preferences_platform_interface
|
||||||
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
|
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.1"
|
||||||
shared_preferences_web:
|
shared_preferences_web:
|
||||||
|
@ -677,7 +693,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_web
|
name: shared_preferences_web
|
||||||
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
|
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.3"
|
version: "2.4.3"
|
||||||
shared_preferences_windows:
|
shared_preferences_windows:
|
||||||
|
@ -685,7 +701,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_windows
|
name: shared_preferences_windows
|
||||||
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
|
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.1"
|
||||||
simple_gesture_detector:
|
simple_gesture_detector:
|
||||||
|
@ -693,7 +709,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: simple_gesture_detector
|
name: simple_gesture_detector
|
||||||
sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3
|
sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.1"
|
version: "0.2.1"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
|
@ -706,7 +722,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: source_span
|
name: source_span
|
||||||
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
|
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.1"
|
version: "1.10.1"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
|
@ -714,7 +730,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: stack_trace
|
name: stack_trace
|
||||||
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.12.1"
|
version: "1.12.1"
|
||||||
stream_channel:
|
stream_channel:
|
||||||
|
@ -722,7 +738,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: stream_channel
|
name: stream_channel
|
||||||
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
stream_transform:
|
stream_transform:
|
||||||
|
@ -738,7 +754,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: string_scanner
|
name: string_scanner
|
||||||
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
|
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.1"
|
version: "1.4.1"
|
||||||
table_calendar:
|
table_calendar:
|
||||||
|
@ -746,7 +762,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: table_calendar
|
name: table_calendar
|
||||||
sha256: "0c0c6219878b363a2d5f40c7afb159d845f253d061dc3c822aa0d5fe0f721982"
|
sha256: "0c0c6219878b363a2d5f40c7afb159d845f253d061dc3c822aa0d5fe0f721982"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.0"
|
version: "3.2.0"
|
||||||
term_glyph:
|
term_glyph:
|
||||||
|
@ -754,7 +770,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: term_glyph
|
name: term_glyph
|
||||||
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
|
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.2"
|
version: "1.2.2"
|
||||||
test_api:
|
test_api:
|
||||||
|
@ -762,7 +778,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.4"
|
version: "0.7.4"
|
||||||
typed_data:
|
typed_data:
|
||||||
|
@ -770,7 +786,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: typed_data
|
name: typed_data
|
||||||
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
vector_math:
|
vector_math:
|
||||||
|
@ -778,7 +794,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
video_player:
|
video_player:
|
||||||
|
@ -786,7 +802,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: video_player
|
name: video_player
|
||||||
sha256: "0d55b1f1a31e5ad4c4967bfaa8ade0240b07d20ee4af1dfef5f531056512961a"
|
sha256: "0d55b1f1a31e5ad4c4967bfaa8ade0240b07d20ee4af1dfef5f531056512961a"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.0"
|
version: "2.10.0"
|
||||||
video_player_android:
|
video_player_android:
|
||||||
|
@ -794,7 +810,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: video_player_android
|
name: video_player_android
|
||||||
sha256: "4a5135754a62dbc827a64a42ef1f8ed72c962e191c97e2d48744225c2b9ebb73"
|
sha256: "4a5135754a62dbc827a64a42ef1f8ed72c962e191c97e2d48744225c2b9ebb73"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.8.7"
|
version: "2.8.7"
|
||||||
video_player_avfoundation:
|
video_player_avfoundation:
|
||||||
|
@ -802,7 +818,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: video_player_avfoundation
|
name: video_player_avfoundation
|
||||||
sha256: "9fedd55023249f3a02738c195c906b4e530956191febf0838e37d0dac912f953"
|
sha256: "9fedd55023249f3a02738c195c906b4e530956191febf0838e37d0dac912f953"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.8.0"
|
version: "2.8.0"
|
||||||
video_player_platform_interface:
|
video_player_platform_interface:
|
||||||
|
@ -810,7 +826,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: video_player_platform_interface
|
name: video_player_platform_interface
|
||||||
sha256: cf2a1d29a284db648fd66cbd18aacc157f9862d77d2cc790f6f9678a46c1db5a
|
sha256: cf2a1d29a284db648fd66cbd18aacc157f9862d77d2cc790f6f9678a46c1db5a
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.4.0"
|
version: "6.4.0"
|
||||||
video_player_web:
|
video_player_web:
|
||||||
|
@ -818,7 +834,7 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: video_player_web
|
name: video_player_web
|
||||||
sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb"
|
sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.0"
|
version: "2.4.0"
|
||||||
visibility_detector:
|
visibility_detector:
|
||||||
|
@ -826,23 +842,23 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: visibility_detector
|
name: visibility_detector
|
||||||
sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420
|
sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.0+2"
|
version: "0.4.0+2"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
|
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.3.1"
|
version: "15.0.0"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: web
|
name: web
|
||||||
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
|
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.1"
|
version: "1.1.1"
|
||||||
webview_flutter:
|
webview_flutter:
|
||||||
|
@ -850,39 +866,39 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: webview_flutter
|
name: webview_flutter
|
||||||
sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba
|
sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.13.0"
|
version: "4.13.0"
|
||||||
webview_flutter_android:
|
webview_flutter_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: f6e6afef6e234801da77170f7a1847ded8450778caf2fe13979d140484be3678
|
sha256: "769f34fc9855f7d7789b786b79b7c37a60e92ff08f71e3a429208d7f5b81d944"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.7.0"
|
version: "4.8.0"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_platform_interface
|
name: webview_flutter_platform_interface
|
||||||
sha256: f0dc2dc3a2b1e3a6abdd6801b9355ebfeb3b8f6cde6b9dc7c9235909c4a1f147
|
sha256: f0dc2dc3a2b1e3a6abdd6801b9355ebfeb3b8f6cde6b9dc7c9235909c4a1f147
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.13.1"
|
version: "2.13.1"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_wkwebview
|
name: webview_flutter_wkwebview
|
||||||
sha256: a3d461fe3467014e05f3ac4962e5fdde2a4bf44c561cb53e9ae5c586600fdbc3
|
sha256: "71523b9048cf510cfa1fd4e0a3fa5e476a66e0884d5df51d59d5023dba237107"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.22.0"
|
version: "3.22.1"
|
||||||
wechat_assets_picker:
|
wechat_assets_picker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: wechat_assets_picker
|
name: wechat_assets_picker
|
||||||
sha256: cafe3d32564ed3cacf9822f251941f7b44fe9885c17c8de4fca7e939a459e1ef
|
sha256: cafe3d32564ed3cacf9822f251941f7b44fe9885c17c8de4fca7e939a459e1ef
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.5.1"
|
version: "9.5.1"
|
||||||
wechat_picker_library:
|
wechat_picker_library:
|
||||||
|
@ -890,23 +906,23 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: wechat_picker_library
|
name: wechat_picker_library
|
||||||
sha256: a42e09cb85b15fc9410f6a69671371cc60aa99c4a1f7967f6593a7f665f6f47a
|
sha256: a42e09cb85b15fc9410f6a69671371cc60aa99c4a1f7967f6593a7f665f6f47a
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.5"
|
version: "1.0.5"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: win32
|
name: win32
|
||||||
sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba"
|
sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.13.0"
|
version: "5.14.0"
|
||||||
xdg_directories:
|
xdg_directories:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: xdg_directories
|
name: xdg_directories
|
||||||
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
|
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
xml:
|
xml:
|
||||||
|
@ -914,9 +930,9 @@ packages:
|
||||||
description:
|
description:
|
||||||
name: xml
|
name: xml
|
||||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||||
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.5.0"
|
version: "6.5.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.7.0 <4.0.0"
|
dart: ">=3.8.0 <4.0.0"
|
||||||
flutter: ">=3.29.0"
|
flutter: ">=3.29.0"
|
||||||
|
|
|
@ -57,10 +57,10 @@ dependencies:
|
||||||
#RSA 加密库
|
#RSA 加密库
|
||||||
encrypt: ^5.0.3
|
encrypt: ^5.0.3
|
||||||
pointycastle: ^3.6.2
|
pointycastle: ^3.6.2
|
||||||
#网页页面加载
|
|
||||||
webview_flutter: ^4.4.0
|
|
||||||
path_provider: ^2.0.1
|
|
||||||
camera: ^0.11.2
|
camera: ^0.11.2
|
||||||
|
#富文本查看
|
||||||
|
flutter_html: ^3.0.0
|
||||||
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
Loading…
Reference in New Issue