86 lines
2.2 KiB
Dart
86 lines
2.2 KiB
Dart
|
|
import 'package:circle_app/util/util.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:image_picker/image_picker.dart';
|
|
import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart';
|
|
|
|
import '../../common/config.dart';
|
|
import '../../network/api.dart';
|
|
import '../../network/dio_manager.dart';
|
|
import '../../util/qiniu.dart';
|
|
import '../call_out/logic.dart';
|
|
import 'state.dart';
|
|
|
|
class FeedbackLogic extends GetxController {
|
|
final FeedbackState state = FeedbackState();
|
|
TextEditingController textEditingController = TextEditingController();
|
|
final ImagePicker _picker = ImagePicker();
|
|
var storage = Storage();
|
|
var quToken = '';
|
|
|
|
@override
|
|
void onInit() async{
|
|
super.onInit();
|
|
var data =
|
|
await DioManager.instance.get(url: Api.getqiniuToken, params: {});
|
|
var bean = BaseResponse<QnTokenData>.fromJson(
|
|
data, (data) => QnTokenData.fromJson(data));
|
|
if(bean.isSuccess()){
|
|
quToken = bean.data!.token.toString();
|
|
}
|
|
}
|
|
|
|
Future getImageFile() async {
|
|
checkPhotosStatus();
|
|
try {
|
|
final XFile? pickedFile = await _picker.pickImage(
|
|
source: ImageSource.gallery,
|
|
);
|
|
if(null==pickedFile){
|
|
return;
|
|
}
|
|
SmartDialog.showLoading();
|
|
uploadImage(quToken,pickedFile,CONFIG.USER_INFO_AVATAR,(result){
|
|
SmartDialog.dismiss(force: true);
|
|
state.imaglist.add(result);
|
|
update();
|
|
});
|
|
} catch (_) {
|
|
}
|
|
}
|
|
|
|
|
|
getFeedBack() async{
|
|
|
|
if (textEditingController.text.isEmpty && state.imaglist.isEmpty) {
|
|
showOKToast('请输入反馈内容或者提交反馈图片');
|
|
return;
|
|
}
|
|
|
|
List myBean = [];
|
|
if (!state.imaglist.isEmpty) {
|
|
state.imaglist.forEach((element) {
|
|
myBean.add(MyBean(type: 1, url: element).toJson());
|
|
});
|
|
}
|
|
|
|
textEditingController.text;
|
|
|
|
var data =
|
|
await DioManager.instance.post(url: Api.getFeedBack, params: {
|
|
'album': myBean,
|
|
'content': textEditingController.text,
|
|
'type':1
|
|
});
|
|
var bean = BaseResponse<dynamic>.fromJson(data, (jsonData) => jsonData,);
|
|
showOKToast(bean.msg);
|
|
if(bean.isSuccess()){
|
|
Get.back();
|
|
}
|
|
}
|
|
|
|
|
|
}
|