feat: use lucide icons

This commit is contained in:
xingyu4j
2025-11-13 18:36:35 +08:00
parent 83a5ca15b5
commit 7f84c42bcc
20 changed files with 58 additions and 58 deletions

View File

@@ -35,7 +35,7 @@ const { hasAccessByCodes } = useAccess();
@click="emit('delete', item.id)"
>
<template #icon>
<IconifyIcon icon="mdi:delete" />
<IconifyIcon icon="lucide:trash-2" />
</template>
</Button>
</div>

View File

@@ -89,7 +89,7 @@ const customRequest: UploadProps['customRequest'] = async function (options) {
class="mb-4"
>
<Button type="primary">
<IconifyIcon icon="mdi:upload" class="mr-1" />
<IconifyIcon icon="lucide:upload" class="mr-1" />
点击上传
</Button>
<template #itemRender="{ file, actions }">

View File

@@ -126,7 +126,7 @@ const customRequest: UploadProps['customRequest'] = async function (options) {
class="mb-4"
>
<Button type="primary">
<IconifyIcon icon="mdi:video-plus" class="mr-1" />
<IconifyIcon icon="lucide:video" class="mr-1" />
选择视频
</Button>
</Upload>

View File

@@ -5,7 +5,7 @@ import { watch } from 'vue';
import { useAccess } from '@vben/access';
import { IconifyIcon } from '@vben/icons';
import { formatDate2 } from '@vben/utils';
import { formatDate2, openWindow } from '@vben/utils';
import { Button } from 'ant-design-vue';
@@ -90,10 +90,6 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<any>, // TODO @dylan这里有个告警哈
});
function handleDownload(url: string) {
window.open(url, '_blank');
}
watch(
() => props.list,
(list: any[]) => {
@@ -125,8 +121,8 @@ watch(
{{ formatDate2(row.createTime) }}
</template>
<template #actions="{ row }">
<Button type="link" @click="handleDownload(row.url)">
<IconifyIcon icon="mdi:download" />
<Button type="link" @click="openWindow(row.url)">
<IconifyIcon icon="lucide:download" />
下载
</Button>
<Button
@@ -135,7 +131,7 @@ watch(
type="link"
@click="emit('delete', row.id)"
>
<IconifyIcon icon="mdi:delete" />
<IconifyIcon icon="lucide:trash-2" />
删除
</Button>
</template>

View File

@@ -5,7 +5,7 @@ import { watch } from 'vue';
import { useAccess } from '@vben/access';
import { IconifyIcon } from '@vben/icons';
import { formatDate2 } from '@vben/utils';
import { formatDate2, openWindow } from '@vben/utils';
import { Button } from 'ant-design-vue';
@@ -78,10 +78,6 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<any>, // TODO @dylan这里有个告警哈
});
function handleDownload(url: string) {
window.open(url, '_blank');
}
watch(
() => props.list,
(list: any[]) => {
@@ -113,8 +109,8 @@ watch(
{{ formatDate2(row.createTime) }}
</template>
<template #actions="{ row }">
<Button type="link" @click="handleDownload(row.url)">
<IconifyIcon icon="mdi:download" />
<Button type="link" @click="openWindow(row.url)">
<IconifyIcon icon="lucide:download" />
下载
</Button>
<Button
@@ -123,7 +119,7 @@ watch(
type="link"
@click="emit('delete', row.id)"
>
<IconifyIcon icon="mdi:delete" />
<IconifyIcon icon="lucide:trash-2" />
删除
</Button>
</template>

View File

@@ -2,7 +2,7 @@
import { provide, reactive, ref } from 'vue';
import { useAccess } from '@vben/access';
import { Page } from '@vben/common-ui';
import { DocAlert, Page } from '@vben/common-ui';
import { IconifyIcon } from '@vben/icons';
import {
@@ -99,6 +99,9 @@ async function handleDelete(id: number) {
<template>
<Page auto-content-height>
<template #doc>
<DocAlert title="公众号素材" url="https://doc.iocoder.cn/mp/material/" />
</template>
<div class="h-full">
<!-- 搜索工作栏 -->
<Card class="h-[10%]" :bordered="false">
@@ -109,13 +112,13 @@ async function handleDelete(id: number) {
</Form>
</Card>
<Card :bordered="false" class="mt-4 h-[90%]">
<Card :bordered="false" class="mt-4 h-[88%]">
<Tabs v-model:active-key="type" @change="onTabChange">
<!-- tab 1图片 -->
<Tabs.TabPane :key="UploadType.Image">
<template #tab>
<span class="flex items-center">
<IconifyIcon icon="mdi:image" class="mr-1" />
<IconifyIcon icon="lucide:image" class="mr-1" />
图片
</span>
</template>
@@ -149,7 +152,7 @@ async function handleDelete(id: number) {
<Tabs.TabPane :key="UploadType.Voice">
<template #tab>
<span class="flex items-center">
<IconifyIcon icon="mdi:microphone" class="mr-1" />
<IconifyIcon icon="lucide:mic" class="mr-1" />
语音
</span>
</template>
@@ -183,7 +186,7 @@ async function handleDelete(id: number) {
<Tabs.TabPane :key="UploadType.Video">
<template #tab>
<span class="flex items-center">
<IconifyIcon icon="mdi:video" class="mr-1" />
<IconifyIcon icon="lucide:video" class="mr-1" />
视频
</span>
</template>