@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,101 +0,0 @@
1
- @primary-color: #269ac1;
2
- @icon-pick-hover-color: #269ac1;
3
-
4
- .svg-icon {
5
- fill: currentColor;
6
- vertical-align: middle;
7
- }
8
-
9
- .dt-icon{
10
- display: inline-block;
11
- text-align: center;
12
- vertical-align: middle;
13
- & > svg{
14
- vertical-align: middle;
15
- }
16
- }
17
-
18
- .dt-pick-icon {
19
- display: flex;
20
- flex-direction: row;
21
- height: 600px;
22
-
23
- &__menus{
24
- height: 100%;
25
- overflow-y: auto;
26
- width: 140px;
27
- border-right: 1px solid #e7e7e7;
28
- border-top: 1px solid #e7e7e7;
29
- background: #fff;
30
- .menu{
31
- border-bottom: 1px solid #e7e7e7;
32
- padding: 8px;
33
- text-align: center;
34
- cursor: pointer;
35
- transform: all 0.25s;
36
- p{
37
- font-size: 14px;
38
- line-height: 24x;
39
- span{
40
- opacity: 0.7;
41
- font-size: 12px;
42
- padding-left: 6px;
43
- }
44
- }
45
- &.active, &:hover{
46
- background: @primary-color;
47
- color: #fff;
48
- }
49
- }
50
- }
51
-
52
- &__content{
53
- height: 100%;
54
- overflow-y: auto;
55
- flex: 1;
56
- background: #fff;
57
-
58
- .ant-input-search{
59
- width: 50%;
60
- margin: 0 25% 40px 25%;
61
- }
62
-
63
- &_item{
64
- display: flex;
65
- flex-direction: row;
66
- flex-wrap: wrap;
67
- padding: 20px;
68
- a {
69
- margin: 6px;
70
- line-height: 22px;
71
- height: 30px;
72
- width: 30px;
73
- text-align: center;
74
- cursor: pointer;
75
- padding: 4px;
76
- transform: all 0.2s;
77
- border: 1px solid #fff;
78
- &:hover, &.active-icon{
79
- border: 1px solid @primary-color;
80
- border-radius: 4px;
81
- color: @primary-color;
82
- }
83
- }
84
- }
85
-
86
- i{
87
- font-size: 22px;
88
- }
89
- }
90
- }
91
-
92
- .dt-pick-icon-item{
93
- .ant-tooltip-inner, .ant-tooltip-arrow-content {
94
- background: #fff !important;
95
- color: @icon-pick-hover-color ;
96
- }
97
- }
98
-
99
- .dt-icon-dialog > div{
100
- top: 0 !important;
101
- }
@@ -1,7 +0,0 @@
1
- import DtIcon from './src/svg-icon.vue'
2
- import DtPickIcon from './src/pick-icon.vue'
3
-
4
- export {
5
- DtIcon,
6
- DtPickIcon
7
- }
@@ -1,119 +0,0 @@
1
- <template>
2
- <div :class="clsPrefix">
3
- <div :class="`${clsPrefix}__menus`">
4
- <div
5
- v-for="(menu, index) in iconMenus"
6
- :key="menu.type"
7
- class="menu"
8
- @click="activeIndex = index"
9
- :class="{'active': activeIndex === index}"
10
- >
11
- <p>{{ menu.type }}<span>({{ menu.total }})</span></p>
12
- </div>
13
- </div>
14
-
15
- <div :class="`${clsPrefix}__content`">
16
- <keep-alive>
17
- <div :class="`${clsPrefix}__content_item`">
18
- <InputSearch
19
- v-model:value="filter"
20
- enter-button
21
- placeholder="请输入过滤条件"
22
- @search="onFilter"
23
- ></InputSearch>
24
-
25
- <template v-for="icon in currentIcons" :key="icon">
26
- <a @click="selectIcon(icon)" :class="activeIcon === icon && 'active-icon'">
27
- <Tooltip
28
- placement="bottom"
29
- overlayClassName="dt-pick-icon-item">
30
- <template #title>
31
- {{ icon }}
32
- </template>
33
- <i class="i" :class="icon"></i>
34
- </Tooltip>
35
- </a>
36
- </template>
37
- </div>
38
- </keep-alive>
39
- </div>
40
- </div>
41
- </template>
42
-
43
- <script lang="ts" setup>
44
- import { ref, computed, unref, watch } from 'vue'
45
- import { Tooltip, InputSearch } from 'ant-design-vue'
46
- import { Icons } from '../../../assets/data/icons'
47
-
48
- const emits = defineEmits(['chooseIcon'])
49
-
50
- type IconMenu = {
51
- type: string,
52
- total: number
53
- }
54
-
55
- const clsPrefix = 'dt-pick-icon'
56
- const activeIndex = ref(1)
57
- const filter = ref(null)
58
- const currentIcons = ref([])
59
- const activeIcon = ref(null)
60
-
61
-
62
- const iconMenus = computed(() => {
63
- let total: number = 0
64
- let menus: IconMenu[] = []
65
-
66
- Icons.forEach( it => {
67
- let cLen = it.children?.length || 0
68
- total += cLen
69
-
70
- menus.push({
71
- type: it.type,
72
- total: cLen
73
- })
74
- } )
75
-
76
- menus.unshift({
77
- type: '所有',
78
- total
79
- })
80
-
81
- return menus
82
- })
83
-
84
- function getIcons(): string[] {
85
-
86
- if( unref(activeIndex) ) {
87
- currentIcons.value = Icons[activeIndex.value - 1].children
88
- } else {
89
- currentIcons.value = Icons.reduce( (icons, it) => {
90
- icons = icons.concat( it.children )
91
- return icons
92
- }, [] )
93
- }
94
-
95
- return unref(currentIcons)
96
- }
97
-
98
- watch(
99
- () => activeIndex.value,
100
- v => {
101
- getIcons()
102
- },
103
- {
104
- immediate: true
105
- }
106
- )
107
-
108
- // 过滤
109
- function onFilter(e) {
110
- currentIcons.value = getIcons().filter( it => it.indexOf(unref(filter)) !== -1 )
111
- }
112
-
113
- function selectIcon(icon) {
114
- activeIcon.value = icon
115
- emits('chooseIcon', icon)
116
- }
117
-
118
-
119
- </script>
@@ -1,117 +0,0 @@
1
- <template>
2
- <svg
3
- v-if="isSvgIcon"
4
- :class="clsName"
5
- aria-hidden="true"
6
- :style="{
7
- fontSize: size + 'px',
8
- width: size + 'px',
9
- height: size + 'px'
10
- }">
11
- <use :xlink:href="iconName" :fill="color" />
12
- </svg>
13
-
14
- <i
15
- v-else
16
- class="dt-icon i"
17
- :style="{
18
- color,
19
- fontSize: size + 'px'
20
- }"
21
- :class="[iconName, clsName]"
22
- ></i>
23
- </template>
24
-
25
- <script lang="ts">
26
- import { isArray, isFunction, isObject, isString, Recordable } from '@dt-frames/core';
27
- import {computed, defineComponent, unref} from 'vue';
28
-
29
-
30
- export default defineComponent({
31
- props: {
32
- iconClass: {
33
- type: String,
34
- required: true,
35
- },
36
- className: {
37
- type: [String, Array],
38
- default: '',
39
- },
40
- color: {
41
- type: String,
42
- default: '#555',
43
- },
44
- size: {
45
- type: Number,
46
- default: 18,
47
- },
48
- },
49
-
50
- setup(props) {
51
- // 判断是否为svg图标
52
- const isSvgIcon = computed(() => props.iconClass.indexOf(':') === -1)
53
-
54
- // 图标名称
55
- const iconName = computed(() => {
56
- return unref(isSvgIcon) ? `#icon-${props.iconClass}` : `${props.iconClass}`
57
- })
58
-
59
-
60
- // 定义新的class名称
61
- const clsName = computed(() => {
62
- if( unref(isSvgIcon)) {
63
- return `svg-icon ${ getCls( props.className ) }`
64
- } else {
65
- return `${ getCls( props.className ) }`
66
- }
67
- })
68
-
69
-
70
- function getCls(className: String | Array<any>): String {
71
- if( isString( className ) ) {
72
- return className
73
- }
74
-
75
- if( isArray( className ) ) {
76
- const arrClsToStr = ( cls ) => {
77
- let classNames = []
78
-
79
- cls
80
- .forEach( it => {
81
- if( isString( it ) ) {
82
- classNames.push( it )
83
- } else if( isObject( it )){
84
- classNames.push(...objClsToStr( it ))
85
- } else if( isFunction( it ) ) {
86
- classNames.push( it() )
87
- }
88
- } )
89
-
90
- return classNames
91
- }
92
-
93
- const objClsToStr = ( objCls: Recordable ) => {
94
- let clsArr = []
95
- for( let key in objCls ) {
96
- if( objCls[ key ] ) clsArr.push( key )
97
- }
98
-
99
- return clsArr
100
- }
101
-
102
- return arrClsToStr( className )
103
- .filter( Boolean )
104
- .join(' ')
105
- }
106
-
107
- return ''
108
- }
109
-
110
- return {
111
- isSvgIcon,
112
- iconName,
113
- clsName,
114
- }
115
- },
116
- })
117
- </script>
@@ -1,3 +0,0 @@
1
- .iframe-page{
2
- height: 100%;
3
- }
@@ -1,5 +0,0 @@
1
- import DtIframe from './src/index.vue'
2
-
3
- export {
4
- DtIframe
5
- }
@@ -1,3 +0,0 @@
1
- .iframe-page{
2
- height: 100%;
3
- }
@@ -1,38 +0,0 @@
1
- <template>
2
- <div class="iframe-page">
3
- <Spin :spinning="loading" size="large">
4
- <iframe
5
- :src="src"
6
- class="iframe-page__main"
7
- ref="frameRef"
8
- @load="afterLoaded()"
9
- ></iframe>
10
- </Spin>
11
- </div>
12
- </template>
13
-
14
- <script lang="ts" setup>
15
- import { ref } from 'vue'
16
- import { Spin } from 'ant-design-vue'
17
-
18
- const props = defineProps({
19
- showLoading: {
20
- type: Boolean,
21
- default: true
22
- },
23
- src: {
24
- type: String
25
- },
26
- postMsg: null
27
- })
28
-
29
- const loading = ref<boolean>(false)
30
- const frameRef = ref()
31
-
32
- function afterLoaded() {
33
- loading.value = false
34
-
35
- let iframeWin = frameRef.value.contentWindow
36
- iframeWin.postMessage(props.postMsg, props.src)
37
- }
38
- </script>
@@ -1,54 +0,0 @@
1
- import { App } from 'vue';
2
- import { DtBaseRouter } from './router'
3
- import { DtIcon, DtPickIcon } from './icons'
4
- import { DtModal, useModal, useModalOut } from './modal'
5
- import { DtForm, useForm, FormButtons } from './forms'
6
- import { DtTable, useTable } from './table'
7
- import { useSource } from './source'
8
- import { useCurd } from './curd'
9
- import { export2Excel } from './excel'
10
- import { DtIframe } from './iframe'
11
- import { DtUpload, DtUploadModal } from './upload'
12
- import { DtTree } from './tree'
13
-
14
- const dtComponents = [
15
- { name: 'dt-base-router', component: DtBaseRouter },
16
- { name: 'dt-icon', component: DtIcon },
17
- { name: 'dt-pick-icon', component: DtPickIcon },
18
- { name: 'dt-modal', component: DtModal },
19
- { name: 'dt-form', component: DtForm },
20
- { name: 'dt-upload', component: DtUpload },
21
- { name: 'dt-upload-modal', component: DtUploadModal },
22
- { name: 'dt-tree', component: DtTree },
23
- ];
24
-
25
-
26
- // 初始化所有组件
27
- export function initComponents() {
28
- return {
29
- install(app: App) {
30
- dtComponents.forEach( comp => app.component(comp.name, comp));
31
- }
32
- }
33
- }
34
-
35
- export {
36
- DtBaseRouter,
37
- DtIcon,
38
- DtPickIcon,
39
- DtModal,
40
- DtForm,
41
- DtTable,
42
- FormButtons,
43
- DtIframe,
44
- DtUpload,
45
- DtUploadModal,
46
- DtTree,
47
- useForm,
48
- useTable,
49
- useSource,
50
- useCurd,
51
- useModal,
52
- useModalOut,
53
- export2Excel
54
- }
@@ -1,60 +0,0 @@
1
- .fullscreen-modal {
2
- overflow: hidden;
3
-
4
- .ant-modal {
5
- top: 0 !important;
6
- right: 0 !important;
7
- bottom: 0 !important;
8
- left: 0 !important;
9
- width: 100% !important;
10
- height: 100%;
11
- padding: 0;
12
-
13
- &-content {
14
- height: 100%;
15
- }
16
- }
17
- }
18
-
19
- .dt-basic-modal-close {
20
- display: flex;
21
- height: 95%;
22
- align-items: center;
23
- justify-content: space-around;
24
-
25
- > span {
26
- margin-left: 48px;
27
- font-size: 16px;
28
- }
29
-
30
- &--can-full {
31
- margin-right: 15px;
32
- > i {
33
- padding-right: 15px;
34
- width: 40px;
35
- }
36
- }
37
-
38
- &:not(&--can-full) {
39
- > i:nth-child(1) {
40
- &:hover {
41
- font-weight: 700;
42
- }
43
- }
44
-
45
- &>i:nth-child(1) {
46
- display: inline-block;
47
- padding: 10px;
48
-
49
- &:hover {
50
- color: @primary-color;
51
- }
52
- }
53
-
54
- &>i:last-child {
55
- &:hover {
56
- color: @error-color;
57
- }
58
- }
59
- }
60
- }
@@ -1,8 +0,0 @@
1
- import { useModal, useModalOut } from './src/hooks/useModal'
2
- import DtModal from './src/index.vue'
3
-
4
- export {
5
- DtModal,
6
- useModal,
7
- useModalOut
8
- }
@@ -1,46 +0,0 @@
1
- <template>
2
- <div :class="getClass">
3
- <template v-if="canFullscreen">
4
- <Tooltip title="退出全屏" placement="bottom" v-if="fullScreen">
5
- <i class="i ic:baseline-fullscreen-exit" @click="handleFullScreen" />
6
- </Tooltip>
7
- <Tooltip title="全屏" placement="bottom" v-else>
8
- <i class="i ic:baseline-fullscreen" @click="handleFullScreen" />
9
- </Tooltip>
10
- </template>
11
-
12
- <i class="i mdi:close" @click="handleCancel" />
13
- </div>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import { computed } from 'vue';
18
- import { Tooltip } from 'ant-design-vue';
19
-
20
- const props = defineProps({
21
- canFullscreen: { type: Boolean, default: true },
22
- fullScreen: { type: Boolean }
23
- });
24
-
25
- const emit = defineEmits(['cancel', 'fullscreen']);
26
-
27
- const getClass = computed(() => {
28
- return [
29
- 'dt-basic-modal-close',
30
- `dt-basic-modal-close--custom`,
31
- {
32
- [`dt-basic-modal-close--can-full`]: props.canFullscreen,
33
- }
34
- ]
35
- });
36
-
37
- function handleCancel(e: Event) {
38
- emit('cancel', e);
39
- }
40
-
41
- function handleFullScreen(e: Event) {
42
- e?.stopPropagation();
43
- e?.preventDefault();
44
- emit('fullscreen');
45
- }
46
- </script>
@@ -1,128 +0,0 @@
1
- <template>
2
- <ScrollContainer ref="wrapperRef">
3
- <div ref="spinRef" :style="spinStyle">
4
- <slot></slot>
5
- </div>
6
- </ScrollContainer>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { ref, unref, computed, onMounted, watchEffect, watch, nextTick } from 'vue';
11
- import { ScrollContainer } from '../../../container';
12
- import { windowResizeFn } from '@dt-frames/core';
13
-
14
- const wrapperRef = ref(null);
15
- const spinRef = ref(null);
16
- const realHeightRef = ref(0);
17
- const minRealHeightRef = ref(0);
18
- let realHeight = 0;
19
-
20
- const props = defineProps({
21
- loading : { type: Boolean },
22
- useWrapper : { type: Boolean, default: true },
23
- modalHeaderHeight : { type: Number, default: 55 },
24
- modalFooterHeight : { type: Number, default: 58 },
25
- minHeight : { type: Number, default: 200 },
26
- height : { type: Number },
27
- footerOffset : { type: Number, default: 0 },
28
- visible : { type: Boolean },
29
- fullScreen : { type: Boolean },
30
- loadingTip : { type: String },
31
- });
32
-
33
- const emits = defineEmits(['ext-height', 'height-change']);
34
-
35
- const spinStyle = computed(() => {
36
- return {
37
- minHeight: `${props.minHeight}px`,
38
- [props.fullScreen ? 'height' : 'maxHeight']: `${unref(realHeightRef)}px`,
39
- };
40
- });
41
-
42
- onMounted(() => {
43
- const { modalHeaderHeight, modalFooterHeight } = props;
44
- emits('ext-height', modalHeaderHeight + modalFooterHeight);
45
- });
46
-
47
- async function getModalDom() {
48
- const wrapperRefDom = unref(wrapperRef);
49
- if (!wrapperRefDom) return;
50
-
51
- const bodyDom = wrapperRefDom.$el.parentElement;
52
- if (!bodyDom) return;
53
- bodyDom.style.padding = '0';
54
- await nextTick();
55
-
56
- const modalDom = bodyDom.parentElement && bodyDom.parentElement.parentElement;
57
-
58
- return modalDom
59
- }
60
-
61
- async function setModalHeight() {
62
- if (!props.visible) return;
63
-
64
- try {
65
- const modalDom = await getModalDom()
66
- if (!modalDom) return;
67
-
68
- const modalRect = getComputedStyle(modalDom as Element).top;
69
- const modalTop = Number.parseInt(modalRect);
70
-
71
- let maxHeight =
72
- window.innerHeight -
73
- (props.footerOffset! || 0) -
74
- props.modalFooterHeight -
75
- props.modalHeaderHeight
76
- - 100;
77
-
78
- // 距离顶部过进会出现滚动条
79
- if (modalTop < 40) {
80
- maxHeight -= 26;
81
- }
82
- await nextTick();
83
- const spinEl = unref(spinRef);
84
-
85
- if (!spinEl) return;
86
- await nextTick();
87
- realHeight = spinEl.scrollHeight;
88
-
89
- if (props.fullScreen) {
90
- realHeightRef.value =
91
- window.innerHeight - props.modalFooterHeight - props.modalHeaderHeight;
92
- } else {
93
- realHeightRef.value = props.height
94
- ? props.height
95
- : realHeight > maxHeight
96
- ? maxHeight
97
- : realHeight;
98
- }
99
- emits('height-change', unref(realHeightRef));
100
-
101
- const _modalDom = await getModalDom()
102
- _modalDom.style.top = (window.innerHeight - _modalDom.offsetHeight) / 2 + 'px'
103
-
104
- } catch (error) {
105
- console.log(error);
106
- }
107
-
108
- }
109
-
110
- windowResizeFn(setModalHeight.bind(null, false));
111
-
112
- watchEffect(() => {
113
- props.useWrapper && setModalHeight();
114
- });
115
-
116
- watch(
117
- () => props.fullScreen,
118
- (v) => {
119
- setModalHeight();
120
- if (!v) {
121
- realHeightRef.value = minRealHeightRef.value;
122
- } else {
123
- minRealHeightRef.value = realHeightRef.value;
124
- }
125
- },
126
- );
127
-
128
- </script>