From 346196a5d0cc8103f6527e5091bd8e10b66f5604 Mon Sep 17 00:00:00 2001 From: Kurisu Date: Fri, 26 May 2023 10:46:39 +0800 Subject: [PATCH] 新增更新弹窗 --- src/components/GlobalFooter/index.tsx | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- src/global.tsx | 1 - src/locales/en-US.ts | 15 ++++++++++----- src/locales/pt-BR.ts | 15 ++++++++++----- src/locales/zh-CN.ts | 14 +++++++++----- src/locales/zh-TW.ts | 14 +++++++++----- src/pages/document.ejs | 36 +++++++++++++++++------------------- 7 files changed, 113 insertions(+), 48 deletions(-) diff --git a/src/components/GlobalFooter/index.tsx b/src/components/GlobalFooter/index.tsx index e4e8026..77a5e7f 100644 --- a/src/components/GlobalFooter/index.tsx +++ b/src/components/GlobalFooter/index.tsx @@ -1,8 +1,9 @@ -import React from 'react'; -import { CopyrightOutlined } from '@ant-design/icons'; -import { Layout } from 'antd'; -import classNames from 'classnames'; -import styles from './index.less'; +import React, { useCallback, useEffect, useRef } from "react"; +import { CopyrightOutlined } from "@ant-design/icons"; +import { Button, Layout, Space, notification } from "antd"; +import classNames from "classnames"; +import styles from "./index.less"; +import { useIntl } from "umi"; export interface IGlobalFooterProps { links?: Array<{ @@ -17,25 +18,74 @@ const { Footer } = Layout; const COPYRIGHT = `${new Date().getFullYear()} 重庆霏微科技有限公司 渝ICP备17016156号-3`; const GlobalFooter = ({ links }: IGlobalFooterProps) => { + const notifiShowRef = useRef(false); + + const intl = useIntl(); + + useEffect(() => { + document.getElementById("fw_updater")?.addEventListener("click", showNotification); + return () => { + document.getElementById("fw_updater")?.removeEventListener("click", showNotification); + }; + }, []); + + const showNotification = useCallback(() => { + if (notifiShowRef?.current) { + return; + } + const key = `open${Date.now()}`; + const btn = ( + + + + + ); + notification.open({ + message: intl.formatMessage({ id: "app.update.tip.title" }), + description: intl.formatMessage({ id: "app.update.tip.message" }), + btn, + placement: "bottomRight", + key, + duration: 0, + onClose: () => { + notifiShowRef.current = false; + }, + }); + notifiShowRef.current = true; + }, []); + const clsString = classNames(styles.globalFooter); return (
{links && (
- {links.map(link => ( + {links.map((link) => ( {link.title} ))}
)} -
Copyright {COPYRIGHT}
+
+ Copyright {COPYRIGHT} +
); diff --git a/src/global.tsx b/src/global.tsx index b053e7e..9c13024 100644 --- a/src/global.tsx +++ b/src/global.tsx @@ -82,7 +82,6 @@ if (pwa) { } } - //@ts-ignore if (!window.Number.prototype._toFixed) { window.Number.prototype._toFixed = window.Number.prototype.toFixed; diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 4ff9776..c57ff4c 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -6,11 +6,16 @@ import settingDrawer from './en-US/settingDrawer'; import settings from './en-US/settings'; export default { - 'navBar.lang': 'Languages', - 'layout.user.link.help': 'Help', - 'layout.user.link.privacy': 'Privacy', - 'layout.user.link.terms': 'Terms', - 'app.preview.down.block': 'Download this page to your local project', + "navBar.lang": "Languages", + "layout.user.link.help": "Help", + "layout.user.link.privacy": "Privacy", + "layout.user.link.terms": "Terms", + "app.preview.down.block": "Download this page to your local project", + "app.update.tip.title": "Update Tips", + "app.update.tip.message": + "It is detected that the content of the website has been updated. Do you want to refresh the page to load the latest version?", + "app.update.tip.confirm": "Confirm", + "app.update.tip.close": "Close", ...globalHeader, ...menu, ...settingDrawer, diff --git a/src/locales/pt-BR.ts b/src/locales/pt-BR.ts index ee3733b..8f501ae 100644 --- a/src/locales/pt-BR.ts +++ b/src/locales/pt-BR.ts @@ -6,11 +6,16 @@ import settingDrawer from './pt-BR/settingDrawer'; import settings from './pt-BR/settings'; export default { - 'navBar.lang': 'Idiomas', - 'layout.user.link.help': 'ajuda', - 'layout.user.link.privacy': 'política de privacidade', - 'layout.user.link.terms': 'termos de serviços', - 'app.preview.down.block': 'Download this page to your local project', + "navBar.lang": "Idiomas", + "layout.user.link.help": "ajuda", + "layout.user.link.privacy": "política de privacidade", + "layout.user.link.terms": "termos de serviços", + "app.preview.down.block": "Download this page to your local project", + "app.update.tip.title": "Update Tips", + "app.update.tip.message": + "It is detected that the content of the website has been updated. Do you want to refresh the page to load the latest version?", + "app.update.tip.confirm": "Confirm", + "app.update.tip.close": "Close", ...globalHeader, ...menu, ...settingDrawer, diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index b37ec0f..cc72f64 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -6,11 +6,15 @@ import settingDrawer from './zh-CN/settingDrawer'; import settings from './zh-CN/settings'; export default { - 'navBar.lang': '语言', - 'layout.user.link.help': '帮助', - 'layout.user.link.privacy': '隐私', - 'layout.user.link.terms': '条款', - 'app.preview.down.block': '下载此页面到本地项目', + "navBar.lang": "语言", + "layout.user.link.help": "帮助", + "layout.user.link.privacy": "隐私", + "layout.user.link.terms": "条款", + "app.preview.down.block": "下载此页面到本地项目", + "app.update.tip.title": "更新提示", + "app.update.tip.message": "检测到网站内容有更新,是否刷新页面加载最新版本?", + "app.update.tip.confirm": "确认", + "app.update.tip.close": "关闭", ...globalHeader, ...menu, ...settingDrawer, diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 6ad5f93..6a284ce 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -6,11 +6,15 @@ import settingDrawer from './zh-TW/settingDrawer'; import settings from './zh-TW/settings'; export default { - 'navBar.lang': '語言', - 'layout.user.link.help': '幫助', - 'layout.user.link.privacy': '隱私', - 'layout.user.link.terms': '條款', - 'app.preview.down.block': '下載此頁面到本地項目', + "navBar.lang": "語言", + "layout.user.link.help": "幫助", + "layout.user.link.privacy": "隱私", + "layout.user.link.terms": "條款", + "app.preview.down.block": "下載此頁面到本地項目", + "app.update.tip.title": "更新提示", + "app.update.tip.message": "檢測到網站內容有更新,是否刷新頁面加載最新版本?", + "app.update.tip.confirm": "確認", + "app.update.tip.close": "關閉", ...globalHeader, ...menu, ...settingDrawer, diff --git a/src/pages/document.ejs b/src/pages/document.ejs index df6d741..04ac583 100644 --- a/src/pages/document.ejs +++ b/src/pages/document.ejs @@ -3,19 +3,16 @@ - + 霏微汽车服务平台 @@ -23,34 +20,34 @@