From 8d24b2559c9929814b31c0615bdcf915669350af Mon Sep 17 00:00:00 2001
From: Mr Ke <kelq@hugeinfo.com.cn>
Date: Sat, 16 May 2020 13:49:11 +0800
Subject: [PATCH] 加入下载链接
---
src/components/page/AnnouncementPage/index.jsx | 249 ++++++++++++++++---------------------------------
1 files changed, 82 insertions(+), 167 deletions(-)
diff --git a/src/components/page/AnnouncementPage/index.jsx b/src/components/page/AnnouncementPage/index.jsx
index 56d9683..c9dd074 100644
--- a/src/components/page/AnnouncementPage/index.jsx
+++ b/src/components/page/AnnouncementPage/index.jsx
@@ -1,199 +1,114 @@
/* 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 { Modal } from 'antd';
+import FindAlreadyReadOrNotView from '../../common/FindAlreadyReadOrNotView';
+
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,
+ },
+ visible: false//modal的可视化状态
};
}
-
-
-
componentWillMount() { }
- componentDidMount() {
- this.loadData(this.state.formdata, this.state.page, this.state.size);
+ componentDidMount() { }
+
+ link = (id) => {
+ console.log(id)
+ this.props.history.push({ pathname: "/document/detail/" + 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);
+ emoveTAG = (str) => {
+ return str.replace(/<[^>]+>/g, "");
}
- 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
- });
+ renderColumns = () => {
+ return [
+ { title: '标题', dataIndex: 'documentTitle' },
+ {
+ title: '通知内容', dataIndex: 'documentContent', ellipsis: true, width: '40%', render: (cur, item) => {
+ return this.emoveTAG(cur)
+ }
+ },
+ { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <a onClick={() => { this.setState({ visible: true, documentId: item.id, curItem: item }) }}><span>{item.readNumber || 0}/{item.noticeNumber || 0}</span></a> },
+ { title: '通知时间', dataIndex: 'createTime', render: (cur, item) => cur !== "" && cur != null ? moment(cur).format("YYYY-MM-DD HH:mm") : "" },
+ { title: '操作', render: (text, record) => <a onClick={() => this.link(record.id)}>查看</a> }
+ ];
+ }
+
+ 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, documentId, visible, curItem } = this.state;
+
+ let tableParams = {
+ url: `api/document/getNotice`,
+ formData,
+ key: formData.__key,
+ columns: this.renderColumns(),
+ extraFromData: {
+ type: 'DT00002',
+ },
+ 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">
+ <Modal
+ visible={visible}
+ onCancel={() => this.setState({ visible: false })}
+ footer={null}
+ title={<div>
+ {curItem ? curItem.documentTitle : '接受情况'}
+ </div>}
+ >
+ {
+ documentId &&
+ <FindAlreadyReadOrNotView key={documentId} documentId={documentId} />
+ }
+
+ </Modal>
+ <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