feat: fileicon, filetext 组件改为全局,新增一体机上传简历(接口待调)
This commit is contained in:
54
components/FileIcon/fileIcon.vue
Normal file
54
components/FileIcon/fileIcon.vue
Normal file
@@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<image v-if="type === 'application/pdf' || type === 'pdf'" :src="pdfIcon" class="file-icon" />
|
||||
<image
|
||||
v-else-if="
|
||||
type === 'application/msword' ||
|
||||
type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||
|
||||
type === 'doc' ||
|
||||
type === 'docx'
|
||||
"
|
||||
:src="docIcon"
|
||||
class="file-icon"
|
||||
/>
|
||||
<image
|
||||
v-else-if="
|
||||
type === 'application/vnd.ms-powerpoint' ||
|
||||
type === 'application/vnd.openxmlformats-officedocument.presentationml.presentation'||
|
||||
type === 'ppt' ||
|
||||
type === 'pptx'
|
||||
"
|
||||
:src="pptIcon"
|
||||
class="file-icon"
|
||||
/>
|
||||
<image v-else-if="type === 'text/markdown' || type === 'md'" :src="mdIcon" class="file-icon" />
|
||||
<image v-else-if="type === 'text/plain' || type=== 'txt'" :src="txtIcon" class="file-icon" />
|
||||
<image v-else-if="type === 'text/html' || type === 'html'" :src="htmlIcon" class="file-icon" />
|
||||
<image
|
||||
v-else-if="
|
||||
type === 'application/vnd.ms-excel' ||
|
||||
type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'||
|
||||
type === 'xls' ||
|
||||
type === 'xlsx'
|
||||
"
|
||||
:src="excelIcon"
|
||||
class="file-icon"
|
||||
/>
|
||||
<image v-else :src="otherIcon" class="file-icon" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import pdfIcon from '@/static/file/pdf.png';
|
||||
import docIcon from '@/static/file/doc.png';
|
||||
import pptIcon from '@/static/file/ppt.png';
|
||||
import mdIcon from '@/static/file/md.png';
|
||||
import txtIcon from '@/static/file/txt.png';
|
||||
import htmlIcon from '@/static/file/html.png';
|
||||
import excelIcon from '@/static/file/excel.png';
|
||||
import otherIcon from '@/static/file/other.png';
|
||||
|
||||
const props = defineProps({
|
||||
type: String,
|
||||
});
|
||||
|
||||
const type = props.type;
|
||||
</script>
|
||||
57
components/FileText/fileText.vue
Normal file
57
components/FileText/fileText.vue
Normal file
@@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<view class="file-type-box">
|
||||
{{ fileAbbreviation }}
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
type: String,
|
||||
});
|
||||
|
||||
const fileAbbreviation = computed(() => {
|
||||
const typeMap = {
|
||||
'application/pdf': 'PDF',
|
||||
'application/msword': 'DOC',
|
||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'DOCX',
|
||||
'application/vnd.ms-powerpoint': 'PPT',
|
||||
'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'PPTX',
|
||||
'application/vnd.ms-excel': 'XLS',
|
||||
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'XLSX',
|
||||
'text/markdown': 'MD',
|
||||
'text/plain': 'TXT',
|
||||
'text/html': 'HTML',
|
||||
'pdf':'PDF',
|
||||
'doc':'DOC',
|
||||
'docx':'DOCX',
|
||||
'ppt':'PPT',
|
||||
'pptx':'PPTX',
|
||||
'xls': 'XLS',
|
||||
'xlsx': 'XLSX',
|
||||
'md':'MD',
|
||||
'txt':'TXT',
|
||||
'html':'HTML',
|
||||
'jpg':'JPG',
|
||||
'img':'IMG',
|
||||
'png':'PNG',
|
||||
'jpeg':'JPEG',
|
||||
'gif':'GIF',
|
||||
'webp':'WEBP',
|
||||
'svg':'SVG',
|
||||
'tiff':'TIFF',
|
||||
|
||||
};
|
||||
return typeMap[props.type] || 'OTHER';
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.file-type-box {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #7b7b7b;
|
||||
line-height: 28rpx;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user