vxe-pc-ui 3.3.43 → 3.3.44

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 (150) hide show
  1. package/es/button/style.css +1 -1
  2. package/es/button/style.min.css +1 -1
  3. package/es/color-picker/src/color-picker.js +991 -7
  4. package/es/color-picker/src/util.js +190 -0
  5. package/es/color-picker/style.css +355 -0
  6. package/es/color-picker/style.min.css +1 -0
  7. package/es/icon/style.css +1 -1
  8. package/es/input/src/input.js +19 -8
  9. package/es/language/ar-EG.js +9 -0
  10. package/es/language/de-DE.js +9 -0
  11. package/es/language/en-US.js +9 -0
  12. package/es/language/es-ES.js +9 -0
  13. package/es/language/fr-FR.js +9 -0
  14. package/es/language/hu-HU.js +9 -0
  15. package/es/language/hy-AM.js +9 -0
  16. package/es/language/ja-JP.js +9 -0
  17. package/es/language/ko-KR.js +9 -0
  18. package/es/language/nb-NO.js +9 -0
  19. package/es/language/pt-BR.js +9 -0
  20. package/es/language/ru-RU.js +9 -0
  21. package/es/language/ug-CN.js +9 -0
  22. package/es/language/uk-UA.js +9 -0
  23. package/es/language/vi-VN.js +9 -0
  24. package/es/language/zh-CHT.js +9 -0
  25. package/es/language/zh-CN.js +9 -0
  26. package/es/number-input/src/number-input.js +3 -1
  27. package/es/slider/src/slider.js +2 -4
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/ui/index.js +11 -3
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-button/style.css +1 -1
  33. package/es/vxe-button/style.min.css +1 -1
  34. package/es/vxe-color-picker/style.css +355 -0
  35. package/es/vxe-color-picker/style.min.css +1 -0
  36. package/helper/vetur/attributes.json +1 -1
  37. package/helper/vetur/tags.json +1 -1
  38. package/lib/button/style/style.css +1 -1
  39. package/lib/button/style/style.min.css +1 -1
  40. package/lib/color-picker/src/color-picker.js +950 -7
  41. package/lib/color-picker/src/color-picker.min.js +1 -1
  42. package/lib/color-picker/src/util.js +215 -0
  43. package/lib/color-picker/src/util.min.js +1 -0
  44. package/lib/color-picker/style/style.css +355 -0
  45. package/lib/color-picker/style/style.min.css +1 -0
  46. package/lib/icon/style/style.css +1 -1
  47. package/lib/icon/style/style.min.css +1 -1
  48. package/lib/index.umd.js +10294 -9116
  49. package/lib/index.umd.min.js +1 -1
  50. package/lib/input/src/input.js +17 -7
  51. package/lib/input/src/input.min.js +1 -1
  52. package/lib/language/ar-EG.js +9 -0
  53. package/lib/language/ar-EG.min.js +1 -1
  54. package/lib/language/de-DE.js +9 -0
  55. package/lib/language/de-DE.min.js +1 -1
  56. package/lib/language/en-US.js +9 -0
  57. package/lib/language/en-US.min.js +1 -1
  58. package/lib/language/en-US.umd.js +9 -0
  59. package/lib/language/es-ES.js +9 -0
  60. package/lib/language/es-ES.min.js +1 -1
  61. package/lib/language/es-ES.umd.js +9 -0
  62. package/lib/language/fr-FR.js +9 -0
  63. package/lib/language/fr-FR.min.js +1 -1
  64. package/lib/language/hu-HU.js +9 -0
  65. package/lib/language/hu-HU.min.js +1 -1
  66. package/lib/language/hu-HU.umd.js +9 -0
  67. package/lib/language/hy-AM.js +9 -0
  68. package/lib/language/hy-AM.min.js +1 -1
  69. package/lib/language/ja-JP.js +9 -0
  70. package/lib/language/ja-JP.min.js +1 -1
  71. package/lib/language/ja-JP.umd.js +9 -0
  72. package/lib/language/ko-KR.js +9 -0
  73. package/lib/language/ko-KR.min.js +1 -1
  74. package/lib/language/ko-KR.umd.js +9 -0
  75. package/lib/language/nb-NO.js +9 -0
  76. package/lib/language/nb-NO.min.js +1 -1
  77. package/lib/language/pt-BR.js +9 -0
  78. package/lib/language/pt-BR.min.js +1 -1
  79. package/lib/language/pt-BR.umd.js +9 -0
  80. package/lib/language/ru-RU.js +9 -0
  81. package/lib/language/ru-RU.min.js +1 -1
  82. package/lib/language/ru-RU.umd.js +9 -0
  83. package/lib/language/ug-CN.js +9 -0
  84. package/lib/language/ug-CN.min.js +1 -1
  85. package/lib/language/uk-UA.js +9 -0
  86. package/lib/language/uk-UA.min.js +1 -1
  87. package/lib/language/uk-UA.umd.js +9 -0
  88. package/lib/language/vi-VN.js +9 -0
  89. package/lib/language/vi-VN.min.js +1 -1
  90. package/lib/language/zh-CHT.js +9 -0
  91. package/lib/language/zh-CHT.min.js +1 -1
  92. package/lib/language/zh-CHT.umd.js +9 -0
  93. package/lib/language/zh-CN.js +9 -0
  94. package/lib/language/zh-CN.min.js +1 -1
  95. package/lib/language/zh-CN.umd.js +9 -0
  96. package/lib/number-input/src/number-input.js +3 -1
  97. package/lib/number-input/src/number-input.min.js +1 -1
  98. package/lib/slider/src/slider.js +2 -4
  99. package/lib/slider/src/slider.min.js +1 -1
  100. package/lib/style.css +1 -1
  101. package/lib/style.min.css +1 -1
  102. package/lib/ui/index.js +11 -3
  103. package/lib/ui/index.min.js +1 -1
  104. package/lib/ui/src/log.js +1 -1
  105. package/lib/ui/src/log.min.js +1 -1
  106. package/lib/vxe-button/style/style.css +1 -1
  107. package/lib/vxe-button/style/style.min.css +1 -1
  108. package/lib/vxe-color-picker/style/style.css +355 -0
  109. package/lib/vxe-color-picker/style/style.min.css +1 -0
  110. package/package.json +1 -1
  111. package/packages/color-picker/src/color-picker.ts +1036 -9
  112. package/packages/color-picker/src/util.ts +198 -0
  113. package/packages/input/src/input.ts +18 -8
  114. package/packages/language/ar-EG.ts +9 -0
  115. package/packages/language/de-DE.ts +9 -0
  116. package/packages/language/en-US.ts +9 -0
  117. package/packages/language/es-ES.ts +9 -0
  118. package/packages/language/fr-FR.ts +9 -0
  119. package/packages/language/hu-HU.ts +9 -0
  120. package/packages/language/hy-AM.ts +9 -0
  121. package/packages/language/ja-JP.ts +9 -0
  122. package/packages/language/ko-KR.ts +9 -0
  123. package/packages/language/nb-NO.ts +9 -0
  124. package/packages/language/pt-BR.ts +9 -0
  125. package/packages/language/ru-RU.ts +9 -0
  126. package/packages/language/ug-CN.ts +9 -0
  127. package/packages/language/uk-UA.ts +9 -0
  128. package/packages/language/vi-VN.ts +9 -0
  129. package/packages/language/zh-CHT.ts +9 -0
  130. package/packages/language/zh-CN.ts +9 -0
  131. package/packages/number-input/src/number-input.ts +3 -1
  132. package/packages/slider/src/slider.ts +2 -4
  133. package/packages/ui/index.ts +11 -2
  134. package/styles/components/button.scss +1 -1
  135. package/styles/components/color-picker.scss +345 -0
  136. package/types/components/color-picker.d.ts +21 -0
  137. package/types/components/table.d.ts +4 -2
  138. package/types/ui/global-icon.d.ts +3 -0
  139. /package/es/icon/{iconfont.1734680304044.ttf → iconfont.1734950846147.ttf} +0 -0
  140. /package/es/icon/{iconfont.1734680304044.woff → iconfont.1734950846147.woff} +0 -0
  141. /package/es/icon/{iconfont.1734680304044.woff2 → iconfont.1734950846147.woff2} +0 -0
  142. /package/es/{iconfont.1734680304044.ttf → iconfont.1734950846147.ttf} +0 -0
  143. /package/es/{iconfont.1734680304044.woff → iconfont.1734950846147.woff} +0 -0
  144. /package/es/{iconfont.1734680304044.woff2 → iconfont.1734950846147.woff2} +0 -0
  145. /package/lib/icon/style/{iconfont.1734680304044.ttf → iconfont.1734950846147.ttf} +0 -0
  146. /package/lib/icon/style/{iconfont.1734680304044.woff → iconfont.1734950846147.woff} +0 -0
  147. /package/lib/icon/style/{iconfont.1734680304044.woff2 → iconfont.1734950846147.woff2} +0 -0
  148. /package/lib/{iconfont.1734680304044.ttf → iconfont.1734950846147.ttf} +0 -0
  149. /package/lib/{iconfont.1734680304044.woff → iconfont.1734950846147.woff} +0 -0
  150. /package/lib/{iconfont.1734680304044.woff2 → iconfont.1734950846147.woff2} +0 -0
