首页/ mobileweb/ 小草兼职通/ 代码预览

💻 代码预览 · 小草兼职通

mw_hr · 上传者 小草网络
← 返回详情
小草兼职通_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