Commit a5e503b9656594ad2124b02eb2e1d66d2fd75da2

Authored by weixin_45529955
2 parents e78ab5ed 124d0473

。。。

... ... @@ -20,19 +20,19 @@ if (flutterRoot == null) {
def flutterVersionCode = "701"
def flutterVersionCode = "702"
if (flutterVersionCode == null) {
flutterVersionCode = '701'
flutterVersionCode = '702'
}
def flutterVersionName = "7.0.1"
def flutterVersionName = "7.0.2"
if (flutterVersionName == null) {
flutterVersionName = '7.0.1'
flutterVersionName = '7.0.2'
}
... ... @@ -83,8 +83,8 @@ android {
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
// abiFilters 'arm64-v8a', 'x86_64', 'mips64' //魅族64位,不支持32位
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64','x86', 'mips', 'mips64'
abiFilters 'arm64-v8a', 'x86_64', 'mips64' //魅族64位,不支持32位
// abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64','x86', 'mips', 'mips64'
}
lintOptions {
... ...
... ... @@ -355,10 +355,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
... ... @@ -372,10 +376,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
... ... @@ -527,7 +535,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 7000;
CURRENT_PROJECT_VERSION = 703;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
... ... @@ -537,7 +545,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 7.0.0;
MARKETING_VERSION = 7.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
... ... @@ -712,7 +720,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 7000;
CURRENT_PROJECT_VERSION = 703;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
... ... @@ -722,7 +730,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 7.0.0;
MARKETING_VERSION = 7.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
... ... @@ -740,7 +748,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 7000;
CURRENT_PROJECT_VERSION = 703;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
... ... @@ -750,7 +758,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 7.0.0;
MARKETING_VERSION = 7.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
... ...
... ... @@ -82,6 +82,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> {
} else {
NavigatorUtil.goCustomerStatisticsPage(context);
}
} else {
Utils.showToast('您还没有操作权限,请联系管理员');
}
} else {
if (Utils.getAuthority(context, '我的客情')) {
... ... @@ -96,6 +98,8 @@ class _CustomerHomePageState extends State<CustomerHomePage> {
} else {
NavigatorUtil.goMyCustomerPage(context);
}
} else {
Utils.showToast('您还没有操作权限,请联系管理员');
}
}
},
... ...
import 'package:flutter/material.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/screen_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
/**
* 沉睡/流失客户唤醒营销
*/
class AwakeningMarketingPage extends StatefulWidget {
const AwakeningMarketingPage({super.key});
@override
State<AwakeningMarketingPage> createState() => _AwakeningMarketingPageState();
}
class _AwakeningMarketingPageState extends State<AwakeningMarketingPage> {
bool isRemindSleep = false;
bool isSendSleep = false;
bool isRemindLeave = false;
bool isSendLeave = false;
Widget _itemSmsWidget(bool isSelect, String title,
{GestureTapCallback? onTap}) {
return Column(
children: [
InkWell(
onTap: onTap,
child: Padding(
padding: EdgeInsets.only(
left: w(16), top: w(14), bottom: w(3), right: w(12)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
title,
style: TextStyle(
color: MyColours.color_515151, fontSize: font(14)),
),
Spacer(),
Container(
margin: EdgeInsets.symmetric(
horizontal: w(7), vertical: w(4)),
child: Image.asset(
Utils.getImgPath(isSelect ? 'swich_on' : 'swich_off'),
width: w(44),
),
)
// RoundButton(
// text: '预览',
// gradientStart: MyColours.color_ffffff,
// gradientEnd: MyColours.color_ffffff,
// borderColor: MyColours.color_438E93,
// textColor: MyColours.color_438E93,
// radius: ScreenUtil().setWidth(22),
// fontSize: 24,
// width: w(72),
// height: ScreenUtil().setWidth(44),
// isBold: true,
// onPressed: () {
// NavigatorUtil.goMarkingPreviewPage(context);
// },
// ),
]))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
],
);
}
Widget _title(String title) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.symmetric(vertical: w(8)),
child: Text(
title,
style: TextStyle(color: MyColours.color_515151, fontSize: font(16)),
),
),
MyDivider(double.infinity, w(0.5), color: MyColours.color_E7E7E7),
],
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('沉睡/流失客户唤醒营销'),
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Padding(
padding: EdgeInsets.only(left: w(16)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_title('活跃客户转沉睡'),
_itemSmsWidget(isRemindSleep, '进入沉睡状态时给经理发送提醒消息',
onTap: () {
setState(() {
isRemindSleep = !isRemindSleep;
});
// _setCancelSMS();
}),
_itemSmsWidget(isSendSleep, '进入沉睡状态时给客户发送优惠', onTap: () {
setState(() {
isSendSleep = !isSendSleep;
});
// _setNotice();
}),
VEmptyView(28),
InkWell(
onTap: () {
NavigatorUtil.goAwakeningSendSettingPage(context);
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
top: w(14),
bottom: w(10),
right: w(12)),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'客户沉睡发放优惠设置',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
Spacer(),
// HEmptyView(20),
// Expanded(
// child: Text(
// smsTemplate,
// textAlign: TextAlign.right,
// style: TextStyle(
// color: MyColours.color_515151,
// fontSize: font(14)),
// )),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(11), vertical: w(4)),
child: Image.asset(
"assets/arrow_right_new.png",
width: w(9),
height: w(16),
),
)
]))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
// _itemSmsWidget(marketingSms, '使用店铺手机发送营销短信',
// onTap: () {
// setState(() {
// marketingSms = !marketingSms;
// });
// }),
VEmptyView(24),
_title('沉睡客户转流失'),
_itemSmsWidget(isRemindLeave, '进入流失状态时给经理发送提醒消息',
onTap: () {
setState(() {
isRemindLeave = !isRemindLeave;
});
// _setCancelSMS();
}),
_itemSmsWidget(isSendLeave, '进入流失状态时给客户发送优惠', onTap: () {
setState(() {
isSendLeave = !isSendLeave;
});
// _setNotice();
}),
VEmptyView(28),
InkWell(
onTap: () {
NavigatorUtil.goAwakeningSendSettingPage(context);
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
top: w(14),
bottom: w(10),
right: w(12)),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'客户流失发放优惠设置',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
Spacer(),
// HEmptyView(20),
// Expanded(
// child: Text(
// smsTemplate,
// textAlign: TextAlign.right,
// style: TextStyle(
// color: MyColours.color_515151,
// fontSize: font(14)),
// )),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(11), vertical: w(4)),
child: Image.asset(
"assets/arrow_right_new.png",
width: w(9),
height: w(16),
),
)
]))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
// _itemSmsWidget(marketingSms, '使用店铺手机发送营销短信',
// onTap: () {
// setState(() {
// marketingSms = !marketingSms;
// });
// }),
VEmptyView(24),
],
)),
)),
// Container(
// color: MyColours.color_ffffff,
// padding: EdgeInsets.only(
// left: w(23), right: w(23), top: w(12), bottom: w(25)),
// child: Row(
// children: [
// // RoundButton(
// // text: '图文预览',
// // width: w(100),
// // gradientStart: MyColours.color_ffffff,
// // gradientEnd: MyColours.color_ffffff,
// // borderColor: MyColours.color_438E93,
// // radius: r(5),
// // fontSize: 32,
// // height: w(40),
// // textColor: MyColours.color_438E93,
// // isBold: true,
// // onPressed: () async {
// // // NavigatorUtil.goMarkingPreviewPage(context);
// // if (previewUrl == '') {
// // Utils.showToast('暂时没有可预览的图文信息');
// // return;
// // }
// // //
// // _showPhotoView(context, 0, [previewUrl]);
// // }),
// // HEmptyView(30),
// Expanded(
// child: RoundButton(
// text: '保存',
// gradientStart: MyColours.color_199095,
// gradientEnd: MyColours.color_199095,
// // borderColor: MyColours.color_999999,
// radius: r(5),
// fontSize: 32,
// height: w(40),
// isBold: true,
// onPressed: () async {
// //调用接口
// _setData();
// }))
// ],
// ))
],
));
}
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/provider/customer_making_provider.dart';
import 'package:one_key/provider/customer_provider.dart';
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/screen_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
/**
* 客户沉睡/流失发放优惠设置
*/
typedef ClickCallback = void Function(dynamic value);
class AwakeningSendSettingPage extends StatefulWidget {
const AwakeningSendSettingPage({super.key});
@override
State<AwakeningSendSettingPage> createState() =>
_AwakeningSendSettingPageState();
}
class _AwakeningSendSettingPageState extends State<AwakeningSendSettingPage> {
TextEditingController moneyC = TextEditingController();
FocusNode moneyNode = FocusNode();
late CustomerMakingProvider customerMakingProvider;
late CustomerProvider customerProvider;
List<String?> couponList = [];
///消费券
_couponNetworkData({bool isShowLoading = true}) async {
// customerMakingProvider.couponSelectIndex = 0;
Map<String, String?> params = {
"uid": Provider.of<UserModel>(context, listen: false).user!.openid,
'status': '1'
};
await customerProvider.getCustomerSelectActivityNew(context, params,
isShowLoading: isShowLoading);
//此人已经新建好券
if (customerProvider.couponListSelect!.length > 0) {
// couponProvider.initCouponSelect(context);
couponList = [];
for (int i = 0; i < customerProvider.couponListSelect!.length; i++) {
couponList.add(customerProvider.couponListSelect![i].aname);
}
customerProvider.notifyListeners();
} else {
//没有新建的优惠券
}
}
List<Widget> _templateUI() {
List<Widget> templates = [];
customerProvider.marketingSmsData!.forEach((element) {
templates.add(InkWell(
onTap: () {
//选择模版.默认数据
String newStr = '';
UserModel userModel =
Provider.of<UserModel>(context, listen: false);
newStr = element.content!
.replaceAll('{店铺名称}', userModel.user!.sellername!);
newStr =
newStr.replaceAll('{店铺电话号码}', userModel.user!.sellerphone!);
newStr =
newStr.replaceAll('{经理名称}', userModel.user!.nickName ?? '');
newStr = newStr.replaceAll('{礼品领取链接}', '');
customerMakingProvider.controller.text = newStr;
},
child: Container(
padding: EdgeInsets.symmetric(horizontal: w(10), vertical: w(5)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
color: MyColours.color_ffffff,
border: Border.all(width: w(1), color: MyColours.color_438E93)),
child: Text(
element.title!,
style: TextStyle(
color: MyColours.color_438E93,
fontSize: font(12),
fontWeight: FontWeight.bold),
),
)));
});
return templates;
}
_insertUrllink(String? link) {
// *************开始直接插入会报错***********还没有改
var cursorPos =
customerMakingProvider.controller.selection.base.offset; //获取到光标的在字符串的位置
if (cursorPos < 0) {
customerMakingProvider.controller.text += link!;
} else {
String textAfterCursor = customerMakingProvider.controller.text
.substring(cursorPos); //把字符串从光标的位置截取,光标后面的
String textBeforeCursor = customerMakingProvider.controller.text
.substring(0, cursorPos); //光标前面的字符串
customerMakingProvider.controller.text =
textBeforeCursor + link! + textAfterCursor; //把想要的插入的内容拼接在光标位置处
customerMakingProvider.controller.selection = TextSelection.collapsed(
offset: customerMakingProvider.controller.text.length);
}
}
_buttonChoose(String title, ClickCallback callback) {
return InkWell(
onTap: () {
callback(title);
},
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(10)),
// height: ScreenUtil().setWidth(50),
// decoration: BoxDecoration(
// // border: Border.all(
// // width: ScreenUtil().setWidth(2),
// // color: MyColours.color_199095),
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10))),
child: Row(
children: [
Expanded(
child: Text(
title,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.right,
style: TextStyle(
color: title == '时间(选填)' ||
title == '(选填)' ||
title == '选择优惠' ||
!customerMakingProvider.isUse
? MyColours.color_999999
: MyColours.color_438E93,
fontSize: ScreenUtil().setWidth(30)),
)),
HEmptyView(20),
Image.asset(
// Utils.getImgPath(!customerMakingProvider.isUse
// ? 'c_arrow_down_unsel'
// : 'c_arrow_down'),
Utils.getImgPath('down_c'),
width: ScreenUtil().setWidth(44),
// height: ScreenUtil().setWidth(10),
)
],
)));
}
///短信内容编辑UI
Widget _contentWidget(String hintText) {
return Container(
// height: ScreenUtil().setWidth(380),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Align(
// alignment: Alignment.centerLeft,
// child: Text(
// title,
// textAlign: TextAlign.left,
// style: TextStyle(
// color: MyColours.color_515151,
// fontWeight: FontWeight.bold,
// fontSize: ScreenUtil().setSp(34)),
// )),
// VEmptyView(30),
TextField(
controller: customerMakingProvider.controller,
// keyboardType: TextInputType.numberWithOptions(decimal: true), //键盘类型,数字键盘
maxLines: 6,
// focusNode: _focusNode,
// maxLength: 50,
// maxLengthEnforced: true,
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_515151), //输入文本的样式
decoration: InputDecoration(
contentPadding: EdgeInsets.all(ScreenUtil().setWidth(30)),
hintText: hintText,
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(28),
),
fillColor: MyColours.color_ffffff,
// fillColor: Colors.red,
filled: true,
enabledBorder: OutlineInputBorder(
//未选中时候的颜色
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
borderSide: BorderSide(
color: MyColours.color_cccccc,
width: ScreenUtil().setWidth(2)),
),
focusedBorder: OutlineInputBorder(
//选中时外边框颜色
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(20)),
borderSide: BorderSide(
color: MyColours.app_main,
),
),
// border: OutlineInputBorder(
// borderRadius:
// BorderRadius.circular(ScreenUtil().setWidth(20)),
// borderSide: BorderSide(
// color: Colors.red, width: ScreenUtil().setWidth(2))),
),
onChanged: (value) {
setState(() {});
},
),
VEmptyView(20),
Container(
padding: EdgeInsets.only(left: w(10), right: w(10), bottom: w(10)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(5)),
border: Border.all(width: w(1), color: MyColours.color_F8F7F3)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: w(34),
alignment: Alignment.centerLeft,
child: Text(
'常用模版',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(12),
),
),
),
VEmptyView(10),
Padding(
padding: EdgeInsets.only(left: w(10)),
child: Wrap(
spacing: w(10),
runSpacing: w(5),
crossAxisAlignment: WrapCrossAlignment.center,
children: _templateUI(),
),
)
],
),
),
VEmptyView(50),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
InkWell(
onTap: () {
customerMakingProvider.controller.text = '';
setState(() {});
// NavigatorUtil.goMarketingRecordsDetailPage(context);
},
child: Padding(
padding: EdgeInsets.only(right: ScreenUtil().setWidth(20)),
child: Text('清空',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(30))),
)),
Text(
'共 ${customerMakingProvider.controller.text.length} 字 ${customerMakingProvider.selectCustomerSeller.length} 条短信',
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(26))),
],
),
Column(children: [
VEmptyView(30),
InkWell(
onTap: () {
customerMakingProvider.isUpdate =
!customerMakingProvider.isUpdate;
setState(() {});
},
child: Row(children: [
Image.asset(
Utils.getImgPath(customerMakingProvider.isUpdate
? 'f_select'
: 'f_select_not'),
width: ScreenUtil().setWidth(44)),
HEmptyView(15),
Text(
'客户经理不可修改短信内容',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(32),
color: MyColours.color_515151),
),
])),
VEmptyView(30),
]),
VEmptyView(30),
],
),
);
}
@override
Widget build(BuildContext context) {
customerProvider = Provider.of<CustomerProvider>(context, listen: true);
customerMakingProvider =
Provider.of<CustomerMakingProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('客户沉睡发放优惠设置'),
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(0.5), color: MyColours.color_E7E7E7))),
margin: EdgeInsets.only(left: w(16)),
padding: EdgeInsets.symmetric(vertical: w(13)),
child: Text('赠送优惠选择',
style: TextStyle(
color: MyColours.color_515151, fontSize: font(16))),
),
InkWell(
onTap: () {},
child: Container(
height: w(40),
margin: EdgeInsets.only(left: w(40)),
// padding: EdgeInsets.only(
// top: w(8),
// bottom: w(8),
// ),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: MyColours.color_E7E7E7, width: w(0.5)))),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Image.asset(
Utils.getImgPath(
true ? 'radio_back' : 'radio_back_un'),
width: ScreenUtil().setWidth(18),
),
HEmptyView(4),
Container(
// height: ScreenUtil().setWidth(40),
// color: Colors.red,
child: Text(
'发放消费金',
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(28)),
),
),
HEmptyView(4),
Container(
width: w(54),
height: w(26),
alignment: Alignment.center,
decoration: BoxDecoration(
border: Border.all(
color: MyColours.color_999999, width: w(1))),
child: TextField(
controller: moneyC,
textAlign: TextAlign.center,
textAlignVertical: TextAlignVertical.center,
maxLines: 1,
// //光标颜色
// cursorColor:
// widget.isSelect ? Colors.white : MyColours.color_199095,
//输入文本的样式
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp("[0-9.]")),
], // 限制输入为数字,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(20),
),
focusNode: moneyNode,
decoration: InputDecoration(
isCollapsed: true,
border: OutlineInputBorder(
borderSide: BorderSide.none),
hintText: '请输入数字',
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(20),
),
enabledBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
focusedBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
),
onChanged: (value) {},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
},
keyboardType: TextInputType.numberWithOptions()),
),
HEmptyView(10),
Text(
'元',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
],
),
),
),
InkWell(
onTap: () {},
child: Container(
height: w(40),
margin: EdgeInsets.only(left: w(40)),
// padding: EdgeInsets.only(
// top: w(8),
// bottom: w(8),
// ),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: MyColours.color_E7E7E7, width: w(0.5)))),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Image.asset(
Utils.getImgPath(
true ? 'radio_back' : 'radio_back_un'),
width: ScreenUtil().setWidth(18),
),
HEmptyView(4),
Container(
// height: ScreenUtil().setWidth(40),
// color: Colors.red,
child: Text(
'赠送优惠券',
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(28)),
),
),
HEmptyView(4),
Spacer(),
Row(children: [
Expanded(
child: Container(
height: ScreenUtil().setWidth(70),
// width: ScreenUtil().setWidth(130),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(10)),
color: MyColours.color_DBDBDB),
child: _buttonChoose(
customerMakingProvider.youhui!, (value) {
FocusScope.of(context)
.requestFocus(FocusNode()); //隐藏键盘
if (couponList == null ||
couponList.length == 0) {
Utils.showToast('暂无优惠券,请创建新优惠');
return;
}
DialogUtil.showSelectCusmanDialog(
context, couponList, (value) async {
if (value != null) {
if (customerProvider
.couponListSelect![value.first]
.urllink ==
null) {
//创建链接
//创建券的二维码
Map<String, String?> param = {
"sid": Provider.of<UserModel>(
context,
listen: false)
.user!
.sellerid,
"id": customerProvider
.couponListSelect![value.first]
.id,
};
dynamic object =
await customerProvider
.createActivityUrlLink(
context, param);
if (object is bool ||
object == null) {
//
} else {
//成功
setState(() {
customerMakingProvider
.couponSelectIndex =
value.first;
customerMakingProvider.youhui =
couponList[
customerMakingProvider
.couponSelectIndex!];
});
_insertUrllink(object);
}
} else {
// 直接使用
setState(() {
customerMakingProvider
.couponSelectIndex =
value.first;
customerMakingProvider.youhui =
couponList[
customerMakingProvider
.couponSelectIndex!];
});
_insertUrllink(customerProvider
.couponListSelect![value.first]
.urllink);
}
}
},
selecteds: customerMakingProvider
.couponSelectIndex ==
null
? []
: [
customerMakingProvider
.couponSelectIndex!
])
.then((value) {});
}))),
HEmptyView(40),
InkWell(
onTap: () async {
// NavigatorUtil.goMarketingRecordsDetailPage(context);
// bool? needRefresh =
// await NavigatorUtil.goCouponEditPage(context) ;
// print(needRefresh);
// if (needRefresh != null && needRefresh) {
// //刷新页面数据
// // _controller.callRefresh();
// _couponNetworkData();
// }
bool? needRefresh = await NavigatorUtil
.goCouponCreateSelectTypePage(
context,
);
if (needRefresh != null && needRefresh) {
//刷新页面数据
// _controller.callRefresh();
_couponNetworkData();
} else {
Utils.showToast('您没有相关权限!');
}
},
child: Text('创建新优惠',
style: TextStyle(
decoration: TextDecoration.underline,
color: MyColours.color_438E93,
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(28)))),
]),
],
),
),
),
_contentWidget(('输入营销短信内容'))
],
),
))
],
),
);
}
}
... ...
... ... @@ -375,7 +375,10 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
color: MyColours.color_E7E7E7)),
VEmptyView(24),
InkWell(
onTap: () {},
onTap: () {
//
NavigatorUtil.goAwakeningMarketingPage(context);
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
... ...
... ... @@ -619,7 +619,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
),
child: Text(
'${model.user!.nickName} ${model.user!.role_name} >',
maxLines: 1,
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
letterSpacing: 0.2,
... ... @@ -640,8 +640,9 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
],
)),
HEmptyView(22),
Spacer(),
Column(
// Spacer(),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.center,
children: [
... ... @@ -665,6 +666,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
// json.encode(user.toJson()));
// print(userModel.user);
setState(() {});
} else {
Utils.showToast('您还没有操作权限,请联系管理员!');
}
},
child: Container(
... ... @@ -672,7 +675,8 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
EdgeInsets.only(bottom: w(6)),
child: Text(
'${model.user!.sellername} >',
maxLines: 1,
maxLines: 2,
textAlign: TextAlign.end,
overflow: TextOverflow.ellipsis,
style: TextStyle(
letterSpacing: 0.2,
... ... @@ -723,7 +727,7 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
},
),
],
)
))
])),
),
Positioned(
... ...
... ... @@ -411,8 +411,11 @@ class MenuManageProvider extends ChangeNotifier {
.cast<CookbookCategorySunModel>();
categorySunModel!
.removeWhere((element) => element.classType == '1');
pageStateCategory = PageState.Success;
if (categorySunModel!.length == 0) {
pageStateCategory = PageState.Empty;
} else {
pageStateCategory = PageState.Success;
}
}
} else {
pageStateCategory = PageState.Empty;
... ...
... ... @@ -2653,4 +2653,22 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.integral_details_page}",
replace: replace);
}
//沉睡/流失客户唤醒营销
static Future<dynamic> goAwakeningMarketingPage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.awakening_marketing_page}",
replace: replace);
}
//沉睡/流失发放优惠设置
static Future<dynamic> goAwakeningSendSettingPage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.awakening_send_setting_page}",
replace: replace);
}
}
... ...
... ... @@ -104,6 +104,8 @@ import 'package:one_key/pages/my/feast_manage/feast_setmeal_manage_page.dart';
import 'package:one_key/pages/my/finance_manage/deposit_record_detail_page.dart';
import 'package:one_key/pages/my/finance_manage/record_home_classify_home_page.dart';
import 'package:one_key/pages/my/finance_manage/vip_record_detail_page.dart';
import 'package:one_key/pages/my/marketing_center/awakening_marketing_page.dart';
import 'package:one_key/pages/my/marketing_center/awakening_send_setting_page.dart';
import 'package:one_key/pages/my/marketing_center/book_notification/marking_interaction_page.dart';
import 'package:one_key/pages/my/marketing_center/recharge/recharge_edit_page.dart';
import 'package:one_key/pages/my/marketing_center/recharge/recharge_type_select_page.dart';
... ... @@ -161,6 +163,7 @@ import 'package:one_key/provider/choose_table_model.dart';
import 'package:one_key/provider/contant_show_model.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/customer_making_provider.dart';
import 'package:one_key/provider/customer_provider.dart';
import 'package:one_key/provider/menu_provider.dart';
import 'package:one_key/provider/my_model.dart';
... ... @@ -4547,6 +4550,22 @@ var integralDetailsPageHandle = new Handler(
create: (_) => CustomerProvider(), child: IntegralDetailsPage());
});
var awakeningMarketingPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(),
child: AwakeningMarketingPage());
});
var awakeningSendSettingPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<CustomerMakingProvider>(
create: (_) => CustomerMakingProvider(),
child: ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(),
child: AwakeningSendSettingPage()));
});
var customLabelPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<CustomerProvider>(
... ...
... ... @@ -475,6 +475,12 @@ class Routes {
static String integral_details_page = "/integral_details_page"; // 积分明细页面
static String awakening_marketing_page =
"/awakening_marketing_page"; // 沉睡/流失客户唤醒营销
static String awakening_send_setting_page =
"/awakening_send_setting_page"; // 沉睡/流失发放优惠设置
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
... ... @@ -904,5 +910,10 @@ class Routes {
router.define(consumer_details_page, handler: consumerDetailsPageHandle);
router.define(integral_details_page, handler: integralDetailsPageHandle);
router.define(awakening_marketing_page,
handler: awakeningMarketingPageHandle);
router.define(awakening_send_setting_page,
handler: awakeningSendSettingPageHandle);
}
}
... ...