Browse Source

safety

master
fmk 3 years ago
parent
commit
7df73a5efe
  1. 6
      ios/Podfile.lock
  2. 1
      ios/Runner/AppDelegate.mm
  3. 5
      lib/community/community_view/community_dynamic.dart
  4. 71
      lib/community/release_dynamic.dart
  5. 5
      lib/home/home_page.dart
  6. 6
      lib/mine/mine_view/mine_view.dart
  7. 180
      lib/qr/qr_code_scan.dart
  8. 6
      lib/store/scan.dart
  9. 14
      pubspec.lock
  10. 3
      pubspec.yaml

6
ios/Podfile.lock

@ -81,6 +81,8 @@ PODS:
- Flutter
- "permission_handler (5.1.0+2)":
- Flutter
- scan (0.0.1):
- Flutter
- SDWebImage (5.12.1):
- SDWebImage/Core (= 5.12.1)
- SDWebImage/Core (5.12.1)
@ -129,6 +131,7 @@ DEPENDENCIES:
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- scan (from `.symlinks/plugins/scan/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- sharesdk_plugin (from `.symlinks/plugins/sharesdk_plugin/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
@ -177,6 +180,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/path_provider/ios"
permission_handler:
:path: ".symlinks/plugins/permission_handler/ios"
scan:
:path: ".symlinks/plugins/scan/ios"
shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios"
sharesdk_plugin:
@ -214,6 +219,7 @@ SPEC CHECKSUMS:
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
scan: aea35bb4aa59ccc8839c576a18cd57c7d492cc86
SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
sharesdk_plugin: 6d6634bb480174b607030f19fc9d84d68cfbf326

1
ios/Runner/AppDelegate.mm

@ -12,7 +12,6 @@
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
// 配置参数
NSMutableDictionary *options = [NSMutableDictionary dictionaryWithDictionary:launchOptions];

5
lib/community/community_view/community_dynamic.dart

@ -205,7 +205,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
],
),
),
if(widget.comment.memberInfo.mid != widget.userId??"")
if(widget.comment.memberInfo == null || widget.comment.memberInfo.mid != widget.userId??"")
GestureDetector(
onTap: () {
setState(() {
@ -218,8 +218,7 @@ class _CommunityDynamic extends State<CommunityDynamic> {
}
});
},
child: (widget.commentType == 0
)
child: (widget.commentType == 0)
? Container(
width: 56.w,
height: 21.h,

71
lib/community/release_dynamic.dart

@ -31,7 +31,6 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
TextEditingController textEditingController = TextEditingController();
ApiService apiService;
@override
void initState() {
super.initState();
@ -86,31 +85,33 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
child: Column(
children: [
buildEdit(),
Expanded(child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 12.w,
mainAxisSpacing: 12.w,
childAspectRatio: 1,
Expanded(
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 12.w,
mainAxisSpacing: 12.w,
childAspectRatio: 1,
),
padding: EdgeInsets.all(16),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, position) {
if (mediaPaths.length > position) {
return imageItem(mediaPaths[position]);
} else {
return addImageItem();
}
},
itemCount: (mediaPaths.length == 0)
? 1
: ((dynamicType == 2)
? 1
: mediaPaths.length >= 9
? 9
: (mediaPaths.length + 1)),
),
padding: EdgeInsets.all(16),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, position) {
if (mediaPaths.length > position) {
return imageItem(mediaPaths[position]);
} else {
return addImageItem();
}
},
itemCount: (mediaPaths.length == 0)
? 1
: ((dynamicType == 2)
? 1
: mediaPaths.length >= 9
? 9
: (mediaPaths.length + 1)),
),)
),
],
),
),
@ -159,7 +160,6 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
if (baseData.isSuccess) {
SmartDialog.showToast("发布成功!");
Future.delayed(Duration(seconds: 1), () {
Navigator.of(context).pop(true);
});
}
@ -179,7 +179,9 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
File file = File(element.path);
if (dynamicType == 2) {
String thumbnail;
if (element.thumbPath != null && element.thumbPath != "" && await File(element.thumbPath).exists()) {
if (element.thumbPath != null &&
element.thumbPath != "" &&
await File(element.thumbPath).exists()) {
thumbnail = element.thumbPath;
} else {
thumbnail = await Thumbnails.getThumbnail(
@ -188,14 +190,17 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
quality: 10,
);
}
if (thumbnail != null && thumbnail != "" && await File(thumbnail).exists()) {
if (thumbnail != null &&
thumbnail != "" &&
await File(thumbnail).exists()) {
BaseData<UploadResult> baseData = await apiService.upload(
File(thumbnail),
123123123,
);
if (baseData != null && baseData.isSuccess) {
UploadResult uploadResult = baseData.data;
mediaPaths[mediaPaths.indexOf(element)].thumbPath = uploadResult.url;
mediaPaths[mediaPaths.indexOf(element)].thumbPath =
uploadResult.url;
}
}
}
@ -205,7 +210,8 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
);
if (baseData != null && baseData.isSuccess) {
UploadResult uploadResult = baseData.data;
mediaPaths[mediaPaths.indexOf(element)].remotePath = uploadResult.url;
mediaPaths[mediaPaths.indexOf(element)].remotePath =
uploadResult.url;
}
}
});
@ -239,6 +245,9 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
///
showImagePicker() {
FocusScope.of(context).requestFocus(FocusNode());
if (dynamicType == 1) {
getImageOrVideo(GalleryMode.image);
return;
@ -396,7 +405,7 @@ class _ReleaseDynamic extends State<ReleaseDynamic> {
),
child: TextField(
controller: textEditingController,
maxLines:5,
maxLines: 5,
style: TextStyle(
fontSize: 14.sp,
fontWeight: MyFontWeight.medium,

5
lib/home/home_page.dart

@ -31,7 +31,6 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:qrscan/qrscan.dart' as scanner;
class HomePage extends StatefulWidget {
final GestureTapCallback callback;
@ -341,8 +340,8 @@ class _HomePage extends State<HomePage> with AutomaticKeepAliveClientMixin {
});
} else if (await Permission.camera.isGranted) {
// http://pos.app.gznl.top/placeorder/?tableId=1315903669597634560&tenantCode=1166&shopId=1300372027722432512
// var result = await Navigator.of(context).pushNamed('/router/qr_scan');
String result = await scanner.scan();
var result = await Navigator.of(context).pushNamed('/router/qr_scan');
// String result = await scanner.scan();
Uri uri = Uri.parse(result);
String tableId = uri.queryParameters["tableId"];
String tenantCode = uri.queryParameters["tenantCode"];

6
lib/mine/mine_view/mine_view.dart

@ -8,7 +8,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:huixiang/view_widget/login_tips_dialog.dart';
import 'package:huixiang/view_widget/request_permission.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:qrscan/qrscan.dart' as scanner;
// import 'package:qrscan/qrscan.dart' as scanner;
class MineView extends StatefulWidget {
final UserInfo userInfo;
@ -92,8 +92,8 @@ class _MineView extends State<MineView> {
});
} else if (await Permission.camera.isGranted) {
// http://pos.app.gznl.top/placeorder/?tableId=1315903669597634560&tenantCode=1166&shopId=1300372027722432512
// var result = await Navigator.of(context).pushNamed('/router/qr_scan');
String result = await scanner.scan();
var result = await Navigator.of(context).pushNamed('/router/qr_scan');
// String result = await scanner.scan();
Uri uri = Uri.parse(result);
String tableId = uri.queryParameters["tableId"];
String tenantCode = uri.queryParameters["tenantCode"];

180
lib/qr/qr_code_scan.dart

@ -7,6 +7,7 @@ import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:image_pickers/image_pickers.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:scan/scan.dart';
class QrCodeScanPage extends StatefulWidget {
@override
@ -17,85 +18,106 @@ class QrCodeScanPage extends StatefulWidget {
class _QrCodeScanPage extends State<QrCodeScanPage> {
// ScanKitController _controller;
// final screenWidth = window.physicalSize.width;
// final screenHeight = window.physicalSize.height;
//
// @override
// void initState() {
// super.initState();
// }
//
// @override
ScanController controller = ScanController();
final screenWidth = window.physicalSize.width;
final screenHeight = window.physicalSize.height;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
// return Scaffold(
// body: Container(
// child: Stack(
// children: [
// Positioned(
// child: Column(
// children: [
// Expanded(
// child: ScanKitWidget(
// callback: (controller) {
// _controller = controller;
// controller.onResult.listen((result) {
// debugPrint("scanning result:$result");
// Navigator.of(context).pop(result);
// });
// },
// continuouslyScan: false,
// boundingBox: Rect.fromLTRB(0, 0, screenWidth, screenHeight),
// ),
// flex: 1,
// ),
// ],
// ),
// top: 0,
// bottom: 0,
// left: 0,
// right: 0,
// ),
// Positioned(
// child: MyAppBar(
// title: "扫码",
// titleColor: Colors.white,
// leadingColor: Colors.white,
// brightness: Brightness.dark,
// background: Colors.transparent,
// action: Container(
// alignment: Alignment.center,
// margin: EdgeInsets.only(right: 16.w),
// child: GestureDetector(
// onTap: () {
// _controller.pickPhoto();
// },
// child: Text(
// S.of(context).xiangce,
// style: TextStyle(
// color: Colors.black,
// fontSize: 18.sp,
// fontWeight: FontWeight.bold,
// ),
// ),
// ),
// ),
// ),
// top: 0,
// left: 0,
// right: 0,
// ),
// ],
// ),
// ),
// );
return Scaffold(
body: Container(
child: Stack(
children: [
Positioned(
child: Column(
children: [
Expanded(
child: ScanView(
controller: controller,
scanAreaScale: 0.7,
scanLineColor: Colors.green.shade400,
onCapture: (data) {
if (data != null && data != "") {
Navigator.of(context).pop(data);
}
},
),
flex: 1,
),
],
),
top: 0,
bottom: 0,
left: 0,
right: 0,
),
Positioned(
child: MyAppBar(
title: "扫码",
titleColor: Colors.white,
leadingColor: Colors.white,
brightness: Brightness.dark,
background: Colors.transparent,
action: Container(
alignment: Alignment.center,
margin: EdgeInsets.only(right: 16.w),
child: GestureDetector(
onTap: () {
pickImage();
},
child: Text(
S.of(context).xiangce,
style: TextStyle(
color: Colors.black,
fontSize: 18.sp,
fontWeight: FontWeight.bold,
),
),
),
),
),
top: 0,
left: 0,
right: 0,
),
],
),
),
);
}
pickImage() async {
List<Media> medias = await ImagePickers.pickerPaths(
galleryMode: GalleryMode.image,
selectCount: 1,
showGif: true,
showCamera: false,
compressSize: 500,
uiConfig: UIConfig(
uiThemeColor: Color(0xFFFFFFFF),
),
cropConfig: CropConfig(
enableCrop: false,
),
);
if (medias != null && medias.length > 0) {
String result = await Scan.parse(medias[0].path);
if (result != null && result != "") {
Navigator.of(context).pop(result);
}
}
}
@override
void dispose() {
if (this.controller != null) {
this.controller.pause();
}
super.dispose();
}
//
// @override
// void dispose() {
// // if (this._controller != null) {
// // this._controller.dispose();
// // }
// super.dispose();
// }
}

6
lib/store/scan.dart

@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/view_widget/request_permission.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:qrscan/qrscan.dart' as scanner;
// import 'package:qrscan/qrscan.dart' as scanner;
class Scan {
@ -25,8 +25,8 @@ class Scan {
);
});
} else if (await Permission.camera.isGranted) {
// var result = await Navigator.of(context).pushNamed('/router/qr_scan');
String result = await scanner.scan();
var result = await Navigator.of(context).pushNamed('/router/qr_scan');
// String result = await scanner.scan();
if (result != null && result != "") {
Uri uri = Uri.parse(result);
String table = uri.queryParameters["tableId"];

14
pubspec.lock

@ -574,13 +574,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.0.0"
qrscan:
dependency: "direct main"
description:
name: qrscan
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.2"
quiver:
dependency: transitive
description:
@ -609,6 +602,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.26.0"
scan:
dependency: "direct main"
description:
name: scan
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.0"
shared_preferences:
dependency: "direct main"
description:

3
pubspec.yaml

@ -59,7 +59,8 @@ dependencies:
image_pickers: ^2.0.0
# flutter_scankit: ^1.2.0
qrscan: ^0.3.2
# qrscan: ^0.3.1
scan: ^1.5.0
path_provider: ^1.2.0
cached_network_image: ^2.0.0

Loading…
Cancel
Save