diff --git a/server/internal/api/metadata.go b/server/internal/api/metadata.go index 2d55bef..484cab5 100644 --- a/server/internal/api/metadata.go +++ b/server/internal/api/metadata.go @@ -17,6 +17,7 @@ func MetadataHandler(meta, marketing, ymt *sql.DB) http.Handler { } else { tables = marketingMetadataTables() } + setAllHiddenFalse(tables) sort.Slice(tables, func(i, j int) bool { return tables[i].Table < tables[j].Table }) rec := recommendedDefaults(ds, ot) @@ -37,6 +38,15 @@ type fieldInfo struct { Hidden bool `json:"hidden"` } +// setAllHiddenFalse sets every field hidden flag to false for client-side control. +func setAllHiddenFalse(tables []tableInfo) { + for ti := range tables { + for fi := range tables[ti].Fields { + tables[ti].Fields[fi].Hidden = false + } + } +} + // marketingMetadataTables 静态列出 Marketing 库的所有表字段(hidden 默认 true) func marketingMetadataTables() []tableInfo { return []tableInfo{ @@ -152,11 +162,11 @@ func marketingMetadataTables() []tableInfo { {Key: "order.status", Field: "status", Label: "状态", Hidden: true}, {Key: "order.account", Field: "account", Label: "账号", Hidden: true}, {Key: "order.product_id", Field: "product_id", Label: "商品id", Hidden: true}, - {Key: "order.reseller_id", Field: "reseller_id", Label: "所属分销商ID(冗余)", Hidden: true}, + {Key: "order.reseller_id", Field: "reseller_id", Label: "所属分销商ID(冗余)", Hidden: false}, {Key: "order.plan_id", Field: "plan_id", Label: "所属营销计划ID(冗余)", Hidden: false}, {Key: "order.key_batch_id", Field: "key_batch_id", Label: "所属KEY批次ID(冗余)", Hidden: false}, {Key: "order.code_batch_id", Field: "code_batch_id", Label: "Code批次ID(冗余)", Hidden: false}, - {Key: "order.contract_price", Field: "contract_price", Label: "合同单价(冗余)", Hidden: true}, + {Key: "order.contract_price", Field: "contract_price", Label: "合同单价(冗余)", Hidden: false}, {Key: "order.total", Field: "total", Label: "总价", Hidden: true}, {Key: "order.num", Field: "num", Label: "购买数量", Hidden: true}, {Key: "order.pay_amount", Field: "pay_amount", Label: "支付金额", Hidden: true}, diff --git a/server/server b/server/server index 6e0a2d4..3c6bcf0 100755 Binary files a/server/server and b/server/server differ diff --git a/web/main.js b/web/main.js index 20c206e..5c34041 100644 --- a/web/main.js +++ b/web/main.js @@ -107,6 +107,7 @@ const app = createApp({ // ==================== 字段元数据管理 ==================== const metaFM = Vue.ref({}); + const metaTableLabels = Vue.ref({}); const recommendedMeta = Vue.ref([]); const loadFieldsMeta = async (ds, type) => { @@ -115,13 +116,18 @@ const app = createApp({ const data = await res.json(); const tables = Array.isArray(data?.data?.tables) ? data.data.tables : (Array.isArray(data?.tables) ? data.tables : []); const m = {}; + const tblLabels = {}; tables.forEach(t => { const arr = Array.isArray(t.fields) ? t.fields : []; - m[t.table] = arr.map(it => ({ value: it.field, label: it.label })); + const visibleFields = arr.filter(it => !it.hidden); + m[t.table] = visibleFields.map(it => ({ value: it.field, label: it.label })); + if (t.label) tblLabels[t.table] = t.label; }); metaFM.value = m; + metaTableLabels.value = tblLabels; } catch (_e) { metaFM.value = {}; + metaTableLabels.value = {}; } }; @@ -158,11 +164,13 @@ const app = createApp({ goods_voucher_batch: '立减金批次表', goods_voucher_subject_config: '立减金主体配置' }; + + const tableLabel = (table) => metaTableLabels.value[table] || TABLE_LABELS[table] || table; // ==================== 字段选项构建 ==================== const buildFieldNode = (table, children = []) => ({ value: table, - label: TABLE_LABELS[table] || table, + label: tableLabel(table), children });