auth-web/src/views/message-manger/message-editing/utils/hooks.ts

51 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-11-01 00:08:57 +08:00
import { reactive, ref } from 'vue';
import type { UploadRawFile, UploadRequestOptions } from 'element-plus';
import { SystemEnum } from '@/enums/upload';
import { message } from '@/utils/message';
2024-11-03 21:33:23 +08:00
import { fetchUploadFile } from '@/api/v1/system/system';
2024-11-01 00:08:57 +08:00
import { useAdminUserStore } from '@/store/system/adminUser';
2024-10-31 16:14:22 +08:00
2024-11-01 00:08:57 +08:00
// 用户信息列表
export const userDataList = ref();
// 搜索用户加载
export const loading = ref(false);
// 封面url
export const coverUrl = ref('');
2024-10-31 16:14:22 +08:00
// 提交表单信息
export const formState = reactive({
2025-04-24 13:43:37 +08:00
title: '',
receivedUserIds: undefined,
messageTypeId: undefined,
content: '',
editorType: 'markdown',
status: false,
summary: '',
level: '',
extra: '',
cover: '',
2024-10-31 16:14:22 +08:00
});
2024-11-01 00:08:57 +08:00
const adminUserStore = useAdminUserStore();
/** 搜索 */
export const onSearchUserinfo = async (keyword: string) => {
2025-04-24 13:43:37 +08:00
loading.value = true;
userDataList.value = await adminUserStore.queryUser({ keyword });
loading.value = false;
2024-11-01 00:08:57 +08:00
};
/** 上传时 */
export const onUpload = async (options: UploadRequestOptions) => {
2025-04-24 13:43:37 +08:00
const data = { file: options.file, type: 'message' };
const result: any = await fetchUploadFile(data);
coverUrl.value = result.data.url;
formState.cover = result.data.filepath;
2024-11-01 00:08:57 +08:00
};
/** 上传之前 */
export const beforeUpload = (file: UploadRawFile) => {
2025-04-24 13:43:37 +08:00
if (file.size > SystemEnum.IMAGE_SIZE) {
message(SystemEnum.IMAGE_MESSAGE, { type: 'error' });
return false;
}
2024-11-01 00:08:57 +08:00
};