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