|
|
@@ -3,6 +3,7 @@
|
|
|
(function () {
|
|
|
const root = document.getElementById('gy-screen');
|
|
|
if (!root) return;
|
|
|
+ const previewDialog = document.getElementById('gy-preview-dialog');
|
|
|
window.gyLoadProject = loadProject;
|
|
|
window.gyRenderProjectTree = renderProjectTree;
|
|
|
initScrollVisibility();
|
|
|
@@ -37,6 +38,8 @@
|
|
|
} else document.getElementById('gy-message').textContent = '图表资源加载失败,请刷新页面。';
|
|
|
document.getElementById('gy-preview-tab').addEventListener('click', () => switchPanel('preview'));
|
|
|
document.getElementById('gy-events-tab').addEventListener('click', () => switchPanel('events'));
|
|
|
+ document.getElementById('gy-preview-expand').addEventListener('click', showPreview);
|
|
|
+ $(previewDialog).on('hidden.bs.modal', () => document.getElementById('gy-preview-expand').focus());
|
|
|
document.getElementById('gy-fullscreen').addEventListener('click', toggleFullscreen);
|
|
|
document.addEventListener('fullscreenchange', syncFullscreen);
|
|
|
document.addEventListener('webkitfullscreenchange', syncFullscreen);
|
|
|
@@ -63,6 +66,7 @@
|
|
|
tab.setAttribute('aria-selected', String(key === panel));
|
|
|
});
|
|
|
document.getElementById('gy-progress-hint').textContent = panel === 'preview' ? '阶段批复日期' : '最近更新 · 20条';
|
|
|
+ document.getElementById('gy-preview-expand').hidden = panel !== 'preview';
|
|
|
}
|
|
|
function resizeCharts() {
|
|
|
if (root.querySelector('.gy-grid').hidden) return;
|
|
|
@@ -87,6 +91,7 @@
|
|
|
const button = document.getElementById('gy-fullscreen');
|
|
|
button.textContent = active ? '⛶ 退出全屏' : '⛶ 全屏显示';
|
|
|
button.setAttribute('aria-pressed', String(active));
|
|
|
+ syncPreviewDialogContainer();
|
|
|
requestAnimationFrame(resizeCharts);
|
|
|
}
|
|
|
|
|
|
@@ -176,4 +181,19 @@
|
|
|
return `<button type="button" class="gy-project-row${active ? ' active' : ''}" style="--gy-depth:${depth}" ${projectAttribute}="${escapeText(node.id)}" aria-pressed="${active}"><span class="gy-project-marker" aria-hidden="true">${index === nodes.length - 1 ? '└' : '├'}</span><span>${escapeText(node.name)}</span></button>`;
|
|
|
}).join('');
|
|
|
}
|
|
|
+ function showPreview() {
|
|
|
+ document.getElementById('gy-preview-dialog-content').innerHTML = renderPreview(data);
|
|
|
+ syncPreviewDialogContainer();
|
|
|
+ $(previewDialog).modal('show');
|
|
|
+ syncPreviewDialogContainer();
|
|
|
+ }
|
|
|
+ function syncPreviewDialogContainer() {
|
|
|
+ const fullscreen = document.fullscreenElement || document.webkitFullscreenElement;
|
|
|
+ const container = fullscreen === root ? root : document.body;
|
|
|
+ if (previewDialog.parentElement !== container) container.appendChild(previewDialog);
|
|
|
+ const modal = $(previewDialog).data('bs.modal');
|
|
|
+ if (modal && modal._backdrop && modal._backdrop.parentElement !== container) {
|
|
|
+ container.appendChild(modal._backdrop);
|
|
|
+ }
|
|
|
+ }
|
|
|
})();
|