vxe-pc-ui 4.15.11 → 4.15.13

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 (260) hide show
  1. package/dist/all.esm.js +1597 -236
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/collapse/src/collapse.js +73 -40
  5. package/es/components.js +6 -0
  6. package/es/date-picker/src/date-picker.js +1 -0
  7. package/es/icon/style.css +1 -1
  8. package/es/image/src/image.js +14 -14
  9. package/es/language/ar-EG.js +4 -0
  10. package/es/language/de-DE.js +4 -0
  11. package/es/language/en-US.js +5 -1
  12. package/es/language/es-ES.js +4 -0
  13. package/es/language/fr-FR.js +4 -0
  14. package/es/language/hu-HU.js +4 -0
  15. package/es/language/hy-AM.js +4 -0
  16. package/es/language/id-ID.js +4 -0
  17. package/es/language/it-IT.js +4 -0
  18. package/es/language/ja-JP.js +4 -0
  19. package/es/language/ko-KR.js +4 -0
  20. package/es/language/ms-MY.js +4 -0
  21. package/es/language/nb-NO.js +4 -0
  22. package/es/language/pt-BR.js +4 -0
  23. package/es/language/ru-RU.js +4 -0
  24. package/es/language/th-TH.js +4 -0
  25. package/es/language/ug-CN.js +4 -0
  26. package/es/language/uk-UA.js +4 -0
  27. package/es/language/uz-UZ.js +4 -0
  28. package/es/language/vi-VN.js +4 -0
  29. package/es/language/zh-CHT.js +4 -0
  30. package/es/language/zh-CN.js +4 -0
  31. package/es/list/src/list.js +1163 -32
  32. package/es/list/src/store.js +8 -0
  33. package/es/list/style.css +328 -0
  34. package/es/list/style.min.css +1 -1
  35. package/es/print/src/util.js +1 -1
  36. package/es/pulldown/src/pulldown.js +4 -4
  37. package/es/style.css +1 -1
  38. package/es/style.min.css +1 -1
  39. package/es/table-transfer/index.js +12 -0
  40. package/es/table-transfer/src/table-transfer.js +65 -0
  41. package/es/table-transfer/style.css +0 -0
  42. package/es/table-transfer/style.min.css +0 -0
  43. package/es/transfer/index.js +12 -0
  44. package/es/transfer/src/transfer.js +91 -0
  45. package/es/transfer/style.css +4 -0
  46. package/es/transfer/style.min.css +1 -0
  47. package/es/tree/src/tree.js +20 -26
  48. package/es/tree/src/util.js +0 -7
  49. package/es/tree-select/src/tree-select.js +8 -7
  50. package/es/ui/index.js +14 -2
  51. package/es/ui/src/log.js +1 -1
  52. package/es/ui/src/utils.js +12 -0
  53. package/es/vxe-list/style.css +328 -0
  54. package/es/vxe-list/style.min.css +1 -1
  55. package/es/vxe-table-transfer/index.js +3 -0
  56. package/es/vxe-table-transfer/style.css +0 -0
  57. package/es/vxe-table-transfer/style.min.css +0 -0
  58. package/es/vxe-transfer/index.js +3 -0
  59. package/es/vxe-transfer/style.css +4 -0
  60. package/es/vxe-transfer/style.min.css +1 -0
  61. package/lib/collapse/src/collapse.js +89 -47
  62. package/lib/collapse/src/collapse.min.js +1 -1
  63. package/lib/components.js +25 -1
  64. package/lib/components.min.js +1 -1
  65. package/lib/date-picker/src/date-picker.js +1 -0
  66. package/lib/date-picker/src/date-picker.min.js +1 -1
  67. package/lib/icon/style/style.css +1 -1
  68. package/lib/icon/style/style.min.css +1 -1
  69. package/lib/image/src/image.js +17 -17
  70. package/lib/image/src/image.min.js +1 -1
  71. package/lib/index.umd.js +1753 -188
  72. package/lib/index.umd.min.js +1 -1
  73. package/lib/language/ar-EG.js +4 -0
  74. package/lib/language/ar-EG.min.js +1 -1
  75. package/lib/language/ar-EG.umd.js +4 -0
  76. package/lib/language/de-DE.js +4 -0
  77. package/lib/language/de-DE.min.js +1 -1
  78. package/lib/language/de-DE.umd.js +4 -0
  79. package/lib/language/en-US.js +5 -1
  80. package/lib/language/en-US.min.js +1 -1
  81. package/lib/language/en-US.umd.js +5 -1
  82. package/lib/language/es-ES.js +4 -0
  83. package/lib/language/es-ES.min.js +1 -1
  84. package/lib/language/es-ES.umd.js +4 -0
  85. package/lib/language/fr-FR.js +4 -0
  86. package/lib/language/fr-FR.min.js +1 -1
  87. package/lib/language/fr-FR.umd.js +4 -0
  88. package/lib/language/hu-HU.js +4 -0
  89. package/lib/language/hu-HU.min.js +1 -1
  90. package/lib/language/hu-HU.umd.js +4 -0
  91. package/lib/language/hy-AM.js +4 -0
  92. package/lib/language/hy-AM.min.js +1 -1
  93. package/lib/language/hy-AM.umd.js +4 -0
  94. package/lib/language/id-ID.js +4 -0
  95. package/lib/language/id-ID.min.js +1 -1
  96. package/lib/language/id-ID.umd.js +4 -0
  97. package/lib/language/it-IT.js +4 -0
  98. package/lib/language/it-IT.min.js +1 -1
  99. package/lib/language/it-IT.umd.js +4 -0
  100. package/lib/language/ja-JP.js +4 -0
  101. package/lib/language/ja-JP.min.js +1 -1
  102. package/lib/language/ja-JP.umd.js +4 -0
  103. package/lib/language/ko-KR.js +4 -0
  104. package/lib/language/ko-KR.min.js +1 -1
  105. package/lib/language/ko-KR.umd.js +4 -0
  106. package/lib/language/ms-MY.js +4 -0
  107. package/lib/language/ms-MY.min.js +1 -1
  108. package/lib/language/ms-MY.umd.js +4 -0
  109. package/lib/language/nb-NO.js +4 -0
  110. package/lib/language/nb-NO.min.js +1 -1
  111. package/lib/language/nb-NO.umd.js +4 -0
  112. package/lib/language/pt-BR.js +4 -0
  113. package/lib/language/pt-BR.min.js +1 -1
  114. package/lib/language/pt-BR.umd.js +4 -0
  115. package/lib/language/ru-RU.js +4 -0
  116. package/lib/language/ru-RU.min.js +1 -1
  117. package/lib/language/ru-RU.umd.js +4 -0
  118. package/lib/language/th-TH.js +4 -0
  119. package/lib/language/th-TH.min.js +1 -1
  120. package/lib/language/th-TH.umd.js +4 -0
  121. package/lib/language/ug-CN.js +4 -0
  122. package/lib/language/ug-CN.min.js +1 -1
  123. package/lib/language/ug-CN.umd.js +4 -0
  124. package/lib/language/uk-UA.js +4 -0
  125. package/lib/language/uk-UA.min.js +1 -1
  126. package/lib/language/uk-UA.umd.js +4 -0
  127. package/lib/language/uz-UZ.js +4 -0
  128. package/lib/language/uz-UZ.min.js +1 -1
  129. package/lib/language/uz-UZ.umd.js +4 -0
  130. package/lib/language/vi-VN.js +4 -0
  131. package/lib/language/vi-VN.min.js +1 -1
  132. package/lib/language/vi-VN.umd.js +4 -0
  133. package/lib/language/zh-CHT.js +4 -0
  134. package/lib/language/zh-CHT.min.js +1 -1
  135. package/lib/language/zh-CHT.umd.js +4 -0
  136. package/lib/language/zh-CN.js +4 -0
  137. package/lib/language/zh-CN.min.js +1 -1
  138. package/lib/language/zh-CN.umd.js +4 -0
  139. package/lib/list/src/list.js +1319 -30
  140. package/lib/list/src/list.min.js +1 -1
  141. package/lib/list/src/store.js +15 -0
  142. package/lib/list/src/store.min.js +1 -0
  143. package/lib/list/style/style.css +328 -0
  144. package/lib/list/style/style.min.css +1 -1
  145. package/lib/print/src/util.js +1 -1
  146. package/lib/print/src/util.min.js +1 -1
  147. package/lib/pulldown/src/pulldown.js +4 -0
  148. package/lib/pulldown/src/pulldown.min.js +1 -1
  149. package/lib/style.css +1 -1
  150. package/lib/style.min.css +1 -1
  151. package/lib/table-transfer/index.js +19 -0
  152. package/lib/table-transfer/index.min.js +1 -0
  153. package/lib/table-transfer/src/table-transfer.js +76 -0
  154. package/lib/table-transfer/src/table-transfer.min.js +1 -0
  155. package/lib/table-transfer/style/index.js +1 -0
  156. package/lib/table-transfer/style/style.css +0 -0
  157. package/lib/table-transfer/style/style.min.css +0 -0
  158. package/lib/transfer/index.js +19 -0
  159. package/lib/transfer/index.min.js +1 -0
  160. package/lib/transfer/src/transfer.js +95 -0
  161. package/lib/transfer/src/transfer.min.js +1 -0
  162. package/lib/transfer/style/index.js +1 -0
  163. package/lib/transfer/style/style.css +4 -0
  164. package/lib/transfer/style/style.min.css +1 -0
  165. package/lib/tree/src/tree.js +18 -24
  166. package/lib/tree/src/tree.min.js +1 -1
  167. package/lib/tree/src/util.js +0 -10
  168. package/lib/tree/src/util.min.js +1 -1
  169. package/lib/tree-select/src/tree-select.js +9 -6
  170. package/lib/tree-select/src/tree-select.min.js +1 -1
  171. package/lib/ui/index.js +14 -2
  172. package/lib/ui/index.min.js +1 -1
  173. package/lib/ui/src/log.js +1 -1
  174. package/lib/ui/src/log.min.js +1 -1
  175. package/lib/ui/src/utils.js +15 -0
  176. package/lib/ui/src/utils.min.js +1 -1
  177. package/lib/vxe-list/style/style.css +328 -0
  178. package/lib/vxe-list/style/style.min.css +1 -1
  179. package/lib/vxe-table-transfer/index.js +21 -0
  180. package/lib/vxe-table-transfer/index.min.js +1 -0
  181. package/lib/vxe-table-transfer/style/index.js +1 -0
  182. package/lib/vxe-table-transfer/style/style.css +0 -0
  183. package/lib/vxe-table-transfer/style/style.min.css +0 -0
  184. package/lib/vxe-transfer/index.js +21 -0
  185. package/lib/vxe-transfer/index.min.js +1 -0
  186. package/lib/vxe-transfer/style/index.js +1 -0
  187. package/lib/vxe-transfer/style/style.css +4 -0
  188. package/lib/vxe-transfer/style/style.min.css +1 -0
  189. package/package.json +1 -1
  190. package/packages/collapse/src/collapse.ts +81 -42
  191. package/packages/components.ts +6 -0
  192. package/packages/date-picker/src/date-picker.ts +1 -0
  193. package/packages/image/src/image.ts +14 -14
  194. package/packages/language/ar-EG.ts +4 -0
  195. package/packages/language/de-DE.ts +4 -0
  196. package/packages/language/en-US.ts +5 -1
  197. package/packages/language/es-ES.ts +4 -0
  198. package/packages/language/fr-FR.ts +4 -0
  199. package/packages/language/hu-HU.ts +4 -0
  200. package/packages/language/hy-AM.ts +4 -0
  201. package/packages/language/id-ID.ts +4 -0
  202. package/packages/language/it-IT.ts +4 -0
  203. package/packages/language/ja-JP.ts +4 -0
  204. package/packages/language/ko-KR.ts +4 -0
  205. package/packages/language/ms-MY.ts +4 -0
  206. package/packages/language/nb-NO.ts +4 -0
  207. package/packages/language/pt-BR.ts +4 -0
  208. package/packages/language/ru-RU.ts +4 -0
  209. package/packages/language/th-TH.ts +4 -0
  210. package/packages/language/ug-CN.ts +4 -0
  211. package/packages/language/uk-UA.ts +4 -0
  212. package/packages/language/uz-UZ.ts +4 -0
  213. package/packages/language/vi-VN.ts +4 -0
  214. package/packages/language/zh-CHT.ts +4 -0
  215. package/packages/language/zh-CN.ts +4 -0
  216. package/packages/list/src/list.ts +1276 -37
  217. package/packages/list/src/store.ts +14 -0
  218. package/packages/print/src/util.ts +1 -2
  219. package/packages/pulldown/src/pulldown.ts +4 -4
  220. package/packages/table-transfer/index.ts +16 -0
  221. package/packages/table-transfer/src/table-transfer.ts +91 -0
  222. package/packages/transfer/index.ts +16 -0
  223. package/packages/transfer/src/transfer.ts +117 -0
  224. package/packages/tree/src/tree.ts +20 -26
  225. package/packages/tree/src/util.ts +0 -10
  226. package/packages/tree-select/src/tree-select.ts +8 -7
  227. package/packages/ui/index.ts +14 -1
  228. package/packages/ui/src/utils.ts +15 -0
  229. package/styles/all.scss +2 -0
  230. package/styles/components/list.scss +245 -0
  231. package/styles/components/table-transfer.scss +0 -0
  232. package/styles/components/transfer.scss +4 -0
  233. package/styles/components/tree.scss +1 -0
  234. package/styles/theme/base.scss +3 -0
  235. package/styles/theme/dark.scss +10 -0
  236. package/styles/theme/light.scss +10 -0
  237. package/styles/variable.scss +11 -1
  238. package/types/all.d.ts +6 -0
  239. package/types/components/collapse.d.ts +4 -2
  240. package/types/components/list.d.ts +349 -17
  241. package/types/components/pulldown.d.ts +1 -0
  242. package/types/components/table-transfer.d.ts +84 -0
  243. package/types/components/table.d.ts +4 -0
  244. package/types/components/transfer.d.ts +84 -0
  245. package/types/components/tree-select.d.ts +4 -0
  246. package/types/components/tree.d.ts +1 -1
  247. package/types/ui/global-config.d.ts +4 -0
  248. package/types/ui/global-icon.d.ts +6 -1
  249. /package/es/icon/{iconfont.1782358507268.ttf → iconfont.1782658269305.ttf} +0 -0
  250. /package/es/icon/{iconfont.1782358507268.woff → iconfont.1782658269305.woff} +0 -0
  251. /package/es/icon/{iconfont.1782358507268.woff2 → iconfont.1782658269305.woff2} +0 -0
  252. /package/es/{iconfont.1782358507268.ttf → iconfont.1782658269305.ttf} +0 -0
  253. /package/es/{iconfont.1782358507268.woff → iconfont.1782658269305.woff} +0 -0
  254. /package/es/{iconfont.1782358507268.woff2 → iconfont.1782658269305.woff2} +0 -0
  255. /package/lib/icon/style/{iconfont.1782358507268.ttf → iconfont.1782658269305.ttf} +0 -0
  256. /package/lib/icon/style/{iconfont.1782358507268.woff → iconfont.1782658269305.woff} +0 -0
  257. /package/lib/icon/style/{iconfont.1782358507268.woff2 → iconfont.1782658269305.woff2} +0 -0
  258. /package/lib/{iconfont.1782358507268.ttf → iconfont.1782658269305.ttf} +0 -0
  259. /package/lib/{iconfont.1782358507268.woff → iconfont.1782658269305.woff} +0 -0
  260. /package/lib/{iconfont.1782358507268.woff2 → iconfont.1782658269305.woff2} +0 -0
