gi-component 0.0.49 → 0.0.51

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 (267) hide show
  1. package/dist/components/button/index.d.ts +2 -1
  2. package/dist/components/button/index.d.ts.map +1 -0
  3. package/dist/components/button/src/{button.vue.d.ts → button.d.ts} +5 -3
  4. package/dist/components/button/src/button.d.ts.map +1 -0
  5. package/dist/components/button/src/type.d.ts +1 -0
  6. package/dist/components/button/src/type.d.ts.map +1 -0
  7. package/dist/components/card/index.d.ts +2 -1
  8. package/dist/components/card/index.d.ts.map +1 -0
  9. package/dist/components/card/src/card.d.ts +37 -0
  10. package/dist/components/card/src/card.d.ts.map +1 -0
  11. package/dist/components/card/src/type.d.ts +1 -0
  12. package/dist/components/card/src/type.d.ts.map +1 -0
  13. package/dist/components/descriptions/index.d.ts +2 -2
  14. package/dist/components/descriptions/index.d.ts.map +1 -0
  15. package/dist/components/descriptions/src/descriptions.d.ts +25 -0
  16. package/dist/components/descriptions/src/descriptions.d.ts.map +1 -0
  17. package/dist/components/descriptions/src/type.d.ts +25 -11
  18. package/dist/components/descriptions/src/type.d.ts.map +1 -0
  19. package/dist/components/dialog/index.d.ts +3 -2
  20. package/dist/components/dialog/index.d.ts.map +1 -0
  21. package/dist/components/dialog/src/create-dialog.d.ts +27 -0
  22. package/dist/components/dialog/src/create-dialog.d.ts.map +1 -0
  23. package/dist/components/dialog/src/dialog-content.d.ts +11 -0
  24. package/dist/components/dialog/src/dialog-content.d.ts.map +1 -0
  25. package/dist/components/dialog/src/dialog.d.ts +42 -24
  26. package/dist/components/dialog/src/dialog.d.ts.map +1 -0
  27. package/dist/components/dialog/src/type.d.ts +1 -0
  28. package/dist/components/dialog/src/type.d.ts.map +1 -0
  29. package/dist/components/dot/index.d.ts +2 -1
  30. package/dist/components/dot/index.d.ts.map +1 -0
  31. package/dist/components/dot/src/dot.d.ts +9 -0
  32. package/dist/components/dot/src/dot.d.ts.map +1 -0
  33. package/dist/components/dot/src/type.d.ts +1 -0
  34. package/dist/components/dot/src/type.d.ts.map +1 -0
  35. package/dist/components/drawer/index.d.ts +3 -2
  36. package/dist/components/drawer/index.d.ts.map +1 -0
  37. package/dist/components/drawer/src/create-drawer.d.ts +19 -0
  38. package/dist/components/drawer/src/create-drawer.d.ts.map +1 -0
  39. package/dist/components/drawer/src/drawer.d.ts +46 -16
  40. package/dist/components/drawer/src/drawer.d.ts.map +1 -0
  41. package/dist/components/drawer/src/type.d.ts +1 -0
  42. package/dist/components/drawer/src/type.d.ts.map +1 -0
  43. package/dist/components/edit-table/index.d.ts +2 -1
  44. package/dist/components/edit-table/index.d.ts.map +1 -0
  45. package/dist/components/edit-table/src/type.d.ts +1 -0
  46. package/dist/components/edit-table/src/type.d.ts.map +1 -0
  47. package/dist/components/flex/index.d.ts +2 -1
  48. package/dist/components/flex/index.d.ts.map +1 -0
  49. package/dist/components/flex/src/{flex.vue.d.ts → flex.d.ts} +4 -2
  50. package/dist/components/flex/src/flex.d.ts.map +1 -0
  51. package/dist/components/flex/src/type.d.ts +1 -0
  52. package/dist/components/flex/src/type.d.ts.map +1 -0
  53. package/dist/components/form/index.d.ts +2 -1
  54. package/dist/components/form/index.d.ts.map +1 -0
  55. package/dist/components/form/src/type.d.ts +1 -0
  56. package/dist/components/form/src/type.d.ts.map +1 -0
  57. package/dist/components/grid/index.d.ts +3 -2
  58. package/dist/components/grid/index.d.ts.map +1 -0
  59. package/dist/components/grid/src/context.d.ts +1 -0
  60. package/dist/components/grid/src/context.d.ts.map +1 -0
  61. package/dist/components/grid/src/{grid-item.vue.d.ts → grid-item.d.ts} +9 -8
  62. package/dist/components/grid/src/grid-item.d.ts.map +1 -0
  63. package/dist/components/grid/src/{grid.vue.d.ts → grid.d.ts} +7 -6
  64. package/dist/components/grid/src/grid.d.ts.map +1 -0
  65. package/dist/components/grid/src/hook/use-index.d.ts +3 -2
  66. package/dist/components/grid/src/hook/use-index.d.ts.map +1 -0
  67. package/dist/components/grid/src/hook/use-responsive-state.d.ts +3 -2
  68. package/dist/components/grid/src/hook/use-responsive-state.d.ts.map +1 -0
  69. package/dist/components/grid/src/hook/use-responsive-value.d.ts +3 -2
  70. package/dist/components/grid/src/hook/use-responsive-value.d.ts.map +1 -0
  71. package/dist/components/grid/src/interface.d.ts +1 -0
  72. package/dist/components/grid/src/interface.d.ts.map +1 -0
  73. package/dist/components/grid/src/type.d.ts +1 -0
  74. package/dist/components/grid/src/type.d.ts.map +1 -0
  75. package/dist/components/grid/src/utils/global-config.d.ts +1 -0
  76. package/dist/components/grid/src/utils/global-config.d.ts.map +1 -0
  77. package/dist/components/grid/src/utils/index.d.ts +1 -0
  78. package/dist/components/grid/src/utils/index.d.ts.map +1 -0
  79. package/dist/components/grid/src/utils/is.d.ts +1 -0
  80. package/dist/components/grid/src/utils/is.d.ts.map +1 -0
  81. package/dist/components/grid/src/utils/responsive-observe.d.ts +1 -0
  82. package/dist/components/grid/src/utils/responsive-observe.d.ts.map +1 -0
  83. package/dist/components/input-group/index.d.ts +2 -1
  84. package/dist/components/input-group/index.d.ts.map +1 -0
  85. package/dist/components/input-group/src/{input-group.vue.d.ts → input-group.d.ts} +3 -1
  86. package/dist/components/input-group/src/input-group.d.ts.map +1 -0
  87. package/dist/components/input-group/src/type.d.ts +1 -0
  88. package/dist/components/input-group/src/type.d.ts.map +1 -0
  89. package/dist/components/input-search/index.d.ts +2 -1
  90. package/dist/components/input-search/index.d.ts.map +1 -0
  91. package/dist/components/input-search/src/{input-search.vue.d.ts → input-search.d.ts} +6 -4
  92. package/dist/components/input-search/src/input-search.d.ts.map +1 -0
  93. package/dist/components/input-search/src/type.d.ts +1 -0
  94. package/dist/components/input-search/src/type.d.ts.map +1 -0
  95. package/dist/components/nav-tabs/index.d.ts +2 -1
  96. package/dist/components/nav-tabs/index.d.ts.map +1 -0
  97. package/dist/components/nav-tabs/src/{nav-tabs.vue.d.ts → nav-tabs.d.ts} +6 -4
  98. package/dist/components/nav-tabs/src/nav-tabs.d.ts.map +1 -0
  99. package/dist/components/nav-tabs/src/type.d.ts +1 -0
  100. package/dist/components/nav-tabs/src/type.d.ts.map +1 -0
  101. package/dist/components/page-layout/index.d.ts +2 -1
  102. package/dist/components/page-layout/index.d.ts.map +1 -0
  103. package/dist/components/page-layout/src/page-layout.d.ts +219 -0
  104. package/dist/components/page-layout/src/page-layout.d.ts.map +1 -0
  105. package/dist/components/page-layout/src/{split-button.vue.d.ts → split-button.d.ts} +5 -3
  106. package/dist/components/page-layout/src/split-button.d.ts.map +1 -0
  107. package/dist/components/page-layout/src/type.d.ts +8 -0
  108. package/dist/components/page-layout/src/type.d.ts.map +1 -0
  109. package/dist/components/page-layout/src/useAutoCollapse.d.ts +1 -0
  110. package/dist/components/page-layout/src/useAutoCollapse.d.ts.map +1 -0
  111. package/dist/components/table/index.d.ts +22 -3
  112. package/dist/components/table/index.d.ts.map +1 -0
  113. package/dist/components/table/src/table-column.d.ts +21 -0
  114. package/dist/components/table/src/table-column.d.ts.map +1 -0
  115. package/dist/components/table/src/type.d.ts +225 -9
  116. package/dist/components/table/src/type.d.ts.map +1 -0
  117. package/dist/components/tabs/index.d.ts +2 -1
  118. package/dist/components/tabs/index.d.ts.map +1 -0
  119. package/dist/components/tabs/src/{tabs.vue.d.ts → tabs.d.ts} +16 -14
  120. package/dist/components/tabs/src/tabs.d.ts.map +1 -0
  121. package/dist/components/tabs/src/type.d.ts +1 -0
  122. package/dist/components/tabs/src/type.d.ts.map +1 -0
  123. package/dist/components/tag/index.d.ts +2 -1
  124. package/dist/components/tag/index.d.ts.map +1 -0
  125. package/dist/components/tag/src/{tag.vue.d.ts → tag.d.ts} +7 -5
  126. package/dist/components/tag/src/tag.d.ts.map +1 -0
  127. package/dist/components/tag/src/type.d.ts +1 -0
  128. package/dist/components/tag/src/type.d.ts.map +1 -0
  129. package/dist/components/tree-transfer/index.d.ts +2 -1
  130. package/dist/components/tree-transfer/index.d.ts.map +1 -0
  131. package/dist/components/tree-transfer/src/tree-transfer.d.ts +14438 -0
  132. package/dist/components/tree-transfer/src/tree-transfer.d.ts.map +1 -0
  133. package/dist/components/tree-transfer/src/type.d.ts +1 -0
  134. package/dist/components/tree-transfer/src/type.d.ts.map +1 -0
  135. package/dist/components/tree-transfer/src/utils.d.ts +1 -0
  136. package/dist/components/tree-transfer/src/utils.d.ts.map +1 -0
  137. package/dist/gi.css +1 -1
  138. package/dist/global.d.ts +26 -0
  139. package/dist/hooks/index.d.ts +1 -0
  140. package/dist/hooks/index.d.ts.map +1 -0
  141. package/dist/hooks/useBemClass.d.ts +1 -0
  142. package/dist/hooks/useBemClass.d.ts.map +1 -0
  143. package/dist/hooks/useNavTabs.d.ts +1 -0
  144. package/dist/hooks/useNavTabs.d.ts.map +1 -0
  145. package/dist/index.d.ts +3 -2
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.es.js +327 -321
  148. package/dist/index.es.js.map +1 -1
  149. package/dist/index.umd.js +1 -1
  150. package/dist/index.umd.js.map +1 -1
  151. package/dist/types/tool.d.ts +1 -0
  152. package/dist/types/tool.d.ts.map +1 -0
  153. package/dist/utils/createSelectDialog.d.ts +1 -0
  154. package/dist/utils/createSelectDialog.d.ts.map +1 -0
  155. package/dist/utils/index.d.ts +1 -0
  156. package/dist/utils/index.d.ts.map +1 -0
  157. package/package.json +10 -8
  158. package/dist/components/card/src/card.vue.d.ts +0 -35
  159. package/dist/components/descriptions/src/descriptions.vue.d.ts +0 -20
  160. package/dist/components/dialog/src/dialog-content.vue.d.ts +0 -9
  161. package/dist/components/dialog/src/dialog.vue.d.ts +0 -43
  162. package/dist/components/dot/src/dot.vue.d.ts +0 -7
  163. package/dist/components/drawer/src/drawer.vue.d.ts +0 -47
  164. package/dist/components/page-layout/src/page-layout.vue.d.ts +0 -21
  165. package/dist/components/plus-tabs/index.d.ts +0 -8
  166. package/dist/components/plus-tabs/src/context.d.ts +0 -26
  167. package/dist/components/plus-tabs/src/plus-tab-pane.vue.d.ts +0 -39
  168. package/dist/components/plus-tabs/src/plus-tabs.vue.d.ts +0 -78
  169. package/dist/components/plus-tabs/src/type.d.ts +0 -5
  170. package/dist/components/tab/index.d.ts +0 -2
  171. package/dist/components/tab/src/context.d.ts +0 -10
  172. package/dist/components/tab/src/tab-item.vue.d.ts +0 -26
  173. package/dist/components/tab/src/tab.vue.d.ts +0 -44
  174. package/dist/components/tab/src/type.d.ts +0 -21
  175. package/dist/components/tab/src/use-nav-tabs.d.ts +0 -2
  176. package/dist/components/tab/src/use-tabs.d.ts +0 -13
  177. package/dist/components/table/src/TableColumn.vue.d.ts +0 -10
  178. package/dist/components/table/src/table.d.ts +0 -4
  179. package/dist/components/table/src/table.vue.d.ts +0 -4
  180. package/dist/components/table-pro/index.d.ts +0 -4
  181. package/dist/components/table-pro/src/table-pro-column-setting.vue.d.ts +0 -13
  182. package/dist/components/table-pro/src/type.d.ts +0 -5
  183. package/dist/components/tree-transfer/src/tree-transfer.vue.d.ts +0 -14436
  184. package/dist/components.d.ts +0 -27
  185. package/packages/components/button/index.ts +0 -5
  186. package/packages/components/button/src/button.vue +0 -60
  187. package/packages/components/button/src/type.ts +0 -15
  188. package/packages/components/card/index.ts +0 -5
  189. package/packages/components/card/src/card.vue +0 -171
  190. package/packages/components/card/src/type.ts +0 -12
  191. package/packages/components/descriptions/index.ts +0 -5
  192. package/packages/components/descriptions/src/descriptions.vue +0 -72
  193. package/packages/components/descriptions/src/type.ts +0 -44
  194. package/packages/components/dialog/index.ts +0 -6
  195. package/packages/components/dialog/src/dialog-content.vue +0 -40
  196. package/packages/components/dialog/src/dialog.ts +0 -131
  197. package/packages/components/dialog/src/dialog.vue +0 -114
  198. package/packages/components/dialog/src/type.ts +0 -16
  199. package/packages/components/dot/index.ts +0 -5
  200. package/packages/components/dot/src/dot.vue +0 -107
  201. package/packages/components/dot/src/type.ts +0 -6
  202. package/packages/components/drawer/index.ts +0 -6
  203. package/packages/components/drawer/src/drawer.ts +0 -84
  204. package/packages/components/drawer/src/drawer.vue +0 -114
  205. package/packages/components/drawer/src/type.ts +0 -15
  206. package/packages/components/edit-table/index.ts +0 -5
  207. package/packages/components/edit-table/src/edit-table.vue +0 -201
  208. package/packages/components/edit-table/src/type.ts +0 -51
  209. package/packages/components/flex/index.ts +0 -5
  210. package/packages/components/flex/src/flex.vue +0 -95
  211. package/packages/components/flex/src/type.ts +0 -18
  212. package/packages/components/form/index.ts +0 -5
  213. package/packages/components/form/src/form.vue +0 -424
  214. package/packages/components/form/src/type.ts +0 -85
  215. package/packages/components/grid/index.ts +0 -8
  216. package/packages/components/grid/src/context.ts +0 -30
  217. package/packages/components/grid/src/grid-item.vue +0 -143
  218. package/packages/components/grid/src/grid.vue +0 -151
  219. package/packages/components/grid/src/hook/use-index.ts +0 -63
  220. package/packages/components/grid/src/hook/use-responsive-state.ts +0 -66
  221. package/packages/components/grid/src/hook/use-responsive-value.ts +0 -36
  222. package/packages/components/grid/src/interface.ts +0 -74
  223. package/packages/components/grid/src/type.ts +0 -0
  224. package/packages/components/grid/src/utils/global-config.ts +0 -6
  225. package/packages/components/grid/src/utils/index.ts +0 -73
  226. package/packages/components/grid/src/utils/is.ts +0 -9
  227. package/packages/components/grid/src/utils/responsive-observe.ts +0 -135
  228. package/packages/components/input-group/index.ts +0 -5
  229. package/packages/components/input-group/src/input-group.vue +0 -79
  230. package/packages/components/input-group/src/type.ts +0 -1
  231. package/packages/components/input-search/index.ts +0 -5
  232. package/packages/components/input-search/src/input-search.vue +0 -48
  233. package/packages/components/input-search/src/type.ts +0 -6
  234. package/packages/components/nav-tabs/index.ts +0 -8
  235. package/packages/components/nav-tabs/src/nav-tabs.vue +0 -235
  236. package/packages/components/nav-tabs/src/type.ts +0 -24
  237. package/packages/components/page-layout/index.ts +0 -5
  238. package/packages/components/page-layout/src/page-layout.vue +0 -203
  239. package/packages/components/page-layout/src/split-button.vue +0 -107
  240. package/packages/components/page-layout/src/type.ts +0 -16
  241. package/packages/components/page-layout/src/useAutoCollapse.ts +0 -88
  242. package/packages/components/table/index.ts +0 -5
  243. package/packages/components/table/src/TableColumn.vue +0 -43
  244. package/packages/components/table/src/table.vue +0 -89
  245. package/packages/components/table/src/type.ts +0 -24
  246. package/packages/components/tabs/index.ts +0 -5
  247. package/packages/components/tabs/src/tabs.vue +0 -139
  248. package/packages/components/tabs/src/type.ts +0 -15
  249. package/packages/components/tag/index.ts +0 -5
  250. package/packages/components/tag/src/tag.vue +0 -355
  251. package/packages/components/tag/src/type.ts +0 -38
  252. package/packages/components/tree-transfer/index.ts +0 -5
  253. package/packages/components/tree-transfer/src/tree-transfer.vue +0 -225
  254. package/packages/components/tree-transfer/src/type.ts +0 -7
  255. package/packages/components/tree-transfer/src/utils.ts +0 -23
  256. package/packages/components.d.ts +0 -34
  257. package/packages/hooks/index.ts +0 -2
  258. package/packages/hooks/useBemClass.ts +0 -11
  259. package/packages/hooks/useNavTabs.ts +0 -497
  260. package/packages/index.ts +0 -118
  261. package/packages/styles/el.scss +0 -90
  262. package/packages/styles/index.scss +0 -141
  263. package/packages/styles/var.scss +0 -1
  264. package/packages/types/global.d.ts +0 -7
  265. package/packages/types/tool.ts +0 -14
  266. package/packages/utils/createSelectDialog.ts +0 -74
  267. package/packages/utils/index.ts +0 -1
