@dt-frames/ui 1.0.11 → 1.0.15

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 (219) hide show
  1. package/es/components/curd/src/components/dialog.d.ts +34 -25
  2. package/es/components/curd/src/components/props.d.ts +6 -5
  3. package/es/components/curd/src/hooks/useCurd.d.ts +1 -0
  4. package/es/components/curd/src/types/curd.type.d.ts +4 -3
  5. package/es/components/forms/src/components/formButton.d.ts +1 -2
  6. package/es/components/forms/src/components/formIcon.d.ts +16 -11
  7. package/es/components/forms/src/components/formInputUseDialog.d.ts +903 -0
  8. package/es/components/forms/src/hooks/useFormActions.d.ts +2 -2
  9. package/es/components/forms/src/index.d.ts +2 -2
  10. package/es/components/forms/src/types/form.type.d.ts +6 -18
  11. package/es/components/index.d.ts +2 -2
  12. package/es/components/modal/src/components/modal.d.ts +2 -2
  13. package/es/components/modal/src/components/modalFooter.d.ts +10 -5
  14. package/es/components/modal/src/index.d.ts +16 -11
  15. package/es/components/modal/src/props.d.ts +2 -1
  16. package/es/components/modal/src/types/modal.type.d.ts +4 -1
  17. package/es/components/source/src/hooks/useFetch.d.ts +1 -1
  18. package/es/components/table/src/hooks/useCustomRow.d.ts +19 -0
  19. package/es/components/table/src/hooks/useTable.d.ts +2 -2
  20. package/es/components/table/src/index.d.ts +24 -5
  21. package/es/components/table/src/props.d.ts +5 -2
  22. package/es/components/table/src/types/table.type.d.ts +2 -2
  23. package/es/components/tree/src/props.d.ts +8 -1
  24. package/es/components/upload/index.d.ts +1 -2
  25. package/es/components/upload/src/helper.d.ts +1 -0
  26. package/es/components/upload/src/index.d.ts +34 -11
  27. package/es/components/upload/src/props.d.ts +4 -1
  28. package/es/components/upload/src/upload.d.ts +42 -11
  29. package/es/index.js +356 -200
  30. package/es/style/components/forms/index.less +23 -0
  31. package/es/style/components/icons/index.less +1 -1
  32. package/es/style/components/upload/index.less +3 -11
  33. package/package.json +1 -10
  34. package/vite.config.js +10 -0
  35. package/src/assets/data/icons/actions.ts +0 -427
  36. package/src/assets/data/icons/code.ts +0 -10
  37. package/src/assets/data/icons/commuticate.ts +0 -190
  38. package/src/assets/data/icons/currency.ts +0 -46
  39. package/src/assets/data/icons/devices.ts +0 -128
  40. package/src/assets/data/icons/edit.ts +0 -165
  41. package/src/assets/data/icons/file.ts +0 -104
  42. package/src/assets/data/icons/math.ts +0 -53
  43. package/src/assets/data/icons/message.ts +0 -75
  44. package/src/assets/data/icons/navigate.ts +0 -181
  45. package/src/assets/data/icons/other.ts +0 -333
  46. package/src/assets/data/icons.ts +0 -58
  47. package/src/assets/imgs/header/avatar.png +0 -0
  48. package/src/assets/imgs/logo/logo.png +0 -0
  49. package/src/assets/locales/en_US.json +0 -3
  50. package/src/assets/locales/zh_CN.json +0 -3
  51. package/src/assets/style/index.less +0 -10
  52. package/src/assets/style/reset.less +0 -17
  53. package/src/components/container/index.less +0 -85
  54. package/src/components/container/index.ts +0 -8
  55. package/src/components/container/src/bar.ts +0 -107
  56. package/src/components/container/src/lazy-container.vue +0 -9
  57. package/src/components/container/src/scroll-bar.vue +0 -117
  58. package/src/components/container/src/scroll-container.vue +0 -61
  59. package/src/components/curd/index.ts +0 -5
  60. package/src/components/curd/src/components/dialog.vue +0 -73
  61. package/src/components/curd/src/components/props.ts +0 -32
  62. package/src/components/curd/src/hooks/useCurd.tsx +0 -87
  63. package/src/components/curd/src/types/curd.type.ts +0 -31
  64. package/src/components/excel/index.ts +0 -6
  65. package/src/components/excel/src/export2Excel.ts +0 -44
  66. package/src/components/forms/index.less +0 -84
  67. package/src/components/forms/index.ts +0 -11
  68. package/src/components/forms/src/componentMap.ts +0 -44
  69. package/src/components/forms/src/components/formButton.vue +0 -150
  70. package/src/components/forms/src/components/formIcon.vue +0 -51
  71. package/src/components/forms/src/components/formItem.vue +0 -420
  72. package/src/components/forms/src/components/radioButton.vue +0 -58
  73. package/src/components/forms/src/const/form.const.ts +0 -7
  74. package/src/components/forms/src/hooks/helper.ts +0 -70
  75. package/src/components/forms/src/hooks/useForm.ts +0 -130
  76. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  77. package/src/components/forms/src/hooks/useFormEvents.ts +0 -248
  78. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  79. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  80. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  81. package/src/components/forms/src/index.vue +0 -310
  82. package/src/components/forms/src/prop.ts +0 -80
  83. package/src/components/forms/src/types/form.type.ts +0 -269
  84. package/src/components/icons/index.less +0 -101
  85. package/src/components/icons/index.ts +0 -7
  86. package/src/components/icons/src/pick-icon.vue +0 -119
  87. package/src/components/icons/src/svg-icon.vue +0 -117
  88. package/src/components/iframe/index.less +0 -3
  89. package/src/components/iframe/index.ts +0 -5
  90. package/src/components/iframe/src/index.less +0 -3
  91. package/src/components/iframe/src/index.vue +0 -38
  92. package/src/components/index.ts +0 -54
  93. package/src/components/modal/index.less +0 -60
  94. package/src/components/modal/index.ts +0 -8
  95. package/src/components/modal/src/components/close-icon.vue +0 -46
  96. package/src/components/modal/src/components/modal-wrap.vue +0 -128
  97. package/src/components/modal/src/components/modal.tsx +0 -30
  98. package/src/components/modal/src/components/modalFooter.vue +0 -38
  99. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  100. package/src/components/modal/src/hooks/useFullScreen.ts +0 -29
  101. package/src/components/modal/src/hooks/useModal.ts +0 -194
  102. package/src/components/modal/src/index.vue +0 -173
  103. package/src/components/modal/src/props.ts +0 -43
  104. package/src/components/modal/src/types/modal.type.ts +0 -27
  105. package/src/components/router/base-router.vue +0 -11
  106. package/src/components/router/index.ts +0 -3
  107. package/src/components/source/index.ts +0 -1
  108. package/src/components/source/src/hooks/useFetch.ts +0 -42
  109. package/src/components/source/src/hooks/usePage.ts +0 -3
  110. package/src/components/source/src/hooks/useSource.ts +0 -214
  111. package/src/components/source/src/index.ts +0 -5
  112. package/src/components/source/src/types/source.type.ts +0 -58
  113. package/src/components/source/src/types/table.type.ts +0 -8
  114. package/src/components/table/index.less +0 -179
  115. package/src/components/table/index.ts +0 -7
  116. package/src/components/table/src/components/TableActions.vue +0 -108
  117. package/src/components/table/src/components/TableHeader.vue +0 -78
  118. package/src/components/table/src/components/TableRender.vue +0 -76
  119. package/src/components/table/src/components/editable/CellComponent.ts +0 -57
  120. package/src/components/table/src/components/editable/EditTableCell.vue +0 -181
  121. package/src/components/table/src/components/editable/componentMap.ts +0 -18
  122. package/src/components/table/src/components/editable/index.ts +0 -58
  123. package/src/components/table/src/components/setting/Column.vue +0 -354
  124. package/src/components/table/src/components/setting/Download.vue +0 -55
  125. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  126. package/src/components/table/src/components/setting/Size.vue +0 -42
  127. package/src/components/table/src/components/setting/index.vue +0 -64
  128. package/src/components/table/src/const.ts +0 -13
  129. package/src/components/table/src/hooks/useColumns.ts +0 -326
  130. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  131. package/src/components/table/src/hooks/useDataSource.ts +0 -97
  132. package/src/components/table/src/hooks/useHeaderCode.ts +0 -89
  133. package/src/components/table/src/hooks/useLoading.ts +0 -29
  134. package/src/components/table/src/hooks/usePagination.ts +0 -76
  135. package/src/components/table/src/hooks/useRowSelection.ts +0 -145
  136. package/src/components/table/src/hooks/useRows.ts +0 -30
  137. package/src/components/table/src/hooks/useTable.ts +0 -90
  138. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  139. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  140. package/src/components/table/src/hooks/useTableScroll.ts +0 -229
  141. package/src/components/table/src/index.vue +0 -200
  142. package/src/components/table/src/props.ts +0 -157
  143. package/src/components/table/src/types/table.type.ts +0 -160
  144. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  145. package/src/components/tree/index.less +0 -41
  146. package/src/components/tree/index.ts +0 -5
  147. package/src/components/tree/src/components/TreeHeader.vue +0 -97
  148. package/src/components/tree/src/hooks/useTree.ts +0 -239
  149. package/src/components/tree/src/index.vue +0 -392
  150. package/src/components/tree/src/props.ts +0 -133
  151. package/src/components/tree/src/type/tree.ts +0 -105
  152. package/src/components/tree/src/utils/tree.ts +0 -73
  153. package/src/components/type.ts +0 -0
  154. package/src/components/upload/index.less +0 -43
  155. package/src/components/upload/index.ts +0 -7
  156. package/src/components/upload/src/helper.ts +0 -32
  157. package/src/components/upload/src/index.vue +0 -38
  158. package/src/components/upload/src/props.ts +0 -48
  159. package/src/components/upload/src/upload.vue +0 -166
  160. package/src/directives/icon.ts +0 -36
  161. package/src/directives/index.ts +0 -26
  162. package/src/directives/permission.ts +0 -20
  163. package/src/global.d.ts +0 -8
  164. package/src/index.ts +0 -4
  165. package/src/theme/content/index.vue +0 -37
  166. package/src/theme/feature/back-top.vue +0 -11
  167. package/src/theme/feature/index.vue +0 -7
  168. package/src/theme/footer/index.less +0 -16
  169. package/src/theme/footer/index.vue +0 -24
  170. package/src/theme/header/components/bread-crumb.vue +0 -26
  171. package/src/theme/header/components/fullscreen.vue +0 -12
  172. package/src/theme/header/components/handler.ts +0 -81
  173. package/src/theme/header/components/index.ts +0 -21
  174. package/src/theme/header/components/lang-picker.vue +0 -36
  175. package/src/theme/header/components/logo.vue +0 -35
  176. package/src/theme/header/components/menu-search.vue +0 -62
  177. package/src/theme/header/components/notify.vue +0 -22
  178. package/src/theme/header/components/setting-theme.vue +0 -123
  179. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  180. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  181. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  182. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  183. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  184. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  185. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  186. package/src/theme/header/components/trigger.vue +0 -14
  187. package/src/theme/header/components/user-info.vue +0 -60
  188. package/src/theme/header/const/index.ts +0 -40
  189. package/src/theme/header/helper/menu-tree.ts +0 -64
  190. package/src/theme/header/index.less +0 -442
  191. package/src/theme/header/index.ts +0 -0
  192. package/src/theme/header/index.vue +0 -96
  193. package/src/theme/header/multiple-header.vue +0 -67
  194. package/src/theme/header/set-theme.less +0 -68
  195. package/src/theme/index.ts +0 -3
  196. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  197. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  198. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  199. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  200. package/src/theme/sider/components/drag-bar.vue +0 -26
  201. package/src/theme/sider/components/layout-menu.vue +0 -132
  202. package/src/theme/sider/components/props.ts +0 -97
  203. package/src/theme/sider/components/sider-trigger.vue +0 -24
  204. package/src/theme/sider/helper/sider.ts +0 -52
  205. package/src/theme/sider/helper/split-menu.ts +0 -146
  206. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  207. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  208. package/src/theme/sider/index.less +0 -203
  209. package/src/theme/sider/index.vue +0 -88
  210. package/src/theme/tabs/components/TabContent.vue +0 -36
  211. package/src/theme/tabs/components/TabRedo.vue +0 -18
  212. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  213. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  214. package/src/theme/tabs/index.less +0 -165
  215. package/src/theme/tabs/index.vue +0 -98
  216. package/src/theme/tabs/types/tabs.type.ts +0 -8
  217. package/src/theme/theme.less +0 -67
  218. package/src/theme/theme.vue +0 -90
  219. 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,20 +0,0 @@
