diff --git a/src/components/DuplexToggle.css b/src/components/DuplexToggle.css new file mode 100644 index 0000000..cb56ce5 --- /dev/null +++ b/src/components/DuplexToggle.css @@ -0,0 +1,32 @@ +.duplex-toggle { + display: flex; + align-items: center; + cursor: pointer; + user-select: none; + gap: 10px; + transition: opacity 0.2s ease; +} + +.duplex-toggle:hover { + opacity: 0.8; +} + +.duplex-toggle-icon { + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + font-size: 16px; + transition: all 0.2s ease; + flex-shrink: 0; + font-family: NotoSansCJKsc-Medium; +} + + +.duplex-toggle-label { + font-size: 20px; + font-family: NotoSansCJKsc-Regular; + color: rgba(0, 45, 93, 1); +} \ No newline at end of file diff --git a/src/components/DuplexToggle.tsx b/src/components/DuplexToggle.tsx new file mode 100644 index 0000000..f9454ca --- /dev/null +++ b/src/components/DuplexToggle.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import "./DuplexToggle.css"; + +interface DuplexToggleProps { + checked: boolean; + onChange: (checked: boolean) => void; + label?: string; +} + +const DuplexToggle: React.FC = ({ + checked, + onChange, + label = "", +}) => { + const handleClick = () => { + onChange(!checked); + }; + + return ( +
+
+ {checked ? "双" : "单"} +
+ {label} +
+ ); +}; + +export default DuplexToggle; + diff --git a/src/pages/UI8/UI8.css b/src/pages/UI8/UI8.css index 6176201..e33e24a 100644 --- a/src/pages/UI8/UI8.css +++ b/src/pages/UI8/UI8.css @@ -355,28 +355,4 @@ display: flex; justify-content: flex-end; align-items: center; -} - -.ui8-duplex-label { - display: flex; - align-items: center; - cursor: pointer; - user-select: none; - border: none; - background-color: inherit; -} - -.ui8-duplex-checkbox { - width: 16px; - height: 16px; - cursor: pointer; - accent-color: rgba(0, 45, 93, 0); - border: none; - background-color: inherit; -} - -.ui8-duplex-text { - font-size: 20px; - font-family: NotoSansCJKsc-Regular; - color: rgba(0, 45, 93, 0); } \ No newline at end of file diff --git a/src/pages/UI8/UI8.tsx b/src/pages/UI8/UI8.tsx index a6f6d86..db346b4 100644 --- a/src/pages/UI8/UI8.tsx +++ b/src/pages/UI8/UI8.tsx @@ -5,6 +5,7 @@ import "./UI8.css"; import "../../assets/css/basic.css"; import { useNavigate } from "react-router-dom"; import ConfirmButton from "../../components/ConfirmButton"; +import DuplexToggle from "../../components/DuplexToggle"; import ui8A from "../../assets/ui8A.png"; import ui8B from "../../assets/ui8B.png"; import { getDaojiandanPdf } from "../../api/hisApi"; @@ -410,6 +411,17 @@ const UI8: React.FC = () => { } }} > + { + setDuplexEnabled(enabled); + localStorage.setItem(PREFERRED_DUPLEX_KEY, enabled.toString()); + window.electronAPI?.log( + "info", + `[UI8] 双面打印设置为: ${enabled ? "启用" : "禁用"}` + ); + }} + /> {printersLoading ? "打印机加载中..." @@ -447,25 +459,7 @@ const UI8: React.FC = () => { {printerError && (
{printerError}
)} - -
-