mh_jy_safe_web/src/routes/ApproveMobile.js
2025-08-25 10:08:30 +08:00

274 lines
8.6 KiB
JavaScript

import React, { useState, useEffect, useRef, Component } from 'react'
import { connect } from 'dva'
import FormPage from '../../FormPage'
import { initFilter, addRuleAndGroups, guid, extendInclude, extendRule, extend } from "../../../utils/common"
import { Table, Card,Modal,List,Avatar, Row, Col, Icon, Button, Input, DatePicker, Form, Select, notification, Divider,Tabs,Tag } from 'antd';
// import './home.less'
import config from '../config';
const { TabPane } = Tabs;
class ApproveMobile extends React.Component {
constructor(props) {
super(props);
this.state = {
visible: false,
noticeTitle: '',
retData: [],
pagination: {},
tmpData: {},
type:"1",
// querySearch: {},//搜索集合
// tableData: [{//工作台四个展示模块
// key: '1',
// // bgImg: backlog,
// title: '待办事项',
// total: '0',
// // iconImg: backlog_i,
// iconDisplay: 'block',
// }, {
// key: '2',
// // bgImg: flow,
// title: '已办事项',
// total: '0',
// // iconImg: flow_i,
// iconDisplay: 'none',
// },
// // {
// // key: '3',
// // bgImg: finished,
// // title: '今日新增',
// // total: '0',
// // iconImg: finished_i,
// // iconDisplay: 'none',
// // }
// // ,
// {
// key: '4',
// // bgImg: remind,
// title: '待办超时',
// total: '0',
// // iconImg: remind_i,
// iconDisplay: 'none',
// }
// ],
};
};
componentDidMount() {
this.getBaseInfoData(1, "1", 500);
};
componentDidUpdate(preProps ){
// if(preProps.type!==this.props.type){
// //放置刷新函数
// }
}
//获取数据
getBaseInfoData = (pagination, key, limit) => {
const current = pagination ? pagination.current : 1
const json = initFilter(this.props.login.OrgId, "", "CODE", 1, current)
extendRule(json, 'SOURCE_FORMCODE', 9, "FO008")
// const querySearch = this.state.querySearch;
// for (var item in querySearch) {
// if (item == 'searchName') {
// extendRule(json, 'NOTICE_TITLE', 9, querySearch[item])
// }
// if (item == 'searchCode') {
// extendRule(json, 'CODE', 9, querySearch[item])
// }
// if (item == 'startTime1') {
// extendRule(json, 'TASK_STARTDT', 6, querySearch[item])
// }
// if (item == 'startTime2') {
// extendRule(json, 'TASK_STARTDT', 4, querySearch[item])
// }
// if (item == 'endTime1') {
// extendRule(json, 'TASK_ENDDT', 6, querySearch[item])
// }
// if (item == 'endTime2') {
// extendRule(json, 'TASK_ENDDT', 4, querySearch[item])
// }
// }
json.Limit = limit;
json.Parameter1 = key;//1待办事项2已办事项3今日新增4待办超时
this.props.dispatch({
type: 'app/getDataByPost',
url: 'FM/FMNotificationTask/OrderPaged',
payload: json,
onlyData: false,
onComplete: (re) => {
if (re && re.IsSuccessful && re.Data.newData) {
// this.state.tableData[0].total = re.Data.todoCount;
// this.state.tableData[1].total = re.Data.doneCount;
// this.state.tableData[2].total = re.Data.todayNewCount;
// this.state.tableData[2].total = re.Data.timeOverCount;
// if (limit != null || limit != undefined)
// {
this.setState({
retData: re.Data.newData,
})
// }
// else {
// var pageInfo = {}
// pageInfo.current = current;
// pageInfo.total = Math.ceil(re.Data.TotalCount, 10);
// this.setState({
// retDataAll: re.Data.newData,
// pagination: pageInfo,
// })
// }
}
}
})
};
ShowState(obj,key) {
if(key!="2")
{
var thisResult = (Date.parse(obj.TASK_ENDDT) - Date.parse(Date())) / 3600 / 1000;
if (thisResult > 0) {
return (<Tag color="#2db7f5" style={{float:"center",padding:'0 10px' }}>正常</Tag >);
} else {
return (<Tag color="#f50" style={{float:"center",padding:'0 10px' }}>超期</Tag >);
}
}
}
showEditModal = (dataId, formCode, TaskID, title, taskCode) => {
const newtmpData = {
data: { id: dataId, TaskID: TaskID, onCancel: this.handleCancel, taskCode: taskCode, homeReload: true },
formCode: formCode,
}
this.setState({
noticeTitle: title,
taskCode: taskCode,
tmpData: newtmpData
}, () => this.setState({
visible: true
}));
}
handleCancel = () => { // 退出弹窗
// this.getBaseInfoData(1, "1", 500);
this.clearData();
}
closeModal = () => { // 退出弹窗
this.clearData();
}
clearData = () => {
let newtmpData = { ...this.state.tmpData }
newtmpData["data"].id = '';
newtmpData["data"].homeReload = false;
this.setState({
visible: false,
tmpData: newtmpData,
})
}
onTabChange = (tabKey) => {
this.getBaseInfoData(1, tabKey, 500);
this.setState({
type:tabKey
})
}
handleActiveMenu = () => {
window.location.replace(config.guideH5Host)
// let host= window.location.origin
// window.location.replace(host+'/#/HomeMobileNew')
}
handleActiveCreate = (menu) => {
this.props.history.push({ pathname: `/main/${menu.ID}` })
}
render() {
return (
<>
<div style={{ backgroundColor: '#fff', padding: '20px 10px'}}>
<div style={{ display: 'inline-block' }}>
<Modal
visible={this.state.visible}
title={this.state.noticeTitle + "(" + this.state.taskCode + ")"}
maskClosable={false}
onCancel={this.handleCancel}
footer={null}
style={{
maxWidth: "100vw",
top: -10,
paddingBottom: 0
}}
bodyStyle={{
maxHeight:"100vh",
height: "calc(100vh - 55px )", //-53
overflowY: "auto"
}}
width="100vw"
// className='antd-modal-fullscreen2'
closeModal={this.closeModal}
// forceRender={true}
>
<FormPage {...this.state.tmpData} />
</Modal>
</div>
<br></br>
<Row>
<Button style={{float: "left"}} type="link" onClick={()=>this.handleActiveMenu()}>返回首页</Button>
<Button style={{float: "right"}} type="link" onClick={()=>this.handleActiveMenu()}>新增</Button>
</Row>
<Row justify='center' style={{marginTop: "14px", height: 'calc((100% - 250px) / 2)', minHeight: '120px' }}>
<Col style={{ height: '100%', whiteSpace: 'pre-wrap' }}>
<Tabs defaultActiveKey={this.state.type} style={{backgroundColor:'#fff'}} onChange={this.onTabChange}>
<TabPane tab="待办事项" key="1">
<List
pagination={{
onChange: page => {
console.log(page);
},
pageSize: 10,
}}
itemLayout="horizontal"
dataSource={this.state.retData}
renderItem={record => (
<List.Item
extra={
this.ShowState(record,"1")
}
>
<List.Item.Meta
avatar={<Avatar src="https://joeschmoe.io/api/v1/jon" />}
title={<span> <a onClick={() => this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}</a></span>}
description={"开始时间:"+record.TASK_STARTDT+'\n'+"结束时间:"+record.TASK_ENDDT}
/>
</List.Item>
)}
/>
</TabPane>
<TabPane tab="已办事项" key="2">
<List
pagination={{
onChange: page => {
console.log(page);
},
pageSize: 10,
}}
itemLayout="horizontal"
dataSource={this.state.retData}
renderItem={record => (
<List.Item
extra={
this.ShowState(record,"2")
}
>
<List.Item.Meta
avatar={<Avatar src="https://joeschmoe.io/api/v1/jon" />}
title={<span> <a onClick={() => this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}</a></span>}
description={"开始时间:"+record.TASK_STARTDT+'\n'+"结束时间:"+record.TASK_ENDDT}
/>
</List.Item>
)}
/>
</TabPane>
</Tabs>
</Col>
</Row>
</div>
</>
)
}
}
export default connect(({ login }) => ({ login }))(ApproveMobile)