Merge pull request '动态配置开启通知模块' (#171) from durian/forgeplus-react:pre_develop_dev into pre_develop

This commit is contained in:
jasder 2021-10-14 14:34:50 +08:00
commit 90cfac4436
3 changed files with 23 additions and 12 deletions

View File

@ -367,7 +367,6 @@ class NewHeader extends Component {
} }
let search_url = settings && settings.common && settings.common.search; let search_url = settings && settings.common && settings.common.search;
let notice_url = settings && settings.common && settings.common.notice;
return ( return (
<div className="newHeaders" id="nHeader"> <div className="newHeaders" id="nHeader">
<div className="headerContent"> <div className="headerContent">
@ -438,7 +437,7 @@ class NewHeader extends Component {
</Dropdown>:"" </Dropdown>:""
} }
{current_user && current_user.login ? { (settings && settings.common && settings.common.notice) && (current_user && current_user.login)?
<Popover <Popover
overlayClassName="notice-popover" overlayClassName="notice-popover"
placement={`bottomRight`} placement={`bottomRight`}
@ -448,9 +447,9 @@ class NewHeader extends Component {
destroyTooltipOnHide destroyTooltipOnHide
> >
<Link to={"/settings/notice"} className="message-icon"> <Link to={"/settings/notice"} className="message-icon">
<Badge count={current_user.message_unread_total}> {current_user && <Badge count={current_user.message_unread_total}>
<i className="iconfont icon-xiaoxilingdang color-grey-6 ml15 mr15"></i> <i className="iconfont icon-xiaoxilingdang color-grey-6 ml15 mr15"></i>
</Badge> </Badge>}
</Link> </Link>
</Popover> </Popover>
: "" : ""

View File

@ -43,8 +43,9 @@ const PrivateLetter = Loadable({
}); });
function Index(props){ function Index(props){
const { current_user } = props; const { current_user,mygetHelmetapi } = props;
const { pathname } = props.location; const { pathname } = props.location;
const notice_url = mygetHelmetapi && mygetHelmetapi.common && mygetHelmetapi.common.notice;
return( return(
<div className="newMain clearfix whiteBack"> <div className="newMain clearfix whiteBack">
@ -59,11 +60,11 @@ function Index(props){
<li>个人信息</li> <li>个人信息</li>
<li className={pathname.indexOf("/settings/profile")>-1 ?"active":""}><Link to={`/settings/profile`}><i className="iconfont icon-gerenziliao mr5 font-14"></i><span className="text-shodow-bold">基本资料</span></Link></li> <li className={pathname.indexOf("/settings/profile")>-1 ?"active":""}><Link to={`/settings/profile`}><i className="iconfont icon-gerenziliao mr5 font-14"></i><span className="text-shodow-bold">基本资料</span></Link></li>
</ul> </ul>
<ul className="securityUl ul-border-buttom"> {notice_url && <ul className="securityUl ul-border-buttom">
<li>消息通知</li> <li>消息通知</li>
<li className={(pathname.indexOf("/settings/notice")>-1 && pathname.indexOf("/settings/notice/config") == -1) || pathname.indexOf("/settings/notice/privateLetter")>-1 ?"active":""}><Link to={"/settings/notice"}><i className="iconfont icon-wodetongzhi"></i><span className="text-shodow-bold">我的通知</span></Link></li> <li className={(pathname.indexOf("/settings/notice")>-1 && pathname.indexOf("/settings/notice/config") == -1) || pathname.indexOf("/settings/notice/privateLetter")>-1 ?"active":""}><Link to={"/settings/notice"}><i className="iconfont icon-wodetongzhi"></i><span className="text-shodow-bold">我的通知</span></Link></li>
{/* <li className={pathname.indexOf("/settings/notice/config")>-1 ?"active":""}><Link to={'/settings/notice/config'}><i className="iconfont icon-tongzhiguanli"></i><span className="text-shodow-bold">通知管理</span></Link></li> */} {/* <li className={pathname.indexOf("/settings/notice/config")>-1 ?"active":""}><Link to={'/settings/notice/config'}><i className="iconfont icon-tongzhiguanli"></i><span className="text-shodow-bold">通知管理</span></Link></li> */}
</ul> </ul>}
<ul className="securityUl"> <ul className="securityUl">
<li>安全设置</li> <li>安全设置</li>
<li className={pathname.indexOf("/settings/SSH")>-1 ?"active":""}><Link to={`/settings/SSH`}><i className="iconfont icon-xuanzhongssh_icon mr5 font-14"></i><span className="text-shodow-bold">SSH密钥</span></Link></li> <li className={pathname.indexOf("/settings/SSH")>-1 ?"active":""}><Link to={`/settings/SSH`}><i className="iconfont icon-xuanzhongssh_icon mr5 font-14"></i><span className="text-shodow-bold">SSH密钥</span></Link></li>

View File

@ -9,10 +9,9 @@ import './Index.scss';
import '../manager/Index.scss' import '../manager/Index.scss'
function MyNotice(props) { function MyNotice(props) {
let current_user = props.current_user; let { current_user, resetUserInfo, location, mygetHelmetapi, history}= props;
let resetUserInfo = props.resetUserInfo;
//tab //tab
let popover = props.location.query && props.location.query.noticeType; let popover = location && location.query && location.query.noticeType;
let pageSize = 15; let pageSize = 15;
const [noticeType, setNoticeType] = useState(popover==="atme"?"2":"0");//tab const [noticeType, setNoticeType] = useState(popover==="atme"?"2":"0");//tab
const [selectedNum, setSelectedNum] = useState(0);//@ const [selectedNum, setSelectedNum] = useState(0);//@
@ -27,6 +26,18 @@ function MyNotice(props) {
const [currentPage, setCurrentPage] = useState(1);// const [currentPage, setCurrentPage] = useState(1);//
const [onlyUnread, setOnlyUnread] = useState(); const [onlyUnread, setOnlyUnread] = useState();
//访/settings/profile
//访/explore
useEffect(()=>{
let notice = mygetHelmetapi && mygetHelmetapi.common && mygetHelmetapi.common.notice;
let login = current_user && current_user.login;
if(!login){
history.push(`/explore`);
}else if(!notice){
history.push(`/settings/profile`);
}
},[mygetHelmetapi])
useEffect(()=>{ useEffect(()=>{
popover==="atme" ? setNoticeType("2"):setNoticeType("0"); popover==="atme" ? setNoticeType("2"):setNoticeType("0");
},[popover]) },[popover])
@ -46,7 +57,7 @@ function MyNotice(props) {
limit: pageSize, limit: pageSize,
page: currentPage, page: currentPage,
}; };
axios.get(`/users/${current_user.login}/messages.json`, { current_user && axios.get(`/users/${current_user.login}/messages.json`, {
params: params, params: params,
}).then((response) => { }).then((response) => {
if(response && response.data){ if(response && response.data){
@ -59,7 +70,7 @@ function MyNotice(props) {
} }
function readNotice(id){ function readNotice(id){
if(id){ if(id && current_user){
const params = { const params = {
type: noticeType === "0" ? "notification" : noticeType === "2" ? "atme" : "", type: noticeType === "0" ? "notification" : noticeType === "2" ? "atme" : "",
ids:id, ids:id,