Thay đổi nhân sự NTR: Sau khi bị chuyển đến chi nhánh, địa vị, danh tiếng, thậm chí cả vợ tôi đều bị một nhân viên xuất sắc với câu chuyện riêng cướp mất. Ayami Ikeda Madonna","lastmod":"2026-07-11","duration":"02:25:29","url":"/play/19163515.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTMvOTRjNWIzN2EyODU5YWRjYTk4MzQ5MTM0NDFlODFmYmMuanBn.cache","vod_id":19052443,"title":"[Tiếng Trung] SONE655 Tôi lén lút quan hệ với em gái ngực bự của bạn gái. Cô ấy quá nhạy cảm với căng thẳng, nên tôi để cô ấy đắm chìm trong dương vật của mình, khiến cô ấy nhạy cảm đến mức suýt lên đỉnh sớm.","lastmod":"2025-09-12","duration":"01:59:46","url":"/play/19052443.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDkvYmI1NDgyNzQ0MTJjOTQyYTllYjEzNTIxMmI4NDlkYTUuanBn.cache","vod_id":19046217,"title":"T38031 [Số lượng có hạn] Những người chị kế của người vợ tái hôn thật hoàn hảo!! Bao gồm quần của Hino Moka và Ayase Moka.","lastmod":"2025-08-08","duration":"02:24:24","url":"/play/19046217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjQvMDhjM2VjYWZiZDFhYTIyYzU4ZTdlNDEzMWU1MWJjNTAuanBn.cache","vod_id":19064221,"title":"Câu chuyện có thật đã được xuất bản: Chiếc gương thần đội mũ xanh, Cảnh nóng tuyệt nhất, Mio Kamishiro, Rei Misumi NSFS_310","lastmod":"2025-12-14","duration":"04:12:11","url":"/play/19064221.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvZmIwOTEwZWVjMGU0NGUwNWJmN2RhOTViZGZmMGY3MmIuanBn.cache","vod_id":19165428,"title":"Cực khoái trên tàu hỏa gương thần kỳ Ngay cả khi bạn từ chối, bạn cũng không thể kìm nén phản ứng của cơ thể nhạy cảm trước kỹ thuật kích thích tình dục! Bộ phận sinh dục ẩm ướt bị thâm nhập bởi dương vật không được bảo vệ! Áo hai dây đầy SOD","lastmod":"2026-07-11","duration":"03:44:19","url":"/play/19165428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk4NWZlZTA4NDA3ZjgzZDdlNjkwNzIwZjI3NDBlOTUuanBn.cache","vod_id":18934687,"title":"[Phụ đề tiếng Trung] EBOD-728 Cảnh xuất tinh cấm kỵ trên bộ ngực khủng, cỡ K, thân hình siêu nhạy cảm","lastmod":"2025-03-22","duration":"02:23:12","url":"/play/18934687.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDEyNWQ4YzhlNDdkNWQwZGI2ZWIzZWM4OGNlYjQyZmQuanBn.cache","vod_id":19018883,"title":"Marina, 24 tuổi, là một nữ nhân viên văn phòng vô cùng nhạy cảm.","lastmod":"2025-03-24","duration":"56:00","url":"/play/19018883.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmM5MDIwYjQ1NzExN2ZkZjNiNmY4YjhmZjNiZjNhMDcuanBn.cache","vod_id":19135397,"title":"Cô ấy nảy sinh ham muốn tình dục với kẻ quấy rối trong văn phòng… Cô nhân viên văn phòng nhạy cảm này là một cô gái lẳng lơ, sẵn sàng chịu đựng sự quấy rối tình dục suốt cả ngày. (Jinghe KTB-100)","lastmod":"2025-12-26","duration":"02:08:28","url":"/play/19135397.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWRiYWNjZjg3Y2I2ZjY0YzIyZWU1MzQ0NzViY2UzN2YuanBn.cache","vod_id":18973856,"title":"[Phụ đề tiếng Trung] HMN-339 Tiệm massage nâng ngực: Dầu kích thích tình dục massage ngực cô ấy... Độ nhạy cảm của cô ấy tăng lên dữ dội, lưng cô ấy cong lên và co giật trong lúc xuất tinh.","lastmod":"2025-12-14","duration":"01:59:24","url":"/play/18973856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmI3NzgyMDcxMTZhODRiMTVjZGM0NWVlNGMwNTU2MTEuanBn.cache","vod_id":18991454,"title":"Jin Xueer và em gái Meilina, nổi tiếng với phong cách cực kỳ quyến rũ trong các bộ phim chuyển giới Trung Quốc, đã tham gia vào một cuộc \"quan hệ tay ba\" với những người đàn ông dị tính.","lastmod":"2025-03-23","duration":"11:15","url":"/play/18991454.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGVjYzZjYTAxZWQ2YmRiNDAyYWZjNGFhMWQxZjI3NTUuanBn.cache","vod_id":19010184,"title":"SDDE602 Tôi là người phụ nữ duy nhất trong một gia đình toàn nam giới. Tôi bận rộn với việc nhà mỗi ngày và quan hệ tình dục với 10 anh chị em của mình mỗi sáng. Nitta Mirei.","lastmod":"2025-03-24","duration":"02:16:24","url":"/play/19010184.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODcwMTE0NTZlMGI2YzRlOGI5NjU5YWRlYjY5ZDFlYTguanBn.cache","vod_id":18974887,"title":"MIAA-763 Tên khốn xác nhận vụ trộm hai chị em nô lệ tình dục Otsu Alice Suzune Anka","lastmod":"2025-03-23","duration":"02:43:49","url":"/play/18974887.html"}]},
videoTitle: 'MDTM-582 Câu chuyện về xuất tinh sớm, phụ nữ nhạy cảm và khả năng thụ thai vào ngày rụng trứng (Aise Ruka ACT.004)',
language: 'vi',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}