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

@ -379,8 +379,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO;
@ -401,7 +401,7 @@
MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
@ -523,8 +523,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO;
@ -545,7 +545,7 @@
MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@ -561,8 +561,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = R45ZDS6S92;
ENABLE_BITCODE = NO;
@ -583,7 +583,7 @@
MARKETING_VERSION = 1.0.5;
PRODUCT_BUNDLE_IDENTIFIER = "com.aku-new-community.bee";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
PROVISIONING_PROFILE_SPECIFIER = dyb;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
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 _CommunityIntroduce communityIntroduce = _CommunityIntroduce();
static _ConveniencePhone conveniencePhone = _ConveniencePhone();
static _CommitteeStaff committeeStaff = _CommitteeStaff();
static _Advice advice = _Advice();
///
static _ProfileApi profile = _ProfileApi();
@ -352,3 +354,23 @@ class _ConveniencePhone {
///app便
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';
class AdviceDetailModel {
AppAdviceDetailVo? appAdviceDetailVo;
AppAdviceFBIDetailVo? appAdviceFBIDetailVo;
List<AppAdviceFBIContentVos>? appAdviceFBIContentVos;
AdviceDetailModel({this.appAdviceDetailVo});
AdviceDetailModel({this.appAdviceFBIDetailVo, this.appAdviceFBIContentVos});
AdviceDetailModel.fromJson(Map<String, dynamic> json) {
appAdviceDetailVo = json['appAdviceDetailVo'] != null
? new AppAdviceDetailVo.fromJson(json['appAdviceDetailVo'])
appAdviceFBIDetailVo = json['appAdviceFBIDetailVo'] != null
? new AppAdviceFBIDetailVo.fromJson(json['appAdviceFBIDetailVo'])
: null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
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));
if (json['appAdviceFBIContentVos'] != null) {
appAdviceFBIContentVos = [];
json['appAdviceFBIContentVos'].forEach((v) {
appAdviceFBIContentVos!.add(new AppAdviceFBIContentVos.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.appAdviceVo != null) {
data['appAdviceVo'] = this.appAdviceVo!.toJson();
if (this.appAdviceFBIDetailVo != null) {
data['appAdviceFBIDetailVo'] = this.appAdviceFBIDetailVo!.toJson();
}
if (this.appAdviceContentVos != null) {
data['appAdviceContentVos'] =
this.appAdviceContentVos!.map((v) => v.toJson()).toList();
if (this.appAdviceFBIContentVos != null) {
data['appAdviceFBIContentVos'] =
this.appAdviceFBIContentVos!.map((v) => v.toJson()).toList();
}
return data;
}
}
class AppAdviceVo {
class AppAdviceFBIDetailVo {
int? id;
int? type;
int? status;
String? content;
int? score;
String? createDate;
List<ImgModel>? imgUrls;
DateTime? get date => DateUtil.getDateTime(createDate!);
AppAdviceVo(
AppAdviceFBIDetailVo(
{this.id,
this.type,
this.status,
this.content,
this.score,
this.createDate,
this.imgUrls});
AppAdviceVo.fromJson(Map<String, dynamic> json) {
AppAdviceFBIDetailVo.fromJson(Map<String, dynamic> json) {
id = json['id'];
type = json['type'];
status = json['status'];
content = json['content'];
score = json['score'];
createDate = json['createDate'];
if (json['imgUrls'] != null) {
imgUrls = [];
@ -91,6 +74,7 @@ class AppAdviceVo {
data['type'] = this.type;
data['status'] = this.status;
data['content'] = this.content;
data['score'] = this.score;
data['createDate'] = this.createDate;
if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls!.map((v) => v.toJson()).toList();
@ -99,14 +83,14 @@ class AppAdviceVo {
}
}
class AppAdviceContentVos {
class AppAdviceFBIContentVos {
int? id;
int? createUserType;
String? content;
String? createDate;
int? parentId;
AppAdviceContentVos(
AppAdviceFBIContentVos(
{this.id,
this.createUserType,
this.content,
@ -115,7 +99,7 @@ class AppAdviceContentVos {
DateTime? get date => DateUtil.getDateTime(createDate!);
AppAdviceContentVos.fromJson(Map<String, dynamic> json) {
AppAdviceFBIContentVos.fromJson(Map<String, dynamic> json) {
id = json['id'];
createUserType = json['createUserType'];
content = json['content'];

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

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

@ -36,16 +36,16 @@ class SuggestionOrComplainModel {
}
}
class ImgUrls {
class imgUrls {
String? url;
String? size;
int? longs;
int? paragraph;
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'];
size = json['size'];
longs = json['longs'];

@ -1,86 +1,53 @@
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 {
int? id;
int? positionId;
String? name;
int? sexId;
int? age;
int? educationId;
String? roomName;
String? profession;
String? roomNumber;
int? unitNo;
int? estateNo;
List<ImgModel>? imgUrls;
final int? id;
final String? name;
final String? tel;
final String? industryCommitteeTypeName;
final String? buildingName;
final String? unitName;
final String? estateName;
final String? appointmentStartTime;
final String? appointmentEndTime;
final String? createDate;
final List<ImgModel>? imgList;
String get sexValue {
if (sexId == 0 || sexId == null) return '未设置';
if (sexId == 1) return '';
if (sexId == 2) return '';
return '未设置';
}
String get positionValue {
switch (positionId) {
case 1:
return '业委会主任';
case 2:
return '业委会副主任';
case 3:
return '业委会委员';
default:
return '';
}
}
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,
factory CommitteeItemModel.fromJson(Map<String, dynamic> json) =>
_$CommitteeItemModel(json);
DateTime? get appointmentStartDT => DateUtil.getDateTime(appointmentStartTime!);
DateTime? get appointmentEndDT => DateUtil.getDateTime(appointmentEndTime!);
DateTime? get createDateDT => DateUtil.getDateTime(createDate!);
const CommitteeItemModel({
required this.id,
required this.name,
required this.tel,
required this.industryCommitteeTypeName,
required this.buildingName,
required this.unitName,
required this.estateName,
required this.appointmentStartTime,
required this.appointmentEndTime,
required this.createDate,
required this.imgList,
});
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,
size: 42.w,
),
contentPadding: EdgeInsets.only(top: 14.w),
contentPadding: EdgeInsets.only(top: 3.w),
// isDense: true,
hintText: '搜索机构',
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/websocket/tips_dialog.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/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../utils/network/net_util.dart';
class IndustryCommitteePage extends StatefulWidget {
IndustryCommitteePage({Key? key}) : super(key: key);
@ -23,19 +26,20 @@ class IndustryCommitteePage extends StatefulWidget {
}
class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
List<CommitteeItemModel> _models = [];
EasyRefreshController _refreshController = EasyRefreshController();
@override
void initState() {
super.initState();
Future.delayed(Duration(milliseconds: 0), () async {
var agreement =
await HiveStore.appBox?.get('IndustryCommitteePage') ?? false;
if (!agreement) {
await TipsDialog.tipsDialog();
HiveStore.appBox!.put('IndustryCommitteePage', true);
}
});
// Future.delayed(Duration(milliseconds: 0), () async {
// var agreement =
// await HiveStore.appBox?.get('IndustryCommitteePage') ?? false;
// if (!agreement) {
// await TipsDialog.tipsDialog();
// HiveStore.appBox!.put('IndustryCommitteePage', true);
// }
// });
}
Widget _buildBottomNavi() {
@ -95,7 +99,7 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
borderRadius: BorderRadius.circular(4.w),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
image: SAASAPI.image(ImgModel.first(model.imgUrls)),
image: SAASAPI.image(ImgModel.first(model.imgList)),
height: 150.w,
width: 150.w,
fit: BoxFit.cover,
@ -112,9 +116,10 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
height: 44.w,
padding:
EdgeInsets.symmetric(horizontal: 22.w, vertical: 6.w),
child: model.positionValue.text
child: model.industryCommitteeTypeName!.text
.size(24.sp)
.color(ktextPrimary)
.bold
.make(),
decoration: BoxDecoration(
color: Color(0xFFFFF3CD),
@ -123,17 +128,17 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
),
),
].row(),
6.hb,
15.hb,
...[
'住址:${model.roomName}'
'住址:${model.buildingName}${model.unitName}单元${model.estateName}房间'
.text
.size(24.sp)
.size(23.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
.size(24.sp)
.size(23.sp)
.color(ktextSubColor)
.make(),
].sepWidget(separate: 10.hb),
@ -148,23 +153,54 @@ class _IndustryCommitteePageState extends State<IndustryCommitteePage> {
return BeeScaffold(
title: '业委会',
systemStyle: SystemStyle.genStyle(bottom: Color(0xFF2A2A2A)),
body: BeeListView<CommitteeItemModel>(
path: API.manager.commiteeStaff,
convert: (model) {
return model.rows.map((e) => CommitteeItemModel.fromJson(e)).toList();
},
body: Container(
child: EasyRefresh(
firstRefresh: true,
header: MaterialHeader(),
controller: _refreshController,
builder: (items) {
return ListView.separated(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 20.w),
onRefresh: () async {
var base = await NetUtil().get(SAASAPI.committeeStaff.list);
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) {
return _buildCard(items[index]);
return _buildCard(_models[index]);
},
separatorBuilder: (context, index) => 20.hb,
itemCount: items.length,
separatorBuilder: (context, index) {
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(),
);
}

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

@ -1,4 +1,6 @@
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/moving_company_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 {
BaseModel baseModel = await NetUtil().get(
API.manager.questionnairefindById,
NEWAPI.questionnaire.detail,
params: {
'questionnaireId': id,
},
@ -241,7 +243,7 @@ class ManagerFunc {
static Future<BaseModel> questionnaireSubmit(
int? id, List<AppQuestionnaireAnswerSubmits> model) async {
BaseModel baseModel = await NetUtil().post(
API.manager.questionnaireSubmit,
NEWAPI.questionnaire.submit,
params: {
'id': id,
'appQuestionnaireAnswerSubmits': model,

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

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

@ -18,218 +18,381 @@ class _PrivacyPageState extends State<PrivacyPage> {
padding: EdgeInsets.all(16.sp),
child: Text(
'''
20220325
使
使 线
 使 便
 使        使           
              
  使 CookiesSDK 
  
 访  
14 使
kaidalai@163.com
线
20220325
20220327
kaidalai@163.com7
2022420
 
使App40-11使使使使访便
 
使线使
 
 
1
2使
3
4
5
6
7
8
9
便使使线
使
使
1
使
AndroidV8.0.0iOSV7.4.0访->
使使使
使
2
便使  
3
使使
4
apppdf使使
5
Android 使
1   使
2 SDK MACAPPlist
3   
 Android使 Android访
  crash  
使WLANWLANWLANWLAN WiFi 使WLANWLANWLANWLAN
退 / 使 / 退
  
使      
  iOS
使PCTVweb   使 
v8.5.3 使  使
toast使  
便    APP--
IDID 使IFAAiOS使ID  IDIDiOS IDID   使IFAAiOS使ID APP
WLANWLAN访   Wi-Fi SSID 使   WLAN WLAN WLAN WLANWLANWLAN   访 使
使  使使 使  便
使  使 Android6.0
使 使 使 使 Bonjour Apple TV
iOS 使 AndroidiOS 
SDK使
使APP使使SDK 使SDKSDKSDK SDK使SDKSDKSDK
使Cookie
1Cookie
访CookieCookie访访Cookie访访
Cookie Cookie AboutCookies.orgCookieCookie 访
2
Cookie 使使访访HTTPSSSL
3
访便HTTPS
4Do Not Track
Do Not Track Do Not Track Do Not Track
使/
 
使
使 Cookies
使
SDK
 
使
使
 
                            
1 
1使
2使
使使
2使
3使
 
使
1/
便使使
使使
/使
2
使使
   使使IP使访
   使使MACIMEI/Android ID/IDFA/OpenUDID/GUID/SIM IMSI IP GPSWLAN
使使
3
使
4
使
便使便
5
SDK
6
线EMS使
7
使便便
使
8
使使
9
使
10使
使
11
/使使
1访使
2/使使
3//访使////使
4使使
访使使
12
 
便使
使使使
 
1
2
3
3
4
5
5
6
7
8//
9
10
7
8
9
10
11
使
1访
2
1
2线线
3
4
5
6
7
8
9
3使使APP
使
 
宿
使 Cookies
Cookies
Cookies使
使CookiesCookies使Cookies广
 
()
Cookies 使便
 
Cookies使
使Cookies
1Cookies
2使Cookies使/
3广Cookies广广
使CookiesCookies广使广
退 Cookies CookiesCookiesCookies访使
1
2
3
访
1
2
3使
4便便使使
5
使
APISDK
1/
2使
3广广广便广
6使
 
1使
2
3
4使使
5使
6
1
2
3
使 访使访访 SSL https 使使访访
使
访
使
访
访使访访
->-APPAPP访kaidalai@163.com7
访
kaidalai@163.com7
kaidalai@163.com
1/iOS->->
2/iOS->->->
使
使Android->->iOS->APP->->->使
 
1
2
 
1
2
 
1
2
3
4
5
6
7
8
 
 
 
1
访使
1 SSLSecure Socket Layer
2使
3HTTPSHyper Text Transfer Protocol over Secure Socket Layer
4
5访使
2
1
2使
3访访访
4
5
6
3访
 
1使
2使使
3便
 
访使
 
访
访访
1
3访线使访
 
1访
21
1
2使
3
4
 
使
 
---使
 
 
1
2
3
4
5
6
使
14
1使
2
3
4使
5
6
1
2
3
4
5
6
7
8
1Cookies
2广使
3SDK使SDK
1Push SDK/
2SDK
3SDK
4SDK便
5SDK
SDK使SDKSDK
使使使
使使使
使使使使
使使使使
使
 
广
kaidalai@163.com
kaidalai@163.com
40-11
kaidalai@163.com40-11
518000
 
 
 
 
 
使
使使访使
 
使
 
使
使使/使
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(
fontSize: 30.w,

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

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

@ -23,4 +23,7 @@ Member _$MemberFromJson(Map<String, dynamic> json) => Member(
id: json['id'] as int,
name: json['name'] as String,
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/material.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
class AddNewEventPage extends StatefulWidget {
final int? initTopic;
@ -229,20 +228,26 @@ class _AddNewEventPageState extends State<AddNewEventPage> {
}
}
class TopicWidgets extends StatelessWidget {
const TopicWidgets({
Key? key,
this.hotTopicModels,
this.topicTags,
}) : assert(hotTopicModels != null || topicTags != null),
super(key: key);
class TopicWidgets extends StatefulWidget {
final List<TopicListModel>? hotTopicModels;
final List<TopicTag>? topicTags;
List<dynamic> get models =>
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
Widget build(BuildContext context) {
return Wrap(
@ -251,8 +256,17 @@ class TopicWidgets extends StatelessWidget {
runSpacing: 12.w,
crossAxisAlignment: WrapCrossAlignment.start,
children: [
...models
.map((e) => Container(
...widget.models
.map(
(e) => GestureDetector(
onLongPress: () {
_deleteTopic = !_deleteTopic;
setState(() { });
print(_deleteTopic);
},
child: Stack(
children: [
Container(
padding:
EdgeInsets.symmetric(vertical: 8.w, horizontal: 16.w),
decoration: BoxDecoration(
@ -263,9 +277,32 @@ class TopicWidgets extends StatelessWidget {
.size(24.sp)
.color(Color(0xFF547FC0))
.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 = '';
switch (item.createUserType) {
case 1:
@ -127,13 +127,14 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
children: [
'您的$adviceValue'.text.black.bold.size(38.sp).make(),
30.hb,
_model.appAdviceDetailVo!.appAdviceVo!.content!.text
_model.appAdviceFBIDetailVo!.content!
.text
.color(ktextSubColor)
.size(28.sp)
.make(),
24.hb,
DateUtil.formatDate(
_model.appAdviceDetailVo!.appAdviceVo!.date,
_model.appAdviceFBIDetailVo!.date,
format: 'yyyy年MM月dd日 HH:mm',
).text.size(24.sp).color(Color(0xFF999999)).make(),
...widget.model!.imgUrls!.isEmpty
@ -154,7 +155,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
color: Color(0xFFD8D8D8),
)
],
..._model.appAdviceDetailVo!.appAdviceContentVos!
..._model.appAdviceFBIContentVos!
.map((e) => _buildAdviceContent(e))
.toList(),
],
@ -186,10 +187,10 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
header: MaterialHeader(),
onRefresh: () async {
Response res = await NetUtil().dio!.get(
API.manager.adviceDetail,
SAASAPI.advice.find,
queryParameters: {'adviceId': widget.model!.id},
);
_model = AdviceDetailModel.fromJson(res.data);
_model = AdviceDetailModel.fromJson(res.data['data']);
_loading = false;
if (mounted) setState(() {});
},
@ -219,7 +220,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
child: BottomButton(
onPressed: () async {
BaseModel baseModel =
await NetUtil().get(API.manager.completeFeedBack, params: {
await NetUtil().get(SAASAPI.advice.complete, params: {
"adviceId": widget.model!.id,
});
if (baseModel.success) {
@ -229,7 +230,7 @@ class _AdviceDetailPageState extends State<AdviceDetailPage> {
},
child: '完成沟通'.text.bold.make(),
),
)
),
],
);
}

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

@ -11,7 +11,6 @@ import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.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/saas_api.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/picker/grid_image_picker.dart';
import '../../../provider/user_provider.dart';
import '../../../widget/others/user_tool.dart';
class NewAdvicePage extends StatefulWidget {
final AdviceType type;
final int initType;
@ -97,9 +99,9 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
Future addAdvice(int type, List<File> files, String content) async {
VoidCallback cancel = BotToast.showLoading();
List<String?> urls =
await NetUtil().uploadFiles(files, API.upload.uploadAdvice);
await NetUtil().uploadFiles(files,SAASAPI.uploadFile.uploadImg);
BaseModel baseModel = await NetUtil().post(
API.manager.addAdvice,
SAASAPI.advice.insert,
params: {
'type': type,
'content': content,
@ -127,7 +129,7 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
@override
Widget build(BuildContext context) {
final appProvider = Provider.of<AppProvider>(context);
final userProvider = Provider.of<UserProvider>(context);
return BeeScaffold.white(
systemStyle: SystemStyle.yellowBottomBar,
title: title,
@ -143,7 +145,8 @@ class _NewAdvicePageState extends State<NewAdvicePage> {
width: 60.w,
),
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
.size(32.sp)
.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_scaffold.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/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
@ -21,9 +22,9 @@ import 'package:get/get.dart';
class QuestionnaireDetailPage extends StatefulWidget {
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
_QuestionnaireDetailPageState createState() =>
@ -258,12 +259,14 @@ class _QuestionnaireDetailPageState extends State<QuestionnaireDetailPage> {
bottomNavi: BottomButton(
child: '确认提交'
.text
.color(widget.status != 2 ? ktextSubColor : ktextPrimary)
.color(widget.answered! ? ktextSubColor : ktextPrimary)
.size(32.sp)
.bold
.make(),
onPressed: widget.status != 2
? () {}
onPressed: widget.answered != 2
? () {
BotToast.showText(text: '该问卷已填写过');
}
: () async {
BaseModel baseModel = await ManagerFunc.questionnaireSubmit(
widget.id, _submitModels);

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

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

@ -79,7 +79,7 @@ class SearchFunc {
///
static Future<bool> addGoodsCar(int jcookGoodsId) async {
BaseModel model = await NetUtil().get(SAASAPI.market.shopCart.insert,
params: {'appGoodsPushId': jcookGoodsId}, showMessage: true);
params: {'appGoodsPushId': jcookGoodsId}, showMessage: false);
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_screenutil/flutter_screenutil.dart';
@ -30,7 +31,9 @@ class _CertificationSuccessPageState extends State<CertificationSuccessPage> {
34.w.heightBox,
'提交成功'.text.size(40.sp).color(Colors.black).bold.make(),
94.w.heightBox,
AddHouseButton(text: '添加房屋', onTap: () {}),
AddHouseButton(text: '添加房屋', onTap: () {
Get.to(() => AddHousePage());
}),
40.w.heightBox,
AddHouseButton(
text: '返回首页',

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

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

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

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

Loading…
Cancel
Save