Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
e447fb80
Commit
e447fb80
authored
Jul 08, 2021
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FileUpload组件支持多文件上传
parent
90c41d49
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
33 deletions
+40
-33
ruoyi-ui/src/components/FileUpload/index.vue
ruoyi-ui/src/components/FileUpload/index.vue
+40
-33
No files found.
ruoyi-ui/src/components/FileUpload/index.vue
View file @
e447fb80
...
@@ -4,9 +4,7 @@
...
@@ -4,9 +4,7 @@
:action=
"uploadFileUrl"
:action=
"uploadFileUrl"
:before-upload=
"handleBeforeUpload"
:before-upload=
"handleBeforeUpload"
:file-list=
"fileList"
:file-list=
"fileList"
:limit=
"1"
:on-error=
"handleUploadError"
:on-error=
"handleUploadError"
:on-exceed=
"handleExceed"
:on-success=
"handleUploadSuccess"
:on-success=
"handleUploadSuccess"
:show-file-list=
"false"
:show-file-list=
"false"
:headers=
"headers"
:headers=
"headers"
...
@@ -26,8 +24,8 @@
...
@@ -26,8 +24,8 @@
<!-- 文件列表 -->
<!-- 文件列表 -->
<transition-group
class=
"upload-file-list el-upload-list el-upload-list--text"
name=
"el-fade-in-linear"
tag=
"ul"
>
<transition-group
class=
"upload-file-list el-upload-list el-upload-list--text"
name=
"el-fade-in-linear"
tag=
"ul"
>
<li
:key=
"file.uid"
class=
"el-upload-list__item ele-upload-list__item-content"
v-for=
"(file, index) in
l
ist"
>
<li
:key=
"file.uid"
class=
"el-upload-list__item ele-upload-list__item-content"
v-for=
"(file, index) in
fileL
ist"
>
<el-link
:href=
"
file.url
"
:underline=
"false"
target=
"_blank"
>
<el-link
:href=
"
`${baseUrl}${file.url}`
"
:underline=
"false"
target=
"_blank"
>
<span
class=
"el-icon-document"
>
{{ getFileName(file.name) }}
</span>
<span
class=
"el-icon-document"
>
{{ getFileName(file.name) }}
</span>
</el-link>
</el-link>
<div
class=
"ele-upload-list__item-content-action"
>
<div
class=
"ele-upload-list__item-content-action"
>
...
@@ -42,6 +40,7 @@
...
@@ -42,6 +40,7 @@
import
{
getToken
}
from
"
@/utils/auth
"
;
import
{
getToken
}
from
"
@/utils/auth
"
;
export
default
{
export
default
{
name
:
"
FileUpload
"
,
props
:
{
props
:
{
// 值
// 值
value
:
[
String
,
Object
,
Array
],
value
:
[
String
,
Object
,
Array
],
...
@@ -63,6 +62,7 @@ export default {
...
@@ -63,6 +62,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
baseUrl
:
process
.
env
.
VUE_APP_BASE_API
,
uploadFileUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"
/common/upload
"
,
// 上传的图片服务器地址
uploadFileUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"
/common/upload
"
,
// 上传的图片服务器地址
headers
:
{
headers
:
{
Authorization
:
"
Bearer
"
+
getToken
(),
Authorization
:
"
Bearer
"
+
getToken
(),
...
@@ -70,19 +70,15 @@ export default {
...
@@ -70,19 +70,15 @@ export default {
fileList
:
[],
fileList
:
[],
};
};
},
},
computed
:
{
watch
:
{
// 是否显示提示
value
:
{
showTip
()
{
handler
(
val
)
{
return
this
.
isShowTip
&&
(
this
.
fileType
||
this
.
fileSize
);
if
(
val
)
{
},
// 列表
list
()
{
let
temp
=
1
;
let
temp
=
1
;
if
(
this
.
value
)
{
// 首先将值转为数组
// 首先将值转为数组
const
list
=
Array
.
isArray
(
this
.
value
)
?
this
.
value
:
[
this
.
value
]
;
const
list
=
Array
.
isArray
(
val
)
?
val
:
this
.
value
.
split
(
'
,
'
)
;
// 然后将数组转为对象数组
// 然后将数组转为对象数组
return
list
.
map
((
item
)
=>
{
this
.
fileList
=
list
.
map
(
item
=>
{
if
(
typeof
item
===
"
string
"
)
{
if
(
typeof
item
===
"
string
"
)
{
item
=
{
name
:
item
,
url
:
item
};
item
=
{
name
:
item
,
url
:
item
};
}
}
...
@@ -94,6 +90,15 @@ export default {
...
@@ -94,6 +90,15 @@ export default {
return
[];
return
[];
}
}
},
},
deep
:
true
,
immediate
:
true
}
},
computed
:
{
// 是否显示提示
showTip
()
{
return
this
.
isShowTip
&&
(
this
.
fileType
||
this
.
fileSize
);
},
},
},
methods
:
{
methods
:
{
// 上传前校检格式和大小
// 上传前校检格式和大小
...
@@ -124,10 +129,6 @@ export default {
...
@@ -124,10 +129,6 @@ export default {
}
}
return
true
;
return
true
;
},
},
// 文件个数超出
handleExceed
()
{
this
.
$message
.
error
(
`只允许上传单个文件`
);
},
// 上传失败
// 上传失败
handleUploadError
(
err
)
{
handleUploadError
(
err
)
{
this
.
$message
.
error
(
"
上传失败, 请重试
"
);
this
.
$message
.
error
(
"
上传失败, 请重试
"
);
...
@@ -135,12 +136,13 @@ export default {
...
@@ -135,12 +136,13 @@ export default {
// 上传成功回调
// 上传成功回调
handleUploadSuccess
(
res
,
file
)
{
handleUploadSuccess
(
res
,
file
)
{
this
.
$message
.
success
(
"
上传成功
"
);
this
.
$message
.
success
(
"
上传成功
"
);
this
.
$emit
(
"
input
"
,
res
.
url
);
this
.
fileList
.
push
({
name
:
res
.
fileName
,
url
:
res
.
fileName
});
this
.
$emit
(
"
input
"
,
this
.
listToString
(
this
.
fileList
));
},
},
// 删除文件
// 删除文件
handleDelete
(
index
)
{
handleDelete
(
index
)
{
this
.
fileList
.
splice
(
index
,
1
);
this
.
fileList
.
splice
(
index
,
1
);
this
.
$emit
(
"
input
"
,
''
);
this
.
$emit
(
"
input
"
,
this
.
listToString
(
this
.
fileList
)
);
},
},
// 获取文件名称
// 获取文件名称
getFileName
(
name
)
{
getFileName
(
name
)
{
...
@@ -149,11 +151,16 @@ export default {
...
@@ -149,11 +151,16 @@ export default {
}
else
{
}
else
{
return
""
;
return
""
;
}
}
}
},
created
()
{
this
.
fileList
=
this
.
list
;
},
},
// 对象转成分隔字符串
listToString
(
list
)
{
let
files
=
""
;
for
(
let
key
in
list
)
{
files
+=
list
[
key
].
url
+
"
,
"
;
}
return
files
.
substr
(
0
,
files
.
length
-
1
);
}
}
};
};
</
script
>
</
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment