vxe-pc-ui 3.15.11 → 3.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 (257) hide show
  1. package/es/collapse/src/collapse.js +72 -36
  2. package/es/components.js +6 -0
  3. package/es/date-picker/src/date-picker.js +1 -0
  4. package/es/icon/style.css +1 -1
  5. package/es/image/src/image.js +14 -14
  6. package/es/language/ar-EG.js +4 -0
  7. package/es/language/de-DE.js +4 -0
  8. package/es/language/en-US.js +5 -1
  9. package/es/language/es-ES.js +4 -0
  10. package/es/language/fr-FR.js +4 -0
  11. package/es/language/hu-HU.js +4 -0
  12. package/es/language/hy-AM.js +4 -0
  13. package/es/language/id-ID.js +4 -0
  14. package/es/language/it-IT.js +4 -0
  15. package/es/language/ja-JP.js +4 -0
  16. package/es/language/ko-KR.js +4 -0
  17. package/es/language/ms-MY.js +4 -0
  18. package/es/language/nb-NO.js +4 -0
  19. package/es/language/pt-BR.js +4 -0
  20. package/es/language/ru-RU.js +4 -0
  21. package/es/language/th-TH.js +4 -0
  22. package/es/language/ug-CN.js +4 -0
  23. package/es/language/uk-UA.js +4 -0
  24. package/es/language/uz-UZ.js +4 -0
  25. package/es/language/vi-VN.js +4 -0
  26. package/es/language/zh-CHT.js +4 -0
  27. package/es/language/zh-CN.js +4 -0
  28. package/es/list/src/list.js +1260 -32
  29. package/es/list/src/store.js +8 -0
  30. package/es/list/style.css +333 -0
  31. package/es/list/style.min.css +1 -1
  32. package/es/print/src/util.js +1 -1
  33. package/es/pulldown/src/pulldown.js +4 -4
  34. package/es/style.css +1 -1
  35. package/es/style.min.css +1 -1
  36. package/es/table-transfer/index.js +12 -0
  37. package/es/table-transfer/src/table-transfer.js +71 -0
  38. package/es/table-transfer/style.css +0 -0
  39. package/es/table-transfer/style.min.css +0 -0
  40. package/es/transfer/index.js +12 -0
  41. package/es/transfer/src/transfer.js +86 -0
  42. package/es/transfer/style.css +0 -0
  43. package/es/transfer/style.min.css +0 -0
  44. package/es/tree/src/tree.js +20 -26
  45. package/es/tree/src/util.js +0 -7
  46. package/es/tree-select/src/tree-select.js +8 -7
  47. package/es/ui/index.js +14 -2
  48. package/es/ui/src/log.js +1 -1
  49. package/es/ui/src/utils.js +12 -0
  50. package/es/vxe-list/style.css +333 -0
  51. package/es/vxe-list/style.min.css +1 -1
  52. package/es/vxe-table-transfer/index.js +3 -0
  53. package/es/vxe-table-transfer/style.css +0 -0
  54. package/es/vxe-table-transfer/style.min.css +0 -0
  55. package/es/vxe-transfer/index.js +3 -0
  56. package/es/vxe-transfer/style.css +0 -0
  57. package/es/vxe-transfer/style.min.css +0 -0
  58. package/lib/collapse/src/collapse.js +74 -37
  59. package/lib/collapse/src/collapse.min.js +1 -1
  60. package/lib/components.js +25 -1
  61. package/lib/components.min.js +1 -1
  62. package/lib/date-picker/src/date-picker.js +1 -0
  63. package/lib/date-picker/src/date-picker.min.js +1 -1
  64. package/lib/icon/style/style.css +1 -1
  65. package/lib/icon/style/style.min.css +1 -1
  66. package/lib/image/src/image.js +17 -17
  67. package/lib/image/src/image.min.js +1 -1
  68. package/lib/index.umd.js +1792 -202
  69. package/lib/index.umd.min.js +1 -1
  70. package/lib/language/ar-EG.js +4 -0
  71. package/lib/language/ar-EG.min.js +1 -1
  72. package/lib/language/ar-EG.umd.js +4 -0
  73. package/lib/language/de-DE.js +4 -0
  74. package/lib/language/de-DE.min.js +1 -1
  75. package/lib/language/de-DE.umd.js +4 -0
  76. package/lib/language/en-US.js +5 -1
  77. package/lib/language/en-US.min.js +1 -1
  78. package/lib/language/en-US.umd.js +5 -1
  79. package/lib/language/es-ES.js +4 -0
  80. package/lib/language/es-ES.min.js +1 -1
  81. package/lib/language/es-ES.umd.js +4 -0
  82. package/lib/language/fr-FR.js +4 -0
  83. package/lib/language/fr-FR.min.js +1 -1
  84. package/lib/language/fr-FR.umd.js +4 -0
  85. package/lib/language/hu-HU.js +4 -0
  86. package/lib/language/hu-HU.min.js +1 -1
  87. package/lib/language/hu-HU.umd.js +4 -0
  88. package/lib/language/hy-AM.js +4 -0
  89. package/lib/language/hy-AM.min.js +1 -1
  90. package/lib/language/hy-AM.umd.js +4 -0
  91. package/lib/language/id-ID.js +4 -0
  92. package/lib/language/id-ID.min.js +1 -1
  93. package/lib/language/id-ID.umd.js +4 -0
  94. package/lib/language/it-IT.js +4 -0
  95. package/lib/language/it-IT.min.js +1 -1
  96. package/lib/language/it-IT.umd.js +4 -0
  97. package/lib/language/ja-JP.js +4 -0
  98. package/lib/language/ja-JP.min.js +1 -1
  99. package/lib/language/ja-JP.umd.js +4 -0
  100. package/lib/language/ko-KR.js +4 -0
  101. package/lib/language/ko-KR.min.js +1 -1
  102. package/lib/language/ko-KR.umd.js +4 -0
  103. package/lib/language/ms-MY.js +4 -0
  104. package/lib/language/ms-MY.min.js +1 -1
  105. package/lib/language/ms-MY.umd.js +4 -0
  106. package/lib/language/nb-NO.js +4 -0
  107. package/lib/language/nb-NO.min.js +1 -1
  108. package/lib/language/nb-NO.umd.js +4 -0
  109. package/lib/language/pt-BR.js +4 -0
  110. package/lib/language/pt-BR.min.js +1 -1
  111. package/lib/language/pt-BR.umd.js +4 -0
  112. package/lib/language/ru-RU.js +4 -0
  113. package/lib/language/ru-RU.min.js +1 -1
  114. package/lib/language/ru-RU.umd.js +4 -0
  115. package/lib/language/th-TH.js +4 -0
  116. package/lib/language/th-TH.min.js +1 -1
  117. package/lib/language/th-TH.umd.js +4 -0
  118. package/lib/language/ug-CN.js +4 -0
  119. package/lib/language/ug-CN.min.js +1 -1
  120. package/lib/language/ug-CN.umd.js +4 -0
  121. package/lib/language/uk-UA.js +4 -0
  122. package/lib/language/uk-UA.min.js +1 -1
  123. package/lib/language/uk-UA.umd.js +4 -0
  124. package/lib/language/uz-UZ.js +4 -0
  125. package/lib/language/uz-UZ.min.js +1 -1
  126. package/lib/language/uz-UZ.umd.js +4 -0
  127. package/lib/language/vi-VN.js +4 -0
  128. package/lib/language/vi-VN.min.js +1 -1
  129. package/lib/language/vi-VN.umd.js +4 -0
  130. package/lib/language/zh-CHT.js +4 -0
  131. package/lib/language/zh-CHT.min.js +1 -1
  132. package/lib/language/zh-CHT.umd.js +4 -0
  133. package/lib/language/zh-CN.js +4 -0
  134. package/lib/language/zh-CN.min.js +1 -1
  135. package/lib/language/zh-CN.umd.js +4 -0
  136. package/lib/list/src/list.js +1347 -36
  137. package/lib/list/src/list.min.js +1 -1
  138. package/lib/list/src/store.js +15 -0
  139. package/lib/list/src/store.min.js +1 -0
  140. package/lib/list/style/style.css +333 -0
  141. package/lib/list/style/style.min.css +1 -1
  142. package/lib/print/src/util.js +1 -1
  143. package/lib/print/src/util.min.js +1 -1
  144. package/lib/pulldown/src/pulldown.js +4 -0
  145. package/lib/pulldown/src/pulldown.min.js +1 -1
  146. package/lib/style.css +1 -1
  147. package/lib/style.min.css +1 -1
  148. package/lib/table-transfer/index.js +19 -0
  149. package/lib/table-transfer/index.min.js +1 -0
  150. package/lib/table-transfer/src/table-transfer.js +84 -0
  151. package/lib/table-transfer/src/table-transfer.min.js +1 -0
  152. package/lib/table-transfer/style/index.js +1 -0
  153. package/lib/table-transfer/style/style.css +0 -0
  154. package/lib/table-transfer/style/style.min.css +0 -0
  155. package/lib/transfer/index.js +19 -0
  156. package/lib/transfer/index.min.js +1 -0
  157. package/lib/transfer/src/transfer.js +93 -0
  158. package/lib/transfer/src/transfer.min.js +1 -0
  159. package/lib/transfer/style/index.js +1 -0
  160. package/lib/transfer/style/style.css +0 -0
  161. package/lib/transfer/style/style.min.css +0 -0
  162. package/lib/tree/src/tree.js +18 -28
  163. package/lib/tree/src/tree.min.js +1 -1
  164. package/lib/tree/src/util.js +0 -10
  165. package/lib/tree/src/util.min.js +1 -1
  166. package/lib/tree-select/src/tree-select.js +9 -6
  167. package/lib/tree-select/src/tree-select.min.js +1 -1
  168. package/lib/ui/index.js +14 -2
  169. package/lib/ui/index.min.js +1 -1
  170. package/lib/ui/src/log.js +1 -1
  171. package/lib/ui/src/log.min.js +1 -1
  172. package/lib/ui/src/utils.js +15 -0
  173. package/lib/ui/src/utils.min.js +1 -1
  174. package/lib/vxe-list/style/style.css +333 -0
  175. package/lib/vxe-list/style/style.min.css +1 -1
  176. package/lib/vxe-table-transfer/index.js +22 -0
  177. package/lib/vxe-table-transfer/index.min.js +1 -0
  178. package/lib/vxe-table-transfer/style/index.js +1 -0
  179. package/lib/vxe-table-transfer/style/style.css +0 -0
  180. package/lib/vxe-table-transfer/style/style.min.css +0 -0
  181. package/lib/vxe-transfer/index.js +22 -0
  182. package/lib/vxe-transfer/index.min.js +1 -0
  183. package/lib/vxe-transfer/style/index.js +1 -0
  184. package/lib/vxe-transfer/style/style.css +0 -0
  185. package/lib/vxe-transfer/style/style.min.css +0 -0
  186. package/package.json +1 -1
  187. package/packages/collapse/src/collapse.ts +79 -36
  188. package/packages/components.ts +6 -0
  189. package/packages/date-picker/src/date-picker.ts +1 -0
  190. package/packages/image/src/image.ts +14 -14
  191. package/packages/language/ar-EG.ts +4 -0
  192. package/packages/language/de-DE.ts +4 -0
  193. package/packages/language/en-US.ts +5 -1
  194. package/packages/language/es-ES.ts +4 -0
  195. package/packages/language/fr-FR.ts +4 -0
  196. package/packages/language/hu-HU.ts +4 -0
  197. package/packages/language/hy-AM.ts +4 -0
  198. package/packages/language/id-ID.ts +4 -0
  199. package/packages/language/it-IT.ts +4 -0
  200. package/packages/language/ja-JP.ts +4 -0
  201. package/packages/language/ko-KR.ts +4 -0
  202. package/packages/language/ms-MY.ts +4 -0
  203. package/packages/language/nb-NO.ts +4 -0
  204. package/packages/language/pt-BR.ts +4 -0
  205. package/packages/language/ru-RU.ts +4 -0
  206. package/packages/language/th-TH.ts +4 -0
  207. package/packages/language/ug-CN.ts +4 -0
  208. package/packages/language/uk-UA.ts +4 -0
  209. package/packages/language/uz-UZ.ts +4 -0
  210. package/packages/language/vi-VN.ts +4 -0
  211. package/packages/language/zh-CHT.ts +4 -0
  212. package/packages/language/zh-CN.ts +4 -0
  213. package/packages/list/src/list.ts +1366 -35
  214. package/packages/list/src/store.ts +15 -0
  215. package/packages/print/src/util.ts +1 -2
  216. package/packages/pulldown/src/pulldown.ts +4 -4
  217. package/packages/table-transfer/index.ts +16 -0
  218. package/packages/table-transfer/src/table-transfer.ts +88 -0
  219. package/packages/transfer/index.ts +16 -0
  220. package/packages/transfer/src/transfer.ts +103 -0
  221. package/packages/tree/src/tree.ts +20 -26
  222. package/packages/tree/src/util.ts +0 -10
  223. package/packages/tree-select/src/tree-select.ts +8 -7
  224. package/packages/ui/index.ts +14 -1
  225. package/packages/ui/src/utils.ts +15 -0
  226. package/styles/all.scss +2 -0
  227. package/styles/components/list.scss +245 -0
  228. package/styles/components/table-transfer.scss +0 -0
  229. package/styles/components/transfer.scss +0 -0
  230. package/styles/components/tree.scss +1 -0
  231. package/styles/theme/base.scss +3 -0
  232. package/styles/theme/dark.scss +10 -0
  233. package/styles/theme/light.scss +10 -0
  234. package/styles/variable.scss +11 -1
  235. package/types/all.d.ts +6 -0
  236. package/types/components/collapse.d.ts +5 -2
  237. package/types/components/list.d.ts +359 -19
  238. package/types/components/pulldown.d.ts +1 -0
  239. package/types/components/table-transfer.d.ts +77 -0
  240. package/types/components/table.d.ts +4 -0
  241. package/types/components/transfer.d.ts +77 -0
  242. package/types/components/tree-select.d.ts +4 -0
  243. package/types/components/tree.d.ts +1 -1
  244. package/types/ui/global-config.d.ts +4 -0
  245. package/types/ui/global-icon.d.ts +6 -1
  246. /package/es/icon/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
  247. /package/es/icon/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
  248. /package/es/icon/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
  249. /package/es/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
  250. /package/es/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
  251. /package/es/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
  252. /package/lib/icon/style/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
  253. /package/lib/icon/style/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
  254. /package/lib/icon/style/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
  255. /package/lib/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
  256. /package/lib/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
  257. /package/lib/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
