|
...
|
...
|
@@ -43,6 +43,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
|
|
|
|
String smsSelectValue = '';
|
|
|
|
|
|
|
|
int _cursorPosition = 0;
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
// TODO: implement initState
|
|
...
|
...
|
@@ -146,7 +148,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
Map<String, String> params = {
|
|
|
|
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
|
|
|
|
'sms_code': smsSelectValue,
|
|
|
|
'bookinginfo': text,
|
|
|
|
'bookinginfo': text.startsWith('\n') ? text : '\n' + text,
|
|
|
|
};
|
|
|
|
|
|
|
|
bool success = await marketingCenterProvider
|
|
...
|
...
|
@@ -221,6 +223,10 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
List<Widget> data = [];
|
|
|
|
for (var i = 0; i < temData.length; i++) {
|
|
|
|
data.add(btnItem(temData[i].temp, temData[i].select, onTap: () {
|
|
|
|
if (!canChange) {
|
|
|
|
//从固定模版变更过来的,清空文本框内容
|
|
|
|
controller.text = '';
|
|
|
|
}
|
|
|
|
canChange = true;
|
|
|
|
marketingCenterProvider.saiYouYunchangedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
...
|
...
|
@@ -229,7 +235,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
contentChangeStart = temData[i].content.templateParam;
|
|
|
|
temData[i].select = true;
|
|
|
|
smsSelectValue = temData[i].temp;
|
|
|
|
controller.text = '';
|
|
|
|
|
|
|
|
// controller.text = temData[i].content.templateCode;
|
|
|
|
marketingCenterProvider.saiYouYunFixedData.forEach((element) {
|
|
|
|
element.select = false;
|
|
...
|
...
|
@@ -250,13 +256,26 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
onTap: () {
|
|
|
|
marketingCenterProvider.smsChangeFieldData[i].times++;
|
|
|
|
print(controller.text);
|
|
|
|
controller.text += marketingCenterProvider.smsChangeFieldData[i].show;
|
|
|
|
// setState(() {
|
|
|
|
// contentChangeStart +=
|
|
|
|
// marketingCenterProvider.smsChangeFieldData[i].name + '\n';
|
|
|
|
// });
|
|
|
|
|
|
|
|
// 在光标出插入内容
|
|
|
|
// 获取当前光标位置
|
|
|
|
int cursorPosition = _cursorPosition;
|
|
|
|
|
|
|
|
// 插入文本
|
|
|
|
controller.text = controller.text.substring(0, cursorPosition) +
|
|
|
|
marketingCenterProvider.smsChangeFieldData[i].show +
|
|
|
|
controller.text.substring(cursorPosition);
|
|
|
|
|
|
|
|
print(controller.text);
|
|
|
|
|
|
|
|
// 设置新的光标位置
|
|
|
|
controller.selection = TextSelection.fromPosition(TextPosition(
|
|
|
|
offset: cursorPosition +
|
|
|
|
marketingCenterProvider.smsChangeFieldData[i].show.length,
|
|
|
|
affinity: TextAffinity.downstream));
|
|
|
|
setState(() {
|
|
|
|
_cursorPosition = controller.selection.baseOffset;
|
|
|
|
// cursorPosition = _cursorPosition;
|
|
|
|
});
|
|
|
|
}));
|
|
|
|
}
|
|
|
|
return data;
|
|
...
|
...
|
@@ -380,13 +399,16 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
),
|
|
|
|
onChanged: (value) {
|
|
|
|
//添加的代码:光标一直在文本框后面
|
|
|
|
controller.value = TextEditingValue(
|
|
|
|
text: controller.text,
|
|
|
|
selection:
|
|
|
|
TextSelection.fromPosition(TextPosition(
|
|
|
|
affinity: TextAffinity.downstream,
|
|
|
|
offset: controller.text.length,
|
|
|
|
)));
|
|
|
|
// controller.value = TextEditingValue(
|
|
|
|
// text: controller.text,
|
|
|
|
// selection:
|
|
|
|
// TextSelection.fromPosition(TextPosition(
|
|
|
|
// affinity: TextAffinity.downstream,
|
|
|
|
// offset: controller.text.length,
|
|
|
|
// )));
|
|
|
|
setState(() {
|
|
|
|
_cursorPosition = controller.selection.baseOffset;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
onEditingComplete: () {
|
|
|
|
FocusScope.of(context)
|
|
...
|
...
|
@@ -474,11 +496,9 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool canRequest = true;
|
|
|
|
outerloop:
|
|
|
|
marketingCenterProvider.smsChangeFieldData
|
|
|
|
.forEach((element) {
|
|
|
|
innerloop:
|
|
|
|
bool canRequest = marketingCenterProvider
|
|
|
|
.smsChangeFieldData
|
|
|
|
.every((element) {
|
|
|
|
if (element.times > 0) {
|
|
|
|
int count =
|
|
|
|
controller.text.split(element.show).length -
|
|
...
|
...
|
@@ -486,23 +506,24 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { |
|
|
|
|
|
|
|
if (count != element.times) {
|
|
|
|
Utils.showToast('${element.show}不符合规范,请检查');
|
|
|
|
canRequest = false;
|
|
|
|
break innerloop;
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
});
|
|
|
|
print(controller.text);
|
|
|
|
String str = controller.text;
|
|
|
|
marketingCenterProvider.smsChangeFieldData
|
|
|
|
.forEach((element) {
|
|
|
|
if (str.contains(element.show)) {
|
|
|
|
str = str.replaceAll(element.show, element.code);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
if (canRequest) {
|
|
|
|
print(controller.text);
|
|
|
|
//
|
|
|
|
_saveSaiYouYunChange(str);
|
|
|
|
String tempStr = controller.text;
|
|
|
|
marketingCenterProvider.smsChangeFieldData
|
|
|
|
.forEach((element) {
|
|
|
|
if (tempStr.contains(element.show)) {
|
|
|
|
tempStr = tempStr.replaceAll(
|
|
|
|
element.show, element.code);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
_saveSaiYouYunChange(tempStr);
|
|
|
|
}
|
|
|
|
print('fffff');
|
|
|
|
} else {
|
...
|
...
|
|