Commit 53c89b347b97ad7baa532045b80e020fb9dc04db

Authored by wdn127929
1 parent 0b327caf

我的--营销任务代参数

... ... @@ -48,6 +48,13 @@ PODS:
- flutter_bugly (0.0.1):
- Bugly
- Flutter
- flutter_inappwebview (0.0.1):
- Flutter
- flutter_inappwebview/Core (= 0.0.1)
- OrderedSet (~> 5.0)
- flutter_inappwebview/Core (0.0.1):
- Flutter
- OrderedSet (~> 5.0)
- flutter_native_image (0.0.1):
- Flutter
- flutter_sms (1.1.0):
... ... @@ -70,6 +77,7 @@ PODS:
- Flutter
- install_plugin (0.0.1):
- Flutter
- OrderedSet (5.0.0)
- package_info (0.0.1):
- Flutter
- path_provider (0.0.1):
... ... @@ -119,6 +127,7 @@ DEPENDENCIES:
- flutter_app_badger (from `.symlinks/plugins/flutter_app_badger/ios`)
- flutter_app_update (from `.symlinks/plugins/flutter_app_update/ios`)
- flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
- flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`)
- flutter_sms (from `.symlinks/plugins/flutter_sms/ios`)
- flutter_statusbarcolor (from `.symlinks/plugins/flutter_statusbarcolor/ios`)
... ... @@ -151,6 +160,7 @@ SPEC REPOS:
- AMapSearch
- Bugly
- FMDB
- OrderedSet
- Reachability
- TPNS-iOS
- WechatOpenSDK
... ... @@ -184,6 +194,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_app_update/ios"
flutter_bugly:
:path: ".symlinks/plugins/flutter_bugly/ios"
flutter_inappwebview:
:path: ".symlinks/plugins/flutter_inappwebview/ios"
flutter_native_image:
:path: ".symlinks/plugins/flutter_native_image/ios"
flutter_sms:
... ... @@ -251,6 +263,7 @@ SPEC CHECKSUMS:
flutter_app_badger: 65de4d6f0c34a891df49e6cfb8a1c0496426fa68
flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc
flutter_bugly: c9800f4d5bc5bdc27ffdde3417a26ba44266e0c3
flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721
flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe
flutter_sms: 91ce41530f55c85d6524d82307a5d555844c086a
flutter_statusbarcolor: 8afb1071ed8c58be929f1e32b36c629771fd2259
... ... @@ -261,6 +274,7 @@ SPEC CHECKSUMS:
foundation_fluttify: 0c45145e3fad1fb99188e4979daed5b24cd9b278
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
install_plugin: a13e7ddd2bab0c701b48cd359c26d0394125b6fb
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
... ...
... ... @@ -301,6 +301,7 @@
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework",
"${BUILT_PRODUCTS_DIR}/OrderedSet/OrderedSet.framework",
"${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
"${BUILT_PRODUCTS_DIR}/audioplayers/audioplayers.framework",
"${BUILT_PRODUCTS_DIR}/connectivity/connectivity.framework",
... ... @@ -309,6 +310,7 @@
"${BUILT_PRODUCTS_DIR}/easy_contact_picker/easy_contact_picker.framework",
"${BUILT_PRODUCTS_DIR}/flutter_app_badger/flutter_app_badger.framework",
"${BUILT_PRODUCTS_DIR}/flutter_app_update/flutter_app_update.framework",
"${BUILT_PRODUCTS_DIR}/flutter_inappwebview/flutter_inappwebview.framework",
"${BUILT_PRODUCTS_DIR}/flutter_native_image/flutter_native_image.framework",
"${BUILT_PRODUCTS_DIR}/flutter_sms/flutter_sms.framework",
"${BUILT_PRODUCTS_DIR}/flutter_statusbarcolor/flutter_statusbarcolor.framework",
... ... @@ -332,6 +334,7 @@
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OrderedSet.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/audioplayers.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity.framework",
... ... @@ -340,6 +343,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/easy_contact_picker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_badger.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_update.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_native_image.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_sms.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_statusbarcolor.framework",
... ... @@ -631,7 +635,7 @@
CURRENT_PROJECT_VERSION = 317;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_MODE = release;
FLUTTER_BUILD_MODE = debug;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
... ...
... ... @@ -83,7 +83,7 @@ class CustomerListSunModel extends Object with ISuspensionBean {
String monthCount;
@JsonKey(name: 'label')
String label;
bool select = true;
bool select = false;
List<String> pinyinList; //全拼数组
String pinyin; //全拼字母
... ...
... ... @@ -73,7 +73,7 @@ class _CouponPageState extends State<CouponPage> {
@override
void dispose() {
EventBus().emit('changeStatusColor');
bus.off('changeStatusColor');
// bus.off("refresh_coupon_list");
super.dispose();
}
... ...
... ... @@ -112,18 +112,19 @@ class _MyContactListPageState extends State<MyContactListPage> {
width: ScreenUtil().setWidth(2)))),
child: Row(
children: [
InkWell(
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (widget.fromPage != FromPage.FromPageShowCutomerList) {
List<CustomerListSunModel> data =
widget.provider.userHistorys;
data[index].select = !data[index].select;
if (data[index].select) {
widget.provider.addData(index);
widget.provider.addDataMy(index);
} else {
widget.provider.cancelData(index);
widget.provider.cancelDataMy(index);
}
widget.provider.getCheckValue();
widget.provider.getCheckValueMy();
}
},
child: Stack(
... ... @@ -190,140 +191,164 @@ class _MyContactListPageState extends State<MyContactListPage> {
)),
HEmptyView(20),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
model.rnameStr != null && model.rnameStr != ''
? Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Container(
constraints: BoxConstraints(
maxWidth: ScreenUtil().setWidth(200)),
child: Text(
model.rnameStr,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(36),
fontWeight: FontWeight.bold),
)),
HEmptyView(10),
Padding(
padding: EdgeInsets.only(
bottom: ScreenUtil().setWidth(4)),
child: Text(
model.sexStr != ''
? '[${model.sexStr}]'
: '',
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(22),
),
)),
HEmptyView(10),
],
)
: SizedBox(),
model.label != null
? Container(
padding: EdgeInsets.only(
bottom: ScreenUtil().setWidth(4)),
constraints: BoxConstraints(
maxWidth: ScreenUtil().setWidth(150)),
child: Text(
model.label,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Color.fromRGBO(193, 194, 63, 1),
fontSize: ScreenUtil().setSp(22),
),
))
: SizedBox()
],
),
VEmptyView(10),
widget.fromPage == FromPage.FromPageMyCustomer &&
((model.company != null && model.company != '') ||
(model.phone != null && model.phone != ''))
? Padding(
padding: EdgeInsets.only(
bottom: ScreenUtil().setWidth(10)),
child: Row(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
if (widget.fromPage !=
FromPage.FromPageShowCutomerList) {
NavigatorUtil.goMyCustomerDetailPage(
context, model, widget.fromPage);
}
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
model.company != null && model.company != ''
model.rnameStr != null && model.rnameStr != ''
? Row(
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Container(
constraints: BoxConstraints(
maxWidth:
ScreenUtil().setWidth(200)),
child: Text(
model.rnameStr,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_333333,
fontSize:
ScreenUtil().setSp(36),
fontWeight: FontWeight.bold),
)),
HEmptyView(10),
Padding(
padding: EdgeInsets.only(
bottom:
ScreenUtil().setWidth(4)),
child: Text(
model.sexStr != ''
? '[${model.sexStr}]'
: '',
style: TextStyle(
color: MyColours.color_333333,
fontSize:
ScreenUtil().setSp(22),
),
)),
HEmptyView(10),
],
)
: SizedBox(),
model.label != null
? Container(
padding: EdgeInsets.only(
right: ScreenUtil().setWidth(10)),
bottom: ScreenUtil().setWidth(4)),
constraints: BoxConstraints(
maxWidth: ScreenUtil().setWidth(200)),
maxWidth: ScreenUtil().setWidth(150)),
child: Text(
'[${model.company}]',
model.label,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(30)),
color:
Color.fromRGBO(193, 194, 63, 1),
fontSize: ScreenUtil().setSp(22),
),
))
: SizedBox(),
model.phone != null && model.phone != ''
? Text(
model.phone,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(30)),
)
: SizedBox(),
: SizedBox()
],
))
: SizedBox(),
Row(
// crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
Utils.formatFromYmd(model.ddate),
style: TextStyle(
color: Color.fromRGBO(208, 31, 37, 1),
fontSize: ScreenUtil().setSp(24),
fontWeight: FontWeight.bold),
),
HEmptyView(10),
Text(
model.ddateSolt != null ? model.ddateSolt : '',
style: TextStyle(
color: Color.fromRGBO(208, 31, 37, 1),
fontSize: ScreenUtil().setSp(24),
),
),
model.monthCount == '0' || model.monthCount == null
? SizedBox()
: Padding(
padding: EdgeInsets.only(
left: ScreenUtil().setWidth(10)),
child: Text(
'30天内${model.monthCount}单',
),
VEmptyView(10),
widget.fromPage == FromPage.FromPageMyCustomer &&
((model.company != null &&
model.company != '') ||
(model.phone != null &&
model.phone != ''))
? Padding(
padding: EdgeInsets.only(
bottom: ScreenUtil().setWidth(10)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
model.company != null &&
model.company != ''
? Container(
padding: EdgeInsets.only(
right: ScreenUtil()
.setWidth(10)),
constraints: BoxConstraints(
maxWidth: ScreenUtil()
.setWidth(200)),
child: Text(
'[${model.company}]',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color:
MyColours.color_999999,
fontSize:
ScreenUtil().setSp(30)),
))
: SizedBox(),
model.phone != null && model.phone != ''
? Text(
model.phone,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize:
ScreenUtil().setSp(30)),
)
: SizedBox(),
],
))
: SizedBox(),
Row(
// crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
Utils.formatFromYmd(model.ddate),
style: TextStyle(
color: MyColours.color_199095,
color: Color.fromRGBO(208, 31, 37, 1),
fontSize: ScreenUtil().setSp(24),
fontWeight: FontWeight.bold),
),
HEmptyView(10),
Text(
model.ddateSolt != null ? model.ddateSolt : '',
style: TextStyle(
color: Color.fromRGBO(208, 31, 37, 1),
fontSize: ScreenUtil().setSp(24),
),
),
),
HEmptyView(10),
Text(
'累计${model.leiji}单',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(24),
),
)
],
),
],
))
model.monthCount == '0' ||
model.monthCount == null
? SizedBox()
: Padding(
padding: EdgeInsets.only(
left: ScreenUtil().setWidth(10)),
child: Text(
'30天内${model.monthCount}单',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(24),
),
),
),
HEmptyView(10),
Text(
'累计${model.leiji}单',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(24),
),
)
],
),
],
)))
],
),
)
... ... @@ -354,15 +379,7 @@ class _MyContactListPageState extends State<MyContactListPage> {
itemBuilder: (BuildContext context, int index) {
// if (index == 0) return _buildHeader();
CustomerListSunModel model = widget.contacts[index];
return InkWell(
onTap: () {
if (widget.fromPage != FromPage.FromPageShowCutomerList) {
NavigatorUtil.goMyCustomerDetailPage(
context, model, widget.fromPage);
}
},
child: _buildListItem(model, index),
);
return _buildListItem(model, index);
},
physics: BouncingScrollPhysics(),
indexBarData: SuspensionUtil.getTagIndexList(widget.contacts),
... ...
... ... @@ -151,7 +151,7 @@ class _MyCustomerDetailEditPageState extends State<MyCustomerDetailEditPage> {
if (sucess) {
Utils.showToast('保存成功');
bus.emit('refresh_guest_info');
bus.emit('refresh_guest_list');
bus.emit('refresh_guest_list_my');
Navigator.pop(context);
// 刷新前一页
}
... ...
... ... @@ -46,7 +46,7 @@ class _MyCustomerDetailPageState extends State<MyCustomerDetailPage> {
@override
void dispose() {
EventBus().emit('refresh_guest_info');
bus.off('refresh_guest_info');
super.dispose();
}
... ...
... ... @@ -77,18 +77,24 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
}
});
WidgetsBinding.instance.addPostFrameCallback((_) async {
bool first = true;
if (widget.fromPage == FromPage.FromPageMakeRecord) {
customerProvider.selectCustomer = customerMakingProvider.selectCustomer;
customerProvider.labels = customerMakingProvider.labels;
first = false;
}
customerProvider.initData();
_getContantData();
_getContantData(first: first);
_filterLabelList();
});
bus.on("refresh_guest_list", (arg) {
bus.on("refresh_guest_list_my", (arg) {
_getContantData();
});
}
@override
void dispose() {
EventBus().emit('refresh_guest_list');
bus.off('refresh_guest_list_my');
super.dispose();
}
... ... @@ -107,7 +113,7 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
}
}
_getContantData({bool showLoading = true}) async {
_getContantData({bool showLoading = true, bool first = false}) async {
if (showLoading) {
customerProvider.pageState = PageState.Loading;
}
... ... @@ -167,6 +173,9 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
// params['reserve_sort'] 1 等于 2 小于 3 大于
await customerProvider.getCustomerList(context, params);
if (first) {
customerProvider.addAllMy();
}
// await customerProvider.searchData(customerProvider.controller.text);
}
... ... @@ -193,9 +202,9 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
InkWell(
onTap: () {
if (customerProvider.checkValue) {
customerProvider.cancelAll();
customerProvider.cancelAllMy();
} else {
customerProvider.addAll();
customerProvider.addAllMy();
}
},
child: Row(
... ... @@ -232,7 +241,16 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
customerMakingProvider.fromPage = widget.fromPage;
NavigatorUtil.goMyMakeMarkingPage(context);
} else {
customerMakingProvider.labels = customerProvider.labels;
customerMakingProvider.selectCustomer =
customerProvider.selectCustomer;
customerMakingProvider.fromPage = widget.fromPage;
Navigator.pop(context);
// Map temp = {
// 'labels': customerProvider.labels,
// 'selectCustomer': customerProvider.selectCustomer
// };
// Navigator.of(context).pop(temp);
}
},
child: Container(
... ...
... ... @@ -56,7 +56,7 @@ class _MyFestivalEditPageState extends State<MyFestivalEditPage> {
_getGuestInfoCday();
// 刷新
bus.emit('refresh_guest_info');
bus.emit('refresh_guest_list');
bus.emit('refresh_guest_list_my');
// Navigator.pop(context);
}
... ...
... ... @@ -66,20 +66,6 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
}
});
WidgetsBinding.instance.addPostFrameCallback((_) async {
for (CustomerListSunModel item in customerMakingProvider.selectCustomer) {
gid += '${item.id},';
if (Platform.isIOS) {
iosPhone.add(item.phone);
} else {
andriodPhone += "${item.phone};";
}
}
if (gid.endsWith(',')) {
gid = gid.substring(0, gid.length - 1);
}
if (!Platform.isIOS && andriodPhone.endsWith(';')) {
andriodPhone = andriodPhone.substring(0, andriodPhone.length - 1);
}
_couponNetworkData(isShowLoading: false);
if (widget.fromPage == FromPage.FromPageMakeRecordDetail) {
_getGuestByGid();
... ... @@ -87,6 +73,25 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
});
}
_getPhoneAndGid() {
andriodPhone = '';
iosPhone = [];
for (CustomerListSunModel item in customerMakingProvider.selectCustomer) {
gid += '${item.id},';
if (Platform.isIOS) {
iosPhone.add(item.phone);
} else {
andriodPhone += "${item.phone};";
}
}
if (gid.endsWith(',')) {
gid = gid.substring(0, gid.length - 1);
}
if (!Platform.isIOS && andriodPhone.endsWith(';')) {
andriodPhone = andriodPhone.substring(0, andriodPhone.length - 1);
}
}
@override
void dispose() {
super.dispose();
... ... @@ -110,6 +115,7 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
gid = widget.selfList.gid;
customerMakingProvider.labels = customerProvider.labels;
customerMakingProvider.selectCustomer = customerProvider.selectCustomer;
_getPhoneAndGid();
// customerMakingProvider.fromPage = widget.fromPage;
customerMakingProvider.controller.text = widget.selfList.content;
... ... @@ -211,7 +217,7 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
// }, rCallback: () async {
if (Platform.isIOS) {
// List<String> phoneNumber = ['18161963378', '18729572142', '18765432345'];
String message = "test";
String message = customerMakingProvider.controller.text;
try {
String _result = await sendSMS(message: message, recipients: iosPhone);
print(_result);
... ... @@ -486,12 +492,35 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
)),
HEmptyView(10),
InkWell(
onTap: () {
onTap: () async {
needClear = false;
if (widget.fromPage ==
FromPage.FromPageMakeRecordDetail) {
NavigatorUtil.goMyCustomerListPage(
customerMakingProvider.selectCustomer =
customerProvider.selectCustomer;
// Map temp =
await NavigatorUtil.goMyCustomerListPage(
context, FromPage.FromPageMakeRecord);
customerProvider.labels =
customerMakingProvider.labels;
customerProvider.selectCustomer =
customerMakingProvider.selectCustomer;
// {
// 'labels': customerProvider.labels,
// 'selectCustomer': customerProvider.selectCustomer
// };
// customerProvider.labels = temp['labels'];
// customerProvider.selectCustomer =
// temp['selectCustomer'];
// customerMakingProvider.labels = temp['labels'];
// customerMakingProvider.selectCustomer =
// temp['selectCustomer'];
_getPhoneAndGid();
setState(() {});
// customerMakingProvider.fromPage = widget.fromPage;
} else {
Navigator.pop(context);
}
... ...
... ... @@ -76,106 +76,6 @@ class _ShowCustomerListPageState extends State<ShowCustomerListPage>
// await customerProvider.searchData(customerProvider.controller.text);
}
// ///选中的联系人widget
Widget _selectContantWidget() {
return Container(
// constraints: BoxConstraints(maxHeight: ScreenUtil().setWidth(760)),
// height: ScreenUtil().setWidth(400),
width: double.infinity,
padding: EdgeInsets.all(ScreenUtil().setWidth(40)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
boxShadow: [
BoxShadow(
color: MyColours.color_333333,
blurRadius: ScreenUtil().setWidth(14))
],
borderRadius: BorderRadius.only(
topLeft: Radius.circular(ScreenUtil().setWidth(30)),
topRight: Radius.circular(ScreenUtil().setWidth(30)),
)),
child: Row(
children: [
InkWell(
onTap: () {
if (customerProvider.checkValue) {
customerProvider.cancelAll();
} else {
customerProvider.addAll();
}
},
child: Row(
children: [
Image.asset(
Utils.getImgPath(customerProvider.checkValue
? 'c_mul_select'
: 'c_mul_select_un'),
width: ScreenUtil().setWidth(30)),
HEmptyView(10),
Text(
'全选',
style: TextStyle(
fontSize: ScreenUtil().setSp(26),
color: MyColours.color_333333),
),
HEmptyView(20),
],
),
),
Expanded(
child: InkWell(
onTap: () {
if (customerProvider.selectCustomer == null ||
customerProvider.selectCustomer.length == 0) {
Utils.showToast('请至少选择1名顾客');
return;
}
if (widget.fromPage == FromPage.FromPageHome) {
customerMakingProvider.labels = customerProvider.labels;
customerMakingProvider.selectCustomer =
customerProvider.selectCustomer;
customerMakingProvider.fromPage = widget.fromPage;
NavigatorUtil.goMakeMarkingPage(context,
fromPage: FromPage.FromPageCustomerList);
} else {
Navigator.pop(context);
}
},
child: Container(
alignment: Alignment.center,
padding: EdgeInsets.all(ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(ScreenUtil().setWidth(40)),
color: MyColours.color_199095),
child: Text(
'已选[${customerProvider.labels}]${customerProvider.selectCustomer.length}位顾客,下发营销任务',
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_ffffff,
),
)),
)),
// Expanded(
// child: RoundButton(
// // width: ScreenUtil().setWidth(600),
// height: ScreenUtil().setWidth(80),
// radius: ScreenUtil().setWidth(40),
// text: '已选 [全部] 80位顾客,下发营销任务frfrfrfrfrffrfrfr',
// fontSize: 28,
// textColor: MyColours.color_ffffff,
// gradientStart: MyColours.color_199095,
// gradientEnd: MyColours.color_199095,
// onPressed: () {},
// ))
],
),
);
}
/// 搜索框
Widget _searchWidget() {
return Container(
... ...
... ... @@ -117,11 +117,11 @@ class _ContactListPageState extends State<ContactListPage> {
widget.provider.customerBySellerList;
data[index].select = !data[index].select;
if (data[index].select) {
widget.provider.addData(index);
// widget.provider.addData(index);
} else {
widget.provider.cancelData(index);
// widget.provider.cancelData(index);
}
widget.provider.getCheckValue();
// widget.provider.getCheckValue();
},
child: Stack(
alignment: Alignment.bottomCenter,
... ...
... ... @@ -47,7 +47,7 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
@override
void dispose() {
EventBus().emit('refresh_guest_info');
bus.off('refresh_guest_info');
super.dispose();
}
... ...
... ... @@ -73,7 +73,7 @@ class _CustomerListPageState extends State<CustomerListPage>
@override
void dispose() {
EventBus().emit('refresh_guest_list');
bus.off('refresh_guest_list');
super.dispose();
}
... ... @@ -127,9 +127,9 @@ class _CustomerListPageState extends State<CustomerListPage>
InkWell(
onTap: () {
if (customerProvider.checkValue) {
customerProvider.cancelAll();
// customerProvider.cancelAll();
} else {
customerProvider.addAll();
// customerProvider.addAll();
}
},
child: Row(
... ...
... ... @@ -37,7 +37,7 @@ class _MarketingRecordsPageState extends State<MarketingRecordsPage> {
@override
void dispose() {
EventBus().emit('refresh_store_marking_records_page');
bus.off('refresh_store_marking_records_page');
super.dispose();
}
... ...
... ... @@ -291,10 +291,15 @@ class CustomerProvider extends ChangeNotifier {
pageState = PageState.Empty;
} else {
pageState = PageState.Success;
List<String> idList = [];
for (int i = 0; i < userHistorys.length; i++) {
CustomerListSunModel item = userHistorys[i];
idList.add(item.id);
for (CustomerListSunModel value in selectCustomer) {
if (value.id == item.id) {
item.select = true; //原来选中的继续保持选中
}
}
if (item.rname != null) {
item.pinyin =
PinyinHelper.getPinyin(item.rname).replaceAll(' ', '');
... ... @@ -302,6 +307,16 @@ class CustomerProvider extends ChangeNotifier {
userHistorys[i] = item;
}
// 把选中的列表,剔除掉现在结果里没有的
List<CustomerListSunModel> temp = [];
for (CustomerListSunModel value in selectCustomer) {
if (idList.contains(value.id)) {
temp.add(value);
}
}
selectCustomer = temp; //把选中的列表,剔除掉现在结果里没有的
getCheckValueMy();
//对于以前有选中的数据,接口请求后,继续赋值
myHandleList(userHistorys, needRefresh: true);
}
... ... @@ -397,6 +412,7 @@ class CustomerProvider extends ChangeNotifier {
}
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
List<CustomerListSunModel> user =
baseResp.data.map<CustomerListSunModel>((value) {
... ... @@ -407,26 +423,10 @@ class CustomerProvider extends ChangeNotifier {
} else {
for (int i = 0; i < user.length; i++) {
CustomerListSunModel item = user[i];
item.pinyinFirst = '';
item.pinyinList = [];
item.pinyinList = [];
item.select = true;
if (item.rname != null) {
item.pinyin =
PinyinHelper.getPinyin(item.rname).replaceAll(' ', '');
List<String> pinyinList =
PinyinHelper.getPinyin(item.rname).split(' ');
String pinyinAll = ''; //组装全拼组合
for (int j = 0; j < pinyinList.length; j++) {
String letter = pinyinList[j];
pinyinAll += pinyinList[j];
item.pinyinList.add(pinyinAll);
if (letter.length > 0) {
item.pinyinFirst += pinyinList[j].substring(0, 1);
} else {
item.pinyinFirst += '';
}
}
}
user[i] = item;
... ... @@ -709,112 +709,77 @@ class CustomerProvider extends ChangeNotifier {
}
//全选按钮执行“全选”
addAll() async {
// List<CustomerListSunModel> temp = returnNowList();
// //把数据状态全部改成true,即选中状态
// selectCustomer = [];
// for (var i = 0; i < temp.length; i++) {
// temp[i].select = true;
// selectCustomer.add(temp[i]);
// }
// _giveValue(temp);
// checkValue = true;
// labelsValue();
// notifyListeners();
}
labelsValue() {
// List<CustomerListSunModel> temp = returnNowList();
// List<String> tempLabel = [];
// for (CustomerListSunModel item in temp) {
// if (item.select && item.attr != null) {
// tempLabel.add(item.attr);
// }
// }
// tempLabel = tempLabel.toSet().toList();
// labels = Utils.listToStringEnglish(tempLabel);
addAllMy() async {
//把数据状态全部改成true,即选中状态
selectCustomer = [];
for (var i = 0; i < userHistorys.length; i++) {
userHistorys[i].select = true;
selectCustomer.add(userHistorys[i]);
}
checkValue = true;
labelsValueMy();
notifyListeners();
}
_giveValue(List<CustomerListSunModel> temp) {
// if (index == 0) {
// userHistorysShow = temp; //全部
// } else if (index == 1) {
// userHistorysShowHuoyue = temp; //活跃
// } else if (index == 2) {
// userHistorysShowChenshui = temp; //沉睡
// } else if (index == 3) {
// userHistorysShowLiushi = temp; //流失
// }
labelsValueMy() {
List<String> tempLabel = [];
for (CustomerListSunModel item in userHistorys) {
if (item.select && item.attr != null) {
tempLabel.add(item.attr);
}
}
tempLabel = tempLabel.toSet().toList();
labels = Utils.listToStringEnglish(tempLabel);
}
///清除选择
clearSelect() {
selectCustomer = [];
labelsValue();
// selectCustomer = [];
// labelsValue();
// couponsShow = [];
}
//全选按钮执行“全不选”
cancelAll() async {
// List<CustomerListSunModel> temp = returnNowList();
// selectCustomer = [];
// //把数据状态全部改成false,即不选中状态
// for (var i = 0; i < temp.length; i++) {
// temp[i].select = false;
// }
// _giveValue(temp);
// checkValue = false;
// labelsValue();
// notifyListeners();
cancelAllMy() async {
selectCustomer = [];
//把数据状态全部改成false,即不选中状态
for (var i = 0; i < userHistorys.length; i++) {
userHistorys[i].select = false;
}
checkValue = false;
labels = '';
notifyListeners();
}
//选中
addData(int index) {
// List<CustomerListSunModel> temp = returnNowList();
// temp[index].select = true;
// _giveValue(temp);
// selectCustomer.add(temp[index]);
// labelsValue();
// notifyListeners();
addDataMy(int index) {
// userHistorys[index].select = true;
selectCustomer.add(userHistorys[index]);
labelsValueMy();
notifyListeners();
}
// ///返回目前选中的list
// List<CustomerListSunModel> returnNowList() {
// List<CustomerListSunModel> temp = [];
// if (index == 0) {
// temp = userHistorysShow; //全部
// } else if (index == 1) {
// temp = userHistorysShowHuoyue; //活跃
// } else if (index == 2) {
// temp = userHistorysShowChenshui; //沉睡
// } else if (index == 3) {
// temp = userHistorysShowLiushi; //流失
// }
// return temp;
// }
//未选中
cancelData(int index) {
// List<CustomerListSunModel> temp = returnNowList();
// temp[index].select = false;
// _giveValue(temp);
// selectCustomer.removeWhere((element) => element == temp[index].id);
// labelsValue();
// notifyListeners();
cancelDataMy(int index) {
// userHistorys[index].select = false;
selectCustomer
.removeWhere((element) => element.id == userHistorys[index].id);
labelsValueMy();
notifyListeners();
}
//获取全选按钮的状态 true or false
getCheckValue() {
// List<CustomerListSunModel> listData = returnNowList();
// bool temp = listData.any((value) {
// return value.select == false;
// });
// if (temp == true) {
// checkValue = false;
// } else {
// checkValue = true;
// }
// notifyListeners();
getCheckValueMy() {
bool temp = userHistorys.any((value) {
return value.select == false;
});
if (temp == true) {
checkValue = false;
} else {
checkValue = true;
}
notifyListeners();
}
// searchData(String key) {
... ...