@@ -0,0 +1,15 @@
1
+ import type { VxeListConstructor, VxeListPrivateMethods } from '../../../types'
2
+
3
+ interface CrossListDragRowObj {
4
+ row: any
5
+ }
6
+
7
+ // 跨表拖拽
8
+ export const crossListDragRowGlobal: CrossListDragRowObj = {
9
+ row: null
10
+ }
11
+
12
+ export function getCrossListDragRowInfo ($xeList: VxeListConstructor & VxeListPrivateMethods) {
13
+ const crossListDragRowInfo = ($xeList as any).crossListDragRowInfo as CrossListDragRowObj
14
+ return crossListDragRowInfo
15
+ }
@@ -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 => {
@@ -445,7 +445,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
445
445
  on: {
446
446
  click: $xePulldown.clickTargetEvent
447
447
  }
448
- }, defaultSlot ? defaultSlot({ $pulldown: $xePulldown }) : []),
448
+ }, defaultSlot ? defaultSlot({ options, $pulldown: $xePulldown }) : []),
449
449
  h('div', {
450
450
  ref: 'refPulldownPanel',
451
451
  class: ['vxe-table--ignore-clear vxe-pulldown--panel', ppClassName ? (XEUtils.isFunction(ppClassName) ? ppClassName({ $pulldown: $xePulldown }) : ppClassName) : '', {
@@ -469,19 +469,19 @@ export default /* define-vxe-component start */ defineVxeComponent({
469
469
  headerSlot
470
470
  ? h('div', {
471
471
  class: 'vxe-pulldown--panel-header'
472
- }, headerSlot({ $pulldown: $xePulldown }))
472
+ }, headerSlot({ options, $pulldown: $xePulldown }))
473
473
  : renderEmptyElement($xePulldown),
474
474
  h('div', {
475
475
  class: 'vxe-pulldown--panel-body'
476
476
  }, dropdownSlot
477
- ? dropdownSlot({ $pulldown: $xePulldown })
477
+ ? dropdownSlot({ options, $pulldown: $xePulldown })
478
478
  : [
479
479
  $xePulldown.renderDefaultPanel(h, options)
480
480
  ]),
481
481
  footerSlot
482
482
  ? h('div', {
483
483
  class: 'vxe-pulldown--panel-footer'
484
- }, footerSlot({ $pulldown: $xePulldown }))
484
+ }, footerSlot({ options, $pulldown: $xePulldown }))
485
485
  : renderEmptyElement($xePulldown)
486
486
  ]
487
487
  : [])
