forked from marchFantasy/vue-file-upload
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.vue
109 lines (108 loc) · 2.58 KB
/
app.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<template lang='jade'>
div
vue-file-upload(url="http://localhost:8000/vue-file-upload/demo/upload.php",
ref="vueFileUploader"
v-bind:events = 'cbEvents',
v-bind:filters = "filters",
v-bind:request-options = "reqopts",
v-on:onAdd = "onAddItem"
)
table
thead
tr
th name
th size
th preview
th progress
th status
th action
tbody
tr(v-for='file in files')
td(v-text='file.name')
td(v-text='file.size')
td
img(v-bind:src='onPreview(file)',width='220px')
td(v-text='file.progress')
td(v-text='onStatus(file)')
td
button(type='button',value='upload',@click="uploadItem(file)") upload
button(type='button',value='upload',@click="deleteItem(file)") delete
button(type='button',@click="uploadAll") 上传所有文件
button(type='button',@click="clearAll") 清空文件列表
</template>
<script>
import VueFileUpload from '../src/vue-file-upload.vue';
export default{
data(){
return{
files:[],
//过滤器回调
filters:[
{
name:"imageFilter",
fn(file){
var type = '|' + file.type.slice(file.type.lastIndexOf('/') + 1) + '|';
return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;
}
}
],
//事件回调
cbEvents:{
onCompleteUpload:(file,response,status,header)=>{
console.log(file);
console.log("finish upload;")
},
onAddFileSuccess:(file)=>{
console.log(file);
console.log("success add to queue");
}
},
reqopts:{
formData:{
tokens:'tttttttttttttt'
},
responseType:'json',
withCredentials:false
}
}
},
created(){
},
methods:{
onStatus(file){
if(file.isSuccess){
return "上传成功";
}else if(file.isError){
return "上传失败";
}else if(file.isUploading){
return "正在上传";
}else{
return "待上传";
}
},
onPreview(file){
var src = window.URL.createObjectURL(file.file);
return src;
},
onAddItem(files){
console.log(files);
this.files = files;
},
uploadItem(file){
file.upload();
},
deleteItem(file){
file.remove();
},
uploadAll(){
this.$refs.vueFileUploader.uploadAll();
},
clearAll(){
this.$refs.vueFileUploader.clearAll();
}
},
components:{
VueFileUpload
}
}
</script>