From 16adebaebfecd69cdb03fca1bde6d039d2d59df4 Mon Sep 17 00:00:00 2001 From: lishuang Date: Sun, 7 Jun 2020 17:43:02 +0800 Subject: [PATCH] Add the frame for install. --- src/common/menu/MenuManager.tsx | 9 +- src/common/model/base/HttpBase.ts | 16 ++-- src/common/model/preference/Preference.ts | 4 + src/pages/Frame.less | 10 +++ src/pages/Frame.tsx | 102 +++++++++++++--------- 5 files changed, 94 insertions(+), 47 deletions(-) diff --git a/src/common/menu/MenuManager.tsx b/src/common/menu/MenuManager.tsx index 65027f7..5aabaee 100644 --- a/src/common/menu/MenuManager.tsx +++ b/src/common/menu/MenuManager.tsx @@ -15,6 +15,7 @@ import { TeamOutlined } from '@ant-design/icons'; import {LoginOutlined} from "@ant-design/icons/lib"; +import Preference from "../model/preference/Preference"; export default class MenuManager { @@ -63,15 +64,19 @@ export default class MenuManager { getMenuItems(): MenuItem[] { let user: User = Moon.getSingleton().user; + let preference: Preference = Moon.getSingleton().preference; let menuItems: MenuItem[] = []; - if (user.role === UserRole.GUEST) { + if (!preference.installed) { + menuItems = [ + new MenuItem('安装网站', '/install/index', ), + ]; + } else if (user.role === UserRole.GUEST) { menuItems = [ new MenuItem('登录', '/user/login', ), ]; } else { - menuItems.push(new MenuItem('所有文件', '/matter/list', )) menuItems.push(new MenuItem('我的分享', '/share/index', )) diff --git a/src/common/model/base/HttpBase.ts b/src/common/model/base/HttpBase.ts index e145fe7..05aad0e 100644 --- a/src/common/model/base/HttpBase.ts +++ b/src/common/model/base/HttpBase.ts @@ -45,13 +45,21 @@ export default class HttpBase extends ViewBase { /** - * 转跳到ACL页面 + * 转跳到登录页面 */ jumpLogin() { Sun.navigateTo("/user/login") - console.error("这里是需要跳转的") + + } + + /** + * 转跳到网站安装页面 + */ + jumpInstall() { + + Sun.navigateTo("/install/index") } @@ -127,10 +135,6 @@ export default class HttpBase extends ViewBase { this.jumpLogin() return true; - } else if (response.data["code"] === WebResultCode.NOT_INSTALLED) { - - - return true } diff --git a/src/common/model/preference/Preference.ts b/src/common/model/preference/Preference.ts index 24b6308..771bca6 100644 --- a/src/common/model/preference/Preference.ts +++ b/src/common/model/preference/Preference.ts @@ -33,6 +33,10 @@ export default class Preference extends BaseEntity { version: string | null = null + //*****************前端辅助变量***********************/ + //网站是否完成了安装 + installed: boolean = true + constructor(reactComponent?: React.Component) { super(reactComponent); diff --git a/src/pages/Frame.less b/src/pages/Frame.less index 4faa177..f6ced5c 100644 --- a/src/pages/Frame.less +++ b/src/pages/Frame.less @@ -31,6 +31,16 @@ font-size: 16px; } } + + .install-area { + text-align: center; + margin-top: 40px; + margin-bottom: 20px; + + .install-logo { + width: 80px; + } + } } .ant-layout-header { diff --git a/src/pages/Frame.tsx b/src/pages/Frame.tsx index 53e5d61..2bba86a 100644 --- a/src/pages/Frame.tsx +++ b/src/pages/Frame.tsx @@ -32,9 +32,10 @@ import Sun from '../common/model/global/Sun'; import {UserRole} from '../common/model/user/UserRole'; import FrameLoading from "./widget/FrameLoading"; import Preference from "../common/model/preference/Preference"; +import {WebResultCode} from "../common/model/base/WebResultCode"; +import MessageBoxUtil from "../common/util/MessageBoxUtil"; const {Header, Content, Footer, Sider} = Layout; -const {SubMenu} = Menu; interface IProps extends RouteComponentProps<{}> { @@ -76,8 +77,6 @@ class RawFrame extends TankComponent { let that = this; let pathname: string = that.props.location.pathname - console.log(pathname) - this.preference.httpFetch(function () { let whitePaths = ['/user/login', '/user/register']; @@ -94,6 +93,15 @@ class RawFrame extends TankComponent { that.updateUI(); } + }, function (errMessage: string, response: any) { + + if (response && response.data && response.data["code"] === WebResultCode.NOT_INSTALLED) { + MessageBoxUtil.warning("网站尚未安装,即将引导进入安装页面!") + that.preference.installed = false + } + + that.initialized = true + that.updateUI() }) @@ -134,19 +142,28 @@ class RawFrame extends TankComponent { -
- - avatar - -
-
- {user.role === UserRole.GUEST ? - '未登录' : - - {user.username} - - } -
+ {this.preference.installed?( +
+
+ + avatar + +
+
+ {user.role === UserRole.GUEST ? + '未登录' : + + {user.username} + + } +
+
+ ):( +
+ avatar +
+ )} + { -
- - - }/> - - - - - - - + { + this.preference.installed?( +
+ + + }/> + + + + + + + - + - + + - - + + + + }/> + + + +
+ ):( +
+ +
+ ) + } - - - - }/> - - - -