@dt-frames/ui 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/package.json +1 -10
  2. package/src/assets/data/icons/actions.ts +0 -427
  3. package/src/assets/data/icons/code.ts +0 -10
  4. package/src/assets/data/icons/commuticate.ts +0 -190
  5. package/src/assets/data/icons/currency.ts +0 -46
  6. package/src/assets/data/icons/devices.ts +0 -128
  7. package/src/assets/data/icons/edit.ts +0 -165
  8. package/src/assets/data/icons/file.ts +0 -104
  9. package/src/assets/data/icons/math.ts +0 -53
  10. package/src/assets/data/icons/message.ts +0 -75
  11. package/src/assets/data/icons/navigate.ts +0 -181
  12. package/src/assets/data/icons/other.ts +0 -333
  13. package/src/assets/data/icons.ts +0 -58
  14. package/src/assets/imgs/logo/logo.png +0 -0
  15. package/src/assets/locales/en_US.json +0 -3
  16. package/src/assets/locales/zh_CN.json +0 -3
  17. package/src/assets/style/index.less +0 -10
  18. package/src/assets/style/reset.less +0 -20
  19. package/src/components/container/index.less +0 -85
  20. package/src/components/container/index.ts +0 -8
  21. package/src/components/container/src/bar.ts +0 -107
  22. package/src/components/container/src/lazy-container.vue +0 -9
  23. package/src/components/container/src/scroll-bar.vue +0 -117
  24. package/src/components/container/src/scroll-container.vue +0 -61
  25. package/src/components/curd/index.ts +0 -5
  26. package/src/components/curd/src/components/dialog.vue +0 -65
  27. package/src/components/curd/src/components/props.ts +0 -32
  28. package/src/components/curd/src/hooks/useCurd.tsx +0 -72
  29. package/src/components/curd/src/types/curd.type.ts +0 -29
  30. package/src/components/excel/index.ts +0 -6
  31. package/src/components/excel/src/export2Excel.ts +0 -44
  32. package/src/components/forms/index.ts +0 -12
  33. package/src/components/forms/src/componentMap.ts +0 -44
  34. package/src/components/forms/src/components/formButton.vue +0 -150
  35. package/src/components/forms/src/components/formIcon.vue +0 -50
  36. package/src/components/forms/src/components/formItem.vue +0 -407
  37. package/src/components/forms/src/components/radioButton.vue +0 -58
  38. package/src/components/forms/src/const/form.const.ts +0 -7
  39. package/src/components/forms/src/hooks/helper.ts +0 -70
  40. package/src/components/forms/src/hooks/useForm.ts +0 -130
  41. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  42. package/src/components/forms/src/hooks/useFormEvents.ts +0 -247
  43. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  44. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  45. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  46. package/src/components/forms/src/index.less +0 -82
  47. package/src/components/forms/src/index.vue +0 -306
  48. package/src/components/forms/src/prop.ts +0 -80
  49. package/src/components/forms/src/types/form.type.ts +0 -269
  50. package/src/components/icons/index.ts +0 -7
  51. package/src/components/icons/src/index.less +0 -96
  52. package/src/components/icons/src/pick-icon.vue +0 -117
  53. package/src/components/icons/src/svg-icon.vue +0 -117
  54. package/src/components/iframe/index.ts +0 -5
  55. package/src/components/iframe/src/index.less +0 -3
  56. package/src/components/iframe/src/index.vue +0 -38
  57. package/src/components/index.ts +0 -46
  58. package/src/components/modal/index.ts +0 -8
  59. package/src/components/modal/src/components/close-icon.vue +0 -47
  60. package/src/components/modal/src/components/modal-wrap.vue +0 -118
  61. package/src/components/modal/src/components/modal.tsx +0 -30
  62. package/src/components/modal/src/components/modalFooter.vue +0 -38
  63. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  64. package/src/components/modal/src/hooks/useFullScreen.ts +0 -27
  65. package/src/components/modal/src/hooks/useModal.ts +0 -177
  66. package/src/components/modal/src/index.less +0 -60
  67. package/src/components/modal/src/index.vue +0 -173
  68. package/src/components/modal/src/props.ts +0 -43
  69. package/src/components/modal/src/types/modal.type.ts +0 -27
  70. package/src/components/router/base-router.vue +0 -11
  71. package/src/components/router/index.ts +0 -3
  72. package/src/components/source/index.ts +0 -1
  73. package/src/components/source/src/hooks/useFetch.ts +0 -70
  74. package/src/components/source/src/hooks/usePage.ts +0 -3
  75. package/src/components/source/src/hooks/useSource.ts +0 -178
  76. package/src/components/source/src/index.ts +0 -5
  77. package/src/components/source/src/types/source.type.ts +0 -68
  78. package/src/components/source/src/types/table.type.ts +0 -8
  79. package/src/components/table/index.ts +0 -7
  80. package/src/components/table/src/components/TableActions.vue +0 -108
  81. package/src/components/table/src/components/TableHeader.vue +0 -77
  82. package/src/components/table/src/components/TableRender.vue +0 -76
  83. package/src/components/table/src/components/setting/Column.vue +0 -355
  84. package/src/components/table/src/components/setting/Download.vue +0 -55
  85. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  86. package/src/components/table/src/components/setting/Size.vue +0 -42
  87. package/src/components/table/src/components/setting/index.vue +0 -64
  88. package/src/components/table/src/const.ts +0 -13
  89. package/src/components/table/src/hooks/useColumns.ts +0 -319
  90. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  91. package/src/components/table/src/hooks/useDataSource.ts +0 -99
  92. package/src/components/table/src/hooks/useLoading.ts +0 -29
  93. package/src/components/table/src/hooks/usePagination.ts +0 -76
  94. package/src/components/table/src/hooks/useRowSelection.ts +0 -146
  95. package/src/components/table/src/hooks/useRows.ts +0 -30
  96. package/src/components/table/src/hooks/useTable.ts +0 -77
  97. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  98. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  99. package/src/components/table/src/hooks/useTableScroll.ts +0 -227
  100. package/src/components/table/src/index.less +0 -162
  101. package/src/components/table/src/index.vue +0 -198
  102. package/src/components/table/src/props.ts +0 -152
  103. package/src/components/table/src/types/table.type.ts +0 -133
  104. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  105. package/src/components/type.ts +0 -0
  106. package/src/directives/icon.ts +0 -36
  107. package/src/directives/index.ts +0 -26
  108. package/src/directives/permission.ts +0 -21
  109. package/src/global.d.ts +0 -8
  110. package/src/index.ts +0 -4
  111. package/src/theme/content/index.vue +0 -37
  112. package/src/theme/feature/back-top.vue +0 -11
  113. package/src/theme/feature/index.vue +0 -7
  114. package/src/theme/footer/index.less +0 -16
  115. package/src/theme/footer/index.vue +0 -24
  116. package/src/theme/header/components/bread-crumb.vue +0 -26
  117. package/src/theme/header/components/fullscreen.vue +0 -14
  118. package/src/theme/header/components/handler.ts +0 -81
  119. package/src/theme/header/components/index.ts +0 -21
  120. package/src/theme/header/components/lang-picker.vue +0 -36
  121. package/src/theme/header/components/logo.vue +0 -33
  122. package/src/theme/header/components/menu-search.vue +0 -62
  123. package/src/theme/header/components/notify.vue +0 -23
  124. package/src/theme/header/components/setting-theme.vue +0 -123
  125. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  126. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  127. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  128. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  129. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  130. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  131. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  132. package/src/theme/header/components/trigger.vue +0 -14
  133. package/src/theme/header/components/user-info.vue +0 -43
  134. package/src/theme/header/const/index.ts +0 -40
  135. package/src/theme/header/helper/menu-tree.ts +0 -67
  136. package/src/theme/header/index.less +0 -438
  137. package/src/theme/header/index.ts +0 -0
  138. package/src/theme/header/index.vue +0 -96
  139. package/src/theme/header/multiple-header.vue +0 -67
  140. package/src/theme/header/set-theme.less +0 -68
  141. package/src/theme/index.ts +0 -3
  142. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  143. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  144. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  145. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  146. package/src/theme/sider/components/drag-bar.vue +0 -26
  147. package/src/theme/sider/components/layout-menu.vue +0 -132
  148. package/src/theme/sider/components/props.ts +0 -97
  149. package/src/theme/sider/components/sider-trigger.vue +0 -24
  150. package/src/theme/sider/helper/sider.ts +0 -52
  151. package/src/theme/sider/helper/split-menu.ts +0 -147
  152. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  153. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  154. package/src/theme/sider/index.less +0 -203
  155. package/src/theme/sider/index.vue +0 -88
  156. package/src/theme/tabs/components/TabContent.vue +0 -37
  157. package/src/theme/tabs/components/TabRedo.vue +0 -18
  158. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  159. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  160. package/src/theme/tabs/index.less +0 -165
  161. package/src/theme/tabs/index.vue +0 -98
  162. package/src/theme/tabs/types/tabs.type.ts +0 -8
  163. package/src/theme/theme.less +0 -66
  164. package/src/theme/theme.vue +0 -89
  165. package/src/theme/transition.less +0 -99
