|
|
|
// Dart imports:
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
// Flutter imports:
|
|
|
|
import 'package:aku_community_manager/ui/widgets/common/aku_material_button.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
// Package imports:
|
|
|
|
import 'package:bot_toast/bot_toast.dart';
|
|
|
|
import 'package:get/get.dart';
|
|
|
|
|
|
|
|
// Project imports:
|
|
|
|
import 'package:aku_community_manager/const/api.dart';
|
|
|
|
import 'package:aku_community_manager/style/app_style.dart';
|
|
|
|
import 'package:aku_community_manager/tools/screen_tool.dart';
|
|
|
|
import 'package:aku_community_manager/ui/widgets/app_widgets/aku_pick_image_widget.dart';
|
|
|
|
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart';
|
|
|
|
import 'package:aku_community_manager/utils/network/base_model.dart';
|
|
|
|
import 'package:aku_community_manager/utils/network/net_util.dart';
|
|
|
|
|
|
|
|
class SettingFeedBackPage extends StatefulWidget {
|
|
|
|
SettingFeedBackPage({Key key}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_SettingFeedBackPageState createState() => _SettingFeedBackPageState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _SettingFeedBackPageState extends State<SettingFeedBackPage> {
|
|
|
|
List<File> _files;
|
|
|
|
List<String> _imgeUrls;
|
|
|
|
String _content;
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return AkuScaffold(
|
|
|
|
title: '意见反馈',
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
body: ListView(
|
|
|
|
children: [
|
|
|
|
Container(
|
|
|
|
height: 20.w,
|
|
|
|
color: AppStyle.backgroundColor,
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.symmetric(
|
|
|
|
vertical: 24.w,
|
|
|
|
horizontal: 32.w,
|
|
|
|
),
|
|
|
|
padding: EdgeInsets.all(24.w),
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
children: [
|
|
|
|
TextField(
|
|
|
|
onChanged: (value) {
|
|
|
|
_content = value;
|
|
|
|
},
|
|
|
|
minLines: 5,
|
|
|
|
maxLines: 99,
|
|
|
|
decoration: InputDecoration(
|
|
|
|
border: InputBorder.none,
|
|
|
|
contentPadding: EdgeInsets.zero,
|
|
|
|
hintText: '请输入你的意见和建议',
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
color: Color(0xFF999999),
|
|
|
|
fontSize: 28.sp,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
AkuPickImageWidget(
|
|
|
|
size: 202.w,
|
|
|
|
onChanged: (newFile) {
|
|
|
|
_files = newFile;
|
|
|
|
},
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: AppStyle.backgroundColor,
|
|
|
|
borderRadius: BorderRadius.circular(16.w),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
bottom: AkuMaterialButton(
|
|
|
|
onPressed: () async {
|
|
|
|
_imgeUrls =
|
|
|
|
await NetUtil().uploadFiles(_files, API.upload.uploadAdvices);
|
|
|
|
BaseModel baseModel =
|
|
|
|
await NetUtil().post(API.user.feedbackSubmit, params: {
|
|
|
|
"content": _content,
|
|
|
|
"fileUrls": _imgeUrls,
|
|
|
|
});
|
|
|
|
if (baseModel.status) {
|
|
|
|
BotToast.showText(text: baseModel.message);
|
|
|
|
Get.back();
|
|
|
|
} else {
|
|
|
|
BotToast.showText(text: baseModel.message);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
child: Text('提交'),
|
|
|
|
color: AppStyle.minorColor,
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|