2025-08-25 10:08:30 +08:00
|
|
|
|
import React from "react";
|
|
|
|
|
|
import { connect } from "dva";
|
|
|
|
|
|
import { initFilter, extendRule, extendOrder } from "../../../utils/common";
|
|
|
|
|
|
import { ChartPieShow, ChartBarShow } from "../../../utils/commonEcharsShow";
|
|
|
|
|
|
import {
|
|
|
|
|
|
Table,
|
|
|
|
|
|
Button,
|
|
|
|
|
|
Row,
|
|
|
|
|
|
Col,
|
|
|
|
|
|
Modal,
|
|
|
|
|
|
Form,
|
|
|
|
|
|
DatePicker,
|
|
|
|
|
|
Icon,
|
|
|
|
|
|
Progress,
|
|
|
|
|
|
Divider,
|
|
|
|
|
|
} from "antd";
|
|
|
|
|
|
import echarts from "echarts";
|
|
|
|
|
|
import styles from "../HI/StepForm1.css";
|
|
|
|
|
|
import moment from "moment";
|
|
|
|
|
|
import { T } from "antd/lib/upload/utils";
|
|
|
|
|
|
import FormPage from "../../FormPage";
|
|
|
|
|
|
|
|
|
|
|
|
class BI009FormRunAnalysis extends React.Component {
|
|
|
|
|
|
constructor(props) {
|
|
|
|
|
|
super(props);
|
|
|
|
|
|
this.state = {
|
2025-11-23 10:39:08 +08:00
|
|
|
|
tableTitle :"",
|
2025-08-25 10:08:30 +08:00
|
|
|
|
selectStartTime: moment(this.getStartDate(), "YYYY-MM-DD 00:00:00"),
|
|
|
|
|
|
selectEndTime: moment(this.getEndDate(), "YYYY-MM-DD 23:59:59"),
|
|
|
|
|
|
visible: false,
|
|
|
|
|
|
noticeTitle: "",
|
|
|
|
|
|
tmpData: {},
|
|
|
|
|
|
tableKey: "1",
|
|
|
|
|
|
timeType: 5,
|
|
|
|
|
|
ordinaryCount: 0,
|
|
|
|
|
|
crucialCount: 0,
|
|
|
|
|
|
activityCount: 0,
|
|
|
|
|
|
postCount: 0,
|
|
|
|
|
|
postChangeCount: 0,
|
|
|
|
|
|
taskCount: 0,
|
|
|
|
|
|
weekColor: "black",
|
|
|
|
|
|
monthColor: "orange",
|
|
|
|
|
|
threeMonthColor: "black",
|
|
|
|
|
|
sixMonthColor: "black",
|
|
|
|
|
|
yearColor: "black",
|
|
|
|
|
|
retData: [],
|
|
|
|
|
|
groupData: [],
|
|
|
|
|
|
detailData: [],
|
|
|
|
|
|
newData: [],
|
|
|
|
|
|
detailDataH: [],
|
|
|
|
|
|
displayHr: "none",
|
|
|
|
|
|
displaydetail: "none",
|
|
|
|
|
|
columns: [
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "80px",
|
|
|
|
|
|
title: "序号",
|
|
|
|
|
|
dataIndex: "Num",
|
|
|
|
|
|
key: "Num",
|
|
|
|
|
|
render: (text, record, index) => <span>{index + 1}</span>,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "250px",
|
|
|
|
|
|
title: "部门",
|
|
|
|
|
|
dataIndex: "DEPARTMENT_NAME",
|
|
|
|
|
|
key: "DEPARTMENT_NAME",
|
|
|
|
|
|
// render: (text, record) => (
|
|
|
|
|
|
// <span>
|
|
|
|
|
|
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
|
|
|
|
|
|
// </span>
|
|
|
|
|
|
// ),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "250px",
|
|
|
|
|
|
title: "班组",
|
|
|
|
|
|
dataIndex: "TEAM_NAME",
|
|
|
|
|
|
key: "TEAM_NAME",
|
|
|
|
|
|
// render: (text, record) => (
|
|
|
|
|
|
// <span>
|
|
|
|
|
|
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
|
|
|
|
|
|
// </span>
|
|
|
|
|
|
// ),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: "完成率",
|
|
|
|
|
|
children: [
|
|
|
|
|
|
{
|
|
|
|
|
|
title: "班前会议",
|
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
|
<span>
|
|
|
|
|
|
{record.FO01_TOTAL == 0
|
|
|
|
|
|
? "0%"
|
|
|
|
|
|
: (
|
|
|
|
|
|
((record.FO01_FINISH + record.FO01_OVERTIME) /
|
|
|
|
|
|
record.FO01_TOTAL) *
|
|
|
|
|
|
100
|
|
|
|
|
|
).toFixed(0) + "%"}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: "岗位交接班",
|
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
|
<span>
|
|
|
|
|
|
{record.FO03_TOTAL == 0
|
|
|
|
|
|
? "0%"
|
|
|
|
|
|
: (
|
|
|
|
|
|
((record.FO03_FINISH + record.FO03_OVERTIME) /
|
|
|
|
|
|
record.FO03_TOTAL) *
|
|
|
|
|
|
100
|
|
|
|
|
|
).toFixed(0) + "%"}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: "岗位当班记录",
|
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
|
<span>
|
|
|
|
|
|
{record.FO02_TOTAL == 0
|
|
|
|
|
|
? "0%"
|
|
|
|
|
|
: (
|
|
|
|
|
|
((record.FO02_FINISH + record.FO02_OVERTIME) /
|
|
|
|
|
|
record.FO02_TOTAL) *
|
|
|
|
|
|
100
|
|
|
|
|
|
).toFixed(0) + "%"}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
// {
|
|
|
|
|
|
// title: '及时完成率',
|
|
|
|
|
|
// children: [
|
|
|
|
|
|
// {
|
|
|
|
|
|
// title: '班前会议',
|
|
|
|
|
|
// render: (text, record) => (<span>{record.FO01_TOTAL == 0?'0%':((record.FO01_FINISH/ record.FO01_TOTAL)*100).toFixed(0)+"%"}</span>)
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// title: '岗位交接班',
|
|
|
|
|
|
// render: (text, record) => (<span>{record.FO03_TOTAL == 0?'0%':((record.FO03_FINISH / record.FO03_TOTAL)*100).toFixed(0)+"%"}</span>)
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// title: '岗位当班记录',
|
|
|
|
|
|
// render: (text, record) => (<span>{record.FO02_TOTAL == 0?'0%':((record.FO02_FINISH / record.FO02_TOTAL)*100).toFixed(0)+"%"}</span>)
|
|
|
|
|
|
// },
|
|
|
|
|
|
// ],
|
|
|
|
|
|
// },
|
|
|
|
|
|
],
|
|
|
|
|
|
detailColumns: [
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "60px",
|
|
|
|
|
|
title: "班组",
|
|
|
|
|
|
dataIndex: "DEPARTMENT_NAME",
|
|
|
|
|
|
key: "DEPARTMENT_NAME",
|
|
|
|
|
|
// render: (text, record) => (
|
|
|
|
|
|
// <span>
|
|
|
|
|
|
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
|
|
|
|
|
|
// </span>
|
|
|
|
|
|
// ),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "60px",
|
|
|
|
|
|
title: "总任务数",
|
|
|
|
|
|
dataIndex: "TOTAL_QTY",
|
|
|
|
|
|
key: "TOTAL_QTY",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "60px",
|
|
|
|
|
|
title: "正常已办",
|
|
|
|
|
|
dataIndex: "FINISH_QTY",
|
|
|
|
|
|
key: "FINISH_QTY",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "60px",
|
|
|
|
|
|
title: "超时已办",
|
|
|
|
|
|
dataIndex: "OVER_FINISH_QTY",
|
|
|
|
|
|
key: "OVER_FINISH_QTY",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "50px",
|
|
|
|
|
|
title: "未完成",
|
|
|
|
|
|
dataIndex: "UNFINISH_QTY",
|
|
|
|
|
|
key: "UNFINISH_QTY",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "100px",
|
|
|
|
|
|
title: "完成率",
|
|
|
|
|
|
dataIndex: "FINISH_RATE",
|
|
|
|
|
|
key: "FINISH_RATE",
|
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
|
<Progress percent={record.FINISH_RATE.split("%")[0]} />
|
|
|
|
|
|
// <span>
|
|
|
|
|
|
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
|
|
|
|
|
|
// </span>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
width: "100px",
|
|
|
|
|
|
title: "及时完成率",
|
|
|
|
|
|
dataIndex: "NORMAL_FINISH_RATE",
|
|
|
|
|
|
key: "NORMAL_FINISH_RATE",
|
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
|
<Progress
|
|
|
|
|
|
percent={record.NORMAL_FINISH_RATE.split("%")[0]}
|
|
|
|
|
|
strokeColor={{
|
|
|
|
|
|
from: "rgba(82, 196, 26)",
|
|
|
|
|
|
to: "rgba(82, 196, 26)",
|
|
|
|
|
|
}}
|
|
|
|
|
|
/>
|
|
|
|
|
|
// <span>
|
|
|
|
|
|
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
|
|
|
|
|
|
// </span>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
componentDidMount() {
|
|
|
|
|
|
this.loadData();
|
|
|
|
|
|
}
|
|
|
|
|
|
showEditModal = (departmentId, departmentName) => {
|
|
|
|
|
|
const newtmpData = {
|
|
|
|
|
|
data: {
|
|
|
|
|
|
id: departmentId,
|
|
|
|
|
|
name: departmentName,
|
|
|
|
|
|
onCancel: this.handleCancel,
|
|
|
|
|
|
tableKey: this.state.tableKey,
|
|
|
|
|
|
homeReload: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
formCode: "BI007_RUNANALYSIS",
|
|
|
|
|
|
};
|
|
|
|
|
|
this.setState(
|
|
|
|
|
|
{
|
|
|
|
|
|
id: departmentId,
|
|
|
|
|
|
name: departmentName,
|
|
|
|
|
|
noticeTitle: departmentName + "安全生产标准化运行情况",
|
|
|
|
|
|
tmpData: newtmpData,
|
|
|
|
|
|
currActivatedMenu: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
() =>
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
visible: true,
|
|
|
|
|
|
})
|
|
|
|
|
|
);
|
|
|
|
|
|
};
|
|
|
|
|
|
showFormModal = (record) => {
|
|
|
|
|
|
const { newData } = this.state;
|
|
|
|
|
|
let newDataTemp = [];
|
|
|
|
|
|
let temp = newData.filter(
|
|
|
|
|
|
(t) =>
|
|
|
|
|
|
t.DEPARTMENT_ID === record.departmentId &&
|
|
|
|
|
|
t.SOURCE_FORMCODE === record.formCode
|
|
|
|
|
|
);
|
|
|
|
|
|
if (temp.length > 0) {
|
|
|
|
|
|
let i = 1;
|
|
|
|
|
|
temp.forEach((t) => {
|
|
|
|
|
|
t.ROW_NO = i;
|
|
|
|
|
|
t.formName = record.formName;
|
|
|
|
|
|
newDataTemp.push(t);
|
|
|
|
|
|
i++;
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
newDataTemp = [];
|
|
|
|
|
|
}
|
|
|
|
|
|
this.setState({ displaydetail: "block", detailDataH: newDataTemp });
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//加载数据赋值
|
|
|
|
|
|
loadData = () => {
|
2025-11-23 10:39:08 +08:00
|
|
|
|
// this.getCompany();
|
2025-08-25 10:08:30 +08:00
|
|
|
|
this.getCount();
|
|
|
|
|
|
this.workTicket();
|
|
|
|
|
|
this.workTicket2();
|
|
|
|
|
|
this.mainJobPie2();
|
|
|
|
|
|
this.getBaseInfoData();
|
|
|
|
|
|
};
|
2025-11-23 10:39:08 +08:00
|
|
|
|
// getCompany = ()=>
|
|
|
|
|
|
// {
|
|
|
|
|
|
// let json = initFilter(this.props.login.OrgId);
|
|
|
|
|
|
// extendRule(json, "PARENT_ID", 1, null);
|
|
|
|
|
|
// extendRule(json, "DEPARTMENT_TYPE", 1, 3);
|
|
|
|
|
|
// extendRule(json, "ENABLE_STATUS", 1, 0);
|
|
|
|
|
|
// this.props.dispatch({
|
|
|
|
|
|
// type: "app/getDataByPost",
|
|
|
|
|
|
// url: "FM/Department/Get",
|
|
|
|
|
|
// payload: json,
|
|
|
|
|
|
// onlyData: false,
|
|
|
|
|
|
// onComplete: (ret) => {
|
|
|
|
|
|
// if (ret && ret.Data) {
|
|
|
|
|
|
// this.setState({
|
|
|
|
|
|
// tableTitle : ret.Data.NAME+"-"
|
|
|
|
|
|
// });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// },
|
|
|
|
|
|
// });
|
|
|
|
|
|
// };
|
2025-08-25 10:08:30 +08:00
|
|
|
|
getDiffDay(date_1, date_2) {
|
|
|
|
|
|
// 计算两个日期之间的差值
|
|
|
|
|
|
let totalDays, diffDate;
|
|
|
|
|
|
let myDate_1 = Date.parse(date_1);
|
|
|
|
|
|
let myDate_2 = Date.parse(date_2);
|
|
|
|
|
|
// 将两个日期都转换为毫秒格式,然后做差
|
|
|
|
|
|
diffDate = Math.abs(myDate_1 - myDate_2); // 取相差毫秒数的绝对值
|
|
|
|
|
|
|
|
|
|
|
|
totalDays = Math.floor(diffDate / (1000 * 3600 * 24)); // 向下取整
|
|
|
|
|
|
// console.log(totalDays)
|
|
|
|
|
|
|
|
|
|
|
|
return totalDays; // 相差的天数
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取数据
|
|
|
|
|
|
getBaseInfoData = () => {
|
|
|
|
|
|
let json = initFilter(this.props.login.OrgId, "", "DEPARTMENT_NAME", "asc");
|
|
|
|
|
|
let startTime = this.state.selectStartTime.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
// 使用
|
|
|
|
|
|
let span = this.getDiffDay(startTime, endTime);
|
|
|
|
|
|
if (span <= 7) {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 1);
|
|
|
|
|
|
} else if (span > 7 && span <= 30) {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 5);
|
|
|
|
|
|
} else if (span > 30 && span <= 90) {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 10);
|
|
|
|
|
|
} else if (span > 90 && span <= 180) {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 15);
|
|
|
|
|
|
} else if (span > 180 && span <= 365) {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 20);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
extendRule(json, "FILTER_TIME", 1, 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
extendRule(json, "DEPARTMENT_NAME", 2, "宁化行洛坑钨矿有限公司");
|
|
|
|
|
|
extendRule(json, "DEPARTMENT_NAME", 2, "都昌金鼎钨钼矿业有限公司");
|
|
|
|
|
|
extendRule(json, "DEPARTMENT_NAME", 2, "技术管理部");
|
|
|
|
|
|
this.props.dispatch({
|
|
|
|
|
|
type: "app/getDataByPost",
|
|
|
|
|
|
url: "BI/SafetaskFinish/OrderEntities",
|
|
|
|
|
|
payload: json,
|
|
|
|
|
|
onlyData: false,
|
|
|
|
|
|
onComplete: (ret) => {
|
|
|
|
|
|
if (ret && ret.Data) {
|
|
|
|
|
|
this.state.retData = ret.Data;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
getCount = () => {
|
|
|
|
|
|
var orgId = this.props.login ? this.props.login.OrgId : "";
|
|
|
|
|
|
const jsonTemp = initFilter(orgId);
|
|
|
|
|
|
let startTime = this.state.selectStartTime.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
extendRule(jsonTemp, "CREATE_TIME", 6, startTime);
|
|
|
|
|
|
extendRule(jsonTemp, "CREATE_TIME", 4, endTime);
|
|
|
|
|
|
this.props.dispatch({
|
|
|
|
|
|
type: "app/getDataByPost",
|
|
|
|
|
|
payload: jsonTemp,
|
|
|
|
|
|
url: "BI/BIStatiscialAnalysisController/GetTotalCount",
|
|
|
|
|
|
onComplete: (ret) => {
|
|
|
|
|
|
if (ret) {
|
|
|
|
|
|
let riskLevels = document.getElementById("mainJobPie");
|
|
|
|
|
|
if (riskLevels) {
|
|
|
|
|
|
let myChart = echarts.init(riskLevels);
|
|
|
|
|
|
myChart.setOption({
|
|
|
|
|
|
backgroundColor: "#FFFFFF",
|
|
|
|
|
|
title: [
|
|
|
|
|
|
{
|
|
|
|
|
|
text: "班前会议完成率",
|
|
|
|
|
|
bottom: "12%",
|
|
|
|
|
|
x: "center",
|
|
|
|
|
|
// borderColor: "#1598FF",
|
|
|
|
|
|
// borderWidth: 1,
|
|
|
|
|
|
borderRadius: 15,
|
|
|
|
|
|
// backgroundColor: "#1598FF",
|
|
|
|
|
|
padding: [7, 14],
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
// fontWeight: "bold",
|
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
color: "#000",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
angleAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
max: (100 * 360) / 270, //-45度到225度,二者偏移值是270度除360度
|
|
|
|
|
|
type: "value",
|
|
|
|
|
|
startAngle: 225, //极坐标初始角度
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
barMaxWidth: 10, //圆环宽度
|
|
|
|
|
|
radiusAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
type: "category",
|
|
|
|
|
|
},
|
|
|
|
|
|
//圆环位置和大小
|
|
|
|
|
|
polar: {
|
|
|
|
|
|
center: ["50%", "50%"],
|
|
|
|
|
|
radius: "120%",
|
|
|
|
|
|
},
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
//上层圆环,显示数据
|
|
|
|
|
|
value: 95,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#1598FF",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%", //柱间距离,上下两层圆环重合
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true, //顶端圆角
|
|
|
|
|
|
z: 3, //圆环层级,同zindex
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//下层圆环,显示最大值
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#1598FF",
|
|
|
|
|
|
opacity: 0.2,
|
|
|
|
|
|
borderWidth: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%",
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true,
|
|
|
|
|
|
z: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
//仪表盘
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
startAngle: 225, //起始角度,同极坐标
|
|
|
|
|
|
endAngle: -45, //终止角度,同极坐标
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
// 分隔线
|
|
|
|
|
|
shadowColor: "auto", //默认透明
|
|
|
|
|
|
shadowBlur: 5,
|
|
|
|
|
|
length: "50%",
|
|
|
|
|
|
width: "1",
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#1598FF",
|
|
|
|
|
|
borderColor: "#1598FF",
|
|
|
|
|
|
borderWidth: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
formatter: function (params) {
|
|
|
|
|
|
return 95 + "%";
|
|
|
|
|
|
},
|
|
|
|
|
|
color: "#1598FF",
|
|
|
|
|
|
fontSize: 20,
|
|
|
|
|
|
offsetCenter: [0, 80],
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 95,
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "外部刻度",
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
// center: ['20%', '50%'],
|
|
|
|
|
|
radius: "73%",
|
|
|
|
|
|
min: 0, //最小刻度
|
|
|
|
|
|
max: 100, //最大刻度
|
|
|
|
|
|
splitNumber: 10, //刻度数量
|
|
|
|
|
|
startAngle: 225,
|
|
|
|
|
|
endAngle: -45,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
width: 1,
|
|
|
|
|
|
color: [[1, "rgba(0,0,0,0)"]],
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //仪表盘轴线
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
color: "#4d5bd1",
|
|
|
|
|
|
distance: 25,
|
|
|
|
|
|
}, //刻度标签。
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
splitNumber: 7,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
length: -8,
|
|
|
|
|
|
}, //刻度样式
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
length: -20,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //分隔线样式
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针外环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["10%", "13%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#1598FF",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针内环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["0%", "10%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#FFFFFF",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
let riskLevel1s = document.getElementById("mainJobPie1");
|
|
|
|
|
|
if (riskLevel1s) {
|
|
|
|
|
|
let myChart1 = echarts.init(riskLevel1s);
|
|
|
|
|
|
myChart1.setOption({
|
|
|
|
|
|
backgroundColor: "#FFFFFF",
|
|
|
|
|
|
title: [
|
|
|
|
|
|
{
|
|
|
|
|
|
text: "岗位当班记录完成率",
|
|
|
|
|
|
bottom: "12%",
|
|
|
|
|
|
x: "center",
|
|
|
|
|
|
// borderColor: "#1598FF",
|
|
|
|
|
|
// borderWidth: 1,
|
|
|
|
|
|
borderRadius: 15,
|
|
|
|
|
|
// backgroundColor: "#1598FF",
|
|
|
|
|
|
padding: [7, 14],
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
// fontWeight: "bold",
|
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
color: "#000",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
angleAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
max: (100 * 360) / 270, //-45度到225度,二者偏移值是270度除360度
|
|
|
|
|
|
type: "value",
|
|
|
|
|
|
startAngle: 225, //极坐标初始角度
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
barMaxWidth: 10, //圆环宽度
|
|
|
|
|
|
radiusAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
type: "category",
|
|
|
|
|
|
},
|
|
|
|
|
|
//圆环位置和大小
|
|
|
|
|
|
polar: {
|
|
|
|
|
|
center: ["50%", "50%"],
|
|
|
|
|
|
radius: "120%",
|
|
|
|
|
|
},
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
//上层圆环,显示数据
|
|
|
|
|
|
value: 97,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f8a035",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%", //柱间距离,上下两层圆环重合
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true, //顶端圆角
|
|
|
|
|
|
z: 3, //圆环层级,同zindex
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//下层圆环,显示最大值
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f8a035",
|
|
|
|
|
|
opacity: 0.2,
|
|
|
|
|
|
borderWidth: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%",
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true,
|
|
|
|
|
|
z: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
//仪表盘
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
startAngle: 225, //起始角度,同极坐标
|
|
|
|
|
|
endAngle: -45, //终止角度,同极坐标
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
// 分隔线
|
|
|
|
|
|
shadowColor: "auto", //默认透明
|
|
|
|
|
|
shadowBlur: 5,
|
|
|
|
|
|
length: "50%",
|
|
|
|
|
|
width: "1",
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f8a035",
|
|
|
|
|
|
borderColor: "#f8a035",
|
|
|
|
|
|
borderWidth: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
formatter: function (params) {
|
|
|
|
|
|
return 97 + "%";
|
|
|
|
|
|
},
|
|
|
|
|
|
color: "#f8a035",
|
|
|
|
|
|
fontSize: 20,
|
|
|
|
|
|
offsetCenter: [0, 80],
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 97,
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "外部刻度",
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
// center: ['20%', '50%'],
|
|
|
|
|
|
radius: "73%",
|
|
|
|
|
|
min: 0, //最小刻度
|
|
|
|
|
|
max: 100, //最大刻度
|
|
|
|
|
|
splitNumber: 10, //刻度数量
|
|
|
|
|
|
startAngle: 225,
|
|
|
|
|
|
endAngle: -45,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
width: 1,
|
|
|
|
|
|
color: [[1, "rgba(0,0,0,0)"]],
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //仪表盘轴线
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
color: "#4d5bd1",
|
|
|
|
|
|
distance: 25,
|
|
|
|
|
|
}, //刻度标签。
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
splitNumber: 7,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
length: -8,
|
|
|
|
|
|
}, //刻度样式
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
length: -20,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //分隔线样式
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针外环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["10%", "13%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#f8a035",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针内环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["0%", "10%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#FFFFFF",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
let riskLevel3s = document.getElementById("mainJobPie3");
|
|
|
|
|
|
if (riskLevel3s) {
|
|
|
|
|
|
let myChart3 = echarts.init(riskLevel3s);
|
|
|
|
|
|
myChart3.setOption({
|
|
|
|
|
|
backgroundColor: "#FFFFFF",
|
|
|
|
|
|
title: [
|
|
|
|
|
|
{
|
|
|
|
|
|
text: "岗位交接班完成率",
|
|
|
|
|
|
bottom: "12%",
|
|
|
|
|
|
x: "center",
|
|
|
|
|
|
// borderColor: "#1598FF",
|
|
|
|
|
|
// borderWidth: 1,
|
|
|
|
|
|
borderRadius: 15,
|
|
|
|
|
|
// backgroundColor: "#1598FF",
|
|
|
|
|
|
padding: [7, 14],
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
// fontWeight: "bold",
|
|
|
|
|
|
fontSize: 14,
|
|
|
|
|
|
color: "#000",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
angleAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
max: (100 * 360) / 270, //-45度到225度,二者偏移值是270度除360度
|
|
|
|
|
|
type: "value",
|
|
|
|
|
|
startAngle: 225, //极坐标初始角度
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
barMaxWidth: 10, //圆环宽度
|
|
|
|
|
|
radiusAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
type: "category",
|
|
|
|
|
|
},
|
|
|
|
|
|
//圆环位置和大小
|
|
|
|
|
|
polar: {
|
|
|
|
|
|
center: ["50%", "50%"],
|
|
|
|
|
|
radius: "120%",
|
|
|
|
|
|
},
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
//上层圆环,显示数据
|
|
|
|
|
|
value: 99,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f1516d",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%", //柱间距离,上下两层圆环重合
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true, //顶端圆角
|
|
|
|
|
|
z: 3, //圆环层级,同zindex
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//下层圆环,显示最大值
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f1516d",
|
|
|
|
|
|
opacity: 0.2,
|
|
|
|
|
|
borderWidth: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
barGap: "-100%",
|
|
|
|
|
|
coordinateSystem: "polar",
|
|
|
|
|
|
roundCap: true,
|
|
|
|
|
|
z: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
//仪表盘
|
|
|
|
|
|
{
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
startAngle: 225, //起始角度,同极坐标
|
|
|
|
|
|
endAngle: -45, //终止角度,同极坐标
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
// 分隔线
|
|
|
|
|
|
shadowColor: "auto", //默认透明
|
|
|
|
|
|
shadowBlur: 5,
|
|
|
|
|
|
length: "50%",
|
|
|
|
|
|
width: "1",
|
|
|
|
|
|
},
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#f1516d",
|
|
|
|
|
|
borderColor: "#f1516d",
|
|
|
|
|
|
borderWidth: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
formatter: function (params) {
|
|
|
|
|
|
return 99 + "%";
|
|
|
|
|
|
},
|
|
|
|
|
|
color: "#f1516d",
|
|
|
|
|
|
fontSize: 20,
|
|
|
|
|
|
offsetCenter: [0, 80],
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 99,
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "外部刻度",
|
|
|
|
|
|
type: "gauge",
|
|
|
|
|
|
// center: ['20%', '50%'],
|
|
|
|
|
|
radius: "73%",
|
|
|
|
|
|
min: 0, //最小刻度
|
|
|
|
|
|
max: 100, //最大刻度
|
|
|
|
|
|
splitNumber: 10, //刻度数量
|
|
|
|
|
|
startAngle: 225,
|
|
|
|
|
|
endAngle: -45,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
width: 1,
|
|
|
|
|
|
color: [[1, "rgba(0,0,0,0)"]],
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //仪表盘轴线
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
color: "#4d5bd1",
|
|
|
|
|
|
distance: 25,
|
|
|
|
|
|
}, //刻度标签。
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
splitNumber: 7,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
},
|
|
|
|
|
|
length: -8,
|
|
|
|
|
|
}, //刻度样式
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
length: -20,
|
|
|
|
|
|
lineStyle: {
|
|
|
|
|
|
color: "#C7CBCF", //用颜色渐变函数不起作用
|
|
|
|
|
|
},
|
|
|
|
|
|
}, //分隔线样式
|
|
|
|
|
|
detail: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
pointer: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针外环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["10%", "13%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#f1516d",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
//指针内环
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
hoverAnimation: false,
|
|
|
|
|
|
legendHoverLink: false,
|
|
|
|
|
|
radius: ["0%", "10%"],
|
|
|
|
|
|
z: 10,
|
|
|
|
|
|
label: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
labelLine: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{
|
|
|
|
|
|
value: 100,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
color: "#FFFFFF",
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
ordinaryCount: ret.ordinaryCount,
|
|
|
|
|
|
crucialCount: ret.crucialCount,
|
|
|
|
|
|
activityCount: ret.activityCount,
|
|
|
|
|
|
postCount: ret.postCount,
|
|
|
|
|
|
postChangeCount: ret.postChangeCount,
|
|
|
|
|
|
taskCount: ret.taskCount,
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
//
|
|
|
|
|
|
workTicket = () => {
|
|
|
|
|
|
let startTime = this.state.selectStartTime.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
let json = initFilter(
|
|
|
|
|
|
this.props.login.OrgId,
|
|
|
|
|
|
"10",
|
|
|
|
|
|
"NUM",
|
|
|
|
|
|
"asc",
|
|
|
|
|
|
"",
|
|
|
|
|
|
8,
|
|
|
|
|
|
startTime,
|
|
|
|
|
|
endTime
|
|
|
|
|
|
);
|
|
|
|
|
|
// extendRule(json, "DEPARTMENT_NAME", 1,"选矿部");
|
|
|
|
|
|
this.props.dispatch({
|
|
|
|
|
|
type: "app/getDataByPost",
|
|
|
|
|
|
url: "BI/BIStatiscialAnalysisController/GetDepartmentCompletionSort",
|
|
|
|
|
|
payload: json,
|
|
|
|
|
|
onlyData: false,
|
|
|
|
|
|
onComplete: (data) => {
|
|
|
|
|
|
if (data && data.IsSuccessful) {
|
|
|
|
|
|
this.teamTop = data.Data.length;
|
|
|
|
|
|
let teamName = [];
|
|
|
|
|
|
let finishQty = [];
|
|
|
|
|
|
data.Data.forEach((item) => {
|
|
|
|
|
|
teamName.push(item.TEAM_NAME);
|
|
|
|
|
|
let finishData = Number(item.CALC * 100).toFixed(2);
|
|
|
|
|
|
finishQty.push(finishData);
|
|
|
|
|
|
});
|
|
|
|
|
|
let departmentCompletions = document.getElementById("workTicket");
|
|
|
|
|
|
if (departmentCompletions) {
|
|
|
|
|
|
let myChart = echarts.init(departmentCompletions);
|
|
|
|
|
|
myChart.setOption(
|
|
|
|
|
|
{
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: "axis",
|
|
|
|
|
|
axisPointer: {
|
|
|
|
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
|
|
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
|
|
|
|
},
|
|
|
|
|
|
formatter: function (param) {
|
|
|
|
|
|
return (
|
|
|
|
|
|
param[0].name +
|
|
|
|
|
|
"<br>" +
|
|
|
|
|
|
param[0].marker +
|
|
|
|
|
|
" " +
|
|
|
|
|
|
param[0].seriesName +
|
|
|
|
|
|
":" +
|
|
|
|
|
|
param[0].value +
|
|
|
|
|
|
"%"
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
top: "2%",
|
|
|
|
|
|
bottom: -15,
|
|
|
|
|
|
right: "10%",
|
|
|
|
|
|
left: "10%",
|
|
|
|
|
|
containLabel: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
triggerEvent: true,
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
inverse: true,
|
|
|
|
|
|
data: teamName,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
color: "#666",
|
|
|
|
|
|
align: "right",
|
|
|
|
|
|
margin: 20,
|
|
|
|
|
|
fontSize: 13,
|
|
|
|
|
|
|
|
|
|
|
|
rich: {
|
|
|
|
|
|
idx0: {
|
|
|
|
|
|
color: "#FB375E",
|
|
|
|
|
|
backgroundColor: "#FFE8EC",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx1: {
|
|
|
|
|
|
color: "#FF9023",
|
|
|
|
|
|
backgroundColor: "#FFEACF",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx2: {
|
|
|
|
|
|
color: "#01B599",
|
|
|
|
|
|
backgroundColor: "#E1F7F3",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx: {
|
|
|
|
|
|
color: "#333",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
|
|
|
|
|
width: 165,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
triggerEvent: true,
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
inverse: true,
|
|
|
|
|
|
data: finishQty,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
color: "#666",
|
|
|
|
|
|
align: "left",
|
|
|
|
|
|
margin: 20,
|
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
|
formatter: function (value) {
|
|
|
|
|
|
return value + "%";
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "完成率",
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
yAxisIndex: 0,
|
|
|
|
|
|
data: finishQty,
|
|
|
|
|
|
barWidth: 10,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#1990FF",
|
|
|
|
|
|
barBorderRadius: 30,
|
|
|
|
|
|
},
|
|
|
|
|
|
formatter: "{value}%",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
true
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
workTicket2 = () => {
|
|
|
|
|
|
let startTime = this.state.selectStartTime.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
let json = initFilter(
|
|
|
|
|
|
this.props.login.OrgId,
|
|
|
|
|
|
"30",
|
|
|
|
|
|
"NUM",
|
|
|
|
|
|
"asc",
|
|
|
|
|
|
"",
|
|
|
|
|
|
8,
|
|
|
|
|
|
startTime,
|
|
|
|
|
|
endTime
|
|
|
|
|
|
);
|
|
|
|
|
|
// extendRule(json, "DEPARTMENT_NAME", 1,"选矿部");
|
|
|
|
|
|
this.props.dispatch({
|
|
|
|
|
|
type: "app/getDataByPost",
|
|
|
|
|
|
url: "BI/BIStatiscialAnalysisController/GetDepartmentCompletionSort",
|
|
|
|
|
|
payload: json,
|
|
|
|
|
|
onlyData: false,
|
|
|
|
|
|
onComplete: (data) => {
|
|
|
|
|
|
if (data && data.IsSuccessful) {
|
|
|
|
|
|
this.teamTop = data.Data.length;
|
|
|
|
|
|
let teamName = [];
|
|
|
|
|
|
let finishQty = [];
|
|
|
|
|
|
data.Data.forEach((item) => {
|
|
|
|
|
|
teamName.push(item.TEAM_NAME);
|
|
|
|
|
|
let finishData = Number(item.CALC * 100).toFixed(2);
|
|
|
|
|
|
finishQty.push(finishData);
|
|
|
|
|
|
});
|
|
|
|
|
|
let departmentCompletions = document.getElementById("workTicket2");
|
|
|
|
|
|
if (departmentCompletions) {
|
|
|
|
|
|
let myChart = echarts.init(departmentCompletions);
|
|
|
|
|
|
myChart.setOption(
|
|
|
|
|
|
{
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: "axis",
|
|
|
|
|
|
axisPointer: {
|
|
|
|
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
|
|
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
|
|
|
|
},
|
|
|
|
|
|
formatter: function (param) {
|
|
|
|
|
|
return (
|
|
|
|
|
|
param[0].name +
|
|
|
|
|
|
"<br>" +
|
|
|
|
|
|
param[0].marker +
|
|
|
|
|
|
" " +
|
|
|
|
|
|
param[0].seriesName +
|
|
|
|
|
|
":" +
|
|
|
|
|
|
param[0].value +
|
|
|
|
|
|
"%"
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
top: "2%",
|
|
|
|
|
|
bottom: -15,
|
|
|
|
|
|
right: "10%",
|
|
|
|
|
|
left: "10%",
|
|
|
|
|
|
containLabel: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: [
|
|
|
|
|
|
{
|
|
|
|
|
|
triggerEvent: true,
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
inverse: true,
|
|
|
|
|
|
data: teamName,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
color: "#666",
|
|
|
|
|
|
align: "right",
|
|
|
|
|
|
margin: 20,
|
|
|
|
|
|
fontSize: 13,
|
|
|
|
|
|
|
|
|
|
|
|
rich: {
|
|
|
|
|
|
idx0: {
|
|
|
|
|
|
color: "#FB375E",
|
|
|
|
|
|
backgroundColor: "#FFE8EC",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx1: {
|
|
|
|
|
|
color: "#FF9023",
|
|
|
|
|
|
backgroundColor: "#FFEACF",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx2: {
|
|
|
|
|
|
color: "#01B599",
|
|
|
|
|
|
backgroundColor: "#E1F7F3",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
idx: {
|
|
|
|
|
|
color: "#333",
|
|
|
|
|
|
borderRadius: 100,
|
|
|
|
|
|
padding: [5, 8],
|
|
|
|
|
|
},
|
|
|
|
|
|
title: {
|
|
|
|
|
|
width: 165,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
triggerEvent: true,
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
inverse: true,
|
|
|
|
|
|
data: finishQty,
|
|
|
|
|
|
axisLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
splitLine: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisTick: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
axisLabel: {
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
color: "#666",
|
|
|
|
|
|
align: "left",
|
|
|
|
|
|
margin: 20,
|
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
|
formatter: function (value) {
|
|
|
|
|
|
return value + "%";
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "完成率",
|
|
|
|
|
|
type: "bar",
|
|
|
|
|
|
yAxisIndex: 0,
|
|
|
|
|
|
data: finishQty,
|
|
|
|
|
|
barWidth: 10,
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
color: "#1990FF",
|
|
|
|
|
|
barBorderRadius: 30,
|
|
|
|
|
|
},
|
|
|
|
|
|
formatter: "{value}%",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
true
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
//关键许可工作票(饼图)
|
|
|
|
|
|
mainJobPie2 = () => {
|
|
|
|
|
|
let json = initFilter(this.props.login.OrgId);
|
|
|
|
|
|
let startTime = this.state.selectStartTime.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
let endTime = this.state.selectEndTime.format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
extendRule(json, "CREATE_TIME", 6, startTime);
|
|
|
|
|
|
extendRule(json, "CREATE_TIME", 4, endTime);
|
|
|
|
|
|
this.props.dispatch({
|
|
|
|
|
|
type: "app/getDataByPost",
|
|
|
|
|
|
url: "BI/BIStatiscialAnalysisController/GetLicenseJob",
|
|
|
|
|
|
payload: json,
|
|
|
|
|
|
onlyData: false,
|
|
|
|
|
|
onComplete: (data) => {
|
|
|
|
|
|
if (data && data.IsSuccessful) {
|
|
|
|
|
|
let riskLevel = [];
|
|
|
|
|
|
let showData = [];
|
|
|
|
|
|
let color = ["#C00000", "#FFC000", "#006600", "#00B0F0", "#00B0C0"];
|
|
|
|
|
|
let numAll = 0;
|
|
|
|
|
|
data.Data.forEach((item) => {
|
|
|
|
|
|
riskLevel.push(item.RISK_LEVEL);
|
|
|
|
|
|
showData.push({ value: item.COUNT, name: item.RISK_LEVEL });
|
|
|
|
|
|
numAll = numAll + item.COUNT;
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
let riskLevels = document.getElementById("mainJobPie2");
|
|
|
|
|
|
if (riskLevels) {
|
|
|
|
|
|
let myChart = echarts.init(riskLevels);
|
|
|
|
|
|
myChart.setOption({
|
|
|
|
|
|
color: ["#c92a2a", "#ffa94d", "#ffe066", "#4285F4", "#fa8a89"],
|
|
|
|
|
|
title: [
|
|
|
|
|
|
{
|
|
|
|
|
|
text: numAll,
|
|
|
|
|
|
x: "24%",
|
|
|
|
|
|
y: "40%",
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
fontSize: 26,
|
|
|
|
|
|
fontWeight: "normal",
|
|
|
|
|
|
color: ["#333"],
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
text: "关键作业/许可作业",
|
|
|
|
|
|
x: "20%",
|
|
|
|
|
|
y: "55%",
|
|
|
|
|
|
textStyle: {
|
|
|
|
|
|
color: "#666",
|
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: "item",
|
|
|
|
|
|
formatter: "{b}:({d}%)",
|
|
|
|
|
|
},
|
|
|
|
|
|
legend: {
|
|
|
|
|
|
icon: "pin",
|
|
|
|
|
|
orient: "vartical",
|
|
|
|
|
|
// x: "right",
|
|
|
|
|
|
// top: "18%",
|
|
|
|
|
|
x: "60%",
|
|
|
|
|
|
y: "center",
|
|
|
|
|
|
// bottom: "20%",
|
|
|
|
|
|
data: riskLevel,
|
|
|
|
|
|
// itemWidth: 20,
|
|
|
|
|
|
// itemHeight: 14,
|
|
|
|
|
|
itemGap: 25,
|
|
|
|
|
|
formatter: function (name) {
|
|
|
|
|
|
//通过name获取到数组对象中的单个对象
|
|
|
|
|
|
let singleData = showData.filter(function (item) {
|
|
|
|
|
|
return item.name == name;
|
|
|
|
|
|
});
|
|
|
|
|
|
let countAll = 0;
|
|
|
|
|
|
showData.map((item) => {
|
|
|
|
|
|
countAll = countAll + item.value;
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
name +
|
|
|
|
|
|
" | " +
|
|
|
|
|
|
singleData[0].value +
|
|
|
|
|
|
" | " +
|
|
|
|
|
|
Number((singleData[0].value / countAll) * 100).toFixed(2) +
|
|
|
|
|
|
"%"
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
left: 30,
|
|
|
|
|
|
containLabel: true,
|
|
|
|
|
|
bottom: 10,
|
|
|
|
|
|
top: 10,
|
|
|
|
|
|
right: 30,
|
|
|
|
|
|
},
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "访问来源",
|
|
|
|
|
|
type: "pie",
|
|
|
|
|
|
clockwise: false,
|
|
|
|
|
|
// minAngle: 20,
|
|
|
|
|
|
avoidLabelOverlap: false,
|
|
|
|
|
|
radius: ["50%", "65%"],
|
|
|
|
|
|
center: ["30%", "50%"],
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
//图形样式
|
|
|
|
|
|
normal: {
|
|
|
|
|
|
borderColor: "#ffffff",
|
|
|
|
|
|
borderWidth: 4,
|
|
|
|
|
|
padding: "0 20px",
|
|
|
|
|
|
borderRadius: 50,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
label: {
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
// color: color,
|
|
|
|
|
|
data: showData,
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
compare = (val1, val2) => {
|
|
|
|
|
|
return val2.NUM - val1.NUM;
|
|
|
|
|
|
};
|
|
|
|
|
|
getStartDate = () => {
|
|
|
|
|
|
let date = new Date();
|
|
|
|
|
|
let y = date.getFullYear();
|
|
|
|
|
|
let m = date.getMonth() + 1;
|
|
|
|
|
|
let d = date.getDate();
|
|
|
|
|
|
// 当前日期
|
|
|
|
|
|
let nowDate =
|
|
|
|
|
|
y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
|
|
|
|
|
|
let pastDate = moment(nowDate)
|
|
|
|
|
|
.add(-1, "month")
|
|
|
|
|
|
.format("YYYY-MM-DD 00:00:00");
|
|
|
|
|
|
return pastDate;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
getEndDate = () => {
|
|
|
|
|
|
let date = new Date();
|
|
|
|
|
|
let y = date.getFullYear();
|
|
|
|
|
|
let m = date.getMonth() + 1;
|
|
|
|
|
|
let d = date.getDate();
|
|
|
|
|
|
// 当前日期
|
|
|
|
|
|
let nowDate =
|
|
|
|
|
|
y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
|
|
|
|
|
|
let pastDate = moment(nowDate).format("YYYY-MM-DD 23:59:59");
|
|
|
|
|
|
return pastDate;
|
|
|
|
|
|
};
|
|
|
|
|
|
startChange = (value) => {
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
selectStartTime: value,
|
|
|
|
|
|
// startTime:value.format("YYYYMMDD")
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
endChange = (value) => {
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
selectEndTime: value,
|
|
|
|
|
|
// endTime:value.format("YYYYMMDD")
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
closeModal = () => {
|
|
|
|
|
|
// 退出弹窗
|
|
|
|
|
|
this.clearData();
|
|
|
|
|
|
};
|
|
|
|
|
|
clearData = () => {
|
|
|
|
|
|
let newtmpData = { ...this.state.tmpData };
|
|
|
|
|
|
newtmpData["data"].id = "";
|
|
|
|
|
|
newtmpData["data"].homeReload = false;
|
|
|
|
|
|
newtmpData.formCode = "";
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
visible: false,
|
|
|
|
|
|
tmpData: newtmpData,
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
handleCancel = () => {
|
|
|
|
|
|
// 退出弹窗
|
|
|
|
|
|
this.clearData();
|
|
|
|
|
|
};
|
|
|
|
|
|
render() {
|
|
|
|
|
|
const formItemLayout = {
|
|
|
|
|
|
labelCol: { span: 10 },
|
|
|
|
|
|
wrapperCol: { span: 14 },
|
|
|
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
|
|
|
<div>
|
|
|
|
|
|
{/* className='route-home' ,boxShadow:'inset 0 0 10px #ccc' */}
|
|
|
|
|
|
<div
|
|
|
|
|
|
style={{
|
|
|
|
|
|
backgroundColor: "white",
|
|
|
|
|
|
width: "1200px",
|
|
|
|
|
|
top: "0",
|
|
|
|
|
|
bottom: "0",
|
|
|
|
|
|
left: "0",
|
|
|
|
|
|
right: "0",
|
|
|
|
|
|
margin: "auto",
|
|
|
|
|
|
borderStyle: "solid",
|
|
|
|
|
|
borderColor: "#ccc",
|
|
|
|
|
|
borderWidth: "1px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Modal
|
|
|
|
|
|
visible={this.state.visible}
|
|
|
|
|
|
title={this.state.noticeTitle}
|
|
|
|
|
|
maskClosable={false}
|
|
|
|
|
|
onCancel={this.handleCancel}
|
|
|
|
|
|
footer={null}
|
|
|
|
|
|
className="antd-modal-fullscreen"
|
|
|
|
|
|
closeModal={this.closeModal}
|
|
|
|
|
|
// forceRender={true}
|
|
|
|
|
|
>
|
|
|
|
|
|
<FormPage {...this.state.tmpData} />
|
|
|
|
|
|
</Modal>
|
|
|
|
|
|
{/* {this.props.data.name} */}
|
|
|
|
|
|
<h1
|
|
|
|
|
|
style={{
|
|
|
|
|
|
textAlign: "center",
|
|
|
|
|
|
marginTop: "30px",
|
|
|
|
|
|
fontWeight: "bold",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
|
2025-11-23 10:39:08 +08:00
|
|
|
|
{/* {this.state.tableTitle} */}
|
|
|
|
|
|
作业现场管理统计分析
|
2025-08-25 10:08:30 +08:00
|
|
|
|
</h1>
|
|
|
|
|
|
<br></br>
|
|
|
|
|
|
<Row>
|
|
|
|
|
|
<Col span={7} style={{ marginLeft: "10px" }}></Col>
|
|
|
|
|
|
<Col span={4} style={{ align: "center" }}>
|
|
|
|
|
|
<Form.Item label={"查询时间"} {...formItemLayout}>
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
style={{ width: "150px" }}
|
|
|
|
|
|
// defaultValue={moment(this.state.startTime, 'YYYY-MM-DD 00:00:00')}
|
|
|
|
|
|
value={this.state.selectStartTime}
|
|
|
|
|
|
format="YYYY-MM-DD"
|
|
|
|
|
|
onChange={this.startChange}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
|
|
|
|
|
|
<Col span={4} style={{ align: "center" }}>
|
|
|
|
|
|
<Form.Item label={"至"} {...formItemLayout}>
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
style={{ width: "150px" }}
|
|
|
|
|
|
// defaultValue={moment(this.state.endTime, 'YYYY-MM-DD 23:59:59')}
|
|
|
|
|
|
value={this.state.selectEndTime}
|
|
|
|
|
|
format="YYYY-MM-DD"
|
|
|
|
|
|
onChange={this.endChange}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={3} style={{ marginLeft: "50px" }}>
|
|
|
|
|
|
<Button type="primary" onClick={() => this.loadData()}>
|
|
|
|
|
|
查询
|
|
|
|
|
|
</Button>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
<div
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
justifyContent: "center",
|
|
|
|
|
|
marginTop: "10px",
|
|
|
|
|
|
// marginBottom: "20px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div className={styles.menuPie}>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
一般作业活动记录
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle}>
|
|
|
|
|
|
{this.state.ordinaryCount}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<Divider
|
|
|
|
|
|
type="vertical"
|
|
|
|
|
|
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
许可作业活动记录
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle1}>
|
|
|
|
|
|
{this.state.crucialCount}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<Divider
|
|
|
|
|
|
type="vertical"
|
|
|
|
|
|
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
班组安全活动
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle3}>
|
|
|
|
|
|
{this.state.activityCount}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<Divider
|
|
|
|
|
|
type="vertical"
|
|
|
|
|
|
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
岗位当班记录
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle2}>{this.state.postCount}</div>
|
|
|
|
|
|
{/* <a href="#" style={{ color: "red" }}> */}
|
|
|
|
|
|
{/* </a> */}
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<Divider
|
|
|
|
|
|
type="vertical"
|
|
|
|
|
|
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
岗位交接班记录
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle3}>
|
|
|
|
|
|
{this.state.postChangeCount}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* <a href="#" style={{ color: "red" }}> */}
|
|
|
|
|
|
{/* </a> */}
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<Divider
|
|
|
|
|
|
type="vertical"
|
|
|
|
|
|
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
作业任务库
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<div className={styles.dataStyle3}>{this.state.taskCount}</div>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<hr
|
|
|
|
|
|
style={{
|
|
|
|
|
|
border: "1px dashed #ccc",
|
|
|
|
|
|
marginBottom: "20px",
|
|
|
|
|
|
marginTop: "20px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></hr>
|
|
|
|
|
|
<Row
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
justifyContent: "center",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
justifyContent: "space-around",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
width: "1100px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Col span={12}>
|
|
|
|
|
|
<Col span={8}>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="mainJobPie"
|
|
|
|
|
|
style={{ width: "100%", height: "350px" }}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={8}>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="mainJobPie1"
|
|
|
|
|
|
style={{ width: "100%", height: "350px" }}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={8}>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="mainJobPie3"
|
|
|
|
|
|
style={{ width: "100%", height: "350px" }}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
|
|
|
|
|
|
<Col span={12}>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="mainJobPie2"
|
|
|
|
|
|
style={{ width: "100%", height: "350px" }}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
<hr
|
|
|
|
|
|
style={{
|
|
|
|
|
|
border: "1px dashed #ccc",
|
|
|
|
|
|
marginBottom: "20px",
|
|
|
|
|
|
marginTop: "20px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></hr>
|
|
|
|
|
|
<Row
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
justifyContent: "center",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
justifyContent: "space-around",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
width: "1100px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Col span={12} style={{ borderRight: "1px solid #e7e6e4" }}>
|
|
|
|
|
|
<h3 style={{ textAlign: "center", fontWeight: "bold" }}>
|
|
|
|
|
|
矿山部-班组及时完成率排名(%)
|
|
|
|
|
|
</h3>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="workTicket2"
|
|
|
|
|
|
style={{
|
|
|
|
|
|
height: "350px",
|
|
|
|
|
|
// marginLeft: "40px",
|
|
|
|
|
|
// marginRight: "10px",
|
|
|
|
|
|
backgroundColor: "white",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={12}>
|
|
|
|
|
|
<h3 style={{ textAlign: "center", fontWeight: "bold" }}>
|
|
|
|
|
|
选矿部-班组及时完成率排名(%)
|
|
|
|
|
|
</h3>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="workTicket"
|
|
|
|
|
|
style={{
|
|
|
|
|
|
height: "350px",
|
|
|
|
|
|
// marginLeft: "40px",
|
|
|
|
|
|
// marginRight: "10px",
|
|
|
|
|
|
backgroundColor: "white",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* <Col span={11}>
|
|
|
|
|
|
<h3 style={{ textAlign: "center", fontWeight: "bold" }}>
|
|
|
|
|
|
关键作业/许可作业
|
|
|
|
|
|
</h3>
|
|
|
|
|
|
<div
|
|
|
|
|
|
id="mainJobPie2"
|
|
|
|
|
|
style={{
|
|
|
|
|
|
width: "560px",
|
|
|
|
|
|
height: "350px",
|
|
|
|
|
|
marginLeft: "20px",
|
|
|
|
|
|
backgroundColor: "white",
|
|
|
|
|
|
borderStyle: "solid",
|
|
|
|
|
|
borderColor: "#ccc",
|
|
|
|
|
|
borderWidth: "1px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></div>
|
|
|
|
|
|
</Col> */}
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
<hr
|
|
|
|
|
|
style={{
|
|
|
|
|
|
border: "1px dashed #ccc",
|
|
|
|
|
|
marginBottom: "20px",
|
|
|
|
|
|
marginTop: "20px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
></hr>
|
|
|
|
|
|
<Row
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
justifyContent: "center",
|
|
|
|
|
|
margin: "10px 0px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div
|
|
|
|
|
|
style={{
|
|
|
|
|
|
display: "flex",
|
|
|
|
|
|
justifyContent: "space-around",
|
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
|
width: "1000px",
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Table
|
|
|
|
|
|
style={{
|
|
|
|
|
|
width: "100%",
|
|
|
|
|
|
// marginLeft: "20px",
|
|
|
|
|
|
textAlign: "center",
|
|
|
|
|
|
}}
|
|
|
|
|
|
// scroll={{ y: 400 }}
|
|
|
|
|
|
dataSource={this.state.retData}
|
|
|
|
|
|
columns={this.state.columns}
|
|
|
|
|
|
pagination={false}
|
|
|
|
|
|
loading={false}
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
bordered
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
export default connect(({ login, app }) => ({ login, app }))(
|
|
|
|
|
|
BI009FormRunAnalysis
|
|
|
|
|
|
);
|