diff --git a/static/js/app.js b/static/js/app.js index 16e3d07..786749e 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -661,10 +661,14 @@ const ProviderModal = { - + - +
+
API 凭证(加密存储)
+ +
+
该 SDK 类型暂无预设凭证字段(可后续扩展)
@@ -674,7 +678,30 @@ const ProviderModal = {
`, - setup() { return { store, Fmt, f: computed(() => store.providerModal.form), save: saveProvider }; }, + setup() { + const f = computed(() => store.providerModal.form); + const adapterMeta = ref([]); + const apiFields = reactive({}); + onMounted(async () => { + try { const r = await Api.get('/providers/adapters'); adapterMeta.value = r.adapters || []; } catch (e) { /* ignore */ } + }); + const sdkOptions = computed(() => { + const opts = []; + for (const m of adapterMeta.value) for (const t of (m.sdk_types || [])) opts.push({ type: t, fields: m.required_config || [] }); + return opts; + }); + const currentFields = computed(() => { + const opt = sdkOptions.value.find(o => o.type === (f.value && f.value.sdk_type)); + return opt ? opt.fields : []; + }); + function save() { + const cfg = {}; + for (const field of currentFields.value) if (apiFields[field]) cfg[field] = apiFields[field]; + if (Object.keys(cfg).length) f.value.api_config = JSON.stringify(cfg); + saveProvider(); + } + return { store, Fmt, f, sdkOptions, currentFields, apiFields, save }; + }, }; /* ================= 根组件 ================= */