feat: 增加手动添加、邀请设置页面

This commit is contained in:
liyi 2025-09-20 16:22:16 +08:00
parent 7f84b06d85
commit 0659c46874
5 changed files with 61 additions and 38 deletions

View File

@ -2,5 +2,6 @@ class AppViewParameterKeys {
static const String deviceList = "deviceList"; static const String deviceList = "deviceList";
static const String lockInfo = "lockInfo"; static const String lockInfo = "lockInfo";
static const String networkInfo = "networkInfo"; static const String networkInfo = "networkInfo";
static const String teamInfo = "teamInfo";
} }

View File

@ -1,18 +1,8 @@
import 'package:carousel_slider/carousel_controller.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:starcloud/entity/star_cloud_lock_list.dart';
import 'package:starcloud/sdk/sdk_device_operate_extension.dart';
import 'package:starcloud/sdk/starcloud.dart';
import 'package:starwork_flutter/api/model/team/response/team_info_response.dart';
import 'package:starwork_flutter/api/service/team_api_service.dart';
import 'package:starwork_flutter/base/app_logger.dart';
import 'package:starwork_flutter/base/app_permission.dart'; import 'package:starwork_flutter/base/app_permission.dart';
import 'package:starwork_flutter/base/base_controller.dart'; import 'package:starwork_flutter/base/base_controller.dart';
import 'package:starwork_flutter/common/events/refresh_device_list_event.dart';
import 'package:starwork_flutter/common/utils/event_bus_util.dart';
import 'package:starwork_flutter/routes/app_routes.dart';
import 'package:starwork_flutter/views/main/main_controller.dart'; import 'package:starwork_flutter/views/main/main_controller.dart';
class HomeController extends BaseController { class HomeController extends BaseController {

View File

@ -4,6 +4,7 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:starwork_flutter/base/app_permission.dart'; import 'package:starwork_flutter/base/app_permission.dart';
import 'package:starwork_flutter/common/constant/app_view_parameter_keys.dart';
import 'package:starwork_flutter/routes/app_routes.dart'; import 'package:starwork_flutter/routes/app_routes.dart';
import 'package:starwork_flutter/views/home/widget/home_not_device_area.dart'; import 'package:starwork_flutter/views/home/widget/home_not_device_area.dart';
import 'package:super_tooltip/super_tooltip.dart'; import 'package:super_tooltip/super_tooltip.dart';
@ -370,7 +371,9 @@ class HomeView extends GetView<HomeController> {
Get.toNamed(AppRoutes.searchDevice); Get.toNamed(AppRoutes.searchDevice);
break; break;
case 1: case 1:
Get.toNamed(AppRoutes.teamInviteTeamMember); Get.toNamed(AppRoutes.teamInviteTeamMember, arguments: {
AppViewParameterKeys.teamInfo: controller.mainController.selectedTeam.value.toJson(),
});
break; break;
} }
} }

View File

@ -1,6 +1,20 @@
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:starwork_flutter/api/model/team/response/team_info_response.dart';
import 'package:starwork_flutter/base/base_controller.dart'; import 'package:starwork_flutter/base/base_controller.dart';
import 'package:starwork_flutter/common/constant/app_view_parameter_keys.dart';
class InviteTeamMemberController extends BaseController { class InviteTeamMemberController extends BaseController {
// TODO: // Map
var selectedTeam = TeamInfoResponse().obs;
@override
void onReady() {
super.onReady();
//
final args = Get.arguments;
if (args != null && args.containsKey(AppViewParameterKeys.teamInfo)) {
final json = args[AppViewParameterKeys.teamInfo];
selectedTeam.value = TeamInfoResponse.fromJson(json);
}
}
} }

View File

@ -1,5 +1,6 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -13,6 +14,9 @@ import 'invite_team_member_controller.dart';
class InviteTeamMemberView extends GetView<InviteTeamMemberController> { class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// 使使 controller
final _ = controller; //
return Scaffold( return Scaffold(
appBar: CustomAppBarWidget( appBar: CustomAppBarWidget(
title: '邀请人员'.tr, title: '邀请人员'.tr,
@ -67,14 +71,16 @@ class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Text( Obx(
'19210651的互联', () => Text(
controller.selectedTeam.value.teamName ?? '',
style: TextStyle( style: TextStyle(
fontSize: 16.sp, fontSize: 16.sp,
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
), ),
), ),
),
SizedBox(height: 10.h), SizedBox(height: 10.h),
ClipRRect( ClipRRect(
borderRadius: BorderRadius.circular(8.r), borderRadius: BorderRadius.circular(8.r),
@ -99,17 +105,25 @@ class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
SizedBox( SizedBox(
height: 5.h, height: 5.h,
), ),
Row( GestureDetector(
onTap: () {
//
Clipboard.setData(ClipboardData(text: controller.selectedTeam.value.teamNo ?? ''));
controller.showToast('内容已复制'.tr);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text( Obx(
'19210651', () => Text(
controller.selectedTeam.value.teamCode ?? '',
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Colors.black, color: Colors.black,
fontSize: 16.sp, fontSize: 16.sp,
), ),
), ),
),
SizedBox( SizedBox(
width: 4.w, width: 4.w,
), ),
@ -119,6 +133,7 @@ class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
color: Colors.grey, color: Colors.grey,
) )
], ],
),
) )
], ],
) )