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 { QrCode, Loader2 } from "lucide-react";
|
||||||
import { scanProduct } from "../services/productApi";
|
import { scanProduct } from "../services/productApi";
|
||||||
import type { ProductScanResponse } from "../types/api";
|
import type { ProductScanResponse } from "../types/api";
|
||||||
@ -10,6 +11,7 @@ import QueryResult from "../components/scan/QueryResult";
|
|||||||
const CameraScanner = lazy(() => import("../components/scan/CameraScanner"));
|
const CameraScanner = lazy(() => import("../components/scan/CameraScanner"));
|
||||||
|
|
||||||
export default function ScanPage() {
|
export default function ScanPage() {
|
||||||
|
const [searchParams] = useSearchParams();
|
||||||
const [cameraActive, setCameraActive] = useState(false);
|
const [cameraActive, setCameraActive] = useState(false);
|
||||||
const [cameraError, setCameraError] = useState<string | null>(null);
|
const [cameraError, setCameraError] = useState<string | null>(null);
|
||||||
const [serialNumber, setSerialNumber] = useState("");
|
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(
|
const handleScan = useCallback(
|
||||||
(decodedText: string) => {
|
(decodedText: string) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user