优化裁剪上传
This commit is contained in:
parent
9f5dc0b57a
commit
dc0431e9f6
@ -17,7 +17,7 @@
|
|||||||
<el-upload
|
<el-upload
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
accept="image/*"
|
accept="image/*"
|
||||||
:http-request="handleHttpUpload"
|
:http-request="handleHttpUpload"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
style="width: auto"
|
style="width: auto"
|
||||||
>
|
>
|
||||||
@ -160,7 +160,7 @@
|
|||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage } from 'element-plus';
|
||||||
import { basicModal, useModal } from '@/components/Modal';
|
import { basicModal, useModal } from '@/components/Modal';
|
||||||
import CropperImage from './CropperImage.vue';
|
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 { isFunction } from '@/utils/is';
|
||||||
import { getOssConfig } from '@/api/common';
|
import { getOssConfig } from '@/api/common';
|
||||||
import OSS from 'ali-oss';
|
import OSS from 'ali-oss';
|
||||||
@ -207,17 +207,26 @@
|
|||||||
let scaleX = 1;
|
let scaleX = 1;
|
||||||
let scaleY = 1;
|
let scaleY = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定义模态
|
||||||
|
*/
|
||||||
const [modalRegister, { openModal, closeModal, setSubLoading }] = useModal({
|
const [modalRegister, { openModal, closeModal, setSubLoading }] = useModal({
|
||||||
title: props.title,
|
title: props.title,
|
||||||
width: 800,
|
width: 800,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示弹窗
|
||||||
|
*/
|
||||||
function showModal() {
|
function showModal() {
|
||||||
openModal();
|
openModal();
|
||||||
}
|
}
|
||||||
function handleHttpUpload(){
|
function handleHttpUpload() {}
|
||||||
}
|
|
||||||
// 上传图片
|
/**
|
||||||
|
* 上传图片
|
||||||
|
* @param file 文件
|
||||||
|
*/
|
||||||
function beforeUpload(file) {
|
function beforeUpload(file) {
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file);
|
||||||
@ -248,21 +257,25 @@
|
|||||||
cropper?.value?.[event]?.(arg);
|
cropper?.value?.[event]?.(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行上传
|
||||||
|
*/
|
||||||
async function handleOk() {
|
async function handleOk() {
|
||||||
if (!src.value) {
|
if (!src.value) {
|
||||||
setSubLoading(false);
|
setSubLoading(false);
|
||||||
return ElMessage.error('请先上传图片');
|
return ElMessage.error('请先上传图片');
|
||||||
}
|
}
|
||||||
const uploadApi = props.uploadApi;
|
const uploadApi = props.uploadApi;
|
||||||
const name = props.name
|
const name = props.name;
|
||||||
const file = base64ToFile(previewSource.value,filename);
|
const file = base64ToFile(previewSource.value, filename);
|
||||||
//接口上传
|
// 文件上传
|
||||||
if (uploadApi && isFunction(uploadApi)) {
|
if (uploadApi && isFunction(uploadApi)) {
|
||||||
|
// 本地接口上传
|
||||||
try {
|
try {
|
||||||
setSubLoading(true);
|
setSubLoading(true);
|
||||||
const formData = new FormData()
|
const formData = new FormData();
|
||||||
formData.append('file',file)
|
formData.append('file', file);
|
||||||
formData.append('name',name)
|
formData.append('name', name);
|
||||||
const result = await uploadApi(formData);
|
const result = await uploadApi(formData);
|
||||||
emit('uploadSuccess', result);
|
emit('uploadSuccess', result);
|
||||||
closeModal();
|
closeModal();
|
||||||
@ -270,10 +283,15 @@
|
|||||||
setSubLoading(false);
|
setSubLoading(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//oss上传
|
// OSS上传
|
||||||
actionFiles(file)
|
actionFiles(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传阿里云OSS
|
||||||
|
* @param fileChild 参数
|
||||||
|
*/
|
||||||
const actionFiles = async (fileChild) => {
|
const actionFiles = async (fileChild) => {
|
||||||
const configData = await getOssConfig();
|
const configData = await getOssConfig();
|
||||||
let date = new Date();
|
let date = new Date();
|
||||||
@ -321,17 +339,21 @@
|
|||||||
// headers,
|
// headers,
|
||||||
mime: fileChild.type,
|
mime: fileChild.type,
|
||||||
});
|
});
|
||||||
emit('uploadSuccess', {fileUrl:configData.oss_domain + res.name});
|
emit('uploadSuccess', { fileUrl: configData.oss_domain + res.name });
|
||||||
closeModal();
|
closeModal();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
emit('uploadSuccess', {});
|
emit('uploadSuccess', {});
|
||||||
} finally {
|
} finally {
|
||||||
setSubLoading(false);
|
setSubLoading(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function handleClose(){
|
|
||||||
src.value =''
|
/**
|
||||||
previewSource.value=''
|
* 执行关闭
|
||||||
|
*/
|
||||||
|
function handleClose() {
|
||||||
|
src.value = '';
|
||||||
|
previewSource.value = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -346,7 +368,7 @@
|
|||||||
handleReady,
|
handleReady,
|
||||||
handlerToolbar,
|
handlerToolbar,
|
||||||
handleOk,
|
handleOk,
|
||||||
handleClose
|
handleClose,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -157,7 +157,8 @@
|
|||||||
class="flex-1"
|
class="flex-1"
|
||||||
:rules="[
|
:rules="[
|
||||||
{ required: true, message: '请输入手机号码', trigger: 'blur' },
|
{ required: true, message: '请输入手机号码', trigger: 'blur' },
|
||||||
{ validator: rule.validatePhone, trigger: 'blur' }]"
|
{ validator: rule.validatePhone, trigger: 'blur' },
|
||||||
|
]"
|
||||||
>
|
>
|
||||||
<el-input v-model="formData.mobile" placeholder="请输入手机号码" clearable />
|
<el-input v-model="formData.mobile" placeholder="请输入手机号码" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
Loading…
Reference in New Issue
Block a user