导航栏 #588

Merged
Eeeros merged 5 commits from Eeeros/forgeplus-react:dev_wenba into dev_wenba 2023-10-10 10:37:25 +08:00
5 changed files with 45 additions and 8 deletions

View File

@ -3,10 +3,10 @@
<head>
<meta charset="utf-8">
<meta name="google" content="notranslate" />
<meta name=”Keywords” Content="trustie,trustieforge,forge,确实让创建更美好,协同开发平台">
<meta name=”Keywords” Content="TrustieOpenSourceProject">
<meta name=”Keywords” Content="issue,bug,tracker,软件工程,课程实践">
<meta name=”Description” Content="持续构建协同、共享、可信的软件创建生态开源创作与软件生产相结合,支持大规模群体开展软件协同创新活动">
<meta name="Keywords" Content="trustie,trustieforge,forge,确实让创建更美好,协同开发平台">
<meta name="Keywords" Content="TrustieOpenSourceProject">
<meta name="Keywords" Content="issue,bug,tracker,软件工程,课程实践">
<meta name="Description" Content="持续构建协同、共享、可信的软件创建生态开源创作与软件生产相结合,支持大规模群体开展软件协同创新活动">
<meta name="theme-color" content="#000000">
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel=" stylesheet" type="text/css" href="%PUBLIC_URL%css/iconfont.css">

View File

@ -219,3 +219,15 @@ export function publicSearchs(Placeholder,onSearch,onInputs,onChanges,loadings)
allowClear={true}
></Search>)
}
// 手动添加/修改mate标签
export function addMeta(name, content){
if(document.querySelector(`meta[name='${name}']`)){
document.querySelector(`meta[name='${name}']`).content=content;
}else{
const meta = document.createElement('meta');
meta.content = content;
meta.name = name;
document.getElementsByTagName('head')[0].appendChild(meta);
}
};

View File

@ -6,7 +6,7 @@ export {
getUploadLogoActionUrl as getUploadLogoActionUrl,
getImageUrl as getImageUrl, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl
, getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth
, getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl
, getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl, addMeta as addMeta
} from './UrlTool';
export { setmiyah as setmiyah } from './Component';

View File

@ -1,6 +1,6 @@
import React, { useEffect, useState } from "react";
import axios from "axios";
import { getImageUrl } from "educoder";
import { getImageUrl, addMeta } from "educoder";
import { Breadcrumb, Spin, Empty } from "antd";
import { Link } from "react-router-dom";
import {
@ -43,8 +43,15 @@ function memo_show(props) {
useEffect(() => {
init();
related_memos();
return componentWillUnmount
}, [memo_id]);
function componentWillUnmount() {
// titlehead
document.title = '论坛交流'
addMeta('Keywords', "trustie,trustieforge,forge,确实让创建更美好,协同开发平台")
}
async function init() {
setSpinType(true);
let url = `/memos/${memo_id}.json`;
@ -69,6 +76,9 @@ function memo_show(props) {
setRecentmemos(result.data.recent_memos);
setIsBanned(result.data.is_banned);
getMemoUser(result.data.author_info);
// titlehead
document.title = `${result.data.memo.subject}/${result.data.memo.forum_tag && result.data.memo.forum_tag.title}`
addMeta('Keywords', `${result.data.memo.subject}/${result.data.memo.forum_tag && result.data.memo.forum_tag.title}`)
}
setSpinType(false);
})

View File

@ -48,6 +48,7 @@ class NewHeader extends Component {
mygetHelmetapi2: null,
goshowqqgtounp: false,
visiblemyss: false,
navbar: []
}
}
componentDidMount() {
@ -536,6 +537,11 @@ class NewHeader extends Component {
this.setState({
mygetHelmetapi2: chromesettingArray
});
if (chromesettingArray.navbar && chromesettingArray.navbar.length) {
this.setState({ navbar: chromesettingArray.navbar.sort((a, b) => {return a.index - b.index}) }, () => {
console.log('');
});
}
if (chromesettingArray.tab_logo_url) {
this.gettablogourldata(chromesettingresponseArray);
} else {
@ -553,6 +559,11 @@ class NewHeader extends Component {
this.setState({ mygetHelmetapi2: response.data.setting }, () => {
console.log('');
});
if (response.data.setting.navbar && response.data.setting.navbar.length) {
this.setState({ navbar: response.data.setting.navbar.sort((a, b) => {return a.index - b.index}) }, () => {
console.log('');
});
}
// localStorage.setItem('chromesetting', JSON.stringify(response.data.setting));
// localStorage.setItem('chromesettingresponse', JSON.stringify(response));
try {
@ -633,6 +644,7 @@ class NewHeader extends Component {
isRender,
mygetHelmetapi2,
goshowqqgtounp,
navbar
} = this.state;
const filterPersonal = mygetHelmetapi2 && mygetHelmetapi2.personal && mygetHelmetapi2.personal.filter(i=>i.key === "userinfo");
@ -668,10 +680,10 @@ class NewHeader extends Component {
</a>
<div className="head-nav pr" id={"head-navpre1"}>
{
mygetHelmetapi2 && mygetHelmetapi2.navbar && mygetHelmetapi2.navbar.length > 0 ?
navbar && navbar.length > 0 ?
<ul id="header-nav">
{
mygetHelmetapi2.navbar && mygetHelmetapi2.navbar.map((item, key) => {
navbar && navbar.map((item, key) => {
var new_link = item.link;
var user_login = this.props.user && this.props.user.login;
var is_hidden = item.hidden
@ -689,6 +701,9 @@ class NewHeader extends Component {
if (user_login && (new_link && new_link.indexOf("homes") > -1)) {
new_link = new_link.replace(/homes/g, "users/" + user_login + "/user_activities")
}
if (item.name === '特色专区') {
is_hidden = true
}
return (
<li key={key} onClick={() => this.headtypesonClick(item.link, true)} className={`${this.matchpaths(item.link) === true ? 'pr active' : 'pr'}`} style={!is_hidden ? { display: 'flex' } : { display: 'none' }}>
<a href={new_link}>{item.name}</a>