diff --git a/public/index.html b/public/index.html index 2082ca5d2..ee24f5978 100755 --- a/public/index.html +++ b/public/index.html @@ -3,10 +3,10 @@
- - - - + + + + diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 9704e713d..0689f4e81 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -219,3 +219,15 @@ export function publicSearchs(Placeholder,onSearch,onInputs,onChanges,loadings) allowClear={true} >) } + +// 手动添加/修改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); + } +}; diff --git a/src/common/educoder.js b/src/common/educoder.js index 83d2a40c8..67e427004 100644 --- a/src/common/educoder.js +++ b/src/common/educoder.js @@ -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'; diff --git a/src/forums/ForumsDetail.jsx b/src/forums/ForumsDetail.jsx index 41ae15638..07c693e8a 100644 --- a/src/forums/ForumsDetail.jsx +++ b/src/forums/ForumsDetail.jsx @@ -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() { + // 离开页面恢复原来title与head + 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); + // 帖子详情页动态修改title与head + 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); }) diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index e7eb9df40..b01beda6c 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -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 {