(services)
| 1796 | } |
| 1797 | |
| 1798 | function renderNewApiServicesTable(services) { |
| 1799 | if (!services || services.length === 0) { |
| 1800 | elements.newApiServicesTable.innerHTML = '<tr><td colspan="5" style="text-align:center;color:var(--text-muted);padding:20px;">暂无 new-api 服务,点击「添加服务」新增</td></tr>'; |
| 1801 | return; |
| 1802 | } |
| 1803 | elements.newApiServicesTable.innerHTML = services.map(s => ` |
| 1804 | <tr> |
| 1805 | <td>${escapeHtml(s.name)}</td> |
| 1806 | <td style="font-size:0.85rem;color:var(--text-muted);">${escapeHtml(s.api_url)}<br><span style="font-size:0.75rem;color:var(--text-muted);">${escapeHtml(s.username || '')}</span></td> |
| 1807 | <td style="text-align:center;" title="${s.enabled ? '已启用' : '已禁用'}">${s.enabled ? '✅' : '⭕'}</td> |
| 1808 | <td style="text-align:center;">${s.priority}</td> |
| 1809 | <td style="white-space:nowrap;"> |
| 1810 | <button class="btn btn-secondary btn-sm" onclick="editNewApiService(${s.id})">编辑</button> |
| 1811 | <button class="btn btn-secondary btn-sm" onclick="testNewApiServiceById(${s.id})">测试</button> |
| 1812 | <button class="btn btn-danger btn-sm" onclick="deleteNewApiService(${s.id}, '${escapeHtml(s.name)}')">删除</button> |
| 1813 | </td> |
| 1814 | </tr> |
| 1815 | `).join(''); |
| 1816 | } |
| 1817 | |
| 1818 | function openNewApiServiceModal(service = null) { |
| 1819 | document.getElementById('new-api-service-id').value = service ? service.id : ''; |
no test coverage detected