【修复】主机提供商显示值变化,关联的内容发生提示

This commit is contained in:
chudong
2025-05-23 18:34:31 +08:00
parent c1243a557c
commit 38acf30f88
69 changed files with 191 additions and 115 deletions

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "موقع باغودا docker",
"t_0_1744098811152": "تحذير: لقد دخلتم منطقة غير معروفة، الصفحة التي تحاول زيارتها غير موجودة، يرجى الضغط على الزر للعودة إلى الصفحة الرئيسية.",
"t_1_1744098801860": "رجوع إلى الصفحة الرئيسية",
"t_2_1744098804908": "نصيحة أمنية: إذا كنت تعتقد أن هذا خطأ، يرجى الاتصال بالمدير على الفور",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "يدعم فقط عناوين الوكيل http أو https (مثال: http://proxy.example.com:8080)",
"t_9_1747990229640": "وقت التجديد التلقائي لا يمكن أن يكون فارغًا",
"t_10_1747990232207": "الرجاء اختيار اسم الموقع (يدعم اختيارات متعددة)",
"t_0_1747990626044": "إضافة Zerossl، Google، تفويض CA مخصص"
"t_0_1747990626044": "إضافة Zerossl، Google، تفويض CA مخصص",
"t_0_1747994891459": "موقع باغودا docker"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "Pagoda docker website",
"t_0_1744098811152": "Warning: You have entered an unknown area, the page you are visiting does not exist, please click the button to return to the homepage.",
"t_1_1744098801860": "Return Home",
"t_2_1744098804908": "Safety Tip: If you think this is an error, please contact the administrator immediately",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "Only supports http or https proxy addresses (e.g., http://proxy.example.com:8080)",
"t_9_1747990229640": "Auto-renewal time cannot be empty",
"t_10_1747990232207": "Please select the website name, multiple selections are supported",
"t_0_1747990626044": "Add Zerossl, Google, custom CA authorization"
"t_0_1747990626044": "Add Zerossl, Google, custom CA authorization",
"t_0_1747994891459": "Pagoda docker website"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "Sitio web de Pagoda docker",
"t_0_1744098811152": "Advertencia: Ha ingresado a una zona desconocida, la página que intenta visitar no existe, por favor, haga clic en el botón para regresar a la página de inicio.",
"t_1_1744098801860": "Volver al inicio",
"t_2_1744098804908": "Consejo de seguridad: Si piensa que es un error, póngase en contacto con el administrador inmediatamente",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "Solo admite direcciones proxy http o https (por ejemplo, http://proxy.example.com:8080)",
"t_9_1747990229640": "El tiempo de renovación automática no puede estar vacío",
"t_10_1747990232207": "Por favor, seleccione el nombre del sitio web (se admiten múltiples selecciones)",
"t_0_1747990626044": "Agregar Zerossl, Google, autorización CA personalizada"
"t_0_1747990626044": "Agregar Zerossl, Google, autorización CA personalizada",
"t_0_1747994891459": "Sitio web de Pagoda docker"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "Site web Pagoda docker",
"t_0_1744098811152": "Avertissement : Vous avez entré dans une zone inconnue, la page que vous visitez n'existe pas, veuillez cliquer sur le bouton pour revenir à la page d'accueil.",
"t_1_1744098801860": "Retour à l'accueil",
"t_2_1744098804908": "Avis de sécurité : Si vous pensez que c'est une erreur, veuillez contacter l'administrateur immédiatement",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "Ne prend en charge que les adresses proxy http ou https (par exemple, http://proxy.example.com:8080)",
"t_9_1747990229640": "L'heure de renouvellement automatique ne peut pas être vide",
"t_10_1747990232207": "Veuillez sélectionner le nom du site (sélection multiple prise en charge)",
"t_0_1747990626044": "Ajouter Zerossl, Google, autorisation CA personnalisée"
"t_0_1747990626044": "Ajouter Zerossl, Google, autorisation CA personnalisée",
"t_0_1747994891459": "Site web Pagoda docker"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "宝塔dockerサイト",
"t_0_1744098811152": "警告:未知のエリアに進入しました。アクセスしようとしたページは存在しません。ボタンをクリックしてホームページに戻ってください。",
"t_1_1744098801860": "ホームに戻る",
"t_2_1744098804908": "安全注意:これが誤りだと思われる場合は、すぐに管理者に連絡してください",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "http または https プロキシアドレスのみサポートしていますhttp://proxy.example.com:8080",
"t_9_1747990229640": "自動更新時間は空にできません",
"t_10_1747990232207": "ウェブサイト名を選択してください(複数選択可)",
"t_0_1747990626044": "Zerossl、Googleを追加、カスタムCA認証"
"t_0_1747990626044": "Zerossl、Googleを追加、カスタムCA認証",
"t_0_1747994891459": "宝塔dockerサイト"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "보타 docker 웹사이트",
"t_0_1744098811152": "경고: 알 수 없는 영역에 진입했습니다. 방문하려는 페이지가 존재하지 않습니다. 버튼을 클릭하여 홈페이지로 돌아가세요。",
"t_1_1744098801860": "홈으로 돌아가기",
"t_2_1744098804908": "안전 유의사항: 이가 오류라면 즉시 관리자에게 연락하십시오",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "http 또는 https 프록시 주소만 지원합니다 (예: http://proxy.example.com:8080)",
"t_9_1747990229640": "자동 갱신 시간은 비워 둘 수 없습니다",
"t_10_1747990232207": "웹사이트 이름을 선택하세요 (다중 선택 가능)",
"t_0_1747990626044": "Zerossl, Google 추가, 사용자 정의 CA 인증"
"t_0_1747990626044": "Zerossl, Google 추가, 사용자 정의 CA 인증",
"t_0_1747994891459": "보타 docker 웹사이트"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "Site do Pagoda docker",
"t_0_1744098811152": "Aviso: Você entrou em uma área desconhecida, a página que você está visitando não existe, por favor, clique no botão para voltar para a página inicial.",
"t_1_1744098801860": "Voltar para a homepage",
"t_2_1744098804908": "Dica de Segurança: Se você acha que isso é um erro, entre em contato com o administrador imediatamente",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "Apenas suporta endereços de proxy http ou https (por exemplo, http://proxy.example.com:8080)",
"t_9_1747990229640": "O tempo de renovação automática não pode estar vazio",
"t_10_1747990232207": "Por favor, selecione o nome do site (seleção múltipla suportada)",
"t_0_1747990626044": "Adicionar Zerossl, Google, autorização CA personalizada"
"t_0_1747990626044": "Adicionar Zerossl, Google, autorização CA personalizada",
"t_0_1747994891459": "Site do Pagoda docker"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "Веб-сайт Pagoda docker",
"t_0_1744098811152": "Предупреждение: Вы вошли в неизвестную зону, посещаемая страница не существует, пожалуйста, нажмите кнопку, чтобы вернуться на главную страницу.",
"t_1_1744098801860": "Вернуться на главную",
"t_2_1744098804908": "Совет по безопасности: Если вы считаете, что это ошибка, немедленно свяжитесь с администратором",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "Поддерживаются только прокси-адреса http или https (например, http://proxy.example.com:8080)",
"t_9_1747990229640": "Время автоматического продления не может быть пустым",
"t_10_1747990232207": "Пожалуйста, выберите название веб-сайта (поддерживается множественный выбор)",
"t_0_1747990626044": "Добавить Zerossl, Google, пользовательскую авторизацию CA"
"t_0_1747990626044": "Добавить Zerossl, Google, пользовательскую авторизацию CA",
"t_0_1747994891459": "Веб-сайт Pagoda docker"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "宝塔docker网站",
"t_0_1744098811152": "警告:您已进入未知区域,所访问的页面不存在,请点击按钮返回首页。",
"t_1_1744098801860": "返回首页",
"t_2_1744098804908": "安全提示:如果您认为这是个错误,请立即联系管理员",
@@ -623,5 +622,6 @@
"t_8_1747990235316": "仅支持 http 或 https 代理地址例如http://proxy.example.com:8080",
"t_9_1747990229640": "自动续签时间不能为空",
"t_10_1747990232207": "请选择网站名,支持多选网站名称",
"t_0_1747990626044": "添加Zerossl、Google自定义CA授权"
"t_0_1747990626044": "添加Zerossl、Google自定义CA授权",
"t_0_1747994891459": "宝塔docker网站"
}