@@ -0,0 +1,16 @@
1
+ import { VueConstructor } 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: VueConstructor) {
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,88 @@
1
+ import { CreateElement, VNode, PropType } 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, ValueOf } from '../../../types'
7
+
8
+ function createReactData (): TableTransferReactData {
9
+ return {
10
+ }
11
+ }
12
+
13
+ function createInternalData (): TableTransferInternalData {
14
+ return {
15
+ }
16
+ }
17
+
18
+ export default /* define-vxe-component start */ 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
+ data () {
29
+ const xID = XEUtils.uniqueId()
30
+ const reactData = createReactData()
31
+ return {
32
+ ...({} as {
33
+ internalData: TableTransferInternalData
34
+ }),
35
+ xID,
36
+ reactData
37
+ }
38
+ },
39
+ methods: {
40
+ //
41
+ // Method
42
+ //
43
+ dispatchEvent (type: ValueOf<VxeTableTransferEmits>, params: Record<string, any>, evnt: Event | null) {
44
+ const $xeTableTransfer = this
45
+ $xeTableTransfer.$emit(type, createEvent(evnt, { $tableTransfer: $xeTableTransfer }, params))
46
+ },
47
+ emitModel (value: any) {
48
+ const $xeTableTransfer = this
49
+
50
+ const { _events } = $xeTableTransfer as any
51
+ if (_events && _events.modelValue) {
52
+ $xeTableTransfer.$emit('modelValue', value)
53
+ } else {
54
+ $xeTableTransfer.$emit('model-value', value)
55
+ }
56
+ },
57
+
58
+ //
59
+ // Render
60
+ //
61
+ renderVN (h: CreateElement): VNode {
62
+ const $xeTableTransfer = this
63
+ const slots = $xeTableTransfer.$scopedSlots
64
+
65
+ const defaultSlot = slots.default
66
+ return h('div', {
67
+ ref: 'refElem',
68
+ class: 'vxe-table-transfer'
69
+ }, defaultSlot ? defaultSlot({}) : [])
70
+ }
71
+ },
72
+ created () {
73
+ const $xeUpload = this
74
+
75
+ $xeUpload.internalData = createInternalData()
76
+ },
77
+ beforeDestroy () {
78
+ const $xeUpload = this
79
+ const reactData = $xeUpload.reactData
80
+ const internalData = $xeUpload.internalData
81
+
82
+ XEUtils.assign(reactData, createReactData())
83
+ XEUtils.assign(internalData, createInternalData())
84
+ },
85
+ render (this: any, h) {
86
+ return this.renderVN(h)
87
+ }
88
+ }) /* define-vxe-component end */
@@ -0,0 +1,16 @@
1
+ import { VueConstructor } 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: VueConstructor) {
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,103 @@
1
+ import { CreateElement, VNode, PropType } 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, VxeTransferPropTypes, VxeTransferEmits, ValueOf } from '../../../types'
7
+
8
+ function createReactData (): TransferReactData {
9
+ return {
10
+ }
11
+ }
12
+
13
+ function createInternalData (): TransferInternalData {
14
+ return {
15
+ }
16
+ }
17
+
18
+ export default /* define-vxe-component start */ 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
+ data () {
29
+ const xID = XEUtils.uniqueId()
30
+ const reactData = createReactData()
31
+ return {
32
+ ...({} as {
33
+ internalData: TransferInternalData
34
+ }),
35
+ xID,
36
+ reactData
37
+ }
38
+ },
39
+ methods: {
40
+ //
41
+ // Method
42
+ //
43
+ dispatchEvent (type: ValueOf<VxeTransferEmits>, params: Record<string, any>, evnt: Event | null) {
44
+ const $xeTransfer = this
45
+ $xeTransfer.$emit(type, createEvent(evnt, { $transfer: $xeTransfer }, params))
46
+ },
47
+ emitModel (value: any) {
48
+ const $xeTransfer = this
49
+
50
+ const { _events } = $xeTransfer as any
51
+ if (_events && _events.modelValue) {
52
+ $xeTransfer.$emit('modelValue', value)
53
+ } else {
54
+ $xeTransfer.$emit('model-value', value)
55
+ }
56
+ },
57
+
58
+ //
59
+ // Render
60
+ //
61
+ renderVN (h: CreateElement): VNode {
62
+ const $xeTransfer = this
63
+ const slots = $xeTransfer.$scopedSlots
64
+
65
+ const headerSlot = slots.header
66
+ const footerSlot = slots.footer
67
+ return h('div', {
68
+ ref: 'refElem',
69
+ class: 'vxe-transfer'
70
+ }, [
71
+ headerSlot
72
+ ? h('div', {
73
+ class: 'vxe-transfer--header'
74
+ }, headerSlot({ $transfer: $xeTransfer }))
75
+ : renderEmptyElement($xeTransfer),
76
+ h('div'),
77
+ h('div'),
78
+ h('div'),
79
+ footerSlot
80
+ ? h('div', {
81
+ class: 'vxe-transfer--footer'
82
+ }, footerSlot({ $transfer: $xeTransfer }))
83
+ : renderEmptyElement($xeTransfer)
84
+ ])
85
+ }
86
+ },
87
+ created () {
88
+ const $xeUpload = this
89
+
90
+ $xeUpload.internalData = createInternalData()
91
+ },
92
+ beforeDestroy () {
93
+ const $xeUpload = this
94
+ const reactData = $xeUpload.reactData
95
+ const internalData = $xeUpload.internalData
96
+
97
+ XEUtils.assign(reactData, createReactData())
98
+ XEUtils.assign(internalData, createInternalData())
99
+ },
100
+ render (this: any, h) {
101
+ return this.renderVN(h)
102
+ }
103
+ }) /* define-vxe-component end */
@@ -2,12 +2,12 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, createEvent, globalEvents, globalResize, renderEmptyElement, globalMixins } from '../../ui'
5
- import { calcTreeLine, enNodeValue, deNodeValue } from './util'
5
+ import { calcTreeLine } from './util'
6
6
  import { createComponentLog } from '../../ui/src/log'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { crossTreeDragNodeGlobal, getCrossTreeDragNodeInfo } from './store'
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
 
