对接:公告管理:管家app,查询所有的社区公告

对接:公告管理(管家app):根据社区公告主键id查询社区公告信息
hmxc
张萌 4 years ago
parent cd0893093a
commit 8215939dbd

@ -134,6 +134,9 @@ class _Manage {
///id ///id
String get decorationFindByld => '/user/decoration/findById'; String get decorationFindByld => '/user/decoration/findById';
///id
String get goodsOutContactOwner => '/user/articleOut/contactOwner';
} }
class _Upload { class _Upload {
@ -172,4 +175,10 @@ class _Message {
/// ///
String get commentList => '/user/message/sysCommentMessageList'; String get commentList => '/user/message/sysCommentMessageList';
///app
String get announcementList => '/user/announcement/list';
///appid
String get announcementFindByld => '/user/announcement/findById';
} }

@ -0,0 +1,40 @@
class AnnouncementDetailModel {
int id;
String title;
String content;
String fileDocUrl;
String fileDocName;
String releaseTime;
List<String> imgUrls;
AnnouncementDetailModel(
{this.id,
this.title,
this.content,
this.fileDocUrl,
this.fileDocName,
this.releaseTime,
this.imgUrls});
AnnouncementDetailModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
content = json['content'];
fileDocUrl = json['fileDocUrl'];
fileDocName = json['fileDocName'];
releaseTime = json['releaseTime'];
imgUrls = json['imgUrls'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['title'] = this.title;
data['content'] = this.content;
data['fileDocUrl'] = this.fileDocUrl;
data['fileDocName'] = this.fileDocName;
data['releaseTime'] = this.releaseTime;
data['imgUrls'] = this.imgUrls;
return data;
}
}

@ -0,0 +1,24 @@
class AnnouncementListModel {
int id;
String title;
String releaseTime;
List<String> imgUrls;
AnnouncementListModel({this.id, this.title, this.releaseTime, this.imgUrls});
AnnouncementListModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
releaseTime = json['releaseTime'];
imgUrls = json['imgUrls'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['title'] = this.title;
data['releaseTime'] = this.releaseTime;
data['imgUrls'] = this.imgUrls;
return data;
}
}

@ -2,18 +2,24 @@
import 'dart:ui'; import 'dart:ui';
// Flutter imports: // Flutter imports:
import 'package:aku_community_manager/const/api.dart';
import 'package:aku_community_manager/models/announce/announcement_detail_model.dart';
import 'package:aku_community_manager/models/announce/announcement_list_model.dart';
import 'package:aku_community_manager/tools/widget_tool.dart';
import 'package:aku_community_manager/ui/widgets/common/bee_list_view.dart';
import 'package:aku_community_manager/utils/network/base_model.dart';
import 'package:aku_community_manager/utils/network/net_util.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// Package imports: // Package imports:
import 'package:aku_ui/aku_ui.dart'; import 'package:aku_ui/aku_ui.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart';
// Project imports: // Project imports:
import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/const/resource.dart';
import 'package:aku_community_manager/mock_models/anouncement/anouncement_model.dart'; import 'package:aku_community_manager/mock_models/anouncement/anouncement_model.dart';
import 'package:aku_community_manager/provider/anouncement_provider.dart';
import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/ui/home/announcement/anouncement_details.dart'; import 'package:aku_community_manager/ui/home/announcement/anouncement_details.dart';
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart';
@ -26,15 +32,20 @@ class AllAnouncement extends StatefulWidget {
} }
class AllAnouncementState extends State<AllAnouncement> { class AllAnouncementState extends State<AllAnouncement> {
static Widget anounceCard(AnouncementCardModel model) { EasyRefreshController _refreshController = EasyRefreshController();
static Widget anounceCard(AnnouncementListModel model, {String body}) {
return Column( return Column(
children: [ children: [
AkuButton( AkuButton(
onPressed: () { onPressed: () async {
BaseModel baseModel = await NetUtil().get(
API.message.announcementFindByld,
params: {'announcementId': model.id});
AnnouncementDetailModel detailModel =
AnnouncementDetailModel.fromJson(baseModel.data);
Get.to(AnouncementDetails( Get.to(AnouncementDetails(
title: model.title, model: detailModel,
date: model.date,
body: model.body == null ? '' : model.body,
)); ));
}, },
child: Container( child: Container(
@ -83,7 +94,7 @@ class AllAnouncementState extends State<AllAnouncement> {
width: 24.w, width: 24.w,
), ),
Text( Text(
model.date, model.releaseTime,
style: AppStyle().minorStyle, style: AppStyle().minorStyle,
), ),
Spacer(), Spacer(),
@ -119,7 +130,7 @@ class AllAnouncementState extends State<AllAnouncement> {
)), )),
...(cards ...(cards
.map( .map(
(e) => anounceCard(e), (e) => Container(),
) )
.toList()), .toList()),
], ],
@ -128,19 +139,26 @@ class AllAnouncementState extends State<AllAnouncement> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final AnouncementProvider _anouncementProvider =
Provider.of<AnouncementProvider>(context);
return AkuScaffold( return AkuScaffold(
title: '全部公告', title: '全部公告',
body: ListView( body: BeeListView(
padding: EdgeInsets.only(left: 32.w, right: 32.w), path: API.message.announcementList,
children: [ controller: _refreshController,
_anouncementList('2020-10-22', convert: (models) {
_anouncementProvider.anouncementCardModels.sublist(0, 2)), return models.tableList
_anouncementList('2020-10-20', .map((e) => AnnouncementListModel.fromJson(e))
_anouncementProvider.anouncementCardModels.sublist(2, 2)), .toList();
], },
), builder: (items) {
return ListView.separated(
itemBuilder: (context, index) {
return anounceCard(items[index]);
},
separatorBuilder: (_, __) {
return AkuBox.h(10);
},
itemCount: items.length);
}),
); );
} }
} }

@ -1,4 +1,5 @@
// Flutter imports: // Flutter imports:
import 'package:aku_community_manager/models/announce/announcement_detail_model.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// Package imports: // Package imports:
@ -9,14 +10,10 @@ import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart';
class AnouncementDetails extends StatelessWidget { class AnouncementDetails extends StatelessWidget {
final String title; final AnnouncementDetailModel model;
final String date;
final String body;
const AnouncementDetails({ const AnouncementDetails({
Key key, Key key,
@required this.title, @required this.model,
@required this.date,
@required this.body,
}) : super(key: key); }) : super(key: key);
@override @override
@ -33,13 +30,13 @@ class AnouncementDetails extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Text( Text(
title, model.title,
style: AppStyle().barTitleStyle, style: AppStyle().barTitleStyle,
), ),
SizedBox( SizedBox(
height: 16.w, height: 16.w,
), ),
Text(body, Text(model.content,
style: TextStyle( style: TextStyle(
color: AppStyle.primaryTextColor, fontSize: 28.sp)), color: AppStyle.primaryTextColor, fontSize: 28.sp)),
SizedBox( SizedBox(
@ -55,7 +52,7 @@ class AnouncementDetails extends StatelessWidget {
SizedBox( SizedBox(
height: 4.w, height: 4.w,
), ),
Text(date, style: AppStyle().primaryStyle), Text(model.releaseTime, style: AppStyle().primaryStyle),
], ],
), ),
SizedBox( SizedBox(

@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
// Project imports: // Project imports:
import 'package:aku_community_manager/mock_models/all_model.dart'; import 'package:aku_community_manager/mock_models/all_model.dart';
import 'package:aku_community_manager/mock_models/decoration/decoration_model.dart';
import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/tools/screen_tool.dart'; import 'package:aku_community_manager/tools/screen_tool.dart';
import 'package:aku_community_manager/ui/sub_pages/business_and_fix/business_fix_card.dart'; import 'package:aku_community_manager/ui/sub_pages/business_and_fix/business_fix_card.dart';

@ -405,9 +405,10 @@ class _HomePageState extends State<HomePage> {
height: 172.w, height: 172.w,
child: Stack(children: [ child: Stack(children: [
CarouselSlider( CarouselSlider(
items: _anouncementProvider.anouncementCardModels // items: _anouncementProvider.anouncementCardModels
.map((e) => AllAnouncementState.anounceCard(e)) // .map((e) => AllAnouncementState.anounceCard(e))
.toList(), // .toList(),
items: [],
options: CarouselOptions( options: CarouselOptions(
viewportFraction: 1.0, viewportFraction: 1.0,
aspectRatio: 686 / 172, aspectRatio: 686 / 172,

@ -132,7 +132,7 @@ class _ItemsOutdoorDetailsPageState extends State<ItemsOutdoorDetailsPage> {
), ),
Divider(height: 1.w), Divider(height: 1.w),
MaterialButton( MaterialButton(
onPressed: () { onPressed: () async {
launch('tel:${_model.applicantTel}'); launch('tel:${_model.applicantTel}');
}, },
elevation: 0, elevation: 0,

@ -1,5 +1,6 @@
import 'package:aku_community_manager/const/api.dart'; import 'package:aku_community_manager/const/api.dart';
import 'package:aku_community_manager/models/manager/decoration/decoration_detail_model.dart'; import 'package:aku_community_manager/models/manager/decoration/decoration_detail_model.dart';
import 'package:aku_community_manager/utils/network/base_model.dart';
import 'package:aku_community_manager/utils/network/net_util.dart'; import 'package:aku_community_manager/utils/network/net_util.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
@ -12,4 +13,14 @@ class ManageFunc {
}); });
return DecorationDetailModel.fromJson(response.data); return DecorationDetailModel.fromJson(response.data);
} }
static Future getContactOwner(int id) async {
BaseModel baseModel = await NetUtil().get(
API.manage.goodsOutContactOwner,
params: {
'estateId': id,
},
);
return baseModel.data;
}
} }

Loading…
Cancel
Save