|
@@ -647,37 +647,135 @@ class CleanOrderDetailPage extends HookConsumerWidget {
|
|
|
}
|
|
|
|
|
|
// 底部操作区域
|
|
|
+ // Widget _buildActionSection(
|
|
|
+ // BuildContext context, state, vm, WidgetRef ref, int id,List<Map<String, dynamic>> actionBtnList) {
|
|
|
+ // return LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
|
|
|
+ // final maxHeight = constraints.maxHeight;
|
|
|
+ // final minHeight = constraints.minHeight;
|
|
|
+ // final maxWidth = constraints.maxWidth;
|
|
|
+ // // Log.d("---maxHeight-----$maxHeight-- $minHeight $maxWidth--");
|
|
|
+ // return Container(
|
|
|
+ // // height: 71.5,
|
|
|
+ // color: context.appColors.whiteBG,
|
|
|
+ // width: maxWidth,
|
|
|
+ // padding: const EdgeInsets.only(left: 10, right: 10),
|
|
|
+ // child: Wrap(
|
|
|
+ // // mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ // // mainAxisSize: MainAxisSize.max,
|
|
|
+ // alignment: WrapAlignment.center,
|
|
|
+ // spacing: 8.0, // 子项之间的水平间距
|
|
|
+ // runSpacing: 4.0, // 行与行之间的垂直间距
|
|
|
+ // children: List.generate(actionBtnList.length, (index) {
|
|
|
+ // var item = actionBtnList[index];
|
|
|
+ // return Expanded(
|
|
|
+ // child: _buildBtn(context, item, vm, ref),
|
|
|
+ // );
|
|
|
+ // // return _buildBtn(context, item, vm, ref);
|
|
|
+ // })),
|
|
|
+ // ).scrollable(
|
|
|
+ // scrollDirection: Axis.horizontal,
|
|
|
+ // physics: const BouncingScrollPhysics(),
|
|
|
+ // );
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+
|
|
|
Widget _buildActionSection(
|
|
|
BuildContext context, state, vm, WidgetRef ref, int id,List<Map<String, dynamic>> actionBtnList) {
|
|
|
+ final state = ref.watch(cleanOrderDetailVmProvider);
|
|
|
+ int? orderStatus = state.datas?.orderStatus;
|
|
|
+ String? cancelStatus = state.datas?.cancelStatus;
|
|
|
+
|
|
|
return LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
|
|
|
final maxHeight = constraints.maxHeight;
|
|
|
final minHeight = constraints.minHeight;
|
|
|
final maxWidth = constraints.maxWidth;
|
|
|
+
|
|
|
// Log.d("---maxHeight-----$maxHeight-- $minHeight $maxWidth--");
|
|
|
- return Container(
|
|
|
- height: 71.5,
|
|
|
- color: context.appColors.whiteBG,
|
|
|
- width: maxWidth,
|
|
|
- padding: const EdgeInsets.only(left: 10, right: 10),
|
|
|
- child: Row(
|
|
|
+ if (orderStatus!.toString() == '0') {
|
|
|
+ // 未支付场景
|
|
|
+ return Container(
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
+ width: maxWidth,
|
|
|
+ padding: const EdgeInsets.only(left: 10, right: 10),
|
|
|
+ child: Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
|
+ children: [
|
|
|
+ Row(
|
|
|
+ children: actionBtnList
|
|
|
+ .asMap()
|
|
|
+ .map((index, item) {
|
|
|
+ final isLast = index == actionBtnList.length - 1;
|
|
|
+ if (isLast) return MapEntry(index, const SizedBox.shrink());
|
|
|
+ return MapEntry(
|
|
|
+ index,
|
|
|
+ Expanded(
|
|
|
+ child: _waitPaidBuildBtn(context, item, vm, ref, index),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }).values.toList(),
|
|
|
+ ),
|
|
|
+ if (actionBtnList.isNotEmpty && actionBtnList.last != null)
|
|
|
+ Padding(
|
|
|
+ padding: const EdgeInsets.only(top: 8.0),
|
|
|
+ child: _waitPaidBuildBtn(
|
|
|
+ context,
|
|
|
+ actionBtnList.last,
|
|
|
+ vm,
|
|
|
+ ref,
|
|
|
+ actionBtnList.length - 1,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return Container(
|
|
|
+ // height: 71.5,
|
|
|
+ color: context.appColors.whiteBG,
|
|
|
+ width: maxWidth,
|
|
|
+ padding: const EdgeInsets.only(left: 10, right: 10),
|
|
|
+ child: Row(
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
mainAxisSize: MainAxisSize.max,
|
|
|
- children: List.generate(actionBtnList.length, (index) {
|
|
|
- var item = actionBtnList[index];
|
|
|
- return Expanded(
|
|
|
- child: _buildBtn(context, item, vm, ref),
|
|
|
- );
|
|
|
- // return _buildBtn(context, item, vm, ref);
|
|
|
- })),
|
|
|
- ).scrollable(
|
|
|
- scrollDirection: Axis.horizontal,
|
|
|
- physics: const BouncingScrollPhysics(),
|
|
|
- );
|
|
|
+ children: List.generate(actionBtnList.length, (index) {
|
|
|
+ var item = actionBtnList[index];
|
|
|
+ return Expanded(
|
|
|
+ child: _buildBtn(context, item, vm, ref,index),
|
|
|
+ );
|
|
|
+ // return _buildBtn(context, item, vm, ref);
|
|
|
+ })),
|
|
|
+ ).scrollable(
|
|
|
+ scrollDirection: Axis.horizontal,
|
|
|
+ physics: const BouncingScrollPhysics(),
|
|
|
+ );
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- Widget _buildBtn(BuildContext context, Map<String, dynamic> btnItem, vm, WidgetRef ref) {
|
|
|
+ Widget _waitPaidBuildBtn(BuildContext context, Map<String, dynamic> btnItem, vm, WidgetRef ref, int btnIdx) {
|
|
|
+ return MyButton(
|
|
|
+ onPressed: () {
|
|
|
+ vm.handlerClickActionBtn(context, btnItem);
|
|
|
+ },
|
|
|
+ text: btnItem['text'],
|
|
|
+ radius: 10.0,
|
|
|
+ textColor: context.appColors.textWhite,
|
|
|
+ backgroundColor: ColorUtils.string2Color(btnItem['btnColor']),
|
|
|
+ fontSize: 12,
|
|
|
+ padding: const EdgeInsets.symmetric(horizontal: 5),
|
|
|
+ minWidth: btnItem['btnWidth'].toDouble(),
|
|
|
+ minHeight: btnItem['btnHeight']?.toDouble() + 5,
|
|
|
+ ).marginOnly(left: 5);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Widget _buildBtn(BuildContext context, Map<String, dynamic> btnItem, vm, WidgetRef ref, int btnIdx) {
|
|
|
// final btnCode = btnItem['code'];
|
|
|
+ final state = ref.watch(cleanOrderDetailVmProvider);
|
|
|
+ Log.d("8323 cancelStatus:${state.datas?.cancelStatus} orderStatus:${state.datas?.orderStatus}");
|
|
|
+ int? orderStatus = state.datas?.orderStatus;
|
|
|
+ String? cancelStatus = state.datas?.cancelStatus;
|
|
|
return MyButton(
|
|
|
onPressed: () {
|
|
|
vm.handlerClickActionBtn(context, btnItem);
|
|
@@ -688,8 +786,15 @@ class CleanOrderDetailPage extends HookConsumerWidget {
|
|
|
backgroundColor: ColorUtils.string2Color(btnItem['btnColor']),
|
|
|
fontSize: 12,
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 5),
|
|
|
- minWidth: btnItem['btnWidth']?.toDouble(),
|
|
|
+ minWidth: getBtnActionWidth(btnItem, orderStatus!, cancelStatus!, btnIdx),
|
|
|
minHeight: btnItem['btnHeight']?.toDouble() + 5,
|
|
|
).marginOnly(left: 5);
|
|
|
}
|
|
|
+
|
|
|
+ double getBtnActionWidth(Map<String, dynamic> btnItem, int orderStatus, String cancelStatus, int btnIdx) {
|
|
|
+ if (btnItem['btnWidth'] != null) {
|
|
|
+ return btnItem['btnWidth']?.toDouble() + 5;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
}
|