51 lines
1.4 KiB
TypeScript
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;
|
|
}
|
|
};
|