feat: 扫码页支持URL参数自动查询 — /scan?sn=xxx 直接展示流转树
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
/** 扫码干活页 — 编排摄像头扫码 + 手动输入 + 查询结果 */
|
||||
import { useState, useCallback, Suspense, lazy } from "react";
|
||||
import { useState, useCallback, useEffect, Suspense, lazy } from "react";
|
||||
import { useSearchParams } from "react-router-dom";
|
||||
import { QrCode, Loader2 } from "lucide-react";
|
||||
import { scanProduct } from "../services/productApi";
|
||||
import type { ProductScanResponse } from "../types/api";
|
||||
@ -10,6 +11,7 @@ import QueryResult from "../components/scan/QueryResult";
|
||||
const CameraScanner = lazy(() => import("../components/scan/CameraScanner"));
|
||||
|
||||
export default function ScanPage() {
|
||||
const [searchParams] = useSearchParams();
|
||||
const [cameraActive, setCameraActive] = useState(false);
|
||||
const [cameraError, setCameraError] = useState<string | null>(null);
|
||||
const [serialNumber, setSerialNumber] = useState("");
|
||||
@ -39,6 +41,12 @@ export default function ScanPage() {
|
||||
}
|
||||
}, []);
|
||||
|
||||
// URL 参数自动查询(支持从看板等外部跳转)
|
||||
useEffect(() => {
|
||||
const sn = searchParams.get("sn");
|
||||
if (sn) doQuery(sn.trim());
|
||||
}, [searchParams, doQuery]);
|
||||
|
||||
/** 扫码回调:提取纯产品身份证 */
|
||||
const handleScan = useCallback(
|
||||
(decodedText: string) => {
|
||||
|
||||
Reference in New Issue
Block a user