|
1 | 1 | /** |
2 | 2 | * 供应商设置管理模块 |
3 | | - * |
| 3 | + * |
4 | 4 | * 负责供应商的增删改查、模型列表拉取等功能 |
5 | 5 | */ |
6 | 6 | ;(function () { |
|
91 | 91 | toggleProviderModel(modelId, enabled, llmName, isSynced); |
92 | 92 | }); |
93 | 93 |
|
| 94 | + // 批量选择菜单 |
| 95 | + $('#providerModelsSelectToggle').on('click', function (e) { |
| 96 | + e.stopPropagation(); |
| 97 | + $('#providerModelsActionMenu').toggleClass('show'); |
| 98 | + }); |
| 99 | + |
| 100 | + $(document).on('click', function (e) { |
| 101 | + if ($(e.target).closest('.provider-model-menu-wrap').length === 0) { |
| 102 | + $('#providerModelsActionMenu').removeClass('show'); |
| 103 | + } |
| 104 | + }); |
| 105 | + |
| 106 | + $('#providerModelsSelectAll, #providerModelsSelectNone, #providerModelsInvert').on('click', function () { |
| 107 | + var action = this.id; |
| 108 | + var changed = false; |
| 109 | + |
| 110 | + $modelsList.find('.provider-model-toggle').each(function () { |
| 111 | + var $toggle = $(this); |
| 112 | + var nextChecked = $toggle.prop('checked'); |
| 113 | + |
| 114 | + if (action === 'providerModelsSelectAll') { |
| 115 | + nextChecked = true; |
| 116 | + } else if (action === 'providerModelsSelectNone') { |
| 117 | + nextChecked = false; |
| 118 | + } else if (action === 'providerModelsInvert') { |
| 119 | + nextChecked = !$toggle.prop('checked'); |
| 120 | + } |
| 121 | + |
| 122 | + if ($toggle.prop('checked') !== nextChecked) { |
| 123 | + changed = true; |
| 124 | + $toggle.prop('checked', nextChecked).trigger('change'); |
| 125 | + } |
| 126 | + }); |
| 127 | + |
| 128 | + $('#providerModelsActionMenu').removeClass('show'); |
| 129 | + }); |
| 130 | + |
94 | 131 | // 作用域切换 |
95 | 132 | $('.settings-scope-toggle').on('click', '.settings-scope-btn', function () { |
96 | 133 | var $toggle = $(this).closest('.settings-scope-toggle'); |
|
133 | 170 |
|
134 | 171 | function renderProviderItem(provider) { |
135 | 172 | var modelsCount = (provider.models || []).length; |
136 | | - |
| 173 | + |
137 | 174 | return '<div class="mcp-server-item" data-name="' + provider.name + '">' + |
138 | 175 | '<div class="mcp-server-icon">P</div>' + |
139 | 176 | '<div class="mcp-server-info">' + |
|
169 | 206 | $('#providerApiUrl').val(provider ? provider.apiUrl : ''); |
170 | 207 | $('#providerApiKey').val(provider ? provider.apiKey : ''); |
171 | 208 | $('#providerScope').val(provider ? (provider.scope || 'global') : 'global'); |
172 | | - |
| 209 | + |
173 | 210 | // 设置作用域按钮状态 |
174 | 211 | var scope = provider ? (provider.scope || 'global') : 'global'; |
175 | 212 | $('.settings-scope-toggle[data-target="providerScope"] .settings-scope-btn').removeClass('active'); |
|
0 commit comments