This commit is contained in:
wyw 2024-06-06 16:49:03 +08:00
parent a420fdfd58
commit c1d45a5c94
8 changed files with 230 additions and 61 deletions

View File

@ -672,7 +672,7 @@ params【字段属性】=值
case 23:
case 24: errVerifyMsg = "请选择" + label
break;
default:errVerifyMsg = "请输入" + label
default: errVerifyMsg = "请输入" + label
break;
}
}
@ -691,7 +691,7 @@ params【字段属性】=值
// })
// }
if (rule.required && (colValue === undefined || colValue === null || colValue === ''
|| controlType !== 3 && controlType !== 24 && empty(colValue, true))
|| controlType !== 3 && controlType !== 24 && empty(colValue, true))
|| controlType === 24 && colValue.filter(i => !i.IS_DELETED).length == 0) {
errors.push(rule.message);
}
@ -2751,16 +2751,26 @@ params【字段属性】=值
*/
doSave = (api, saveData, params) => {
this.setState({ btnLoading: true });
let that = this;
this.props.dispatch({
type: 'app/getDataByPost',
payload: saveData,
url: api,
onComplete: (ret) => {
var delay = 2000
if (ret) {
if (that.props.data?.onCancel) {
that.props.data.onCancel();
}
if (that.props.data?.close) {
//wyw onCancel 在 ShowModal 被赋值 只能添加 close 来处理窗体关闭事件需要的执行(刷新主界面信息)
that.props.data.close();
}
delay = 500//如果需要请求api刷新页面数据 2000感觉太卡了
message.success('执行成功');
}
this.onAfterSave({ ...params, isSuccess: ret, saveData });
setTimeout(() => { this.setState({ btnLoading: false }) }, 2000);
setTimeout(() => { this.setState({ btnLoading: false }) }, delay);
}
});
};

View File

