85 lines
1.9 KiB
Plaintext
85 lines
1.9 KiB
Plaintext
// 导入所有文件图标
|
|
import iconDefault from '@/static/filetree/icon_default.svg'
|
|
import iconTsx from '@/static/filetree/icon_tsx.svg'
|
|
import iconTs from '@/static/filetree/icon_ts.svg'
|
|
import iconJs from '@/static/filetree/icon_js.svg'
|
|
import iconCss from '@/static/filetree/icon_css.svg'
|
|
import iconJson from '@/static/filetree/icon_json.svg'
|
|
import iconHtml from '@/static/filetree/icon_html.svg'
|
|
import iconMd from '@/static/filetree/icon_md.svg'
|
|
import iconPy from '@/static/filetree/icon_py.svg'
|
|
import iconSql from '@/static/filetree/icon_sql.svg'
|
|
import iconPng from '@/static/filetree/icon_png.svg'
|
|
import iconSvg from '@/static/filetree/icon_svg.svg'
|
|
|
|
/**
|
|
* 根据文件名获取文件图标路径
|
|
* @param fileName 文件名
|
|
* @returns 图标路径
|
|
*/
|
|
export function getFileIcon(fileName: string): string {
|
|
if (!fileName || fileName.length === 0) {
|
|
return iconDefault
|
|
}
|
|
|
|
const ext = fileName.split('.').pop()?.toLowerCase() || ''
|
|
|
|
// TypeScript 文件
|
|
if (ext === 'tsx') {
|
|
return iconTsx
|
|
}
|
|
if (ext === 'ts') {
|
|
return iconTs
|
|
}
|
|
|
|
// JavaScript 文件
|
|
if (['js', 'jsx', 'mjs', 'cjs'].includes(ext)) {
|
|
return iconJs
|
|
}
|
|
|
|
// CSS 文件
|
|
if (['css', 'less', 'scss', 'sass'].includes(ext)) {
|
|
return iconCss
|
|
}
|
|
|
|
// JSON 文件
|
|
if (['json', 'jsonc'].includes(ext)) {
|
|
return iconJson
|
|
}
|
|
|
|
// HTML 文件
|
|
if (['html', 'htm'].includes(ext)) {
|
|
return iconHtml
|
|
}
|
|
|
|
// Markdown 文件
|
|
if (['md', 'markdown'].includes(ext)) {
|
|
return iconMd
|
|
}
|
|
|
|
// Python 文件
|
|
if (ext === 'py') {
|
|
return iconPy
|
|
}
|
|
|
|
// SQL 文件
|
|
if (['sql', 'mysql', 'pgsql'].includes(ext)) {
|
|
return iconSql
|
|
}
|
|
|
|
// 图片文件
|
|
if (ext === 'png') {
|
|
return iconPng
|
|
}
|
|
if (ext === 'svg') {
|
|
return iconSvg
|
|
}
|
|
if (['jpg', 'jpeg', 'gif', 'bmp', 'webp', 'ico', 'tiff'].includes(ext)) {
|
|
return iconPng
|
|
}
|
|
|
|
// 默认文件图标
|
|
return iconDefault
|
|
}
|
|
|