4 Commits

11 changed files with 1033 additions and 246 deletions

View File

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

View File

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

View File

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

View File

@@ -79,7 +79,7 @@ const closePreview = () => {
</p> </p>
</div> </div>
<div> <div>
<UButtonGroup <UFieldGroup
size="xs" size="xs"
v-if="type === 'system'" v-if="type === 'system'"
> >
@@ -101,7 +101,7 @@ const closePreview = () => {
color="error" color="error"
/> />
<template #panel="{ close }"> <template #content="{ close }">
<div class="flex flex-col gap-2 p-2"> <div class="flex flex-col gap-2 p-2">
<p class="text-xs text-gray-500 dark:text-gray-400"> <p class="text-xs text-gray-500 dark:text-gray-400">
素材删除后不可恢复确认删除 素材删除后不可恢复确认删除
@@ -117,7 +117,7 @@ const closePreview = () => {
</div> </div>
</template> </template>
</UPopover> </UPopover>
</UButtonGroup> </UFieldGroup>
<div v-if="type === 'user'"> <div v-if="type === 'user'">
<!-- <UButton <!-- <UButton
icon="tabler:trash" icon="tabler:trash"
@@ -135,7 +135,7 @@ const closePreview = () => {
size="xs" size="xs"
/> />
<template #panel="{ close }"> <template #content="{ close }">
<div class="flex flex-col gap-2 p-2"> <div class="flex flex-col gap-2 p-2">
<p class="text-xs text-gray-500 dark:text-gray-400"> <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"> <div class="mb-4 flex items-center gap-4">
<span class="text-sm text-gray-600 dark:text-gray-400">状态筛选</span> <span class="text-sm text-gray-600 dark:text-gray-400">状态筛选</span>
<UButtonGroup> <UFieldGroup>
<UButton <UButton
:color="statusFilter === 0 ? 'primary' : 'neutral'" :color="statusFilter === 0 ? 'primary' : 'neutral'"
:variant="statusFilter === 0 ? 'solid' : 'ghost'" :variant="statusFilter === 0 ? 'solid' : 'ghost'"
@@ -910,7 +910,7 @@ const onCreateSubmit = async (
} }
" "
/> />
</UButtonGroup> </UFieldGroup>
<UBadge <UBadge
v-if="titlesListResp?.data.total" v-if="titlesListResp?.data.total"
color="primary" color="primary"

View File

@@ -338,7 +338,7 @@ const onAvatarUpload = async (files: FileList) => {
<div <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" 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 <UButton
color="neutral" color="neutral"
icon="tabler:download" icon="tabler:download"
@@ -353,7 +353,7 @@ const onAvatarUpload = async (files: FileList) => {
} }
" "
/> />
</UButtonGroup> </UFieldGroup>
<span <span
class="pt-4 text-xs font-medium text-neutral-400 dark:text-neutral-300" class="pt-4 text-xs font-medium text-neutral-400 dark:text-neutral-300"
> >

View File

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

View File

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

View File

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

View File

@@ -31,33 +31,39 @@
"idb-keyval": "^6.2.1", "idb-keyval": "^6.2.1",
"markdown-it": "^14.1.0", "markdown-it": "^14.1.0",
"nuxt": "^4.3.1", "nuxt": "^4.3.1",
"nuxt-driver.js": "^0.0.11", "nuxt-driver.js": "^0.0.24",
"pinia": "^3.0.4",
"pinia-plugin-persistedstate": "^4.7.1", "pinia-plugin-persistedstate": "^4.7.1",
"radix-vue": "^1.9.2", "radix-vue": "^1.9.2",
"v-calendar": "^3.1.2", "v-calendar": "^3.1.2",
"vue": "^3.4.34", "vue": "^3.5.28",
"vue-router": "^4.4.0", "vue-router": "^4.4.0",
"yup": "^1.4.0" "yup": "^1.4.0"
}, },
"devDependencies": { "devDependencies": {
"@nuxt/ui": "^3.3.7", "@nuxt/ui": "^4.4.0",
"@nuxtjs/google-fonts": "^3.2.0", "@nuxtjs/google-fonts": "^3.2.0",
"@pinia/nuxt": "^0.11.3", "@pinia/nuxt": "^0.11.3",
"@tailwindcss/typography": "^0.5.13", "@tailwindcss/typography": "^0.5.19",
"@types/markdown-it": "^13.0.9", "@types/markdown-it": "^13.0.9",
"@types/node": "^25.2.2", "@types/node": "^25.2.2",
"@vite-pwa/nuxt": "^1.1.1", "@vite-pwa/nuxt": "^1.1.1",
"@vueuse/core": "^14.2.0", "@vueuse/core": "^14.2.1",
"@vueuse/nuxt": "^14.2.0", "@vueuse/nuxt": "^14.2.1",
"dayjs-nuxt": "^2.1.11", "dayjs-nuxt": "^2.1.11",
"oxfmt": "^0.28.0", "oxfmt": "^0.28.0",
"oxlint": "^1.43.0", "oxlint": "^1.43.0",
"sass": "^1.77.8", "sass": "^1.97.3",
"tailwindcss": "^4.1.18", "tailwindcss": "^4.1.18",
"typescript": "^5.9.3" "typescript": "^5.9.3"
}, },
"peerDependencies": { "peerDependencies": {
"dayjs": "^1.11.19" "dayjs": "^1.11.19"
}, },
"packageManager": "pnpm@10.22.0" "packageManager": "pnpm@10.22.0",
"pnpm": {
"overrides": {
"citty": "0.1.6"
}
}
} }

1209
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff