vxe-pc-ui 4.15.2 → 4.15.3

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 (127) hide show
  1. package/dist/all.esm.js +774 -211
  2. package/es/backtop/src/backtop.js +2 -1
  3. package/es/button/src/button.js +3 -2
  4. package/es/calendar/src/calendar.js +2 -1
  5. package/es/cascader/src/cascader.js +2 -1
  6. package/es/checkbox/src/group.js +5 -1
  7. package/es/date-panel/src/util.js +27 -16
  8. package/es/date-picker/src/date-picker.js +572 -74
  9. package/es/date-range-picker/src/date-range-picker.js +3 -2
  10. package/es/drawer/src/drawer.js +2 -0
  11. package/es/form/render/index.js +3 -2
  12. package/es/form/src/form.js +6 -5
  13. package/es/form/src/itemInfo.js +6 -5
  14. package/es/input/src/input.js +2 -1
  15. package/es/menu/src/menu.js +2 -1
  16. package/es/modal/src/modal.js +5 -2
  17. package/es/pager/src/pager.js +4 -3
  18. package/es/radio/src/group.js +5 -1
  19. package/es/select/src/select.js +25 -20
  20. package/es/splitter/src/splitter.js +7 -6
  21. package/es/table-select/src/table-select.js +21 -16
  22. package/es/tabs/src/tabs.js +4 -3
  23. package/es/textarea/src/textarea.js +2 -1
  24. package/es/tree/src/tree.js +3 -2
  25. package/es/tree-select/src/tree-select.js +2 -1
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/log.js +7 -1
  28. package/es/upload/src/upload.js +12 -3
  29. package/lib/backtop/src/backtop.js +5 -2
  30. package/lib/backtop/src/backtop.min.js +1 -1
  31. package/lib/button/src/button.js +4 -1
  32. package/lib/button/src/button.min.js +1 -1
  33. package/lib/calendar/src/calendar.js +4 -1
  34. package/lib/calendar/src/calendar.min.js +1 -1
  35. package/lib/cascader/src/cascader.js +4 -1
  36. package/lib/cascader/src/cascader.min.js +1 -1
  37. package/lib/checkbox/src/group.js +5 -1
  38. package/lib/checkbox/src/group.min.js +1 -1
  39. package/lib/date-panel/src/util.js +37 -19
  40. package/lib/date-panel/src/util.min.js +1 -1
  41. package/lib/date-picker/src/date-picker.js +620 -77
  42. package/lib/date-picker/src/date-picker.min.js +1 -1
  43. package/lib/date-range-picker/src/date-range-picker.js +4 -1
  44. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  45. package/lib/drawer/src/drawer.js +2 -0
  46. package/lib/drawer/src/drawer.min.js +1 -1
  47. package/lib/form/render/index.js +4 -1
  48. package/lib/form/render/index.min.js +1 -1
  49. package/lib/form/src/form.js +8 -4
  50. package/lib/form/src/form.min.js +1 -1
  51. package/lib/form/src/itemInfo.js +7 -4
  52. package/lib/form/src/itemInfo.min.js +1 -1
  53. package/lib/index.umd.js +847 -177
  54. package/lib/index.umd.min.js +1 -1
  55. package/lib/input/src/input.js +6 -3
  56. package/lib/input/src/input.min.js +1 -1
  57. package/lib/menu/src/menu.js +4 -1
  58. package/lib/menu/src/menu.min.js +1 -1
  59. package/lib/modal/src/modal.js +8 -2
  60. package/lib/modal/src/modal.min.js +1 -1
  61. package/lib/pager/src/pager.js +6 -2
  62. package/lib/pager/src/pager.min.js +1 -1
  63. package/lib/radio/src/group.js +5 -1
  64. package/lib/radio/src/group.min.js +1 -1
  65. package/lib/select/src/select.js +27 -20
  66. package/lib/select/src/select.min.js +1 -1
  67. package/lib/splitter/src/splitter.js +12 -8
  68. package/lib/splitter/src/splitter.min.js +1 -1
  69. package/lib/table-select/src/table-select.js +22 -15
  70. package/lib/table-select/src/table-select.min.js +1 -1
  71. package/lib/tabs/src/tabs.js +7 -3
  72. package/lib/tabs/src/tabs.min.js +1 -1
  73. package/lib/textarea/src/textarea.js +4 -1
  74. package/lib/textarea/src/textarea.min.js +1 -1
  75. package/lib/tree/src/tree.js +7 -4
  76. package/lib/tree/src/tree.min.js +1 -1
  77. package/lib/tree-select/src/tree-select.js +7 -3
  78. package/lib/tree-select/src/tree-select.min.js +1 -1
  79. package/lib/ui/index.js +1 -1
  80. package/lib/ui/index.min.js +1 -1
  81. package/lib/ui/src/log.js +8 -1
  82. package/lib/ui/src/log.min.js +1 -1
  83. package/lib/upload/src/upload.js +20 -3
  84. package/lib/upload/src/upload.min.js +1 -1
  85. package/package.json +1 -1
  86. package/packages/backtop/src/backtop.ts +3 -1
  87. package/packages/button/src/button.ts +4 -2
  88. package/packages/calendar/src/calendar.ts +3 -1
  89. package/packages/cascader/src/cascader.ts +3 -1
  90. package/packages/checkbox/src/group.ts +6 -2
  91. package/packages/date-panel/src/util.ts +28 -16
  92. package/packages/date-picker/src/date-picker.ts +583 -75
  93. package/packages/date-range-picker/src/date-range-picker.ts +4 -2
  94. package/packages/drawer/src/drawer.ts +2 -0
  95. package/packages/form/render/index.ts +4 -2
  96. package/packages/form/src/form.ts +7 -5
  97. package/packages/form/src/itemInfo.ts +7 -5
  98. package/packages/input/src/input.ts +3 -1
  99. package/packages/menu/src/menu.ts +3 -1
  100. package/packages/modal/src/modal.ts +6 -2
  101. package/packages/pager/src/pager.ts +5 -3
  102. package/packages/radio/src/group.ts +6 -2
  103. package/packages/select/src/select.ts +29 -22
  104. package/packages/splitter/src/splitter.ts +8 -6
  105. package/packages/table-select/src/table-select.ts +24 -17
  106. package/packages/tabs/src/tabs.ts +5 -3
  107. package/packages/textarea/src/textarea.ts +3 -1
  108. package/packages/tree/src/tree.ts +4 -2
  109. package/packages/tree-select/src/tree-select.ts +3 -1
  110. package/packages/ui/src/log.ts +7 -0
  111. package/packages/upload/src/upload.ts +14 -3
  112. package/types/components/date-picker.d.ts +14 -6
  113. package/types/components/drawer.d.ts +2 -0
  114. package/types/components/modal.d.ts +2 -0
  115. package/types/components/upload.d.ts +28 -1
  116. /package/es/icon/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
  117. /package/es/icon/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
  118. /package/es/icon/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
  119. /package/es/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
  120. /package/es/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
  121. /package/es/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
  122. /package/lib/icon/style/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
  123. /package/lib/icon/style/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
  124. /package/lib/icon/style/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
  125. /package/lib/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
  126. /package/lib/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
  127. /package/lib/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_dom=require("../../ui/src/dom"),_util=require("./util"),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{isDragUploadStatus:!1,showMorePopup:!1,isActivated:!1,fileList:[],fileCacheMaps:{},isDragMove:!1,dragIndex:-1,dragTipText:""}}function createInternalData(){return{moreId:_xeUtils.default.uniqueId("upload"),imagePreviewTypes:["jpg","jpeg","png","gif"],prevDragIndex:-1}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeUpload",props:{modelValue:[Array,String,Object],showList:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showList},moreConfig:Object,readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},autoSubmit:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.autoSubmit},mode:{type:String,default:()=>(0,_ui.getConfig)().upload.mode},imageTypes:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageTypes,!0)},imageConfig:{type:Object,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageConfig,!0)},imageStyle:{type:Object,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageStyle,!0)},fileTypes:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.fileTypes,!0)},dragSort:Boolean,dragToUpload:{type:Boolean,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.dragToUpload,!0)},dragPlaceholder:{type:String,default:()=>(0,_ui.getConfig)().upload.dragPlaceholder},pasteToUpload:{type:Boolean,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.pasteToUpload,!0)},keyField:String,singleMode:Boolean,urlMode:Boolean,urlArgs:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.urlArgs},multiple:Boolean,limitSize:{type:[String,Number],default:()=>(0,_ui.getConfig)().upload.limitSize},showLimitSize:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showLimitSize},limitSizeText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.limitSizeText},limitCount:{type:[String,Number],default:()=>(0,_ui.getConfig)().upload.limitCount},showLimitCount:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showLimitCount},limitCountText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.limitCountText},nameField:{type:String,default:()=>(0,_ui.getConfig)().upload.nameField},typeField:{type:String,default:()=>(0,_ui.getConfig)().upload.typeField},urlField:{type:String,default:()=>(0,_ui.getConfig)().upload.urlField},sizeField:{type:String,default:()=>(0,_ui.getConfig)().upload.sizeField},showErrorStatus:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showErrorStatus},showProgress:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showProgress},progressText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.progressText},previewImageConfig:Object,showSubmitButton:Boolean,autoHiddenButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.autoHiddenButton},showUploadButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showUploadButton},buttonText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.buttonText},buttonIcon:{type:String,default:()=>(0,_ui.getConfig)().upload.buttonIcon},showButtonText:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showButtonText},showButtonIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showButtonIcon},showRemoveButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showRemoveButton},showDownloadButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showDownloadButton},showPreview:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showPreview},showTip:{type:Boolean,default:()=>null},maxSimultaneousUploads:{type:Number,default:()=>(0,_ui.getConfig)().upload.maxSimultaneousUploads},tipText:[String,Number,Function],hintText:String,previewMethod:Function,beforeSelectMethod:Function,uploadMethod:Function,beforeRemoveMethod:Function,removeMethod:Function,beforeDownloadMethod:Function,downloadMethod:Function,getUrlMethod:Function,getThumbnailUrlMethod:Function,size:{type:String,default:()=>(0,_ui.getConfig)().upload.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","add","remove","remove-fail","download","download-fail","upload-success","upload-error","sort-dragend","more-visible"],setup(T,e){let{emit:i,slots:D}=e,U=(0,_vue.inject)("$xeForm",null),C=(0,_vue.inject)("xeFormItemInfo",null),l=(0,_vue.inject)("$xeTable",null);var t=_xeUtils.default.uniqueId();let G=(0,_ui.useSize)(T).computeSize,m=(0,_vue.ref)(),_=(0,_vue.ref)(),c=(0,_vue.ref)(),f=(0,_vue.ref)(),B=(0,_vue.reactive)(createReactData()),r=createInternalData(),a={refElem:m},L=(0,_vue.computed)(()=>{var e=T.readonly;return null===e?!!U&&U.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=T.disabled;return null===e?!!U&&U.props.disabled:e}),E=(0,_vue.computed)(()=>T.keyField||"_X_KEY"),h=(0,_vue.computed)(()=>"image"===T.mode),V=(0,_vue.computed)(()=>T.nameField||"name"),F=(0,_vue.computed)(()=>T.typeField||"type"),M=(0,_vue.computed)(()=>T.urlField||"url"),S=(0,_vue.computed)(()=>T.sizeField||"size"),H=(0,_vue.computed)(()=>1024*_xeUtils.default.toNumber(T.limitSize)*1024),Y=(0,_vue.computed)(()=>T.multiple?_xeUtils.default.toNumber(T.limitCount):1),Q=(0,_vue.computed)(()=>{var e=T.showDownloadButton;return Object.assign({showDownloadButton:e},(0,_ui.getConfig)().upload.previewImageConfig,T.previewImageConfig)}),X=(0,_vue.computed)(()=>{var e=T.multiple,t=B.fileList,o=Y.value;return e?!o||t.length>=o:1<=t.length}),W=(0,_vue.computed)(()=>{var e=_xeUtils.default.toNumber(T.limitSize);return e?1048576<e?e/1048576+"T":1024<e?e/1024+"G":e+"M":""}),K=(0,_vue.computed)(()=>{var{showTip:e,tipText:t}=T;return _xeUtils.default.isBoolean(e)||(e=(0,_ui.getConfig)().upload.showTip,_xeUtils.default.isBoolean(e))?e:!!t}),J=(0,_vue.computed)(()=>{var{limitSize:e,fileTypes:t,multiple:o,limitCount:i}=T,l=T.tipText||T.hintText,a=h.value,u=W.value;return _xeUtils.default.isString(l)?l:_xeUtils.default.isFunction(l)?""+l({}):(l=[],a?(o&&i&&l.push((0,_ui.getI18n)("vxe.upload.imgCountHint",[i])),e&&u&&l.push((0,_ui.getI18n)("vxe.upload.imgSizeHint",[u]))):(t&&t.length&&l.push((0,_ui.getI18n)("vxe.upload.fileTypeHint",[t.join("/")])),e&&u&&l.push((0,_ui.getI18n)("vxe.upload.fileSizeHint",[u])),o&&i&&l.push((0,_ui.getI18n)("vxe.upload.fileCountHint",[i]))),l.join((0,_ui.getI18n)("vxe.base.comma")))}),u=(0,_vue.computed)(()=>Object.assign({},T.imageConfig||T.imageStyle)),Z=(0,_vue.computed)(()=>{var{width:e,height:t}=u.value,o={};return e&&(o.width=(0,_dom.toCssUnit)(e)),t&&(o.height=(0,_dom.toCssUnit)(t)),o}),ee=(0,_vue.computed)(()=>Object.assign({showMoreButton:!0},T.moreConfig)),n={computeUrlProp:M},O={xID:t,props:T,context:e,reactData:B,internalData:r,getRefMaps:()=>a,getComputeMaps:()=>n},A=()=>_xeUtils.default.uniqueId(),N=e=>e[E.value],d=()=>{var{modelValue:e,multiple:t}=T,o=L.value;let l=E.value,a=V.value,u=F.value,n=M.value,r=S.value;e=e?(e?_xeUtils.default.isArray(e)?e:[e]:[]).map(t=>{if(!t||_xeUtils.default.isString(t)){var o=""+(t||""),i=_xeUtils.default.parseUrl(t);let e=(i?i.searchQuery[a]:"")||decodeURIComponent(""+(o||"")).split("/").pop()||"";return{[a]:e,[u]:(i?i.searchQuery[u]:"")||z(e),[n]:o,[r]:_xeUtils.default.toNumber(i?i.searchQuery[r]:0)||0,[l]:A()}}let e=t[a]||"";return t[a]=e,t[u]=t[u]||z(e),t[n]=t[n]||"",t[r]=t[r]||0,t[l]=t[l]||A(),t}):[];B.fileList=o||t?e:e.slice(0,1)},z=e=>{var t=e.lastIndexOf(".");return 0<t?e.substring(t+1).toLowerCase():""},j=(e,t,o)=>{i(e,(0,_ui.createEvent)(o,{$upload:O},t))},s=e=>{i("update:modelValue",e)},k=e=>{let{singleMode:t,urlMode:o,urlArgs:i}=T,l=M.value,a=V.value,u=e?e.slice(0):[];o&&(u=u.map(e=>{var t=e[l];if(t&&i){var o=_xeUtils.default.parseUrl(t);if(!o.searchQuery[a]&&-1===t.indexOf("blob:"))return""+t+(-1===t.indexOf("?")?"?":"&")+a+"="+encodeURIComponent(e[a]||"")}return t})),s(t?u[0]||null:u)},R=e=>{var t=T.getUrlMethod||(0,_ui.getConfig)().upload.getUrlMethod,o=M.value;return t?t({$upload:O,option:e}):e[o]},te=t=>{var{imageTypes:e,showDownloadButton:o}=T;let i=F.value;var l=Q.value;let a=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;var u=r.imagePreviewTypes;u.concat(e||[]).some(e=>(""+e).toLowerCase()===(""+t[i]).toLowerCase())&&_ui.VxeUI.previewImage&&_ui.VxeUI.previewImage(Object.assign(Object.assign({},l),{urlList:[R(t)],showDownloadButton:o,beforeDownloadMethod:a?()=>a({$upload:O,option:t}):void 0}))},$=(i,e)=>{let l=T.showErrorStatus,a=N(i);var t=T.uploadMethod||(0,_ui.getConfig)().upload.uploadMethod;return t?Promise.resolve(t({$upload:O,file:e,option:i,updateProgress(e){var t=B.fileCacheMaps,t=t[N(i)];t&&(t.percent=Math.max(0,Math.min(99,_xeUtils.default.toNumber(e))))}})).then(e=>{var t=B.fileCacheMaps,t=t[a];t&&(t.percent=100,t.status="success"),Object.assign(i,e),j("upload-success",{option:i,data:e},null)}).catch(e=>{var t=B.fileCacheMaps,o=t[a];o&&(o.status="error"),l?Object.assign(i,e):(B.fileList=B.fileList.filter(e=>N(e)!==a),delete t[a]),j("upload-error",{option:i,data:e},null)}).finally(()=>{var e=B.fileCacheMaps,e=e[a];e&&(e.loading=!1)}):(t=B.fileCacheMaps,(e=t[a])&&(e.loading=!1),Promise.resolve())},oe=e=>{let{uploadMethod:t,urlMode:o}=T;var i,l=B.fileCacheMaps,l=l[N(e)];(t||(0,_ui.getConfig)().upload.uploadMethod)&&l&&(i=l.file,l.loading=!0,l.status="pending",l.percent=0,$(e,i).then(()=>{o&&k(B.fileList)}))},p=(t,o)=>{let{multiple:e,urlMode:i,showLimitSize:l,limitSizeText:a,showLimitCount:u,limitCountText:n,autoSubmit:r}=T;var d=B.fileList;let s=T.beforeSelectMethod||(0,_ui.getConfig)().upload.beforeSelectMethod,p=T.uploadMethod||(0,_ui.getConfig)().upload.uploadMethod,v=E.value,g=V.value,m=F.value,_=M.value,c=S.value;var f=H.value;let h=Y.value;var x=W.value;let w=t;if(e&&h){if(u&&d.length>=h)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:n?""+(_xeUtils.default.isFunction(n)?n({maxCount:h}):n):(0,_ui.getI18n)("vxe.upload.overCountErr",[h])}));let t=w.length-(h-d.length);if(u&&0<t){let e=w.slice(h-d.length);n?_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:""+(_xeUtils.default.isFunction(n)?n({maxCount:h}):n)}):_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",width:null,slots:{default(){return(0,_vue.h)("div",{class:"vxe-upload--file-message-over-error"},[(0,_vue.h)("div",{},(0,_ui.getI18n)("vxe.upload.overCountExtraErr",[h,t])),(0,_vue.h)("div",{class:"vxe-upload--file-message-over-extra"},e.map((e,t)=>(0,_vue.h)("div",{key:t,class:"vxe-upload--file-message-over-extra-item"},e.name)))])}}})}w=w.slice(0,h-d.length)}if(l&&f)for(let e=0;e<t.length;e++)if(t[0].size>f)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:a?""+(_xeUtils.default.isFunction(a)?a({maxSize:f}):a):(0,_ui.getI18n)("vxe.upload.overSizeErr",[x])}));let y=Object.assign({},B.fileCacheMaps),b=e?d:[],I=[];w.forEach(e=>{var t=e.name,o=A(),t={[g]:t,[m]:z(t),[c]:e.size,[_]:URL.createObjectURL(e),[v]:o},o=(p&&(y[o]={file:e,loading:!!r,status:"pending",percent:0}),(0,_vue.reactive)(t));s&&!s({$upload:O,file:e})||(p&&r&&I.push($(o,e)),b.push(o))}),B.fileList=b,B.fileCacheMaps=y,b.forEach(e=>{j("add",{option:e},o)}),Promise.all(i?I:[]).then(()=>{var e=B.fileList;k(e),U&&C&&U.triggerItemEvent(o,C.itemConfig.field,e)})},v=t=>{var{multiple:e,imageTypes:o,fileTypes:i}=T,l=P.value,a=h.value;return l?Promise.resolve({status:!1,files:[],file:null}):(0,_util.readLocalFile)({multiple:e,types:a?o:i}).then(e=>(p(e.files,t),e))},ie=e=>{v(e).catch(()=>{})},g=(e,t,o)=>{var i=B.fileList;i.splice(o,1),k(i),U&&C&&U.triggerItemEvent(e||{type:"remove"},C.itemConfig.field,i),e&&j("remove",{option:t},e)},q=(t,o,i)=>{var e=T.beforeRemoveMethod||(0,_ui.getConfig)().upload.beforeRemoveMethod;let l=T.removeMethod||(0,_ui.getConfig)().upload.removeMethod;return Promise.resolve(!e||e({$upload:O,option:o})).then(e=>(e?l?Promise.resolve(l({$upload:O,option:o})).then(()=>{g(t,o,i)}).catch(e=>e):g(t,o,i):t&&j("remove-fail",{option:o},t),e))},le=(e,t)=>{j("download",{option:t},e)},ae=e=>{var t,o,i,l=e.currentTarget,{clientX:e,clientY:a}=e;l&&({x:l,y:t,height:o,width:i}=l.getBoundingClientRect(),e<l||l+i<e||a<t||t+o<a)&&(B.isDragUploadStatus=!1)},ue=e=>{var t=e.dataTransfer;t&&(t=t.items,t)&&t.length&&(e.preventDefault(),B.isDragUploadStatus=!0)},ne=(e,t)=>{let{imageTypes:i,fileTypes:l}=T;var a=r.imagePreviewTypes;if(h.value){let o=a.concat(i&&i.length?i:[]);t=t.filter(e=>{let t=(""+(e.type.split("/")[1]||"")).toLowerCase();return!!o.some(e=>(""+e).toLowerCase()===t)})}else if(l&&l.length){let o=[];if(t.forEach(e=>{let t=z(e.name);l.some(e=>(""+e).toLowerCase()===t)||o.push(t)}),o.length)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.error.notType",[o.join(", ")]),status:"error"}))}t.length?p(t,e):_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:(0,_ui.getI18n)("vxe.upload.uploadTypeErr")})},re=e=>{var t=e.dataTransfer;t&&(t=t.items,t)&&t.length&&(e.preventDefault(),(t=de(t)).length)&&ne(e,t),B.isDragUploadStatus=!1},de=e=>{let t=[];return _xeUtils.default.arrayEach(e,e=>{e=e.getAsFile();e&&t.push(e)}),t},x=e=>{let v=L.value,g=h.value;e=e.$event;_ui.VxeUI.modal&&(_ui.VxeUI.modal.open({id:r.moreId,title:v?(0,_ui.getI18n)("vxe.upload.morePopup.readTitle"):(0,_ui.getI18n)("vxe.upload.morePopup."+(g?"imageTitle":"fileTitle")),width:660,height:500,escClosable:!0,showMaximize:!0,resize:!0,maskClosable:!0,slots:{default(){var{showErrorStatus:e,dragToUpload:t,dragSort:o,dragPlaceholder:i}=T,{isActivated:l,isDragMove:a,isDragUploadStatus:u,dragIndex:n}=B;let r=B.fileList;var d=P.value,s=D.moreContent||D["more-content"],p={};return t&&-1===n&&(p.onDragover=ue,p.onDragleave=ae,p.onDrop=re),(0,_vue.h)("div",Object.assign({ref:_,class:["vxe-upload--more-popup",{"is--readonly":v,"is--disabled":d,"is--active":l,"show--error":e,"is--drag":u}]},p),s?(0,_vn.getSlotVNs)(s({options:r})):[g?o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(a?"":"-disabled"),tag:"div",class:"vxe-upload--image-more-list"},{default:()=>b(r,!0).concat(I(!0))}):(0,_vue.h)("div",{class:"vxe-upload--image-more-list"},b(r,!0).concat(I(!0))):(0,_vue.h)("div",{class:"vxe-upload--file-more-list"},[y(!0),o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(a?"":"-disabled"),tag:"div",class:"vxe-upload--file-list"},{default:()=>w(r,!1)}):(0,_vue.h)("div",{class:"vxe-upload--file-list"},w(r,!0))]),o?(0,_vue.h)("div",{ref:f,class:"vxe-upload--drag-line"}):(0,_ui.renderEmptyElement)(O),u?(0,_vue.h)("div",{class:"vxe-upload--drag-placeholder"},i||(0,_ui.getI18n)("vxe.upload.dragPlaceholder")):(0,_ui.renderEmptyElement)(O)])}},onShow(){B.showMorePopup=!0},onHide({$event:e}){B.showMorePopup=!1,e&&j("more-visible",{visible:!1},e)}}),e)&&j("more-visible",{visible:!0},e)},se=(e,t,o)=>{var i,l=B.showMorePopup,a=m.value,u=_.value,u=l?u:a;u&&(a=u.getBoundingClientRect(),u=c.value,i=f.value,l=l?i:u)&&(i=t.getBoundingClientRect(),l.style.display="block",l.style.top=Math.max(1,i.y-a.y)+"px",l.style.left=Math.max(1,i.x-a.x)+"px",l.style.height=i.height+"px",l.style.width=i.width-1+"px",l.setAttribute("drag-pos",o))},pe=()=>{var e=c.value,t=f.value;e&&(e.style.display=""),t&&(t.style.display="")},ve=e=>{e.stopPropagation(),e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0);let t=e.currentTarget;e=t.parentElement,e=_xeUtils.default.findIndexOf(Array.from(e.children),e=>t===e);B.isDragMove=!0,B.dragIndex=e,setTimeout(()=>{B.isDragMove=!1},500)},ge=o=>{o.stopPropagation(),o.preventDefault();var i=B.dragIndex;if(-1!==i){var l=h.value;let t=o.currentTarget;var a=t.parentElement,a=_xeUtils.default.findIndexOf(Array.from(a.children),e=>t===e);let e="";e=l?o.clientX-t.getBoundingClientRect().x<t.clientWidth/2?"left":"right":o.clientY-t.getBoundingClientRect().y<t.clientHeight/2?"top":"bottom",i===a?se(o,t,e):(se(o,t,e),r.prevDragIndex=a,r.prevDragPos=e)}},me=e=>{var{fileList:t,dragIndex:o}=B,{prevDragIndex:i,prevDragPos:l}=r,a="bottom"===l||"right"===l?1:0,u=t[o];let n=t[i];u&&n&&(t.splice(o,1),i=_xeUtils.default.findIndexOf(t,e=>n===e)+a,t.splice(i,0,u),j("sort-dragend",{oldItem:u,newItem:n,dragPos:l,offsetIndex:a,_index:{newIndex:i,oldIndex:o}},e)),pe(),B.dragIndex=-1},_e=e=>{l&&e.stopPropagation(),B.isActivated=!0},ce=e=>{var t=T.pasteToUpload,o=B.isActivated;o&&t&&(o=e.clipboardData||e.originalEvent.clipboardData)&&(t=o.items,t)&&(o=de(t)).length&&(e.preventDefault(),ne(e,o))},fe=e=>{var t=m.value,o=_.value;let i=(0,_dom.getEventTargetNode)(e,t).flag;!i&&o&&(o=(t=o.parentElement||o)&&t.parentElement,i=(0,_dom.getEventTargetNode)(e,o).flag),B.isActivated=i},he=()=>{B.isActivated=!1},xe=o=>{var e=B.fileList;let i=M.value,l=[];return _xeUtils.default.lastEach(e,(t,e)=>{l.push(q(o,t,e).then(e=>({url:t[i],status:e})))}),Promise.all(l)},we=(o,e)=>{let i=B.fileList,l=M.value;e=_xeUtils.default.isArray(e)?e:[e];let a=[];return e.forEach(e=>{if(e){let t=_xeUtils.default.isString(e)?e:e[l];e=_xeUtils.default.findIndexOf(i,e=>e[l]===t);-1<e&&a.push(q(o,i[e],e).then(e=>({url:t,status:e})))}}),Promise.all(a)};t={dispatchEvent:j,choose(){return v(null)},clear(){return xe(null)},clearByEvent(e){return xe(e)},getPendingFiles(){let{fileList:e,fileCacheMaps:t}=B,o=[];return e.forEach(e=>{e=N(e),e=t[e];e&&"pending"===e.status&&o.push(e.file)}),o},submit(i){var e=T.maxSimultaneousUploads,e=_xeUtils.default.toNumber(e||1)||1;let{fileList:t,fileCacheMaps:l}=B,o=t.filter(e=>{e=N(e),e=l[e];return e&&("pending"===e.status||i&&"error"===e.status)}),a=e=>{var t=N(e),t=l[t];if(t){var o=t.file;if(o&&("pending"===t.status||i&&"error"===t.status))return t.loading=!0,t.percent=0,$(e,o).then(u)}return u()},u=()=>{var e;return o.length?(e=o[0],o.splice(0,1),a(e).then(u)):Promise.resolve()};return Promise.all(o.splice(0,e).map(a)).then(()=>{})},getMoreVisible(){return B.showMorePopup},openMore(){return x({$event:new Event("click")}),(0,_vue.nextTick)()},openMoreByEvent(e){return x({$event:e}),(0,_vue.nextTick)()},closeMore(){return _ui.VxeUI.modal&&_ui.VxeUI.modal.close(r.moreId),(0,_vue.nextTick)()},remove(e){return we(null,e)},removeByEvent(e,t){return we(e,t)}},e={removeFileEvent:q};Object.assign(O,t,e);let w=(e,r)=>{let{showRemoveButton:d,showDownloadButton:s,showProgress:p,progressText:v,showPreview:g,showErrorStatus:m,dragSort:_,autoSubmit:c,showSubmitButton:f}=T,{fileList:h,fileCacheMaps:x}=B,w=P.value,y=L.value,b=V.value,I=F.value,U=D.option,C=D.action,E=D.corner,M=D.name,S={};return _&&1<e.length&&(S.onDragstart=ve,S.onDragover=ge,S.onDragend=me),e.map((i,t)=>{var e=N(i),o=x[e];let l=!1,a=!1,u=!1;var n=""+(i[b]||"");return o&&(l=o.loading,a="error"===o.status,u="pending"===o.status),(0,_vue.h)("div",Object.assign({key:_?e:t,class:["vxe-upload--file-item",{"is--preview":g,"is--loading":l,"is--pending":u,"is--error":a}],fileid:e,draggable:!!_||null},S),U?(0,_vn.getSlotVNs)(U({option:i,isMoreView:r,options:h})):[(0,_vue.h)("div",{class:"vxe-upload--file-item-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)()["UPLOAD_FILE_TYPE_"+(""+i[I]).toLocaleUpperCase()]||(0,_ui.getIcon)().UPLOAD_FILE_TYPE_DEFAULT})]),(0,_vue.h)("div",{class:"vxe-upload--file-item-name",title:n,onClick(e){var t,o;l||a||(t=i,o=T.previewMethod||(0,_ui.getConfig)().upload.previewMethod,T.showPreview&&(o?o({$upload:O,option:t}):te(t)))}},M?(0,_vn.getSlotVNs)(M({option:i,isMoreView:r,options:h})):n),l?(0,_vue.h)("div",{class:"vxe-upload--file-item-loading-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_LOADING})]):(0,_ui.renderEmptyElement)(O),p&&l&&o?(0,_vue.h)("div",{class:"vxe-upload--file-item-loading-text"},v?_xeUtils.default.toFormatString(""+(_xeUtils.default.isFunction(v)?v({}):v),{percent:o.percent}):(0,_ui.getI18n)("vxe.upload.uploadProgress",[o.percent])):(0,_ui.renderEmptyElement)(O),!l&&(a&&m||u&&f&&!c)?(0,_vue.h)("div",{class:"vxe-upload--file-item-rebtn"},[(0,_vue.h)(_button.default,{icon:a?(0,_ui.getIcon)().UPLOAD_IMAGE_RE_UPLOAD:(0,_ui.getIcon)().UPLOAD_IMAGE_UPLOAD,mode:"text",status:"primary",content:a?(0,_ui.getI18n)("vxe.upload.reUpload"):(0,_ui.getI18n)("vxe.upload.manualUpload"),onClick(){oe(i)}})]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--file-item-btn-wrapper"},C?(0,_vn.getSlotVNs)(C({option:i,isMoreView:r,options:h,readonly:y})):[E?(0,_vue.h)("div",{class:"vxe-upload--file-item-action"},(0,_vn.getSlotVNs)(E({option:i,isMoreView:r,options:h,readonly:y}))):(0,_ui.renderEmptyElement)(O),!s||l||u?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-item-download-btn",onClick(e){((t,o)=>{var e=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;let i=T.downloadMethod||(0,_ui.getConfig)().upload.downloadMethod;Promise.resolve(!e||e({$upload:O,option:o})).then(e=>{e?i?Promise.resolve(i({$upload:O,option:o})).then(()=>{le(t,o)}).catch(e=>e):le(t,o):j("download-fail",{option:o},t)})})(e,i)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_FILE_DOWNLOAD})]),!d||y||w||l?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-item-remove-btn",onClick(e){q(e,i,t)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_FILE_REMOVE})])])])})},y=e=>{var{showUploadButton:t,buttonText:o,buttonIcon:i,showButtonText:l,showButtonIcon:a,autoHiddenButton:u}=T,n=B.fileList,r=P.value,d=L.value,s=K.value,p=J.value,v=X.value,g=D.default,m=D.tip||D.hint;return d||!t?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-action"},[u&&v?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-action-btn",onClick:ie},g?(0,_vn.getSlotVNs)(g({isMoreView:e,options:n,$upload:O})):[(0,_vue.h)(_button.default,{class:"vxe-upload--file-action-button",content:e||l?o?""+(_xeUtils.default.isFunction(o)?o({}):o):(0,_ui.getI18n)("vxe.upload.fileBtnText"):"",icon:a?i||(0,_ui.getIcon)().UPLOAD_FILE_ADD:"",disabled:r})]),s&&(p||m)?(0,_vue.h)("div",{class:"vxe-upload--file-action-tip"},m?(0,_vn.getSlotVNs)(m({isMoreView:e,options:n,$upload:O})):""+p):(0,_ui.renderEmptyElement)(O)])},b=(e,n)=>{let{showRemoveButton:r,showProgress:d,progressText:s,showPreview:p,showErrorStatus:v,dragSort:g,autoSubmit:m,showSubmitButton:_}=T,{fileList:c,fileCacheMaps:f}=B,h=P.value,x=L.value,w=u.value,y=Z.value,b=D.option,I=D.action,U=D.corner,C={onMousedown:_e};return g&&1<e.length&&(C.onDragstart=ve,C.onDragover=ge,C.onDragend=me),e.map((t,o)=>{var e=N(t),i=f[e];let l=!1,a=!1,u=!1;return i&&(l=i.loading,a="error"===i.status,u="pending"===i.status),(0,_vue.h)("div",Object.assign({key:g?e:o,class:["vxe-upload--image-item",{"is--preview":p,"is--circle":w.circle,"is--loading":l,"is--pending":u,"is--error":a}],fileid:e,draggable:!!g||null},C),b?(0,_vn.getSlotVNs)(b({option:t,isMoreView:n,options:c})):[(0,_vue.h)("div",{class:"vxe-upload--image-item-box",style:n?null:y,onClick(e){l||a||((e,t)=>{var o=T.showDownloadButton;let i=B.fileList;var l=Q.value,a=T.previewMethod||(0,_ui.getConfig)().upload.previewMethod;let u=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;T.showPreview&&(a?a({$upload:O,option:e}):_ui.VxeUI.previewImage&&_ui.VxeUI.previewImage(Object.assign(Object.assign({},l),{urlList:i.map(e=>R(e)),activeIndex:t,showDownloadButton:o,beforeDownloadMethod:u?({index:e})=>u({$upload:O,option:i[e]}):void 0})))})(t,o)}},[l&&i?(0,_vue.h)("div",{class:"vxe-upload--image-item-loading"},[(0,_vue.h)("div",{class:"vxe-upload--image-item-loading-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_LOADING})]),d?(0,_vue.h)("div",{class:"vxe-upload--image-item-loading-text"},s?_xeUtils.default.toFormatString(""+(_xeUtils.default.isFunction(s)?s({}):s),{percent:i.percent}):(0,_ui.getI18n)("vxe.upload.uploadProgress",[i.percent])):(0,_ui.renderEmptyElement)(O)]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--image-item-img-wrapper",title:(0,_ui.getI18n)("vxe.upload.viewItemTitle")},[(0,_vue.h)("img",{class:"vxe-upload--image-item-img",src:(e=t,(i=T.getThumbnailUrlMethod||(0,_ui.getConfig)().upload.getThumbnailUrlMethod)?i({$upload:O,option:e}):R(e))})]),!l&&(a&&v||u&&_&&!m)?(0,_vue.h)("div",{class:"vxe-upload--image-item-rebtn"},[(0,_vue.h)(_button.default,{icon:a?(0,_ui.getIcon)().UPLOAD_IMAGE_RE_UPLOAD:(0,_ui.getIcon)().UPLOAD_IMAGE_UPLOAD,mode:"text",status:"primary",content:a?(0,_ui.getI18n)("vxe.upload.reUpload"):(0,_ui.getI18n)("vxe.upload.manualUpload"),onClick(){oe(t)}})]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--image-item-btn-wrapper",onClick(e){e.stopPropagation()}},I?(0,_vn.getSlotVNs)(I({option:t,isMoreView:n,options:c,readonly:x})):[U?(0,_vue.h)("div",{class:"vxe-upload--file-item-action"},(0,_vn.getSlotVNs)(U({option:t,isMoreView:n,options:c,readonly:x}))):(0,_ui.renderEmptyElement)(O),!r||x||h||l?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--image-item-remove-btn",onClick(e){e.stopPropagation(),q(e,t,o)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_IMAGE_REMOVE})])])])])})},I=e=>{var{showUploadButton:t,buttonText:o,buttonIcon:i,showButtonText:l,showButtonIcon:a,autoHiddenButton:u}=T,n=B.fileList,r=L.value,d=K.value,s=J.value,p=X.value,v=Z.value,g=D.default,m=D.tip||D.hint;return r||!t||u&&p?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{key:"action",class:"vxe-upload--image-action"},[(0,_vue.h)("div",{class:"vxe-upload--image-action-btn",onClick:ie},g?g({isMoreView:e,options:n,$upload:O}):[(0,_vue.h)("div",{class:"vxe-upload--image-action-box",style:e?null:v},[a?(0,_vue.h)("div",{class:"vxe-upload--image-action-icon"},[(0,_vue.h)("i",{class:i||(0,_ui.getIcon)().UPLOAD_IMAGE_ADD})]):(0,_ui.renderEmptyElement)(O),e||l?(0,_vue.h)("div",{class:"vxe-upload--image-action-content"},o?""+(_xeUtils.default.isFunction(o)?o({}):o):(0,_ui.getI18n)("vxe.upload.imgBtnText")):(0,_ui.renderEmptyElement)(O),d&&(s||m)?(0,_vue.h)("div",{class:"vxe-upload--image-action-hint"},m?(0,_vn.getSlotVNs)(m({isMoreView:e,options:n,$upload:O})):""+s):(0,_ui.renderEmptyElement)(O)])])])};let o=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.modelValue?T.modelValue.length:0,()=>{o.value++}),(0,_vue.watch)(()=>T.modelValue,()=>{o.value++}),(0,_vue.watch)(o,()=>{d()}),(0,_vue.onMounted)(()=>{T.multiple&&T.singleMode&&(0,_log.errLog)("vxe.error.errConflicts",["[upload] multiple","single-mode"]),T.imageStyle&&(0,_log.warnLog)("vxe.error.delProp",["[upload] image-style","image-config"]),T.dragSort&&(0,_dom.initTpImg)(),_ui.globalEvents.on(O,"paste",ce),_ui.globalEvents.on(O,"click",fe),_ui.globalEvents.on(O,"blur",he)}),(0,_vue.onBeforeUnmount)(()=>{B.isDragUploadStatus=!1,_ui.globalEvents.off(O,"paste"),_ui.globalEvents.off(O,"click"),_ui.globalEvents.off(O,"blur"),_xeUtils.default.assign(B,createReactData()),_xeUtils.default.assign(r,createInternalData())}),d(),O.renderVN=()=>{var{showErrorStatus:e,dragToUpload:t,pasteToUpload:o,dragSort:i,dragPlaceholder:l}=T,{isDragUploadStatus:a,showMorePopup:u,isActivated:n,dragIndex:r}=B,d=G.value,s=P.value,p=L.value,v=h.value,g={onMousedown:_e};return t&&-1===r&&(g.onDragover=ue,g.onDragleave=ae,g.onDrop=re),(0,_vue.h)("div",Object.assign({ref:m,class:["vxe-upload",{["size--"+d]:d,"is--active":n,"is--readonly":p,"is--disabled":s,"is--paste":o,"show--error":e,"is--drag":a}]},g),[(v?()=>{var{showList:e,dragSort:t}=T;let{fileList:o,isDragMove:i}=B;var l=ee.value;let a=D.moreButton||D["more-button"],{maxCount:u,showMoreButton:n,moreButtonText:r}=l,d=o,s=0,p=!1,v=!1;return _xeUtils.default.isNumber(u)&&o.length>u&&(p=!0,v=0===u,s=o.length-u,d=o.slice(0,u)),(0,_vue.h)("div",{key:"image",class:"vxe-upload--image-wrapper"},e?[t?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(i?"":"-disabled"),tag:"div",class:"vxe-upload--image-list"},{default:()=>b(d,!1).concat([n&&s?(0,_vue.h)("div",{key:"om",class:"vxe-upload--image-over-more"},a?(0,_vn.getSlotVNs)(a({options:o})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:o}):_xeUtils.default.toFormatString(r,[o.length]):(0,_ui.getI18n)(p&&v?"vxe.upload.moreImgBtnText":"vxe.upload.moreBtnText",[o.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),I(!1)])}):(0,_vue.h)("div",{class:"vxe-upload--image-list"},b(d,!1).concat([n&&s?(0,_vue.h)("div",{class:"vxe-upload--image-over-more"},a?(0,_vn.getSlotVNs)(a({options:o})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:o}):_xeUtils.default.toFormatString(r,[o.length]):(0,_ui.getI18n)(p&&v?"vxe.upload.moreImgBtnText":"vxe.upload.moreBtnText",[o.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),I(!1)]))]:[(0,_vue.h)("div",{class:"vxe-upload--image-list"},[I(!1)])])}:()=>{var{showList:e,moreConfig:t,dragSort:o}=T,{fileList:i,isDragMove:l}=B,{maxCount:a,showMoreButton:u,layout:n,moreButtonText:r}=ee.value,n="horizontal"===n,d=D.moreButton||D["more-button"];let s=i,p=0,v=!1,g=!1;return _xeUtils.default.isNumber(a)&&i.length>a&&(v=!0,g=0===a,p=i.length-a,s=i.slice(0,a)),(0,_vue.h)("div",{key:"all",class:"vxe-upload--file-wrapper"},e?[u&&t&&n?(0,_ui.renderEmptyElement)(O):y(!0),(0,_vue.h)("div",{class:["vxe-upload--file-list-wrapper",{"is--horizontal":n}]},[s.length?o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(l?"":"-disabled"),tag:"div",class:"vxe-upload--file-list"},{default:()=>w(s,!1)}):(0,_vue.h)("div",{class:"vxe-upload--file-list"},w(s,!1)):(0,_ui.renderEmptyElement)(O),u&&p?(0,_vue.h)("div",{class:"vxe-upload--file-over-more"},d?(0,_vn.getSlotVNs)(d({options:i})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:i}):_xeUtils.default.toFormatString(r,[i.length]):(0,_ui.getI18n)(v&&g?"vxe.upload.moreFileBtnText":"vxe.upload.moreBtnText",[i.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),u&&t&&n?y(!1):(0,_ui.renderEmptyElement)(O)])]:[y(!1)])})(),i?(0,_vue.h)("div",{ref:c,class:"vxe-upload--drag-line"}):(0,_ui.renderEmptyElement)(O),a&&!u?(0,_vue.h)("div",{class:"vxe-upload--drag-placeholder"},l||(0,_ui.getI18n)("vxe.upload.dragPlaceholder")):(0,_ui.renderEmptyElement)(O)])},O},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_dom=require("../../ui/src/dom"),_util=require("./util"),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("upload");function createReactData(){return{isDragUploadStatus:!1,showMorePopup:!1,isActivated:!1,fileList:[],fileCacheMaps:{},isDragMove:!1,dragIndex:-1,dragTipText:""}}function createInternalData(){return{moreId:_xeUtils.default.uniqueId("upload"),imagePreviewTypes:["jpg","jpeg","png","gif"],prevDragIndex:-1}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeUpload",props:{modelValue:[Array,String,Object],showList:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showList},moreConfig:Object,readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},autoSubmit:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.autoSubmit},mode:{type:String,default:()=>(0,_ui.getConfig)().upload.mode},imageTypes:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageTypes,!0)},imageConfig:{type:Object,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageConfig,!0)},imageStyle:{type:Object,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.imageStyle,!0)},fileTypes:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.fileTypes,!0)},dragSort:Boolean,dragToUpload:{type:Boolean,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.dragToUpload,!0)},dragPlaceholder:{type:String,default:()=>(0,_ui.getConfig)().upload.dragPlaceholder},pasteToUpload:{type:Boolean,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().upload.pasteToUpload,!0)},keyField:String,singleMode:Boolean,urlMode:Boolean,urlArgs:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.urlArgs},multiple:Boolean,limitSize:{type:[String,Number],default:()=>(0,_ui.getConfig)().upload.limitSize},showLimitSize:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showLimitSize},limitSizeText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.limitSizeText},limitCount:{type:[String,Number],default:()=>(0,_ui.getConfig)().upload.limitCount},showLimitCount:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showLimitCount},limitCountText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.limitCountText},nameField:{type:String,default:()=>(0,_ui.getConfig)().upload.nameField},typeField:{type:String,default:()=>(0,_ui.getConfig)().upload.typeField},urlField:{type:String,default:()=>(0,_ui.getConfig)().upload.urlField},sizeField:{type:String,default:()=>(0,_ui.getConfig)().upload.sizeField},showErrorStatus:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showErrorStatus},showProgress:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showProgress},progressText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.progressText},previewImageConfig:Object,showSubmitButton:Boolean,autoHiddenButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.autoHiddenButton},showUploadButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showUploadButton},buttonText:{type:[String,Number,Function],default:()=>(0,_ui.getConfig)().upload.buttonText},buttonIcon:{type:String,default:()=>(0,_ui.getConfig)().upload.buttonIcon},showButtonText:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showButtonText},showButtonIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showButtonIcon},showRemoveButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showRemoveButton},showDownloadButton:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showDownloadButton},showPreview:{type:Boolean,default:()=>(0,_ui.getConfig)().upload.showPreview},showTip:{type:Boolean,default:()=>null},maxSimultaneousUploads:{type:Number,default:()=>(0,_ui.getConfig)().upload.maxSimultaneousUploads},tipText:[String,Number,Function],hintText:String,previewMethod:Function,beforeSelectMethod:Function,uploadMethod:Function,beforeRemoveMethod:Function,removeMethod:Function,beforeDownloadMethod:Function,downloadMethod:Function,getUrlMethod:Function,getThumbnailUrlMethod:Function,size:{type:String,default:()=>(0,_ui.getConfig)().upload.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","add","remove","remove-fail","download","download-fail","upload-start","upload-success","upload-error","upload-end","upload-queue-start","upload-queue-end","sort-dragend","more-visible"],setup(T,e){let{emit:i,slots:D}=e,U=(0,_vue.inject)("$xeForm",null),C=(0,_vue.inject)("xeFormItemInfo",null),l=(0,_vue.inject)("$xeTable",null);var t=_xeUtils.default.uniqueId();let G=(0,_ui.useSize)(T).computeSize,m=(0,_vue.ref)(),_=(0,_vue.ref)(),c=(0,_vue.ref)(),f=(0,_vue.ref)(),B=(0,_vue.reactive)(createReactData()),r=createInternalData(),a={refElem:m},L=(0,_vue.computed)(()=>{var e=T.readonly;return null===e?!!U&&U.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=T.disabled;return null===e?!!U&&U.props.disabled:e}),E=(0,_vue.computed)(()=>T.keyField||"_X_KEY"),h=(0,_vue.computed)(()=>"image"===T.mode),V=(0,_vue.computed)(()=>T.nameField||"name"),F=(0,_vue.computed)(()=>T.typeField||"type"),M=(0,_vue.computed)(()=>T.urlField||"url"),S=(0,_vue.computed)(()=>T.sizeField||"size"),H=(0,_vue.computed)(()=>1024*_xeUtils.default.toNumber(T.limitSize)*1024),Y=(0,_vue.computed)(()=>T.multiple?_xeUtils.default.toNumber(T.limitCount):1),Q=(0,_vue.computed)(()=>{var e=T.showDownloadButton;return Object.assign({showDownloadButton:e},(0,_ui.getConfig)().upload.previewImageConfig,T.previewImageConfig)}),X=(0,_vue.computed)(()=>{var e=T.multiple,t=B.fileList,o=Y.value;return e?!o||t.length>=o:1<=t.length}),W=(0,_vue.computed)(()=>{var e=_xeUtils.default.toNumber(T.limitSize);return e?1048576<e?e/1048576+"T":1024<e?e/1024+"G":e+"M":""}),K=(0,_vue.computed)(()=>{var{showTip:e,tipText:t}=T;return _xeUtils.default.isBoolean(e)||(e=(0,_ui.getConfig)().upload.showTip,_xeUtils.default.isBoolean(e))?e:!!t}),J=(0,_vue.computed)(()=>{var{limitSize:e,fileTypes:t,multiple:o,limitCount:i}=T,l=T.tipText||T.hintText,a=h.value,u=W.value;return _xeUtils.default.isString(l)?l:_xeUtils.default.isFunction(l)?""+l({}):(l=[],a?(o&&i&&l.push((0,_ui.getI18n)("vxe.upload.imgCountHint",[i])),e&&u&&l.push((0,_ui.getI18n)("vxe.upload.imgSizeHint",[u]))):(t&&t.length&&l.push((0,_ui.getI18n)("vxe.upload.fileTypeHint",[t.join("/")])),e&&u&&l.push((0,_ui.getI18n)("vxe.upload.fileSizeHint",[u])),o&&i&&l.push((0,_ui.getI18n)("vxe.upload.fileCountHint",[i]))),l.join((0,_ui.getI18n)("vxe.base.comma")))}),u=(0,_vue.computed)(()=>Object.assign({},T.imageConfig||T.imageStyle)),Z=(0,_vue.computed)(()=>{var{width:e,height:t}=u.value,o={};return e&&(o.width=(0,_dom.toCssUnit)(e)),t&&(o.height=(0,_dom.toCssUnit)(t)),o}),ee=(0,_vue.computed)(()=>Object.assign({showMoreButton:!0},T.moreConfig)),n={computeUrlProp:M},O={xID:t,props:T,context:e,reactData:B,internalData:r,getRefMaps:()=>a,getComputeMaps:()=>n},A=()=>_xeUtils.default.uniqueId(),N=e=>e[E.value],d=()=>{var{modelValue:e,multiple:t}=T,o=L.value;let l=E.value,a=V.value,u=F.value,n=M.value,r=S.value;e=e?(e?_xeUtils.default.isArray(e)?e:[e]:[]).map(t=>{if(!t||_xeUtils.default.isString(t)){var o=""+(t||""),i=_xeUtils.default.parseUrl(t);let e=(i?i.searchQuery[a]:"")||decodeURIComponent(""+(o||"")).split("/").pop()||"";return{[a]:e,[u]:(i?i.searchQuery[u]:"")||z(e),[n]:o,[r]:_xeUtils.default.toNumber(i?i.searchQuery[r]:0)||0,[l]:A()}}let e=t[a]||"";return t[a]=e,t[u]=t[u]||z(e),t[n]=t[n]||"",t[r]=t[r]||0,t[l]=t[l]||A(),t}):[];B.fileList=o||t?e:e.slice(0,1)},z=e=>{var t=e.lastIndexOf(".");return 0<t?e.substring(t+1).toLowerCase():""},j=(e,t,o)=>{i(e,(0,_ui.createEvent)(o,{$upload:O},t))},s=e=>{i("update:modelValue",e)},k=e=>{let{singleMode:t,urlMode:o,urlArgs:i}=T,l=M.value,a=V.value,u=e?e.slice(0):[];o&&(u=u.map(e=>{var t=e[l];if(t&&i){var o=_xeUtils.default.parseUrl(t);if(!o.searchQuery[a]&&-1===t.indexOf("blob:"))return""+t+(-1===t.indexOf("?")?"?":"&")+a+"="+encodeURIComponent(e[a]||"")}return t})),s(t?u[0]||null:u)},R=e=>{var t=T.getUrlMethod||(0,_ui.getConfig)().upload.getUrlMethod,o=M.value;return t?t({$upload:O,option:e}):e[o]},te=t=>{var{imageTypes:e,showDownloadButton:o}=T;let i=F.value;var l=Q.value;let a=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;var u=r.imagePreviewTypes;u.concat(e||[]).some(e=>(""+e).toLowerCase()===(""+t[i]).toLowerCase())&&_ui.VxeUI.previewImage&&_ui.VxeUI.previewImage(Object.assign(Object.assign({},l),{urlList:[R(t)],showDownloadButton:o,beforeDownloadMethod:a?()=>a({$upload:O,option:t}):void 0}))},$=(i,e)=>{let l=T.showErrorStatus,a=N(i);var t=T.uploadMethod||(0,_ui.getConfig)().upload.uploadMethod;return t?(j("upload-start",{option:i},null),Promise.resolve(t({$upload:O,file:e,option:i,updateProgress(e){var t=B.fileCacheMaps,t=t[N(i)];t&&(t.percent=Math.max(0,Math.min(99,_xeUtils.default.toNumber(e))))}})).then(e=>{var t=B.fileCacheMaps,t=t[a];t&&(t.percent=100,t.status="success"),Object.assign(i,e),j("upload-success",{option:i,data:e},null)}).catch(e=>{var t=B.fileCacheMaps,o=t[a];o&&(o.status="error"),l?Object.assign(i,e):(B.fileList=B.fileList.filter(e=>N(e)!==a),delete t[a]),j("upload-error",{option:i,data:e},null)}).finally(()=>{var e=B.fileCacheMaps,e=e[a];e&&(e.loading=!1),j("upload-end",{option:i},null)})):(t=B.fileCacheMaps,(e=t[a])&&(e.loading=!1),Promise.resolve())},oe=e=>{let{uploadMethod:t,urlMode:o}=T;var i,l=B.fileCacheMaps,l=l[N(e)];(t||(0,_ui.getConfig)().upload.uploadMethod)&&l&&(i=l.file,l.loading=!0,l.status="pending",l.percent=0,$(e,i).then(()=>{o&&k(B.fileList)}))},p=(t,o)=>{let{multiple:e,urlMode:i,showLimitSize:l,limitSizeText:a,showLimitCount:u,limitCountText:n,autoSubmit:r}=T;var d=B.fileList;let s=T.beforeSelectMethod||(0,_ui.getConfig)().upload.beforeSelectMethod,p=T.uploadMethod||(0,_ui.getConfig)().upload.uploadMethod,v=E.value,g=V.value,m=F.value,_=M.value,c=S.value;var f=H.value;let h=Y.value;var x=W.value;let w=t;if(e&&h){if(u&&d.length>=h)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:n?""+(_xeUtils.default.isFunction(n)?n({maxCount:h}):n):(0,_ui.getI18n)("vxe.upload.overCountErr",[h])}));let t=w.length-(h-d.length);if(u&&0<t){let e=w.slice(h-d.length);n?_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:""+(_xeUtils.default.isFunction(n)?n({maxCount:h}):n)}):_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",width:null,slots:{default(){return(0,_vue.h)("div",{class:"vxe-upload--file-message-over-error"},[(0,_vue.h)("div",{},(0,_ui.getI18n)("vxe.upload.overCountExtraErr",[h,t])),(0,_vue.h)("div",{class:"vxe-upload--file-message-over-extra"},e.map((e,t)=>(0,_vue.h)("div",{key:t,class:"vxe-upload--file-message-over-extra-item"},e.name)))])}}})}w=w.slice(0,h-d.length)}if(l&&f)for(let e=0;e<t.length;e++)if(t[0].size>f)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:a?""+(_xeUtils.default.isFunction(a)?a({maxSize:f}):a):(0,_ui.getI18n)("vxe.upload.overSizeErr",[x])}));j("upload-queue-start",{files:w},o);let y=Object.assign({},B.fileCacheMaps),b=e?d:[],I=[];w.forEach(e=>{var t=e.name,o=A(),t={[g]:t,[m]:z(t),[c]:e.size,[_]:URL.createObjectURL(e),[v]:o},o=(p&&(y[o]={file:e,loading:!!r,status:"pending",percent:0}),(0,_vue.reactive)(t));s&&!s({$upload:O,file:e})||(p&&r&&I.push($(o,e)),b.push(o))}),B.fileList=b,B.fileCacheMaps=y,b.forEach(e=>{j("add",{option:e},o)}),Promise.all(i?I:[]).then(()=>{var e=B.fileList;j("upload-queue-end",{options:e,files:w},o),k(e),U&&C&&U.triggerItemEvent(o,C.itemConfig.field,e)})},v=t=>{var{multiple:e,imageTypes:o,fileTypes:i}=T,l=P.value,a=h.value;return l?Promise.resolve({status:!1,files:[],file:null}):(0,_util.readLocalFile)({multiple:e,types:a?o:i}).then(e=>(p(e.files,t),e))},ie=e=>{v(e).catch(()=>{})},g=(e,t,o)=>{var i=B.fileList;i.splice(o,1),k(i),U&&C&&U.triggerItemEvent(e||{type:"remove"},C.itemConfig.field,i),e&&j("remove",{option:t},e)},q=(t,o,i)=>{var e=T.beforeRemoveMethod||(0,_ui.getConfig)().upload.beforeRemoveMethod;let l=T.removeMethod||(0,_ui.getConfig)().upload.removeMethod;return Promise.resolve(!e||e({$upload:O,option:o})).then(e=>(e?l?Promise.resolve(l({$upload:O,option:o})).then(()=>{g(t,o,i)}).catch(e=>e):g(t,o,i):t&&j("remove-fail",{option:o},t),e))},le=(e,t)=>{j("download",{option:t},e)},ae=e=>{var t,o,i,l=e.currentTarget,{clientX:e,clientY:a}=e;l&&({x:l,y:t,height:o,width:i}=l.getBoundingClientRect(),e<l||l+i<e||a<t||t+o<a)&&(B.isDragUploadStatus=!1)},ue=e=>{var t=e.dataTransfer;t&&(t=t.items,t)&&t.length&&(e.preventDefault(),B.isDragUploadStatus=!0)},ne=(e,t)=>{let{imageTypes:i,fileTypes:l}=T;var a=r.imagePreviewTypes;if(h.value){let o=a.concat(i&&i.length?i:[]);t=t.filter(e=>{let t=(""+(e.type.split("/")[1]||"")).toLowerCase();return!!o.some(e=>(""+e).toLowerCase()===t)})}else if(l&&l.length){let o=[];if(t.forEach(e=>{let t=z(e.name);l.some(e=>(""+e).toLowerCase()===t)||o.push(t)}),o.length)return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.error.notType",[o.join(", ")]),status:"error"}))}t.length?p(t,e):_ui.VxeUI.modal&&_ui.VxeUI.modal.notification({title:(0,_ui.getI18n)("vxe.modal.errTitle"),status:"error",content:(0,_ui.getI18n)("vxe.upload.uploadTypeErr")})},re=e=>{var t=e.dataTransfer;t&&(t=t.items,t)&&t.length&&(e.preventDefault(),(t=de(t)).length)&&ne(e,t),B.isDragUploadStatus=!1},de=e=>{let t=[];return _xeUtils.default.arrayEach(e,e=>{e=e.getAsFile();e&&t.push(e)}),t},x=e=>{let v=L.value,g=h.value;e=e.$event;_ui.VxeUI.modal&&(_ui.VxeUI.modal.open({id:r.moreId,title:v?(0,_ui.getI18n)("vxe.upload.morePopup.readTitle"):(0,_ui.getI18n)("vxe.upload.morePopup."+(g?"imageTitle":"fileTitle")),width:660,height:500,escClosable:!0,showMaximize:!0,resize:!0,maskClosable:!0,slots:{default(){var{showErrorStatus:e,dragToUpload:t,dragSort:o,dragPlaceholder:i}=T,{isActivated:l,isDragMove:a,isDragUploadStatus:u,dragIndex:n}=B;let r=B.fileList;var d=P.value,s=D.moreContent||D["more-content"],p={};return t&&-1===n&&(p.onDragover=ue,p.onDragleave=ae,p.onDrop=re),(0,_vue.h)("div",Object.assign({ref:_,class:["vxe-upload--more-popup",{"is--readonly":v,"is--disabled":d,"is--active":l,"show--error":e,"is--drag":u}]},p),s?(0,_vn.getSlotVNs)(s({options:r})):[g?o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(a?"":"-disabled"),tag:"div",class:"vxe-upload--image-more-list"},{default:()=>b(r,!0).concat(I(!0))}):(0,_vue.h)("div",{class:"vxe-upload--image-more-list"},b(r,!0).concat(I(!0))):(0,_vue.h)("div",{class:"vxe-upload--file-more-list"},[y(!0),o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(a?"":"-disabled"),tag:"div",class:"vxe-upload--file-list"},{default:()=>w(r,!1)}):(0,_vue.h)("div",{class:"vxe-upload--file-list"},w(r,!0))]),o?(0,_vue.h)("div",{ref:f,class:"vxe-upload--drag-line"}):(0,_ui.renderEmptyElement)(O),u?(0,_vue.h)("div",{class:"vxe-upload--drag-placeholder"},i||(0,_ui.getI18n)("vxe.upload.dragPlaceholder")):(0,_ui.renderEmptyElement)(O)])}},onShow(){B.showMorePopup=!0},onHide({$event:e}){B.showMorePopup=!1,e&&j("more-visible",{visible:!1},e)}}),e)&&j("more-visible",{visible:!0},e)},se=(e,t,o)=>{var i,l=B.showMorePopup,a=m.value,u=_.value,u=l?u:a;u&&(a=u.getBoundingClientRect(),u=c.value,i=f.value,l=l?i:u)&&(i=t.getBoundingClientRect(),l.style.display="block",l.style.top=Math.max(1,i.y-a.y)+"px",l.style.left=Math.max(1,i.x-a.x)+"px",l.style.height=i.height+"px",l.style.width=i.width-1+"px",l.setAttribute("drag-pos",o))},pe=()=>{var e=c.value,t=f.value;e&&(e.style.display=""),t&&(t.style.display="")},ve=e=>{e.stopPropagation(),e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0);let t=e.currentTarget;e=t.parentElement,e=_xeUtils.default.findIndexOf(Array.from(e.children),e=>t===e);B.isDragMove=!0,B.dragIndex=e,setTimeout(()=>{B.isDragMove=!1},500)},ge=o=>{o.stopPropagation(),o.preventDefault();var i=B.dragIndex;if(-1!==i){var l=h.value;let t=o.currentTarget;var a=t.parentElement,a=_xeUtils.default.findIndexOf(Array.from(a.children),e=>t===e);let e="";e=l?o.clientX-t.getBoundingClientRect().x<t.clientWidth/2?"left":"right":o.clientY-t.getBoundingClientRect().y<t.clientHeight/2?"top":"bottom",i===a?se(o,t,e):(se(o,t,e),r.prevDragIndex=a,r.prevDragPos=e)}},me=e=>{var{fileList:t,dragIndex:o}=B,{prevDragIndex:i,prevDragPos:l}=r,a="bottom"===l||"right"===l?1:0,u=t[o];let n=t[i];u&&n&&(t.splice(o,1),i=_xeUtils.default.findIndexOf(t,e=>n===e)+a,t.splice(i,0,u),j("sort-dragend",{oldItem:u,newItem:n,dragPos:l,offsetIndex:a,_index:{newIndex:i,oldIndex:o}},e)),pe(),B.dragIndex=-1},_e=e=>{l&&e.stopPropagation(),B.isActivated=!0},ce=e=>{var t=T.pasteToUpload,o=B.isActivated;o&&t&&(o=e.clipboardData||e.originalEvent.clipboardData)&&(t=o.items,t)&&(o=de(t)).length&&(e.preventDefault(),ne(e,o))},fe=e=>{var t=m.value,o=_.value;let i=(0,_dom.getEventTargetNode)(e,t).flag;!i&&o&&(o=(t=o.parentElement||o)&&t.parentElement,i=(0,_dom.getEventTargetNode)(e,o).flag),B.isActivated=i},he=()=>{B.isActivated=!1},xe=o=>{var e=B.fileList;let i=M.value,l=[];return _xeUtils.default.lastEach(e,(t,e)=>{l.push(q(o,t,e).then(e=>({url:t[i],status:e})))}),Promise.all(l)},we=(o,e)=>{let i=B.fileList,l=M.value;e=_xeUtils.default.isArray(e)?e:[e];let a=[];return e.forEach(e=>{if(e){let t=_xeUtils.default.isString(e)?e:e[l];e=_xeUtils.default.findIndexOf(i,e=>e[l]===t);-1<e&&a.push(q(o,i[e],e).then(e=>({url:t,status:e})))}}),Promise.all(a)};t={dispatchEvent:j,choose(){return v(null)},clear(){return xe(null)},clearByEvent(e){return xe(e)},getPendingFiles(){let{fileList:e,fileCacheMaps:t}=B,o=[];return e.forEach(e=>{e=N(e),e=t[e];e&&"pending"===e.status&&o.push(e.file)}),o},submit(i){var e=T.maxSimultaneousUploads,e=_xeUtils.default.toNumber(e||1)||1;let{fileList:t,fileCacheMaps:l}=B,o=t.filter(e=>{e=N(e),e=l[e];return e&&("pending"===e.status||i&&"error"===e.status)}),a=e=>{var t=N(e),t=l[t];if(t){var o=t.file;if(o&&("pending"===t.status||i&&"error"===t.status))return t.loading=!0,t.percent=0,$(e,o).then(u)}return u()},u=()=>{var e;return o.length?(e=o[0],o.splice(0,1),a(e).then(u)):Promise.resolve()};return Promise.all(o.splice(0,e).map(a)).then(()=>{})},getMoreVisible(){return B.showMorePopup},openMore(){return x({$event:new Event("click")}),(0,_vue.nextTick)()},openMoreByEvent(e){return x({$event:e}),(0,_vue.nextTick)()},closeMore(){return _ui.VxeUI.modal&&_ui.VxeUI.modal.close(r.moreId),(0,_vue.nextTick)()},remove(e){return we(null,e)},removeByEvent(e,t){return we(e,t)}},e={removeFileEvent:q};Object.assign(O,t,e);let w=(e,r)=>{let{showRemoveButton:d,showDownloadButton:s,showProgress:p,progressText:v,showPreview:g,showErrorStatus:m,dragSort:_,autoSubmit:c,showSubmitButton:f}=T,{fileList:h,fileCacheMaps:x}=B,w=P.value,y=L.value,b=V.value,I=F.value,U=D.option,C=D.action,E=D.corner,M=D.name,S={};return _&&1<e.length&&(S.onDragstart=ve,S.onDragover=ge,S.onDragend=me),e.map((i,t)=>{var e=N(i),o=x[e];let l=!1,a=!1,u=!1;var n=""+(i[b]||"");return o&&(l=o.loading,a="error"===o.status,u="pending"===o.status),(0,_vue.h)("div",Object.assign({key:_?e:t,class:["vxe-upload--file-item",{"is--preview":g,"is--loading":l,"is--pending":u,"is--error":a}],fileid:e,draggable:!!_||null},S),U?(0,_vn.getSlotVNs)(U({option:i,isMoreView:r,options:h})):[(0,_vue.h)("div",{class:"vxe-upload--file-item-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)()["UPLOAD_FILE_TYPE_"+(""+i[I]).toLocaleUpperCase()]||(0,_ui.getIcon)().UPLOAD_FILE_TYPE_DEFAULT})]),(0,_vue.h)("div",{class:"vxe-upload--file-item-name",title:n,onClick(e){var t,o;l||a||(t=i,o=T.previewMethod||(0,_ui.getConfig)().upload.previewMethod,T.showPreview&&(o?o({$upload:O,option:t}):te(t)))}},M?(0,_vn.getSlotVNs)(M({option:i,isMoreView:r,options:h})):n),l?(0,_vue.h)("div",{class:"vxe-upload--file-item-loading-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_LOADING})]):(0,_ui.renderEmptyElement)(O),p&&l&&o?(0,_vue.h)("div",{class:"vxe-upload--file-item-loading-text"},v?_xeUtils.default.toFormatString(""+(_xeUtils.default.isFunction(v)?v({}):v),{percent:o.percent}):(0,_ui.getI18n)("vxe.upload.uploadProgress",[o.percent])):(0,_ui.renderEmptyElement)(O),!l&&(a&&m||u&&f&&!c)?(0,_vue.h)("div",{class:"vxe-upload--file-item-rebtn"},[(0,_vue.h)(_button.default,{icon:a?(0,_ui.getIcon)().UPLOAD_IMAGE_RE_UPLOAD:(0,_ui.getIcon)().UPLOAD_IMAGE_UPLOAD,mode:"text",status:"primary",content:a?(0,_ui.getI18n)("vxe.upload.reUpload"):(0,_ui.getI18n)("vxe.upload.manualUpload"),onClick(){oe(i)}})]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--file-item-btn-wrapper"},C?(0,_vn.getSlotVNs)(C({option:i,isMoreView:r,options:h,readonly:y})):[E?(0,_vue.h)("div",{class:"vxe-upload--file-item-action"},(0,_vn.getSlotVNs)(E({option:i,isMoreView:r,options:h,readonly:y}))):(0,_ui.renderEmptyElement)(O),!s||l||u?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-item-download-btn",onClick(e){((t,o)=>{var e=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;let i=T.downloadMethod||(0,_ui.getConfig)().upload.downloadMethod;Promise.resolve(!e||e({$upload:O,option:o})).then(e=>{e?i?Promise.resolve(i({$upload:O,option:o})).then(()=>{le(t,o)}).catch(e=>e):le(t,o):j("download-fail",{option:o},t)})})(e,i)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_FILE_DOWNLOAD})]),!d||y||w||l?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-item-remove-btn",onClick(e){q(e,i,t)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_FILE_REMOVE})])])])})},y=e=>{var{showUploadButton:t,buttonText:o,buttonIcon:i,showButtonText:l,showButtonIcon:a,autoHiddenButton:u}=T,n=B.fileList,r=P.value,d=L.value,s=K.value,p=J.value,v=X.value,g=D.default,m=D.tip||D.hint;return d||!t?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-action"},[u&&v?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--file-action-btn",onClick:ie},g?(0,_vn.getSlotVNs)(g({isMoreView:e,options:n,$upload:O})):[(0,_vue.h)(_button.default,{class:"vxe-upload--file-action-button",content:e||l?o?""+(_xeUtils.default.isFunction(o)?o({}):o):(0,_ui.getI18n)("vxe.upload.fileBtnText"):"",icon:a?i||(0,_ui.getIcon)().UPLOAD_FILE_ADD:"",disabled:r})]),s&&(p||m)?(0,_vue.h)("div",{class:"vxe-upload--file-action-tip"},m?(0,_vn.getSlotVNs)(m({isMoreView:e,options:n,$upload:O})):""+p):(0,_ui.renderEmptyElement)(O)])},b=(e,n)=>{let{showRemoveButton:r,showProgress:d,progressText:s,showPreview:p,showErrorStatus:v,dragSort:g,autoSubmit:m,showSubmitButton:_}=T,{fileList:c,fileCacheMaps:f}=B,h=P.value,x=L.value,w=u.value,y=Z.value,b=D.option,I=D.action,U=D.corner,C={onMousedown:_e};return g&&1<e.length&&(C.onDragstart=ve,C.onDragover=ge,C.onDragend=me),e.map((t,o)=>{var e=N(t),i=f[e];let l=!1,a=!1,u=!1;return i&&(l=i.loading,a="error"===i.status,u="pending"===i.status),(0,_vue.h)("div",Object.assign({key:g?e:o,class:["vxe-upload--image-item",{"is--preview":p,"is--circle":w.circle,"is--loading":l,"is--pending":u,"is--error":a}],fileid:e,draggable:!!g||null},C),b?(0,_vn.getSlotVNs)(b({option:t,isMoreView:n,options:c})):[(0,_vue.h)("div",{class:"vxe-upload--image-item-box",style:n?null:y,onClick(e){l||a||((e,t)=>{var o=T.showDownloadButton;let i=B.fileList;var l=Q.value,a=T.previewMethod||(0,_ui.getConfig)().upload.previewMethod;let u=T.beforeDownloadMethod||(0,_ui.getConfig)().upload.beforeDownloadMethod;T.showPreview&&(a?a({$upload:O,option:e}):_ui.VxeUI.previewImage&&_ui.VxeUI.previewImage(Object.assign(Object.assign({},l),{urlList:i.map(e=>R(e)),activeIndex:t,showDownloadButton:o,beforeDownloadMethod:u?({index:e})=>u({$upload:O,option:i[e]}):void 0})))})(t,o)}},[l&&i?(0,_vue.h)("div",{class:"vxe-upload--image-item-loading"},[(0,_vue.h)("div",{class:"vxe-upload--image-item-loading-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_LOADING})]),d?(0,_vue.h)("div",{class:"vxe-upload--image-item-loading-text"},s?_xeUtils.default.toFormatString(""+(_xeUtils.default.isFunction(s)?s({}):s),{percent:i.percent}):(0,_ui.getI18n)("vxe.upload.uploadProgress",[i.percent])):(0,_ui.renderEmptyElement)(O)]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--image-item-img-wrapper",title:(0,_ui.getI18n)("vxe.upload.viewItemTitle")},[(0,_vue.h)("img",{class:"vxe-upload--image-item-img",src:(e=t,(i=T.getThumbnailUrlMethod||(0,_ui.getConfig)().upload.getThumbnailUrlMethod)?i({$upload:O,option:e}):R(e))})]),!l&&(a&&v||u&&_&&!m)?(0,_vue.h)("div",{class:"vxe-upload--image-item-rebtn"},[(0,_vue.h)(_button.default,{icon:a?(0,_ui.getIcon)().UPLOAD_IMAGE_RE_UPLOAD:(0,_ui.getIcon)().UPLOAD_IMAGE_UPLOAD,mode:"text",status:"primary",content:a?(0,_ui.getI18n)("vxe.upload.reUpload"):(0,_ui.getI18n)("vxe.upload.manualUpload"),onClick(){oe(t)}})]):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-upload--image-item-btn-wrapper",onClick(e){e.stopPropagation()}},I?(0,_vn.getSlotVNs)(I({option:t,isMoreView:n,options:c,readonly:x})):[U?(0,_vue.h)("div",{class:"vxe-upload--file-item-action"},(0,_vn.getSlotVNs)(U({option:t,isMoreView:n,options:c,readonly:x}))):(0,_ui.renderEmptyElement)(O),!r||x||h||l?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-upload--image-item-remove-btn",onClick(e){e.stopPropagation(),q(e,t,o)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().UPLOAD_IMAGE_REMOVE})])])])])})},I=e=>{var{showUploadButton:t,buttonText:o,buttonIcon:i,showButtonText:l,showButtonIcon:a,autoHiddenButton:u}=T,n=B.fileList,r=L.value,d=K.value,s=J.value,p=X.value,v=Z.value,g=D.default,m=D.tip||D.hint;return r||!t||u&&p?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{key:"action",class:"vxe-upload--image-action"},[(0,_vue.h)("div",{class:"vxe-upload--image-action-btn",onClick:ie},g?g({isMoreView:e,options:n,$upload:O}):[(0,_vue.h)("div",{class:"vxe-upload--image-action-box",style:e?null:v},[a?(0,_vue.h)("div",{class:"vxe-upload--image-action-icon"},[(0,_vue.h)("i",{class:i||(0,_ui.getIcon)().UPLOAD_IMAGE_ADD})]):(0,_ui.renderEmptyElement)(O),e||l?(0,_vue.h)("div",{class:"vxe-upload--image-action-content"},o?""+(_xeUtils.default.isFunction(o)?o({}):o):(0,_ui.getI18n)("vxe.upload.imgBtnText")):(0,_ui.renderEmptyElement)(O),d&&(s||m)?(0,_vue.h)("div",{class:"vxe-upload--image-action-hint"},m?(0,_vn.getSlotVNs)(m({isMoreView:e,options:n,$upload:O})):""+s):(0,_ui.renderEmptyElement)(O)])])])};let o=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.modelValue?T.modelValue.length:0,()=>{o.value++}),(0,_vue.watch)(()=>T.modelValue,()=>{o.value++}),(0,_vue.watch)(o,()=>{d()}),(0,_vue.onMounted)(()=>{T.multiple&&T.singleMode&&errLog("vxe.error.errConflicts",["multiple","single-mode"]),T.imageStyle&&warnLog("vxe.error.delProp",["image-style","image-config"]),T.dragSort&&(0,_dom.initTpImg)(),_ui.globalEvents.on(O,"paste",ce),_ui.globalEvents.on(O,"click",fe),_ui.globalEvents.on(O,"blur",he)}),(0,_vue.onBeforeUnmount)(()=>{B.isDragUploadStatus=!1,_ui.globalEvents.off(O,"paste"),_ui.globalEvents.off(O,"click"),_ui.globalEvents.off(O,"blur"),_xeUtils.default.assign(B,createReactData()),_xeUtils.default.assign(r,createInternalData())}),d(),O.renderVN=()=>{var{showErrorStatus:e,dragToUpload:t,pasteToUpload:o,dragSort:i,dragPlaceholder:l}=T,{isDragUploadStatus:a,showMorePopup:u,isActivated:n,dragIndex:r}=B,d=G.value,s=P.value,p=L.value,v=h.value,g={onMousedown:_e};return t&&-1===r&&(g.onDragover=ue,g.onDragleave=ae,g.onDrop=re),(0,_vue.h)("div",Object.assign({ref:m,class:["vxe-upload",{["size--"+d]:d,"is--active":n,"is--readonly":p,"is--disabled":s,"is--paste":o,"show--error":e,"is--drag":a}]},g),[(v?()=>{var{showList:e,dragSort:t}=T;let{fileList:o,isDragMove:i}=B;var l=ee.value;let a=D.moreButton||D["more-button"],{maxCount:u,showMoreButton:n,moreButtonText:r}=l,d=o,s=0,p=!1,v=!1;return _xeUtils.default.isNumber(u)&&o.length>u&&(p=!0,v=0===u,s=o.length-u,d=o.slice(0,u)),(0,_vue.h)("div",{key:"image",class:"vxe-upload--image-wrapper"},e?[t?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(i?"":"-disabled"),tag:"div",class:"vxe-upload--image-list"},{default:()=>b(d,!1).concat([n&&s?(0,_vue.h)("div",{key:"om",class:"vxe-upload--image-over-more"},a?(0,_vn.getSlotVNs)(a({options:o})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:o}):_xeUtils.default.toFormatString(r,[o.length]):(0,_ui.getI18n)(p&&v?"vxe.upload.moreImgBtnText":"vxe.upload.moreBtnText",[o.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),I(!1)])}):(0,_vue.h)("div",{class:"vxe-upload--image-list"},b(d,!1).concat([n&&s?(0,_vue.h)("div",{class:"vxe-upload--image-over-more"},a?(0,_vn.getSlotVNs)(a({options:o})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:o}):_xeUtils.default.toFormatString(r,[o.length]):(0,_ui.getI18n)(p&&v?"vxe.upload.moreImgBtnText":"vxe.upload.moreBtnText",[o.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),I(!1)]))]:[(0,_vue.h)("div",{class:"vxe-upload--image-list"},[I(!1)])])}:()=>{var{showList:e,moreConfig:t,dragSort:o}=T,{fileList:i,isDragMove:l}=B,{maxCount:a,showMoreButton:u,layout:n,moreButtonText:r}=ee.value,n="horizontal"===n,d=D.moreButton||D["more-button"];let s=i,p=0,v=!1,g=!1;return _xeUtils.default.isNumber(a)&&i.length>a&&(v=!0,g=0===a,p=i.length-a,s=i.slice(0,a)),(0,_vue.h)("div",{key:"all",class:"vxe-upload--file-wrapper"},e?[u&&t&&n?(0,_ui.renderEmptyElement)(O):y(!0),(0,_vue.h)("div",{class:["vxe-upload--file-list-wrapper",{"is--horizontal":n}]},[s.length?o?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-upload--drag-list"+(l?"":"-disabled"),tag:"div",class:"vxe-upload--file-list"},{default:()=>w(s,!1)}):(0,_vue.h)("div",{class:"vxe-upload--file-list"},w(s,!1)):(0,_ui.renderEmptyElement)(O),u&&p?(0,_vue.h)("div",{class:"vxe-upload--file-over-more"},d?(0,_vn.getSlotVNs)(d({options:i})):[(0,_vue.h)(_button.default,{mode:"text",content:r?_xeUtils.default.isFunction(r)?r({$upload:O,options:i}):_xeUtils.default.toFormatString(r,[i.length]):(0,_ui.getI18n)(v&&g?"vxe.upload.moreFileBtnText":"vxe.upload.moreBtnText",[i.length]),status:"primary",onClick:x})]):(0,_ui.renderEmptyElement)(O),u&&t&&n?y(!1):(0,_ui.renderEmptyElement)(O)])]:[y(!1)])})(),i?(0,_vue.h)("div",{ref:c,class:"vxe-upload--drag-line"}):(0,_ui.renderEmptyElement)(O),a&&!u?(0,_vue.h)("div",{class:"vxe-upload--drag-placeholder"},l||(0,_ui.getI18n)("vxe.upload.dragPlaceholder")):(0,_ui.renderEmptyElement)(O)])},O},render(){return this.renderVN()}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-pc-ui",
3
- "version": "4.15.2",
3
+ "version": "4.15.3",
4
4
  "description": "A vue based PC component library",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -2,13 +2,15 @@ import { ref, h, reactive, PropType, watch, onMounted, nextTick, computed, onBef
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, createEvent, useSize, renderEmptyElement } from '../../ui'
5
- import { errLog } from '../../ui/src/log'
5
+ import { createComponentLog } from '../../ui/src/log'
6
6
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
7
  import { toCssUnit } from '../../ui/src/dom'
8
8
  import VxeButtonComponent from '../../button'
9
9
 
10
10
  import type { BacktopInternalData, BacktopReactData, VxeBacktopPropTypes, BacktopPrivateRef, VxeBacktopEmits, VxeComponentStyleType, VxeBacktopPrivateComputed, BacktopMethods, BacktopPrivateMethods, VxeBacktopConstructor, VxeBacktopPrivateMethods, ValueOf } from '../../../types'
11
11
 
12
+ const { errLog } = createComponentLog('backtop')
13
+
12
14
  function createInternalData (): BacktopInternalData {
13
15
  return {
14
16
  targetEl: null
@@ -5,12 +5,14 @@ import { getConfig, globalEvents, getIcon, createEvent, useSize, renderer, usePe
5
5
  import { getEventTargetNode, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getFuncText, getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
- import { warnLog } from '../../ui/src/log'
8
+ import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeTooltipComponent from '../../tooltip'
10
10
 
11
11
  import type { VxeButtonConstructor, VxeButtonPropTypes, VxeButtonEmits, ButtonReactData, ButtonMethods, VxeButtonDefines, ButtonPrivateRef, ButtonInternalData, VxeButtonGroupConstructor, VxeButtonGroupPrivateMethods, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, ValueOf, VxeTreeConstructor, VxeTreePrivateMethods } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
13
13
 
14
+ const { warnLog } = createComponentLog('button')
15
+
14
16
  const VxeButtonComponent = defineVxeComponent({
15
17
  name: 'VxeButton',
16
18
  props: {
@@ -817,7 +819,7 @@ const VxeButtonComponent = defineVxeComponent({
817
819
 
818
820
  onMounted(() => {
819
821
  if (props.type === 'text') {
820
- warnLog('vxe.error.delProp', ['[button] type=text', 'mode=text'])
822
+ warnLog('vxe.error.delProp', ['type=text', 'mode=text'])
821
823
  }
822
824
 
823
825
  globalEvents.on($xeButton, 'mousewheel', handleGlobalMousewheelEvent)
@@ -4,12 +4,14 @@ import { VxeUI, createEvent, useSize, renderEmptyElement } from '../../ui'
4
4
  import { getDateQuarter } from '../../date-panel/src/util'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
6
  import { isEnableConf } from '../../ui/src/utils'
7
- import { errLog } from '../../ui/src/log'
7
+ import { createComponentLog } from '../../ui/src/log'
8
8
  import VxeButtonComponent from '../../button/src/button'
9
9
  import XEUtils from 'xe-utils'
10
10
 
11
11
  import type { VxeCalendarConstructor, VxeCalendarEmits, CalendarInternalData, CalendarReactData, CalendarMethods, VxeCalendarPropTypes, CalendarPrivateRef, VxeDatePanelDefines, ValueOf } from '../../../types'
12
12
 
13
+ const { errLog } = createComponentLog('calendar')
14
+
13
15
  const { menus, getConfig, getI18n } = VxeUI
14
16
 
15
17
  export default defineVxeComponent({
@@ -4,7 +4,7 @@ import { getConfig, getI18n, getIcon, globalEvents, createEvent, useSize, render
4
4
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
5
5
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
6
6
  import { enNodeValue, deNodeValue } from './util'
7
- import { errLog } from '../../ui/src/log'
7
+ import { createComponentLog } from '../../ui/src/log'
8
8
  import XEUtils from 'xe-utils'
9
9
  import VxeListComponent from '../../list/src/list'
10
10
  import VxeInputComponent from '../../input/src/input'
@@ -13,6 +13,8 @@ import VxeButtonComponent from '../../button/src/button'
13
13
  import type { CascaderReactData, VxeCascaderEmits, CascaderInternalData, VxeButtonEvents, ValueOf, VxeComponentStyleType, VxeCascaderDefines, CascaderPrivateRef, CascaderPrivateMethods, CascaderMethods, VxeCascaderPrivateComputed, VxeCascaderPropTypes, VxeCascaderConstructor, VxeListSlotTypes, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeCascaderPrivateMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeInputConstructor, VxeModalConstructor, VxeModalMethods } from '../../../types'
14
14
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
15
15
 
16
+ const { errLog } = createComponentLog('cascader')
17
+
16
18
  /**
17
19
  * 生成节点的唯一主键
18
20
  */
@@ -6,6 +6,10 @@ import VxeCheckboxComponent from './checkbox'
6
6
 
7
7
  import type { VxeCheckboxGroupConstructor, CheckboxGroupInternalData, VxeCheckboxGroupEmits, ValueOf, CheckboxGroupReactData, VxeCheckboxGroupPrivateMethods, CheckboxGroupPrivateMethods, CheckboxGroupPrivateComputed, CheckboxGroupMethods, VxeCheckboxGroupPropTypes, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines } from '../../../types'
8
8
 
9
+ function createReactData (): CheckboxGroupReactData {
10
+ return {}
11
+ }
12
+
9
13
  function createInternalData (): CheckboxGroupInternalData {
10
14
  return {
11
15
  // isLoaded: false
@@ -48,8 +52,7 @@ export default defineVxeComponent({
48
52
 
49
53
  const xID = XEUtils.uniqueId()
50
54
 
51
- const reactData: CheckboxGroupReactData = reactive({
52
- })
55
+ const reactData: CheckboxGroupReactData = reactive(createReactData())
53
56
 
54
57
  const internalData = createInternalData()
55
58
 
@@ -231,6 +234,7 @@ export default defineVxeComponent({
231
234
  })
232
235
 
233
236
  onUnmounted(() => {
237
+ XEUtils.assign(reactData, createReactData())
234
238
  XEUtils.assign(internalData, createInternalData())
235
239
  })
236
240
 
@@ -2,6 +2,19 @@ import XEUtils from 'xe-utils'
2
2
 
3
3
  import type { VxeDatePanelPropTypes } from '../../../types'
4
4
 
5
+ export function getChunkDefaultNum (selectKey: string) {
6
+ const currDate = new Date()
7
+ switch (selectKey) {
8
+ case 'y': return currDate.getFullYear()
9
+ case 'M': return currDate.getMonth() + 1
10
+ case 'd': return currDate.getDate()
11
+ case 'H': return currDate.getHours()
12
+ case 'm': return currDate.getMinutes()
13
+ case 's': return currDate.getSeconds()
14
+ }
15
+ return 0
16
+ }
17
+
5
18
  export function hasTimestampValueType (valueFormat?: string) {
6
19
  return valueFormat === 'timestamp'
7
20
  }
@@ -25,19 +38,6 @@ export function handleValueFormat (type: string, valueFormat?: string) {
25
38
  return 'yyyy-MM-dd'
26
39
  }
27
40
 
28
- export function handleInputFormat (type: string, inputFormat?: string) {
29
- if (inputFormat) {
30
- return inputFormat
31
- }
32
- if (type === 'time') {
33
- return 'HH:mm:ss'
34
- }
35
- if (type === 'datetime') {
36
- return 'yyyy-MM-dd HH:mm:ss'
37
- }
38
- return 'yyyy-MM-dd'
39
- }
40
-
41
41
  export function toStringTimeDate (str: string | number | Date | null | undefined) {
42
42
  const rest = new Date(2e3, 0, 1)
43
43
  if (str) {
@@ -80,9 +80,9 @@ export function getDateQuarter (date: Date) {
80
80
  return 4
81
81
  }
82
82
 
83
- export const parseDateValue = (val: string | number | Date | null | undefined, type: VxeDatePanelPropTypes.Type, options: {
83
+ export function parseDateValue (val: string | number | Date | null | undefined, type: VxeDatePanelPropTypes.Type, options: {
84
84
  valueFormat: string
85
- }) => {
85
+ }) {
86
86
  const { valueFormat } = options
87
87
  if (val) {
88
88
  if (type === 'time') {
@@ -252,6 +252,18 @@ export function getRangeDateByCode (code: 'last1' | 'last3' | 'last7' | 'last30'
252
252
  /**
253
253
  * 判断周的年份是否跨年
254
254
  */
255
- const checkWeekOfsetYear = (W: number | string, M: number | string) => {
255
+ function checkWeekOfsetYear (W: number | string, M: number | string) {
256
256
  return `${W}` === '1' && `${M}` === '12'
257
257
  }
258
+
259
+ export function isAllSameChar (str: string, char: string) {
260
+ if (str.length === 0) {
261
+ return false
262
+ }
263
+ for (let i = 0; i < str.length; i++) {
264
+ if (str[i] !== char) {
265
+ return false
266
+ }
267
+ }
268
+ return true
269
+ }