Commit f02b6a19f6c3a34a34151c034c7fc51361c2c5e2

Authored by wdn127929
1 parent 2402df49

差部分

... ... @@ -12,14 +12,14 @@ if (flutterRoot == null) {
}
def flutterVersionCode = "321"
def flutterVersionCode = "325"
if (flutterVersionCode == null) {
flutterVersionCode = '321'
flutterVersionCode = '325'
}
def flutterVersionName = "3.2.1"
def flutterVersionName = "3.2.5"
if (flutterVersionName == null) {
flutterVersionName = '3.2.1'
flutterVersionName = '3.2.5'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
... ...
... ... @@ -67,7 +67,7 @@ class CustomerBySellerSunModel extends Object with ISuspensionBean {
@JsonKey(name: 'label')
String label;
bool select = true;
bool select = false;
String pinyin;
String tagIndex; //abcdefg
... ... @@ -77,7 +77,7 @@ class CustomerBySellerSunModel extends Object with ISuspensionBean {
}
String get sexStr {
if (sex == null || sex == '') return "";
if (sex == null || sex == '' || sex == '0') return "";
switch (sex.toString()) {
case "1": //先生
case "男":
... ...
... ... @@ -88,12 +88,19 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
WidgetsBinding.instance.addPostFrameCallback((_) async {
bool first = true;
customerProvider.index = tabController.index;
if (widget.fromPage == FromPage.FromPageMakeRecord) {
if (widget.fromPage == FromPage.FromPageMakeRecord ||
widget.fromPage == FromPage.FromPageMyCustomer) {
customerProvider.selectCustomer = customerMakingProvider.selectCustomer;
customerProvider.labels = customerMakingProvider.labels;
first = false;
}
customerProvider.initData();
if (tabController.index == 0) {
customerProvider.hydSelAll = true;
for (FilterBtnModel item in customerProvider.filterHydList) {
item.select = true;
}
}
_getContantData(first: first);
_filterLabelList();
});
... ... @@ -183,6 +190,13 @@ class _MyCustomerListPageState extends State<MyCustomerListPage>
// params['reserve_sort'] 1 等于 2 小于 3 大于
await customerProvider.getCustomerList(context, params);
// if (customerProvider.userHistorys.length ==
// customerProvider.selectCustomer.length) {
// customerProvider.checkValue = true;
// } else {
// customerProvider.checkValue = false;
// }
// if (first || customerProvider.checkValue) {
if (first) {
customerProvider.addAllMy();
}
... ...
... ... @@ -398,8 +398,7 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
itemCount:
customerProvider.guestSunmodel.tips.recover == null
? 0
: customerProvider
.guestSunmodel.tips.recover.length,
: 1,
itemBuilder: (BuildContext context, int index) {
// locationState = state;
... ... @@ -420,7 +419,7 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
HEmptyView(15),
Expanded(
child: Text(
'${customerProvider.guestSunmodel.tips.recover[index]}',
'${customerProvider.guestSunmodel.tips.recover[0]}',
maxLines: 10,
overflow: TextOverflow.ellipsis,
style: TextStyle(
... ... @@ -442,11 +441,13 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
fontSize: 26,
isBold: false,
onPressed: () {
// NavigatorUtil.goMyMakeMarkingPage(
// context,
// selfList: widget.selfList,
// fromPage: FromPage
// .FromPageMakeRecordDetail);
NavigatorUtil.goMyMakeMarkingPage(
context,
fromPage:
FromPage.FromPageMyCustomer,
homeGid: Utils.listToStringEnglish1(
customerProvider.guestSunmodel
.tips.recover[1]));
},
),
],
... ... @@ -459,10 +460,10 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
controller: _controller,
shrinkWrap: true,
cacheExtent: ScreenUtil().setWidth(0),
itemCount: customerProvider.guestSunmodel.tips.awaken ==
null
? 0
: customerProvider.guestSunmodel.tips.awaken.length,
itemCount:
customerProvider.guestSunmodel.tips.awaken == null
? 0
: 1,
itemBuilder: (BuildContext context, int index) {
// locationState = state;
... ... @@ -483,7 +484,7 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
HEmptyView(15),
Expanded(
child: Text(
'${customerProvider.guestSunmodel.tips.awaken[index]}',
'${customerProvider.guestSunmodel.tips.awaken[0]}',
maxLines: 10,
overflow: TextOverflow.ellipsis,
style: TextStyle(
... ... @@ -505,11 +506,13 @@ class _MyCustomerPageState extends State<MyCustomerPage> {
fontSize: 26,
isBold: false,
onPressed: () {
// NavigatorUtil.goMyMakeMarkingPage(
// context,
// selfList: widget.selfList,
// fromPage: FromPage
// .FromPageMakeRecordDetail);
NavigatorUtil.goMyMakeMarkingPage(
context,
fromPage:
FromPage.FromPageMyCustomer,
homeGid: Utils.listToStringEnglish1(
customerProvider.guestSunmodel
.tips.awaken[1]));
},
),
],
... ...
... ... @@ -28,8 +28,12 @@ typedef ClickCallback = void Function(dynamic value);
class MyMakeMarkingPage extends StatefulWidget {
final FromPage fromPage;
final SelfList selfList;
final String homeGid;
MyMakeMarkingPage(
{Key key, this.fromPage = FromPage.FromPageCustomerList, this.selfList})
{Key key,
this.fromPage = FromPage.FromPageCustomerList,
this.selfList,
this.homeGid})
: super(key: key);
@override
... ... @@ -69,7 +73,11 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
WidgetsBinding.instance.addPostFrameCallback((_) async {
_couponNetworkData(isShowLoading: false);
if (widget.fromPage == FromPage.FromPageMakeRecordDetail) {
_getGuestByGid();
_getGuestByGid(widget.selfList.gid);
} else if (widget.fromPage == FromPage.FromPageMyCustomer) {
_getGuestByGid(widget.homeGid);
} else {
_getPhoneAndGid();
}
});
}
... ... @@ -77,6 +85,7 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
_getPhoneAndGid() {
andriodPhone = '';
iosPhone = [];
gid = '';
for (CustomerListSunModel item in customerMakingProvider.selectCustomer) {
gid += '${item.id},';
if (Platform.isIOS) {
... ... @@ -103,34 +112,34 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
}
///客户经理营销中的用户列表
_getGuestByGid({bool isShowLoading = true}) async {
_getGuestByGid(String gidtemp, {bool isShowLoading = true}) async {
// customerMakingProvider.couponSelectIndex = 0;
Map<String, String> params = {
"gid": widget.selfList.gid,
};
Map<String, String> params = {"gid": gidtemp};
await customerProvider.getGuestByGid(
context,
params,
);
print('''object''');
gid = widget.selfList.gid;
gid = gidtemp;
customerMakingProvider.labels = customerProvider.labels;
customerMakingProvider.selectCustomer = customerProvider.selectCustomer;
_getPhoneAndGid();
// customerMakingProvider.fromPage = widget.fromPage;
customerMakingProvider.controller.text = widget.selfList.content;
if (widget.selfList.aid != null) {
//之前绑定过优惠
customerMakingProvider.isUse = true;
for (int i = 0; i < customerProvider.couponListSelect.length; i++) {
if (widget.selfList.aid == customerProvider.couponListSelect[i].id) {
customerMakingProvider.youhui =
customerProvider.couponListSelect[i].aname;
customerMakingProvider.couponSelectIndex = i;
if (widget.selfList != null) {
customerMakingProvider.controller.text = widget.selfList.content;
if (widget.selfList.aid != null) {
//之前绑定过优惠
customerMakingProvider.isUse = true;
for (int i = 0; i < customerProvider.couponListSelect.length; i++) {
if (widget.selfList.aid == customerProvider.couponListSelect[i].id) {
customerMakingProvider.youhui =
customerProvider.couponListSelect[i].aname;
customerMakingProvider.couponSelectIndex = i;
}
}
}
}
customerMakingProvider.isUpdate = true;
setState(() {});
}
... ... @@ -179,41 +188,6 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
_goSms();
}
/// 商家创建营销
_createMarketingBySeller() async {
if (customerMakingProvider.controller.text.trim().length == 0) {
Utils.showToast('请输入营销内容');
return;
}
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid,
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
"gid": gid,
"content": customerMakingProvider.controller.text,
'is_update': customerMakingProvider.isUpdate ? '0' : '1',
'create_user':
Provider.of<UserModel>(context, listen: false).user.role_name
};
if (customerMakingProvider.youhui != '选择优惠' &&
customerMakingProvider.isUse) {
params['aid'] =
'${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}';
}
if (customerMakingProvider.isDate) {
if (customerMakingProvider.edate == '' ||
customerMakingProvider.edate == null) {
Utils.showToast('请选择最晚完成期限');
return;
}
params['edate'] = customerMakingProvider.edate;
}
await customerProvider.createMarketingBySeller(context, params,
showLoading: true);
_goSms();
}
_goSms() async {
// DialogUtil.cupertinoAlertDialog(context,
// title: '确认发送', content: '是否确定为当前所选顾客发送该优惠券', lCallback: () {
... ... @@ -500,7 +474,7 @@ class _MyMakeMarkingPageState extends State<MyMakeMarkingPage> {
onTap: () async {
needClear = false;
if (widget.fromPage ==
FromPage.FromPageMakeRecordDetail) {
FromPage.FromPageMakeRecordDetail || widget.fromPage == FromPage.FromPageMyCustomer){
customerMakingProvider.selectCustomer =
customerProvider.selectCustomer;
... ...
... ... @@ -26,6 +26,7 @@ typedef ClickCallback = void Function(dynamic value);
class MyMakeMarkingPageOnlyShow extends StatefulWidget {
final SellerList sellerList;
MyMakeMarkingPageOnlyShow({Key key, this.sellerList}) : super(key: key);
@override
... ... @@ -172,51 +173,17 @@ class _MyMakeMarkingPageOnlyShowState extends State<MyMakeMarkingPageOnlyShow> {
}
_createMarketing() async {
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid,
"gid": gid,
"content": customerMakingProvider.controller.text
};
if (widget.sellerList.aid != null) {
params['aid'] = widget.sellerList.aid;
}
await customerProvider.createMarketing(context, params, showLoading: true);
_goSms();
}
/// 商家创建营销
_createMarketingBySeller() async {
if (customerMakingProvider.controller.text.trim().length == 0) {
Utils.showToast('请输入营销内容');
return;
}
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid,
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
"gid": gid,
"content": customerMakingProvider.controller.text,
'is_update': customerMakingProvider.isUpdate ? '0' : '1',
'create_user':
Provider.of<UserModel>(context, listen: false).user.role_name
};
if (customerMakingProvider.youhui != '选择优惠' &&
customerMakingProvider.isUse) {
params['aid'] =
'${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}';
}
if (customerMakingProvider.isDate) {
if (customerMakingProvider.edate == '' ||
customerMakingProvider.edate == null) {
Utils.showToast('请选择最晚完成期限');
return;
}
params['edate'] = customerMakingProvider.edate;
}
await customerProvider.createMarketingBySeller(context, params,
showLoading: true);
_goSms();
//这块需要调用经理完成全店任务的接口,不是经理创建营销的接口
// Map<String, String> params = {
// "uid": Provider.of<UserModel>(context, listen: false).user.openid,
// "gid": gid,
// "content": customerMakingProvider.controller.text
// };
// if (widget.sellerList.aid != null) {
// params['aid'] = widget.sellerList.aid;
// }
// await customerProvider.createMarketing(context, params, showLoading: true);
// _goSms();
}
_goSms() async {
... ... @@ -310,9 +277,12 @@ class _MyMakeMarkingPageOnlyShowState extends State<MyMakeMarkingPageOnlyShow> {
// VEmptyView(30),
TextField(
// enabled: false,
enableInteractiveSelection: false,
enableInteractiveSelection:
widget.sellerList.isUpdate == '1' ? true : false,
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
if (widget.sellerList.isUpdate != '1') {
FocusScope.of(context).requestFocus(new FocusNode());
}
},
// enableInteractiveSelection: false,
controller: customerMakingProvider.controller,
... ...
... ... @@ -293,7 +293,9 @@ class _SellerMyMarketingRecordsDetailPageState
isBold: false,
onPressed: () {
NavigatorUtil.goMyMakeMarkingPageOnlyShow(
context, sellerList);
context,
sellerList,
);
},
)
: SizedBox(),
... ...
... ... @@ -188,7 +188,12 @@ class _ContactListPageState extends State<ContactListPage> {
Expanded(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {},
onTap: () {
if (model.gid != null) {
NavigatorUtil.goCustomerDetailPage(
context, model, widget.fromPage, model.nickName);
}
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
... ... @@ -293,6 +298,7 @@ class _ContactListPageState extends State<ContactListPage> {
)
],
),
// model.gid == null ||
model.nickName == null
? SizedBox()
: Container(
... ... @@ -348,12 +354,7 @@ class _ContactListPageState extends State<ContactListPage> {
itemBuilder: (BuildContext context, int index) {
// if (index == 0) return _buildHeader();
CustomerBySellerSunModel model = widget.contacts[index];
return InkWell(
onTap: () {
NavigatorUtil.goCustomerDetailPage(context, model, widget.fromPage);
},
child: _buildListItem(model, index),
);
return _buildListItem(model, index);
},
physics: BouncingScrollPhysics(),
indexBarData: SuspensionUtil.getTagIndexList(widget.contacts),
... ...
... ... @@ -21,8 +21,10 @@ import 'package:provider/provider.dart';
class CustomerDetailPage extends StatefulWidget {
final CustomerBySellerSunModel userHistoryEntity;
final FromPage fromPage;
final String nickName;
CustomerDetailPage({Key key, this.userHistoryEntity, this.fromPage})
CustomerDetailPage(
{Key key, this.userHistoryEntity, this.fromPage, this.nickName})
: super(key: key);
@override
... ... @@ -53,7 +55,7 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
_getGuestInfo() async {
Map<String, String> params = {
// "id": widget.userHistoryEntity.id,
"id": widget.userHistoryEntity.gid,
'phone': widget.userHistoryEntity.phone
};
await customerProvider.getGuestInfo(context, params);
... ... @@ -141,10 +143,12 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
],
),
Container(
padding: EdgeInsets.only(
top: ScreenUtil().setWidth(40),
left: ScreenUtil().setWidth(10),
right: ScreenUtil().setWidth(10)),
margin: EdgeInsets.only(
top: ScreenUtil().setWidth(40),
),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(10),
vertical: ScreenUtil().setWidth(4)),
decoration: BoxDecoration(
border: Border.all(
color: MyColours.color_199095,
... ... @@ -155,7 +159,7 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
// widget.userHistoryEntity.rnameStr == ''
// ? '未指派经理'
// : widget.userHistoryEntity.rnameStr,
'xxx经理',
'${widget.nickName}经理',
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(26)),
... ... @@ -501,11 +505,11 @@ class _CustomerDetailPageState extends State<CustomerDetailPage> {
fontSize: 26,
isBold: false,
onPressed: () {
// NavigatorUtil.goFestivalEditPage(
// context,
// customerProvider.guestInfoSunModel.guest,
// widget.userHistoryEntity.id,
// widget.userHistoryEntity.phone);
NavigatorUtil.goFestivalEditPage(
context,
customerProvider.guestInfoSunModel.guest,
widget.userHistoryEntity.gid,
widget.userHistoryEntity.phone);
},
),
],
... ...
... ... @@ -34,8 +34,9 @@ typedef ClickCallState = void Function(StateSetter state);
class CustomerListPage extends StatefulWidget {
final FromPage fromPage;
final String index;
final String uidStr;
const CustomerListPage({Key key, this.fromPage, this.index})
const CustomerListPage({Key key, this.fromPage, this.index, this.uidStr})
: super(key: key);
@override
_CustomerListPageState createState() => _CustomerListPageState();
... ... @@ -136,7 +137,12 @@ class _CustomerListPageState extends State<CustomerListPage>
FilterBtnModel model = FilterBtnModel();
model.id = item.uid;
model.title = item.nickName;
model.select = false;
if (widget.uidStr == model.id) {
model.select = true;
} else {
model.select = false;
}
customerProvider.filterManageList.add(model);
}
}
... ... @@ -207,17 +213,22 @@ class _CustomerListPageState extends State<CustomerListPage>
//
//
// params['uid'] 经理ID
String uid = '';
for (FilterBtnModel item in customerProvider.filterManageList) {
if (item.select) {
uid += '${item.id},';
if (first && widget.uidStr != null && widget.uidStr != '') {
params['uid'] = widget.uidStr;
} else {
String uid = '';
for (FilterBtnModel item in customerProvider.filterManageList) {
if (item.select) {
uid += '${item.id},';
}
}
}
if (uid.length > 0) {
if (uid.endsWith(',')) {
uid = uid.substring(0, uid.length - 1);
if (uid.length > 0) {
if (uid.endsWith(',')) {
uid = uid.substring(0, uid.length - 1);
}
params['uid'] = uid;
}
params['uid'] = uid;
}
if (customerProvider.controllerstime.text.trim().length > 0) {
... ... @@ -232,6 +243,13 @@ class _CustomerListPageState extends State<CustomerListPage>
}
await customerProvider.getCustomerBySeller(context, params);
// if (customerProvider.customerBySellerList.length ==
// customerProvider.selectCustomerSeller.length) {
// customerProvider.checkValue = true;
// } else {
// customerProvider.checkValue = false;
// }
// if (first || customerProvider.checkValue) {
if (first) {
customerProvider.addAll();
}
... ...
... ... @@ -114,6 +114,8 @@ class _FestivalEditPageState extends State<FestivalEditPage> {
String dayStr = '';
bool gongli = true;
String content = str.substring(0, str.indexOf(':'));
str = str.substring(content.length);
if (str.contains('年')) {
yearStr = str.substring(
str.indexOf(':') + 1, str.indexOf('年'));
... ...
... ... @@ -15,6 +15,7 @@ import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
... ... @@ -49,8 +50,6 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
CustomerMakingProvider customerMakingProvider;
bool needClear = true;
String gid = '';
String andriodPhone = '';
List<String> iosPhone = [];
@override
void initState() {
... ... @@ -69,23 +68,17 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
}
});
WidgetsBinding.instance.addPostFrameCallback((_) async {
for (CustomerBySellerSunModel item in customerMakingProvider.selectCustomerSeller) {
gid += '${item.gid},';
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();
} else {
for (CustomerBySellerSunModel item
in customerMakingProvider.selectCustomerSeller) {
gid += '${item.gid},';
}
if (gid.endsWith(',')) {
gid = gid.substring(0, gid.length - 1);
}
}
});
}
... ... @@ -105,13 +98,15 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
Map<String, String> params = {
"gid": widget.marketingByIdSunModel.gid,
};
await customerProvider.getGuestByGid(
await customerProvider.getSellerGuestByGid(
context,
params,
);
print('''object''');
gid = widget.marketingByIdSunModel.gid;
customerMakingProvider.labels = customerProvider.labels;
customerMakingProvider.selectCustomerSeller = customerProvider.selectCustomerSeller;
customerMakingProvider.selectCustomerSeller =
customerProvider.selectCustomerSeller;
// customerMakingProvider.fromPage = widget.fromPage;
customerMakingProvider.controller.text =
widget.marketingByIdSunModel.content;
... ... @@ -164,27 +159,9 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
}
}
_createMarketing() async {
if (customerMakingProvider.controller.text.trim().length == 0) {
Utils.showToast('请输入营销内容');
return;
}
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid,
"gid": gid,
"content": customerMakingProvider.controller.text
};
if (customerMakingProvider.youhui != '选择优惠' &&
customerMakingProvider.isUse) {
params['aid'] =
'${customerProvider.couponListSelect[customerMakingProvider.couponSelectIndex].id}';
}
await customerProvider.createMarketing(context, params, showLoading: true);
_goSms();
}
/// 商家创建营销
_createMarketingBySeller() async {
FocusScope.of(context).requestFocus(FocusNode());
if (customerMakingProvider.controller.text.trim().length == 0) {
Utils.showToast('请输入营销内容');
return;
... ... @@ -212,43 +189,16 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
}
params['edate'] = customerMakingProvider.edate;
}
print(params);
await customerProvider.createMarketingBySeller(context, params,
showLoading: true);
_goSms();
}
_goSms() async {
// DialogUtil.cupertinoAlertDialog(context,
// title: '确认发送', content: '是否确定为当前所选顾客发送该优惠券', lCallback: () {
// print('取消发送');
// }, rCallback: () async {
if (Platform.isIOS) {
// List<String> phoneNumber = ['18161963378', '18729572142', '18765432345'];
String message = "test";
try {
String _result = await sendSMS(message: message, recipients: iosPhone);
print(_result);
} catch (error) {
print(error.toString());
bool success = await customerProvider
.createMarketingBySeller(context, params, showLoading: true);
if (success) {
if (widget.fromPage == FromPage.FromPageMakeRecordDetail) {
bus.emit('refresh_store_marking_records_page');
}
} else {
print('确定发送');
// String phoneNumber = "18161963378;18729572142";
String message = "test";
// await Sendsms.onGetPermission();
// if (await Sendsms.hasPermission()) {
await Sendsms.onSendSMS(andriodPhone, message);
Utils.showToast("下发任务成功");
}
// }
// SmsModel smsModel = new SmsModel();
// // String sms = await smsModel.getSmsContent(context, params);
// String phoneNumber = "";
// await Sendsms.onSendSMS(phoneNumber, '短信内容');
// });
}
_buttonChoose(String title, ClickCallback callback) {
... ... @@ -603,12 +553,43 @@ class _MakeMarkingPageState extends State<MakeMarkingPage> {
)),
HEmptyView(10),
InkWell(
onTap: () {
onTap: () async {
needClear = false;
if (widget.fromPage ==
FromPage.FromPageMakeRecordDetail) {
NavigatorUtil.goCustomerListPage(
context, FromPage.FromPageMakeRecord);
customerMakingProvider.selectCustomerSeller =
customerProvider.selectCustomerSeller;
await NavigatorUtil.goCustomerListPage(
context, FromPage.FromPageMakeRecord, '');
// Map temp =
customerProvider.labels =
customerMakingProvider.labels;
customerProvider.selectCustomerSeller =
customerMakingProvider.selectCustomerSeller;
gid = '';
for (CustomerBySellerSunModel item
in customerMakingProvider
.selectCustomerSeller) {
gid += '${item.gid},';
}
if (gid.endsWith(',')) {
gid = gid.substring(0, gid.length - 1);
}
// {
// 'labels': customerProvider.labels,
// 'selectCustomer': customerProvider.selectCustomer
// };
// customerProvider.labels = temp['labels'];
// customerProvider.selectCustomer =
// temp['selectCustomer'];
// customerMakingProvider.labels = temp['labels'];
// customerMakingProvider.selectCustomer =
// temp['selectCustomer'];
setState(() {});
} else {
Navigator.pop(context);
}
... ...
... ... @@ -365,6 +365,9 @@ class _MarketingRecordsDetailPageState
horizontal: ScreenUtil().setWidth(200)),
isBold: false,
onPressed: () {
// NavigatorUtil.goMyMakeMarkingPage(context,
// selfList: widget.selfList,
// fromPage: FromPage.FromPageMakeRecordDetail);
NavigatorUtil.goMakeMarkingPage(context,
marketingByIdSunModel:
model.marketingByIdSunModel,
... ...
... ... @@ -74,7 +74,8 @@ class _StoreCustomerPageState extends State<StoreCustomerPage> {
}
///活跃客户、沉睡客户、流失客户
Widget _percentWidget(String pnum, String btnTitle, String percent) {
Widget _percentWidget(String pnum, String btnTitle, String percent,
{String uid = ''}) {
return Container(
color: MyColours.color_ffffff,
// height: ScreenUtil().setWidth(230),
... ... @@ -102,6 +103,7 @@ class _StoreCustomerPageState extends State<StoreCustomerPage> {
RoundButton(
onPressed: () async {
String index = '0';
if (btnTitle == '活跃客户') {
index = '1';
} else if (btnTitle == '沉睡客户') {
... ... @@ -109,7 +111,8 @@ class _StoreCustomerPageState extends State<StoreCustomerPage> {
} else if (btnTitle == '流失客户') {
index = '3';
}
NavigatorUtil.goCustomerListPage(context, FromPage.FromPageHome,
NavigatorUtil.goCustomerListPage(
context, FromPage.FromPageHome, uid,
index: index);
},
text: btnTitle,
... ... @@ -199,7 +202,7 @@ class _StoreCustomerPageState extends State<StoreCustomerPage> {
RoundButton(
onPressed: () async {
NavigatorUtil.goCustomerListPage(
context, FromPage.FromPageHome);
context, FromPage.FromPageHome, '');
},
text: '全店客户',
fontSize: 24,
... ... @@ -300,7 +303,9 @@ class _StoreCustomerPageState extends State<StoreCustomerPage> {
return _percentWidget(
'${customerProvider.storeSunmodel.sellerUser[index - 1].count}',
'${customerProvider.storeSunmodel.sellerUser[index - 1].nickName}经理',
null);
null,
uid: customerProvider
.storeSunmodel.sellerUser[index - 1].uid);
})
],
),
... ...
... ... @@ -990,8 +990,13 @@ class CustomerProvider extends ChangeNotifier {
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
pageStateMarketingRecordMy = PageState.Success;
myRecordData = MarketingByUidModel.fromJson(baseResp.responseData).data;
if (myRecordData.selfList.length == 0 &&
myRecordData.sellerList.length == 0) {
pageStateMarketingRecordMy = PageState.Empty;
} else {
pageStateMarketingRecordMy = PageState.Success;
}
notifyListeners();
} else {
if (baseResp != null) {
... ... @@ -1067,6 +1072,67 @@ class CustomerProvider extends ChangeNotifier {
return storeSunmodel;
}
//商家营销中的用户列表
getSellerGuestByGid(BuildContext context, Map<String, String> params) async {
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_guest_by_gid,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
if (error is MyError) {
switch (error.type) {
case 1:
pageStateListShow = PageState.ConnectivityError;
break;
case 2:
pageStateListShow = PageState.ConnectivityTimeOut;
break;
default:
pageStateListShow = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
List<CustomerBySellerSunModel> user =
baseResp.data.map<CustomerBySellerSunModel>((value) {
return CustomerBySellerSunModel.fromJson(value);
}).toList();
if (user.length == 0) {
pageStateListShow = PageState.Empty;
} else {
for (int i = 0; i < user.length; i++) {
CustomerBySellerSunModel item = user[i];
item.select = true;
if (item.rname != null) {
item.pinyin =
PinyinHelper.getPinyin(item.rname).replaceAll(' ', '');
}
user[i] = item;
}
selectCustomerSeller = user; //全部客户列表信息
List<String> tempLabel = [];
for (CustomerBySellerSunModel item in selectCustomerSeller) {
if (item.select && item.attr != null) {
tempLabel.add(item.attr);
}
}
tempLabel = tempLabel.toSet().toList();
labels = Utils.listToStringEnglish(tempLabel);
pageStateListShow = PageState.Success;
}
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
pageStateGuestInfo = PageState.ConnectivityTimeOut;
}
notifyListeners();
}
//全选按钮执行“全选”
addAll() async {
//把数据状态全部改成true,即选中状态
... ... @@ -1115,7 +1181,7 @@ class CustomerProvider extends ChangeNotifier {
addData(int index) {
// userHistorys[index].select = true;
selectCustomerSeller.add(customerBySellerList[index]);
labelsValueMy();
labelsValue();
notifyListeners();
}
... ... @@ -1124,7 +1190,7 @@ class CustomerProvider extends ChangeNotifier {
userHistorys[index].select = false;
selectCustomerSeller.removeWhere(
(element) => element.gid == customerBySellerList[index].gid);
labelsValueMy();
labelsValue();
notifyListeners();
}
... ... @@ -1170,6 +1236,33 @@ class CustomerProvider extends ChangeNotifier {
pageState = PageState.Empty;
} else {
pageState = PageState.Success;
List<String> idList = [];
for (int i = 0; i < customerBySellerList.length; i++) {
CustomerBySellerSunModel item = customerBySellerList[i];
idList.add(item.gid);
for (CustomerBySellerSunModel value in selectCustomerSeller) {
if (value.gid == item.gid) {
item.select = true; //原来选中的继续保持选中
}
}
if (item.rname != null) {
item.pinyin =
PinyinHelper.getPinyin(item.rname).replaceAll(' ', '');
}
customerBySellerList[i] = item;
}
// 把选中的列表,剔除掉现在结果里没有的
List<CustomerBySellerSunModel> temp = [];
for (CustomerBySellerSunModel value in selectCustomerSeller) {
if (idList.contains(value.gid)) {
temp.add(value);
}
}
selectCustomerSeller = temp; //把选中的列表,剔除掉现在结果里没有的
getCheckValue();
//对于以前有选中的数据,接口请求后,继续赋值
for (int i = 0; i < customerBySellerList.length; i++) {
CustomerBySellerSunModel item = customerBySellerList[i];
// item.pinyinFirst = '';
... ... @@ -1196,34 +1289,6 @@ class CustomerProvider extends ChangeNotifier {
customerBySellerList[i] = item;
}
// userHistorysShow = userHistorys; //全部客户列表信息
// userHistorysShowHuoyue = [];
// userHistorysShowChenshui = [];
// userHistorysShowLiushi = [];
// for (CustomerListSunModel item in userHistorysShow) {
// if (item.attr == '活跃') {
// userHistorysShowHuoyue.add(item);
// } else if (item.attr == '沉睡') {
// userHistorysShowChenshui.add(item);
// } else if (item.attr == '流失') {
// userHistorysShowLiushi.add(item);
// }
// }
// if (userHistorysShowHuoyue.length > 0) {
// pageStateHuoyue = PageState.Success;
// } else {
// pageStateHuoyue = PageState.Empty;
// }
// if (userHistorysShowChenshui.length > 0) {
// pageStateChenshui = PageState.Success;
// } else {
// pageStateChenshui = PageState.Empty;
// }
// if (userHistorysShowLiushi.length > 0) {
// pageStateLiushi = PageState.Success;
// } else {
// pageStateLiushi = PageState.Empty;
// }
handleList(customerBySellerList, needRefresh: true);
}
... ... @@ -1440,7 +1505,8 @@ class CustomerProvider extends ChangeNotifier {
}
// 商家创建营销
createMarketingBySeller(BuildContext context, Map<String, String> params,
Future<bool> createMarketingBySeller(
BuildContext context, Map<String, String> params,
{bool showLoading = false}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(
... ... @@ -1454,13 +1520,17 @@ class CustomerProvider extends ChangeNotifier {
if (baseResp != null && baseResp.code == Constant.status_success) {
// guestReserveSunModel =
// GuestReserveModel.fromJson(baseResp.responseData).data;
notifyListeners();
if (baseResp.data != null &&
baseResp.data['id'] != '' &&
baseResp.data['id'] != null) {
return true;
}
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
}
notifyListeners();
return false;
}
// 商家营销列表
... ... @@ -1488,9 +1558,13 @@ class CustomerProvider extends ChangeNotifier {
notifyListeners();
});
if (baseResp != null && baseResp.code == Constant.status_success) {
pageStateMarketingRecord = PageState.Success;
marketingBySellerSunModel =
MarketingBySellerModel.fromJson(baseResp.responseData).data;
if (marketingBySellerSunModel.length == 0) {
pageStateMarketingRecord = PageState.Empty;
} else {
pageStateMarketingRecord = PageState.Success;
}
notifyListeners();
} else {
if (baseResp != null) {
... ...
... ... @@ -541,10 +541,10 @@ class NavigatorUtil {
/// 客情列表
static Future<dynamic> goCustomerListPage(
BuildContext context, FromPage fromPage,
BuildContext context, FromPage fromPage, String uid,
{replace = false, bool needBtn = false, String index = '0'}) {
return _navigateTo(context,
"${Routes.customer_list_page}?fromPage=${FluroConvertUtils.enumToString(fromPage)}&index=$index",
"${Routes.customer_list_page}?fromPage=${FluroConvertUtils.enumToString(fromPage)}&index=$index&uid=$uid",
replace: replace);
}
... ... @@ -598,11 +598,12 @@ class NavigatorUtil {
static Future<dynamic> goCustomerDetailPage(
BuildContext context,
CustomerBySellerSunModel userHistoryEntity,
FromPage fromPage, {
FromPage fromPage,
String nickName, {
replace = false,
}) {
return _navigateTo(context,
"${Routes.customer_detail_page}?userHistoryEntity=${FluroConvertUtils.object2string(userHistoryEntity)}&fromPage=${FluroConvertUtils.enumToString(fromPage)}",
"${Routes.customer_detail_page}?userHistoryEntity=${FluroConvertUtils.object2string(userHistoryEntity)}&fromPage=${FluroConvertUtils.enumToString(fromPage)}&nickName=${Uri.encodeComponent(nickName)}",
replace: replace);
}
... ... @@ -689,9 +690,10 @@ class NavigatorUtil {
replace = false,
SelfList selfList,
FromPage fromPage,
String homeGid = '',
}) {
return _navigateTo(context,
"${Routes.my_make_marketing_page}?selfList=${FluroConvertUtils.object2string(selfList)}&fromPage=${FluroConvertUtils.enumToString(fromPage)}",
"${Routes.my_make_marketing_page}?selfList=${FluroConvertUtils.object2string(selfList)}&fromPage=${FluroConvertUtils.enumToString(fromPage)}&homeGid=$homeGid",
replace: replace);
}
... ...
... ... @@ -877,9 +877,11 @@ var customerListPageHandle = new Handler(
print(fromPage);
String index = params["index"].first;
String uid = params["uid"].first;
return ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(),
child: CustomerListPage(fromPage: fromPage, index: index));
child: CustomerListPage(fromPage: fromPage, index: index, uidStr: uid));
});
///仅供展示的客情列表
... ... @@ -1007,9 +1009,10 @@ var myMakeMarkingPageHandle = new Handler(
child: MyMakeMarkingPage(selfList: selfList, fromPage: fromPage));
}
String homeGid = params["homeGid"].first;
return ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(),
child: MyMakeMarkingPage(fromPage: fromPage));
child: MyMakeMarkingPage(fromPage: fromPage, homeGid: homeGid));
});
///我的创建营销 ---- 完成全店营销
... ... @@ -1037,12 +1040,14 @@ var customerDetailPageHandle = new Handler(
FromPage fromPage = FluroConvertUtils.enumFromString<FromPage>(
FromPage.values, params["fromPage"].first);
print(fromPage);
String nickName = params["nickName"].first;
return ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(),
child: CustomerDetailPage(
userHistoryEntity: userHistoryEntity,
fromPage: fromPage,
));
userHistoryEntity: userHistoryEntity,
fromPage: fromPage,
nickName: nickName));
});
///我的客户详情
... ...
... ... @@ -2472,6 +2472,8 @@ class DialogUtil {
children: [
InkWell(
onTap: () {
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
if (gongli) {
return;
}
... ... @@ -2521,6 +2523,8 @@ class DialogUtil {
)),
InkWell(
onTap: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
if (!gongli) {
return;
}
... ... @@ -2569,6 +2573,8 @@ class DialogUtil {
HEmptyView(30),
InkWell(
onTap: () {
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
incrementCounterYear(
context,
gongli,
... ... @@ -2621,6 +2627,8 @@ class DialogUtil {
HEmptyView(10),
InkWell(
onTap: () {
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
incrementCounterMonth(
context,
gongli,
... ... @@ -2695,6 +2703,8 @@ class DialogUtil {
HEmptyView(10),
InkWell(
onTap: () {
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
incrementCounterDay(
context,
gongli,
... ...
... ... @@ -145,7 +145,6 @@ class Utils {
} else {
date = datestr;
}
return date;
// if (delta < 12 * 4 * ONE_WEEK) {
// num months = toMonths(delta);
... ... @@ -155,6 +154,7 @@ class Utils {
// return (years <= 0 ? 1 : years).toInt().toString() + ONE_YEAR_AGO;
// }
}
return date;
}
static num toSeconds(num date) {
... ... @@ -1224,6 +1224,22 @@ class Utils {
return result.toString();
}
static String listToStringEnglish1(List<dynamic> list) {
if (list == null) {
return null;
}
String result;
list.forEach((string) {
if (result == null) {
result = string;
} else {
result = '$result,$string';
}
});
return result.toString();
}
static String listToStringEnglish(List<String> list) {
if (list == null) {
return null;
... ...