@@ -0,0 +1,14 @@
1
+ import { reactive } from 'vue'
2
+
3
+ interface CrossListDragRowObj {
4
+ row: any
5
+ }
6
+
7
+ // 跨列表拖拽
8
+ export const crossListDragRowInfo: CrossListDragRowObj = reactive({
9
+ row: null
10
+ })
11
+
12
+ export function getCrossListDragRowInfo () {
13
+ return crossListDragRowInfo
14
+ }
@@ -4,8 +4,6 @@ import { warnLog } from '../../ui/src/log'
4
4
 
5
5
  import type { VxePrintProps, VxePrintPropTypes, VxePrintDefines, VxePrintConstructor, VxePrintPrivateMethods } from '../../../types'
6
6
 
7
- const browseObj = XEUtils.browse()
8
-
9
7
  // 打印
10
8
  let printFrame: any
11
9
 
@@ -151,6 +149,7 @@ function createHtmlPage (opts: VxePrintProps & { _pageBreaks: boolean }, printHt
151
149
  }
152
150
 
153
151
  function handlePrint (opts: VxePrintProps & { _pageBreaks: boolean }, printHtml = '') {
152
+ const browseObj = XEUtils.browse()
154
153
  const { beforeMethod, styleUrls } = opts
155
154
  if (styleUrls && styleUrls.length) {
156
155
  styleUrls.forEach(url => {
@@ -401,7 +401,7 @@ export default defineVxeComponent({
401
401
  ref: refPulldownContent,
402
402
  class: 'vxe-pulldown--content',
403
403
  onClick: clickTargetEvent
404
- }, defaultSlot ? defaultSlot({ $pulldown: $xePulldown }) : []),
404
+ }, defaultSlot ? defaultSlot({ options, $pulldown: $xePulldown }) : []),
405
405
  h(Teleport, {
406
406
  to: 'body',
407
407
  disabled: btnTransfer ? !initialized : true
@@ -426,19 +426,19 @@ export default defineVxeComponent({
426
426
  headerSlot
427
427
  ? h('div', {
428
428
  class: 'vxe-pulldown--panel-header'
429
- }, headerSlot({ $pulldown: $xePulldown }))
429
+ }, headerSlot({ options, $pulldown: $xePulldown }))
430
430
  : renderEmptyElement($xePulldown),
431
431
  h('div', {
432
432
  class: 'vxe-pulldown--panel-body'
433
433
  }, dropdownSlot
434
- ? dropdownSlot({ $pulldown: $xePulldown })
434
+ ? dropdownSlot({ options, $pulldown: $xePulldown })
435
435
  : [
436
436
  renderDefaultPanel(options)
437
437
  ]),
438
438
  footerSlot
439
439
  ? h('div', {
440
440
  class: 'vxe-pulldown--panel-footer'
441
- }, footerSlot({ $pulldown: $xePulldown }))
441
+ }, footerSlot({ options, $pulldown: $xePulldown }))
442
442
  : renderEmptyElement($xePulldown)
443
443
  ]
444
444
  : [])
