@hkyhy/marsun-components-core 0.1.139 → 0.1.141

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.
@@ -1,10 +1,10 @@
1
1
  import { jsx as Y } from "react/jsx-runtime";
2
2
  import { useState as Mt, useRef as x, useCallback as z, useMemo as bt } from "react";
3
- import { message as j } from "antd";
3
+ import { message as U } from "antd";
4
4
  import wt from "classnames";
5
5
  import Bt from "dayjs";
6
- import Ut from "./CreateActionForm.js";
7
- import { addDaysYmd as jt, validateCreateActionPersons as Lt, createActionPersonWarnMessage as Nt, normalizeDueDateYmd as Pt, personDisplayName as C } from "./submitHelpers.js";
6
+ import Nt from "./CreateActionForm.js";
7
+ import { addDaysYmd as Ut, validateCreateActionPersons as jt, createActionPersonWarnMessage as Lt, normalizeDueDateYmd as Pt, personDisplayName as C } from "./submitHelpers.js";
8
8
  import Rt from "./CreateActionModal.module.scss.js";
9
9
  import _t from "../../../FormInfo/FormModal.js";
10
10
  const Ct = ({
@@ -30,12 +30,12 @@ const Ct = ({
30
30
  onSubmit: st,
31
31
  onAllocatorConfirmed: I,
32
32
  defaultStatus: M = "approved",
33
- defaultDueDays: L = 7,
33
+ defaultDueDays: j = 7,
34
34
  width: et = 560,
35
35
  zIndex: nt = 1300
36
36
  }) => {
37
37
  var _, E, F;
38
- const [ct, N] = Mt(!1), P = x([]), R = x([]), at = z((o) => {
38
+ const [ct, L] = Mt(!1), P = x([]), R = x([]), at = z((o) => {
39
39
  P.current = o;
40
40
  }, []), it = z((o) => {
41
41
  R.current = o;
@@ -51,7 +51,7 @@ const Ct = ({
51
51
  status: M,
52
52
  allocatorUserId: "",
53
53
  assigneeUserId: "",
54
- dueDate: Bt(jt(L)),
54
+ dueDate: Bt(Ut(j)),
55
55
  factory: e || s ? "" : m,
56
56
  variety: e || s ? "" : y,
57
57
  metric: e || s ? "" : S,
@@ -69,21 +69,21 @@ const Ct = ({
69
69
  t == null ? void 0 : t.dimension,
70
70
  d,
71
71
  M,
72
- L
72
+ j
73
73
  ]), gt = async (o) => {
74
74
  var k, O, T;
75
- const c = Lt(
75
+ const c = jt(
76
76
  String(o.allocatorUserId || ""),
77
77
  String(o.assigneeUserId || ""),
78
78
  R.current,
79
79
  P.current
80
80
  );
81
81
  if (!c.ok)
82
- throw j.warning(Nt(c.code)), new Error(c.code);
82
+ throw U.warning(Lt(c.code)), new Error(c.code);
83
83
  const { allocator: v, assignee: g } = c, r = v.value, h = g.value;
84
- I == null || I(r), N(!0);
84
+ I == null || I(r), L(!0);
85
85
  try {
86
- const n = Pt(o.dueDate), a = C(g, h), ut = C(v, r), b = e ? m : s ? "" : String(o.factory || "").trim(), A = e || s ? "" : String(o.variety || "").trim(), w = e || s ? "" : String(o.metric || "").trim(), H = String(o.title || "").trim(), yt = String(o.description || "").trim(), B = String(o.dimension || "").trim() || String((t == null ? void 0 : t.dimension) || "").trim() || ((k = d[0]) == null ? void 0 : k.value) || "", St = ((T = (O = d.find((U) => U.value === B)) == null ? void 0 : O.label) == null ? void 0 : T.trim()) || B, ht = e ? (i || []).map((U) => U.value).filter(Boolean).join(" · ") : s ? [H, St].filter(Boolean).join(" · ") : [b, A, w].filter(Boolean).join(" · "), kt = {
86
+ const n = Pt(o.dueDate), a = C(g, h), ut = C(v, r), b = e ? m : s ? "" : String(o.factory || "").trim(), A = e || s ? "" : String(o.variety || "").trim(), w = e || s ? "" : String(o.metric || "").trim(), H = String(o.title || "").trim(), yt = String(o.description || "").trim(), B = String(o.dimension || "").trim() || String((t == null ? void 0 : t.dimension) || "").trim() || ((k = d[0]) == null ? void 0 : k.value) || "", St = ((T = (O = d.find((N) => N.value === B)) == null ? void 0 : O.label) == null ? void 0 : T.trim()) || B, ht = e ? (i || []).map((N) => N.value).filter(Boolean).join(" · ") : s ? [H, St].filter(Boolean).join(" · ") : [b, A, w].filter(Boolean).join(" · "), kt = {
87
87
  title: H,
88
88
  description: yt || void 0,
89
89
  dimension: B,
@@ -97,17 +97,18 @@ const Ct = ({
97
97
  factory: b,
98
98
  variety: A,
99
99
  metric: w,
100
- factoryCode: s ? void 0 : (t == null ? void 0 : t.factoryCode) || void 0,
101
- factoryName: b || void 0,
100
+ // form/locked 的 factory 即厂码(下拉 value);勿把码误写入 factoryName
101
+ factoryCode: s ? void 0 : b || (t == null ? void 0 : t.factoryCode) || void 0,
102
+ factoryName: s ? void 0 : (t == null ? void 0 : t.factoryName) || void 0,
102
103
  verifyMetric: w || void 0,
103
104
  eventLabel: ht
104
105
  }, It = await st(kt);
105
- j.success(u ? "已下发任务" : "已创建跟踪任务"), $(It);
106
+ U.success(u ? "已下发任务" : "已创建跟踪任务"), $(It);
106
107
  } catch (n) {
107
108
  const a = n instanceof Error ? n.message : "";
108
- throw a === "missing_allocator" || a === "invalid_allocator" || a === "missing_assignee" || a === "invalid_assignee" || j.error(n instanceof Error ? n.message : "创建失败"), n;
109
+ throw a === "missing_allocator" || a === "invalid_allocator" || a === "missing_assignee" || a === "invalid_assignee" || U.error(n instanceof Error ? n.message : "创建失败"), n;
109
110
  } finally {
110
- N(!1);
111
+ L(!1);
111
112
  }
112
113
  };
113
114
  return /* @__PURE__ */ Y(
@@ -128,7 +129,7 @@ const Ct = ({
128
129
  onSubmit: gt
129
130
  },
130
131
  children: /* @__PURE__ */ Y(
131
- Ut,
132
+ Nt,
132
133
  {
133
134
  onAssigneeOptionsReady: at,
134
135
  onAllocatorOptionsReady: it,
@@ -1 +1 @@
1
- {"version":3,"file":"CreateActionModal.js","sources":["../../../../../src/components/Tools/ActionTracking/CreateAction/CreateActionModal.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { FormModal } from '../../../FormInfo';\nimport { message } from 'antd';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport CreateActionForm from './CreateActionForm';\nimport {\n addDaysYmd,\n createActionPersonWarnMessage,\n normalizeDueDateYmd,\n personDisplayName,\n validateCreateActionPersons,\n} from './submitHelpers';\nimport type {\n ActionPersonOption,\n CreateActionDimensionOption,\n CreateActionLoaders,\n CreateActionPrefill,\n CreateActionScopeMode,\n CreateActionSubmitPayload,\n LockedContextField,\n} from './types';\nimport styles from './CreateActionModal.module.scss';\n\nexport type CreateActionModalProps = {\n open: boolean;\n onClose: () => void;\n onCreated: (actionId?: string) => void;\n variant?: 'create' | 'dispatch';\n prefill?: CreateActionPrefill;\n lockPrefill?: boolean;\n lockedContext?: LockedContextField[];\n /**\n * 业务上下文字段模式。有 lockedContext 时强制 locked。\n * 默认 form(S3);EAM `/actions` 主动新建传 none。\n */\n scopeMode?: CreateActionScopeMode;\n /** @deprecated 有 lockedContext 时忽略 */\n varietyLabel?: string;\n /** F4:任务标题 placeholder */\n titlePlaceholder?: string;\n /** F4:任务描述 placeholder */\n descriptionPlaceholder?: string;\n /** F4:关联指标 placeholder */\n metricPlaceholder?: string;\n /** scopeMode=none 时短提示(App 注入) */\n noneScopeHint?: string;\n /** 弹窗标题;默认按 variant */\n title?: string;\n /** 主按钮文案;默认 下发/创建 */\n okText?: string;\n dimensionOptions: CreateActionDimensionOption[];\n loaders: CreateActionLoaders;\n emptyAssigneeHint?: string;\n emptyAllocatorHint?: string;\n /**\n * App 注入提交(对齐 EAM:校验通过后写 API / domainSubmit)。\n * 返回新建 actionId(可选)。\n */\n onSubmit: (payload: CreateActionSubmitPayload) => Promise<string | undefined>;\n /** 分配人确认后回调(App 可写 localStorage) */\n onAllocatorConfirmed?: (allocatorUserId: string) => void;\n defaultStatus?: string;\n defaultDueDays?: number;\n width?: number;\n zIndex?: number;\n};\n\n/**\n * 主动新建 / 预警下发任务 · FormModal + FormInfo。\n *\n * ## App 注入契约(W1)\n * - `loaders`:人员级联 + 分厂选项(禁 DEMO / 禁 core 直连业务 API;scopeMode=none 可不传分厂/品种)\n * - `dimensionOptions`:任务类型码表(展示名取自 App 数据)\n * - `scopeMode`:form(默认)| locked(有 lockedContext 强制)| none(EAM 主动新建)\n * - `titlePlaceholder` / `metricPlaceholder`:F4,由 App 注入业务文案\n * - `onSubmit`:对齐 EAM 提交面;actor / analysisId / eventSource / REST 由 App 补齐\n * - EP 门禁:由 App 决定是否打开本 Modal(禁 DEMO 恒真)\n */\nconst CreateActionModal: React.FC<CreateActionModalProps> = ({\n open,\n onClose,\n onCreated,\n variant = 'create',\n prefill,\n lockPrefill = false,\n lockedContext,\n scopeMode: scopeModeProp = 'form',\n varietyLabel,\n titlePlaceholder,\n descriptionPlaceholder,\n metricPlaceholder,\n noneScopeHint,\n title: titleProp,\n okText: okTextProp,\n dimensionOptions,\n loaders,\n emptyAssigneeHint,\n emptyAllocatorHint,\n onSubmit,\n onAllocatorConfirmed,\n defaultStatus = 'approved',\n defaultDueDays = 7,\n width = 560,\n zIndex = 1300,\n}) => {\n const [saving, setSaving] = useState(false);\n const assigneeOptsRef = useRef<ActionPersonOption[]>([]);\n const allocatorOptsRef = useRef<ActionPersonOption[]>([]);\n const onAssigneeOptionsReady = useCallback((opts: ActionPersonOption[]) => {\n assigneeOptsRef.current = opts;\n }, []);\n const onAllocatorOptionsReady = useCallback((opts: ActionPersonOption[]) => {\n allocatorOptsRef.current = opts;\n }, []);\n\n const isDispatch = variant === 'dispatch';\n const useLocked = Boolean(lockedContext && lockedContext.length > 0);\n const useNoneScope = !useLocked && scopeModeProp === 'none';\n const scopeFactory = prefill?.factory?.trim() || '';\n const scopeVariety = prefill?.variety?.trim() || '';\n const scopeMetric = prefill?.metric?.trim() || '';\n const lockScope =\n !useLocked &&\n !useNoneScope &&\n (isDispatch || lockPrefill) &&\n Boolean(scopeFactory || scopeVariety || scopeMetric);\n\n const modalTitle = titleProp || (isDispatch ? '下发任务' : '新建跟踪任务');\n const okText = okTextProp || (isDispatch ? '下发' : '创建');\n\n const formInitialData = useMemo(() => {\n const lockedFields: Record<string, string> = {};\n (lockedContext || []).forEach((field, idx) => {\n lockedFields[`lockedContext_${idx}`] = field.value;\n });\n return {\n title: prefill?.title?.trim() || '',\n description: prefill?.description?.trim() || '',\n dimension: prefill?.dimension?.trim() || dimensionOptions[0]?.value || '',\n status: defaultStatus,\n allocatorUserId: '',\n assigneeUserId: '',\n dueDate: dayjs(addDaysYmd(defaultDueDays)),\n factory: useLocked || useNoneScope ? '' : scopeFactory,\n variety: useLocked || useNoneScope ? '' : scopeVariety,\n metric: useLocked || useNoneScope ? '' : scopeMetric,\n ...lockedFields,\n };\n }, [\n lockedContext,\n scopeFactory,\n scopeVariety,\n scopeMetric,\n useLocked,\n useNoneScope,\n prefill?.title,\n prefill?.description,\n prefill?.dimension,\n dimensionOptions,\n defaultStatus,\n defaultDueDays,\n ]);\n\n const handleSubmit = async (formData: Record<string, unknown>) => {\n const checked = validateCreateActionPersons(\n String(formData.allocatorUserId || ''),\n String(formData.assigneeUserId || ''),\n allocatorOptsRef.current,\n assigneeOptsRef.current,\n );\n if (!checked.ok) {\n message.warning(createActionPersonWarnMessage(checked.code));\n throw new Error(checked.code);\n }\n\n const { allocator: allocatorOpt, assignee: fromOptions } = checked;\n const allocatorUserId = allocatorOpt.value;\n const assigneeUserId = fromOptions.value;\n onAllocatorConfirmed?.(allocatorUserId);\n\n setSaving(true);\n try {\n const due = normalizeDueDateYmd(formData.dueDate);\n const assignee = personDisplayName(fromOptions, assigneeUserId);\n const allocator = personDisplayName(allocatorOpt, allocatorUserId);\n const factory = useLocked\n ? scopeFactory\n : useNoneScope\n ? ''\n : String(formData.factory || '').trim();\n const variety = useLocked || useNoneScope ? '' : String(formData.variety || '').trim();\n const metric = useLocked || useNoneScope ? '' : String(formData.metric || '').trim();\n const title = String(formData.title || '').trim();\n const description = String(formData.description || '').trim();\n const dimension =\n String(formData.dimension || '').trim() ||\n String(prefill?.dimension || '').trim() ||\n dimensionOptions[0]?.value ||\n '';\n const dimLabel =\n dimensionOptions.find((o) => o.value === dimension)?.label?.trim() || dimension;\n const eventLabel = useLocked\n ? (lockedContext || [])\n .map((f) => f.value)\n .filter(Boolean)\n .join(' · ')\n : useNoneScope\n ? [title, dimLabel].filter(Boolean).join(' · ')\n : [factory, variety, metric].filter(Boolean).join(' · ');\n\n const payload: CreateActionSubmitPayload = {\n title,\n description: description || undefined,\n dimension,\n status: String(formData.status || defaultStatus),\n assignee,\n assigneeUserId,\n allocator,\n allocatorUserId,\n owner: assignee,\n dueDate: due || undefined,\n factory,\n variety,\n metric,\n factoryCode: useNoneScope ? undefined : prefill?.factoryCode || undefined,\n factoryName: factory || undefined,\n verifyMetric: metric || undefined,\n eventLabel,\n };\n\n const actionId = await onSubmit(payload);\n message.success(isDispatch ? '已下发任务' : '已创建跟踪任务');\n onCreated(actionId);\n } catch (err) {\n const code = err instanceof Error ? err.message : '';\n if (\n code === 'missing_allocator' ||\n code === 'invalid_allocator' ||\n code === 'missing_assignee' ||\n code === 'invalid_assignee'\n ) {\n throw err;\n }\n message.error(err instanceof Error ? err.message : '创建失败');\n throw err;\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <FormModal\n className={classNames('create-action-modal', styles['create-action-modal'])}\n title={modalTitle}\n open={open}\n onCancel={onClose}\n autoClose\n okText={okText}\n width={width}\n zIndex={zIndex}\n destroyOnHidden\n okButtonProps={{ loading: saving }}\n formProps={{\n data: formInitialData,\n onSubmit: handleSubmit,\n }}\n >\n <CreateActionForm\n onAssigneeOptionsReady={onAssigneeOptionsReady}\n onAllocatorOptionsReady={onAllocatorOptionsReady}\n lockedContext={useLocked ? lockedContext : undefined}\n scopeMode={useLocked ? 'locked' : useNoneScope ? 'none' : 'form'}\n varietyLabel={useLocked || useNoneScope ? undefined : varietyLabel}\n titlePlaceholder={titlePlaceholder}\n descriptionPlaceholder={descriptionPlaceholder}\n metricPlaceholder={useNoneScope ? undefined : metricPlaceholder}\n noneScopeHint={useNoneScope ? noneScopeHint : undefined}\n dimensionOptions={dimensionOptions}\n loaders={loaders}\n emptyAssigneeHint={emptyAssigneeHint}\n emptyAllocatorHint={emptyAllocatorHint}\n scopeLock={\n lockScope\n ? {\n factory: scopeFactory || undefined,\n variety: scopeVariety || undefined,\n metric: scopeMetric || undefined,\n }\n : undefined\n }\n />\n </FormModal>\n );\n};\n\nexport default CreateActionModal;\n"],"names":["CreateActionModal","open","onClose","onCreated","variant","prefill","lockPrefill","lockedContext","scopeModeProp","varietyLabel","titlePlaceholder","descriptionPlaceholder","metricPlaceholder","noneScopeHint","titleProp","okTextProp","dimensionOptions","loaders","emptyAssigneeHint","emptyAllocatorHint","onSubmit","onAllocatorConfirmed","defaultStatus","defaultDueDays","width","zIndex","saving","setSaving","useState","assigneeOptsRef","useRef","allocatorOptsRef","onAssigneeOptionsReady","useCallback","opts","onAllocatorOptionsReady","isDispatch","useLocked","useNoneScope","scopeFactory","_a","scopeVariety","_b","scopeMetric","_c","lockScope","modalTitle","okText","formInitialData","useMemo","lockedFields","field","idx","_d","dayjs","addDaysYmd","handleSubmit","formData","checked","validateCreateActionPersons","message","createActionPersonWarnMessage","allocatorOpt","fromOptions","allocatorUserId","assigneeUserId","due","normalizeDueDateYmd","assignee","personDisplayName","allocator","factory","variety","metric","title","description","dimension","dimLabel","o","eventLabel","f","payload","actionId","err","code","jsx","FormModal","classNames","styles","CreateActionForm"],"mappings":"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"}
1
+ {"version":3,"file":"CreateActionModal.js","sources":["../../../../../src/components/Tools/ActionTracking/CreateAction/CreateActionModal.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { FormModal } from '../../../FormInfo';\nimport { message } from 'antd';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport CreateActionForm from './CreateActionForm';\nimport {\n addDaysYmd,\n createActionPersonWarnMessage,\n normalizeDueDateYmd,\n personDisplayName,\n validateCreateActionPersons,\n} from './submitHelpers';\nimport type {\n ActionPersonOption,\n CreateActionDimensionOption,\n CreateActionLoaders,\n CreateActionPrefill,\n CreateActionScopeMode,\n CreateActionSubmitPayload,\n LockedContextField,\n} from './types';\nimport styles from './CreateActionModal.module.scss';\n\nexport type CreateActionModalProps = {\n open: boolean;\n onClose: () => void;\n onCreated: (actionId?: string) => void;\n variant?: 'create' | 'dispatch';\n prefill?: CreateActionPrefill;\n lockPrefill?: boolean;\n lockedContext?: LockedContextField[];\n /**\n * 业务上下文字段模式。有 lockedContext 时强制 locked。\n * 默认 form(S3);EAM `/actions` 主动新建传 none。\n */\n scopeMode?: CreateActionScopeMode;\n /** @deprecated 有 lockedContext 时忽略 */\n varietyLabel?: string;\n /** F4:任务标题 placeholder */\n titlePlaceholder?: string;\n /** F4:任务描述 placeholder */\n descriptionPlaceholder?: string;\n /** F4:关联指标 placeholder */\n metricPlaceholder?: string;\n /** scopeMode=none 时短提示(App 注入) */\n noneScopeHint?: string;\n /** 弹窗标题;默认按 variant */\n title?: string;\n /** 主按钮文案;默认 下发/创建 */\n okText?: string;\n dimensionOptions: CreateActionDimensionOption[];\n loaders: CreateActionLoaders;\n emptyAssigneeHint?: string;\n emptyAllocatorHint?: string;\n /**\n * App 注入提交(对齐 EAM:校验通过后写 API / domainSubmit)。\n * 返回新建 actionId(可选)。\n */\n onSubmit: (payload: CreateActionSubmitPayload) => Promise<string | undefined>;\n /** 分配人确认后回调(App 可写 localStorage) */\n onAllocatorConfirmed?: (allocatorUserId: string) => void;\n defaultStatus?: string;\n defaultDueDays?: number;\n width?: number;\n zIndex?: number;\n};\n\n/**\n * 主动新建 / 预警下发任务 · FormModal + FormInfo。\n *\n * ## App 注入契约(W1)\n * - `loaders`:人员级联 + 分厂选项(禁 DEMO / 禁 core 直连业务 API;scopeMode=none 可不传分厂/品种)\n * - `dimensionOptions`:任务类型码表(展示名取自 App 数据)\n * - `scopeMode`:form(默认)| locked(有 lockedContext 强制)| none(EAM 主动新建)\n * - `titlePlaceholder` / `metricPlaceholder`:F4,由 App 注入业务文案\n * - `onSubmit`:对齐 EAM 提交面;actor / analysisId / eventSource / REST 由 App 补齐\n * - EP 门禁:由 App 决定是否打开本 Modal(禁 DEMO 恒真)\n */\nconst CreateActionModal: React.FC<CreateActionModalProps> = ({\n open,\n onClose,\n onCreated,\n variant = 'create',\n prefill,\n lockPrefill = false,\n lockedContext,\n scopeMode: scopeModeProp = 'form',\n varietyLabel,\n titlePlaceholder,\n descriptionPlaceholder,\n metricPlaceholder,\n noneScopeHint,\n title: titleProp,\n okText: okTextProp,\n dimensionOptions,\n loaders,\n emptyAssigneeHint,\n emptyAllocatorHint,\n onSubmit,\n onAllocatorConfirmed,\n defaultStatus = 'approved',\n defaultDueDays = 7,\n width = 560,\n zIndex = 1300,\n}) => {\n const [saving, setSaving] = useState(false);\n const assigneeOptsRef = useRef<ActionPersonOption[]>([]);\n const allocatorOptsRef = useRef<ActionPersonOption[]>([]);\n const onAssigneeOptionsReady = useCallback((opts: ActionPersonOption[]) => {\n assigneeOptsRef.current = opts;\n }, []);\n const onAllocatorOptionsReady = useCallback((opts: ActionPersonOption[]) => {\n allocatorOptsRef.current = opts;\n }, []);\n\n const isDispatch = variant === 'dispatch';\n const useLocked = Boolean(lockedContext && lockedContext.length > 0);\n const useNoneScope = !useLocked && scopeModeProp === 'none';\n const scopeFactory = prefill?.factory?.trim() || '';\n const scopeVariety = prefill?.variety?.trim() || '';\n const scopeMetric = prefill?.metric?.trim() || '';\n const lockScope =\n !useLocked &&\n !useNoneScope &&\n (isDispatch || lockPrefill) &&\n Boolean(scopeFactory || scopeVariety || scopeMetric);\n\n const modalTitle = titleProp || (isDispatch ? '下发任务' : '新建跟踪任务');\n const okText = okTextProp || (isDispatch ? '下发' : '创建');\n\n const formInitialData = useMemo(() => {\n const lockedFields: Record<string, string> = {};\n (lockedContext || []).forEach((field, idx) => {\n lockedFields[`lockedContext_${idx}`] = field.value;\n });\n return {\n title: prefill?.title?.trim() || '',\n description: prefill?.description?.trim() || '',\n dimension: prefill?.dimension?.trim() || dimensionOptions[0]?.value || '',\n status: defaultStatus,\n allocatorUserId: '',\n assigneeUserId: '',\n dueDate: dayjs(addDaysYmd(defaultDueDays)),\n factory: useLocked || useNoneScope ? '' : scopeFactory,\n variety: useLocked || useNoneScope ? '' : scopeVariety,\n metric: useLocked || useNoneScope ? '' : scopeMetric,\n ...lockedFields,\n };\n }, [\n lockedContext,\n scopeFactory,\n scopeVariety,\n scopeMetric,\n useLocked,\n useNoneScope,\n prefill?.title,\n prefill?.description,\n prefill?.dimension,\n dimensionOptions,\n defaultStatus,\n defaultDueDays,\n ]);\n\n const handleSubmit = async (formData: Record<string, unknown>) => {\n const checked = validateCreateActionPersons(\n String(formData.allocatorUserId || ''),\n String(formData.assigneeUserId || ''),\n allocatorOptsRef.current,\n assigneeOptsRef.current,\n );\n if (!checked.ok) {\n message.warning(createActionPersonWarnMessage(checked.code));\n throw new Error(checked.code);\n }\n\n const { allocator: allocatorOpt, assignee: fromOptions } = checked;\n const allocatorUserId = allocatorOpt.value;\n const assigneeUserId = fromOptions.value;\n onAllocatorConfirmed?.(allocatorUserId);\n\n setSaving(true);\n try {\n const due = normalizeDueDateYmd(formData.dueDate);\n const assignee = personDisplayName(fromOptions, assigneeUserId);\n const allocator = personDisplayName(allocatorOpt, allocatorUserId);\n const factory = useLocked\n ? scopeFactory\n : useNoneScope\n ? ''\n : String(formData.factory || '').trim();\n const variety = useLocked || useNoneScope ? '' : String(formData.variety || '').trim();\n const metric = useLocked || useNoneScope ? '' : String(formData.metric || '').trim();\n const title = String(formData.title || '').trim();\n const description = String(formData.description || '').trim();\n const dimension =\n String(formData.dimension || '').trim() ||\n String(prefill?.dimension || '').trim() ||\n dimensionOptions[0]?.value ||\n '';\n const dimLabel =\n dimensionOptions.find((o) => o.value === dimension)?.label?.trim() || dimension;\n const eventLabel = useLocked\n ? (lockedContext || [])\n .map((f) => f.value)\n .filter(Boolean)\n .join(' · ')\n : useNoneScope\n ? [title, dimLabel].filter(Boolean).join(' · ')\n : [factory, variety, metric].filter(Boolean).join(' · ');\n\n const payload: CreateActionSubmitPayload = {\n title,\n description: description || undefined,\n dimension,\n status: String(formData.status || defaultStatus),\n assignee,\n assigneeUserId,\n allocator,\n allocatorUserId,\n owner: assignee,\n dueDate: due || undefined,\n factory,\n variety,\n metric,\n // form/locked 的 factory 即厂码(下拉 value);勿把码误写入 factoryName\n factoryCode: useNoneScope ? undefined : factory || prefill?.factoryCode || undefined,\n factoryName: useNoneScope ? undefined : prefill?.factoryName || undefined,\n verifyMetric: metric || undefined,\n eventLabel,\n };\n\n const actionId = await onSubmit(payload);\n message.success(isDispatch ? '已下发任务' : '已创建跟踪任务');\n onCreated(actionId);\n } catch (err) {\n const code = err instanceof Error ? err.message : '';\n if (\n code === 'missing_allocator' ||\n code === 'invalid_allocator' ||\n code === 'missing_assignee' ||\n code === 'invalid_assignee'\n ) {\n throw err;\n }\n message.error(err instanceof Error ? err.message : '创建失败');\n throw err;\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <FormModal\n className={classNames('create-action-modal', styles['create-action-modal'])}\n title={modalTitle}\n open={open}\n onCancel={onClose}\n autoClose\n okText={okText}\n width={width}\n zIndex={zIndex}\n destroyOnHidden\n okButtonProps={{ loading: saving }}\n formProps={{\n data: formInitialData,\n onSubmit: handleSubmit,\n }}\n >\n <CreateActionForm\n onAssigneeOptionsReady={onAssigneeOptionsReady}\n onAllocatorOptionsReady={onAllocatorOptionsReady}\n lockedContext={useLocked ? lockedContext : undefined}\n scopeMode={useLocked ? 'locked' : useNoneScope ? 'none' : 'form'}\n varietyLabel={useLocked || useNoneScope ? undefined : varietyLabel}\n titlePlaceholder={titlePlaceholder}\n descriptionPlaceholder={descriptionPlaceholder}\n metricPlaceholder={useNoneScope ? undefined : metricPlaceholder}\n noneScopeHint={useNoneScope ? noneScopeHint : undefined}\n dimensionOptions={dimensionOptions}\n loaders={loaders}\n emptyAssigneeHint={emptyAssigneeHint}\n emptyAllocatorHint={emptyAllocatorHint}\n scopeLock={\n lockScope\n ? {\n factory: scopeFactory || undefined,\n variety: scopeVariety || undefined,\n metric: scopeMetric || undefined,\n }\n : undefined\n }\n />\n </FormModal>\n );\n};\n\nexport default CreateActionModal;\n"],"names":["CreateActionModal","open","onClose","onCreated","variant","prefill","lockPrefill","lockedContext","scopeModeProp","varietyLabel","titlePlaceholder","descriptionPlaceholder","metricPlaceholder","noneScopeHint","titleProp","okTextProp","dimensionOptions","loaders","emptyAssigneeHint","emptyAllocatorHint","onSubmit","onAllocatorConfirmed","defaultStatus","defaultDueDays","width","zIndex","saving","setSaving","useState","assigneeOptsRef","useRef","allocatorOptsRef","onAssigneeOptionsReady","useCallback","opts","onAllocatorOptionsReady","isDispatch","useLocked","useNoneScope","scopeFactory","_a","scopeVariety","_b","scopeMetric","_c","lockScope","modalTitle","okText","formInitialData","useMemo","lockedFields","field","idx","_d","dayjs","addDaysYmd","handleSubmit","formData","checked","validateCreateActionPersons","message","createActionPersonWarnMessage","allocatorOpt","fromOptions","allocatorUserId","assigneeUserId","due","normalizeDueDateYmd","assignee","personDisplayName","allocator","factory","variety","metric","title","description","dimension","dimLabel","o","eventLabel","f","payload","actionId","err","code","jsx","FormModal","classNames","styles","CreateActionForm"],"mappings":";;;;;;;;;AA+EA,MAAMA,KAAsD,CAAC;AAAA,EAC3D,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,SAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,eAAAC;AAAA,EACA,WAAWC,IAAgB;AAAA,EAC3B,cAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAOC;AAAA,EACP,QAAQC;AAAA,EACR,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,gBAAAC,IAAiB;AAAA,EACjB,OAAAC,KAAQ;AAAA,EACR,QAAAC,KAAS;AACX,MAAM;;AACJ,QAAM,CAACC,IAAQC,CAAS,IAAIC,GAAS,EAAK,GACpCC,IAAkBC,EAA6B,EAAE,GACjDC,IAAmBD,EAA6B,EAAE,GAClDE,KAAyBC,EAAY,CAACC,MAA+B;AACzE,IAAAL,EAAgB,UAAUK;AAAA,EAC5B,GAAG,CAAA,CAAE,GACCC,KAA0BF,EAAY,CAACC,MAA+B;AAC1E,IAAAH,EAAiB,UAAUG;AAAA,EAC7B,GAAG,CAAA,CAAE,GAECE,IAAahC,MAAY,YACzBiC,IAAY,GAAQ9B,KAAiBA,EAAc,SAAS,IAC5D+B,IAAe,CAACD,KAAa7B,MAAkB,QAC/C+B,MAAeC,IAAAnC,KAAA,gBAAAA,EAAS,YAAT,gBAAAmC,EAAkB,WAAU,IAC3CC,MAAeC,IAAArC,KAAA,gBAAAA,EAAS,YAAT,gBAAAqC,EAAkB,WAAU,IAC3CC,MAAcC,IAAAvC,KAAA,gBAAAA,EAAS,WAAT,gBAAAuC,EAAiB,WAAU,IACzCC,KACJ,CAACR,KACD,CAACC,MACAF,KAAc9B,MACf,GAAQiC,KAAgBE,KAAgBE,IAEpCG,KAAahC,MAAcsB,IAAa,SAAS,WACjDW,KAAShC,MAAeqB,IAAa,OAAO,OAE5CY,KAAkBC,GAAQ,MAAM;;AACpC,UAAMC,IAAuC,CAAA;AAC7C,YAAC3C,KAAiB,CAAA,GAAI,QAAQ,CAAC4C,GAAOC,MAAQ;AAC5C,MAAAF,EAAa,iBAAiBE,CAAG,EAAE,IAAID,EAAM;AAAA,IAC/C,CAAC,GACM;AAAA,MACL,SAAOX,IAAAnC,KAAA,gBAAAA,EAAS,UAAT,gBAAAmC,EAAgB,WAAU;AAAA,MACjC,eAAaE,IAAArC,KAAA,gBAAAA,EAAS,gBAAT,gBAAAqC,EAAsB,WAAU;AAAA,MAC7C,aAAWE,IAAAvC,KAAA,gBAAAA,EAAS,cAAT,gBAAAuC,EAAoB,aAAUS,IAAArC,EAAiB,CAAC,MAAlB,gBAAAqC,EAAqB,UAAS;AAAA,MACvE,QAAQ/B;AAAA,MACR,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,SAASgC,GAAMC,GAAWhC,CAAc,CAAC;AAAA,MACzC,SAASc,KAAaC,IAAe,KAAKC;AAAA,MAC1C,SAASF,KAAaC,IAAe,KAAKG;AAAA,MAC1C,QAAQJ,KAAaC,IAAe,KAAKK;AAAA,MACzC,GAAGO;AAAA,IAAA;AAAA,EAEP,GAAG;AAAA,IACD3C;AAAA,IACAgC;AAAA,IACAE;AAAA,IACAE;AAAA,IACAN;AAAA,IACAC;AAAA,IACAjC,KAAA,gBAAAA,EAAS;AAAA,IACTA,KAAA,gBAAAA,EAAS;AAAA,IACTA,KAAA,gBAAAA,EAAS;AAAA,IACTW;AAAA,IACAM;AAAA,IACAC;AAAA,EAAA,CACD,GAEKiC,KAAe,OAAOC,MAAsC;;AAChE,UAAMC,IAAUC;AAAA,MACd,OAAOF,EAAS,mBAAmB,EAAE;AAAA,MACrC,OAAOA,EAAS,kBAAkB,EAAE;AAAA,MACpC1B,EAAiB;AAAA,MACjBF,EAAgB;AAAA,IAAA;AAElB,QAAI,CAAC6B,EAAQ;AACX,YAAAE,EAAQ,QAAQC,GAA8BH,EAAQ,IAAI,CAAC,GACrD,IAAI,MAAMA,EAAQ,IAAI;AAG9B,UAAM,EAAE,WAAWI,GAAc,UAAUC,MAAgBL,GACrDM,IAAkBF,EAAa,OAC/BG,IAAiBF,EAAY;AACnC,IAAA1C,KAAA,QAAAA,EAAuB2C,IAEvBrC,EAAU,EAAI;AACd,QAAI;AACF,YAAMuC,IAAMC,GAAoBV,EAAS,OAAO,GAC1CW,IAAWC,EAAkBN,GAAaE,CAAc,GACxDK,KAAYD,EAAkBP,GAAcE,CAAe,GAC3DO,IAAUlC,IACZE,IACAD,IACE,KACA,OAAOmB,EAAS,WAAW,EAAE,EAAE,KAAA,GAC/Be,IAAUnC,KAAaC,IAAe,KAAK,OAAOmB,EAAS,WAAW,EAAE,EAAE,KAAA,GAC1EgB,IAASpC,KAAaC,IAAe,KAAK,OAAOmB,EAAS,UAAU,EAAE,EAAE,KAAA,GACxEiB,IAAQ,OAAOjB,EAAS,SAAS,EAAE,EAAE,KAAA,GACrCkB,KAAc,OAAOlB,EAAS,eAAe,EAAE,EAAE,KAAA,GACjDmB,IACJ,OAAOnB,EAAS,aAAa,EAAE,EAAE,UACjC,QAAOpD,KAAA,gBAAAA,EAAS,cAAa,EAAE,EAAE,KAAA,OACjCmC,IAAAxB,EAAiB,CAAC,MAAlB,gBAAAwB,EAAqB,UACrB,IACIqC,OACJjC,KAAAF,IAAA1B,EAAiB,KAAK,CAAC8D,MAAMA,EAAE,UAAUF,CAAS,MAAlD,gBAAAlC,EAAqD,UAArD,gBAAAE,EAA4D,WAAUgC,GAClEG,KAAa1C,KACd9B,KAAiB,CAAA,GACf,IAAI,CAACyE,MAAMA,EAAE,KAAK,EAClB,OAAO,OAAO,EACd,KAAK,KAAK,IACb1C,IACE,CAACoC,GAAOG,EAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK,IAC5C,CAACN,GAASC,GAASC,CAAM,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK,GAErDQ,KAAqC;AAAA,QACzC,OAAAP;AAAA,QACA,aAAaC,MAAe;AAAA,QAC5B,WAAAC;AAAA,QACA,QAAQ,OAAOnB,EAAS,UAAUnC,CAAa;AAAA,QAC/C,UAAA8C;AAAA,QACA,gBAAAH;AAAA,QACA,WAAAK;AAAA,QACA,iBAAAN;AAAA,QACA,OAAOI;AAAA,QACP,SAASF,KAAO;AAAA,QAChB,SAAAK;AAAA,QACA,SAAAC;AAAA,QACA,QAAAC;AAAA;AAAA,QAEA,aAAanC,IAAe,SAAYiC,MAAWlE,KAAA,gBAAAA,EAAS,gBAAe;AAAA,QAC3E,aAAaiC,IAAe,UAAYjC,KAAA,gBAAAA,EAAS,gBAAe;AAAA,QAChE,cAAcoE,KAAU;AAAA,QACxB,YAAAM;AAAA,MAAA,GAGIG,KAAW,MAAM9D,GAAS6D,EAAO;AACvC,MAAArB,EAAQ,QAAQxB,IAAa,UAAU,SAAS,GAChDjC,EAAU+E,EAAQ;AAAA,IACpB,SAASC,GAAK;AACZ,YAAMC,IAAOD,aAAe,QAAQA,EAAI,UAAU;AAClD,YACEC,MAAS,uBACTA,MAAS,uBACTA,MAAS,sBACTA,MAAS,sBAIXxB,EAAQ,MAAMuB,aAAe,QAAQA,EAAI,UAAU,MAAM,GACnDA;AAAA,IACR,UAAA;AACE,MAAAxD,EAAU,EAAK;AAAA,IACjB;AAAA,EACF;AAEA,SACE,gBAAA0D;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,GAAW,uBAAuBC,GAAO,qBAAqB,CAAC;AAAA,MAC1E,OAAO1C;AAAA,MACP,MAAA7C;AAAA,MACA,UAAUC;AAAA,MACV,WAAS;AAAA,MACT,QAAA6C;AAAA,MACA,OAAAvB;AAAA,MACA,QAAAC;AAAA,MACA,iBAAe;AAAA,MACf,eAAe,EAAE,SAASC,GAAA;AAAA,MAC1B,WAAW;AAAA,QACT,MAAMsB;AAAA,QACN,UAAUQ;AAAA,MAAA;AAAA,MAGZ,UAAA,gBAAA6B;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,wBAAAzD;AAAA,UACA,yBAAAG;AAAA,UACA,eAAeE,IAAY9B,IAAgB;AAAA,UAC3C,WAAW8B,IAAY,WAAWC,IAAe,SAAS;AAAA,UAC1D,cAAcD,KAAaC,IAAe,SAAY7B;AAAA,UACtD,kBAAAC;AAAA,UACA,wBAAAC;AAAA,UACA,mBAAmB2B,IAAe,SAAY1B;AAAA,UAC9C,eAAe0B,IAAezB,IAAgB;AAAA,UAC9C,kBAAAG;AAAA,UACA,SAAAC;AAAA,UACA,mBAAAC;AAAA,UACA,oBAAAC;AAAA,UACA,WACE0B,KACI;AAAA,YACE,SAASN,KAAgB;AAAA,YACzB,SAASE,KAAgB;AAAA,YACzB,QAAQE,KAAe;AAAA,UAAA,IAEzB;AAAA,QAAA;AAAA,MAAA;AAAA,IAER;AAAA,EAAA;AAGN;"}
@@ -10,6 +10,8 @@ export type CreateActionPrefill = {
10
10
  dimension?: string;
11
11
  bizDate?: string;
12
12
  factoryCode?: string;
13
+ /** 分厂展示名(与 factoryCode 分离;提交勿把厂码写入此字段) */
14
+ factoryName?: string;
13
15
  };
14
16
  /** 分厂/品种/指标只读锁定 */
15
17
  export type CreateActionScopeLock = {
@@ -1,18 +1,18 @@
1
1
  import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
- import { notification as Ue, Badge as Fe, Button as M, Drawer as ze, Space as Ee, Checkbox as oe, message as $ } from "antd";
2
+ import { notification as Ue, Badge as Fe, Button as D, Drawer as ze, Space as Ee, Checkbox as oe, message as $ } from "antd";
3
3
  import R from "classnames";
4
- import { forwardRef as Ge, useState as f, useRef as v, useMemo as Se, useCallback as N, useImperativeHandle as $e, useEffect as T } from "react";
4
+ import { forwardRef as Ge, useState as f, useRef as T, useMemo as Se, useCallback as N, useImperativeHandle as $e, useEffect as b } from "react";
5
5
  import { createPortal as Ke } from "react-dom";
6
6
  import { sanitizeInboxHtml as je } from "../sanitizeInboxHtml.js";
7
7
  import { INBOX_BADGE_REFRESH_EVENT as Le } from "../requestInboxBadgeRefresh.js";
8
8
  import { emphasizeQuoted as le } from "./emphasizeQuoted.js";
9
9
  import { filterInboxActionsForHost as Ve, resolveInboxItemActions as We, isInboxButtonDriven as Qe } from "./inboxItemActions.js";
10
- import { inboxSceneLabel as Mt, isTerminalActionStatus as At, normalizeInboxActions as Ot, resolveInboxSceneKey as It } from "./inboxItemActions.js";
10
+ import { inboxSceneLabel as Dt, isTerminalActionStatus as Mt, normalizeInboxActions as Ot, resolveInboxSceneKey as It } from "./inboxItemActions.js";
11
11
  import { loadInboxToastPrefs as Xe, shouldToastForMessageType as Ye, saveInboxToastPrefs as Je } from "./toastPrefs.js";
12
12
  import { DEFAULT_INBOX_TOAST_PREFS as Ut } from "./toastPrefs.js";
13
13
  import r from "./style.module.scss.js";
14
14
  import { Bell as qe } from "../../../Icons/Bell.js";
15
- import se, { SEMANTIC_COLORS as A } from "../../../Tag/SemanticTag.js";
15
+ import se, { SEMANTIC_COLORS as M } from "../../../Tag/SemanticTag.js";
16
16
  import Ze from "../../../StateBar/StateBar.js";
17
17
  import et from "../../../SegmentedRadio/SegmentedRadio.js";
18
18
  import tt from "../../../Layout/PageSpin/index.js";
@@ -34,13 +34,13 @@ function ke(u) {
34
34
  }
35
35
  function Be(u) {
36
36
  const o = String(u || "").trim().toLowerCase();
37
- return o === "alert" ? A.DANGER : o === "action" ? A.PRIMARY : o === "remind" ? A.WARNING : A.DEFAULT;
37
+ return o === "alert" ? M.DANGER : o === "action" ? M.PRIMARY : o === "remind" ? M.WARNING : M.DEFAULT;
38
38
  }
39
39
  function dt(u) {
40
40
  return [u.factory, u.variety, u.metric].map((o) => String(o || "").trim()).filter(Boolean).join(" · ");
41
41
  }
42
42
  function ut(u) {
43
- return String(u || "").trim() || A.DEFAULT;
43
+ return String(u || "").trim() || M.DEFAULT;
44
44
  }
45
45
  function mt(u) {
46
46
  try {
@@ -70,9 +70,9 @@ const Rt = Ge(function({
70
70
  getAccessToken: V,
71
71
  onItemAction: ce
72
72
  }, Pe) {
73
- const [W, x] = f(!1), [de, ue] = f(!1), [Q, me] = f(""), [I, H] = f([]), [S, U] = f(0), [fe, X] = f({}), [Y, Re] = f(""), [F, _e] = f("all"), [D, De] = f(() => Xe()), [Me, pe] = f(!1), [J, ye] = f(!1), [b, q] = f(null), L = v(null), k = v(null), Z = v(null), p = v(null), ge = v(!1), he = v(D);
74
- he.current = D;
75
- const ee = v(1), te = v(!1), P = v(!1), z = Se(
73
+ const [W, x] = f(!1), [de, ue] = f(!1), [Q, me] = f(""), [I, H] = f([]), [S, U] = f(0), [fe, X] = f({}), [Y, Re] = f(""), [F, _e] = f("all"), [A, Ae] = f(() => Xe()), [De, pe] = f(!1), [J, ye] = f(!1), [p, q] = f(null), L = T(null), k = T(null), Z = T(null), y = T(null), ge = T(!1), he = T(A);
74
+ he.current = A;
75
+ const ee = T(1), te = T(!1), P = T(!1), z = Se(
76
76
  () => ({
77
77
  messageType: Y || void 0,
78
78
  unreadOnly: F === "unread" || void 0,
@@ -103,8 +103,8 @@ const Rt = Ge(function({
103
103
  ...z
104
104
  }), n = (t == null ? void 0 : t.pageData) || [], l = typeof (t == null ? void 0 : t.total) == "number" ? t.total : 0;
105
105
  H((i) => {
106
- const s = new Set(i.map((y) => y.id)), m = n.filter((y) => (y == null ? void 0 : y.id) && !s.has(y.id)), h = m.length ? [...i, ...m] : i;
107
- return P.current = m.length > 0 && (l > 0 ? h.length < l : m.length >= E), h;
106
+ const s = new Set(i.map((g) => g.id)), m = n.filter((g) => (g == null ? void 0 : g.id) && !s.has(g.id)), v = m.length ? [...i, ...m] : i;
107
+ return P.current = m.length > 0 && (l > 0 ? v.length < l : m.length >= E), v;
108
108
  }), n.length && (ee.current = e), typeof (t == null ? void 0 : t.unreadTotal) == "number" && U(t.unreadTotal), t != null && t.unreadByMessageType && X(t.unreadByMessageType);
109
109
  } catch {
110
110
  P.current = !1;
@@ -112,46 +112,46 @@ const Rt = Ge(function({
112
112
  te.current = !1, pe(!1);
113
113
  }
114
114
  }
115
- }, [o, E, z]), Ae = N(
115
+ }, [o, E, z]), Me = N(
116
116
  (e) => {
117
117
  const t = e.currentTarget;
118
118
  t.scrollHeight - t.scrollTop - t.clientHeight <= ct && ve();
119
119
  },
120
120
  [ve]
121
- ), g = N(async () => {
121
+ ), h = N(async () => {
122
122
  try {
123
123
  const e = await o({ currentPage: 1, pageSize: E });
124
124
  U(typeof (e == null ? void 0 : e.unreadTotal) == "number" ? e.unreadTotal : 0), X((e == null ? void 0 : e.unreadByMessageType) || {});
125
125
  } catch {
126
126
  }
127
127
  }, [o, E]), ne = N(() => {
128
- p.current != null && (window.clearTimeout(p.current), p.current = null), q(null);
128
+ y.current != null && (window.clearTimeout(y.current), y.current = null), q(null);
129
129
  }, []), Te = N(() => {
130
130
  ne(), x(!0);
131
131
  }, [ne]), be = N(() => {
132
132
  const e = Z.current;
133
133
  if (Z.current = null, !e || !Ye(he.current, e.messageType)) return;
134
- p.current != null && (window.clearTimeout(p.current), p.current = null);
134
+ y.current != null && (window.clearTimeout(y.current), y.current = null);
135
135
  const t = `inbox-badge-${e.messageType || "msg"}-${Date.now()}`;
136
136
  q({
137
137
  key: t,
138
138
  title: e.title || "新站内信",
139
139
  summary: e.summary || "",
140
140
  messageType: e.messageType
141
- }), p.current = window.setTimeout(() => {
142
- p.current = null, q(null);
141
+ }), y.current = window.setTimeout(() => {
142
+ y.current = null, q(null);
143
143
  }, at);
144
144
  }, []), w = N(
145
145
  (e) => {
146
146
  e && (Z.current = e, be()), k.current != null && window.clearTimeout(k.current), k.current = window.setTimeout(() => {
147
- k.current = null, g();
147
+ k.current = null, h();
148
148
  }, it);
149
149
  },
150
- [g, be]
150
+ [h, be]
151
151
  );
152
- $e(Pe, () => ({ refreshBadge: g }), [g]), T(() => {
153
- g();
154
- }, [g]), T(() => {
152
+ $e(Pe, () => ({ refreshBadge: h }), [h]), b(() => {
153
+ h();
154
+ }, [h]), b(() => {
155
155
  if (ie !== void 0) {
156
156
  if (!ge.current) {
157
157
  ge.current = !0;
@@ -159,13 +159,13 @@ const Rt = Ge(function({
159
159
  }
160
160
  w();
161
161
  }
162
- }, [ie, w]), T(() => {
162
+ }, [ie, w]), b(() => {
163
163
  if (K <= 0) return;
164
164
  const e = window.setInterval(() => {
165
- g();
165
+ h();
166
166
  }, K);
167
167
  return () => window.clearInterval(e);
168
- }, [K, g]), T(() => {
168
+ }, [K, h]), b(() => {
169
169
  const e = () => {
170
170
  L.current != null && window.clearTimeout(L.current), L.current = window.setTimeout(() => {
171
171
  L.current = null, w();
@@ -176,17 +176,17 @@ const Rt = Ge(function({
176
176
  return window.addEventListener("focus", e), document.addEventListener("visibilitychange", t), () => {
177
177
  window.removeEventListener("focus", e), document.removeEventListener("visibilitychange", t), L.current != null && (window.clearTimeout(L.current), L.current = null);
178
178
  };
179
- }, [w]), T(() => {
179
+ }, [w]), b(() => {
180
180
  const e = (t) => {
181
181
  const n = t.detail;
182
182
  w((n == null ? void 0 : n.preview) || void 0);
183
183
  };
184
184
  return window.addEventListener(Le, e), () => window.removeEventListener(Le, e);
185
- }, [w]), T(() => {
185
+ }, [w]), b(() => {
186
186
  Ue.destroy();
187
- }, []), T(() => () => {
188
- k.current != null && (window.clearTimeout(k.current), k.current = null), p.current != null && (window.clearTimeout(p.current), p.current = null);
189
- }, []), T(() => {
187
+ }, []), b(() => () => {
188
+ k.current != null && (window.clearTimeout(k.current), k.current = null), y.current != null && (window.clearTimeout(y.current), y.current = null);
189
+ }, []), b(() => {
190
190
  if (j === !1 || typeof V != "function" || typeof window > "u" || typeof EventSource > "u") return;
191
191
  const e = String(j || "/api/v1/msg-center/inbox/stream").trim();
192
192
  let t = !1, n = null, l = null, i = 0;
@@ -195,17 +195,17 @@ const Rt = Ge(function({
195
195
  w(He);
196
196
  }, m = () => {
197
197
  l != null && (window.clearTimeout(l), l = null);
198
- }, h = () => {
198
+ }, v = () => {
199
199
  if (t || l != null) return;
200
200
  const c = Math.min(3e4, 1e3 * 2 ** Math.min(i, 5));
201
201
  i += 1, l = window.setTimeout(() => {
202
- l = null, y();
202
+ l = null, g();
203
203
  }, c);
204
- }, y = () => {
204
+ }, g = () => {
205
205
  if (t) return;
206
206
  const c = String(V() || "").trim();
207
207
  if (!c) {
208
- h();
208
+ v();
209
209
  return;
210
210
  }
211
211
  n && (n.removeEventListener("badge", s), n.removeEventListener("inbox", s), n.close(), n = null);
@@ -214,19 +214,19 @@ const Rt = Ge(function({
214
214
  try {
215
215
  n = new EventSource(B.toString());
216
216
  } catch {
217
- h();
217
+ v();
218
218
  return;
219
219
  }
220
220
  n.addEventListener("badge", s), n.addEventListener("inbox", s), n.onopen = () => {
221
221
  i = 0;
222
222
  }, n.onerror = () => {
223
- t || (n == null || n.close(), n = null, h());
223
+ t || (n == null || n.close(), n = null, v());
224
224
  };
225
225
  };
226
- return y(), () => {
226
+ return g(), () => {
227
227
  t = !0, m(), n && (n.removeEventListener("badge", s), n.removeEventListener("inbox", s), n.close(), n = null);
228
228
  };
229
- }, [j, V, w]), T(() => {
229
+ }, [j, V, w]), b(() => {
230
230
  W && G();
231
231
  }, [W, G]);
232
232
  const Oe = Se(
@@ -239,7 +239,7 @@ const Rt = Ge(function({
239
239
  }),
240
240
  [fe, S]
241
241
  ), re = (e, t) => {
242
- De((n) => {
242
+ Ae((n) => {
243
243
  const l = { ...n, [e]: t };
244
244
  return Je(l), l;
245
245
  });
@@ -263,7 +263,7 @@ const Rt = Ge(function({
263
263
  if (!t.disabled) {
264
264
  if (ce) {
265
265
  try {
266
- await ce(t.kind, e), x(!1), G(), g();
266
+ await ce(t.kind, e), x(!1), G(), h();
267
267
  } catch (n) {
268
268
  $.error(n instanceof Error ? n.message : "操作失败");
269
269
  }
@@ -276,17 +276,17 @@ const Rt = Ge(function({
276
276
  ye(!0);
277
277
  try {
278
278
  const e = await C(), t = typeof (e == null ? void 0 : e.updated) == "number" ? e.updated : void 0;
279
- $.success(typeof t == "number" ? `已清空 ${t} 条未读` : "已清空未读"), await G(), await g();
279
+ $.success(typeof t == "number" ? `已清空 ${t} 条未读` : "已清空未读"), await G(), await h();
280
280
  } catch (e) {
281
281
  $.error(e instanceof Error ? e.message : "清空未读失败");
282
282
  } finally {
283
283
  ye(!1);
284
284
  }
285
285
  }
286
- }, Ne = b ? ke(b.messageType) : "";
286
+ }, Ne = p ? ke(p.messageType) : "";
287
287
  return /* @__PURE__ */ d("div", { className: R(r.bellWrap, Ce), children: [
288
288
  /* @__PURE__ */ a(Fe, { count: S, size: "small", overflowCount: 99, offset: [-4, 4], children: /* @__PURE__ */ a(
289
- M,
289
+ D,
290
290
  {
291
291
  type: "text",
292
292
  className: r.bellBtn,
@@ -295,11 +295,17 @@ const Rt = Ge(function({
295
295
  onClick: () => x(!0)
296
296
  }
297
297
  ) }),
298
- b && typeof document < "u" ? Ke(
298
+ p && typeof document < "u" ? Ke(
299
299
  /* @__PURE__ */ a("div", { className: r.toastHost, "data-testid": "inbox-live-toast-host", children: /* @__PURE__ */ d(
300
300
  "div",
301
301
  {
302
- className: R("marsun-inbox-toast", r.toastNotice),
302
+ className: R(
303
+ "marsun-inbox-toast",
304
+ r.toastNotice,
305
+ p.messageType === "alert" && r.accentAlert,
306
+ p.messageType === "action" && r.accentAction,
307
+ p.messageType === "remind" && r.accentRemind
308
+ ),
303
309
  role: "alert",
304
310
  "data-testid": "inbox-live-toast",
305
311
  onClick: Te,
@@ -317,20 +323,20 @@ const Rt = Ge(function({
317
323
  }
318
324
  ),
319
325
  /* @__PURE__ */ d("div", { className: r.toastHead, children: [
320
- /* @__PURE__ */ a("span", { className: r.toastTitle, children: le(b.title) }),
326
+ /* @__PURE__ */ a("span", { className: r.toastTitle, children: le(p.title) }),
321
327
  Ne ? /* @__PURE__ */ a(
322
328
  se,
323
329
  {
324
- color: Be(b.messageType),
330
+ color: Be(p.messageType),
325
331
  className: r.typeTag,
326
332
  children: Ne
327
333
  }
328
334
  ) : null
329
335
  ] }),
330
336
  /* @__PURE__ */ d("div", { className: r.toastBody, children: [
331
- b.summary ? /* @__PURE__ */ a("div", { className: r.toastDesc, children: le(b.summary) }) : null,
337
+ p.summary ? /* @__PURE__ */ a("div", { className: r.toastDesc, children: le(p.summary) }) : null,
332
338
  /* @__PURE__ */ a("div", { className: r.toastActions, children: /* @__PURE__ */ a(
333
- M,
339
+ D,
334
340
  {
335
341
  type: "primary",
336
342
  size: "small",
@@ -343,7 +349,7 @@ const Rt = Ge(function({
343
349
  ] })
344
350
  ]
345
351
  },
346
- b.key
352
+ p.key
347
353
  ) }),
348
354
  document.body
349
355
  ) : null,
@@ -387,7 +393,7 @@ const Rt = Ge(function({
387
393
  }
388
394
  ),
389
395
  C ? /* @__PURE__ */ a(
390
- M,
396
+ D,
391
397
  {
392
398
  type: "link",
393
399
  size: "small",
@@ -407,7 +413,7 @@ const Rt = Ge(function({
407
413
  /* @__PURE__ */ a(
408
414
  oe,
409
415
  {
410
- checked: D.alert,
416
+ checked: A.alert,
411
417
  onChange: (e) => re("alert", e.target.checked),
412
418
  children: "预警弹出"
413
419
  }
@@ -415,7 +421,7 @@ const Rt = Ge(function({
415
421
  /* @__PURE__ */ a(
416
422
  oe,
417
423
  {
418
- checked: D.action,
424
+ checked: A.action,
419
425
  onChange: (e) => re("action", e.target.checked),
420
426
  children: "行动弹出"
421
427
  }
@@ -423,7 +429,7 @@ const Rt = Ge(function({
423
429
  /* @__PURE__ */ a(
424
430
  oe,
425
431
  {
426
- checked: D.remind,
432
+ checked: A.remind,
427
433
  onChange: (e) => re("remind", e.target.checked),
428
434
  children: "提醒弹出"
429
435
  }
@@ -437,12 +443,12 @@ const Rt = Ge(function({
437
443
  wrapperClassName: R("inbox-bell-list-scroll", r.listScroll),
438
444
  className: r.listViewport,
439
445
  "data-testid": "inbox-bell-list-scroll",
440
- onScroll: Ae,
446
+ onScroll: Me,
441
447
  children: [
442
448
  /* @__PURE__ */ a("ul", { className: r.list, children: I.map((e) => {
443
449
  const t = ke(e.messageType), n = String(e.levelLabel || e.level || "").trim(), l = !!n, i = je(e.bodyHtml), s = Ve(
444
450
  We(e)
445
- ), m = Qe(e), h = dt(e), y = !!s.primary;
451
+ ), m = Qe(e), v = dt(e), g = !!s.primary;
446
452
  return /* @__PURE__ */ a("li", { children: /* @__PURE__ */ d(
447
453
  "div",
448
454
  {
@@ -479,7 +485,7 @@ const Rt = Ge(function({
479
485
  dangerouslySetInnerHTML: { __html: i }
480
486
  }
481
487
  ) : e.summary ? /* @__PURE__ */ a("span", { className: r.itemSummary, children: le(e.summary) }) : null }),
482
- h ? /* @__PURE__ */ a("span", { className: r.itemMeta, children: h }) : null,
488
+ v ? /* @__PURE__ */ a("span", { className: r.itemMeta, children: v }) : null,
483
489
  l ? /* @__PURE__ */ a("div", { className: r.itemFooterTags, children: /* @__PURE__ */ a(
484
490
  se,
485
491
  {
@@ -489,7 +495,7 @@ const Rt = Ge(function({
489
495
  children: n
490
496
  }
491
497
  ) }) : null,
492
- y && s.primary ? /* @__PURE__ */ a(
498
+ g && s.primary ? /* @__PURE__ */ a(
493
499
  "div",
494
500
  {
495
501
  className: r.itemActions,
@@ -497,7 +503,7 @@ const Rt = Ge(function({
497
503
  onKeyDown: (c) => c.stopPropagation(),
498
504
  children: /* @__PURE__ */ d(Ee, { size: 8, wrap: !0, children: [
499
505
  /* @__PURE__ */ a(
500
- M,
506
+ D,
501
507
  {
502
508
  size: "small",
503
509
  type: "primary",
@@ -506,7 +512,7 @@ const Rt = Ge(function({
506
512
  }
507
513
  ),
508
514
  s.secondary ? /* @__PURE__ */ a(
509
- M,
515
+ D,
510
516
  {
511
517
  size: "small",
512
518
  type: "link",
@@ -521,7 +527,7 @@ const Rt = Ge(function({
521
527
  }
522
528
  ) }, e.id);
523
529
  }) }),
524
- Me ? /* @__PURE__ */ a("p", { className: R("inbox-bell-list-footer", r.listFooter), children: "加载中…" }) : null
530
+ De ? /* @__PURE__ */ a("p", { className: R("inbox-bell-list-footer", r.listFooter), children: "加载中…" }) : null
525
531
  ]
526
532
  }
527
533
  ) }) })
@@ -534,9 +540,9 @@ export {
534
540
  Ut as DEFAULT_INBOX_TOAST_PREFS,
535
541
  Rt as default,
536
542
  Ve as filterInboxActionsForHost,
537
- Mt as inboxSceneLabel,
543
+ Dt as inboxSceneLabel,
538
544
  Qe as isInboxButtonDriven,
539
- At as isTerminalActionStatus,
545
+ Mt as isTerminalActionStatus,
540
546
  Xe as loadInboxToastPrefs,
541
547
  Ot as normalizeInboxActions,
542
548
  We as resolveInboxItemActions,