Files
pj_supermarket_cloud/lib/pages/card_active/view.dart
T
2025-03-09 20:35:03 +08:00

179 lines
6.2 KiB
Dart

import 'package:data_table_2/data_table_2.dart';
import 'package:ducafe_ui_core/ducafe_ui_core.dart';
import 'package:flutter/material.dart';
import 'package:forui/forui.dart';
import 'package:get/get.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
import 'index.dart';
class CardActivePage extends GetView<CardActiveController> {
const CardActivePage({super.key});
// 主视图
Widget _buildView(BuildContext context) {
return <Widget>[
_condition(context),
_buildTable(context).expanded(),
Obx(() => appPage(
context,
pageNo: controller.currentPage.value,
pageSize: controller.pageSize.value,
total: controller.totalPage.value,
onPageChanged: (page) => controller.doPage(page: page),
))
].toColumn();
}
// 条件
Widget _condition(BuildContext context) {
return const Center();
}
// 主视图
Widget _buildTable(BuildContext context) {
final theme = FTheme.of(context);
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
final width = constraints.maxWidth;
final height = constraints.maxHeight;
final hdHeight = (height - 50.h) / 10.5;
final hdWidth = (width - 50.h) / 4.5;
return Obx(() => DataTable2(
columnSpacing: 12.w,
horizontalMargin: 12.w,
minWidth: hdWidth,
showBottomBorder: true,
headingTextStyle: theme.typography.lg,
dataTextStyle: theme.typography.base,
dataRowHeight: hdHeight,
columns: [
DataColumn2(
label: Text("编号", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
fixedWidth: 280.w,
),
DataColumn2(
label: Text("开卡部门", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("绑定用户昵称", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("绑定用户手机号", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("饭卡类型", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("饭卡卡号", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("饭卡状态", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
DataColumn2(
label: Text("操作", textAlign: TextAlign.center),
headingRowAlignment: MainAxisAlignment.center,
),
],
rows: controller.tableList
.map(
(v) => DataRow(
cells: [
DataCell(
Text(
v.id ?? "未知",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
v.deptName ?? "未知",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
v.username ?? "",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
v.mobile ?? "",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
WalletType.values
.fromCode(v.walletTypeUniqueCode)
?.title ??
"未知",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
v.cardNumber ?? "",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
v.isActiveHardware == false ? "未激活" : "激活",
textAlign: TextAlign.center,
).center(),
),
DataCell(
Text(
WalletType.values
.fromCode(v.walletTypeUniqueCode)
?.title ??
"未知",
textAlign: TextAlign.center,
).center(),
),
],
),
)
.toList(),
));
});
}
@override
Widget build(BuildContext context) {
final theme = FTheme.of(context);
final height = context.height;
return GetBuilder<CardActiveController>(
init: CardActiveController(),
id: "card_active",
builder: (_) {
return FScaffold(
header: FHeader.nested(
title: Text("开卡管理"),
prefixActions: [
FHeaderAction.back(onPress: Get.back),
],
style: theme.headerStyle.nestedStyle.copyWith(
titleTextStyle: theme.typography.lg,
actionStyle: theme.headerStyle.nestedStyle.actionStyle.copyWith(
size: theme.typography.xl2.fontSize,
),
),
).height(height * 0.1),
content: _buildView(context),
);
},
);
}
}