@@ -0,0 +1,16 @@
1
+ import { App } from 'vue'
2
+ import { VxeUI } from '@vxe-ui/core'
3
+ import VxeTableTransferComponent from './src/table-transfer'
4
+ import { dynamicApp } from '../dynamics'
5
+
6
+ export const VxeTableTransfer = Object.assign({}, VxeTableTransferComponent, {
7
+ install (app: App) {
8
+ app.component(VxeTableTransferComponent.name as string, VxeTableTransferComponent)
9
+ }
10
+ })
11
+
12
+ dynamicApp.use(VxeTableTransfer)
13
+ VxeUI.component(VxeTableTransferComponent)
14
+
15
+ export const TableTransfer = VxeTableTransfer
16
+ export default VxeTableTransfer
@@ -0,0 +1,91 @@
1
+ import { ref, h, reactive, PropType, onBeforeUnmount } from 'vue'
2
+ import { defineVxeComponent } from '../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { getConfig, createEvent } from '../../ui'
5
+
6
+ import type { TableTransferReactData, TableTransferInternalData, VxeTableTransferEmits, VxeTableTransferPropTypes, TableTransferMethods, TableTransferPrivateMethods, ValueOf, TableTransferPrivateRef, VxeTableTransferPrivateComputed, VxeTableTransferConstructor, VxeTableTransferPrivateMethods } from '../../../types'
7
+
8
+ function createReactData (): TableTransferReactData {
9
+ return {
10
+ }
11
+ }
12
+
13
+ function createInternalData (): TableTransferInternalData {
14
+ return {
15
+ }
16
+ }
17
+
18
+ export default defineVxeComponent({
19
+ name: 'VxeTableTransfer',
20
+ props: {
21
+ modelValue: Array as PropType<VxeTableTransferPropTypes.ModelValue>,
22
+ options: Array as PropType<VxeTableTransferPropTypes.Options>,
23
+ size: {
24
+ type: String as PropType<VxeTableTransferPropTypes.Size>,
25
+ default: () => getConfig().tableTransfer.size || getConfig().size
26
+ }
27
+ },
28
+ emits: [
29
+ ] as VxeTableTransferEmits,
30
+ setup (props, context) {
31
+ const { emit } = context
32
+
33
+ const xID = XEUtils.uniqueId()
34
+
35
+ const refElem = ref<HTMLDivElement>()
36
+
37
+ const reactData = reactive(createReactData())
38
+
39
+ const internalData = createInternalData()
40
+
41
+ const refMaps: TableTransferPrivateRef = {
42
+ refElem
43
+ }
44
+
45
+ const computeMaps: VxeTableTransferPrivateComputed = {
46
+ }
47
+
48
+ const $xeTableTransfer = {
49
+ xID,
50
+ props,
51
+ context,
52
+ reactData,
53
+ internalData,
54
+
55
+ getRefMaps: () => refMaps,
56
+ getComputeMaps: () => computeMaps
57
+ } as unknown as VxeTableTransferConstructor & VxeTableTransferPrivateMethods
58
+
59
+ const dispatchEvent = (type: ValueOf<VxeTableTransferEmits>, params: Record<string, any>, evnt: Event | null) => {
60
+ emit(type, createEvent(evnt, { $tableTransfer: $xeTableTransfer }, params))
61
+ }
62
+
63
+ const tableTransferMethods: TableTransferMethods = {
64
+ dispatchEvent
65
+ }
66
+
67
+ const tableTransferPrivateMethods: TableTransferPrivateMethods = {
68
+ }
69
+
70
+ Object.assign($xeTableTransfer, tableTransferMethods, tableTransferPrivateMethods)
71
+
72
+ const renderVN = () => {
73
+ return h('div', {
74
+ ref: refElem,
75
+ class: 'vxe-table-transfer'
76
+ }, [])
77
+ }
78
+
79
+ onBeforeUnmount(() => {
80
+ XEUtils.assign(reactData, createReactData())
81
+ XEUtils.assign(internalData, createInternalData())
82
+ })
83
+
84
+ $xeTableTransfer.renderVN = renderVN
85
+
86
+ return $xeTableTransfer
87
+ },
88
+ render () {
89
+ return this.renderVN()
90
+ }
91
+ })
@@ -0,0 +1,16 @@
1
+ import { App } from 'vue'
2
+ import { VxeUI } from '@vxe-ui/core'
3
+ import VxeTransferComponent from './src/transfer'
4
+ import { dynamicApp } from '../dynamics'
5
+
6
+ export const VxeTransfer = Object.assign({}, VxeTransferComponent, {
7
+ install (app: App) {
8
+ app.component(VxeTransferComponent.name as string, VxeTransferComponent)
9
+ }
10
+ })
11
+
12
+ dynamicApp.use(VxeTransfer)
13
+ VxeUI.component(VxeTransferComponent)
14
+
15
+ export const Transfer = VxeTransfer
16
+ export default VxeTransfer
@@ -0,0 +1,117 @@
1
+ import { ref, h, reactive, PropType, onBeforeUnmount } from 'vue'
2
+ import { defineVxeComponent } from '../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { getConfig, createEvent, renderEmptyElement } from '../../ui'
5
+
6
+ import type { TransferReactData, TransferInternalData, VxeTransferEmits, VxeTransferPropTypes, TransferMethods, TransferPrivateMethods, ValueOf, TransferPrivateRef, VxeTransferPrivateComputed, VxeTransferConstructor, VxeTransferPrivateMethods } from '../../../types'
7
+
8
+ function createReactData (): TransferReactData {
9
+ return {
10
+ }
11
+ }
12
+
13
+ function createInternalData (): TransferInternalData {
14
+ return {
15
+ }
16
+ }
17
+
18
+ export default defineVxeComponent({
19
+ name: 'VxeTransfer',
20
+ props: {
21
+ modelValue: Array as PropType<VxeTransferPropTypes.ModelValue>,
22
+ options: Array as PropType<VxeTransferPropTypes.Options>,
23
+ size: {
24
+ type: String as PropType<VxeTransferPropTypes.Size>,
25
+ default: () => getConfig().transfer.size || getConfig().size
26
+ }
27
+ },
28
+ emits: [
29
+ ] as VxeTransferEmits,
30
+ setup (props, context) {
31
+ const { emit, slots } = context
32
+
33
+ const xID = XEUtils.uniqueId()
34
+
35
+ const refElem = ref<HTMLDivElement>()
36
+
37
+ const reactData = reactive(createReactData())
38
+
39
+ const internalData = createInternalData()
40
+
41
+ const refMaps: TransferPrivateRef = {
42
+ refElem
43
+ }
44
+
45
+ const computeMaps: VxeTransferPrivateComputed = {
46
+ }
47
+
48
+ const $xeTransfer = {
49
+ xID,
50
+ props,
51
+ context,
52
+ reactData,
53
+ internalData,
54
+
55
+ getRefMaps: () => refMaps,
56
+ getComputeMaps: () => computeMaps
57
+ } as unknown as VxeTransferConstructor & VxeTransferPrivateMethods
58
+
59
+ const dispatchEvent = (type: ValueOf<VxeTransferEmits>, params: Record<string, any>, evnt: Event | null) => {
60
+ emit(type, createEvent(evnt, { $transfer: $xeTransfer }, params))
61
+ }
62
+
63
+ const transferMethods: TransferMethods = {
64
+ dispatchEvent
65
+ }
66
+
67
+ const transferPrivateMethods: TransferPrivateMethods = {
68
+ }
69
+
70
+ Object.assign($xeTransfer, transferMethods, transferPrivateMethods)
71
+
72
+ const renderVN = () => {
73
+ const headerSlot = slots.header
74
+ const footerSlot = slots.footer
75
+ return h('div', {
76
+ ref: refElem,
77
+ class: 'vxe-transfer'
78
+ }, [
79
+ headerSlot
80
+ ? h('div', {
81
+ class: 'vxe-transfer--header'
82
+ }, headerSlot({ $transfer: $xeTransfer }))
83
+ : renderEmptyElement($xeTransfer),
84
+ h('div', {
85
+ class: 'vxe-transfer--body'
86
+ }, [
87
+ h('div', {
88
+ class: 'vxe-transfer--left-wrapper'
89
+ }),
90
+ h('div', {
91
+ class: 'vxe-transfer--buttons-wrapper'
92
+ }),
93
+ h('div', {
94
+ class: 'vxe-transfer--right-wrapper'
95
+ })
96
+ ]),
97
+ footerSlot
98
+ ? h('div', {
99
+ class: 'vxe-transfer--footer'
100
+ }, footerSlot({ $transfer: $xeTransfer }))
101
+ : renderEmptyElement($xeTransfer)
102
+ ])
103
+ }
104
+
105
+ onBeforeUnmount(() => {
106
+ XEUtils.assign(reactData, createReactData())
107
+ XEUtils.assign(internalData, createInternalData())
108
+ })
109
+
110
+ $xeTransfer.renderVN = renderVN
111
+
112
+ return $xeTransfer
113
+ },
114
+ render () {
115
+ return this.renderVN()
116
+ }
117
+ })
@@ -1,13 +1,13 @@
1
1
  import { ref, h, reactive, PropType, computed, VNode, watch, onBeforeUnmount, nextTick, onMounted, provide } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { VxeUI, createEvent, useSize, globalEvents, globalResize, renderEmptyElement } from '../../ui'
