refactor: 将 @iconify/vue 图标替换为 lucide-vue-next 本地组件
- 所有 lucide: 前缀的图标字符串替换为 lucide-vue-next 组件直接引用
- 动态图标绑定改为 <component :is> 渲染
- h(Icon, { icon: 'lucide:xxx' }) 改为 h(Xxx, { class: ... })
- app-card.vue 的 icon_url 改为 <img> 标签(实际是图片路径)
- 修复 Webhook 标识符冲突(重命名为 WebhookIcon)
- payment-channels 保留 @iconify/vue 用于品牌图标(支付宝、微信、Stripe、PayPal、USDT)
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<script setup lang="ts">
|
||||
import type { AcceptableValue } from 'reka-ui'
|
||||
|
||||
import { Icon } from '@iconify/vue'
|
||||
import { computed } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import FlagIcon from 'vue3-flag-icons'
|
||||
|
||||
import type { Language } from '@/plugins/i18n'
|
||||
|
||||
@@ -26,8 +26,8 @@ function handleLocaleChange(val: AcceptableValue) {
|
||||
appLocale.value = val as Language
|
||||
}
|
||||
|
||||
const currentFlag = computed(() => {
|
||||
return locale.value === 'zh' ? 'flag:cn-4x3' : 'flag:us-4x3'
|
||||
const currentFlagCode = computed(() => {
|
||||
return locale.value === 'zh' ? 'cn' : 'us'
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -35,7 +35,7 @@ const currentFlag = computed(() => {
|
||||
<UiDropdownMenu>
|
||||
<UiDropdownMenuTrigger as-child>
|
||||
<UiButton variant="ghost" size="icon" class="h-9 w-9">
|
||||
<Icon :icon="currentFlag" class="h-5 w-5" />
|
||||
<FlagIcon :code="currentFlagCode" :size="20" />
|
||||
<span class="sr-only">切换语言</span>
|
||||
</UiButton>
|
||||
</UiDropdownMenuTrigger>
|
||||
@@ -47,11 +47,11 @@ const currentFlag = computed(() => {
|
||||
@update:model-value="handleLocaleChange"
|
||||
>
|
||||
<UiDropdownMenuRadioItem value="en">
|
||||
<Icon icon="flag:us-4x3" />
|
||||
<FlagIcon code="us" :size="18" />
|
||||
<span class="ml-2">English</span>
|
||||
</UiDropdownMenuRadioItem>
|
||||
<UiDropdownMenuRadioItem value="zh">
|
||||
<Icon icon="flag:cn-4x3" />
|
||||
<FlagIcon code="cn" :size="18" />
|
||||
<span class="ml-2">中文</span>
|
||||
</UiDropdownMenuRadioItem>
|
||||
</UiDropdownMenuRadioGroup>
|
||||
|
||||
Reference in New Issue
Block a user