@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,354 +0,0 @@
1
- <template>
2
- <Tooltip placement="top">
3
- <template #title>
4
- <span>列控制</span>
5
- </template>
6
-
7
- <Popover
8
- placement="bottomLeft"
9
- trigger="click"
10
- :overlayClassName="`${prefixCls}__cloumn-list`"
11
- @visibleChange="handleVisibleChange"
12
- :getPopupContainer="getPopupContainer"
13
- >
14
-
15
- <template #title>
16
- <div :class="`${ prefixCls }__popover-title`">
17
- <Checkbox
18
- :indeterminate="indeterminate"
19
- v-model:checked="state.checkAll"
20
- @change="onCheckAllChange"
21
- >
22
- 列展示
23
- </Checkbox>
24
-
25
- <Checkbox v-model:checked="checkIndex" @change="handleIndexCheckChange">
26
- 序列号
27
- </Checkbox>
28
-
29
- <Checkbox v-model:checked="checkSelect" @change="handleSelectCheckChange" :disabled="!defaultRowSelection">
30
- 复选框
31
- </Checkbox>
32
-
33
- <Button size="small" type="link" @click="reset">重置</Button>
34
- </div>
35
- </template>
36
-
37
- <template #content>
38
- <CheckboxGroup v-model:value="state.checkedList" @change="onChange" ref="columnListRef">
39
- <template v-for="item in plainOptions" :key="item.value">
40
- <!-- v-if="!!(item as any).ifShow" -->
41
- <div :class="`${ prefixCls }__check-item`">
42
- <span v-icon="'ant-design:drag-outlined'" :size="16" :className="'drag-icon'"></span>
43
-
44
- <Checkbox :value="item.value">
45
- {{ item.label }}
46
- </Checkbox>
47
-
48
- <Tooltip
49
- placement="bottomLeft"
50
- :mouseLeaveDelay="0.4"
51
- :getPopupContainer="getPopupContainer"
52
- >
53
- <template #title>固定到左侧</template>
54
- <span :class="{
55
- disabled: !state.checkedList.includes(item.value),
56
- active: item.fixed === 'left'
57
- }">
58
- <DtIcon
59
- :icon-class="'mdi:arrow-collapse-left'"
60
- :className="`${ prefixCls }__fixed-left`"
61
- @click="handleColumnFixed(item, 'left')"
62
- :size="16"
63
- ></DtIcon>
64
- </span>
65
- </Tooltip>
66
-
67
- <Divider type="vertical" />
68
-
69
- <Tooltip
70
- placement="bottomLeft"
71
- :mouseLeaveDelay="0.4"
72
- :getPopupContainer="getPopupContainer"
73
- >
74
- <template #title>固定到右侧</template>
75
- <span :class="{
76
- disabled: !state.checkedList.includes(item.value),
77
- active: item.fixed === 'right',
78
- }">
79
- <DtIcon
80
- :icon-class="'mdi:arrow-collapse-right'"
81
- :className="`${prefixCls}__fixed-right`"
82
- @click="handleColumnFixed(item, 'right')"
83
- :size="16"
84
- ></DtIcon>
85
- </span>
86
-
87
- </Tooltip>
88
- </div>
89
- </template>
90
- </CheckboxGroup>
91
- </template>
92
-
93
- <span v-icon="'ant-design:setting-outlined'"></span>
94
- </Popover>
95
- </Tooltip>
96
- </template>
97
-
98
- <script lang="ts" setup>
99
- import { Tooltip, Popover, Checkbox, Button, CheckboxGroup, Divider } from 'ant-design-vue'
100
- import { getPopupContainer as getParentContainer, isNullAndUnDef } from '@dt-frames/core'
101
- import { DtIcon } from '../../../../icons/index'
102
- import { computed, reactive, ref, unref, watchEffect, useAttrs, nextTick } from 'vue'
103
- import type { ColumnStateType, ColumnOptionsType } from '../../types/tableHeader.type'
104
- import { getTableInstance } from '../../hooks/useTableInstance'
105
- import { BasicColumn } from '../../types/table.type'
106
- import { isFunction } from '@vueuse/core'
107
- import { cloneDeep, omit } from 'lodash-es'
108
-
109
- import Sortablejs from 'sortablejs'
110
- import type Sortable from 'sortablejs'
111
- import { CheckboxChangeEvent } from 'ant-design-vue/lib/checkbox/interface'
112
-
113
-
114
- const emits = defineEmits([
115
- 'columns-change'
116
- ])
117
-
118
- const attrs = useAttrs()
119
-
120
- const prefixCls = 'column-setting'
121
-
122
- const table = getTableInstance()
123
- const defaultRowSelection = omit(table.getRowSelection(), 'selectedRowKeys')
124
-
125
- let inited = false
126
-
127
- const cachePlainOptions = ref<ColumnOptionsType[]>([])
128
- const plainOptions = ref<ColumnOptionsType[]>([])
129
- const plainSortOptions = ref<ColumnOptionsType[]>([])
130
-
131
- // 列表实例
132
- const columnListRef = ref(null)
133
-
134
- // 是否显示序列号
135
- const checkIndex = ref(false)
136
- // 是否显示复选框
137
- const checkSelect = ref(false)
138
-
139
- const getValues = computed(() => {
140
- return unref(table?.getBind);
141
- })
142
-
143
- let sortable: Sortable
144
- let sortableOrder: string[] = []
145
-
146
- const state = reactive<ColumnStateType>({
147
- checkAll: true,
148
- checkedList: [],
149
- defaultCheckList: []
150
- })
151
-
152
- // 列展示半选状态
153
- const indeterminate = computed(() => {
154
- let len = plainOptions.value.length
155
- let checkedLen = state.checkedList.length
156
-
157
- unref(checkIndex) && checkedLen--
158
-
159
- return checkedLen > 0 && checkedLen < len
160
- })
161
-
162
- watchEffect(() => {
163
- const columns = table.getColumns()
164
-
165
- if( columns && columns.length ) {
166
- init()
167
- }
168
- })
169
-
170
- watchEffect(() => {
171
- const values = unref(getValues)
172
-
173
- checkIndex.value = !!values.showIndexColumn
174
- checkSelect.value = !!values.rowSelection
175
- })
176
-
177
-
178
- function handleVisibleChange() {
179
- if( inited ) return
180
-
181
- nextTick(() => {
182
- const columnListEl = unref( columnListRef )
183
- if( !columnListEl ) return
184
-
185
- const el = columnListEl.$el as any
186
- if( !el ) return
187
-
188
- sortable = Sortablejs.create(unref(el), {
189
- animation: 500,
190
- delay: 400,
191
- delayOnTouchOnly: true,
192
- handle: '.drag-icon ',
193
- onEnd: (evt) => {
194
- const { oldIndex, newIndex } = evt
195
-
196
- if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex) {
197
- return;
198
- }
199
-
200
- const columns = cloneDeep(plainSortOptions.value)
201
-
202
- if (oldIndex > newIndex) {
203
- columns.splice(newIndex, 0, columns[oldIndex]);
204
- columns.splice(oldIndex + 1, 1)
205
- } else {
206
- columns.splice(newIndex + 1, 0, columns[oldIndex]);
207
- columns.splice(oldIndex, 1)
208
- }
209
-
210
- plainSortOptions.value = columns
211
- setColumns(columns)
212
- }
213
- })
214
-
215
- sortableOrder = sortable.toArray()
216
- inited = true
217
- })
218
- }
219
-
220
- // 全选复选框改变
221
- function onCheckAllChange(e: CheckboxChangeEvent) {
222
- const checkList = plainOptions.value.map((item) => item.value)
223
-
224
- if( e.target.checked ) {
225
- state.checkedList = checkList
226
- setColumns(checkList)
227
- }else {
228
- state.checkedList = []
229
- setColumns([])
230
- }
231
- }
232
-
233
- // 显示序列号
234
- function handleIndexCheckChange(e: CheckboxChangeEvent) {
235
- table.setProps({
236
- showIndexColumn: e.target.checked,
237
- })
238
- }
239
-
240
- // table上是否显示复选框
241
- function handleSelectCheckChange(e: CheckboxChangeEvent) {
242
- table.setProps({
243
- rowSelection: e.target.checked ? defaultRowSelection : null,
244
- })
245
- }
246
-
247
- // 复选框选择
248
- function onChange(checkedList: string[]) {
249
- const len = plainSortOptions.value.length
250
- state.checkAll = checkedList.length === len
251
-
252
- const sortList = unref(plainSortOptions).map((item) => item.value)
253
- checkedList.sort((prev, next) => {
254
- return sortList.indexOf(prev) - sortList.indexOf(next);
255
- })
256
-
257
- setColumns(checkedList)
258
- }
259
-
260
- // 重置所有选项
261
- function reset() {
262
- state.checkedList = [...state.defaultCheckList]
263
- state.checkAll = true
264
-
265
- plainOptions.value = unref(cachePlainOptions)
266
- plainSortOptions.value = unref(cachePlainOptions)
267
- setColumns(table.getCacheColumns())
268
- sortable.sort(sortableOrder)
269
- }
270
-
271
- function getColumns() {
272
- return table.getColumns({
273
- ignoreIndex: true,
274
- ignoreAction: true
275
- }).reduce( (ret, it) => {
276
- ret.push({
277
- label: it.title,
278
- value: it.dataIndex || it.title,
279
- ...it
280
- })
281
-
282
- return ret
283
- }, [] )
284
- }
285
-
286
- function handleColumnFixed(item: BasicColumn, fixed?: 'left' | 'right') {
287
- if (!state.checkedList.includes(item.dataIndex as string)) return
288
-
289
- const columns = getColumns() as BasicColumn[]
290
- const isFixed = item.fixed === fixed ? false : fixed
291
- const index = columns.findIndex( col => col.dataIndex === item.dataIndex )
292
-
293
- if( index !== -1 ) {
294
- columns[index].fixed = isFixed
295
- }
296
-
297
- item.fixed = isFixed
298
-
299
- if (isFixed && !item.width) {
300
- item.width = 100;
301
- }
302
-
303
- table.setCacheColumnsByField?.(item.dataIndex as string, { fixed: isFixed })
304
- setColumns(columns)
305
- }
306
-
307
- function setColumns(columns: BasicColumn[] | string[]) {
308
- table.setColumns(columns)
309
-
310
- const data = unref(plainSortOptions).map( col => {
311
- const visable = columns.findIndex(
312
- (c: BasicColumn | string) => c === col.value || (typeof c !== 'string' && c.dataIndex === col.value)
313
- ) !== -1
314
-
315
- return { dataIndex: col.value, fixed: col.fixed, visable }
316
- } )
317
-
318
- emits('columns-change', data)
319
- }
320
-
321
- function init() {
322
- const columns = getColumns()
323
-
324
- const checkList = table
325
- .getColumns({ ignoreAction: true })
326
- .map( it => it.defaultHidden ? '' : (it.dataIndex || it.title) )
327
- .filter( Boolean ) as string[]
328
-
329
- if(!plainOptions.value.length) {
330
-
331
- plainOptions.value = columns
332
- plainSortOptions.value = columns
333
- cachePlainOptions.value = cloneDeep(columns)
334
- state.defaultCheckList = checkList
335
-
336
- } else {
337
- unref( plainOptions )
338
- .forEach(
339
- (it: BasicColumn) =>
340
- it.fixed === columns.find(col => col.dataIndex === it.dataIndex)?.fixed
341
- )
342
- }
343
-
344
- state.isInit = true
345
- state.checkedList = checkList
346
- }
347
-
348
-
349
- function getPopupContainer() {
350
- return isFunction(attrs.getPopupContainer)
351
- ? attrs.getPopupContainer()
352
- : getParentContainer();
353
- }
354
- </script>
@@ -1,55 +0,0 @@
1
- <template>
2
- <!-- -->
3
- <Tooltip placement="top">
4
- <template #title>
5
- <span>导出</span>
6
- </template>
7
-
8
- <Dropdown
9
- placement="bottom"
10
- :trigger="['click']"
11
- :getPopupContainer="getPopupContainer"
12
- >
13
- <span v-icon="'ic:baseline-file-download'"></span>
14
-
15
- <template #overlay>
16
- <Menu
17
- @click="handleTitleClick"
18
- >
19
- <MenuItem key="current"> <span>导出当前页</span> </MenuItem>
20
- <MenuItem key="select"> <span>导出选中列</span> </MenuItem>
21
- <MenuItem key="all"> <span>导出所有列</span> </MenuItem>
22
- </Menu>
23
- </template>
24
- </Dropdown>
25
- </Tooltip>
26
- </template>
27
-
28
- <script lang="ts" setup>
29
- import { getPopupContainer } from '@dt-frames/core';
30
- import { unref } from 'vue'
31
- import { Tooltip, Dropdown, Menu, MenuItem } from 'ant-design-vue'
32
- import { DtIcon } from '../../../../icons/index'
33
- import { getTableInstance } from '../../hooks/useTableInstance';
34
-
35
- const table = getTableInstance()
36
-
37
-
38
-
39
- function handleTitleClick({ key }) {
40
- const { onDownload, columns: allColumns, dataSource, rowSelection } = unref(table.getBind)
41
-
42
- const excludesFlag = [ 'ACTION', 'CHECKBOX', 'RADIO' ]
43
- const columns = allColumns.filter( it => !excludesFlag.includes(it.flag) )
44
-
45
- onDownload( {
46
- type: key,
47
- columns,
48
- rows: key === 'select'
49
- ? table.getSelectRows()
50
- : key === 'current'
51
- ? dataSource
52
- : []
53
- } )
54
- }
55
- </script>
@@ -1,43 +0,0 @@
1
- <template>
2
- <Tooltip placement="top">
3
- <template #title>
4
- <span v-if="!isFullscreen">全屏</span>
5
- </template>
6
-
7
- <span @click="toggle">
8
- <span v-if="!isFullscreen" v-icon="'ic:baseline-fullscreen'"></span>
9
- <span v-else v-icon="'ic:baseline-fullscreen-exit'"></span>
10
- </span>
11
- </Tooltip>
12
- </template>
13
-
14
- <script lang="ts" setup>
15
- import { ref, watch } from 'vue'
16
- import { useFullscreen } from '@vueuse/core';
17
- import { Tooltip } from 'ant-design-vue'
18
- import { DtIcon } from '../../../../icons/index'
19
- import { getTableInstance } from '../../hooks/useTableInstance';
20
-
21
- const table = getTableInstance()
22
- const wrapEl = ref(null)
23
-
24
- const { toggle, isFullscreen } = useFullscreen(wrapEl)
25
-
26
- watch(
27
- () => table.tableElRef.value,
28
- ( v: any ) => {
29
- const getParent = ( el ) => {
30
- if( !el || !el.parentNode ) return null
31
-
32
- // 找到路由的下一层 进行全屏
33
- if(el.parentNode.className?.indexOf('dt-layout-content') !== -1) {
34
- wrapEl.value = el.parentNode
35
- } else {
36
- getParent( el.parentNode )
37
- }
38
- }
39
-
40
- getParent(v.$el)
41
- }
42
- )
43
- </script>
@@ -1,42 +0,0 @@
1
- <template>
2
- <Tooltip>
3
- <template #title>密度</template>
4
-
5
- <Dropdown
6
- placement="bottom"
7
- :trigger="['click']"
8
- :getPopupContainer="getPopupContainer"
9
- >
10
- <span v-icon="'ant-design:column-height-outlined'"></span>
11
-
12
- <template #overlay>
13
- <Menu
14
- @click="handleTitleClick"
15
- selectable
16
- v-model:selectedKeys="selectedKeysRef"
17
- >
18
- <MenuItem key="default"> <span>默认</span> </MenuItem>
19
- <MenuItem key="middle"> <span>中等</span> </MenuItem>
20
- <MenuItem key="small"> <span>紧凑</span> </MenuItem>
21
- </Menu>
22
- </template>
23
- </Dropdown>
24
- </Tooltip>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import { getPopupContainer } from '@dt-frames/core';
29
- import { Tooltip, Dropdown, Menu, MenuItem } from 'ant-design-vue'
30
- import { MenuInfo } from 'ant-design-vue/lib/menu/src/interface';
31
- import { ref } from 'vue'
32
- import { getTableInstance } from '../../hooks/useTableInstance';
33
- import { SizeType } from '../../types/table.type';
34
-
35
- const table = getTableInstance()
36
- const selectedKeysRef = ref<SizeType[]>([table.getSize()])
37
-
38
- function handleTitleClick({ key }: MenuInfo) {
39
- selectedKeysRef.value = [key as SizeType]
40
- table.setProps({ size: key as SizeType })
41
- }
42
- </script>
@@ -1,64 +0,0 @@
1
- <template>
2
- <Download v-if="getSetting.download"></Download>
3
- <SizeSetting v-if="getSetting.size" />
4
- <ColumnSetting
5
- v-if="getSetting.setting"
6
- @columns-change="handleColumnChange"
7
- />
8
-
9
- <FullscreenSetting v-if="getSetting.fullscreen"></FullscreenSetting>
10
-
11
- </template>
12
-
13
- <script lang="ts">
14
- import { computed, defineComponent, unref } from "vue"
15
- import type { PropType } from 'vue'
16
- import { TableSetting } from "../../types/table.type"
17
- import ColumnSetting from './Column.vue'
18
- import FullscreenSetting from './Fullscreen.vue'
19
- import SizeSetting from './Size.vue'
20
- import Download from './Download.vue'
21
-
22
- type ColumnChangeParam = {
23
- dataIndex: string;
24
- fixed: boolean | 'left' | 'right' | undefined;
25
- visible: boolean;
26
- }
27
-
28
- export default defineComponent({
29
- name: 'table-setting',
30
- components: {
31
- ColumnSetting,
32
- FullscreenSetting,
33
- SizeSetting,
34
- Download
35
- },
36
- props: {
37
- setting: {
38
- type: Object as PropType<TableSetting>,
39
- default: () => ({}),
40
- },
41
- },
42
- emits: ['columns-change'],
43
- setup(props, { emit }) {
44
- const getSetting = computed((): TableSetting => {
45
- return {
46
- download: true,
47
- size: true,
48
- setting: true,
49
- fullscreen: true,
50
- ...props.setting,
51
- };
52
- })
53
-
54
- function handleColumnChange(data: ColumnChangeParam[]) {
55
- emit('columns-change', data);
56
- }
57
-
58
- return {
59
- getSetting,
60
- handleColumnChange
61
- }
62
- }
63
- })
64
- </script>
@@ -1,13 +0,0 @@
1
- export const DEFAULT_SORT_FN = (sortInfo) => {
2
- const { field, order } = sortInfo
3
-
4
- return field && order
5
- ? { field, order }
6
- : { }
7
- }
8
-
9
- export const TABLE_SIZE_HEIGHT = {
10
- default: 56,
11
- middle: 47,
12
- small: 32
13
- }