feat: 优化群聊消息手动查询

This commit is contained in:
richjohnrambo
2026-09-07 21:52:00 +08:00
parent af2803ef1f
commit 5f3f6913b8
5 changed files with 81 additions and 11 deletions
+10 -2
View File
@@ -108,6 +108,7 @@
const showDetail = ref(false);
const showAction = ref(false);
const submitting = ref(false);
const hasQueried = ref(!props.group);
const current = ref<Recordable>({});
const reason = ref('');
const actionType = ref<'hide' | 'delete'>('hide');
@@ -148,21 +149,28 @@
schemas,
});
const loadDataTable = async (res) => {
if (props.group && !hasQueried.value) return { list: [], page: 1, pageCount: 0, totalCount: 0 };
const params = { ...searchFormRef.value?.formModel, ...res };
if (isPlatformAdmin.value && !params.tenantId)
return { list: [], page: 1, pageCount: 0, totalCount: 0 };
return api.List(params);
};
function reloadTable() {
hasQueried.value = true;
actionRef.value?.reload();
}
async function handleReset() {
const defaults: Recordable = {};
if (isPlatformAdmin.value) defaults.tenantId = imQueryTenantOptions.value[0]?.value;
await setFieldsValue(defaults);
reloadTable();
if (props.group) hasQueried.value = false;
actionRef.value?.reload();
}
function handleExport() {
if (props.group && !hasQueried.value) {
message.warning('请先查询群聊消息');
return;
}
const params = { ...searchFormRef.value?.formModel };
if (isPlatformAdmin.value && !params.tenantId) {
message.warning('请选择租户');
@@ -213,7 +221,7 @@
await setFieldsValue({ tenantId: imQueryTenantOptions.value[0].value });
else message.warning('暂无可用租户');
}
reloadTable();
if (!props.group) reloadTable();
});
</script>
+29 -2
View File
@@ -21,8 +21,8 @@ export function createMessageSchemas(group: boolean) {
{
field: 'topic',
component: 'NInput',
label: group ? '群Topic' : '会话Topic',
componentProps: { placeholder: '请输入Topic' },
label: group ? '群号/Topic' : '会话Topic',
componentProps: { placeholder: group ? '请输入群号或Topic' : '请输入Topic' },
},
{
field: group ? 'senderUserId' : 'fromUserId',
@@ -31,6 +31,33 @@ export function createMessageSchemas(group: boolean) {
componentProps: { placeholder: '请输入用户ID' },
},
];
if (group)
items.push(
{
field: 'seqId',
component: 'NInputNumber',
label: '消息序号',
componentProps: { min: 1, showButton: false, placeholder: '请输入消息序号' },
},
{
field: 'senderUsername',
component: 'NInput',
label: '发送人用户名',
componentProps: { placeholder: '请输入发送人用户名' },
},
{
field: 'senderNickname',
component: 'NInput',
label: '发送人昵称',
componentProps: { placeholder: '请输入发送人昵称' },
},
{
field: 'groupName',
component: 'NInput',
label: '群名称',
componentProps: { placeholder: '请输入群名称' },
}
);
if (!group)
items.push({
field: 'toUserId',