Commit b1b58d2a8706cd3c9d791469ec04ede3bd3cbe5a

Authored by wdn127929
1 parent 7197d1c8

可变模版

... ... @@ -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 {
... ...