pull/1/head
张萌 3 years ago
commit f0f3d1c09e

@ -379,8 +379,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8; CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92; DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@ -401,7 +401,7 @@
MARKETING_VERSION = 1.0.5; MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee"; PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1; TARGETED_DEVICE_FAMILY = 1;
@ -523,8 +523,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8; CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92; DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@ -545,7 +545,7 @@
MARKETING_VERSION = 1.0.5; MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee"; PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -561,8 +561,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8; CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92; DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@ -583,7 +583,7 @@
MARKETING_VERSION = 1.0.5; MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee"; PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1; TARGETED_DEVICE_FAMILY = 1;

@ -0,0 +1,17 @@
class NEWAPI {
///HOST
static const String host = 'http://127.0.0.1:8006';
///
static const String baseURL = '$host';
//
static _Questionnaire questionnaire = _Questionnaire();
}
class _Questionnaire {
///
String get list => '/app/user/questionnaire/list';
///id
String get detail => '/app/user/questionnaire/findById';
///
String get submit => '/app/user/questionnaire/submit';
}

@ -39,6 +39,8 @@ class SAASAPI {
static _Balance balance = _Balance(); static _Balance balance = _Balance();
static _CommunityIntroduce communityIntroduce = _CommunityIntroduce(); static _CommunityIntroduce communityIntroduce = _CommunityIntroduce();
static _ConveniencePhone conveniencePhone = _ConveniencePhone(); static _ConveniencePhone conveniencePhone = _ConveniencePhone();
static _CommitteeStaff committeeStaff = _CommitteeStaff();
static _Advice advice = _Advice();
/// ///
static _ProfileApi profile = _ProfileApi(); static _ProfileApi profile = _ProfileApi();
@ -352,3 +354,23 @@ class _ConveniencePhone {
///app便 ///app便
String get list => '/app/user/conveniencePhone/list'; String get list => '/app/user/conveniencePhone/list';
} }
class _CommitteeStaff {
///
String get list => '/app/user/industryCommittee/list';
}
class _Advice{
///
String get list => '/app/user/advice/list';
////
String get insert => '/app/user/advice/insert';
////id /
String get find => '/app/user/advice/findById';
///
String get reQuestion => '/app/user/advice/reQuestion';
///
String get complete => '/app/user/advice/complete';
///
String get evaluate => '/app/user/advice/evaluate';
////
String get delete => '/app/user/advice/delete';
}

