rtgk-screen-web/pages/reports/picView/index.js

109 lines
2.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { useRouter, useCallback } from "next/router";
import "antd/dist/antd.css";
import { Image } from "antd";
import React, { useEffect, useMemo, useState } from "react";
import {
getShotImgByProductBatchNo,
getShotImg,
} from "../../../reportUtils/getQueryData";
const { config: { mesUrl } = {} } = global;
import _ from "lodash";
const ListItem = React.memo((props) => {
const { itemData } = props;
return (
<div className="border-t-[1px] border-[#D2D2D2] px-4 pb-2">
<div className=" flex flex-row space-x-7 py-2">
<div>
<label>工序</label>
<label>{itemData.operationName}</label>
</div>
<div>
<label>质检单模板名称</label>
<label>{itemData.templateName}</label>
</div>
<div>
<label>拍照时间</label>
<label>{itemData.imgShotTime}</label>
</div>
</div>
<div className="flex flex-row space-x-7 ">
<Imag imgurls={itemData.imgPath}></Imag>
</div>
</div>
);
});
function Imag(props) {
const { imgurls } = props;
const [imglist, setImgList] = useState([]);
useEffect(() => {
setImgList([]);
imgurls.map((imgsrc) => {
getShotImg(mesUrl + imgsrc).then((rep) => {
setImgList((prev) => {
return [...prev, URL.createObjectURL(rep)];
});
});
});
}, []);
return imglist.map((imgsrc) => {
return (
<Image
width={200}
height={240}
// className=" w-24 h-32 border"
src={imgsrc ?? "../img/noImg.png"}
/>
);
});
}
const List = React.memo((props) => {
const { dataSource } = props;
return (
<div className=" ">
{dataSource?.map((item) => {
return <ListItem itemData={item}></ListItem>;
})}
</div>
);
});
const Header = React.memo((props) => {
const { productBatchNo } = props;
return (
<div className=" py-6 px-4">
<label className=" ">批次生产单</label>
<label>{productBatchNo}</label>
</div>
);
});
const getQueryVariable = (name) => {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]);
return null;
};
export default function PicView() {
const [data, setData] = useState([]);
const [productBatchNo, setProductBatchNo] = useState([]);
useEffect(() => {
setProductBatchNo(getQueryVariable("productBatchNo"));
}, []);
useEffect(() => {
getShotImgByProductBatchNo(productBatchNo).then((json) => {
setData(json);
});
}, [productBatchNo]);
return (
<div className="font-bold">
<Header productBatchNo={data.productBatchNo}></Header>
<List dataSource={data.imgItemList}></List>
</div>
);
}