@dt-frames/ui 1.0.12 → 1.0.16

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 (217) hide show
  1. package/es/components/curd/src/components/dialog.d.ts +27 -23
  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/hooks/helper.d.ts +2 -0
  8. package/es/components/forms/src/hooks/useFormActions.d.ts +2 -2
  9. package/es/components/forms/src/index.d.ts +2 -3
  10. package/es/components/forms/src/types/form.type.d.ts +3 -17
  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/source/src/hooks/useFetch.d.ts +1 -1
  17. package/es/components/table/src/hooks/useTable.d.ts +2 -2
  18. package/es/components/table/src/index.d.ts +3 -3
  19. package/es/components/table/src/props.d.ts +1 -2
  20. package/es/components/table/src/types/table.type.d.ts +2 -2
  21. package/es/components/tree/src/props.d.ts +8 -1
  22. package/es/components/upload/index.d.ts +1 -2
  23. package/es/components/upload/src/helper.d.ts +1 -0
  24. package/es/components/upload/src/index.d.ts +13 -9
  25. package/es/components/upload/src/props.d.ts +4 -1
  26. package/es/components/upload/src/upload.d.ts +21 -9
  27. package/es/index.js +391 -232
  28. package/es/style/components/icons/index.less +1 -1
  29. package/es/style/components/upload/index.less +3 -11
  30. package/package.json +1 -10
  31. package/vite.config.js +10 -0
  32. package/src/assets/data/icons/actions.ts +0 -427
  33. package/src/assets/data/icons/code.ts +0 -10
  34. package/src/assets/data/icons/commuticate.ts +0 -190
  35. package/src/assets/data/icons/currency.ts +0 -46
  36. package/src/assets/data/icons/devices.ts +0 -128
  37. package/src/assets/data/icons/edit.ts +0 -165
  38. package/src/assets/data/icons/file.ts +0 -104
  39. package/src/assets/data/icons/math.ts +0 -53
  40. package/src/assets/data/icons/message.ts +0 -75
  41. package/src/assets/data/icons/navigate.ts +0 -181
  42. package/src/assets/data/icons/other.ts +0 -333
  43. package/src/assets/data/icons.ts +0 -58
  44. package/src/assets/imgs/header/avatar.png +0 -0
  45. package/src/assets/imgs/logo/logo.png +0 -0
  46. package/src/assets/locales/en_US.json +0 -3
  47. package/src/assets/locales/zh_CN.json +0 -3
  48. package/src/assets/style/index.less +0 -10
  49. package/src/assets/style/reset.less +0 -17
  50. package/src/components/container/index.less +0 -85
  51. package/src/components/container/index.ts +0 -8
  52. package/src/components/container/src/bar.ts +0 -107
  53. package/src/components/container/src/lazy-container.vue +0 -9
  54. package/src/components/container/src/scroll-bar.vue +0 -117
  55. package/src/components/container/src/scroll-container.vue +0 -61
  56. package/src/components/curd/index.ts +0 -5
  57. package/src/components/curd/src/components/dialog.vue +0 -74
  58. package/src/components/curd/src/components/props.ts +0 -32
  59. package/src/components/curd/src/hooks/useCurd.tsx +0 -87
  60. package/src/components/curd/src/types/curd.type.ts +0 -31
  61. package/src/components/excel/index.ts +0 -6
  62. package/src/components/excel/src/export2Excel.ts +0 -44
  63. package/src/components/forms/index.less +0 -107
  64. package/src/components/forms/index.ts +0 -11
  65. package/src/components/forms/src/componentMap.ts +0 -46
  66. package/src/components/forms/src/components/formButton.vue +0 -150
  67. package/src/components/forms/src/components/formIcon.vue +0 -51
  68. package/src/components/forms/src/components/formInputUseDialog.vue +0 -43
  69. package/src/components/forms/src/components/formItem.vue +0 -420
  70. package/src/components/forms/src/components/radioButton.vue +0 -58
  71. package/src/components/forms/src/const/form.const.ts +0 -7
  72. package/src/components/forms/src/hooks/helper.ts +0 -70
  73. package/src/components/forms/src/hooks/useForm.ts +0 -130
  74. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  75. package/src/components/forms/src/hooks/useFormEvents.ts +0 -248
  76. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  77. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  78. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  79. package/src/components/forms/src/index.vue +0 -310
  80. package/src/components/forms/src/prop.ts +0 -80
  81. package/src/components/forms/src/types/form.type.ts +0 -275
  82. package/src/components/icons/index.less +0 -101
  83. package/src/components/icons/index.ts +0 -7
  84. package/src/components/icons/src/pick-icon.vue +0 -119
  85. package/src/components/icons/src/svg-icon.vue +0 -117
  86. package/src/components/iframe/index.less +0 -3
  87. package/src/components/iframe/index.ts +0 -5
  88. package/src/components/iframe/src/index.less +0 -3
  89. package/src/components/iframe/src/index.vue +0 -38
  90. package/src/components/index.ts +0 -54
  91. package/src/components/modal/index.less +0 -60
  92. package/src/components/modal/index.ts +0 -8
  93. package/src/components/modal/src/components/close-icon.vue +0 -46
  94. package/src/components/modal/src/components/modal-wrap.vue +0 -128
  95. package/src/components/modal/src/components/modal.tsx +0 -30
  96. package/src/components/modal/src/components/modalFooter.vue +0 -38
  97. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  98. package/src/components/modal/src/hooks/useFullScreen.ts +0 -29
  99. package/src/components/modal/src/hooks/useModal.ts +0 -200
  100. package/src/components/modal/src/index.vue +0 -173
  101. package/src/components/modal/src/props.ts +0 -43
  102. package/src/components/modal/src/types/modal.type.ts +0 -30
  103. package/src/components/router/base-router.vue +0 -11
  104. package/src/components/router/index.ts +0 -3
  105. package/src/components/source/index.ts +0 -1
  106. package/src/components/source/src/hooks/useFetch.ts +0 -42
  107. package/src/components/source/src/hooks/usePage.ts +0 -3
  108. package/src/components/source/src/hooks/useSource.ts +0 -214
  109. package/src/components/source/src/index.ts +0 -5
  110. package/src/components/source/src/types/source.type.ts +0 -58
  111. package/src/components/source/src/types/table.type.ts +0 -8
  112. package/src/components/table/index.less +0 -179
  113. package/src/components/table/index.ts +0 -7
  114. package/src/components/table/src/components/TableActions.vue +0 -108
  115. package/src/components/table/src/components/TableHeader.vue +0 -78
  116. package/src/components/table/src/components/TableRender.vue +0 -76
  117. package/src/components/table/src/components/editable/CellComponent.ts +0 -57
  118. package/src/components/table/src/components/editable/EditTableCell.vue +0 -181
  119. package/src/components/table/src/components/editable/componentMap.ts +0 -18
  120. package/src/components/table/src/components/editable/index.ts +0 -58
  121. package/src/components/table/src/components/setting/Column.vue +0 -354
  122. package/src/components/table/src/components/setting/Download.vue +0 -55
  123. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  124. package/src/components/table/src/components/setting/Size.vue +0 -42
  125. package/src/components/table/src/components/setting/index.vue +0 -64
  126. package/src/components/table/src/const.ts +0 -13
  127. package/src/components/table/src/hooks/useColumns.ts +0 -326
  128. package/src/components/table/src/hooks/useCustomRow.ts +0 -86
  129. package/src/components/table/src/hooks/useDataSource.ts +0 -97
  130. package/src/components/table/src/hooks/useHeaderCode.ts +0 -89
  131. package/src/components/table/src/hooks/useLoading.ts +0 -29
  132. package/src/components/table/src/hooks/usePagination.ts +0 -76
  133. package/src/components/table/src/hooks/useRowSelection.ts +0 -145
  134. package/src/components/table/src/hooks/useRows.ts +0 -30
  135. package/src/components/table/src/hooks/useTable.ts +0 -90
  136. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  137. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  138. package/src/components/table/src/hooks/useTableScroll.ts +0 -229
  139. package/src/components/table/src/index.vue +0 -212
  140. package/src/components/table/src/props.ts +0 -160
  141. package/src/components/table/src/types/table.type.ts +0 -160
  142. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  143. package/src/components/tree/index.less +0 -41
  144. package/src/components/tree/index.ts +0 -5
  145. package/src/components/tree/src/components/TreeHeader.vue +0 -97
  146. package/src/components/tree/src/hooks/useTree.ts +0 -239
  147. package/src/components/tree/src/index.vue +0 -392
  148. package/src/components/tree/src/props.ts +0 -133
  149. package/src/components/tree/src/type/tree.ts +0 -105
  150. package/src/components/tree/src/utils/tree.ts +0 -73
  151. package/src/components/type.ts +0 -0
  152. package/src/components/upload/index.less +0 -43
  153. package/src/components/upload/index.ts +0 -7
  154. package/src/components/upload/src/helper.ts +0 -32
  155. package/src/components/upload/src/index.vue +0 -38
  156. package/src/components/upload/src/props.ts +0 -48
  157. package/src/components/upload/src/upload.vue +0 -166
  158. package/src/directives/icon.ts +0 -36
  159. package/src/directives/index.ts +0 -26
  160. package/src/directives/permission.ts +0 -20
  161. package/src/global.d.ts +0 -8
  162. package/src/index.ts +0 -4
  163. package/src/theme/content/index.vue +0 -37
  164. package/src/theme/feature/back-top.vue +0 -11
  165. package/src/theme/feature/index.vue +0 -7
  166. package/src/theme/footer/index.less +0 -16
  167. package/src/theme/footer/index.vue +0 -24
  168. package/src/theme/header/components/bread-crumb.vue +0 -26
  169. package/src/theme/header/components/fullscreen.vue +0 -12
  170. package/src/theme/header/components/handler.ts +0 -81
  171. package/src/theme/header/components/index.ts +0 -21
  172. package/src/theme/header/components/lang-picker.vue +0 -36
  173. package/src/theme/header/components/logo.vue +0 -35
  174. package/src/theme/header/components/menu-search.vue +0 -62
  175. package/src/theme/header/components/notify.vue +0 -22
  176. package/src/theme/header/components/setting-theme.vue +0 -123
  177. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  178. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  179. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  180. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  181. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  182. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  183. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  184. package/src/theme/header/components/trigger.vue +0 -14
  185. package/src/theme/header/components/user-info.vue +0 -60
  186. package/src/theme/header/const/index.ts +0 -40
  187. package/src/theme/header/helper/menu-tree.ts +0 -64
  188. package/src/theme/header/index.less +0 -442
  189. package/src/theme/header/index.ts +0 -0
  190. package/src/theme/header/index.vue +0 -96
  191. package/src/theme/header/multiple-header.vue +0 -67
  192. package/src/theme/header/set-theme.less +0 -68
  193. package/src/theme/index.ts +0 -3
  194. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  195. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  196. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  197. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  198. package/src/theme/sider/components/drag-bar.vue +0 -26
  199. package/src/theme/sider/components/layout-menu.vue +0 -132
  200. package/src/theme/sider/components/props.ts +0 -97
  201. package/src/theme/sider/components/sider-trigger.vue +0 -24
  202. package/src/theme/sider/helper/sider.ts +0 -52
  203. package/src/theme/sider/helper/split-menu.ts +0 -146
  204. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  205. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  206. package/src/theme/sider/index.less +0 -203
  207. package/src/theme/sider/index.vue +0 -88
  208. package/src/theme/tabs/components/TabContent.vue +0 -36
  209. package/src/theme/tabs/components/TabRedo.vue +0 -18
  210. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  211. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  212. package/src/theme/tabs/index.less +0 -165
  213. package/src/theme/tabs/index.vue +0 -98
  214. package/src/theme/tabs/types/tabs.type.ts +0 -8
  215. package/src/theme/theme.less +0 -67
  216. package/src/theme/theme.vue +0 -90
  217. 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
- }