goods_sort_provider.dart
2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:one_poem/generated/json/base/json_convert_content.dart';
import 'package:one_poem/goods/models/goods_sort_entity.dart';
class GoodsSortProvider extends ChangeNotifier {
int _index = 0;
int get index => _index;
// TabBar初始化3个,其中两个文字置空。
final List<Tab> _myTabs = <Tab>[const Tab(text: '请选择'), const Tab(text: ''), const Tab(text: '')];
List<Tab> get myTabs => _myTabs;
List<GoodsSortEntity> _mGoodsSort = [];
List<GoodsSortEntity> _mGoodsSort1 = [];
List<GoodsSortEntity> _mGoodsSort2 = [];
/// 当前列表数据
List<GoodsSortEntity> _mList = [];
List<GoodsSortEntity> get mList => _mList;
/// 三级联动选择的position
final List<int> _positions = [0, 0, 0];
List<int> get positions => _positions;
void setIndex(int index) {
_index = index;
notifyListeners();
}
void indexIncrement() {
_index ++;
}
void setList(int index) {
switch(index) {
case 0:
_mList = _mGoodsSort;
break;
case 1:
_mList = _mGoodsSort1;
break;
case 2:
_mList = _mGoodsSort2;
break;
}
}
void setListAndChangeTab() {
switch(index) {
case 1:
_mList = _mGoodsSort1;
_myTabs[1] = const Tab(text: '请选择');
_myTabs[2] = const Tab(text: '');
break;
case 2:
_mList = _mGoodsSort2;
_myTabs[2] = const Tab(text: '请选择');
break;
case 3:
_mList = _mGoodsSort2;
break;
}
notifyListeners();
}
void initData() {
if (_mList.isNotEmpty) {
return;
}
// 模拟数据,数据为固定的三个列表
rootBundle.loadString('assets/data/sort_0.json').then((String value) {
_mGoodsSort = JsonConvert.fromJsonAsT<List<GoodsSortEntity>>(json.decode(value)) ?? [];
_mList = _mGoodsSort;
notifyListeners();
});
rootBundle.loadString('assets/data/sort_1.json').then((String value) {
_mGoodsSort1 = JsonConvert.fromJsonAsT<List<GoodsSortEntity>>(json.decode(value)) ?? [];
});
rootBundle.loadString('assets/data/sort_2.json').then((String value) {
_mGoodsSort2 = JsonConvert.fromJsonAsT<List<GoodsSortEntity>>(json.decode(value)) ?? [];
});
}
}