mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-06 23:51:48 +01:00
Optimize attributeView image browsing (#14843)
This commit is contained in:
parent
b06cee76f8
commit
2b03a364af
7 changed files with 169 additions and 8 deletions
|
|
@ -92,3 +92,60 @@ export const previewDocImage = (src: string, id: string) => {
|
|||
});
|
||||
});
|
||||
};
|
||||
|
||||
export const previewAttrViewImages = (src: string, avID: string,viewID: string,query?:string,pageSize?: number) => {
|
||||
addScript(`${Constants.PROTYLE_CDN}/js/viewerjs/viewer.js?v=1.11.7`, "protyleViewerScript").then(() => {
|
||||
fetchPost("/api/av/getCurrentAttrViewImages", {
|
||||
id: avID,
|
||||
query: query,
|
||||
pageSize: pageSize,
|
||||
viewID: viewID
|
||||
}, (response) => {
|
||||
const imagesElement = document.createElement("ul");
|
||||
let html = "";
|
||||
let initialViewIndex = -1;
|
||||
response.data.forEach((item: string, index: number) => {
|
||||
if (item) {
|
||||
html += `<li><img src="${item}"></li>`;
|
||||
if (initialViewIndex === -1 && (src.endsWith(encodeURI(item)) || src.endsWith(item))) {
|
||||
initialViewIndex = index;
|
||||
}
|
||||
}
|
||||
});
|
||||
imagesElement.innerHTML = html;
|
||||
window.siyuan.viewer = new Viewer(imagesElement, {
|
||||
title: [1, (image: HTMLImageElement, imageData: IObject) => {
|
||||
let name = image.alt;
|
||||
if (!name) {
|
||||
name = image.src.substring(image.src.lastIndexOf("/") + 1);
|
||||
}
|
||||
name = name.substring(0, name.lastIndexOf(".")).replace(/-\d{14}-\w{7}$/, "");
|
||||
return `${name} [${imageData.naturalWidth} × ${imageData.naturalHeight}]`;
|
||||
}],
|
||||
button: false,
|
||||
initialViewIndex,
|
||||
transition: false,
|
||||
hidden: function () {
|
||||
window.siyuan.viewer.destroy();
|
||||
},
|
||||
toolbar: {
|
||||
zoomIn: true,
|
||||
zoomOut: true,
|
||||
oneToOne: true,
|
||||
reset: true,
|
||||
prev: true,
|
||||
play: true,
|
||||
next: true,
|
||||
rotateLeft: true,
|
||||
rotateRight: true,
|
||||
flipHorizontal: true,
|
||||
flipVertical: true,
|
||||
close: function () {
|
||||
window.siyuan.viewer.destroy();
|
||||
},
|
||||
},
|
||||
});
|
||||
window.siyuan.viewer.show();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue