circle_app/circle_app/lib/app/report/logic.dart

101 lines
2.6 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 '../../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 ReportLogic extends GetxController {
final ReportState state = ReportState();
var userId = Get.arguments["userId"] ?? "";
int myPosition = -1;
TextEditingController textEditingController = TextEditingController();
List<MyObject> arrList = <MyObject>[
MyObject("涉嫌欺诈", false),
MyObject("色情低俗", false),
MyObject("侮辱谩骂", false),
MyObject("骚扰广告", false),
MyObject("扰乱平台", false),
MyObject("散布谣言", false),
MyObject("盗图侵权", false),
MyObject("其他违规", false)
];
List<MyObject> getItemList() {
return arrList;
}
onSubmit()async{
if(myPosition== -1){
showOKToast("请选择举报类目");
return;
}
List myBean = [];
state.imaglist.forEach((element) {
myBean.add(MyBean(type: 1, url: element).toJson());
});
var data = await DioManager.instance.post(url: Api.postReport, params: {
"user_id" : userId,
"words" : textEditingController.text,
"obj_type" :1,
"obj_id":userId,
"reason":arrList[myPosition].name,
"album" :myBean
});
var bean = BaseResponse<String>.fromJson(data, (data) => data);
if(bean.isSuccess()){
Get.back();
}
showOKToast(bean.msg);
}
final ImagePicker _picker = ImagePicker();
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 {
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 (e) {
}
}
}
class MyObject {
String name;
bool isSelect;
MyObject(this.name, this.isSelect);
}