85 lines
1.6 KiB
Vue
85 lines
1.6 KiB
Vue
<template>
|
|
<view>
|
|
<l-upload ref="imgUpload" uploadType="img" :serverUrl="BASE_URL" :formData="{isImg: 'true'}"
|
|
:width="110" :height="110" :images="_value || []" :header="header" :max-size="props.formProps.maxSize"
|
|
:disableAdd="readonly" :limit="props.formProps.maxNumber" @complete="complete" @remove="remove"
|
|
:disable="readonly">
|
|
</l-upload>
|
|
<view v-if="!readonly" style="color: #999999; font-size: 26rpx;">{{ props.formProps.placeholder || '请上传图片' }}
|
|
{{ sizeTip }}
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
ref,
|
|
computed
|
|
} from 'vue'
|
|
import {
|
|
BASE_URL
|
|
} from '@/api/request.js'
|
|
|
|
const imageStyles = {
|
|
width: 80,
|
|
height: 80,
|
|
padding: '19rpx'
|
|
}
|
|
|
|
const header = ref({
|
|
Authorization: "Bearer " + uni.getStorageSync('wflow-token')
|
|
})
|
|
|
|
const props = defineProps({
|
|
formProps: {
|
|
type: Object,
|
|
default: () => {
|
|
return {}
|
|
}
|
|
},
|
|
modelValue: Array,
|
|
readonly: Boolean
|
|
})
|
|
|
|
const _value = computed({
|
|
get() {
|
|
return props.modelValue
|
|
},
|
|
set(val) {
|
|
emits('update:modelValue', val)
|
|
}
|
|
})
|
|
|
|
const sizeTip = computed(() => {
|
|
return props.formProps.maxSize > 0 ? `| 每张图不超过${props.formProps.maxSize}MB` : ''
|
|
})
|
|
|
|
const emits = defineEmits(['update:modelValue'])
|
|
|
|
const imgUpload = ref()
|
|
|
|
function complete(e) {
|
|
_value.value = e.imageArr
|
|
if ((_value.value || []).length < e.imageArr.length) {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '上传图片成功'
|
|
})
|
|
} else {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '移除图片成功'
|
|
})
|
|
}
|
|
}
|
|
|
|
function remove(i) {
|
|
if (!props.readonly) {
|
|
_value.value.splice(i, 1)
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
|
|
</style> |