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

51 lines
1.4 KiB
TypeScript

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