|
- import 'dart:convert';
-
- import 'package:cached_network_image/cached_network_image.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:zhiying_base_widget/widgets/wallet/wallet_data/model/wallet_header_model.dart';
- import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data_bloc.dart';
- import 'package:zhiying_base_widget/widgets/wallet/wallet_data/wallet_data_sk.dart';
- import 'package:zhiying_comm/zhiying_comm.dart';
-
- class WalletData extends StatefulWidget {
- final Map<String, dynamic> data;
-
- const WalletData(this.data, {Key key}) : super(key: key);
-
- @override
- _WalletDataState createState() => _WalletDataState();
- }
-
- class _WalletDataState extends State<WalletData> {
- Map<String, dynamic> data;
- WalletDataBloc _bloc;
-
- Map<String, dynamic> dataModel;
-
- @override
- void initState() {
- data = widget.data;
- _bloc = WalletDataBloc();
- _bloc.loadHeaderData();
- super.initState();
- }
-
- @override
- Widget build(BuildContext context) {
- print(data);
- WalletHeaderModel model;
-
- return StreamBuilder(
- stream: _bloc.outData,
- builder: (context, asn) {
- dataModel = asn.data;
- if (data.containsKey('data')) {
- Map<String, dynamic> temp = json.decode(data['data']);
- model = WalletHeaderModel.fromJson(temp);
- } else {
- return WalletDataSkeleton();
- }
- return Container(
- width: double.infinity,
- child: dataModel == null
- ? WalletDataSkeleton()
- : Container(
- margin: EdgeInsets.only(left: 12.5, right: 12.5, top: 10),
- padding: EdgeInsets.only(left: 36.w, right: 26.w),
- decoration: BoxDecoration(
- image: DecorationImage(
- image: CachedNetworkImageProvider(
- model?.headerImg ?? ""),
- fit: BoxFit.fill)),
- height: 290.h,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: <Widget>[
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: <Widget>[
- Row(
- children: <Widget>[
- CachedNetworkImage(
- imageUrl: model?.headerAvatar ?? "",
- height: 66.h,
- width: 52.h,
- fit: BoxFit.fill,
- ),
- Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.start,
- children: <Widget>[
- Text(
- model?.headerCashOutText ?? "",
- style: TextStyle(
- fontSize: 25.sp,
- color: HexColor.fromHex(
- model?.headerCashOutTextColor ??
- "")),
- ),
- Text(
- dataModel.containsKey(
- model.headerCashOutKey)
- ? dataModel[model.headerCashOutKey]
- : "",
- style: TextStyle(
- fontSize: 40.sp,
- color: HexColor.fromHex(
- model.headerCashOutTextColor),
- fontFamily: 'Din-Bold',
- package: 'zhiying_base_widget',
- ),
- ),
- ],
- ),
- )
- ],
- ),
- GestureDetector(
- onTap: () {
- RouterUtil.route(
- model, model.toJson(), context);
- },
- child: Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(10),
- image: DecorationImage(
- image: CachedNetworkImageProvider(
- model.headerCashOutBtnImg ?? ''),
- fit: BoxFit.fill),
- ),
- child: Padding(
- padding: EdgeInsets.only(
- left: 29.w,
- right: 29.w,
- top: 20.w,
- bottom: 20.w),
- child: Text(
- "提现",
- style: TextStyle(color: Colors.white),
- ),
- ),
- ),
- )
- ],
- ),
- Divider(
- height: 1,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: _buildTopListItem(model))
- ],
- ),
- ));
- },
- );
- }
-
- ///构建顶部Item
- _buildTopListItem(WalletHeaderModel model) {
- List<Widget> listWidget = List();
- for (var item in model.headerBottomList) {
- listWidget.add(Column(
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- Text(
- dataModel.containsKey(item.valueKey)
- ? dataModel[item.valueKey]
- : "",
- style: TextStyle(
- color: HexColor.fromHex(item.valueColor),
- fontSize: 30.sp,
- fontFamily: 'Din-Bold',
- package: 'zhiying_base_widget'),
- ),
- Text(
- item.text,
- style: TextStyle(
- color: HexColor.fromHex(item.textColor), fontSize: 22.sp),
- ),
- ],
- ));
- }
- return listWidget;
- }
- }
|