链接全转https协议,去除获取在线预览链接,改为本地生成,修复部分bug,优化预览图(同步更新)

This commit is contained in:
chuzhongzai
2023-07-31 22:23:37 +08:00
parent 7126345398
commit 8e606598dd
5 changed files with 49 additions and 91 deletions
+11 -2
View File
@@ -38,13 +38,14 @@
<hr>
<el-button @click="isQuerying = true">里站搜索</el-button>
<el-button @click="isViewingTag = true">查看标签</el-button>
<div v-show="thumbnailGallery !== {}">
<div v-show="'images' in thumbnailGallery">
<span>
{{thumbnailGallery.shortName}}<br>
<el-space v-show="thumbnailGallery.tag !== ''">标签:{{thumbnailGallery.tag}}</el-space>
</span><br>
<picture>
<el-image :src="thumbnailGallery.url" :preview-src-list="[thumbnailGallery.url,]" :initial-index="0" class="preview"></el-image>
<el-image :src="thumbnailGallery.url" :preview-src-list="thumbnailGallery.images" :initial-index="0" class="preview"
style="width: 300px; height: 300px" fit="contain"/>
</picture>
</div>
</div>
@@ -277,6 +278,14 @@ function postTask(){
}
//查询任务
function queryRemoteTask(){
if(!validateLink(param.value)){
ElMessage("链接错误")
return
}
let tempLink = coverLink(param.value)
store.dispatch("queryGalleryTask", tempLink)
}
function queryLocalTask(){
switch (type.value){
case "link":
+2 -2
View File
@@ -85,8 +85,8 @@ function close(){
</div>
<el-scrollbar height="75vh" ref="scrollBar">
<div style="height: 251px; width: 100%; " v-for="gallery in galleries">
<el-image alt="picture" :preview-src-list="['https://cdn.lionwebsite.xyz/thumbnail' + gallery.thumbnailUrl.replace('/t', ''),]"
:src="'https://cdn.lionwebsite.xyz/thumbnail' + gallery.thumbnailUrl.replace('/t', '') "
<el-image alt="picture" :preview-src-list="['https://downloader.lionwebsite.xyz/GalleryManage/ehThumbnail?path=' + gallery.thumbnailUrl.replace('/t', ''),]"
:src="'https://downloader.lionwebsite.xyz/GalleryManage/ehThumbnail?path=' + gallery.thumbnailUrl.replace('/t', '') "
style="height:250px;width:250px;float: left;"
fit="contain"
loading="lazy"
+14 -13
View File
@@ -1,7 +1,7 @@
<script setup>
import {computed, ref, watch} from "vue";
import store from "../store/index.js";
let props = defineProps(['currentLinks', 'isOnlineReading'])
let props = defineProps(['currentGallery', 'isOnlineReading'])
let isShowUp = ref()
let onlineReadingScrollbar = ref()
let links = ref()
@@ -19,12 +19,12 @@ watch(props, (props)=>{
//切换本子
function alterPage(){
console.log(lengthPerPage.value, props.currentLinks.length)
if(props.currentLinks.length > lengthPerPage.value){
links.value = props.currentLinks.slice(0, lengthPerPage.value)
max.value = Math.ceil(props.currentLinks.length / lengthPerPage.value)
if(props.currentGallery.images.length > lengthPerPage.value){
links.value = props.currentGallery.images.slice(0, lengthPerPage.value)
max.value = Math.ceil(props.currentGallery.images.length / lengthPerPage.value)
}else{
links.value = props.currentLinks
links.value = props.currentGallery.images
max.value = 0
}
index.value = 0
temp_index.value = 1
@@ -32,7 +32,7 @@ function alterPage(){
//跳转到对应页数
function jump(targetIndex){
links.value = props.currentLinks.slice(targetIndex * lengthPerPage.value, (targetIndex + 1) * lengthPerPage.value)
links.value = props.currentGallery.images.slice(targetIndex * lengthPerPage.value, (targetIndex + 1) * lengthPerPage.value)
index.value = targetIndex
temp_index.value = targetIndex + 1
onlineReadingScrollbar.value.setScrollTop(0)
@@ -44,16 +44,17 @@ function closeDialog(){
</script>
<template>
<el-dialog v-model="isShowUp" width="90%" style="margin-top: 0; margin-bottom: 0; padding: 0" @close="closeDialog">
<template #header>
在线预览
<el-dialog v-model="isShowUp" width="90%" style="margin-top: 0; margin-bottom: 0; padding: 0" @close="closeDialog">
<template #header style="padding-bottom: 0">
在线预览: {{currentGallery.name}} 页数:{{currentGallery.pages}}<br>
<div style="font-size: 3vh; display: inline" v-if="max > 0">
{{index + 1}} - {{(index) * lengthPerPage + 1}} ~ {{(index + 1) * lengthPerPage + 1 > currentLinks.length? currentLinks.length: (index + 1) * lengthPerPage + 1}}
{{ index + 1 }} - {{ (index) * lengthPerPage + 1 }} ~
{{ (index + 1) * lengthPerPage + 1 > currentGallery.images.length ? currentGallery.images.length : (index + 1) * lengthPerPage }}
</div>
</template>
<el-scrollbar height="75vh" ref="onlineReadingScrollbar">
<el-image v-for="(link, i) in links" :src="link" :style="{'width': store.state.imageWidth, 'padding-right': store.state.imagePadding, 'background-color': 'gary'}"
:preview-src-list="currentLinks" :initial-index="index * lengthPerPage + i" loading="lazy"/>
:preview-src-list="currentGallery.images" :initial-index="index * lengthPerPage + i" loading="lazy"/>
</el-scrollbar>
<!-- 十页以下-->
@@ -71,7 +72,7 @@ function closeDialog(){
1 &lt;
<el-input-number v-model="temp_index" :min="1" :max="max"/>
&lt; {{max}}
<el-button @click="jump(index + 1)" :disabled="index === max - 1">下一页</el-button><br>
<el-button @click="jump(index + 1)" :disabled="index === max - 1">下一页</el-button>
<el-button @click="jump(temp_index - 1)" size="large">跳转</el-button>
</span>
</el-dialog>
+14 -14
View File
@@ -6,6 +6,7 @@
:empty-text="emptyText"
:row-key="gallery=>gallery.gid"
class="table"
@cellMouseEnter="showThumbnail"
>
<el-table-column type="expand">
@@ -31,9 +32,7 @@
<el-table-column label="名字" width="300vw">
<template #default="scoped">
<span @mouseover="showThumbnail(scoped.row)">
{{galleryNameType === 'shortName' ? scoped.row.shortName: scoped.row.name}}
</span>
{{galleryNameType === 'shortName' ? scoped.row.shortName: scoped.row.name}}
</template>
</el-table-column>
@@ -42,7 +41,7 @@
<span>
<el-button @click="downloadTask(scoped.row.download)" :disabled="scoped.row.download === undefined">下载</el-button>
<el-button @click="changeGalleryCollect(scoped.row.gid, scoped.row.isCollect)">{{scoped.row.isCollect ? '取消收藏' : '收藏'}}</el-button>
<el-button @click="onlineGalleryReader(scoped.row.gid)" :disabled="scoped.row.download === undefined">在线看</el-button>
<el-button @click="onlineGalleryReader(scoped.row)" :disabled="scoped.row.download === undefined">在线看</el-button>
</span>
</template>
</el-table-column>
@@ -111,7 +110,7 @@
</el-form>
</el-dialog>
<OnlineReader :currentLinks="currentLinks" :isOnlineReading="isOnlineReading"/>
<OnlineReader :current-gallery="currentGallery" :isOnlineReading="isOnlineReading"/>
<span v-show="!loadComplete" class="side">请输入授权码后再查看</span>
</div>
@@ -124,12 +123,16 @@ import axios from "axios";
import {ElMessage} from "element-plus";
import OnlineReader from "./OnlineReader.vue";
let link = "https://downloader.lionwebsite.xyz/GalleryManage/"
//输入
let inputNode = ref(null)
//是否正在编辑页数
let isEditingPage = ref(false)
//是否正在编辑标签
let isEditingTag = ref(false)
//是否预览本子
let isOnlineReading = ref(false)
//临时变量
let galleryForTag = ref({})
@@ -151,9 +154,6 @@ let loadComplete = computed(() => {
let currentTasks = computed(() => {
return store.getters.currentTasks ? store.getters.currentTasks: null
})
let isOnlineReading = computed(() => {
return store.state.isOnlineReading
})
let min = computed(() => {
return store.getters.min
@@ -177,9 +177,7 @@ let emptyText = computed(() => {
})
//在线预览相关
let currentLinks = computed(() => {
return store.state.currentLinks
})
let currentGallery = ref({name:"name"})
let imageWidth = computed(() => {
return store.state.imageWidth
})
@@ -309,8 +307,9 @@ function updateGallery(link){
function deleteGallery(gid){
store.dispatch("deleteGallery", gid)
}
function onlineGalleryReader(gid){
store.dispatch("queryOnlineLinks", gid)
function onlineGalleryReader(gallery){
currentGallery.value = gallery
isOnlineReading.value = true;
}
function shareGallery(data){
const {gid, shortName} = data
@@ -333,11 +332,12 @@ function shareGallery(data){
//显示缩略图
function showThumbnail(gallery){
if(gallery.download !== undefined && gallery.status === "下载完成")
if(gallery.status === "下载完成") {
clearTimeout(debounceTimer)
debounceTimer = setTimeout(() => {
store.commit("_changeThumbnailGallery", gallery)
}, 500)
}
}
</script>