fix: Fix issue with failure to disable website cache (#8113)

This commit is contained in:
zhengkunwang 2025-03-10 18:36:46 +08:00 committed by GitHub
parent 63631b1118
commit 1f842b49cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 154 additions and 126 deletions

View file

@ -2384,6 +2384,7 @@ const message = {
volcengine: 'Volcengine', volcengine: 'Volcengine',
runtimePortHelper: 'The current runtime environment has multiple ports. Please select a proxy port.', runtimePortHelper: 'The current runtime environment has multiple ports. Please select a proxy port.',
runtimePortWarn: 'The current runtime environment has no ports, unable to proxy', runtimePortWarn: 'The current runtime environment has no ports, unable to proxy',
cacheWarn: 'Please turn off the cache switch in the reverse proxy first',
}, },
php: { php: {
short_open_tag: 'Short tag support', short_open_tag: 'Short tag support',

View file

@ -2242,6 +2242,7 @@ const message = {
volcengine: 'volcengine', volcengine: 'volcengine',
runtimePortHelper: '現在の実行環境には複数のポートがありますプロキシポートを選択してください', runtimePortHelper: '現在の実行環境には複数のポートがありますプロキシポートを選択してください',
runtimePortWarn: '現在の実行環境にはポートがありませんプロキシできません', runtimePortWarn: '現在の実行環境にはポートがありませんプロキシできません',
cacheWarn: 'まずリバースプロキシのキャッシュスイッチをオフにしてください',
}, },
php: { php: {
short_open_tag: '短いタグサポート', short_open_tag: '短いタグサポート',

View file

@ -2206,6 +2206,7 @@ const message = {
volcengine: 'volcengine', volcengine: 'volcengine',
runtimePortHelper: '현재 실행 환경에 여러 포트가 있습니다. 프록시 포트를 선택하세요.', runtimePortHelper: '현재 실행 환경에 여러 포트가 있습니다. 프록시 포트를 선택하세요.',
runtimePortWarn: '현재 실행 환경에 포트가 없습니다. 프록시할 없습니다', runtimePortWarn: '현재 실행 환경에 포트가 없습니다. 프록시할 없습니다',
cacheWarn: '먼저 리버스 프록시의 캐시 스위치를 끄십시오',
}, },
php: { php: {
short_open_tag: '짧은 태그 지원', short_open_tag: '짧은 태그 지원',

View file

@ -2297,6 +2297,7 @@ const message = {
volcengine: 'Volcengine', volcengine: 'Volcengine',
runtimePortHelper: 'Persekitaran runtime semasa mempunyai beberapa port. Sila pilih port proksi.', runtimePortHelper: 'Persekitaran runtime semasa mempunyai beberapa port. Sila pilih port proksi.',
runtimePortWarn: 'Persekitaran runtime semasa tidak mempunyai port, tidak dapat proksi', runtimePortWarn: 'Persekitaran runtime semasa tidak mempunyai port, tidak dapat proksi',
cacheWarn: 'Sila matikan suis cache dalam pembalikan proksi terlebih dahulu',
}, },
php: { php: {
short_open_tag: 'Sokongan tag pendek', short_open_tag: 'Sokongan tag pendek',

View file

@ -2292,6 +2292,7 @@ const message = {
volcengine: 'Volcengine', volcengine: 'Volcengine',
runtimePortHelper: 'O ambiente de runtime atual possui várias portas. Por favor, selecione uma porta de proxy.', runtimePortHelper: 'O ambiente de runtime atual possui várias portas. Por favor, selecione uma porta de proxy.',
runtimePortWarn: 'O ambiente de execução atual não possui portos, não é possível proxiar', runtimePortWarn: 'O ambiente de execução atual não possui portos, não é possível proxiar',
cacheWarn: 'Por favor, desligue o interruptor de cache no proxy reverso primeiro',
}, },
php: { php: {
short_open_tag: 'Suporte para short tags', short_open_tag: 'Suporte para short tags',

View file

@ -2294,6 +2294,7 @@ const message = {
volcengine: 'Volcengine', volcengine: 'Volcengine',
runtimePortHelper: 'O ambiente de runtime atual possui várias portas. Por favor, selecione uma porta de proxy.', runtimePortHelper: 'O ambiente de runtime atual possui várias portas. Por favor, selecione uma porta de proxy.',
runtimePortWarn: 'В текущей среде выполнения нет портов, невозможно проксировать', runtimePortWarn: 'В текущей среде выполнения нет портов, невозможно проксировать',
cacheWarn: 'Пожалуйста, сначала выключите кэш в обратном прокси',
}, },
php: { php: {
short_open_tag: 'Поддержка коротких тегов', short_open_tag: 'Поддержка коротких тегов',

View file

@ -2211,6 +2211,7 @@ const message = {
volcengine: 'Volcengine', volcengine: 'Volcengine',
runtimePortHelper: '當前運行環境存在多個端口請選擇一個代理端口', runtimePortHelper: '當前運行環境存在多個端口請選擇一個代理端口',
runtimePortWarn: '當前運行環境沒有端口無法代理', runtimePortWarn: '當前運行環境沒有端口無法代理',
cacheWarn: '請先關閉反代中的緩存開關',
}, },
php: { php: {
short_open_tag: '短標簽支持', short_open_tag: '短標簽支持',

View file

@ -2201,6 +2201,7 @@ const message = {
volcengine: '火山引擎', volcengine: '火山引擎',
runtimePortHelper: '当前运行环境存在多个端口请选择一个代理端口', runtimePortHelper: '当前运行环境存在多个端口请选择一个代理端口',
runtimePortWarn: '当前运行环境没有端口无法代理', runtimePortWarn: '当前运行环境没有端口无法代理',
cacheWarn: '请先关闭反代中的缓存开关',
}, },
php: { php: {
short_open_tag: '短标签支持', short_open_tag: '短标签支持',

View file

@ -2,7 +2,7 @@
<DialogPro v-model="open" size="w-70" @opened="onOpen" :show-close="false" :top="'5vh'" :fullscreen="isFullscreen"> <DialogPro v-model="open" size="w-70" @opened="onOpen" :show-close="false" :top="'5vh'" :fullscreen="isFullscreen">
<template #header> <template #header>
<div ref="dialogHeader" class="flex items-center justify-between"> <div ref="dialogHeader" class="flex items-center justify-between">
<span>{{ $t('commons.button.edit') + ' - ' + form.path }}</span> <span class="truncate-text">{{ $t('commons.button.edit') + ' - ' + form.path }}</span>
<el-space alignment="center" :size="1" class="dialog-header-icon"> <el-space alignment="center" :size="1" class="dialog-header-icon">
<el-tooltip :content="loadTooltip()" placement="top"> <el-tooltip :content="loadTooltip()" placement="top">
<el-button <el-button
@ -20,11 +20,17 @@
</el-space> </el-space>
</div> </div>
</template> </template>
<template #content>
<div ref="dialogForm"> <div ref="dialogForm">
<el-form :inline="true" :model="config" class="mt-1.5"> <el-form :inline="true" :model="config" class="mt-1.5">
<el-form-item :label="$t('file.theme')"> <el-form-item :label="$t('file.theme')">
<el-select v-model="config.theme" @change="changeTheme()" class="p-w-200"> <el-select v-model="config.theme" @change="changeTheme()" class="p-w-200">
<el-option v-for="item in themes" :key="item.label" :value="item.value" :label="item.label" /> <el-option
v-for="item in themes"
:key="item.label"
:value="item.value"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('file.language')"> <el-form-item :label="$t('file.language')">
@ -58,7 +64,10 @@
</div> </div>
<div v-loading="loading"> <div v-loading="loading">
<div class="flex"> <div class="flex">
<div class="monaco-editor sm:w-48 w-1/3 monaco-editor-background border-0 tree-container" v-if="isShow"> <div
class="monaco-editor sm:w-48 w-1/3 monaco-editor-background border-0 tree-container"
v-if="isShow"
>
<div class="flex items-center justify-between pl-1 sm:pr-4 pr-1 pt-1"> <div class="flex items-center justify-between pl-1 sm:pr-4 pr-1 pt-1">
<el-tooltip :content="$t('file.top')" placement="top"> <el-tooltip :content="$t('file.top')" placement="top">
<el-text size="small" @click="getUpData()" class="cursor-pointer"> <el-text size="small" @click="getUpData()" class="cursor-pointer">
@ -91,13 +100,10 @@
highlight-current highlight-current
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<!-- 目录 -->
<span v-if="data.isDir" style="display: inline-flex; align-items: center"> <span v-if="data.isDir" style="display: inline-flex; align-items: center">
<svg-icon className="table-icon" iconName="p-file-folder"></svg-icon> <svg-icon className="table-icon" iconName="p-file-folder"></svg-icon>
<small :title="node.label">{{ node.label }}</small> <small :title="node.label">{{ node.label }}</small>
</span> </span>
<!-- 文档 -->
<span <span
v-else v-else
style="display: inline-flex; align-items: center" style="display: inline-flex; align-items: center"
@ -142,6 +148,7 @@
></div> ></div>
</div> </div>
</div> </div>
</template>
<template #footer> <template #footer>
<div class="dialog-footer" ref="dialogFooter"> <div class="dialog-footer" ref="dialogFooter">
<el-button @click="handleReset">{{ $t('commons.button.reset') }}</el-button> <el-button @click="handleReset">{{ $t('commons.button.reset') }}</el-button>
@ -710,4 +717,12 @@ defineExpose({ acceptParams });
.tree-widget { .tree-widget {
background-color: var(--el-button--primary); background-color: var(--el-button--primary);
} }
.truncate-text {
display: inline-block;
max-width: 800px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style> </style>

View file

@ -10,7 +10,8 @@
:validate-on-rule-change="false" :validate-on-rule-change="false"
> >
<el-form-item :label="$t('commons.button.start')" prop="open"> <el-form-item :label="$t('commons.button.start')" prop="open">
<el-switch v-model="req.open"></el-switch> <el-switch v-model="req.open" :disabled="hasCache"></el-switch>
<span class="input-help" v-if="hasCache">{{ $t('website.cacheWarn') }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('website.cacheLimit')" prop="cacheLimit"> <el-form-item :label="$t('website.cacheLimit')" prop="cacheLimit">
<el-input v-model.number="req.cacheLimit" class="p-w-200"> <el-input v-model.number="req.cacheLimit" class="p-w-200">
@ -78,6 +79,7 @@ import i18n from '@/lang';
const open = ref(false); const open = ref(false);
const loading = ref(false); const loading = ref(false);
const proxyForm = ref<FormInstance>(); const proxyForm = ref<FormInstance>();
const hasCache = ref(false);
const req = reactive({ const req = reactive({
open: false, open: false,
@ -100,8 +102,9 @@ const handleClose = () => {
open.value = false; open.value = false;
}; };
const acceptParams = (websiteID: number) => { const acceptParams = (websiteID: number, cache: boolean) => {
req.websiteID = websiteID; req.websiteID = websiteID;
hasCache.value = cache;
get(); get();
open.value = true; open.value = true;
}; };

View file

@ -68,6 +68,7 @@ const createRef = ref();
const fileRef = ref(); const fileRef = ref();
const opRef = ref(); const opRef = ref();
const cacheRef = ref(); const cacheRef = ref();
const hasCache = ref(false);
const buttons = [ const buttons = [
{ {
@ -117,7 +118,7 @@ const openCreate = () => {
}; };
const openCache = () => { const openCache = () => {
cacheRef.value.acceptParams(id.value); cacheRef.value.acceptParams(id.value, hasCache.value);
}; };
const openEdit = (proxyConfig: Website.ProxyConfig) => { const openEdit = (proxyConfig: Website.ProxyConfig) => {
@ -195,6 +196,7 @@ const search = async () => {
loading.value = true; loading.value = true;
const res = await getProxyConfig({ id: id.value }); const res = await getProxyConfig({ id: id.value });
data.value = res.data || []; data.value = res.data || [];
hasCache.value = data.value.some((item: Website.ProxyConfig) => item.cache);
} catch (error) { } catch (error) {
} finally { } finally {
loading.value = false; loading.value = false;

View file

@ -39,7 +39,7 @@ const props = defineProps({
const isEver = (time: string) => { const isEver = (time: string) => {
const expireDate = new Date(time); const expireDate = new Date(time);
return expireDate < new Date('1970-01-02'); return expireDate > new Date('9999-12-30');
}; };
</script> </script>