添加群成员查看功能
This commit is contained in:
@@ -124,4 +124,28 @@ def api_contacts_public():
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取公共好友信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/group/<group_id>/members', methods=['GET'])
|
||||
@login_required
|
||||
def api_group_members(group_id):
|
||||
"""获取指定群组的成员信息API"""
|
||||
try:
|
||||
server = current_app.dashboard_server
|
||||
members = server.contact_manager.get_group_members(group_id)
|
||||
|
||||
if members is None:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": "无法获取群成员信息或群组不存在"
|
||||
}), 404
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"members": members
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取群组 {group_id} 成员信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
@@ -57,7 +57,7 @@ def api_wx_logs():
|
||||
else:
|
||||
log_file = os.path.join(project_root, 'wx_info.log')
|
||||
|
||||
logger.info(f"尝试读取日志文件: {log_file}")
|
||||
# logger.info(f"尝试读取日志文件: {log_file}")
|
||||
|
||||
# 读取日志文件
|
||||
log_content = []
|
||||
|
||||
@@ -197,12 +197,33 @@
|
||||
</el-row>
|
||||
|
||||
<!-- 群组详情对话框 -->
|
||||
<el-dialog title="群组详情" {% raw %}:visible.sync="groupDetailDialogVisible"{% endraw %} width="50%">
|
||||
<el-dialog title="群组详情" {% raw %}:visible.sync="groupDetailDialogVisible"{% endraw %} width="70%">
|
||||
<el-descriptions {% raw %}:column="1"{% endraw %} border>
|
||||
<el-descriptions-item label="群ID">{% raw %}{{ currentGroup.wxid }}{% endraw %}</el-descriptions-item>
|
||||
<el-descriptions-item label="群名称">{% raw %}{{ currentGroup.name }}{% endraw %}</el-descriptions-item>
|
||||
<!-- 可以添加更多群组相关信息 -->
|
||||
</el-descriptions>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<h3>群成员列表</h3>
|
||||
<div {% raw %}v-if="loadingMembers"{% endraw %} style="text-align: center; padding: 20px;">
|
||||
<el-spinner></el-spinner>
|
||||
<p>加载群成员中...</p>
|
||||
</div>
|
||||
<div {% raw %}v-else-if="groupMembers.length === 0"{% endraw %} style="text-align: center; padding: 20px;">
|
||||
<p>暂无群成员信息</p>
|
||||
</div>
|
||||
<el-table
|
||||
{% raw %}v-else
|
||||
:data="groupMembers"{% endraw %}
|
||||
style="width: 100%"
|
||||
border>
|
||||
<el-table-column type="index" width="50"></el-table-column>
|
||||
<el-table-column prop="wxid" label="成员ID" width="220"></el-table-column>
|
||||
<el-table-column prop="nickname" label="昵称"></el-table-column>
|
||||
<el-table-column prop="displayname" label="群内显示名" width="150"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 用户详情对话框 -->
|
||||
@@ -263,7 +284,9 @@
|
||||
currentGroup: {},
|
||||
currentUser: {},
|
||||
currentOfficial: {},
|
||||
currentPublic: {}
|
||||
currentPublic: {},
|
||||
groupMembers: [],
|
||||
loadingMembers: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -436,6 +459,34 @@
|
||||
viewGroupDetails(group) {
|
||||
this.currentGroup = group;
|
||||
this.groupDetailDialogVisible = true;
|
||||
this.loadGroupMembers(group.wxid);
|
||||
},
|
||||
loadGroupMembers(groupId) {
|
||||
this.loadingMembers = true;
|
||||
this.groupMembers = [];
|
||||
|
||||
axios.get(`/contacts/api/group/${groupId}/members`)
|
||||
.then(response => {
|
||||
if (response.data.success) {
|
||||
const members = response.data.data.members;
|
||||
this.groupMembers = Object.entries(members).map(([wxid, info]) => {
|
||||
return {
|
||||
wxid: wxid,
|
||||
nickname: info.nickname || '未知',
|
||||
displayname: info.displayname || '未设置'
|
||||
};
|
||||
});
|
||||
} else {
|
||||
this.$message.warning('获取群成员信息失败: ' + response.data.error);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('加载群成员数据失败:', error);
|
||||
this.$message.error('加载群成员数据失败');
|
||||
})
|
||||
.finally(() => {
|
||||
this.loadingMembers = false;
|
||||
});
|
||||
},
|
||||
viewUserDetails(user) {
|
||||
this.currentUser = user;
|
||||
|
||||
Reference in New Issue
Block a user