2025.9.19 修改bug

main
xufei 2025-09-19 18:01:23 +08:00
parent dc89f7039f
commit 0b0f7c9eff
13 changed files with 241 additions and 111 deletions

View File

@ -491,9 +491,9 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
CURRENT_PROJECT_VERSION = 60;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D;
ENABLE_BITCODE = NO;
@ -503,10 +503,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.1;
PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq-des";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@ -685,9 +686,9 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
CURRENT_PROJECT_VERSION = 60;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D;
ENABLE_BITCODE = NO;
@ -697,10 +698,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.1;
PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq-des";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@ -716,9 +718,9 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
CURRENT_PROJECT_VERSION = 60;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D;
ENABLE_BITCODE = NO;
@ -728,10 +730,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.1;
PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq-des";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "qa-zsaq";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";

View File

@ -2,8 +2,10 @@ import 'package:flutter/material.dart';
import '../tools/tools.dart';
///
/// - /
/// -
/// -
/// -
/// -
/// -
class DannerRepainItem extends StatelessWidget {
final String title;
final List<String> details;
@ -50,70 +52,12 @@ class DannerRepainItem extends StatelessWidget {
),
const Divider(height: 1),
// /
//
Padding(
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 15),
child: LayoutBuilder(builder: (context, constraints) {
//
const double horizontalGap = 20;
const double verticalGap = 5;
List<Widget> rows = [];
for (int i = 0; i < details.length; i += 2) {
final left = details[i];
final right = (i + 1 < details.length) ? details[i + 1] : '';
//
final leftPainter = TextPainter(
text: TextSpan(text: left, style: HhTextStyleUtils.secondaryTitleStyle),
maxLines: 1,
textDirection: TextDirection.ltr,
)..layout();
final rightPainter = TextPainter(
text: TextSpan(text: right, style: HhTextStyleUtils.secondaryTitleStyle),
maxLines: 1,
textDirection: TextDirection.ltr,
)..layout();
final canFitOneLine = right.isNotEmpty &&
(leftPainter.width + horizontalGap + rightPainter.width)
<= constraints.maxWidth;
if (right.isNotEmpty && canFitOneLine) {
//
rows.add(Padding(
padding: EdgeInsets.only(bottom: verticalGap),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
_DetailText(left),
_DetailText(right),
],
),
));
} else {
//
rows.add(Padding(
padding: EdgeInsets.only(bottom: verticalGap),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
//
_DetailText(left),
if (right.isNotEmpty)
//
Align(
alignment: Alignment.centerRight,
child: _DetailText(right),
children: _buildDetailRows(),
),
],
),
));
}
}
return Column(children: rows);
}),
),
//
@ -127,21 +71,86 @@ class DannerRepainItem extends StatelessWidget {
),
);
}
//
List<Widget> _buildDetailRows() {
List<Widget> rows = [];
for (int i = 0; i < details.length; i += 2) {
final left = details[i];
final right = (i + 1 < details.length) ? details[i + 1] : '';
rows.add(
Padding(
padding: const EdgeInsets.only(bottom: 8),
child: _DetailRow(left: left, right: right),
),
);
}
return rows;
}
}
/// Detail
///
///
///
class _DetailRow extends StatelessWidget {
final String left;
final String right;
const _DetailRow({
Key? key,
required this.left,
required this.right,
}) : super(key: key);
@override
Widget build(BuildContext context) {
//
if (right.isEmpty) {
return Align(
alignment: Alignment.centerLeft,
child: _DetailText(left, textAlign: TextAlign.left),
);
}
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// - 50%
Expanded(
flex: 1,
child: _DetailText(left, textAlign: TextAlign.left),
),
//
const SizedBox(width: 10),
// - 50%
Expanded(
flex: 1,
child: _DetailText(right, textAlign: TextAlign.right),
),
],
);
}
}
/// Detail
class _DetailText extends StatelessWidget {
final String text;
const _DetailText(this.text, {Key? key}) : super(key: key);
final TextAlign textAlign;
const _DetailText(this.text, {
Key? key,
required this.textAlign,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(
text,
style: HhTextStyleUtils.secondaryTitleStyle,
softWrap: false,
overflow: TextOverflow.visible,
softWrap: true, //
textAlign: textAlign, // 使
);
}
}

View File

@ -118,10 +118,54 @@ class _DepartmentPickerHiddenTypeState
void _onSearchChanged() {
final q = _searchController.text.toLowerCase().trim();
// setState(() {
// filtered = q.isEmpty ? original : _filterCategories(original, q);
// });
//
setState(() {
filtered = q.isEmpty ? original : _filterCategories(original, q);
});
if (q.isEmpty) {
filtered = original;
expandedSet.clear(); //
} else {
filtered = _filterCategories(original, q);
//
_expandAllMatchingNodes(filtered);
}
});
}
//
void _expandAllMatchingNodes(List<Category> categories) {
for (var category in categories) {
//
expandedSet.add(category.id);
//
if (category.children.isNotEmpty) {
_expandAllMatchingNodes(category.children);
}
//
_expandParentNodes(category.id);
}
}
//
void _expandParentNodes(String id) {
var currentId = id;
var parent = parentMap[currentId];
while (parent != null) {
expandedSet.add(parent.id);
currentId = parent.id;
parent = parentMap[currentId];
}
}
List<Category> _filterCategories(List<Category> list, String q) {
final res = <Category>[];

View File

@ -24,10 +24,10 @@ class ApiService {
// static const String baseFacePath = "http://192.168.0.25:38199"; //
///
static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb";
// static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb";
// static const String basePath = "http://192.168.20.240:8500/integrated_whb";//
// static const String basePath = "http://192.168.0.25:28199";//
// static const String basePath = "http://192.168.0.45:28199";//
static const String basePath = "http://192.168.0.45:28199";//
///
static const String baseImgPath = "https://file.zcloudchina.com/YTHFile";
@ -2052,6 +2052,7 @@ U6Hzm1ninpWeE+awIDAQAB
String correctiveDepartment,
String isIndex,
String keyWord,
String laiYuanId,
) {
return HttpManager().request(
basePath,
@ -2063,7 +2064,7 @@ U6Hzm1ninpWeE+awIDAQAB
"ENDTIME": endDate.isEmpty?"":"$endDate 23:59:59",
"HIDDENLEVEL": level,
"HIDDEN_RISKSTANDARD": riskStandard,
// "SOURCE": riskStandard,
// "SOURCE": laiYuanId,
"STATE": state,
"DEPARTMENT_ID": departmentId,
"RECTIFICATIONDEPT": correctiveDepartment,

View File

@ -76,20 +76,20 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
void getListData(int type,bool addList,String keyWord){
switch(widget.appItem ){
case 1://
_getDangerRecord(-1,_page,"","","","","","","","",keyWord,addList);
_getDangerRecord(-1,_page,"","","","","","","","",keyWord,addList,"");
// _getListTree();
break;
case 2://
_getDangerRecord(2,_page,"","","","","","","","",keyWord,addList);
_getDangerRecord(2,_page,"","","","","","","","",keyWord,addList,"");
break;
case 3://
_getDangerRecord(5,_page,"","","","","-1","","","",keyWord,addList);
_getDangerRecord(5,_page,"","","","","-1","","","",keyWord,addList,"");
break;
case 4://
_getDangerRecord(3,_page,"","","","","","3","","",keyWord,addList);
_getDangerRecord(3,_page,"","","","","","3","","",keyWord,addList,"");
break;
case 5://
_getDangerRecord(4,_page,"","","","","","4","","1",keyWord,addList);
_getDangerRecord(4,_page,"","","","","","4","","1",keyWord,addList,"");
break;
}
@ -133,11 +133,11 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
child: DangerWaitDrawer(
"",
onClose: (String selectedCategoryId,String selectedDepartmentId,String investigationMethodOption,
String hazardLevelOption,String dangerStatusOption,String startDate,String endDate) {
String hazardLevelOption,String dangerStatusOption,String startDate,String endDate,String laiYuanId) {
_page=1;
_getDangerRecord(-1,_page,startDate,endDate,hazardLevelOption,investigationMethodOption,
dangerStatusOption,selectedCategoryId,selectedDepartmentId,"",searchKey,false);
dangerStatusOption,selectedCategoryId,selectedDepartmentId,"",searchKey,false,laiYuanId);
},
),
@ -365,7 +365,7 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
Future<void> _getDangerRecord(int type, int currentPage,
String startDate,String endDate,String level,String riskStandard,String state,
String departmentId,String correctiveDepartment,
String isIndex,String keyWord,bool loadMore) async {
String isIndex,String keyWord,bool loadMore,String laiYuanId) async {
try {
if (_isLoading) return;
_isLoading = true;
@ -373,7 +373,7 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
LoadingDialogHelper.show();
final result = await ApiService.getHiddenTreatmentList( type, currentPage,
startDate, endDate, level, riskStandard, state,
departmentId, correctiveDepartment, isIndex, keyWord);
departmentId, correctiveDepartment, isIndex, keyWord,laiYuanId);
LoadingDialogHelper.hide();
if (result['result'] == 'success') {
@ -468,8 +468,10 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> {
return "隐患来源:标准排查";
}else if("4"==type){
return "隐患来源:专项检查";
}else{
}else if("5"==type){
return "隐患来源:安全检查";
}else{
return "隐患来源NFC设备巡检";
}
}

View File

@ -690,8 +690,8 @@ class _HiddenDangerAcceptancePageState extends State<HiddenDangerAcceptancePage>
String _getSourceText(String? source) {
switch (source) {
case '1': return '隐患快报';
case '2': return '隐患排查清单检查';
case '3': return '标准排查清单检查';
case '2': return '隐患排查';
case '3': return '标准排查';
case '4': return '专项检查';
case '5': return '安全检查';
case '6': return 'NFC设备巡检';

View File

@ -496,8 +496,8 @@ class _HiddenRecordDetailPageState extends State<HiddenRecordDetailPage> {
switch (source) {
case '1': return '隐患快报';
case '2': return '隐患排查清单检查';
case '3': return '标准排查清单检查';
case '2': return '隐患排查';
case '3': return '标准排查';
case '4': return '专项检查';
case '5': return '安全检查';
case '6': return 'NFC设备巡检';

View File

@ -787,8 +787,8 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet
String _getSourceText(String? source) {
switch (source) {
case '1': return '隐患快报';
case '2': return '隐患排查清单检查';
case '3': return '标准排查清单检查';
case '2': return '隐患排查';
case '3': return '标准排查';
case '4': return '专项检查';
case '5': return '安全检查';
case '6': return 'NFC设备巡检';

View File

@ -247,13 +247,16 @@ class _SafetyCommitmentDhListState extends State<SafetyCommitmentDhList> {
),
),
const SizedBox(height: 8),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('承诺时间: ${item['SIGN_TIME']??""}'),
Text('承诺时间: ${item['START_TIME']??""}-${item['END_TIME']??""}'),
const SizedBox(height: 5),
Text('承诺人: ${item['SIGN_USER_NAME']??""}'),
],
),
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Text('承诺时间: ${item['SIGN_TIME']??""}'),
// Text('承诺人: ${item['SIGN_USER_NAME']??""}'),
// ],
// ),
],
),
),

View File

@ -31,6 +31,10 @@ class DangerWaitBean {
final String itemNameOne;
final String itemNameTwo;
final String laiYuanId;
final String laiYuanName;
DangerWaitBean({
required this.selectedCategoryId,
required this.selectedDepartmentId,
@ -43,7 +47,8 @@ class DangerWaitBean {
required this.endTime,
required this.itemNameOne,
required this.itemNameTwo,
required this.laiYuanId,
required this.laiYuanName,
});
@ -54,6 +59,7 @@ class DangerWaitBean {
String startTime,String endTime,
String itemNameOne,String itemNameTwo,
String laiYuanId,String laiYuanName,
) {
return DangerWaitBean(
selectedCategoryId:selectedCategoryId,
@ -67,6 +73,8 @@ class DangerWaitBean {
endTime:endTime,
itemNameOne:itemNameOne,
itemNameTwo:itemNameTwo,
laiYuanId:laiYuanId,
laiYuanName:laiYuanName,
);
}
@ -76,7 +84,7 @@ class DangerWaitBean {
"investigationMethodOption":investigationMethodOption,"investigationMethodId":investigationMethodId,
"hazardLevelOption":hazardLevelOption,"dangerStatusOption":dangerStatusOption,
"startTime":startTime,"endTime":endTime,
"itemNameOne":itemNameOne,"itemNameTwo":itemNameTwo,};
"itemNameOne":itemNameOne,"itemNameTwo":itemNameTwo,"laiYuanId":laiYuanId,"laiYuanName":laiYuanName,};
}
}
@ -85,7 +93,7 @@ class DangerWaitBean {
class DangerWaitDrawer extends StatefulWidget {
const DangerWaitDrawer(this.treeJson, {super.key,required this.onClose});
final Function(String,String,String,String,String,String,String) onClose; //
final Function(String,String,String,String,String,String,String,String) onClose; //
final String treeJson;
// final DangerWaitBean waitBean;
@ -123,6 +131,12 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
String itemNameOne="请选择";
String itemNameTwo="请选择";
//
List<WaitListBean> laiYuanList =[];
String laiYuanId="";
String laiYuanName="请选择";
// List<Map<String, dynamic>>
late List<Map<String, dynamic>> departmentList ;
@ -131,6 +145,7 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
final List<String> investigationMethod = ["风险排查隐患", "隐患排查隐患"];
final List<String> hazardLevel = [" 一般风险 ", " 重大风险 "];
final List<String> dangerStatus = ["未整改", "已整改", "已验收", "已过期"];
final List<String> laiYuanStatus = ["隐患快报", "隐患排查", "标准排查", "专项检查", "安全检查", "NFC设备巡检"];
@override
void initState() {
@ -162,6 +177,8 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
}
itemNameOne= dangerWaitBean["itemNameOne"];
itemNameTwo= dangerWaitBean["itemNameTwo"];
laiYuanId= dangerWaitBean["laiYuanId"];
laiYuanName= dangerWaitBean["laiYuanName"];
}
@ -169,6 +186,16 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
print("解析失败: $e");
}
//
// setState(() {
// for(int i=0;i<laiYuanStatus.length;i++){
// WaitListBean waitListBean=WaitListBean(id: "${i+1}", name: laiYuanStatus[i], parentId: "");
// laiYuanList.add(waitListBean);
// }
// });
// // JSON
// jsonList = json.decode(widget.treeJson);
// departmentList = List<Map<String, dynamic>>.from(jsonList);
@ -261,6 +288,27 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
);
}
//
void showCategoryPickerTwo() {
showModalBottomSheet(
context: context,
isScrollControlled: true,
barrierColor: Colors.black54,
backgroundColor: Colors.transparent,
builder: (ctx) => WaitListPicker(
data: laiYuanList,
onSelected: (item) {
setState(() {
laiYuanId=item!.id;
laiYuanName=item!.name;
setResult();
});
},
),
);
}
return SafeArea(
child:
SingleChildScrollView( //
@ -314,6 +362,18 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
// },
),
// const SizedBox(height: 6),
// //
// _buildDropdownBox(
// "隐患来源",
// display: laiYuanName ?? '请选择',
// onTap: () {
// showCategoryPickerTwo();
// }
// ),
const SizedBox(height: 12),
const Text(
"排查方式",
@ -335,6 +395,8 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
itemCount: investigationMethod.length,
itemBuilder: _itemGridviewItem
),
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: List.generate(investigationMethod.length, (idx) {
@ -508,6 +570,9 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
itemNameOne="请选择";
itemNameTwo="请选择";
laiYuanId="";
laiYuanName="请选择";
setResult();
// widget.onClose("","","","","","","");
@ -698,7 +763,9 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
_selectedCategoryId ?? "", _selectedDepartmentId?? "",
_investigationMethodOption,investigationMethodId,
_hazardLevelOption, _dangerStatusOption,
startTime, endTime,itemNameOne, itemNameTwo);
startTime, endTime,itemNameOne, itemNameTwo,laiYuanId,laiYuanName);
String jsonString = jsonEncode(waitBean.toJson());
SessionService.instance.setDangerWaitInfo(jsonString);
@ -711,6 +778,7 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> {
_dangerStatusOption!=-1?dangerStatusId[_dangerStatusOption]:"",
_startDate!=null?startTime:"",
_endDate!=null?endTime:"",
laiYuanId?? ""
); //
}

View File

@ -53,7 +53,7 @@ class _MineDutyDetailPage extends State<MineDutyDetailPage> {
//
if (widget.item["REVIEW_STATUS"] != '2')
_buildInfoRowTwo("审批人:", "${FormUtils.hasValue(widget.item, "REVIEW_USER_NAME") ? widget.item["REVIEW_USER_NAME"] : "unfind"}[${FormUtils.hasValue(widget.item, "REVIEW_USER_DEPARTMENTNAME") ? widget.item["REVIEW_USER_DEPARTMENTNAME"] : "unfind"}]",),
_buildInfoRowTwo("审批人:", "${FormUtils.hasValue(widget.item, "REVIEW_USER_NAME") ? widget.item["REVIEW_USER_NAME"] : ""}${FormUtils.hasValue(widget.item, "REVIEW_USER_DEPARTMENTNAME") ? "[${widget.item["REVIEW_USER_DEPARTMENTNAME"]}]": ""}",),
// Container(
// padding: const EdgeInsets.symmetric(
// horizontal: 5,

0
lib/rename_script.sh Executable file → Normal file
View File

View File

@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 2.2.0+59
version: 2.2.1+60
environment:
sdk: ^3.7.0