1
- /**
2
- * 权限控制,不使用传统的通过css隐藏dom元素
3
- * 使用方法: v-auth="'ADD'"
4
- */
5
- import { CacheKey, DtCache } 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
- if(!DtCache.getLocal(CacheKey.AUTHS).includes( value )) {
14
- el.parentNode?.removeChild(el);
15
- }
16
- }
17
-
18
- export const authMounted = (el: Element, binding: DirectiveBinding<any>) => {
19
- hasAuth(el, binding);
20
- };
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 { 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, 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,12 +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
- const { toggle, isFullscreen } = useFullscreen();
11
-
12
- </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,35 +0,0 @@
1
- <template>
2
- <div class="dt-logo" :class="getLogoClass">
3
- <!-- <img src="../../../assets/imgs/logo/logo.jpeg" /> -->
4
- <DtIcon icon-class="logo" :size="42" class-name="brand-logo"></DtIcon>
5
- <div class="dt-logo__title" v-show="showTitle">
6
- {{ title }}
7
- </div>
8
- </div>
9
- </template>
10
-
11
- <script lang="ts" setup>
12
- import { computed, unref } from "vue";
13
- import { useMenu, useTheme } from "@dt-frames/core"
14
- import { DtIcon } from "../../../components"
15
-
16
- const title = '隆基税务后台管理系统';
17
- const { getCollapsedShowTitle } = useMenu()
18
-
19
- const props = defineProps({
20
- // logo主题
21
- theme: { type: String, validator: ( v: string ) => ['light', 'dark'].includes(v) },
22
-
23
- // 是否显示标题
24
- showTitle: { type: Boolean, default: true },
25
- });
26
-
27
- // logo 背景颜色修改 logo是否显示标题
28
- const getLogoClass = computed(() => {
29
- return [
30
- 'dt-logo',
31
- props.theme,
32
- { 'collapsed-show-title': unref(getCollapsedShowTitle) }
33
- ]
34
- })
35
- </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,22 +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 } from 'ant-design-vue';
18
- import { useHeader } from '@dt-frames/core';
19
-
20
- const { getShowNotice } = useHeader()
21
-
22
- </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>