diff --git a/package-lock.json b/package-lock.json index 84bb726c..9722a84e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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" } diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index ade074a0..25419402 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -276,12 +276,14 @@ class Index extends Component {
diff --git a/src/forge/css/index.scss b/src/forge/css/index.scss index 913312ff..e91504ac 100644 --- a/src/forge/css/index.scss +++ b/src/forge/css/index.scss @@ -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; diff --git a/src/military/fetch.js b/src/military/fetch.js index 92fc25a2..d967df4b 100644 --- a/src/military/fetch.js +++ b/src/military/fetch.js @@ -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); } ); diff --git a/src/military/notice/api.js b/src/military/notice/api.js index 3bc02b78..1f80ba34 100644 --- a/src/military/notice/api.js +++ b/src/military/notice/api.js @@ -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 + }); +} + + diff --git a/src/military/notice/image/banner.png b/src/military/notice/image/banner.png index 3f969834..ef365f97 100644 Binary files a/src/military/notice/image/banner.png and b/src/military/notice/image/banner.png differ diff --git a/src/military/notice/noticeDetail/index.jsx b/src/military/notice/noticeDetail/index.jsx index 21f4c638..3843ded8 100644 --- a/src/military/notice/noticeDetail/index.jsx +++ b/src/military/notice/noticeDetail/index.jsx @@ -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) => ( + + {getFieldDecorator(name, { rules, validateFirst: true ,getValueFromEvent: e=>e.target.value.replace(/(^\s*)|(\s*$)/g, "") })(widget)} + + ), + [] + ); + + 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 ( - - -
-
- 首页 >  - 公告 >  - 公告详情 -
-
- {/*
*/} -
- {noticeData.title} -
-
-
-

公告类型:{noticeTypeArr[noticeData.type]}

- {noticeData.publisher &&

发布单位:{noticeData.publisher}

} -

发布时间:{noticeData.publishDate || noticeData.createdAt}

-

截止时间:{noticeData.closingDate}

-

浏览:{noticeData.visits || 0}

-
- -
-
公告主要内容
-
-
-
- - { - noticeData.fileDownloadPath && - -
公告附件
-

- { window.open( noticeData.fileDownloadPath) }}> - {noticeData.fileName} - - { window.open( noticeData.fileDownloadPath) }}>下载 -

-
- } - -
-
- +
+
+ 首页 >  + 公告 >  + 公告详情
- +
+ {/*
*/} +
+ {noticeData.title} +
+
+
+

公告类型:{noticeTypeArr[noticeData.type]}

+ {noticeData.publisher &&

发布单位:{noticeData.publisher}

} +

发布时间:{noticeData.publishDate || noticeData.createdAt}

+

截止时间:{noticeData.closingDate}

+

浏览:{noticeData.visits || 0}

+
+ +
+
公告主要内容
+
+
+
+ + { + noticeData.contactInfo ? +
联系方式
+
') }}> +
+ { + noticeData.blockedView && + } +
: '' + } + + + { + noticeData.fileDownloadPath && + +
公告附件
+

+ { window.open(noticeData.fileDownloadPath) }}> + {noticeData.fileName} + + { window.open(noticeData.fileDownloadPath) }}>下载 +

+
+ } + + +
+
+ + { setVisible(false) }} + className="form-edit-modal" + > + + { + helper('用户姓名', + 'readerName', + [{ required: true, message: "请输入用户姓名" }, { max: 50, message: '不能超过50字符' }], + + ) + } + + { + helper('公司名称', + 'companyName', + [{ required: true, message: "请输入公司名称" }, { max: 100, message: '不能超过100字符' }], + + ) + } + + { + helper('联系方式', + 'contactInfo', + [{ required: true, message: "请输入联系方式" }, { max: 100, message: '不能超过100字符' }], + + ) + } + + +
) } +) diff --git a/src/military/notice/noticeDetail/index.scss b/src/military/notice/noticeDetail/index.scss index 073503a1..c43c4558 100644 --- a/src/military/notice/noticeDetail/index.scss +++ b/src/military/notice/noticeDetail/index.scss @@ -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; + } +} + diff --git a/src/military/notice/noticeList/index.jsx b/src/military/notice/noticeList/index.jsx index 19dea876..344dc1d0 100644 --- a/src/military/notice/noticeList/index.jsx +++ b/src/military/notice/noticeList/index.jsx @@ -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
{
} - // 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
@@ -252,33 +234,24 @@ export default (props) => { 图片加载失败
-
+ {/*
首页 >  公告 -
+
*/}
- - 项目公告 - {/* 项目公告} > */} - 招标公告 - 更正公告 - 中标公告 - 废标公告 - {/* */} - 成果转化 - {/* 成果转化}> */} - 技术资产 - 成交公告 - {/* */} - +
    +
  • click('0')}>项目公告
  • +
  • click('4')}>招标公告
  • +
  • click('1')}>更正公告
  • +
  • click('2')}>中标公告
  • +
  • click('3')}>废标公告
  • +
+
    +
  • click('7')}>成果转化
  • +
  • click('5')}>技术资产
  • +
  • click('6')}>成交公告
  • +
{sortNav()} diff --git a/src/military/notice/noticeList/index.scss b/src/military/notice/noticeList/index.scss index a0a02574..d4b58f5f 100644 --- a/src/military/notice/noticeList/index.scss +++ b/src/military/notice/noticeList/index.scss @@ -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; } \ No newline at end of file