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

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

@ -134,6 +134,9 @@ class _Manage {
///id
String get decorationFindByld => '/user/decoration/findById';
///id
String get goodsOutContactOwner => '/user/articleOut/contactOwner';
}
class _Upload {
@ -172,4 +175,10 @@ class _Message {
///
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';
// 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';
// Package imports:
import 'package:aku_ui/aku_ui.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
// Project imports:
import 'package:aku_community_manager/const/resource.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/ui/home/announcement/anouncement_details.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> {
static Widget anounceCard(AnouncementCardModel model) {
EasyRefreshController _refreshController = EasyRefreshController();
static Widget anounceCard(AnnouncementListModel model, {String body}) {
return Column(
children: [
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(
title: model.title,
date: model.date,
body: model.body == null ? '' : model.body,
model: detailModel,
));
},
child: Container(
@ -83,7 +94,7 @@ class AllAnouncementState extends State<AllAnouncement> {
width: 24.w,
),
Text(
model.date,
model.releaseTime,
style: AppStyle().minorStyle,
),
Spacer(),
@ -119,7 +130,7 @@ class AllAnouncementState extends State<AllAnouncement> {
)),
...(cards
.map(
(e) => anounceCard(e),
(e) => Container(),
)
.toList()),
],
@ -128,19 +139,26 @@ class AllAnouncementState extends State<AllAnouncement> {
@override
Widget build(BuildContext context) {
final AnouncementProvider _anouncementProvider =
Provider.of<AnouncementProvider>(context);
return AkuScaffold(
title: '全部公告',
body: ListView(
padding: EdgeInsets.only(left: 32.w, right: 32.w),
children: [
_anouncementList('2020-10-22',
_anouncementProvider.anouncementCardModels.sublist(0, 2)),
_anouncementList('2020-10-20',
_anouncementProvider.anouncementCardModels.sublist(2, 2)),
],
),
body: BeeListView(
path: API.message.announcementList,
controller: _refreshController,
convert: (models) {
return models.tableList
.map((e) => AnnouncementListModel.fromJson(e))
.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:
import 'package:aku_community_manager/models/announce/announcement_detail_model.dart';
import 'package:flutter/material.dart';
// 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';
class AnouncementDetails extends StatelessWidget {
final String title;
final String date;
final String body;
final AnnouncementDetailModel model;
const AnouncementDetails({
Key key,
@required this.title,
@required this.date,
@required this.body,
@required this.model,
}) : super(key: key);
@override
@ -33,13 +30,13 @@ class AnouncementDetails extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
title,
model.title,
style: AppStyle().barTitleStyle,
),
SizedBox(
height: 16.w,
),
Text(body,
Text(model.content,
style: TextStyle(
color: AppStyle.primaryTextColor, fontSize: 28.sp)),
SizedBox(
@ -55,7 +52,7 @@ class AnouncementDetails extends StatelessWidget {
SizedBox(
height: 4.w,
),
Text(date, style: AppStyle().primaryStyle),
Text(model.releaseTime, style: AppStyle().primaryStyle),
],
),
SizedBox(

@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
// Project imports:
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/tools/screen_tool.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,
child: Stack(children: [
CarouselSlider(
items: _anouncementProvider.anouncementCardModels
.map((e) => AllAnouncementState.anounceCard(e))
.toList(),
// items: _anouncementProvider.anouncementCardModels
// .map((e) => AllAnouncementState.anounceCard(e))
// .toList(),
items: [],
options: CarouselOptions(
viewportFraction: 1.0,
aspectRatio: 686 / 172,

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

@ -1,5 +1,6 @@
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/utils/network/base_model.dart';
import 'package:aku_community_manager/utils/network/net_util.dart';
import 'package:dio/dio.dart';
@ -12,4 +13,14 @@ class ManageFunc {
});
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