diff --git a/static/js/pages/market.js b/static/js/pages/market.js index c5fd8d4..334b837 100644 --- a/static/js/pages/market.js +++ b/static/js/pages/market.js @@ -220,22 +220,58 @@ const PageMarket = { }, _upload() { - const input = document.createElement('input'); input.type = 'file'; input.accept = this._tab === 'scenes' ? '.tss' : '.tsd'; - const endpoint = this._tab === 'scenes' ? '/api/market/scenes/upload' : '/api/market/upload'; - input.onchange = async (e) => { - const file = e.target.files[0]; if (!file) return; - const fd = new FormData(); fd.append('file', file); - fd.append('name', file.name.replace('.tsd','')); - fd.append('category', 'community'); - fd.append('author', 'TurboSu User'); - fd.append('token', this._marketToken); - try { - const res = await fetch('/api/market/upload', { method: 'POST', body: fd }); + if (!this._marketToken) { Toast.show('请先登录', 'error'); return; } + const overlay = document.createElement('div'); overlay.className = 'modal-overlay'; + overlay.innerHTML = '
选择要发布的仪表盘或场景
没有可发布的内容
'; + list.querySelectorAll('.pub-dash-btn').forEach(btn => btn.addEventListener('click', async () => { + const r = await fetch('/api/market/publish-local', {method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({id:btn.dataset.id,type:'dashboard',token:this._marketToken})}); + const d = await r.json(); + Toast.show(d.error?'失败:'+d.error:'发布成功',d.error?'error':'success'); + if(!d.error){overlay.remove();this._loadItems();} + })); + list.querySelectorAll('.pub-scene-btn').forEach(btn => btn.addEventListener('click', async () => { + const r = await fetch('/api/market/publish-local', {method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({id:btn.dataset.id,type:'scene',token:this._marketToken})}); + const d = await r.json(); + Toast.show(d.error?'失败:'+d.error:'发布成功',d.error?'error':'success'); + if(!d.error){overlay.remove();this._loadItems();} + })); + } catch(e) { list.innerHTML = '加载失败
'; } }, _showLogin() {