Commit d9fcc5522266c88e31416cd0c0063df88450c7bc

Authored by 吴启风
2 parents 7c8ae103 a423aad7

Merge branch 'xy_phone'

ios/Runner/Wowgame/Classes/game_food/SubGameScene.cpp
... ... @@ -192,7 +192,7 @@ void SubGameScene::presentGameResumeLayer(){
192 192 buttonResume->setCascadeOpacityEnabled(true);
193 193 auto buttonTexturePath = "buttons/graphics/dark_green.png";
194 194 buttonResume->loadTextures(buttonTexturePath, buttonTexturePath, buttonTexturePath);
195   - auto buttonBg = cocos2d::Sprite::create("buttons/graphics/button_repeat.png");
  195 + auto buttonBg = cocos2d::Sprite::create("buttons/graphics/button_resume.png");
196 196 buttonResume->addChild(buttonBg);
197 197 buttonBg->setPosition(cocos2d::Vec2(buttonResume->getContentSize().width/2,buttonResume->getContentSize().height/2));
198 198 resumeLayer->addChild(buttonResume);
... ...
ios/Runner/Wowgame/Classes/game_toy/ToySubGameScene.cpp
... ... @@ -245,7 +245,7 @@ void ToySubGameScene::presentGameResumeLayer(){
245 245 buttonResume->setCascadeOpacityEnabled(true);
246 246 auto buttonTexturePath = "buttons/graphics/dark_green.png";
247 247 buttonResume->loadTextures(buttonTexturePath, buttonTexturePath, buttonTexturePath);
248   - auto buttonBg = cocos2d::Sprite::create("buttons/graphics/button_repeat.png");
  248 + auto buttonBg = cocos2d::Sprite::create("buttons/graphics/button_resume.png");
249 249 buttonResume->addChild(buttonBg);
250 250 buttonBg->setPosition(cocos2d::Vec2(buttonResume->getContentSize().width/2,buttonResume->getContentSize().height/2));
251 251 resumeLayer->addChild(buttonResume);
... ...
ios/Runner/Wowgame/Resources/game_animal/xlarge/buttons/graphics/button_repeat.png

19.8 KB | W: | H:

2.37 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
ios/Runner/Wowgame/Resources/game_food/small/buttons/graphics/button_resume.png 0 → 100644

2.37 KB

ios/Runner/Wowgame/Resources/game_food/xlarge/buttons/graphics/button_resume.png 0 → 100644

2.37 KB

ios/Runner/Wowgame/Resources/game_toy/xlarge/buttons/graphics/button_resume.png 0 → 100644

2.37 KB

lib/common/request/apis.dart
... ... @@ -107,4 +107,7 @@ class Apis {
107 107 /// 获取微信支付token
108 108 static const String getWxPayToken = 'pay/wxPay/token';
109 109  
  110 + /// 用户反馈
  111 + static const String feedBack = 'student/feedback';
  112 +
110 113 }
... ...
lib/common/request/dao/user_dao.dart
... ... @@ -113,4 +113,10 @@ class UserDao {
113 113 }
114 114 return await requestClient.put(Apis.setUserInfo, data: data);
115 115 }
  116 +
  117 + /// 用户反馈
  118 + static Future feedBack(String content, String deviceModel, String osType, String osVersion) async {
  119 + final params = {'content': content, 'deviceModel': deviceModel, 'osType': osType, "osVersion": osVersion};
  120 + return await requestClient.post(Apis.feedBack, data: params);
  121 + }
116 122 }
... ...
lib/pages/user/setting/reback_page.dart
  1 +import 'dart:async';
  2 +import 'dart:io';
  3 +import 'dart:math';
  4 +
  5 +import 'package:device_info_plus/device_info_plus.dart';
1 6 import 'package:flutter/material.dart';
  7 +import 'package:flutter/services.dart';
  8 +import 'package:flutter_easyloading/flutter_easyloading.dart';
2 9 import 'package:flutter_screenutil/flutter_screenutil.dart';
  10 +import 'package:wow_english/common/core/app_config_helper.dart';
3 11 import 'package:wow_english/common/extension/string_extension.dart';
  12 +import 'package:wow_english/route/route.dart';
4 13 import 'package:wow_english/utils/color_util.dart';
5 14  
6   -import '../../../common/widgets/we_app_bar.dart';
  15 +import 'package:wow_english/common/request/dao/user_dao.dart';
  16 +import 'package:wow_english/common/widgets/we_app_bar.dart';
  17 +import 'package:wow_english/utils/toast_util.dart';
7 18  
8 19 class ReBackPage extends StatefulWidget {
9 20 const ReBackPage({super.key});
... ... @@ -16,11 +27,15 @@ class ReBackPage extends StatefulWidget {
16 27  
17 28 class ReBackPageState extends State<ReBackPage> {
18 29 late bool _canEnsure;
  30 + int _textCount = 0;
  31 + String _textInputStr = "";
19 32  
20 33 @override
21 34 void initState() {
22 35 super.initState();
23 36 _canEnsure = false;
  37 + _textCount = 0;
  38 + _textInputStr = "";
24 39 }
25 40  
26 41 @override
... ... @@ -53,7 +68,7 @@ class ReBackPageState extends State&lt;ReBackPage&gt; {
53 68 fontSize: 19.sp, color: HexColor('#333333')),
54 69 ),
55 70 Text(
56   - '48/500',
  71 + '$_textCount/500',
57 72 textAlign: TextAlign.right,
58 73 style: TextStyle(
59 74 fontSize: 19.sp, color: HexColor('#333333')),
... ... @@ -72,6 +87,17 @@ class ReBackPageState extends State&lt;ReBackPage&gt; {
72 87 vertical: 10, horizontal: 16),
73 88 // 设置对称内边距
74 89 child: TextField(
  90 + inputFormatters: [
  91 + LengthLimitingTextInputFormatter(500, maxLengthEnforcement: MaxLengthEnforcement.truncateAfterCompositionEnds),
  92 + ],
  93 + onChanged: (String value) {
  94 + setState(() {
  95 + _textInputStr = value;
  96 + _textCount = min(value.length, 500);
  97 + _canEnsure = value.length >= 10;
  98 + });
  99 + },
  100 + maxLines: null,
75 101 textInputAction: TextInputAction.done,
76 102 decoration: InputDecoration(
77 103 border: InputBorder.none,
... ... @@ -83,21 +109,26 @@ class ReBackPageState extends State&lt;ReBackPage&gt; {
83 109 ),
84 110 ),
85 111 4.5.verticalSpace,
86   - Container(
87   - decoration: BoxDecoration(
88   - image: DecorationImage(
89   - fit: BoxFit.fill,
90   - image: AssetImage(_canEnsure
91   - ? 're_button'.assetPng
92   - : 're_button_dis'.assetPng))),
93   - alignment: Alignment.center,
94   - width: 91.w,
95   - height: 45.h,
96   - child: Text(
97   - '提交',
98   - textAlign: TextAlign.center,
99   - style:
100   - TextStyle(color: Colors.white, fontSize: 17.sp),
  112 + GestureDetector(
  113 + onTap: () {
  114 + userFeedBack(_textInputStr);
  115 + },
  116 + child: Container(
  117 + decoration: BoxDecoration(
  118 + image: DecorationImage(
  119 + fit: BoxFit.fill,
  120 + image: AssetImage(_canEnsure
  121 + ? 're_button'.assetPng
  122 + : 're_button_dis'.assetPng))),
  123 + alignment: Alignment.center,
  124 + width: 91.w,
  125 + height: 45.h,
  126 + child: Text(
  127 + '提交',
  128 + textAlign: TextAlign.center,
  129 + style:
  130 + TextStyle(color: Colors.white, fontSize: 17.sp),
  131 + ),
101 132 ),
102 133 )
103 134 ],
... ... @@ -109,4 +140,24 @@ class ReBackPageState extends State&lt;ReBackPage&gt; {
109 140 ),
110 141 ));
111 142 }
  143 +
  144 + Future<void> userFeedBack(content) async {
  145 + String deviceModel = "";
  146 + String osType = AppConfigHelper.isIosPlatform() ? "ios" : "android";
  147 + String osVersion = "";
  148 + if (AppConfigHelper.isIosPlatform()) {
  149 + final iosDeviceInfo = await DeviceInfoPlugin().iosInfo;
  150 + osVersion = iosDeviceInfo.systemVersion;
  151 + deviceModel = iosDeviceInfo.model;
  152 + } else {
  153 + final androidInfo = await DeviceInfoPlugin().androidInfo;
  154 + osVersion = androidInfo.version.release.toString();
  155 + deviceModel = androidInfo.manufacturer;
  156 + }
  157 + EasyLoading.show();
  158 + await UserDao.feedBack(content, deviceModel, osType, osVersion);
  159 + EasyLoading.dismiss();
  160 + showToast('提交成功');
  161 + popPage();
  162 + }
112 163 }
... ...