小草兼职通_H5/app.js · 约 2439 字符
1// 小草兼职通 · 逻辑层
2const $=s=>document.querySelector(s), $$=s=>document.querySelectorAll(s);
3const store={
4 get applies(){return JSON.parse(localStorage.getItem('pt_applies')||'[]')},
5 set applies(v){localStorage.setItem('pt_applies',JSON.stringify(v))}
6};
7function toast(msg){const t=document.createElement('div');t.textContent=msg;t.style.cssText='position:fixed;top:20%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.78);color:#fff;padding:10px 20px;border-radius:20px;font-size:13px;z-index:999;transition:opacity .3s';document.body.appendChild(t);setTimeout(()=>{t.style.opacity='0';setTimeout(()=>t.remove(),300)},1200)}
8function applyJob(id){
9 const j=JOBS.find(x=>x.id==id);if(!j)return;
10 const a={emoji:j.emoji,name:j.name,company:j.company,salary:j.salary,unit:j.unit,time:'刚刚报名',status:'待确认',step:1};
11 store.applies=[a,...store.applies];
12 toast('报名成功!等待商家确认');
13 setTimeout(()=>location.href='apps.html',800);
14}
15function renderMine(){
16 $('#u-name').textContent=USER.name;$('#u-level').textContent=USER.level+' · 累计收入 ¥'+USER.orders*120+'';
17 $('#m-balance').textContent=USER.balance.toFixed(1);
18 $('#m-points').textContent=USER.points;$('#m-invite').textContent=USER.invite;
19 $('#m-orders').textContent=USER.orders;
20 $('#verify-list').innerHTML=USER.verify.map(v=>'<span class="tag" style="background:#f0fdf4;color:var(--green)">✅ '+v+'</span>').join('');
21}
22function renderApps(){
23 const wrap=$('#apply-list');
24 const list=[...store.applies,...APPLIES];
25 if(!list.length){wrap.innerHTML='<div class="empty"><span class="e-icon">📋</span>还没有报名记录<br>去挑个心仪的兼职吧~</div>';return}
26 wrap.innerHTML=list.map(a=>`
27 <div class="apply-item">
28 <div class="ai-head"><span>${a.time}</span><span class="ai-status">● ${a.status}</span></div>
29 <div class="ai-body"><span style="font-size:26px">${a.emoji}</span>
30 <div><div class="ai-name">${a.name}</div><div class="ai-meta">${a.company}</div></div>
31 <div class="ai-salary">¥${a.salary}/${a.unit}</div>
32 </div>
33 <div class="ai-steps">
34 ${[['已报名','✓'],['待确认','✓'],['已录取','✓'],['已结算','💰']].map((s,i)=>'<div class="as '+(i<a.step?'done':i===a.step?'now':'')+'"><span class="dot">'+s[1]+'</span>'+s[0]+'</div>').join('')}
35 </div>
36 </div>`).join('');
37}
38