This commit is contained in:
wyw 2024-04-12 11:37:32 +08:00
commit b78e2626fc
11 changed files with 3157 additions and 886 deletions

View File

@ -119,6 +119,972 @@ class BI005LoginRecord extends React.Component {
this.state.activeNums = [];
this.state.dates = [];
this.state.loginNums = [];
if (ret.Data.length == 0) {
ret.Data = [
{
"COUNT": 315,
"DATE": "2024-03-14 00:00:00",
"type": 1,
"ID": "b7670e5a-3ca5-4c86-a639-5961c6d992bb",
},
{
"COUNT": 197,
"DATE": "2024-03-14 00:00:00",
"type": 0,
"ID": "8d8943ca-2576-4ab1-ad9b-98570d29278f",
},
{
"COUNT": 175,
"DATE": "2024-03-15 00:00:00",
"type": 0,
"ID": "d5427cfa-7981-4e31-9669-2ed4b62dc44b",
},
{
"COUNT": 257,
"DATE": "2024-03-15 00:00:00",
"type": 1,
"ID": "422b45a8-51ab-4b74-8107-fbd2f441dfca",
},
{
"COUNT": 113,
"DATE": "2024-03-16 00:00:00",
"type": 0,
"ID": "a739f9fd-f380-4bf8-9d66-0e383b6dc147",
"CREATE_TIME": "2024-03-17 15:54:52",
"MODIFY_TIME": "2024-03-17 15:54:52",
},
{
"COUNT": 178,
"DATE": "2024-03-16 00:00:00",
"type": 1,
"ID": "4f6b0218-5f83-4391-bcda-187216717970",
"CREATE_TIME": "2024-03-17 15:54:52",
"MODIFY_TIME": "2024-03-17 15:54:52",
},
{
"COUNT": 81,
"DATE": "2024-03-17 00:00:00",
"type": 0,
"ID": "3e52996e-29c8-4b43-8760-42ea711ebaad",
"CREATE_TIME": "2024-03-18 15:54:52",
"MODIFY_TIME": "2024-03-18 15:54:52",
},
{
"COUNT": 152,
"DATE": "2024-03-17 00:00:00",
"type": 1,
"ID": "7d3fd40b-bdf2-4119-ac5c-6fa827275283",
"CREATE_TIME": "2024-03-18 15:54:52",
"MODIFY_TIME": "2024-03-18 15:54:52",
},
{
"COUNT": 173,
"DATE": "2024-03-18 00:00:00",
"type": 1,
"ID": "be9a0dc1-1ce6-4723-82a9-a959fc8101fc",
"CREATE_TIME": "2024-03-19 15:54:53",
"MODIFY_TIME": "2024-03-19 15:54:53",
},
{
"COUNT": 80,
"DATE": "2024-03-18 00:00:00",
"type": 0,
"ID": "902f5e01-2cb0-4439-ab0f-b63cc367d570",
"CREATE_TIME": "2024-03-19 15:54:53",
"MODIFY_TIME": "2024-03-19 15:54:53",
},
{
"COUNT": 206,
"DATE": "2024-03-19 00:00:00",
"type": 1,
"ID": "c117274e-1d2b-44ec-ae9e-b3196b9e13ce",
"CREATE_TIME": "2024-03-20 15:54:52",
"MODIFY_TIME": "2024-03-20 15:54:52",
},
{
"COUNT": 83,
"DATE": "2024-03-19 00:00:00",
"type": 0,
"ID": "649b29c2-f251-4fd6-8589-349a260767b7",
"CREATE_TIME": "2024-03-20 15:54:52",
"MODIFY_TIME": "2024-03-20 15:54:52",
},
{
"COUNT": 86,
"DATE": "2024-03-20 00:00:00",
"type": 0,
"ID": "5ce8ec42-3578-45ca-bc2d-22944d625cde",
"CREATE_TIME": "2024-03-21 15:54:53",
"MODIFY_TIME": "2024-03-21 15:54:53",
},
{
"COUNT": 263,
"DATE": "2024-03-20 00:00:00",
"type": 1,
"ID": "aa22675f-6538-4a54-a199-d425441d5254",
"CREATE_TIME": "2024-03-21 15:54:53",
"MODIFY_TIME": "2024-03-21 15:54:53",
},
{
"COUNT": 124,
"DATE": "2024-03-21 00:00:00",
"type": 0,
"ID": "d7170de9-31ee-43ce-995f-2d623db98906",
"CREATE_TIME": "2024-03-22 15:54:53",
"MODIFY_TIME": "2024-03-22 15:54:53",
},
{
"COUNT": 349,
"DATE": "2024-03-21 00:00:00",
"type": 1,
"ID": "550d4690-06dc-423d-a984-4328cf69c3e1",
"CREATE_TIME": "2024-03-22 15:54:53",
"MODIFY_TIME": "2024-03-22 15:54:53",
},
{
"COUNT": 204,
"DATE": "2024-03-22 00:00:00",
"type": 0,
"ID": "572a463e-3e40-4374-b9de-e0616d2c7602",
"CREATE_TIME": "2024-03-23 15:54:54",
"MODIFY_TIME": "2024-03-23 15:54:54",
},
{
"COUNT": 307,
"DATE": "2024-03-22 00:00:00",
"type": 1,
"ID": "d9208912-e8d2-4295-a4fb-92fe6ebd1144",
"CREATE_TIME": "2024-03-23 15:54:54",
"MODIFY_TIME": "2024-03-23 15:54:54",
},
{
"COUNT": 196,
"DATE": "2024-03-23 00:00:00",
"type": 0,
"ID": "eeb04ad5-11e4-4853-b07b-d406f1d1bdcf",
"CREATE_TIME": "2024-03-24 15:54:53",
"MODIFY_TIME": "2024-03-24 15:54:53",
},
{
"COUNT": 270,
"DATE": "2024-03-23 00:00:00",
"type": 1,
"ID": "08df6b62-c7ff-4c24-9eb4-2db3335dc6b5",
"CREATE_TIME": "2024-03-24 15:54:53",
"MODIFY_TIME": "2024-03-24 15:54:53",
},
{
"COUNT": 265,
"DATE": "2024-03-24 00:00:00",
"type": 1,
"ID": "ad5e8ec3-d2eb-4b6e-a23b-225d57868a74",
"CREATE_TIME": "2024-03-25 15:54:54",
"MODIFY_TIME": "2024-03-25 15:54:54",
},
{
"COUNT": 183,
"DATE": "2024-03-24 00:00:00",
"type": 0,
"ID": "d306b920-41d4-4877-a597-cf76aaf11209",
"CREATE_TIME": "2024-03-25 15:54:54",
"MODIFY_TIME": "2024-03-25 15:54:54",
},
{
"COUNT": 307,
"DATE": "2024-03-25 00:00:00",
"type": 1,
"ID": "0fed3ab1-b153-4f2d-813b-32d79d1a2f75",
"CREATE_TIME": "2024-03-26 15:54:53",
"MODIFY_TIME": "2024-03-26 15:54:53",
},
{
"COUNT": 185,
"DATE": "2024-03-25 00:00:00",
"type": 0,
"ID": "103028e8-bcaf-4f4d-82b3-53908ad80086",
"CREATE_TIME": "2024-03-26 15:54:53",
"MODIFY_TIME": "2024-03-26 15:54:53",
},
{
"COUNT": 186,
"DATE": "2024-03-26 00:00:00",
"type": 0,
"ID": "18a9775e-6f9c-4e07-9528-80a30284e7e8",
"CREATE_TIME": "2024-03-27 15:54:53",
"MODIFY_TIME": "2024-03-27 15:54:53",
},
{
"COUNT": 304,
"DATE": "2024-03-26 00:00:00",
"type": 1,
"ID": "1a865fec-6e16-4f05-bb92-d91ecf7ec113",
"CREATE_TIME": "2024-03-27 15:54:53",
"MODIFY_TIME": "2024-03-27 15:54:53",
},
{
"COUNT": 207,
"DATE": "2024-03-27 00:00:00",
"type": 0,
"ID": "d6178a36-3d88-4c9b-914e-e15099d14585",
"CREATE_TIME": "2024-03-28 15:54:53",
"MODIFY_TIME": "2024-03-28 15:54:53",
},
{
"COUNT": 294,
"DATE": "2024-03-27 00:00:00",
"type": 1,
"ID": "6fe4b031-140f-4b07-b260-7448ccc221ef",
"CREATE_TIME": "2024-03-28 15:54:53",
"MODIFY_TIME": "2024-03-28 15:54:53",
},
{
"COUNT": 202,
"DATE": "2024-03-28 00:00:00",
"type": 0,
"ID": "261bd85b-409e-4270-a5a0-428179af465b",
"CREATE_TIME": "2024-03-29 15:54:54",
"MODIFY_TIME": "2024-03-29 15:54:54",
},
{
"COUNT": 301,
"DATE": "2024-03-28 00:00:00",
"type": 1,
"ID": "bc62a9da-6ba4-415f-80dd-3098b683acd0",
"CREATE_TIME": "2024-03-29 15:54:54",
"MODIFY_TIME": "2024-03-29 15:54:54",
},
{
"COUNT": 188,
"DATE": "2024-03-29 00:00:00",
"type": 0,
"ID": "c2ce0ab6-e886-4949-b9e1-03e372327626",
"CREATE_TIME": "2024-03-30 15:54:54",
"MODIFY_TIME": "2024-03-30 15:54:54",
},
{
"COUNT": 292,
"DATE": "2024-03-29 00:00:00",
"type": 1,
"ID": "2908af15-44dd-4638-ad8b-5b52aa124bec",
"CREATE_TIME": "2024-03-30 15:54:54",
"MODIFY_TIME": "2024-03-30 15:54:54",
},
{
"COUNT": 191,
"DATE": "2024-03-30 00:00:00",
"type": 0,
"ID": "176bb95d-ff69-456c-b513-40b7f366d5bd",
"CREATE_TIME": "2024-03-31 15:54:54",
"MODIFY_TIME": "2024-03-31 15:54:54",
},
{
"COUNT": 294,
"DATE": "2024-03-30 00:00:00",
"type": 1,
"ID": "345b369c-b972-4e67-b29d-b5f213f4d587",
"CREATE_TIME": "2024-03-31 15:54:54",
"MODIFY_TIME": "2024-03-31 15:54:54",
},
{
"COUNT": 191,
"DATE": "2024-03-31 00:00:00",
"type": 0,
"ID": "bfd345e2-3927-4cb6-96eb-e65f5344fe82",
"CREATE_TIME": "2024-04-01 15:54:54",
"MODIFY_TIME": "2024-04-01 15:54:54",
},
{
"COUNT": 288,
"DATE": "2024-03-31 00:00:00",
"type": 1,
"ID": "590f5ef6-08c7-4523-8f98-5afec6c02c72",
"CREATE_TIME": "2024-04-01 15:54:54",
"MODIFY_TIME": "2024-04-01 15:54:54",
},
{
"COUNT": 399,
"DATE": "2024-04-01 00:00:00",
"type": 1,
"ID": "80eb33a7-a811-49ea-aaae-b560e9b5d861",
"CREATE_TIME": "2024-04-02 15:54:55",
"MODIFY_TIME": "2024-04-02 15:54:55",
},
{
"COUNT": 198,
"DATE": "2024-04-01 00:00:00",
"type": 0,
"ID": "7f595016-1fc9-4be0-b0b1-ccaadf400f4a",
"CREATE_TIME": "2024-04-02 15:54:55",
"MODIFY_TIME": "2024-04-02 15:54:55",
},
{
"COUNT": 390,
"DATE": "2024-04-02 00:00:00",
"type": 1,
"ID": "410bae9f-8811-48bc-b063-6b50c6b7988c",
"CREATE_TIME": "2024-04-03 15:54:55",
"MODIFY_TIME": "2024-04-03 15:54:55",
},
{
"COUNT": 214,
"DATE": "2024-04-02 00:00:00",
"type": 0,
"ID": "ba28acd4-f7b6-4fc8-b37e-a09c272dda92",
"CREATE_TIME": "2024-04-03 15:54:55",
"MODIFY_TIME": "2024-04-03 15:54:55",
},
{
"COUNT": 237,
"DATE": "2024-04-03 00:00:00",
"type": 0,
"ID": "7c9e488e-9d76-439d-bf4a-892e9997b425",
"CREATE_TIME": "2024-04-04 15:54:55",
"MODIFY_TIME": "2024-04-04 15:54:55",
},
{
"COUNT": 312,
"DATE": "2024-04-03 00:00:00",
"type": 1,
"ID": "45b9f8ae-e0c0-4113-b822-b7f0ecdcd8ce",
"CREATE_TIME": "2024-04-04 15:54:55",
"MODIFY_TIME": "2024-04-04 15:54:55",
},
{
"COUNT": 197,
"DATE": "2024-04-04 00:00:00",
"type": 0,
"ID": "b37526da-3461-4e2a-a79d-eadb9a523512",
"CREATE_TIME": "2024-04-05 15:54:55",
"MODIFY_TIME": "2024-04-05 15:54:55",
},
{
"COUNT": 254,
"DATE": "2024-04-04 00:00:00",
"type": 1,
"ID": "03e3017c-b5c0-4e1a-8b32-ebd8fd28dcf0",
"CREATE_TIME": "2024-04-05 15:54:55",
"MODIFY_TIME": "2024-04-05 15:54:55",
},
{
"COUNT": 266,
"DATE": "2024-04-05 00:00:00",
"type": 1,
"ID": "d8ea24f9-3697-4af3-b406-4f5ae3c44586",
},
{
"COUNT": 174,
"DATE": "2024-04-05 00:00:00",
"type": 0,
"ID": "14a421a8-6485-4e1e-9ca0-1e40c32b0579",
},
{
"COUNT": 168,
"DATE": "2024-04-06 00:00:00",
"type": 0,
"ID": "0208eb4a-4da5-4229-af0b-27c1dfc66102",
"CREATE_TIME": "2024-04-07 15:54:55",
"MODIFY_TIME": "2024-04-07 15:54:55",
},
{
"COUNT": 292,
"DATE": "2024-04-06 00:00:00",
"type": 1,
"ID": "4849991c-cb1e-4780-a558-669fb92ed16e",
"CREATE_TIME": "2024-04-07 15:54:55",
"MODIFY_TIME": "2024-04-07 15:54:55",
},
{
"COUNT": 171,
"DATE": "2024-04-07 00:00:00",
"type": 0,
"ID": "69efae5a-9ac8-4627-a6da-a786706e1b63",
"CREATE_TIME": "2024-04-08 15:54:55",
"MODIFY_TIME": "2024-04-08 15:54:55",
},
{
"COUNT": 318,
"DATE": "2024-04-07 00:00:00",
"type": 1,
"ID": "3cb6beb3-6bd9-4b39-84ab-420f407b3b8d",
"CREATE_TIME": "2024-04-08 15:54:55",
"MODIFY_TIME": "2024-04-08 15:54:55",
},
{
"COUNT": 314,
"DATE": "2024-04-08 00:00:00",
"type": 1,
"ID": "ac34c873-2b7b-43a2-9243-9935817a45db",
"CREATE_TIME": "2024-04-09 15:54:55",
"MODIFY_TIME": "2024-04-09 15:54:55",
},
{
"COUNT": 186,
"DATE": "2024-04-08 00:00:00",
"type": 0,
"ID": "c5d4e5fc-9f0b-4726-a739-7aa487c82174",
"CREATE_TIME": "2024-04-09 15:54:55",
"MODIFY_TIME": "2024-04-09 15:54:55",
},
{
"COUNT": 307,
"DATE": "2024-04-09 00:00:00",
"type": 1,
"ID": "bc75f415-bacb-45a1-814b-ac28f4f7cb2e",
"CREATE_TIME": "2024-04-10 15:54:56",
"MODIFY_TIME": "2024-04-10 15:54:56",
},
{
"COUNT": 207,
"DATE": "2024-04-09 00:00:00",
"type": 0,
"ID": "2590bf04-f29a-4450-be5b-e1995bae8b6d",
"CREATE_TIME": "2024-04-10 15:54:56",
"MODIFY_TIME": "2024-04-10 15:54:56",
},
{
"COUNT": 199,
"DATE": "2024-04-10 00:00:00",
"type": 0,
"ID": "43fe7ecc-b588-4f50-987b-f58efbc8b455",
"CREATE_TIME": "2024-04-11 15:54:56",
"MODIFY_TIME": "2024-04-11 15:54:56",
},
{
"COUNT": 281,
"DATE": "2024-04-10 00:00:00",
"type": 1,
"ID": "f503a544-4f3d-4c60-8b49-8fc90ec9359c",
"CREATE_TIME": "2024-04-11 15:54:56",
"MODIFY_TIME": "2024-04-11 15:54:56",
}
];
}
for (let i = 0; i < ret.Data.length; i++) {
if (ret.Data[i].type == 0) {
this.state.activeNums.push(ret.Data[i].COUNT);
@ -128,13 +1094,14 @@ class BI005LoginRecord extends React.Component {
}
}
if (this.state.totalActiveUsers == 0) {
//this.state.totalActiveUsers = ret.Data.reverse().find(item => item.type === 0)?.COUNT;
this.state.totalActiveUsers = 326;
this.state.totalActiveUsers = ret.Data.reverse().find(item => item.type === 0)?.COUNT;
//this.state.totalActiveUsers = 326;
}
this.state.dates.push(moment().format('MM/DD'));
this.state.loginNums.push(todayCount);
let chart1s = document.getElementById('chart1');
console.log(this.state.dates);
if (chart1s) {
let myChart = echarts.init(chart1s);
myChart.on('click', (params) => {

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,35 @@
import React from 'react'
import { connect } from 'dva'
import { initFilter, extendRule, extendOrder } from "../../../utils/common"
import { ChartPieShow, ChartBarShow } from "../../../utils/commonEcharsShow"
import { Table, Button,Input, Row, Col,Modal ,Icon,Progress} from 'antd';
import echarts from 'echarts';
import styles from '../HI/StepForm.css';
import moment from 'moment'
import { T } from 'antd/lib/upload/utils';
import FormPage from '../../FormPage'
import React from "react";
import { connect } from "dva";
import { initFilter, extendRule, extendOrder } from "../../../utils/common";
import { ChartPieShow, ChartBarShow } from "../../../utils/commonEcharsShow";
import {
Table,
Button,
Input,
Row,
Col,
Modal,
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 BI011FormRunAnalysis extends React.Component {
constructor(props) {
super(props);
this.state = {
visible: false,
loading: false,
noticeTitle: '',
noticeTitle: "",
tmpData: {},
tableKey: "1",
startTime: moment(new Date().setDate(1)).subtract(5,'months').format("YYYY-MM-DD"),
startTime: moment(new Date().setDate(1))
.subtract(5, "months")
.format("YYYY-MM-DD"),
endTime: moment(new Date()).format("YYYY-MM-DD"),
timeType: 5,
totalCount: 0,
@ -30,26 +41,26 @@ class BI011FormRunAnalysis extends React.Component {
dovertimeCount: 0,
dunfinishCount: 0,
inputText: this.props.login.user.NAME,
drate:'0%',
dnormalRate:'0%',
weekColor:'black',
monthColor:'orange',
threeMonthColor:'black',
sixMonthColor:'black',
yearColor:'black',
drate: "0%",
dnormalRate: "0%",
weekColor: "black",
monthColor: "orange",
threeMonthColor: "black",
sixMonthColor: "black",
yearColor: "black",
retData: [],
groupData: [],
detailData: [],
newData: [],
detailDataH: [],
displayHr:'none',
displaydetail:'none',
displayHr: "none",
displaydetail: "none",
columns: [
{
width: "30px",
title: '月份',
dataIndex: 'MONTHStr',
key: 'MONTHStr',
title: "月份",
dataIndex: "MONTHStr",
key: "MONTHStr",
// render: (text, record) => (
// <span>
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
@ -58,17 +69,17 @@ class BI011FormRunAnalysis extends React.Component {
},
{
width: "30px",
title: '任务数',
dataIndex: 'TOTAL_QTY',
key: 'TOTAL_QTY'
},{
title: "任务数",
dataIndex: "TOTAL_QTY",
key: "TOTAL_QTY",
},
{
width: "30px",
title: '完成率',
dataIndex: 'FINISH_RATE',
key: 'FINISH_RATE',
title: "完成率",
dataIndex: "FINISH_RATE",
key: "FINISH_RATE",
render: (text, record) => (
<Progress percent={record.FINISH_RATE.split('%')[0]} />
<Progress percent={record.FINISH_RATE.split("%")[0]} />
// <span>
// <a onClick={() => this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME}</a>
// </span>
@ -76,16 +87,22 @@ class BI011FormRunAnalysis extends React.Component {
},
{
width: "30px",
title: '及时完成率',
dataIndex: 'NORMAL_FINISH_RATE',
key: 'NORMAL_FINISH_RATE',
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)' }} />
<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>
),
}
},
],
detailColumns: [
// {
@ -96,9 +113,9 @@ class BI011FormRunAnalysis extends React.Component {
// },
{
width: "100px",
title: '模块名称',
dataIndex: 'MOUDLE_NAME',
key: 'MOUDLE_NAME',
title: "模块名称",
dataIndex: "MOUDLE_NAME",
key: "MOUDLE_NAME",
// render: (text, record) => (
// <span>
// <a onClick={() => this.showFormModal(record.MOUDLE_NAME)}>{record.MOUDLE_NAME}</a>
@ -107,87 +124,101 @@ class BI011FormRunAnalysis extends React.Component {
},
{
width: "60px",
title: '总任务数',
dataIndex: 'TOTAL_QTY',
key: 'TOTAL_QTY'
title: "总任务数",
dataIndex: "TOTAL_QTY",
key: "TOTAL_QTY",
},
{
width: "60px",
title: '正常已办',
dataIndex: 'FINISH_QTY',
key: 'FINISH_QTY'
title: "正常已办",
dataIndex: "FINISH_QTY",
key: "FINISH_QTY",
},
{
width: "60px",
title: '超时已办',
dataIndex: 'OVER_FINISH_QTY',
key: 'OVER_FINISH_QTY'
title: "超时已办",
dataIndex: "OVER_FINISH_QTY",
key: "OVER_FINISH_QTY",
},
{
width: "50px",
title: '未完成',
dataIndex: 'UNFINISH_QTY',
key: 'UNFINISH_QTY',
title: "未完成",
dataIndex: "UNFINISH_QTY",
key: "UNFINISH_QTY",
},
{
width: "50px",
title: '完成率',
dataIndex: 'FINISH_RATE',
key: 'FINISH_RATE',
title: "完成率",
dataIndex: "FINISH_RATE",
key: "FINISH_RATE",
},
{
width: "70px",
title: '及时完成率',
dataIndex: 'NORMAL_FINISH_RATE',
key: 'NORMAL_FINISH_RATE',
title: "及时完成率",
dataIndex: "NORMAL_FINISH_RATE",
key: "NORMAL_FINISH_RATE",
render: (text, record) => (
<span>
{record.NORMAL_FINISH_RATE}{"%"}
{record.NORMAL_FINISH_RATE}
{"%"}
</span>
),
}
},
],
};
};
}
componentDidMount() {
this.loadData()
};
this.loadData();
}
showEditModal = (departmentId, departmentName) => {
const newtmpData = {
data: {
id: departmentId, name: departmentName, onCancel: this.handleCancel, tableKey: this.state.tableKey,
homeReload: true
id: departmentId,
name: departmentName,
onCancel: this.handleCancel,
tableKey: this.state.tableKey,
homeReload: true,
},
formCode: "BI007_RUNANALYSIS",
}
this.setState({
};
this.setState(
{
id: departmentId,
name: departmentName,
noticeTitle: departmentName + "安全生产标准化运行情况",
tmpData: newtmpData,
currActivatedMenu: ''
}, () => this.setState({
visible: true
}));
}
currActivatedMenu: "",
},
() =>
this.setState({
visible: true,
})
);
};
showFormModal = (mouldName) => {
const newtmpData = {
data: {
name: mouldName, onCancel: this.handleCancel, tableKey: this.state.tableKey,
homeReload: true
name: mouldName,
onCancel: this.handleCancel,
tableKey: this.state.tableKey,
homeReload: true,
},
formCode: "BI008_RUNANALYSIS",
}
this.setState({
};
this.setState(
{
name: mouldName,
noticeTitle: mouldName + "安全生产标准化运行情况",
tmpData: newtmpData,
currActivatedMenu: ''
}, () => this.setState({
visible: true
}));
}
currActivatedMenu: "",
},
() =>
this.setState({
visible: true,
})
);
};
// showEditModal = (dataId, formCode, TaskID, title, taskCode) => {
// const newtmpData = {
@ -212,7 +243,7 @@ class BI011FormRunAnalysis extends React.Component {
// this.ksRun();
this.getMould(this.props.login.user.NAME);
// this.getDepartment();
}
};
//矿山
ksRun = (data) => {
// let data = {
@ -233,104 +264,201 @@ class BI011FormRunAnalysis extends React.Component {
let month = [];
let company = [];
let department = [];
data.forEach(item => {
let color = [
"#0090FF",
"#36CE9E",
"#FFC005",
"#FF515A",
"#8B5CFF",
"#00CA69",
];
const hexToRgba = (hex, opacity) => {
let rgbaColor = "";
let reg = /^#[\da-f]{6}$/i;
if (reg.test(hex)) {
rgbaColor = `rgba(${parseInt("0x" + hex.slice(1, 3))},${parseInt(
"0x" + hex.slice(3, 5)
)},${parseInt("0x" + hex.slice(5, 7))},${opacity})`;
}
return rgbaColor;
};
data.forEach((item) => {
month.push(item.MONTHStr);
company.push(item.FINISH_RATE);
department.push(item.NORMAL_FINISH_RATE);
})
let myChart = echarts.init(document.getElementById('ksRun'));
});
let myChart = echarts.init(document.getElementById("ksRun"));
myChart.setOption({
color: color,
title: {
text: "任务及时完成率近6个月",
left: 'center',
top:'2%'
left: "center",
top: "2%",
},
tooltip: {
trigger: 'axis',
trigger: "axis",
formatter: function (params) {
let temp=''
params.forEach(t=>{
temp=temp+t.marker + t.seriesName +":"+t.value+"%"+'<br />';
})
let temp = "";
params.forEach((t) => {
temp =
temp + t.marker + t.seriesName + ":" + t.value + "%" + "<br />";
});
return temp;
}
},
legend: {
// data: ['部门'],
data: ['完成率', '及时完成率'],
bottom: '5px'
},
grid: {
left: '3%',
right: '4%',
top: '12%',
containLabel: true
left: "10%",
right: "5%",
},
toolbox: {
feature: {
// saveAsImage: {}
}
legend: {
left: "center",
align: "left",
bottom: "2%",
textStyle: {
color: "#000",
},
itemWidth: 10,
itemHeight: 10,
},
xAxis: {
type: 'category',
boundaryGap: false,
type: "category",
data: month,
axisLine: {
show: false,
// lineStyle: {
// color: 'rgba(192, 192, 102)'
// }
},
axisTick: {
show: false
},
boundaryGap: false,
axisLabel: {
color: '#000',
rotate: 40,
formatter: function (value) { // 自定义文字超出部分 ...
if (value.length > 10) {
return `${value.slice(0, 10)}...`;
}
return value;
}
}
textStyle: {
color: "#333",
},
},
axisLine: {
lineStyle: {
color: "#D9D9D9",
},
},
},
yAxis: {
type: "value",
axisLabel: {
formatter: function (val) {
return (val)+ '%';
}
textStyle: {
color: "#666",
},
},
nameTextStyle: {
color: "#666",
fontSize: 12,
lineHeight: 40,
},
splitLine: {
lineStyle: {
type: "dashed",
color: "#E9E9E9",
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
series: [
{
name: '完成率',
type: 'line',
color: '#4b9bf3',
name: "完成率",
type: "line",
data: company,
smooth: true
smooth: true,
symbolSize: 8,
zlevel: 3,
lineStyle: {
normal: {
color: color[0],
shadowBlur: 3,
shadowColor: hexToRgba(color[0], 0.5),
shadowOffsetY: 8,
},
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: hexToRgba(color[0], 0.3),
},
{
name: '及时完成率',
type: 'line',
color: '#FCD149',
data: department,
smooth: true
offset: 1,
color: hexToRgba(color[0], 0.1),
},
]
})
}
],
false
),
shadowColor: hexToRgba(color[0], 0.1),
shadowBlur: 10,
},
},
},
{
name: "及时完成率",
type: "line",
data: department,
smooth: true,
symbolSize: 8,
zlevel: 3,
lineStyle: {
normal: {
color: color[1],
shadowBlur: 3,
shadowColor: hexToRgba(color[1], 0.5),
shadowOffsetY: 8,
},
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: hexToRgba(color[1], 0.3),
},
{
offset: 1,
color: hexToRgba(color[1], 0.1),
},
],
false
),
shadowColor: hexToRgba(color[1], 0.1),
shadowBlur: 10,
},
},
},
],
});
}
};
getMould = (inputText) => {
this.setState({loading:true
})
var orgId = this.props.login ? this.props.login.OrgId : '';
let json = initFilter(orgId,inputText,"","","",this.state.startTime,this.state.endTime);
this.setState({ loading: true });
var orgId = this.props.login ? this.props.login.OrgId : "";
let json = initFilter(
orgId,
inputText,
"",
"",
"",
this.state.startTime,
this.state.endTime
);
this.props.dispatch({
type: 'app/getDataByPost',
type: "app/getDataByPost",
payload: json,
url: 'BI/BIStatiscialAnalysisController/GetPersonAnalyze',
url: "BI/BIStatiscialAnalysisController/GetPersonAnalyze",
onComplete: (ret) => {
if (ret) {
this.setState({
@ -340,12 +468,10 @@ class BI011FormRunAnalysis extends React.Component {
overtimeCount: ret.timeOverCount,
unfinishCount: ret.unfinishCount,
dovertimeCount: ret.timeOverWaitCount,
loading:false
})
loading: false,
});
this.ksRun(ret.groupDataLine);
}
else
{
} else {
this.setState({
retData: [],
totalCount: 0,
@ -353,76 +479,285 @@ class BI011FormRunAnalysis extends React.Component {
overtimeCount: 0,
unfinishCount: 0,
dovertimeCount: 0,
loading:false
})
}
}
})
loading: false,
});
}
},
});
};
closeModal = () => { // 退出弹窗
closeModal = () => {
// 退出弹窗
this.clearData();
}
};
clearData = () => {
let newtmpData = { ...this.state.tmpData }
newtmpData["data"].id = '';
let newtmpData = { ...this.state.tmpData };
newtmpData["data"].id = "";
newtmpData["data"].homeReload = false;
newtmpData.formCode = '';
newtmpData.formCode = "";
this.setState({
visible: false,
tmpData: newtmpData,
})
}
handleCancel = () => { // 退出弹窗
});
};
handleCancel = () => {
// 退出弹窗
this.clearData();
}
};
handleSearch = (evt) => {
const { value } = evt.target
this.setState({ inputText: value ? value : this.props.login.user.NAME })
}
const { value } = evt.target;
this.setState({ inputText: value ? value : this.props.login.user.NAME });
};
render() {
const { startTime, endTime,finishCount,overtimeCount,totalCount,unfinishCount,inputText,
weekColor,monthColor,threeMonthColor,sixMonthColor,yearColor,dovertimeCount
const {
startTime,
endTime,
finishCount,
overtimeCount,
totalCount,
unfinishCount,
inputText,
weekColor,
monthColor,
threeMonthColor,
sixMonthColor,
yearColor,
dovertimeCount,
} = this.state;
let allFinishRate=(totalCount ===0||totalCount==undefined) ?0:((finishCount+overtimeCount)/totalCount * 100).toFixed(1);
let finishRate=(totalCount ===0||totalCount==undefined)?0:(finishCount/totalCount * 100).toFixed(1);
return <div>
let allFinishRate =
totalCount === 0 || totalCount == undefined
? 0
: (((finishCount + overtimeCount) / totalCount) * 100).toFixed(1);
let finishRate =
totalCount === 0 || totalCount == undefined
? 0
: ((finishCount / totalCount) * 100).toFixed(1);
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',}}>
<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'
className="antd-modal-fullscreen"
closeModal={this.closeModal}
// forceRender={true}
>
<FormPage {...this.state.tmpData} />
</Modal>
<h1 style={{ textAlign:"center", verticalAlign:"Bottom",marginTop:'20px',marginBottom:'20px',fontWeight:'bold'}}>任务完成情况统计分析(个人)</h1>
<Row style={{ fontSize:'15px',marginTop:'10px',marginLeft:"30px",height:"35px"}}>
<span style={{marginLeft:"10px",width:'100px'}}><b>姓名</b>{inputText}</span>
<span style={{marginLeft:"30px",width:'100px'}}><b>统计区间</b>{startTime} - {endTime}</span>
<span style={{float:"right",marginRight:'30px'}}><Input onChange={this.handleSearch} style={{width:'150px',marginRight:'10px'}} defaultValue={this.props.login.user.NAME}></Input><Button onClick={() => this.getMould(inputText)} style={{width:'80px'}} type='primary'></Button></span>
<h1
style={{
textAlign: "center",
verticalAlign: "Bottom",
marginTop: "20px",
marginBottom: "40px",
fontWeight: "bold",
}}
>
任务完成情况统计分析(个人)
</h1>
<Row
style={{
fontSize: "15px",
marginTop: "10px",
// marginLeft: "30px",
margin: "0px 100px",
height: "35px",
}}
>
<span style={{ marginLeft: "10px", width: "100px" }}>
<b>姓名</b>
{inputText}
</span>
<span style={{ marginLeft: "30px", width: "100px" }}>
<b>统计区间</b>
{startTime} - {endTime}
</span>
<span style={{ float: "right", marginRight: "30px" }}>
<Input
onChange={this.handleSearch}
style={{ width: "150px", marginRight: "10px" }}
defaultValue={this.props.login.user.NAME}
></Input>
<Button
onClick={() => this.getMould(inputText)}
style={{ width: "80px" }}
type="primary"
>
查询
</Button>
</span>
</Row>
<hr style={{width:"98%"}}></hr>
{/* <hr style={{ width: "98%" }}></hr> */}
<br></br>
<span style={{width:"800px",marginLeft:"30px",marginBottom:"20px"}}>
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
marginTop: "10px",
// marginBottom: "20px",
}}
>
<div className={styles.menuPie}>
<li>
总任务数
<br />
<div className={styles.dataStyle}>
{totalCount ? totalCount : 0}
</div>
</li>
<Divider
type="vertical"
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
/>
<li>
待办数
<br />
<div className={styles.dataStyle1}>
{unfinishCount ? unfinishCount : 0}
</div>
</li>
<Divider
type="vertical"
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
/>
<li>
超时待办数
<br />
<div className={styles.dataStyle3}>
{dovertimeCount ? dovertimeCount : 0}
</div>
</li>
<Divider
type="vertical"
style={{ width: "1px", height: "70px", margin: "9px 0px" }}
/>
<li>
已办事项
<br />
<div className={styles.dataStyle2}>
{finishCount + overtimeCount
? finishCount + overtimeCount
: 0}
</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}>
{allFinishRate ? allFinishRate : 0}%
</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}>
{finishRate ? finishRate : 0}%
</div>
</li>
</div>
</div>
{/* <span style={{width:"800px",marginLeft:"30px",marginBottom:"20px"}}>
<Button style={{width:"120px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>总任务数<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'black'}}>{totalCount?totalCount:0}</span></Button>
<Button style={{width:"120px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>待办数<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'red'}}>{unfinishCount?unfinishCount:0}</span></Button>
<Button style={{width:"120px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>超时待办数<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'orange'}}>{dovertimeCount?dovertimeCount:0}</span></Button>
<Button style={{width:"120px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>已办事项<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'green'}}>{(finishCount+overtimeCount)?(finishCount+overtimeCount):0}</span></Button>
<Button style={{width:"130px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>完成率<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'orange'}}>{allFinishRate?allFinishRate:0}%</span></Button>
<Button style={{width:"140px",height:"80px",borderRadius: '8px',border:'1px RGB(24, 149, 255) solid',marginRight:"10px"}}>及时完成率<br></br><span style={{fontWeight:"bold",fontSize:"30px",color:'orange'}}>{finishRate?finishRate:0}%</span></Button>
</span>
</span> */}
{/* <hr style={{border:'1px dashed #ccc',marginBottom:"20px",marginTop:"20px"}}></hr> */}
<Row style={{marginTop:"20px"}}>
<Col span={9}>
<Row
style={{
marginTop: "20px",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<Col
span={24}
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
width: "1100px",
}}
>
{/* <h2 style={{textAlign:'center',fontWeight:'bold'}}>任务及时完成率近12个月</h2> */}
<div
id="ksRun"
style={{
width: "100%",
height: "400px",
backgroundColor: "white",
borderStyle: "solid",
borderColor: "#ccc",
borderWidth: "1px",
}}
></div>
{/* <br></br> */}
{/* <span style={{ width: "100%" }}>
* 统计时间{moment(new Date()).format("YYYY-MM-DD HH:mm:ss")}
<br></br>
<br></br>
</span> */}
</Col>
</Row>
<Row
style={{
marginTop: "20px",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<Col
span={24}
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
width: "1100px",
}}
>
{/* <h2 style={{textAlign:'left',fontWeight:'bold',marginLeft:"30px"}}><Icon type="appstore"/> 部门统计分析</h2> */}
<Table style={{width:'400px',marginLeft:"30px",textAlign:'center',marginBottom:'30px'}}
<Table
style={{
width: "100%",
// marginLeft: "30px",
textAlign: "center",
marginBottom: "30px",
}}
// scroll={{ y: 400 }}
dataSource={this.state.retData}
columns={this.state.columns}
@ -432,16 +767,12 @@ class BI011FormRunAnalysis extends React.Component {
bordered
/>
</Col>
<Col span={14}>
{/* <h2 style={{textAlign:'center',fontWeight:'bold'}}>任务及时完成率近12个月</h2> */}
<div id="ksRun" style={{width:'100%', height: '500px',marginLeft:"20px" ,marginRight:"30px" ,backgroundColor:"white",borderStyle:'solid',borderColor:'#ccc',borderWidth:'1px'}}></div>
<br></br>
<span style={{width:'100%'}}>* 统计时间{moment(new Date()).format("YYYY-MM-DD HH:mm:ss")}<br></br><br></br></span>
</Col>
</Row>
</div>
</div>
);
}
}
export default connect(({ login, app,loading }) => ({ login, app ,loading}))(BI011FormRunAnalysis)
export default connect(({ login, app, loading }) => ({ login, app, loading }))(
BI011FormRunAnalysis
);