@ -1535,6 +1535,17 @@ class EditComponent extends EditBaseComponent {
});
};
clearData = () => {
this.setState({
data: {}
});
}
setStateData = (tmpData) => {
this.setState({
data: tmpData
});
}
onAfterSave(params) {
super.onAfterSave(params);
@ -1551,7 +1562,7 @@ class EditComponent extends EditBaseComponent {
}
this.useCodeRules = null;
if (typeof onSave === 'function') {
onSave(this.state.data);
onSave(this.state.data, this.clearData,this.setStateData);
}
if (closeType === 1 && this.billStatus === 1 ||//仅编辑时关闭
closeType === 2 && this.billStatus !== 1 ||//仅新增时关闭

View File

@ -12,6 +12,7 @@ class BS070ShowPrint extends React.Component {
constructor(props) {
super(props);
this.state = {
tmpData: {},
Nav_SafeCheck: {},
Nav_ListSafeCheckDetail: [],
Nav_ApproveApply: {},
@ -45,6 +46,17 @@ class BS070ShowPrint extends React.Component {
}
//显示操作日志
OperateLogShow() {
const newtmpData = {
data: { id: this.props.data.id, key: guid() },
formCode: "BS076",
}
this.setState({
tmpData: newtmpData,
});
}
loadData = (id) => {
// id= CHECKID +'_'+SUBMITID CHECKID\SUBMITID 可能只有其一 但是一定会有_
var orgId = this.props.login ? this.props.login.OrgId : '';
@ -94,6 +106,8 @@ class BS070ShowPrint extends React.Component {
<div style={{ padding: '10px' }}>
<table>
<tr>
{/* <td><Button style={{ margin: "0 0 0 10px" }} icon={'export'} onClick={() => this.OperateLogShow(true)} >履职记录</Button></td> */}
{/* onClick={() => this.CheckerCheckToActual(10)} */}
<td><ReactToPrint trigger={() => <Button type={'default'} icon={'printer'} >打印</Button>} content={() => this.componentRef} /></td>
<td><ExportToExcel fileName='安全检查汇总' tableId={'tableId' + this.props.data.id} /></td>
</tr>
@ -120,7 +134,7 @@ class BS070ShowPrint extends React.Component {
})
}</p></Descriptions.Item>
<Descriptions.Item label="检查项目分类"><p style={{ width: '75%' }}>{
<Descriptions.Item label="检查项目分类"><p style={{ width: '75%' }}>{
Nav_SafeCheck.Nav_ListCheckProjectCategory && Nav_SafeCheck.Nav_ListCheckProjectCategory.map((item, i) => {
// return <p className={styles.pLin}> {item.Nav_CheckProjectCategory.NAME}</p>
return (i > 0 ? "" : "") + item.Nav_CheckProjectCategory.NAME
@ -346,6 +360,8 @@ class BS070ShowPrint extends React.Component {
</div>
<FormPage {...this.state.tmpData} />
</div>
}
}

View File

@ -0,0 +1,84 @@
import { Button, Descriptions, Badge, Popconfirm, Row, Col, Form, Input, Select, Table } from 'antd';
import React from 'react';
import { initFilter, extendRule, extendInclude, setDataFieldValue, showApprove, guid, initQueryFilter, ShowDateTime, ShowPrintClose, showFiles } from '../../../utils/common';
import ReactToPrint from 'react-to-print';
import { ExportToExcel } from '@woowalker/feui'
import XLSX from 'xlsx';
import { connect } from 'dva';
import moment from 'moment';
import { message } from 'antd/lib/index';
import styles from '../../../components/CustomPages/HI/StepForm.css';
import config from '../../../config.js';
class BS076ShowOperateLog extends React.Component {
constructor(props) {
super(props);
this.state = {
data: null,
btndisplay: 'none',
isCheck: false, //是否待办 审批
}
}
componentDidMount() {
if (this.props.data?.id)
this.loadData(this.props.data?.id);
}
componentWillReceiveProps(NextProps) {
if (NextProps.data?.id && this.props.data?.id != NextProps.data?.id) {
this.loadData(NextProps.data?.id);
}
}
loadData = (ids) => {
var orgId = this.props.login ? this.props.login.OrgId : '';
let json = initFilter(orgId, ids);
this.props.dispatch({
type: 'app/getDataByPost',
payload: json,
url: 'BS/BSOperateLog/OrderEntities',
onComplete: (ret) => {
debugger
if (ret) {
this.setState({
data: ret,
})
}
}
});
}
render() {
const { data } = this.state;
const enums = this.props.data.enums ? this.props.data.enums : this.props.app.enums;
return <div>
<div ref={el => (this.componentRef = el)} style={{ padding: '20px', paddingTop: '20px' }} id={'tableId' + this.props.data.id}>
<table className={styles.PrintFormLight}>
<tbody>
<tr>
<td colSpan={9} className={styles.showPrintHead2}>履职记录</td>
</tr>
<tr className={styles.PrintFormLightTh}>
<td>操作人</td>
<td>操作类型</td>
<td>开始时间</td>
<td>操作时间</td>
<td>是否按时完成</td>
</tr>
{(data && data.length > 0) ? data.map((item, i) => {
return <tr>
<td>{item.USRTNAME} </td>
<td>{enums.OPERATEPOINT_Enums.enums[item.OPERATEPOINT]} </td>
<td>{item.CREATE_TIME} </td>
<td>{item.OPERTETIME} </td>
<td>{item.ISINTTIME != null ? (item.ISINTTIME ? '是' : '否') : ""} </td>
</tr>
}) : <tr><td colSpan={5} style={{ textAlign: 'left' }}>查无记录</td></tr>}
</tbody>
</table>
</div>
</div>
}
}
export default connect(({ login, app }) => ({ login, app }))(BS076ShowOperateLog)

View File

@ -54,6 +54,9 @@ class ShowModal extends React.Component {
showContent = () => {
let showData = this.props.data;
if (showData && showData.content) {
if (showData.content?.props?.data) {
showData.content.props.data.onCancel = this.handleCloseModal
}
if (typeof showData.content === 'function') {
return showData.content();
}

View File

@ -228,7 +228,6 @@ export default {
if (colInfo.FIELD_NAME == "Nav_ListCheckDetailQuestion") {
var listQ = record.Nav_ListCheckDetailQuestion.filter(e => e.IS_DELETED == null || e.IS_DELETED == undefined || e.IS_DELETED != true)
if (listQ == null || listQ.length < 1) {
debugger
//数据清空
for (let i = 0; i < stateData.Nav_ListSafeCheckDetail.length; i++) {
if (record.ID == stateData.Nav_ListSafeCheckDetail[i].ID) {
@ -275,7 +274,7 @@ export default {
detailNew.Nav_ListCheckDetailUser.forEach(e => {
e.ID = guid()
e.SAFE_CHECK_DETAIL_ID = detailNew.ID
debugger
// debugger
if (!e.ISMAINCHECK) {
e.FLOW_STATUS = 1
}
@ -462,16 +461,30 @@ export default {
}
},
//btnSubAdd: (params) => {
btnSubAdd: ({ record, parentRecord, setState, close, loadData, login, btn, dispatch }) => {
const dataSubForm = {
// btnSubAdd: (params) => {
// debugger
let dataSubForm = {
content: <FormPage formCode={btn.FORM_CODE} data={{
id: (record ? record.ID : ''),
homeReload: true,
rules: [parentRecord],
onCancel: () => {
loadData();
close: () => {
loadData();//onCancel 会被 重新赋值 在此做刷新
},
onCancel: () => {
//此方法要有不能被删除 别处会重写
},
onSave: (data, clearData, setStateData) => {
//wyw 昌老师写的这个不能加因为这样传参被修改了限定逻辑不对了onBeforeEdit 不执行不知道拿什么去限制不然也是可以传入parentRecord
// let tmpData = {
// SAFE_CHECK_ID: data.SAFE_CHECK_ID,
// ORG_ID: data.ORG_ID,
// Nav_ListUserCheck: data.Nav_ListUserCheck
// }
// setStateData(tmpData);
}
}} />,
};
return {

View File

@ -50,7 +50,7 @@ export default {
if (stateData.MEETINGTYPE != null && stateData.MEETINGTYPE > 0) {
setFieldVisible("Nav_ListPReView", false);
setFieldValue("Nav_ListPReView", null); //评审人员不可见
let json = initFilter(stateData.ORG_ID, stateData.ID, null, null, null, stateData.MEETINGTYPE);
let json = initFilter(stateData.ORG_ID, stateData.ID, null, null, null, stateData.MEETINGTYPE,0);
dispatch({
type: 'app/getDataByPost',
url: 'SC/SCMTMeeting/GetPAll',
@ -80,6 +80,7 @@ export default {
// setFieldValue("Nav_User_Originator.NAME", login.user.NAME)
const temps = [];
temps.push({ field: 'isNew', value: "1" });
temps.push({ field: 'DEPARTMENT_ID', value: login.user.DEPARTMENT_ID });
temps.push({ field: 'Nav_Department.NAME', value: login.user.Nav_Department?.NAME });
temps.push({ field: 'USER_ID_ORIGINATOR', value: login.user.ID })
@ -101,58 +102,87 @@ export default {
// 安委会时,安委会成员默认全选,可删除,可添加其他人员
// 基层安全会按部门/车间/班组点选或模糊查询,默认部门所有人员向下包含
/// 普通会议 10 文件审核会议 20 文件评审会 30
/// 安委会 40 基层安全会 50
setFieldValue("Nav_ListMeetingContent", null);
if (value == 40 || value == 50) {
setFieldVisible("Nav_ListPReView", false);
setFieldValue("Nav_ListPReView", null); //评审人员不可见
//加载人员信息
// this.getPAll(value, colInfo.ORG_ID, getFieldValue("ID"), setFieldVisible, setFieldValue, dispatch, setFieldValueByBatch)
// export function getPAll(meetingType, orgId, meetingId, setFieldVisible, setFieldValue, dispatch, setFieldValueByBatch) {
if (value == 40 || value == 50) {
setFieldVisible("Nav_ListPReView", false);
setFieldValue("Nav_ListPReView", null); //评审人员不可见
let json = initFilter(colInfo.ORG_ID, getFieldValue("ID"), null, null, null, value);
dispatch({
type: 'app/getDataByPost',
url: 'SC/SCMTMeeting/GetPAll',
payload: json,
onlyData: false,
onComplete: (ret) => {
let temps = [];
if (ret && ret.IsSuccessful && ret.Data) {
let detail = ret.Data.map((item, i) => {
item['ROW_NO'] = i + 1;
return item;
});
temps.push({ field: "Nav_ListPAll", value: detail });
} else {
temps.push({ field: "Nav_ListPAll", value: null });
}
setFieldValueByBatch(temps);
}
});
}
setFieldValue("Nav_ListPReView", null);
} else if (value == 30) {
// 文件评审会
setFieldVisible("Nav_ListPReView", true);
} else {
//参会人员 处理
let temps = [];
temps.push({ field: "Nav_ListPAll", value: null });
setFieldValueByBatch(temps);
if (value == 30) {
// 文件评审会
setFieldVisible("Nav_ListPReView", true);
} else {
setFieldVisible("Nav_ListPReView", false);
setFieldValue("Nav_ListPReView", null); //评审人员不可见
}
setFieldVisible("Nav_ListPReView", false);
setFieldValue("Nav_ListPReView", null); //评审人员不可见
}
var isNew = getFieldValue('isNew')//手动创建 有值
if (isNew == null || isNew == undefined) {
isNew = 0
}
let json = initFilter(colInfo.ORG_ID, getFieldValue("ID"), null, null, null, value,isNew);
dispatch({
type: 'app/getDataByPost',
url: 'SC/SCMTMeeting/GetPAll',
payload: json,
onlyData: false,
onComplete: (ret) => {
let temps = [];
if (ret && ret.IsSuccessful && ret.Data) {
let detail = ret.Data.map((item, i) => {
item['ROW_NO'] = i + 1;
return item;
});
temps.push({ field: "Nav_ListPAll", value: detail });
} else {
temps.push({ field: "Nav_ListPAll", value: null });
}
setFieldValueByBatch(temps);
}
});
// setFieldValue("Nav_ListMeetingContent", null);
// if (value == 40 || value == 50) {
// setFieldVisible("Nav_ListPReView", false);
// setFieldValue("Nav_ListPReView", null); //评审人员不可见
// //加载人员信息
// if (value == 40 || value == 50) {
// setFieldVisible("Nav_ListPReView", false);
// setFieldValue("Nav_ListPReView", null); //评审人员不可见
// let json = initFilter(colInfo.ORG_ID, getFieldValue("ID"), null, null, null, value);
// dispatch({
// type: 'app/getDataByPost',
// url: 'SC/SCMTMeeting/GetPAll',
// payload: json,
// onlyData: false,
// onComplete: (ret) => {
// let temps = [];
// if (ret && ret.IsSuccessful && ret.Data) {
// let detail = ret.Data.map((item, i) => {
// item['ROW_NO'] = i + 1;
// return item;
// });
// temps.push({ field: "Nav_ListPAll", value: detail });
// } else {
// temps.push({ field: "Nav_ListPAll", value: null });
// }
// setFieldValueByBatch(temps);
// }
// });
// }
// } else {
// //参会人员 处理
// let temps = [];
// temps.push({ field: "Nav_ListPAll", value: null });
// setFieldValueByBatch(temps);
// if (value == 30) {
// // 文件评审会
// setFieldVisible("Nav_ListPReView", true);
// } else {
// setFieldVisible("Nav_ListPReView", false);
// setFieldValue("Nav_ListPReView", null); //评审人员不可见
// }
// }
} else if (colInfo != null && colInfo.FIELD_NAME == "Nav_ListMeetingContent") {
// //会议内容修改
// //加载 会议意见

View File

@ -651,8 +651,10 @@ class Home extends React.Component {
};
clearData = () => {
let newtmpData = { ...this.state.tmpData };
newtmpData["data"].id = "";
newtmpData["data"].homeReload = false;
if (newtmpData["data"] != null) {
newtmpData["data"].id = "";
newtmpData["data"].homeReload = false;
}
newtmpData.formCode = "";
this.setState({
formVisible: false,