diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..604fe3d --- /dev/null +++ b/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,40 @@ +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('CloseSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.resizeHandler) + }, + mounted() { + const isMobile = this.isMobile() + if (isMobile) { + store.dispatch('ToggleDevice', 'mobile') + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + }, + methods: { + isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + resizeHandler() { + if (!document.hidden) { + const isMobile = this.isMobile() + store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..604fe3d --- /dev/null +++ b/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,40 @@ +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('CloseSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.resizeHandler) + }, + mounted() { + const isMobile = this.isMobile() + if (isMobile) { + store.dispatch('ToggleDevice', 'mobile') + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + }, + methods: { + isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + resizeHandler() { + if (!document.hidden) { + const isMobile = this.isMobile() + store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 0000000..b8159bf --- /dev/null +++ b/src/settings.js @@ -0,0 +1,33 @@ +module.exports = { + /** + * @type {boolean} true | false + * @description 是否显示设置按钮 + */ + showSettings: false, + + /** + * @type {boolean} true | false + * @description 是否显示tagsView + */ + tagsView: true, + + /** + * @type {boolean} true | false + * @description 是否固定面包屑和tagsViews头 + */ + fixedHeader: true, + + /** + * @type {boolean} true | false + * @description 是否要显示侧边栏logo + */ + sidebarLogo: false, + + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production' +} diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..604fe3d --- /dev/null +++ b/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,40 @@ +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('CloseSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.resizeHandler) + }, + mounted() { + const isMobile = this.isMobile() + if (isMobile) { + store.dispatch('ToggleDevice', 'mobile') + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + }, + methods: { + isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + resizeHandler() { + if (!document.hidden) { + const isMobile = this.isMobile() + store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 0000000..b8159bf --- /dev/null +++ b/src/settings.js @@ -0,0 +1,33 @@ +module.exports = { + /** + * @type {boolean} true | false + * @description 是否显示设置按钮 + */ + showSettings: false, + + /** + * @type {boolean} true | false + * @description 是否显示tagsView + */ + tagsView: true, + + /** + * @type {boolean} true | false + * @description 是否固定面包屑和tagsViews头 + */ + fixedHeader: true, + + /** + * @type {boolean} true | false + * @description 是否要显示侧边栏logo + */ + sidebarLogo: false, + + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production' +} diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js new file mode 100644 index 0000000..cfc94a8 --- /dev/null +++ b/src/store/modules/settings.js @@ -0,0 +1,34 @@ +import variables from '@/styles/element-variables.scss' +import defaultSettings from '@/settings' + +const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings + +const state = { + theme: variables.theme, // 主题 + showSettings: showSettings, // 是否显示设置按钮 + tagsView: tagsView, // 是否显示tagsView + fixedHeader: fixedHeader, // 是否固定面包屑 + sidebarLogo: sidebarLogo // 是否显示logo +} + +const mutations = { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value + } + } +} + +const actions = { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..604fe3d --- /dev/null +++ b/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,40 @@ +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('CloseSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.resizeHandler) + }, + mounted() { + const isMobile = this.isMobile() + if (isMobile) { + store.dispatch('ToggleDevice', 'mobile') + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + }, + methods: { + isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + resizeHandler() { + if (!document.hidden) { + const isMobile = this.isMobile() + store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 0000000..b8159bf --- /dev/null +++ b/src/settings.js @@ -0,0 +1,33 @@ +module.exports = { + /** + * @type {boolean} true | false + * @description 是否显示设置按钮 + */ + showSettings: false, + + /** + * @type {boolean} true | false + * @description 是否显示tagsView + */ + tagsView: true, + + /** + * @type {boolean} true | false + * @description 是否固定面包屑和tagsViews头 + */ + fixedHeader: true, + + /** + * @type {boolean} true | false + * @description 是否要显示侧边栏logo + */ + sidebarLogo: false, + + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production' +} diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js new file mode 100644 index 0000000..cfc94a8 --- /dev/null +++ b/src/store/modules/settings.js @@ -0,0 +1,34 @@ +import variables from '@/styles/element-variables.scss' +import defaultSettings from '@/settings' + +const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings + +const state = { + theme: variables.theme, // 主题 + showSettings: showSettings, // 是否显示设置按钮 + tagsView: tagsView, // 是否显示tagsView + fixedHeader: fixedHeader, // 是否固定面包屑 + sidebarLogo: sidebarLogo // 是否显示logo +} + +const mutations = { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value + } + } +} + +const actions = { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/src/styles/index.scss b/src/styles/index.scss index 96a98ed..3f18397 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -57,6 +57,11 @@ text-decoration: none; } +// 去掉IE 的密码眼睛 +input::-ms-reveal { + display: none; +} + .clearfix { &:after { visibility: hidden; diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..e911521 --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,145 @@ + + + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index e797d6c..7d80a74 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -1,12 +1,13 @@ diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue new file mode 100644 index 0000000..4400b7f --- /dev/null +++ b/src/layout/Layout.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue new file mode 100644 index 0000000..15835ae --- /dev/null +++ b/src/layout/components/AppHeader.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue new file mode 100644 index 0000000..2ea268e --- /dev/null +++ b/src/layout/components/AppMain.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue new file mode 100644 index 0000000..193b604 --- /dev/null +++ b/src/layout/components/Navbar.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..cf3023d --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/layout/components/Sidebar/Item.vue b/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..b515f61 --- /dev/null +++ b/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,29 @@ + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..bff45cd --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,36 @@ + + + + diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..988d662 --- /dev/null +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..5dcf730 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..0ec76e7 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..325c815 --- /dev/null +++ b/src/layout/components/TagsView/index.vue @@ -0,0 +1,287 @@ + + + + + + + diff --git a/src/layout/components/index.js b/src/layout/components/index.js new file mode 100644 index 0000000..52d35e3 --- /dev/null +++ b/src/layout/components/index.js @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar' +export { default as Sidebar } from './Sidebar' +export { default as AppMain } from './AppMain' +export { default as AppHeader } from './AppHeader' diff --git a/src/layout/mixin/ResizeHandler.js b/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..604fe3d --- /dev/null +++ b/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,40 @@ +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('CloseSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.resizeHandler) + }, + mounted() { + const isMobile = this.isMobile() + if (isMobile) { + store.dispatch('ToggleDevice', 'mobile') + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + }, + methods: { + isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + resizeHandler() { + if (!document.hidden) { + const isMobile = this.isMobile() + store.dispatch('ToggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('CloseSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 0000000..b8159bf --- /dev/null +++ b/src/settings.js @@ -0,0 +1,33 @@ +module.exports = { + /** + * @type {boolean} true | false + * @description 是否显示设置按钮 + */ + showSettings: false, + + /** + * @type {boolean} true | false + * @description 是否显示tagsView + */ + tagsView: true, + + /** + * @type {boolean} true | false + * @description 是否固定面包屑和tagsViews头 + */ + fixedHeader: true, + + /** + * @type {boolean} true | false + * @description 是否要显示侧边栏logo + */ + sidebarLogo: false, + + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production' +} diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js new file mode 100644 index 0000000..cfc94a8 --- /dev/null +++ b/src/store/modules/settings.js @@ -0,0 +1,34 @@ +import variables from '@/styles/element-variables.scss' +import defaultSettings from '@/settings' + +const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings + +const state = { + theme: variables.theme, // 主题 + showSettings: showSettings, // 是否显示设置按钮 + tagsView: tagsView, // 是否显示tagsView + fixedHeader: fixedHeader, // 是否固定面包屑 + sidebarLogo: sidebarLogo // 是否显示logo +} + +const mutations = { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value + } + } +} + +const actions = { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/src/styles/index.scss b/src/styles/index.scss index 96a98ed..3f18397 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -57,6 +57,11 @@ text-decoration: none; } +// 去掉IE 的密码眼睛 +input::-ms-reveal { + display: none; +} + .clearfix { &:after { visibility: hidden; diff --git a/src/utils/index.js b/src/utils/index.js index f607910..1095ef0 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -296,3 +296,34 @@ export function uniqueArr(arr) { return Array.from(new Set(arr)) } + +/** + * Check if an element has a class + * @param {HTMLElement} elm + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele, cls) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) +} + +/** + * Add class to element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function addClass(ele, cls) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls +} + +/** + * Remove class from element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function removeClass(ele, cls) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') + ele.className = ele.className.replace(reg, ' ') + } +}