@dt-frames/ui 1.0.13 → 1.0.17

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