加群452892873 下载对应38课文件,运行方法,建好项目,直接替换lib目录

CartServices.dart

import 'dart:convert';

import 'Storage.dart';
import '../config/Config.dart'; class CartServices {
static addCart(item) async {
//把对象转换成Map类型的数据
item = CartServices.formatCartData(item);
try {
List cartListData = json.decode(await Storage.getString('cartList'));
bool hasData = cartListData.any((value) {
return value["_id"] == item['_id'] &&
value['selectedAttr'] == item['selectedAttr'];
});
if (hasData) {
for (var i = ; i < cartListData.length; i++) {
if (cartListData[i]["_id"] == item['_id'] &&
cartListData[i]['selectedAttr'] == item['selectedAttr']) {
cartListData[i]['count'] = cartListData[i]['count'] + ;
}
}
await Storage.setString('cartList', json.encode(cartListData));
} else {
cartListData.add(item);
await Storage.setString('cartList', json.encode(cartListData));
}
} catch (e) {
List tempList = [];
tempList.add(item);
await Storage.setString("cartList", json.encode(tempList));
}
} //过滤数据
static formatCartData(item) {
//处理图片:
String pic = item.pic;
pic = Config.domain + pic.replaceAll('\\', '/'); final Map data = new Map<String, dynamic>();
data['_id'] = item.sId;
data['title'] = item.title;
//处理string和Int类型的购物车数据:
if (item.price is int || item.price is double) {
data['price'] = item.price;
} else {
data['price'] = double.parse(item.price);
} data['selectedAttr'] = item.selectedAttr;
data['count'] = item.count;
data['pic'] = pic;
//是否选中
data['checked'] = true;
return data;
} //获取购物车选中的数据:
static getCheckOutData() async{
List cartListData=[];
List tempCheckOutData=[];
try{
cartListData=json.decode(await Storage.getString('cartList'));
}catch(e){
cartListData=[];
}
print(cartListData);
for(var i=;i<cartListData.length;i++){
if(cartListData[i]['checked']==true){
tempCheckOutData.add(cartListData[i]);
}
}
return tempCheckOutData; }
}

provider/CheckOut.dart

import 'package:flutter/material.dart';
import 'dart:convert'; import '../services/Storage.dart'; class CheckOut with ChangeNotifier {
List _checkOutListData = []; //购物车数据 List get checkOutListData => this._checkOutListData;
changeCheckOutListData(data){
this._checkOutListData=data;
notifyListeners();
}
}

38 Flutter仿京东商城项目 渲染结算页面商品数据的更多相关文章

  1. 22 Flutter仿京东商城项目 inappbrowser 加载商品详情、保持页面状态、以及实现属性筛选业务逻辑

    加群452892873 下载对应21可文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展. cupertino_icons: ^0.1.2 flutter_swi ...

  2. 01-02 Flutter仿京东商城项目 功能分析、底部导航Tab切换以及路由配置、架构搭建:(Flutter仿京东商城项目 首页布局以及不同终端屏幕适配方案)

    Flutter和Dart交流学习群:交流群:452892873 01Flutter仿京东商城项目 功能分析.底部导航Tab切换以及路由配置.架构搭建 02Flutter仿京东商城项目 首页布局以及不同 ...

  3. 42 Flutter仿京东商城项目 修改默认收货地址 显示默认收货地址

    CheckOut.dart import 'package:flutter/material.dart'; import '../services/ScreenAdapter.dart'; impor ...

  4. 37 Flutter仿京东商城项目 结算页面布局

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...

  5. 07-08 Flutter仿京东商城项目 商品分类页面布局:Flutter仿京东商城项目 商品分类页面数据渲染

    Flutter实战(交流群:452892873) 本项目是一个实战项目,根据目录建文件,并复制从第一节到最新更新的文章,可以构成完整的一个请求后台数据的项目: CateModel.dart class ...

  6. 21 Flutter仿京东商城项目 商品详情 请求接口渲染数据 商品属性数据渲染

    加群452892873 下载对应21可文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展.   cupertino_icons: ^0.1.2   flutter ...

  7. 41 Flutter 仿京东商城项目签名验证 增加收货地址、显示收货地址 事件广播

    加群452892873 下载对应41课文件,运行方法,建好项目,直接替换lib目录 AddressAdd.dart import 'package:dio/dio.dart'; import 'pac ...

  8. 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器

    加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml city_pickers: ^ AddressAdd.dart import 'packa ...

  9. 36 Flutter仿京东商城项目 用户登录 退出登录 事件广播更新状态

    Login.dart import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.da ...

随机推荐

  1. lvs+keepalived集群架构服务

    一,LVS功能详解 1.1 LVS(Linux Virtual Server)介绍 LVS是Linux Virtual Server 的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服 ...

  2. vue 单向数据流

  3. 2020还有9天!Winforms开发有哪些期待?DevExpress 2020计划出炉

    下载DevExpress v19.2完整版 DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.DevExpress Winf ...

  4. vscode源码启动时需要的electron缓存位置

    C:\Users\Administrator\AppData\Local\Temp\gulp-electron-cache 可以把下好的electron release直接放到这个目录,就不用重新下了 ...

  5. 杭电2019多校第八场 Acesrc and Good Numbers——思维打表&&oeis

    题意 给定 $d,x$,$f(d,k)$ 表示 $1 \sim k$ 中 $d$ 出现的次数, $k$ 满足 $f(d,k) = k$,求小于 $x$ 的最大的 $k$. 分析 正解不会...,学习了 ...

  6. LightOJ-1008-Fibsieve`s Fantabulous Birthday(推公式)

    链接: https://vjudge.net/problem/LightOJ-1008 题意: Fibsieve had a fantabulous (yes, it's an actual word ...

  7. SQL死锁处理

    查询死锁 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.d ...

  8. Vue IE11 报错 Failed to generate render function:SyntaxError: 缺少标识符 in

    报错截图: 查了篇文章(https://blog.csdn.net/weixin_42018057/article/details/81385121),遇到的情况跟文章里描述的类似,他提供的方法是:需 ...

  9. MongoDB-3.2 oplog删除策略优化

    MongoDB oplog是一个capped collection,创建capped collection时,createCollection可以设置size(最大字节数)和max(最大文档数)的参数 ...

  10. 007_Python3 字符串

    字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. 例如: var1 = 'Hello World!' ...