✨ feat(im): 修管理端 3 处:群消息 atUserNicknames 类型允许 null、移除前端无效的「消息内容」查询入口、表情包宽高加表单校验
parent
7a236b4378
commit
73aa578c9b
|
|
@ -11,7 +11,8 @@ export interface ImManagerGroupMessageVO {
|
|||
content: string
|
||||
status: number
|
||||
atUserIds?: number[]
|
||||
atUserNicknames?: string[]
|
||||
// 与 atUserIds 同长度;后端对找不到 / 已删除的成员返回 null,UI 用 `?.[idx] || userId` 回退到 userId 渲染
|
||||
atUserNicknames?: (string | null)[]
|
||||
receiptStatus?: number
|
||||
sendTime: Date
|
||||
createTime: Date
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@
|
|||
class="w-1/1"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="尺寸">
|
||||
<!-- 尺寸:拆两个 form-item 让 prop / rules 各自绑定,避免单 form-item 时 rules 不生效 -->
|
||||
<el-form-item label="宽度" prop="width">
|
||||
<el-input-number
|
||||
v-model="formData.width"
|
||||
:min="1"
|
||||
|
|
@ -27,18 +28,19 @@
|
|||
controls-position="right"
|
||||
class="!w-1/3"
|
||||
/>
|
||||
<span class="mx-2 text-[var(--el-text-color-secondary)]">×</span>
|
||||
<el-input-number
|
||||
v-model="formData.height"
|
||||
:min="1"
|
||||
:max="2048"
|
||||
controls-position="right"
|
||||
class="!w-1/3"
|
||||
/>
|
||||
<span class="ml-2 text-12px text-[var(--el-text-color-placeholder)]">
|
||||
上传后自动探测;可手动调整(1 ~ 2048 像素)
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="高度" prop="height">
|
||||
<el-input-number
|
||||
v-model="formData.height"
|
||||
:min="1"
|
||||
:max="2048"
|
||||
controls-position="right"
|
||||
class="!w-1/3"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number
|
||||
v-model="formData.sort"
|
||||
|
|
@ -99,7 +101,31 @@ const formData = ref({
|
|||
})
|
||||
const formRules = reactive({
|
||||
url: [{ required: true, message: '表情图不能为空', trigger: 'change' }],
|
||||
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
|
||||
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
|
||||
// 宽高自动探测后允许手改,但提交前必须落 1-2048 范围;防止用户清空后 submit 让后端报错
|
||||
// 范围 rule 加 transform 把 null/undefined 透传给 async-validator,让空值只触发上面的 required 文案
|
||||
width: [
|
||||
{ required: true, message: '宽度不能为空', trigger: 'change' },
|
||||
{
|
||||
type: 'integer',
|
||||
min: 1,
|
||||
max: 2048,
|
||||
message: '宽度需在 1 - 2048 像素之间',
|
||||
trigger: 'change',
|
||||
transform: (value) => (value == null ? value : Number(value))
|
||||
}
|
||||
],
|
||||
height: [
|
||||
{ required: true, message: '高度不能为空', trigger: 'change' },
|
||||
{
|
||||
type: 'integer',
|
||||
min: 1,
|
||||
max: 2048,
|
||||
message: '高度需在 1 - 2048 像素之间',
|
||||
trigger: 'change',
|
||||
transform: (value) => (value == null ? value : Number(value))
|
||||
}
|
||||
]
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
|
|
|
|||
|
|
@ -33,15 +33,7 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="消息内容" prop="content">
|
||||
<el-input
|
||||
v-model="queryParams.content"
|
||||
placeholder="请输入消息内容"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 「消息内容」搜索入口暂时移除:后端 page 接口没有 content 字段,留着会误导管理员;后端补上后再恢复 -->
|
||||
<el-form-item label="发送时间" prop="sendTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.sendTime"
|
||||
|
|
@ -184,7 +176,6 @@ const queryParams = reactive({
|
|||
groupId: undefined as number | undefined,
|
||||
senderId: undefined as number | undefined,
|
||||
type: undefined as number | undefined,
|
||||
content: undefined as string | undefined,
|
||||
sendTime: [] as string[]
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
|
|
|
|||
|
|
@ -37,15 +37,7 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="消息内容" prop="content">
|
||||
<el-input
|
||||
v-model="queryParams.content"
|
||||
placeholder="请输入消息内容"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 「消息内容」搜索入口暂时移除:后端 page 接口没有 content 字段,留着会误导管理员;后端补上后再恢复 -->
|
||||
<el-form-item label="发送时间" prop="sendTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.sendTime"
|
||||
|
|
@ -159,7 +151,6 @@ const queryParams = reactive({
|
|||
senderId: undefined as number | undefined,
|
||||
receiverId: undefined as number | undefined,
|
||||
type: undefined as number | undefined,
|
||||
content: undefined as string | undefined,
|
||||
sendTime: [] as string[]
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
|
|
|
|||
Loading…
Reference in New Issue