From dc0431e9f657c17716eb6027fa9bef54f368211a Mon Sep 17 00:00:00 2001 From: zjl Date: Mon, 23 Dec 2024 12:52:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A3=81=E5=89=AA=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Cropper/src/CropperModal.vue | 60 ++++++++++++++------- src/views/system/user/edit.vue | 3 +- 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/src/components/Cropper/src/CropperModal.vue b/src/components/Cropper/src/CropperModal.vue index 5e0a02d..752b804 100644 --- a/src/components/Cropper/src/CropperModal.vue +++ b/src/components/Cropper/src/CropperModal.vue @@ -17,7 +17,7 @@ @@ -160,7 +160,7 @@ import { ElMessage } from 'element-plus'; import { basicModal, useModal } from '@/components/Modal'; import CropperImage from './CropperImage.vue'; - import { dataURLtoBlob ,base64ToFile} from '@/utils/file/base64Conver'; + import { dataURLtoBlob, base64ToFile } from '@/utils/file/base64Conver'; import { isFunction } from '@/utils/is'; import { getOssConfig } from '@/api/common'; import OSS from 'ali-oss'; @@ -207,17 +207,26 @@ let scaleX = 1; let scaleY = 1; + /** + * 定义模态 + */ const [modalRegister, { openModal, closeModal, setSubLoading }] = useModal({ title: props.title, width: 800, }); + /** + * 显示弹窗 + */ function showModal() { openModal(); } - function handleHttpUpload(){ - } - // 上传图片 + function handleHttpUpload() {} + + /** + * 上传图片 + * @param file 文件 + */ function beforeUpload(file) { const reader = new FileReader(); reader.readAsDataURL(file); @@ -248,21 +257,25 @@ cropper?.value?.[event]?.(arg); } + /** + * 执行上传 + */ async function handleOk() { if (!src.value) { setSubLoading(false); return ElMessage.error('请先上传图片'); } const uploadApi = props.uploadApi; - const name = props.name - const file = base64ToFile(previewSource.value,filename); - //接口上传 + const name = props.name; + const file = base64ToFile(previewSource.value, filename); + // 文件上传 if (uploadApi && isFunction(uploadApi)) { + // 本地接口上传 try { setSubLoading(true); - const formData = new FormData() - formData.append('file',file) - formData.append('name',name) + const formData = new FormData(); + formData.append('file', file); + formData.append('name', name); const result = await uploadApi(formData); emit('uploadSuccess', result); closeModal(); @@ -270,10 +283,15 @@ setSubLoading(false); } } else { - //oss上传 - actionFiles(file) + // OSS上传 + actionFiles(file); } } + + /** + * 上传阿里云OSS + * @param fileChild 参数 + */ const actionFiles = async (fileChild) => { const configData = await getOssConfig(); let date = new Date(); @@ -321,17 +339,21 @@ // headers, mime: fileChild.type, }); - emit('uploadSuccess', {fileUrl:configData.oss_domain + res.name}); - closeModal(); + emit('uploadSuccess', { fileUrl: configData.oss_domain + res.name }); + closeModal(); } catch (error) { emit('uploadSuccess', {}); } finally { setSubLoading(false); } }; - function handleClose(){ - src.value ='' - previewSource.value='' + + /** + * 执行关闭 + */ + function handleClose() { + src.value = ''; + previewSource.value = ''; } return { @@ -346,7 +368,7 @@ handleReady, handlerToolbar, handleOk, - handleClose + handleClose, }; }, }); diff --git a/src/views/system/user/edit.vue b/src/views/system/user/edit.vue index db8f391..116003e 100644 --- a/src/views/system/user/edit.vue +++ b/src/views/system/user/edit.vue @@ -157,7 +157,8 @@ class="flex-1" :rules="[ { required: true, message: '请输入手机号码', trigger: 'blur' }, - { validator: rule.validatePhone, trigger: 'blur' }]" + { validator: rule.validatePhone, trigger: 'blur' }, + ]" >