2024-10-30 16:56:47 +08:00
|
|
|
import { reactive } from 'vue';
|
|
|
|
import { $t } from '@/plugins/i18n';
|
2024-11-03 18:56:28 +08:00
|
|
|
import { ElTag, type FormRules } from 'element-plus';
|
2024-10-30 16:56:47 +08:00
|
|
|
|
|
|
|
// 表格列
|
|
|
|
export const columns: TableColumnList = [
|
|
|
|
{ type: 'selection', align: 'left' },
|
|
|
|
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
|
|
|
|
// 消息标题
|
|
|
|
{ label: $t('title'), prop: 'title' },
|
2024-11-03 18:56:28 +08:00
|
|
|
// 消息简介
|
|
|
|
{ label: $t('summary'), prop: 'summary' },
|
2024-10-30 16:56:47 +08:00
|
|
|
// 发送人昵称
|
2024-10-30 23:44:10 +08:00
|
|
|
{ label: $t('sendNickname'), prop: 'sendNickname' },
|
2024-11-03 18:56:28 +08:00
|
|
|
// 接受人昵称
|
|
|
|
{ label: $t('receivedUserNickname'), prop: 'receivedUserNickname' },
|
2024-10-30 16:56:47 +08:00
|
|
|
// 消息类型
|
2024-11-03 18:56:28 +08:00
|
|
|
{ label: $t('messageType'), prop: 'messageType', slot: 'messageType' },
|
2024-10-30 16:56:47 +08:00
|
|
|
// 编辑器类型
|
|
|
|
{ label: $t('editorType'), prop: 'editorType' },
|
2024-11-03 18:56:28 +08:00
|
|
|
// 封面
|
|
|
|
{ label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 },
|
|
|
|
// 消息等级
|
2024-11-01 16:42:06 +08:00
|
|
|
{
|
|
|
|
label: $t('level'),
|
|
|
|
prop: 'level',
|
|
|
|
formatter({ level }) {
|
2024-11-03 18:56:28 +08:00
|
|
|
return (
|
|
|
|
<ElTag type={level} effect={'plain'} round>
|
|
|
|
{$t(level)}
|
|
|
|
</ElTag>
|
|
|
|
);
|
2024-11-01 16:42:06 +08:00
|
|
|
},
|
2024-11-03 18:56:28 +08:00
|
|
|
width: 100,
|
2024-11-01 16:42:06 +08:00
|
|
|
},
|
2024-11-03 18:56:28 +08:00
|
|
|
// 消息等级详情
|
|
|
|
{ label: $t('extra'), prop: 'extra', slot: 'extra' },
|
2024-10-30 16:56:47 +08:00
|
|
|
// 0:未读 1:已读
|
2024-10-30 23:44:10 +08:00
|
|
|
{
|
|
|
|
label: $t('status'),
|
|
|
|
prop: 'status',
|
|
|
|
formatter({ status }) {
|
2024-11-03 18:56:28 +08:00
|
|
|
return status ? (
|
|
|
|
<ElTag type={'info'} effect={'plain'}>
|
|
|
|
{$t('readAlready')}
|
|
|
|
</ElTag>
|
|
|
|
) : (
|
|
|
|
<ElTag type={'danger'} effect={'plain'}>
|
|
|
|
{$t('unread')}
|
|
|
|
</ElTag>
|
|
|
|
);
|
2024-10-30 23:44:10 +08:00
|
|
|
},
|
2024-11-03 18:56:28 +08:00
|
|
|
width: 80,
|
2024-10-30 23:44:10 +08:00
|
|
|
},
|
2024-10-30 16:56:47 +08:00
|
|
|
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },
|
|
|
|
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 },
|
2024-10-30 23:44:10 +08:00
|
|
|
{ label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 130 },
|
|
|
|
{ label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser', width: 130 },
|
2024-10-31 16:14:22 +08:00
|
|
|
{ label: $t('table.operation'), fixed: 'right', width: 150, slot: 'operation' },
|
2024-10-30 16:56:47 +08:00
|
|
|
];
|
|
|
|
|
|
|
|
// 添加规则
|
|
|
|
export const rules = reactive<FormRules>({
|
|
|
|
// 消息标题
|
|
|
|
title: [{ required: true, message: `${$t('input')}${$t('title')}`, trigger: 'blur' }],
|
|
|
|
// 发送人用户ID
|
|
|
|
sendUserId: [{ required: true, message: `${$t('input')}${$t('sendUserId')}`, trigger: 'blur' }],
|
|
|
|
// 消息类型
|
2024-11-03 18:56:28 +08:00
|
|
|
messageTypeId: [{ required: true, message: `${$t('input')}${$t('messageType')}`, trigger: 'blur' }],
|
2024-10-30 16:56:47 +08:00
|
|
|
// 消息内容
|
|
|
|
content: [{ required: true, message: `${$t('input')}${$t('content')}`, trigger: 'blur' }],
|
|
|
|
// 编辑器类型
|
|
|
|
editorType: [{ required: true, message: `${$t('input')}${$t('editorType')}`, trigger: 'blur' }],
|
|
|
|
});
|
|
|
|
|
|
|
|
/** 编辑器类型 */
|
|
|
|
export const editorTypeList = [
|
|
|
|
{ label: $t('markdown'), value: 'markdown' },
|
2024-10-31 16:14:22 +08:00
|
|
|
{ label: $t('richText'), value: 'rich' },
|
2024-10-30 16:56:47 +08:00
|
|
|
];
|