|
|
|
@ -15,6 +15,7 @@ import 'package:url_launcher/url_launcher.dart';
|
|
|
|
|
|
|
|
|
|
class TeamMembers extends StatefulWidget {
|
|
|
|
|
final String? selectedEmp;
|
|
|
|
|
|
|
|
|
|
const TeamMembers({this.selectedEmp, Key? key}) : super(key: key);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@ -22,8 +23,8 @@ class TeamMembers extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _TeamMembersState extends State<TeamMembers> {
|
|
|
|
|
String searchEmpEmail ="";
|
|
|
|
|
String searchEmpName ="";
|
|
|
|
|
String searchEmpEmail = "";
|
|
|
|
|
String searchEmpName = "";
|
|
|
|
|
String searchEmpNo = "";
|
|
|
|
|
String? empId;
|
|
|
|
|
|
|
|
|
@ -32,14 +33,14 @@ class _TeamMembersState extends State<TeamMembers> {
|
|
|
|
|
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
employeeSubordinates();
|
|
|
|
|
employeeSubordinates();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void employeeSubordinates() async {
|
|
|
|
|
try {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
getEmployeeSubordinatesList = await MyTeamApiClient().getEmployeeSubordinates(searchEmpEmail.toString(), searchEmpName.toString(), searchEmpNo.toString());
|
|
|
|
|
getEmployeeSubordinatesList = await MyTeamApiClient().employeeSubordinates(searchEmpEmail.toString(), searchEmpName.toString(), searchEmpNo.toString(),getEmployeeSubordinates?.eMPLOYEENUMBER);
|
|
|
|
|
getEmployeeSubordinatesList = await MyTeamApiClient().employeeSubordinates(searchEmpEmail.toString(), searchEmpName.toString(), searchEmpNo.toString(), getEmployeeSubordinates?.eMPLOYEENUMBER);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
setState(() {});
|
|
|
|
|
} catch (ex) {
|
|
|
|
@ -52,80 +53,83 @@ class _TeamMembersState extends State<TeamMembers> {
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
getEmployeeSubordinates ??= ModalRoute.of(context)?.settings.arguments as GetEmployeeSubordinatesList;
|
|
|
|
|
return Scaffold(
|
|
|
|
|
appBar: AppBarWidget(
|
|
|
|
|
context,
|
|
|
|
|
title: LocaleKeys.teamMembers.tr(),
|
|
|
|
|
appBar: AppBarWidget(
|
|
|
|
|
context,
|
|
|
|
|
title: LocaleKeys.teamMembers.tr(),
|
|
|
|
|
),
|
|
|
|
|
backgroundColor: MyColors.backgroundColor,
|
|
|
|
|
body: SingleChildScrollView(
|
|
|
|
|
scrollDirection: Axis.vertical,
|
|
|
|
|
child: Column(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
getEmployeeSubordinatesList.isEmpty
|
|
|
|
|
? Container(margin: const EdgeInsets.only(top: 100), child: Utils.getNoDataWidget(context))
|
|
|
|
|
: ListView.separated(
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
|
|
|
padding: const EdgeInsets.only(top: 12),
|
|
|
|
|
separatorBuilder: (BuildContext cxt, int index) => 12.height,
|
|
|
|
|
itemCount: getEmployeeSubordinatesList.length,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
var phoneNumber = Uri.parse('tel:${getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER}');
|
|
|
|
|
return InkWell(
|
|
|
|
|
onTap: () async {
|
|
|
|
|
Navigator.pushNamed(context, AppRoutes.employeeDetails, arguments: getEmployeeSubordinatesList[index]);
|
|
|
|
|
},
|
|
|
|
|
child: Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
getEmployeeSubordinatesList[index].eMPLOYEEIMAGE == null
|
|
|
|
|
? SvgPicture.asset(
|
|
|
|
|
"assets/images/user.svg",
|
|
|
|
|
height: 34,
|
|
|
|
|
width: 34,
|
|
|
|
|
).paddingOnly(top: 4)
|
|
|
|
|
: Container(
|
|
|
|
|
height: 34,
|
|
|
|
|
width: 34,
|
|
|
|
|
child: CircleAvatar(
|
|
|
|
|
radius: 25,
|
|
|
|
|
backgroundImage: MemoryImage(Utils.dataFromBase64String(getEmployeeSubordinatesList[index].eMPLOYEEIMAGE!)),
|
|
|
|
|
backgroundColor: Colors.black,
|
|
|
|
|
).paddingOnly(top: 4),
|
|
|
|
|
),
|
|
|
|
|
9.width,
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
// "Present".toText13(color: MyColors.greenColor),
|
|
|
|
|
"${getEmployeeSubordinatesList[index].eMPLOYEENAME}".toText16(color: MyColors.grey3AColor),
|
|
|
|
|
"${getEmployeeSubordinatesList[index].pOSITIONNAME}".toText10(color: MyColors.grey57Color),
|
|
|
|
|
],
|
|
|
|
|
).expanded,
|
|
|
|
|
Column(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
|
|
children: [
|
|
|
|
|
getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER == ""
|
|
|
|
|
? SvgPicture.asset("assets/images/call-disable.svg", width: 22, height: 22)
|
|
|
|
|
: InkWell(
|
|
|
|
|
onTap: () {
|
|
|
|
|
launchUrl(phoneNumber);
|
|
|
|
|
},
|
|
|
|
|
child: SvgPicture.asset("assets/images/call.svg", width: 22, height: 22),
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
const Icon(
|
|
|
|
|
Icons.arrow_forward_outlined,
|
|
|
|
|
color: MyColors.grey3AColor,
|
|
|
|
|
size: 18,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).paddingOnly(top: 13, bottom: 13, right: 12, left: 14).objectContainerView(radius: 10, disablePadding: true),
|
|
|
|
|
).paddingOnly(left: 16.0, right: 16.0);
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
backgroundColor: MyColors.backgroundColor,
|
|
|
|
|
body: SingleChildScrollView(
|
|
|
|
|
scrollDirection: Axis.vertical,
|
|
|
|
|
child: Column(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
getEmployeeSubordinatesList.isEmpty
|
|
|
|
|
? Container(
|
|
|
|
|
margin: const EdgeInsets.only(top: 100),
|
|
|
|
|
child: Utils.getNoDataWidget(context)):
|
|
|
|
|
ListView.separated(
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
|
|
|
padding: const EdgeInsets.only(top: 12),
|
|
|
|
|
separatorBuilder: (BuildContext cxt,int index) => 12.height,
|
|
|
|
|
itemCount: getEmployeeSubordinatesList.length,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
var phoneNumber = Uri.parse('tel:${getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER}');
|
|
|
|
|
return InkWell(
|
|
|
|
|
onTap: () async {
|
|
|
|
|
Navigator.pushNamed(context, AppRoutes.employeeDetails, arguments: getEmployeeSubordinatesList[index]);
|
|
|
|
|
},
|
|
|
|
|
child: Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
getEmployeeSubordinatesList[index].eMPLOYEEIMAGE == null
|
|
|
|
|
? SvgPicture.asset("assets/images/user.svg",height: 34, width: 34, ).paddingOnly(top: 4)
|
|
|
|
|
: Container(
|
|
|
|
|
height: 34,
|
|
|
|
|
width: 34,
|
|
|
|
|
child: CircleAvatar(
|
|
|
|
|
radius: 25,
|
|
|
|
|
backgroundImage: MemoryImage(Utils.dataFromBase64String(getEmployeeSubordinatesList[index].eMPLOYEEIMAGE!)),
|
|
|
|
|
backgroundColor: Colors.black,
|
|
|
|
|
).paddingOnly(top: 4),
|
|
|
|
|
),
|
|
|
|
|
9.width,
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
// "Present".toText13(color: MyColors.greenColor),
|
|
|
|
|
"${getEmployeeSubordinatesList[index].eMPLOYEENAME}".toText16(color: MyColors.grey3AColor),
|
|
|
|
|
"${getEmployeeSubordinatesList[index].pOSITIONNAME}".toText10( color: MyColors.grey57Color),
|
|
|
|
|
],
|
|
|
|
|
).expanded,
|
|
|
|
|
Column(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
|
|
children: [
|
|
|
|
|
getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER == ""
|
|
|
|
|
? SvgPicture.asset("assets/images/call-disable.svg", width: 22, height: 22)
|
|
|
|
|
:InkWell(
|
|
|
|
|
onTap: () {
|
|
|
|
|
launchUrl(phoneNumber);
|
|
|
|
|
},
|
|
|
|
|
child: SvgPicture.asset("assets/images/call.svg", width: 22, height: 22),
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
const Icon(
|
|
|
|
|
Icons.arrow_forward_outlined,
|
|
|
|
|
color: MyColors.grey3AColor,
|
|
|
|
|
size: 18,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).paddingOnly(top: 13, bottom: 13, right: 12, left: 14).objectContainerView(radius: 10, disablePadding: true),
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
));
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|