From 2ea56ed08b58386f0612635101b1acd51cd4a44c Mon Sep 17 00:00:00 2001
From: Mr Ke <kelq@hugeinfo.com.cn>
Date: Wed, 29 Apr 2020 18:06:45 +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>&nbsp;|&nbsp;</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