feat:适配跨单位和外来人员
This commit is contained in:
1 parent
00d197d6dc
commit
c2febd694b
3 files changed
+56
-26
No files matched your search
@@ -52,6 +52,13 @@ enum OrderPayType implements BaseEnum {
|
||||
final String title;
|
||||
|
||||
const OrderPayType(this.code, this.title);
|
||||
|
||||
static bool isStrideOrForeign(OrderPayType payType) {
|
||||
return [
|
||||
OrderPayType.STRIDE_DEPT_QR_CODE,
|
||||
OrderPayType.FOREIGN_TICKET_QR_CODE,
|
||||
].contains(payType);
|
||||
}
|
||||
}
|
||||
|
||||
/// 订单状态
|
||||
|
||||
@@ -361,18 +361,18 @@ mixin OrderMixin {
|
||||
orderSourceTypeId = globalQrCode!.id.toString();
|
||||
break;
|
||||
case OrderType.FOREIGN_TICKET:
|
||||
if (ObjectUtil.isEmpty(globalQrCode!.itemId)) {
|
||||
if (ObjectUtil.isEmpty(globalQrCode!.id)) {
|
||||
Toast.error(msg: "二维码错误");
|
||||
return "";
|
||||
}
|
||||
orderSourceTypeId = globalQrCode!.itemId.toString();
|
||||
orderSourceTypeId = globalQrCode!.id.toString();
|
||||
break;
|
||||
case OrderType.STRIDE_DEPT:
|
||||
if (ObjectUtil.isEmpty(globalQrCode!.itemId)) {
|
||||
if (ObjectUtil.isEmpty(globalQrCode!.id)) {
|
||||
Toast.error(msg: "二维码错误");
|
||||
return "";
|
||||
}
|
||||
orderSourceTypeId = globalQrCode!.itemId.toString();
|
||||
orderSourceTypeId = globalQrCode!.id.toString();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -205,6 +205,9 @@ class SelectPayTypeDialogController extends GetxController {
|
||||
}
|
||||
globalQrCode = serviceCode;
|
||||
orderPayType.value = serviceCode.payType;
|
||||
if (serviceCode.orderType != null) {
|
||||
orderType = serviceCode.orderType!;
|
||||
}
|
||||
logger.i("|$_tag|二维码识别,识别到的二维码json:|${jsonEncode(serviceCode)}|");
|
||||
final isNetwork = AppNetworkTool.isAutoNetwork();
|
||||
if (isNetwork) {
|
||||
@@ -486,7 +489,10 @@ Future<void> selectPayTypeDialog() async {
|
||||
Obx(
|
||||
() => Visibility(
|
||||
visible: payTypeC.payUser.value == null,
|
||||
replacement: selectPayTypeUser(payTypeC.payUser.value),
|
||||
replacement: selectPayTypeUser(
|
||||
payTypeC.payUser.value,
|
||||
payTypeC.orderPayType.value,
|
||||
),
|
||||
child: selectPayTypeHint(
|
||||
context,
|
||||
type: payTypeC.orderPayDisplayType.value,
|
||||
@@ -537,7 +543,7 @@ Future<void> selectPayTypeDialog() async {
|
||||
);
|
||||
}
|
||||
|
||||
Widget selectPayTypeUser(ServiceUser? user) {
|
||||
Widget selectPayTypeUser(ServiceUser? user, OrderPayType? payType) {
|
||||
final theme = FTheme.of(Get.context!);
|
||||
if (user == null) return const SizedBox.shrink();
|
||||
final isFree = user.walletIsFreeze ?? true;
|
||||
@@ -547,7 +553,10 @@ Widget selectPayTypeUser(ServiceUser? user) {
|
||||
color: Colors.transparent,
|
||||
),
|
||||
);
|
||||
return <Widget>[
|
||||
// 判断是否为`跨单位二维码支付`或者`外来人员二维码支付`
|
||||
payType ??= OrderPayType.FACE;
|
||||
final isStrideOrForeign = OrderPayType.isStrideOrForeign(payType);
|
||||
final widgets = <Widget>[
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.user),
|
||||
@@ -560,25 +569,39 @@ Widget selectPayTypeUser(ServiceUser? user) {
|
||||
title: Text('手机号', style: textStyle),
|
||||
details: Text("${user.userMobile}", style: textStyle),
|
||||
),
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.badgeDollarSign),
|
||||
title: Text('余额', style: textStyle),
|
||||
details: appPrice(Get.context!, user.walletBalance),
|
||||
),
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.idCard),
|
||||
title: Text('卡号', style: textStyle),
|
||||
details: Text("${user.walletCardNumber}", style: textStyle),
|
||||
).offstage(offstage: ObjectUtil.isEmpty(user.walletCardNumber)),
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.ban),
|
||||
title: Text('是否冻结', style: textStyle),
|
||||
details: Text(isFree ? "是" : "否", style: textStyle),
|
||||
).offstage(offstage: user.walletCardNumber == null),
|
||||
]
|
||||
];
|
||||
if (isStrideOrForeign) {
|
||||
widgets.addAll([
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.stretchHorizontal),
|
||||
title: Text('支付类型', style: textStyle),
|
||||
details: Text(payType.title, style: textStyle),
|
||||
),
|
||||
]);
|
||||
} else {
|
||||
widgets.addAll([
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.badgeDollarSign),
|
||||
title: Text('余额', style: textStyle),
|
||||
details: appPrice(Get.context!, user.walletBalance),
|
||||
),
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.idCard),
|
||||
title: Text('卡号', style: textStyle),
|
||||
details: Text("${user.walletCardNumber}", style: textStyle),
|
||||
).offstage(offstage: ObjectUtil.isEmpty(user.walletCardNumber)),
|
||||
FTile(
|
||||
style: titleTheme,
|
||||
prefixIcon: FIcon(FAssets.icons.ban),
|
||||
title: Text('是否冻结', style: textStyle),
|
||||
details: Text(isFree ? "是" : "否", style: textStyle),
|
||||
).offstage(offstage: user.walletCardNumber == null),
|
||||
]);
|
||||
}
|
||||
return widgets
|
||||
.toColumn(mainAxisAlignment: MainAxisAlignment.center)
|
||||
.height(double.infinity);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user