@ -3,79 +3,62 @@ import 'package:common_utils/common_utils.dart';
import 'package:aku_new_community/model/common/img_model.dart'; import 'package:aku_new_community/model/common/img_model.dart';
class AdviceDetailModel { class AdviceDetailModel {
AppAdviceDetailVo? appAdviceDetailVo; AppAdviceFBIDetailVo? appAdviceFBIDetailVo;
List<AppAdviceFBIContentVos>? appAdviceFBIContentVos;
AdviceDetailModel({this.appAdviceDetailVo}); AdviceDetailModel({this.appAdviceFBIDetailVo, this.appAdviceFBIContentVos});
AdviceDetailModel.fromJson(Map<String, dynamic> json) { AdviceDetailModel.fromJson(Map<String, dynamic> json) {
appAdviceDetailVo = json['appAdviceDetailVo'] != null appAdviceFBIDetailVo = json['appAdviceFBIDetailVo'] != null
? new AppAdviceDetailVo.fromJson(json['appAdviceDetailVo']) ? new AppAdviceFBIDetailVo.fromJson(json['appAdviceFBIDetailVo'])
: null; : null;
} if (json['appAdviceFBIContentVos'] != null) {
appAdviceFBIContentVos = [];
Map<String, dynamic> toJson() { json['appAdviceFBIContentVos'].forEach((v) {
final Map<String, dynamic> data = new Map<String, dynamic>(); appAdviceFBIContentVos!.add(new AppAdviceFBIContentVos.fromJson(v));
if (this.appAdviceDetailVo != null) {
data['appAdviceDetailVo'] = this.appAdviceDetailVo!.toJson();
}
return data;
}
}
class AppAdviceDetailVo {
AppAdviceVo? appAdviceVo;
List<AppAdviceContentVos>? appAdviceContentVos;
AppAdviceDetailVo({this.appAdviceVo, this.appAdviceContentVos});
AppAdviceDetailVo.fromJson(Map<String, dynamic> json) {
appAdviceVo = json['appAdviceVo'] != null
? new AppAdviceVo.fromJson(json['appAdviceVo'])
: null;
if (json['appAdviceContentVos'] != null) {
appAdviceContentVos = [];
json['appAdviceContentVos'].forEach((v) {
appAdviceContentVos!.add(new AppAdviceContentVos.fromJson(v));
}); });
} }
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.appAdviceVo != null) { if (this.appAdviceFBIDetailVo != null) {
data['appAdviceVo'] = this.appAdviceVo!.toJson(); data['appAdviceFBIDetailVo'] = this.appAdviceFBIDetailVo!.toJson();
} }
if (this.appAdviceContentVos != null) { if (this.appAdviceFBIContentVos != null) {
data['appAdviceContentVos'] = data['appAdviceFBIContentVos'] =
this.appAdviceContentVos!.map((v) => v.toJson()).toList(); this.appAdviceFBIContentVos!.map((v) => v.toJson()).toList();
} }
return data; return data;
} }
} }
class AppAdviceVo { class AppAdviceFBIDetailVo {
int? id; int? id;
int? type; int? type;
int? status; int? status;
String? content; String? content;
int? score;
String? createDate; String? createDate;
List<ImgModel>? imgUrls; List<ImgModel>? imgUrls;
DateTime? get date => DateUtil.getDateTime(createDate!); DateTime? get date => DateUtil.getDateTime(createDate!);
AppAdviceVo( AppAdviceFBIDetailVo(
{this.id, {this.id,
this.type, this.type,
this.status, this.status,
this.content, this.content,
this.score,
this.createDate, this.createDate,
this.imgUrls}); this.imgUrls});
AppAdviceVo.fromJson(Map<String, dynamic> json) { AppAdviceFBIDetailVo.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
type = json['type']; type = json['type'];
status = json['status']; status = json['status'];
content = json['content']; content = json['content'];
score = json['score'];
createDate = json['createDate']; createDate = json['createDate'];
if (json['imgUrls'] != null) { if (json['imgUrls'] != null) {
imgUrls = []; imgUrls = [];
@ -91,6 +74,7 @@ class AppAdviceVo {
data['type'] = this.type; data['type'] = this.type;
data['status'] = this.status; data['status'] = this.status;
data['content'] = this.content; data['content'] = this.content;
data['score'] = this.score;
data['createDate'] = this.createDate; data['createDate'] = this.createDate;
if (this.imgUrls != null) { if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls!.map((v) => v.toJson()).toList(); data['imgUrls'] = this.imgUrls!.map((v) => v.toJson()).toList();
@ -99,14 +83,14 @@ class AppAdviceVo {
} }
} }
class AppAdviceContentVos { class AppAdviceFBIContentVos {
int? id; int? id;
int? createUserType; int? createUserType;
String? content; String? content;
String? createDate; String? createDate;
int? parentId; int? parentId;
AppAdviceContentVos( AppAdviceFBIContentVos(
{this.id, {this.id,
this.createUserType, this.createUserType,
this.content, this.content,
@ -115,7 +99,7 @@ class AppAdviceContentVos {
DateTime? get date => DateUtil.getDateTime(createDate!); DateTime? get date => DateUtil.getDateTime(createDate!);
AppAdviceContentVos.fromJson(Map<String, dynamic> json) { AppAdviceFBIContentVos.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
createUserType = json['createUserType']; createUserType = json['createUserType'];
content = json['content']; content = json['content'];

@ -10,6 +10,8 @@ class QuestionnaireModel {
int? answerNum; int? answerNum;
List<ImgModel>? imgUrls; List<ImgModel>? imgUrls;
List<ImgModel>? headImgURls; List<ImgModel>? headImgURls;
bool? answered;
bool? allowAnswer;
QuestionnaireModel( QuestionnaireModel(
{this.id, {this.id,
@ -20,7 +22,10 @@ class QuestionnaireModel {
this.status, this.status,
this.answerNum, this.answerNum,
this.imgUrls, this.imgUrls,
this.headImgURls}); this.headImgURls,
this.answered,
this.allowAnswer,
});
QuestionnaireModel.fromJson(Map<String, dynamic> json) { QuestionnaireModel.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
@ -44,6 +49,9 @@ class QuestionnaireModel {
}); });
} else } else
headImgURls = []; headImgURls = [];
answered = json['answered'];
allowAnswer = json['allowAnswer'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -61,6 +69,8 @@ class QuestionnaireModel {
if (this.headImgURls != null) { if (this.headImgURls != null) {
data['headImgURls'] = this.headImgURls!.map((v) => v.toJson()).toList(); data['headImgURls'] = this.headImgURls!.map((v) => v.toJson()).toList();
} }
data['answered']=this.answered;
data['allowAnswer']=this.allowAnswer;
return data; return data;
} }
} }

@ -24,15 +24,15 @@ class QuestionnaireDetialModel {
description = json['description']; description = json['description'];
beginDate = json['beginDate']; beginDate = json['beginDate'];
endDate = json['endDate']; endDate = json['endDate'];
if (json['questionnaireTopicVoList'] != null) { if (json['appQuestionnaireFBITopicVoList'] != null) {
questionnaireTopicVoList = []; questionnaireTopicVoList = [];
json['questionnaireTopicVoList'].forEach((v) { json['appQuestionnaireFBITopicVoList'].forEach((v) {
questionnaireTopicVoList!.add(new QuestionnaireTopicVoList.fromJson(v)); questionnaireTopicVoList!.add(new QuestionnaireTopicVoList.fromJson(v));
}); });
} }
if (json['voResourcesImgList'] != null) { if (json['imgList'] != null) {
voResourcesImgList = []; voResourcesImgList = [];
json['voResourcesImgList'].forEach((v) { json['imgList'].forEach((v) {
voResourcesImgList!.add(new ImgModel.fromJson(v)); voResourcesImgList!.add(new ImgModel.fromJson(v));
}); });
} else } else
@ -47,11 +47,11 @@ class QuestionnaireDetialModel {
data['beginDate'] = this.beginDate; data['beginDate'] = this.beginDate;
data['endDate'] = this.endDate; data['endDate'] = this.endDate;
if (this.questionnaireTopicVoList != null) { if (this.questionnaireTopicVoList != null) {
data['questionnaireTopicVoList'] = data['appQuestionnaireFBITopicVoList'] =
this.questionnaireTopicVoList!.map((v) => v.toJson()).toList(); this.questionnaireTopicVoList!.map((v) => v.toJson()).toList();
} }
if (this.voResourcesImgList != null) { if (this.voResourcesImgList != null) {
data['voResourcesImgList'] = data['imgList'] =
this.voResourcesImgList!.map((v) => v.toJson()).toList(); this.voResourcesImgList!.map((v) => v.toJson()).toList();
} }
return data; return data;
@ -71,9 +71,9 @@ class QuestionnaireTopicVoList {
id = json['id']; id = json['id'];
type = json['type']; type = json['type'];
topic = json['topic']; topic = json['topic'];
if (json['questionnaireChoiceVoList'] != null) { if (json['appQuestionnaireFBITopicChoiceVoList'] != null) {
questionnaireChoiceVoList = []; questionnaireChoiceVoList = [];
json['questionnaireChoiceVoList'].forEach((v) { json['appQuestionnaireFBITopicChoiceVoList'].forEach((v) {
questionnaireChoiceVoList! questionnaireChoiceVoList!
.add(new QuestionnaireChoiceVoList.fromJson(v)); .add(new QuestionnaireChoiceVoList.fromJson(v));
}); });
@ -87,7 +87,7 @@ class QuestionnaireTopicVoList {
data['type'] = this.type; data['type'] = this.type;
data['topic'] = this.topic; data['topic'] = this.topic;
if (this.questionnaireChoiceVoList != null) { if (this.questionnaireChoiceVoList != null) {
data['questionnaireChoiceVoList'] = data['appQuestionnaireFBITopicChoiceVoList'] =
this.questionnaireChoiceVoList!.map((v) => v.toJson()).toList(); this.questionnaireChoiceVoList!.map((v) => v.toJson()).toList();
} else } else
questionnaireChoiceVoList = []; questionnaireChoiceVoList = [];

@ -36,16 +36,16 @@ class SuggestionOrComplainModel {
} }
} }
class ImgUrls { class imgUrls {
String? url; String? url;
String? size; String? size;
int? longs; int? longs;
int? paragraph; int? paragraph;
int? sort; int? sort;
ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort}); imgUrls({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgUrls.fromJson(Map<String, dynamic> json) { imgUrls.fromJson(Map<String, dynamic> json) {
url = json['url']; url = json['url'];
size = json['size']; size = json['size'];
longs = json['longs']; longs = json['longs'];

@ -1,86 +1,53 @@
import 'package:aku_new_community/model/common/img_model.dart'; import 'package:aku_new_community/model/common/img_model.dart';
import 'package:common_utils/common_utils.dart';
import 'package:json_annotation/json_annotation.dart';
@JsonSerializable()
class CommitteeItemModel { class CommitteeItemModel {
int? id; final int? id;
int? positionId; final String? name;
String? name; final String? tel;
int? sexId; final String? industryCommitteeTypeName;
int? age; final String? buildingName;
int? educationId; final String? unitName;
String? roomName; final String? estateName;
String? profession; final String? appointmentStartTime;
String? roomNumber; final String? appointmentEndTime;
int? unitNo; final String? createDate;
int? estateNo; final List<ImgModel>? imgList;
List<ImgModel>? imgUrls;
String get sexValue { factory CommitteeItemModel.fromJson(Map<String, dynamic> json) =>
if (sexId == 0 || sexId == null) return '未设置'; _$CommitteeItemModel(json);
if (sexId == 1) return ''; DateTime? get appointmentStartDT => DateUtil.getDateTime(appointmentStartTime!);
if (sexId == 2) return ''; DateTime? get appointmentEndDT => DateUtil.getDateTime(appointmentEndTime!);
return '未设置'; DateTime? get createDateDT => DateUtil.getDateTime(createDate!);
} const CommitteeItemModel({
required this.id,
String get positionValue { required this.name,
switch (positionId) { required this.tel,
case 1: required this.industryCommitteeTypeName,
return '业委会主任'; required this.buildingName,
case 2: required this.unitName,
return '业委会副主任'; required this.estateName,
case 3: required this.appointmentStartTime,
return '业委会委员'; required this.appointmentEndTime,
default: required this.createDate,
return ''; required this.imgList,
}
}
CommitteeItemModel({
this.id,
this.positionId,
this.name,
this.sexId,
this.age,
this.educationId,
this.roomName,
this.profession,
this.roomNumber,
this.unitNo,
this.estateNo,
this.imgUrls,
}); });
CommitteeItemModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
positionId = json['positionId'];
name = json['name'];
sexId = json['sexId'];
age = json['age'];
educationId = json['educationId'];
roomName = json['roomName'];
profession = json['profession'];
roomNumber = json['roomNumber'];
unitNo = json['unitNo'];
estateNo = json['estateNo'];
if (json['imgUrls'] != null) {
imgUrls =
(json['imgUrls'] as List).map((e) => ImgModel.fromJson(e)).toList();
} else
imgUrls = [];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['positionId'] = this.positionId;
data['name'] = this.name;
data['sexId'] = this.sexId;
data['age'] = this.age;
data['educationId'] = this.educationId;
data['roomName'] = this.roomName;
data['profession'] = this.profession;
data['roomNumber'] = this.roomNumber;
data['unitNo'] = this.unitNo;
data['estateNo'] = this.estateNo;
return data;
}
} }
CommitteeItemModel _$CommitteeItemModel(Map<String, dynamic> json) =>
CommitteeItemModel(
id: json['id'] as int,
name: json['name'] as String,
tel: json['tel'] as String,
industryCommitteeTypeName: json['industryCommitteeTypeName'] as String,
buildingName: json['buildingName'] as String,
unitName: json['unitName'] as String,
estateName: json['estateName'] as String,
appointmentStartTime: json['appointmentStartTime'] as String,
appointmentEndTime: json['appointmentEndTime'] as String,
createDate: json['createDate'] as String,
imgList: (json['imgList'] as List<dynamic>)
.map((e) => ImgModel.fromJson(e as Map<String, dynamic>))
.toList(),
);

@ -111,7 +111,7 @@ class _ConvenientPhonePageState extends State<ConvenientPhonePage> {
CupertinoIcons.search, CupertinoIcons.search,
size: 42.w, size: 42.w,
), ),
contentPadding: EdgeInsets.only(top: 14.w), contentPadding: EdgeInsets.only(top: 3.w),
// isDense: true, // isDense: true,
hintText: '搜索机构', hintText: '搜索机构',
hintStyle: hintStyle:

@ -9,12 +9,15 @@ import 'package:aku_new_community/utils/headers.dart';
import 'package:aku_new_community/utils/hive_store.dart'; import 'package:aku_new_community/utils/hive_store.dart';
import 'package:aku_new_community/utils/websocket/tips_dialog.dart'; import 'package:aku_new_community/utils/websocket/tips_dialog.dart';
import 'package:aku_new_community/widget/bee_scaffold.dart'; import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../../utils/network/net_util.dart';
class IndustryCommitteePage extends StatefulWidget { class IndustryCommitteePage extends StatefulWidget {
IndustryCommitteePage({Key? key}) : super(key: key); IndustryCommitteePage({Key? key}) : super(key: key);
@ -23,19 +26,20 @@ class IndustryCommitteePage extends StatefulWidget {
} }
class _IndustryCommitteePageState extends State<IndustryCommitteePage> { class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
List<CommitteeItemModel> _models = [];
EasyRefreshController _refreshController = EasyRefreshController(); EasyRefreshController _refreshController = EasyRefreshController();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Future.delayed(Duration(milliseconds: 0), () async { // Future.delayed(Duration(milliseconds: 0), () async {
var agreement = // var agreement =
await HiveStore.appBox?.get('IndustryCommitteePage') ?? false; // await HiveStore.appBox?.get('IndustryCommitteePage') ?? false;
if (!agreement) { // if (!agreement) {
await TipsDialog.tipsDialog(); // await TipsDialog.tipsDialog();
HiveStore.appBox!.put('IndustryCommitteePage', true); // HiveStore.appBox!.put('IndustryCommitteePage', true);
} // }
}); // });
} }
Widget _buildBottomNavi() { Widget _buildBottomNavi() {
@ -95,7 +99,7 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
borderRadius: BorderRadius.circular(4.w), borderRadius: BorderRadius.circular(4.w),
child: FadeInImage.assetNetwork( child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP, placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
image: SAASAPI.image(ImgModel.first(model.imgUrls)), image: SAASAPI.image(ImgModel.first(model.imgList)),
height: 150.w, height: 150.w,
width: 150.w, width: 150.w,
fit: BoxFit.cover, fit: BoxFit.cover,
@ -112,9 +116,10 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
height: 44.w, height: 44.w,
padding: padding:
EdgeInsets.symmetric(horizontal: 22.w, vertical: 6.w), EdgeInsets.symmetric(horizontal: 22.w, vertical: 6.w),
child: model.positionValue.text child: model.industryCommitteeTypeName!.text
.size(24.sp) .size(24.sp)
.color(ktextPrimary) .color(ktextPrimary)
.bold
.make(), .make(),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFFFF3CD), color: Color(0xFFFFF3CD),
@ -123,17 +128,17 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
), ),
), ),
].row(), ].row(),
6.hb, 15.hb,
...[ ...[
'住址:${model.roomName}' '住址:${model.buildingName}${model.unitName}单元${model.estateName}房间'
.text .text
.size(24.sp) .size(23.sp)
.color(ktextSubColor) .color(ktextSubColor)
.make(), .make(),
// '任职期限XXXXX'.text.size(24.sp).color(ktextSubColor).make(), // '任职期限XXXXX'.text.size(24.sp).color(ktextSubColor).make(),
'从事岗位:${model.profession}' '任职期限:${DateUtil.formatDate(model.appointmentStartDT, format: 'yyyy年MM月dd日')}-${DateUtil.formatDate(model.appointmentEndDT, format: 'yyyy年MM月dd日')}'
.text .text
.size(24.sp) .size(23.sp)
.color(ktextSubColor) .color(ktextSubColor)
.make(), .make(),
].sepWidget(separate: 10.hb), ].sepWidget(separate: 10.hb),
@ -148,23 +153,54 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
return BeeScaffold( return BeeScaffold(
title: '业委会', title: '业委会',
systemStyle: SystemStyle.genStyle(bottom: Color(0xFF2A2A2A)), systemStyle: SystemStyle.genStyle(bottom: Color(0xFF2A2A2A)),
body: BeeListView<CommitteeItemModel>( body: Container(
path: API.manager.commiteeStaff, child: EasyRefresh(
convert: (model) { firstRefresh: true,
return model.rows.map((e) => CommitteeItemModel.fromJson(e)).toList(); header: MaterialHeader(),
},
controller: _refreshController, controller: _refreshController,
builder: (items) { onRefresh: () async {
return ListView.separated( var base = await NetUtil().get(SAASAPI.committeeStaff.list);
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 20.w), if (base.success) {
print(base.success);
_models = (base.data as List)
.map((e) => CommitteeItemModel.fromJson(e))
.toList();
}
setState(() {});
},
child: ListView.separated(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return _buildCard(items[index]); return _buildCard(_models[index]);
}, },
separatorBuilder: (context, index) => 20.hb, separatorBuilder: (context, index) {
itemCount: items.length, return Divider(
thickness: 1.w,
height: 40.w,
color: Color(0xFFD8D8D8),
); );
}, },
itemCount: _models.length,
),
),
), ),
// BeeListView<CommitteeItemModel>(
// path: SAASAPI.committeeStaff.list,
// convert: (model) {
// return model.rows.map((e) => CommitteeItemModel.fromJson(e)).toList();
// },
// controller: _refreshController,
// builder: (items) {
// return ListView.separated(
// padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 20.w),
// itemBuilder: (context, index) {
// return _buildCard(items[index]);
// },
// separatorBuilder: (context, index) => 20.hb,
// itemCount: items.length,
// );
// },
// ),
bottomNavi: _buildBottomNavi(), bottomNavi: _buildBottomNavi(),
); );
} }

@ -101,12 +101,14 @@ class _LifePayRecordPageState extends State<LifePayRecordPage> {
borderRadius: BorderRadius.circular(8.w), borderRadius: BorderRadius.circular(8.w),
), ),
child: DateUtil.formatDate(DateUtil.getDateTime(model.createDate), child: DateUtil.formatDate(DateUtil.getDateTime(model.createDate),
format: 'MM-dd HH-mm') format: 'MM-dd HH:mm')
.text .text
.size(24.sp) .size(24.sp)
.color(Colors.black.withOpacity(0.45)) .color(Colors.black.withOpacity(0.45))
.make(), .make(),
), ),
Column(
children: [
Row( Row(
children: [ children: [
model.chargesName.text model.chargesName.text
@ -127,7 +129,11 @@ class _LifePayRecordPageState extends State<LifePayRecordPage> {
children: [ children: [
'缴纳金额'.text.color(ktextSubColor).size(28.sp).make(), '缴纳金额'.text.color(ktextSubColor).size(28.sp).make(),
Spacer(), Spacer(),
'${model.payAmount}'.text.color(ktextPrimary).size(28.sp).make(), '${model.payAmount}'
.text
.color(ktextPrimary)
.size(28.sp)
.make(),
], ],
), ),
Row( Row(
@ -161,6 +167,8 @@ class _LifePayRecordPageState extends State<LifePayRecordPage> {
.color(Colors.white) .color(Colors.white)
.padding(EdgeInsets.symmetric(vertical: 32.w, horizontal: 20.w)) .padding(EdgeInsets.symmetric(vertical: 32.w, horizontal: 20.w))
.make(), .make(),
],
),
); );
} }
} }

@ -1,4 +1,6 @@
import 'package:aku_new_community/constants/api.dart'; import 'package:aku_new_community/constants/api.dart';
import 'package:aku_new_community/constants/new_api.dart';
import 'package:aku_new_community/constants/saas_api.dart';
import 'package:aku_new_community/model/manager/article_QR_code_model.dart'; import 'package:aku_new_community/model/manager/article_QR_code_model.dart';
import 'package:aku_new_community/model/manager/moving_company_model.dart'; import 'package:aku_new_community/model/manager/moving_company_model.dart';
import 'package:aku_new_community/model/manager/questionnaire_detail_model.dart'; import 'package:aku_new_community/model/manager/questionnaire_detail_model.dart';
@ -229,7 +231,7 @@ class ManagerFunc {
static Future<QuestionnaireDetialModel> questionnairefindById(int? id) async { static Future<QuestionnaireDetialModel> questionnairefindById(int? id) async {
BaseModel baseModel = await NetUtil().get( BaseModel baseModel = await NetUtil().get(
API.manager.questionnairefindById, NEWAPI.questionnaire.detail,
params: { params: {
'questionnaireId': id, 'questionnaireId': id,
}, },
@ -241,7 +243,7 @@ class ManagerFunc {
static Future<BaseModel> questionnaireSubmit( static Future<BaseModel> questionnaireSubmit(
int? id, List<AppQuestionnaireAnswerSubmits> model) async { int? id, List<AppQuestionnaireAnswerSubmits> model) async {
BaseModel baseModel = await NetUtil().post( BaseModel baseModel = await NetUtil().post(
API.manager.questionnaireSubmit, NEWAPI.questionnaire.submit,
params: { params: {
'id': id, 'id': id,
'appQuestionnaireAnswerSubmits': model, 'appQuestionnaireAnswerSubmits': model,

@ -1,3 +1,4 @@
import 'package:aku_new_community/widget/others/user_tool.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -86,8 +87,8 @@ class AddressListPageState extends State<AddressListPage>
firstRefresh: true, firstRefresh: true,
header: MaterialHeader(), header: MaterialHeader(),
controller: _refreshController, controller: _refreshController,
onRefresh: () async { onRefresh: () async { await UserTool.appProvider.getMyAddress();
_addressModels = await Userfunc.getMyAddress(); _addressModels = UserTool.appProvider.addressModels;
_onload = false; _onload = false;
setState(() {}); setState(() {});
}, },

@ -68,6 +68,7 @@ class _MyAddressItemState extends State<MyAddressItem> {
if (result) { if (result) {
await appProvider.getMyAddress(); await appProvider.getMyAddress();
widget.refreshController!.callRefresh(); widget.refreshController!.callRefresh();
Get.back();
} }
}, },
child: Container( child: Container(

@ -18,218 +18,381 @@ class _PrivacyPageState extends State<PrivacyPage> {
padding: EdgeInsets.all(16.sp), padding: EdgeInsets.all(16.sp),
child: Text( child: Text(
''' '''
20220325 2022420
使  
使App40-11使使使使访便
使 线
 使 便  
 使        使            使线使
                
  使 CookiesSDK 
 
  
 访  
14 使
kaidalai@163.com
线
20220325
20220327
kaidalai@163.com7
1  
2使 使
3 使 Cookies
4
5
6
7
8
9
便使使线 使
SDK
 
使 使
使 使
 
1                             
使 1 
AndroidV8.0.0iOSV7.4.0访-> 1使
使使使
使 2使
2 使使
便使   2使
3 3使
使使  
4 使
apppdf使使 1/
5 便使使
Android 使 使使
/使
1   使 2
2 SDK MACAPPlist 使使
3       使使IP使访
   使使MACIMEI/Android ID/IDFA/OpenUDID/GUID/SIM IMSI IP GPSWLAN
使使
 Android使 Android访 3
  crash   使
使WLANWLANWLANWLAN WiFi 使WLANWLANWLANWLAN 4
退 / 使 / 退
  
使       使
  iOS
使PCTVweb   使  便使便
v8.5.3 使  使
toast使   5
便    APP-- SDK
IDID 使IFAAiOS使ID  IDIDiOS IDID   使IFAAiOS使ID APP 6
WLANWLAN访   Wi-Fi SSID 使   WLAN WLAN WLAN WLANWLANWLAN   访 使 线EMS使
使  使使 使  便 7
使  使 Android6.0 使便便
使 使 使 使 Bonjour Apple TV 使
iOS 使 AndroidiOS  8
SDK使 使使
使APP使使SDK 使SDKSDKSDK SDK使SDKSDKSDK
9
使Cookie 使
1Cookie 10使
访CookieCookie访访Cookie访访 使
Cookie Cookie AboutCookies.orgCookieCookie 访 11
2 /使使
Cookie 使使访访HTTPSSSL 1访使
3 2/使使
访便HTTPS 3//访使////使
4Do Not Track 4使使
Do Not Track Do Not Track Do Not Track 访使使
12
使/
 
便使
使使使
 
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8// 8
9 9
10 10
11 11
使 使
1访  
2
1 宿
2线线 使 Cookies
3 Cookies
4 Cookies使
5 使CookiesCookies使Cookies广
6  
7 ()
8 Cookies 使便
9  
3使使APP Cookies使
使Cookies
1Cookies
2使Cookies使/
3广Cookies广广
使CookiesCookies广使广
退 Cookies CookiesCookiesCookies访使
1 1
2 2
3 3使
访 4便便使使
5
使 1/
APISDK 2使
3广广广便广
6使
 
1
2
 
1
1使 2
2  
3
1
2
3
4
5
4使使 6
5使 7
6 8
1
2
3
 
使 访使访访 SSL https 使使访访
 
使
访  
1
使 访使
访 1 SSLSecure Socket Layer
访使访访 2使
->-APPAPP访kaidalai@163.com7 3HTTPSHyper Text Transfer Protocol over Secure Socket Layer
4
访 5访使
kaidalai@163.com7 2
1
kaidalai@163.com 2使
3访访访
4
5
1/iOS->-> 6
2/iOS->->-> 3访
 
使 1使
使Android->->iOS->APP->->->使 2使使
  3便
 
访使
 
访
访访
1
3访线使访
 
1访
21
1
2使
3
4
 
使
 
---使
 
 
1 1
2 2
3 3
4 4
5 5
6 6
7
8
使
14
1Cookies
2广使
3SDK使SDK
1Push SDK/
2SDK
1使 3SDK
2 4SDK便
3 5SDK
4使 SDK使SDKSDK
5 使使使
6
使使使
使使使使
使使使使
使
 
广
kaidalai@163.com40-11
kaidalai@163.com 518000
kaidalai@163.com
 
 
 
40-11  
 
使
使使访使
 
使
 
使
使使/使
1/1000
2使便
3使
4使使使使
5
宿
 
 
/
() 访
PCApp访
 
() /
PCApp//
使
 
()
/
1使
2使
3
4使
5
 
访
 
kaidalai@163.com40-11518000
/
 
 
SDK
SDKSDK
 
SDK
使
https://dev.mi.com/console/appservice/push.html
 
SDK
使
 https://developer.huawei.com/consumer/cn/service/hms/pushservice.html
 
VIVOSDK
使
https://dev.vivo.com.cn/documentcenter/doc/233
 
OPPOSDK
使
https://open.oppomobile.com/wiki/doctid=10196
 
Glide SDK
使线
https://github.com/ansen666/GlideTest
 
SDK
使
https://open.weixin.qq.com/
  
QQ SDK
使QQQQ
https://open.tencent.com/
 
使使
https://pay.weixin.qq.com/
 
使使
https://docs.open.alipay.com/
 
SDK
使使
https://open.unionpay.com/tjweb/index
    
SDK
使poi
IMEIMACWIFI
https://lbs.amap.com/
https://lbs.amap.com/home/privacy/
 
SDK
使
https://cloud.tencent.com/document/product/584/44877
SDK
使
https://cloud.tencent.com/document/product/454/41514
SDK
使
https://meiqia.com/help/development/dlu4mi
SDK
使
https://github.com/customPub/flutter_qr_reader
''', ''',
style: TextStyle( style: TextStyle(
fontSize: 30.w, fontSize: 30.w,

@ -310,6 +310,8 @@ class AppProvider extends ChangeNotifier {
/// ///
Future getMyAddress() async { Future getMyAddress() async {
BaseModel model = await NetUtil().get(SAASAPI.market.address.myAddress); BaseModel model = await NetUtil().get(SAASAPI.market.address.myAddress);
print((model.data as List).length);
if ((model.data as List).length == 0) { if ((model.data as List).length == 0) {
_addressModels.clear(); _addressModels.clear();
_defaultAddressModel=null; _defaultAddressModel=null;

@ -1,5 +1,7 @@
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import '../../model/common/img_model.dart';
part 'my_family_member_list_model.g.dart'; part 'my_family_member_list_model.g.dart';
@JsonSerializable() @JsonSerializable()
@ -29,6 +31,7 @@ class Member {
final int id; final int id;
final String name; final String name;
final int identity; final int identity;
final List<ImgModel> avatarImgList;
factory Member.fromJson(Map<String, dynamic> json) => _$MemberFromJson(json); factory Member.fromJson(Map<String, dynamic> json) => _$MemberFromJson(json);
@ -36,5 +39,6 @@ class Member {
required this.id, required this.id,
required this.name, required this.name,
required this.identity, required this.identity,
required this.avatarImgList,
}); });
} }

@ -23,4 +23,7 @@ Member _$MemberFromJson(Map<String, dynamic> json) => Member(
id: json['id'] as int, id: json['id'] as int,
name: json['name'] as String, name: json['name'] as String,
identity: json['identity'] as int, identity: json['identity'] as int,
avatarImgList: (json['imgList'] as List<dynamic>)
.map((e) => ImgModel.fromJson(e as Map<String, dynamic>))
.toList(),
); );

@ -14,7 +14,6 @@ import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
class AddNewEventPage extends StatefulWidget { class AddNewEventPage extends StatefulWidget {
final int? initTopic; final int? initTopic;
@ -229,20 +228,26 @@ class _AddNewEventPageState extends State<AddNewEventPage> {
} }
} }
class TopicWidgets extends StatelessWidget { class TopicWidgets extends StatefulWidget {
const TopicWidgets({
Key? key,
this.hotTopicModels,
this.topicTags,
}) : assert(hotTopicModels != null || topicTags != null),
super(key: key);
final List<TopicListModel>? hotTopicModels; final List<TopicListModel>? hotTopicModels;
final List<TopicTag>? topicTags; final List<TopicTag>? topicTags;
List<dynamic> get models => List<dynamic> get models =>
hotTopicModels == null ? topicTags! : hotTopicModels!; hotTopicModels == null ? topicTags! : hotTopicModels!;
const TopicWidgets({Key? key,this.hotTopicModels,
this.topicTags,}) : super(key: key);
@override
State<TopicWidgets> createState() => _TopicWidgetsState();
}
class _TopicWidgetsState extends State<TopicWidgets> {
bool _deleteTopic=false;
@override
void setState(VoidCallback fn) {
super.setState(fn);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Wrap( return Wrap(
@ -251,8 +256,17 @@ class TopicWidgets extends StatelessWidget {
runSpacing: 12.w, runSpacing: 12.w,
crossAxisAlignment: WrapCrossAlignment.start, crossAxisAlignment: WrapCrossAlignment.start,
children: [ children: [
...models ...widget.models
.map((e) => Container( .map(
(e) => GestureDetector(
onLongPress: () {
_deleteTopic = !_deleteTopic;
setState(() { });
print(_deleteTopic);
},
child: Stack(
children: [
Container(
padding: padding:
EdgeInsets.symmetric(vertical: 8.w, horizontal: 16.w), EdgeInsets.symmetric(vertical: 8.w, horizontal: 16.w),
decoration: BoxDecoration( decoration: BoxDecoration(
@ -263,9 +277,32 @@ class TopicWidgets extends StatelessWidget {
.size(24.sp) .size(24.sp)
.color(Color(0xFF547FC0)) .color(Color(0xFF547FC0))
.make(), .make(),
)) ),
.toList(), if (_deleteTopic)
Positioned(
top: 10.w,
right: 10.w,
child: GestureDetector(
onTap: () {
widget.models.remove(e);
setState(() { });
},
child: Material(
child: Icon(
CupertinoIcons.xmark_circle_fill,
size: 30.w,
color: Colors.red.withOpacity(0.60),
),
),
),
),
],
),
),
).toList(),
], ],
); );
} }
} }

@ -91,7 +91,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
); );
} }
_buildAdviceContent(AppAdviceContentVos item) { _buildAdviceContent(AppAdviceFBIContentVos item) {
String type = ''; String type = '';
switch (item.createUserType) { switch (item.createUserType) {
case 1: case 1:
@ -127,13 +127,14 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
children: [ children: [
'您的$adviceValue'.text.black.bold.size(38.sp).make(), '您的$adviceValue'.text.black.bold.size(38.sp).make(),
30.hb, 30.hb,
_model.appAdviceDetailVo!.appAdviceVo!.content!.text _model.appAdviceFBIDetailVo!.content!
.text
.color(ktextSubColor) .color(ktextSubColor)
.size(28.sp) .size(28.sp)
.make(), .make(),
24.hb, 24.hb,
DateUtil.formatDate( DateUtil.formatDate(
_model.appAdviceDetailVo!.appAdviceVo!.date, _model.appAdviceFBIDetailVo!.date,
format: 'yyyy年MM月dd日 HH:mm', format: 'yyyy年MM月dd日 HH:mm',
).text.size(24.sp).color(Color(0xFF999999)).make(), ).text.size(24.sp).color(Color(0xFF999999)).make(),
...widget.model!.imgUrls!.isEmpty ...widget.model!.imgUrls!.isEmpty
@ -154,7 +155,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
color: Color(0xFFD8D8D8), color: Color(0xFFD8D8D8),
) )
], ],
..._model.appAdviceDetailVo!.appAdviceContentVos! ..._model.appAdviceFBIContentVos!
.map((e) => _buildAdviceContent(e)) .map((e) => _buildAdviceContent(e))
.toList(), .toList(),
], ],
@ -186,10 +187,10 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
header: MaterialHeader(), header: MaterialHeader(),
onRefresh: () async { onRefresh: () async {
Response res = await NetUtil().dio!.get( Response res = await NetUtil().dio!.get(
API.manager.adviceDetail, SAASAPI.advice.find,
queryParameters: {'adviceId': widget.model!.id}, queryParameters: {'adviceId': widget.model!.id},
); );
_model = AdviceDetailModel.fromJson(res.data); _model = AdviceDetailModel.fromJson(res.data['data']);
_loading = false; _loading = false;
if (mounted) setState(() {}); if (mounted) setState(() {});
}, },
@ -219,7 +220,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
child: BottomButton( child: BottomButton(
onPressed: () async { onPressed: () async {
BaseModel baseModel = BaseModel baseModel =
await NetUtil().get(API.manager.completeFeedBack, params: { await NetUtil().get(SAASAPI.advice.complete, params: {
"adviceId": widget.model!.id, "adviceId": widget.model!.id,
}); });
if (baseModel.success) { if (baseModel.success) {
@ -229,7 +230,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
}, },
child: '完成沟通'.text.bold.make(), child: '完成沟通'.text.bold.make(),
), ),
) ),
], ],
); );
} }

@ -111,7 +111,7 @@ class _AdvicePageState extends State<AdvicePage> with TickerProviderStateMixin {
controller: _tabController, controller: _tabController,
children: List.generate(2, (index) { children: List.generate(2, (index) {
return BeeListView<SuggestionOrComplainModel>( return BeeListView<SuggestionOrComplainModel>(
path: API.manager.advice, path: SAASAPI.advice.list,
extraParams: {'adviceType': adviceValue(index)}, extraParams: {'adviceType': adviceValue(index)},
controller: _refreshController, controller: _refreshController,
convert: (model) => model.rows convert: (model) => model.rows
@ -168,7 +168,7 @@ class _AdvicePageState extends State<AdvicePage> with TickerProviderStateMixin {
firstChild: BottomButton( firstChild: BottomButton(
onPressed: () async { onPressed: () async {
await NetUtil().post( await NetUtil().post(
API.manager.deleteAdvice, SAASAPI.advice.delete,
params: {'ids': _selectedItems}, params: {'ids': _selectedItems},
showMessage: true, showMessage: true,
); );

@ -11,7 +11,6 @@ import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import 'package:aku_new_community/const/resource.dart'; import 'package:aku_new_community/const/resource.dart';
import 'package:aku_new_community/constants/api.dart';
import 'package:aku_new_community/constants/app_theme.dart'; import 'package:aku_new_community/constants/app_theme.dart';
import 'package:aku_new_community/constants/saas_api.dart'; import 'package:aku_new_community/constants/saas_api.dart';
import 'package:aku_new_community/provider/app_provider.dart'; import 'package:aku_new_community/provider/app_provider.dart';
@ -23,6 +22,9 @@ import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:aku_new_community/widget/buttons/bottom_button.dart'; import 'package:aku_new_community/widget/buttons/bottom_button.dart';
import 'package:aku_new_community/widget/picker/grid_image_picker.dart'; import 'package:aku_new_community/widget/picker/grid_image_picker.dart';
import '../../../provider/user_provider.dart';
import '../../../widget/others/user_tool.dart';
class NewAdvicePage extends StatefulWidget { class NewAdvicePage extends StatefulWidget {
final AdviceType type; final AdviceType type;
final int initType; final int initType;
@ -97,9 +99,9 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
Future addAdvice(int type, List<File> files, String content) async { Future addAdvice(int type, List<File> files, String content) async {
VoidCallback cancel = BotToast.showLoading(); VoidCallback cancel = BotToast.showLoading();
List<String?> urls = List<String?> urls =
await NetUtil().uploadFiles(files, API.upload.uploadAdvice); await NetUtil().uploadFiles(files,SAASAPI.uploadFile.uploadImg);
BaseModel baseModel = await NetUtil().post( BaseModel baseModel = await NetUtil().post(
API.manager.addAdvice, SAASAPI.advice.insert,
params: { params: {
'type': type, 'type': type,
'content': content, 'content': content,
@ -127,7 +129,7 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final appProvider = Provider.of<AppProvider>(context); final userProvider = Provider.of<UserProvider>(context);
return BeeScaffold.white( return BeeScaffold.white(
systemStyle: SystemStyle.yellowBottomBar, systemStyle: SystemStyle.yellowBottomBar,
title: title, title: title,
@ -143,7 +145,8 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
width: 60.w, width: 60.w,
), ),
40.wb, 40.wb,
'${S.of(context)!.tempPlotName}\n${appProvider.selectedHouse!.roomName}' '${userProvider.defaultHouse!.addressName}${userProvider.defaultHouse!.communityName}\n'
'${userProvider.defaultHouse!.buildingName}幢-${UserTool.userProvider.defaultHouse!.unitName}单元-${userProvider.defaultHouse!.estateName}'
.text .text
.size(32.sp) .size(32.sp)
.black .black

@ -14,6 +14,7 @@ import 'package:aku_new_community/utils/network/base_model.dart';
import 'package:aku_new_community/widget/bee_divider.dart'; import 'package:aku_new_community/widget/bee_divider.dart';
import 'package:aku_new_community/widget/bee_scaffold.dart'; import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:aku_new_community/widget/buttons/bottom_button.dart'; import 'package:aku_new_community/widget/buttons/bottom_button.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
@ -21,9 +22,9 @@ import 'package:get/get.dart';
class QuestionnaireDetailPage extends StatefulWidget { class QuestionnaireDetailPage extends StatefulWidget {
final int? id; final int? id;
final int? status; final bool? answered;
QuestionnaireDetailPage({Key? key, this.id, this.status}) : super(key: key); QuestionnaireDetailPage({Key? key, this.id, this.answered}) : super(key: key);
@override @override
_QuestionnaireDetailPageState createState() => _QuestionnaireDetailPageState createState() =>
@ -258,12 +259,14 @@ class _QuestionnaireDetailPageState extends State<QuestionnaireDetailPage> {
bottomNavi: BottomButton( bottomNavi: BottomButton(
child: '确认提交' child: '确认提交'
.text .text
.color(widget.status != 2 ? ktextSubColor : ktextPrimary) .color(widget.answered! ? ktextSubColor : ktextPrimary)
.size(32.sp) .size(32.sp)
.bold .bold
.make(), .make(),
onPressed: widget.status != 2 onPressed: widget.answered != 2
? () {} ? () {
BotToast.showText(text: '该问卷已填写过');
}
: () async { : () async {
BaseModel baseModel = await ManagerFunc.questionnaireSubmit( BaseModel baseModel = await ManagerFunc.questionnaireSubmit(
widget.id, _submitModels); widget.id, _submitModels);

@ -1,5 +1,6 @@
import 'package:aku_new_community/base/base_style.dart'; import 'package:aku_new_community/base/base_style.dart';
import 'package:aku_new_community/constants/api.dart'; import 'package:aku_new_community/constants/api.dart';
import 'package:aku_new_community/constants/new_api.dart';
import 'package:aku_new_community/constants/saas_api.dart'; import 'package:aku_new_community/constants/saas_api.dart';
import 'package:aku_new_community/model/common/img_model.dart'; import 'package:aku_new_community/model/common/img_model.dart';
import 'package:aku_new_community/model/manager/questinnaire_model.dart'; import 'package:aku_new_community/model/manager/questinnaire_model.dart';
@ -10,6 +11,7 @@ import 'package:aku_new_community/utils/hive_store.dart';
import 'package:aku_new_community/utils/websocket/tips_dialog.dart'; import 'package:aku_new_community/utils/websocket/tips_dialog.dart';
import 'package:aku_new_community/widget/bee_scaffold.dart'; import 'package:aku_new_community/widget/bee_scaffold.dart';
import 'package:aku_new_community/widget/others/stack_avatar.dart'; import 'package:aku_new_community/widget/others/stack_avatar.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:common_utils/common_utils.dart'; import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart';
@ -40,12 +42,11 @@ class _QuestionnairePageState extends State<QuestionnairePage> {
String _getButtonText(int? status) { String _getButtonText(int? status) {
switch (status) { switch (status) {
case 1: case 1:
return '未开始';
case 2: case 2:
return '去投票'; return '进行中';
case 3: case 3:
return '已结束'; return '已结束';
case 4:
return '已投票';
default: default:
return ''; return '';
} }
@ -54,10 +55,14 @@ class _QuestionnairePageState extends State<QuestionnairePage> {
Widget _buildCard(QuestionnaireModel model) { Widget _buildCard(QuestionnaireModel model) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
if(model.status==2){
Get.to(() => QuestionnaireDetailPage( Get.to(() => QuestionnaireDetailPage(
id: model.id, id: model.id,
status: model.status, answered: model.answered,
)); ));
}else{
BotToast.showText(text: '该问卷已结束或未开始');
}
}, },
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
@ -142,6 +147,7 @@ class _QuestionnairePageState extends State<QuestionnairePage> {
if (model.status == 2) { if (model.status == 2) {
Get.to(() => QuestionnaireDetailPage( Get.to(() => QuestionnaireDetailPage(
id: model.id, id: model.id,
answered: model.answered,
)); ));
} }
}, },
@ -171,7 +177,7 @@ class _QuestionnairePageState extends State<QuestionnairePage> {
return BeeScaffold( return BeeScaffold(
title: '问卷调查', title: '问卷调查',
body: BeeListView<QuestionnaireModel>( body: BeeListView<QuestionnaireModel>(
path: API.manager.questionnaireList, path: NEWAPI.questionnaire.list,
controller: _easyRefreshController, controller: _easyRefreshController,
convert: (model) { convert: (model) {
return model.rows return model.rows

@ -74,8 +74,9 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
if (appProvider.defaultAddressModel == null) { if (appProvider.defaultAddressModel == null) {
return '选择收货地址'; return '选择收货地址';
} else { } else {
return (appProvider.defaultAddressModel!.locationName ?? '') + return (_goodDetail!.stockStatus == 1) ? '有货' : '无货';
(appProvider.defaultAddressModel!.addressDetail ?? ''); // (appProvider.defaultAddressModel!.locationName ?? '') +
// (appProvider.defaultAddressModel!.addressDetail ?? '');
} }
} else { } else {
return (_addressModel!.locationName ?? '') + return (_addressModel!.locationName ?? '') +
@ -393,6 +394,7 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
var result = await Get.to(() => AddressListPage( var result = await Get.to(() => AddressListPage(
canBack: true, canBack: true,
)); ));
_addressModel = null;
if (result != null) { if (result != null) {
_addressModel = result; _addressModel = result;
_refreshController.callRefresh(); _refreshController.callRefresh();
@ -418,8 +420,9 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
width: 430.w, width: 430.w,
child: Text( child: Text(
receiveAddress, receiveAddress,
style: style: receiveAddress == '无货'
TextStyle(fontSize: 24.sp, color: ktextPrimary), ? TextStyle(fontSize: 24.sp, color: kDangerColor)
: TextStyle(fontSize: 24.sp, color: ktextPrimary),
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
@ -433,27 +436,27 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
16.wb, 16.wb,
], ],
), ),
Row( // Row(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
120.wb, // 120.wb,
20.hb, // 20.hb,
Offstage( // Offstage(
offstage: receiveAddress == '选择收货地址', // offstage: receiveAddress == '选择收货地址',
child: (_goodDetail!.stockStatus == 1) // child: (_goodDetail!.stockStatus == 1)
? '有货' // ? '有货'
.text // .text
.color(Color(0xFFE52E2E)) // .color(Color(0xFFE52E2E))
.size(28.sp) // .size(28.sp)
.make() // .make()
: '无货' // : '无货'
.text // .text
.color(Color(0xFFE52E2E)) // .color(Color(0xFFE52E2E))
.size(28.sp) // .size(28.sp)
.make(), // .make(),
) // )
], // ],
), // ),
], ],
), ),
), ),
@ -668,7 +671,7 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
onTap: () async { onTap: () async {
var re = await SearchFunc.addGoodsCar(_goodDetail!.id); var re = await SearchFunc.addGoodsCar(_goodDetail!.id);
if (re) { if (re) {
Get.back(); BotToast.showText(text: '已添加进购物车');
} }
}, },
child: Container( child: Container(
@ -779,5 +782,4 @@ class _GoodDetailPageState extends State<GoodDetailPage> {
return count + ''; return count + '';
} }
} }

@ -79,7 +79,7 @@ class SearchFunc {
/// ///
static Future<bool> addGoodsCar(int jcookGoodsId) async { static Future<bool> addGoodsCar(int jcookGoodsId) async {
BaseModel model = await NetUtil().get(SAASAPI.market.shopCart.insert, BaseModel model = await NetUtil().get(SAASAPI.market.shopCart.insert,
params: {'appGoodsPushId': jcookGoodsId}, showMessage: true); params: {'appGoodsPushId': jcookGoodsId}, showMessage: false);
return model.success; return model.success;
} }

@ -1,3 +1,4 @@
import 'package:aku_new_community/ui/profile/house/add_house_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -30,7 +31,9 @@ class _CertificationSuccessPageState extends State<CertificationSuccessPage> {
34.w.heightBox, 34.w.heightBox,
'提交成功'.text.size(40.sp).color(Colors.black).bold.make(), '提交成功'.text.size(40.sp).color(Colors.black).bold.make(),
94.w.heightBox, 94.w.heightBox,
AddHouseButton(text: '添加房屋', onTap: () {}), AddHouseButton(text: '添加房屋', onTap: () {
Get.to(() => AddHousePage());
}),
40.w.heightBox, 40.w.heightBox,
AddHouseButton( AddHouseButton(
text: '返回首页', text: '返回首页',

@ -54,8 +54,7 @@ class _ExamineViewState extends State<ExamineView> {
header: MaterialHeader(), header: MaterialHeader(),
footer: MaterialFooter(), footer: MaterialFooter(),
onRefresh: () async { onRefresh: () async {
var base = await NetUtil() var base = await NetUtil().get(SAASAPI.profile.family.myFamilyExamine, params: {
.get(SAASAPI.profile.family.myFamilyMember, params: {
'status': _currentIndex, 'status': _currentIndex,
}); });
if (base.success) { if (base.success) {

@ -12,6 +12,9 @@ import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import '../../../model/common/img_model.dart';
import '../../../widget/bee_avatar_widget.dart';
class MemberView extends StatefulWidget { class MemberView extends StatefulWidget {
const MemberView({Key? key}) : super(key: key); const MemberView({Key? key}) : super(key: key);
@ -65,7 +68,7 @@ class _MemberViewState extends State<MemberView> {
children: [ children: [
Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w), padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
child: '${model.buildingName}${model.unitName}${model.estateName}' child: '${model.buildingName}${model.unitName}单元${model.estateName}'
.text .text
.size(32.sp) .size(32.sp)
.color(Colors.black.withOpacity(0.85)) .color(Colors.black.withOpacity(0.85))
@ -79,7 +82,7 @@ class _MemberViewState extends State<MemberView> {
crossAxisCount: 4, crossAxisCount: 4,
children: [ children: [
...model.members ...model.members
.map((e) => _avatar(Identify.values[e.identity], e.name)) .map((e) => _avatar(e.avatarImgList,Identify.values[e.identity], e.name))
.toList() .toList()
], ],
shrinkWrap: true, shrinkWrap: true,
@ -92,6 +95,7 @@ class _MemberViewState extends State<MemberView> {
} }
Widget _avatar( Widget _avatar(
List<ImgModel> imgModel,
Identify identify, Identify identify,
String name, String name,
) { ) {
@ -108,8 +112,11 @@ class _MemberViewState extends State<MemberView> {
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40.w), borderRadius: BorderRadius.circular(40.w),
border: Border.all(color: kPrimaryColor, width: 4.w)), border: Border.all(color: kPrimaryColor, width: 4.w)),
child: Assets.newIcon.avatarPlaceholder child: BeeAvatarWidget(
.image(width: 80.w, height: 80.w), width: 80.w,
height: 80.w,
imgs: imgModel,
),
), ),
Positioned( Positioned(
bottom: -20.w, bottom: -20.w,

@ -71,8 +71,6 @@ class ApplicationUtil {
title: '业委会', title: '业委会',
imgPath: Assets.newIcon.icYwh.path, imgPath: Assets.newIcon.icYwh.path,
onTap: () { onTap: () {
BotToast.showText(text: '此功能暂未上线');
return;
Get.to(() => IndustryCommitteePage()); Get.to(() => IndustryCommitteePage());
}), }),
// AppElement('建议咨询', R.ASSETS_ICONS_FUNC_JYZX_PNG, // AppElement('建议咨询', R.ASSETS_ICONS_FUNC_JYZX_PNG,
@ -103,16 +101,12 @@ class ApplicationUtil {
title: '投诉表扬', title: '投诉表扬',
imgPath: Assets.newIcon.icTsby.path, imgPath: Assets.newIcon.icTsby.path,
onTap: () { onTap: () {
BotToast.showText(text: '此功能暂未上线');
return;
Get.to(() => AdvicePage(type: AdviceType.COMPLAIN)); Get.to(() => AdvicePage(type: AdviceType.COMPLAIN));
}), }),
AppElement( AppElement(
title: '问卷调查', title: '问卷调查',
imgPath: Assets.newIcon.icWjdc.path, imgPath: Assets.newIcon.icWjdc.path,
onTap: () { onTap: () {
BotToast.showText(text: '此功能暂未上线');
return;
Get.to(() => QuestionnairePage()); Get.to(() => QuestionnairePage());
}), }),
AppElement( AppElement(

@ -26,6 +26,7 @@ class StackAvatar extends StatelessWidget {
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(22.w + 2.w), borderRadius: BorderRadius.circular(22.w + 2.w),
border: Border.all(color: Colors.white,width: 1),
// border: Border.all(color: Color(0xFF999999)), // border: Border.all(color: Color(0xFF999999)),
), ),
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,

Loading…
Cancel
Save