Files
jdt-user/src/components/Upload.vue

66 lines
1.1 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>