From b449aca90c49fe8ee96f1c040c5953fcdd2ca15d Mon Sep 17 00:00:00 2001
From: liuwh <hugeinfo123>
Date: Mon, 06 Apr 2020 17:49:41 +0800
Subject: [PATCH] 新建文档
---
src/components/common/SearchFormView/index.jsx | 236 +++++++++++++++++++++++++++++
src/index.js | 12 -
src/pages/index/System.jsx | 14 -
src/pages/index/workbench.jsx | 2
src/components/page/index/rulesList/index.scss | 14 +
src/components/page/index/workbench/index.jsx | 6
src/components/common/TopListTableView/index.jsx | 7
src/components/common/SearchFormView/index.scss | 22 ++
src/components/page/index/workbench/index.scss | 0
src/components/page/index/rulesList/index.jsx | 85 ++++++++++
src/components/common/HotListTableView/index.jsx | 44 ++--
src/components/page/SystemPage/index.jsx | 7
12 files changed, 401 insertions(+), 48 deletions(-)
diff --git a/src/components/common/HotListTableView/index.jsx b/src/components/common/HotListTableView/index.jsx
index 8469970..e0157dc 100644
--- a/src/components/common/HotListTableView/index.jsx
+++ b/src/components/common/HotListTableView/index.jsx
@@ -30,7 +30,7 @@
page: 1,
size: 10,
},
- loading: false
+ loading: true
};
}
@@ -116,6 +116,7 @@
render() {
let { keywordlist, formData, loading } = this.state;
+
let tableParams = {
url: `api/news/newslist`,
formData,
@@ -124,30 +125,29 @@
extraFromData: {
},
setFormData: this.setFormData
- }
+ };
return (
<div className="hot-list-table-view-main">
- {
- loading ? <div style={{ padding: 10 }}>
- <Skeleton />
+ <Skeleton loading={loading}>
+ <BreadcrumbView data={[{ name: '行业热点知识库' }]} />
+ <div className="hot-list-table-view-main-content">
+ <Tabs defaultActiveKey={'全部'} onChange={this.tabChange}>
+ {
+ keywordlist.length &&
+ keywordlist.map((key) => (
+ <TabPane tab={key} key={key}>
+ </TabPane>
+ ))
+ }
+ </Tabs>
+ {/* 避免请求两遍 */}
+ {
+ !loading &&
+ <TableView {...tableParams} />
+
+ }
</div>
- :
- <React.Fragment>
- <BreadcrumbView data={[{ name: '行业热点知识库' }]} />
- <div className="hot-list-table-view-main-content">
- <Tabs defaultActiveKey={'全部'} onChange={this.tabChange}>
- {
- keywordlist.length &&
- keywordlist.map((key) => (
- <TabPane tab={key} key={key}>
- </TabPane>
- ))
- }
- </Tabs>
- <TableView {...tableParams} />
- </div>
- </React.Fragment>
- }
+ </Skeleton>
</div>
)
}
diff --git a/src/components/common/SearchFormView/index.jsx b/src/components/common/SearchFormView/index.jsx
new file mode 100644
index 0000000..dbe59c9
--- /dev/null
+++ b/src/components/common/SearchFormView/index.jsx
@@ -0,0 +1,236 @@
+/* eslint-disable */
+/**柯礼钦
+ * 4/3/2020, 3:00:49 PM
+ * doc comment for the file goes here
+ */
+
+/** 表单搜索组件 */
+import React, { ReactNode, ReactEventHandler, Component } from 'react';
+import { Row, Col, Form, Input, Button, Select, DatePicker, Divider } from 'antd';
+import moment from 'moment';
+
+const { RangePicker } = DatePicker;
+import './index.scss';
+
+
+export default class SearchFormView extends Component {
+ constructor(props) {
+ super(props);
+ this.config = {
+ };
+ this.state = {
+ };
+ }
+
+ componentWillMount() { }
+
+ componentDidMount() { }
+
+ onClick = type => {
+ const { pathName } = this.props;
+ let data;
+ switch (type) {
+ case 'search':
+ data = { ...this.props.formData, __key: Date.now() };
+ this.props.setFormData(data);
+ return;
+ case 'reset':
+ data = { __key: Date.now(), page: 1, size: 10 };
+ this.props.setFormData(data);
+ return;
+ case 'build':
+ return;
+ }
+ };
+
+ //各类型表单元素触发事件
+ // input输入类型
+ handleInput = ({ target: { name, value } }) => {
+ this.props.setFormData({ ...this.props.formData, [name]: value });
+ };
+
+ // select下拉选择
+ handleSelectChange = name => {
+ return value => {
+ this.handleInput({ target: { name, value } });
+ };
+ };
+
+ // 时间段区域选择
+ rangePickerChange = (name, key, m, d) => {
+ if (m.length > 0) {
+ this.props.setFormData({
+ ...this.props.formData,
+ [name]: d.join(','),
+ [JSON.parse(key)[0]]: d[0],
+ [JSON.parse(key)[1]]: d[1],
+ });
+ } else {
+ this.props.setFormData({
+ ...this.props.formData,
+ [name]: undefined,
+ [JSON.parse(key)[0]]: '',
+ [JSON.parse(key)[1]]: '',
+ });
+ }
+ };
+
+ // 时间选择器
+ datePickerChange = (name, v) => {
+ this.props.setFormData({
+ ...this.props.formData,
+ [name]: v,
+ });
+ };
+
+
+ render() {
+ const { formData = {}, data = [], children } = this.props;
+
+ return (
+ <div className="search-form-view-main">
+ <div className="search-form-view-main-margin-bottom">
+ <Row type="flex" align="middle" gutter={20}>
+
+ {data.length > 0 &&
+ data.map((item, idx) => (
+ <React.Fragment key={idx}>
+ {(() => {
+ switch (item.type) {
+ case 'select':
+ return (
+ <Col span={4}>
+ <Form.Item label={item.label}>
+ <Select
+ size="small"
+ style={{ width: '100%' }}
+ placeholder={item.name}
+ value={formData[item.key]}
+ allowClear
+ onChange={this.handleSelectChange(item.key)}>
+ {item.list &&
+ item.list.map(item => (
+ <Select.Option
+ value={item.id}
+ key={item.id}>
+ {item.name}
+ </Select.Option>
+ ))}
+ </Select>
+ </Form.Item>
+ </Col>
+ );
+ case 'input':
+ return (
+ <Col span={4}>
+ <Form.Item label={item.label}>
+ <Input
+ size="small"
+ placeholder={item.name}
+ name={item.key}
+ value={formData[item.key]}
+ onChange={this.handleInput}
+ />
+ </Form.Item>
+ </Col>
+ );
+ case 'datePicker':
+ return (
+ <Col span={4}>
+ <Form.Item label={item.label}>
+ <DatePicker
+ size="small"
+ style={{ width: '100%' }}
+ placeholder={item.name}
+ onChange={(date, dateString) => {
+ this.datePickerChange(item.key, dateString);
+ }}
+ value={formData[item.key] ? moment(formData[item.key], 'YYYY-MM-DD') : undefined}
+ />
+ </Form.Item>
+ </Col>
+ );
+ case 'rangePicker':
+ return (
+ <Col span={6}>
+ <Form.Item label={item.label}>
+ <RangePicker
+ size="small"
+ ranges={{
+ Today: [moment(), moment()],
+ 'This Month': [
+ moment().startOf('month'),
+ moment().endOf('month'),
+ ],
+ }}
+ value={
+ item.keylistName &&
+ formData[item.keylistName] &&
+ typeof formData[item.keylistName] == 'string'
+ ? formData[item.keylistName]
+ .split(',')
+ .map(item => moment(item, 'YYYY-MM-DD'))
+ : []
+ }
+ onChange={(date, dateString) => {
+ this.rangePickerChange(
+ item.keylistName,
+ item.key,
+ date,
+ dateString
+ );
+ }}
+ placeholder={JSON.parse(item.name)}
+ />
+ </Form.Item>
+ </Col>
+ );
+ case 'br':
+ return (
+ <Col span={24} style={{ marginBottom: '10px' }} />
+ );
+ default:
+ return null;
+ }
+ })()}
+ </React.Fragment>
+ ))}
+
+ <Col>
+ <Row type="flex" gutter={20} align="middle" align="middle">
+ <Col>
+ <Button
+ size="small"
+ type="primary"
+ onClick={() => {
+ this.onClick('search');
+ }}>
+ 查询
+ </Button>
+ </Col>
+ <Col>
+ <Button
+ size="small"
+ onClick={() => {
+ this.onClick('reset');
+ }}>
+ 重置
+ </Button>
+ </Col>
+ {
+ children &&
+ <Col>
+ {children}
+ </Col>
+ }
+ </Row>
+ </Col>
+ </Row>
+
+ </div>
+
+ <Divider />
+ </div>
+ )
+ }
+}
diff --git a/src/components/common/SearchFormView/index.scss b/src/components/common/SearchFormView/index.scss
new file mode 100644
index 0000000..5f0238f
--- /dev/null
+++ b/src/components/common/SearchFormView/index.scss
@@ -0,0 +1,22 @@
+/* eslint-disable */
+/**柯礼钦
+ * 4/3/2020, 3:00:49 PM
+ * doc comment for the file goes here
+ */
+
+/** Happy Coding */
+.search-form-view {
+ &-main {
+ &-margin-bottom{
+ margin-bottom: 18px;
+
+ }
+ .ant-form-item {
+ margin-bottom: 0 !important;
+ display: flex;
+ }
+ .ant-form-item-control-wrapper {
+ flex: 1;
+ }
+ }
+}
diff --git a/src/components/common/TopListTableView/index.jsx b/src/components/common/TopListTableView/index.jsx
index 0b8423b..859bf83 100644
--- a/src/components/common/TopListTableView/index.jsx
+++ b/src/components/common/TopListTableView/index.jsx
@@ -8,6 +8,8 @@
import React, { ReactNode, ReactEventHandler, Component } from 'react';
import { Table, Row, Col } from 'antd';
import { tagList } from './tagList';
+import fetch from '../../../api/request';
+
import './index.scss';
@@ -22,6 +24,11 @@
}
componentWillMount() {
+ fetch({
+ url: `api/merits/queryMerits`
+ }).then(res => {
+ console.log('res', res);
+ })
this.setState({
topList: tagList
})
diff --git a/src/components/page/SystemPage/index.jsx b/src/components/page/SystemPage/index.jsx
index cf211d0..12f5090 100644
--- a/src/components/page/SystemPage/index.jsx
+++ b/src/components/page/SystemPage/index.jsx
@@ -6,9 +6,9 @@
/** 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 './index.scss';
import fetch from '../../../api/request';
@@ -33,9 +33,6 @@
}
};
}
-
-
-
componentWillMount() { }
@@ -137,7 +134,7 @@
{ 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: 'groupType', render: (text, record) => <span>{record.readNumber || 0}/{record.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) => {
diff --git a/src/components/page/index/rulesList/index.jsx b/src/components/page/index/rulesList/index.jsx
new file mode 100644
index 0000000..219f7bf
--- /dev/null
+++ b/src/components/page/index/rulesList/index.jsx
@@ -0,0 +1,85 @@
+/* eslint-disable */
+/**柯礼钦
+ * 4/6/2020, 5:17:40 PM
+ * doc comment for the file goes here
+ */
+
+/** 工作制度 */
+import React, { ReactNode, ReactEventHandler, Component } from 'react';
+import TableView from '../../../common/TableView';
+import SearchFormView from '../../../common/SearchFormView';
+import moment from 'moment';
+
+import './index.scss';
+
+
+export default class RulesList extends Component {
+ constructor(props) {
+ super(props);
+ this.config = {
+ };
+ this.state = {
+ formData: {
+ __key: Date.now(),
+ type: '',
+ title: '',
+ page: 1,
+ size: 10,
+ },
+ };
+ }
+
+ componentWillMount() { }
+
+ componentDidMount() { }
+
+ renderColumns = () => {
+ return [
+ { title: '通知标题', dataIndex: 'documentItle;' },
+ { 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") : "" },
+ ];
+ }
+
+ setFormData = data => {
+ console.log('form', data);
+ this.setState({
+ formData: data,
+ });
+ }
+
+ render() {
+ 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="rules-list-main">
+ <SearchFormView
+ formData={formData}
+ setFormData={this.setFormData}
+ data={[
+ { type: 'input', name: '标题', label: '标题', key: 'title' },
+ {
+ type: 'rangePicker',
+ label: '发布时间',
+ name: JSON.stringify(['开始时间', '结束时间']),
+ key: JSON.stringify(['startTime', 'endTime']),
+ keylistName: 'rangeTimelist',
+ },
+ ]} />
+ <TableView {...tableParams} />
+ </div>
+ )
+ }
+}
+
diff --git a/src/components/page/index/rulesList/index.scss b/src/components/page/index/rulesList/index.scss
new file mode 100644
index 0000000..e1f7b64
--- /dev/null
+++ b/src/components/page/index/rulesList/index.scss
@@ -0,0 +1,14 @@
+/* eslint-disable */
+/**liuwh
+ * 4/6/2020, 5:17:40 PM
+ * doc comment for the file goes here
+ */
+
+/** Happy Coding */
+.rules-list {
+ &-main {
+ background: #fff;
+ margin: 20px;
+ padding: 20px;
+ }
+}
diff --git a/src/components/page/workbench/index.jsx b/src/components/page/index/workbench/index.jsx
similarity index 71%
rename from src/components/page/workbench/index.jsx
rename to src/components/page/index/workbench/index.jsx
index 733a1f1..4ffbf82 100644
--- a/src/components/page/workbench/index.jsx
+++ b/src/components/page/index/workbench/index.jsx
@@ -6,9 +6,9 @@
/** 首页--工作台 */
import React, { ReactNode, ReactEventHandler, Component } from 'react';
-import NotifyList from '../../common/NotifyList'; //通知列表
-import TopListTableView from '../../common/TopListTableView'; //榜单列表
-import HotListTableView from '../../common/HotListTableView'; //行业热点知识库
+import NotifyList from '../../../common/NotifyList'; //通知列表
+import TopListTableView from '../../../common/TopListTableView'; //榜单列表
+import HotListTableView from '../../../common/HotListTableView'; //行业热点知识库
import './index.scss';
diff --git a/src/components/page/workbench/index.scss b/src/components/page/index/workbench/index.scss
similarity index 100%
rename from src/components/page/workbench/index.scss
rename to src/components/page/index/workbench/index.scss
diff --git a/src/index.js b/src/index.js
index 57b89f4..4fd9219 100644
--- a/src/index.js
+++ b/src/index.js
@@ -51,23 +51,19 @@
{/* 新建文档 */}
<Route path="/document/create" component={DocumentEdit} />
-
{/* 全部通知 */}
<Route path="/index/workbench/announcement" component={Announcement} />
- {/* 首页 */}
- <Route path="/index/workbench" component={Workbench} />
{/* 规章制度 */}
<Route path="/index/rules" component={System} />
-
-
+ {/* 首页 */}
+ <Route path="/index" component={Workbench} />
<Route path="/login" component={Login} />
-
- <Route path="/" component={Index} />
+ <Route path="/" component={Workbench} />
{/* 路由的页面重定向 */}
- <Redirect to="/" component={Index} />
+ <Redirect to="/" component={Workbench} />
</Switch>
</Content>
</Layout>
diff --git a/src/pages/index/System.jsx b/src/pages/index/System.jsx
index 8b12334..44d395b 100644
--- a/src/pages/index/System.jsx
+++ b/src/pages/index/System.jsx
@@ -8,6 +8,7 @@
import React, { ReactNode, ReactEventHandler, Component } from 'react';
import BreadcrumbView from '../../components/common/BreadcrumbView';
import SystemPage from '../../components/page/SystemPage'
+import RulesList from '../../components/page/index/rulesList'
export default class System extends Component {
constructor(props) {
@@ -27,16 +28,11 @@
render() {
return (
<div className="System-main">
- <BreadcrumbView data={[{ name: '工作制度'}]} />
- <SystemPage />
+ <BreadcrumbView data={[{ name: '工作制度' }]} />
+ {/* <SystemPage /> */}
+ <RulesList {...this.prosp} />
</div>
)
}
}
-//export default function System({ }) {
-// return (
-// <div className="System-main">
-//
-// </div>
-// )
-//}
+
diff --git a/src/pages/index/workbench.jsx b/src/pages/index/workbench.jsx
index 52203d1..a7661a3 100644
--- a/src/pages/index/workbench.jsx
+++ b/src/pages/index/workbench.jsx
@@ -7,7 +7,7 @@
/** 首页 -- 工作台 */
import React, { ReactNode, ReactEventHandler, Component } from 'react';
import BreadcrumbView from '../../components/common/BreadcrumbView';
-import WorkbenchPage from '../../components/page/workbench'
+import WorkbenchPage from '../../components/page/index/workbench'
export default class Workbench extends Component {
constructor(props) {
--
Gitblit v1.8.0