sl-express/project-wl-siji-uniapp-vue3/components/ImageUpload/index.vue

93 lines
1.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- 公用卡片 -->
<view class="upPicCont">
<view class="title">{{title}}</view>
<uni-file-picker
v-model="cargoPicture"
fileMediatype="image"
mode="grid"
limit="3"
@select="select" ></uni-file-picker>
</view>
<!-- end -->
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue';
import {
upload
} from '@/pages/api/index.js'
const cargoPicture = ref([])
const emit = defineEmits(['uploadImage'])
// 获取父组件值、方法
const props = defineProps({
title:{
type: String,
default: '请拍照上传货品照片'
},
tit:{
type: String,
default: ''
}
});
// 图片上传 - 请求
async function uploadHande(e){
await upload(e).then(res => {
if (res.code === 200 && res.data) {
emit('uploadImage', {key: props.tit, value: res.data})
} else {
return uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
}).catch(err => {
uni.showToast({
title: '图片上传失败!请联系管理员',
duration: 1000,
icon: 'none'
});
});
}
// 图片上传
async function select(e){
cargoPicture.value = []
const tempFiles = e.tempFiles[0]
if (tempFiles.size < 1024 * 5 && (tempFiles.extname == 'png' || tempFiles.extname == 'jpg' || tempFiles.extname == 'jpeg' || tempFiles.extname == 'gif')) {
uploadHande(e)
} else {
uni.showToast({
title: '上传图片大小不能超过5M格式需为jpg、png、gif',
duration: 2000,
icon: 'none'
});
}
}
onMounted(()=>{
})
</script>
<style lang="scss" scoped>
@import url(@/styles/theme.scss);
.upPicCont{
margin-bottom: 32rpx;
padding-top: 30rpx;
.title{
font-weight: 400;
font-size: var(--font-size-14);
color: var(--neutral-color-font);
margin-bottom: 32rpx;
}
.file-picker__box-content{
border:none;
background: var(--neutral-color-cancel);
}
}
</style>