diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2cb156a..2be6913 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -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"; diff --git a/lib/customWidget/danner_repain_item.dart b/lib/customWidget/danner_repain_item.dart index d22be3b..6046680 100644 --- a/lib/customWidget/danner_repain_item.dart +++ b/lib/customWidget/danner_repain_item.dart @@ -2,8 +2,10 @@ import 'package:flutter/material.dart'; import '../tools/tools.dart'; /// 通用列表卡片组件: -/// - 两两为一组,优先尝试同一行显示左右两列并左/右对齐; -/// - 如放不下,则自动拆成两行,上行左对齐,下行右对齐。 +/// - 两两为一组,固定左右布局,平均分配宽度 +/// - 左侧文字左对齐,右侧文字右对齐 +/// - 文字过多时各自自动换行 +/// - 如果一行只有一个元素,靠左显示 class DannerRepainItem extends StatelessWidget { final String title; final List 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 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), - ), - ], - ), - )); - } - } - - return Column(children: rows); - }), + child: Column( + children: _buildDetailRows(), + ), ), // — 底部标签区 — @@ -127,21 +71,86 @@ class DannerRepainItem extends StatelessWidget { ), ); } + + // 构建详情行 + List _buildDetailRows() { + List 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, // 使用指定的对齐方式 ); } -} +} \ No newline at end of file diff --git a/lib/customWidget/department_picker_hidden_type.dart b/lib/customWidget/department_picker_hidden_type.dart index 54aafcf..427b3f3 100644 --- a/lib/customWidget/department_picker_hidden_type.dart +++ b/lib/customWidget/department_picker_hidden_type.dart @@ -118,11 +118,55 @@ 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 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 _filterCategories(List list, String q) { final res = []; for (var cat in list) { diff --git a/lib/http/ApiService.dart b/lib/http/ApiService.dart index 6c18e25..a576966 100644 --- a/lib/http/ApiService.dart +++ b/lib/http/ApiService.dart @@ -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, diff --git a/lib/pages/app/danger_wait_list_page.dart b/lib/pages/app/danger_wait_list_page.dart index 256894a..062fca5 100644 --- a/lib/pages/app/danger_wait_list_page.dart +++ b/lib/pages/app/danger_wait_list_page.dart @@ -76,20 +76,20 @@ class _DangerWaitListPageState extends State { 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 { 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 { Future _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 { 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 { return "隐患来源:标准排查"; }else if("4"==type){ return "隐患来源:专项检查"; - }else{ + }else if("5"==type){ return "隐患来源:安全检查"; + }else{ + return "隐患来源:NFC设备巡检"; } } diff --git a/lib/pages/app/hidden_danger_acceptance_page.dart b/lib/pages/app/hidden_danger_acceptance_page.dart index ee23e42..5e729e4 100644 --- a/lib/pages/app/hidden_danger_acceptance_page.dart +++ b/lib/pages/app/hidden_danger_acceptance_page.dart @@ -690,8 +690,8 @@ class _HiddenDangerAcceptancePageState extends State 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设备巡检'; diff --git a/lib/pages/app/hidden_record_detail_page.dart b/lib/pages/app/hidden_record_detail_page.dart index 704faff..aa0a840 100644 --- a/lib/pages/app/hidden_record_detail_page.dart +++ b/lib/pages/app/hidden_record_detail_page.dart @@ -496,8 +496,8 @@ class _HiddenRecordDetailPageState extends State { 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设备巡检'; diff --git a/lib/pages/app/pending_rectification_detail_page.dart b/lib/pages/app/pending_rectification_detail_page.dart index b953194..db7e356 100644 --- a/lib/pages/app/pending_rectification_detail_page.dart +++ b/lib/pages/app/pending_rectification_detail_page.dart @@ -787,8 +787,8 @@ class _PendingRectificationDetailPageState extends State { ), ), 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']??""}'), + // ], + // ), ], ), ), diff --git a/lib/pages/home/work/danger_wait_deawer.dart b/lib/pages/home/work/danger_wait_deawer.dart index 2727de3..79b75b8 100644 --- a/lib/pages/home/work/danger_wait_deawer.dart +++ b/lib/pages/home/work/danger_wait_deawer.dart @@ -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 { String itemNameOne="请选择"; String itemNameTwo="请选择"; + //隐患来源: + List laiYuanList =[]; + + String laiYuanId=""; + String laiYuanName="请选择"; + // 转换为List> late List> departmentList ; @@ -131,6 +145,7 @@ class DangerWaitDrawerState extends State { final List investigationMethod = ["风险排查隐患", "隐患排查隐患"]; final List hazardLevel = [" 一般风险 ", " 重大风险 "]; final List dangerStatus = ["未整改", "已整改", "已验收", "已过期"]; + final List laiYuanStatus = ["隐患快报", "隐患排查", "标准排查", "专项检查", "安全检查", "NFC设备巡检"]; @override void initState() { @@ -162,6 +177,8 @@ class DangerWaitDrawerState extends State { } itemNameOne= dangerWaitBean["itemNameOne"]; itemNameTwo= dangerWaitBean["itemNameTwo"]; + laiYuanId= dangerWaitBean["laiYuanId"]; + laiYuanName= dangerWaitBean["laiYuanName"]; } @@ -169,6 +186,16 @@ class DangerWaitDrawerState extends State { print("解析失败: $e"); } + + //隐患来源数据处理 + // setState(() { + // for(int i=0;i>.from(jsonList); @@ -261,6 +288,27 @@ class DangerWaitDrawerState extends State { ); } + // 隐患来源显示分类选择器 + 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 { // }, ), + + + // const SizedBox(height: 6), + // // 管控部门 + // _buildDropdownBox( + // "隐患来源", + // display: laiYuanName ?? '请选择', + // onTap: () { + // showCategoryPickerTwo(); + // } + // ), + const SizedBox(height: 12), const Text( "排查方式", @@ -335,6 +395,8 @@ class DangerWaitDrawerState extends State { itemCount: investigationMethod.length, itemBuilder: _itemGridviewItem ), + + // Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: List.generate(investigationMethod.length, (idx) { @@ -508,6 +570,9 @@ class DangerWaitDrawerState extends State { itemNameOne="请选择"; itemNameTwo="请选择"; + laiYuanId=""; + laiYuanName="请选择"; + setResult(); // widget.onClose("","","","","","",""); @@ -698,7 +763,9 @@ class DangerWaitDrawerState extends State { _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 { _dangerStatusOption!=-1?dangerStatusId[_dangerStatusOption]:"", _startDate!=null?startTime:"", _endDate!=null?endTime:"", + laiYuanId?? "" ); // 触发回调 } diff --git a/lib/pages/mine/mine_duty_detail.dart b/lib/pages/mine/mine_duty_detail.dart index 66a925a..5c7abed 100644 --- a/lib/pages/mine/mine_duty_detail.dart +++ b/lib/pages/mine/mine_duty_detail.dart @@ -53,7 +53,7 @@ class _MineDutyDetailPage extends State { // 申请人信息 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, diff --git a/lib/rename_script.sh b/lib/rename_script.sh old mode 100755 new mode 100644 diff --git a/pubspec.yaml b/pubspec.yaml index 647262f..7086617 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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