更新多个卡片组件,统一标题文本为“配置”,添加图标以提升用户体验,优化输入框提示信息,确保一致性和可读性。

This commit is contained in:
jxxghp
2025-05-27 17:46:51 +08:00
parent e6f537ca3a
commit 5711285a77
3 changed files with 80 additions and 6 deletions
+1 -1
View File
@@ -205,7 +205,7 @@ onUnmounted(() => {
<template #prepend> <template #prepend>
<VIcon icon="mdi-download" class="me-2" /> <VIcon icon="mdi-download" class="me-2" />
</template> </template>
<VCardTitle>{{ t('downloader.title') }}</VCardTitle> <VCardTitle>{{ t('common.config') }}</VCardTitle>
<VCardSubtitle>{{ props.downloader.name }}</VCardSubtitle> <VCardSubtitle>{{ props.downloader.name }}</VCardSubtitle>
</VCardItem> </VCardItem>
<VDialogCloseBtn v-model="downloaderInfoDialog" /> <VDialogCloseBtn v-model="downloaderInfoDialog" />
+41 -3
View File
@@ -211,7 +211,14 @@ onMounted(() => {
max-width="40rem" max-width="40rem"
:fullscreen="!display.mdAndUp.value" :fullscreen="!display.mdAndUp.value"
> >
<VCard :title="`${props.mediaserver.name} - ${t('common.config')}`"> <VCard>
<VCardItem class="py-2">
<template #prepend>
<VIcon icon="mdi-cog" class="me-2" />
</template>
<VCardTitle>{{ t('common.config') }}</VCardTitle>
<VCardSubtitle>{{ props.mediaserver.name }}</VCardSubtitle>
</VCardItem>
<VDialogCloseBtn v-model="mediaServerInfoDialog" /> <VDialogCloseBtn v-model="mediaServerInfoDialog" />
<VDivider /> <VDivider />
<VCardText> <VCardText>
@@ -230,6 +237,7 @@ onMounted(() => {
:hint="t('mediaserver.serverAlias')" :hint="t('mediaserver.serverAlias')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -240,6 +248,7 @@ onMounted(() => {
:hint="t('mediaserver.hostHint')" :hint="t('mediaserver.hostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-server"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -250,6 +259,7 @@ onMounted(() => {
:hint="t('mediaserver.playHostHint')" :hint="t('mediaserver.playHostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-play-network"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -259,6 +269,7 @@ onMounted(() => {
:hint="t('mediaserver.embyApiKeyHint')" :hint="t('mediaserver.embyApiKeyHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12"> <VCol cols="12">
@@ -273,6 +284,7 @@ onMounted(() => {
persistent-hint persistent-hint
active active
append-inner-icon="mdi-refresh" append-inner-icon="mdi-refresh"
prepend-inner-icon="mdi-library"
@click:append-inner="loadLibrary(mediaServerInfo.name)" @click:append-inner="loadLibrary(mediaServerInfo.name)"
/> />
</VCol> </VCol>
@@ -286,6 +298,7 @@ onMounted(() => {
:hint="t('mediaserver.serverAlias')" :hint="t('mediaserver.serverAlias')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -296,6 +309,7 @@ onMounted(() => {
:hint="t('mediaserver.hostHint')" :hint="t('mediaserver.hostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-server"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -306,6 +320,7 @@ onMounted(() => {
:hint="t('mediaserver.playHostHint')" :hint="t('mediaserver.playHostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-play-network"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -315,6 +330,7 @@ onMounted(() => {
:hint="t('mediaserver.jellyfinApiKeyHint')" :hint="t('mediaserver.jellyfinApiKeyHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12"> <VCol cols="12">
@@ -329,6 +345,7 @@ onMounted(() => {
persistent-hint persistent-hint
active active
append-inner-icon="mdi-refresh" append-inner-icon="mdi-refresh"
prepend-inner-icon="mdi-library"
@click:append-inner="loadLibrary(mediaServerInfo.name)" @click:append-inner="loadLibrary(mediaServerInfo.name)"
/> />
</VCol> </VCol>
@@ -342,6 +359,7 @@ onMounted(() => {
:hint="t('mediaserver.serverAlias')" :hint="t('mediaserver.serverAlias')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -352,6 +370,7 @@ onMounted(() => {
:hint="t('mediaserver.hostHint')" :hint="t('mediaserver.hostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-server"
/> />
</VCol> </VCol>
<VCol cols="12"> <VCol cols="12">
@@ -362,10 +381,16 @@ onMounted(() => {
:hint="t('mediaserver.playHostHint')" :hint="t('mediaserver.playHostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-play-network"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField v-model="mediaServerInfo.config.username" :label="t('mediaserver.username')" active /> <VTextField
v-model="mediaServerInfo.config.username"
:label="t('mediaserver.username')"
active
prepend-inner-icon="mdi-account"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField <VTextField
@@ -373,6 +398,7 @@ onMounted(() => {
v-model="mediaServerInfo.config.password" v-model="mediaServerInfo.config.password"
:label="t('mediaserver.password')" :label="t('mediaserver.password')"
active active
prepend-inner-icon="mdi-lock"
/> />
</VCol> </VCol>
<VCol cols="12"> <VCol cols="12">
@@ -387,6 +413,7 @@ onMounted(() => {
persistent-hint persistent-hint
active active
append-inner-icon="mdi-refresh" append-inner-icon="mdi-refresh"
prepend-inner-icon="mdi-library"
@click:append-inner="loadLibrary(mediaServerInfo.name)" @click:append-inner="loadLibrary(mediaServerInfo.name)"
/> />
</VCol> </VCol>
@@ -400,6 +427,7 @@ onMounted(() => {
:hint="t('mediaserver.serverAlias')" :hint="t('mediaserver.serverAlias')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -410,6 +438,7 @@ onMounted(() => {
:hint="t('mediaserver.hostHint')" :hint="t('mediaserver.hostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-server"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -420,6 +449,7 @@ onMounted(() => {
:hint="t('mediaserver.playHostHint')" :hint="t('mediaserver.playHostHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-play-network"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -429,6 +459,7 @@ onMounted(() => {
:hint="t('mediaserver.plexTokenHint')" :hint="t('mediaserver.plexTokenHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12"> <VCol cols="12">
@@ -443,6 +474,7 @@ onMounted(() => {
persistent-hint persistent-hint
active active
append-inner-icon="mdi-refresh" append-inner-icon="mdi-refresh"
prepend-inner-icon="mdi-library"
@click:append-inner="loadLibrary(mediaServerInfo.name)" @click:append-inner="loadLibrary(mediaServerInfo.name)"
/> />
</VCol> </VCol>
@@ -454,10 +486,16 @@ onMounted(() => {
:label="t('mediaserver.type')" :label="t('mediaserver.type')"
:hint="t('mediaserver.customTypeHint')" :hint="t('mediaserver.customTypeHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-cog"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField :label="t('common.name')" :hint="t('mediaserver.nameRequired')" persistent-hint /> <VTextField
:label="t('common.name')"
:hint="t('mediaserver.nameRequired')"
persistent-hint
prepend-inner-icon="mdi-label"
/>
</VCol> </VCol>
</VRow> </VRow>
</VForm> </VForm>
@@ -148,8 +148,15 @@ function onClose() {
max-width="40rem" max-width="40rem"
:fullscreen="!display.mdAndUp.value" :fullscreen="!display.mdAndUp.value"
> >
<VCard :title="`${props.notification.name} - ${t('notification.config')}`"> <VCard>
<VDialogCloseBtn v-model="notificationInfoDialog" /> <VCardItem class="py-2">
<template #prepend>
<VIcon icon="mdi-cog" class="me-2" />
</template>
<VCardTitle>{{ t('common.config') }}</VCardTitle>
<VCardSubtitle>{{ props.notification.name }}</VCardSubtitle>
</VCardItem>
<VDialogCloseBtn @click="notificationInfoDialog = false" />
<VDivider /> <VDivider />
<VCardText> <VCardText>
<VForm> <VForm>
@@ -167,6 +174,7 @@ function onClose() {
clearable clearable
chips chips
persistent-hint persistent-hint
prepend-inner-icon="mdi-bell-outline"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -178,6 +186,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -186,6 +195,7 @@ function onClose() {
:label="t('notification.wechat.corpId')" :label="t('notification.wechat.corpId')"
:hint="t('notification.wechat.corpIdHint')" :hint="t('notification.wechat.corpIdHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-domain"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -194,6 +204,7 @@ function onClose() {
:label="t('notification.wechat.appId')" :label="t('notification.wechat.appId')"
:hint="t('notification.wechat.appIdHint')" :hint="t('notification.wechat.appIdHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-application"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -202,6 +213,7 @@ function onClose() {
:label="t('notification.wechat.appSecret')" :label="t('notification.wechat.appSecret')"
:hint="t('notification.wechat.appSecretHint')" :hint="t('notification.wechat.appSecretHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -210,6 +222,7 @@ function onClose() {
:label="t('notification.wechat.proxy')" :label="t('notification.wechat.proxy')"
:hint="t('notification.wechat.proxyHint')" :hint="t('notification.wechat.proxyHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-server-network"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -218,6 +231,7 @@ function onClose() {
:label="t('notification.wechat.token')" :label="t('notification.wechat.token')"
:hint="t('notification.wechat.tokenHint')" :hint="t('notification.wechat.tokenHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key-variant"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -226,6 +240,7 @@ function onClose() {
:label="t('notification.wechat.encodingAesKey')" :label="t('notification.wechat.encodingAesKey')"
:hint="t('notification.wechat.encodingAesKeyHint')" :hint="t('notification.wechat.encodingAesKeyHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-lock"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -235,6 +250,7 @@ function onClose() {
:placeholder="t('notification.wechat.adminsPlaceholder')" :placeholder="t('notification.wechat.adminsPlaceholder')"
:hint="t('notification.wechat.adminsHint')" :hint="t('notification.wechat.adminsHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -246,6 +262,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -254,6 +271,7 @@ function onClose() {
:label="t('notification.telegram.token')" :label="t('notification.telegram.token')"
:hint="t('notification.telegram.tokenHint')" :hint="t('notification.telegram.tokenHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -262,6 +280,7 @@ function onClose() {
:label="t('notification.telegram.chatId')" :label="t('notification.telegram.chatId')"
:hint="t('notification.telegram.chatIdHint')" :hint="t('notification.telegram.chatIdHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-chat"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -271,6 +290,7 @@ function onClose() {
:placeholder="t('notification.telegram.usersPlaceholder')" :placeholder="t('notification.telegram.usersPlaceholder')"
:hint="t('notification.telegram.usersHint')" :hint="t('notification.telegram.usersHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-account-group"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -280,6 +300,7 @@ function onClose() {
:placeholder="t('notification.telegram.adminsPlaceholder')" :placeholder="t('notification.telegram.adminsPlaceholder')"
:hint="t('notification.telegram.adminsHint')" :hint="t('notification.telegram.adminsHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-account-supervisor"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -291,6 +312,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -300,6 +322,7 @@ function onClose() {
:placeholder="t('notification.slack.oauthTokenPlaceholder')" :placeholder="t('notification.slack.oauthTokenPlaceholder')"
:hint="t('notification.slack.oauthTokenHint')" :hint="t('notification.slack.oauthTokenHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -309,6 +332,7 @@ function onClose() {
:placeholder="t('notification.slack.appTokenPlaceholder')" :placeholder="t('notification.slack.appTokenPlaceholder')"
:hint="t('notification.slack.appTokenHint')" :hint="t('notification.slack.appTokenHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-application"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -318,6 +342,7 @@ function onClose() {
:placeholder="t('notification.slack.channelPlaceholder')" :placeholder="t('notification.slack.channelPlaceholder')"
:hint="t('notification.slack.channelHint')" :hint="t('notification.slack.channelHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-pound"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -329,6 +354,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -337,6 +363,7 @@ function onClose() {
:label="t('notification.synologychat.webhook')" :label="t('notification.synologychat.webhook')"
:hint="t('notification.synologychat.webhookHint')" :hint="t('notification.synologychat.webhookHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-webhook"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -345,6 +372,7 @@ function onClose() {
:label="t('notification.synologychat.token')" :label="t('notification.synologychat.token')"
:hint="t('notification.synologychat.tokenHint')" :hint="t('notification.synologychat.tokenHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -356,6 +384,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -364,6 +393,7 @@ function onClose() {
:label="t('notification.vocechat.host')" :label="t('notification.vocechat.host')"
:hint="t('notification.vocechat.hostHint')" :hint="t('notification.vocechat.hostHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-server"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -372,6 +402,7 @@ function onClose() {
:label="t('notification.vocechat.apiKey')" :label="t('notification.vocechat.apiKey')"
:hint="t('notification.vocechat.apiKeyHint')" :hint="t('notification.vocechat.apiKeyHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-key"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -381,6 +412,7 @@ function onClose() {
:placeholder="t('notification.vocechat.channelIdPlaceholder')" :placeholder="t('notification.vocechat.channelIdPlaceholder')"
:hint="t('notification.vocechat.channelIdHint')" :hint="t('notification.vocechat.channelIdHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-pound"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -392,6 +424,7 @@ function onClose() {
:placeholder="t('notification.name')" :placeholder="t('notification.name')"
:hint="t('notification.nameHint')" :hint="t('notification.nameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -400,6 +433,7 @@ function onClose() {
:label="t('notification.webpush.username')" :label="t('notification.webpush.username')"
:hint="t('notification.webpush.usernameHint')" :hint="t('notification.webpush.usernameHint')"
persistent-hint persistent-hint
prepend-inner-icon="mdi-account"
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -411,6 +445,7 @@ function onClose() {
:hint="t('notification.customTypeHint')" :hint="t('notification.customTypeHint')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-cog"
/> />
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
@@ -420,6 +455,7 @@ function onClose() {
:hint="t('notification.nameRequired')" :hint="t('notification.nameRequired')"
persistent-hint persistent-hint
active active
prepend-inner-icon="mdi-label"
/> />
</VCol> </VCol>
</VRow> </VRow>