(serviceType)
| 725 | |
| 726 | // 加载服务配置字段 |
| 727 | async function loadServiceConfigFields(serviceType) { |
| 728 | try { |
| 729 | const data = await api.get('/email-services/types'); |
| 730 | const typeInfo = data.types.find(t => t.value === serviceType); |
| 731 | |
| 732 | if (!typeInfo) { |
| 733 | elements.serviceConfigFields.innerHTML = ''; |
| 734 | return; |
| 735 | } |
| 736 | |
| 737 | elements.serviceConfigFields.innerHTML = typeInfo.config_fields.map(field => ` |
| 738 | <div class="form-group"> |
| 739 | <label for="config-${field.name}">${field.label}</label> |
| 740 | <input type="${field.name.includes('password') || field.name.includes('token') ? 'password' : 'text'}" |
| 741 | id="config-${field.name}" |
| 742 | name="${field.name}" |
| 743 | value="${field.default || ''}" |
| 744 | placeholder="${field.label}" |
| 745 | ${field.required ? 'required' : ''}> |
| 746 | </div> |
| 747 | `).join(''); |
| 748 | |
| 749 | } catch (error) { |
| 750 | console.error('加载配置字段失败:', error); |
| 751 | } |
| 752 | } |
| 753 | |
| 754 | // 添加邮箱服务 |
| 755 | async function handleAddService(e) { |
no test coverage detected