Merge branch 'master' of http://121.41.2.71:3000/wyw/mh_jy_safe_web
This commit is contained in:
commit
c7abdfb37d
@ -1,12 +1,14 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { connect } from 'dva';
|
import { connect } from 'dva';
|
||||||
import { initFilter } from '../../../utils/common';
|
import { initFilter } from '../../../utils/common';
|
||||||
import { Table, Row, Spin, Card, Modal } from 'antd';
|
import { Table, Row, Spin, Card, Modal, Col, Button, Form } from 'antd';
|
||||||
|
import DropDownPagination from '../../common/DropDownPaginationEx';
|
||||||
class BI064FormRunAnalysis extends React.Component {
|
class BI064FormRunAnalysis extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
|
depart: {},
|
||||||
|
inputText: '',
|
||||||
retData: [], // 表单运行数据
|
retData: [], // 表单运行数据
|
||||||
companyData: [], // 公司数据
|
companyData: [], // 公司数据
|
||||||
loading: true,
|
loading: true,
|
||||||
@ -71,21 +73,35 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
// 加载数据
|
// 加载数据
|
||||||
loadData = () => {
|
loadData = () => {
|
||||||
this.getBaseData();
|
this.getBaseData();
|
||||||
this.getrealData();
|
|
||||||
};
|
};
|
||||||
|
handleSearch = ({ data, record }) => {
|
||||||
|
this.setState({
|
||||||
|
depart: {
|
||||||
|
...this.state.depart,
|
||||||
|
ID: data[0],
|
||||||
|
NAME: record?.NAME,
|
||||||
|
},
|
||||||
|
inputText: record ? record?.NAME : this.state.inputText,
|
||||||
|
});
|
||||||
|
};
|
||||||
// 获取公司数据
|
// 获取公司数据
|
||||||
getBaseData = () => {
|
getBaseData = () => {
|
||||||
const json = initFilter(this.props.login.OrgId);
|
const json = initFilter(this.props.login.OrgId);
|
||||||
|
// let json = initFilter("00300000-0000-0000-0000-000000000000");
|
||||||
this.props.dispatch({
|
this.props.dispatch({
|
||||||
type: 'app/getDataByPost',
|
type: 'app/getDataByPost',
|
||||||
url: 'FM/Organization/OrderPaged',
|
url: 'FM/Organization/OrderEntities',
|
||||||
payload: json,
|
payload: json,
|
||||||
onlyData: false,
|
onlyData: false,
|
||||||
onComplete: (ret) => {
|
onComplete: (ret) => {
|
||||||
if (ret && ret.Data) {
|
if (ret && ret.Data) {
|
||||||
this.setState({ companyData: ret.Data }, () => {
|
let keyword = ret.Data[0]?.NAME;
|
||||||
this.processData();
|
if (this.props.login.OrgId === '00300000-0000-0000-0000-000000000000') {
|
||||||
|
keyword = ret.Data.filter((t) => t.ID == this.props.login.OrgId)[0]?.NAME;
|
||||||
|
}
|
||||||
|
this.setState({ companyData: ret.Data, inputText: keyword }, () => {
|
||||||
|
this.getrealData();
|
||||||
|
// this.processData();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -94,7 +110,8 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
|
|
||||||
// 获取表单运行数据
|
// 获取表单运行数据
|
||||||
getrealData = () => {
|
getrealData = () => {
|
||||||
const json = initFilter(this.props.login.OrgId);
|
// const json = initFilter(this.props.login.OrgId);
|
||||||
|
let json = initFilter('00300000-0000-0000-0000-000000000000', this.state.inputText);
|
||||||
this.props.dispatch({
|
this.props.dispatch({
|
||||||
type: 'app/getDataByPost',
|
type: 'app/getDataByPost',
|
||||||
url: 'BI/BIStatiscialAnalysisController/GetTaskViewInfo',
|
url: 'BI/BIStatiscialAnalysisController/GetTaskViewInfo',
|
||||||
@ -114,10 +131,9 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
|
|
||||||
// 处理数据,生成表格所需格式
|
// 处理数据,生成表格所需格式
|
||||||
processData = () => {
|
processData = () => {
|
||||||
const { retData, companyData } = this.state;
|
const { retData, companyData, inputText } = this.state;
|
||||||
|
|
||||||
if (!retData.length || !companyData.length) return;
|
if (!retData.length || !companyData.length) return;
|
||||||
|
let companyDataTemp = companyData.filter((t) => t.NAME === inputText);
|
||||||
// 获取所有模块和表单的列表
|
// 获取所有模块和表单的列表
|
||||||
const modules = [...new Set(retData.map((item) => item.MOULD_NAME))];
|
const modules = [...new Set(retData.map((item) => item.MOULD_NAME))];
|
||||||
const forms = [];
|
const forms = [];
|
||||||
@ -147,7 +163,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 为每个公司添加数据
|
// 为每个公司添加数据
|
||||||
companyData.forEach((company) => {
|
companyDataTemp.forEach((company) => {
|
||||||
const companyName = company.NAME;
|
const companyName = company.NAME;
|
||||||
const companyDataKey = companyName.replace(/\s+/g, '');
|
const companyDataKey = companyName.replace(/\s+/g, '');
|
||||||
|
|
||||||
@ -242,7 +258,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 生成表格列
|
// 生成表格列
|
||||||
const columns = this.generateColumns(companyData, tableDataWithRowSpan);
|
const columns = this.generateColumns(companyDataTemp, tableDataWithRowSpan);
|
||||||
|
|
||||||
this.setState({ tableData: tableDataWithRowSpan, columns });
|
this.setState({ tableData: tableDataWithRowSpan, columns });
|
||||||
};
|
};
|
||||||
@ -251,12 +267,18 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
generateColumns = (companyData) => {
|
generateColumns = (companyData) => {
|
||||||
const baseColumns = [
|
const baseColumns = [
|
||||||
{
|
{
|
||||||
width: '150px',
|
// width: '150px',
|
||||||
title: '模块',
|
title: '模块',
|
||||||
dataIndex: 'module',
|
dataIndex: 'module',
|
||||||
key: 'module',
|
key: 'module',
|
||||||
fixed: 'left',
|
// fixed: 'left',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
onCell: (record) => ({
|
||||||
|
style: {
|
||||||
|
minWidth: '150px', // 设置最小宽度
|
||||||
|
whiteSpace: 'nowrap', // 防止换行
|
||||||
|
},
|
||||||
|
}),
|
||||||
render: (value, row, index) => {
|
render: (value, row, index) => {
|
||||||
const obj = {
|
const obj = {
|
||||||
children: value,
|
children: value,
|
||||||
@ -272,12 +294,18 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
width: '200px',
|
// width: '200px',
|
||||||
title: '表单',
|
title: '表单',
|
||||||
dataIndex: 'form',
|
dataIndex: 'form',
|
||||||
key: 'form',
|
key: 'form',
|
||||||
fixed: 'left',
|
// fixed: 'left',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
onCell: () => ({
|
||||||
|
style: {
|
||||||
|
minWidth: '200px',
|
||||||
|
whiteSpace: 'nowrap',
|
||||||
|
},
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -293,7 +321,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '总任务数',
|
title: '总任务数',
|
||||||
dataIndex: `${companyDataKey}_total`,
|
dataIndex: `${companyDataKey}_total`,
|
||||||
key: `${companyDataKey}_total`,
|
key: `${companyDataKey}_total`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
@ -305,7 +333,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '正常完成',
|
title: '正常完成',
|
||||||
dataIndex: `${companyDataKey}_normal`,
|
dataIndex: `${companyDataKey}_normal`,
|
||||||
key: `${companyDataKey}_normal`,
|
key: `${companyDataKey}_normal`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
@ -317,7 +345,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '超时完成',
|
title: '超时完成',
|
||||||
dataIndex: `${companyDataKey}_overtime`,
|
dataIndex: `${companyDataKey}_overtime`,
|
||||||
key: `${companyDataKey}_overtime`,
|
key: `${companyDataKey}_overtime`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
@ -329,7 +357,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '进行中',
|
title: '进行中',
|
||||||
dataIndex: `${companyDataKey}_doing`,
|
dataIndex: `${companyDataKey}_doing`,
|
||||||
key: `${companyDataKey}_doing`,
|
key: `${companyDataKey}_doing`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
@ -341,7 +369,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '超期未完成',
|
title: '超期未完成',
|
||||||
dataIndex: `${companyDataKey}_overUnfinish`,
|
dataIndex: `${companyDataKey}_overUnfinish`,
|
||||||
key: `${companyDataKey}_overUnfinish`,
|
key: `${companyDataKey}_overUnfinish`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
@ -355,7 +383,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '完成率',
|
title: '完成率',
|
||||||
dataIndex: `${companyDataKey}_finishRate`,
|
dataIndex: `${companyDataKey}_finishRate`,
|
||||||
key: `${companyDataKey}_finishRate`,
|
key: `${companyDataKey}_finishRate`,
|
||||||
width: '80px',
|
width: '150px',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (text) => <span>{text}%</span>,
|
render: (text) => <span>{text}%</span>,
|
||||||
},
|
},
|
||||||
@ -363,8 +391,8 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
title: '及时率',
|
title: '及时率',
|
||||||
dataIndex: `${companyDataKey}_normalRate`,
|
dataIndex: `${companyDataKey}_normalRate`,
|
||||||
key: `${companyDataKey}_normalRate`,
|
key: `${companyDataKey}_normalRate`,
|
||||||
width: '80px',
|
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width: '150px',
|
||||||
render: (text) => <span>{text}%</span>,
|
render: (text) => <span>{text}%</span>,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -372,6 +400,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
|
|
||||||
baseColumns.push(companyColumns);
|
baseColumns.push(companyColumns);
|
||||||
});
|
});
|
||||||
|
console.log('生成的列:', baseColumns);
|
||||||
|
|
||||||
return baseColumns;
|
return baseColumns;
|
||||||
};
|
};
|
||||||
@ -426,7 +455,10 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { tableData, columns, loading } = this.state;
|
const { tableData, columns, loading } = this.state;
|
||||||
|
const formItemLayout = {
|
||||||
|
labelCol: { span: 8 },
|
||||||
|
wrapperCol: { span: 16 },
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
@ -469,7 +501,27 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
>
|
>
|
||||||
系统运行情况统计分析
|
系统运行情况统计分析
|
||||||
</h1>
|
</h1>
|
||||||
|
<Row style={{ width: '100%', margin: 'auto' }}>
|
||||||
|
<Col span={5}>
|
||||||
|
<Form.Item label={'公司名称'} {...formItemLayout}>
|
||||||
|
<DropDownPagination
|
||||||
|
inputDataApi={'FM/Organization/OrderPaged'}
|
||||||
|
fieldName={'NAME'}
|
||||||
|
data={this.state.depart}
|
||||||
|
onSelect={this.handleSearch}
|
||||||
|
onFilter={({ params }) => {
|
||||||
|
params.OrderType = 1;
|
||||||
|
params.OrgId = this.props.login.OrgId;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={1} style={{ marginLeft: '20px' }}>
|
||||||
|
<Button type="primary" onClick={() => this.getrealData()}>
|
||||||
|
查询
|
||||||
|
</Button>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
<Row>
|
<Row>
|
||||||
<Spin spinning={loading}>
|
<Spin spinning={loading}>
|
||||||
{/* <Card> */}
|
{/* <Card> */}
|
||||||
@ -478,7 +530,7 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
width: '100%',
|
width: '100%',
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
}}
|
}}
|
||||||
scroll={{ x: 'max-content', y: 600 }}
|
scroll={{ x: 1500, y: 600 }}
|
||||||
dataSource={tableData}
|
dataSource={tableData}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
@ -486,22 +538,6 @@ class BI064FormRunAnalysis extends React.Component {
|
|||||||
size="middle"
|
size="middle"
|
||||||
bordered
|
bordered
|
||||||
rowKey="key"
|
rowKey="key"
|
||||||
summary={() => (
|
|
||||||
<Table.Summary fixed="top">
|
|
||||||
<Table.Summary.Row style={{ backgroundColor: '#fafafa', fontWeight: 'bold' }}>
|
|
||||||
<Table.Summary.Cell index={0} colSpan={2}>
|
|
||||||
汇总
|
|
||||||
</Table.Summary.Cell>
|
|
||||||
{columns.slice(2).map((col, index) => (
|
|
||||||
<Table.Summary.Cell index={index + 2} key={index}>
|
|
||||||
{col.title === '总任务数' && (
|
|
||||||
<span>{tableData.reduce((sum, row) => sum + (row[col.dataIndex] || 0), 0)}</span>
|
|
||||||
)}
|
|
||||||
</Table.Summary.Cell>
|
|
||||||
))}
|
|
||||||
</Table.Summary.Row>
|
|
||||||
</Table.Summary>
|
|
||||||
)}
|
|
||||||
/>
|
/>
|
||||||
{/* </Card> */}
|
{/* </Card> */}
|
||||||
</Spin>
|
</Spin>
|
||||||
|
|||||||
312
src/components/CustomPages/SK/SK002CheckListJT.js
Normal file
312
src/components/CustomPages/SK/SK002CheckListJT.js
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
import { Button, Descriptions,Popconfirm, Row, Col, Form,Modal, Input, Select, Table } from 'antd';
|
||||||
|
import React , { useState }from 'react';
|
||||||
|
import { initFilter, extendRule, extendInclude, extendIgnoreDataRule,setDataFieldValue, guid, initQueryFilter,ShowPrintClose } from "../../../utils/common";
|
||||||
|
import ReactToPrint from "react-to-print";
|
||||||
|
import stylesStep from '../HI/StepForm.css';
|
||||||
|
import config from "../../../config";
|
||||||
|
import XLSX from 'xlsx';
|
||||||
|
import { connect } from 'dva';
|
||||||
|
import moment from 'moment';
|
||||||
|
import { message } from "antd/lib/index";
|
||||||
|
import FormPage from '../../FormPage'
|
||||||
|
import DropDownPagination from '../../common/DropDownPaginationEx'
|
||||||
|
class SK002CheckListJT extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
inputText:"",
|
||||||
|
productionId:null,
|
||||||
|
depart: {},
|
||||||
|
selectedRowKeys:[],
|
||||||
|
taskSelects: [],
|
||||||
|
dataList: [],
|
||||||
|
data:[],
|
||||||
|
BtnAgreeDisplay: 'none',
|
||||||
|
showDetail:false,
|
||||||
|
Details:[],
|
||||||
|
columns : [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: 'NUM',
|
||||||
|
key: "NUM",
|
||||||
|
render: (text, record, index) => {
|
||||||
|
return <label>{index+1}</label>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "生产单元",
|
||||||
|
dataIndex: "Nav_ProductionUnit.NAME",
|
||||||
|
key: "Nav_ProductionUnit.NAME",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险名称",
|
||||||
|
dataIndex: "RISK_NAME",
|
||||||
|
key: "RISK_NAME",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险描述",
|
||||||
|
dataIndex: "RISK_DESCRIPTION",
|
||||||
|
key: "RISK_DESCRIPTION",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险类别",
|
||||||
|
dataIndex: "Nav_Type.NAME",
|
||||||
|
key: "Nav_Type.NAME",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "管控措施",
|
||||||
|
dataIndex: "MINE_NAME",
|
||||||
|
key: "MINE_NAME",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "应急处置",
|
||||||
|
dataIndex: "EMERGENCY",
|
||||||
|
key: "EMERGENCY",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险等级",
|
||||||
|
dataIndex: "EVALUATE_LEVEL",
|
||||||
|
key: "EVALUATE_LEVEL",
|
||||||
|
render: (text, record, index) => {
|
||||||
|
return <label>{this.props.app.enums.SKEvaluateLevelEnum.enums[record.EVALUATE_LEVEL]}</label>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "管控层级",
|
||||||
|
dataIndex: "DEPARTMENT_TYPE",
|
||||||
|
key: "DEPARTMENT_TYPE",
|
||||||
|
render: (text, record, index) => {
|
||||||
|
if(record.DEPARTMENT_TYPE.includes('_'))
|
||||||
|
{
|
||||||
|
let departTypeLists=[]
|
||||||
|
let departTypes=record.DEPARTMENT_TYPE.split('_')
|
||||||
|
if(departTypes.length>0)
|
||||||
|
{
|
||||||
|
for(let i=0;i<departTypes.length;i++)
|
||||||
|
{
|
||||||
|
if(departTypes[i])
|
||||||
|
{
|
||||||
|
let type=this.props.app.enums.SKDepartmentTypeEnum.enums[departTypes[i]]
|
||||||
|
departTypeLists.push(" "+type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return <label>{departTypeLists}</label>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return <label>{this.props.app.enums.SKDepartmentTypeEnum.enums[record.DEPARTMENT_TYPE]}</label>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
if (this.props.data?.clickKey)
|
||||||
|
{this.loadData();}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps(NextProps) {
|
||||||
|
if (NextProps.data?.clickKey && this.props.data?.clickKey != NextProps.data?.clickKey)
|
||||||
|
{this.loadData();}
|
||||||
|
}
|
||||||
|
BtnClose = () => {
|
||||||
|
if (typeof this.props.data.onCancel != "undefined"&&typeof this.props.data.onCancel == 'function')
|
||||||
|
this.props.data.onCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
loadData = () => {
|
||||||
|
let json = initFilter("00300000-0000-0000-0000-000000000000");
|
||||||
|
json.Parameter22 = this.props.data.ORG_ID_HV;
|
||||||
|
extendInclude(json, 'Nav_Details');
|
||||||
|
extendInclude(json, 'Nav_ProductionUnit');
|
||||||
|
extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_Contents');
|
||||||
|
extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question');
|
||||||
|
extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law');
|
||||||
|
extendInclude(json, 'Nav_Type');
|
||||||
|
extendInclude(json, 'Nav_SCOREL');
|
||||||
|
extendInclude(json, 'Nav_SCOREE');
|
||||||
|
extendInclude(json, 'Nav_SCOREC');
|
||||||
|
extendIgnoreDataRule(json)
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'app/getDataByPost',
|
||||||
|
payload: json,
|
||||||
|
url: 'SK/SKBasicLibrary/JTOrderEntities',
|
||||||
|
onComplete: (ret) => {
|
||||||
|
if (ret) {
|
||||||
|
this.setState({ dataList: ret,data:ret });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
loadData2()
|
||||||
|
{
|
||||||
|
let temp=this.state.data
|
||||||
|
if(this.state.inputText2)
|
||||||
|
{
|
||||||
|
temp=temp.filter(t=>t.Nav_ProductionUnit != null && t.Nav_ProductionUnit.NAME.includes(this.state.inputText2));
|
||||||
|
}
|
||||||
|
// if(this.state.productionId)
|
||||||
|
// {
|
||||||
|
// temp=temp.filter(t=>t.PRODUCTION_UNIT_ID ==this.state.productionId);
|
||||||
|
// }
|
||||||
|
if(this.state.inputText2)
|
||||||
|
{
|
||||||
|
temp=temp.filter(t=>t.RISK_NAME.includes(this.state.inputText2));
|
||||||
|
}
|
||||||
|
this.setState({dataList :temp})
|
||||||
|
}
|
||||||
|
// onTableBtnExport() {
|
||||||
|
// const enums=this.props.data.enums ? this.props.data.enums :this.props.app.enums ;
|
||||||
|
// let TableWrap = document.getElementById('tableId' + this.props.data.id);
|
||||||
|
// let Table = TableWrap.getElementsByTagName('table')[0];
|
||||||
|
// const wb = XLSX.utils.table_to_book(Table);
|
||||||
|
// XLSX.writeFile(wb, "基础库.xlsx")
|
||||||
|
// }
|
||||||
|
handleCancel = () => {
|
||||||
|
this.setState({
|
||||||
|
showDetail: false,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
closeModal = () => {
|
||||||
|
this.setState({
|
||||||
|
showDetail: false,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
closeTasks() {
|
||||||
|
let temps = [];
|
||||||
|
if (this.state.taskSelects && this.state.taskSelects.length > 0)
|
||||||
|
{
|
||||||
|
if(this.state.taskSelects.length >1)
|
||||||
|
{
|
||||||
|
message.error('只能勾选一条进行导入');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.props.login.tempAddData=this.state.taskSelects[0]
|
||||||
|
this.state.taskSelects = [];
|
||||||
|
this.state.selectedRowKeys = [];
|
||||||
|
// this.closeModalContent()
|
||||||
|
// this.closeModal()
|
||||||
|
ShowPrintClose(this.props)
|
||||||
|
}
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
message.error('请选择要导入的内容');
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
onSelectChange = (selectedRowKeys,selectedRows) => { // 选择菜单行
|
||||||
|
this.setState({selectedRowKeys:selectedRowKeys,
|
||||||
|
taskSelects:selectedRows
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// handleSearch=(value)=>{
|
||||||
|
// this.setState({
|
||||||
|
// inputText: value
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
handleSearch = ({data, record}) => {
|
||||||
|
this.setState({
|
||||||
|
depart: {
|
||||||
|
...this.state.depart,
|
||||||
|
PRODUCTION_UNIT_ID: data[0],
|
||||||
|
Nav_ProductionUnit: { NAME: record?.NAME },
|
||||||
|
},
|
||||||
|
inputText: record?.NAME,
|
||||||
|
productionId: record?.ID
|
||||||
|
})
|
||||||
|
};
|
||||||
|
handleSearch1=(e)=>{
|
||||||
|
this.setState({
|
||||||
|
inputText1: e.target.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
handleSearch2=(e)=>{
|
||||||
|
this.setState({
|
||||||
|
inputText2: e.target.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
const formItemLayout = {
|
||||||
|
labelCol: { span: 8 },
|
||||||
|
wrapperCol: { span: 16 },
|
||||||
|
}
|
||||||
|
const {selectedRowKeys} =this.state;
|
||||||
|
const rowSelection = {
|
||||||
|
selectedRowKeys:selectedRowKeys,
|
||||||
|
fixed: false,
|
||||||
|
columnWidth: 20,
|
||||||
|
hideDefaultSelections:false,
|
||||||
|
onChange: this.onSelectChange
|
||||||
|
};
|
||||||
|
const enums=this.props.data.enums ? this.props.data.enums :this.props.app.enums ;
|
||||||
|
// let aaa = Math.random();
|
||||||
|
return <div>
|
||||||
|
<div>
|
||||||
|
<h1 style={{ textAlign: 'center', margin: '15px' }}>基础库</h1>
|
||||||
|
<br></br>
|
||||||
|
<Row style={{width:"100%",margin:"auto"}}>
|
||||||
|
<Col span={5}>
|
||||||
|
<Form.Item
|
||||||
|
label={'生产单元'}
|
||||||
|
{...formItemLayout}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
onChange={this.handleSearch1}
|
||||||
|
style={{ width: "150px" }}
|
||||||
|
></Input>
|
||||||
|
</Form.Item>
|
||||||
|
{/* <Form.Item
|
||||||
|
label={'生产单元'}
|
||||||
|
{...formItemLayout}
|
||||||
|
>
|
||||||
|
<DropDownPagination inputDataApi={'FM/UserProductionUnitSet/OrderPaged'} fieldName={'Nav_ProductionUnit.NAME'}
|
||||||
|
data={this.state.depart} onSelect={this.handleSearch} onFilter={({ params }) => {
|
||||||
|
params.OrderType = 1
|
||||||
|
params.OrgId = this.props.login.OrgId
|
||||||
|
}} />
|
||||||
|
</Form.Item> */}
|
||||||
|
</Col>
|
||||||
|
<Col span={5} style={{ marginLeft: "10px" }}>
|
||||||
|
<Form.Item
|
||||||
|
label={'风险名称'}
|
||||||
|
{...formItemLayout}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
onChange={this.handleSearch2}
|
||||||
|
style={{ width: "150px" }}
|
||||||
|
></Input>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
</Col>
|
||||||
|
<Col span={1} style={{ marginLeft: "20px" }}><Button type='primary' onClick={() => this.loadData2()}>查询</Button></Col>
|
||||||
|
</Row>
|
||||||
|
<br></br>
|
||||||
|
<div style={{ width:"100%",margin:"auto",alignContent:"left"}}>
|
||||||
|
<Button type='primary' onClick={() => this.closeTasks()} icon="export">导入</Button>
|
||||||
|
</div>
|
||||||
|
<br></br>
|
||||||
|
{this.state.dataList?
|
||||||
|
<Table style={{ width:"100%",margin:"auto",alignContent:"center",backgroundColor:"white"}}
|
||||||
|
dataSource={this.state.dataList}
|
||||||
|
columns={this.state.columns}
|
||||||
|
rowSelection={rowSelection}
|
||||||
|
pagination={false}
|
||||||
|
bordered
|
||||||
|
loading={false}
|
||||||
|
size="small"
|
||||||
|
/>
|
||||||
|
:[]}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(({ login,app }) => ({ login,app }))(SK002CheckListJT)
|
||||||
@ -153,6 +153,267 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
btnAdd: ({ record,data, parentRecord, stateData,setState, close, loadData, login, btn, dispatch }) => {
|
||||||
|
|
||||||
|
// if(login.tempAddData)
|
||||||
|
// {
|
||||||
|
// stateData.MineType = login.tempAddData.MineType
|
||||||
|
// stateData.RISK_NAME = login.tempAddData.RISK_NAME
|
||||||
|
// stateData.RISK_DESCRIPTION = login.tempAddData.RISK_DESCRIPTION
|
||||||
|
// stateData.Nav_Type = login.tempAddData.Nav_Type
|
||||||
|
// stateData.Nav_SCOREL = login.tempAddData.Nav_SCOREL
|
||||||
|
// stateData.Nav_SCOREE = login.tempAddData.Nav_SCOREE
|
||||||
|
// stateData.Nav_SCOREC = login.tempAddData.Nav_SCOREC
|
||||||
|
// stateData.EVALUATE_SCORE = login.tempAddData.EVALUATE_SCORE
|
||||||
|
// stateData.EVALUATE_LEVEL = login.tempAddData.EVALUATE_LEVEL
|
||||||
|
// stateData.EMERGENCY = login.tempAddData.EMERGENCY
|
||||||
|
// let departs=[]
|
||||||
|
// if(login.tempAddData.EVALUATE_LEVEL)
|
||||||
|
// {
|
||||||
|
// if(login.tempAddData.EVALUATE_LEVEL ==10)
|
||||||
|
// {
|
||||||
|
// let temp3={
|
||||||
|
// DEPARTMENT_TYPE:3,
|
||||||
|
// }
|
||||||
|
// let temp={
|
||||||
|
// DEPARTMENT_TYPE:0,
|
||||||
|
// }
|
||||||
|
// let temp1={
|
||||||
|
// DEPARTMENT_TYPE:1,
|
||||||
|
// }
|
||||||
|
// let temp2={
|
||||||
|
// DEPARTMENT_TYPE:2,
|
||||||
|
// }
|
||||||
|
// departs.push(temp3);
|
||||||
|
// departs.push(temp);
|
||||||
|
// departs.push(temp1);
|
||||||
|
// departs.push(temp2);
|
||||||
|
// }
|
||||||
|
// if(login.tempAddData.EVALUATE_LEVEL ==20)
|
||||||
|
// {
|
||||||
|
// let temp={
|
||||||
|
// DEPARTMENT_TYPE:0,
|
||||||
|
// }
|
||||||
|
// let temp1={
|
||||||
|
// DEPARTMENT_TYPE:1,
|
||||||
|
// }
|
||||||
|
// let temp2={
|
||||||
|
// DEPARTMENT_TYPE:2,
|
||||||
|
// }
|
||||||
|
// departs.push(temp);
|
||||||
|
// departs.push(temp1);
|
||||||
|
// departs.push(temp2);
|
||||||
|
// }
|
||||||
|
// if(login.tempAddData.EVALUATE_LEVEL ==30)
|
||||||
|
// {
|
||||||
|
// let temp1={
|
||||||
|
// DEPARTMENT_TYPE:1,
|
||||||
|
// }
|
||||||
|
// let temp2={
|
||||||
|
// DEPARTMENT_TYPE:2,
|
||||||
|
// }
|
||||||
|
// departs.push(temp1);
|
||||||
|
// departs.push(temp2);
|
||||||
|
// }
|
||||||
|
// if(login.tempAddData.EVALUATE_LEVEL ==40)
|
||||||
|
// {
|
||||||
|
// let temp={
|
||||||
|
// DEPARTMENT_TYPE:2,
|
||||||
|
// }
|
||||||
|
// departs.push(temp);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// stateData.Nav_Departs = departs
|
||||||
|
// if(login.tempAddData.Nav_Details)
|
||||||
|
// {
|
||||||
|
// let details=[]
|
||||||
|
// login.tempAddData.Nav_Details.map(item=>{
|
||||||
|
// let contents=[]
|
||||||
|
// item.Nav_DetailContents && item.Nav_DetailContents.map(x=>{
|
||||||
|
// let hiddens=[]
|
||||||
|
// x.Nav_DetailHiddens && x.Nav_DetailHiddens.map(y=>{
|
||||||
|
// let hidden={
|
||||||
|
// RECTIFICATION_MEASURES :y.RECTIFICATION_MEASURES,
|
||||||
|
// HIDDEN_LEVEL :y.HIDDEN_LEVEL,
|
||||||
|
// HIDDEN_DESCRIPTION :y.HIDDEN_DESCRIPTION,
|
||||||
|
// CHECK_QUESTION_ID:y.CHECK_QUESTION_ID,
|
||||||
|
// Nav_Question:y.Nav_Question
|
||||||
|
// }
|
||||||
|
// hiddens.push(hidden)
|
||||||
|
// })
|
||||||
|
// let basics=[]
|
||||||
|
// x.Nav_DetailBasics && x.Nav_DetailBasics.map(y=>{
|
||||||
|
// let basic={
|
||||||
|
// LAW_ID:y.LAW_ID,
|
||||||
|
// Nav_Law:y.Nav_Law
|
||||||
|
// }
|
||||||
|
// basics.push(basic)
|
||||||
|
// })
|
||||||
|
// let content={
|
||||||
|
// CHECK_STANDARD :x.CHECK_STANDARD,
|
||||||
|
// CHECK_CONTENTS_ID:x.CHECK_CONTENTS_ID,
|
||||||
|
// Nav_Contents:x.Nav_Contents,
|
||||||
|
// Nav_DetailHiddens:hiddens,
|
||||||
|
// Nav_DetailBasics:basics
|
||||||
|
// }
|
||||||
|
// contents.push(content)
|
||||||
|
// })
|
||||||
|
// let detail={
|
||||||
|
// MEASURES_NAME:item.MEASURES_NAME,
|
||||||
|
// Nav_DetailContents:contents
|
||||||
|
// }
|
||||||
|
// details.push(detail);
|
||||||
|
// })
|
||||||
|
// stateData.Nav_Details = details;
|
||||||
|
// // setState(stateData);
|
||||||
|
// // login.tempAddData =null;
|
||||||
|
// // loadData();
|
||||||
|
// // close();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
btnFresh: ({ record,data, parentRecord, setStateData,stateData,setState, close, loadData, login, dispatch }) => {
|
||||||
|
|
||||||
|
if(login.tempAddData)
|
||||||
|
{
|
||||||
|
stateData.MineType = login.tempAddData.MineType
|
||||||
|
stateData.PRODUCTION_UNIT_ID = login.tempAddData.PRODUCTION_UNIT_ID
|
||||||
|
stateData.Nav_ProductionUnit = login.tempAddData.Nav_ProductionUnit
|
||||||
|
stateData.RISK_NAME = login.tempAddData.RISK_NAME
|
||||||
|
stateData.RISK_DESCRIPTION = login.tempAddData.RISK_DESCRIPTION
|
||||||
|
stateData.TYPE_ID = login.tempAddData.TYPE_ID
|
||||||
|
stateData.Nav_Type = login.tempAddData.Nav_Type
|
||||||
|
stateData.SCOREL_ID = login.tempAddData.SCOREL_ID
|
||||||
|
stateData.Nav_SCOREL = login.tempAddData.Nav_SCOREL
|
||||||
|
stateData.SCOREE_ID = login.tempAddData.SCOREE_ID
|
||||||
|
stateData.Nav_SCOREE = login.tempAddData.Nav_SCOREE
|
||||||
|
stateData.SCOREC_ID = login.tempAddData.SCOREC_ID
|
||||||
|
stateData.Nav_SCOREC = login.tempAddData.Nav_SCOREC
|
||||||
|
stateData.EVALUATE_SCORE = login.tempAddData.EVALUATE_SCORE
|
||||||
|
stateData.EVALUATE_LEVEL = login.tempAddData.EVALUATE_LEVEL
|
||||||
|
stateData.EMERGENCY = login.tempAddData.EMERGENCY
|
||||||
|
let departs=[]
|
||||||
|
if(login.tempAddData.EVALUATE_LEVEL)
|
||||||
|
{
|
||||||
|
if(login.tempAddData.EVALUATE_LEVEL ==10)
|
||||||
|
{
|
||||||
|
let temp3={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:5,
|
||||||
|
}
|
||||||
|
let temp={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:10,
|
||||||
|
}
|
||||||
|
let temp1={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:15,
|
||||||
|
}
|
||||||
|
let temp2={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:20,
|
||||||
|
}
|
||||||
|
departs.push(temp3);
|
||||||
|
departs.push(temp);
|
||||||
|
departs.push(temp1);
|
||||||
|
departs.push(temp2);
|
||||||
|
}
|
||||||
|
if(login.tempAddData.EVALUATE_LEVEL ==20)
|
||||||
|
{
|
||||||
|
let temp={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:10,
|
||||||
|
}
|
||||||
|
let temp1={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:15,
|
||||||
|
}
|
||||||
|
let temp2={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:20,
|
||||||
|
}
|
||||||
|
departs.push(temp);
|
||||||
|
departs.push(temp1);
|
||||||
|
departs.push(temp2);
|
||||||
|
}
|
||||||
|
if(login.tempAddData.EVALUATE_LEVEL ==30)
|
||||||
|
{
|
||||||
|
let temp1={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:15,
|
||||||
|
}
|
||||||
|
let temp2={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:20,
|
||||||
|
}
|
||||||
|
departs.push(temp1);
|
||||||
|
departs.push(temp2);
|
||||||
|
}
|
||||||
|
if(login.tempAddData.EVALUATE_LEVEL ==40)
|
||||||
|
{
|
||||||
|
let temp={
|
||||||
|
ID: guid(),
|
||||||
|
DEPARTMENT_TYPE:20,
|
||||||
|
}
|
||||||
|
departs.push(temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// stateData.Nav_Departs = departs
|
||||||
|
if(login.tempAddData.Nav_Details)
|
||||||
|
{
|
||||||
|
let details=[]
|
||||||
|
login.tempAddData.Nav_Details.sort((m, n) => (m.NUM > n.NUM ? 1 : -1)).map((item,k)=>{
|
||||||
|
let contents=[]
|
||||||
|
item.Nav_DetailContents && item.Nav_DetailContents.sort((m, n) => (m.NUM > n.NUM ? 1 : -1)).map((x,j)=>{
|
||||||
|
let hiddens=[]
|
||||||
|
x.Nav_DetailHiddens && x.Nav_DetailHiddens.sort((m, n) => (m.NUM > n.NUM ? 1 : -1)).map((y,i)=>{
|
||||||
|
let hidden={
|
||||||
|
ID: guid(),
|
||||||
|
NUM:y.NUM,
|
||||||
|
RECTIFICATION_MEASURES :y.RECTIFICATION_MEASURES,
|
||||||
|
HIDDEN_LEVEL :y.HIDDEN_LEVEL,
|
||||||
|
HIDDEN_DESCRIPTION :y.HIDDEN_DESCRIPTION,
|
||||||
|
CHECK_QUESTION_ID:y.CHECK_QUESTION_ID,
|
||||||
|
Nav_Question:y.Nav_Question
|
||||||
|
}
|
||||||
|
hiddens.push(hidden)
|
||||||
|
})
|
||||||
|
let basics=[]
|
||||||
|
x.Nav_DetailBasics && x.Nav_DetailBasics.map((y,i)=>{
|
||||||
|
let basic={
|
||||||
|
ID: guid(),
|
||||||
|
LAW_ID:y.LAW_ID,
|
||||||
|
Nav_Law:y.Nav_Law
|
||||||
|
}
|
||||||
|
basics.push(basic)
|
||||||
|
})
|
||||||
|
let content={
|
||||||
|
ID: guid(),
|
||||||
|
NUM:x.NUM,
|
||||||
|
CHECK_STANDARD :x.CHECK_STANDARD,
|
||||||
|
CHECK_CONTENTS_ID:x.CHECK_CONTENTS_ID,
|
||||||
|
Nav_Contents:x.Nav_Contents,
|
||||||
|
Nav_DetailHiddens:hiddens,
|
||||||
|
Nav_DetailBasics:basics
|
||||||
|
}
|
||||||
|
contents.push(content)
|
||||||
|
})
|
||||||
|
let detail={
|
||||||
|
ID: guid(),
|
||||||
|
NUM:item.NUM,
|
||||||
|
MEASURES_NAME:item.MEASURES_NAME,
|
||||||
|
Nav_DetailContents:contents
|
||||||
|
}
|
||||||
|
details.push(detail);
|
||||||
|
})
|
||||||
|
stateData.Nav_Details = details;
|
||||||
|
setState(stateData);
|
||||||
|
// login.tempAddData =null;
|
||||||
|
// loadData();
|
||||||
|
// close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
// updateMeasure: ({ row, pageCode, record,dispatch, colInfo, stateData, login, saveRowRecord, setState, emptyEditSelectedKeys }) => {
|
// updateMeasure: ({ row, pageCode, record,dispatch, colInfo, stateData, login, saveRowRecord, setState, emptyEditSelectedKeys }) => {
|
||||||
|
|
||||||
// if(stateData)
|
// if(stateData)
|
||||||
|
|||||||
@ -233,6 +233,7 @@ const FM202ShowPrint = createLoadableComponent(() => import('../components/Custo
|
|||||||
const PFApproveRole = createLoadableComponent(() => import('../components/CustomPages/PF/PFApproveRole'));
|
const PFApproveRole = createLoadableComponent(() => import('../components/CustomPages/PF/PFApproveRole'));
|
||||||
const SK002ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowPrint'));
|
const SK002ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowPrint'));
|
||||||
const SK002CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK002CheckList'));
|
const SK002CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK002CheckList'));
|
||||||
|
const SK002CheckListJT = createLoadableComponent(() => import('../components/CustomPages/SK/SK002CheckListJT'));
|
||||||
const SK002ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowSummary'));
|
const SK002ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowSummary'));
|
||||||
const SK004ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowPrint'));
|
const SK004ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowPrint'));
|
||||||
const SK004CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckList'));
|
const SK004CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckList'));
|
||||||
@ -483,6 +484,7 @@ export default function (componentName, formId, formParam, data, formCode, formD
|
|||||||
PFApproveRole: <PFApproveRole formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
PFApproveRole: <PFApproveRole formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
SK002ShowPrint: <SK002ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
SK002ShowPrint: <SK002ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
SK002CheckList: <SK002CheckList formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
SK002CheckList: <SK002CheckList formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
|
SK002CheckListJT: <SK002CheckListJT formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
SK002ShowSummary: <SK002ShowSummary formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
SK002ShowSummary: <SK002ShowSummary formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
SK004ShowPrint: <SK004ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
SK004ShowPrint: <SK004ShowPrint formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
SK004CheckList: <SK004CheckList formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
SK004CheckList: <SK004CheckList formId={formId} formParam={formParam} data={data} formCode={formCode} />,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user