加页面
This commit is contained in:
parent
ada4b55b38
commit
20840bcaaf
345
src/components/CustomPages/BI/BI030FormRunAnalysis.js
Normal file
345
src/components/CustomPages/BI/BI030FormRunAnalysis.js
Normal file
@ -0,0 +1,345 @@
|
||||
import React, { useState, useEffect, useRef, Component } from 'react'
|
||||
import { connect } from 'dva'
|
||||
import { initFilter, addRuleAndGroups, guid, extendInclude, extendRule, extendOrder, extend } from "../../../utils/common"
|
||||
import { Table, Row, Col, Button, Select,DatePicker ,Form,Spin,message,Modal} from 'antd';
|
||||
import echarts from 'echarts';
|
||||
import moment from 'moment'
|
||||
import FormPage from '../../../components/FormPage'
|
||||
import { IFComponent } from '@woowalker/feui';
|
||||
import DropDownPagination from '../../common/DropDownPaginationEx'
|
||||
import XLSX from 'xlsx';
|
||||
const { Option } = Select;
|
||||
class BI030FormRunAnalysis extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
startTime:moment(this.getDate(), 'YYYY-MM-DD 00:00:00'),//moment(new Date()).add(-1, "month").format('YYYY-MM-DD 00:00:00'),
|
||||
endTime:moment(this.getEndDate(), 'YYYY-MM-DD 23:59:59'),
|
||||
mouldSelect:'',
|
||||
visible:false,
|
||||
pagination: {},
|
||||
tmpData:[],
|
||||
departData:[],
|
||||
retData:[],
|
||||
columns:[
|
||||
{
|
||||
width: "100px",
|
||||
title: '组织',
|
||||
dataIndex: 'MOUDLE_NAME',
|
||||
key: 'MOUDLE_NAME',
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '总任务数',
|
||||
dataIndex: 'TOTAL_QTY',
|
||||
key: 'TOTAL_QTY',
|
||||
render: (text, record) => (
|
||||
<span>
|
||||
<a onClick={() => this.showEditModal(record,'')}>{record.TOTAL_QTY}</a>
|
||||
</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '正常已办',
|
||||
dataIndex: 'FINISH_QTY',
|
||||
key: 'FINISH_QTY',
|
||||
render: (text, record) => (
|
||||
<span>
|
||||
<a onClick={() => this.showEditModal(record,1)}>{record.FINISH_QTY}</a>
|
||||
</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '超时已办',
|
||||
dataIndex: 'OVER_FINISH_QTY',
|
||||
key: 'OVER_FINISH_QTY',
|
||||
render: (text, record) => (
|
||||
<span>
|
||||
<a onClick={() => this.showEditModal(record,2)}>{record.OVER_FINISH_QTY}</a>
|
||||
</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '未完成',
|
||||
dataIndex: 'UNFINISH_QTY',
|
||||
key: 'UNFINISH_QTY',
|
||||
render: (text, record) => (
|
||||
<span>
|
||||
<a onClick={() => this.showEditModal(record,0)}>{record.UNFINISH_QTY}</a>
|
||||
</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '完成率',
|
||||
dataIndex: 'FINISH_RATE',
|
||||
key: 'FINISH_RATE',
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '及时完成率',
|
||||
dataIndex: 'NORMAL_FINISH_RATE',
|
||||
key: 'NORMAL_FINISH_RATE',
|
||||
},
|
||||
{
|
||||
width: "100px",
|
||||
title: '质量分析(班前会)',
|
||||
dataIndex: 'REMARK',
|
||||
key: 'REMARK',
|
||||
}
|
||||
]
|
||||
};
|
||||
};
|
||||
handleCancel = () => { // 退出弹窗
|
||||
let newtmpData = { ...this.state.tmpData }
|
||||
newtmpData["data"]= '';
|
||||
newtmpData.formCode = '';
|
||||
this.setState({
|
||||
visible:false,
|
||||
tmpData: [],//newtmpData
|
||||
})
|
||||
}
|
||||
showEditModal = (record,temp) => {
|
||||
|
||||
const newtmpData = {
|
||||
data: {
|
||||
MOUDLE_NAME: record.MOUDLE_NAME,
|
||||
FORM_NAME: temp,
|
||||
startTime:moment(this.state.startTime).format('YYYY-MM-DD HH:mm:ss'),
|
||||
endTime:moment(this.state.endTime).format('YYYY-MM-DD HH:mm:ss'), onCancel: this.handleCancel, noticeTitle: "任务明细",
|
||||
homeReload: true
|
||||
},
|
||||
formCode: 'PF139',
|
||||
}
|
||||
this.setState({
|
||||
noticeTitle: "任务明细",
|
||||
tmpData: newtmpData,
|
||||
currActivatedMenu: ''
|
||||
}, () => this.setState({
|
||||
visible: true
|
||||
}));
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getBaseInfoData();
|
||||
};
|
||||
//获取数据
|
||||
getBaseInfoData = () => {
|
||||
let retDataTemp=[]
|
||||
const{retData,startTime,endTime}=this.state
|
||||
let time=startTime
|
||||
if(startTime === null)
|
||||
{
|
||||
message.error('请选择开始时间');
|
||||
}
|
||||
let time2=endTime
|
||||
if(endTime === null)
|
||||
{
|
||||
message.error('请选择结束时间');
|
||||
}
|
||||
|
||||
{
|
||||
time=moment(startTime).format('YYYY-MM-DD HH:mm:ss')
|
||||
time2=moment(endTime).format('YYYY-MM-DD HH:mm:ss')
|
||||
const json = initFilter(this.props.login.OrgId,this.state.mouldSelect,'','','',time,time2,this.state.mouldSelect)
|
||||
//extendOrder(json, "NUM", 0);
|
||||
this.props.dispatch({
|
||||
type: 'app/getDataByPost',
|
||||
url: 'BI/BIStatiscialAnalysisController/GetFormRunDay',//BI/FormRunAnalysis/OrderEntities
|
||||
payload: json,
|
||||
onlyData: false,
|
||||
onComplete: (ret) => {
|
||||
if(ret && ret.Data)
|
||||
{
|
||||
|
||||
this.setState({retData :ret.Data})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
};
|
||||
startChange=(value)=>{
|
||||
this.setState({
|
||||
startTime:value
|
||||
})
|
||||
};
|
||||
endChange=(value)=>{
|
||||
this.setState({
|
||||
endTime:value
|
||||
})
|
||||
};
|
||||
handleChange=(value)=>{
|
||||
this.setState({
|
||||
mouldSelect: value
|
||||
})
|
||||
}
|
||||
onSelectDepartment=(departData,record)=>{
|
||||
if (departData && departData.data && departData.data.length > 0) {
|
||||
this.setState({
|
||||
departData: {
|
||||
...this.state.departData,
|
||||
// DEPARTMENT_ID: departData.data[0],
|
||||
Nav_Department: { NAME: departData.record.NAME }
|
||||
},
|
||||
DEPARTMENT_ID: departData.data[0],
|
||||
})
|
||||
}
|
||||
else {
|
||||
this.setState({
|
||||
departData: {
|
||||
...this.state.departData,
|
||||
Nav_Department: { NAME: null },
|
||||
},
|
||||
DEPARTMENT_ID: null,
|
||||
})
|
||||
};
|
||||
}
|
||||
getDate=()=>{
|
||||
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, "day").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).add(-1, "day").add(23,'hour').add(59,'m').add(59,'s')//format('YYYY-MM-DD 23:59:59')
|
||||
return pastDate;
|
||||
}
|
||||
|
||||
onTableBtnExport() {
|
||||
console.log(this.state.retData)
|
||||
if (this.state.retData.length == 0) {
|
||||
message.warning("没有数据无需导出!");
|
||||
return;
|
||||
}
|
||||
//excel的表头
|
||||
const tHeader = ["模块","总任务数","正常已办","超时已办","未完成","完成率","及时完成率","质量分析(班前会)"];
|
||||
// 字段和table表格中对应
|
||||
const fitlerVal = ["MOUDLE_NAME","TOTAL_QTY","FINISH_QTY","OVER_FINISH_QTY","UNFINISH_QTY","FINISH_RATE","NORMAL_FINISH_RATE","REMARK"];
|
||||
const res = this.state.retData.map((v) => fitlerVal.map((j) => v[j]));
|
||||
// const jsonWorkSheet = XLSX.utils.json_to_sheet(tHeader,res,"矿山安全生产标准化系统运行情况报表.xlsx");
|
||||
const jsonWorkSheet = XLSX.utils.json_to_sheet(res,tHeader);
|
||||
jsonWorkSheet.A1.v='组织';
|
||||
jsonWorkSheet.B1.v='总任务数';
|
||||
jsonWorkSheet.C1.v='正常已办';
|
||||
jsonWorkSheet.D1.v='超时已办';
|
||||
jsonWorkSheet.E1.v='未完成';
|
||||
jsonWorkSheet.F1.v='完成率';
|
||||
jsonWorkSheet.G1.v='及时完成率';
|
||||
jsonWorkSheet.H1.v='质量分析(班前会)';
|
||||
const sheetName = "矿山安全生产标准化系统运行情况报表";
|
||||
const workBook = {
|
||||
SheetNames: [sheetName],
|
||||
Sheets: {
|
||||
[sheetName]: jsonWorkSheet,
|
||||
}
|
||||
};
|
||||
// const workBook = XLSX.utils.table_to_book("矿山安全生产标准化系统运行情况报表",jsonWorkSheet);
|
||||
return XLSX.writeFile(workBook, "矿山安全生产标准化系统运行情况报表.xlsx");
|
||||
}
|
||||
|
||||
render() {
|
||||
const formItemLayout = {
|
||||
labelCol: { span: 6 },
|
||||
wrapperCol: { span: 18 },
|
||||
}
|
||||
const {loading} = this.props;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<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>
|
||||
<Spin spinning={loading.global}>
|
||||
<h1 style={{ textAlign: "center" }}>矿山安全生产标准化系统运行情况报表</h1>
|
||||
<Row style={{width:"1250px",margin:"auto"}}>
|
||||
<Col span={5}>
|
||||
<Form.Item
|
||||
label={'组织层级:'}
|
||||
{...formItemLayout}
|
||||
>
|
||||
<Select
|
||||
// defaultValue="风险管理"
|
||||
style={{width:'180px'}}
|
||||
onChange={this.handleChange}
|
||||
>
|
||||
<Option value="2">班组级</Option>
|
||||
<Option value="1">车间级</Option>
|
||||
<Option value="0">部门级</Option>
|
||||
<Option value="3">公司级</Option>
|
||||
</Select>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={5} style={{ marginLeft: "10px" }}>
|
||||
<Form.Item
|
||||
label={'开始时间:'}
|
||||
{...formItemLayout}
|
||||
>
|
||||
<DatePicker showTime
|
||||
// defaultValue={moment(this.state.startTime, 'YYYY-MM-DD 00:00:00')}
|
||||
value={this.state.startTime}
|
||||
format="YYYY-MM-DD HH:mm:ss" onChange={this.startChange}/>
|
||||
</Form.Item>
|
||||
|
||||
</Col>
|
||||
|
||||
<Col span={5} style={{ marginLeft: "10px" }}>
|
||||
<Form.Item
|
||||
label={'结束时间:'}
|
||||
{...formItemLayout}
|
||||
>
|
||||
<DatePicker showTime
|
||||
// defaultValue={moment(this.state.endTime, 'YYYY-MM-DD 23:59:59')}
|
||||
value={this.state.endTime}
|
||||
format="YYYY-MM-DD HH:mm:ss" onChange={this.endChange}/>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={1} style={{ marginLeft: "20px" }}><Button type='primary' onClick={() => this.getBaseInfoData()}>查询</Button></Col>
|
||||
<Col span={1} style={{ marginLeft: "20px" }}><Button icon="export" onClick={() => this.onTableBtnExport()}>导出</Button></Col>
|
||||
</Row>
|
||||
<Row style={{ marginTop: "14px" }}>
|
||||
<div id="exportToExcel">
|
||||
<Table style={{ width:"1250px",margin:"auto",alignContent:"center",backgroundColor:"white"}}
|
||||
dataSource={this.state.retData}
|
||||
columns={this.state.columns}
|
||||
pagination={false}
|
||||
bordered
|
||||
loading={this.state.showLoading}
|
||||
size="small"
|
||||
rowKey="2"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</Row>
|
||||
{/* <Row>
|
||||
<h5 style={{ textAlign: "center" }}>数据统计截止到{this.state.modifyTime}</h5>
|
||||
</Row> */}
|
||||
</Spin>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default connect(({ login, app,loading }) => ({ login, app,loading }))(BI030FormRunAnalysis)
|
||||
144
src/components/CustomPages/PF/PF139FormRunAnalysis.js
Normal file
144
src/components/CustomPages/PF/PF139FormRunAnalysis.js
Normal file
@ -0,0 +1,144 @@
|
||||
import { message } from "antd/lib/index";
|
||||
import { Layout,Descriptions, Tabs, Steps, Button, Popconfirm, Row, Col, Form, Input, Select, Table, Drawer ,Icon} from 'antd';
|
||||
import React from 'react';
|
||||
import { PlusOutlined } from '@ant-design/icons';
|
||||
import ReactToPrint from "react-to-print";
|
||||
import styles from '../HI/StepForm.css';
|
||||
import config from "../../../config";
|
||||
import XLSX from 'xlsx';
|
||||
import { connect } from 'dva';
|
||||
import moment from 'moment';
|
||||
const { Header, Footer, Sider, Content } = Layout;
|
||||
const TabPane = Tabs.TabPane;
|
||||
const { TextArea } = Input;
|
||||
const { Step } = Steps;
|
||||
import {
|
||||
extend,
|
||||
extendRule,
|
||||
initFilter,
|
||||
initQueryFilter,
|
||||
getOnlyPropertyData,
|
||||
extendInclude,
|
||||
empty,
|
||||
getDataFieldValue, guid, initFilterGroup, extendGroupRule
|
||||
} from "../../../utils/common";
|
||||
import FormPage from '../../FormPage'
|
||||
class PF139FormRunAnalysis extends React.Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
title: '任务明细',
|
||||
data: {},
|
||||
columns:[
|
||||
{
|
||||
width: "150px",
|
||||
title: '任务名称',
|
||||
dataIndex: 'NAME',
|
||||
key: 'NAME',
|
||||
// render:(value,record,index)=>{
|
||||
|
||||
// },
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '处理人',
|
||||
dataIndex: 'CREATE_NAME',
|
||||
key: 'CREATE_NAME'
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '部门',
|
||||
dataIndex: 'DEPARTMENT_NAME',
|
||||
key: 'DEPARTMENT_NAME'
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '开始时间',
|
||||
dataIndex: 'TASK_STARTDT',
|
||||
key: 'TASK_STARTDT'
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '结束时间',
|
||||
dataIndex: 'TASK_ENDDT',
|
||||
key: 'TASK_ENDDT'
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '实际处理时间',
|
||||
dataIndex: 'TASK_DT',
|
||||
key: 'TASK_DT'
|
||||
},
|
||||
{
|
||||
width: "80px",
|
||||
title: '状态',
|
||||
dataIndex: 'STATUS_NAME',
|
||||
key: 'STATUS_NAME'
|
||||
},
|
||||
]
|
||||
}
|
||||
};
|
||||
componentDidMount() {
|
||||
if (this.props.data?.MOUDLE_NAME)//this.props.data?.MOUDLE_NAME &&
|
||||
this.loadData(this.props.data?.MOUDLE_NAME,this.props.data?.FORM_NAME,this.props.data?.startTime,this.props.data?.endTime);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(NextProps) {
|
||||
if (NextProps.data?.MOUDLE_NAME &&this.props.data?.MOUDLE_NAME != NextProps.data?.MOUDLE_NAME) {//NextProps.data?.MOUDLE_NAME && this.props.data?.MOUDLE_NAME != NextProps.data?.MOUDLE_NAME&&
|
||||
this.loadData(NextProps.data?.MOUDLE_NAME,this.props.data?.FORM_NAME,this.props.data?.startTime,this.props.data?.endTime);
|
||||
}
|
||||
}
|
||||
|
||||
BtnClose = () => {
|
||||
if (typeof this.props.data.onCancel != "undefined" && typeof this.props.data.onCancel == 'function')
|
||||
this.props.data.onCancel();
|
||||
}
|
||||
|
||||
onClick = () => {
|
||||
const json = initFilter(null,this.props.data.TaskID);
|
||||
this.props.dispatch({
|
||||
type: 'app/getDataByPost',
|
||||
url: 'FM/FMNotificationTask/ChangeStatus',
|
||||
payload: json,
|
||||
onComplete: (re) => {
|
||||
if (re) {
|
||||
message.success("成功");
|
||||
this.BtnClose();
|
||||
} else {
|
||||
message.error("失败");
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
loadData(MOUDLE_NAME,FORM_NAME,startTime,endTime) {
|
||||
const json = initFilter(null,MOUDLE_NAME,'','','',startTime,endTime,FORM_NAME);
|
||||
this.props.dispatch({
|
||||
type: 'app/getDataByPost',
|
||||
url: 'BI/BIStatiscialAnalysisController/GetFormRunAnalyzeDay',
|
||||
payload: json,
|
||||
onComplete: (re) => {
|
||||
if (re) {
|
||||
this.setState({retData :re})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Table style={{ width:"1550px",margin:"auto",alignContent:"center",backgroundColor:"white",marginTop:"20px"}}
|
||||
dataSource={this.state.retData}
|
||||
columns={this.state.columns}
|
||||
// pagination={false}
|
||||
bordered
|
||||
loading={this.state.showLoading}
|
||||
size="small"
|
||||
rowKey="2"
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default connect(({ login, app }) => ({ login, app }))(Form.create()(PF139FormRunAnalysis))
|
||||
@ -776,6 +776,14 @@ const BI020ApproveAnalysis = Loadable({
|
||||
loader: () => import('../components/CustomPages/BI/BI020ApproveAnalysis'),
|
||||
loading: () => <div />
|
||||
})
|
||||
const BI030FormRunAnalysis = Loadable({
|
||||
loader: () => import('../components/CustomPages/BI/BI030FormRunAnalysis'),
|
||||
loading: () => <div />
|
||||
})
|
||||
const PF139FormRunAnalysis = Loadable({
|
||||
loader: () => import('../components/CustomPages/PF/PF139FormRunAnalysis'),
|
||||
loading: () => <div />
|
||||
})
|
||||
const BI014RiskPerformanceModel = Loadable({
|
||||
loader: () => import('../components/CustomPages/BI/BI014RiskPerformanceModel'),
|
||||
loading: () => <div />
|
||||
@ -973,7 +981,8 @@ export default function (componentName, formId, formParam, data, formCode, formD
|
||||
PF136FormRunAnalysis: <PF136FormRunAnalysis formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
BI009FormRunAnalysis: <BI009FormRunAnalysis formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
FO025ShowPrint: <FO025ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
|
||||
BI030FormRunAnalysis: <BI030FormRunAnalysis formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
PF139FormRunAnalysis: <PF139FormRunAnalysis formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
BI020ApproveAnalysis: <BI020ApproveAnalysis formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
BI014RiskPerformanceModel: <BI014RiskPerformanceModel formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||
}[componentName]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user