Showing
1 changed file
with
54 additions
and
33 deletions
| @@ -43,6 +43,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -43,6 +43,8 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 43 | 43 | ||
| 44 | String smsSelectValue = ''; | 44 | String smsSelectValue = ''; |
| 45 | 45 | ||
| 46 | + int _cursorPosition = 0; | ||
| 47 | + | ||
| 46 | @override | 48 | @override |
| 47 | void initState() { | 49 | void initState() { |
| 48 | // TODO: implement initState | 50 | // TODO: implement initState |
| @@ -146,7 +148,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -146,7 +148,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 146 | Map<String, String> params = { | 148 | Map<String, String> params = { |
| 147 | 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid, | 149 | 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid, |
| 148 | 'sms_code': smsSelectValue, | 150 | 'sms_code': smsSelectValue, |
| 149 | - 'bookinginfo': text, | 151 | + 'bookinginfo': text.startsWith('\n') ? text : '\n' + text, |
| 150 | }; | 152 | }; |
| 151 | 153 | ||
| 152 | bool success = await marketingCenterProvider | 154 | bool success = await marketingCenterProvider |
| @@ -221,6 +223,10 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -221,6 +223,10 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 221 | List<Widget> data = []; | 223 | List<Widget> data = []; |
| 222 | for (var i = 0; i < temData.length; i++) { | 224 | for (var i = 0; i < temData.length; i++) { |
| 223 | data.add(btnItem(temData[i].temp, temData[i].select, onTap: () { | 225 | data.add(btnItem(temData[i].temp, temData[i].select, onTap: () { |
| 226 | + if (!canChange) { | ||
| 227 | + //从固定模版变更过来的,清空文本框内容 | ||
| 228 | + controller.text = ''; | ||
| 229 | + } | ||
| 224 | canChange = true; | 230 | canChange = true; |
| 225 | marketingCenterProvider.saiYouYunchangedData.forEach((element) { | 231 | marketingCenterProvider.saiYouYunchangedData.forEach((element) { |
| 226 | element.select = false; | 232 | element.select = false; |
| @@ -229,7 +235,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -229,7 +235,7 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 229 | contentChangeStart = temData[i].content.templateParam; | 235 | contentChangeStart = temData[i].content.templateParam; |
| 230 | temData[i].select = true; | 236 | temData[i].select = true; |
| 231 | smsSelectValue = temData[i].temp; | 237 | smsSelectValue = temData[i].temp; |
| 232 | - controller.text = ''; | 238 | + |
| 233 | // controller.text = temData[i].content.templateCode; | 239 | // controller.text = temData[i].content.templateCode; |
| 234 | marketingCenterProvider.saiYouYunFixedData.forEach((element) { | 240 | marketingCenterProvider.saiYouYunFixedData.forEach((element) { |
| 235 | element.select = false; | 241 | element.select = false; |
| @@ -250,13 +256,26 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -250,13 +256,26 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 250 | onTap: () { | 256 | onTap: () { |
| 251 | marketingCenterProvider.smsChangeFieldData[i].times++; | 257 | marketingCenterProvider.smsChangeFieldData[i].times++; |
| 252 | print(controller.text); | 258 | print(controller.text); |
| 253 | - controller.text += marketingCenterProvider.smsChangeFieldData[i].show; | ||
| 254 | - // setState(() { | ||
| 255 | - // contentChangeStart += | ||
| 256 | - // marketingCenterProvider.smsChangeFieldData[i].name + '\n'; | ||
| 257 | - // }); | ||
| 258 | 259 | ||
| 259 | - // 在光标出插入内容 | 260 | + // 获取当前光标位置 |
| 261 | + int cursorPosition = _cursorPosition; | ||
| 262 | + | ||
| 263 | + // 插入文本 | ||
| 264 | + controller.text = controller.text.substring(0, cursorPosition) + | ||
| 265 | + marketingCenterProvider.smsChangeFieldData[i].show + | ||
| 266 | + controller.text.substring(cursorPosition); | ||
| 267 | + | ||
| 268 | + print(controller.text); | ||
| 269 | + | ||
| 270 | + // 设置新的光标位置 | ||
| 271 | + controller.selection = TextSelection.fromPosition(TextPosition( | ||
| 272 | + offset: cursorPosition + | ||
| 273 | + marketingCenterProvider.smsChangeFieldData[i].show.length, | ||
| 274 | + affinity: TextAffinity.downstream)); | ||
| 275 | + setState(() { | ||
| 276 | + _cursorPosition = controller.selection.baseOffset; | ||
| 277 | + // cursorPosition = _cursorPosition; | ||
| 278 | + }); | ||
| 260 | })); | 279 | })); |
| 261 | } | 280 | } |
| 262 | return data; | 281 | return data; |
| @@ -380,13 +399,16 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -380,13 +399,16 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 380 | ), | 399 | ), |
| 381 | onChanged: (value) { | 400 | onChanged: (value) { |
| 382 | //添加的代码:光标一直在文本框后面 | 401 | //添加的代码:光标一直在文本框后面 |
| 383 | - controller.value = TextEditingValue( | ||
| 384 | - text: controller.text, | ||
| 385 | - selection: | ||
| 386 | - TextSelection.fromPosition(TextPosition( | ||
| 387 | - affinity: TextAffinity.downstream, | ||
| 388 | - offset: controller.text.length, | ||
| 389 | - ))); | 402 | + // controller.value = TextEditingValue( |
| 403 | + // text: controller.text, | ||
| 404 | + // selection: | ||
| 405 | + // TextSelection.fromPosition(TextPosition( | ||
| 406 | + // affinity: TextAffinity.downstream, | ||
| 407 | + // offset: controller.text.length, | ||
| 408 | + // ))); | ||
| 409 | + setState(() { | ||
| 410 | + _cursorPosition = controller.selection.baseOffset; | ||
| 411 | + }); | ||
| 390 | }, | 412 | }, |
| 391 | onEditingComplete: () { | 413 | onEditingComplete: () { |
| 392 | FocusScope.of(context) | 414 | FocusScope.of(context) |
| @@ -474,11 +496,9 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -474,11 +496,9 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 474 | return; | 496 | return; |
| 475 | } | 497 | } |
| 476 | 498 | ||
| 477 | - bool canRequest = true; | ||
| 478 | - outerloop: | ||
| 479 | - marketingCenterProvider.smsChangeFieldData | ||
| 480 | - .forEach((element) { | ||
| 481 | - innerloop: | 499 | + bool canRequest = marketingCenterProvider |
| 500 | + .smsChangeFieldData | ||
| 501 | + .every((element) { | ||
| 482 | if (element.times > 0) { | 502 | if (element.times > 0) { |
| 483 | int count = | 503 | int count = |
| 484 | controller.text.split(element.show).length - | 504 | controller.text.split(element.show).length - |
| @@ -486,23 +506,24 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | @@ -486,23 +506,24 @@ class _SmsTemplateSettingPageState extends State<SmsTemplateSettingPage> { | ||
| 486 | 506 | ||
| 487 | if (count != element.times) { | 507 | if (count != element.times) { |
| 488 | Utils.showToast('${element.show}不符合规范,请检查'); | 508 | Utils.showToast('${element.show}不符合规范,请检查'); |
| 489 | - canRequest = false; | ||
| 490 | - break innerloop; | 509 | + |
| 510 | + return false; | ||
| 491 | } | 511 | } |
| 492 | } | 512 | } |
| 513 | + return true; | ||
| 493 | }); | 514 | }); |
| 494 | - print(controller.text); | ||
| 495 | - String str = controller.text; | ||
| 496 | - marketingCenterProvider.smsChangeFieldData | ||
| 497 | - .forEach((element) { | ||
| 498 | - if (str.contains(element.show)) { | ||
| 499 | - str = str.replaceAll(element.show, element.code); | ||
| 500 | - } | ||
| 501 | - }); | 515 | + |
| 502 | if (canRequest) { | 516 | if (canRequest) { |
| 503 | - print(controller.text); | ||
| 504 | - // | ||
| 505 | - _saveSaiYouYunChange(str); | 517 | + String tempStr = controller.text; |
| 518 | + marketingCenterProvider.smsChangeFieldData | ||
| 519 | + .forEach((element) { | ||
| 520 | + if (tempStr.contains(element.show)) { | ||
| 521 | + tempStr = tempStr.replaceAll( | ||
| 522 | + element.show, element.code); | ||
| 523 | + } | ||
| 524 | + }); | ||
| 525 | + | ||
| 526 | + _saveSaiYouYunChange(tempStr); | ||
| 506 | } | 527 | } |
| 507 | print('fffff'); | 528 | print('fffff'); |
| 508 | } else { | 529 | } else { |
-
Please register or login to post a comment