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 };
+ },
};
/* ================= 根组件 ================= */