256 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Dart
		
	
	
			
		
		
	
	
			256 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Dart
		
	
	
| import 'package:flutter/material.dart';
 | |
| import 'package:intl/intl.dart';
 | |
| import 'package:qhd_prevention/pages/home/tap/item_list_widget.dart';
 | |
| import 'package:qhd_prevention/pages/my_appbar.dart';
 | |
| import 'package:qhd_prevention/tools/tools.dart';
 | |
| 
 | |
| ///岗位详情
 | |
| class MineDutyDetailPage extends StatefulWidget {
 | |
|   const MineDutyDetailPage(this.item, {super.key});
 | |
| 
 | |
|   final item;
 | |
| 
 | |
|   @override
 | |
|   State<MineDutyDetailPage> createState() => _MineDutyDetailPage();
 | |
| }
 | |
| 
 | |
| class _MineDutyDetailPage extends State<MineDutyDetailPage> {
 | |
|   final TextEditingController _reasonController = TextEditingController();
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     return Scaffold(
 | |
|       backgroundColor: const Color(0xFFF5F7FA),
 | |
|       appBar: MyAppbar(title: "离岗详情"),
 | |
|       body: SingleChildScrollView(
 | |
|         padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
 | |
|         child: Column(
 | |
|           crossAxisAlignment: CrossAxisAlignment.start,
 | |
|           children: [
 | |
| 
 | |
| 
 | |
|             // 申请人信息
 | |
|             _buildInfoRowTwo("申请人:", widget.item["USER_NAME"]),
 | |
|             const SizedBox(height: 10),
 | |
| 
 | |
|             // 离岗开始时间
 | |
|             _buildInfoRowTwo("离岗开始时间:", widget.item["STARTTIME"]),
 | |
| 
 | |
|             const SizedBox(height: 10),
 | |
| 
 | |
|             // 离岗结束时间
 | |
|             _buildInfoRowTwo("离岗结束时间:", widget.item["ENDTIME"]),
 | |
| 
 | |
|             const SizedBox(height: 10),
 | |
| 
 | |
|             _buildInfoRowTwo("离岗原因:", widget.item["DESCR"]),
 | |
| 
 | |
|             const SizedBox(height: 10),
 | |
| 
 | |
|             _buildInfoRowTwo("审批状态:", _getTypeReturn(widget.item)),
 | |
|             const SizedBox(height: 10),
 | |
| 
 | |
| 
 | |
|             // 申请人信息
 | |
|             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"}]",),
 | |
|               // Container(
 | |
|               //   padding: const EdgeInsets.symmetric(
 | |
|               //     horizontal: 5,
 | |
|               //     vertical: 12,
 | |
|               //   ),
 | |
|               //   decoration: BoxDecoration(
 | |
|               //     color: Colors.white,
 | |
|               //     borderRadius: BorderRadius.circular(12),
 | |
|               //     boxShadow: [
 | |
|               //       BoxShadow(
 | |
|               //         color: Colors.grey.withOpacity(0.1),
 | |
|               //         spreadRadius: 1,
 | |
|               //         blurRadius: 6,
 | |
|               //         offset: const Offset(0, 2),
 | |
|               //       ),
 | |
|               //     ],
 | |
|               //   ),
 | |
|               //   child: ItemListWidget.singleLineTitleText(
 | |
|               //     label: '审批人:',
 | |
|               //     isEditable: false,
 | |
|               //     text:
 | |
|               //         "${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"}]",
 | |
|               //   ),
 | |
|               // ),
 | |
| 
 | |
|             const SizedBox(height: 10),
 | |
|             // 审批意见' : '取消原因
 | |
|             if (widget.item["REVIEW_STATUS"] == '1' ||widget.item["REVIEW_STATUS"] == '-1' )
 | |
|               _buildInfoRowTwo(widget.item["ISDELETE"] == '0' ? '审批意见:' : '取消原因:', widget.item["REVIEW_DESC"]),
 | |
|               // Container(
 | |
|               //   padding: const EdgeInsets.symmetric(
 | |
|               //     horizontal: 5,
 | |
|               //     vertical: 12,
 | |
|               //   ),
 | |
|               //   decoration: BoxDecoration(
 | |
|               //     color: Colors.white,
 | |
|               //     borderRadius: BorderRadius.circular(12),
 | |
|               //     boxShadow: [
 | |
|               //       BoxShadow(
 | |
|               //         color: Colors.grey.withOpacity(0.1),
 | |
|               //         spreadRadius: 1,
 | |
|               //         blurRadius: 6,
 | |
|               //         offset: const Offset(0, 2),
 | |
|               //       ),
 | |
|               //     ],
 | |
|               //   ),
 | |
|               //   child: ItemListWidget.singleLineTitleText(
 | |
|               //     label: widget.item["ISDELETE"] == '0' ? '审批意见:' : '取消原因:',
 | |
|               //     isEditable: false,
 | |
|               //     text:widget.item["REVIEW_DESC"]
 | |
|               //
 | |
|               //       ),
 | |
|               // ),
 | |
| 
 | |
|             const SizedBox(height: 40),
 | |
| 
 | |
|             // 提交按钮
 | |
|             SizedBox(
 | |
|               width: double.infinity,
 | |
|               child: TextButton(
 | |
|                 onPressed: () {
 | |
|                   Navigator.pop(context);
 | |
|                 },
 | |
|                 style: ElevatedButton.styleFrom(
 | |
|                   backgroundColor: const Color(0xFF1976D2),
 | |
|                   padding: const EdgeInsets.symmetric(vertical: 16),
 | |
|                   shape: RoundedRectangleBorder(
 | |
|                     borderRadius: BorderRadius.circular(12),
 | |
|                   ),
 | |
|                 ),
 | |
|                 child: Text(
 | |
|                   "返回",
 | |
|                   style: TextStyle(fontSize: 16, color: Colors.white),
 | |
|                 ),
 | |
|               ),
 | |
|             ),
 | |
|           ],
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   Widget _buildDateField({
 | |
|     required String label,
 | |
|     required String? date,
 | |
|     required VoidCallback onTap,
 | |
|   }) {
 | |
|     return GestureDetector(
 | |
|       onTap: onTap,
 | |
|       child: Container(
 | |
|         padding: const EdgeInsets.all(16),
 | |
|         decoration: BoxDecoration(
 | |
|           color: Colors.white,
 | |
|           borderRadius: BorderRadius.circular(12),
 | |
|           boxShadow: [
 | |
|             BoxShadow(
 | |
|               color: Colors.grey.withOpacity(0.1),
 | |
|               spreadRadius: 1,
 | |
|               blurRadius: 6,
 | |
|               offset: const Offset(0, 2),
 | |
|             ),
 | |
|           ],
 | |
|         ),
 | |
|         child: Row(
 | |
|           mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | |
|           children: [
 | |
|             Text(label, style: const TextStyle(fontSize: 16)),
 | |
|             Text(
 | |
|               // date != null ? DateFormat('yyyy-MM-dd').format(date) : "请选择日期",
 | |
|               date!,
 | |
|               style: TextStyle(fontSize: 16, color: Colors.black),
 | |
|             ),
 | |
|           ],
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|   Widget _buildInfoRowTwo(String title, String value) {
 | |
|     return Container(
 | |
|       padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 12),
 | |
|       decoration: BoxDecoration(
 | |
|         color: Colors.white,
 | |
|         borderRadius: BorderRadius.circular(12),
 | |
|         boxShadow: [
 | |
|           BoxShadow(
 | |
|             color: Colors.grey.withOpacity(0.1),
 | |
|             spreadRadius: 1,
 | |
|             blurRadius: 6,
 | |
|             offset: const Offset(0, 2),
 | |
|           ),
 | |
|         ],
 | |
|       ),
 | |
|       child:ItemListWidget.singleLineTitleText(
 | |
|           label:title,
 | |
|           isEditable: false,
 | |
|           text:value
 | |
| 
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   Widget _buildInfoRow(String title, String value) {
 | |
|     return Container(
 | |
|       padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
 | |
|       decoration: BoxDecoration(
 | |
|         color: Colors.white,
 | |
|         borderRadius: BorderRadius.circular(12),
 | |
|         boxShadow: [
 | |
|           BoxShadow(
 | |
|             color: Colors.grey.withOpacity(0.1),
 | |
|             spreadRadius: 1,
 | |
|             blurRadius: 6,
 | |
|             offset: const Offset(0, 2),
 | |
|           ),
 | |
|         ],
 | |
|       ),
 | |
|       child: Row(
 | |
|         mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | |
|         children: [
 | |
|           Text(title, style: const TextStyle(fontSize: 16)),
 | |
|           Text(
 | |
|             value,
 | |
|             style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500),
 | |
|           ),
 | |
|         ],
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   String _getTypeReturn(final item) {
 | |
|     String type = item['REVIEW_STATUS'];
 | |
|     if ("0" == type) {
 | |
|       return "待审批";
 | |
|     } else if ("1" == type) {
 | |
|       return "审批通过";
 | |
|     } else if ("2" == type) {
 | |
|       return "无需审批";
 | |
|     } else if ("-1" == type) {
 | |
|       String type2 = item['ISDELETE'];
 | |
|       if ("1" == type2) {
 | |
|         if (item['CREATOR'] == item['OPERATOR']) {
 | |
|           return "申请人取消";
 | |
|         } else {
 | |
|           return "审批人取消";
 | |
|         }
 | |
|       } else {
 | |
|         return "审批打回";
 | |
|       }
 | |
|     } else {
 | |
|       return "审批错误";
 | |
|     }
 | |
|   }
 | |
| }
 |