This commit is contained in:
wyw 2024-08-15 15:32:22 +08:00
commit 3bded7145f
2 changed files with 553 additions and 493 deletions

View File

@ -159,6 +159,13 @@ class BI007FormRunAnalysisNew extends React.Component {
title: "未完成", title: "未完成",
dataIndex: "UNFINISH_QTY", dataIndex: "UNFINISH_QTY",
key: "UNFINISH_QTY", key: "UNFINISH_QTY",
render: (text, record) => (
<span>
<a onClick={() => this.showUnfinishModal(record)}>
{record.UNFINISH_QTY}
</a>
</span>
),
}, },
{ {
width: "100px", width: "100px",
@ -258,7 +265,7 @@ class BI007FormRunAnalysisNew extends React.Component {
extendRule(json, "CREATE_DATE", 6, startTime); extendRule(json, "CREATE_DATE", 6, startTime);
extendRule(json, "CREATE_DATE", 4, endTime); extendRule(json, "CREATE_DATE", 4, endTime);
extendRule(json, "NOTICE_STATUS", 1, 0); extendRule(json, "NOTICE_STATUS", 1, 0);
extendRule(json, "SHOP_DEPARTMENT_ID", 1, record.DEPARTMENT_ID); extendRule(json, "CLASS_DEPARTMENT_ID", 1, record.DEPARTMENT_ID);
this.props.dispatch({ this.props.dispatch({
type: "app/getDataByPost", type: "app/getDataByPost",
payload: json, payload: json,
@ -294,7 +301,7 @@ class BI007FormRunAnalysisNew extends React.Component {
{ {
id: departmentId, id: departmentId,
name: departmentName, name: departmentName,
noticeTitle: departmentName + "安全生产标准化运行情况", noticeTitle: "安全生产标准化运行情况",
tmpData: newtmpData, tmpData: newtmpData,
currActivatedMenu: "", currActivatedMenu: "",
}, },
@ -441,33 +448,31 @@ class BI007FormRunAnalysisNew extends React.Component {
getDepartId = () => {}; getDepartId = () => {};
//加载数据赋值 //加载数据赋值
loadData = () => { loadData = () => {
// this.ksRun(); this.getShopDepartment();
// this.xkRun(); // var orgId = this.props.login ? this.props.login.OrgId : "";
var orgId = this.props.login ? this.props.login.OrgId : ""; // const jsonTemp = initFilter(orgId);
const jsonTemp = initFilter(orgId); // extendRule(
extendRule( // jsonTemp,
jsonTemp, // "NAME",
"NAME", // 1,
1, // this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS
this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS // );
); // this.props.dispatch({
this.props.dispatch({ // type: "app/getDataByPost",
type: "app/getDataByPost", // payload: jsonTemp,
payload: jsonTemp, // url: "FM/Department/OrderEntities",
url: "FM/Department/OrderEntities", // onComplete: (retDepart) => {
onComplete: (retDepart) => { // if (retDepart) {
if (retDepart) { // this.getShopDepartment(retDepart[0].ID);
// this.getClassDepartment(retDepart[0].ID); // } else {
this.getShopDepartment(retDepart[0].ID); // message.error(
} else { // "未找到部门" +
message.error( // this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS +
"未找到部门" + // ",请先维护"
this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS + // );
",请先维护" // }
); // },
} // });
},
});
}; };
// //
workTicket = () => { workTicket = () => {
@ -863,13 +868,14 @@ class BI007FormRunAnalysisNew extends React.Component {
var orgId = this.props.login ? this.props.login.OrgId : ""; var orgId = this.props.login ? this.props.login.OrgId : "";
const jsonTemp = initFilter(orgId); const jsonTemp = initFilter(orgId);
extendRule(jsonTemp, "DEPARTMENT_TYPE", 1, 2); extendRule(jsonTemp, "DEPARTMENT_TYPE", 1, 2);
extendRule(jsonTemp, "ENABLE_STATUS", 1, 0);
// extendRule(jsonTemp, 'Nav_Parent.PARENT_ID', 1, this.props.data.id); // extendRule(jsonTemp, 'Nav_Parent.PARENT_ID', 1, this.props.data.id);
extendRule( // extendRule(
jsonTemp, // jsonTemp,
"Nav_Parent.Nav_Parent.NAME", // "Nav_Parent.Nav_Parent.NAME",
1, // 1,
this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS // this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS
); // );
extendOrder(jsonTemp, "PARENT_ID", 0); extendOrder(jsonTemp, "PARENT_ID", 0);
extendOrder(jsonTemp, "NAME", 0); extendOrder(jsonTemp, "NAME", 0);
this.props.dispatch({ this.props.dispatch({
@ -942,17 +948,18 @@ class BI007FormRunAnalysisNew extends React.Component {
}); });
}; };
getShopDepartment = (departId) => { getShopDepartment = () => {
var orgId = this.props.login ? this.props.login.OrgId : ""; var orgId = this.props.login ? this.props.login.OrgId : "";
const jsonTemp = initFilter(orgId); const jsonTemp = initFilter(orgId);
extendRule(jsonTemp, "DEPARTMENT_TYPE", 1, 1); extendRule(jsonTemp, "DEPARTMENT_TYPE", 1, 2);
extendRule(jsonTemp, "ENABLE_STATUS", 1, 0);
// extendRule(jsonTemp, 'PARENT_ID', 1, this.props.data.id); // extendRule(jsonTemp, 'PARENT_ID', 1, this.props.data.id);
extendRule( // extendRule(
jsonTemp, // jsonTemp,
"Nav_Parent.NAME", // "Nav_Parent.NAME",
1, // 1,
this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS // this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS
); // );
this.props.dispatch({ this.props.dispatch({
type: "app/getDataByPost", type: "app/getDataByPost",
payload: jsonTemp, payload: jsonTemp,
@ -977,7 +984,7 @@ class BI007FormRunAnalysisNew extends React.Component {
"YYYY-MM-DD 00:00:00" "YYYY-MM-DD 00:00:00"
); );
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59"); let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
let json = initFilter(orgId, departId, "", 1, "", startTime, endTime); let json = initFilter(orgId, null, "", 1, "", startTime, endTime);
// extendRule(json, 'TYPE', 1, this.state.timeType); // extendRule(json, 'TYPE', 1, this.state.timeType);
// extendRule(json, 'DEPARTMENT_TYPE', 1, 1); // extendRule(json, 'DEPARTMENT_TYPE', 1, 1);
// extendRule(json, 'PARENT_DEPARTMENT_ID', 1, this.props.data.id); // extendRule(json, 'PARENT_DEPARTMENT_ID', 1, this.props.data.id);
@ -1160,7 +1167,6 @@ class BI007FormRunAnalysisNew extends React.Component {
fontWeight: "bold", fontWeight: "bold",
}} }}
> >
{this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS}{" "}
安全生产标准化运行情况 安全生产标准化运行情况
</h1> </h1>
<Row style={{ textAlign: "center", fontSize: "15px" }}> <Row style={{ textAlign: "center", fontSize: "15px" }}>
@ -1330,7 +1336,7 @@ class BI007FormRunAnalysisNew extends React.Component {
</Col> </Col>
</div> </div>
</Row> </Row>
<Row {/* <Row
style={{ style={{
marginTop: "20px", marginTop: "20px",
display: "flex", display: "flex",
@ -1368,11 +1374,6 @@ class BI007FormRunAnalysisNew extends React.Component {
/> />
</Col> </Col>
</div> </div>
{/* <Col span={7}>
<h3 style={{textAlign:'center',fontWeight:'bold'}}>{this.props.data.name}安全任务完成情况</h3>
<div id="workTicket" style={{ height: '350px',marginLeft:"40px" ,marginRight:"10px" ,backgroundColor:"white",borderStyle:'solid',borderColor:'#ccc',borderWidth:'1px'}}></div>
</Col> */}
</Row> </Row>
<hr <hr
style={{ style={{
@ -1380,7 +1381,7 @@ class BI007FormRunAnalysisNew extends React.Component {
marginBottom: "20px", marginBottom: "20px",
marginTop: "20px", marginTop: "20px",
}} }}
></hr> ></hr> */}
<Row <Row
style={{ style={{
marginTop: "20px", marginTop: "20px",

View File

@ -9,6 +9,7 @@ import styles from "./full.less";
import echarts from "echarts"; import echarts from "echarts";
import realGif from "../assets/layout/mofang.png"; import realGif from "../assets/layout/mofang.png";
import logo from "../assets/layout/header-logo.png"; import logo from "../assets/layout/header-logo.png";
import debounce from "lodash.debounce";
import { import {
FullScreenContainer, FullScreenContainer,
BorderBox8, BorderBox8,
@ -18,6 +19,7 @@ import {
WaterLevelPond, WaterLevelPond,
} from "@jiaminghi/data-view-react"; } from "@jiaminghi/data-view-react";
import { text } from "@jiaminghi/data-view-react/lib/index-cd27b7f6"; import { text } from "@jiaminghi/data-view-react/lib/index-cd27b7f6";
import { Scale } from "canvg";
const stud = (eve) => { const stud = (eve) => {
return ( return (
@ -39,12 +41,19 @@ const stud = (eve) => {
</div> </div>
); );
}; };
const getScale = () => {
const width = 1920,
height = 1080; // 此处可以根据实际设计稿尺寸修改
let ww = window.innerWidth / width;
let wh = window.innerHeight / height;
return ww < wh ? ww : wh;
};
class FullScreen extends React.Component { class FullScreen extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
screenWidh: window.screen.width > 2000 ? true : false, // screenWidh: window.screen.width > 2000 ? true : false,
nowDate: "", nowDate: "",
checkData: [ checkData: [
{ name: "公司检查", value: 103 }, { name: "公司检查", value: 103 },
@ -234,6 +243,7 @@ class FullScreen extends React.Component {
value: 132, value: 132,
}, },
], ],
scale: getScale(),
}; };
// this.scrollConfig = { // this.scrollConfig = {
// header: ["检查类型", "检查次数", "完成率"], // header: ["检查类型", "检查次数", "完成率"],
@ -251,7 +261,15 @@ class FullScreen extends React.Component {
// }; // };
} }
setScale = debounce(() => {
// debounce节流
// 获取到缩放比,设置它
let scale = getScale();
this.setState({ scale });
}, 500);
componentDidMount() { componentDidMount() {
window.addEventListener("resize", this.setScale); // 得到呈现的屏幕宽高比
this.riskLevel(); this.riskLevel();
this.safedanger(); this.safedanger();
const eve = () => { const eve = () => {
@ -294,6 +312,7 @@ class FullScreen extends React.Component {
// }); // });
} }
componentWillUnmount() { componentWillUnmount() {
window.removeEventListener("resize", this.setScale);
clearInterval(this.timer); clearInterval(this.timer);
} }
getDate = () => { getDate = () => {
@ -923,9 +942,22 @@ class FullScreen extends React.Component {
}; };
render() { render() {
const width = 1920,
height = 1080;
// 固定好16:9的宽高比计算出最合适的缩放比宽高比可根据需要自行更改
const { scale } = this.state;
return ( return (
<React.Fragment> <React.Fragment>
<FullScreenContainer> <FullScreenContainer>
<div
className={styles.box}
style={{
transform: `scale(${scale}) translate(-50%, -50%)`,
WebkitTransform: `scale(${scale}) translate(-50%, -50%)`,
width,
height,
}}
>
<div className={styles.blackBack}> <div className={styles.blackBack}>
<div className={styles.backImage}> <div className={styles.backImage}>
<div className={styles.header}> <div className={styles.header}>
@ -1009,7 +1041,9 @@ class FullScreen extends React.Component {
{/* <BorderBox10> */} {/* <BorderBox10> */}
<div className={styles.title}> <div className={styles.title}>
<div className={styles.circle}></div> <div className={styles.circle}></div>
<div className={styles.titlename}>风险等级基本信息</div> <div className={styles.titlename}>
风险等级基本信息
</div>
</div> </div>
<div <div
@ -1031,7 +1065,9 @@ class FullScreen extends React.Component {
{/* <BorderBox10> */} {/* <BorderBox10> */}
<div className={styles.title}> <div className={styles.title}>
<div className={styles.circle}></div> <div className={styles.circle}></div>
<div className={styles.titlename}>隐患检查基本信息</div> <div className={styles.titlename}>
隐患检查基本信息
</div>
</div> </div>
<div <div
style={{ style={{
@ -1124,47 +1160,60 @@ class FullScreen extends React.Component {
width: "100%", width: "100%",
}} }}
> >
{this.state.screenWidh ? (
<div className={styles.scoreBox}> <div className={styles.scoreBox}>
<div className={styles.score}> <div className={styles.score}>
{/* <div className={styles.scoreLeft}>矿山</div> */} {/* <div className={styles.scoreLeft}>矿山</div> */}
<div className={styles.scoreRight}> <div className={styles.scoreRight}>
<div className={styles.scoreText}>标准化得分</div> <div className={styles.scoreText}>
标准化得分
</div>
<div className={styles.scoreText2}>83</div> <div className={styles.scoreText2}>83</div>
</div> </div>
</div> </div>
<div className={styles.score2}> <div className={styles.score2}>
<div className={styles.scoreRight}> <div className={styles.scoreRight}>
<div className={styles.scoreText}>标准化得分</div> <div className={styles.scoreText}>
标准化得分
</div>
<div className={styles.scoreText2}>88</div> <div className={styles.scoreText2}>88</div>
</div> </div>
</div> </div>
<div className={styles.score3}> <div className={styles.score3}>
<div className={styles.scoreRight}> <div className={styles.scoreRight}>
<div className={styles.scoreText}>标准化得分</div> <div className={styles.scoreText}>
标准化得分
</div>
<div className={styles.scoreText2}>93</div> <div className={styles.scoreText2}>93</div>
</div> </div>
</div> </div>
</div> </div>
{/* {this.state.screenWidh ? (
) : ( ) : (
<div className={styles.scoreBox1}> <div className={styles.scoreBox1}>
<div className={styles.score4}> <div className={styles.score4}>
<div className={styles.scoreLeft}>矿山</div> <div className={styles.scoreLeft}>矿山</div>
<div className={styles.scoreText3}>标准化得分</div> <div className={styles.scoreText3}>
标准化得分
</div>
<div className={styles.scoreText2}>83</div> <div className={styles.scoreText2}>83</div>
</div> </div>
<div className={styles.score4}> <div className={styles.score4}>
<div className={styles.scoreLeft}>选矿</div> <div className={styles.scoreLeft}>选矿</div>
<div className={styles.scoreText3}>标准化得分</div> <div className={styles.scoreText3}>
标准化得分
</div>
<div className={styles.scoreText2}>88</div> <div className={styles.scoreText2}>88</div>
</div> </div>
<div className={styles.score4}> <div className={styles.score4}>
<div className={styles.scoreLeft}>尾矿</div> <div className={styles.scoreLeft}>尾矿</div>
<div className={styles.scoreText3}>标准化得分</div> <div className={styles.scoreText3}>
标准化得分
</div>
<div className={styles.scoreText2}>93</div> <div className={styles.scoreText2}>93</div>
</div> </div>
</div> </div>
)} )} */}
</div> </div>
<div <div
style={{ style={{
@ -1224,7 +1273,9 @@ class FullScreen extends React.Component {
{/* <BorderBox10> */} {/* <BorderBox10> */}
<div className={styles.title}> <div className={styles.title}>
<div className={styles.circle}></div> <div className={styles.circle}></div>
<div className={styles.titlename}>基本会议完成情况</div> <div className={styles.titlename}>
基本会议完成情况
</div>
</div> </div>
<div <div
style={{ style={{
@ -1281,7 +1332,10 @@ class FullScreen extends React.Component {
marginBottom: "10px", marginBottom: "10px",
}} }}
> >
<Row gutter={[8, 8]} style={{ padding: "0px 10px" }}> <Row
gutter={[8, 8]}
style={{ padding: "0px 10px" }}
>
{this.state.meetingData.map((item, index) => ( {this.state.meetingData.map((item, index) => (
<Col span={6}> <Col span={6}>
<div className={styles.gradientThree}> <div className={styles.gradientThree}>
@ -1308,7 +1362,9 @@ class FullScreen extends React.Component {
{/* <BorderBox10> */} {/* <BorderBox10> */}
<div className={styles.title}> <div className={styles.title}>
<div className={styles.circle}></div> <div className={styles.circle}></div>
<div className={styles.titlename}>安全任务完成情况</div> <div className={styles.titlename}>
安全任务完成情况
</div>
</div> </div>
<div <div
style={{ style={{
@ -1459,7 +1515,9 @@ class FullScreen extends React.Component {
> >
<div className={styles.title}> <div className={styles.title}>
<div className={styles.circle}></div> <div className={styles.circle}></div>
<div className={styles.titlename}>班组完成率TOP5</div> <div className={styles.titlename}>
班组完成率TOP5
</div>
</div> </div>
<div className={styles.capsuleChart}> <div className={styles.capsuleChart}>
<CapsuleChart <CapsuleChart
@ -1474,6 +1532,7 @@ class FullScreen extends React.Component {
</div> </div>
</div> </div>
</div> </div>
</div>
</FullScreenContainer> </FullScreenContainer>
</React.Fragment> </React.Fragment>
); );