import { defineComponent, computed, reactive, ref, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderStyle, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass, ssrRenderDynamicModel } from 'vue/server-renderer'; import { u as useApi } from './useApi-DMQewX5_.mjs'; import { u as useToast } from './useToast-CS21XT61.mjs'; import { _ as _export_sfc, a as useRoute$1, b as useRouter } from './server.mjs'; import './auth-QFkCoU1C.mjs'; import 'pinia'; import './useLoading-D4zrSa2m.mjs'; import '../nitro/nitro.mjs'; import 'node:http'; import 'node:https'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'perfect-debounce'; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "appconfig", __ssrInlineRender: true, setup(__props) { useApi(); useToast(); const route = useRoute$1(); useRouter(); const appId = computed(() => Number(route.query.id) || 0); const appName = computed(() => route.query.name || "未指定应用"); const appInitial = computed(() => (dep.app_name || appName.value || "A").charAt(0).toUpperCase()); const dep = reactive({ id: 0, app_name: "", status: "", name: "", region: "", env_id: 0, base_url: "", service_dsn: "" }); const envs = ref([]); const envId = ref(0); const envSaving = ref(false); const catalog = ref([]); const curModule = ref(""); const values = reactive({}); const dataModules = reactive(/* @__PURE__ */ new Set()); const show = reactive({}); const loading = ref(false); const saving = ref(false); const dbError = ref(""); const curDef = computed(() => catalog.value.find((m) => m.module === curModule.value) || null); const cur = computed(() => values[curModule.value] || {}); const groups = computed(() => { const order = []; const map = /* @__PURE__ */ new Map(); for (const m of catalog.value) { if (!map.has(m.group)) { map.set(m.group, []); order.push(m.group); } map.get(m.group).push(m); } return order.map((name) => ({ name, modules: map.get(name) })); }); function dbName(dsn) { const m = (dsn || "").match(/\/([^/?]+)\?/); return m ? m[1] : dsn ? "(自定义)" : "—"; } return (_ctx, _push, _parent, _attrs) => { _push(`
登录 / 短信 / 邮件 / 支付等应用独立配置,保存在该部署的业务库(不进公共库)。密钥字段加密落库,显示时脱敏。