main
parent
1ca5655dc5
commit
4b7177e652
|
|
@ -1 +1 @@
|
|||
Subproject commit 9e149a1adf71362858d58c353c834528b0445bbb
|
||||
Subproject commit 1ca5655dc531f979299d328a149583a0aae6963c
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
.DS_Store
|
||||
|
||||
.idea/
|
||||
.claude/
|
||||
backend/.idea/
|
||||
|
||||
frontend/dist/
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -513,6 +513,7 @@ const channelExportColumns: Array<ExportColumn<ChannelExpansionItem, ChannelExpo
|
|||
{ key: "province", label: "省份", value: (item) => 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<ExportColumn<ChannelExpansionItem, ChannelExpo
|
|||
{ key: "followUps", label: "跟进记录", kind: "followup", value: (item) => 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",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>UnisBase - 智能会议系统</title>
|
||||
<script type="module" crossorigin src="/assets/index-DdTU1GmP.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-DM2jW1WT.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CaWPk49l.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
<div className="app-page app-page--contained dashboard-analytics-page">
|
||||
|
|
@ -668,6 +682,57 @@ export default function DashboardAnalyticsSettingsPage() {
|
|||
})}
|
||||
/>
|
||||
|
||||
<Card
|
||||
className="dashboard-analytics-card"
|
||||
loading={loading}
|
||||
title={t("dashboardAnalytics.panelTitle")}
|
||||
extra={(
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => void savePanelConfig()}
|
||||
loading={saving}
|
||||
disabled={!canUpdate}
|
||||
>
|
||||
{t("common.save")}
|
||||
</Button>
|
||||
)}
|
||||
>
|
||||
<Form layout="vertical">
|
||||
<Form.Item label={t("dashboardAnalytics.enabled")}>
|
||||
<Switch
|
||||
checked={Boolean(config.enabled)}
|
||||
onChange={(checked) => setConfig((current) => ({ ...current, enabled: checked }))}
|
||||
disabled={!canUpdate}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("dashboardAnalytics.panelName")}>
|
||||
<Input
|
||||
value={config.title || ""}
|
||||
onChange={(event) => setConfig((current) => ({ ...current, title: event.target.value }))}
|
||||
disabled={!canUpdate}
|
||||
placeholder="经营分析"
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("dashboardAnalytics.panelSubtitle")}>
|
||||
<Input
|
||||
value={config.subtitle || ""}
|
||||
onChange={(event) => setConfig((current) => ({ ...current, subtitle: event.target.value }))}
|
||||
disabled={!canUpdate}
|
||||
placeholder={t("dashboardAnalytics.basicPlaceholder")}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("dashboardAnalytics.emptyStateText")}>
|
||||
<Input.TextArea
|
||||
value={config.emptyStateText || ""}
|
||||
onChange={(event) => setConfig((current) => ({ ...current, emptyStateText: event.target.value }))}
|
||||
disabled={!canUpdate}
|
||||
rows={3}
|
||||
placeholder="暂无可展示的经营分析卡片"
|
||||
/>
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</Card>
|
||||
|
||||
<Card
|
||||
className="dashboard-analytics-card"
|
||||
loading={loading}
|
||||
|
|
|
|||
Loading…
Reference in New Issue