diff --git a/components.d.ts b/components.d.ts index 85c3e24..fd12a2c 100644 --- a/components.d.ts +++ b/components.d.ts @@ -65,6 +65,7 @@ declare module 'vue' { NPopover: typeof import('naive-ui')['NPopover'] NRadio: typeof import('naive-ui')['NRadio'] NSpin: typeof import('naive-ui')['NSpin'] + NTag: typeof import('naive-ui')['NTag'] NVirtualList: typeof import('naive-ui')['NVirtualList'] RevokeMessage: typeof import('./src/components/talk/message/RevokeMessage.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] diff --git a/src/api/group.js b/src/api/group.js index 473dcfd..4ec0302 100644 --- a/src/api/group.js +++ b/src/api/group.js @@ -77,6 +77,11 @@ export const ServeEditGroupNotice = (data) => { return post('/api/v1/group/notice/edit', data) } +// 删除群公告 +export const ServeDeleteGroupNotice = (data) => { + return post('/api/v1/group/notice/delete', data) +} + export const ServeGetGroupApplyList = (data) => { return get('/api/v1/group/apply/list', data) } diff --git a/src/components/common/customModal.vue b/src/components/common/customModal.vue index 6915374..bfee602 100644 --- a/src/components/common/customModal.vue +++ b/src/components/common/customModal.vue @@ -72,6 +72,11 @@ const props = defineProps({ // 自定义按钮样式 type: String, default: '' + }, + customCloseEvent: { + // 是否自定义关闭事件 + type: Boolean, + default: false } }) @@ -105,7 +110,11 @@ const state = reactive({ }) const handleCloseModal = () => { - show.value = false + if (props.customCloseEvent) { + emit('closeModal') + } else { + show.value = false + } } diff --git a/src/components/group/GroupPanel.vue b/src/components/group/GroupPanel.vue index 5db3975..d6a7227 100644 --- a/src/components/group/GroupPanel.vue +++ b/src/components/group/GroupPanel.vue @@ -9,7 +9,8 @@ import { ServeGroupDetail, ServeGetGroupMembers, ServeSecedeGroup, - ServeUpdateGroupCard + ServeUpdateGroupCard, + ServeGetGroupNotices } from '@/api/group' import { useInject } from '@/hooks' import customModal from '@/components/common/customModal.vue' @@ -34,12 +35,18 @@ const props = defineProps({ // 1: 单聊, 2: 群聊 type: Number, default: 0 + }, + groupNoticeContentChange: { + // 群公告内容变化 + type: String, + default: '' } }) watch(props, () => { loadDetail() loadMembers() + getGroupNotices() }) const editCardPopover = ref(false) @@ -74,7 +81,14 @@ const state = reactive({ showAllMember: false, // 是否显示全部成员 openGroupMemberSearch: false, //是否开启群成员搜索 isShowUserCardModal: false, //是否显示成员信息模态框 - userInfo: {} //当前打开的成员信息卡信息 + userInfo: {}, //当前打开的成员信息卡信息 + groupNoticeInfo: { + id: 0, + avatar: '', + updater_name: '', + updated_at: '', + content: '' + } //群公告信息 }) const members = ref([]) @@ -258,8 +272,33 @@ const showMemberInfo = (memberItem: any) => { //点击显示群公告模态框 const showGroupNoticeModal = () => { - emit('handleGroupNoticeModalShow', true) + emit('handleGroupNoticeModalShow', isAdmin.value || isLeader.value) } + +//获取群公告列表 +const getGroupNotices = () => { + ServeGetGroupNotices({ + group_id: props.gid + }).then((res) => { + console.log(res) + if (res.code == 200) { + if (res?.data?.items[0]?.id) { + state.groupNoticeInfo = res.data.items[0] + } else { + state.groupNoticeInfo = { + id: 0, + avatar: '', + updater_name: '', + updated_at: '', + content: '' + } + } + } else { + window['$message'].warning(res.msg) + } + }) +} +getGroupNotices()