Files
jdt-user/src/components/Upload.vue
2023-10-10 14:10:32 +08:00

66 lines
1.2 KiB
Vue

<template>
<nut-uploader
v-model:file-list="fileList"
:url="config.url"
:maximum="max"
:headers="config.headers"
@success="success"
@failure="failure"
:multiple="multiple"
>
</nut-uploader>
</template>
<script setup lang="ts">
import {BASE_URL} from '@/utils/request'
import {computed, ref} from 'vue'
import Taro from '@tarojs/taro'
const props = defineProps({
list: {
type: Array,
default: () => []
},
max: {
type: Number,
default: 1
},
multiple: {
type: Boolean,
default: false
}
});
const emits = defineEmits(['update:list'])
const fileList = computed({
get: () => props.list,
set: (val) => emits('update:list', val)
});
const config = ref({
url: `${BASE_URL}/upload`,
headers: {
token: Taro.getStorageSync('token')
},
});
const success = (res: any) => {
const data = JSON.parse(res.responseText.data)
res.fileItem.url = data.data.data
Taro.showToast({
title: '上传成功',
icon: 'success'
});
};
const failure = () => {
Taro.showToast({
title: '上传失败',
icon: 'error'
});
};
</script>
<style lang="scss"></style>