164 lines
4.8 KiB
JavaScript
164 lines
4.8 KiB
JavaScript
/** @format */
|
||
import react from "react";
|
||
import LabelCheck from "./LabelCheck";
|
||
import VLabel from "./VLabel";
|
||
import { PuzzleIcon, PauseIcon, RefreshIcon } from "@heroicons/react/solid";
|
||
import eqs from "../../../utils/eqs";
|
||
import AutoCompleteCombobox from "../Combobox";
|
||
import requests from "../../../utils/requests";
|
||
import { doPost } from "../../../utils/requests";
|
||
const { eqstatus, orderstatus } = eqs;
|
||
|
||
function Header({
|
||
factorychanged,
|
||
setTypeList,
|
||
statuslist,
|
||
typeList,
|
||
typechanged,
|
||
zzref,
|
||
getEqData,
|
||
runningstatuschanged,
|
||
selectedone
|
||
}) {
|
||
const [factoryData, setfactoryData] = react.useState(null);
|
||
const [ischeckAll, setIscheckAll] = react.useState(true);
|
||
let getCount = (key) => {
|
||
if (statuslist) {
|
||
var aa = 0;
|
||
Object.keys(statuslist).forEach((x) => {
|
||
if (key === parseInt(x)) {
|
||
aa = statuslist[x];
|
||
}
|
||
});
|
||
return aa;
|
||
} else {
|
||
return 0;
|
||
}
|
||
};
|
||
var selectChanged = (item) => {
|
||
factorychanged(item);
|
||
};
|
||
react.useEffect(() => {}, [typeList]);
|
||
react.useEffect(() => {
|
||
doPost(requests.fetchFactory.url, {
|
||
removePermission: true,
|
||
page: 1,
|
||
pageSize: 100000,
|
||
sorted: "serialNumber"
|
||
})
|
||
.then((res) => res.json())
|
||
.then((data) => {
|
||
setfactoryData(data.data);
|
||
})
|
||
.catch((ex) => {
|
||
console.log(ex);
|
||
});
|
||
|
||
doPost(requests.fetchType.url, {
|
||
removePermission: true,
|
||
page: 1,
|
||
pageSize: 100000,
|
||
})
|
||
.then((res) => res.json())
|
||
.then((data) => {
|
||
if (data.success) {
|
||
if (data.data) {
|
||
var typecodedata = data.data
|
||
.sort((a, b) => (parseInt(a.code) > parseInt(b.code) ? 1 : -1))
|
||
.map((a) => {
|
||
return {
|
||
code: a.code,
|
||
name: a.name,
|
||
};
|
||
});
|
||
setTypeList(typecodedata);
|
||
}
|
||
}
|
||
});
|
||
}, []);
|
||
return (
|
||
<header
|
||
className="flex flex-col h-auto space-y-2 sticky top-0 z-20 "
|
||
ref={zzref}
|
||
>
|
||
{/* <div className="flex plblue h-12 px-3">
|
||
<PuzzleIcon className="flex-none w-11 h-11"></PuzzleIcon>
|
||
<div className=" border-l border-gray-50 my-3 mx-3 "></div>
|
||
<label className=" text-xl text-white flex items-center ">
|
||
融通高科设备状态大屏
|
||
</label>
|
||
</div> */}
|
||
<div className="px-3 bg-white h-14 flex items-center ">
|
||
<div className="flex items-center ">
|
||
<VLabel>车间</VLabel>
|
||
<AutoCompleteCombobox
|
||
dataSource={factoryData}
|
||
selectChanged={selectChanged}
|
||
selectedone={selectedone}
|
||
/>
|
||
<div className=" w-5"></div>
|
||
|
||
<VLabel>分类</VLabel>
|
||
<AutoCompleteCombobox
|
||
dataSource={typeList}
|
||
selectChanged={typechanged}
|
||
/>
|
||
</div>
|
||
<div className="flex-auto"></div>
|
||
<div className="flex flex-row ">
|
||
<div className="flex flex-row items-center mr-3">
|
||
<span> 刷新设备数据: </span>{" "}
|
||
<button type="button" onClick={getEqData}>
|
||
<RefreshIcon className="flex-none w-5 h-5 text-gray-300 "></RefreshIcon>{" "}
|
||
</button>
|
||
</div>
|
||
<div className="space-x-2 items-center flex flex-row ">
|
||
<VLabel>设备运行状态</VLabel>
|
||
{eqstatus
|
||
.sort((a, b) => (a.idx > b.idx ? 1 : -1))
|
||
.filter((z) => {
|
||
if (z.key >= -10) return z;
|
||
})
|
||
.map((item, idx) => (
|
||
<LabelCheck
|
||
oncheckchange={(val) => {
|
||
if(item.key===-10){
|
||
setIscheckAll(val.target.checked)
|
||
}
|
||
runningstatuschanged(item.key, val.target.checked);
|
||
}}
|
||
key={idx}
|
||
keyv={item.key}
|
||
PrefixTitle={item.title}
|
||
SuffixTitle={item.unit}
|
||
checked= {ischeckAll}
|
||
Count={item.key == -10 ? "" : getCount(item.key)}
|
||
Bg={item.bg}
|
||
></LabelCheck>
|
||
))}
|
||
</div>
|
||
{/* <div className=" border-l border-gray-300 mx-6"></div>
|
||
|
||
<div className="space-x-2 items-center flex flex-row ">
|
||
<VLabel>设备生产状态</VLabel>
|
||
{orderstatus.map((item, idx) => (
|
||
<LabelCheck
|
||
key={idx}
|
||
PrefixTitle={item.title}
|
||
SuffixTitle={item.unit}
|
||
Count={
|
||
item.key === "1" ? productCount : allEquipCount-productCount
|
||
}
|
||
Bg={item.bg}
|
||
></LabelCheck>
|
||
))}
|
||
</div> */}
|
||
</div>
|
||
</div>
|
||
<div className=" mt-4"></div>
|
||
</header>
|
||
);
|
||
}
|
||
|
||
export default Header;
|