/**
* UI: only unit.isCurrent confirmable; history readonly + tag
*/
import fs from "fs";
// --- Shell ---
{
const path = "src/components/MailInstructionUnitShell.tsx";
let src = fs.readFileSync(path, "utf8");
const oldExtra = ` extra={
unit.keywords.length ? (
{unit.keywords.slice(0, 6).map((k) => (
{k}
))}
) : null
}`;
const newExtra = ` extra={
{unit.isCurrent ? "\u53ef\u786e\u8ba4" : "\u5386\u53f2\u53ea\u8bfb"}
{unit.keywords.slice(0, 5).map((k) => (
{k}
))}
}`;
if (!src.includes(oldExtra)) throw new Error("shell extra block missing");
src = src.replace(oldExtra, newExtra);
fs.writeFileSync(path, src);
console.log("shell ok");
}
// --- MailBusinessSummary confirm gates ---
{
const path = "src/components/MailBusinessSummary.tsx";
let src = fs.readFileSync(path, "utf8");
// transfer: only current can confirm / edit WO fallback
src = src.replace(
` {blocked ? (
void submitWorkOrder()}
>
\u8f6c\u4ed3\u4e0d\u53ef\u7528\uff0c\u63d0\u4ea4\u5de5\u5355
) : (
);
}`,
` if (canConfirmOps && unit.isCurrent) {
actions = blocked ? (
) : (
);
}`,
);
// work_order mode
src = src.replace(
` setWorkOrderValue((v) => ({ ...v, ...p }))}
/>
);
if (canConfirmOps && mail.mail_type === "WORK_ORDER") {`,
` setWorkOrderValue((v) => ({ ...v, ...p }))}
/>
);
if (canConfirmOps && unit.isCurrent) {`,
);
// do_upload
src = src.replace(
` setDoValue((v) => ({ ...v, ...p }))}
/>
);
if (
canConfirmOps &&
(mail.mail_type === "DO_UPLOAD" || unit.isCurrent)
) {`,
` setDoValue((v) => ({ ...v, ...p }))}
/>
);
if (canConfirmOps && unit.isCurrent) {`,
);
fs.writeFileSync(path, src);
console.log("summary ok", {
transferCur: src.includes("canConfirmOps && unit.isCurrent"),
woMode: src.includes('mode={canConfirmOps && unit.isCurrent ? "edit"'),
});
}