|
@@ -24,7 +24,15 @@
|
|
|
<div class="file-list" v-if="file_list.length">
|
|
|
<div v-for="(item, index) in file_list" :key="index">
|
|
|
<div class="file-item" v-if="item !== ''">
|
|
|
- <div class="file-wrap"> <a-image width="70px" :src="imgUrlPrefix + item" /></div>
|
|
|
+ <div class="file-wrap">
|
|
|
+ <a-image v-if="isAssetTypeAnImage(item)" width="70px" :src="imgUrlPrefix + item" />
|
|
|
+ <a
|
|
|
+ v-if="!isAssetTypeAnImage(item)"
|
|
|
+ :href="imgUrlPrefix + item"
|
|
|
+ :download="getFilename(item)"
|
|
|
+ >{{ getFilename(item) }}</a
|
|
|
+ >
|
|
|
+ </div>
|
|
|
<div class="dele-file" @click="deleteFile(item, index)">
|
|
|
<Icon icon="ri:delete-bin-5-fill" />
|
|
|
</div>
|
|
@@ -99,7 +107,25 @@
|
|
|
watch(props, (props: PropsType) => {
|
|
|
state.file_list = props.value.split(',');
|
|
|
});
|
|
|
+ function getFilename(filePath) {
|
|
|
+ //获取最后一个\的位置
|
|
|
+ const index = filePath.lastIndexOf('\\');
|
|
|
+ //获取后缀
|
|
|
+ const filename = filePath.substr(index + 1);
|
|
|
+ return filename;
|
|
|
+ }
|
|
|
|
|
|
+ function isAssetTypeAnImage(filePath) {
|
|
|
+ //获取最后一个.的位置
|
|
|
+ const index = filePath.lastIndexOf('.');
|
|
|
+ //获取后缀
|
|
|
+ const ext = filePath.substr(index + 1);
|
|
|
+ return (
|
|
|
+ ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(
|
|
|
+ ext.toLowerCase()
|
|
|
+ ) !== -1
|
|
|
+ );
|
|
|
+ }
|
|
|
return {
|
|
|
handleChange: (list: string[]) => {
|
|
|
if (props.type === 'file') {
|
|
@@ -111,6 +137,8 @@
|
|
|
},
|
|
|
checked,
|
|
|
imgUrlPrefix,
|
|
|
+ getFilename,
|
|
|
+ isAssetTypeAnImage,
|
|
|
openChooseModal,
|
|
|
deleteFile,
|
|
|
uploadApi,
|