Commit 38a775a9 authored by tongzifang's avatar tongzifang

update dialog

parent 858949c7
PODS:
- base_data_channel (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_boost (0.0.2):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- http_proxy (0.0.1):
- Flutter
- image_picker_ios (0.0.1):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- photo_manager (2.0.0):
- Flutter
- FlutterMacOS
- qmsd_flutter_user_feedback (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sqflite (0.0.2):
- Flutter
- FMDB (>= 2.7.5)
- Toast (4.0.0)
DEPENDENCIES:
- base_data_channel (from `.symlinks/plugins/base_data_channel/ios`)
- Flutter (from `Flutter`)
- flutter_boost (from `.symlinks/plugins/flutter_boost/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- http_proxy (from `.symlinks/plugins/http_proxy/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
- photo_manager (from `.symlinks/plugins/photo_manager/ios`)
- qmsd_flutter_user_feedback (from `.symlinks/plugins/qmsd_flutter_user_feedback/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
SPEC REPOS:
trunk:
- FMDB
- Toast
EXTERNAL SOURCES:
base_data_channel:
:path: ".symlinks/plugins/base_data_channel/ios"
Flutter:
:path: Flutter
flutter_boost:
:path: ".symlinks/plugins/flutter_boost/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
http_proxy:
:path: ".symlinks/plugins/http_proxy/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/ios"
photo_manager:
:path: ".symlinks/plugins/photo_manager/ios"
qmsd_flutter_user_feedback:
:path: ".symlinks/plugins/qmsd_flutter_user_feedback/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
SPEC CHECKSUMS:
base_data_channel: 6a318637d1b9e181d5c70a5bf8cda2f6b75e26f4
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_boost: 3e8a6e28c86d24c83be5b2fab067746dc77a1ad6
fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
http_proxy: 20f129d3e1c70cfdef92530b374c619832027729
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
photo_manager: 4f6810b7dfc4feb03b461ac1a70dacf91fba7604
qmsd_flutter_user_feedback: 0fb1163a449d015f135c2598240be041e1e178f4
shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
PODFILE CHECKSUM: 663715e941f9adb426e33bf9376914006f9ea95b
COCOAPODS: 1.11.3
......@@ -14,6 +14,7 @@
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
BABDA0B161ADEA0274FE0CE4 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F007A0C2B44958109D998839 /* libPods-Runner.a */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
......@@ -32,10 +33,12 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
288383C1758CB8E90EE6DF09 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
8A753B5F8394521CF9E92603 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
......@@ -44,6 +47,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
C4469093DD270C7075680FB8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
F007A0C2B44958109D998839 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -51,12 +56,24 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
BABDA0B161ADEA0274FE0CE4 /* libPods-Runner.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
53CB0A6A98DB0541360D4A3E /* Pods */ = {
isa = PBXGroup;
children = (
288383C1758CB8E90EE6DF09 /* Pods-Runner.debug.xcconfig */,
8A753B5F8394521CF9E92603 /* Pods-Runner.release.xcconfig */,
C4469093DD270C7075680FB8 /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
......@@ -74,6 +91,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
53CB0A6A98DB0541360D4A3E /* Pods */,
CC306A300929F3B4DEEEF586 /* Frameworks */,
);
sourceTree = "<group>";
};
......@@ -109,6 +128,14 @@
name = "Supporting Files";
sourceTree = "<group>";
};
CC306A300929F3B4DEEEF586 /* Frameworks */ = {
isa = PBXGroup;
children = (
F007A0C2B44958109D998839 /* libPods-Runner.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
......@@ -116,6 +143,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
686550A7C26AE6BF57CD3405 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
......@@ -194,6 +222,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
686550A7C26AE6BF57CD3405 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
......
......@@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
......@@ -47,5 +47,7 @@
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>NSPhotoLibraryUsageDescription</key>
<string>In order to access your photo library</string>
</dict>
</plist>
......@@ -37,9 +37,9 @@ packages:
dependency: transitive
description:
path: "."
ref: "0.0.14"
resolved-ref: "2e34761237088f6d0677b8a01111e77c5f8ce033"
url: "git@git.zmcms.cn:fht/base_data_channel.git"
ref: "0.0.15"
resolved-ref: "2b71b92fb1bbe3fa4e2e9854be16e8fb7f7619df"
url: "git@git.zmcms.cn:publicsource/base_data_channel.git"
source: git
version: "0.0.1"
boolean_selector:
......
......@@ -2,4 +2,5 @@ class UserFeedBackImgs{
static String get user_feedback_camare => "images/ic_feedback_camare.png";
static String get user_feedback_del => "images/ic_feedback_img_del.png";
static String get user_feedback_corner => "images/ic_feedback_corner.png";
static String get user_feedback_finish => "images/ic_feedback_finish.png";
}
\ No newline at end of file
......@@ -2,13 +2,16 @@ class UserFeedBackString{
static String get current_name => "qmsd_flutter_user_feedback";
static String get title => "意见反馈";
static String get feedback_type => "问题类型";
static String get feedback_des => "问题描述";
static String get feedback_type_a => "产品建议";
static String get feedback_type_a_tip => "反馈产品及服务优化建议";
static String get feedback_type_b => "功能异常";
static String get feedback_type_b_tip => "报错、卡顿、错位等问题";
static String get feedback_hint => "说说您的建议或者问题,以便我们提供更好的服务(5个以上)";
static String get feedback_hint => "说说您的建议或者问题,以便我们提供更好的服务(5个以上)";
static String get feedback_img => "上传图片凭证(提供问题截图)";
static String get feedback_sub => "提交反馈";
static String get feedback_ud_img=> "上传图片";
static String get feedback_content_none=> "请输入不少于5个字的描述";
static String get feedback_finish=> "你的反馈是对我们最大的支持\n谢谢您的反馈";
static String get feedback_count=> "完成(";
}
\ No newline at end of file
import 'dart:async';
import 'dart:io';
import 'package:base_data_channel/config/common_colors.dart';
......@@ -28,6 +29,11 @@ class _UserFeedBackPageState extends State<UserFeedBackPage> {
var _feedType = 1; //1=功能异常;2=产品建议
final _controller = TextEditingController();
List<XFile> imgFeed = [];
Timer? _timer;
//倒计时数值
var _countdownTime = 3;
ValueNotifier<int> finishNotifier = ValueNotifier(3);
@override
Widget build(BuildContext context) {
......@@ -56,7 +62,9 @@ class _UserFeedBackPageState extends State<UserFeedBackPage> {
bottom: 0,
child: GestureDetector(
onTap: () {
subFeedBack();
_showFinishDialog();
startCountdown();
// ;;subFeedBack();
},
child: Container(
height: 50,
......@@ -181,7 +189,7 @@ class _UserFeedBackPageState extends State<UserFeedBackPage> {
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
UserFeedBackString.feedback_type,
UserFeedBackString.feedback_des,
style: TextStyle(
color: CommonColor.color33,
fontSize: 17,
......@@ -401,7 +409,7 @@ class _UserFeedBackPageState extends State<UserFeedBackPage> {
EasyLoading.show(status: 'loading...');
bool? subStatus = false;
try {
if (_controller.text.isEmpty) {
if (_controller.text.isEmpty || _controller.text.length < 5) {
return QmToast.toast(UserFeedBackString.feedback_content_none);
}
List<String> urls = [];
......@@ -422,7 +430,111 @@ class _UserFeedBackPageState extends State<UserFeedBackPage> {
print(e);
} finally {
EasyLoading.dismiss();
if (subStatus == true) BoostNavigator.instance.pop({"res": true});
if (subStatus == true) BoostNavigator.instance.pop();
}
}
_showFinishDialog() {
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () async => false,
child: UnconstrainedBox(
constrainedAxis: Axis.horizontal,
child: Container(
margin: const EdgeInsets.only(left: 28, right: 28),
padding: const EdgeInsets.only(top: 29, bottom: 29),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Image.asset(
UserFeedBackImgs.user_feedback_finish,
height: 60,
package: UserFeedBackString.current_name,
),
const SizedBox(
height: 16,
),
Text(
UserFeedBackString.feedback_finish,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 13,
decoration: TextDecoration.none,
color: CommonColor.color33,
),
),
const SizedBox(
height: 25,
),
GestureDetector(
onTap: () {
_releaseTimer();
BoostNavigator.instance.pop();
BoostNavigator.instance.pop();
},
child: ValueListenableBuilder(
valueListenable: finishNotifier,
// value前面的int代表值的类型,使用时一定明确指定该类型
builder: (BuildContext context, int value,
Widget? child) {
return Container(
padding: const EdgeInsets.symmetric(
vertical: 10, horizontal: 35),
decoration: BoxDecoration(
color: CommonColor.colorEE,
borderRadius: BorderRadius.circular(4)),
child: Text(
'${UserFeedBackString.feedback_count}$value)',
style: TextStyle(
decoration: TextDecoration.none,
fontSize: 16,
color: CommonColor.color33),
),
);
},
),
),
],
),
)));
});
}
//倒计时方法
startCountdown() {
//倒计时时间
_countdownTime = 3;
finishNotifier.value = 3;
call(timer) {
if (_countdownTime < 1) {
_timer?.cancel();
_timer = null;
BoostNavigator.instance.pop();
BoostNavigator.instance.pop();
} else {
_countdownTime -= 1;
finishNotifier.value = _countdownTime;
}
}
_timer ??= Timer.periodic(const Duration(seconds: 1), call);
}
@override
void dispose() {
super.dispose();
_controller.dispose();
_releaseTimer();
}
_releaseTimer() {
_timer?.cancel();
_timer = null;
}
}
......@@ -17,8 +17,8 @@ dependencies:
base_data_channel:
# path: /Users/tongzi/AndroidStudioProjects/base_data_channel
git:
url: git@git.zmcms.cn:fht/base_data_channel.git
ref: 0.0.14
url: git@git.zmcms.cn:publicsource/base_data_channel.git
ref: 0.0.15
dev_dependencies:
flutter_test:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment