93 lines
1.8 KiB
Vue
93 lines
1.8 KiB
Vue
<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>
|