circle_app/circle_app/lib/app/feedback/logic.dart
2024-01-08 09:39:35 +08:00

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();
}
}
}