forked from huge/frontEnd/hugeOA

Mr Ke
2020-04-27 5acddbdb6b6d48a08b52602fd232993fd5c3715d
增加接收情况tabs列表
3 files added
4 files modified
179 ■■■■ changed files
debug.log 11 ●●●●● patch | view | raw | blame | history
src/api/httpurl.js 4 ●●●● patch | view | raw | blame | history
src/components/common/FindAlreadyReadOrNotView/index.jsx 91 ●●●●● patch | view | raw | blame | history
src/components/common/FindAlreadyReadOrNotView/index.scss 21 ●●●●● patch | view | raw | blame | history
src/components/common/HotListTableView/index.scss 2 ●●● patch | view | raw | blame | history
src/components/page/AnnouncementPage/index.jsx 19 ●●●● patch | view | raw | blame | history
src/components/page/index/rulesList/index.jsx 31 ●●●●● patch | view | raw | blame | history
debug.log
New file
@@ -0,0 +1,11 @@
[0427/114532.165:ERROR:process_reader_win.cc(151)] SuspendThread: ¾Ü¾ø·ÃÎÊ¡£ (0x5)
[0427/114532.172:ERROR:exception_snapshot_win.cc(98)] thread ID 29668 not found in process
[0427/114532.172:ERROR:scoped_process_suspend.cc(40)] NtResumeProcess: Òѳ¢ÊÔ·ÃÎÊÕýÔÚÍ˳öµÄ¹ý³Ì¡£ (0xc000010a)
[0427/114701.055:ERROR:process_reader_win.cc(151)] SuspendThread: ¾Ü¾ø·ÃÎÊ¡£ (0x5)
[0427/114701.055:ERROR:exception_snapshot_win.cc(98)] thread ID 18704 not found in process
[0427/114754.720:ERROR:process_reader_win.cc(151)] SuspendThread: ¾Ü¾ø·ÃÎÊ¡£ (0x5)
[0427/114754.721:ERROR:exception_snapshot_win.cc(98)] thread ID 20684 not found in process
[0427/114754.721:ERROR:scoped_process_suspend.cc(40)] NtResumeProcess: Òѳ¢ÊÔ·ÃÎÊÕýÔÚÍ˳öµÄ¹ý³Ì¡£ (0xc000010a)
[0427/114955.253:ERROR:process_reader_win.cc(151)] SuspendThread: ¾Ü¾ø·ÃÎÊ¡£ (0x5)
[0427/114955.253:ERROR:exception_snapshot_win.cc(98)] thread ID 704 not found in process
[0427/114955.253:ERROR:scoped_process_suspend.cc(40)] NtResumeProcess: Òѳ¢ÊÔ·ÃÎÊÕýÔÚÍ˳öµÄ¹ý³Ì¡£ (0xc000010a)
src/api/httpurl.js
@@ -1,6 +1,6 @@
//内网测试地址
// let StagingUrl = 'http://192.168.0.114:9072';
let StagingUrl = "http://120.79.193.119:9072";
let StagingUrl = 'http://192.168.0.105:9072';
// let StagingUrl = "http://120.79.193.119:9072";
//mock地址
src/components/common/FindAlreadyReadOrNotView/index.jsx
New file
@@ -0,0 +1,91 @@
/* eslint-disable */
/**liuwh
 * 4/27/2020, 3:00:42 PM
 * doc comment for the file goes here
 */
/** Happy Coding */
import React, { ReactNode, ReactEventHandler, Component, useEffect, useState } from 'react';
// import { Link } from 'react-router-dom';
import { Icon, Tabs, Avatar, Spin } from 'antd';
import './index.scss';
const { TabPane } = Tabs;
import fetch from '../../../api/request';
import moment from 'moment';
export default function FindAlreadyReadOrNotView({ documentId }) {
  useEffect(() => {
    console.log('documentId', documentId);
    Promise.all([initDataByType('1', setLoading1, setData1), initDataByType('2', setLoading2, setData2)]).then(res => {
      console.log(res);
    })
  }, []);
  function initDataByType(type, setLoading, setData) {
    setLoading(true);
    let p = new Promise((resolve, reject) => {
      fetch({
        url: `api/document/noticeRecord/findAlreadyReadOrNot`,
        params: {
          documentId,
          alreadyRead: type
        }
      }).then(res => {
        console.log('res'.res);
        setLoading(false);
        if (res) {
          setData(res);
          resolve(true);
        }
      })
    });
    return p;
  }
  const [activeKey, setActiveKey] = useState('1');
  const [loading1, setLoading1] = useState(false);
  const [loading2, setLoading2] = useState(false);
  const [data1, setData1] = useState([]);
  const [data2, setData2] = useState([]);
  function onchange(key) {
    console.log(key);
  }
  return (
    <div className="find-already-read-or-not-view-main">
      <Tabs defaultActiveKey="1" onChange={onchange}>
        <TabPane tab={`未读(${data1.length})`} key="1">
          <Spin spinning={loading1} style={{ height: 100 }}>
            <div className="modal-list">
              {
                data1.map((a) => (
                  <div className="flex-box-row align-center space-between modal-list-item" key={a.id}>
                    <span className="modal-label">{a.noticeUserName || '无'}</span>
                    <span className="modal-time">{a.createTime ? moment(a.createTime).format("YYYY-MM-DD HH:mm") : '无'}</span>
                  </div>
                ))
              }
            </div>
          </Spin>
        </TabPane>
        <TabPane tab={`已读(${data2.length})`} key="2">
          <Spin spinning={loading2} style={{ height: 100 }}>
            <div className="modal-list" >
              {
                data2.map((a) => (
                  <div className="flex-box-row align-center space-between modal-list-item" key={a.id}>
                    <span className="modal-label">{a.noticeUserName || '无'}</span>
                    <span className="modal-time">{a.createTime ? moment(a.createTime).format("YYYY-MM-DD HH:mm") : '无'}</span>
                  </div>
                ))
              }
            </div>
          </Spin>
        </TabPane>
      </Tabs>
    </div>
  )
}
src/components/common/FindAlreadyReadOrNotView/index.scss
New file
@@ -0,0 +1,21 @@
/* eslint-disable */
/**liuwh
 * 4/27/2020, 3:00:42 PM
 * doc comment for the file goes here
 */
