refactor(projects): all file and folder use kebab-case
This commit is contained in:
parent
bf2f617255
commit
cea600f12c
@ -3,7 +3,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import WebSiteLink from './WebSiteLink.vue';
|
import WebSiteLink from './web-site-link.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'GithubLink' });
|
defineOptions({ name: 'GithubLink' });
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import SvgIcon from '@/components/custom/SvgIcon.vue';
|
import SvgIcon from '~/src/components/custom/svg-icon.vue';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 图标渲染
|
* 图标渲染
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import useCountDown from './useCountDown';
|
import useCountDown from './use-count-down';
|
||||||
import useSmsCode from './useSmsCode';
|
import useSmsCode from './use-sms-code';
|
||||||
import useImageVerify from './useImageVerify';
|
import useImageVerify from './use-image-verify';
|
||||||
|
|
||||||
export { useCountDown, useSmsCode, useImageVerify };
|
export { useCountDown, useSmsCode, useImageVerify };
|
||||||
|
@ -2,7 +2,7 @@ import { computed } from 'vue';
|
|||||||
import { REGEXP_PHONE } from '@/config';
|
import { REGEXP_PHONE } from '@/config';
|
||||||
import { fetchSmsCode } from '@/service';
|
import { fetchSmsCode } from '@/service';
|
||||||
import { useLoading } from '../common';
|
import { useLoading } from '../common';
|
||||||
import useCountDown from './useCountDown';
|
import useCountDown from './use-count-down';
|
||||||
|
|
||||||
export default function useSmsCode() {
|
export default function useSmsCode() {
|
||||||
const { loading, startLoading, endLoading } = useLoading();
|
const { loading, startLoading, endLoading } = useLoading();
|
@ -1,7 +1,7 @@
|
|||||||
import useContext from './useContext';
|
import useContext from './use-context';
|
||||||
import useBoolean from './useBoolean';
|
import useBoolean from './use-boolean';
|
||||||
import useLoading from './useLoading';
|
import useLoading from './use-loading';
|
||||||
import useLoadingEmpty from './useLoadingEmpty';
|
import useLoadingEmpty from './use-loading-empty';
|
||||||
import useReload from './useReload';
|
import useReload from './use-reload';
|
||||||
|
|
||||||
export { useContext, useBoolean, useLoading, useLoadingEmpty, useReload };
|
export { useContext, useBoolean, useLoading, useLoadingEmpty, useReload };
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import useBoolean from './useBoolean';
|
import useBoolean from './use-boolean';
|
||||||
|
|
||||||
export default function useLoadingEmpty(initLoading = false, initEmpty = false) {
|
export default function useLoadingEmpty(initLoading = false, initEmpty = false) {
|
||||||
const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initLoading);
|
const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initLoading);
|
@ -1,4 +1,4 @@
|
|||||||
import useBoolean from './useBoolean';
|
import useBoolean from './use-boolean';
|
||||||
|
|
||||||
export default function useLoading(initValue = false) {
|
export default function useLoading(initValue = false) {
|
||||||
const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue);
|
const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue);
|
@ -1,5 +1,5 @@
|
|||||||
import { nextTick } from 'vue';
|
import { nextTick } from 'vue';
|
||||||
import useBoolean from './useBoolean';
|
import useBoolean from './use-boolean';
|
||||||
|
|
||||||
/** 重载 */
|
/** 重载 */
|
||||||
export default function useReload() {
|
export default function useReload() {
|
@ -1,21 +0,0 @@
|
|||||||
import MenuCollapse from './MenuCollapse.vue';
|
|
||||||
import GlobalBreadcrumb from './GlobalBreadcrumb.vue';
|
|
||||||
import HeaderMenu from './HeaderMenu.vue';
|
|
||||||
import GithubSite from './GithubSite.vue';
|
|
||||||
import FullScreen from './FullScreen.vue';
|
|
||||||
import ThemeMode from './ThemeMode.vue';
|
|
||||||
import UserAvatar from './UserAvatar.vue';
|
|
||||||
import SystemMessage from './SystemMessage.vue';
|
|
||||||
import SettingButton from './SettingButton.vue';
|
|
||||||
|
|
||||||
export {
|
|
||||||
MenuCollapse,
|
|
||||||
GlobalBreadcrumb,
|
|
||||||
HeaderMenu,
|
|
||||||
GithubSite,
|
|
||||||
FullScreen,
|
|
||||||
ThemeMode,
|
|
||||||
UserAvatar,
|
|
||||||
SystemMessage,
|
|
||||||
SettingButton
|
|
||||||
};
|
|
@ -1,3 +0,0 @@
|
|||||||
import SearchModal from './SearchModal.vue';
|
|
||||||
|
|
||||||
export { SearchModal };
|
|
@ -1,5 +0,0 @@
|
|||||||
import MixMenuDetail from './MixMenuDetail.vue';
|
|
||||||
import MixMenuDrawer from './MixMenuDrawer.vue';
|
|
||||||
import MixMenuCollapse from './MixMenuCollapse.vue';
|
|
||||||
|
|
||||||
export { MixMenuDetail, MixMenuDrawer, MixMenuCollapse };
|
|
@ -1,3 +0,0 @@
|
|||||||
import VerticalMenu from './VerticalMenu.vue';
|
|
||||||
|
|
||||||
export { VerticalMenu };
|
|
@ -1,4 +0,0 @@
|
|||||||
import VerticalSider from './VerticalSider/index.vue';
|
|
||||||
import VerticalMixSider from './VerticalMixSider/index.vue';
|
|
||||||
|
|
||||||
export { VerticalSider, VerticalMixSider };
|
|
@ -1,3 +0,0 @@
|
|||||||
import ContextMenu from './ContextMenu.vue';
|
|
||||||
|
|
||||||
export { ContextMenu };
|
|
@ -1,4 +0,0 @@
|
|||||||
import TabDetail from './TabDetail/index.vue';
|
|
||||||
import ReloadButton from './ReloadButton/index.vue';
|
|
||||||
|
|
||||||
export { TabDetail, ReloadButton };
|
|
@ -1,3 +0,0 @@
|
|||||||
import LayoutCheckbox from './LayoutCheckbox.vue';
|
|
||||||
|
|
||||||
export { LayoutCheckbox };
|
|
@ -1,4 +0,0 @@
|
|||||||
import ColorCheckbox from './ColorCheckbox.vue';
|
|
||||||
import ColorModal from './ColorModal.vue';
|
|
||||||
|
|
||||||
export { ColorCheckbox, ColorModal };
|
|
@ -1,9 +0,0 @@
|
|||||||
import DrawerButton from './DrawerButton/index.vue';
|
|
||||||
import DarkMode from './DarkMode/index.vue';
|
|
||||||
import LayoutMode from './LayoutMode/index.vue';
|
|
||||||
import ThemeColorSelect from './ThemeColorSelect/index.vue';
|
|
||||||
import PageFunc from './PageFunc/index.vue';
|
|
||||||
import PageView from './PageView/index.vue';
|
|
||||||
import ThemeConfig from './ThemeConfig/index.vue';
|
|
||||||
|
|
||||||
export { DrawerButton, DarkMode, LayoutMode, ThemeColorSelect, PageFunc, PageView, ThemeConfig };
|
|
21
src/layouts/common/global-header/components/index.ts
Normal file
21
src/layouts/common/global-header/components/index.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import MenuCollapse from './menu-collapse.vue';
|
||||||
|
import GlobalBreadcrumb from './global-breadcrumb.vue';
|
||||||
|
import HeaderMenu from './header-menu.vue';
|
||||||
|
import GithubSite from './github-site.vue';
|
||||||
|
import FullScreen from './full-screen.vue';
|
||||||
|
import ThemeMode from './theme-mode.vue';
|
||||||
|
import UserAvatar from './user-avatar.vue';
|
||||||
|
import SystemMessage from './system-message.vue';
|
||||||
|
import SettingButton from './setting-button.vue';
|
||||||
|
|
||||||
|
export {
|
||||||
|
MenuCollapse,
|
||||||
|
GlobalBreadcrumb,
|
||||||
|
HeaderMenu,
|
||||||
|
GithubSite,
|
||||||
|
FullScreen,
|
||||||
|
ThemeMode,
|
||||||
|
UserAvatar,
|
||||||
|
SystemMessage,
|
||||||
|
SettingButton
|
||||||
|
};
|
@ -52,7 +52,7 @@ import { computed, ref } from 'vue';
|
|||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import { useBasicLayout } from '@/composables';
|
import { useBasicLayout } from '@/composables';
|
||||||
import { useBoolean } from '@/hooks';
|
import { useBoolean } from '@/hooks';
|
||||||
import MessageList from './MessageList.vue';
|
import MessageList from './message-list.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'SystemMessage' });
|
defineOptions({ name: 'SystemMessage' });
|
||||||
|
|
@ -21,8 +21,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import { useBasicLayout } from '@/composables';
|
import { useBasicLayout } from '@/composables';
|
||||||
import GlobalLogo from '../GlobalLogo/index.vue';
|
import GlobalLogo from '../global-logo/index.vue';
|
||||||
import GlobalSearch from '../GlobalSearch/index.vue';
|
import GlobalSearch from '../global-search/index.vue';
|
||||||
import {
|
import {
|
||||||
FullScreen,
|
FullScreen,
|
||||||
GithubSite,
|
GithubSite,
|
3
src/layouts/common/global-search/components/index.ts
Normal file
3
src/layouts/common/global-search/components/index.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import SearchModal from './search-modal.vue';
|
||||||
|
|
||||||
|
export { SearchModal };
|
@ -34,8 +34,8 @@ import { useRouter } from 'vue-router';
|
|||||||
import { onKeyStroke, useDebounceFn } from '@vueuse/core';
|
import { onKeyStroke, useDebounceFn } from '@vueuse/core';
|
||||||
import { useRouteStore } from '@/store';
|
import { useRouteStore } from '@/store';
|
||||||
import { useBasicLayout } from '@/composables';
|
import { useBasicLayout } from '@/composables';
|
||||||
import SearchResult from './SearchResult.vue';
|
import SearchResult from './search-result.vue';
|
||||||
import SearchFooter from './SearchFooter.vue';
|
import SearchFooter from './search-footer.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'SearchModal' });
|
defineOptions({ name: 'SearchModal' });
|
||||||
|
|
4
src/layouts/common/global-sider/components/index.ts
Normal file
4
src/layouts/common/global-sider/components/index.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import VerticalSider from './vertical-sider/index.vue';
|
||||||
|
import VerticalMixSider from './vertical-mix-sider/index.vue';
|
||||||
|
|
||||||
|
export { VerticalSider, VerticalMixSider };
|
@ -0,0 +1,5 @@
|
|||||||
|
import MixMenuDetail from './mix-menu-detail.vue';
|
||||||
|
import MixMenuDrawer from './mix-menu-drawer.vue';
|
||||||
|
import MixMenuCollapse from './mix-menu-collapse.vue';
|
||||||
|
|
||||||
|
export { MixMenuDetail, MixMenuDrawer, MixMenuCollapse };
|
@ -0,0 +1,3 @@
|
|||||||
|
import VerticalMenu from './vertical-menu.vue';
|
||||||
|
|
||||||
|
export { VerticalMenu };
|
4
src/layouts/common/global-tab/components/index.ts
Normal file
4
src/layouts/common/global-tab/components/index.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import TabDetail from './tab-detail/index.vue';
|
||||||
|
import ReloadButton from './reload-button/index.vue';
|
||||||
|
|
||||||
|
export { TabDetail, ReloadButton };
|
@ -0,0 +1,3 @@
|
|||||||
|
import ContextMenu from './context-menu.vue';
|
||||||
|
|
||||||
|
export { ContextMenu };
|
@ -1,10 +1,10 @@
|
|||||||
import SettingDrawer from './SettingDrawer/index.vue';
|
import SettingDrawer from './setting-drawer/index.vue';
|
||||||
import GlobalHeader from './GlobalHeader/index.vue';
|
import GlobalHeader from './global-header/index.vue';
|
||||||
import GlobalTab from './GlobalTab/index.vue';
|
import GlobalTab from './global-tab/index.vue';
|
||||||
import GlobalSider from './GlobalSider/index.vue';
|
import GlobalSider from './global-sider/index.vue';
|
||||||
import GlobalContent from './GlobalContent/index.vue';
|
import GlobalContent from './global-content/index.vue';
|
||||||
import GlobalFooter from './GlobalFooter/index.vue';
|
import GlobalFooter from './global-footer/index.vue';
|
||||||
import GlobalLogo from './GlobalLogo/index.vue';
|
import GlobalLogo from './global-logo/index.vue';
|
||||||
import GlobalBackTop from './GlobalBackTop/index.vue';
|
import GlobalBackTop from './global-back-top/index.vue';
|
||||||
|
|
||||||
export { SettingDrawer, GlobalHeader, GlobalTab, GlobalSider, GlobalContent, GlobalFooter, GlobalLogo, GlobalBackTop };
|
export { SettingDrawer, GlobalHeader, GlobalTab, GlobalSider, GlobalContent, GlobalFooter, GlobalLogo, GlobalBackTop };
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import SettingMenu from '../SettingMenu/index.vue';
|
import SettingMenu from '../setting-menu/index.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'DarkMode' });
|
defineOptions({ name: 'DarkMode' });
|
||||||
|
|
9
src/layouts/common/setting-drawer/components/index.ts
Normal file
9
src/layouts/common/setting-drawer/components/index.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import DrawerButton from './drawer-button/index.vue';
|
||||||
|
import DarkMode from './dark-mode/index.vue';
|
||||||
|
import LayoutMode from './layout-mode/index.vue';
|
||||||
|
import ThemeColorSelect from './theme-color-select/index.vue';
|
||||||
|
import PageFunc from './page-func/index.vue';
|
||||||
|
import PageView from './page-view/index.vue';
|
||||||
|
import ThemeConfig from './theme-config/index.vue';
|
||||||
|
|
||||||
|
export { DrawerButton, DarkMode, LayoutMode, ThemeColorSelect, PageFunc, PageView, ThemeConfig };
|
@ -0,0 +1,3 @@
|
|||||||
|
import LayoutCheckbox from './layout-checkbox.vue';
|
||||||
|
|
||||||
|
export { LayoutCheckbox };
|
@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import SettingMenu from '../SettingMenu/index.vue';
|
import SettingMenu from '../setting-menu/index.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'PageFunc' });
|
defineOptions({ name: 'PageFunc' });
|
||||||
|
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import SettingMenu from '../SettingMenu/index.vue';
|
import SettingMenu from '../setting-menu/index.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'PageView' });
|
defineOptions({ name: 'PageView' });
|
||||||
|
|
@ -25,7 +25,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { traditionColors } from '@/settings';
|
import { traditionColors } from '@/settings';
|
||||||
import { useThemeStore } from '@/store';
|
import { useThemeStore } from '@/store';
|
||||||
import ColorCheckbox from './ColorCheckbox.vue';
|
import ColorCheckbox from './color-checkbox.vue';
|
||||||
|
|
||||||
defineOptions({ name: 'ColorModal' });
|
defineOptions({ name: 'ColorModal' });
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
import ColorCheckbox from './color-checkbox.vue';
|
||||||
|
import ColorModal from './color-modal.vue';
|
||||||
|
|
||||||
|
export { ColorCheckbox, ColorModal };
|
@ -1,4 +1,4 @@
|
|||||||
const BasicLayout = () => import('./BasicLayout/index.vue');
|
const BasicLayout = () => import('./basic-layout/index.vue');
|
||||||
const BlankLayout = () => import('./BlankLayout/index.vue');
|
const BlankLayout = () => import('./blank-layout/index.vue');
|
||||||
|
|
||||||
export { BasicLayout, BlankLayout };
|
export { BasicLayout, BlankLayout };
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { createApp } from 'vue';
|
import { createApp } from 'vue';
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import AppLoading from './components/common/AppLoading.vue';
|
import AppLoading from './components/common/app-loading.vue';
|
||||||
import { setupDirectives } from './directives';
|
import { setupDirectives } from './directives';
|
||||||
import { setupRouter } from './router';
|
import { setupRouter } from './router';
|
||||||
import { setupAssets } from './plugins';
|
import { setupAssets } from './plugins';
|
||||||
|
@ -8,6 +8,7 @@ export function initThemeSettings() {
|
|||||||
const isProd = import.meta.env.PROD;
|
const isProd = import.meta.env.PROD;
|
||||||
// 生产环境才缓存主题配置,本地开发实时调整配置更改配置的json
|
// 生产环境才缓存主题配置,本地开发实时调整配置更改配置的json
|
||||||
const storageSettings = localStg.get('themeSettings');
|
const storageSettings = localStg.get('themeSettings');
|
||||||
|
|
||||||
if (isProd && storageSettings) {
|
if (isProd && storageSettings) {
|
||||||
return storageSettings;
|
return storageSettings;
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,5 @@
|
|||||||
import { decrypto, encrypto } from '../crypto';
|
import { decrypto, encrypto } from '../crypto';
|
||||||
|
|
||||||
export function setSession(key: string, value: unknown) {
|
|
||||||
const json = encrypto(value);
|
|
||||||
sessionStorage.setItem(key, json);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getSession<T>(key: string) {
|
|
||||||
const json = sessionStorage.getItem(key);
|
|
||||||
let data: T | null = null;
|
|
||||||
if (json) {
|
|
||||||
try {
|
|
||||||
data = decrypto(json);
|
|
||||||
} catch {
|
|
||||||
// 防止解析失败
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function removeSession(key: string) {
|
|
||||||
window.sessionStorage.removeItem(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function clearSession() {
|
|
||||||
window.sessionStorage.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
function createSessionStorage<T extends StorageInterface.Session = StorageInterface.Session>() {
|
function createSessionStorage<T extends StorageInterface.Session = StorageInterface.Session>() {
|
||||||
function set<K extends keyof T>(key: K, value: T[K]) {
|
function set<K extends keyof T>(key: K, value: T[K]) {
|
||||||
const json = encrypto(value);
|
const json = encrypto(value);
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
import CornerTop from './CornerTop.vue';
|
|
||||||
import CornerBottom from './CornerBottom.vue';
|
|
||||||
|
|
||||||
export { CornerTop, CornerBottom };
|
|
@ -1,4 +0,0 @@
|
|||||||
import OtherLogin from './OtherLogin.vue';
|
|
||||||
import OtherAccount from './OtherAccount.vue';
|
|
||||||
|
|
||||||
export { OtherLogin, OtherAccount };
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user