diff --git a/package.json b/package.json index 2cbcc4be1..774847e42 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sub-store-front-end", - "version": "2.14.71", + "version": "2.14.72", "private": true, "scripts": { "dev": "vite --host", diff --git a/src/components/ArtifactPanel.vue b/src/components/ArtifactPanel.vue index ca01f61a1..130e61a1e 100644 --- a/src/components/ArtifactPanel.vue +++ b/src/components/ArtifactPanel.vue @@ -99,24 +99,37 @@ > - - + - Stash - Clash.Meta(mihomo) - Clash - Surfboard - Surge - Loon - Shadowrocket - Quantumult X - sing-box - V2Ray - - +
+ + +
+ + + + + Stash + Clash.Meta(mihomo) + Clash + Surfboard + Surge + Loon + Shadowrocket + Quantumult X + sing-box + V2Ray + + + @@ -159,6 +172,7 @@ source: '', type: 'file', platform: 'Stash', + includeUnsupportedProxy: false, }); const sourceSelectorIsVisible = ref(false); @@ -298,6 +312,20 @@ ruleForm.value.validate(prop); }; + const includeUnsupportedProxyTips = () => { + const includeUnsupportedProxyTipsTitle = t(`syncPage.addArtForm.includeUnsupportedProxy.tips.title`) + const includeUnsupportedProxyTipsContent = t(`syncPage.addArtForm.includeUnsupportedProxy.tips.content`) + Dialog({ + title: includeUnsupportedProxyTipsTitle, + content: includeUnsupportedProxyTipsContent, + popClass: 'auto-dialog', + okText: 'OK', + noCancelBtn: true, + closeOnPopstate: true, + lockScroll: true, + }); + }; + watchEffect(() => { if (!isInit.value && name) { const artifact = artifactsStore.artifacts.find(art => art.name === name); @@ -317,7 +345,7 @@ .artifact-panel { .nut-dialog { - width: 83vw; + width: 88vw; .nut-dialog__content { max-height: 72vh !important; @@ -349,6 +377,16 @@ } } } + .include-unsupported-proxy-wrapper { + flex-direction: row; + justify-content: space-between; + .swtich-wrapper { + color: var(--comment-text-color); + display: flex; + justify-content: space-between; + align-items: center; + } + } } } } diff --git a/src/components/ArtifactsListItem.vue b/src/components/ArtifactsListItem.vue index 0f18fe37d..776590146 100644 --- a/src/components/ArtifactsListItem.vue +++ b/src/components/ArtifactsListItem.vue @@ -215,13 +215,30 @@ const icon = computed(() => { }); const sourceUrl = computed(() => { + if (!artifact.value.type) { + return '' + } + if (artifact.value.type === 'file') { + const path = `/api/file/${encodeURIComponent(artifact.value.source)}`; + const url = `${host.value}${path}`; + return url + } const urlTarget: string = artifact.value.platform !== null ? `?target=${artifact.value.platform}` : ''; + let urlIncludeUnsupportedProxy = artifact.value.includeUnsupportedProxy ? `includeUnsupportedProxy=true` : ''; + if (urlTarget && urlIncludeUnsupportedProxy) { + urlIncludeUnsupportedProxy = `&${urlIncludeUnsupportedProxy}` + } else { + urlIncludeUnsupportedProxy = `?${urlIncludeUnsupportedProxy}` + } return `${host.value}/download/${ artifact.value.type === 'subscription' ? '' : 'collection/' - }${encodeURIComponent(artifact.value.source)}${urlTarget}`; + }${encodeURIComponent(artifact.value.source)}${urlTarget}${urlIncludeUnsupportedProxy}`; }); const previewSource = () => { + if (!sourceUrl.value) { + return + } Dialog({ title: t('tabBar.sub'), content: sourceUrl.value, diff --git a/src/components/FileListItem.vue b/src/components/FileListItem.vue index 2e3e2e0ce..8b0509486 100644 --- a/src/components/FileListItem.vue +++ b/src/components/FileListItem.vue @@ -169,7 +169,6 @@ import { useSubsApi } from '@/api/subs'; import { useFilesApi } from '@/api/files'; import icon from '@/assets/icons/logo.svg'; - import PreviewPanel from '@/components/PreviewPanel.vue'; import { usePopupRoute } from '@/hooks/usePopupRoute'; import { useAppNotifyStore } from '@/store/appNotify'; import { useGlobalStore } from '@/store/global'; diff --git a/src/components/PreviewPanel.vue b/src/components/PreviewPanel.vue index f9bbe9028..fc78abde7 100644 --- a/src/components/PreviewPanel.vue +++ b/src/components/PreviewPanel.vue @@ -1,41 +1,47 @@