首页/ mobileweb/ 小草企业官网/ 代码预览

💻 代码预览 · 小草企业官网

mw_corp · 上传者 小草网络
← 返回详情
app.js · 约 5431 字符
1// 小草企业官网 · 交互逻辑
2function $(id){return document.getElementById(id)}
3
4// 首页
5let slideIdx = 0;
6function renderBanner(){
7  const el = $('banner'); if(!el) return;
8  el.innerHTML = SLIDES.map((s,i)=>`
9    <div class="slide ${i===0?'active':''}">
10      <h2>${s.title}</h2><p>${s.desc}</p>
11    </div>`).join('') + '<div class="dots">' + SLIDES.map((s,i)=>`<i class="${i===0?'active':''}"></i>`).join('') + '</div>';
12  setInterval(()=>{
13    slideIdx = (slideIdx+1) % SLIDES.length;
14    el.querySelectorAll('.slide').forEach((s,i)=>s.classList.toggle('active', i===slideIdx));
15    el.querySelectorAll('.dots i').forEach((s,i)=>s.classList.toggle('active', i===slideIdx));
16  }, 3500);
17}
18function renderIndex(){
19  renderBanner();
20  const sb = $('stat-bar');
21  if(sb) sb.innerHTML = STATS.map(s=>`<div class="st"><b>${s.num}</b><span>${s.label}</span></div>`).join('');
22  const bg = $('biz-grid');
23  if(bg) bg.innerHTML = BIZS.map(b=>`<a class="biz-card" href="products.html"><span class="bi">${b.icon}</span><b>${b.name}</b><span>${b.desc}</span></a>`).join('');
24  const cl = $('case-list');
25  if(cl) cl.innerHTML = CASES.slice(0,3).map(c=>`
26    <a class="case-item" href="cases.html">
27      <div class="ci-thumb">${c.icon}</div>
28      <div class="ci-info">
29        <div class="ci-title">${c.title}</div>
30        <div class="ci-desc">${c.desc}</div>
31        <div class="ci-tags">${c.tags.map(t=>`<span class="tag">${t}</span>`).join('')}</div>
32      </div>
33    </a>`).join('');
34  const nl = $('news-list');
35  if(nl) nl.innerHTML = NEWS.slice(0,3).map(n=>`
36    <a class="news-item" href="news.html">
37      <div class="ni-date"><b>${n.d}</b><span>${n.m}</span></div>
38      <div class="ni-info"><div class="ni-title">${n.title}</div><div class="ni-desc">${n.desc}</div></div>
39    </a>`).join('');
40}
41
42// 关于我们
43function renderAbout(){
44  $('ab-name').textContent = SITE.name;
45  $('ab-slogan').textContent = SITE.slogan;
46  const tl = $('timeline');
47  tl.innerHTML = MILESTONES.map(m=>`<div class="tl-item"><div class="tl-year">${m.year}</div><div class="tl-text">${m.text}</div></div>`).join('');
48  const qg = $('qual-grid');
49  qg.innerHTML = QUALS.map(q=>`<div class="qual-item"><span class="qi">${q.icon}</span><b>${q.name}</b><span>${q.desc}</span></div>`).join('');
50  const tg = $('team-grid');
51  tg.innerHTML = TEAM.map(t=>`<div class="team-item"><div class="av">${t.av}</div><b>${t.name}</b><span>${t.role}</span><span>${t.desc}</span></div>`).join('');
52  $('partners').innerHTML = PARTNERS.map(p=>`<span class="tag" style="font-size:13px;padding:6px 12px;margin:4px">${p}</span>`).join('');
53}
54
55// 服务页
56let svcCat = '全部';
57function renderServices(){
58  const cb = $('cat-bar');
59  cb.innerHTML = SVC_CATS.map(c=>`<a class="${c===svcCat?'active':''}" onclick="setSvcCat('${c}')">${c}</a>`).join('');
60  const list = $('svc-list');
61  const svcs = svcCat==='全部' ? SERVICES : SERVICES.filter(s=>s.cat===svcCat);
62  list.innerHTML = svcs.map(s=>`
63    <a class="svc-item" href="contact.html">
64      <div class="si-icon">${s.icon}</div>
65      <div class="si-info">
66        <div class="si-name">${s.name} ${s.tags.map(t=>`<span class="badge ${t==='热销'?'badge-gold':'badge-green'}">${t}</span>`).join('')}</div>
67        <div class="si-desc">${s.desc}</div>
68        <div class="si-price">${s.price}</div>
69      </div>
70    </a>`).join('');
71}
72function setSvcCat(c){ svcCat=c; renderServices(); }
73
74// 案例页
75let caseCat = '全部';
76function renderCases(){
77  const cb = $('cat-bar');
78  if(!cb) return;
79  const cats = ['全部', ...new Set(CASES.map(c=>c.industry))];
80  cb.innerHTML = cats.map(c=>`<a class="${c===caseCat?'active':''}" onclick="setCaseCat('${c}')">${c}</a>`).join('');
81  const list = $('case-list');
82  const cases = caseCat==='全部' ? CASES : CASES.filter(c=>c.industry===caseCat);
83  list.innerHTML = cases.map(c=>`
84    <div class="case-item">
85      <div class="ci-thumb">${c.icon}</div>
86      <div class="ci-info">
87        <div class="ci-title">${c.title}</div>
88        <div class="ci-desc">${c.desc}</div>
89        <div class="ci-tags">${c.tags.map(t=>`<span class="tag">${t}</span>`).join('')}</div>
90      </div>
91    </div>`).join('');
92}
93function setCaseCat(c){ caseCat=c; renderCases(); }
94
95// 新闻页
96function renderNews(){
97  const nl = $('news-list');
98  nl.innerHTML = NEWS.map(n=>`
99    <a class="news-item" href="javascript:void(0)">
100      <div class="ni-date"><b>${n.d}</b><span>${n.m}</span></div>
101      <div class="ni-info"><div class="ni-title">${n.title}</div><div class="ni-desc">${n.desc}</div></div>
102    </a>`).join('');
103}
104
105// 联系页
106function renderContact(){
107  $('c-phone').textContent = SITE.phone;
108  $('c-email').textContent = SITE.email;
109  $('c-wechat').textContent = SITE.wechat;
110  $('c-addr').textContent = SITE.addr;
111  $('c-hours').textContent = SITE.hours;
112}
113function submitForm(){
114  const name = $('f-name').value.trim();
115  const phone = $('f-phone').value.trim();
116  const msg = $('f-msg').value.trim();
117  if(!name || !phone){ alert('请填写称呼和联系电话'); return; }
118  if(!/^1\d{10}$/.test(phone)){ alert('请输入正确的手机号'); return; }
119  alert('✅ 提交成功!\n我们将在30分钟内与您联系\n咨询内容:' + (msg || '(未填写)'));
120  $('f-name').value=''; $('f-phone').value=''; $('f-msg').value='';
121}
122