From 27cd042df9aca0383a49f3514bc21958dd890912 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 六月 2026 15:42:23 +0800
Subject: [PATCH] 银川 1.联调产品维护页面 2.添加IM即时通讯模块
---
src/views/im/home/components/group/group-mute-member-dialog.vue | 97 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
diff --git a/src/views/im/home/components/group/group-mute-member-dialog.vue b/src/views/im/home/components/group/group-mute-member-dialog.vue
new file mode 100644
index 0000000..5f5315c
--- /dev/null
+++ b/src/views/im/home/components/group/group-mute-member-dialog.vue
@@ -0,0 +1,97 @@
+<script lang="ts" setup>
+import { ref } from 'vue'
+
+import { Button, message, Modal } from 'ant-design-vue'
+
+import { muteMember } from '#/api/im/group'
+
+defineOptions({ name: 'ImGroupMuteMemberDialog' })
+
+const emit = defineEmits<{
+ success: []
+}>()
+
+const visible = ref(false)
+const loading = ref(false)
+const groupId = ref(0)
+const userId = ref(0)
+const memberName = ref('')
+const selected = ref(600) // 榛樿 10 鍒嗛挓
+
+const presets = [
+ { label: '10 鍒嗛挓', value: 600 },
+ { label: '1 灏忔椂', value: 3600 },
+ { label: '12 灏忔椂', value: 43_200 },
+ { label: '1 澶�', value: 86_400 },
+ { label: '7 澶�', value: 604_800 },
+ { label: '30 澶�', value: 2_592_000 },
+ { label: '姘镐箙', value: 0 }
+]
+
+/** 鎵撳紑寮圭獥 */
+function open(gid: number, uid: number, name: string) {
+ groupId.value = gid
+ userId.value = uid
+ memberName.value = name
+ selected.value = 600
+ visible.value = true
+}
+
+/** 纭绂佽█ */
+async function handleConfirm() {
+ loading.value = true
+ try {
+ await muteMember({
+ id: groupId.value,
+ userId: userId.value,
+ mutedSeconds: selected.value
+ })
+ message.success('绂佽█鎴愬姛')
+ visible.value = false
+ emit('success')
+ } finally {
+ loading.value = false
+ }
+}
+
+defineExpose({ open })
+</script>
+
+<template>
+ <!-- 绂佽█鏃堕暱閫夋嫨寮圭獥 -->
+ <Modal v-model:open="visible" title="璁剧疆绂佽█" width="560px" :mask-closable="false">
+ <div class="flex flex-col gap-4">
+ <!-- 鎴愬憳淇℃伅鍗★細鍜� FriendAddDialog 鐨� user 鍗′繚鎸佷竴鑷寸殑娴呰壊鑳屾櫙 -->
+ <div
+ class="flex items-center gap-2 px-3 py-2.5 rounded-md bg-[var(--ant-color-fill-secondary)]"
+ >
+ <span class="text-13px text-[var(--ant-color-text-secondary)]">绂佽█鎴愬憳</span>
+ <span
+ class="text-sm font-medium text-[var(--ant-color-text)] truncate"
+ >
+ {{ memberName }}
+ </span>
+ </div>
+
+ <!-- 绂佽█鏃堕暱閫夐」锛氱敤 el-button 骞抽摵锛岄�変腑璧� primary锛岄潬 gap-2 鐣欓棿璺� -->
+ <div>
+ <div class="mb-2 text-13px text-[var(--ant-color-text-secondary)]">绂佽█鏃堕暱</div>
+ <div class="grid grid-cols-3 gap-2">
+ <Button
+ v-for="opt in presets"
+ :key="opt.value"
+ :type="selected === opt.value ? 'primary' : undefined"
+ class="!ml-0 w-full"
+ @click="selected = opt.value"
+ >
+ {{ opt.label }}
+ </Button>
+ </div>
+ </div>
+ </div>
+ <template #footer>
+ <Button @click="visible = false">鍙栨秷</Button>
+ <Button type="primary" :loading="loading" @click="handleConfirm">纭畾</Button>
+ </template>
+ </Modal>
+</template>
--
Gitblit v1.9.3