PageSourceSearch

http://ishijie.com.cn/achievements.html

html ishijie.com.cn collected 2026-10-02 18:10:23 UTC 9,188 bytes, 239 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4  <meta charset="UTF-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6  <title>业绩案例 - 云南骏航工程咨询有限责任公司</title>
7  <meta name="description" content="云南骏航工程咨询 - 1672+成功项目案例展示">
8  <meta name="keywords" content="业绩案例,招标代理项目,政府采购项目,成功案例,项目展示">
9  <link rel="stylesheet" href="css/style.css?v=5">
10  <!-- Favicon -->
11  <link rel="shortcut icon" href="favicon/favicon.ico">
12  <link rel="icon" type="image/svg+xml" href="favicon/favicon.svg">
13  <link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
14  <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
15  <link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-touch-icon.png">
16  <link rel="manifest" href="favicon/site.webmanifest">
17  <meta name="theme-color" content="#1a3a5c">
18  <meta name="msapplication-TileColor" content="#1a3a5c">
19</head>
20<body>
21
22<div id="site-header"></div>
23
24<section class="hero page-hero" style="background-color:#1a3a5c;background-image:url('https://d2xsxph8kpxj0f.cloudfront.net/310519663154348081/UJnLepBRYQLVkZKc5Z6Jsg/achievement-hero-hVMUFdcmHkW2qexrDDpLay.webp');">
25  <div class="container">
26    <div class="hero-tag">ACHIEVEMENTS &mdash; 业绩案例</div>
27    <h2>业绩案例</h2>
28    <p>累计完成各类招标代理项目1672余项,服务客户涵盖多个行业领域</p>
29  </div>
30</section>
31
32<!-- 统计 -->
33<section class="stats-bar">
34  <div class="container">
35    <div class="stats-grid">
36      <div class="stat-item">
37        <div class="stat-icon">&#128196;</div>
38        <div>
39          <div class="stat-number">1,672+</div>
40          <div class="stat-label">项目总数</div>
41        </div>
42      </div>
43      <div class="stat-item">
44        <div class="stat-icon">&#127973;</div>
45        <div>
46          <div class="stat-number">210+</div>
47          <div class="stat-label">服务客户</div>
48        </div>
49      </div>
50      <div class="stat-item">
51        <div class="stat-icon">&#127963;</div>
52        <div>
53          <div class="stat-number">6+</div>
54          <div class="stat-label">行业领域</div>
55        </div>
56      </div>
57      <div class="stat-item">
58        <div class="stat-icon">&#9989;</div>
59        <div>
60          <div class="stat-number">100%</div>
61          <div class="stat-label">客户满意度</div>
62        </div>
63      </div>
64    </div>
65  </div>
66</section>
67
68<!-- 业绩列表 -->
69<section class="section">
70  <div class="container">
71    <div class="section-header fade-in">
72      <div class="section-tag">PROJECT LIST &mdash; 项目列表</div>
73      <h2>代表性项目</h2>
74      <p>以下为部分代表性项目,涵盖医疗卫生、政法系统、教育科研、行政机关等领域</p>
75    </div>
76
77    <!-- 搜索和筛选 -->
78    <div class="fade-in" style="margin-bottom:2rem;">
79      <div class="laws-search" style="margin-bottom:1rem;">
80        <span class="search-icon">&#128269;</span>
81        <input type="text" id="projectSearch" placeholder="搜索项目名称或委托单位...">
82        <button class="clear-btn" id="projectClearBtn" onclick="clearProjectSearch()">&times;</button>
83      </div>
84      <div class="achievements-filter" id="categoryFilter">
85        <button class="filter-btn active" data-category="all">全部</button>
86        <button class="filter-btn" data-category="医疗卫生">医疗卫生</button>
87        <button class="filter-btn" data-category="政法系统">政法系统</button>
88        <button class="filter-btn" data-category="教育科研">教育科研</button>
89        <button class="filter-btn" data-category="行政机关">行政机关</button>
90        <button class="filter-btn" data-category="其他">其他</button>
91      </div>
92      <div id="resultCount" class="search-result-count"></div>
93    </div>
94
95    <!-- 表格 -->
96    <div class="fade-in">
97      <table class="achievements-table">
98        <thead>
99          <tr>
100            <th style="width:50px;">序号</th>
101            <th>项目名称</th>
102            <th style="width:200px;">委托单位</th>
103            <th style="width:120px;">采购方式</th>
104          </tr>
105        </thead>
106        <tbody id="projectTableBody">
107        </tbody>
108      </table>
109      <div class="pagination" id="pagination"></div>
110    </div>
111  </div>
112</section>
113
114<div id="site-footer"></div>
115
116<div class="modal-overlay" id="modalOverlay">
117  <div class="modal">
118    <div class="modal-header">
119      <h3 id="modalTitle"></h3>
120      <button class="modal-close" onclick="closeModal()">&times;</button>
121    </div>
122    <div class="modal-body" id="modalBody"></div>
123  </div>
124</div>
125
126<script src="js/common.js"></script>
vendor: 2 bytes, line 126
126
127<script src="js/achievements-data.js"></script>
vendor: 2 bytes, line 127
127
128<script>
129  var currentPage = 1;
130  var pageSize = 20;
131  var currentCategory = 'all';
132  var searchKeyword = '';
133
134  document.addEventListener('DOMContentLoaded', function() {
135    initCommon('achievements');
136    renderTable();
137
138    // 搜索
139    var searchInput = document.getElementById('projectSearch');
140    var clearBtn = document.getElementById('projectClearBtn');
141    searchInput.addEventListener('input', function() {
142      searchKeyword = this.value.trim();
143      clearBtn.classList.toggle('show', searchKeyword.length > 0);
144      currentPage = 1;
145      renderTable();
146    });
147
148    // 分类筛选
149    document.getElementById('categoryFilter').addEventListener('click', function(e) {
150      if (e.target.classList.contains('filter-btn')) {
151        document.querySelectorAll('.filter-btn').forEach(function(btn) { btn.classList.remove('active'); });
152        e.target.classList.add('active');
153        currentCategory = e.target.getAttribute('data-category');
154        currentPage = 1;
155        renderTable();
156      }
157    });
158  });
159
160  function clearProjectSearch() {
161    document.getElementById('projectSearch').value = '';
162    document.getElementById('projectClearBtn').classList.remove('show');
163    searchKeyword = '';
164    currentPage = 1;
165    renderTable();
166  }
167
168  function getFilteredData() {
169    return achievementsData.filter(function(item) {
170      var matchCategory = currentCategory === 'all' || item.category === currentCategory;
171      var matchSearch = !searchKeyword ||
172        item.name.indexOf(searchKeyword) !== -1 ||
173        item.client.indexOf(searchKeyword) !== -1;
174      return matchCategory && matchSearch;
175    });
176  }
177
178  function renderTable() {
179    var filtered = getFilteredData();
180    var total = filtered.length;
181    var totalPages = Math.ceil(total / pageSize);
182    if (currentPage > totalPages) currentPage = totalPages || 1;
183
184    var start = (currentPage - 1) * pageSize;
185    var pageData = filtered.slice(start, start + pageSize);
186
187    var tbody = document.getElementById('projectTableBody');
188    tbody.innerHTML = '';
189
190    if (pageData.length === 0) {
191      tbody.innerHTML = '<tr><td colspan="4" style="text-align:center;padding:3rem;color:var(--color-text-muted);">暂无匹配的项目数据</td></tr>';
192    } else {
193      pageData.forEach(function(item, i) {
194        var tr = document.createElement('tr');
195        tr.innerHTML = '<td>' + (start + i + 1) + '</td><td>' + item.name + '</td><td>' + item.client + '</td><td>' + (item.method || '—') + '</td>';
196        tbody.appendChild(tr);
197      });
198    }
199
200    document.getElementById('resultCount').textContent = '共 ' + total + ' 个项目';
201    renderPagination(totalPages);
202  }
203
204  function renderPagination(totalPages) {
205    var container = document.getElementById('pagination');
206    container.innerHTML = '';
207    if (totalPages <= 1) return;
208
209    var prevBtn = document.createElement('button');
210    prevBtn.textContent = '上一页';
211    prevBtn.disabled = currentPage === 1;
212    prevBtn.onclick = function() { currentPage--; renderTable(); window.scrollTo({top:400,behavior:'smooth'}); };
213    container.appendChild(prevBtn);
214
215    var startPage = Math.max(1, currentPage - 2);
216    var endPage = Math.min(totalPages, startPage + 4);
217    if (endPage - startPage < 4) startPage = Math.max(1, endPage - 4);
218
219    for (var i = startPage; i <= endPage; i++) {
220      var btn = document.createElement('button');
221      btn.textContent = i;
222      btn.className = i === currentPage ? 'active' : '';
223      btn.onclick = (function(page) { return function() { currentPage = page; renderTable(); window.scrollTo({top:400,behavior:'smooth'}); }; })(i);
224      container.appendChild(btn);
225    }
226
227    var info = document.createElement('span');
228    info.textContent = currentPage + ' / ' + totalPages;
229    container.appendChild(info);
230
231    var nextBtn = document.createElement('button');
232    nextBtn.textContent = '下一页';
233    nextBtn.disabled = currentPage === totalPages;
234    nextBtn.onclick = function() { currentPage++; renderTable(); window.scrollTo({top:400,behavior:'smooth'}); };
235    container.appendChild(nextBtn);
236  }
237</script>
237
238</body>
239</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.