From ae49b491534ba8f5a7296d05174eabd030a2db4a Mon Sep 17 00:00:00 2001
From: hs <873121290@qq.com>
Date: Tue, 2 Sep 2025 08:43:05 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=AB=E9=A1=B9=E4=BD=9C=E4=B8=9A=E7=BB=9F?=
=?UTF-8?q?=E4=B8=80=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E5=88=B0=E7=A7=92=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
assets/map/index.html | 380 ++++++++++++++++++
.../picker/CupertinoDatePicker.dart | 161 ++++++--
.../SafeCheck/safeCheck_detail.dart | 4 +-
.../Start/safeCheck_start_detail.dart | 2 +
.../special_wrok/dangerous_options_page.dart | 4 +-
.../dh_work/HotWorkDetailFormWidget.dart | 51 ++-
.../dh_work_detai/hotwork_apply_detail.dart | 41 +-
.../jszy_work_detail/hotwork_jszy_detail.dart | 1 +
.../kszy_work_detail/hotwork_kszy_detail.dart | 1 +
.../ysgd_work_detail/hotwork_ysgd_detail.dart | 1 +
.../dl_work/CutroadDetailFormWidget.dart | 51 ++-
.../dl_work_detai/cutroad_apply_detail.dart | 42 +-
.../jszy_work_detail/cutroad_jszy_detail.dart | 69 ++--
.../kszy_work_detail/cutroad_kszy_detail.dart | 1 +
.../ysgd_work_detail/cutroad_ysgd_detail.dart | 87 ++--
.../dt_work/BreakgroundDetailFormWidget.dart | 51 ++-
.../breakground_apply_detail.dart | 42 +-
.../breakground_jszy_detail.dart | 1 +
.../breakground_kszy_detail.dart | 1 +
.../breakground_ysgd_detail.dart | 1 +
.../dz_work/HoistworkDetailFormWidget.dart | 52 ++-
.../dz_work_detai/hoistwork_apply_detail.dart | 42 +-
.../hoistwork_jszy_detail.dart | 1 +
.../hoistwork_kszy_detail.dart | 1 +
.../hoistwork_ysgd_detail.dart | 1 +
.../gc_work/HighWorkDetailFormWidget.dart | 52 ++-
.../gc_work_detai/highwork_apply_detail.dart | 42 +-
.../highwork_jszy_detail.dart | 1 +
.../highwork_kszy_detail.dart | 1 +
.../highwork_ysgd_detail.dart | 1 +
.../ElectricityDetailFormWidget.dart | 52 ++-
.../electricity_jszy_detail.dart | 1 +
.../electricity_kszy_detail.dart | 1 +
.../electricity_apply_detail.dart | 42 +-
.../electricity_ysgd_detail.dart | 1 +
.../mbcd_work/BlindboardDetailFormWidget.dart | 52 ++-
.../blindboard_jszy_detail.dart | 1 +
.../blindboard_kszy_detail.dart | 1 +
.../blindboard_apply_detail.dart | 42 +-
.../blindboard_ysgd_detail.dart | 1 +
.../sxkj_work/SpaceWorkDetailFormWidget.dart | 54 ++-
.../spacework_jszy_detail.dart | 1 +
.../spacework_kszy_detail.dart | 1 +
.../spacework_apply_detail.dart | 42 +-
.../spacework_ysgd_detail.dart | 1 +
lib/pages/mine/mine_page.dart | 2 +-
lib/pages/mine/mine_sign_page.dart | 5 +-
47 files changed, 986 insertions(+), 500 deletions(-)
create mode 100644 assets/map/index.html
diff --git a/assets/map/index.html b/assets/map/index.html
new file mode 100644
index 0000000..971b9c3
--- /dev/null
+++ b/assets/map/index.html
@@ -0,0 +1,380 @@
+
+
+
+
+ 特殊作业扎点
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/customWidget/picker/CupertinoDatePicker.dart b/lib/customWidget/picker/CupertinoDatePicker.dart
index 7c3cf31..811a504 100644
--- a/lib/customWidget/picker/CupertinoDatePicker.dart
+++ b/lib/customWidget/picker/CupertinoDatePicker.dart
@@ -4,22 +4,22 @@ import 'package:flutter/material.dart';
/// 调用示例:
/// DateTime? picked = await BottomDateTimePicker.showDate(
/// context,
-/// mode: BottomPickerMode.date, // 或 BottomPickerMode.dateTime(默认)
+/// mode: BottomPickerMode.date, // 或 BottomPickerMode.dateTime(默认)或 BottomPickerMode.dateTimeWithSeconds
/// allowFuture: true,
/// allowPast: false, // 是否允许选择过去(false 表示只能选择现在或未来)
-/// minTimeStr: '2025-08-20 08:30',
+/// minTimeStr: '2025-08-20 08:30:45',
/// );
/// if (picked != null) {
/// print('用户选择的时间:$picked');
/// }
-enum BottomPickerMode { dateTime, date }
+enum BottomPickerMode { dateTime, date, dateTimeWithSeconds }
class BottomDateTimePicker {
static Future showDate(
BuildContext context, {
bool allowFuture = true,
- bool allowPast = true, // 新增:是否允许选择过去(默认允许)
- String? minTimeStr, // 可选:'yyyy-MM-dd HH:mm'
+ bool allowPast = true, // 是否允许选择过去(默认允许)
+ String? minTimeStr, // 可选:'yyyy-MM-dd HH:mm:ss'
BottomPickerMode mode = BottomPickerMode.dateTime,
}) {
return showModalBottomSheet(
@@ -65,6 +65,7 @@ class _InlineDateTimePickerContentState
final List months = List.generate(12, (i) => i + 1);
final List hours = List.generate(24, (i) => i);
final List minutes = List.generate(60, (i) => i);
+ final List seconds = List.generate(60, (i) => i); // 新增秒数据源
// 动态天数列表(根据年月变化)
late List days;
@@ -75,6 +76,7 @@ class _InlineDateTimePickerContentState
late FixedExtentScrollController dayCtrl;
late FixedExtentScrollController hourCtrl;
late FixedExtentScrollController minuteCtrl;
+ late FixedExtentScrollController secondCtrl; // 新增秒控制器
// 当前选中值
late int selectedYear;
@@ -82,6 +84,7 @@ class _InlineDateTimePickerContentState
late int selectedDay;
late int selectedHour;
late int selectedMinute;
+ late int selectedSecond; // 新增秒选中值
DateTime? _minTime; // 解析后的最小允许时间(如果有)
@@ -111,16 +114,21 @@ class _InlineDateTimePickerContentState
}
}
- // 如果是 date 模式,只保留日期部分(时分归零)
+ // 根据模式调整初始值
if (widget.mode == BottomPickerMode.date) {
initial = DateTime(initial.year, initial.month, initial.day);
+ } else if (widget.mode == BottomPickerMode.dateTime) {
+ initial = DateTime(initial.year, initial.month, initial.day,
+ initial.hour, initial.minute);
}
+ // dateTimeWithSeconds 模式保持完整的时间
selectedYear = initial.year;
selectedMonth = initial.month;
selectedDay = initial.day;
selectedHour = initial.hour;
selectedMinute = initial.minute;
+ selectedSecond = initial.second;
// 初始化天数列表
days = _getDaysInMonth(selectedYear, selectedMonth);
@@ -136,6 +144,8 @@ class _InlineDateTimePickerContentState
initialItem: selectedHour.clamp(0, hours.length - 1));
minuteCtrl = FixedExtentScrollController(
initialItem: selectedMinute.clamp(0, minutes.length - 1));
+ secondCtrl = FixedExtentScrollController( // 初始化秒控制器
+ initialItem: selectedSecond.clamp(0, seconds.length - 1));
// 确保初始选择满足约束(例如 minTime 或禁止未来/禁止过去)
WidgetsBinding.instance.addPostFrameCallback((_) {
@@ -149,7 +159,7 @@ class _InlineDateTimePickerContentState
return List.generate(lastDay, (i) => i + 1);
}
- // 解析 'yyyy-MM-dd HH:mm' 返回 DateTime 或 null
+ // 解析 'yyyy-MM-dd HH:mm:ss' 返回 DateTime 或 null
DateTime? _parseMinTime(String? s) {
if (s == null || s.trim().isEmpty) return null;
try {
@@ -159,13 +169,14 @@ class _InlineDateTimePickerContentState
parts[0].split('-').map((e) => int.parse(e)).toList();
final timeParts = (parts.length > 1)
? parts[1].split(':').map((e) => int.parse(e)).toList()
- : [0, 0];
+ : [0, 0, 0];
final year = dateParts[0];
final month = dateParts[1];
final day = dateParts[2];
final hour = (timeParts.isNotEmpty) ? timeParts[0] : 0;
final minute = (timeParts.length > 1) ? timeParts[1] : 0;
- return DateTime(year, month, day, hour, minute);
+ final second = (timeParts.length > 2) ? timeParts[2] : 0;
+ return DateTime(year, month, day, hour, minute, second);
} catch (e) {
debugPrint('parseMinTime failed for "$s": $e');
return null;
@@ -190,30 +201,51 @@ class _InlineDateTimePickerContentState
void _enforceConstraintsAndUpdateControllers() {
final now = DateTime.now();
final isDateOnly = widget.mode == BottomPickerMode.date;
+ final isDateTimeOnly = widget.mode == BottomPickerMode.dateTime;
- final DateTime picked = isDateOnly
- ? DateTime(selectedYear, selectedMonth, selectedDay)
- : DateTime(
- selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute);
+ DateTime picked;
+ if (isDateOnly) {
+ picked = DateTime(selectedYear, selectedMonth, selectedDay);
+ } else if (isDateTimeOnly) {
+ picked = DateTime(
+ selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute);
+ } else {
+ picked = DateTime(selectedYear, selectedMonth, selectedDay,
+ selectedHour, selectedMinute, selectedSecond);
+ }
// 处理最小时间约束:结合 _minTime 与 allowPast
DateTime? minRef;
if (!widget.allowPast) {
// 不允许选择过去:最小时间至少为 now(或当天 00:00)
- minRef = isDateOnly
- ? DateTime(now.year, now.month, now.day)
- : now;
+ if (isDateOnly) {
+ minRef = DateTime(now.year, now.month, now.day);
+ } else if (isDateTimeOnly) {
+ minRef = DateTime(now.year, now.month, now.day, now.hour, now.minute);
+ } else {
+ minRef = now;
+ }
// 如果用户也指定了 _minTime 且比 now 晚,则以 _minTime 为准
if (_minTime != null && _minTime!.isAfter(minRef)) {
- minRef = isDateOnly
- ? DateTime(_minTime!.year, _minTime!.month, _minTime!.day)
- : _minTime;
+ minRef = _minTime;
+ // 根据模式调整精度
+ if (isDateOnly) {
+ minRef = DateTime(minRef!.year, minRef.month, minRef.day);
+ } else if (isDateTimeOnly) {
+ minRef = DateTime(minRef!.year, minRef.month, minRef.day,
+ minRef.hour, minRef.minute);
+ }
}
} else if (_minTime != null) {
// 允许选择过去,但若指定了 _minTime,则以 _minTime 为最小参考
- minRef = isDateOnly
- ? DateTime(_minTime!.year, _minTime!.month, _minTime!.day)
- : _minTime;
+ minRef = _minTime;
+ // 根据模式调整精度
+ if (isDateOnly) {
+ minRef = DateTime(minRef!.year, minRef.month, minRef.day);
+ } else if (isDateTimeOnly) {
+ minRef = DateTime(minRef!.year, minRef.month, minRef.day,
+ minRef.hour, minRef.minute);
+ }
}
if (minRef != null && picked.isBefore(minRef)) {
@@ -224,9 +256,15 @@ class _InlineDateTimePickerContentState
if (!isDateOnly) {
selectedHour = minRef.hour;
selectedMinute = minRef.minute;
+ if (!isDateTimeOnly) {
+ selectedSecond = minRef.second;
+ } else {
+ selectedSecond = 0;
+ }
} else {
selectedHour = 0;
selectedMinute = 0;
+ selectedSecond = 0;
}
_updateDays(jumpDay: false);
@@ -236,15 +274,24 @@ class _InlineDateTimePickerContentState
if (!isDateOnly) {
hourCtrl.jumpToItem(selectedHour);
minuteCtrl.jumpToItem(selectedMinute);
+ if (!isDateTimeOnly) {
+ secondCtrl.jumpToItem(selectedSecond);
+ }
}
return;
}
// 处理禁止选择未来(当 allowFuture == false)
if (!widget.allowFuture) {
- final DateTime nowRef = isDateOnly
- ? DateTime(now.year, now.month, now.day)
- : now;
+ DateTime nowRef;
+ if (isDateOnly) {
+ nowRef = DateTime(now.year, now.month, now.day);
+ } else if (isDateTimeOnly) {
+ nowRef = DateTime(now.year, now.month, now.day, now.hour, now.minute);
+ } else {
+ nowRef = now;
+ }
+
if (picked.isAfter(nowRef)) {
selectedYear = nowRef.year;
selectedMonth = nowRef.month;
@@ -252,9 +299,15 @@ class _InlineDateTimePickerContentState
if (!isDateOnly) {
selectedHour = nowRef.hour;
selectedMinute = nowRef.minute;
+ if (!isDateTimeOnly) {
+ selectedSecond = nowRef.second;
+ } else {
+ selectedSecond = 0;
+ }
} else {
selectedHour = 0;
selectedMinute = 0;
+ selectedSecond = 0;
}
_updateDays(jumpDay: false);
@@ -264,6 +317,9 @@ class _InlineDateTimePickerContentState
if (!isDateOnly) {
hourCtrl.jumpToItem(selectedHour);
minuteCtrl.jumpToItem(selectedMinute);
+ if (!isDateTimeOnly) {
+ secondCtrl.jumpToItem(selectedSecond);
+ }
}
return;
}
@@ -277,14 +333,20 @@ class _InlineDateTimePickerContentState
dayCtrl.dispose();
hourCtrl.dispose();
minuteCtrl.dispose();
+ secondCtrl.dispose(); // 释放秒控制器
super.dispose();
}
@override
Widget build(BuildContext context) {
final isDateOnly = widget.mode == BottomPickerMode.date;
+ final isDateTimeOnly = widget.mode == BottomPickerMode.dateTime;
+
+ // 根据模式计算高度
+ final height = isDateOnly ? 280 : (isDateTimeOnly ? 330 : 380);
+
return SizedBox(
- height: isDateOnly ? 280 : 330,
+ height: height.toDouble(),
child: Column(
children: [
// 顶部按钮
@@ -299,15 +361,27 @@ class _InlineDateTimePickerContentState
),
TextButton(
onPressed: () {
- final result = isDateOnly
- ? DateTime(selectedYear, selectedMonth, selectedDay)
- : DateTime(
- selectedYear,
- selectedMonth,
- selectedDay,
- selectedHour,
- selectedMinute,
- );
+ DateTime result;
+ if (isDateOnly) {
+ result = DateTime(selectedYear, selectedMonth, selectedDay);
+ } else if (isDateTimeOnly) {
+ result = DateTime(
+ selectedYear,
+ selectedMonth,
+ selectedDay,
+ selectedHour,
+ selectedMinute,
+ );
+ } else {
+ result = DateTime(
+ selectedYear,
+ selectedMonth,
+ selectedDay,
+ selectedHour,
+ selectedMinute,
+ selectedSecond,
+ );
+ }
Navigator.of(context).pop(result);
},
child: const Text("确定", style: TextStyle(color: Colors.blue)),
@@ -317,7 +391,7 @@ class _InlineDateTimePickerContentState
),
const Divider(height: 1),
- // 可见的滚轮列(date 模式只显示 年 月 日)
+ // 可见的滚轮列
Expanded(
child: Row(
children: [
@@ -384,6 +458,19 @@ class _InlineDateTimePickerContentState
});
},
),
+
+ // 如果是 dateTimeWithSeconds 模式,显示秒列
+ if (widget.mode == BottomPickerMode.dateTimeWithSeconds)
+ _buildPicker(
+ controller: secondCtrl,
+ items: seconds.map((e) => e.toString().padLeft(2, '0')).toList(),
+ onSelected: (idx) {
+ setState(() {
+ selectedSecond = seconds[idx];
+ _enforceConstraintsAndUpdateControllers();
+ });
+ },
+ ),
],
),
),
@@ -409,4 +496,4 @@ class _InlineDateTimePickerContentState
),
);
}
-}
+}
\ No newline at end of file
diff --git a/lib/pages/KeyProjects/SafeCheck/safeCheck_detail.dart b/lib/pages/KeyProjects/SafeCheck/safeCheck_detail.dart
index fd1fde0..94ed40a 100644
--- a/lib/pages/KeyProjects/SafeCheck/safeCheck_detail.dart
+++ b/lib/pages/KeyProjects/SafeCheck/safeCheck_detail.dart
@@ -773,7 +773,7 @@ class _SafecheckDetailState extends State {
text: form['INSPECTION_TIME_START'] ?? '',
onTap: () async {
DateTime? picked =
- await BottomDateTimePicker.showDate(context);
+ await BottomDateTimePicker.showDate(context,mode: BottomPickerMode.dateTimeWithSeconds,);
if (picked != null) {
setState(() {
form['INSPECTION_TIME_START'] = DateFormat(
@@ -792,7 +792,7 @@ class _SafecheckDetailState extends State {
text: form['INSPECTION_TIME_END'] ?? '',
onTap: () async {
DateTime? picked =
- await BottomDateTimePicker.showDate(context);
+ await BottomDateTimePicker.showDate(context,mode: BottomPickerMode.dateTimeWithSeconds,);
if (picked != null) {
setState(() {
form['INSPECTION_TIME_END'] = DateFormat(
diff --git a/lib/pages/home/SafeCheck/Start/safeCheck_start_detail.dart b/lib/pages/home/SafeCheck/Start/safeCheck_start_detail.dart
index 4e5ec6b..cb486dd 100644
--- a/lib/pages/home/SafeCheck/Start/safeCheck_start_detail.dart
+++ b/lib/pages/home/SafeCheck/Start/safeCheck_start_detail.dart
@@ -1023,6 +1023,7 @@ class _SafecheckStartDetailState extends State {
text: form['INSPECTION_TIME_START'] ?? '',
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
@@ -1043,6 +1044,7 @@ class _SafecheckStartDetailState extends State {
text: form['INSPECTION_TIME_END'] ?? '',
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dangerous_options_page.dart b/lib/pages/home/tap/tabList/special_wrok/dangerous_options_page.dart
index 764892c..ce3ea47 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dangerous_options_page.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dangerous_options_page.dart
@@ -155,13 +155,13 @@ class _DangerousOptionsPageState extends State {
}
Future _sign() async {
- await NativeOrientation.setLandscape();
+ await NativeOrientation.setLandscape();
final String path = await Navigator.push(
context,
MaterialPageRoute(builder: (c) => MineSignPage()),
);
await NativeOrientation.setPortrait();
-if (path != null) {
+ if (path != null) {
final now = DateFormat('yyyy-MM-dd HH:mm').format(DateTime.now());
setState(() {
final imageData = SignImageData(
diff --git a/lib/pages/home/tap/tabList/special_wrok/dh_work/HotWorkDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/dh_work/HotWorkDetailFormWidget.dart
index eebc675..deee733 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dh_work/HotWorkDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dh_work/HotWorkDetailFormWidget.dart
@@ -1,5 +1,7 @@
import 'package:flutter/material.dart';
+import 'package:intl/intl.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
@@ -16,11 +18,8 @@ class HotWorkDetailFormWidget extends StatefulWidget {
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -45,8 +44,6 @@ class HotWorkDetailFormWidget extends StatefulWidget {
required this.onAnalyzeTap,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -161,6 +158,7 @@ class _HotWorkDetailFormWidgetState extends State {
const Divider(),
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
await showDialog(
@@ -228,14 +226,49 @@ class _HotWorkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/dh_work/dh_work_detai/hotwork_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dh_work/dh_work_detai/hotwork_apply_detail.dart
index aed7b36..d514460 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dh_work/dh_work_detai/hotwork_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dh_work/dh_work_detai/hotwork_apply_detail.dart
@@ -265,44 +265,7 @@ class _HotworkApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -725,8 +688,6 @@ class _HotworkApplyDetailState extends State {
onChooseHotworkUser: _chooseHorkUser,
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/dh_work/jszy_work_detail/hotwork_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dh_work/jszy_work_detail/hotwork_jszy_detail.dart
index 4a5fabe..92c3022 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dh_work/jszy_work_detail/hotwork_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dh_work/jszy_work_detail/hotwork_jszy_detail.dart
@@ -336,6 +336,7 @@ class _HotworkJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dh_work/kszy_work_detail/hotwork_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dh_work/kszy_work_detail/hotwork_kszy_detail.dart
index 81cbd05..c28eb69 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dh_work/kszy_work_detail/hotwork_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dh_work/kszy_work_detail/hotwork_kszy_detail.dart
@@ -308,6 +308,7 @@ class _HotworkKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dh_work/ysgd_work_detail/hotwork_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dh_work/ysgd_work_detail/hotwork_ysgd_detail.dart
index 2b4753a..1254f10 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dh_work/ysgd_work_detail/hotwork_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dh_work/ysgd_work_detail/hotwork_ysgd_detail.dart
@@ -366,6 +366,7 @@ class _HotworkYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dl_work/CutroadDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/dl_work/CutroadDetailFormWidget.dart
index 3c82741..79d9d82 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dl_work/CutroadDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dl_work/CutroadDetailFormWidget.dart
@@ -1,7 +1,9 @@
import 'dart:math' as math;
import 'package:flutter/material.dart';
+import 'package:intl/intl.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import 'package:qhd_prevention/customWidget/single_image_viewer.dart';
import 'package:qhd_prevention/http/ApiService.dart';
@@ -22,11 +24,8 @@ class CutroadDetailFormWidget extends StatefulWidget {
final TextEditingController? riskController;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -43,8 +42,6 @@ class CutroadDetailFormWidget extends StatefulWidget {
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -313,6 +310,7 @@ class _CutroadDetailFormWidgetState extends State {
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -379,14 +377,49 @@ class _CutroadDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/dl_work/dl_work_detai/cutroad_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dl_work/dl_work_detai/cutroad_apply_detail.dart
index ed9362c..637bc60 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dl_work/dl_work_detai/cutroad_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dl_work/dl_work_detai/cutroad_apply_detail.dart
@@ -441,44 +441,8 @@ class _CutroadApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -604,8 +568,6 @@ class _CutroadApplyDetailState extends State {
onChooseLevel: (){},
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/dl_work/jszy_work_detail/cutroad_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dl_work/jszy_work_detail/cutroad_jszy_detail.dart
index ec46e42..026a235 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dl_work/jszy_work_detail/cutroad_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dl_work/jszy_work_detail/cutroad_jszy_detail.dart
@@ -35,6 +35,7 @@ class _CutroadJszyDetailState extends State {
/// 详情
late Map pd = {};
+
/// 选择的时间
String endTime = '';
@@ -58,7 +59,7 @@ class _CutroadJszyDetailState extends State {
MaterialPageRoute(builder: (context) => MineSignPage()),
);
await NativeOrientation.setPortrait();
-if (path != null) {
+ if (path != null) {
final now = DateFormat('yyyy-MM-dd HH:mm').format(DateTime.now());
setState(() {
signImages.add(path);
@@ -125,6 +126,7 @@ if (path != null) {
}).toList(),
);
}
+
bool checkWorkTime(Map pd, BuildContext context) {
// 解析开始和结束时间
final start = DateTime.parse(pd['WORK_START_DATE'] as String);
@@ -137,9 +139,9 @@ if (path != null) {
return false;
}
-
return true;
}
+
/// 作废 -1 通过 1
Future _submit(String status) async {
if (signImages.isEmpty) {
@@ -161,7 +163,7 @@ if (path != null) {
title: '作废原因',
hintText: '请输入作废原因',
cancelText: '取消',
- confirmText: '确定'
+ confirmText: '确定',
);
if (reasonText.isEmpty) {
ToastUtil.showNormal(context, '请填写作废原因');
@@ -188,29 +190,31 @@ if (path != null) {
barrierDismissible: false,
);
if (confirmed) {
- LoadingDialogHelper.show();
- try {
- final result = await ApiService.saveSafeFunctionSure(
-'cutroad',
- formData,
- signImages,
- );
- LoadingDialogHelper.hide();
- if (result['result'] == 'success') {
- ToastUtil.showSuccess(context, '保存成功');
- Navigator.of(context).pop(true);
- }
- } catch (e) {
- LoadingDialogHelper.hide();
- ToastUtil.showNormal(context, '操作失败:$e');
- }
-
+ LoadingDialogHelper.show();
+ try {
+ final result = await ApiService.saveSafeFunctionSure(
+ 'cutroad',
+ formData,
+ signImages,
+ );
+ LoadingDialogHelper.hide();
+ if (result['result'] == 'success') {
+ ToastUtil.showSuccess(context, '保存成功');
+ Navigator.of(context).pop(true);
+ }
+ } catch (e) {
+ LoadingDialogHelper.hide();
+ ToastUtil.showNormal(context, '操作失败:$e');
+ }
}
}
/// 初始化拉取数据
Future _getData() async {
- final data = await ApiService.getHomeworkFindById('cutroad', widget.CUTROAD_ID);
+ final data = await ApiService.getHomeworkFindById(
+ 'cutroad',
+ widget.CUTROAD_ID,
+ );
setState(() {
pd = data['pd'];
@@ -220,7 +224,8 @@ if (path != null) {
}
Future _getMeasures(String homework_id) async {
- final data = await ApiService.listSignFinishMeasures('cutroad',
+ final data = await ApiService.listSignFinishMeasures(
+ 'cutroad',
homework_id.length > 0 ? homework_id : widget.CUTROAD_ID,
);
setState(() {
@@ -231,7 +236,8 @@ if (path != null) {
}
Future _getSigns(String homework_id) async {
- final data = await ApiService.listSignFinished('cutroad',
+ final data = await ApiService.listSignFinished(
+ 'cutroad',
homework_id.length > 0 ? homework_id : widget.CUTROAD_ID,
);
setState(() {
@@ -294,12 +300,23 @@ if (path != null) {
Column(
children: [
GestureDetector(
- child: ListItemFactory.createRowSpaceBetweenItem(leftText: '作业结束时间', rightText: endTime.isEmpty?'请选择':endTime, isRight: true, isRequired: true),
+ child: ListItemFactory.createRowSpaceBetweenItem(
+ leftText: '作业结束时间',
+ rightText: endTime.isEmpty ? '请选择' : endTime,
+ isRight: true,
+ isRequired: true,
+ ),
onTap: () async {
- DateTime? picked = await BottomDateTimePicker.showDate(context);
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ );
+
if (picked != null) {
setState(() {
- endTime = DateFormat('yyyy-MM-dd HH:mm').format(picked);
+ endTime = DateFormat(
+ 'yyyy-MM-dd HH:mm',
+ ).format(picked);
});
}
},
diff --git a/lib/pages/home/tap/tabList/special_wrok/dl_work/kszy_work_detail/cutroad_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dl_work/kszy_work_detail/cutroad_kszy_detail.dart
index 358b7fe..48549b7 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dl_work/kszy_work_detail/cutroad_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dl_work/kszy_work_detail/cutroad_kszy_detail.dart
@@ -298,6 +298,7 @@ setState(() {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dl_work/ysgd_work_detail/cutroad_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dl_work/ysgd_work_detail/cutroad_ysgd_detail.dart
index 458caae..461d16c 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dl_work/ysgd_work_detail/cutroad_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dl_work/ysgd_work_detail/cutroad_ysgd_detail.dart
@@ -43,8 +43,10 @@ class _CutroadYsgdDetailState extends State {
/// 详情
late Map pd = {};
+
/// 选择的时间
String startTime = '';
+
/// 验收意见
final TextEditingController _contentController = TextEditingController();
late List imgList = [];
@@ -60,6 +62,7 @@ class _CutroadYsgdDetailState extends State {
super.initState();
_getData();
}
+
/// 拍照或选图后的回调
Future _onImageAdded(String localPath) async {
// 上传到服务器
@@ -79,6 +82,7 @@ class _CutroadYsgdDetailState extends State {
imgList.remove(item);
});
}
+
/// 签字
Future _sign() async {
await NativeOrientation.setLandscape();
@@ -89,7 +93,7 @@ class _CutroadYsgdDetailState extends State {
await NativeOrientation.setPortrait();
if (path != null) {
final now = DateFormat('yyyy-MM-dd HH:mm').format(DateTime.now());
-setState(() {
+ setState(() {
signImages.add(path);
signTimes.add(now);
FocusHelper.clearFocus(context);
@@ -195,7 +199,7 @@ setState(() {
title: '作废原因',
hintText: '请输入作废原因',
cancelText: '取消',
- confirmText: '确定'
+ confirmText: '确定',
);
if (reasonText.isEmpty) {
ToastUtil.showNormal(context, '请填写作废原因');
@@ -205,7 +209,7 @@ setState(() {
final serverPathString = imgList
.map((e) => e.serverPath)
.where((s) => s.isNotEmpty)
- .map((s) => s) // 将 String? 转回 String
+ .map((s) => s) // 将 String? 转回 String
.join(',');
// 存回 measures
final Map formData = {};
@@ -228,29 +232,31 @@ setState(() {
barrierDismissible: false,
);
if (confirmed) {
- LoadingDialogHelper.show();
- try {
- final result = await ApiService.saveSafeFunctionSure(
-'cutroad',
- formData,
- signImages,
- );
- LoadingDialogHelper.hide();
- if (result['result'] == 'success') {
- ToastUtil.showSuccess(context, '保存成功');
- Navigator.of(context).pop(true);
- }
- } catch (e) {
- LoadingDialogHelper.hide();
- ToastUtil.showNormal(context, '操作失败:$e');
- }
-
+ LoadingDialogHelper.show();
+ try {
+ final result = await ApiService.saveSafeFunctionSure(
+ 'cutroad',
+ formData,
+ signImages,
+ );
+ LoadingDialogHelper.hide();
+ if (result['result'] == 'success') {
+ ToastUtil.showSuccess(context, '保存成功');
+ Navigator.of(context).pop(true);
+ }
+ } catch (e) {
+ LoadingDialogHelper.hide();
+ ToastUtil.showNormal(context, '操作失败:$e');
+ }
}
}
/// 初始化拉取数据
Future _getData() async {
- final data = await ApiService.getHomeworkFindById('cutroad', widget.CUTROAD_ID);
+ final data = await ApiService.getHomeworkFindById(
+ 'cutroad',
+ widget.CUTROAD_ID,
+ );
setState(() {
pd = data['pd'];
@@ -260,7 +266,8 @@ setState(() {
}
Future _getMeasures(String homework_id) async {
- final data = await ApiService.listSignFinishMeasures('cutroad',
+ final data = await ApiService.listSignFinishMeasures(
+ 'cutroad',
homework_id.length > 0 ? homework_id : widget.CUTROAD_ID,
);
setState(() {
@@ -271,7 +278,8 @@ setState(() {
}
Future _getSigns(String homework_id) async {
- final data = await ApiService.listSignFinished('cutroad',
+ final data = await ApiService.listSignFinished(
+ 'cutroad',
homework_id.length > 0 ? homework_id : widget.CUTROAD_ID,
);
setState(() {
@@ -338,16 +346,26 @@ setState(() {
'完工验收',
'请输入意见',
_contentController,
- isRequired: true
+ isRequired: true,
),
Divider(),
GestureDetector(
- child: ListItemFactory.createRowSpaceBetweenItem(leftText: '验收时间', rightText: startTime.isEmpty?'请选择':startTime, isRight: true, isRequired: true),
+ child: ListItemFactory.createRowSpaceBetweenItem(
+ leftText: '验收时间',
+ rightText: startTime.isEmpty ? '请选择' : startTime,
+ isRight: true,
+ isRequired: true,
+ ),
onTap: () async {
- DateTime? picked = await BottomDateTimePicker.showDate(context);
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ );
if (picked != null) {
setState(() {
- startTime = DateFormat('yyyy-MM-dd HH:mm').format(picked);
+ startTime = DateFormat(
+ 'yyyy-MM-dd HH:mm',
+ ).format(picked);
});
FocusHelper.clearFocus(context);
}
@@ -359,14 +377,19 @@ setState(() {
title: '验收视频',
maxCount: 1,
mediaType: MediaType.video,
- horizontalPadding: 0,
+ horizontalPadding: 0,
onChanged: (paths) {},
onMediaAdded: _onImageAdded,
- onMediaTapped: (path) {
- presentOpaque(SingleImageViewer(imageUrl: path), context);
- },
+ onMediaTapped: (path) {
+ presentOpaque(
+ SingleImageViewer(imageUrl: path),
+ context,
+ );
+ },
onMediaRemoved: (path) {
- final item = imgList.firstWhere((e) => e.localPath == path);
+ final item = imgList.firstWhere(
+ (e) => e.localPath == path,
+ );
_onImageRemoved(item);
},
onAiIdentify: () {},
diff --git a/lib/pages/home/tap/tabList/special_wrok/dt_work/BreakgroundDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/dt_work/BreakgroundDetailFormWidget.dart
index 794beb3..f7c40cd 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dt_work/BreakgroundDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dt_work/BreakgroundDetailFormWidget.dart
@@ -1,6 +1,8 @@
import 'dart:math' as math;
import 'package:flutter/material.dart';
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
import 'package:qhd_prevention/customWidget/single_image_viewer.dart';
import 'package:qhd_prevention/http/ApiService.dart';
@@ -23,11 +25,8 @@ class BreakgroundDetailFormWidget extends StatefulWidget {
final TextEditingController? relatedController;
final TextEditingController? riskController;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -42,8 +41,6 @@ class BreakgroundDetailFormWidget extends StatefulWidget {
required this.signs,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -358,6 +355,7 @@ class _BreakgroundDetailFormWidgetState
],
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -426,14 +424,49 @@ class _BreakgroundDetailFormWidgetState
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/dt_work/dt_work_detai/breakground_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dt_work/dt_work_detai/breakground_apply_detail.dart
index 0205e27..6731053 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dt_work/dt_work_detai/breakground_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dt_work/dt_work_detai/breakground_apply_detail.dart
@@ -217,44 +217,8 @@ class _BreakgroundApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -629,8 +593,6 @@ class _BreakgroundApplyDetailState extends State {
onChooseLevel: _chooseLevel,
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/dt_work/jszy_work_detail/breakground_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dt_work/jszy_work_detail/breakground_jszy_detail.dart
index f7c0aea..eba4619 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dt_work/jszy_work_detail/breakground_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dt_work/jszy_work_detail/breakground_jszy_detail.dart
@@ -310,6 +310,7 @@ class _BreakgroundJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dt_work/kszy_work_detail/breakground_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dt_work/kszy_work_detail/breakground_kszy_detail.dart
index f2cb30b..7c79cbe 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dt_work/kszy_work_detail/breakground_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dt_work/kszy_work_detail/breakground_kszy_detail.dart
@@ -299,6 +299,7 @@ class _BreakgroundKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dt_work/ysgd_work_detail/breakground_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dt_work/ysgd_work_detail/breakground_ysgd_detail.dart
index f367aa5..1b6d1c4 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dt_work/ysgd_work_detail/breakground_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dt_work/ysgd_work_detail/breakground_ysgd_detail.dart
@@ -360,6 +360,7 @@ class _BreakgroundYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dz_work/HoistworkDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/dz_work/HoistworkDetailFormWidget.dart
index 7bf0099..e056df1 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dz_work/HoistworkDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dz_work/HoistworkDetailFormWidget.dart
@@ -5,7 +5,8 @@ import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
import 'package:qhd_prevention/customWidget/single_image_viewer.dart';
import 'package:qhd_prevention/http/ApiService.dart';
import 'package:qhd_prevention/tools/h_colors.dart';
-
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
import '../../special_Wrok/MeasuresListWidget.dart';
@@ -25,11 +26,8 @@ class HoistWorkDetailFormWidget extends StatefulWidget {
final TextEditingController? riskController;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -44,8 +42,6 @@ class HoistWorkDetailFormWidget extends StatefulWidget {
required this.signs,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -343,6 +339,7 @@ class _HoistworkDetailFormWidgetState extends State {
],
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -408,14 +405,49 @@ class _HoistworkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/dz_work/dz_work_detai/hoistwork_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dz_work/dz_work_detai/hoistwork_apply_detail.dart
index 3e9fce0..62cf9a2 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dz_work/dz_work_detai/hoistwork_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dz_work/dz_work_detai/hoistwork_apply_detail.dart
@@ -179,44 +179,8 @@ class _HoistworkApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -657,8 +621,6 @@ class _HoistworkApplyDetailState extends State {
onChooseLevel: _chooseLevel,
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/dz_work/jszy_work_detail/hoistwork_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dz_work/jszy_work_detail/hoistwork_jszy_detail.dart
index 4f1f77a..5bd8242 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dz_work/jszy_work_detail/hoistwork_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dz_work/jszy_work_detail/hoistwork_jszy_detail.dart
@@ -310,6 +310,7 @@ class _HoistworkJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dz_work/kszy_work_detail/hoistwork_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dz_work/kszy_work_detail/hoistwork_kszy_detail.dart
index d0db93f..b80f67e 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dz_work/kszy_work_detail/hoistwork_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dz_work/kszy_work_detail/hoistwork_kszy_detail.dart
@@ -299,6 +299,7 @@ class _HoistworkKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/dz_work/ysgd_work_detail/hoistwork_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/dz_work/ysgd_work_detail/hoistwork_ysgd_detail.dart
index 251d827..d27b590 100644
--- a/lib/pages/home/tap/tabList/special_wrok/dz_work/ysgd_work_detail/hoistwork_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/dz_work/ysgd_work_detail/hoistwork_ysgd_detail.dart
@@ -360,6 +360,7 @@ class _HoistworkYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/gc_work/HighWorkDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/gc_work/HighWorkDetailFormWidget.dart
index 7d10631..7d8e406 100644
--- a/lib/pages/home/tap/tabList/special_wrok/gc_work/HighWorkDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/gc_work/HighWorkDetailFormWidget.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
-
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
import '../../special_Wrok/MeasuresListWidget.dart';
@@ -11,11 +12,8 @@ class HighWorkDetailFormWidget extends StatefulWidget {
final bool isEditable;
final VoidCallback onChooseLevel;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -36,8 +34,6 @@ class HighWorkDetailFormWidget extends StatefulWidget {
required this.onChooseLevel,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -132,6 +128,7 @@ class _HighWorkDetailFormWidgetState extends State {
const Divider(),
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -197,14 +194,49 @@ class _HighWorkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/gc_work/gc_work_detai/highwork_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/gc_work/gc_work_detai/highwork_apply_detail.dart
index bc5ad28..1c9b1c5 100644
--- a/lib/pages/home/tap/tabList/special_wrok/gc_work/gc_work_detai/highwork_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/gc_work/gc_work_detai/highwork_apply_detail.dart
@@ -173,44 +173,8 @@ class _HighworkApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -659,8 +623,6 @@ class _HighworkApplyDetailState extends State {
onChooseLevel: _chooseLevel,
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/gc_work/jszy_work_detail/highwork_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/gc_work/jszy_work_detail/highwork_jszy_detail.dart
index a334112..c5861f7 100644
--- a/lib/pages/home/tap/tabList/special_wrok/gc_work/jszy_work_detail/highwork_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/gc_work/jszy_work_detail/highwork_jszy_detail.dart
@@ -310,6 +310,7 @@ class _HighworkJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/gc_work/kszy_work_detail/highwork_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/gc_work/kszy_work_detail/highwork_kszy_detail.dart
index 2cd24a6..1c9bb51 100644
--- a/lib/pages/home/tap/tabList/special_wrok/gc_work/kszy_work_detail/highwork_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/gc_work/kszy_work_detail/highwork_kszy_detail.dart
@@ -299,6 +299,7 @@ class _HighworkKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/gc_work/ysgd_work_detail/highwork_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/gc_work/ysgd_work_detail/highwork_ysgd_detail.dart
index 808d07c..baa1f97 100644
--- a/lib/pages/home/tap/tabList/special_wrok/gc_work/ysgd_work_detail/highwork_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/gc_work/ysgd_work_detail/highwork_ysgd_detail.dart
@@ -360,6 +360,7 @@ class _HighworkYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ElectricityDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ElectricityDetailFormWidget.dart
index 9edd27f..a6a8376 100644
--- a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ElectricityDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ElectricityDetailFormWidget.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
-
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
import '../../special_Wrok/MeasuresListWidget.dart';
@@ -13,11 +14,8 @@ class ElectricityDetailFormWidget extends StatefulWidget {
final VoidCallback onChooseHotworkUser;
final VoidCallback onAnalyzeTap;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -43,8 +41,6 @@ class ElectricityDetailFormWidget extends StatefulWidget {
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -199,6 +195,7 @@ class _ElectricityDetailFormWidgetState extends State(
@@ -265,14 +262,49 @@ class _ElectricityDetailFormWidgetState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/kszy_work_detail/electricity_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/kszy_work_detail/electricity_kszy_detail.dart
index b71e330..c1406e5 100644
--- a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/kszy_work_detail/electricity_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/kszy_work_detail/electricity_kszy_detail.dart
@@ -308,6 +308,7 @@ class _ElectricityKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/lsyd_work_detai/electricity_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/lsyd_work_detai/electricity_apply_detail.dart
index 7cb335c..3f05bea 100644
--- a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/lsyd_work_detai/electricity_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/lsyd_work_detai/electricity_apply_detail.dart
@@ -191,44 +191,8 @@ class _ElectricityApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -670,8 +634,6 @@ class _ElectricityApplyDetailState extends State {
},
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ysgd_work_detail/electricity_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ysgd_work_detail/electricity_ysgd_detail.dart
index 882748c..6855499 100644
--- a/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ysgd_work_detail/electricity_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/lsyd_work/ysgd_work_detail/electricity_ysgd_detail.dart
@@ -366,6 +366,7 @@ class _ElectricityYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/BlindboardDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/BlindboardDetailFormWidget.dart
index 3da5bdf..2128415 100644
--- a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/BlindboardDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/BlindboardDetailFormWidget.dart
@@ -4,7 +4,8 @@ import 'package:flutter/material.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
import 'package:qhd_prevention/customWidget/custom_button.dart';
import 'package:qhd_prevention/customWidget/single_image_viewer.dart';
-
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
import '../../special_Wrok/MeasuresListWidget.dart';
@@ -46,11 +47,8 @@ class BlindboardDetailFormWidget extends StatefulWidget {
final bool isEditable;
final VoidCallback onChooseLevel;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -74,8 +72,6 @@ class BlindboardDetailFormWidget extends StatefulWidget {
required this.boardList,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -308,6 +304,7 @@ class _BlindboardDetailFormWidgetState
],
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -375,14 +372,49 @@ class _BlindboardDetailFormWidgetState
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/jszy_work_detail/blindboard_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/jszy_work_detail/blindboard_jszy_detail.dart
index c797686..01d32dc 100644
--- a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/jszy_work_detail/blindboard_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/jszy_work_detail/blindboard_jszy_detail.dart
@@ -313,6 +313,7 @@ class _BlindboardJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/kszy_work_detail/blindboard_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/kszy_work_detail/blindboard_kszy_detail.dart
index ce120ef..a698637 100644
--- a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/kszy_work_detail/blindboard_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/kszy_work_detail/blindboard_kszy_detail.dart
@@ -302,6 +302,7 @@ class _BlindboardKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/mbcd_work_detai/blindboard_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/mbcd_work_detai/blindboard_apply_detail.dart
index 0d75d4b..b2a3d30 100644
--- a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/mbcd_work_detai/blindboard_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/mbcd_work_detai/blindboard_apply_detail.dart
@@ -181,44 +181,8 @@ class _BlindboardApplyDetailState extends State {
});
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
-
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
+
/// 选择经纬度
Future _showLocationHandle() async{
if (!FormUtils.hasValue(pd, 'ELECTRONIC_FENCE_AREA_ID')) {
@@ -659,8 +623,6 @@ class _BlindboardApplyDetailState extends State {
onChooseLevel: _chooseLevel,
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/ysgd_work_detail/blindboard_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/ysgd_work_detail/blindboard_ysgd_detail.dart
index cc1a645..d177d59 100644
--- a/lib/pages/home/tap/tabList/special_wrok/mbcd_work/ysgd_work_detail/blindboard_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/mbcd_work/ysgd_work_detail/blindboard_ysgd_detail.dart
@@ -353,6 +353,7 @@ class _BlindboardYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/SpaceWorkDetailFormWidget.dart b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/SpaceWorkDetailFormWidget.dart
index 2e727a8..5db1e16 100644
--- a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/SpaceWorkDetailFormWidget.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/SpaceWorkDetailFormWidget.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
-
+import 'package:intl/intl.dart';
+import 'package:qhd_prevention/customWidget/picker/CupertinoDatePicker.dart';
import '../../../../../../tools/tools.dart';
import '../../../item_list_widget.dart';
import '../../special_Wrok/MeasuresListWidget.dart';
@@ -14,11 +15,8 @@ class SpaceWorkDetailFormWidget extends StatefulWidget {
final VoidCallback onChooseSpaceName;
final VoidCallback onAnalyzeTap;
// 新增
- final VoidCallback? onChooseVideoManager;
- /// 选择摄像头
- final VoidCallback? onWorkStartTimeHandle;
- final VoidCallback? onWorkEndTimeHandle;
- /// 承包商
+/// 选择摄像头
+ final VoidCallback? onChooseVideoManager;/// 承包商
final VoidCallback? onContractorHandle;
/// 作业区域
final VoidCallback? onWorkAreaHandle;
@@ -42,8 +40,6 @@ class SpaceWorkDetailFormWidget extends StatefulWidget {
required this.onAnalyzeTap,
/// 新增
this.onChooseVideoManager,
- this.onWorkStartTimeHandle,
- this.onWorkEndTimeHandle,
this.onContractorHandle,
this.onWorkAreaHandle,
this.onWorkAreaLocationHandle,
@@ -171,7 +167,6 @@ class _SpaceWorkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '作业开始时间:',
isEditable: false,
- onTap: widget.onChooseLevel,
text: pd['WORK_START_DATE'] ?? '',
),
],
@@ -180,13 +175,13 @@ class _SpaceWorkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '作业结束时间:',
isEditable: false,
- onTap: widget.onChooseLevel,
text: pd['WORK_END_DATE'] ?? '',
),
],
const Divider(),
ItemListWidget.twoRowButtonTitleText(
label: '关联其他特殊作业及安全作业票编号',
+ isRequired: false,
isEditable: widget.isEditable,
onTap: () async {
final val = await showDialog(
@@ -254,14 +249,49 @@ class _SpaceWorkDetailFormWidgetState extends State {
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业开始时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkStartTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
+ context,
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_START_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+
+ /// 开始时间必须早于结束时间
+ if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
+ !isBeforeStr(
+ pd['WORK_EXPECTED_START_TIME'],
+ pd['WORK_EXPECTED_END_TIME'],
+ )) {
+ pd['WORK_EXPECTED_END_TIME'] = '';
+ }
+ });
+ }
+ },
text: pd['WORK_EXPECTED_START_TIME'] ?? '',
),
const Divider(),
ItemListWidget.selectableLineTitleTextRightButton(
label: '预计作业结束时间:',
isEditable: widget.isEditable,
- onTap: widget.onWorkEndTimeHandle ?? () {},
+ onTap: () async {
+ DateTime? picked = await BottomDateTimePicker.showDate(
+ context,
+ minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
+ allowFuture: true,
+ );
+ if (picked != null) {
+ setState(() {
+ pd['WORK_EXPECTED_END_TIME'] = DateFormat(
+ 'yyyy-MM-dd HH:mm:ss',
+ ).format(picked);
+ });
+ }
+ },
text: pd['WORK_EXPECTED_END_TIME'] ?? '',
),
const Divider(),
diff --git a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/jszy_work_detail/spacework_jszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/jszy_work_detail/spacework_jszy_detail.dart
index ddf9219..b79a14c 100644
--- a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/jszy_work_detail/spacework_jszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/jszy_work_detail/spacework_jszy_detail.dart
@@ -320,6 +320,7 @@ class _SpaceworkJszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/kszy_work_detail/spacework_kszy_detail.dart b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/kszy_work_detail/spacework_kszy_detail.dart
index b59788c..b2c5bd1 100644
--- a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/kszy_work_detail/spacework_kszy_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/kszy_work_detail/spacework_kszy_detail.dart
@@ -313,6 +313,7 @@ class _SpaceworkKszyDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/space_work_detai/spacework_apply_detail.dart b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/space_work_detai/spacework_apply_detail.dart
index 7f4e931..cd4806f 100644
--- a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/space_work_detai/spacework_apply_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/space_work_detai/spacework_apply_detail.dart
@@ -186,45 +186,9 @@ class _SpaceworkApplyDetailState extends State {
}
}
- /// 预计作业开始时间
- Future _chooseWorkStartTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_START_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
+
- /// 开始时间必须早于结束时间
- if (FormUtils.hasValue(pd, 'WORK_EXPECTED_END_TIME') &&
- !isBeforeStr(
- pd['WORK_EXPECTED_START_TIME'],
- pd['WORK_EXPECTED_END_TIME'],
- )) {
- pd['WORK_EXPECTED_END_TIME'] = '';
- }
- });
- }
- }
-
- /// 预计作业结束时间
- Future _chooseWorkEndTime() async {
- DateTime? picked = await BottomDateTimePicker.showDate(
- context,
- minTimeStr: pd['WORK_EXPECTED_START_TIME'] ?? '',
- allowFuture: true,
- );
- if (picked != null) {
- setState(() {
- pd['WORK_EXPECTED_END_TIME'] = DateFormat(
- 'yyyy-MM-dd HH:mm:ss',
- ).format(picked);
- });
- }
- }
+
/// 选择经纬度
Future _showLocationHandle() async {
@@ -665,8 +629,6 @@ class _SpaceworkApplyDetailState extends State {
onAnalyzeTap: () {},
// 新增
onChooseVideoManager: _chooseVideoManager,
- onWorkStartTimeHandle: _chooseWorkStartTime,
- onWorkEndTimeHandle: _chooseWorkEndTime,
onContractorHandle: _chooseUnitManager,
onWorkAreaHandle: _getWorkArea,
onWorkAreaLocationHandle: _showLocationHandle,
diff --git a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/ysgd_work_detail/spacework_ysgd_detail.dart b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/ysgd_work_detail/spacework_ysgd_detail.dart
index ac18d7e..86c3f00 100644
--- a/lib/pages/home/tap/tabList/special_wrok/sxkj_work/ysgd_work_detail/spacework_ysgd_detail.dart
+++ b/lib/pages/home/tap/tabList/special_wrok/sxkj_work/ysgd_work_detail/spacework_ysgd_detail.dart
@@ -370,6 +370,7 @@ class _SpaceworkYsgdDetailState extends State {
),
onTap: () async {
DateTime? picked = await BottomDateTimePicker.showDate(
+ mode: BottomPickerMode.dateTimeWithSeconds,
context,
);
if (picked != null) {
diff --git a/lib/pages/mine/mine_page.dart b/lib/pages/mine/mine_page.dart
index fc31c81..b9f09aa 100644
--- a/lib/pages/mine/mine_page.dart
+++ b/lib/pages/mine/mine_page.dart
@@ -214,7 +214,7 @@ class _MinePageState extends State {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- Text(text, style: TextStyle(fontSize: 16),),
+ Text(text, style: TextStyle(fontSize: 14),),
Icon(Icons.chevron_right)
],
),
diff --git a/lib/pages/mine/mine_sign_page.dart b/lib/pages/mine/mine_sign_page.dart
index f6c5dcb..a18ec84 100644
--- a/lib/pages/mine/mine_sign_page.dart
+++ b/lib/pages/mine/mine_sign_page.dart
@@ -6,6 +6,7 @@ import 'dart:ui' as ui;
import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart';
+import 'package:qhd_prevention/tools/tools.dart';
class MineSignPage extends StatelessWidget {
const MineSignPage({super.key});
@@ -95,6 +96,7 @@ class _SignatureConfirmPageState extends State {
@override
void initState() {
super.initState();
+ NativeOrientation.setLandscape();
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
@@ -106,8 +108,9 @@ class _SignatureConfirmPageState extends State {
// 不要忘记重置方向设置,以避免影响其他页面或应用。
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
-
]);
+ NativeOrientation.setPortrait();
+
super.dispose();
}