|
...
|
...
|
@@ -3,11 +3,15 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
import 'package:one_key/provider/user_model.dart';
|
|
|
|
import 'package:one_key/res/colors.dart';
|
|
|
|
import 'package:one_key/utils/dialog_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';
|
|
|
|
|
|
|
|
import '../../../models/sai_you_yun_model.dart';
|
|
|
|
import '../../../provider/marketing_center_provider.dart';
|
|
|
|
import '../../../utils/event_bus.dart';
|
|
|
|
import '../../../utils/screen_util.dart';
|
|
|
|
import '../../../widgets/round_button.dart';
|
|
|
|
|
|
...
|
...
|
@@ -16,7 +20,8 @@ import '../../../widgets/round_button.dart'; |
|
|
|
*/
|
|
|
|
|
|
|
|
class SmsTemplateSettingPage extends StatefulWidget {
|
|
|
|
SmsTemplateSettingPage({Key key}) : super(key: key);
|
|
|
|
final String smsTemplate;
|
|
|
|
SmsTemplateSettingPage({Key key, this.smsTemplate}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_SmsTemplateSettingPageState createState() => _SmsTemplateSettingPageState();
|
|
...
|
...
|
@@ -27,45 +32,91 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
|
|
|
|
TextEditingController controller = TextEditingController();
|
|
|
|
|
|
|
|
bool canChange = true; //选择了可变模版
|
|
|
|
|
|
|
|
List<String> fixedData = ['SXIRf', 'Gld4X4', 'JzDjq2'];
|
|
|
|
List<String> changeableData = ['tqNH3', 'J72Nk', '6uZMW4'];
|
|
|
|
bool canChange = false; //选择了可变模版
|
|
|
|
|
|
|
|
List<String> btnData = ['店名', '仅包间名字', '小程序预订卡片'];
|
|
|
|
|
|
|
|
MarketingCenterProvider marketingCenterProvider;
|
|
|
|
|
|
|
|
String smsSelectValue = '';
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
// TODO: implement initState
|
|
|
|
super.initState();
|
|
|
|
|
|
|
|
smsSelectValue = widget.smsTemplate;
|
|
|
|
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
|
contentChangeStart =
|
|
|
|
'尊敬的贵宾,您好!\n诚挚感谢您选择${Provider.of<UserModel>(context, listen: false).user.sellername}用餐!\n';
|
|
|
|
_getSaiYouYunList();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
List<Widget> templateWidgets(String title, List<String> temData) {
|
|
|
|
_getSaiYouYunList() async {
|
|
|
|
await marketingCenterProvider.getSaiYouYunList(context);
|
|
|
|
if (widget.smsTemplate != null && widget.smsTemplate.length > 0) {
|
|
|
|
//默认选中
|
|
|
|
|
|
|
|
marketingCenterProvider.saiYouYunFixedData.forEach((element) {
|
|
|
|
if (element.temp == widget.smsTemplate) {
|
|
|
|
element.select = true;
|
|
|
|
controller.text = element.content;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
marketingCenterProvider.notifyListeners();
|
|
|
|
}
|
|
|
|
|
|
|
|
///设置店铺短信固定模版
|
|
|
|
Future<bool> _setTempleteSMS({bool isShowLoading = true}) async {
|
|
|
|
Map<String, String> params = {
|
|
|
|
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
|
|
|
|
'key': 'saiyouyun',
|
|
|
|
'value': smsSelectValue,
|
|
|
|
};
|
|
|
|
|
|
|
|
bool success = await marketingCenterProvider.setConfing(context, params,
|
|
|
|
needToast: false);
|
|
|
|
|
|
|
|
if (success) {
|
|
|
|
bus.emit('getDzSellerConf');
|
|
|
|
Utils.showToast('保存成功');
|
|
|
|
Navigator.pop(context);
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
List<Widget> templateWidgets(String title, List<SaiYouYunSunModel> temData) {
|
|
|
|
List<Widget> data = [];
|
|
|
|
for (var i = 0; i < temData.length; i++) {
|
|
|
|
data.add(btnItem(temData[i], onTap: () {
|
|
|
|
data.add(btnItem(temData[i].temp, temData[i].select, onTap: () {
|
|
|
|
if (title == '固定模版') {
|
|
|
|
canChange = false;
|
|
|
|
fixedData.forEach((element) {
|
|
|
|
// element.select = false;
|
|
|
|
marketingCenterProvider.saiYouYunFixedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
|
|
});
|
|
|
|
// i 的select = true;
|
|
|
|
changeableData.forEach((element) {
|
|
|
|
// element.select = false;
|
|
|
|
temData[i].select = true;
|
|
|
|
smsSelectValue = temData[i].temp;
|
|
|
|
controller.text = temData[i].content;
|
|
|
|
marketingCenterProvider.saiYouYunchangedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
canChange = true;
|
|
|
|
changeableData.forEach((element) {
|
|
|
|
// element.select = false;
|
|
|
|
marketingCenterProvider.saiYouYunchangedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
|
|
});
|
|
|
|
// i 的select = true;
|
|
|
|
fixedData.forEach((element) {
|
|
|
|
// element.select = false;
|
|
|
|
temData[i].select = true;
|
|
|
|
smsSelectValue = temData[i].temp;
|
|
|
|
controller.text = temData[i].content;
|
|
|
|
marketingCenterProvider.saiYouYunFixedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
setState(() {});
|
|
...
|
...
|
@@ -77,7 +128,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
List<Widget> btnWidgets(List<String> temData) {
|
|
|
|
List<Widget> data = [];
|
|
|
|
for (var i = 0; i < temData.length; i++) {
|
|
|
|
data.add(btnItem(temData[i], onTap: () {
|
|
|
|
data.add(btnItem(temData[i], true, onTap: () {
|
|
|
|
// setState(() {
|
|
|
|
// contentChangeStart += temData[i] + '\n';
|
|
|
|
// });
|
|
...
|
...
|
@@ -88,17 +139,18 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
return data;
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget btnItem(String title, {GestureTapCallback onTap}) {
|
|
|
|
Widget btnItem(String title, bool select, {GestureTapCallback onTap}) {
|
|
|
|
return InkWell(
|
|
|
|
onTap: onTap,
|
|
|
|
child: Container(
|
|
|
|
padding: EdgeInsets.all(w(3)),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: select ? MyColours.color_438E93 : MyColours.color_ffffff,
|
|
|
|
borderRadius: BorderRadius.circular(r(5)),
|
|
|
|
border: Border.all(width: w(1), color: MyColours.color_438E93)),
|
|
|
|
child: Text(title,
|
|
|
|
style: TextStyle(
|
|
|
|
color: MyColours.color_438E93,
|
|
|
|
color: select ? MyColours.color_ffffff : MyColours.color_438E93,
|
|
|
|
fontSize: font(12),
|
|
|
|
fontWeight: FontWeight.bold)),
|
|
|
|
),
|
|
...
|
...
|
@@ -123,7 +175,10 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
spacing: w(5),
|
|
|
|
runSpacing: w(5),
|
|
|
|
children: templateWidgets(
|
|
|
|
title, title == '固定模版' ? fixedData : changeableData),
|
|
|
|
title,
|
|
|
|
title == '固定模版'
|
|
|
|
? marketingCenterProvider.saiYouYunFixedData
|
|
|
|
: marketingCenterProvider.saiYouYunchangedData),
|
|
|
|
))
|
|
|
|
],
|
|
|
|
),
|
|
...
|
...
|
@@ -132,6 +187,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
marketingCenterProvider =
|
|
|
|
Provider.of<MarketingCenterProvider>(context, listen: true);
|
|
|
|
return Scaffold(
|
|
|
|
backgroundColor: MyColours.color_ffffff,
|
|
|
|
appBar: SystemAppBar('预订通知短信模板选择'),
|
|
...
|
...
|
@@ -143,7 +200,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
_templeteWidget('固定模版'),
|
|
|
|
_templeteWidget('可变模版'),
|
|
|
|
// _templeteWidget('可变模版'),
|
|
|
|
VEmptyView(10),
|
|
|
|
Container(
|
|
|
|
width: double.infinity,
|
|
...
|
...
|
@@ -156,13 +213,14 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
contentChangeStart,
|
|
|
|
style: TextStyle(
|
|
|
|
height: 1.5,
|
|
|
|
color: MyColours.color_66000000,
|
|
|
|
fontSize: font(14)),
|
|
|
|
),
|
|
|
|
if (canChange)
|
|
|
|
Text(
|
|
|
|
contentChangeStart,
|
|
|
|
style: TextStyle(
|
|
|
|
height: 1.5,
|
|
|
|
color: MyColours.color_66000000,
|
|
|
|
fontSize: font(14)),
|
|
|
|
),
|
|
|
|
TextField(
|
|
|
|
enabled: canChange,
|
|
|
|
controller: controller,
|
|
...
|
...
|
@@ -189,7 +247,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
decoration: InputDecoration(
|
|
|
|
border:
|
|
|
|
OutlineInputBorder(borderSide: BorderSide.none),
|
|
|
|
hintText: '以上内容为固定不可编辑,点击这里开始编辑短信内容',
|
|
|
|
hintText:
|
|
|
|
canChange ? '以上内容为固定不可编辑,点击这里开始编辑短信内容' : '请选择模版',
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: MyColours.color_999999,
|
|
|
|
fontSize: ScreenUtil().setSp(28),
|
|
...
|
...
|
@@ -207,14 +266,15 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
),
|
|
|
|
),
|
|
|
|
VEmptyView(10),
|
|
|
|
Container(
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(21)),
|
|
|
|
child: Wrap(
|
|
|
|
crossAxisAlignment: WrapCrossAlignment.start,
|
|
|
|
spacing: w(10),
|
|
|
|
runSpacing: w(10),
|
|
|
|
children: btnWidgets(btnData),
|
|
|
|
))
|
|
|
|
if (canChange)
|
|
|
|
Container(
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: w(21)),
|
|
|
|
child: Wrap(
|
|
|
|
crossAxisAlignment: WrapCrossAlignment.start,
|
|
|
|
spacing: w(10),
|
|
|
|
runSpacing: w(10),
|
|
|
|
children: btnWidgets(btnData),
|
|
|
|
))
|
|
|
|
],
|
|
|
|
),
|
|
|
|
)),
|
|
...
|
...
|
@@ -256,6 +316,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
fontSize: 32,
|
|
|
|
onPressed: () {
|
|
|
|
DialogUtil.cupertinoAlertDialog(context,
|
|
|
|
textAlign: TextAlign.left,
|
|
|
|
showlTitle: false,
|
|
|
|
content: canChange
|
|
|
|
? contentChangeStart + controller.text
|
|
|
|
: controller.text);
|
|
...
|
...
|
@@ -269,7 +331,13 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
radius: ScreenUtil().setWidth(14),
|
|
|
|
isBold: true,
|
|
|
|
fontSize: 32,
|
|
|
|
onPressed: () async {},
|
|
|
|
onPressed: () async {
|
|
|
|
if (smsSelectValue.length == 0) {
|
|
|
|
Utils.showToast('请选择模版类型');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
_setTempleteSMS();
|
|
|
|
},
|
|
|
|
),
|
|
|
|
)
|
|
|
|
],
|
...
|
...
|
|