首页/ mobileweb/ 小草智慧社区/ 代码预览

💻 代码预览 · 小草智慧社区

mw_social · 上传者 小草网络
← 返回详情
xiaocao-community/app.js · 约 5407 字符
1// 小草智慧社区 · 交互逻辑
2
3// 首页
4function renderIndex(){
5  document.getElementById('ch-name').textContent=SITE.name;
6  document.getElementById('ch-addr').textContent=SITE.addr;
7  document.getElementById('ch-buildings').textContent=SITE.buildings;
8  document.getElementById('ch-households').textContent=SITE.households;
9  document.getElementById('latest-notice').textContent=NOTICES[0].title;
10  const nl=document.getElementById('notice-list');
11  if(nl) nl.innerHTML=NOTICES.slice(0,3).map(n=>`
12    <div class="notice-item">
13      <div class="ni-top">
14        <span class="ni-title">${n.title}</span>
15        <span class="badge ${n.type==='urgent'?'badge-urgent':n.type==='activity'?'badge-activity':'badge-notice'}">${n.type==='urgent'?'紧急':n.type==='activity'?'活动':'通知'}</span>
16      </div>
17      <div class="ni-content">${n.content.substring(0,60)}...</div>
18      <div class="ni-time">${n.time}</div>
19    </div>`).join('');
20  renderRepairList();
21}
22function renderRepairList(){
23  const el=document.getElementById('repair-list');
24  if(!el) return;
25  el.innerHTML=REPAIRS.map(r=>`
26    <div class="repair-item">
27      <div class="ri-top">
28        <span class="ri-title">${r.title}</span>
29        <span class="ri-status ${r.status}">${r.status==='done'?'已完成':r.status==='processing'?'处理中':'待处理'}</span>
30      </div>
31      <div class="ri-desc">${r.desc}</div>
32      <div class="ri-time">${r.time} · ${r.type}</div>
33      <div class="repair-progress">
34        <div class="rp-step ${r.progress>=1?'done':''}"><div class="rp-dot">${r.progress>=1?'✓':'1'}</div>已提交</div>
35        <div class="rp-step ${r.progress>=2?'done':''}"><div class="rp-dot">${r.progress>=2?'✓':'2'}</div>处理中</div>
36        <div class="rp-step ${r.progress>=3?'done':''}"><div class="rp-dot">${r.progress>=3?'✓':'3'}</div>已完成</div>
37      </div>
38    </div>`).join('');
39}
40
41// 报修
42function renderRepairs(){ renderRepairList(); }
43function selectType(el){
44  document.querySelectorAll('.type-chips .chip').forEach(c=>c.classList.remove('active'));
45  el.classList.add('active');
46}
47function submitRepair(){
48  alert('✅ 报修提交成功!\n\n维修师傅将在24小时内联系您。\n您可以在「我的报修记录」中查看进度。');
49}
50
51// 缴费
52function renderBills(){
53  const el=document.getElementById('bill-list');
54  if(!el) return;
55  let unpaid=0,unpaidTotal=0;
56  el.innerHTML=BILLS.map(b=>{
57    if(!b.paid){unpaid++;unpaidTotal+=b.amount}
58    return `<div class="bill-item">
59      <div class="bi-icon" style="background:${b.color}">${b.icon}</div>
60      <div class="bi-info">
61        <div class="bi-name">${b.name}</div>
62        <div class="bi-period">${b.period}</div>
63      </div>
64      ${b.paid
65        ?'<div><div class="bi-amount" style="color:#ccc">¥'+b.amount+'</div><div class="bi-status">已缴费</div></div>'
66        :'<div><div class="bi-amount">¥'+b.amount+'</div><button class="bi-pay" onclick="payBill(\''+b.name+'\','+b.amount+')">缴费</button></div>'}
67    </div>`;
68  }).join('');
69  document.getElementById('unpaid-count').textContent=unpaid+'笔';
70  document.getElementById('unpaid-total').textContent='¥'+unpaidTotal;
71}
72function payBill(name,amount){
73  alert('💳 '+name+'缴费\n\n金额:¥'+amount+'\n支付方式:微信支付\n\n✅ 缴费成功!感谢您的配合。');
74}
75
76// 邻里圈
77function renderNeighbors(){
78  const el=document.getElementById('topic-list');
79  if(!el) return;
80  el.innerHTML=TOPICS.map((t,i)=>`
81    <div class="topic-item">
82      <div class="ti-head">
83        <div class="ti-avatar" style="background:var(--primary-light)">${t.avatar}</div>
84        <div><span class="ti-user">${t.user}</span><span class="ti-tag" style="background:${t.tagColor}">${t.tag}</span></div>
85        <div style="margin-left:auto" class="ti-time">${t.time}</div>
86      </div>
87      <div class="ti-title">${t.title}</div>
88      <div class="ti-content">${t.content}</div>
89      <div class="ti-actions">
90        <span class="${t.liked?'liked':''}" onclick="toggleTopicLike(${i})">${t.liked?'❤️':'🤍'} ${t.likes}</span>
91        <span>💬 ${t.comments}</span>
92        <span>📤 分享</span>
93      </div>
94    </div>`).join('');
95}
96function toggleTopicLike(i){ TOPICS[i].liked=!TOPICS[i].liked;TOPICS[i].likes+=TOPICS[i].liked?1:-1;renderNeighbors(); }
97function publishTopic(){ alert('✏️ 发布话题\n\n和邻居分享新鲜事、求助或建议吧!\n(此为演示页面)'); }
98
99// 便民服务
100function renderService(){
101  const sg=document.getElementById('service-grid');
102  if(sg) sg.innerHTML=SERVICES.map(s=>`
103    <div class="service-card" onclick="alert('预约${s.name}')">
104      <div class="sc-icon">${s.icon}</div>
105      <div class="sc-name">${s.name}</div>
106      <div class="sc-desc">${s.desc}</div>
107    </div>`).join('');
108  const ml=document.getElementById('merchant-list');
109  if(ml) ml.innerHTML=MERCHANTS.map(m=>`
110    <div class="merchant-item">
111      <div class="mi-icon" style="background:var(--primary-light)">${m.icon}</div>
112      <div class="mi-info"><div class="mi-name">${m.name}</div><div class="mi-type">${m.type}</div><div class="mi-dist">距小区 ${m.dist}</div></div>
113      <button class="mi-btn" onclick="alert('查看${m.name}详情')">查看</button>
114    </div>`).join('');
115}
116