101 lines
2.6 KiB
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);
|
|
}
|