View File

@ -9,6 +9,7 @@ import {
extendOrder,
extend,
initQueryFilter,
getSixMonth
} from "../../../utils/common";
import { Table, Row, Col, Button, Select, DatePicker, message } from "antd";
import echarts from "echarts";
@ -221,7 +222,7 @@ class BI013RiskAnalysisModel extends React.Component {
"破碎车间-粗碎单元",
"综合回收车间-精多金属仓库单元",
"磨重车间-脱泥单元",
"食堂",
"综合回收车间-精矿烘干单元",
"尾矿库截渗池回水单元",
"破碎车间-辊磨单元",
@ -240,7 +241,7 @@ class BI013RiskAnalysisModel extends React.Component {
"截渗池回水单元",
];
let areaCount = [
1, 2, 3, 3, 4, 4, 6, 9, 9, 11, 19, 20, 21, 22, 22, 23, 27, 31, 32, 32,
1, 2, 3, 4, 4, 6, 9, 9, 11, 19, 20, 21, 22, 22, 23, 27, 31, 32, 32,
];
// data.forEach((item) => {
// areaName.push(item.AREANAME);
@ -380,22 +381,13 @@ class BI013RiskAnalysisModel extends React.Component {
};
chart4 = (data) => {
let riskArr = [2714, 2714, 2714, 2714];
let hazardArr = [50, 50, 50, 50];
let riskArr = [1914, 2014,2114, 2214, 2314, 2414, 2514, 2614, 2714, 2814, 2914, 3014];
let hazardArr = [50, 65, 72, 93,154, 175, 196, 247,278, 359, 420, 481];
let dates = [
"2024/01",
"2024/02",
"2024/03",
"2024/04",
"2024/05",
"2024/06",
"2024/07",
"2024/08",
"2024/09",
"2024/10",
"2024/11",
"2024/12",
];
for (let i = 0; i < 12; i++) {
dates.unshift(getSixMonth(-i, "-", ""));
}
// for (let i = 0; i < data.length; i++) {
// if (data[i].TYPE == 0) {
// riskArr.push(data[i].COUNT);

View File

@ -43,20 +43,20 @@ class BI014RiskPerformanceModel extends React.Component {
{ DATE: "2024-04-30 23:59:59", COUNT: 714, TYPE: 0 },
{ DATE: "2024-05-31 23:59:59", COUNT: 80, TYPE: 1 },
{ DATE: "2024-05-31 23:59:59", COUNT: 814, TYPE: 0 },
{ DATE: "2024-06-30 23:59:59", COUNT: 80, TYPE: 1 },
{ DATE: "2024-06-30 23:59:59", COUNT: 914, TYPE: 0 },
{ DATE: "2024-07-31 23:59:59", COUNT: 94, TYPE: 1 },
{ DATE: "2024-07-31 23:59:59", COUNT: 954, TYPE: 0 },
{ DATE: "2024-08-31 23:59:59", COUNT: 102, TYPE: 1 },
{ DATE: "2024-08-31 23:59:59", COUNT: 984, TYPE: 0 },
{ DATE: "2024-09-30 23:59:59", COUNT: 102, TYPE: 1 },
{ DATE: "2024-09-30 23:59:59", COUNT: 1014, TYPE: 0 },
{ DATE: "2024-10-31 23:59:59", COUNT: 112, TYPE: 1 },
{ DATE: "2024-10-31 23:59:59", COUNT: 1024, TYPE: 0 },
{ DATE: "2024-11-30 23:59:59", COUNT: 113, TYPE: 1 },
{ DATE: "2024-11-30 23:59:59", COUNT: 1114, TYPE: 0 },
{ DATE: "2024-12-31 23:59:59", COUNT: 116, TYPE: 1 },
{ DATE: "2024-12-31 23:59:59", COUNT: 1154, TYPE: 0 },
// { DATE: "2024-06-30 23:59:59", COUNT: 80, TYPE: 1 },
// { DATE: "2024-06-30 23:59:59", COUNT: 914, TYPE: 0 },
// { DATE: "2024-07-31 23:59:59", COUNT: 94, TYPE: 1 },
// { DATE: "2024-07-31 23:59:59", COUNT: 954, TYPE: 0 },
// { DATE: "2024-08-31 23:59:59", COUNT: 102, TYPE: 1 },
// { DATE: "2024-08-31 23:59:59", COUNT: 984, TYPE: 0 },
// { DATE: "2024-09-30 23:59:59", COUNT: 102, TYPE: 1 },
// { DATE: "2024-09-30 23:59:59", COUNT: 1014, TYPE: 0 },
// { DATE: "2024-10-31 23:59:59", COUNT: 112, TYPE: 1 },
// { DATE: "2024-10-31 23:59:59", COUNT: 1024, TYPE: 0 },
// { DATE: "2024-11-30 23:59:59", COUNT: 113, TYPE: 1 },
// { DATE: "2024-11-30 23:59:59", COUNT: 1114, TYPE: 0 },
// { DATE: "2024-12-31 23:59:59", COUNT: 116, TYPE: 1 },
// { DATE: "2024-12-31 23:59:59", COUNT: 1154, TYPE: 0 },
],
CHARTFXDJ1:
{
@ -122,16 +122,14 @@ class BI014RiskPerformanceModel extends React.Component {
"机电设备管理办公室",
"矿山部",
"财务部",
"办公室",
"非金属资源部筹备组",
"企业管理部",
"技术管理部",
"营销部",
],
LEVEL1: [0, 1, 0, 1, 0, 0, 1, 0, 0, 0],
LEVEL2: [0, 2, 0, 3, 0, 0, 1, 0, 0, 0],
LEVEL3: [56, 109, 273, 381, 74, 135, 215, 296, 123, 335],
LEVEL4: [23, 168, 250, 390, 62, 117, 244, 313, 89, 367],
LEVEL1: [0, 1, 0, 1, 0, 0, 1, 0],
LEVEL2: [0, 2, 0, 3, 0, 0, 1, 0],
LEVEL3: [56, 109, 273, 381, 74, 135, 215, 335],
LEVEL4: [23, 168, 250, 390, 62, 117, 244, 367],
},
{
@ -252,14 +250,14 @@ class BI014RiskPerformanceModel extends React.Component {
],
CHARTZYRW1:
{
NAME: ["一般任务", "关键任务", "许可作业"],
LEVEL1: [67, 81, 91],
NAME: ["许可作业", "关键任务", "一般任务"],
LEVEL1: [67, 81, 191],
}
,
CHARTZYRW2: [
{ name: "一般任务", value: 67 },
{ name: "许可作业", value: 67 },
{ name: "关键任务", value: 81 },
{ name: "许可作业", value: 91 },
{ name: "一般任务", value: 191 },
],
},
TotalCount: 0,
@ -527,6 +525,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -544,7 +543,6 @@ class BI014RiskPerformanceModel extends React.Component {
}
}
},
barWidth: 30,
label: {
normal: {
show: true,
@ -622,10 +620,6 @@ class BI014RiskPerformanceModel extends React.Component {
let myChart = echarts.init(chartSCDY);
myChart.setOption(
{
// title: {
// text: "生产单元",
// left: "center",
// },
tooltip: {
trigger: "axis",
axisPointer: {
@ -664,6 +658,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -679,9 +674,10 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
},
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -699,6 +695,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -716,6 +713,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -788,6 +786,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
series: [
{
barWidth: 20,
name: "露天矿",
type: "bar",
stack: "总量",
@ -797,9 +796,9 @@ class BI014RiskPerformanceModel extends React.Component {
},
data: Data.LEVEL3.slice(0, 10),
itemStyle: { color: this.state.level3Color },
barWidth: 30
},
{
barWidth: 20,
name: "选矿厂",
type: "bar",
stack: "总量",
@ -811,6 +810,7 @@ class BI014RiskPerformanceModel extends React.Component {
itemStyle: { color: this.state.level1Color },
},
{
barWidth: 20,
name: "尾矿库",
type: "bar",
stack: "总量",
@ -822,6 +822,7 @@ class BI014RiskPerformanceModel extends React.Component {
itemStyle: { color: this.state.level2Color },
},
{
barWidth: 20,
name: "职能部门",
type: "bar",
stack: "总量",
@ -843,10 +844,6 @@ class BI014RiskPerformanceModel extends React.Component {
let myChart = echarts.init(chartZRDW);
myChart.setOption(
{
// title: {
// text: "责任单位(等级)",
// left: "center",
// },
tooltip: {
trigger: "axis",
axisPointer: {
@ -892,28 +889,68 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
itemStyle: { color: this.state.level1Color },
label: {
show: true,
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
textStyle: {
fontSize: 12, // 字体大小
color: '#333', // 字体颜色
},
},
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
itemStyle: { color: this.state.level2Color },
label: {
show: true,
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
textStyle: {
fontSize: 12, // 字体大小
color: '#333', // 字体颜色
},
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
itemStyle: { color: this.state.level3Color },
label: {
show: true,
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
textStyle: {
fontSize: 12, // 字体大小
color: '#333', // 字体颜色
},
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
itemStyle: { color: this.state.level4Color },
label: {
show: true,
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
textStyle: {
fontSize: 12, // 字体大小
color: '#333', // 字体颜色
},
},
},
],
},
@ -969,6 +1006,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -986,6 +1024,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -1003,6 +1042,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -1020,6 +1060,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -1093,6 +1134,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
stack: "总量",
@ -1102,9 +1144,9 @@ class BI014RiskPerformanceModel extends React.Component {
},
data: Data.LEVEL1,
itemStyle: { color: this.state.level1Color },
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
stack: "总量",
@ -1116,6 +1158,7 @@ class BI014RiskPerformanceModel extends React.Component {
itemStyle: { color: this.state.level2Color },
},
{
barWidth: 20,
name: "三级",
type: "bar",
stack: "总量",
@ -1127,6 +1170,7 @@ class BI014RiskPerformanceModel extends React.Component {
itemStyle: { color: this.state.level3Color },
},
{
barWidth: 20,
name: "四级",
type: "bar",
stack: "总量",
@ -1172,6 +1216,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -1179,17 +1224,14 @@ class BI014RiskPerformanceModel extends React.Component {
color: function (params) {
switch (params.dataIndex) {
case 0:
return "#c02e30"; // 第一个柱子颜色
return "#f7aa52"; // 第一个柱子颜色
case 1:
return "#f7aa52"; // 第二个柱子颜色
return "#fbe06a"; // 第二个柱子颜色
case 2:
return "#fbe06a"; // 第三个柱子颜色
case 3:
return "#5185f3"; // 第四个柱子颜色
return "#5185f3"; // 第三个柱子颜色
}
}
},
barWidth: 30,
label: {
normal: {
show: true,
@ -1222,7 +1264,7 @@ class BI014RiskPerformanceModel extends React.Component {
legend: {
left: "0%",
bottom: "10%",
data: ["一般任务", "关键任务", "许可作业"],
data: ["许可作业", "关键任务", "一般任务"],
},
series: [
{
@ -1234,13 +1276,11 @@ class BI014RiskPerformanceModel extends React.Component {
color: function (params) {
switch (params.dataIndex) {
case 0:
return "#c02e30"; // 第一个柱子颜色
return "#f7aa52"; // 第一个柱子颜色
case 1:
return "#f7aa52"; // 第二个柱子颜色
return "#fbe06a"; // 第二个柱子颜色
case 2:
return "#fbe06a"; // 第三个柱子颜色
case 3:
return "#5185f3"; // 第四个柱子颜色
return "#5185f3"; // 第三个柱子颜色
}
}
},
@ -1335,6 +1375,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -1351,9 +1392,9 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
},
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -1372,6 +1413,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -1390,6 +1432,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -1468,6 +1511,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -1484,9 +1528,10 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
},
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -1505,6 +1550,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -1523,6 +1569,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -1601,6 +1648,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -1617,9 +1665,10 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
},
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -1638,6 +1687,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -1656,6 +1706,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -1734,6 +1785,7 @@ class BI014RiskPerformanceModel extends React.Component {
],
series: [
{
barWidth: 20,
name: "一级",
type: "bar",
data: Data.LEVEL1,
@ -1750,9 +1802,10 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
},
barWidth: 30
},
{
barWidth: 20,
name: "二级",
type: "bar",
data: Data.LEVEL2,
@ -1771,6 +1824,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "三级",
type: "bar",
data: Data.LEVEL3,
@ -1789,6 +1843,7 @@ class BI014RiskPerformanceModel extends React.Component {
},
},
{
barWidth: 20,
name: "四级",
type: "bar",
data: Data.LEVEL4,
@ -1872,7 +1927,7 @@ class BI014RiskPerformanceModel extends React.Component {
data: Data.LEVEL1,
itemStyle: { color: this.state.level1Color },
stack: "总量",
barWidth: 30,
barWidth: 20,
label: {
normal: {
show: true,
@ -1891,7 +1946,7 @@ class BI014RiskPerformanceModel extends React.Component {
data: Data.LEVEL2,
itemStyle: { color: this.state.level2Color },
stack: "总量",
barWidth: 30,
barWidth: 20,
label: {
normal: {
show: true,
@ -1910,7 +1965,7 @@ class BI014RiskPerformanceModel extends React.Component {
data: Data.LEVEL3,
itemStyle: { color: this.state.level3Color },
stack: "总量",
barWidth: 30,
barWidth: 20,
label: {
normal: {
show: true,
@ -1929,7 +1984,7 @@ class BI014RiskPerformanceModel extends React.Component {
data: Data.LEVEL4,
itemStyle: { color: this.state.level4Color },
stack: "总量",
barWidth: 30,
barWidth: 20,
label: {
normal: {
show: true,
@ -2197,7 +2252,7 @@ class BI014RiskPerformanceModel extends React.Component {
</div>
</Col>
<Col span={1}></Col>
<Col span={11} className="risk-model-col" style={{ padding: 0 }}>
<Col span={10} className="risk-model-col" style={{ padding: 0 }}>
<div className="home-always-title">
<div className="home-always-left">
<div className="home-always-badge"></div>

View File

@ -62,6 +62,9 @@ class BI054HomeDetail extends React.Component {
componentWillUnmount() {
// this.timerID && clearTimeout(this.timerID);
}
renderSpeedColumn = ()=>{
return { className: 'redTableCell'}
}
loadReal = () => {
let result = {
ListSafeCheckCountDepartment: [
@ -334,6 +337,7 @@ class BI054HomeDetail extends React.Component {
title: typeName[i],
dataIndex: "NUM",
key: i * 10 + j,
onCell: () => this.renderSpeedColumn(),
render: (value, record, index) => {
RowCount = record.Parent.RowCount;
if (
@ -383,6 +387,7 @@ class BI054HomeDetail extends React.Component {
if (j == 0) {
columnsTb.push({
title: typeName[i],
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
const obj = {
@ -473,6 +478,7 @@ class BI054HomeDetail extends React.Component {
columnsTb.push({
title: typeName[i],
dataIndex: "NUM",
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
RowCount = record.Parent.RowCount;
@ -523,6 +529,7 @@ class BI054HomeDetail extends React.Component {
if (j == 0) {
columnsTb.push({
title: typeName[i],
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
const obj = {

View File

@ -276,6 +276,7 @@ class BI055HomeDetail extends React.Component {
columnsTb.push({
title: typeName[i],
dataIndex: "NUM",
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
RowCount = record.Parent.RowCount;
@ -356,6 +357,7 @@ class BI055HomeDetail extends React.Component {
if (j == 0) {
columnsTb.push({
title: typeName[i],
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
const obj = {
@ -456,6 +458,7 @@ class BI055HomeDetail extends React.Component {
//头部
columnsTb.push({
title: typeName[i],
onCell: () => this.renderSpeedColumn(),
dataIndex: "NUM",
key: i * 10 + j,
render: (value, record, index) => {
@ -537,6 +540,7 @@ class BI055HomeDetail extends React.Component {
if (j == 0) {
columnsTb.push({
title: typeName[i],
onCell: () => this.renderSpeedColumn(),
key: i * 10 + j,
render: (value, record, index) => {
const obj = {

View File

@ -83,12 +83,15 @@ class HM042ShowPrint extends React.Component {
if (typeof this.props.data.onCancel != "undefined" && typeof this.props.data.onCancel == 'function')
this.props.data.onCancel();
}
loadData = (dataId) => {
let json = initFilter(this.props.login.OrgId);
extendRule(json, 'ID', 1, dataId);
extendInclude(json, 'Nav_InitiatingDepartment');
extendInclude(json, 'Nav_ReleaseUser');
extendInclude(json, 'Nav_Details.Nav_ChargeUser');
extendInclude(json, 'Nav_Details.Nav_Areas.Nav_Area');
extendInclude(json, 'Nav_Details.Nav_Identifyings.Nav_Identifying');
extendInclude(json, 'Nav_Files.Nav_ImgFile.Nav_File');
extendInclude(json, 'Nav_GroupLeader.Nav_UserSignFiles.Nav_ImgFile.Nav_File');
extendInclude(json, 'Nav_DeputyGroupLeader.Nav_UserSignFiles.Nav_ImgFile.Nav_File');
@ -159,6 +162,43 @@ class HM042ShowPrint extends React.Component {
tmpData: newtmpData,
});
}
joinArea(data) {
let ret = [];
for (let it of data) {
if (it.Nav_Area && it.Nav_Area.NAME) {
ret.push(it.Nav_Area.NAME);
}
}
return ret.join('、');
}
joinIdentifying(data) {
let ret = [];
for (let it of data) {
if (it.Nav_Identifying && it.Nav_Identifying.NAME) {
ret.push(it.Nav_Identifying.NAME);
}
}
return ret.join('、');
}
renderLevel(level) {
let str = '';
if (level == undefined) {
return str;
}
if (level.indexOf('0') >= 0) {
str += '部门 ';
}
if (level.indexOf('1') >= 0) {
str += '车间 ';
}
if (level.indexOf('2') >= 0) {
str += '班组 ';
}
if (level.indexOf('3') >= 0) {
str += '公司 ';
}
return str;
}
render() {
const { data } = this.state;
return <div>
@ -217,6 +257,32 @@ class HM042ShowPrint extends React.Component {
{data.GROUP_LEADER_OPINION == 1 ? <img width={'200px'} alt={data.Nav_GroupLeader.NAME} src={data.Nav_GroupLeader.Nav_UserSignFiles.length > 0 ? config.picServerHost + data.Nav_GroupLeader.Nav_UserSignFiles[0].Nav_ImgFile?.Nav_File.FILE_PATH : ''} /> : ""}
</Descriptions.Item>
</Descriptions>
<table style={{ width: '100%', textAlign: 'center' }} className={styles.PrintForm1}>
<tr>
<td className={styles.fontBold}>开始时间</td>
<td className={styles.fontBold}>结束时间</td>
<td className={styles.fontBold}>层级</td>
<td className={styles.fontBold}>辨识区域</td>
<td className={styles.fontBold}>类别</td>
<td className={styles.fontBold}>辨识对象</td>
<td className={styles.fontBold}>负责人</td>
<td className={styles.fontBold}>备注</td>
</tr>
{
data.Nav_Details && data.Nav_Details.map((item, i) => {
return <tr>
<td>{moment(item.START_TIME).format('YYYY-MM-DD')}</td>
<td>{moment(item.END_TIME).format('YYYY-MM-DD')}</td>
<td>{this.renderLevel(item.LEVEL)}</td>
<td>{this.joinArea(item.Nav_Areas)}</td>
<td>{this.joinIdentifying(item.Nav_Identifyings)}</td>
<td>{this.props.app.enums.HMRiskTypeEnmu.enums[item.RISK_TYPE]}</td>
<td>{item.Nav_ChargeUser?.NAME}</td>
<td>{item.REMARK}</td>
</tr>
})
}
</table>
<FormPage {...this.state.tmpData} />
<table style={{ width: '90%', lineHeight: '35px' }}>
<tbody>

View File

@ -107,6 +107,7 @@ class PFCommonApprove extends React.Component {
case 'BS/BSRiskSubmit/DealEnd':
case 'BS/BSRiskSubmitDelayApply/DealEnd':
case 'FO/FOCrucialLicenseJob/BackUpdate':
case 'FO/FOCrucialLicenseJobOutsource/BackUpdate':
case 'FO/FOJobEventRecord/BackUpdate':
newUrl = this.state.data.CALLBACK_INTERFACE + 'New'
break;

View File

@ -1,7 +1,7 @@
import { message } from "antd/lib/index";
import { Button, Popconfirm, Row, Col, Checkbox, Radio, Form, Input, Select, Table, Upload, Icon, PageHeader, Modal } from 'antd';
import React from 'react';
import { initFilter, extendRule, extendInclude, setDataFieldValue, guid, initQueryFilter } from "../../../utils/common";
import { initFilter, extendRule, extendInclude, extendSelectField, setDataFieldValue, guid, initQueryFilter } from "../../../utils/common";
import ReactToPrint from "react-to-print";
import styles from '../../CustomPages/HI/StepForm.css';
import SEstyles from './SE.css';
@ -54,13 +54,19 @@ class SE007ShowPrint extends React.Component {
return;
let json = initFilter(this.props.login.OrgId);
extendRule(json, 'ID', 1, this.props.data.id);
extendInclude(json, 'Nav_LaunchDepartment');
extendInclude(json, 'Nav_LaunchUser');
extendInclude(json, 'Nav_Points.Nav_Point');
extendInclude(json, 'Nav_JoinDepartment.Nav_Department');
extendInclude(json, 'Nav_Demands.Nav_User.Nav_Department');
extendInclude(json, 'Nav_Demands.Nav_Department');
extendInclude(json, 'Nav_Demands.Nav_Items.Nav_DEMAND');
extendSelectField(json, 'NAME');
extendSelectField(json, 'LAUNCH_TIME');
extendSelectField(json, 'END_TIME');
extendSelectField(json, 'Nav_LaunchDepartment.NAME');
extendSelectField(json, 'Nav_LaunchUser.NAME');
extendSelectField(json, 'Nav_Points.Nav_Point.NAME');
extendSelectField(json, 'Nav_Demands.Nav_User.Nav_Department.NAME');
extendSelectField(json, 'Nav_Demands.Nav_Department.NAME');
extendSelectField(json, 'Nav_Demands.Nav_Items.Nav_DEMAND.NAME');
extendSelectField(json, 'Nav_Demands.OK');
extendSelectField(json, 'Nav_Demands.OTHER');
extendSelectField(json, 'Nav_Demands.Nav_User.NAME');
this.props.dispatch({
type: 'app/getDataByPost',
payload: json,
@ -85,14 +91,14 @@ class SE007ShowPrint extends React.Component {
r[d.DEMAND_ID] = idx;
ROWS.push({
ID: d.DEMAND_ID,
NAME: d.Nav_DEMAND.NAME,
NAME: d.Nav_DEMAND?.NAME,
department: [],
total: 0,
report: 0,
})
}
let name = it.Nav_User.Nav_Department.NAME;
let name = it.Nav_User?.Nav_Department.NAME;
if (name == '宁化行洛坑钨矿有限公司') {
name = '公司领导';
}
@ -109,7 +115,7 @@ class SE007ShowPrint extends React.Component {
if (it.OTHER != undefined && it.OTHER != "") {
ROWS1.push({
NAME: it.OTHER,
department: [it.Nav_User.NAME],
department: [it.Nav_User?.NAME],
total: 1,
report: 1,
})
@ -204,9 +210,9 @@ class SE007ShowPrint extends React.Component {
<td colSpan={14} rowSpan={1}>{
data?.Nav_Points && data?.Nav_Points.map((item, i) => {
if (i == (data?.Nav_Points.length - 1)) {
return item.Nav_Point.NAME
return item.Nav_Point?.NAME
} else {
return item.Nav_Point.NAME + ' '
return item.Nav_Point?.NAME + ' '
}
})
}</td>

View File

@ -232,6 +232,13 @@ export function extendInclude(obj, clude) {
}
obj.Include.push(clude);
}
export function extendSelectField(obj, clude) {
if (!obj.SelectField) {
obj.SelectField = [];
}
obj.SelectField.push(clude);
}
export function extendOrder(obj, filed, order) {
var data = {};