@@ -0,0 +1,198 @@
1
+ import XEUtils from 'xe-utils'
2
+
3
+ const hexAlphaKeyMaps: Record<string, number> = {}
4
+ const hexAlphaNumMaps: Record<string, string> = {}
5
+ 'FF,FC,FA,F7,F5,F2,F0,ED,EB,E8,E6,E3,E0,DE,DB,D9,D6,D4,D1,CF,CC,C9,C7,C4,C2,BF,BD,BA,B8,B5,B3,B0,AD,AB,A8,A6,A3,A1,9E,9C,99,96,94,91,8F,8C,8A,87,85,82,80,7D,7A,78,75,73,70,6E,6B,69,66,63,61,5E,5C,59,57,54,52,4F,4D,4A,47,45,42,40,3D,3B,38,36,33,30,2E,2B,29,26,24,21,1F,1C,1A,17,14,12,0F,0D,0A,08,05,03,00'.split(',').forEach((key, i) => {
6
+ const num = (100 - i) / 100
7
+ hexAlphaKeyMaps[key] = num
8
+ hexAlphaNumMaps[num] = key
9
+ })
10
+
11
+ const rgbRE = /^rgb(a?)\((\d{1,3})[,\s]+(\d{1,3})[,\s]+(\d{1,3})([,//\s]+([0-9.]{1,4})(%?))?\)$/
12
+ export function hasRgb (value: string) {
13
+ return value && rgbRE.test(value)
14
+ }
15
+
16
+ const hexRE = /^(#?)([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/
17
+ export function hasHex (value: string) {
18
+ return value && hexRE.test(value)
19
+ }
20
+
21
+ export function parseColor (value: string) {
22
+ const rest = {
23
+ value: '',
24
+ type: '',
25
+ hex: '',
26
+ hexV: '',
27
+ hexA: '',
28
+ r: 0,
29
+ g: 0,
30
+ b: 0,
31
+ a: 1
32
+ }
33
+ if (value) {
34
+ const hexRest = value.match(hexRE)
35
+ if (hexRest) {
36
+ rest.value = value
37
+ rest.type = 'hex'
38
+ rest.hex = value
39
+ rest.hexV = hexRest[2]
40
+ rest.hexA = hexRest[3] || ''
41
+ rest.a = (hexRest[3] ? hexAlphaKeyMaps[hexRest[3].toUpperCase()] : 1) || 1
42
+ }
43
+ const rgbRest = value.match(rgbRE)
44
+ if (rgbRest) {
45
+ rest.value = value
46
+ rest.type = rgbRest[6] ? 'rgba' : 'rgb'
47
+ rest.r = parseInt(rgbRest[2])
48
+ rest.g = parseInt(rgbRest[3])
49
+ rest.b = parseInt(rgbRest[4])
50
+ rest.a = rgbRest[7] ? parseInt(rgbRest[6]) / 100 : (rgbRest[6] ? parseFloat(rgbRest[6]) : 1)
51
+ }
52
+ }
53
+ return rest
54
+ }
55
+
56
+ export function updateColorAlpha (value: string, alpha: number = 1) {
57
+ const colorRest = parseColor(value)
58
+ const { type, hexV, r, g, b } = colorRest
59
+ if (type === 'rgb' || type === 'rgba') {
60
+ return toRgb(r, g, b, alpha)
61
+ }
62
+ if (type === 'hex') {
63
+ return `#${hexV}${alpha === 1 ? '' : (hexAlphaNumMaps[alpha] || '')}`
64
+ }
65
+ return ''
66
+ }
67
+
68
+ export function toRgb (r: number, g: number, b: number, a?: number | null) {
69
+ if (XEUtils.eqNull(a)) {
70
+ return `rgb(${r},${g},${b})`
71
+ }
72
+ return `rgba(${r},${g},${b},${a})`
73
+ }
74
+
75
+ export function rgbToHex (rgbRest: {
76
+ r: number
77
+ g: number
78
+ b: number
79
+ a?: number
80
+ }) {
81
+ if (!rgbRest) {
82
+ return ''
83
+ }
84
+ const { r, g, b, a = 1 } = rgbRest
85
+ const hexR = r.toString(16).padStart(2, '0')
86
+ const hexG = g.toString(16).padStart(2, '0')
87
+ const hexB = b.toString(16).padStart(2, '0')
88
+ const hexA = a === 1 ? '' : (hexAlphaNumMaps[a] || '')
89
+
90
+ // 返回十六进制颜色代码
91
+ return `#${hexR}${hexG}${hexB}${hexA}`.toUpperCase()
92
+ }
93
+
94
+ export function rgbToHsv (rgbRest: {
95
+ r: number
96
+ g: number
97
+ b: number
98
+ }) {
99
+ if (!rgbRest) {
100
+ return null
101
+ }
102
+ const { r, g, b } = rgbRest
103
+ const rAbs = r / 255
104
+ const gAbs = g / 255
105
+ const bAbs = b / 255
106
+ let h = 0
107
+ let s = 0
108
+ const val = Math.max(rAbs, gAbs, bAbs)
109
+ const num = val - Math.min(rAbs, gAbs, bAbs)
110
+ const handleDiff = (c: number) => (val - c) / 6 / num + 1 / 2
111
+ if (num === 0) {
112
+ h = s = 0
113
+ } else {
114
+ s = num / val
115
+ const rr = handleDiff(rAbs)
116
+ const gg = handleDiff(gAbs)
117
+ const bb = handleDiff(bAbs)
118
+
119
+ if (rAbs === val) {
120
+ h = bb - gg
121
+ } else if (gAbs === val) {
122
+ h = (1 / 3) + rr - bb
123
+ } else if (bAbs === val) {
124
+ h = (2 / 3) + gg - rr
125
+ }
126
+ if (h < 0) {
127
+ h += 1
128
+ } else if (h > 1) {
129
+ h -= 1
130
+ }
131
+ }
132
+ return {
133
+ h: Math.round(h * 360),
134
+ s: XEUtils.round(s, 2),
135
+ v: XEUtils.round(val, 2)
136
+ }
137
+ }
138
+
139
+ export function hsvToRgb (h: number, s: number, v: number) {
140
+ let r = 0
141
+ let g = 0
142
+ let b = 0
143
+ const i = Math.floor(h / 60)
144
+ const f = h / 60 - i
145
+ const p = v * (1 - s)
146
+ const q = v * (1 - f * s)
147
+ const t = v * (1 - (1 - f) * s)
148
+
149
+ switch (i) {
150
+ case 0:
151
+ r = v; g = t; b = p
152
+ break
153
+ case 1:
154
+ r = q; g = v; b = p
155
+ break
156
+ case 2:
157
+ r = p; g = v; b = t
158
+ break
159
+ case 3:
160
+ r = p; g = q; b = v
161
+ break
162
+ case 4:
163
+ r = t; g = p; b = v
164
+ break
165
+ case 5:
166
+ r = v; g = p; b = q
167
+ break
168
+ }
169
+
170
+ return {
171
+ r: Math.round(r * 255),
172
+ g: Math.round(g * 255),
173
+ b: Math.round(b * 255)
174
+ }
175
+ }
176
+
177
+ export function hexToHsv (str: string) {
178
+ const rgbRest = hexToRgb(str)
179
+ if (rgbRest) {
180
+ return rgbToHsv(rgbRest)
181
+ }
182
+ return null
183
+ }
184
+
185
+ export function hexToRgb (str: string) {
186
+ if (str) {
187
+ const rests = str.match(/^(#?)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/)
188
+ if (rests) {
189
+ return {
190
+ r: parseInt(rests[2], 16),
191
+ g: parseInt(rests[3], 16),
192
+ b: parseInt(rests[4], 16),
193
+ a: (rests[5] ? hexAlphaKeyMaps[rests[5].toUpperCase()] : 1) || 1
194
+ }
195
+ }
196
+ }
197
+ return null
198
+ }
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
- import { getFuncText, getLastZIndex, nextZIndex } from '../../ui/src/utils'
5
+ import { getFuncText, getLastZIndex, nextZIndex, eqEmptyValue } from '../../ui/src/utils'
6
6
  import { hasClass, getAbsolutePos, getEventTargetNode } from '../../ui/src/dom'
7
7
  import { toStringTimeDate, getDateQuarter } from '../../date-picker/src/util'
8
8
  import { handleNumber, toFloatValueFixed } from '../../number-input/src/util'
@@ -42,7 +42,10 @@ export default defineVxeComponent({
42
42
  type: Boolean as PropType<VxeInputPropTypes.Disabled>,
43
43
  default: null
44
44
  },
45
- placeholder: String as PropType<VxeInputPropTypes.Placeholder>,
45
+ placeholder: {
46
+ type: String as PropType<VxeInputPropTypes.Placeholder>,
47
+ default: null
48
+ },
46
49
  maxLength: [String, Number] as PropType<VxeInputPropTypes.MaxLength>,
47
50
  autoComplete: {
48
51
  type: String as PropType<VxeInputPropTypes.AutoComplete>,
@@ -802,11 +805,14 @@ export default defineVxeComponent({
802
805
  if (placeholder) {
803
806
  return getFuncText(placeholder)
804
807
  }
805
- const globalPlaceholder = getConfig().input.placeholder
806
- if (globalPlaceholder) {
807
- return getFuncText(globalPlaceholder)
808
+ if (XEUtils.eqNull(placeholder)) {
809
+ const globalPlaceholder = getConfig().input.placeholder
810
+ if (globalPlaceholder) {
811
+ return getFuncText(globalPlaceholder)
812
+ }
813
+ return getI18n('vxe.base.pleaseInput')
808
814
  }
809
- return getI18n('vxe.base.pleaseInput')
815
+ return placeholder
810
816
  },
811
817
  computeInpImmediate () {
812
818
  const $xeInput = this
@@ -1016,9 +1022,13 @@ export default defineVxeComponent({
1016
1022
  const $xeInput = this
1017
1023
  const reactData = $xeInput.reactData
1018
1024
 
1019
- reactData.isActivated = true
1025
+ const { inputValue } = reactData
1026
+ const isNumType = $xeInput.computeIsNumType
1020
1027
  const isDatePickerType = $xeInput.computeIsDatePickerType
1021
- if (isDatePickerType) {
1028
+ reactData.isActivated = true
1029
+ if (isNumType) {
1030
+ reactData.inputValue = eqEmptyValue(inputValue) ? '' : `${XEUtils.toNumber(inputValue)}`
1031
+ } else if (isDatePickerType) {
1022
1032
  $xeInput.datePickerOpenEvent(evnt)
1023
1033
  }
1024
1034
  $xeInput.triggerEvent(evnt)
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: 'No Data'
335
335
  },
336
+ colorPicker: {
337
+ clear: 'Clear',
338
+ confirm: 'Confirm',
339
+ copySuccess: 'Copied to clipboard: {0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'Form name',
338
343
  defFormTitle: 'Unnamed form',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: 'Cell',
526
531
  value: 'Value'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(Empty)',
529
538
  reError: 'Invalid regular expression',
530
539
  recordCount: 'Found {0} cells',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: 'No Data'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'Form name',
338
343
  defFormTitle: 'Unnamed form',
@@ -529,6 +534,10 @@ export default {
529
534
  cell: '单元格',
530
535
  value: '值'
531
536
  },
537
+ body: {
538
+ row: '行:{0}',
539
+ col: '列:{0}'
540
+ },
532
541
  empty: '(空值)',
533
542
  reError: '无效的正则表达式',
534
543
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'forma neve',
338
343
  defFormTitle: 'névtelen forma',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: 'sejt',
526
531
  value: 'érték'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(null érték)',
529
538
  reError: 'Érvénytelen reguláris kifejezés',
530
539
  recordCount: '{0} cella található',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'Form name',
338
343
  defFormTitle: 'Unnamed form',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: 'セル',
526
531
  value: '値'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空白)',
529
538
  reError: '無効な正規表現',
530
539
  recordCount: '{0} 個のセルが見つかりました',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'Form name',
338
343
  defFormTitle: 'Unnamed form',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'имя формы',
338
343
  defFormTitle: 'безымянная форма',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: 'клетка',
526
531
  value: 'ценить'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(нулевое значение)',
529
538
  reError: 'Недопустимое регулярное выражение',
530
539
  recordCount: 'Найдено {0} ячеек',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: 'ھازىرچە ئۇچۇر يوق'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: 'جەدۋەل ئىسمى',
338
343
  defFormTitle: 'نام قويۇلمىغان جەدىۋەل',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: 'تاق كاتاكچە',
526
531
  value: 'قىممىتى'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(قۇرۇق)',
529
538
  reError: 'ئۈنۇمسىز لوگىكىلىق شەرىت',
530
539
  recordCount: 'تىپىلغىنى {0} دانە ئۇچۇر',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表單名稱',
338
343
  defFormTitle: '未命名的表單',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '單元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '無效的正規表示式',
530
539
  recordCount: '已找到 {0} 個單元格',
@@ -333,6 +333,11 @@ export default {
333
333
  empty: {
334
334
  defText: '暂无数据'
335
335
  },
336
+ colorPicker: {
337
+ clear: '清除',
338
+ confirm: '确认',
339
+ copySuccess: '已复制到剪贴板:{0}'
340
+ },
336
341
  formDesign: {
337
342
  formName: '表单名称',
338
343
  defFormTitle: '未命名的表单',
@@ -525,6 +530,10 @@ export default {
525
530
  cell: '单元格',
526
531
  value: '值'
527
532
  },
533
+ body: {
534
+ row: '行:{0}',
535
+ col: '列:{0}'
536
+ },
528
537
  empty: '(空值)',
529
538
  reError: '无效的正则表达式',
530
539
  recordCount: '已找到 {0} 个单元格',
@@ -401,7 +401,7 @@ export default defineVxeComponent({
401
401
  const reactData = $xeNumberInput.reactData
402
402
 
403
403
  const inpImmediate = $xeNumberInput.computeInpImmediate
404
- const value = inputValue === '' || XEUtils.eqNull(inputValue) ? null : XEUtils.toNumber(inputValue)
404
+ const value = inputValue === eqEmptyValue(inputValue) ? null : XEUtils.toNumber(inputValue)
405
405
  reactData.inputValue = inputValue
406
406
  if (inpImmediate) {
407
407
  $xeNumberInput.handleChange(value, inputValue, evnt)
@@ -428,6 +428,8 @@ export default defineVxeComponent({
428
428
  const $xeNumberInput = this
429
429
  const reactData = $xeNumberInput.reactData
430
430
 
431
+ const { inputValue } = reactData
432
+ reactData.inputValue = eqEmptyValue(inputValue) ? '' : `${XEUtils.toNumber(inputValue)}`
431
433
  reactData.isFocus = true
432
434
  reactData.isActivated = true
433
435
  $xeNumberInput.triggerEvent(evnt)