4
- import { calcTreeLine, enNodeValue, deNodeValue } from './util'
4
+ import { calcTreeLine } from './util'
5
5
  import { createComponentLog } from '../../ui/src/log'
6
6
  import { getCrossTreeDragNodeInfo } from './store'
7
7
  import XEUtils from 'xe-utils'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode } from '../../ui/src/dom'
10
- import { isEnableConf } from '../../ui/src/utils'
10
+ import { isEnableConf, enModelValue, deModelValue } from '../../ui/src/utils'
11
11
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
12
12
  import VxeLoadingComponent from '../../loading'
13
13
 
@@ -151,19 +151,13 @@ export default defineVxeComponent({
151
151
  type: Boolean as PropType<VxeTreePropTypes.ShowRadio>,
152
152
  default: () => getConfig().tree.showRadio
153
153
  },
154
- checkNodeKey: {
155
- type: [String, Number] as PropType<VxeTreePropTypes.CheckNodeKey>,
156
- default: () => getConfig().tree.checkNodeKey
157
- },
154
+ checkNodeKey: [String, Number] as PropType<VxeTreePropTypes.CheckNodeKey>,
158
155
  radioConfig: Object as PropType<VxeTreePropTypes.RadioConfig>,
159
156
  showCheckbox: {
160
157
  type: Boolean as PropType<VxeTreePropTypes.ShowCheckbox>,
161
158
  default: () => getConfig().tree.showCheckbox
162
159
  },
163
- checkNodeKeys: {
164
- type: Array as PropType<VxeTreePropTypes.CheckNodeKeys>,
165
- default: () => getConfig().tree.checkNodeKeys
166
- },
160
+ checkNodeKeys: Array as PropType<VxeTreePropTypes.CheckNodeKeys>,
167
161
  checkboxConfig: Object as PropType<VxeTreePropTypes.CheckboxConfig>,
168
162
  nodeConfig: Object as PropType<VxeTreePropTypes.NodeConfig>,
169
163
  lazy: Boolean as PropType<VxeTreePropTypes.Lazy>,
@@ -388,7 +382,7 @@ export default defineVxeComponent({
388
382
  }
389
383
  const valueField = computeValueField.value
390
384
  const nodeKey = XEUtils.get(node, valueField)
391
- return enNodeValue(nodeKey)
385
+ return enModelValue(nodeKey)
392
386
  }
393
387
 
394
388
  const isExpandByNode = (node: any) => {
@@ -443,7 +437,7 @@ export default defineVxeComponent({
443
437
  }
444
438
  const nodeList: any[] = []
445
439
  nodeKeys.forEach((nodeKey: string) => {
446
- const nodeid = enNodeValue(nodeKey)
440
+ const nodeid = enModelValue(nodeKey)
447
441
  const nodeItem = nodeMaps[nodeid]
448
442
  if (nodeItem) {
449
443
  nodeList.push(nodeItem.item)
@@ -1344,7 +1338,7 @@ export default defineVxeComponent({
1344
1338
  reactData.updateCheckboxFlag++
1345
1339
  updateCheckboxStatus()
1346
1340
  const nodeids = XEUtils.keys(selectCheckboxMaps)
1347
- const value = nodeids.map(deNodeValue)
1341
+ const value = nodeids.map(deModelValue)
1348
1342
  emitCheckboxMode(value)
1349
1343
  dispatchEvent('checkbox-change', { node, value, checked: isChecked }, evnt)
1350
1344
  }
@@ -1394,7 +1388,7 @@ export default defineVxeComponent({
1394
1388
  return
1395
1389
  }
1396
1390
  const isChecked = true
1397
- const value = deNodeValue(nodeid)
1391
+ const value = deModelValue(nodeid)
1398
1392
  reactData.selectRadioKey = nodeid
1399
1393
  emitRadioMode(value)
1400
1394
  dispatchEvent('radio-change', { node, value, checked: isChecked }, evnt)
@@ -1434,7 +1428,7 @@ export default defineVxeComponent({
1434
1428
  getCurrentNodeId () {
1435
1429
  const { currentNode } = reactData
1436
1430
  if (currentNode) {
1437
- return deNodeValue(getNodeId(currentNode))
1431
+ return deModelValue(getNodeId(currentNode))
1438
1432
  }
1439
1433
  return null
1440
1434
  },
@@ -1451,7 +1445,7 @@ export default defineVxeComponent({
1451
1445
  },
1452
1446
  setCurrentNodeId (nodeKey) {
1453
1447
  const { nodeMaps } = internalData
1454
- const nodeItem = nodeMaps[enNodeValue(nodeKey)]
1448
+ const nodeItem = nodeMaps[enModelValue(nodeKey)]
1455
1449
  reactData.currentNode = nodeItem ? nodeItem.item : null
1456
1450
  return nextTick()
1457
1451
  },
@@ -1479,7 +1473,7 @@ export default defineVxeComponent({
1479
1473
  return null
1480
1474
  },
1481
1475
  setRadioNodeId (nodeKey) {
1482
- reactData.selectRadioKey = enNodeValue(nodeKey)
1476
+ reactData.selectRadioKey = enModelValue(nodeKey)
1483
1477
  emitRadioMode(nodeKey)
1484
1478
  return nextTick()
1485
1479
  },
@@ -1487,7 +1481,7 @@ export default defineVxeComponent({
1487
1481
  if (node) {
1488
1482
  const nodeid = getNodeId(node)
1489
1483
  reactData.selectRadioKey = nodeid
1490
- emitRadioMode(deNodeValue(nodeid))
1484
+ emitRadioMode(deModelValue(nodeid))
1491
1485
  } else {
1492
1486
  emitRadioMode(null)
1493
1487
  }
@@ -1512,7 +1506,7 @@ export default defineVxeComponent({
1512
1506
  const { selectCheckboxMaps } = internalData
1513
1507
  const nodeKeys: any[] = []
1514
1508
  XEUtils.each(selectCheckboxMaps, (item, nodeId) => {
1515
- nodeKeys.push(deNodeValue(nodeId))
1509
+ nodeKeys.push(deModelValue(nodeId))
1516
1510
  })
1517
1511
  return nodeKeys
1518
1512
  },
@@ -1590,7 +1584,7 @@ export default defineVxeComponent({
1590
1584
  nodeKeys = [nodeKeys]
1591
1585
  }
1592
1586
  nodeKeys.forEach((nodeKey) => {
1593
- const nodeid = enNodeValue(nodeKey)
1587
+ const nodeid = enModelValue(nodeKey)
1594
1588
  handleSetExpand(nodeid, expanded, treeExpandedMaps)
1595
1589
  })
1596
1590
  reactData.updateExpandedFlag++
@@ -1603,7 +1597,7 @@ export default defineVxeComponent({
1603
1597
  const { treeExpandedMaps } = internalData
1604
1598
  const nodeKeys: any[] = []
1605
1599
  XEUtils.each(treeExpandedMaps, (item, nodeId) => {
1606
- nodeKeys.push(deNodeValue(nodeId))
1600
+ nodeKeys.push(deModelValue(nodeId))
1607
1601
  })
1608
1602
  return nodeKeys
1609
1603
  },
@@ -1641,7 +1635,7 @@ export default defineVxeComponent({
1641
1635
  nodeKeys = [nodeKeys]
1642
1636
  }
1643
1637
  nodeKeys.forEach((nodeKey) => {
1644
- const nodeid = enNodeValue(nodeKey)
1638
+ const nodeid = enModelValue(nodeKey)
1645
1639
  handleSetExpand(nodeid, !treeExpandedMaps[`${nodeid}`], treeExpandedMaps)
1646
1640
  })
1647
1641
  reactData.updateExpandedFlag++
@@ -1981,10 +1975,11 @@ export default defineVxeComponent({
1981
1975
  const dragNodeid = getNodeId(dragNode)
1982
1976
  const dragNodeRest = nodeMaps[dragNodeid] || {}
1983
1977
  const _dragNodeIndex = dragNodeRest._index
1978
+ const newNodeid = getNodeId(prevDragNode)
1984
1979
  let dragNodeHeight = 0
1985
1980
  let dragOffsetTop = -1
1986
1981
  if (animation) {
1987
- const prevItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${prevDragNode}"]`)
1982
+ const prevItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${newNodeid}"]`)
1988
1983
  const oldItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`)
1989
1984
  const targetItemEl = prevItemEl || oldItemEl
1990
1985
  if (targetItemEl) {
@@ -2001,7 +1996,6 @@ export default defineVxeComponent({
2001
1996
  let isSelfToChildStatus = false
2002
1997
 
2003
1998
  const oldRest = dragNodeRest
2004
- const newNodeid = getNodeId(prevDragNode)
2005
1999
  const newRest = nodeMaps[newNodeid]
2006
2000
  if (transform) {
2007
2001
  if (oldRest && newRest) {
@@ -2758,7 +2752,7 @@ export default defineVxeComponent({
2758
2752
  })
2759
2753
 
2760
2754
  watch(() => props.checkNodeKey, (nodeKey) => {
2761
- reactData.selectRadioKey = enNodeValue(nodeKey)
2755
+ reactData.selectRadioKey = enModelValue(nodeKey)
2762
2756
  })
2763
2757
 
2764
2758
  const checkboxFlag = ref(0)
@@ -2836,7 +2830,7 @@ export default defineVxeComponent({
2836
2830
  XEUtils.assign(internalData, createInternalData())
2837
2831
  })
2838
2832
 
2839
- reactData.selectRadioKey = enNodeValue(props.checkNodeKey)
2833
+ reactData.selectRadioKey = enModelValue(props.checkNodeKey)
2840
2834
  loadData(props.data || [])
2841
2835
 
2842
2836
  $xeTree.renderVN = renderVN
@@ -1,15 +1,5 @@
1
- import XEUtils from 'xe-utils'
2
-
3
1
  import type { VxeTreeConstructor } from '../../../types'
4
2
 
5
- export function enNodeValue (nodeid: string | number | null) {
6
- return XEUtils.eqNull(nodeid) ? '' : encodeURIComponent(`${nodeid}`)
7
- }
8
-
9
- export function deNodeValue (nodeid: string | number | null) {
10
- return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid
11
- }
12
-
13
3
  function countTreeExpand ($xeTree: VxeTreeConstructor, prevNode: any) {
14
4
  let count = 1
15
5
  if (!prevNode) {
@@ -2,8 +2,7 @@ import { ref, computed, h, PropType, nextTick, inject, provide, reactive, Telepo
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, getI18n, getIcon, globalEvents, createEvent, useSize, renderEmptyElement } from '../../ui'
4
4
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
5
- import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
6
- import { deNodeValue } from '../../tree/src/util'
5
+ import { getLastZIndex, nextZIndex, deModelValue } from '../../ui/src/utils'
7
6
  import { createComponentLog } from '../../ui/src/log'
8
7
  import XEUtils from 'xe-utils'
9
8
  import VxeInputComponent from '../../input'
@@ -104,10 +103,12 @@ export default defineVxeComponent({
104
103
  type: Boolean as PropType<VxeTreeSelectPropTypes.ShowRadio>,
105
104
  default: () => getConfig().treeSelect.showRadio
106
105
  },
106
+ radioConfig: Object as PropType<VxeTreeSelectPropTypes.RadioConfig>,
107
107
  showCheckbox: {
108
108
  type: Boolean as PropType<VxeTreeSelectPropTypes.ShowCheckbox>,
109
109
  default: () => getConfig().treeSelect.showCheckbox
110
110
  },
111
+ checkboxConfig: Object as PropType<VxeTreeSelectPropTypes.CheckboxConfig>,
111
112
  popupConfig: Object as PropType<VxeTreeSelectPropTypes.PopupConfig>,
112
113
  treeConfig: Object as PropType<VxeTreeSelectPropTypes.TreeConfig>,
113
114
  menuConfig: Object as PropType<VxeTreeSelectPropTypes.MenuConfig>,
@@ -256,21 +257,21 @@ export default defineVxeComponent({
256
257
  })
257
258
 
258
259
  const computeTreeCheckboxOpts = computed(() => {
259
- const { showCheckbox } = props
260
+ const { showCheckbox, checkboxConfig } = props
260
261
  const treeOpts = computeTreeOpts.value
261
262
  return Object.assign({
262
263
  showIcon: XEUtils.isBoolean(showCheckbox) ? showCheckbox : !!treeOpts.showCheckbox
263
- }, treeOpts.checkboxConfig, {
264
+ }, treeOpts.checkboxConfig, checkboxConfig, {
264
265
  trigger: 'node'
265
266
  })
266
267
  })
267
268
 
268
269
  const computeTreeRadioOpts = computed(() => {
269
- const { showRadio } = props
270
+ const { showRadio, radioConfig } = props
270
271
  const treeOpts = computeTreeOpts.value
271
272
  return Object.assign({
272
273
  showIcon: XEUtils.isBoolean(showRadio) ? showRadio : !!treeOpts.showRadio
273
- }, treeOpts.radioConfig, {
274
+ }, treeOpts.radioConfig, radioConfig, {
274
275
  trigger: 'node'
275
276
  })
276
277
  })
@@ -546,7 +547,7 @@ export default defineVxeComponent({
546
547
  }
547
548
 
548
549
  const changeEvent = (evnt: Event, selectValue: any, node: any) => {
549
- const value = XEUtils.isArray(selectValue) ? selectValue.map(deNodeValue) : deNodeValue(selectValue)
550
+ const value = XEUtils.isArray(selectValue) ? selectValue.map(deModelValue) : deModelValue(selectValue)
550
551
  emitModel(value)
551
552
  if (value !== props.modelValue) {
552
553
  dispatchEvent('change', { value, node, option: node }, evnt)
@@ -231,6 +231,12 @@ setConfig({
231
231
  listView: {},
232
232
  list: {
233
233
  // size: null,
234
+ dragConfig: {
235
+ showIcon: true,
236
+ animation: true,
237
+ showGuidesStatus: true,
238
+ showDragTip: true
239
+ },
234
240
  virtualYConfig: {
235
241
  enabled: true,
236
242
  gt: 100
@@ -386,6 +392,7 @@ setConfig({
386
392
  }
387
393
  }
388
394
  },
395
+ tableTransfer: {},
389
396
  tabs: {
390
397
  // destroyOnClose: false
391
398
  },
@@ -413,6 +420,7 @@ setConfig({
413
420
  leaveDelay: 300,
414
421
  isArrow: true
415
422
  },
423
+ transfer: {},
416
424
  tree: {
417
425
  // autoResize: false,
418
426
  indent: 20,
@@ -713,7 +721,12 @@ setIcon({
713
721
  // cascader
714
722
  CASCADER_NODE_OPEN: iconPrefix + 'arrow-right',
715
723
  CASCADER_NODE_CLOSE: iconPrefix + 'arrow-right',
716
- CASCADER_NODE_LOADED: iconPrefix + 'spinner roll'
724
+ CASCADER_NODE_LOADED: iconPrefix + 'spinner roll',
725
+
726
+ // list
727
+ LIST_DRAG: iconPrefix + 'drag-handle',
728
+ LIST_DRAG_STATUS_NODE: iconPrefix + 'sort',
729
+ LIST_DRAG_DISABLED: iconPrefix + 'no-drop'
717
730
  })
718
731
 
719
732
  export * from '@vxe-ui/core'
@@ -37,6 +37,13 @@ export function getFuncText (content: string | number | boolean | null | undefin
37
37
  return `${translate ? translate('' + content, args) : content}`
38
38
  }
39
39
 
40
+ export function getText (content: string | number | boolean | null | undefined) {
41
+ if (XEUtils.eqNull(content)) {
42
+ return ''
43
+ }
44
+ return '' + content
45
+ }
46
+
40
47
  /**
41
48
  * 判断值为:'' | null | undefined 时都属于空值
42
49
  */
@@ -47,3 +54,11 @@ export function eqEmptyValue (cellValue: any) {
47
54
  export function handleBooleanDefaultValue (value: boolean | undefined | null) {
48
55
  return XEUtils.isBoolean(value) ? value : null
49
56
  }
57
+
58
+ export function enModelValue (nodeid: string | number | null | undefined) {
59
+ return XEUtils.eqNull(nodeid) ? '' : encodeURIComponent(`${nodeid}`)
60
+ }
61
+
62
+ export function deModelValue (nodeid: string | number | null) {
63
+ return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid
64
+ }
package/styles/all.scss CHANGED
@@ -74,6 +74,7 @@
74
74
  @use './components/switch.scss';
75
75
  @use './components/tab-pane.scss';
76
76
  @use './components/table-select.scss';
77
+ @use './components/table-transfer.scss';
77
78
  @use './components/tabs.scss';
78
79
  @use './components/tag.scss';
79
80
  @use './components/text-ellipsis.scss';
@@ -84,6 +85,7 @@
84
85
  @use './components/tip.scss';
85
86
  @use './components/tooltip.scss';
86
87
  @use './components/tour.scss';
88
+ @use './components/transfer.scss';
87
89
  @use './components/tree.scss';
88
90
  @use './components/tree-select.scss';
89
91
  @use './components/upload.scss';