/** Happy Coding */
.find-already-read-or-not-view {
  &-main {
    & .modal-list .modal-list-item:last-child {
      border-bottom: none;
    }
    & .modal-list-item {
      border-bottom: 1px solid #ccc;
      padding: 5px 5px 5px 20px;
      & > span {
        margin-right: 100px;
      }
    }
  }
}
src/components/common/HotListTableView/index.scss
@@ -22,7 +22,7 @@
      margin-bottom: 0 !important;
    }
    & a:visited {
      color: #559de6;
      color: #559de6 !important;
    }
  }
}
src/components/page/AnnouncementPage/index.jsx
@@ -9,6 +9,8 @@
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';
@@ -26,6 +28,7 @@
        page: 1,
        size: 10,
      },
      visible: false//modal的可视化状态
    };
  }
@@ -50,7 +53,7 @@
          return this.emoveTAG(cur)
        }
      },
      { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <span>{item.readNumber || 0}/{item.noticeNumber || 0}</span> },
      { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <a onClick={() => { this.setState({ visible: true, documentId: item.id }) }}><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> }
    ];
@@ -64,7 +67,7 @@
  }
  render() {
    const { formData } = this.state;
    const { formData, documentId, visible } = this.state;
    let tableParams = {
      url: `api/document/getNotice`,
@@ -78,6 +81,18 @@
    }
    return (
      <div className="rules-list-main">
        <Modal
          visible={visible}
          onCancel={() => this.setState({ visible: false })}
          footer={null}
          title="接收情况"
        >
          {
            documentId &&
            <FindAlreadyReadOrNotView key={documentId} documentId={documentId} />
          }
        </Modal>
        <SearchFormView
          formData={formData}
          setFormData={this.setFormData}
src/components/page/index/rulesList/index.jsx
@@ -10,6 +10,7 @@
import TableView from '../../../common/TableView';
import SearchFormView from '../../../common/SearchFormView';
import moment from 'moment';
import FindAlreadyReadOrNotView from '../../../common/FindAlreadyReadOrNotView';
import './index.scss';
const { TabPane } = Tabs;
@@ -52,7 +53,7 @@
          return cur ? this.emoveTAG(cur) : '无'
        }
      },
      { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <a onClick={() => { this.setState({ visible: true }) }}> <span>{item.readNumber || 0}/{item.noticeNumber || 0}</span></a> },
      { title: '接受情况', dataIndex: 'groupType', render: (cur, item) => <a onClick={() => { this.setState({ visible: true, documentId: item.id }) }}> <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> }
    ];
@@ -65,8 +66,13 @@
    });
  }
  onTabsChange = (key) => {
    console.log(key);
  }
  render() {
    const { formData, visible } = this.state;
    const { formData, visible, documentId } = this.state;
    let tableParams = {
      url: `api/document/getNotice`,
@@ -86,23 +92,10 @@
          footer={null}
          title="接收情况"
        >
          <Tabs defaultActiveKey="1" >
            <TabPane tab="未读" key="1">
              <div className="modal-list">
                {
                  [1,2,3].map((a)=>(
                    <div className="flex-box-row align-center modal-list-item" >
                      <Avatar src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
                      <span className="modal-label">柯礼钦</span>
                      <span className="modal-time">2010-10-10 24:00</span>
                    </div>
                  ))
                }
              </div>
            </TabPane>
            <TabPane tab="已读" key="2">
            </TabPane>
          </Tabs>
          {
            documentId &&
            <FindAlreadyReadOrNotView key={documentId} documentId={documentId}/>
          }
        </Modal>
        <SearchFormView