优化多个组件中的按钮样式

This commit is contained in:
jxxghp
2025-05-24 14:06:10 +08:00
parent b3bff5c6f5
commit 3fe7ed0e1d
39 changed files with 137 additions and 147 deletions
+1 -1
View File
@@ -187,7 +187,7 @@ function onClose() {
</VForm> </VForm>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn @click="saveRuleInfo" variant="elevated" prepend-icon="mdi-content-save" class="px-5">{{ <VBtn @click="saveRuleInfo" prepend-icon="mdi-content-save" class="px-5">{{
t('customRule.action.confirm') t('customRule.action.confirm')
}}</VBtn> }}</VBtn>
</VCardActions> </VCardActions>
+1 -1
View File
@@ -347,7 +347,7 @@ onUnmounted(() => {
</VForm> </VForm>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn @click="saveDownloaderInfo" variant="elevated" prepend-icon="mdi-content-save" class="px-5"> <VBtn @click="saveDownloaderInfo" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+4 -4
View File
@@ -280,17 +280,17 @@ function onClose() {
<div class="text-center" v-if="filterRuleCards.length == 0">{{ t('filterRule.add') }}</div> <div class="text-center" v-if="filterRuleCards.length == 0">{{ t('filterRule.add') }}</div>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn color="primary" variant="tonal" @click="addFilterCard"> <VBtn color="primary" @click="addFilterCard">
<VIcon icon="mdi-plus" /> <VIcon icon="mdi-plus" />
</VBtn> </VBtn>
<VBtn color="success" variant="tonal" @click="importRules('priority')"> <VBtn color="success" @click="importRules('priority')">
<VIcon icon="mdi-import" /> <VIcon icon="mdi-import" />
</VBtn> </VBtn>
<VBtn color="info" variant="tonal" @click="shareRules"> <VBtn color="info" @click="shareRules">
<VIcon icon="mdi-share" /> <VIcon icon="mdi-share" />
</VBtn> </VBtn>
<VSpacer /> <VSpacer />
<VBtn @click="saveGroupInfo" variant="elevated" prepend-icon="mdi-content-save" class="px-5"> <VBtn @click="saveGroupInfo" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+1 -1
View File
@@ -467,7 +467,7 @@ onMounted(() => {
</VForm> </VForm>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn @click="saveMediaServerInfo" variant="elevated" prepend-icon="mdi-content-save" class="px-5"> <VBtn @click="saveMediaServerInfo" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.confirm') }} {{ t('common.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
@@ -415,7 +415,7 @@ function onClose() {
</VForm> </VForm>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn @click="saveNotificationInfo" variant="elevated" prepend-icon="mdi-content-save" class="px-5"> <VBtn @click="saveNotificationInfo" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.confirm') }} {{ t('common.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+14 -7
View File
@@ -359,7 +359,11 @@ const dropdownItems = ref([
<!-- 重命名对话框 --> <!-- 重命名对话框 -->
<VDialog v-if="renameDialog" v-model="renameDialog" max-width="400"> <VDialog v-if="renameDialog" v-model="renameDialog" max-width="400">
<VCard> <VCard>
<VCardTitle>{{ t('folder.renameFolder') }}</VCardTitle> <VDialogCloseBtn @click="renameDialog = false" />
<VCardItem>
<VCardTitle>{{ t('folder.renameFolder') }}</VCardTitle>
</VCardItem>
<VDivider />
<VCardText> <VCardText>
<VTextField <VTextField
v-model="newFolderName" v-model="newFolderName"
@@ -371,8 +375,7 @@ const dropdownItems = ref([
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn @click="renameDialog = false">取消</VBtn> <VBtn color="primary" prepend-icon="mdi-check" class="px-5" @click="confirmRename">确认</VBtn>
<VBtn color="primary" @click="confirmRename">确认</VBtn>
</VCardActions> </VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
@@ -380,10 +383,14 @@ const dropdownItems = ref([
<!-- 设置对话框 --> <!-- 设置对话框 -->
<VDialog v-if="settingDialog" v-model="settingDialog" max-width="600"> <VDialog v-if="settingDialog" v-model="settingDialog" max-width="600">
<VCard> <VCard>
<VCardTitle> <VDialogCloseBtn @click="settingDialog = false" />
<VIcon icon="mdi-palette" class="mr-2" /> <VCardItem>
{{ t('folder.folderAppearanceSettings') }} <VCardTitle>
</VCardTitle> <VIcon icon="mdi-palette" class="mr-2" />
{{ t('folder.folderAppearanceSettings') }}
</VCardTitle>
</VCardItem>
<VDivider />
<VCardText> <VCardText>
<VRow> <VRow>
<!-- 显示图标开关 --> <!-- 显示图标开关 -->
+1 -1
View File
@@ -224,7 +224,7 @@ function onClose() {
</VRow> </VRow>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn @click="handleDone" variant="elevated" prepend-icon="mdi-content-save" class="px-5"> <VBtn @click="handleDone" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+3 -3
View File
@@ -197,11 +197,11 @@ onMounted(() => {
/> />
</VCol> </VCol>
</VRow> </VRow>
<VCardText class="text-center"> <VCardActions class="text-center">
<VBtn variant="elevated" :disabled="loading" @click="addDownload" :prepend-icon="icon" class="px-5"> <VBtn :disabled="loading" @click="addDownload" :prepend-icon="icon" class="px-5">
{{ buttonText }} {{ buttonText }}
</VBtn> </VBtn>
</VCardText> </VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
</template> </template>
+10 -4
View File
@@ -67,8 +67,14 @@ async function savaAlistConfig() {
<template> <template>
<VDialog width="50rem" scrollable max-height="85vh"> <VDialog width="50rem" scrollable max-height="85vh">
<VCard :title="t('dialog.alistConfig.title')"> <VCard>
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
<VCardItem>
<VCardTitle>
{{ t('dialog.alistConfig.title') }}
</VCardTitle>
</VCardItem>
<VDivider />
<VCardText> <VCardText>
<VRow> <VRow>
<VCol cols="12"> <VCol cols="12">
@@ -116,11 +122,11 @@ async function savaAlistConfig() {
</VRow> </VRow>
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VBtn color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
<VBtn variant="tonal" color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
{{ t('dialog.alistConfig.reset') }} {{ t('dialog.alistConfig.reset') }}
</VBtn> </VBtn>
<VBtn variant="elevated" @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3"> <VSpacer />
<VBtn @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3">
{{ t('dialog.alistConfig.complete') }} {{ t('dialog.alistConfig.complete') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+10 -4
View File
@@ -107,8 +107,14 @@ onUnmounted(() => {
<template> <template>
<VDialog width="40rem" scrollable max-height="85vh"> <VDialog width="40rem" scrollable max-height="85vh">
<VCard :title="t('dialog.aliyunAuth.loginTitle')"> <VCard>
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
<VCardItem>
<VCardTitle>
{{ t('dialog.aliyunAuth.loginTitle') }}
</VCardTitle>
</VCardItem>
<VDivider />
<VCardText class="pt-2 flex flex-col items-center"> <VCardText class="pt-2 flex flex-col items-center">
<div class="my-6 rounded text-center p-3 border"> <div class="my-6 rounded text-center p-3 border">
<VImg class="mx-auto" :src="qrCodeUrl" width="200" height="200"> <VImg class="mx-auto" :src="qrCodeUrl" width="200" height="200">
@@ -124,11 +130,11 @@ onUnmounted(() => {
</VAlert> </VAlert>
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VBtn color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
<VBtn variant="tonal" color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
{{ t('dialog.aliyunAuth.reset') }} {{ t('dialog.aliyunAuth.reset') }}
</VBtn> </VBtn>
<VBtn variant="elevated" @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3"> <VSpacer />
<VBtn @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3">
{{ t('dialog.aliyunAuth.complete') }} {{ t('dialog.aliyunAuth.complete') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+1 -1
View File
@@ -32,7 +32,7 @@ function handleImport() {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn variant="elevated" @click="handleImport" prepend-icon="mdi-import" class="px-5 me-3"> <VBtn @click="handleImport" prepend-icon="mdi-import" class="px-5 me-3">
{{ t('dialog.importCode.import') }} {{ t('dialog.importCode.import') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+2 -8
View File
@@ -161,18 +161,12 @@ onBeforeMount(async () => {
</div> </div>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn v-if="props.plugin?.has_page" @click="emit('switch')" variant="outlined" color="info"> <VBtn v-if="props.plugin?.has_page" @click="emit('switch')" color="info">
{{ t('dialog.pluginConfig.viewData') }} {{ t('dialog.pluginConfig.viewData') }}
</VBtn> </VBtn>
<VSpacer /> <VSpacer />
<!-- 只有Vuetify模式显示默认保存按钮Vue模式由组件内部控制 --> <!-- 只有Vuetify模式显示默认保存按钮Vue模式由组件内部控制 -->
<VBtn <VBtn v-if="renderMode === 'vuetify'" @click="savePluginConf" prepend-icon="mdi-content-save" class="px-5">
v-if="renderMode === 'vuetify'"
@click="savePluginConf"
variant="elevated"
prepend-icon="mdi-content-save"
class="px-5"
>
保存 保存
</VBtn> </VBtn>
</VCardActions> </VCardActions>
@@ -2,6 +2,7 @@
import api from '@/api' import api from '@/api'
import { useToast } from 'vue-toast-notification' import { useToast } from 'vue-toast-notification'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { computed } from 'vue'
// 国际化 // 国际化
const { t } = useI18n() const { t } = useI18n()
@@ -9,6 +10,16 @@ const $toast = useToast()
// 插件仓库设置字符串 // 插件仓库设置字符串
const repoString = ref('') const repoString = ref('')
// 用于显示的仓库地址数组
const repoArray = ref<string[]>([])
// 计算属性:在数组和换行符分隔的字符串之间转换
const displayRepos = computed({
get: () => repoArray.value.join('\n'),
set: (value: string) => {
repoArray.value = value.split('\n').filter((repo: string) => repo.trim() !== '')
},
})
// 定义事件 // 定义事件
const emit = defineEmits(['save', 'close']) const emit = defineEmits(['save', 'close'])
@@ -17,7 +28,10 @@ const emit = defineEmits(['save', 'close'])
async function queryMarketRepoSetting() { async function queryMarketRepoSetting() {
try { try {
const result: { [key: string]: any } = await api.get('system/setting/PLUGIN_MARKET') const result: { [key: string]: any } = await api.get('system/setting/PLUGIN_MARKET')
if (result && result.data && result.data.value) repoString.value = result.data.value if (result && result.data && result.data.value) {
repoString.value = result.data.value
repoArray.value = result.data.value.split(',').filter((repo: string) => repo.trim() !== '')
}
} catch (error) { } catch (error) {
console.log(error) console.log(error)
} }
@@ -26,8 +40,9 @@ async function queryMarketRepoSetting() {
// 保存设置 // 保存设置
async function saveHandle() { async function saveHandle() {
try { try {
// 用户名密码 // 将数组转换为逗号分隔的字符串
const result: { [key: string]: any } = await api.post('system/setting/PLUGIN_MARKET', repoString.value) const repoStringToSave = repoArray.value.join(',')
const result: { [key: string]: any } = await api.post('system/setting/PLUGIN_MARKET', repoStringToSave)
if (result.success) { if (result.success) {
$toast.success(t('dialog.pluginMarketSetting.saveSuccess')) $toast.success(t('dialog.pluginMarketSetting.saveSuccess'))
@@ -53,9 +68,11 @@ onMounted(() => {
</VCardTitle> </VCardTitle>
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
</VCardItem> </VCardItem>
<VDivider />
<VCardText class="pt-2"> <VCardText class="pt-2">
<VTextarea <VTextarea
v-model="repoString" v-model="displayRepos"
:placeholder="t('dialog.pluginMarketSetting.repoPlaceholder')" :placeholder="t('dialog.pluginMarketSetting.repoPlaceholder')"
:hint="t('dialog.pluginMarketSetting.repoHint')" :hint="t('dialog.pluginMarketSetting.repoHint')"
persistent-hint persistent-hint
@@ -63,7 +80,7 @@ onMounted(() => {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn variant="elevated" @click="saveHandle" prepend-icon="mdi-content-save-check" class="px-5 me-3"> <VBtn @click="saveHandle" prepend-icon="mdi-content-save-check" class="px-5 me-3">
{{ t('dialog.pluginMarketSetting.save') }} {{ t('dialog.pluginMarketSetting.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+10 -4
View File
@@ -54,8 +54,14 @@ async function handleReset() {
<template> <template>
<VDialog width="50rem" scrollable max-height="85vh"> <VDialog width="50rem" scrollable max-height="85vh">
<VCard :title="t('dialog.rcloneConfig.title')"> <VCard>
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
<VCardItem>
<VCardTitle>
{{ t('dialog.rcloneConfig.title') }}
</VCardTitle>
</VCardItem>
<VDivider />
<VCardText> <VCardText>
<VRow> <VRow>
<VCol cols="12"> <VCol cols="12">
@@ -74,11 +80,11 @@ async function handleReset() {
</VRow> </VRow>
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VBtn color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
<VBtn variant="tonal" color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
{{ t('dialog.rcloneConfig.reset') }} {{ t('dialog.rcloneConfig.reset') }}
</VBtn> </VBtn>
<VBtn variant="elevated" @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3"> <VSpacer />
<VBtn @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3">
{{ t('dialog.rcloneConfig.complete') }} {{ t('dialog.rcloneConfig.complete') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+2 -2
View File
@@ -438,10 +438,10 @@ onUnmounted(() => {
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VSpacer /> <VSpacer />
<VBtn variant="elevated" color="success" @click="transfer(true)" prepend-icon="mdi-plus" class="px-5"> <VBtn color="success" @click="transfer(true)" prepend-icon="mdi-plus" class="px-5">
{{ t('dialog.reorganize.addToQueue') }} {{ t('dialog.reorganize.addToQueue') }}
</VBtn> </VBtn>
<VBtn variant="elevated" @click="transfer(false)" prepend-icon="mdi-arrow-right-bold" class="px-5"> <VBtn @click="transfer(false)" prepend-icon="mdi-arrow-right-bold" class="px-5">
{{ t('dialog.reorganize.reorganizeNow') }} {{ t('dialog.reorganize.reorganizeNow') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+4 -12
View File
@@ -163,27 +163,19 @@ const filteredSites = computed(() => {
</div> </div>
</VCardText> </VCardText>
<VDivider class="search-divider" /> <VCardActions class="pt-3">
<VBtn color="secondary" @click="emit('close')" class="mr-2 d-flex align-center justify-center">
<VCardActions class="pa-4">
<VSpacer />
<VBtn
color="grey-darken-1"
variant="text"
@click="emit('close')"
class="mr-2 d-flex align-center justify-center"
>
{{ t('dialog.searchSite.cancel') }} {{ t('dialog.searchSite.cancel') }}
</VBtn> </VBtn>
<VSpacer />
<VBtn <VBtn
color="primary" color="primary"
variant="flat"
:disabled="selectedSites.length === 0" :disabled="selectedSites.length === 0"
@click="emit('search', selectedSites)" @click="emit('search', selectedSites)"
prepend-icon="mdi-magnify" prepend-icon="mdi-magnify"
class="d-flex align-center justify-center px-5" class="d-flex align-center justify-center px-5"
> >
{{ t('dialog.searchSite.confirm') }} {{ t('common.search') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
</VCard> </VCard>
+2 -16
View File
@@ -326,24 +326,10 @@ onMounted(async () => {
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VSpacer /> <VSpacer />
<VBtn <VBtn v-if="props.oper === 'add'" color="primary" @click="addSite" prepend-icon="mdi-plus" class="px-5">
v-if="props.oper === 'add'"
color="primary"
variant="elevated"
@click="addSite"
prepend-icon="mdi-plus"
class="px-5"
>
{{ t('site.actions.add') }} {{ t('site.actions.add') }}
</VBtn> </VBtn>
<VBtn <VBtn v-else color="primary" @click="updateSiteInfo" prepend-icon="mdi-content-save" class="px-5">
v-else
color="primary"
variant="elevated"
@click="updateSiteInfo"
prepend-icon="mdi-content-save"
class="px-5"
>
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
@@ -102,7 +102,6 @@ async function updateSiteCookie() {
<VCardActions class="mx-auto"> <VCardActions class="mx-auto">
<VBtn <VBtn
size="large" size="large"
variant="elevated"
@click="updateSiteCookie" @click="updateSiteCookie"
:disabled="updateButtonDisable" :disabled="updateButtonDisable"
:loading="updateButtonDisable" :loading="updateButtonDisable"
@@ -504,12 +504,11 @@ onMounted(() => {
</VForm> </VForm>
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VBtn v-if="!props.default" color="error" @click="removeSubscribe" variant="outlined" class="me-3"> <VBtn v-if="!props.default" color="error" @click="removeSubscribe" class="me-3">
{{ t('dialog.subscribeEdit.cancelSubscribe') }} {{ t('dialog.subscribeEdit.cancelSubscribe') }}
</VBtn> </VBtn>
<VSpacer /> <VSpacer />
<VBtn <VBtn
variant="elevated"
@click=";`${props.default ? saveDefaultSubscribeConfig() : updateSubscribeInfo()}`" @click=";`${props.default ? saveDefaultSubscribeConfig() : updateSubscribeInfo()}`"
prepend-icon="mdi-content-save" prepend-icon="mdi-content-save"
class="px-5" class="px-5"
@@ -97,14 +97,7 @@ const $toast = useToast()
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VSpacer /> <VSpacer />
<VBtn <VBtn :disabled="shareDoing" @click="doShare" prepend-icon="mdi-share" class="px-5" :loading="shareDoing">
variant="elevated"
:disabled="shareDoing"
@click="doShare"
prepend-icon="mdi-share"
class="px-5"
:loading="shareDoing"
>
{{ t('dialog.subscribeShare.confirmShare') }} {{ t('dialog.subscribeShare.confirmShare') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+10 -4
View File
@@ -112,8 +112,14 @@ onUnmounted(() => {
<template> <template>
<VDialog width="40rem" scrollable max-height="85vh"> <VDialog width="40rem" scrollable max-height="85vh">
<VCard :title="t('dialog.u115Auth.loginTitle')"> <VCard>
<VDialogCloseBtn @click="emit('close')" /> <VDialogCloseBtn @click="emit('close')" />
<VCardItem>
<VCardTitle>
{{ t('dialog.u115Auth.loginTitle') }}
</VCardTitle>
</VCardItem>
<VDivider />
<VCardText class="pt-2 flex flex-col items-center"> <VCardText class="pt-2 flex flex-col items-center">
<div class="my-6 rounded text-center p-3 border"> <div class="my-6 rounded text-center p-3 border">
<QrcodeVue class="mx-auto" :value="qrCodeContent" :size="200" /> <QrcodeVue class="mx-auto" :value="qrCodeContent" :size="200" />
@@ -123,11 +129,11 @@ onUnmounted(() => {
</VAlert> </VAlert>
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VBtn color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
<VBtn variant="tonal" color="error" @click="handleReset" prepend-icon="mdi-restore" class="px-5 me-3">
{{ t('dialog.u115Auth.reset') }} {{ t('dialog.u115Auth.reset') }}
</VBtn> </VBtn>
<VBtn variant="elevated" @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3"> <VSpacer />
<VBtn @click="handleDone" prepend-icon="mdi-check" class="px-5 me-3">
{{ t('dialog.u115Auth.complete') }} {{ t('dialog.u115Auth.complete') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
@@ -461,7 +461,6 @@ onMounted(() => {
v-if="props.oper === 'add'" v-if="props.oper === 'add'"
:disabled="isAdding" :disabled="isAdding"
color="primary" color="primary"
variant="elevated"
@click="addUser" @click="addUser"
prepend-icon="mdi-plus" prepend-icon="mdi-plus"
class="px-5" class="px-5"
@@ -473,7 +472,6 @@ onMounted(() => {
v-else v-else
:disabled="isUpdating" :disabled="isUpdating"
color="primary" color="primary"
variant="elevated"
@click="updateUser" @click="updateUser"
prepend-icon="mdi-content-save" prepend-icon="mdi-content-save"
class="px-5" class="px-5"
+1 -8
View File
@@ -165,14 +165,7 @@ onMounted(async () => {
</VRow> </VRow>
</VCardText> </VCardText>
<VCardText class="text-center"> <VCardText class="text-center">
<VBtn <VBtn @click="handleDone" prepend-icon="mdi-check" class="px-5" size="large" :disabled="loading">
variant="elevated"
@click="handleDone"
prepend-icon="mdi-check"
class="px-5"
size="large"
:disabled="loading"
>
{{ t('dialog.userAuth.authBtn') }} {{ t('dialog.userAuth.authBtn') }}
</VBtn> </VBtn>
</VCardText> </VCardText>
@@ -123,18 +123,10 @@ async function editWorkflow() {
</VCardText> </VCardText>
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VSpacer /> <VSpacer />
<VBtn <VBtn v-if="workflow" color="primary" @click="editWorkflow" prepend-icon="mdi-content-save" class="px-5">
v-if="workflow"
block
color="primary"
variant="elevated"
@click="editWorkflow"
prepend-icon="mdi-content-save"
class="px-5"
>
{{ t('dialog.workflowAddEdit.confirm') }} {{ t('dialog.workflowAddEdit.confirm') }}
</VBtn> </VBtn>
<VBtn v-else block color="primary" variant="elevated" @click="addWorkflow" prepend-icon="mdi-plus" class="px-5"> <VBtn v-else color="primary" @click="addWorkflow" prepend-icon="mdi-plus" class="px-5">
{{ t('dialog.workflowAddEdit.confirm') }} {{ t('dialog.workflowAddEdit.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+2 -2
View File
@@ -710,10 +710,10 @@ onMounted(() => {
</VRow> </VRow>
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VBtn color="success" variant="elevated" @click="get_recommend_name" prepend-icon="mdi-magic" class="px-5 me-3"> <VBtn color="success" @click="get_recommend_name" prepend-icon="mdi-magic" class="px-5 me-3">
{{ t('file.autoRecognizeName') }} {{ t('file.autoRecognizeName') }}
</VBtn> </VBtn>
<VBtn :disabled="!newName" variant="elevated" @click="rename" prepend-icon="mdi-check" class="px-5 me-3"> <VBtn :disabled="!newName" @click="rename" prepend-icon="mdi-check" class="px-5 me-3">
{{ t('common.confirm') }} {{ t('common.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+1 -1
View File
@@ -179,7 +179,7 @@ const sortIcon = computed(() => {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<div class="flex-grow-1" /> <div class="flex-grow-1" />
<VBtn :disabled="!newFolderName" variant="elevated" @click="mkdir" prepend-icon="mdi-check" class="px-5 me-3"> <VBtn :disabled="!newFolderName" @click="mkdir" prepend-icon="mdi-folder-plus" class="px-5 me-3">
{{ t('common.create') }} {{ t('common.create') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+2 -6
View File
@@ -432,12 +432,8 @@ onMounted(() => {
</div> </div>
</VCardItem> </VCardItem>
<VCardActions class="mx-auto"> <VCardActions class="mx-auto">
<VBtn variant="tonal" color="secondary" class="px-5" @click="restartDialog = false">{{ <VBtn color="secondary" class="px-5" @click="restartDialog = false">{{ t('common.cancel') }}</VBtn>
t('common.cancel') <VBtn color="error" @click="restart" prepend-icon="mdi-restart" class="px-5">{{ t('common.confirm') }}</VBtn>
}}</VBtn>
<VBtn variant="elevated" color="error" @click="restart" prepend-icon="mdi-restart" class="px-5">{{
t('common.confirm')
}}</VBtn>
</VCardActions> </VCardActions>
<VDialogCloseBtn @click="restartDialog = false" /> <VDialogCloseBtn @click="restartDialog = false" />
</VCard> </VCard>
+1 -1
View File
@@ -1637,7 +1637,7 @@ export default {
title: 'Plugin Market Settings', title: 'Plugin Market Settings',
repoUrl: 'Plugin Repository URL', repoUrl: 'Plugin Repository URL',
repoPlaceholder: 'Format: https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/', repoPlaceholder: 'Format: https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/',
repoHint: 'Multiple URLs separated by commas, only Github repositories are supported', repoHint: 'Multiple URLs separated by lines, only Github repositories are supported',
close: 'Close', close: 'Close',
save: 'Save', save: 'Save',
saveSuccess: 'Plugin repository saved successfully', saveSuccess: 'Plugin repository saved successfully',
+1 -1
View File
@@ -1614,7 +1614,7 @@ export default {
title: '插件市场设置', title: '插件市场设置',
repoUrl: '插件仓库地址', repoUrl: '插件仓库地址',
repoPlaceholder: '格式:https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/', repoPlaceholder: '格式:https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/',
repoHint: '多个地址使用逗号分隔,仅支持Github仓库', repoHint: '多个地址使用换行分隔,仅支持Github仓库',
close: '关闭', close: '关闭',
save: '保存', save: '保存',
saveSuccess: '插件仓库保存成功', saveSuccess: '插件仓库保存成功',
+1 -1
View File
@@ -1615,7 +1615,7 @@ export default {
title: '插件市場設置', title: '插件市場設置',
repoUrl: '插件倉庫地址', repoUrl: '插件倉庫地址',
repoPlaceholder: '格式:https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/', repoPlaceholder: '格式:https://github.com/jxxghp/MoviePilot-Plugins/,https://github.com/xxxx/xxxxxx/',
repoHint: '多個地址使用逗號分隔,僅支援Github倉庫', repoHint: '多個地址使用换行分隔,僅支援Github倉庫',
close: '關閉', close: '關閉',
save: '儲存', save: '儲存',
saveSuccess: '插件倉庫儲存成功', saveSuccess: '插件倉庫儲存成功',
+3 -3
View File
@@ -8,6 +8,7 @@ import DashboardElement from '@/components/misc/DashboardElement.vue'
import { useDisplay } from 'vuetify' import { useDisplay } from 'vuetify'
import { useDynamicButton } from '@/composables/useDynamicButton' import { useDynamicButton } from '@/composables/useDynamicButton'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { VCardActions } from 'vuetify/components'
// //
const { t } = useI18n() const { t } = useI18n()
@@ -396,8 +397,7 @@ onDeactivated(() => {
<VSwitch v-model="isElevated" :label="t('dashboard.adaptiveHeight')" /> <VSwitch v-model="isElevated" :label="t('dashboard.adaptiveHeight')" />
</p> </p>
</VCardText> </VCardText>
<VDivider /> <VCardActions class="pt-3">
<VCardText class="pt-5 text-end">
<VSpacer /> <VSpacer />
<VBtn @click="saveDashboardConfig"> <VBtn @click="saveDashboardConfig">
<template #prepend> <template #prepend>
@@ -405,7 +405,7 @@ onDeactivated(() => {
</template> </template>
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardText> </VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
</template> </template>
+2 -3
View File
@@ -207,8 +207,7 @@ onActivated(async () => {
</template> </template>
</draggable> </draggable>
</VCardText> </VCardText>
<VDivider /> <VCardActions class="pt-3">
<VCardText class="pt-5 text-end">
<VSpacer /> <VSpacer />
<VBtn @click="saveTabOrder"> <VBtn @click="saveTabOrder">
<template #prepend> <template #prepend>
@@ -216,7 +215,7 @@ onActivated(async () => {
</template> </template>
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardText> </VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
<!-- 快速滚动到顶部按钮 --> <!-- 快速滚动到顶部按钮 -->
+2 -3
View File
@@ -271,8 +271,7 @@ onActivated(async () => {
</div> </div>
</div> </div>
</VCardText> </VCardText>
<VDivider /> <VCardActions class="pt-3">
<VCardActions class="pt-5">
<VBtn variant="text" @click="Object.keys(enableConfig).forEach(key => (enableConfig[key] = true))"> <VBtn variant="text" @click="Object.keys(enableConfig).forEach(key => (enableConfig[key] = true))">
{{ t('recommend.selectAll') }} {{ t('recommend.selectAll') }}
</VBtn> </VBtn>
@@ -280,7 +279,7 @@ onActivated(async () => {
{{ t('recommend.selectNone') }} {{ t('recommend.selectNone') }}
</VBtn> </VBtn>
<VSpacer /> <VSpacer />
<VBtn @click="saveConfig" variant="elevated" color="primary" class="px-5"> <VBtn @click="saveConfig" color="primary" class="px-5">
<template #prepend> <template #prepend>
<VIcon icon="mdi-content-save" /> <VIcon icon="mdi-content-save" />
</template> </template>
+5 -1
View File
@@ -58,6 +58,10 @@ html.v-overlay-scroll-blocked {
margin-block-start: env(safe-area-inset-top); margin-block-start: env(safe-area-inset-top);
} }
.v-dialog > .v-overlay__content > .v-card > .v-card-item {
padding: 16px;
}
/* router view transition fade-slide */ /* router view transition fade-slide */
.fade-slide-leave-active, .fade-slide-leave-active,
.fade-slide-enter-active { .fade-slide-enter-active {
@@ -221,7 +225,7 @@ html.v-overlay-scroll-blocked {
} }
.grid-workflow-card { .grid-workflow-card {
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
} }
.v-tabs:not(.v-tabs-pill).v-tabs--horizontal { .v-tabs:not(.v-tabs-pill).v-tabs--horizontal {
+8 -3
View File
@@ -1453,7 +1453,11 @@ function onDragEndPlugin(evt: any) {
<!-- 新建文件夹对话框 --> <!-- 新建文件夹对话框 -->
<VDialog v-if="newFolderDialog" v-model="newFolderDialog" max-width="400"> <VDialog v-if="newFolderDialog" v-model="newFolderDialog" max-width="400">
<VCard> <VCard>
<VCardTitle>{{ t('plugin.newFolder') }}</VCardTitle> <VDialogCloseBtn @click="newFolderDialog = false" />
<VCardItem>
<VCardTitle>{{ t('plugin.newFolder') }}</VCardTitle>
</VCardItem>
<VDivider />
<VCardText> <VCardText>
<VTextField <VTextField
v-model="newFolderName" v-model="newFolderName"
@@ -1464,8 +1468,9 @@ function onDragEndPlugin(evt: any) {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn @click="newFolderDialog = false">{{ t('plugin.cancel') }}</VBtn> <VBtn color="primary" @click="createNewFolder" prepend-icon="mdi-folder-plus" class="px-5">{{
<VBtn color="primary" @click="createNewFolder">{{ t('plugin.create') }}</VBtn> t('plugin.create')
}}</VBtn>
</VCardActions> </VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
@@ -395,7 +395,6 @@ onMounted(() => {
</tr> </tr>
</tbody> </tbody>
</VTable> </VTable>
<VDivider />
<VCardText> <VCardText>
<VForm @submit.prevent="() => {}"> <VForm @submit.prevent="() => {}">
<div class="d-flex flex-wrap gap-4 mt-4"> <div class="d-flex flex-wrap gap-4 mt-4">
@@ -458,8 +457,8 @@ onMounted(() => {
class="w-full min-h-[30rem] rounded" class="w-full min-h-[30rem] rounded"
/> />
</VCardText> </VCardText>
<VCardActions class="mx-auto pt-3"> <VCardActions class="pt-3">
<VBtn variant="elevated" color="primary" @click="saveTemplate" prepend-icon="mdi-content-save" class="px-5"> <VBtn color="primary" @click="saveTemplate" prepend-icon="mdi-content-save" class="px-5">
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+1 -7
View File
@@ -979,13 +979,7 @@ onDeactivated(() => {
<VCardActions class="pt-3"> <VCardActions class="pt-3">
<VForm @submit.prevent="() => {}"> <VForm @submit.prevent="() => {}">
<div class="d-flex flex-wrap gap-4 mt-4"> <div class="d-flex flex-wrap gap-4 mt-4">
<VBtn <VBtn color="primary" prepend-icon="mdi-content-save" @click="saveAdvancedSettings" class="px-5">
color="primary"
variant="elevated"
prepend-icon="mdi-content-save"
@click="saveAdvancedSettings"
class="px-5"
>
{{ t('common.save') }} {{ t('common.save') }}
</VBtn> </VBtn>
</div> </div>
+1 -1
View File
@@ -713,7 +713,7 @@ const handleSortIconClick = () => {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn variant="elevated" color="primary" @click="filterMenuOpen = false"> <VBtn color="primary" @click="filterMenuOpen = false">
{{ t('torrent.confirm') }} {{ t('torrent.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>
+1 -1
View File
@@ -689,7 +689,7 @@ onMounted(() => {
</VCardText> </VCardText>
<VCardActions> <VCardActions>
<VSpacer /> <VSpacer />
<VBtn variant="elevated" color="primary" @click="filterMenuOpen = false"> <VBtn color="primary" @click="filterMenuOpen = false">
{{ t('torrent.confirm') }} {{ t('torrent.confirm') }}
</VBtn> </VBtn>
</VCardActions> </VCardActions>