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,12 +71,14 @@ class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Text( Obx(
'19210651的互联', () => Text(
style: TextStyle( controller.selectedTeam.value.teamName ?? '',
fontSize: 16.sp, style: TextStyle(
color: Colors.black, fontSize: 16.sp,
fontWeight: FontWeight.w600, color: Colors.black,
fontWeight: FontWeight.w600,
),
), ),
), ),
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -99,26 +105,35 @@ class InviteTeamMemberView extends GetView<InviteTeamMemberController> {
SizedBox( SizedBox(
height: 5.h, height: 5.h,
), ),
Row( GestureDetector(
mainAxisAlignment: MainAxisAlignment.center, onTap: () {
children: [ //
Text( Clipboard.setData(ClipboardData(text: controller.selectedTeam.value.teamNo ?? ''));
'19210651', controller.showToast('内容已复制'.tr);
style: TextStyle( },
fontWeight: FontWeight.w400, child: Row(
color: Colors.black, mainAxisAlignment: MainAxisAlignment.center,
fontSize: 16.sp, children: [
Obx(
() => Text(
controller.selectedTeam.value.teamCode ?? '',
style: TextStyle(
fontWeight: FontWeight.w400,
color: Colors.black,
fontSize: 16.sp,
),
),
), ),
), SizedBox(
SizedBox( width: 4.w,
width: 4.w, ),
), Icon(
Icon( Icons.library_books_rounded,
Icons.library_books_rounded, size: 16.sp,
size: 16.sp, color: Colors.grey,
color: Colors.grey, )
) ],
], ),
) )
], ],
) )