@@ -231,10 +231,11 @@ function handleNodeDragSwapEvent ($xeTree: VxeTreeConstructor & VxeTreePrivateMe
231
231
  const dragNodeid = $xeTree.getNodeId(dragNode)
232
232
  const dragNodeRest = nodeMaps[dragNodeid] || {}
233
233
  const _dragNodeIndex = dragNodeRest._index
234
+ const newNodeid = $xeTree.getNodeId(prevDragNode)
234
235
  let dragNodeHeight = 0
235
236
  let dragOffsetTop = -1
236
237
  if (animation) {
237
- const prevItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${prevDragNode}"]`)
238
+ const prevItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${newNodeid}"]`)
238
239
  const oldItemEl = el.querySelector<HTMLElement>(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`)
239
240
  const targetItemEl = prevItemEl || oldItemEl
240
241
  if (targetItemEl) {
@@ -251,7 +252,6 @@ function handleNodeDragSwapEvent ($xeTree: VxeTreeConstructor & VxeTreePrivateMe
251
252
  let isSelfToChildStatus = false
252
253
 
253
254
  const oldRest = dragNodeRest
254
- const newNodeid = $xeTree.getNodeId(prevDragNode)
255
255
  const newRest = nodeMaps[newNodeid]
256
256
  if (transform) {
257
257
  if (oldRest && newRest) {
@@ -623,19 +623,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
623
623
  type: Boolean as PropType<VxeTreePropTypes.ShowRadio>,
624
624
  default: () => getConfig().tree.showRadio
625
625
  },
626
- checkNodeKey: {
627
- type: [String, Number] as PropType<VxeTreePropTypes.CheckNodeKey>,
628
- default: () => getConfig().tree.checkNodeKey
629
- },
626
+ checkNodeKey: [String, Number] as PropType<VxeTreePropTypes.CheckNodeKey>,
630
627
  radioConfig: Object as PropType<VxeTreePropTypes.RadioConfig>,
631
628
  showCheckbox: {
632
629
  type: Boolean as PropType<VxeTreePropTypes.ShowCheckbox>,
633
630
  default: () => getConfig().tree.showCheckbox
634
631
  },
635
- checkNodeKeys: {
636
- type: Array as PropType<VxeTreePropTypes.CheckNodeKeys>,
637
- default: () => getConfig().tree.checkNodeKeys
638
- },
632
+ checkNodeKeys: Array as PropType<VxeTreePropTypes.CheckNodeKeys>,
639
633
  checkboxConfig: Object as PropType<VxeTreePropTypes.CheckboxConfig>,
640
634
  nodeConfig: Object as PropType<VxeTreePropTypes.NodeConfig>,
641
635
  lazy: Boolean as PropType<VxeTreePropTypes.Lazy>,
@@ -867,7 +861,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
867
861
  }
868
862
  const valueField = $xeTree.computeValueField
869
863
  const nodeKey = XEUtils.get(node, valueField)
870
- return enNodeValue(nodeKey)
864
+ return enModelValue(nodeKey)
871
865
  },
872
866
  getNodeById (nodeid: string) {
873
867
  const $xeTree = this
@@ -949,7 +943,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
949
943
  if (node) {
950
944
  const nodeid = $xeTree.getNodeId(node)
951
945
  reactData.selectRadioKey = nodeid
952
- $xeTree.emitRadioMode(deNodeValue(nodeid))
946
+ $xeTree.emitRadioMode(deModelValue(nodeid))
953
947
  } else {
954
948
  $xeTree.emitRadioMode(null)
955
949
  }
@@ -985,7 +979,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
985
979
  }
986
980
  const nodeList: any[] = []
987
981
  nodeKeys.forEach((nodeKey: string) => {
988
- const nodeid = enNodeValue(nodeKey)
982
+ const nodeid = enModelValue(nodeKey)
989
983
  const nodeItem = nodeMaps[nodeid]
990
984
  if (nodeItem) {
991
985
  nodeList.push(nodeItem.item)
@@ -1986,7 +1980,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1986
1980
  reactData.updateCheckboxFlag++
1987
1981
  $xeTree.updateCheckboxStatus()
1988
1982
  const nodeids = XEUtils.keys(selectCheckboxMaps)
1989
- const value = nodeids.map(deNodeValue)
1983
+ const value = nodeids.map(deModelValue)
1990
1984
  $xeTree.emitCheckboxMode(value)
1991
1985
  $xeTree.dispatchEvent('checkbox-change', { node, value, checked: isChecked }, evnt)
1992
1986
  },
@@ -2041,7 +2035,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2041
2035
  return
2042
2036
  }
2043
2037
  const isChecked = true
2044
- const value = deNodeValue(nodeid)
2038
+ const value = deModelValue(nodeid)
2045
2039
  reactData.selectRadioKey = nodeid
2046
2040
  $xeTree.emitRadioMode(value)
2047
2041
  $xeTree.dispatchEvent('radio-change', { node, value, checked: isChecked }, evnt)
@@ -2073,7 +2067,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2073
2067
 
2074
2068
  const { currentNode } = reactData
2075
2069
  if (currentNode) {
2076
- return deNodeValue($xeTree.getNodeId(currentNode))
2070
+ return deModelValue($xeTree.getNodeId(currentNode))
2077
2071
  }
2078
2072
  return null
2079
2073
  },
@@ -2098,7 +2092,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2098
2092
  const internalData = $xeTree.internalData
2099
2093
 
2100
2094
  const { nodeMaps } = internalData
2101
- const nodeItem = nodeMaps[enNodeValue(nodeKey)]
2095
+ const nodeItem = nodeMaps[enModelValue(nodeKey)]
2102
2096
  reactData.currentNode = nodeItem ? nodeItem.item : null
2103
2097
  return $xeTree.$nextTick()
2104
2098
  },
@@ -2142,7 +2136,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2142
2136
  const $xeTree = this
2143
2137
  const reactData = $xeTree.reactData
2144
2138
 
2145
- reactData.selectRadioKey = enNodeValue(nodeKey)
2139
+ reactData.selectRadioKey = enModelValue(nodeKey)
2146
2140
  $xeTree.emitRadioMode(nodeKey)
2147
2141
  return $xeTree.$nextTick()
2148
2142
  },
@@ -2153,7 +2147,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2153
2147
  const { selectCheckboxMaps } = internalData
2154
2148
  const nodeKeys: any[] = []
2155
2149
  XEUtils.each(selectCheckboxMaps, (item, nodeId) => {
2156
- nodeKeys.push(deNodeValue(nodeId))
2150
+ nodeKeys.push(deModelValue(nodeId))
2157
2151
  })
2158
2152
  return nodeKeys
2159
2153
  },
@@ -2253,7 +2247,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2253
2247
  nodeKeys = [nodeKeys]
2254
2248
  }
2255
2249
  nodeKeys.forEach((nodeKey) => {
2256
- const nodeid = enNodeValue(nodeKey)
2250
+ const nodeid = enModelValue(nodeKey)
2257
2251
  handleSetExpand(nodeid, expanded, treeExpandedMaps)
2258
2252
  })
2259
2253
  reactData.updateExpandedFlag++
@@ -2269,7 +2263,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2269
2263
  const { treeExpandedMaps } = internalData
2270
2264
  const nodeKeys: any[] = []
2271
2265
  XEUtils.each(treeExpandedMaps, (item, nodeId) => {
2272
- nodeKeys.push(deNodeValue(nodeId))
2266
+ nodeKeys.push(deModelValue(nodeId))
2273
2267
  })
2274
2268
  return nodeKeys
2275
2269
  },
@@ -2318,7 +2312,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2318
2312
  nodeKeys = [nodeKeys]
2319
2313
  }
2320
2314
  nodeKeys.forEach((nodeKey) => {
2321
- const nodeid = enNodeValue(nodeKey)
2315
+ const nodeid = enModelValue(nodeKey)
2322
2316
  handleSetExpand(nodeid, !treeExpandedMaps[`${nodeid}`], treeExpandedMaps)
2323
2317
  })
2324
2318
  reactData.updateExpandedFlag++
@@ -3053,7 +3047,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
3053
3047
  const $xeTree = this
3054
3048
  const reactData = $xeTree.reactData
3055
3049
 
3056
- reactData.selectRadioKey = enNodeValue(nodeKey)
3050
+ reactData.selectRadioKey = enModelValue(nodeKey)
3057
3051
  },
3058
3052
  checkNodeKeys () {
3059
3053
  const $xeTree = this
@@ -3095,7 +3089,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
3095
3089
 
3096
3090
  $xeTree.internalData = createInternalData()
3097
3091
 
3098
- reactData.selectRadioKey = enNodeValue(props.checkNodeKey)
3092
+ reactData.selectRadioKey = enModelValue(props.checkNodeKey)
3099
3093
  $xeTree.loadData(props.data || [])
3100
3094
  },
3101
3095
  mounted () {
@@ -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) {
@@ -3,8 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getI18n, getIcon, globalEvents, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
5
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
6
- import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
- import { deNodeValue } from '../../tree/src/util'
6
+ import { getLastZIndex, nextZIndex, deModelValue } from '../../ui/src/utils'
8
7
  import { createComponentLog } from '../../ui/src/log'
9
8
  import VxeInputComponent from '../../input'
10
9
  import VxeButtonComponent from '../../button'
@@ -111,10 +110,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
111
110
  type: Boolean as PropType<VxeTreeSelectPropTypes.ShowRadio>,
112
111
  default: () => getConfig().treeSelect.showRadio
113
112
  },
113
+ radioConfig: Object as PropType<VxeTreeSelectPropTypes.RadioConfig>,
114
114
  showCheckbox: {
115
115
  type: Boolean as PropType<VxeTreeSelectPropTypes.ShowCheckbox>,
116
116
  default: () => getConfig().treeSelect.showCheckbox
117
117
  },
118
+ checkboxConfig: Object as PropType<VxeTreeSelectPropTypes.CheckboxConfig>,
118
119
  popupConfig: Object as PropType<VxeTreeSelectPropTypes.PopupConfig>,
119
120
  treeConfig: Object as PropType<VxeTreeSelectPropTypes.TreeConfig>,
120
121
  menuConfig: Object as PropType<VxeTreeSelectPropTypes.MenuConfig>,
@@ -290,11 +291,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
290
291
  const $xeTreeSelect = this
291
292
  const props = $xeTreeSelect
292
293
 
293
- const { showCheckbox } = props
294
+ const { showCheckbox, checkboxConfig } = props
294
295
  const treeOpts = $xeTreeSelect.computeTreeOpts as VxeTreeSelectPropTypes.TreeConfig
295
296
  return Object.assign({
296
297
  showIcon: XEUtils.isBoolean(showCheckbox) ? showCheckbox : !!treeOpts.showCheckbox
297
- }, treeOpts.checkboxConfig, {
298
+ }, treeOpts.checkboxConfig, checkboxConfig, {
298
299
  trigger: 'node'
299
300
  })
300
301
  },
@@ -302,11 +303,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
302
303
  const $xeTreeSelect = this
303
304
  const props = $xeTreeSelect
304
305
 
305
- const { showRadio } = props
306
+ const { showRadio, radioConfig } = props
306
307
  const treeOpts = $xeTreeSelect.computeTreeOpts as VxeTreeSelectPropTypes.TreeConfig
307
308
  return Object.assign({
308
309
  showIcon: XEUtils.isBoolean(showRadio) ? showRadio : !!treeOpts.showRadio
309
- }, treeOpts.radioConfig, {
310
+ }, treeOpts.radioConfig, radioConfig, {
310
311
  trigger: 'node'
311
312
  })
312
313
  },
@@ -635,7 +636,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
635
636
  const $xeForm = $xeTreeSelect.$xeForm
636
637
  const formItemInfo = $xeTreeSelect.formItemInfo
637
638
 
638
- const value = XEUtils.isArray(selectValue) ? selectValue.map(deNodeValue) : deNodeValue(selectValue)
639
+ const value = XEUtils.isArray(selectValue) ? selectValue.map(deModelValue) : deModelValue(selectValue)
639
640
  $xeTreeSelect.emitModel(value)
640
641
  if (value !== props.value) {
641
642
  $xeTreeSelect.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: 60
@@ -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';