From 84fa518cc6973c26d2e006b57d3e5570d4625075 Mon Sep 17 00:00:00 2001 From: liuwh <hugeinfo123> Date: Mon, 06 Apr 2020 19:04:25 +0800 Subject: [PATCH] 修改 --- src/components/page/AnnouncementPage/index.jsx | 225 ++++++++++++++----------------------------------------- 1 files changed, 58 insertions(+), 167 deletions(-) diff --git a/src/components/page/AnnouncementPage/index.jsx b/src/components/page/AnnouncementPage/index.jsx index 56d9683..56d8695 100644 --- a/src/components/page/AnnouncementPage/index.jsx +++ b/src/components/page/AnnouncementPage/index.jsx @@ -1,199 +1,90 @@ /* eslint-disable */ -/**liuwh - * 4/6/2020, 12:33:28 PM +/**柯礼钦 + * 4/6/2020, 5:17:40 PM * doc comment for the file goes here */ -/** Happy Coding */ +/** 全部通知 */ import React, { ReactNode, ReactEventHandler, Component } from 'react'; -// import { Link } from 'react-router-dom'; -import moment from 'moment' -import { DatePicker, Table, Card, Row, Col, Icon, Form, Input, Button, Select, message } from 'antd'; +import TableView from '../../common/TableView'; +import SearchFormView from '../../common/SearchFormView'; +import moment from 'moment'; + import './index.scss'; -import fetch from '../../../api/request'; -const { MonthPicker, RangePicker } = DatePicker; -const FormItem = Form.Item; + export default class AnnouncementPage extends Component { constructor(props) { super(props); this.config = { }; this.state = { - loading: true, - totalElements: 1, - size: 10, - page: 1, - resetKey: Date.now(), - formdata: { + formData: { + __key: Date.now(), type: '', title: '', - startTime: '', - endTime: '' - } + page: 1, + size: 10, + }, }; } - - - componentWillMount() { } - componentDidMount() { - this.loadData(this.state.formdata, this.state.page, this.state.size); + componentDidMount() { } + + cancle = (id) => { + console.log(id) + // // this.props.history.push("/document/create?id=" + id); + this.props.history.push({ pathname: "/document/create/" + id }); } - onShowSizeChange = (current, size) => { - console.log('pageSize', size) - this.setState({ size, page: 1 }); - this.getData(this.state.formdata, this.state.page, this.state.size); - }; - - handleSubmit = (e) => { - e.preventDefault(); - this.loadData(this.state.formdata, 1, this.state.size); + renderColumns = () => { + return [ + { title: '标题', dataIndex: 'documentTitle' }, + { title: '通知内容', dataIndex: 'documentContent' }, + { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <span>{item.readNumber || 0}/{item.noticeNumber || 0}</span> }, + { title: '通知时间', dataIndex: 'createTime', render: (cur, item) => cur !== "" && cur != null ? moment(cur).format("YYYY-MM-DD HH:mm") : "" }, + { title: '操作', render: (text, record) => <a onClick={() => this.cancle(record.id)}>查看</a> } + ]; } - loadData = (formdata, page, size) => { - console.log('111') - let _this = this; - _this.setState({ - loading: true - }) - fetch({ - url: 'api/document/getNotice', - params: { - ...formdata, - page, - size - } - }).then(res => { - console.log(res) - _this.setState({ - tableData: res.content, - loading: false, - totalElements: res.totalElements, - page - }); + setFormData = data => { + console.log('form', data); + this.setState({ + formData: data, }); } - //查询 - Seaech = () => { - const { formdata, page, size } = this.state; - if (formdata.areaId) { - formdata.areaId = parseInt(formdata.areaId[1]); - } - this.loadData(formdata, 1, size) - } - - //重置 - Reset = () => { - this.setState({ - resetKey: Date.now(), - formdata: {}, - page: 1, - size: 10 - }, this.loadData({}, 1, this.state.size)) - } - - onInputChange = ({ target: { value, name } }) => { - this.setState(({ formdata }) => ({ - formdata: { - ...formdata, - [name]: this.trim(value) - } - })) - } - - onTimeChange = (value, dateString) => { - this.onChange('startTime', moment(dateString[0]).format('YYYY-MM-DD HH:mm')); - this.onChange('endTime', moment(dateString[1]).format('YYYY-MM-DD HH:mm')); - } - - onChange = (field, value) => { - this.setState(({ formdata }) => ({ - formdata: { - ...formdata, - [field]: value - } - })) - } - - trim = (str) => { - str = str.replace(/^(\s|\u00A0)+/, ''); - for (var i = str.length - 1; i >= 0; i--) { - if (/\S/.test(str.charAt(i))) { - str = str.substring(0, i + 1); - break; - } - } - return str; - } - - getColumns = () => { - let obj = this; - return [ - { title: '通知标题', className: "txt-c", dataIndex: 'documentItle;' }, - { title: '通知内容', className: "txt-c", dataIndex: 'documentContent' }, - // { title: '文档类型', className: "txt-c", dataIndex: 'documentType', render: (text, record) => text == "DT00001" ? "规章制度" : text == "DT00002" ? "通知公告" : text }, - { title: '接受情况', className: "txt-c", dataIndex: 'groupType', render: (text, record) => <span>{readNumber || 0}/{noticeNumber || 0}</span> }, - { title: '通知时间', className: "txt-c", dataIndex: 'createTime', render: (text, record) => text !== "" && text != null ? moment(text).format("YYYY-MM-DD HH:mm") : "" }, - // { - // title: '操作', className: "txt-c", key: 'operation', render: (text, record) => { - // return <div> - // <Link to={{ pathname: "/baseManage/groupDetail/" + record.id + '/Modify', query: { id: record.id } }}>修改</Link> - // <span> | </span> - // <a href="javascript:void(0);" onClick={() => this.delete(record.id)}>删除</a> - // </div> - // } - // } - ] - } - render() { - const { resetKey, formdata } = this.state; + const { formData } = this.state; + + let tableParams = { + url: `api/document/getNotice`, + formData, + key: formData.__key, + columns: this.renderColumns(), + extraFromData: { + type: '', + }, + setFormData: this.setFormData + } return ( - <div className="announcement-page-main"> - <Card style={{ border: 20, margin: 20, padding: 20 }}> - <Row style={{ margin: '10px' }} key={resetKey}> - <Col span={1} style={{ display: 'flex', justifyContent: 'center', lineHeight: '28px' }}>标题:</Col> - <Col className="gutter-row" span={4}> - <Input placeholder="标题" name='name' onChange={this.onInputChange} /> - </Col> - <Col span={2} style={{ display: 'flex', justifyContent: 'center', lineHeight: '28px' }}>工作时间:</Col> - <Col className="gutter-row" span={6}> - <RangePicker placeholder={['开始时间', '结束时间']} showTime format="YYYY-MM-DD HH:mm" onChange={this.onTimeChange} /> - </Col> - <Col className="gutter-row" span={2}> - <Button type="primary" onClick={this.Seaech}>查询</Button> - </Col> - <Col className="gutter-row" span={2}> - <Button onClick={this.Reset}>重置</Button> - </Col> - </Row> - <Row> - <Table key={this.state.tableKey} - size="middle" - className="rowColor" - dataSource={this.state.tableData} - loading={{ spinning: this.state.loading }} - columns={this.getColumns()} - pagination={{ - size: this.state.size, - onChange: this.pageChange, - total: this.state.totalElements, - showSizeChanger: true, - onShowSizeChange: this.onShowSizeChange, - showTotal: (total, range) => `共${total}条记录 `, - itemRender: this.itemRender, - showQuickJumper: true, - defaultCurrent: 1, - current: this.state.page - }} - /> - </Row> - </Card> + <div className="rules-list-main"> + <SearchFormView + formData={formData} + setFormData={this.setFormData} + data={[ + { type: 'input', name: '标题', label: '标题', key: 'documentTitle' }, + { + type: 'rangePicker', + label: '通知时间', + name: JSON.stringify(['开始时间', '结束时间']), + key: JSON.stringify(['startTime', 'endTime']), + keylistName: 'rangeTimelist', + }, + ]} /> + <TableView {...tableParams} /> </div> ) } -- Gitblit v1.8.0