@hkyhy/marsun-components-core 0.1.115 → 0.1.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-hub.js +131 -126
- package/dist/agent-hub.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.d.ts +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/style.module.scss.js +9 -9
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.d.ts +2 -2
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/style.module.scss.js +3 -3
- package/dist/components/AgentHub/Chat/Detail/ChatCapabilityStrip/index.d.ts +20 -0
- package/dist/components/AgentHub/Chat/Detail/ChatCapabilityStrip/index.js +155 -0
- package/dist/components/AgentHub/Chat/Detail/ChatCapabilityStrip/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatCapabilityStrip/style.module.scss.js +19 -0
- package/dist/components/AgentHub/Chat/Detail/ChatCapabilityStrip/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.d.ts +2 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js +59 -55
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatPanelHeaderTools/index.d.ts +19 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanelHeaderTools/index.js +122 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanelHeaderTools/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanelHeaderTools/style.module.scss.js +8 -0
- package/dist/components/AgentHub/Chat/Detail/ChatPanelHeaderTools/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/index.d.ts +4 -0
- package/dist/components/Audit/AuditLogList.d.ts +2 -0
- package/dist/components/Audit/AuditLogList.js +179 -170
- package/dist/components/Audit/AuditLogList.js.map +1 -1
- package/dist/components/Audit/labels.d.ts +6 -2
- package/dist/components/Audit/labels.js +19 -16
- package/dist/components/Audit/labels.js.map +1 -1
- package/dist/components/Audit/labels.json.d.ts +47 -1
- package/dist/components/Audit/labels.json.js +124 -32
- package/dist/components/Audit/labels.json.js.map +1 -1
- package/dist/components/Audit/style.module.scss.js +26 -22
- package/dist/components/Audit/style.module.scss.js.map +1 -1
- package/dist/components/Icons/ZoomIn.d.ts +1 -0
- package/dist/components/Icons/ZoomIn.js +7 -0
- package/dist/components/Icons/ZoomIn.js.map +1 -0
- package/dist/components/Icons/ZoomOut.d.ts +1 -0
- package/dist/components/Icons/ZoomOut.js +7 -0
- package/dist/components/Icons/ZoomOut.js.map +1 -0
- package/dist/components/Icons/index.d.ts +2 -0
- package/dist/components/Icons/registry.d.ts +1 -1
- package/dist/components/Icons/registry.js +58 -52
- package/dist/components/Icons/registry.js.map +1 -1
- package/dist/components/Stat/StatCardList.js +16 -16
- package/dist/components/Stat/StatCardList.js.map +1 -1
- package/dist/components/Tools/ActionTracking/ActionTrackingShell.d.ts +27 -0
- package/dist/components/Tools/ActionTracking/ActionTrackingShell.js +43 -0
- package/dist/components/Tools/ActionTracking/ActionTrackingShell.js.map +1 -0
- package/dist/components/Tools/ActionTracking/index.d.ts +2 -0
- package/dist/components/Tools/ActionTracking/style.module.scss.js +7 -0
- package/dist/components/Tools/ActionTracking/style.module.scss.js.map +1 -0
- package/dist/components/Tools/index.d.ts +2 -0
- package/dist/index.js +787 -776
- package/dist/index.js.map +1 -1
- package/dist/marsun-components-core.css +1 -1
- package/dist/styles/global.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuditLogList.js","sources":["../../../src/components/Audit/AuditLogList.tsx"],"sourcesContent":["import { CommonDescriptions } from '@/components/Descriptions';\nimport InfoPage from '@/components/InfoPage';\nimport { StatCardList, type StatItem } from '@/components/Stat';\nimport { Table } from '@/components/Table';\nimport { SEMANTIC_COLORS, SemanticTag } from '@/components/Tag';\nimport { VirtualScrollbar } from '@/components/VirtualScrollbar';\nimport { copyText } from '@/utils/copyText';\nimport { Button, Collapse, Empty, Space, Typography, message } from 'antd';\nimport type { ColumnsType } from 'antd/es/table';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport React, { useMemo } from 'react';\nimport { AuditDayStatsBar } from './AuditDayStatsBar';\nimport { AuditWaterfall } from './AuditWaterfall';\nimport { computeDetailKpi, isErrorStep } from './detailKpi';\nimport { formatAuditJson, isTruncatedAuditText } from './formatAuditJson';\nimport { buildAuditReplayCurl, readBrowserReplaySession } from './formatAuditCurl';\nimport { displayActionLabel, displaySummary, labelOfAction } from './labels';\nimport styles from './style.module.scss';\nimport type { AuditDayStats, AuditEventDetail, AuditEventListItem, AuditStep } from './types';\n\nexport type AuditLogListMode = 'app' | 'platform';\n\nexport type AuditLogListProps = {\n mode?: AuditLogListMode;\n dataSource: AuditEventListItem[];\n loading?: boolean;\n /** 点击行(进详情页) */\n onRowClick?: (row: AuditEventListItem) => void;\n filterSlot?: React.ReactNode;\n /** 日汇总顶栏 */\n dayStats?: AuditDayStats | null;\n dayStatsLoading?: boolean;\n dayStatsError?: string | null;\n onExport?: () => void;\n exportLoading?: boolean;\n pagination?: false | object;\n className?: string;\n};\n\nfunction formatCreatedAt(iso: string): string {\n const d = dayjs(iso);\n return d.isValid() ? d.format('YYYY-MM-DD HH:mm:ss') : iso;\n}\n\nfunction statusLabel(status: string): string {\n if (status === 'success') return '成功';\n if (status === 'fail' || status === 'error') return '失败';\n return status;\n}\n\nfunction statusColor(status: string): string {\n if (status === 'success') return SEMANTIC_COLORS.SUCCESS;\n if (status === 'fail' || status === 'error') return SEMANTIC_COLORS.DANGER;\n return SEMANTIC_COLORS.DEFAULT;\n}\n\nfunction categoryLabel(c?: string | null): string {\n if (c === 'TRACE') return '请求线路';\n if (c === 'SYSTEM') return '系统';\n if (c === 'OPERATION' || !c) return '业务操作';\n return c;\n}\n\nfunction httpStatusColor(code: number): string {\n if (code >= 500) return SEMANTIC_COLORS.DANGER;\n if (code >= 400) return SEMANTIC_COLORS.WARNING;\n if (code >= 200 && code < 300) return SEMANTIC_COLORS.SUCCESS;\n return SEMANTIC_COLORS.DEFAULT;\n}\n\nfunction parseHttpStatus(output: unknown): number | null {\n if (!output || typeof output !== 'object' || Array.isArray(output)) return null;\n const v = (output as { httpStatus?: unknown }).httpStatus;\n if (typeof v === 'number' && Number.isFinite(v)) return v;\n if (v != null && String(v).trim() !== '') {\n const n = Number(v);\n return Number.isFinite(n) ? n : null;\n }\n return null;\n}\n\nfunction showActionCode(detail: AuditEventDetail): boolean {\n return Boolean(detail.actionLabel?.trim()) || Boolean(labelOfAction(detail.action));\n}\n\nconst JsonBlock: React.FC<{ value: unknown; maxHeight?: number }> = ({\n value,\n maxHeight = 360,\n}) => {\n const text = formatAuditJson(value);\n const truncated = isTruncatedAuditText(value) || text.includes('…[truncated]');\n return (\n <div className={styles.jsonWrap}>\n {truncated ? (\n <div className={styles.truncateHint}>内容已截断(采集侧 body 上限),以下为可读展开</div>\n ) : null}\n <VirtualScrollbar className={styles.jsonScroll} style={{ maxHeight }}>\n <pre className={styles.jsonBlock}>{text}</pre>\n </VirtualScrollbar>\n </div>\n );\n};\n\nfunction renderBody(label: string, value: unknown): React.ReactNode {\n if (value == null) return null;\n if (\n label === 'output' &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null &&\n ('httpStatus' in (value as object) || 'body' in (value as object))\n ) {\n const out = value as { body?: unknown; [k: string]: unknown };\n const rest = { ...out };\n delete rest.httpStatus;\n delete rest.body;\n const hasRest = Object.keys(rest).length > 0;\n return (\n <>\n {out.body !== undefined ? (\n <>\n <div className={styles.blockLabel}>响应体</div>\n <JsonBlock value={out.body} maxHeight={420} />\n </>\n ) : null}\n {hasRest ? (\n <>\n <div className={styles.blockLabel}>其它</div>\n <JsonBlock value={rest} />\n </>\n ) : null}\n </>\n );\n }\n return (\n <>\n <div className={styles.blockLabel}>{label}</div>\n <JsonBlock value={value} />\n </>\n );\n}\n\nexport const AuditStepContent: React.FC<{ step: AuditStep }> = ({ step }) => {\n const httpStatus = parseHttpStatus(step.output);\n return (\n <div className={styles.stepBody}>\n <div className={styles.stepMeta}>\n {step.stepType ? (\n <SemanticTag color={SEMANTIC_COLORS.DEFAULT}>{step.stepType}</SemanticTag>\n ) : null}\n {httpStatus != null ? (\n <SemanticTag color={httpStatusColor(httpStatus)}>HTTP {httpStatus}</SemanticTag>\n ) : null}\n {step.occurredAt ? (\n <Typography.Text type=\"secondary\">{formatCreatedAt(step.occurredAt)}</Typography.Text>\n ) : null}\n {typeof step.durationMs === 'number' ? (\n <Typography.Text type=\"secondary\">{step.durationMs} ms</Typography.Text>\n ) : null}\n </div>\n {step.sqlText ? (\n <>\n <div className={styles.blockLabel}>SQL</div>\n <VirtualScrollbar className={styles.jsonScroll} style={{ maxHeight: 200 }}>\n <pre className={styles.jsonBlock}>{step.sqlText}</pre>\n </VirtualScrollbar>\n </>\n ) : null}\n {step.tables?.length ? (\n <Typography.Text type=\"secondary\">表:{step.tables.join(', ')}</Typography.Text>\n ) : null}\n {step.errorMessage ? (\n <Typography.Text type=\"danger\">{step.errorMessage}</Typography.Text>\n ) : null}\n {step.errorCode ? (\n <Typography.Text type=\"secondary\">错误码:{step.errorCode}</Typography.Text>\n ) : null}\n {step.input != null ? renderBody('请求体', step.input) : null}\n {step.output != null ? renderBody('output', step.output) : null}\n </div>\n );\n};\n\n/** 审计事件详情:KPI + Lazy 瀑布 + 默认折叠 Flow */\nexport const AuditEventDetailView: React.FC<{\n detail: AuditEventDetail | null;\n loading?: boolean;\n emptyDescription?: string;\n className?: string;\n /** 当前登录 token(不含 Bearer 前缀亦可);复制 curl 用,不落库 */\n getAuthToken?: () => string | null | undefined;\n}> = ({ detail, loading, emptyDescription = '暂无明细', className, getAuthToken }) => {\n const kpi = useMemo(() => computeDetailKpi(detail), [detail]);\n const kpiItems = useMemo((): StatItem[] => {\n const slow =\n kpi.slowestStep != null ? `${kpi.slowestStep.title} (${kpi.slowestStep.durationMs}ms)` : '—';\n return [\n {\n title: '总耗时',\n value: kpi.durationMs ?? '—',\n suffix: kpi.durationMs != null ? 'ms' : undefined,\n tone: 'blue',\n color: '#1677ff',\n },\n { title: '步数', value: kpi.stepCount, tone: 'lilac', color: '#722ed1' },\n { title: 'SQL 步', value: kpi.sqlCount, tone: 'mint', color: '#0d9f8a' },\n { title: '最慢步', value: slow, tone: 'peach', color: '#d46b08' },\n ];\n }, [kpi]);\n\n if (loading) {\n return <Typography.Text type=\"secondary\">加载中…</Typography.Text>;\n }\n if (!detail) {\n return <Empty description={emptyDescription} />;\n }\n\n const steps = detail.steps || [];\n const title = displayActionLabel(detail.action, detail.actionLabel);\n const errorKeys = steps\n .map((s, i) => (isErrorStep(s) ? String(i) : null))\n .filter((k): k is string => k != null);\n\n const descContent = [\n {\n label: '操作人',\n value: detail.actorName?.trim() ? detail.actorName : '—',\n },\n { label: '时间', value: formatCreatedAt(detail.createdAt) },\n {\n label: '方法',\n value: detail.httpMethod?.trim() ? detail.httpMethod : '—',\n },\n {\n label: '状态',\n value: (\n <SemanticTag color={statusColor(detail.status)}>{statusLabel(detail.status)}</SemanticTag>\n ),\n },\n {\n label: '类别',\n value: detail.category ? categoryLabel(detail.category) : '—',\n },\n {\n label: '耗时',\n value: typeof detail.durationMs === 'number' ? `${detail.durationMs} ms` : '—',\n },\n {\n label: '路径',\n value: detail.path?.trim() ? (\n <Typography.Text code copyable={{ text: detail.path }}>\n {detail.path}\n </Typography.Text>\n ) : (\n '—'\n ),\n span: 2,\n },\n {\n label: 'traceId',\n value: detail.traceId ? (\n <Typography.Text copyable={{ text: detail.traceId }}>{detail.traceId}</Typography.Text>\n ) : (\n '—'\n ),\n span: 1,\n },\n ...(showActionCode(detail)\n ? [{ label: '动作码', value: <Typography.Text code>{detail.action}</Typography.Text> }]\n : []),\n ];\n\n return (\n <InfoPage className={classNames(styles.detail, className)}>\n <InfoPage.Part\n title={\n <Space size={8} wrap>\n <span>{title}</span>\n {title !== detail.action ? (\n <Typography.Text type=\"secondary\" className={styles.actionCode}>\n {detail.action}\n </Typography.Text>\n ) : null}\n </Space>\n }\n subtitle=\"事件摘要\"\n extra={\n detail.path || detail.requestCurl ? (\n <Button\n size=\"small\"\n type=\"primary\"\n onClick={async () => {\n try {\n const text = buildAuditReplayCurl(detail, readBrowserReplaySession(getAuthToken));\n const ok = await copyText(text);\n if (ok) message.success('已复制 curl');\n else message.error('复制失败');\n } catch (e) {\n message.error(e instanceof Error ? e.message : '无法生成 curl');\n }\n }}\n >\n 复制 curl\n </Button>\n ) : undefined\n }\n >\n <div className={styles.kpiBlock}>\n <StatCardList items={kpiItems} inline fontSize={20} gutter={[12, 8]} />\n </div>\n <CommonDescriptions content={descContent} column={3} bordered size=\"small\" />\n </InfoPage.Part>\n\n <InfoPage.Part title=\"耗时瀑布\" subtitle=\"逐步 durationMs(无 SQL 原文)\">\n <AuditWaterfall steps={steps} />\n </InfoPage.Part>\n\n <InfoPage.Part title=\"执行流程\" subtitle=\"默认折叠;失败步展开;展开后见 SQL/正文\">\n {detail.stepsTruncated ? (\n <div className={styles.truncateNote}>\n 步骤已截断:展示 {steps.length} / {detail.stepsTotal ?? steps.length}\n </div>\n ) : null}\n {steps.length === 0 ? (\n <Empty description=\"无流程步骤\" />\n ) : (\n <Collapse\n defaultActiveKey={errorKeys}\n items={steps.map((s, i) => ({\n key: String(i),\n label: (\n <Space size={8} wrap>\n <span>{s.title || s.stepType}</span>\n {typeof s.durationMs === 'number' ? (\n <Typography.Text type=\"secondary\">{s.durationMs} ms</Typography.Text>\n ) : null}\n {isErrorStep(s) ? (\n <SemanticTag color={SEMANTIC_COLORS.DANGER}>失败</SemanticTag>\n ) : null}\n </Space>\n ),\n children: <AuditStepContent step={s} />,\n }))}\n />\n )}\n </InfoPage.Part>\n </InfoPage>\n );\n};\n\nexport const AuditLogList: React.FC<AuditLogListProps> = ({\n mode = 'app',\n dataSource,\n loading,\n onRowClick,\n filterSlot,\n dayStats,\n dayStatsLoading,\n dayStatsError,\n onExport,\n exportLoading,\n pagination,\n className,\n}) => {\n const columns: ColumnsType<AuditEventListItem> = useMemo(() => {\n const cols: ColumnsType<AuditEventListItem> = [\n {\n title: '时间',\n dataIndex: 'createdAt',\n width: 180,\n render: (v: string) => formatCreatedAt(v),\n },\n {\n title: '类别',\n dataIndex: 'category',\n width: 96,\n render: (v: string | undefined) => categoryLabel(v),\n },\n {\n title: '方法',\n dataIndex: 'httpMethod',\n width: 72,\n render: (v: string | null | undefined) => (v && String(v).trim() ? v : '—'),\n },\n {\n title: '操作人',\n dataIndex: 'actorName',\n width: 100,\n ellipsis: true,\n render: (v: string | null | undefined) => (v && String(v).trim() ? v : '—'),\n },\n {\n title: '动作',\n dataIndex: 'action',\n width: 160,\n ellipsis: true,\n render: (_: unknown, row) => displayActionLabel(row.action, row.actionLabel),\n },\n {\n title: '摘要',\n dataIndex: 'summary',\n ellipsis: true,\n render: (_: unknown, row) =>\n displaySummary(row.summary, displayActionLabel(row.action, row.actionLabel)),\n },\n {\n title: '状态',\n dataIndex: 'status',\n width: 90,\n render: (v: string) => <SemanticTag color={statusColor(v)}>{statusLabel(v)}</SemanticTag>,\n },\n { title: '耗时ms', dataIndex: 'durationMs', width: 80 },\n { title: '路径', dataIndex: 'path', ellipsis: true },\n ];\n if (mode === 'platform') {\n cols.splice(2, 0, {\n title: '系统',\n dataIndex: 'systemAppId',\n width: 140,\n ellipsis: true,\n });\n }\n return cols;\n }, [mode]);\n\n return (\n <div className={classNames(styles.wrap, className)}>\n {filterSlot ? <div className={styles.filter}>{filterSlot}</div> : null}\n {dayStats !== undefined || onExport ? (\n <AuditDayStatsBar\n stats={dayStats ?? null}\n loading={dayStatsLoading}\n error={dayStatsError}\n onExport={onExport}\n exportLoading={exportLoading}\n />\n ) : null}\n <Table<AuditEventListItem>\n rowKey=\"id\"\n loading={loading}\n columns={columns}\n dataSource={dataSource}\n pagination={pagination === undefined ? false : pagination}\n onRow={\n onRowClick\n ? (record) => ({\n onClick: () => onRowClick(record),\n style: { cursor: 'pointer' },\n })\n : undefined\n }\n />\n </div>\n );\n};\n\nexport default AuditLogList;\n"],"names":["formatCreatedAt","iso","d","dayjs","statusLabel","status","statusColor","SEMANTIC_COLORS","categoryLabel","c","httpStatusColor","code","parseHttpStatus","output","v","n","showActionCode","detail","_a","labelOfAction","JsonBlock","value","maxHeight","text","formatAuditJson","truncated","isTruncatedAuditText","jsxs","styles","jsx","VirtualScrollbar","renderBody","label","out","rest","hasRest","Fragment","AuditStepContent","step","httpStatus","SemanticTag","Typography","AuditEventDetailView","loading","emptyDescription","className","getAuthToken","kpi","useMemo","computeDetailKpi","kpiItems","slow","Empty","steps","title","displayActionLabel","errorKeys","s","i","isErrorStep","k","descContent","_b","_c","InfoPage","classNames","Space","Button","buildAuditReplayCurl","readBrowserReplaySession","copyText","message","e","StatCardList","CommonDescriptions","AuditWaterfall","Collapse","AuditLogList","mode","dataSource","onRowClick","filterSlot","dayStats","dayStatsLoading","dayStatsError","onExport","exportLoading","pagination","columns","cols","_","row","displaySummary","AuditDayStatsBar","Table","record"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuditLogList.js","sources":["../../../src/components/Audit/AuditLogList.tsx"],"sourcesContent":["import { CommonDescriptions } from '@/components/Descriptions';\nimport InfoPage from '@/components/InfoPage';\nimport { StatCardList, type StatItem } from '@/components/Stat';\nimport { Table } from '@/components/Table';\nimport { SEMANTIC_COLORS, SemanticTag } from '@/components/Tag';\nimport { VirtualScrollbar } from '@/components/VirtualScrollbar';\nimport { copyText } from '@/utils/copyText';\nimport { Button, Collapse, Empty, Space, Typography, message } from 'antd';\nimport type { ColumnsType } from 'antd/es/table';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport React, { useMemo } from 'react';\nimport { AuditDayStatsBar } from './AuditDayStatsBar';\nimport { AuditWaterfall } from './AuditWaterfall';\nimport { computeDetailKpi, isErrorStep } from './detailKpi';\nimport { formatAuditJson, isTruncatedAuditText } from './formatAuditJson';\nimport { buildAuditReplayCurl, readBrowserReplaySession } from './formatAuditCurl';\nimport { displayActionLabel, displaySummary, labelOfAction } from './labels';\nimport styles from './style.module.scss';\nimport type { AuditDayStats, AuditEventDetail, AuditEventListItem, AuditStep } from './types';\n\nexport type AuditLogListMode = 'app' | 'platform';\n\nexport type AuditLogListProps = {\n mode?: AuditLogListMode;\n dataSource: AuditEventListItem[];\n loading?: boolean;\n /** 点击行(进详情页) */\n onRowClick?: (row: AuditEventListItem) => void;\n filterSlot?: React.ReactNode;\n /** 日汇总顶栏 */\n dayStats?: AuditDayStats | null;\n dayStatsLoading?: boolean;\n dayStatsError?: string | null;\n onExport?: () => void;\n exportLoading?: boolean;\n pagination?: false | object;\n className?: string;\n /** platform 系统列:SSO SystemApp.code → name;缺则回落 systemAppId */\n systemAppNames?: Record<string, string>;\n};\n\nfunction formatCreatedAt(iso: string): string {\n const d = dayjs(iso);\n return d.isValid() ? d.format('YYYY-MM-DD HH:mm:ss') : iso;\n}\n\nfunction statusLabel(status: string): string {\n if (status === 'success') return '成功';\n if (status === 'fail' || status === 'error') return '失败';\n return status;\n}\n\nfunction statusColor(status: string): string {\n if (status === 'success') return SEMANTIC_COLORS.SUCCESS;\n if (status === 'fail' || status === 'error') return SEMANTIC_COLORS.DANGER;\n return SEMANTIC_COLORS.DEFAULT;\n}\n\nfunction categoryLabel(c?: string | null): string {\n if (c === 'TRACE') return '请求线路';\n if (c === 'SYSTEM') return '系统';\n if (c === 'OPERATION' || !c) return '业务操作';\n return c;\n}\n\nfunction httpStatusColor(code: number): string {\n if (code >= 500) return SEMANTIC_COLORS.DANGER;\n if (code >= 400) return SEMANTIC_COLORS.WARNING;\n if (code >= 200 && code < 300) return SEMANTIC_COLORS.SUCCESS;\n return SEMANTIC_COLORS.DEFAULT;\n}\n\nfunction parseHttpStatus(output: unknown): number | null {\n if (!output || typeof output !== 'object' || Array.isArray(output)) return null;\n const v = (output as { httpStatus?: unknown }).httpStatus;\n if (typeof v === 'number' && Number.isFinite(v)) return v;\n if (v != null && String(v).trim() !== '') {\n const n = Number(v);\n return Number.isFinite(n) ? n : null;\n }\n return null;\n}\n\nfunction showActionCode(detail: AuditEventDetail): boolean {\n return Boolean(detail.actionLabel?.trim()) || Boolean(labelOfAction(detail.action));\n}\n\nconst JsonBlock: React.FC<{ value: unknown; maxHeight?: number }> = ({\n value,\n maxHeight = 360,\n}) => {\n const text = formatAuditJson(value);\n const truncated = isTruncatedAuditText(value) || text.includes('…[truncated]');\n return (\n <div className={styles.jsonWrap}>\n {truncated ? (\n <div className={styles.truncateHint}>内容已截断(采集侧 body 上限),以下为可读展开</div>\n ) : null}\n <VirtualScrollbar className={styles.jsonScroll} style={{ maxHeight }}>\n <pre className={styles.jsonBlock}>{text}</pre>\n </VirtualScrollbar>\n </div>\n );\n};\n\nfunction renderBody(label: string, value: unknown): React.ReactNode {\n if (value == null) return null;\n if (\n label === 'output' &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null &&\n ('httpStatus' in (value as object) || 'body' in (value as object))\n ) {\n const out = value as { body?: unknown; [k: string]: unknown };\n const rest = { ...out };\n delete rest.httpStatus;\n delete rest.body;\n const hasRest = Object.keys(rest).length > 0;\n return (\n <>\n {out.body !== undefined ? (\n <>\n <div className={styles.blockLabel}>响应体</div>\n <JsonBlock value={out.body} maxHeight={420} />\n </>\n ) : null}\n {hasRest ? (\n <>\n <div className={styles.blockLabel}>其它</div>\n <JsonBlock value={rest} />\n </>\n ) : null}\n </>\n );\n }\n return (\n <>\n <div className={styles.blockLabel}>{label}</div>\n <JsonBlock value={value} />\n </>\n );\n}\n\nexport const AuditStepContent: React.FC<{ step: AuditStep }> = ({ step }) => {\n const httpStatus = parseHttpStatus(step.output);\n return (\n <div className={styles.stepBody}>\n <div className={styles.stepMeta}>\n {step.stepType ? (\n <SemanticTag color={SEMANTIC_COLORS.DEFAULT}>{step.stepType}</SemanticTag>\n ) : null}\n {httpStatus != null ? (\n <SemanticTag color={httpStatusColor(httpStatus)}>HTTP {httpStatus}</SemanticTag>\n ) : null}\n {step.occurredAt ? (\n <Typography.Text type=\"secondary\">{formatCreatedAt(step.occurredAt)}</Typography.Text>\n ) : null}\n {typeof step.durationMs === 'number' ? (\n <Typography.Text type=\"secondary\">{step.durationMs} ms</Typography.Text>\n ) : null}\n </div>\n {step.sqlText ? (\n <>\n <div className={styles.blockLabel}>SQL</div>\n <VirtualScrollbar className={styles.jsonScroll} style={{ maxHeight: 200 }}>\n <pre className={styles.jsonBlock}>{step.sqlText}</pre>\n </VirtualScrollbar>\n </>\n ) : null}\n {step.tables?.length ? (\n <Typography.Text type=\"secondary\">表:{step.tables.join(', ')}</Typography.Text>\n ) : null}\n {step.errorMessage ? (\n <Typography.Text type=\"danger\">{step.errorMessage}</Typography.Text>\n ) : null}\n {step.errorCode ? (\n <Typography.Text type=\"secondary\">错误码:{step.errorCode}</Typography.Text>\n ) : null}\n {step.input != null ? renderBody('请求体', step.input) : null}\n {step.output != null ? renderBody('output', step.output) : null}\n </div>\n );\n};\n\n/** 审计事件详情:KPI + Lazy 瀑布 + 默认折叠 Flow */\nexport const AuditEventDetailView: React.FC<{\n detail: AuditEventDetail | null;\n loading?: boolean;\n emptyDescription?: string;\n className?: string;\n /** 当前登录 token(不含 Bearer 前缀亦可);复制 curl 用,不落库 */\n getAuthToken?: () => string | null | undefined;\n}> = ({ detail, loading, emptyDescription = '暂无明细', className, getAuthToken }) => {\n const kpi = useMemo(() => computeDetailKpi(detail), [detail]);\n const kpiItems = useMemo((): StatItem[] => {\n const slow =\n kpi.slowestStep != null ? `${kpi.slowestStep.title} (${kpi.slowestStep.durationMs}ms)` : '—';\n return [\n {\n title: '总耗时',\n value: kpi.durationMs ?? '—',\n suffix: kpi.durationMs != null ? 'ms' : undefined,\n tone: 'blue',\n color: '#1677ff',\n },\n { title: '步数', value: kpi.stepCount, tone: 'lilac', color: '#722ed1' },\n { title: 'SQL 步', value: kpi.sqlCount, tone: 'mint', color: '#0d9f8a' },\n { title: '最慢步', value: slow, tone: 'peach', color: '#d46b08' },\n ];\n }, [kpi]);\n\n if (loading) {\n return <Typography.Text type=\"secondary\">加载中…</Typography.Text>;\n }\n if (!detail) {\n return <Empty description={emptyDescription} />;\n }\n\n const steps = detail.steps || [];\n const title = displayActionLabel(detail.action, detail.actionLabel);\n const errorKeys = steps\n .map((s, i) => (isErrorStep(s) ? String(i) : null))\n .filter((k): k is string => k != null);\n\n const descContent = [\n {\n label: '操作人',\n value: detail.actorName?.trim() ? detail.actorName : '—',\n },\n { label: '时间', value: formatCreatedAt(detail.createdAt) },\n {\n label: '方法',\n value: detail.httpMethod?.trim() ? detail.httpMethod : '—',\n },\n {\n label: '状态',\n value: (\n <SemanticTag color={statusColor(detail.status)}>{statusLabel(detail.status)}</SemanticTag>\n ),\n },\n {\n label: '类别',\n value: detail.category ? categoryLabel(detail.category) : '—',\n },\n {\n label: '耗时',\n value: typeof detail.durationMs === 'number' ? `${detail.durationMs} ms` : '—',\n },\n {\n label: '路径',\n value: detail.path?.trim() ? (\n <Typography.Text code copyable={{ text: detail.path }}>\n {detail.path}\n </Typography.Text>\n ) : (\n '—'\n ),\n span: 2,\n },\n {\n label: 'traceId',\n value: detail.traceId ? (\n <Typography.Text copyable={{ text: detail.traceId }}>{detail.traceId}</Typography.Text>\n ) : (\n '—'\n ),\n span: 1,\n },\n ...(showActionCode(detail)\n ? [{ label: '动作码', value: <Typography.Text code>{detail.action}</Typography.Text> }]\n : []),\n ];\n\n return (\n <InfoPage className={classNames(styles.detail, className)}>\n <InfoPage.Part\n title={\n <Space size={8} wrap>\n <span>{title}</span>\n {title !== detail.action ? (\n <Typography.Text type=\"secondary\" className={styles.actionCode}>\n {detail.action}\n </Typography.Text>\n ) : null}\n </Space>\n }\n subtitle=\"事件摘要\"\n extra={\n detail.path || detail.requestCurl ? (\n <Button\n size=\"small\"\n type=\"primary\"\n onClick={async () => {\n try {\n const text = buildAuditReplayCurl(detail, readBrowserReplaySession(getAuthToken));\n const ok = await copyText(text);\n if (ok) message.success('已复制 curl');\n else message.error('复制失败');\n } catch (e) {\n message.error(e instanceof Error ? e.message : '无法生成 curl');\n }\n }}\n >\n 复制 curl\n </Button>\n ) : undefined\n }\n >\n <div className={styles.kpiBlock}>\n <StatCardList items={kpiItems} inline fontSize={20} gutter={[12, 8]} />\n </div>\n <CommonDescriptions content={descContent} column={3} bordered size=\"small\" />\n </InfoPage.Part>\n\n <InfoPage.Part title=\"耗时瀑布\" subtitle=\"逐步 durationMs(无 SQL 原文)\">\n <AuditWaterfall steps={steps} />\n </InfoPage.Part>\n\n <InfoPage.Part title=\"执行流程\" subtitle=\"默认折叠;失败步展开;展开后见 SQL/正文\">\n {detail.stepsTruncated ? (\n <div className={styles.truncateNote}>\n 步骤已截断:展示 {steps.length} / {detail.stepsTotal ?? steps.length}\n </div>\n ) : null}\n {steps.length === 0 ? (\n <Empty description=\"无流程步骤\" />\n ) : (\n <Collapse\n defaultActiveKey={errorKeys}\n items={steps.map((s, i) => ({\n key: String(i),\n label: (\n <Space size={8} wrap>\n <span>{s.title || s.stepType}</span>\n {typeof s.durationMs === 'number' ? (\n <Typography.Text type=\"secondary\">{s.durationMs} ms</Typography.Text>\n ) : null}\n {isErrorStep(s) ? (\n <SemanticTag color={SEMANTIC_COLORS.DANGER}>失败</SemanticTag>\n ) : null}\n </Space>\n ),\n children: <AuditStepContent step={s} />,\n }))}\n />\n )}\n </InfoPage.Part>\n </InfoPage>\n );\n};\n\nexport const AuditLogList: React.FC<AuditLogListProps> = ({\n mode = 'app',\n dataSource,\n loading,\n onRowClick,\n filterSlot,\n dayStats,\n dayStatsLoading,\n dayStatsError,\n onExport,\n exportLoading,\n pagination,\n className,\n systemAppNames,\n}) => {\n const columns: ColumnsType<AuditEventListItem> = useMemo(() => {\n const cols: ColumnsType<AuditEventListItem> = [\n {\n title: '时间',\n dataIndex: 'createdAt',\n width: 180,\n render: (v: string) => formatCreatedAt(v),\n },\n {\n title: '类别',\n dataIndex: 'category',\n width: 96,\n render: (v: string | undefined) => categoryLabel(v),\n },\n {\n title: '方法',\n dataIndex: 'httpMethod',\n width: 72,\n render: (v: string | null | undefined) => (v && String(v).trim() ? v : '—'),\n },\n {\n title: '操作人',\n dataIndex: 'actorName',\n width: 100,\n ellipsis: true,\n render: (v: string | null | undefined) => (v && String(v).trim() ? v : '—'),\n },\n {\n title: '动作',\n dataIndex: 'action',\n width: 160,\n ellipsis: true,\n render: (_: unknown, row) => displayActionLabel(row.action, row.actionLabel),\n },\n {\n title: '摘要',\n dataIndex: 'summary',\n ellipsis: true,\n render: (_: unknown, row) =>\n displaySummary(row.summary, displayActionLabel(row.action, row.actionLabel), {\n httpMethod: row.httpMethod,\n path: row.path,\n }),\n },\n {\n title: '状态',\n dataIndex: 'status',\n width: 90,\n render: (v: string) => <SemanticTag color={statusColor(v)}>{statusLabel(v)}</SemanticTag>,\n },\n { title: '耗时ms', dataIndex: 'durationMs', width: 80 },\n { title: '路径', dataIndex: 'path', ellipsis: true },\n ];\n if (mode === 'platform') {\n cols.splice(2, 0, {\n title: '系统',\n dataIndex: 'systemAppId',\n width: 140,\n ellipsis: true,\n render: (v: string) => {\n const id = v && String(v).trim() ? String(v) : '';\n if (!id) return '—';\n const name = systemAppNames?.[id]?.trim();\n return name || id;\n },\n });\n }\n return cols;\n }, [mode, systemAppNames]);\n\n return (\n <div className={classNames(styles.wrap, className)}>\n {filterSlot ? <div className={styles.filter}>{filterSlot}</div> : null}\n {dayStats !== undefined || onExport ? (\n <AuditDayStatsBar\n stats={dayStats ?? null}\n loading={dayStatsLoading}\n error={dayStatsError}\n onExport={onExport}\n exportLoading={exportLoading}\n />\n ) : null}\n <Table<AuditEventListItem>\n rowKey=\"id\"\n loading={loading}\n columns={columns}\n dataSource={dataSource}\n pagination={pagination === undefined ? false : pagination}\n onRow={\n onRowClick\n ? (record) => ({\n onClick: () => onRowClick(record),\n style: { cursor: 'pointer' },\n })\n : undefined\n }\n />\n </div>\n );\n};\n\nexport default AuditLogList;\n"],"names":["formatCreatedAt","iso","d","dayjs","statusLabel","status","statusColor","SEMANTIC_COLORS","categoryLabel","c","httpStatusColor","code","parseHttpStatus","output","v","n","showActionCode","detail","_a","labelOfAction","JsonBlock","value","maxHeight","text","formatAuditJson","truncated","isTruncatedAuditText","jsxs","styles","jsx","VirtualScrollbar","renderBody","label","out","rest","hasRest","Fragment","AuditStepContent","step","httpStatus","SemanticTag","Typography","AuditEventDetailView","loading","emptyDescription","className","getAuthToken","kpi","useMemo","computeDetailKpi","kpiItems","slow","Empty","steps","title","displayActionLabel","errorKeys","s","i","isErrorStep","k","descContent","_b","_c","InfoPage","classNames","Space","Button","buildAuditReplayCurl","readBrowserReplaySession","copyText","message","e","StatCardList","CommonDescriptions","AuditWaterfall","Collapse","AuditLogList","mode","dataSource","onRowClick","filterSlot","dayStats","dayStatsLoading","dayStatsError","onExport","exportLoading","pagination","systemAppNames","columns","cols","_","row","displaySummary","id","AuditDayStatsBar","Table","record"],"mappings":"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"}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
export declare function labelOfAction(action: string | null | undefined): string | null;
|
|
3
3
|
/** 展示用:actionLabel → shared labels → 码 */
|
|
4
4
|
export declare function displayActionLabel(action: string, actionLabel?: string | null): string;
|
|
5
|
+
export type DisplaySummaryRoute = {
|
|
6
|
+
httpMethod?: string | null;
|
|
7
|
+
path?: string | null;
|
|
8
|
+
};
|
|
5
9
|
/**
|
|
6
|
-
* 摘要与动作中文相同或空 →
|
|
10
|
+
* 摘要与动作中文相同或空 → 尝试 METHOD+path 回落;再空则「—」(列表去重)
|
|
7
11
|
*/
|
|
8
|
-
export declare function displaySummary(summary: string | null | undefined, actionLabelDisplay: string): string;
|
|
12
|
+
export declare function displaySummary(summary: string | null | undefined, actionLabelDisplay: string, route?: DisplaySummaryRoute): string;
|
|
9
13
|
export declare function allActionLabels(): Readonly<Record<string, string>>;
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
function
|
|
4
|
-
return !
|
|
1
|
+
import A from "./labels.json.js";
|
|
2
|
+
const c = A;
|
|
3
|
+
function h(n) {
|
|
4
|
+
return !n || !String(n).trim() ? null : c[String(n).trim()] ?? null;
|
|
5
5
|
}
|
|
6
|
-
function
|
|
7
|
-
const
|
|
8
|
-
return
|
|
6
|
+
function d(n, i) {
|
|
7
|
+
const t = i == null ? void 0 : i.trim();
|
|
8
|
+
return t || h(n) || n;
|
|
9
9
|
}
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
function e(n, i, t) {
|
|
11
|
+
var f, p;
|
|
12
|
+
const r = n == null ? void 0 : n.trim();
|
|
13
|
+
if (r && r !== i) return r;
|
|
14
|
+
const s = ((f = t == null ? void 0 : t.httpMethod) == null ? void 0 : f.trim()) || "", o = ((p = t == null ? void 0 : t.path) == null ? void 0 : p.trim()) || "", l = [s, o].filter(Boolean).join(" ").trim();
|
|
15
|
+
return l || "—";
|
|
13
16
|
}
|
|
14
|
-
function
|
|
15
|
-
return
|
|
17
|
+
function S() {
|
|
18
|
+
return c;
|
|
16
19
|
}
|
|
17
20
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
S as allActionLabels,
|
|
22
|
+
d as displayActionLabel,
|
|
23
|
+
e as displaySummary,
|
|
24
|
+
h as labelOfAction
|
|
22
25
|
};
|
|
23
26
|
//# sourceMappingURL=labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sources":["../../../src/components/Audit/labels.ts"],"sourcesContent":["import labels from './labels.json';\n\nconst LABEL_MAP = labels as Record<string, string>;\n\n/** 与 SSOT / audit labels.json / Java AuditActionLabels 同表;禁平行造词 */\nexport function labelOfAction(action: string | null | undefined): string | null {\n if (!action || !String(action).trim()) return null;\n return LABEL_MAP[String(action).trim()] ?? null;\n}\n\n/** 展示用:actionLabel → shared labels → 码 */\nexport function displayActionLabel(action: string, actionLabel?: string | null): string {\n const fromApi = actionLabel?.trim();\n if (fromApi) return fromApi;\n return labelOfAction(action) || action;\n}\n\n/**\n * 摘要与动作中文相同或空 →
|
|
1
|
+
{"version":3,"file":"labels.js","sources":["../../../src/components/Audit/labels.ts"],"sourcesContent":["import labels from './labels.json';\n\nconst LABEL_MAP = labels as Record<string, string>;\n\n/** 与 SSOT / audit labels.json / Java AuditActionLabels 同表;禁平行造词 */\nexport function labelOfAction(action: string | null | undefined): string | null {\n if (!action || !String(action).trim()) return null;\n return LABEL_MAP[String(action).trim()] ?? null;\n}\n\n/** 展示用:actionLabel → shared labels → 码 */\nexport function displayActionLabel(action: string, actionLabel?: string | null): string {\n const fromApi = actionLabel?.trim();\n if (fromApi) return fromApi;\n return labelOfAction(action) || action;\n}\n\nexport type DisplaySummaryRoute = {\n httpMethod?: string | null;\n path?: string | null;\n};\n\n/**\n * 摘要与动作中文相同或空 → 尝试 METHOD+path 回落;再空则「—」(列表去重)\n */\nexport function displaySummary(\n summary: string | null | undefined,\n actionLabelDisplay: string,\n route?: DisplaySummaryRoute,\n): string {\n const s = summary?.trim();\n if (s && s !== actionLabelDisplay) return s;\n const method = route?.httpMethod?.trim() || '';\n const path = route?.path?.trim() || '';\n const fallback = [method, path].filter(Boolean).join(' ').trim();\n if (fallback) return fallback;\n return '—';\n}\n\nexport function allActionLabels(): Readonly<Record<string, string>> {\n return LABEL_MAP;\n}\n"],"names":["LABEL_MAP","labels","labelOfAction","action","displayActionLabel","actionLabel","fromApi","displaySummary","summary","actionLabelDisplay","route","s","method","_a","path","_b","fallback","allActionLabels"],"mappings":";AAEA,MAAMA,IAAYC;AAGX,SAASC,EAAcC,GAAkD;AAC9E,SAAI,CAACA,KAAU,CAAC,OAAOA,CAAM,EAAE,KAAA,IAAe,OACvCH,EAAU,OAAOG,CAAM,EAAE,KAAA,CAAM,KAAK;AAC7C;AAGO,SAASC,EAAmBD,GAAgBE,GAAqC;AACtF,QAAMC,IAAUD,KAAA,gBAAAA,EAAa;AAC7B,SAAIC,KACGJ,EAAcC,CAAM,KAAKA;AAClC;AAUO,SAASI,EACdC,GACAC,GACAC,GACQ;;AACR,QAAMC,IAAIH,KAAA,gBAAAA,EAAS;AACnB,MAAIG,KAAKA,MAAMF,EAAoB,QAAOE;AAC1C,QAAMC,MAASC,IAAAH,KAAA,gBAAAA,EAAO,eAAP,gBAAAG,EAAmB,WAAU,IACtCC,MAAOC,IAAAL,KAAA,gBAAAA,EAAO,SAAP,gBAAAK,EAAa,WAAU,IAC9BC,IAAW,CAACJ,GAAQE,CAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,KAAA;AAC1D,SAAIE,KACG;AACT;AAEO,SAASC,IAAoD;AAClE,SAAOjB;AACT;"}
|
|
@@ -15,7 +15,53 @@ declare const _default: {
|
|
|
15
15
|
"evalRulesReset": "重置评价规则",
|
|
16
16
|
"alertRulesPut": "保存报警规则",
|
|
17
17
|
"inspectSchedulePut": "保存巡检排程",
|
|
18
|
-
"inspectScheduleRun": "执行巡检排程"
|
|
18
|
+
"inspectScheduleRun": "执行巡检排程",
|
|
19
|
+
"summaryMetrics": "汇总指标",
|
|
20
|
+
"detailListPage": "明细分页",
|
|
21
|
+
"detailList": "明细列表",
|
|
22
|
+
"filterOptions": "筛选项",
|
|
23
|
+
"materials": "物料列表",
|
|
24
|
+
"metaMaterials": "物料维表",
|
|
25
|
+
"machineTypes": "机型列表",
|
|
26
|
+
"metaMachineTypes": "机型维表",
|
|
27
|
+
"machines": "机台列表",
|
|
28
|
+
"machineNames": "机台名列表",
|
|
29
|
+
"machineNos": "机台号列表",
|
|
30
|
+
"metaMachineNames": "机台名维表",
|
|
31
|
+
"metaMachines": "机台维表",
|
|
32
|
+
"metaMachineModels": "机型型号维表",
|
|
33
|
+
"factories": "分厂列表",
|
|
34
|
+
"processes": "工序列表",
|
|
35
|
+
"metaProcesses": "工序维表",
|
|
36
|
+
"workTypes": "工种列表",
|
|
37
|
+
"metaWorkTypes": "工种维表",
|
|
38
|
+
"productEnums": "产品枚举",
|
|
39
|
+
"metaProductEnums": "产品枚举维表",
|
|
40
|
+
"equipmentTypes": "设备类型",
|
|
41
|
+
"metaEquipmentTypes": "设备类型维表",
|
|
42
|
+
"componentTypes": "专件类型",
|
|
43
|
+
"metaComponentTypes": "专件类型维表",
|
|
44
|
+
"componentManufacturers": "专件厂商",
|
|
45
|
+
"plantScoresList": "厂评分列表",
|
|
46
|
+
"plantScoreDetail": "厂评分详情",
|
|
47
|
+
"maintenanceCycleListPage": "整机周期列表",
|
|
48
|
+
"componentCycleListPage": "专件周期列表",
|
|
49
|
+
"evalRulesGet": "查询评价规则",
|
|
50
|
+
"alertRulesList": "报警规则列表",
|
|
51
|
+
"inspectScheduleGet": "查询巡检排程",
|
|
52
|
+
"inspectScheduleStatus": "巡检排程状态",
|
|
53
|
+
"maintenanceMetaOptions": "保养维表选项",
|
|
54
|
+
"componentMetaOptions": "专件维表选项",
|
|
55
|
+
"list": "Agent 目录列表",
|
|
56
|
+
"crossDomainDetail": "跨域明细",
|
|
57
|
+
"metrics": "机台指标",
|
|
58
|
+
"slots": "槽位明细",
|
|
59
|
+
"mountEvents": "上机事件",
|
|
60
|
+
"events": "保养事件",
|
|
61
|
+
"faultRepair": "故障维修",
|
|
62
|
+
"productionMetrics": "产量指标",
|
|
63
|
+
"componentSummary": "专件汇总",
|
|
64
|
+
"dispositionStatus": "处置状态"
|
|
19
65
|
}
|
|
20
66
|
;
|
|
21
67
|
|
|
@@ -1,40 +1,132 @@
|
|
|
1
|
-
const
|
|
2
|
-
alertClaim:
|
|
3
|
-
alertAssign:
|
|
4
|
-
alertFollow:
|
|
5
|
-
actionRcaStart:
|
|
1
|
+
const t = "认领告警", e = "分配告警", n = "跟进告警", s = "发起根因", at = "关闭", it = "暂缓", c = "批量创建整机周期", o = "更新整机周期", a = "删除整机周期", i = "批量创建专件周期", l = "更新专件周期", m = "删除专件周期", p = "保存评价规则", r = "重置评价规则", u = "保存报警规则", y = "保存巡检排程", d = "执行巡检排程", h = "汇总指标", C = "明细分页", M = "明细列表", lt = "筛选项", S = "物料列表", R = "物料维表", f = "机型列表", P = "机型维表", T = "机台列表", D = "机台名列表", L = "机台号列表", g = "机台名维表", v = "机台维表", E = "机型型号维表", O = "分厂列表", N = "工序列表", k = "工序维表", q = "工种列表", w = "工种维表", A = "产品枚举", B = "产品枚举维表", G = "设备类型", U = "设备类型维表", b = "专件类型", x = "专件类型维表", F = "专件厂商", W = "厂评分列表", j = "厂评分详情", z = "整机周期列表", H = "专件周期列表", I = "查询评价规则", J = "报警规则列表", K = "查询巡检排程", Q = "巡检排程状态", V = "保养维表选项", X = "专件维表选项", Y = "Agent 目录列表", Z = "跨域明细", _ = "机台指标", $ = "槽位明细", tt = "上机事件", et = "保养事件", nt = "故障维修", st = "产量指标", ct = "专件汇总", ot = "处置状态", mt = {
|
|
2
|
+
alertClaim: t,
|
|
3
|
+
alertAssign: e,
|
|
4
|
+
alertFollow: n,
|
|
5
|
+
actionRcaStart: s,
|
|
6
6
|
actionClose: "关闭",
|
|
7
7
|
actionDefer: "暂缓",
|
|
8
|
-
maintenanceCycleBatchCreate:
|
|
9
|
-
maintenanceCycleUpdate:
|
|
8
|
+
maintenanceCycleBatchCreate: c,
|
|
9
|
+
maintenanceCycleUpdate: o,
|
|
10
10
|
maintenanceCycleDelete: a,
|
|
11
|
-
componentCycleBatchCreate:
|
|
12
|
-
componentCycleUpdate:
|
|
13
|
-
componentCycleDelete:
|
|
14
|
-
evalRulesPut:
|
|
15
|
-
evalRulesReset:
|
|
16
|
-
alertRulesPut:
|
|
17
|
-
inspectSchedulePut:
|
|
18
|
-
inspectScheduleRun:
|
|
11
|
+
componentCycleBatchCreate: i,
|
|
12
|
+
componentCycleUpdate: l,
|
|
13
|
+
componentCycleDelete: m,
|
|
14
|
+
evalRulesPut: p,
|
|
15
|
+
evalRulesReset: r,
|
|
16
|
+
alertRulesPut: u,
|
|
17
|
+
inspectSchedulePut: y,
|
|
18
|
+
inspectScheduleRun: d,
|
|
19
|
+
summaryMetrics: h,
|
|
20
|
+
detailListPage: C,
|
|
21
|
+
detailList: M,
|
|
22
|
+
filterOptions: "筛选项",
|
|
23
|
+
materials: S,
|
|
24
|
+
metaMaterials: R,
|
|
25
|
+
machineTypes: f,
|
|
26
|
+
metaMachineTypes: P,
|
|
27
|
+
machines: T,
|
|
28
|
+
machineNames: D,
|
|
29
|
+
machineNos: L,
|
|
30
|
+
metaMachineNames: g,
|
|
31
|
+
metaMachines: v,
|
|
32
|
+
metaMachineModels: E,
|
|
33
|
+
factories: O,
|
|
34
|
+
processes: N,
|
|
35
|
+
metaProcesses: k,
|
|
36
|
+
workTypes: q,
|
|
37
|
+
metaWorkTypes: w,
|
|
38
|
+
productEnums: A,
|
|
39
|
+
metaProductEnums: B,
|
|
40
|
+
equipmentTypes: G,
|
|
41
|
+
metaEquipmentTypes: U,
|
|
42
|
+
componentTypes: b,
|
|
43
|
+
metaComponentTypes: x,
|
|
44
|
+
componentManufacturers: F,
|
|
45
|
+
plantScoresList: W,
|
|
46
|
+
plantScoreDetail: j,
|
|
47
|
+
maintenanceCycleListPage: z,
|
|
48
|
+
componentCycleListPage: H,
|
|
49
|
+
evalRulesGet: I,
|
|
50
|
+
alertRulesList: J,
|
|
51
|
+
inspectScheduleGet: K,
|
|
52
|
+
inspectScheduleStatus: Q,
|
|
53
|
+
maintenanceMetaOptions: V,
|
|
54
|
+
componentMetaOptions: X,
|
|
55
|
+
list: Y,
|
|
56
|
+
crossDomainDetail: Z,
|
|
57
|
+
metrics: _,
|
|
58
|
+
slots: $,
|
|
59
|
+
mountEvents: tt,
|
|
60
|
+
events: et,
|
|
61
|
+
faultRepair: nt,
|
|
62
|
+
productionMetrics: st,
|
|
63
|
+
componentSummary: ct,
|
|
64
|
+
dispositionStatus: ot
|
|
19
65
|
};
|
|
20
66
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
67
|
+
at as actionClose,
|
|
68
|
+
it as actionDefer,
|
|
69
|
+
s as actionRcaStart,
|
|
70
|
+
e as alertAssign,
|
|
71
|
+
t as alertClaim,
|
|
72
|
+
n as alertFollow,
|
|
73
|
+
J as alertRulesList,
|
|
74
|
+
u as alertRulesPut,
|
|
75
|
+
i as componentCycleBatchCreate,
|
|
76
|
+
m as componentCycleDelete,
|
|
77
|
+
H as componentCycleListPage,
|
|
78
|
+
l as componentCycleUpdate,
|
|
79
|
+
F as componentManufacturers,
|
|
80
|
+
X as componentMetaOptions,
|
|
81
|
+
ct as componentSummary,
|
|
82
|
+
b as componentTypes,
|
|
83
|
+
Z as crossDomainDetail,
|
|
84
|
+
mt as default,
|
|
85
|
+
M as detailList,
|
|
86
|
+
C as detailListPage,
|
|
87
|
+
ot as dispositionStatus,
|
|
88
|
+
G as equipmentTypes,
|
|
89
|
+
I as evalRulesGet,
|
|
90
|
+
p as evalRulesPut,
|
|
91
|
+
r as evalRulesReset,
|
|
92
|
+
et as events,
|
|
93
|
+
O as factories,
|
|
94
|
+
nt as faultRepair,
|
|
95
|
+
lt as filterOptions,
|
|
96
|
+
K as inspectScheduleGet,
|
|
97
|
+
y as inspectSchedulePut,
|
|
98
|
+
d as inspectScheduleRun,
|
|
99
|
+
Q as inspectScheduleStatus,
|
|
100
|
+
Y as list,
|
|
101
|
+
D as machineNames,
|
|
102
|
+
L as machineNos,
|
|
103
|
+
f as machineTypes,
|
|
104
|
+
T as machines,
|
|
105
|
+
c as maintenanceCycleBatchCreate,
|
|
37
106
|
a as maintenanceCycleDelete,
|
|
38
|
-
|
|
107
|
+
z as maintenanceCycleListPage,
|
|
108
|
+
o as maintenanceCycleUpdate,
|
|
109
|
+
V as maintenanceMetaOptions,
|
|
110
|
+
S as materials,
|
|
111
|
+
x as metaComponentTypes,
|
|
112
|
+
U as metaEquipmentTypes,
|
|
113
|
+
E as metaMachineModels,
|
|
114
|
+
g as metaMachineNames,
|
|
115
|
+
P as metaMachineTypes,
|
|
116
|
+
v as metaMachines,
|
|
117
|
+
R as metaMaterials,
|
|
118
|
+
k as metaProcesses,
|
|
119
|
+
B as metaProductEnums,
|
|
120
|
+
w as metaWorkTypes,
|
|
121
|
+
_ as metrics,
|
|
122
|
+
tt as mountEvents,
|
|
123
|
+
j as plantScoreDetail,
|
|
124
|
+
W as plantScoresList,
|
|
125
|
+
N as processes,
|
|
126
|
+
A as productEnums,
|
|
127
|
+
st as productionMetrics,
|
|
128
|
+
$ as slots,
|
|
129
|
+
h as summaryMetrics,
|
|
130
|
+
q as workTypes
|
|
39
131
|
};
|
|
40
132
|
//# sourceMappingURL=labels.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"labels.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
const t = "
|
|
1
|
+
const t = "_wrap_1wy8p_2", o = "_filter_1wy8p_6", s = "_statsBar_1wy8p_10", _ = "_statsBarCards_1wy8p_18", a = "_detail_1wy8p_23", c = "_actionCode_1wy8p_29", n = "_stepBody_1wy8p_38", e = "_stepMeta_1wy8p_47", p = "_blockLabel_1wy8p_54", r = "_jsonWrap_1wy8p_60", l = "_jsonScroll_1wy8p_65", y = "_jsonBlock_1wy8p_70", w = "_truncateHint_1wy8p_86", i = "_kpiBlock_1wy8p_92", B = "_truncateNote_1wy8p_96", d = {
|
|
2
2
|
wrap: t,
|
|
3
|
-
filter:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
filter: o,
|
|
4
|
+
statsBar: s,
|
|
5
|
+
statsBarCards: _,
|
|
6
|
+
detail: a,
|
|
7
|
+
actionCode: c,
|
|
6
8
|
stepBody: n,
|
|
7
9
|
stepMeta: e,
|
|
8
|
-
blockLabel:
|
|
9
|
-
jsonWrap:
|
|
10
|
-
jsonScroll:
|
|
11
|
-
jsonBlock:
|
|
12
|
-
truncateHint:
|
|
13
|
-
kpiBlock:
|
|
14
|
-
truncateNote:
|
|
10
|
+
blockLabel: p,
|
|
11
|
+
jsonWrap: r,
|
|
12
|
+
jsonScroll: l,
|
|
13
|
+
jsonBlock: y,
|
|
14
|
+
truncateHint: w,
|
|
15
|
+
kpiBlock: i,
|
|
16
|
+
truncateNote: B
|
|
15
17
|
};
|
|
16
18
|
export {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
c as actionCode,
|
|
20
|
+
p as blockLabel,
|
|
21
|
+
d as default,
|
|
22
|
+
a as detail,
|
|
23
|
+
o as filter,
|
|
24
|
+
y as jsonBlock,
|
|
25
|
+
l as jsonScroll,
|
|
26
|
+
r as jsonWrap,
|
|
27
|
+
i as kpiBlock,
|
|
28
|
+
s as statsBar,
|
|
29
|
+
_ as statsBarCards,
|
|
26
30
|
n as stepBody,
|
|
27
31
|
e as stepMeta,
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
w as truncateHint,
|
|
33
|
+
B as truncateNote,
|
|
30
34
|
t as wrap
|
|
31
35
|
};
|
|
32
36
|
//# sourceMappingURL=style.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ZoomIn: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomIn.js","sources":["../../../src/components/Icons/ZoomIn.tsx"],"sourcesContent":["import { ZoomIn as LucideZoomIn } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const ZoomIn = createIcon(LucideZoomIn);\n"],"names":["ZoomIn","createIcon","LucideZoomIn"],"mappings":";;AAGO,MAAMA,IAASC,EAAWC,CAAY;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ZoomOut: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomOut.js","sources":["../../../src/components/Icons/ZoomOut.tsx"],"sourcesContent":["import { ZoomOut as LucideZoomOut } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const ZoomOut = createIcon(LucideZoomOut);\n"],"names":["ZoomOut","createIcon","LucideZoomOut"],"mappings":";;AAGO,MAAMA,IAAUC,EAAWC,CAAa;"}
|
|
@@ -77,4 +77,6 @@ export { UserPlus } from './UserPlus';
|
|
|
77
77
|
export { UserRoundCog } from './UserRoundCog';
|
|
78
78
|
export { Users } from './Users';
|
|
79
79
|
export { X } from './X';
|
|
80
|
+
export { ZoomIn } from './ZoomIn';
|
|
81
|
+
export { ZoomOut } from './ZoomOut';
|
|
80
82
|
export { ICON_NAMES, ICON_REGISTRY, type IconName } from './registry';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { IconProps } from './createIcon';
|
|
3
|
-
export declare const ICON_NAMES: readonly ["ArrowLeft", "ArrowLeftRight", "BarChart3", "Bell", "BookOpen", "Bot", "Check", "ChevronDown", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleAlert", "CircleCheck", "CircleHelp", "CirclePlay", "CircleX", "ClipboardCheck", "Clock", "CloudDownload", "CloudUpload", "Code", "Copy", "Crown", "Database", "Download", "Eye", "EyeOff", "File", "FileArchive", "FileImage", "FileSpreadsheet", "FileText", "Flag", "Flame", "Folder", "FolderOpen", "Hash", "House", "Import", "Inbox", "Info", "LayoutDashboard", "LayoutGrid", "ListTodo", "Loader2", "Lock", "LogOut", "Maximize2", "MessageCircle", "MessageSquare", "Minimize2", "PanelLeftClose", "PanelLeftOpen", "Pause", "Pencil", "Plus", "Presentation", "RefreshCw", "RotateCw", "Send", "Settings", "Shield", "ShieldCheck", "SlidersHorizontal", "Square", "Star", "ThumbsDown", "ThumbsUp", "Trash2", "Trophy", "Undo2", "Upload", "User", "UserPlus", "UserRoundCog", "Users", "X"];
|
|
3
|
+
export declare const ICON_NAMES: readonly ["ArrowLeft", "ArrowLeftRight", "BarChart3", "Bell", "BookOpen", "Bot", "Check", "ChevronDown", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleAlert", "CircleCheck", "CircleHelp", "CirclePlay", "CircleX", "ClipboardCheck", "Clock", "CloudDownload", "CloudUpload", "Code", "Copy", "Crown", "Database", "Download", "Eye", "EyeOff", "File", "FileArchive", "FileImage", "FileSpreadsheet", "FileText", "Flag", "Flame", "Folder", "FolderOpen", "Hash", "House", "Import", "Inbox", "Info", "LayoutDashboard", "LayoutGrid", "ListTodo", "Loader2", "Lock", "LogOut", "Maximize2", "MessageCircle", "MessageSquare", "Minimize2", "PanelLeftClose", "PanelLeftOpen", "Pause", "Pencil", "Plus", "Presentation", "RefreshCw", "RotateCw", "Send", "Settings", "Shield", "ShieldCheck", "SlidersHorizontal", "Square", "Star", "ThumbsDown", "ThumbsUp", "Trash2", "Trophy", "Undo2", "Upload", "User", "UserPlus", "UserRoundCog", "Users", "X", "ZoomIn", "ZoomOut"];
|
|
4
4
|
export type IconName = (typeof ICON_NAMES)[number];
|
|
5
5
|
/** 全量注册表:仅 showcase / 按名取图标时用;业务具名 import 勿依赖本文件,以免拖入全部图标 */
|
|
6
6
|
export declare const ICON_REGISTRY: Record<IconName, React.FC<IconProps>>;
|