@@ -1,225 +0,0 @@
1
- <template>
2
- <div class="el-transfer">
3
- <div class="el-transfer-panel">
4
- <div class="el-transfer-panel__header" @click="handleLeftAllChecked">
5
- <ElCheckbox class="hide-checkbox" :model-value="leftAllChecked">
6
- {{ props.titles[0] }}<span>{{ `${leftObj.checkedKeys.length}/${leftObj.total}`
7
- }}</span>
8
- </ElCheckbox>
9
- </div>
10
- <div class="el-transfer-panel__body">
11
- <ElScrollbar>
12
- <ElTree ref="treeRef" :data="leftTreeData" default-expand-all show-checkbox v-bind="props.treeProps"
13
- @check="handleCheck" />
14
- </ElScrollbar>
15
- </div>
16
- </div>
17
-
18
- <div class="el-transfer__buttons">
19
- <ElSpace>
20
- <ElButton type="primary" :disabled="!rightObj.checkedKeys.length" @click="handleMoveLeft">
21
- <ElIcon>
22
- <ArrowLeft />
23
- </ElIcon>
24
- </ElButton>
25
- <ElButton type="primary" :disabled="!leftObj.checkedKeys.length" @click="handleMoveRight">
26
- <ElIcon>
27
- <ArrowRight />
28
- </ElIcon>
29
- </ElButton>
30
- </ElSpace>
31
- </div>
32
-
33
- <div class="el-transfer-panel">
34
- <div class="el-transfer-panel__header" @click="handleRightAllChecked">
35
- <ElCheckbox :model-value="rightAllChecked">
36
- {{ props.titles[1] }}<span>{{ `${rightObj.checkedKeys.length}/${rightObj.options.length}`
37
- }}</span>
38
- </ElCheckbox>
39
- </div>
40
- <div class="el-transfer-panel__body">
41
- <ElScrollbar>
42
- <ElCheckboxGroup v-if="rightObj.options.length" v-model="rightObj.checkedKeys"
43
- class="el-transfer-panel__list">
44
- <ElCheckbox v-for="(item, index) in rightObj.options" :key="index" :label="item.label" :value="item.value"
45
- class="el-transfer-panel__item" />
46
- </ElCheckboxGroup>
47
- <ElEmpty v-else :image-size="60"></ElEmpty>
48
- </ElScrollbar>
49
- </div>
50
- </div>
51
- </div>
52
- </template>
53
-
54
- <script setup lang="ts">
55
- import type { CheckboxOption, TreeInstance } from 'element-plus'
56
- import type { PropType } from 'vue'
57
- import type { TreeTransferProps } from './type'
58
- import { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'
59
- import { ElButton, ElCheckbox, ElCheckboxGroup, ElEmpty, ElIcon, ElScrollbar, ElSpace, ElTree } from 'element-plus'
60
- import { computed, onMounted, reactive, ref } from 'vue'
61
- import pkg from 'xe-utils'
62
-
63
- // 右边的列表keys
64
- const selectedKeys = defineModel('selectedKeys', { type: Array as PropType<string[]>, default: () => [] })
65
-
66
- const props = withDefaults(defineProps<TreeTransferProps>(), {
67
- titles: () => ['列表', '列表'],
68
- data: () => [],
69
- treeProps: () => ({})
70
- })
71
-
72
- const { eachTree } = pkg
73
-
74
- const treeRef = ref<TreeInstance | null>(null)
75
- const nodeKey = computed(() => props.treeProps?.nodeKey || 'id')
76
-
77
- const leftObj = reactive({
78
- checkedKeys: [] as string[],
79
- total: 0,
80
- options: [] as CheckboxOption[]
81
- })
82
- const rightObj = reactive({
83
- checkedKeys: [] as string[],
84
- options: [] as CheckboxOption[]
85
- })
86
-
87
- const leftAllChecked = computed(() => {
88
- const rightListKeys = rightObj.options.map((i) => i.value)
89
- const arr: string[] = []
90
- eachTree(props.data, (i) => {
91
- // 只考虑叶子节点且不在右侧列表中的节点
92
- if (i.children === undefined && !rightListKeys.includes(i[nodeKey.value])) {
93
- arr.push(i[nodeKey.value])
94
- }
95
- })
96
- // 如果左侧没有可选节点,则返回false
97
- if (arr.length === 0) return false
98
- // 检查所有左侧叶子节点是否都被选中
99
- return arr.every((i) => leftObj.checkedKeys.includes(i))
100
- })
101
-
102
- const getLeftTreeNodes = () => {
103
- const rightListKeys = rightObj.options.map((i) => i.value)
104
- const arr: any[] = []
105
- eachTree(props.data, (i) => {
106
- // 只返回叶子节点且不在右侧列表中的节点
107
- if (i.children === undefined && !rightListKeys.includes(i[nodeKey.value])) {
108
- arr.push(i)
109
- }
110
- })
111
- return arr
112
- }
113
-
114
- function handleLeftAllChecked() {
115
- if (leftAllChecked.value) {
116
- leftObj.checkedKeys = []
117
- leftObj.options = []
118
- treeRef.value?.setCheckedKeys([])
119
- } else {
120
- const arr = getLeftTreeNodes()
121
- leftObj.checkedKeys = arr.map((i) => i[nodeKey.value])
122
- leftObj.options = arr.map((i) => ({ label: i.label, value: i[nodeKey.value] }))
123
- treeRef.value?.setCheckedKeys(leftObj.checkedKeys)
124
- }
125
- }
126
-
127
- const rightAllChecked = computed(() => rightObj.checkedKeys.length === rightObj.options.length && rightObj.options.length !== 0)
128
- function handleRightAllChecked() {
129
- if (rightAllChecked.value) {
130
- rightObj.checkedKeys = []
131
- } else {
132
- rightObj.checkedKeys = rightObj.options.map((i) => i.value as string)
133
- }
134
- }
135
-
136
- const leftTreeData = computed(() => {
137
- const treeData = JSON.parse(JSON.stringify(props.data))
138
- const rightListKeys = rightObj.options.map((i) => i.value)
139
-
140
- // 递归过滤树节点,只有当节点不在右侧列表中且有子节点存在于左侧时才保留
141
- const filterNodes = (nodes: any[]): any[] => {
142
- const filtered: any[] = []
143
-
144
- for (const node of nodes) {
145
- // 深拷贝当前节点
146
- const newNode = { ...node }
147
-
148
- // 如果有子节点,递归处理
149
- if (node.children && node.children.length > 0) {
150
- newNode.children = filterNodes(node.children)
151
- // 如果子节点过滤后仍有内容,或者节点本身不在右侧列表中且是叶子节点,则保留该节点
152
- if (newNode.children.length > 0 || (!rightListKeys.includes(node[nodeKey.value]) && (!node.children || node.children.length === 0))) {
153
- filtered.push(newNode)
154
- }
155
- } else {
156
- // 叶子节点,只有当它不在右侧列表中时才保留
157
- if (!rightListKeys.includes(node[nodeKey.value])) {
158
- filtered.push(newNode)
159
- }
160
- }
161
- }
162
-
163
- return filtered
164
- }
165
-
166
- return filterNodes(treeData)
167
- })
168
-
169
- const handleCheck = (data: any, obj: any) => {
170
- leftObj.checkedKeys = obj.checkedNodes.filter((i: any) => i?.children === undefined).map((j: any) => j[nodeKey.value])
171
- leftObj.options = obj.checkedNodes.filter((i: any) => i?.children === undefined).map((j: any) => ({ label: j.label, value: j[nodeKey.value] }))
172
- // leftObj.checkedKeys = obj.checkedNodes.map((i: any) => i[nodeKey.value])
173
- // leftObj.options = obj.checkedNodes.map((j: any) => ({ label: j.label, value: j[nodeKey.value] }))
174
- }
175
-
176
- function getLeftTotal() {
177
- const data: any[] = []
178
- eachTree(props.data, (i) => {
179
- if (i.children === undefined) {
180
- data.push(i[props?.treeProps?.nodeKey || 'id'])
181
- }
182
- })
183
- return data.length
184
- }
185
-
186
- const handleMoveLeft = () => {
187
- if (rightObj.checkedKeys.length) {
188
- leftObj.checkedKeys = []
189
- leftObj.options = []
190
- rightObj.options = rightObj.options.filter((i) => !rightObj.checkedKeys.includes(i.value as string))
191
- rightObj.checkedKeys = []
192
- selectedKeys.value = rightObj.options.map((i) => i.value as string)
193
- treeRef.value?.setCheckedKeys([])
194
- }
195
- }
196
-
197
- const handleMoveRight = () => {
198
- rightObj.options = [...rightObj.options, ...leftObj.options]
199
- leftObj.checkedKeys = []
200
- leftObj.options = []
201
- selectedKeys.value = rightObj.options.map((i) => i.value as string)
202
- }
203
-
204
- // 获取初始选中
205
- const setInitChecked = () => {
206
- const arr: CheckboxOption[] = []
207
- eachTree(props.data, (i) => {
208
- if (selectedKeys.value.includes(i[nodeKey.value] as string)) {
209
- arr.push({ label: i.label, value: i[nodeKey.value] as string })
210
- }
211
- })
212
- rightObj.options = arr
213
- }
214
-
215
- onMounted(() => {
216
- leftObj.total = getLeftTotal()
217
- setInitChecked()
218
- })
219
- </script>
220
-
221
- <style lang="scss" scoped>
222
- .el-transfer-panel__list {
223
- height: auto;
224
- }
225
- </style>
@@ -1,7 +0,0 @@
1
- import type { TreeComponentProps } from 'element-plus'
2
-
3
- export interface TreeTransferProps {
4
- titles?: [string, string]
5
- data: any[]
6
- treeProps?: Partial<TreeComponentProps>
7
- }
@@ -1,23 +0,0 @@
1
- import pkg from 'xe-utils'
2
-
3
- const { mapTree } = pkg
4
-
5
- /**
6
- * @desc 过滤树
7
- * @param { values } 数组
8
- */
9
- type FilterTree = <T extends { children?: T[] }>(
10
- array: T[],
11
- iterate: (item: T, index?: number, items?: T[]) => boolean
12
- ) => T[]
13
-
14
- export const filterTree: FilterTree = (values, fn) => {
15
- const arr = values.filter(fn)
16
- const data = mapTree(arr, (item) => {
17
- if (item.children && item.children.length) {
18
- item.children = item.children.filter(fn)
19
- }
20
- return item
21
- })
22
- return data
23
- }
@@ -1,34 +0,0 @@
1
- /* eslint-disable */
2
- // @ts-nocheck
3
- // Generated by unplugin-vue-components
4
- // Read more: https://github.com/vuejs/core/pull/3399
5
- // biome-ignore lint: disable
6
- export {}
7
-
8
- /* prettier-ignore */
9
- declare module 'vue' {
10
- export interface GlobalComponents {
11
- GiButton: typeof import('./components/button/src/button.vue')['default']
12
- GiCard: typeof import('./components/card/src/card.vue')['default']
13
- GiDescriptions: typeof import('./components/descriptions/src/descriptions.vue')['default']
14
- GiDialog: typeof import('./components/dialog/src/dialog.vue')['default']
15
- GiDialogContent: typeof import('./components/dialog/src/dialog-content.vue')['default']
16
- GiDot: typeof import('./components/dot/src/dot.vue')['default']
17
- GiDrawer: typeof import('./components/drawer/src/drawer.vue')['default']
18
- GiEditTable: typeof import('./components/edit-table/src/edit-table.vue')['default']
19
- GiFlex: typeof import('./components/flex/src/flex.vue')['default']
20
- GiForm: typeof import('./components/form/src/form.vue')['default']
21
- GiGrid: typeof import('./components/grid/src/grid.vue')['default']
22
- GiGridItem: typeof import('./components/grid/src/grid-item.vue')['default']
23
- GiInputGroup: typeof import('./components/input-group/src/input-group.vue')['default']
24
- GiInputSearch: typeof import('./components/input-search/src/input-search.vue')['default']
25
- GiNavTabs: typeof import('./components/nav-tabs/src/nav-tabs.vue')['default']
26
- GiPageLayout: typeof import('./components/page-layout/src/page-layout.vue')['default']
27
- GiSplitButton: typeof import('./components/page-layout/src/split-button.vue')['default']
28
- GiTable: typeof import('./components/table/src/table.vue')['default']
29
- GiTableColumn: typeof import('./components/table/src/TableColumn.vue')['default']
30
- GiTabs: typeof import('./components/tabs/src/tabs.vue')['default']
31
- GiTag: typeof import('./components/tag/src/tag.vue')['default']
32
- GiTreeTransfer: typeof import('./components/tree-transfer/src/tree-transfer.vue')['default']
33
- }
34
- }
@@ -1,2 +0,0 @@
1
- export * from './useBemClass'
2
- export * from './useNavTabs'
@@ -1,11 +0,0 @@
1
- import { getCurrentInstance } from 'vue'
2
-
3
- export function useBemClass() {
4
- const instance = getCurrentInstance()
5
- const configPrefix
6
- = instance?.appContext.config.globalProperties.$config?.prefix || 'gi'
7
- const prefix = configPrefix.toLowerCase()
8
- const b = (name: string = '') => `${prefix}-${name ? `${name}` : ''}`
9
-
10
- return { b }
11
- }