vxe-pc-ui 4.6.45 → 4.6.47

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 (171) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/index.esm.js +6 -0
  3. package/es/input/src/input.js +4 -2
  4. package/es/language/ar-EG.js +1 -0
  5. package/es/language/de-DE.js +1 -0
  6. package/es/language/en-US.js +1 -0
  7. package/es/language/es-ES.js +1 -0
  8. package/es/language/fr-FR.js +1 -0
  9. package/es/language/hu-HU.js +1 -0
  10. package/es/language/hy-AM.js +1 -0
  11. package/es/language/id-ID.js +1 -0
  12. package/es/language/it-IT.js +1 -0
  13. package/es/language/ja-JP.js +1 -0
  14. package/es/language/ko-KR.js +1 -0
  15. package/es/language/ms-MY.js +1 -0
  16. package/es/language/nb-NO.js +1 -0
  17. package/es/language/pt-BR.js +1 -0
  18. package/es/language/ru-RU.js +1 -0
  19. package/es/language/th-TH.js +1 -0
  20. package/es/language/ug-CN.js +1 -0
  21. package/es/language/uk-UA.js +1 -0
  22. package/es/language/uz-UZ.js +1 -0
  23. package/es/language/vi-VN.js +1 -0
  24. package/es/language/zh-CHT.js +1 -0
  25. package/es/language/zh-CN.js +1 -0
  26. package/es/select/src/select.js +14 -3
  27. package/es/style.css +1 -1
  28. package/es/style.min.css +1 -1
  29. package/es/ui/index.js +5 -2
  30. package/es/ui/src/log.js +1 -1
  31. package/es/upload/src/upload.js +103 -44
  32. package/es/upload/style.css +45 -10
  33. package/es/upload/style.min.css +1 -1
  34. package/es/vxe-upload/style.css +45 -10
  35. package/es/vxe-upload/style.min.css +1 -1
  36. package/lib/icon/style/style.css +1 -1
  37. package/lib/icon/style/style.min.css +1 -1
  38. package/lib/index.common.js +6 -0
  39. package/lib/index.umd.js +123 -37
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/input/src/input.js +4 -1
  42. package/lib/input/src/input.min.js +1 -1
  43. package/lib/language/ar-EG.js +1 -0
  44. package/lib/language/ar-EG.min.js +1 -1
  45. package/lib/language/ar-EG.umd.js +1 -0
  46. package/lib/language/de-DE.js +1 -0
  47. package/lib/language/de-DE.min.js +1 -1
  48. package/lib/language/de-DE.umd.js +1 -0
  49. package/lib/language/en-US.js +1 -0
  50. package/lib/language/en-US.min.js +1 -1
  51. package/lib/language/en-US.umd.js +1 -0
  52. package/lib/language/es-ES.js +1 -0
  53. package/lib/language/es-ES.min.js +1 -1
  54. package/lib/language/es-ES.umd.js +1 -0
  55. package/lib/language/fr-FR.js +1 -0
  56. package/lib/language/fr-FR.min.js +1 -1
  57. package/lib/language/fr-FR.umd.js +1 -0
  58. package/lib/language/hu-HU.js +1 -0
  59. package/lib/language/hu-HU.min.js +1 -1
  60. package/lib/language/hu-HU.umd.js +1 -0
  61. package/lib/language/hy-AM.js +1 -0
  62. package/lib/language/hy-AM.min.js +1 -1
  63. package/lib/language/hy-AM.umd.js +1 -0
  64. package/lib/language/id-ID.js +1 -0
  65. package/lib/language/id-ID.min.js +1 -1
  66. package/lib/language/id-ID.umd.js +1 -0
  67. package/lib/language/it-IT.js +1 -0
  68. package/lib/language/it-IT.min.js +1 -1
  69. package/lib/language/it-IT.umd.js +1 -0
  70. package/lib/language/ja-JP.js +1 -0
  71. package/lib/language/ja-JP.min.js +1 -1
  72. package/lib/language/ja-JP.umd.js +1 -0
  73. package/lib/language/ko-KR.js +1 -0
  74. package/lib/language/ko-KR.min.js +1 -1
  75. package/lib/language/ko-KR.umd.js +1 -0
  76. package/lib/language/ms-MY.js +1 -0
  77. package/lib/language/ms-MY.min.js +1 -1
  78. package/lib/language/ms-MY.umd.js +1 -0
  79. package/lib/language/nb-NO.js +1 -0
  80. package/lib/language/nb-NO.min.js +1 -1
  81. package/lib/language/nb-NO.umd.js +1 -0
  82. package/lib/language/pt-BR.js +1 -0
  83. package/lib/language/pt-BR.min.js +1 -1
  84. package/lib/language/pt-BR.umd.js +1 -0
  85. package/lib/language/ru-RU.js +1 -0
  86. package/lib/language/ru-RU.min.js +1 -1
  87. package/lib/language/ru-RU.umd.js +1 -0
  88. package/lib/language/th-TH.js +1 -0
  89. package/lib/language/th-TH.min.js +1 -1
  90. package/lib/language/th-TH.umd.js +1 -0
  91. package/lib/language/ug-CN.js +1 -0
  92. package/lib/language/ug-CN.min.js +1 -1
  93. package/lib/language/ug-CN.umd.js +1 -0
  94. package/lib/language/uk-UA.js +1 -0
  95. package/lib/language/uk-UA.min.js +1 -1
  96. package/lib/language/uk-UA.umd.js +1 -0
  97. package/lib/language/uz-UZ.js +1 -0
  98. package/lib/language/uz-UZ.min.js +1 -1
  99. package/lib/language/uz-UZ.umd.js +1 -0
  100. package/lib/language/vi-VN.js +1 -0
  101. package/lib/language/vi-VN.min.js +1 -1
  102. package/lib/language/vi-VN.umd.js +1 -0
  103. package/lib/language/zh-CHT.js +1 -0
  104. package/lib/language/zh-CHT.min.js +1 -1
  105. package/lib/language/zh-CHT.umd.js +1 -0
  106. package/lib/language/zh-CN.js +1 -0
  107. package/lib/language/zh-CN.min.js +1 -1
  108. package/lib/language/zh-CN.umd.js +1 -0
  109. package/lib/select/src/select.js +12 -3
  110. package/lib/select/src/select.min.js +1 -1
  111. package/lib/style.css +1 -1
  112. package/lib/style.min.css +1 -1
  113. package/lib/ui/index.js +5 -2
  114. package/lib/ui/index.min.js +1 -1
  115. package/lib/ui/src/log.js +1 -1
  116. package/lib/ui/src/log.min.js +1 -1
  117. package/lib/upload/src/upload.js +100 -30
  118. package/lib/upload/src/upload.min.js +1 -1
  119. package/lib/upload/style/style.css +45 -10
  120. package/lib/upload/style/style.min.css +1 -1
  121. package/lib/vxe-upload/style/style.css +45 -10
  122. package/lib/vxe-upload/style/style.min.css +1 -1
  123. package/package.json +1 -1
  124. package/packages/index.ts +21 -0
  125. package/packages/input/src/input.ts +4 -2
  126. package/packages/language/ar-EG.ts +1 -0
  127. package/packages/language/de-DE.ts +1 -0
  128. package/packages/language/en-US.ts +1 -0
  129. package/packages/language/es-ES.ts +1 -0
  130. package/packages/language/fr-FR.ts +1 -0
  131. package/packages/language/hu-HU.ts +1 -0
  132. package/packages/language/hy-AM.ts +1 -0
  133. package/packages/language/id-ID.ts +1 -0
  134. package/packages/language/it-IT.ts +1 -0
  135. package/packages/language/ja-JP.ts +1 -0
  136. package/packages/language/ko-KR.ts +1 -0
  137. package/packages/language/ms-MY.ts +1 -0
  138. package/packages/language/nb-NO.ts +1 -0
  139. package/packages/language/pt-BR.ts +1 -0
  140. package/packages/language/ru-RU.ts +1 -0
  141. package/packages/language/th-TH.ts +1 -0
  142. package/packages/language/ug-CN.ts +1 -0
  143. package/packages/language/uk-UA.ts +1 -0
  144. package/packages/language/uz-UZ.ts +1 -0
  145. package/packages/language/vi-VN.ts +1 -0
  146. package/packages/language/zh-CHT.ts +1 -0
  147. package/packages/language/zh-CN.ts +1 -0
  148. package/packages/select/src/select.ts +13 -3
  149. package/packages/ui/index.ts +4 -1
  150. package/packages/upload/src/upload.ts +106 -46
  151. package/styles/components/upload.scss +74 -25
  152. package/types/components/column.d.ts +6 -6
  153. package/types/components/input.d.ts +2 -0
  154. package/types/components/table-plugins/filters-combination.d.ts +15 -0
  155. package/types/components/table-plugins/filters-complex-input.d.ts +9 -0
  156. package/types/components/table-plugins/index.d.ts +2 -0
  157. package/types/components/upload.d.ts +14 -1
  158. package/types/ui/global-icon.d.ts +1 -0
  159. package/types/ui/renderer.d.ts +3 -0
  160. /package/es/icon/{iconfont.1751536878019.ttf → iconfont.1751618343421.ttf} +0 -0
  161. /package/es/icon/{iconfont.1751536878019.woff → iconfont.1751618343421.woff} +0 -0
  162. /package/es/icon/{iconfont.1751536878019.woff2 → iconfont.1751618343421.woff2} +0 -0
  163. /package/es/{iconfont.1751536878019.ttf → iconfont.1751618343421.ttf} +0 -0
  164. /package/es/{iconfont.1751536878019.woff → iconfont.1751618343421.woff} +0 -0
  165. /package/es/{iconfont.1751536878019.woff2 → iconfont.1751618343421.woff2} +0 -0
  166. /package/lib/icon/style/{iconfont.1751536878019.ttf → iconfont.1751618343421.ttf} +0 -0
  167. /package/lib/icon/style/{iconfont.1751536878019.woff → iconfont.1751618343421.woff} +0 -0
  168. /package/lib/icon/style/{iconfont.1751536878019.woff2 → iconfont.1751618343421.woff2} +0 -0
  169. /package/lib/{iconfont.1751536878019.ttf → iconfont.1751618343421.ttf} +0 -0
  170. /package/lib/{iconfont.1751536878019.woff → iconfont.1751618343421.woff} +0 -0
  171. /package/lib/{iconfont.1751536878019.woff2 → iconfont.1751618343421.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -3798,6 +3798,7 @@ setTheme();
3798
3798
  overCountErr: '最多只能选择{0}个文件!',
3799
3799
  overCountExtraErr: '已超出最大数量{0}个,超出的{1}个文件将被忽略!',
3800
3800
  overSizeErr: '文件大小最大不能超过{0}!',
3801
+ manualUpload: '点击上传',
3801
3802
  reUpload: '重新上传',
3802
3803
  uploadProgress: '上传中 {0}%',
3803
3804
  uploadErr: '上传失败',
@@ -4243,14 +4244,14 @@ function checkDynamic() {
4243
4244
  }
4244
4245
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
4245
4246
 
4246
- const log_version = `ui v${"4.6.45"}`;
4247
+ const log_version = `ui v${"4.6.47"}`;
4247
4248
  const warnLog = log.create('warn', log_version);
4248
4249
  const errLog = log.create('error', log_version);
4249
4250
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
4250
4251
 
4251
4252
 
4252
4253
 
4253
- const ui_version = "4.6.45";
4254
+ const ui_version = "4.6.47";
4254
4255
  index_esm_VxeUI.uiVersion = ui_version;
4255
4256
  index_esm_VxeUI.dynamicApp = dynamicApp;
4256
4257
  function config(options) {
@@ -4621,7 +4622,9 @@ setConfig({
4621
4622
  dragToUpload: true,
4622
4623
  // imageConfig: {},
4623
4624
  showLimitSize: true,
4624
- showLimitCount: true
4625
+ showLimitCount: true,
4626
+ autoSubmit: true,
4627
+ maxSimultaneousUploads: 5
4625
4628
  },
4626
4629
  watermark: {
4627
4630
  rotate: -30,
@@ -4724,6 +4727,7 @@ setIcon({
4724
4727
  UPLOAD_FILE_ADD: iconPrefix + 'upload',
4725
4728
  UPLOAD_FILE_REMOVE: iconPrefix + 'delete',
4726
4729
  UPLOAD_FILE_DOWNLOAD: iconPrefix + 'download',
4730
+ UPLOAD_IMAGE_UPLOAD: iconPrefix + 'upload',
4727
4731
  UPLOAD_IMAGE_RE_UPLOAD: iconPrefix + 'repeat',
4728
4732
  UPLOAD_IMAGE_ADD: iconPrefix + 'add',
4729
4733
  UPLOAD_IMAGE_REMOVE: iconPrefix + 'close',
@@ -10876,6 +10880,7 @@ function toFloatValueFixed(inputValue, digitsValue) {
10876
10880
  default: true
10877
10881
  },
10878
10882
  name: String,
10883
+ title: String,
10879
10884
  type: {
10880
10885
  type: String,
10881
10886
  default: 'text'
@@ -13478,6 +13483,7 @@ function toFloatValueFixed(inputValue, digitsValue) {
13478
13483
  className,
13479
13484
  controls,
13480
13485
  type,
13486
+ title,
13481
13487
  align,
13482
13488
  showWordCount,
13483
13489
  countMethod,
@@ -13525,7 +13531,8 @@ function toFloatValueFixed(inputValue, digitsValue) {
13525
13531
  }],
13526
13532
  spellcheck: false
13527
13533
  }, [prefix || (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
13528
- class: 'vxe-input--wrapper'
13534
+ class: 'vxe-input--wrapper',
13535
+ title: title || null
13529
13536
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('input', {
13530
13537
  ref: refInputTarget,
13531
13538
  class: 'vxe-input--inner',
@@ -27953,7 +27960,16 @@ function getOptUniqueId() {
27953
27960
  group: null,
27954
27961
  $select: $xeSelect
27955
27962
  };
27956
- const optVNs = optionSlot ? callSlot(optionSlot, optParams) : defaultSlot ? callSlot(defaultSlot, optParams) : getFuncText(option[isOptGroup ? groupLabelField : labelField]);
27963
+ let optLabel = '';
27964
+ let optVNs = [];
27965
+ if (optionSlot) {
27966
+ optVNs = callSlot(optionSlot, optParams);
27967
+ } else if (defaultSlot) {
27968
+ optVNs = callSlot(defaultSlot, optParams);
27969
+ } else {
27970
+ optLabel = getFuncText(option[isOptGroup ? groupLabelField : labelField]);
27971
+ optVNs = optLabel;
27972
+ }
27957
27973
  return isVisible ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
27958
27974
  key: useKey || optionKey ? optid : cIndex,
27959
27975
  class: ['vxe-select-option', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className(optParams) : className : '', {
@@ -27963,9 +27979,8 @@ function getOptUniqueId() {
27963
27979
  'is--add': isAdd,
27964
27980
  'is--hover': currentOption && getOptId(currentOption) === optid
27965
27981
  }],
27966
- // attrs
27967
27982
  optid: optid,
27968
- // event
27983
+ title: optLabel || null,
27969
27984
  onMousedown: evnt => {
27970
27985
  const isLeftBtn = evnt.button === 0;
27971
27986
  if (isLeftBtn) {
@@ -28075,6 +28090,7 @@ function getOptUniqueId() {
28075
28090
  prefixIcon: props.prefixIcon,
28076
28091
  suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
28077
28092
  autoFocus: false,
28093
+ title: selectLabel,
28078
28094
  modelValue: selectLabel,
28079
28095
  onClear: clearEvent,
28080
28096
  onClick: clickEvent,
@@ -37120,6 +37136,10 @@ const saveLocalFile = options => {
37120
37136
  type: Boolean,
37121
37137
  default: null
37122
37138
  },
37139
+ autoSubmit: {
37140
+ type: Boolean,
37141
+ default: () => getConfig().upload.autoSubmit
37142
+ },
37123
37143
  mode: {
37124
37144
  type: String,
37125
37145
  default: () => getConfig().upload.mode
@@ -37209,6 +37229,7 @@ const saveLocalFile = options => {
37209
37229
  type: [String, Number, Function],
37210
37230
  default: () => getConfig().upload.progressText
37211
37231
  },
37232
+ showSubmitButton: Boolean,
37212
37233
  autoHiddenButton: {
37213
37234
  type: Boolean,
37214
37235
  default: () => getConfig().upload.autoHiddenButton
@@ -37249,6 +37270,10 @@ const saveLocalFile = options => {
37249
37270
  type: Boolean,
37250
37271
  default: () => null
37251
37272
  },
37273
+ maxSimultaneousUploads: {
37274
+ type: Number,
37275
+ default: () => getConfig().upload.maxSimultaneousUploads
37276
+ },
37252
37277
  tipText: [String, Number, Function],
37253
37278
  hintText: String,
37254
37279
  previewMethod: Function,
@@ -37652,6 +37677,7 @@ const saveLocalFile = options => {
37652
37677
  const cacheItem = fileCacheMaps[fileKey];
37653
37678
  if (cacheItem) {
37654
37679
  cacheItem.percent = 100;
37680
+ cacheItem.status = 'success';
37655
37681
  }
37656
37682
  Object.assign(item, res);
37657
37683
  dispatchEvent('upload-success', {
@@ -37709,7 +37735,7 @@ const saveLocalFile = options => {
37709
37735
  if (uploadFn && cacheItem) {
37710
37736
  const file = cacheItem.file;
37711
37737
  cacheItem.loading = true;
37712
- cacheItem.status = '';
37738
+ cacheItem.status = 'pending';
37713
37739
  cacheItem.percent = 0;
37714
37740
  handleUploadResult(item, file).then(() => {
37715
37741
  if (urlMode) {
@@ -37718,14 +37744,15 @@ const saveLocalFile = options => {
37718
37744
  });
37719
37745
  }
37720
37746
  };
37721
- const uploadFile = (files, evnt) => {
37747
+ const handleUploadFile = (files, evnt) => {
37722
37748
  const {
37723
37749
  multiple,
37724
37750
  urlMode,
37725
37751
  showLimitSize,
37726
37752
  limitSizeText,
37727
37753
  showLimitCount,
37728
- limitCountText
37754
+ limitCountText,
37755
+ autoSubmit
37729
37756
  } = props;
37730
37757
  const {
37731
37758
  fileList
@@ -37825,13 +37852,13 @@ const saveLocalFile = options => {
37825
37852
  if (uploadFn) {
37826
37853
  cacheMaps[fileKey] = {
37827
37854
  file: file,
37828
- loading: true,
37829
- status: '',
37855
+ loading: !!autoSubmit,
37856
+ status: 'pending',
37830
37857
  percent: 0
37831
37858
  };
37832
37859
  }
37833
37860
  const item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.reactive)(fileObj);
37834
- if (uploadFn) {
37861
+ if (uploadFn && autoSubmit) {
37835
37862
  uploadPromiseRests.push(handleUploadResult(item, file));
37836
37863
  }
37837
37864
  newFileList.push(item);
@@ -37868,7 +37895,7 @@ const saveLocalFile = options => {
37868
37895
  multiple,
37869
37896
  types: isImage ? imageTypes : fileTypes
37870
37897
  }).then(params => {
37871
- uploadFile(params.files, evnt);
37898
+ handleUploadFile(params.files, evnt);
37872
37899
  return params;
37873
37900
  });
37874
37901
  };
@@ -38025,7 +38052,7 @@ const saveLocalFile = options => {
38025
38052
  }
38026
38053
  return;
38027
38054
  }
38028
- uploadFile(files, evnt);
38055
+ handleUploadFile(files, evnt);
38029
38056
  };
38030
38057
  const handleUploadDropEvent = evnt => {
38031
38058
  const dataTransfer = evnt.dataTransfer;
@@ -38294,6 +38321,45 @@ const saveLocalFile = options => {
38294
38321
  dispatchEvent,
38295
38322
  choose() {
38296
38323
  return handleChoose(null);
38324
+ },
38325
+ submit(isFull) {
38326
+ const {
38327
+ maxSimultaneousUploads
38328
+ } = props;
38329
+ const msNum = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(maxSimultaneousUploads || 1) || 1;
38330
+ const {
38331
+ fileList,
38332
+ fileCacheMaps
38333
+ } = reactData;
38334
+ const allPendingList = fileList.filter(item => {
38335
+ const fileKey = getFieldKey(item);
38336
+ const cacheItem = fileCacheMaps[fileKey];
38337
+ return cacheItem && (cacheItem.status === 'pending' || isFull && cacheItem.status === 'error');
38338
+ });
38339
+ const handleSubmit = item => {
38340
+ const fileKey = getFieldKey(item);
38341
+ const cacheItem = fileCacheMaps[fileKey];
38342
+ if (cacheItem) {
38343
+ const file = cacheItem.file;
38344
+ if (file && (cacheItem.status === 'pending' || isFull && cacheItem.status === 'error')) {
38345
+ cacheItem.loading = true;
38346
+ cacheItem.percent = 0;
38347
+ return handleUploadResult(item, file).then(handleNextSubmit);
38348
+ }
38349
+ }
38350
+ return handleNextSubmit();
38351
+ };
38352
+ const handleNextSubmit = () => {
38353
+ if (allPendingList.length) {
38354
+ const item = allPendingList[0];
38355
+ allPendingList.splice(0, 1);
38356
+ return handleSubmit(item).then(handleNextSubmit);
38357
+ }
38358
+ return Promise.resolve();
38359
+ };
38360
+ return Promise.all(allPendingList.splice(0, msNum).map(handleSubmit)).then(() => {
38361
+ // 完成
38362
+ });
38297
38363
  }
38298
38364
  };
38299
38365
  const uploadPrivateMethods = {};
@@ -38306,7 +38372,9 @@ const saveLocalFile = options => {
38306
38372
  progressText,
38307
38373
  showPreview,
38308
38374
  showErrorStatus,
38309
- dragSort
38375
+ dragSort,
38376
+ autoSubmit,
38377
+ showSubmitButton
38310
38378
  } = props;
38311
38379
  const {
38312
38380
  fileCacheMaps
@@ -38325,13 +38393,21 @@ const saveLocalFile = options => {
38325
38393
  return currList.map((item, index) => {
38326
38394
  const fileKey = getFieldKey(item);
38327
38395
  const cacheItem = fileCacheMaps[fileKey];
38328
- const isLoading = cacheItem && cacheItem.loading;
38329
- const isError = cacheItem && cacheItem.status === 'error';
38396
+ let isLoading = false;
38397
+ let isError = false;
38398
+ let isPending = false;
38399
+ const fileName = `${item[nameProp] || ''}`;
38400
+ if (cacheItem) {
38401
+ isLoading = cacheItem.loading;
38402
+ isError = cacheItem.status === 'error';
38403
+ isPending = cacheItem.status === 'pending';
38404
+ }
38330
38405
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38331
38406
  key: dragSort ? fileKey : index,
38332
38407
  class: ['vxe-upload--file-item', {
38333
38408
  'is--preview': showPreview,
38334
38409
  'is--loading': isLoading,
38410
+ 'is--pending': isPending,
38335
38411
  'is--error': isError
38336
38412
  }],
38337
38413
  fileid: fileKey,
@@ -38343,12 +38419,13 @@ const saveLocalFile = options => {
38343
38419
  class: getIcon()[`UPLOAD_FILE_TYPE_${`${item[typeProp]}`.toLocaleUpperCase()}`] || getIcon().UPLOAD_FILE_TYPE_DEFAULT
38344
38420
  })]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38345
38421
  class: 'vxe-upload--file-item-name',
38422
+ title: fileName,
38346
38423
  onClick(evnt) {
38347
38424
  if (!isLoading && !isError) {
38348
38425
  handlePreviewFileEvent(evnt, item);
38349
38426
  }
38350
38427
  }
38351
- }, `${item[nameProp] || ''}`), isLoading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38428
+ }, fileName), isLoading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38352
38429
  class: 'vxe-upload--file-item-loading-icon'
38353
38430
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
38354
38431
  class: getIcon().UPLOAD_LOADING
@@ -38356,13 +38433,13 @@ const saveLocalFile = options => {
38356
38433
  class: 'vxe-upload--file-item-loading-text'
38357
38434
  }, progressText ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toFormatString(`${external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(progressText) ? progressText({}) : progressText}`, {
38358
38435
  percent: cacheItem.percent
38359
- }) : i18n_getI18n('vxe.upload.uploadProgress', [cacheItem.percent])) : renderEmptyElement($xeUpload), showErrorStatus && isError ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38360
- class: 'vxe-upload--image-item-error'
38436
+ }) : i18n_getI18n('vxe.upload.uploadProgress', [cacheItem.percent])) : renderEmptyElement($xeUpload), !isLoading && (isError && showErrorStatus || isPending && showSubmitButton && !autoSubmit) ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38437
+ class: 'vxe-upload--file-item-rebtn'
38361
38438
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(src_button, {
38362
- icon: getIcon().UPLOAD_IMAGE_RE_UPLOAD,
38439
+ icon: isError ? getIcon().UPLOAD_IMAGE_RE_UPLOAD : getIcon().UPLOAD_IMAGE_UPLOAD,
38363
38440
  mode: 'text',
38364
38441
  status: 'primary',
38365
- content: i18n_getI18n('vxe.upload.reUpload'),
38442
+ content: isError ? i18n_getI18n('vxe.upload.reUpload') : i18n_getI18n('vxe.upload.manualUpload'),
38366
38443
  onClick() {
38367
38444
  handleReUpload(item);
38368
38445
  }
@@ -38374,7 +38451,7 @@ const saveLocalFile = options => {
38374
38451
  option: item,
38375
38452
  isMoreView,
38376
38453
  readonly: formReadonly
38377
- }))) : renderEmptyElement($xeUpload), showDownloadButton && !isLoading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38454
+ }))) : renderEmptyElement($xeUpload), showDownloadButton && !(isLoading || isPending) ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38378
38455
  class: 'vxe-upload--file-item-download-btn',
38379
38456
  onClick(evnt) {
38380
38457
  downloadFileEvent(evnt, item);
@@ -38482,7 +38559,9 @@ const saveLocalFile = options => {
38482
38559
  progressText,
38483
38560
  showPreview,
38484
38561
  showErrorStatus,
38485
- dragSort
38562
+ dragSort,
38563
+ autoSubmit,
38564
+ showSubmitButton
38486
38565
  } = props;
38487
38566
  const {
38488
38567
  fileCacheMaps
@@ -38503,14 +38582,21 @@ const saveLocalFile = options => {
38503
38582
  return currList.map((item, index) => {
38504
38583
  const fileKey = getFieldKey(item);
38505
38584
  const cacheItem = fileCacheMaps[fileKey];
38506
- const isLoading = cacheItem && cacheItem.loading;
38507
- const isError = cacheItem && cacheItem.status === 'error';
38585
+ let isLoading = false;
38586
+ let isError = false;
38587
+ let isPending = false;
38588
+ if (cacheItem) {
38589
+ isLoading = cacheItem.loading;
38590
+ isError = cacheItem.status === 'error';
38591
+ isPending = cacheItem.status === 'pending';
38592
+ }
38508
38593
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38509
38594
  key: dragSort ? fileKey : index,
38510
38595
  class: ['vxe-upload--image-item', {
38511
38596
  'is--preview': showPreview,
38512
38597
  'is--circle': imageOpts.circle,
38513
38598
  'is--loading': isLoading,
38599
+ 'is--pending': isPending,
38514
38600
  'is--error': isError
38515
38601
  }],
38516
38602
  fileid: fileKey,
@@ -38519,7 +38605,6 @@ const saveLocalFile = options => {
38519
38605
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38520
38606
  class: 'vxe-upload--image-item-box',
38521
38607
  style: isMoreView ? null : imgStyle,
38522
- title: i18n_getI18n('vxe.upload.viewItemTitle'),
38523
38608
  onClick(evnt) {
38524
38609
  if (!isLoading && !isError) {
38525
38610
  handlePreviewImageEvent(evnt, item, index);
@@ -38535,21 +38620,22 @@ const saveLocalFile = options => {
38535
38620
  class: 'vxe-upload--image-item-loading-text'
38536
38621
  }, progressText ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toFormatString(`${external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(progressText) ? progressText({}) : progressText}`, {
38537
38622
  percent: cacheItem.percent
38538
- }) : i18n_getI18n('vxe.upload.uploadProgress', [cacheItem.percent])) : renderEmptyElement($xeUpload)]) : renderEmptyElement($xeUpload), !isLoading ? isError && showErrorStatus ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38539
- class: 'vxe-upload--image-item-error'
38623
+ }) : i18n_getI18n('vxe.upload.uploadProgress', [cacheItem.percent])) : renderEmptyElement($xeUpload)]) : renderEmptyElement($xeUpload), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38624
+ class: 'vxe-upload--image-item-img-wrapper',
38625
+ title: i18n_getI18n('vxe.upload.viewItemTitle')
38626
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('img', {
38627
+ class: 'vxe-upload--image-item-img',
38628
+ src: getThumbnailFileUrl(item)
38629
+ })]), !isLoading && (isError && showErrorStatus || isPending && showSubmitButton && !autoSubmit) ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38630
+ class: 'vxe-upload--image-item-rebtn'
38540
38631
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(src_button, {
38541
- icon: getIcon().UPLOAD_IMAGE_RE_UPLOAD,
38632
+ icon: isError ? getIcon().UPLOAD_IMAGE_RE_UPLOAD : getIcon().UPLOAD_IMAGE_UPLOAD,
38542
38633
  mode: 'text',
38543
38634
  status: 'primary',
38544
- content: i18n_getI18n('vxe.upload.reUpload'),
38635
+ content: isError ? i18n_getI18n('vxe.upload.reUpload') : i18n_getI18n('vxe.upload.manualUpload'),
38545
38636
  onClick() {
38546
38637
  handleReUpload(item);
38547
38638
  }
38548
- })]) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38549
- class: 'vxe-upload--image-item-img-wrapper'
38550
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('img', {
38551
- class: 'vxe-upload--image-item-img',
38552
- src: getThumbnailFileUrl(item)
38553
38639
  })]) : renderEmptyElement($xeUpload), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
38554
38640
  class: 'vxe-upload--image-item-btn-wrapper',
38555
38641
  onClick(evnt) {