void openInformation({required String id}) async {
parseData(id);
Navigator.push(
Get.context!,
popRouteView(
context: Get.context!,
child: popView(
context: Get.context!,
title: LK.orderInformation.tr,
width: MediaQuery.of(Get.context!).size.width / 1.2,
height: MediaQuery.of(Get.context!).size.height / 1.4,
child: TradeHistoryInfoPage(),
),
popPosition: PopupPosition.center,
),
);
}
Future<void> parseData(id) async {
final result = await UserApi.getSettledTradeView(params: {"id": id});
if (result.isNotEmpty) {
state.settleStatus = result['settleStatus'] ?? '';
state.settleDate = result['settleDate'] ?? '';
state.tradeDate = result['tradeDate'] ?? '';
state.ref = result['ref'] ?? '';
state.contract = result['contract'] ?? '';
state.exchangeCode = result['exchangeCode'] ?? '';
state.buySellType = result['buySellType'] ?? '';
state.avgPrice = result['avgPrice'] ?? '';
state.totalQty = result['totalQty'] ?? '';
state.considerAmt = result['considerAmt'] ?? '';
state.settleAmt = result['settleAmt'] ?? '';
state.createBy = result['createBy'] ?? '';
state.createOn = result['createOn'] ?? '';
state.updateOn = result['updateOn'] ?? '';
state.updateBy = result['updateBy'] ?? '';
state.settleCurrCd = result['settleCurrCd'] ?? '';
for (var element in result['qtys']) {
loadDataQty(element, true);
}
for (var element in result['charges']) {
loadDataCharge(element, true);
}
print('settleDate--------------${state.settleDate}');
}
update();
}
class TradeHistoryInfoPage extends StatelessWidget {
final TradeHistoryController controller;
TradeHistoryInfoPage({Key? key})
: controller = Get.put(TradeHistoryController()),
super(key: key);
@override
Widget build(BuildContext context) {
return GetBuilder<TradeHistoryController>(
init: controller,
global: false,
builder: (controller) {
return cardBox(
context: context,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: _information(context),
),
_chargeTable(context)
],
));
},
);
}
Widget _information(BuildContext context) {
print('settledate--------------${controller.state.settleDate}');
return Row(
children: [
Expanded(
child: Column(
children: [
_buildItem(context, LK.tradeHistorySettleStatus.tr,
': ${MapUtil.getLocalNameByType(CodeType.settledTradeStatus, controller.state.settleStatus)}'),
_buildItem(context, LK.tradeHistorySettleDate.tr,
': ${controller.state.settleDate}'),
_buildItem(context, LK.tradeHistoryTradeDate.tr,
': ${controller.state.tradeDate}'),
_buildItem(
context, LK.tradeHistoryRef.tr, ': ${controller.state.ref}'),
_buildItem(context, LK.tradeHistoryContract.tr,
': ${controller.state.contract}'),
_buildItem(context, LK.tradeHistoryExchangeCode.tr,
': ${controller.state.exchangeCode}'),
_buildItem(context, LK.tradeHistoryBuySellType.tr,
': ${controller.state.buySellType}'),
_buildItem(context, LK.tradeHistoryAvgPrice.tr,
': ${controller.state.avgPrice}'),
_buildItem(context, LK.tradeHistoryTotalQty.tr,
': ${controller.state.totalQty}'),
_buildItem(context, LK.tradeHistoryConsiderAmt.tr,
': ${controller.state.considerAmt}'),
_buildItem(context, LK.tradeHistorySettleAmt.tr,
': ${controller.state.settleAmt}'),
_buildItem(context, LK.clientCreateBy.tr,
': ${controller.state.createBy}'),
_buildItem(context, LK.clientCreateOn.tr,
': ${controller.state.createOn}'),
_buildItem(context, LK.clientUpdateBy.tr,
': ${controller.state.updateBy}'),
_buildItem(context, LK.clientUpdateOn.tr,
': ${controller.state.updateOn}'),
_buildItem(context, LK.tradeHistorySettleCurrencyCode.tr,
': ${controller.state.settleCurrCd}'),
],
),
),
_qtyTable(context),
],
);
}
Widget _qtyTable(BuildContext context) {
return Expanded(
child: plutoTable(
context: context,
keyStr: 'qtys',
columns: controller.state.qtyColumns,
rows: controller.state.qtyRows,
onLoaded: controller.initQTYStateManager,
),
);
}
Widget _buildItem(BuildContext context, String label, String value) {
return Row(
children: [
subtext(context: context, name: label),
text(context: context, name: value),
],
);
}
Widget _chargeTable(BuildContext context) {
return Expanded(
child: Padding(
padding: const EdgeInsets.only(top: Dimens.d8),
child: plutoTable(
context: context,
keyStr: 'charge',
columns: controller.state.chargesColumns,
rows: controller.state.chargesRows,
onLoaded: controller.chargeStateManager,
),
),
);
}
}
为什么只有第一次调用openInformation,TradeHistoryInfoPage有数据,第二次调用openInformation,在controller里打印依然还是有数据的,但是TradeHistoryInfoPage里就没有数据了