feat: add short IM user numbers

This commit is contained in:
richjohnrambo
2026-09-10 21:51:23 +08:00
parent 047df08f84
commit 26e511113b
9 changed files with 126 additions and 53 deletions
+3 -1
View File
@@ -3,7 +3,7 @@
v-model:show="showModal"
preset="dialog"
:show-icon="false"
:title="'登录设备 ' + userId"
:title="'登录设备 #' + (displayNo || userId)"
:mask-closable="false"
:style="{ width: dialogWidth }"
>
@@ -33,6 +33,7 @@
const showModal = ref(false);
const actionRef = ref();
const tenantId = ref(0);
const displayNo = ref(0);
const userId = ref('');
const dialogWidth = computed(() => adaModalWidth(1080));
const scrollX = computed(() => adaTableScrollX(deviceColumns, 0));
@@ -46,6 +47,7 @@
function openModal(record: State) {
tenantId.value = record.tenantId;
displayNo.value = record.displayNo;
userId.value = record.userId;
showModal.value = true;
setTimeout(() => {
+11 -3
View File
@@ -1,8 +1,14 @@
<template>
<n-modal v-model:show="showModal" preset="dialog" title="重置IM用户密码" :mask-closable="false">
<n-form ref="formRef" :model="formValue" :rules="rules" label-placement="left" :label-width="90">
<n-form-item label="用户ID">
<n-text>{{ userId }}</n-text>
<n-form
ref="formRef"
:model="formValue"
:rules="rules"
label-placement="left"
:label-width="90"
>
<n-form-item label="编号">
<n-text>{{ displayNo || '-' }}</n-text>
</n-form-item>
<n-form-item label="新密码" path="newPassword">
<n-input
@@ -44,6 +50,7 @@
const showModal = ref(false);
const loading = ref(false);
const tenantId = ref(0);
const displayNo = ref(0);
const userId = ref('');
const formValue = reactive({ newPassword: '', confirmPassword: '' });
const rules = {
@@ -66,6 +73,7 @@
function openModal(record: State) {
tenantId.value = record.tenantId;
displayNo.value = record.displayNo;
userId.value = record.userId;
formValue.newPassword = '';
formValue.confirmPassword = '';
+11 -4
View File
@@ -5,13 +5,13 @@
:show-icon="false"
preset="dialog"
transform-origin="center"
:title="'用户治理 #' + formValue.userId"
:title="'用户治理 #' + (formValue.displayNo || formValue.userId)"
:style="{ width: dialogWidth }"
>
<n-spin :show="loading" description="请稍候...">
<n-descriptions label-placement="left" bordered :column="settingStore.isMobile ? 1 : 2">
<n-descriptions-item label="商户">{{ formValue.tenantName || '-' }}</n-descriptions-item>
<n-descriptions-item label="用户ID">{{ formValue.userId }}</n-descriptions-item>
<n-descriptions-item label="编号">{{ formValue.displayNo || '-' }}</n-descriptions-item>
<n-descriptions-item label="昵称">{{ formValue.nickname || '-' }}</n-descriptions-item>
<n-descriptions-item label="状态">{{ stateLabel }}</n-descriptions-item>
</n-descriptions>
@@ -29,7 +29,12 @@
<n-switch v-model:value="actionForm.hard" />
</n-form-item>
<n-form-item label="原因">
<n-input v-model:value="actionForm.reason" type="textarea" clearable placeholder="请输入操作原因" />
<n-input
v-model:value="actionForm.reason"
type="textarea"
clearable
placeholder="请输入操作原因"
/>
</n-form-item>
</n-form>
</n-spin>
@@ -68,7 +73,9 @@
const showModal = ref(false);
const formValue = ref<State>(newState(null));
const dialogWidth = computed(() => adaModalWidth(720));
const stateLabel = computed(() => dict.getLabel('ImUserStateOptions', formValue.value.state) || '-');
const stateLabel = computed(
() => dict.getLabel('ImUserStateOptions', formValue.value.state) || '-'
);
const actionOptions = [
{ label: '封禁用户', value: 'ban' },
+6 -6
View File
@@ -58,9 +58,9 @@
class="user-dialog"
>
<n-form label-placement="left" label-width="90">
<n-form-item label="用户"
>{{ operationUser?.username }}({{ operationUser?.userId }})</n-form-item
>
<n-form-item label="用户">
{{ operationUser?.username }}({{ operationUser?.displayNo || operationUser?.userId }})
</n-form-item>
<n-form-item label="IP/CIDR">
<n-input
v-model:value="ipWhitelistText"
@@ -90,9 +90,9 @@
class="user-dialog"
>
<n-form label-placement="left" label-width="90">
<n-form-item label="用户"
>{{ operationUser?.username }}({{ operationUser?.userId }})</n-form-item
>
<n-form-item label="用户">
{{ operationUser?.username }}({{ operationUser?.displayNo || operationUser?.userId }})
</n-form-item>
<n-form-item label="用户分组" required>
<n-select
v-model:value="adjustGroupId"
+1 -1
View File
@@ -122,7 +122,7 @@ export const schemas = ref<FormSchema[]>([
label: '关键词',
componentProps: {
clearable: true,
placeholder: '用户名/昵称/手机号',
placeholder: '用户名/昵称/手机号/编号',
},
},
]);
+26 -10
View File
@@ -6,7 +6,7 @@
:show-icon="false"
preset="dialog"
transform-origin="center"
:title="'IM用户详情 #' + formValue.userId"
:title="'IM用户详情 #' + (formValue.displayNo || formValue.userId)"
:style="{
width: dialogWidth,
}"
@@ -15,25 +15,41 @@
<n-spin :show="loading" description="请稍候...">
<n-descriptions label-placement="left" bordered :column="settingStore.isMobile ? 1 : 2">
<n-descriptions-item label="商户">{{ formValue.tenantName }}</n-descriptions-item>
<n-descriptions-item label="用户ID">{{ formValue.userId }}</n-descriptions-item>
<n-descriptions-item label="编号">{{ formValue.displayNo || '-' }}</n-descriptions-item>
<n-descriptions-item label="登录账号">{{ formValue.username }}</n-descriptions-item>
<n-descriptions-item label="手机号">{{ formValue.phone || '-' }}</n-descriptions-item>
<n-descriptions-item label="昵称">{{ formValue.nickname || '-' }}</n-descriptions-item>
<n-descriptions-item label="公开账号">{{ formValue.publicAccount || '-' }}</n-descriptions-item>
<n-descriptions-item label="公开账号">{{
formValue.publicAccount || '-'
}}</n-descriptions-item>
<n-descriptions-item label="状态">{{ stateLabel }}</n-descriptions-item>
<n-descriptions-item label="认证版本">{{ formValue.authVersion }}</n-descriptions-item>
<n-descriptions-item label="登录标识">{{ formValue.authNames || '-' }}</n-descriptions-item>
<n-descriptions-item label="凭证">{{ formValue.credentials || '-' }}</n-descriptions-item>
<n-descriptions-item label="登录标识">{{
formValue.authNames || '-'
}}</n-descriptions-item>
<n-descriptions-item label="凭证">{{
formValue.credentials || '-'
}}</n-descriptions-item>
<n-descriptions-item label="性别">{{ formValue.gender || '-' }}</n-descriptions-item>
<n-descriptions-item label="地区">{{ formValue.region || '-' }}</n-descriptions-item>
<n-descriptions-item label="出生日期">{{ formValue.birthDate || '-' }}</n-descriptions-item>
<n-descriptions-item label="出生日期">{{
formValue.birthDate || '-'
}}</n-descriptions-item>
<n-descriptions-item label="密码更新时间">
{{ formValue.passwordUpdatedAt || '-' }}
</n-descriptions-item>
<n-descriptions-item label="最后在线">{{ formValue.lastSeen || '-' }}</n-descriptions-item>
<n-descriptions-item label="资料版本">{{ formValue.profileVersion }}</n-descriptions-item>
<n-descriptions-item label="创建时间">{{ formValue.createdAt || '-' }}</n-descriptions-item>
<n-descriptions-item label="修改时间">{{ formValue.updatedAt || '-' }}</n-descriptions-item>
<n-descriptions-item label="最后在线">{{
formValue.lastSeen || '-'
}}</n-descriptions-item>
<n-descriptions-item label="资料版本">{{
formValue.profileVersion
}}</n-descriptions-item>
<n-descriptions-item label="创建时间">{{
formValue.createdAt || '-'
}}</n-descriptions-item>
<n-descriptions-item label="修改时间">{{
formValue.updatedAt || '-'
}}</n-descriptions-item>
<n-descriptions-item label="客户端" :span="2">
{{ formValue.userAgent || '-' }}
</n-descriptions-item>