单击打开聊天记录消息
This commit is contained in:
@@ -102,7 +102,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 弹窗 -->
|
||||
<div id="create-modal" class="modal-overlay hidden">
|
||||
<div id="create-modal" class="modal-overlay hidden" onclick="if(event.target===this)closeCreateModal()">
|
||||
<div class="modal">
|
||||
<button class="modal-close-btn" onclick="closeCreateModal()">
|
||||
<svg viewBox="0 0 24 24"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
|
||||
@@ -114,7 +114,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="manage-modal" class="modal-overlay hidden">
|
||||
<div id="manage-modal" class="modal-overlay hidden" onclick="if(event.target===this)closeManageModal()">
|
||||
<div class="modal">
|
||||
<button class="modal-close-btn" onclick="closeManageModal()">
|
||||
<svg viewBox="0 0 24 24"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
|
||||
@@ -128,7 +128,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 采购汇总弹窗 -->
|
||||
<div id="summary-modal" class="modal-overlay hidden">
|
||||
<div id="summary-modal" class="modal-overlay hidden" onclick="if(event.target===this)closeSummaryModal()">
|
||||
<div class="modal">
|
||||
<button class="modal-close-btn" onclick="closeSummaryModal()">
|
||||
<svg viewBox="0 0 24 24"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
|
||||
@@ -139,7 +139,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 采购详情编辑弹窗 -->
|
||||
<div id="detail-modal" class="modal-overlay hidden">
|
||||
<div id="detail-modal" class="modal-overlay hidden" onclick="if(event.target===this)closeDetailModal()">
|
||||
<div class="modal detail-modal">
|
||||
<div class="detail-header">
|
||||
<input type="text" id="edit-item" class="detail-title-input" placeholder="物品名称">
|
||||
|
||||
@@ -88,23 +88,23 @@ function replaceMessage(msgId, newMsg) {
|
||||
|
||||
function scrollToBottom() { messagesContainer.scrollTop = messagesContainer.scrollHeight; }
|
||||
|
||||
// 图片/气泡双击
|
||||
// 图片/气泡单击
|
||||
function bindMessageEvents() {
|
||||
document.querySelectorAll('.msg-img').forEach(img => {
|
||||
img.removeEventListener('dblclick', onImageDblClick);
|
||||
img.addEventListener('dblclick', onImageDblClick);
|
||||
img.removeEventListener('click', onImageClick);
|
||||
img.addEventListener('click', onImageClick);
|
||||
});
|
||||
document.querySelectorAll('.msg-bubble').forEach(bubble => {
|
||||
bubble.removeEventListener('dblclick', onBubbleDblClick);
|
||||
bubble.addEventListener('dblclick', onBubbleDblClick);
|
||||
bubble.removeEventListener('click', onBubbleClick);
|
||||
bubble.addEventListener('click', onBubbleClick);
|
||||
});
|
||||
}
|
||||
|
||||
function onImageDblClick(e) {
|
||||
function onImageClick(e) {
|
||||
e.stopPropagation();
|
||||
const overlay = document.createElement('div');
|
||||
overlay.className = 'fullscreen-overlay';
|
||||
overlay.innerHTML = `<img src="${e.target.src}" alt="">`;
|
||||
overlay.innerHTML = '<img src="' + e.target.src + '" alt="">';
|
||||
overlay.addEventListener('click', () => overlay.remove());
|
||||
document.body.appendChild(overlay);
|
||||
}
|
||||
@@ -112,12 +112,25 @@ function onImageDblClick(e) {
|
||||
function onImgThumbDblClick(img) {
|
||||
const overlay = document.createElement('div');
|
||||
overlay.className = 'fullscreen-overlay';
|
||||
overlay.innerHTML = `<img src="${img.src}" style="max-width:100%;max-height:100%;object-fit:contain" alt="">`;
|
||||
overlay.innerHTML = '<img src="' + img.src + '" style="max-width:100%;max-height:100%;object-fit:contain" alt="" id="fs-img">';
|
||||
overlay.addEventListener('click', () => overlay.remove());
|
||||
document.body.appendChild(overlay);
|
||||
var fsImg = overlay.querySelector('#fs-img');
|
||||
var pressTimer;
|
||||
fsImg.addEventListener('touchstart', function() {
|
||||
pressTimer = setTimeout(function() {
|
||||
var a = document.createElement('a');
|
||||
a.href = fsImg.src;
|
||||
a.download = fsImg.src.split('/').pop().split('?')[0] || 'image.jpg';
|
||||
a.click();
|
||||
clearTimeout(pressTimer);
|
||||
}, 800);
|
||||
});
|
||||
fsImg.addEventListener('touchend', function() { clearTimeout(pressTimer); });
|
||||
fsImg.addEventListener('touchmove', function() { clearTimeout(pressTimer); });
|
||||
}
|
||||
|
||||
function onBubbleDblClick(e) {
|
||||
function onBubbleClick(e) {
|
||||
e.stopPropagation();
|
||||
const bubble = e.currentTarget;
|
||||
const clone = bubble.cloneNode(true);
|
||||
|
||||
Reference in New Issue
Block a user