Commit 97a514b1d8976aca6f157ec7eb8c3f60b81f9c3b

Authored by weixin_45529955
1 parent 9053245f

余额明细&&消费金明细UI

... ... @@ -211,9 +211,22 @@ class _CustomerHomePageState extends State<CustomerHomePage> {
VEmptyView(24),
InkWell(
onTap: () {
//
if (Utils.getAuthority(context, '全店客情')) {
if (widget.sellerNormalSpecial) {
//标准版
NavigatorUtil.goCustomLabelPage(context);
if (widget.sellerPreserve ||
widget.sellerMarketing) {
NavigatorUtil.goCustomLabelPage(context);
} else {
NavigatorUtil.goCustomLabelPage(context);
}
} else {
NavigatorUtil.goCustomLabelPage(context);
}
} else {
Utils.showToast('您还没有操作权限,请联系管理员');
}
},
child: Padding(
padding: EdgeInsets.only(
... ...
... ... @@ -164,6 +164,9 @@ class _BalanceDetailsPageState extends State<BalanceDetailsPage> {
radius: r(5),
onPressed: () {
//
DialogUtil.showDeductMoneyDialog(
context, '扣除余额', '扣除余额', (value) {});
},
),
HEmptyView(20),
... ... @@ -178,6 +181,8 @@ class _BalanceDetailsPageState extends State<BalanceDetailsPage> {
radius: r(5),
onPressed: () {
//
DialogUtil.showRefundDialog(context, '余额退款', (value) {});
},
))
],
... ...
import 'package:flutter/material.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/screen_util.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
/**
* 消费金明细页面
*/
class ConsumerDetailsPage extends StatefulWidget {
const ConsumerDetailsPage({super.key});
@override
State<ConsumerDetailsPage> createState() => _ConsumerDetailsPageState();
}
class _ConsumerDetailsPageState extends State<ConsumerDetailsPage> {
ScrollController controller = ScrollController();
Widget _item() {
return Container(
padding: EdgeInsets.only(left: w(20), right: w(20), top: w(10)),
decoration: BoxDecoration(
border: Border(
bottom:
BorderSide(width: w(0.5), color: MyColours.color_CBCBCB))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
'获取/消耗',
style: TextStyle(
color: MyColours.color_000000,
fontSize: font(14),
),
),
Text(
'+¥300.00',
style: TextStyle(
color: MyColours.color_438E93,
fontSize: font(14),
fontWeight: FontWeight.bold),
)
]),
VEmptyView(28),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
'2025-08-31 15:43:23',
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14),
),
),
Text(
'变动后消费金 ¥220.00',
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14),
),
)
]),
VEmptyView(16),
Text(
'备注:顾客已付现金',
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(14),
),
),
VEmptyView(8),
],
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('消费金明细'),
body: Column(children: [
Expanded(
child: SingleChildScrollView(
controller: controller,
child: Stack(
children: <Widget>[
ListView.builder(
padding: EdgeInsets.only(top: w(50)),
controller: controller,
shrinkWrap: true,
itemCount: 20,
itemBuilder: (BuildContext context, int index) {
return _item();
},
),
Positioned(
top: 0, // 你可以根据需要调整位置
left: 0, // 你可以根据需要调整位置
right: 0, // 你可以根据需要调整位置
child: Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(0.5),
color: MyColours.color_CBCBCB))),
margin: EdgeInsets.only(bottom: w(10)),
padding: EdgeInsets.symmetric(
horizontal: w(20),
vertical: w(10)), // 根据需要调整内边距
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'消费金',
style: TextStyle(
color: MyColours.color_000000,
fontSize: font(16),
fontWeight: FontWeight.bold),
),
Text(
'¥30',
style: TextStyle(
color: MyColours.color_438E93,
fontSize: font(20),
fontWeight: FontWeight.bold),
)
],
)),
),
],
))),
Container(
padding: EdgeInsets.symmetric(horizontal: w(20), vertical: w(19)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
RoundButton(
text: '发放',
width: w(162),
height: w(43),
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
radius: r(5),
onPressed: () {
//
DialogUtil.showGiveMoneyDialog(context, '发放', (value) {});
},
),
HEmptyView(20),
Expanded(
child: RoundButton(
text: '扣除',
height: w(43),
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
borderColor: MyColours.color_438E93,
textColor: MyColours.color_438E93,
radius: r(5),
onPressed: () {
//
DialogUtil.showDeductMoneyDialog(
context, '扣除消费金', '扣除金额', (value) {});
},
))
],
),
)
]));
}
}
... ...
... ... @@ -356,12 +356,12 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
)
],
),
// VEmptyView(20),
// Wrap(
// runSpacing: w(10),
// spacing: w(10),
// children: labelsWidgetNew(),
// ),
VEmptyView(20),
Wrap(
runSpacing: w(10),
spacing: w(10),
children: labelsWidgetNew(),
),
VEmptyView(20),
Wrap(
runSpacing: w(10),
... ... @@ -587,25 +587,25 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
right: w(20),
child: Column(
children: [
// RoundButton(
// text: '消费记录',
// gradientStart: MyColours.color_438E93,
// gradientEnd: MyColours.color_438E93,
// textColor: MyColours.color_ffffff,
// borderColor: MyColours.color_438E93,
// width: w(72),
// radius: r(11),
// fontSize: 24,
// isBold: true,
// height: w(22),
// onPressed: () {
// // NavigatorUtil.goCustomerDetailEditPage(
// // context,
// // customerProvider.guestInfoSunModel!.guest,
// // widget.fromPage);
// },
// ),
// VEmptyView(20),
RoundButton(
text: '消费记录',
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
textColor: MyColours.color_ffffff,
borderColor: MyColours.color_438E93,
width: w(72),
radius: r(11),
fontSize: 24,
isBold: true,
height: w(22),
onPressed: () {
// NavigatorUtil.goCustomerDetailEditPage(
// context,
// customerProvider.guestInfoSunModel!.guest,
// widget.fromPage);
},
),
VEmptyView(20),
RoundButton(
text: '编辑',
gradientStart: MyColours.color_ffffff,
... ... @@ -727,21 +727,26 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20))))));
data.add(Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10),
vertical: ScreenUtil().setWidth(4),
),
decoration: BoxDecoration(
color: MyColours.color_438E93,
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(10),
),
),
child: Text('消费金¥3000',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20)))));
data.add(InkWell(
onTap: () {
//
NavigatorUtil.goConsumerDetailsPage(context);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10),
vertical: ScreenUtil().setWidth(4),
),
decoration: BoxDecoration(
color: MyColours.color_438E93,
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(10),
),
),
child: Text('消费金¥3000',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(20))))));
data.add(Container(
padding: EdgeInsets.symmetric(
... ...
... ... @@ -2636,4 +2636,19 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.balance_details_page}",
replace: replace);
}
//消费金明细页面
static Future<dynamic> goConsumerDetailsPage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.consumer_details_page}",
replace: replace);
}
}
... ...
... ... @@ -83,6 +83,7 @@ import 'package:one_key/pages/my/customer_type/my_customer/my_marketing_records_
import 'package:one_key/pages/my/customer_type/my_customer/my_marketing_records_page.dart';
import 'package:one_key/pages/my/customer_type/my_customer/my_show_customer_list_page.dart';
import 'package:one_key/pages/my/customer_type/store_customer/balance_details_page.dart';
import 'package:one_key/pages/my/customer_type/store_customer/consumer_details_page.dart';
import 'package:one_key/pages/my/customer_type/store_customer/set_birthday_page.dart';
import 'package:one_key/pages/my/customer_type/store_customer/show_customer_list_page.dart';
... ... @@ -4533,6 +4534,12 @@ var balanceDetailsPageHandle = new Handler(
create: (_) => CustomerProvider(), child: BalanceDetailsPage());
});
var consumerDetailsPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(), child: ConsumerDetailsPage());
});
var customLabelPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<CustomerProvider>(
... ...
... ... @@ -471,6 +471,14 @@ class Routes {
static String balance_details_page = "/balance_details_page"; // 余额明细页面
static String consumer_details_page = "/consumer_details_page"; // 消费金明细页面
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
... ... @@ -899,6 +907,12 @@ class Routes {
router.define(balance_details_page,
handler: balanceDetailsPageHandle);
router.define(consumer_details_page,
handler: consumerDetailsPageHandle);
}
}
... ...
import 'dart:async';
import 'dart:ui';
import 'package:cached_network_image/cached_network_image.dart';
... ... @@ -14,7 +13,6 @@ import 'package:flutter_lunar_datetime_picker/flutter_lunar_datetime_picker.dart
import 'package:flutter_picker_plus/flutter_picker_plus.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/filter_btn_model.dart';
import 'package:one_key/models/remark.dart';
import 'package:one_key/models/seller_role_model.dart';
... ... @@ -1641,83 +1639,288 @@ class DialogUtil {
TextEditingController controller, FocusNode node) {
return Container(
// height: ScreenUtil().setWidth(380),
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(28)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(
title,
textAlign: TextAlign.left,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(32)),
)),
VEmptyView(26),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
padding: EdgeInsets.symmetric(horizontal: w(10)),
margin: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(28)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
border: Border.all(width: w(0.5), color: MyColours.color_CBCBCB)),
child: TextField(
controller: controller,
focusNode: node,
// keyboardType: TextInputType.numberWithOptions(decimal: true), //键盘类型,数字键盘
maxLines: 3,
maxLength: 100,
// maxLengthEnforced: true,
style: TextStyle(
fontSize: ScreenUtil().setSp(24),
color: MyColours.color_333333), //输入文本的样式
decoration: InputDecoration(
contentPadding:
EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(30)),
hintText: hintText,
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(24),
),
TextField(
controller: controller,
focusNode: node,
// keyboardType: TextInputType.numberWithOptions(decimal: true), //键盘类型,数字键盘
maxLines: 3,
maxLength: 150,
// maxLengthEnforced: true,
style: TextStyle(
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_333333), //输入文本的样式
decoration: InputDecoration(
contentPadding:
EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(30)),
hintText: hintText,
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(32),
),
border: OutlineInputBorder(borderSide: BorderSide.none),
enabledBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
focusedBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
border: OutlineInputBorder(borderSide: BorderSide.none),
// fillColor: MyColours.color_F9F9F9,
// // fillColor: Colors.red,
// filled: true,
// enabledBorder: OutlineInputBorder(
// //未选中时候的颜色
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: MyColours.color_cccccc,
// width: ScreenUtil().setWidth(2)),
// ),
// focusedBorder: OutlineInputBorder(
// //选中时外边框颜色
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: MyColours.app_main,
// ),
// ),
// border: OutlineInputBorder(
// borderRadius:
// BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: Colors.red, width: ScreenUtil().setWidth(2))),
),
onChanged: (value) {},
enabledBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
],
focusedBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
// fillColor: MyColours.color_F9F9F9,
// // fillColor: Colors.red,
// filled: true,
// enabledBorder: OutlineInputBorder(
// //未选中时候的颜色
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: MyColours.color_cccccc,
// width: ScreenUtil().setWidth(2)),
// ),
// focusedBorder: OutlineInputBorder(
// //选中时外边框颜色
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: MyColours.app_main,
// ),
// ),
// border: OutlineInputBorder(
// borderRadius:
// BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: Colors.red, width: ScreenUtil().setWidth(2))),
),
onChanged: (value) {},
),
);
}
//余额充值确认弹框
static showRechargeConfirmDialog(BuildContext context, String title,
{GestureTapCallback? onTapLeft, GestureTapCallback? onTapRight}) {
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
VEmptyView(40),
Image.asset(
Utils.getImgPath('warn'),
width: w(30),
height: w(30),
),
VEmptyView(28),
Container(
alignment: Alignment.center,
child: Text('提示',
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(28),
Container(
alignment: Alignment.center,
child: Text('为客户赵先生 ${title}1000元',
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(30),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
})),
],
),
])));
}));
});
}
//余额退款确认弹框
static showRefundConfirmDialog(BuildContext context, String title,
{GestureTapCallback? onTapLeft, GestureTapCallback? onTapRight}) {
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
VEmptyView(40),
Image.asset(
Utils.getImgPath('warn'),
width: w(30),
height: w(30),
),
VEmptyView(28),
Container(
alignment: Alignment.center,
child: Text('提示',
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(28),
Container(
alignment: Alignment.center,
child: Text('为客户赵先生办理余额退款,退款后余额将清零',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(12)))),
VEmptyView(12),
Container(
alignment: Alignment.center,
child: Text('退款金额900元',
style: TextStyle(
color: MyColours.color_515151,
fontWeight: FontWeight.bold,
fontSize: font(16)))),
VEmptyView(12),
Container(
alignment: Alignment.center,
child: Text('(钱款交易请在线下完成)',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(12)))),
VEmptyView(30),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
})),
],
),
])));
}));
});
}
//余额充值弹框
static showRechargeDialog(
BuildContext context, String title, CustomCallBack callback,
... ... @@ -1813,37 +2016,342 @@ class DialogUtil {
rechargeItem(context, '赠送积分', '分'),
rechargeWidget('备注', '请输入备注',
TextEditingController(), FocusNode()),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height:
ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart:
Colors.transparent,
gradientEnd: Colors.transparent,
textColor:
MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(
context)) {
Navigator.pop(context);
}
})),
],
),
]))
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
showRechargeConfirmDialog(
context, '充值金额');
})),
],
),
])));
}));
});
}
//扣除余额弹框
static showDeductMoneyDialog(BuildContext context, String title,
String subTitle, CustomCallBack callback,
{GestureTapCallback? onTapLeft, GestureTapCallback? onTapRight}) {
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VEmptyView(40),
Container(
alignment: Alignment.center,
child: Text(title,
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(30),
rechargeItem(context, subTitle, '元'),
// VEmptyView(30),
rechargeWidget('备注', '请输入备注',
TextEditingController(), FocusNode()),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
showRechargeConfirmDialog(
context, '扣除消费金');
})),
],
),
])));
}));
});
}
//发放消费金弹框
static showGiveMoneyDialog(
BuildContext context, String title, CustomCallBack callback,
{GestureTapCallback? onTapLeft, GestureTapCallback? onTapRight}) {
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VEmptyView(40),
Container(
alignment: Alignment.center,
child: Text('发放消费金',
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(30),
rechargeItem(context, '发放金额', '元'),
// VEmptyView(30),
rechargeWidget('备注', '请输入备注',
TextEditingController(), FocusNode()),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
showRechargeConfirmDialog(
context, '发放消费金');
})),
],
),
])));
}));
});
}
//退款余额弹框
static showRefundDialog(
BuildContext context, String title, CustomCallBack callback,
{GestureTapCallback? onTapLeft, GestureTapCallback? onTapRight}) {
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VEmptyView(40),
Container(
alignment: Alignment.center,
child: Text('余额退款',
style: TextStyle(
fontWeight: FontWeight.bold,
color: MyColours.color_515151,
fontSize: font(16)))),
VEmptyView(30),
rechargeItem(context, '顾客余额', '元'),
VEmptyView(30),
rechargeItem(context, '退款金额', '元'),
VEmptyView(30),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '确定',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
isBold: true,
fontSize: 32,
onPressed: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
showRefundConfirmDialog(context, '退款');
})),
],
),
])));
}));
});
... ...