TRƯỚC shim
function skip(k){ var s=window.EP_SYNC_SKIP; return s && s.indexOf(k)>=0; }
function snap(){ var o={}; for(var i=0;i tự đẩy lên để máy khác thấy ngay
if(lastServer===null || lastServer==='null'){ for(var sk in snap()){ push(); break; } }
// 3) REALTIME: poll 7s + khi quay lại tab; nếu MÁY KHÁC đổi dữ liệu -> cập nhật (rảnh thì tự tải lại, đang nhập thì hiện nút)
function busy(){ var a=document.activeElement; return a && /^(INPUT|TEXTAREA|SELECT)$/.test(a.tagName); }
function check(){
if(dirty||pushing) return;
fetch(API,{cache:'no-store'}).then(function(r){return r.text();}).then(function(t){
if(!t||t==='null'||t===lastServer) return;
var so; try{ so=JSON.parse(t); }catch(e){ return; }
if(!so||typeof so!=='object') return;
var lo=snap();
if(JSON.stringify(so)===JSON.stringify(lo)){ lastServer=t; return; }
lastServer=t;
for(var lk in lo){ if(!(lk in so)) _rm(lk); } // xoá key đã bị xoá ở máy khác (lo đã loại key skip)
for(var k in so){ if(skip(k))continue; _set(k,so[k]); } // cập nhật/ thêm
if(busy()){ badge('new'); } else { location.reload(); }
}).catch(function(){});
}
setInterval(check,7000);
document.addEventListener('visibilitychange',function(){ if(!document.hidden) check(); });
// 4) Nút trạng thái nổi
function badge(st){ var b=document.getElementById('epSyncBadge'); if(!b) return; b._st=st;
var m={ok:['✅ Đã đồng bộ','#16a34a'],saving:['☁️ Đang lưu…','#E8A100'],err:['⚠️ Lỗi mạng','#EC0029'],'new':['🔄 Có dữ liệu mới — chạm cập nhật','#1e6fd6']};
var s=m[st]||m.ok; b.textContent=s[0]; b.style.background=s[1];
}
window.addEventListener('DOMContentLoaded',function(){
var b=document.createElement('button'); b.id='epSyncBadge'; b.type='button';
b.onclick=function(){ if(b._st==='new') location.reload(); };
b.style.cssText='position:fixed;right:12px;bottom:12px;z-index:99999;border:none;border-radius:20px;color:#fff;'+
'font:600 11.5px/1 system-ui,Segoe UI,sans-serif;padding:9px 13px;box-shadow:0 4px 14px rgba(0,0,0,.28);cursor:pointer;background:#16a34a;max-width:74vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis';
document.body.appendChild(b); badge('ok');
});
})();
Học viện Vận hành TikTok · Eye Plus
Lộ trình TTS cơ bản → nâng cao · 8 buổi: Chọn SP · SEO · Công cụ · Vận hành · Nhân sự · Video · Livestream · Booking KOC
👤 TTS đang xem:
Lộ trình của bạn
Hoàn thành tuần tự B1→B5. Mỗi buổi mở khóa khi buổi trước đạt ≥60% & qua bài kiểm tra.
Tiến độ tổng0%
👥 Thực tập sinh & bảng theo dõi
💡 Tên TTS thêm ở đây sẽ tự xuất hiện trong ô "Tôi là" của Biểu mẫu báo cáo ngày (định dạng "Tên - Vị trí"). Nếu thêm trước khi có nút này, bấm "Đồng bộ tên" để đẩy toàn bộ.
🤖 AI Mentor — hỏi đáp bám chương trình
Hỏi bất kỳ điều gì về vận hành TikTok Shop. AI trả lời dựa trên khung chương trình "Top Ecom Master T6.2024" + ngữ cảnh Eye Plus (kính mắt). Cần dán API key Claude (lưu tại máy bạn, 1 lần).