View File

@@ -1,5 +1,4 @@
{
"t_0_1747994891459": "寶塔docker網站",
"t_0_1744098811152": "警告:您已進入未知區域,所訪問的頁面不存在,請點擊按鈕返回首頁。",
"t_1_1744098801860": "返回首頁",
"t_2_1744098804908": "安全提示:如果您認為這是個錯誤,請立即聯繫管理員",
@@ -622,5 +621,6 @@
"t_8_1747990235316": "僅支援 http 或 https 代理地址例如http://proxy.example.com:8080",
"t_9_1747990229640": "自動續簽時間不能為空",
"t_10_1747990232207": "請選擇網站名,支援多選網站名稱",
"t_0_1747990626044": "新增Zerossl、Google自訂CA授權"
"t_0_1747990626044": "新增Zerossl、Google自訂CA授權",
"t_0_1747994891459": "寶塔docker網站"
}

View File

@@ -123,21 +123,21 @@ export default defineComponent({
// 使用自定义属性来传递事件处理程序
'onUpdate:value': (val: { value: number; type: string }) => {
param.value.provider_id = val.value
param.value.siteName = []
},
}
// 使用类型断言创建VNode
return (<DnsProviderSelect {...dnsProviderProps} />) as VNode
}),
)
} else {
config.push(formConfig.select($t('t_0_1746754500246'), 'provider', localProvider.value, { disabled: true }))
config.push(formConfig.select($t('t_0_1746754500246'), 'provider', localProvider.value))
}
// 证书来源选择
config.push(
formConfig.select($t('t_1_1745748290291'), 'inputs.fromNodeId', certOptions.value, {
onUpdateValue: (val: string, option: { label: string; value: string }) => {
console.log('val', val)
param.value.inputs.fromNodeId = val
param.value.inputs.name = option?.label
},
@@ -161,8 +161,6 @@ export default defineComponent({
clearable: true,
loading: siteOptionsLoading.value,
onSearch: handleSiteSearch,
// renderLabel: (option: any) => option.label,
// renderTag: ({ option }: { option: any }) => option.label,
}),
)
break
@@ -275,7 +273,6 @@ export default defineComponent({
() => {
if (param.value.provider === 'btpanel-site') {
handleSiteSearch('')
param.value.siteName = []
}
},
)
@@ -309,10 +306,6 @@ export default defineComponent({
// 初始化
onMounted(() => {
// 隐藏底部按钮
modalOptions.value.footer = false
// 设置弹窗宽度和高度
modalOptions.value.area = [850, 600]
// 如果已经选择了部署类型,则跳转到下一步
if (param.value.provider) {
if (props.node.inputs) param.value.inputs = props.node.inputs[0]

View File

@@ -276,19 +276,84 @@
/* 响应式布局适配 */
@media (max-width: 768px) {
.loginBox {
@apply flex-col p-7;
@apply flex-col p-4 w-[95vw] min-h-[auto];
}
.leftSection {
@apply p-7 text-center;
@apply p-4 text-center mb-4;
}
.leftTitle {
@apply text-[2.4rem] mb-4;
}
.leftImageWrapper {
@apply hidden;
}
.leftDesc {
@apply mx-auto;
@apply mx-auto text-[1.4rem];
}
.rightSection {
@apply w-full mx-auto;
@apply w-full mx-auto mr-0 p-8 min-h-[auto];
}
.title {
@apply text-[2.8rem] mb-8;
}
.formContainer {
@apply gap-4;
}
}
/* 更小屏幕适配 */
@media (max-width: 480px) {
.container {
@apply p-4;
}
.loginBox {
@apply w-full p-2 min-h-[auto];
}
.leftSection {
@apply p-2 mb-2;
}
.leftTitle {
@apply text-[2rem] mb-2 flex-col;
}
.logo {
@apply w-[4rem] h-[4rem] mr-0 mb-2;
}
.rightSection {
@apply p-6;
}
.title {
@apply text-[2.4rem] mb-6;
}
.formInputs :global(.n-form-item) {
@apply mb-4;
}
.rememberSection {
@apply flex-col items-start gap-2 mb-4;
}
/* 验证码输入框移动端优化 */
.formInputs :global(.n-input) {
@apply text-[1.6rem];
}
/* 验证码图片容器移动端优化 */
.codeImageContainer {
@apply w-[8rem] h-[3.5rem] mr-[-1rem] text-[1.4rem];
}
}
@@ -310,3 +375,12 @@
.icon {
color: var(--n-primary-color-suppl);
}
/* 验证码图片容器样式 */
.codeImageContainer {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.codeImageContainer:hover {
@apply bg-slate-500;
}

View File

@@ -1,32 +1,24 @@
// External Libraries
import { NInput, NButton, NCheckbox, NForm, NFormItem, NIcon, NImage } from 'naive-ui';
import { UserOutlined, LockOutlined, CodeOutlined } from '@vicons/antd';
import { NInput, NButton, NCheckbox, NForm, NFormItem, NIcon, NImage } from 'naive-ui'
import { UserOutlined, LockOutlined, CodeOutlined } from '@vicons/antd'
// Absolute Internal Imports
import { useTheme, useThemeCssVar } from '@baota/naive-ui/theme';
import { $t } from '@locales/index';
import { useTheme, useThemeCssVar } from '@baota/naive-ui/theme'
import { $t } from '@locales/index'
// Relative Internal Imports
import { useController } from './useController';
import { useController } from './useController'
// Side-effect Imports
import styles from './index.module.css';
// import LocalesTips from '@baota/naive-ui/components/localesTips'; // 多语言切换提示组件 (注释掉)
// import ThemeTips from '@baota/naive-ui/components/themeTips'; // 主题切换提示组件 (注释掉)
import styles from './index.module.css'
export default defineComponent({
name: 'LoginView', // 组件命名规范
name: 'LoginView',
setup() {
// 获取登录控制器
const { loading, error, rememberMe, handleSubmit, handleKeyup, loginData, handleGetCode, codeImg, mustCode } =
useController();
// 获取主题暗色模式
const { isDark } = useTheme();
// 获取主题变量
const cssVar = useThemeCssVar(['textColor2', 'actionColor', 'errorColor', 'primaryColor', 'primaryColorSuppl']);
useController()
const { isDark } = useTheme()
const cssVar = useThemeCssVar(['textColor2', 'actionColor', 'errorColor', 'primaryColor', 'primaryColorSuppl'])
return () => (
<div style={cssVar.value}>
@@ -34,10 +26,6 @@ export default defineComponent({
class={styles.container}
style={`background-image:${isDark.value ? 'url(/static/images/login-bg-dark.svg)' : 'url(/static/images/login-bg.svg)'};`}
>
{/* 国际化和主题切换组件暂时注释,如果需要请取消注释并确保其功能 */}
{/* <LocalesTips /> */}
{/* <ThemeTips /> */}
{/* </div> */}
<div class={styles.loginBox}>
<div class={styles.leftSection}>
<h2 class={styles.leftTitle}>
@@ -54,7 +42,11 @@ export default defineComponent({
<NForm onSubmit={handleSubmit} class={styles.formWrapper}>
<div class={styles.formContent}>
<div class={styles.formInputs}>
<NFormItem show-label={false} path="username" rule={{ required: true, message: $t('t_3_1744164839524'), trigger: ['input', 'blur'] }}>
<NFormItem
show-label={false}
path="username"
rule={{ required: true, message: $t('t_3_1744164839524'), trigger: ['input', 'blur'] }}
>
<NInput
v-model:value={loginData.value.username}
onKeyup={handleKeyup}
@@ -68,7 +60,11 @@ export default defineComponent({
}}
</NInput>
</NFormItem>
<NFormItem show-label={false} path="password" rule={{ required: true, message: $t('t_4_1744164840458'), trigger: ['input', 'blur'] }}>
<NFormItem
show-label={false}
path="password"
rule={{ required: true, message: $t('t_4_1744164840458'), trigger: ['input', 'blur'] }}
>
<NInput
onKeyup={handleKeyup}
disabled={loading.value}
@@ -85,7 +81,11 @@ export default defineComponent({
</NInput>
</NFormItem>
{mustCode.value ? (
<NFormItem show-label={false} path="code" rule={{ required: true, message: $t('t_25_1745289355721'), trigger: ['input', 'blur'] }}>
<NFormItem
show-label={false}
path="code"
rule={{ required: true, message: $t('t_25_1745289355721'), trigger: ['input', 'blur'] }}
>
<NInput
onKeyup={handleKeyup}
disabled={loading.value}
@@ -100,10 +100,14 @@ export default defineComponent({
suffix: () => (
<span
onClick={handleGetCode}
title={$t('t_0_1745936396853')} // 点击刷新验证码
class="w-[10rem] h-[4rem] mr-[-1.5rem] flex items-center justify-center relative z-[999] cursor-pointer bg-slate-400 rounded-r-[6px]" // 确保图片居中和样式
title={$t('t_0_1745936396853')}
class={`w-[10rem] h-[4rem] mr-[-1.5rem] flex items-center justify-center relative z-[999] cursor-pointer bg-slate-400 rounded-r-[6px] ${styles.codeImageContainer}`}
>
<NImage src={codeImg.value} preview-disabled class="max-w-full max-h-full object-contain" /> {/* 确保图片在容器内显示 */}
<NImage
src={codeImg.value}
preview-disabled
class="max-w-full max-h-full object-contain"
/>
</span>
),
}}
@@ -114,20 +118,25 @@ export default defineComponent({
<div class={styles.formActions}>
<div class={styles.rememberSection}>
<NCheckbox v-model:checked={rememberMe.value} > {/* 使用 v-model:checked */}
{$t('t_5_1744164840468')}
</NCheckbox>
<NCheckbox v-model:checked={rememberMe.value}>{$t('t_5_1744164840468')}</NCheckbox>
<a
class={styles.forgotPassword}
href="https://www.bt.cn/bbs/thread-144776-1-1.html" // 考虑将此URL配置化
href="https://www.bt.cn/bbs/thread-144776-1-1.html"
target="_blank"
rel="noopener noreferrer" // 安全性考虑
rel="noopener noreferrer"
>
{$t('t_6_1744164838900')}
</a>
</div>
{error.value && <div class={styles.error}>{error.value}</div>}
<NButton type="primary" size="large" block loading={loading.value} attrType="submit" onClick={handleSubmit}> {/* 添加 attrType="submit" */}
<NButton
type="primary"
size="large"
block
loading={loading.value}
attrType="submit"
onClick={handleSubmit}
>
{loading.value ? $t('t_7_1744164838625') : $t('t_8_1744164839833')}
</NButton>
</div>
@@ -138,6 +147,6 @@ export default defineComponent({
</div>
</div>
</div>
);
)
},
})