@@ -1,26 +0,0 @@
1
-
2
- import { App } from 'vue'
3
- import { authMounted } from './permission'
4
- import { iconMounted } from './icon'
5
-
6
-
7
- const dtDirectives = [
8
- { name: 'auth', directive: authMounted },
9
- { name: 'icon', directive: iconMounted },
10
- ];
11
-
12
-
13
- // 初始化所有组件
14
- export function initDirectives() {
15
- return {
16
- install(app: App) {
17
- dtDirectives.forEach( comp => app.directive(comp.name, {
18
- mounted: comp.directive
19
- }));
20
- }
21
- }
22
- }
23
-
24
-
25
- export * from './permission'
26
- export * from './icon'
@@ -1,21 +0,0 @@
1
- /**
2
- * 权限控制,不使用传统的通过css隐藏dom元素
3
- * 使用方法: v-auth="'ADD'"
4
- */
5
- import { useAuthStore } from '@dt-frames/core';
6
- import type { DirectiveBinding } from 'vue';
7
-
8
-
9
- function hasAuth( el: Element, binding: any ) {
10
- const value = binding.value;
11
- if (!value) return;
12
-
13
- let { getAuths } = useAuthStore();
14
- if(!getAuths.includes( value )) {
15
- el.parentNode?.removeChild(el);
16
- }
17
- }
18
-
19
- export const authMounted = (el: Element, binding: DirectiveBinding<any>) => {
20
- hasAuth(el, binding);
21
- };
package/src/global.d.ts DELETED
@@ -1,8 +0,0 @@
1
- // 主要解决文件后缀引入后 代码报错的问题
2
- declare module '*.vue' {
3
- import { DefineComponent } from 'vue';
4
- const Component: DefineComponent<{}, {}, any>;
5
- export default Component;
6
- }
7
-
8
- declare module 'lodash-es';
package/src/index.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './components'
2
- export * from './theme'
3
- export * from './directives'
4
-
@@ -1,37 +0,0 @@
1
- <template>
2
- <div id="dt-layout-content" :class="['dt-layout-content', getLayoutContentMode]" :loading="getPageLoading && getOpenPageLoading">
3
- <LayoutContent>
4
- <router-view #default="{ Component, route}">
5
- <transition :name="getTransitionName(route)">
6
- <keep-alive v-if="!route.meta.hideTab && getCanCache" :include="getCaches">
7
- <component :is="Component" :key="route.path" />
8
- </keep-alive>
9
-
10
- <component v-else :is="Component" />
11
- </transition>
12
- </router-view>
13
- </LayoutContent>
14
- </div>
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import { unref, computed } from 'vue';
19
- import { LayoutContent } from 'ant-design-vue';
20
- import { useTheme, useApp, RouteReuseStore, useMultipleTab } from '@dt-frames/core';
21
- import { RouteRecordRaw } from 'vue-router';
22
-
23
- const { getTransitionMode, getOpenPageLoading } = useApp()
24
- const { getLayoutContentMode, getPageLoading } = useTheme()
25
- const { getCanCache } = useMultipleTab()
26
-
27
- const tabStore = RouteReuseStore()
28
-
29
- // 返回动画name
30
- function getTransitionName( route: RouteRecordRaw ): string | undefined {
31
- return (route.meta.transitionName || unref(getTransitionMode)) as string;
32
- }
33
-
34
- const getCaches = computed((): string[] => {
35
- return tabStore.getCachedTabList
36
- })
37
- </script>
@@ -1,11 +0,0 @@
1
- <template>
2
- <BackTop v-if="getShowBackToTop" :target="getTarget" :visibilityHeight="300" />
3
- </template>
4
-
5
- <script lang="ts" setup>
6
- import { BackTop } from 'ant-design-vue'
7
- import { useTheme } from '@dt-frames/core'
8
-
9
- const getTarget = () => document.getElementById('dt-layout-content')
10
- const { getShowBackToTop } = useTheme()
11
- </script>
@@ -1,7 +0,0 @@
1
- <template>
2
- <DtBackTop />
3
- </template>
4
-
5
- <script lang="ts" setup>
6
- import DtBackTop from './back-top.vue'
7
- </script>
@@ -1,16 +0,0 @@
1
- .dt-theme-footer{
2
- text-align: center;
3
- padding: 0;
4
- width: 100%;
5
- display: block;
6
- position: absolute;
7
- right: 0;
8
- bottom: 0;
9
- z-index: 1;
10
- background: #ebeff5;
11
- color: #b5b5b5;
12
- border-top: 1px solid #e7e7e7;
13
- span:first-of-type{
14
- padding-right: 10px;
15
- }
16
- }
@@ -1,24 +0,0 @@
1
- <template>
2
- <LayoutFooter class="dt-theme-footer" :style="footerOptions">
3
- <span>{{ title }}</span>
4
- <span>{{ subTitle }}</span>
5
- </LayoutFooter>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { useMenu, useTheme } from '@dt-frames/core';
10
- import { LayoutFooter } from 'ant-design-vue';
11
- import { computed, unref } from 'vue';
12
-
13
- const { getFooter } = useTheme()
14
- const { title, subTitle, height } = unref(getFooter) as any;
15
-
16
- const footerOptions = computed( () => {
17
- return {
18
- lineHeight: `${ height }px`,
19
- height: `${ height }px`,
20
- padding: '0',
21
- width: `100%`
22
- }
23
- } );
24
- </script>
@@ -1,26 +0,0 @@
1
- <template>
2
- <div class="dt-breadcrumb">
3
- <Breadcrumb :routes="routes">
4
- <template #itemRender="{ route }">
5
- <span>{{ route.label || route.meta?.title }}</span>
6
- </template>
7
- </Breadcrumb>
8
- </div>
9
- </template>
10
-
11
- <script lang="ts" setup>
12
- import { ref, watch, watchEffect } from 'vue'
13
- import { Breadcrumb } from 'ant-design-vue'
14
- import { getBreadCrumb } from '../helper/menu-tree'
15
- import { useRouter } from 'vue-router';
16
-
17
- let routes = ref([]);
18
- const { currentRoute } = useRouter();
19
-
20
- watchEffect( () => {
21
- if (currentRoute.value.path === '/') return
22
-
23
- routes.value = getBreadCrumb( currentRoute.value.path );
24
- });
25
-
26
- </script>
@@ -1,14 +0,0 @@
1
- <template>
2
- <span class="icon" @click="toggle">
3
- <span v-if="!isFullscreen" v-icon="'ic:baseline-fullscreen'"></span>
4
- <span v-else v-icon="'ic:baseline-fullscreen-exit'"></span>
5
- </span>
6
- </template>
7
-
8
- <script lang="ts" setup>
9
- import { useFullscreen } from '@vueuse/core';
10
- import { DtIcon } from '../../../components/icons'
11
-
12
- const { toggle, isFullscreen } = useFullscreen();
13
-
14
- </script>
@@ -1,81 +0,0 @@
1
- import { useThemeStore, ThemeOptions } from "@dt-frames/core";
2
- import { HandlerEnum } from "../const";
3
-
4
- export function baseHandler(event: HandlerEnum, value: any) {
5
- const themeStore = useThemeStore()
6
- const config = handler(event, value)
7
- themeStore.initThemeStore(config)
8
- }
9
-
10
- function handler(event: HandlerEnum, value: any): ThemeOptions {
11
- switch(event) {
12
- case HandlerEnum.CHANGE_LAYOUT:
13
- const { mode, type, split, headTheme, menuTheme } = value
14
- return {
15
- headOptions: {
16
- theme: headTheme
17
- },
18
- menuOptions: {
19
- mode,
20
- type,
21
- split,
22
- theme: menuTheme,
23
- show: true
24
- }
25
- }
26
-
27
- case HandlerEnum.SHOW_BREADCRUMB:
28
- return {
29
- headOptions: {
30
- showBreadCrumb: value
31
- }
32
- }
33
-
34
- case HandlerEnum.SHOW_SEARCH:
35
- return {
36
- headOptions: {
37
- showSearch: value
38
- }
39
- }
40
-
41
- case HandlerEnum.SHOW_NOTICY:
42
- return {
43
- headOptions: {
44
- notice: value
45
- }
46
- }
47
-
48
- case HandlerEnum.SHOW_FULL_SCREEN:
49
- return {
50
- headOptions: {
51
- showFullScreen: value
52
- }
53
- }
54
-
55
- case HandlerEnum.SHOW_LOCAL:
56
- return {
57
- headOptions: {
58
- showLocaleSwitch :value
59
- }
60
- }
61
-
62
- case HandlerEnum.SHOW_ROUTE_REUSE:
63
- return {
64
- routeReuse: {
65
- show: value
66
- }
67
- }
68
-
69
- case HandlerEnum.SHOW_FOOTER:
70
- return {
71
- footerOptions: {
72
- show: value
73
- }
74
- }
75
-
76
- case HandlerEnum.CONTENT_MODE:
77
- return {
78
- contentMode: value
79
- }
80
- }
81
- }
@@ -1,21 +0,0 @@
1
- import DtLogo from './logo.vue'
2
- import DtTrigger from './trigger.vue'
3
- import DtBreadCrumb from './bread-crumb.vue'
4
- import Notify from './notify.vue'
5
- import FullScreen from './fullscreen.vue'
6
- import UserInfo from './user-info.vue'
7
- import LangPicker from './lang-picker.vue'
8
- import SettingTheme from './setting-theme.vue'
9
- import MenuSearch from './menu-search.vue'
10
-
11
- export {
12
- DtLogo,
13
- DtTrigger,
14
- DtBreadCrumb,
15
- Notify,
16
- FullScreen,
17
- UserInfo,
18
- LangPicker,
19
- SettingTheme,
20
- MenuSearch
21
- }
@@ -1,36 +0,0 @@
1
- <template>
2
- <Popover placement="bottom" v-model:visible="visible" overlayClassName="lacale__popover" trigger="click">
3
- <template #content>
4
- <ul class="lang">
5
- <li v-for="it in localeList" @click="toggleLang(it.event)">
6
- <span v-icon="it.icon"></span>
7
- <span>{{ it.text }}</span>
8
- </li>
9
- </ul>
10
- </template>
11
-
12
- <span v-icon="'ic:baseline-language'" :fontSize="16"></span>
13
- </Popover>
14
- </template>
15
-
16
-
17
- <script setup lang="ts">
18
- import { ref } from 'vue'
19
- import { Popover } from 'ant-design-vue'
20
- import { DtCache, Language, changeLocale, localeList, CacheKey } from '@dt-frames/core'
21
-
22
- const visible = ref<boolean>(false);
23
-
24
- const props = defineProps({
25
- reload: { type: Boolean }
26
- })
27
-
28
- function toggleLang( lang: Language ) {
29
- visible.value = false;
30
-
31
- if( DtCache.getLocal(CacheKey.LOCALE) !== lang ) {
32
- changeLocale(lang);
33
- props.reload && location.reload();
34
- }
35
- }
36
- </script>
@@ -1,33 +0,0 @@
1
- <template>
2
- <div class="dt-logo" :class="getLogoClass">
3
- <img src="../../../assets/imgs/logo/logo.png" />
4
- <div class="dt-logo__title" v-show="showTitle">
5
- {{ title }}
6
- </div>
7
- </div>
8
- </template>
9
-
10
- <script lang="ts" setup>
11
- import { computed, unref } from "vue";
12
- import { useMenu, useTheme } from "@dt-frames/core"
13
-
14
- const title = 'Ithink-DT 深迪科技';
15
- const { getCollapsedShowTitle } = useMenu()
16
-
17
- const props = defineProps({
18
- // logo主题
19
- theme: { type: String, validator: ( v: string ) => ['light', 'dark'].includes(v) },
20
-
21
- // 是否显示标题
22
- showTitle: { type: Boolean, default: true },
23
- });
24
-
25
- // logo 背景颜色修改 logo是否显示标题
26
- const getLogoClass = computed(() => {
27
- return [
28
- 'dt-logo',
29
- props.theme,
30
- { 'collapsed-show-title': unref(getCollapsedShowTitle) }
31
- ]
32
- })
33
- </script>
@@ -1,62 +0,0 @@
1
- <template>
2
- <div class="dt-menu-search" v-if="isUseDef">
3
- <Popover placement="bottom" overlayClassName="menu_search__popover" trigger="focus" @visibleChange="visibleChange">
4
- <template #content>
5
- <p v-for="menu in menuList" @click="navigation(menu.url)">{{ menu.label }}</p>
6
-
7
- <div v-if="!menuList.length">
8
- <Empty description="" :imageStyle="{width: '100%'}"/>
9
- </div>
10
- </template>
11
-
12
- <InputSearch v-model:value="filter" placeholder="搜索..." @input="filterMenu"></InputSearch>
13
- </Popover>
14
- </div>
15
-
16
- <template v-else>
17
- <getShowSearch></getShowSearch>
18
- </template>
19
-
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import { ref, computed } from 'vue';
24
- import { Popover,InputSearch, Empty } from 'ant-design-vue'
25
- import { useRouter } from 'vue-router'
26
- import { getFilterMenu } from '../helper/menu-tree'
27
- import { useHeader, isBoolean } from '@dt-frames/core'
28
-
29
-
30
- const menuList = ref([]);
31
- const router = useRouter()
32
- const filter = ref('');
33
-
34
-
35
- const { getShowSearch } = useHeader()
36
-
37
- const isUseDef = computed(() => {
38
- return isBoolean(getShowSearch.value)
39
- })
40
-
41
- function visibleChange(e) {
42
- if( e ) {
43
- filterMenu()
44
- } else {
45
- filter.value = null
46
- }
47
- }
48
-
49
- function filterMenu() {
50
- menuList.value = getFilterMenu( filter.value, true );
51
- }
52
-
53
- function navigation(url: string) {
54
- router.push(url);
55
-
56
- setTimeout(() => {
57
- filter.value = '';
58
- menuList.value = [];
59
- });
60
- }
61
-
62
- </script>
@@ -1,23 +0,0 @@
1
- <template>
2
- <Popover trigger="click" overlayClassName="nofify__popover">
3
- <template #content>
4
- <getShowNotice></getShowNotice>
5
- </template>
6
-
7
- <span>
8
- <span v-icon="'ant-design:bell-outlined'"></span>
9
- <span class="red-dot"></span>
10
- </span>
11
-
12
- </Popover>
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import { ref } from 'vue';
17
- import { Popover, Tabs, TabPane } from 'ant-design-vue';
18
- import { useHeader } from '@dt-frames/core';
19
-
20
- const activeKey = ref('1');
21
- const { getShowNotice } = useHeader()
22
-
23
- </script>
@@ -1,123 +0,0 @@
1
- <template>
2
- <Tooltip placement="bottom" title="风格设置">
3
- <span v-icon="'ant-design:setting-outlined'" @click="visible = true"></span>
4
- </Tooltip>
5
-
6
- <Drawer
7
- v-model:visible="visible"
8
- title="项目配置"
9
- placement="right"
10
- width="320"
11
- >
12
- <Divider>导航栏模式</Divider>
13
- <MenuType></MenuType>
14
- <Divider>界面显示</Divider>
15
- <Feature></Feature>
16
- <Divider></Divider>
17
- <div class="dt-setting-theme-footer">
18
- <Button @click="copy" type="primary" block>拷贝</Button>
19
- <Button @click="reset" block>重置</Button>
20
- </div>
21
-
22
- <div class="setting-theme-tips">
23
- 该功能主要实时预览各种布局效果,更多完整配置在 src/core/settings/theme.ts 中设置,在生产环境该布局预览功能将被关闭。
24
- </div>
25
- </Drawer>
26
- </template>
27
-
28
- <script setup lang="tsx">
29
- import { ref, unref, computed } from 'vue'
30
- import { useMenu, useHeader, useMultipleTab, useTheme, useThemeStore, copyText } from '@dt-frames/core'
31
- import { Tooltip, Drawer, Divider, Button, Modal } from 'ant-design-vue'
32
- import { MenuType, Feature } from './theme-drawer'
33
- import { Recordable } from '../../../../../core/es'
34
-
35
- const themeStore = useThemeStore()
36
- const { getMenuType, getMenuMode } = useMenu()
37
- const {
38
- getShowBread,
39
- getShowSearch,
40
- getShowNotice,
41
- getShowFullScreen,
42
- getShowLocale
43
- } = useHeader()
44
- const { getShowMultipleTab } = useMultipleTab()
45
- const { getFooter, getContentMode } = useTheme()
46
-
47
- const showFooter = computed(() => unref(getFooter)?.show)
48
-
49
- const visible = ref(false)
50
- function getConfig() {
51
- return {
52
- contentMode: unref(getContentMode),
53
- menuOptions: {
54
- mode: unref(getMenuMode),
55
- type: unref(getMenuType),
56
- split: unref(getMenuType) === MenuType.MIX ? true : false,
57
- },
58
- headOptions: {
59
- showBreadCrumb: unref(getShowBread),
60
- showSearch: unref(getShowSearch),
61
- notice: unref(getShowNotice),
62
- showFullScreen: unref(getShowFullScreen),
63
- showLocaleSwitch: unref(getShowLocale)
64
- },
65
- mulTabsOptions: {
66
- show: unref(getShowMultipleTab)
67
- },
68
- footerOptions: {
69
- show: unref(showFooter)
70
- }
71
- }
72
- }
73
-
74
- const defaultConfig = getConfig()
75
-
76
- // 拷贝配置项
77
- function copy() {
78
- const afterUpdateConfig = getConfig()
79
- let copyObj: Recordable = {}
80
-
81
- const isDiff = (newVal, oldVal) => newVal !== oldVal ? newVal : null
82
- const isSameObj = ( val1, val2 ) => JSON.stringify(val1) === JSON.stringify(val2)
83
-
84
- const getDiff = (target, orgTarget) => {
85
- let obj = {}
86
- for( let it in target ) {
87
- if(isDiff(target[it], orgTarget[it]) !== null) {
88
- obj[it] = target[it]
89
- }
90
- }
91
-
92
- return obj
93
- }
94
-
95
- for( let it in afterUpdateConfig ) {
96
- if( !isSameObj(afterUpdateConfig[it], defaultConfig[it]) ) {
97
- copyObj[it] = getDiff( afterUpdateConfig[it], defaultConfig[it] )
98
- }
99
- }
100
-
101
- if( Object.keys(copyObj).length ) {
102
- if( copyText(JSON.stringify(copyObj)) ) {
103
- Modal.success({
104
- centered: true,
105
- okText: '确定',
106
- title: '操作成功',
107
- content: '复制成功,请到 src/core/settings/theme.ts 中修改配置!'
108
- })
109
- }
110
- } else {
111
- Modal.info({
112
- centered: true,
113
- okText: '确定',
114
- title: '拷贝提示',
115
- content: '未检测到修改任何配置信息!'
116
- })
117
- }
118
- }
119
-
120
- function reset() {
121
- themeStore.initThemeStore( defaultConfig )
122
- }
123
- </script>
@@ -1,12 +0,0 @@
1
- import { ContentMode } from "@dt-frames/core";
2
-
3
- export const contentModeOptions = [
4
- {
5
- value: ContentMode.FULL,
6
- label: '流式',
7
- },
8
- {
9
- value: ContentMode.FIXED,
10
- label: '定宽',
11
- },
12
- ];
@@ -1,75 +0,0 @@
1
- <template>
2
- <SwitchItem
3
- title="面包屑"
4
- :event="HandlerEnum.SHOW_BREADCRUMB"
5
- :def="unref(getShowBread)"
6
- ></SwitchItem>
7
-
8
- <SwitchItem
9
- title="菜单检索"
10
- :event="HandlerEnum.SHOW_SEARCH"
11
- :def="unref(getShowSearch) ? true : false"
12
- ></SwitchItem>
13
-
14
- <SwitchItem
15
- title="通知公告"
16
- :event="HandlerEnum.SHOW_NOTICY"
17
- :def="unref(getShowNotice) ? true : false"
18
- ></SwitchItem>
19
-
20
- <SwitchItem
21
- title="页面全屏"
22
- :event="HandlerEnum.SHOW_FULL_SCREEN"
23
- :def="unref(getShowFullScreen)"
24
- ></SwitchItem>
25
-
26
- <SwitchItem
27
- title="国际化"
28
- :event="HandlerEnum.SHOW_LOCAL"
29
- :def="unref(getShowLocale)"
30
- ></SwitchItem>
31
-
32
- <SwitchItem
33
- title="路由复用"
34
- :event="HandlerEnum.SHOW_ROUTE_REUSE"
35
- :def="unref(getShowMultipleTab)"
36
- ></SwitchItem>
37
-
38
- <SwitchItem
39
- title="显示底部"
40
- :event="HandlerEnum.SHOW_FOOTER"
41
- :def="unref(showFooter)"
42
- ></SwitchItem>
43
-
44
- <!-- 内容区域宽度 -->
45
- <SelectItem
46
- title="内容区域宽度"
47
- :event="HandlerEnum.CONTENT_MODE"
48
- :def="getContentMode"
49
- :options="contentModeOptions"
50
- ></SelectItem>
51
-
52
- </template>
53
-
54
- <script lang="ts" setup>
55
- import { unref, computed } from 'vue'
56
- import { useMultipleTab, useHeader, useTheme } from '@dt-frames/core'
57
- import { HandlerEnum } from '../../const'
58
- import { contentModeOptions } from './enum'
59
- import SwitchItem from './switch-item.vue'
60
- import SelectItem from './select-item.vue'
61
-
62
- const {
63
- getShowBread,
64
- getShowSearch,
65
- getShowNotice,
66
- getShowFullScreen,
67
- getShowLocale
68
- } = useHeader()
69
-
70
- const { getShowMultipleTab } = useMultipleTab()
71
- const { getFooter, getContentMode } = useTheme()
72
-
73
- const showFooter = computed(() => unref(getFooter)?.show)
74
-
75
- </script>