refactor: 迁移到 @nuxt/ui@4

- https://ui.nuxt.com/docs/getting-started/migration/v4#changes-from-v3
This commit is contained in:
2026-02-10 21:51:21 +08:00
parent 8198c853c9
commit fa756d8c97
9 changed files with 24 additions and 24 deletions

View File

@@ -411,7 +411,7 @@ const onForgetPasswordSubmit = (
name="mobile"
required
>
<UButtonGroup class="w-full">
<UFieldGroup class="w-full">
<UInput
v-model="smsForm.mobile"
:disabled="final_loading"
@@ -437,7 +437,7 @@ const onForgetPasswordSubmit = (
class="text-xs font-bold"
color="neutral"
/>
</UButtonGroup>
</UFieldGroup>
</UFormField>
<Transition name="pin-root">
<div v-if="sms_triggered">
@@ -485,7 +485,7 @@ const onForgetPasswordSubmit = (
name="mobile"
required
>
<UButtonGroup class="w-full">
<UFieldGroup class="w-full">
<UInput
v-model="forgetPasswordState.mobile"
:disabled="final_loading"
@@ -512,7 +512,7 @@ const onForgetPasswordSubmit = (
class="text-xs font-bold"
color="neutral"
/>
</UButtonGroup>
</UFieldGroup>
</UFormField>
<UFormField
label="验证码"

View File

@@ -327,7 +327,7 @@ const onRetryClick = (course: resp.gen.CourseGenItem) => {
</p>
</div>
<div class="flex items-end gap-1">
<UButtonGroup>
<UFieldGroup>
<UButton
color="neutral"
variant="outline"
@@ -411,7 +411,7 @@ const onRetryClick = (course: resp.gen.CourseGenItem) => {
trailing-icon="i-tabler-dots"
/>
</UDropdownMenu>
</UButtonGroup>
</UFieldGroup>
</div>
</div>

View File

@@ -314,7 +314,7 @@ const startDownload = (url: string, filename: string) => {
variant="soft"
@click="emit('delete', video)"
/>
<UButtonGroup size="xs">
<UFieldGroup size="xs">
<UButton
:label="
downloadingState.subtitle > 0 && downloadingState.subtitle < 100
@@ -374,7 +374,7 @@ const startDownload = (url: string, filename: string) => {
variant="soft"
/>
</UDropdownMenu>
</UButtonGroup>
</UFieldGroup>
</div>
</div>
</div>

View File

@@ -79,7 +79,7 @@ const closePreview = () => {
</p>
</div>
<div>
<UButtonGroup
<UFieldGroup
size="xs"
v-if="type === 'system'"
>
@@ -101,7 +101,7 @@ const closePreview = () => {
color="error"
/>
<template #panel="{ close }">
<template #content="{ close }">
<div class="flex flex-col gap-2 p-2">
<p class="text-xs text-gray-500 dark:text-gray-400">
素材删除后不可恢复确认删除
@@ -117,7 +117,7 @@ const closePreview = () => {
</div>
</template>
</UPopover>
</UButtonGroup>
</UFieldGroup>
<div v-if="type === 'user'">
<!-- <UButton
icon="tabler:trash"
@@ -135,7 +135,7 @@ const closePreview = () => {
size="xs"
/>
<template #panel="{ close }">
<template #content="{ close }">
<div class="flex flex-col gap-2 p-2">
<p class="text-xs text-gray-500 dark:text-gray-400">
素材删除后不可恢复确认删除

View File

@@ -885,7 +885,7 @@ const onCreateSubmit = async (
<!-- 状态筛选 -->
<div class="mb-4 flex items-center gap-4">
<span class="text-sm text-gray-600 dark:text-gray-400">状态筛选</span>
<UButtonGroup>
<UFieldGroup>
<UButton
:color="statusFilter === 0 ? 'primary' : 'neutral'"
:variant="statusFilter === 0 ? 'solid' : 'ghost'"
@@ -910,7 +910,7 @@ const onCreateSubmit = async (
}
"
/>
</UButtonGroup>
</UFieldGroup>
<UBadge
v-if="titlesListResp?.data.total"
color="primary"

View File

@@ -338,7 +338,7 @@ const onAvatarUpload = async (files: FileList) => {
<div
class="absolute inset-0 flex flex-col items-center justify-center bg-white/50 opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100 dark:bg-neutral-800/50"
>
<UButtonGroup>
<UFieldGroup>
<UButton
color="neutral"
icon="tabler:download"
@@ -353,7 +353,7 @@ const onAvatarUpload = async (files: FileList) => {
}
"
/>
</UButtonGroup>
</UFieldGroup>
<span
class="pt-4 text-xs font-medium text-neutral-400 dark:text-neutral-300"
>

View File

@@ -131,7 +131,7 @@ onMounted(() => {
"
>
<template #action>
<UButtonGroup size="md">
<UFieldGroup size="md">
<UInput
id="input-search"
v-model="searchInput"
@@ -151,7 +151,7 @@ onMounted(() => {
/>
</template>
</UInput>
</UButtonGroup>
</UFieldGroup>
<UButton
id="button-create"
:trailing="false"

View File

@@ -476,7 +476,7 @@ const onDeleteCat = (cat: PPTCategory) => {
<div class="space-y-4">
<UFormField label="创建分类">
<UButtonGroup
<UFieldGroup
orientation="horizontal"
class="w-full"
size="lg"
@@ -493,7 +493,7 @@ const onDeleteCat = (cat: PPTCategory) => {
:disabled="!createCatInput"
@click="onCreateCat"
/>
</UButtonGroup>
</UFieldGroup>
</UFormField>
<div class="rounded-md border dark:border-neutral-700">
<UTable

View File

@@ -440,7 +440,7 @@ onMounted(() => {
name="mobile"
required
>
<UButtonGroup class="w-full">
<UFieldGroup class="w-full">
<UInput
v-model="smsForm.mobile"
:disabled="final_loading"
@@ -467,7 +467,7 @@ onMounted(() => {
color="neutral"
variant="outline"
/>
</UButtonGroup>
</UFieldGroup>
</UFormField>
<Transition name="pin-root">
<div
@@ -518,7 +518,7 @@ onMounted(() => {
name="mobile"
required
>
<UButtonGroup class="w-full">
<UFieldGroup class="w-full">
<UInput
v-model="forgetPasswordState.mobile"
:disabled="final_loading"
@@ -543,7 +543,7 @@ onMounted(() => {
class="text-xs font-bold"
color="neutral"
/>
</UButtonGroup>
</UFieldGroup>
</UFormField>
<UFormField
label="验证码"