You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aku_new_community/lib/ui/profile/house/lease_house_card.dart

221 lines
6.0 KiB

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/const/resource.dart';
import 'package:aku_community/models/house/lease_list_model.dart';
import 'package:aku_community/ui/profile/house/contract_pay_page.dart';
import 'package:aku_community/ui/profile/house/supplement_information_page.dart';
import 'package:aku_community/ui/profile/house/upload_contracts_page.dart';
import 'package:aku_community/utils/headers.dart';
import 'package:aku_community/widget/buttons/card_bottom_button.dart';
class LeaseHouseCard extends StatelessWidget {
final LeaseListModel model;
const LeaseHouseCard({Key? key, required this.model}) : super(key: key);
@override
Widget build(BuildContext context) {
var buttons = getButtons(model.status);
var bottom = Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.end,
children: [
model.getTypeString.text.size(28.sp).color(ktextSubColor).make(),
8.w.heightBox,
model.estateType.text.size(28.sp).color(ktextSubColor).make(),
],
).expand(),
buttons
],
);
return Container(
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16.w),
gradient: LinearGradient(
colors: _getColors(1),
begin: Alignment.topLeft,
end: Alignment.bottomRight),
),
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Image.asset(
R.ASSETS_ICONS_LEASE_HOUSE_PNG,
width: 40.w,
height: 40.w,
),
16.w.widthBox,
S
.of(context)!
.tempPlotName
.text
.size(32.sp)
.color(ktextPrimary)
.make()
.expand(),
model.statusString.text
.size(32.sp)
.color(ktextPrimary)
.bold
.make(),
],
),
12.w.heightBox,
Row(
children: [
model.roomName.text
.size(40.sp)
.color(ktextPrimary)
.bold
.make()
.expand(),
],
),
56.w.heightBox,
bottom,
],
),
);
}
Row getButtons(int status) {
switch (status) {
case 1:
return Row(
children: [
CardBottomButton.yellow(
text: '填写信息',
onPressed: () {
Get.to(() => SupplementInformationPage(
leaseId: model.id,
));
})
],
);
case 2:
return Row(
children: [
CardBottomButton.yellow(
text: '重新填写',
onPressed: () {
Get.to(() => SupplementInformationPage(
leaseId: model.id,
));
}),
CardBottomButton.yellow(
text: '上传合同',
onPressed: () {
Get.to(() => UploadContractsPage(
id: model.id,
));
}),
CardBottomButton.white(
text: '下载合同',
onPressed: () async {
//TODO:待接口中添加完合同路径字段后取消注释
// String? result = await Get.dialog(BeeDownloadView(
// file:
// ));
// if (result != null) OpenFile.open(result);
}),
],
);
case 3:
return Row(
children: [],
);
case 4:
return Row(
children: [
CardBottomButton.yellow(
text: '重新上传',
onPressed: () {
Get.to(() => UploadContractsPage(
id: model.id,
));
}),
CardBottomButton.white(
text: '修改信息',
onPressed: () {
Get.to(() => SupplementInformationPage(
leaseId: model.id,
));
}),
],
);
case 5:
return Row(
children: [
CardBottomButton.yellow(
text: '去支付',
onPressed: () {
Get.to(() => ContractPayPage(
id: model.id,
));
})
],
);
case 6:
return Row(
children: [
CardBottomButton.yellow(
text: '租户页面',
onPressed: () {
Get.back();
})
],
);
default:
return Row();
}
}
List<Color> _getColors(int type) {
switch (type) {
case 1:
return [
Color(0xFFFFE5D2),
Color(0xFFFFFFFF),
];
case 2:
return [
Color(0xFFFFEEBB),
Color(0xFFFFF4D2),
];
case 3:
return [
Color(0xFFFFEEBB),
Color(0xFFFFF4D2),
];
case 4:
return [
Color(0xFFFFEEBB),
Color(0xFFFFF4D2),
];
case 5:
return [
Color(0xFFFFEEBB),
Color(0xFFFFF4D2),
];
case 6:
return [
Color(0xFFFFEEBB),
Color(0xFFFFF4D2),
];
default:
return [Colors.white, Colors.white];
}
}
}