diff --git a/.claude/worktrees/peaceful-stonebraker-c06408 b/.claude/worktrees/peaceful-stonebraker-c06408 index 9e149a1a..1ca5655d 160000 --- a/.claude/worktrees/peaceful-stonebraker-c06408 +++ b/.claude/worktrees/peaceful-stonebraker-c06408 @@ -1 +1 @@ -Subproject commit 9e149a1adf71362858d58c353c834528b0445bbb +Subproject commit 1ca5655dc531f979299d328a149583a0aae6963c diff --git a/.gitignore b/.gitignore index 280d3c56..acc8d17a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store .idea/ +.claude/ backend/.idea/ frontend/dist/ diff --git a/backend/src/main/resources/application-prod.yml b/backend/src/main/resources/application-prod.yml index 3880b0c9..399d921a 100644 --- a/backend/src/main/resources/application-prod.yml +++ b/backend/src/main/resources/application-prod.yml @@ -72,7 +72,7 @@ unisbase: access-token-safety-seconds: 120 oms: enabled: ${OMS_ENABLED:true} - base-url: ${OMS_BASE_URL:https://oms.unisspace.com} + base-url: ${OMS_BASE_URL:http://192.168.124.202:28081} api-key: ${OMS_API_KEY:c7f858d0-30b8-4b7f-9ea1-0ccf5ceb1c54} api-key-header: ${OMS_API_KEY_HEADER:apiKey} user-info-path: ${OMS_USER_INFO_PATH:/api/v1/user/info} diff --git a/frontend/src/pages/Expansion.tsx b/frontend/src/pages/Expansion.tsx index 495ee37d..f2ce1534 100644 --- a/frontend/src/pages/Expansion.tsx +++ b/frontend/src/pages/Expansion.tsx @@ -513,6 +513,7 @@ const channelExportColumns: Array normalizeExportText(item.province) }, { key: "officeAddress", label: "办公地址", kind: "longText", value: (item) => normalizeExportText(item.officeAddress) }, { key: "channelIndustry", label: "聚焦行业", value: (item) => normalizeExportText(item.channelIndustry) }, + { key: "certificationLevel", label: "汇智内部认证级别", value: (item) => normalizeExportText(item.certificationLevel) }, { key: "channelAttribute", label: "渠道属性", value: (item) => normalizeExportText(item.channelAttribute) }, { key: "internalAttribute", label: "新华三内部属性", value: (item) => normalizeExportText(item.internalAttribute) }, { key: "intent", label: "合作意向", value: (item) => normalizeExportText(item.intent) }, @@ -525,7 +526,6 @@ const channelExportColumns: Array formatExportFollowUps(item.followUps) }, { key: "channelCode", label: "编码", value: (item) => normalizeExportText(item.channelCode) }, { key: "city", label: "市", value: (item) => normalizeExportText(item.city) }, - { key: "certificationLevel", label: "汇智内部认证级别", value: (item) => normalizeExportText(item.certificationLevel) }, { key: "relatedProjectAmount", label: "跟进项目金额", value: (item) => normalizeExportText(formatRelatedProjectAmount(item.relatedProjects)) }, { key: "notes", label: "备注说明", kind: "longText", value: (item) => normalizeExportText(item.notes) }, { key: "owner", label: "创建人", value: (item) => normalizeExportText(item.owner) }, @@ -537,6 +537,7 @@ const defaultChannelExportFields: ChannelExportFieldKey[] = [ "province", "officeAddress", "channelIndustry", + "certificationLevel", "channelAttribute", "internalAttribute", "intent", diff --git a/frontend1/dist/index.html b/frontend1/dist/index.html index 5ced9fa3..126803e8 100644 --- a/frontend1/dist/index.html +++ b/frontend1/dist/index.html @@ -5,7 +5,7 @@ UnisBase - 智能会议系统 - + diff --git a/frontend1/src/features/dashboard-analytics/pages/dashboard-analytics-settings/index.tsx b/frontend1/src/features/dashboard-analytics/pages/dashboard-analytics-settings/index.tsx index 818f875b..ce6e478e 100644 --- a/frontend1/src/features/dashboard-analytics/pages/dashboard-analytics-settings/index.tsx +++ b/frontend1/src/features/dashboard-analytics/pages/dashboard-analytics-settings/index.tsx @@ -641,6 +641,20 @@ export default function DashboardAnalyticsSettingsPage() { message.success(t("dashboardAnalytics.saveSuccess")); }, [buildPayload, config.cards, isTenantUnselected, message, persistConfig, t]); + const savePanelConfig = useCallback(async () => { + if (isTenantUnselected) { + message.warning(t("dashboardAnalytics.tenantRequired")); + return; + } + + const success = await persistConfig(buildPayload(config.cards || [])); + if (!success) { + return; + } + + message.success(t("dashboardAnalytics.saveSuccess")); + }, [buildPayload, config.cards, isTenantUnselected, message, persistConfig, t]); + if (!canView) { return (
@@ -668,6 +682,57 @@ export default function DashboardAnalyticsSettingsPage() { })} /> + void savePanelConfig()} + loading={saving} + disabled={!canUpdate} + > + {t("common.save")} + + )} + > +
+ + setConfig((current) => ({ ...current, enabled: checked }))} + disabled={!canUpdate} + /> + + + setConfig((current) => ({ ...current, title: event.target.value }))} + disabled={!canUpdate} + placeholder="经营分析" + /> + + + setConfig((current) => ({ ...current, subtitle: event.target.value }))} + disabled={!canUpdate} + placeholder={t("dashboardAnalytics.basicPlaceholder")} + /> + + + setConfig((current) => ({ ...current, emptyStateText: event.target.value }))} + disabled={!canUpdate} + rows={3} + placeholder="暂无可展示的经营分析卡片" + /> + +
+
+