diff --git a/frontend/src/components/group/CreateGroupDialog.vue b/frontend/src/components/group/CreateGroupDialog.vue
new file mode 100644
index 0000000..9e122a2
--- /dev/null
+++ b/frontend/src/components/group/CreateGroupDialog.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ 取消
+ 创建
+
+
+
+
+
diff --git a/frontend/src/components/group/GroupMembersPanel.vue b/frontend/src/components/group/GroupMembersPanel.vue
new file mode 100644
index 0000000..c3579dc
--- /dev/null
+++ b/frontend/src/components/group/GroupMembersPanel.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+ {{ group.id }}
+
+
+
+
+
+ 成员
+ {{ members.length }} / {{ group.maxMembers }}
+
+
+
+
+
![]()
+
+ {{ member.username }}
+ 群主
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/group/JoinGroupDialog.vue b/frontend/src/components/group/JoinGroupDialog.vue
new file mode 100644
index 0000000..0fef1d0
--- /dev/null
+++ b/frontend/src/components/group/JoinGroupDialog.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/GroupView.vue b/frontend/src/views/GroupView.vue
index de45461..428664e 100644
--- a/frontend/src/views/GroupView.vue
+++ b/frontend/src/views/GroupView.vue
@@ -5,6 +5,7 @@ import { useRoute } from 'vue-router'
import { useGroupStore } from '@/stores/group'
import TeamSessionPanel from '@/components/team/TeamSessionPanel.vue'
import IdleMembersList from '@/components/team/IdleMembersList.vue'
+import GroupMembersPanel from '@/components/group/GroupMembersPanel.vue'
const route = useRoute()
const groupStore = useGroupStore()
@@ -133,54 +134,9 @@ async function refreshMembers() {
-
+
diff --git a/frontend/src/views/Layout.vue b/frontend/src/views/Layout.vue
index 524521c..3856830 100644
--- a/frontend/src/views/Layout.vue
+++ b/frontend/src/views/Layout.vue
@@ -8,6 +8,8 @@ import { useNotificationStore } from '@/stores/notification'
import StatusToggle from '@/components/team/StatusToggle.vue'
import WorkScheduleModal from '@/components/team/WorkScheduleModal.vue'
import NotificationPanel from '@/components/common/NotificationPanel.vue'
+import CreateGroupDialog from '@/components/group/CreateGroupDialog.vue'
+import JoinGroupDialog from '@/components/group/JoinGroupDialog.vue'
const router = useRouter()
const route = useRoute()
@@ -17,6 +19,8 @@ const teamStore = useTeamStore()
const notificationStore = useNotificationStore()
const showScheduleModal = ref(false)
+const showCreateGroup = ref(false)
+const showJoinGroup = ref(false)
onMounted(async () => {
await userStore.initUser()
@@ -67,6 +71,10 @@ function goHome() {