|
@@ -1,13 +1,15 @@
|
|
|
<template>
|
|
|
<div id="c-upload">
|
|
|
- <van-uploader v-model="file" multiple :max-count="count" :accept="accept" :before-read="beforeRead" :after-read="afterRead">
|
|
|
+ <!-- <van-uploader v-model="file" multiple :max-count="count" :accept="accept" :before-read="beforeRead" :after-read="afterRead">
|
|
|
<van-button type="primary" size="small">上传文件</van-button>
|
|
|
- </van-uploader>
|
|
|
+ </van-uploader> -->
|
|
|
+ <van-uploader v-model="file" multiple :max-count="count" :accept="accept" :before-read="beforeRead" :after-read="afterRead" :before-delete="beforeDelete" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
// 基础
|
|
|
+import _ from 'lodash';
|
|
|
import { toRefs } from 'vue';
|
|
|
import { onMounted } from 'vue';
|
|
|
import { showToast } from 'vant';
|
|
@@ -15,7 +17,7 @@ import axios from 'axios';
|
|
|
|
|
|
const props = defineProps({
|
|
|
file: { type: Array, default: () => [] },
|
|
|
- count: { type: Number, default: () => 1 },
|
|
|
+ count: { type: Number, default: () => 2 },
|
|
|
accept: { type: String, default: () => '*' }, //image/png,image/jpeg
|
|
|
url: { type: String, default: () => '/files/basic/policyfile/upload' }
|
|
|
});
|
|
@@ -56,8 +58,12 @@ const afterRead = async (e: { file: any }) => {
|
|
|
const { id, name, uri } = res.data;
|
|
|
const obj = { id, name, uri, url: `${import.meta.env.VITE_APP_HOST}/${uri}` };
|
|
|
file.value.push(obj);
|
|
|
- console.log(file.value);
|
|
|
}
|
|
|
};
|
|
|
+// 文件删除
|
|
|
+const beforeDelete = (e) => {
|
|
|
+ const index = file.value.findIndex((f) => _.isEqual(f, e));
|
|
|
+ if (index > -1) file.value.splice(index, 1);
|
|
|
+};
|
|
|
</script>
|
|
|
<style scoped lang="scss"></style>
|