forked from Gitlink/forgeplus-react
合并公告的修改
This commit is contained in:
commit
4dc1c4c814
|
@ -261,6 +261,7 @@
|
|||
"version": "0.13.9",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -277,6 +278,8 @@
|
|||
"version": "0.13.9",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||
=======
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3936,11 +3939,14 @@
|
|||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||
<<<<<<< HEAD
|
||||
},
|
||||
"core-js-pure": {
|
||||
"version": "3.16.4",
|
||||
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.4.tgz",
|
||||
"integrity": "sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA=="
|
||||
=======
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -4023,6 +4029,7 @@
|
|||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
"cross-env": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
||||
|
@ -4075,6 +4082,8 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
=======
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
"cross-spawn": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
|
||||
|
@ -16302,6 +16311,7 @@
|
|||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||
<<<<<<< HEAD
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^7.0.1",
|
||||
|
@ -16330,6 +16340,36 @@
|
|||
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
=======
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^7.0.1",
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"which-module": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||
"dev": true
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
"ansi-styles": "^3.2.0",
|
||||
"string-width": "^3.0.0",
|
||||
"strip-ansi": "^5.0.0"
|
||||
|
@ -19205,15 +19245,22 @@
|
|||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||
<<<<<<< HEAD
|
||||
"dev": true,
|
||||
"optional": true
|
||||
=======
|
||||
"dev": true
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
},
|
||||
"is-glob": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||
"dev": true,
|
||||
<<<<<<< HEAD
|
||||
"optional": true,
|
||||
=======
|
||||
>>>>>>> 01f71bca87fac88ba9ad56c16260521c47f4ca6c
|
||||
"requires": {
|
||||
"is-extglob": "^2.1.1"
|
||||
}
|
||||
|
|
|
@ -276,12 +276,14 @@ class Index extends Component {
|
|||
<div className="ProjectListIndex">
|
||||
<div className="list-left">
|
||||
<ul className="list-l-Menu">
|
||||
<li className="MenuTitle"><i className="iconfont icon-bianchengyuyan color-grey-9 font-15 mr5"></i>
|
||||
语言</li>
|
||||
<li className="MenuTitle" onClick={() => {this.getType();this.changeType(undefined, this.state.typeList);}}>
|
||||
<span><i className="iconfont icon-bianchengyuyan color-grey-9 font-15 mr5"></i>
|
||||
语言</span></li>
|
||||
<div className="list-affix">{typeList}</div>
|
||||
</ul>
|
||||
<ul className="list-l-Menu">
|
||||
<li className="MenuTitle"><i className="iconfont icon-xiangmuleibie color-grey-9 font-15 mr5"></i>项目类别</li>
|
||||
<li className="MenuTitle" onClick={() => {this.getCategory();this.changeCategory(undefined, this.state.categoryList);}}>
|
||||
<span><i className="iconfont icon-xiangmuleibie color-grey-9 font-15 mr5"></i>项目类别</span></li>
|
||||
<div className="list-affix">{categoryList}</div>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -168,7 +168,7 @@ form{
|
|||
background-color: #fff;
|
||||
.list-affix{
|
||||
min-height: 20px;
|
||||
max-height: 180px;
|
||||
max-height: 240px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
& li{
|
||||
|
@ -210,7 +210,7 @@ form{
|
|||
width: 6px;
|
||||
content: '';
|
||||
height: 33px;
|
||||
background: #4CACFF;
|
||||
background: #1484EF;
|
||||
}
|
||||
.MenuTitle{
|
||||
font-size: 16px;
|
||||
|
@ -220,6 +220,21 @@ form{
|
|||
line-height: 62px;
|
||||
border-bottom: 1px solid #E0E0E0;
|
||||
font-weight: 400;
|
||||
|
||||
span{
|
||||
display: block;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
span:hover{
|
||||
color: #1484EF;
|
||||
|
||||
.iconfont{
|
||||
color: #1484EF !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.ant-menu-inline{
|
||||
border:none;
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
import { notification } from 'antd';
|
||||
import { notification,message } from 'antd';
|
||||
import axios from 'axios';
|
||||
import cookie from 'react-cookies';
|
||||
|
||||
|
||||
let actionUrl = '';
|
||||
if (window.location.href.indexOf(':3007') > -1) {
|
||||
actionUrl="https://taskapi.osredm.com"; //测试环境
|
||||
// actionUrl = 'http://117.50.100.12:8008';
|
||||
// actionUrl='http://192.168.31.74:8081'; //万佳后台
|
||||
} else if (window.location.href.indexOf('117.50.100.12') > -1 ) {
|
||||
actionUrl = "http://117.50.100.12:8008"; //测试环境
|
||||
axios.defaults.withCredentials = true;
|
||||
} else if (window.location.href.indexOf('noticeweb.osredm') > -1) {
|
||||
actionUrl = "https://taskapi.osredm.com"; //测试环境
|
||||
axios.defaults.withCredentials = true;
|
||||
} else if (window.location.href.indexOf('forge.osredm') > -1) {
|
||||
actionUrl = "https://info.osredm.com"; //生产环境
|
||||
axios.defaults.withCredentials = true;
|
||||
if (window.location.href.indexOf('localhost') > -1) {
|
||||
actionUrl='https://taskapi.osredm.com';
|
||||
// actionUrl='http://192.168.31.47:8081';
|
||||
}else if(window.location.href.indexOf('192.168.31.48') > -1){
|
||||
actionUrl='https://taskapi.osredm.com';
|
||||
}else if(window.location.href.indexOf('noticeweb.osredm') > -1){
|
||||
actionUrl="https://taskapi.osredm.com";
|
||||
}else if(window.location.href.indexOf('forge.osredm.com')>-1){
|
||||
actionUrl="https://info.osredm.com";
|
||||
}
|
||||
export const httpUrl = actionUrl;
|
||||
|
||||
|
@ -67,6 +63,13 @@ service.interceptors.response.use(
|
|||
});
|
||||
return Promise.reject('error');
|
||||
}
|
||||
if (res.status === 403) {
|
||||
notification.open({
|
||||
message: "提示",
|
||||
description: res.data.message || '无权限',
|
||||
});
|
||||
return Promise.reject('error');
|
||||
}
|
||||
if (res.status === 40001) {
|
||||
notification.open({
|
||||
message: "提示",
|
||||
|
@ -85,10 +88,30 @@ service.interceptors.response.use(
|
|||
},
|
||||
error => {
|
||||
console.log(error);
|
||||
notification.open({
|
||||
message: "提示",
|
||||
description: error.message,
|
||||
});
|
||||
let res = error.response||{};
|
||||
if (res.status === 400) {
|
||||
notification.open({
|
||||
message: "提示",
|
||||
description: res.data.message || '操作失败',
|
||||
});
|
||||
return Promise.reject('error');
|
||||
}
|
||||
if (res.status === 401) {
|
||||
notification.open({
|
||||
message: "提示",
|
||||
description: res.data.message || '登录信息已过期',
|
||||
});
|
||||
return Promise.reject('error');
|
||||
}
|
||||
if (res.status === 403) {
|
||||
notification.open({
|
||||
message: "提示",
|
||||
description: res.data.message || '无权限!',
|
||||
});
|
||||
window.location.href="/403";
|
||||
return Promise.reject('error');
|
||||
}
|
||||
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
|
|
|
@ -37,3 +37,13 @@ export async function getNoticeDetail(id) {
|
|||
}
|
||||
}
|
||||
|
||||
//新增加密公告申请人
|
||||
export function addReader(data) {
|
||||
return fetch({
|
||||
url: '/api/request_contact_reader_info/',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 168 KiB |
|
@ -1,77 +1,163 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { Icon, } from 'antd';
|
||||
import React, { useEffect, useState, useCallback } from 'react';
|
||||
import { Button, Icon, Form, Modal, Input } from 'antd';
|
||||
import { Link } from "react-router-dom";
|
||||
import { getNoticeDetail } from '../api';
|
||||
import { getNoticeDetail, addReader } from '../api';
|
||||
import { noticeType } from '../static';
|
||||
import './index.scss';
|
||||
|
||||
const noticeTypeArr = [];
|
||||
for (const item of noticeType) {
|
||||
noticeTypeArr[item.code]=item.name;
|
||||
noticeTypeArr[item.code] = item.name;
|
||||
}
|
||||
|
||||
export default ({ match, history, showNotification }) => {
|
||||
export default Form.create()(({ match, history, showNotification, form }) => {
|
||||
const { getFieldDecorator, validateFields, setFieldsValue } = form;
|
||||
|
||||
const [reload, setReload] = useState(0);
|
||||
const [noticeData, setNoticeData] = useState({});
|
||||
const [visible, setVisible] = useState(false);
|
||||
|
||||
const [readerName,setReaderName]=useState('');
|
||||
|
||||
const id = match.params.noticeId;
|
||||
|
||||
useEffect(() => {
|
||||
id && getNoticeDetail(id).then(data => {
|
||||
if(data){
|
||||
data.publishDate=data.publishDate.split(' ')[0];
|
||||
data.createdAt=data.createdAt.split(' ')[0];
|
||||
data.closingDate=data.closingDate.split(' ')[0];
|
||||
if (data) {
|
||||
data.publishDate = data.publishDate.split(' ')[0];
|
||||
data.createdAt = data.createdAt.split(' ')[0];
|
||||
data.closingDate = data.closingDate.split(' ')[0];
|
||||
}
|
||||
setNoticeData(data || {});
|
||||
})
|
||||
}, [id]);
|
||||
}, [id, reload]);
|
||||
|
||||
// form表单公共处理函数
|
||||
const helper = useCallback(
|
||||
(label, name, rules, widget) => (
|
||||
<Form.Item label={label}>
|
||||
{getFieldDecorator(name, { rules, validateFirst: true ,getValueFromEvent: e=>e.target.value.replace(/(^\s*)|(\s*$)/g, "") })(widget)}
|
||||
</Form.Item>
|
||||
),
|
||||
[]
|
||||
);
|
||||
|
||||
function pushInfo() {
|
||||
validateFields((err, values) => {
|
||||
if (!err) {
|
||||
addReader({
|
||||
...values,
|
||||
annId: noticeData.id,
|
||||
}).then(res => {
|
||||
if (res.message === "success") {
|
||||
setVisible(false);
|
||||
setReload(Math.random());
|
||||
} else {
|
||||
res && Modal.error({ content: res.message });
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
|
||||
<div className="centerbox notice-detail">
|
||||
<div className="head-navigation">
|
||||
<Link to="/">首页<span className="greater"> > </span></Link>
|
||||
<Link to="/notice">公告<span className="greater"> > </span></Link>
|
||||
<span>公告详情</span>
|
||||
</div>
|
||||
<div className="center-content">
|
||||
{/* <div className="notice-center-content"> */}
|
||||
<div className="notice-title">
|
||||
{noticeData.title}
|
||||
</div>
|
||||
<div className="notice-detail-content">
|
||||
<div className="center-author">
|
||||
<p key={0}>公告类型:{noticeTypeArr[noticeData.type]}</p>
|
||||
{noticeData.publisher && <p key={1}>发布单位:{noticeData.publisher}</p>}
|
||||
<p key={2}>发布时间:{noticeData.publishDate || noticeData.createdAt}</p>
|
||||
<p key={3}>截止时间:{noticeData.closingDate}</p>
|
||||
<p key={4}>浏览:{noticeData.visits || 0}</p>
|
||||
</div>
|
||||
|
||||
<div className="content-text">
|
||||
<div className="notice-content-title"><Icon type="caret-right" />公告主要内容</div>
|
||||
<div className="editor-w-text" dangerouslySetInnerHTML={{ __html: noticeData.text }}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{
|
||||
noticeData.fileDownloadPath &&
|
||||
<React.Fragment>
|
||||
<div className="notice-content-title"><Icon type="caret-right" />公告附件</div>
|
||||
<p className="notice-content-download" >
|
||||
<span onClick={() => { window.open( noticeData.fileDownloadPath) }}>
|
||||
<i className="iconfont icon-fujian color-green font-14 mr3"></i>{noticeData.fileName}
|
||||
</span>
|
||||
<span className="link" onClick={() => { window.open( noticeData.fileDownloadPath) }}>下载</span>
|
||||
</p>
|
||||
</React.Fragment>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="centerbox notice-detail">
|
||||
<div className="head-navigation">
|
||||
<Link to="/">首页<span className="greater"> > </span></Link>
|
||||
<Link to="/notice">公告<span className="greater"> > </span></Link>
|
||||
<span>公告详情</span>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
<div className="center-content">
|
||||
{/* <div className="notice-center-content"> */}
|
||||
<div className="notice-title">
|
||||
{noticeData.title}
|
||||
</div>
|
||||
<div className="notice-detail-content">
|
||||
<div className="center-author">
|
||||
<p key={0}>公告类型:{noticeTypeArr[noticeData.type]}</p>
|
||||
{noticeData.publisher && <p key={1}>发布单位:{noticeData.publisher}</p>}
|
||||
<p key={2}>发布时间:{noticeData.publishDate || noticeData.createdAt}</p>
|
||||
<p key={3}>截止时间:{noticeData.closingDate}</p>
|
||||
<p key={4}>浏览:{noticeData.visits || 0}</p>
|
||||
</div>
|
||||
|
||||
<div className="content-text">
|
||||
<div className="notice-content-title"><Icon type="caret-right" />公告主要内容</div>
|
||||
<div className="editor-w-text" dangerouslySetInnerHTML={{ __html: noticeData.text }}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{
|
||||
noticeData.contactInfo ? <React.Fragment>
|
||||
<div className="notice-content-title"><Icon type="caret-right" />联系方式</div>
|
||||
<div className="content-secret" dangerouslySetInnerHTML={{ __html: noticeData.contactInfo && noticeData.contactInfo.replace(/\n/g, '</br>') }}>
|
||||
</div>
|
||||
{
|
||||
noticeData.blockedView && <Button type="primary" onClick={() => { setVisible(true) }}>申请查看加密内容</Button>
|
||||
}
|
||||
</React.Fragment> : ''
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
noticeData.fileDownloadPath &&
|
||||
<React.Fragment>
|
||||
<div className="notice-content-title"><Icon type="caret-right" />公告附件</div>
|
||||
<p className="notice-content-download" >
|
||||
<span onClick={() => { window.open(noticeData.fileDownloadPath) }}>
|
||||
<i className="iconfont icon-fujian color-green font-14 mr3"></i>{noticeData.fileName}
|
||||
</span>
|
||||
<span className="link" onClick={() => { window.open(noticeData.fileDownloadPath) }}>下载</span>
|
||||
</p>
|
||||
</React.Fragment>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Modal
|
||||
title="提交信息"
|
||||
visible={visible}
|
||||
onOk={pushInfo}
|
||||
onCancel={() => { setVisible(false) }}
|
||||
className="form-edit-modal"
|
||||
>
|
||||
|
||||
{
|
||||
helper('用户姓名',
|
||||
'readerName',
|
||||
[{ required: true, message: "请输入用户姓名" }, { max: 50, message: '不能超过50字符' }],
|
||||
<Input
|
||||
placeholder="请输入用户姓名"
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
{
|
||||
helper('公司名称',
|
||||
'companyName',
|
||||
[{ required: true, message: "请输入公司名称" }, { max: 100, message: '不能超过100字符' }],
|
||||
<Input
|
||||
placeholder="请输入公司名称"
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
{
|
||||
helper('联系方式',
|
||||
'contactInfo',
|
||||
[{ required: true, message: "请输入联系方式" }, { max: 100, message: '不能超过100字符' }],
|
||||
<Input
|
||||
placeholder="请输入联系方式"
|
||||
/>
|
||||
)
|
||||
}
|
||||
</Modal>
|
||||
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
|
@ -56,6 +56,10 @@
|
|||
min-height: 30vh;
|
||||
}
|
||||
|
||||
.content-secret{
|
||||
min-height: 2em;
|
||||
}
|
||||
|
||||
.notice-content-title {
|
||||
margin: 0.5rem 0;
|
||||
font-size: 1rem;
|
||||
|
@ -66,6 +70,7 @@
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 2rem !important;
|
||||
padding: 0 1rem;
|
||||
background: #f9f9f9;
|
||||
span:hover{
|
||||
|
@ -73,3 +78,25 @@
|
|||
color: #1890ff;
|
||||
}
|
||||
}
|
||||
|
||||
.form-edit-modal {
|
||||
.ant-form-item{
|
||||
display: flex;
|
||||
}
|
||||
.ant-form-item-label{
|
||||
min-width: 5rem;
|
||||
}
|
||||
.ant-form-item-control-wrapper{
|
||||
width: 75%;
|
||||
display: inline-block;
|
||||
}
|
||||
.ant-input-number{
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.ant-modal-footer{
|
||||
border-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,21 +1,14 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { Menu, Pagination, Icon, Input } from 'antd';
|
||||
import { Link } from "react-router-dom";
|
||||
import { Pagination, Icon, Input } from 'antd';
|
||||
import ItemList from '../components/itemList';
|
||||
import Nodata from '../../../forge/Nodata';
|
||||
import Loading from "../../../Loading";
|
||||
// import { AbandonSvg, AllSvg, ChangeSvg, CallSvg, CheckSvg } from '../svg';
|
||||
import noticePng from '../image/banner.png';
|
||||
import { getNoticeList } from '../api';
|
||||
|
||||
import './index.scss';
|
||||
const Search = Input.Search;
|
||||
// const { SubMenu } = Menu;
|
||||
|
||||
// const defaultColor = '#848684';
|
||||
// const activeColor = '#ffffff';
|
||||
// const svgColor = '#1890ff';
|
||||
|
||||
export default (props) => {
|
||||
|
||||
|
@ -101,6 +94,7 @@ export default (props) => {
|
|||
function sortNav() {
|
||||
return <div className="notice-sort-nav">
|
||||
<Search
|
||||
size="large"
|
||||
maxLength={20}
|
||||
style={{ width: "56%" }}
|
||||
placeholder="输入标题关键字,不能超过20字符"
|
||||
|
@ -114,27 +108,6 @@ export default (props) => {
|
|||
</div>
|
||||
}
|
||||
|
||||
// function onOpenChange(e) {
|
||||
// if(e.length===2){
|
||||
// if(e[1]==='sub1'){
|
||||
// setTab('0');
|
||||
// }else{
|
||||
// setTab('7');
|
||||
// }
|
||||
// }else{
|
||||
// if(e[0]==='sub1'){
|
||||
// setTab('0');
|
||||
// } else if (e[0] == 'sub2') {
|
||||
// setTab('7');
|
||||
// } else {
|
||||
// setTab('8');
|
||||
// }
|
||||
// }
|
||||
// setCurPage(1);
|
||||
// setTitle('');
|
||||
// setOrderBy('publishDateDesc');
|
||||
// }
|
||||
|
||||
function handleClick(e) {
|
||||
setTab(e.key);
|
||||
setCurPage(1);
|
||||
|
@ -142,6 +115,15 @@ export default (props) => {
|
|||
setOrderBy('publishDateDesc');
|
||||
}
|
||||
|
||||
function click(e){
|
||||
console.log("aa");
|
||||
console.log(e);
|
||||
setTab(e);
|
||||
setCurPage(1);
|
||||
setTitle('');
|
||||
setOrderBy('publishDateDesc');
|
||||
}
|
||||
|
||||
function cont(param, titleStr, key, svgStr) {
|
||||
return <React.Fragment>
|
||||
<div className="item-head-title">
|
||||
|
@ -252,33 +234,24 @@ export default (props) => {
|
|||
<React.Fragment>
|
||||
<img alt="图片加载失败" src={noticePng} width="100%"></img>
|
||||
<div className="centerbox notice-list clearfix">
|
||||
<div className="head-navigation">
|
||||
{/* <div className="head-navigation">
|
||||
<Link to="/">首页<span className="greater"> > </span></Link>
|
||||
<span>公告</span>
|
||||
</div>
|
||||
</div> */}
|
||||
<div className="body">
|
||||
<div className="navigationMenu">
|
||||
<Menu
|
||||
onClick={handleClick}
|
||||
// style={{width: 216 }}
|
||||
mode="inline"
|
||||
// onOpenChange={onOpenChange}
|
||||
// defaultSelectedKeys={['4']}
|
||||
// defaultOpenKeys={['sub1']}
|
||||
>
|
||||
<Menu.Item key="0" id={tab === '0' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-xiangmugonggao"></i>项目公告</span></Menu.Item>
|
||||
{/* <SubMenu id={tab === '0' ? "menu-selected" : "menu"} key="sub1" title={<span className="itemClass"><i className="iconfont icon-xiangmugonggao"></i><span className="subMenuspan">项目公告</span></span>} > */}
|
||||
<Menu.Item key="4" id={tab === '4' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-zhaobiaogonggao" style={{ marginLeft: '1.2em' }}></i>招标公告</span></Menu.Item>
|
||||
<Menu.Item key="1" id={tab === '1' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-gengzhenggonggao" style={{ marginLeft: '1.2em' }}></i>更正公告</span></Menu.Item>
|
||||
<Menu.Item key="2" id={tab === '2' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-zhongbiaogonggao" style={{ marginLeft: '1.2em' }}></i>中标公告</span></Menu.Item>
|
||||
<Menu.Item key="3" id={tab === '3' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-feibiaogonggao" style={{ marginLeft: '1.2em' }}></i>废标公告</span></Menu.Item>
|
||||
{/* </SubMenu> */}
|
||||
<Menu.Item key="7" id={tab === '7' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-chengguo"></i>成果转化</span></Menu.Item>
|
||||
{/* <SubMenu id={tab === '7' ? "menu-selected" : "menu"} key="sub2" title={<span className="itemClass"><i className="iconfont icon-chengguo"></i><span className="subMenuspan">成果转化</span></span>}> */}
|
||||
<Menu.Item key="5" id={tab === '5' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-jishuzichan" style={{ marginLeft: '1.2em' }}></i>技术资产</span></Menu.Item>
|
||||
<Menu.Item key="6" id={tab === '6' ? "menu-selected" : "menu"}><span className="itemClass"><i className="iconfont icon-chengjiaogonggao" style={{ marginLeft: '1.2em' }}></i>成交公告</span></Menu.Item>
|
||||
{/* </SubMenu> */}
|
||||
</Menu>
|
||||
<ul className="menu-ul">
|
||||
<li className="MenuTitle" onClick={()=>click('0')}><span><i className="iconfont icon-xiangmugonggao"></i>项目公告</span></li>
|
||||
<li className={tab === '4' ? "active" : ""} onClick={()=>click('4')}><span>招标公告</span></li>
|
||||
<li className={tab === '1' ? "active" : ""} onClick={()=>click('1')}><span>更正公告</span></li>
|
||||
<li className={tab === '2' ? "active" : ""} onClick={()=>click('2')}><span>中标公告</span></li>
|
||||
<li className={tab === '3' ? "active" : ""} onClick={()=>click('3')}><span>废标公告</span></li>
|
||||
</ul>
|
||||
<ul className="menu-ul">
|
||||
<li className="MenuTitle" onClick={()=>click('7')}><span><i className="iconfont icon-chengguo"></i>成果转化</span></li>
|
||||
<li className={tab === '5' ? "active" : ""} onClick={()=>click('5')}><span>技术资产</span></li>
|
||||
<li className={tab === '6' ? "active" : ""} onClick={()=>click('6')}><span>成交公告</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="notice-center-content">
|
||||
{sortNav()}
|
||||
|
|
|
@ -39,8 +39,11 @@
|
|||
.notice-sort-nav{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: .625rem 1rem .5rem;
|
||||
background: #f5f5f5;
|
||||
padding: .3rem 2rem 1.5rem;
|
||||
margin: 0px -1.25rem;
|
||||
// border: 1px solid;
|
||||
border-bottom: 1px solid #E0E0E0;
|
||||
// background: #f5f5f5;
|
||||
}
|
||||
|
||||
.notice-center-content{
|
||||
|
@ -68,7 +71,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
.ant-input-group-addon{
|
||||
border: 0 !important;
|
||||
}
|
||||
|
@ -100,10 +102,11 @@
|
|||
.body{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: -20px;
|
||||
|
||||
.navigationMenu{
|
||||
margin-right: 24px;
|
||||
width: 15.4em;
|
||||
margin-right: 20px;
|
||||
width: 20.8em;
|
||||
caret-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
@ -112,50 +115,74 @@
|
|||
}
|
||||
}
|
||||
|
||||
#menu-selected{
|
||||
background-color: #1890FF;
|
||||
color: #fff;
|
||||
.subMenuspan{
|
||||
color: #fff;
|
||||
.menu-ul{
|
||||
background-color: white;
|
||||
margin-bottom: 12px;
|
||||
border-radius:2px;
|
||||
|
||||
.MenuTitle{
|
||||
border-bottom: 1px solid #E0E0E0;
|
||||
|
||||
span{
|
||||
display: block;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
border-bottom: 0px solid;
|
||||
i{
|
||||
color: #afaaae;
|
||||
}
|
||||
}
|
||||
|
||||
span:hover{
|
||||
color: #1484EF;
|
||||
.iconfont{
|
||||
color: #1484EF !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
li{
|
||||
padding:0px 0px 0px 20px;
|
||||
position: relative;
|
||||
height: 62px;
|
||||
line-height: 62px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
span{
|
||||
display: block;
|
||||
height: 62px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
&:last-child > span{
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
li:hover{
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.active{
|
||||
background-color: #fafafa;
|
||||
& ::before{
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 15px;
|
||||
width: 6px;
|
||||
content: '';
|
||||
height: 30px;
|
||||
background: #1484EF;
|
||||
}
|
||||
}
|
||||
|
||||
& i{
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
// #menu-selected>div>.itemClass>.iconfont{
|
||||
// color: #fff;
|
||||
// }
|
||||
|
||||
#menu-selected>.itemClass>.iconfont{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#menu-selected .ant-menu-submenu-arrow::after,#menu-selected .ant-menu-submenu-arrow::before,#menu-selected .ant-menu-submenu-arrow:after,#menu-selected .ant-menu-submenu-arrow:before{
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{
|
||||
background-color: #fff;
|
||||
color: #595959;
|
||||
}
|
||||
|
||||
.ant-menu-item-active{
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.ant-menu-submenu-selected{
|
||||
color: #595959;
|
||||
}
|
||||
|
||||
.itemClass{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 18px;
|
||||
.iconfont{
|
||||
margin-right:.75em;
|
||||
color: #1890FF;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-menu-vertical .ant-menu-item, .ant-menu-vertical-left .ant-menu-item, .ant-menu-vertical-right .ant-menu-item, .ant-menu-inline .ant-menu-item, .ant-menu-vertical .ant-menu-submenu-title, .ant-menu-vertical-left .ant-menu-submenu-title, .ant-menu-vertical-right .ant-menu-submenu-title, .ant-menu-inline .ant-menu-submenu-title{
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
.ant-input-group-addon .ant-btn-lg {
|
||||
height: 40px;
|
||||
}
|
Loading…
Reference in New Issue