diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js
index d8b44f0d9..c3eebdb7d 100644
--- a/resources/assets/js/app.js
+++ b/resources/assets/js/app.js
@@ -1,4 +1,5 @@
const isElectron = window && window.process && window.process.type;
+const isEEUiApp = window && window.navigator && /eeui/i.test(window.navigator.userAgent);
import './functions/common'
import './functions/web'
@@ -63,12 +64,12 @@ VueRouter.prototype.push = function push(location) {
}
const router = new VueRouter({
- mode: isElectron ? 'hash' : 'history',
+ mode: isElectron || isEEUiApp ? 'hash' : 'history',
routes
});
// 进度条配置
-if (!isElectron) {
+if (!isElectron && !isEEUiApp) {
ViewUI.LoadingBar.config({
color: '#3fcc25',
failedColor: '#ff0000'
diff --git a/resources/assets/js/components/Mobile/Back.vue b/resources/assets/js/components/Mobile/Back.vue
new file mode 100644
index 000000000..d520fb65a
--- /dev/null
+++ b/resources/assets/js/components/Mobile/Back.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/resources/assets/js/components/Mobile/Tabbar.vue b/resources/assets/js/components/Mobile/Tabbar.vue
index 1f2c0dcc4..f8d8f4cee 100644
--- a/resources/assets/js/components/Mobile/Tabbar.vue
+++ b/resources/assets/js/components/Mobile/Tabbar.vue
@@ -6,15 +6,13 @@
@@ -46,8 +46,6 @@ import {Store} from "le5le-store";
export default {
data() {
return {
- show768Menu: true,
-
version: window.systemInfo.version
}
},
@@ -63,6 +61,10 @@ export default {
return this.$route.name
},
+ show768Menu() {
+ return this.routeName === 'manage-setting'
+ },
+
menu() {
let menu = [
{path: 'personal', name: '个人设置'},
@@ -71,6 +73,13 @@ export default {
if (this.userIsAdmin) {
menu.push(...[
{path: 'system', name: '系统设置', divided: true},
+ {path: 'clearCache', name: '清除缓存'},
+ {path: 'logout', name: '退出登录'},
+ ])
+ } else {
+ menu.push(...[
+ {path: 'clearCache', name: '清除缓存', divided: true},
+ {path: 'logout', name: '退出登录'},
])
}
return menu;
@@ -92,11 +101,8 @@ export default {
watch: {
routeName: {
handler(name) {
- if (name === 'manage-setting') {
- this.show768Menu = true;
- if (this.isDesktop) {
- this.goForward({name: 'manage-setting-personal'}, true);
- }
+ if (name === 'manage-setting' && this.isDesktop) {
+ this.goForward({name: 'manage-setting-personal'}, true);
}
},
immediate: true
@@ -105,12 +111,38 @@ export default {
methods: {
toggleRoute(path) {
- if (path == 'version') {
- Store.set('updateNotification', null);
- return;
+ switch (path) {
+ case 'clearCache':
+ this.$store.dispatch("handleClearCache", null).then(() => {
+ $A.setStorage("clearCache", $A.randomString(6))
+ window.location.reload()
+ }).catch(() => {
+ window.location.reload()
+ });
+ break;
+
+ case 'logout':
+ $A.modalConfirm({
+ title: '退出登录',
+ content: '你确定要登出系统?',
+ onOk: () => {
+ this.$store.dispatch("logout", false)
+ }
+ });
+ break;
+
+ case 'version':
+ Store.set('updateNotification', null);
+ break;
+
+ case 'index':
+ this.goForward({name: 'manage-setting'});
+ break;
+
+ default:
+ this.goForward({name: 'manage-setting-' + path});
+ break;
}
- this.show768Menu = false;
- this.goForward({name: 'manage-setting-' + path});
},
classNameRoute(path, divided) {
diff --git a/resources/assets/sass/components/mobile.scss b/resources/assets/sass/components/mobile.scss
index 38425cb45..ae004b7e1 100644
--- a/resources/assets/sass/components/mobile.scss
+++ b/resources/assets/sass/components/mobile.scss
@@ -6,7 +6,7 @@
right: 0;
background-color: #f3f6fe;
box-shadow: 0 0 2px rgba(28, 34, 43, 0.15);
- z-index: 99;
+ z-index: 98;
> ul {
display: flex;
align-items: center;
@@ -39,9 +39,26 @@
}
}
}
+.mobile-back {
+ display: none;
+ position: fixed;
+ top: 200px;
+ left: -50px;
+ width: 500px;
+ height: 500px;
+ background-color: rgba(0, 0, 0, 0.1);
+ z-index: 99;
+ border-radius: 50%;
+ transform: translate(-460px, -50%);
+ transition: left 0.2s;
+ &.show-back {
+ left: 0;
+ }
+}
@media (max-width: 640px) {
- .mobile-tabbar {
+ .mobile-tabbar,
+ .mobile-back {
display: block;
}
}
diff --git a/resources/assets/sass/dark.scss b/resources/assets/sass/dark.scss
index ab51e5a40..8eb0331bd 100644
--- a/resources/assets/sass/dark.scss
+++ b/resources/assets/sass/dark.scss
@@ -160,18 +160,20 @@ body.dark-mode-reverse {
.dialog-wrapper {
.dialog-nav {
- .dialog-avatar {
- .icon-avatar {
- color: #1c1917;
- }
- }
- .dialog-title {
- .main-title {
- > h2 {
- color: #555;
+ .dialog-block {
+ .dialog-avatar {
+ .icon-avatar {
+ color: #1c1917;
}
- .top-text {
- color: #000000;
+ }
+ .dialog-title {
+ .main-title {
+ > h2 {
+ color: #555;
+ }
+ .top-text {
+ color: #000000;
+ }
}
}
}
diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss
index 5fd6cff20..473aefb36 100644
--- a/resources/assets/sass/pages/components/dialog-wrapper.scss
+++ b/resources/assets/sass/pages/components/dialog-wrapper.scss
@@ -46,125 +46,137 @@
}
}
- .dialog-avatar {
- flex-shrink: 0;
- margin-right: 12px;
-
- .user-avatar,
- .icon-avatar {
- width: 42px;
- height: 42px;
- margin: 2px;
- flex-grow: 0;
- flex-shrink: 0;
- }
-
- .icon-avatar {
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
- font-size: 26px;
- background-color: #61B2F9;
- color: #ffffff;
-
- &.project {
- background-color: #6E99EB;
- }
-
- &.task {
- background-color: #9B96DF;
- font-size: 24px;
- }
- }
- }
-
- .dialog-title {
+ .dialog-block {
flex: 1;
width: 0;
display: flex;
- flex-direction: column;
- justify-content: center;
+ align-items: center;
- .main-title {
- display: flex;
- align-items: center;
- line-height: 22px;
- max-width: 100%;
+ .dialog-avatar {
+ flex-shrink: 0;
+ margin-right: 12px;
- .ivu-tag {
+ .user-avatar,
+ .icon-avatar {
+ width: 42px;
+ height: 42px;
+ margin: 2px;
+ flex-grow: 0;
flex-shrink: 0;
- margin: 0 6px 0 0;
- padding: 0 5px;
+ }
- &.ivu-tag-success {
- padding: 0 6px;
+ .icon-avatar {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+ font-size: 26px;
+ background-color: #61B2F9;
+ color: #ffffff;
+
+ &.project {
+ background-color: #6E99EB;
}
- }
- .ivu-icon {
- font-size: 18px;
- margin-right: 6px;
-
- &.completed {
- color: $primary-color;
+ &.task {
+ background-color: #9B96DF;
+ font-size: 24px;
}
}
-
- > h2 {
- font-size: 17px;
- font-weight: 600;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- > em {
- flex-shrink: 0;
- font-style: normal;
- font-size: 17px;
- font-weight: 500;
- padding-left: 6px;
- }
-
- .top-text {
- flex-shrink: 0;
- height: 24px;
- line-height: 24px;
- padding: 0 6px;
- border-radius: 4px;
- margin-left: 10px;
- background-color: #8BCF70;
- color: #FFFFFF;
- text-align: center;
- white-space: nowrap;
- }
}
- .sub-title {
- flex-shrink: 0;
- font-size: 12px;
- line-height: 20px;
- padding-top: 2px;
- color: #aaaaaa;
- white-space: normal;
+ .dialog-title {
+ flex: 1;
+ width: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
- &.pointer {
- cursor: pointer;
+ .main-title {
+ display: flex;
+ align-items: center;
+ line-height: 22px;
+ max-width: 100%;
- &:hover {
- color: #888888;
+ .ivu-tag {
+ flex-shrink: 0;
+ margin: 0 6px 0 0;
+ padding: 0 5px;
+
+ &.ivu-tag-success {
+ padding: 0 6px;
+ }
+ }
+
+ .ivu-icon {
+ font-size: 18px;
+ margin-right: 6px;
+
+ &.completed {
+ color: $primary-color;
+ }
+ }
+
+ > h2 {
+ font-size: 17px;
+ font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ > em {
+ flex-shrink: 0;
+ font-style: normal;
+ font-size: 17px;
+ font-weight: 500;
+ padding-left: 6px;
+ }
+
+ .top-text {
+ flex-shrink: 0;
+ height: 24px;
+ line-height: 24px;
+ padding: 0 6px;
+ border-radius: 4px;
+ margin-left: 10px;
+ background-color: #8BCF70;
+ color: #FFFFFF;
+ text-align: center;
+ white-space: nowrap;
+ }
+ }
+
+ .sub-title {
+ flex-shrink: 0;
+ font-size: 12px;
+ line-height: 20px;
+ padding-top: 2px;
+ color: #aaaaaa;
+ white-space: normal;
+
+ &.pointer {
+ cursor: pointer;
+
+ &:hover {
+ color: #888888;
+ }
}
}
}
}
+ .dialog-back,
.dialog-create {
cursor: pointer;
margin-left: 24px;
- font-size: 20px;
+ font-size: 22px;
color: $primary-text-color;
}
+
+ .dialog-back {
+ display: none;
+ }
}
.dialog-scroller {
@@ -813,6 +825,59 @@
@media (max-width: 768px) {
.dialog-wrapper {
+ .dialog-nav {
+ height: 60px;
+ padding: 0;
+ justify-content: center;
+
+ &.completed {
+ &:after {
+ right: 14px;
+ }
+ .dialog-title {
+ padding-right: 0;
+ }
+ }
+
+ .dialog-back,
+ .dialog-create {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ margin: 0;
+ width: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .dialog-back {
+ right: auto;
+ left: 0;
+ > i {
+ font-size: 26px;
+ }
+ }
+ .dialog-block {
+ margin: 0 60px;
+ justify-content: center;
+ .dialog-avatar {
+ display: none;
+ }
+ .dialog-title {
+ flex: unset;
+ width: unset;
+ overflow: hidden;
+ text-align: center;
+ .sub-title {
+ line-height: 18px;
+ }
+ }
+ }
+ }
+ .dialog-scroller {
+ padding: 0 14px;
+ }
.dialog-footer {
padding: 0 20px;
margin-bottom: 16px;
diff --git a/resources/assets/sass/pages/components/project-dialog.scss b/resources/assets/sass/pages/components/project-dialog.scss
index 4772b7b3d..d826a08d5 100644
--- a/resources/assets/sass/pages/components/project-dialog.scss
+++ b/resources/assets/sass/pages/components/project-dialog.scss
@@ -67,21 +67,6 @@
.dialog-nav {
padding: 0 20px;
}
- .dialog-footer {
- .dialog-input {
- .dialog-back {
- display: none;
- align-items: center;
- justify-content: center;
- width: 64px;
- height: 100%;
- max-height: 64px;
- font-size: 26px;
- margin-left: -20px;
- z-index: 1;
- }
- }
- }
}
}
@@ -94,18 +79,10 @@
}
.dialog-nav {
padding: 0 12px;
- height: 58px;
+ height: 64px;
}
.dialog-scroller {
- padding: 0 20px;
- }
- .dialog-footer {
- .dialog-input {
- align-items: flex-end;
- .dialog-back {
- display: flex;
- }
- }
+ padding: 0 14px;
}
}
}
diff --git a/resources/assets/sass/pages/components/project-panel.scss b/resources/assets/sass/pages/components/project-panel.scss
index 4fd90c8df..7eb33dd05 100644
--- a/resources/assets/sass/pages/components/project-panel.scss
+++ b/resources/assets/sass/pages/components/project-panel.scss
@@ -1029,7 +1029,10 @@
display: block;
.project-title {
float: left;
- padding-bottom: 4px;
+ padding-bottom: 8px;
+ > h1 {
+ font-size: 24px;
+ }
}
.project-icons {
float: right;
diff --git a/resources/assets/sass/pages/page-messenger.scss b/resources/assets/sass/pages/page-messenger.scss
index c928ee874..e0262fd2a 100644
--- a/resources/assets/sass/pages/page-messenger.scss
+++ b/resources/assets/sass/pages/page-messenger.scss
@@ -172,7 +172,6 @@
}
}
.dialog-text {
- max-width: 170px;
color: #999999;
font-size: 12px;
line-height: 24px;
@@ -352,23 +351,6 @@
height: 100%;
display: flex;
position: relative;
- .dialog-wrapper {
- .dialog-footer {
- .dialog-input {
- .dialog-back {
- display: none;
- align-items: center;
- justify-content: center;
- width: 64px;
- height: 100%;
- max-height: 64px;
- font-size: 26px;
- margin-left: -20px;
- z-index: 1;
- }
- }
- }
- }
.msg-dialog-bg {
position: absolute;
top: 0;
@@ -420,22 +402,6 @@
transform: translateX(0);
}
}
- .messenger-msg {
- .dialog-wrapper {
- .dialog-nav {
- height: 54px;
- justify-content: center;
- }
- .dialog-footer {
- .dialog-input {
- align-items: flex-end;
- .dialog-back {
- display: flex;
- }
- }
- }
- }
- }
}
}
}
diff --git a/resources/assets/sass/pages/page-setting.scss b/resources/assets/sass/pages/page-setting.scss
index f350801ec..13db7b046 100755
--- a/resources/assets/sass/pages/page-setting.scss
+++ b/resources/assets/sass/pages/page-setting.scss
@@ -297,6 +297,12 @@
}
> ul {
padding: 12px 32px;
+ > li {
+ padding: 0 8px;
+ &:hover {
+ background-color: transparent;
+ }
+ }
}
}
}
@@ -312,8 +318,8 @@
justify-content: center;
> button {
flex: 1;
- height: 42px;
- line-height: 40px;
+ height: 38px;
+ line-height: 36px;
}
}
}