From 4f57d1c5d28fe9d38206765518324ee9f2dee3f2 Mon Sep 17 00:00:00 2001 From: MarSeventh <1193267292@qq.com> Date: Thu, 8 Jan 2026 12:22:40 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E4=B8=8A=E4=BC=A0=E9=A1=B5=E9=9D=A2logo=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E9=93=BE=E6=8E=A5;=E7=AE=A1=E7=90=86=E7=AB=AF?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=B3=E8=BD=AC=E5=88=B0=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E9=A1=B5=E7=A0=81;=E4=B8=80=E4=BA=9B=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/34.6bd21305.css.gz | Bin 14725 -> 0 bytes css/{34.6bd21305.css => 733.e9cbf0d4.css} | 2 +- css/733.e9cbf0d4.css.gz | Bin 0 -> 14793 bytes index.html | 2 +- index.html.gz | Bin 512 -> 511 bytes js/34.71e48dd0.js | 2 -- js/34.71e48dd0.js.gz | Bin 20606 -> 0 bytes js/34.71e48dd0.js.map | 1 - js/34.71e48dd0.js.map.gz | Bin 53169 -> 0 bytes js/733.5ac461f0.js | 2 ++ js/733.5ac461f0.js.gz | Bin 0 -> 20778 bytes js/733.5ac461f0.js.map | 1 + js/733.5ac461f0.js.map.gz | Bin 0 -> 53629 bytes js/{app.610acc76.js => app.1c78aab3.js} | 4 ++-- js/app.1c78aab3.js.gz | Bin 0 -> 4920 bytes js/{app.610acc76.js.map => app.1c78aab3.js.map} | 2 +- js/app.1c78aab3.js.map.gz | Bin 0 -> 15305 bytes js/app.610acc76.js.gz | Bin 4919 -> 0 bytes js/app.610acc76.js.map.gz | Bin 15306 -> 0 bytes 19 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 css/34.6bd21305.css.gz rename css/{34.6bd21305.css => 733.e9cbf0d4.css} (61%) create mode 100644 css/733.e9cbf0d4.css.gz delete mode 100644 js/34.71e48dd0.js delete mode 100644 js/34.71e48dd0.js.gz delete mode 100644 js/34.71e48dd0.js.map delete mode 100644 js/34.71e48dd0.js.map.gz create mode 100644 js/733.5ac461f0.js create mode 100644 js/733.5ac461f0.js.gz create mode 100644 js/733.5ac461f0.js.map create mode 100644 js/733.5ac461f0.js.map.gz rename js/{app.610acc76.js => app.1c78aab3.js} (67%) create mode 100644 js/app.1c78aab3.js.gz rename js/{app.610acc76.js.map => app.1c78aab3.js.map} (71%) create mode 100644 js/app.1c78aab3.js.map.gz delete mode 100644 js/app.610acc76.js.gz delete mode 100644 js/app.610acc76.js.map.gz diff --git a/css/34.6bd21305.css.gz b/css/34.6bd21305.css.gz deleted file mode 100644 index 457bbe4b871f43e4b4edcaedcf955068ad189128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14725 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 T1CLpLefju*4Po2}^Me5Z2FsQ4 diff --git a/css/34.6bd21305.css b/css/733.e9cbf0d4.css similarity index 61% rename from css/34.6bd21305.css rename to css/733.e9cbf0d4.css index 1ded5a7..5af9c6a 100644 --- a/css/34.6bd21305.css +++ b/css/733.e9cbf0d4.css @@ -1 +1 @@ -.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.history-container[data-v-3d294b36]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--bg-color);z-index:2000;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);backdrop-filter:blur(20px);background:hsla(0,0%,100%,.8);color:var(--upload-text-color)}.dark .history-container[data-v-3d294b36]{background:rgba(30,30,30,.9);color:var(--upload-text-color)}.history-container.active[data-v-3d294b36]{transform:translateY(0)}.history-header[data-v-3d294b36]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.1)}.dark .history-header[data-v-3d294b36]{border-bottom:1px solid hsla(0,0%,100%,.1)}.header-left[data-v-3d294b36]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-3d294b36]{margin:0;font-size:24px;color:var(--upload-header-color)}.record-count[data-v-3d294b36]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-3d294b36]{display:flex;gap:10px}.history-content[data-v-3d294b36]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-3d294b36]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-3d294b36]{background:var(--upload-list-card-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--upload-list-card-box-shadow);transition:transform .3s ease,box-shadow .3s ease;border:var(--upload-list-card-border)}.grid-item[data-v-3d294b36]:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.1)}.dark .grid-item[data-v-3d294b36]:hover{box-shadow:0 8px 20px hsla(0,0%,100%,.1)}.grid-preview[data-v-3d294b36]{height:160px;position:relative;background:rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;overflow:hidden}.dark .grid-preview[data-v-3d294b36]{background:hsla(0,0%,100%,.05)}.grid-preview img[data-v-3d294b36],.grid-preview video[data-v-3d294b36]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-3d294b36]{font-size:48px;color:var(--upload-list-file-icon-color)}.grid-overlay[data-v-3d294b36]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-3d294b36]{opacity:1}.grid-actions[data-v-3d294b36]{display:flex;gap:15px}.grid-info[data-v-3d294b36]{padding:10px}.file-name[data-v-3d294b36]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;color:var(--upload-text-color)}.upload-time[data-v-3d294b36]{font-size:12px;color:var(--upload-text-color);opacity:.7}.list-view[data-v-3d294b36]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-3d294b36]{display:flex;align-items:center;padding:10px;background:var(--upload-list-card-bg-color);border-radius:8px;border:var(--upload-list-item-border);transition:background .2s ease}.list-item[data-v-3d294b36]:hover{background:hsla(0,0%,100%,.8)}.dark .list-item[data-v-3d294b36]:hover{background:hsla(0,0%,100%,.1)}.list-preview[data-v-3d294b36]{width:50px;height:50px;border-radius:6px;overflow:hidden;margin-right:15px;background:rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dark .list-preview[data-v-3d294b36]{background:hsla(0,0%,100%,.05)}.list-preview img[data-v-3d294b36],.list-preview video[data-v-3d294b36]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-3d294b36]{font-size:24px;color:var(--upload-list-file-icon-color)}.list-info[data-v-3d294b36]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-3d294b36]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.list-meta[data-v-3d294b36]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-3d294b36]{display:flex;gap:5px}.empty-state[data-v-3d294b36]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.6}.empty-icon[data-v-3d294b36]{font-size:64px;margin-bottom:20px}.history-content[data-v-3d294b36]::-webkit-scrollbar{width:8px}.history-content[data-v-3d294b36]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-3d294b36]::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:4px}.history-content[data-v-3d294b36]::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.dark .history-content[data-v-3d294b36]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2)}.dark .history-content[data-v-3d294b36]::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.action-btn-view[data-v-3d294b36]{background-color:#f5f7fa;border-color:#dcdfe6;color:#606266}.action-btn-view[data-v-3d294b36]:hover{background-color:#e6e8eb;color:#409eff}.dark .action-btn-view[data-v-3d294b36]{background-color:hsla(0,0%,100%,.4);border-color:transparent;color:#fff}.dark .action-btn-view[data-v-3d294b36]:hover{background-color:hsla(0,0%,100%,.8)}.history-group[data-v-3d294b36]{position:relative;padding-left:30px;border-left:2px solid rgba(0,0,0,.1);margin-left:10px;padding-bottom:30px}.dark .history-group[data-v-3d294b36]{border-left:2px solid hsla(0,0%,100%,.1)}.history-group[data-v-3d294b36]:last-child{border-left:2px solid transparent}.timeline-header[data-v-3d294b36]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-3d294b36]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;border:3px solid var(--theme-toggle-color);background:#fff;z-index:2;box-sizing:border-box}.dark .timeline-dot[data-v-3d294b36]{background:#1a1a1a}.date-label[data-v-3d294b36]{font-size:20px;font-weight:700;color:var(--upload-header-color)}.page-footer[data-v-08acbaa9]{display:flex;justify-content:center;align-items:center;width:100vw;color:var(--page-footer-text-color);font-size:large;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.page-footer[data-v-08acbaa9]{font-size:small}}.footer-name[data-v-08acbaa9]{color:var(--page-footer-name-color);font-weight:700;text-decoration:none;position:relative;transition:all .3s ease}.footer-name[data-v-08acbaa9]:after{content:"";position:absolute;width:0;height:2px;bottom:-2px;left:0;background-color:var(--page-footer-name-color);transition:width .3s ease-in-out}.footer-name[data-v-08acbaa9]:hover:after{width:100%}.footer-link-icon[data-v-08acbaa9]{color:var(--page-footer-name-color);margin-left:5px;transition:transform .3s ease-in-out}.footer-link-icon[data-v-08acbaa9]:hover{transform:scale(1.2) rotate(-12deg)}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group--horizontal{display:inline-block;vertical-align:middle}.el-button-group--horizontal:after,.el-button-group--horizontal:before{content:"";display:table}.el-button-group--horizontal:after{clear:both}.el-button-group--horizontal>.el-button{float:left;position:relative}.el-button-group--horizontal>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group--horizontal>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group--horizontal>.el-button:not(:last-child){margin-right:-1px}.el-button-group--horizontal .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0}.el-button-group--vertical{align-items:stretch;display:inline-flex;flex-direction:column}.el-button-group--vertical>.el-button{margin-top:-1px}.el-button-group--vertical>.el-button:first-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-button-group--vertical>.el-button:last-child{border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical>.el-dropdown{margin-top:-1px}.el-button-group--vertical>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical .el-button--primary:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);line-height:1;position:relative;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper,.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:0}.el-dropdown .el-dropdown__caret-button{align-items:center;border-left:none;display:inline-flex;justify-content:center;padding-left:0;padding-right:0;width:32px}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{background:var(--el-overlay-color-lighter);bottom:-1px;content:"";display:block;left:0;position:absolute;top:-1px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;left:0;list-style:none;margin:0;padding:5px 0;position:relative;top:0;z-index:var(--el-dropdown-menu-index)}.el-dropdown-menu__item{align-items:center;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:var(--el-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:5px 16px;white-space:nowrap}.el-dropdown-menu__item:not(.is-disabled):focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{font-size:14px;line-height:22px;padding:7px 20px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:12px;line-height:20px;padding:2px 12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}@property --border-angle{syntax:"";initial-value:0deg;inherits:false}@keyframes borderRotate-c5a15344{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-c5a15344],.upload-list-card[data-v-c5a15344]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-c5a15344]{width:55vw;height:7vh;margin-top:10px;border-radius:15px;background-color:var(--upload-list-card-bg-color);backdrop-filter:blur(10px);border:var(--upload-list-card-border);box-shadow:var(--upload-list-card-box-shadow)!important;transition:height .3s ease;overflow:hidden}.upload-list-card[data-v-c5a15344] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-c5a15344]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-c5a15344],.upload-list-container[data-v-c5a15344]{width:70vw}}.upload-list-card.upload-list-busy[data-v-c5a15344],.upload-list-container.upload-list-busy[data-v-c5a15344]{height:40vh}.upload-list-card.is-uploading[data-v-c5a15344]{border:1px solid var(--el-upload-dragger-uniform-color,#409eff)!important;box-shadow:0 0 20px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 30%,transparent),0 0 40px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 15%,transparent),inset 0 0 20px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 8%,transparent)!important}.upload-list-item-content[data-v-c5a15344]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-url-row[data-v-c5a15344]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-c5a15344]:last-child{margin-bottom:0}.upload-list-item-url[data-v-c5a15344]{display:flex;flex-direction:column}@media (max-width:768px){.upload-list-item-content[data-v-c5a15344]{margin-left:2px}.upload-list-item-url-row[data-v-c5a15344]{width:42vw;flex-direction:column;gap:6px}}.upload-card[data-v-c5a15344]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-c5a15344]{width:70vw}}.upload-card-busy[data-v-c5a15344] .el-upload-dragger{height:17vh}[data-v-c5a15344] .el-upload-dragger{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);opacity:.7;background-color:var(--el-upload-dragger-bg-color);backdrop-filter:blur(10px);transition:all .3s ease}[data-v-c5a15344] .el-upload:focus .el-upload-dragger{border-color:var(--el-upload-dragger-border-color)}[data-v-c5a15344] .el-upload-dragger.is-dragover,[data-v-c5a15344] .el-upload-dragger:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.is-uploading[data-v-c5a15344] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-c5a15344]{position:relative;background:none}.upload-card.is-uploading[data-v-c5a15344]:before{content:"";position:absolute;top:20px;left:20px;right:20px;bottom:20px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#409eff) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#409eff) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-c5a15344 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-c5a15344]{font-weight:700;font-size:medium;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}@media (max-width:768px){.el-upload__text[data-v-c5a15344]{font-size:small}}.el-upload__text.upload-list-busy[data-v-c5a15344]{font-size:small}.el-icon--upload[data-v-c5a15344]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-c5a15344]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-c5a15344]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-c5a15344]{font-size:30px}}.el-upload__tip[data-v-c5a15344]{font-size:medium;color:var(--upload-text-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.el-upload__tip[data-v-c5a15344]{font-size:small}}.paste-card[data-v-c5a15344]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);box-shadow:none;opacity:.7;background-color:var(--el-upload-dragger-bg-color);backdrop-filter:blur(10px);transition:all .3s ease;box-sizing:border-box}.paste-card[data-v-c5a15344]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-c5a15344]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-c5a15344]:before{content:"";position:absolute;inset:0;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#409eff) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#409eff) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-c5a15344 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-c5a15344] .el-card__body{padding:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-card-busy.paste-card[data-v-c5a15344]{height:17vh}.upload-card-textarea[data-v-c5a15344]{width:50vw;height:70%;border-radius:16px;background:var(--textarea-bg,linear-gradient(135deg,rgba(64,158,255,.03) 0,rgba(64,158,255,.01) 100%));backdrop-filter:blur(12px);transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box;display:flex;position:relative}.upload-card-busy .upload-card-textarea[data-v-c5a15344]{height:50%}.upload-card-textarea[data-v-c5a15344]:before{content:"";position:absolute;inset:-1px;border-radius:17px;padding:1px;background:linear-gradient(135deg,rgba(64,158,255,.3),rgba(64,158,255,.1) 50%,rgba(64,158,255,.3));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6;transition:opacity .3s ease}.upload-card-textarea[data-v-c5a15344]:hover:before{opacity:1}.upload-card-textarea[data-v-c5a15344]:focus-within:before{opacity:1;background:linear-gradient(135deg,rgba(64,158,255,.6),rgba(64,158,255,.2) 50%,rgba(64,158,255,.6))}[data-v-c5a15344] .el-textarea__inner{border-radius:16px;background:var(--textarea-inner-bg,rgba(0,0,0,.02));backdrop-filter:blur(12px);transition:all .3s cubic-bezier(.4,0,.2,1);resize:none;border:1px solid transparent;padding:16px 20px;font-size:14px;line-height:1.6;color:var(--el-text-color-primary)}[data-v-c5a15344] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-c5a15344] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-c5a15344] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(64,158,255,.03))}[data-v-c5a15344] .el-textarea__inner:focus{border-color:transparent;box-shadow:0 0 0 3px rgba(64,158,255,.15),0 4px 20px rgba(64,158,255,.1),inset 0 1px 3px rgba(0,0,0,.05);background:var(--textarea-inner-focus-bg,rgba(64,158,255,.02))}.upload-card-textarea[data-v-c5a15344] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-c5a15344] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-c5a15344] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(64,158,255,.4),rgba(64,158,255,.6));border-radius:6px;-webkit-transition:background .3s ease;transition:background .3s ease}.upload-card-textarea[data-v-c5a15344] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(64,158,255,.6),rgba(64,158,255,.8))}.paste-card-actions[data-v-c5a15344]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-c5a15344]{min-width:100px;height:42px;border-radius:14px!important;font-weight:600;font-size:15px;letter-spacing:2px;background:linear-gradient(135deg,#409eff,#66b1ff)!important;border:none!important;box-shadow:0 4px 15px rgba(64,158,255,.35),inset 0 1px 0 hsla(0,0%,100%,.2);transition:all .3s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.paste-card-upload-button[data-v-c5a15344]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.25),transparent);transition:left .6s ease}.paste-card-upload-button[data-v-c5a15344]:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px rgba(64,158,255,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.paste-card-upload-button[data-v-c5a15344]:hover:before{left:100%}.paste-card-upload-button[data-v-c5a15344]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-c5a15344]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-c5a15344]{margin-top:2%}.paste-card-method-group[data-v-c5a15344]{background:var(--paste-method-group-bg,rgba(64,158,255,.08));border-radius:14px;padding:4px;border:1px solid var(--paste-method-group-border,rgba(64,158,255,.15))}.paste-card-method-group[data-v-c5a15344] .el-radio-button__inner{transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:10px!important;border:none!important;background:transparent;font-weight:500;padding:10px 20px;color:var(--el-text-color-regular)}.paste-card-method-group[data-v-c5a15344] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-c5a15344] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-c5a15344] .el-radio-button__inner:hover{background:var(--paste-method-hover-bg,rgba(64,158,255,.12));color:var(--el-color-primary)}.paste-card-method-group[data-v-c5a15344] .el-radio-button__original-radio:checked+.el-radio-button__inner{background:linear-gradient(135deg,#409eff,#66b1ff)!important;color:#fff!important;box-shadow:0 3px 10px rgba(64,158,255,.35)}@media (max-width:768px){.paste-card[data-v-c5a15344]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-c5a15344]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-c5a15344]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-c5a15344]:before{border-radius:11px}[data-v-c5a15344] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-c5a15344]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-c5a15344]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-c5a15344]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-c5a15344] .el-radio-button__inner{padding:4px 10px;font-size:11px;border-radius:6px!important;height:26px;display:flex;align-items:center}}.upload-list-dashboard[data-v-c5a15344]{display:flex;justify-content:space-between;align-items:center;height:7vh;padding:0 15px;position:sticky;top:0;z-index:1;border-radius:15px;transition:all .3s ease}.upload-list-dashboard.list-scrolled[data-v-c5a15344]{background-color:var(--upload-list-dashboard-bg-color);box-shadow:var(--upload-list-dashboard-shadow)}.file-icon[data-v-c5a15344]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-url[data-v-c5a15344] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-c5a15344] .el-input:hover{transform:translateY(-1px)}.upload-list-item-url[data-v-c5a15344] .el-input__wrapper{border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--el-fill-color-blank);border:1px solid var(--el-border-color-lighter);overflow:hidden;position:relative;padding:0}.upload-list-item-url[data-v-c5a15344] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-c5a15344] .el-input__wrapper:hover{box-shadow:0 2px 8px rgba(0,0,0,.12);border-color:var(--el-color-primary-light-5)}.upload-list-item-url[data-v-c5a15344] .el-input__wrapper.is-focus{box-shadow:0 0 0 2px var(--el-color-primary-light-8),0 4px 12px rgba(0,0,0,.15);border-color:var(--el-color-primary)}.upload-list-item-url[data-v-c5a15344] .el-input__wrapper.is-focus:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(64,158,255,.08),transparent);animation:shimmer-c5a15344 2s infinite;z-index:0}@keyframes shimmer-c5a15344{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-c5a15344] .el-input__inner{font-size:13px;font-family:Courier New,Monaco,monospace;color:var(--el-text-color-regular);transition:all .3s ease;padding-left:12px;position:relative;z-index:1;border-radius:0 10px 10px 0}.upload-list-item-url[data-v-c5a15344] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-c5a15344] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-c5a15344] .el-input-group__prepend{background:var(--el-color-primary-light-9);color:var(--el-color-primary);font-weight:600;font-size:12px;border:none;padding:0 14px;margin:0;border-radius:9px 0 0 9px;box-shadow:none;transition:all .3s ease;letter-spacing:.5px;position:relative;z-index:1}.upload-list-item-url[data-v-c5a15344] .el-input-group__prepend:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background:var(--el-color-primary-light-7);opacity:.3;transition:all .3s ease}.upload-list-item-url[data-v-c5a15344] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-c5a15344] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-c5a15344] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff}.upload-list-item-url[data-v-c5a15344] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}.upload-list-item-url[data-v-c5a15344] .el-input.is-focus .el-input-group__prepend{animation:prependPulse-c5a15344 2s ease-in-out infinite}@keyframes prependPulse-c5a15344{0%,to{opacity:1}50%{opacity:.95}}@media (max-width:768px){.upload-list-item-url[data-v-c5a15344] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-c5a15344] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-c5a15344] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}}[data-v-c5a15344] .el-upload-dragger{position:relative;overflow:hidden}[data-v-c5a15344] .el-upload-dragger:before{background-image:radial-gradient(2px 2px at 10% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 20% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 30% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 40% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 50% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 60% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 70% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 80% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 90% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 15% 70%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:200px 200px}[data-v-c5a15344] .el-upload-dragger:after,[data-v-c5a15344] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-c5a15344] .el-upload-dragger:after{background-image:radial-gradient(3px 3px at 15% 15%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 50% 50%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 85% 85%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 35% 65%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 65% 35%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:150px 150px}.upload-card[data-v-c5a15344]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-c5a15344 60s linear infinite}.upload-card[data-v-c5a15344]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-c5a15344 40s linear infinite,starPulse-c5a15344 4s ease-in-out infinite}@keyframes starScroll-c5a15344{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-c5a15344{0%,to{opacity:.6}50%{opacity:.3}}.upload-list-item-progress[data-v-c5a15344]{margin-top:8px;width:28vw;padding:4px 8px;background:var(--progress-wrapper-bg,linear-gradient(135deg,rgba(64,158,255,.05) 0,rgba(64,158,255,.02) 100%));border-radius:12px;border:1px solid var(--progress-wrapper-border,rgba(64,158,255,.1))}.upload-list-item-progress[data-v-c5a15344] .el-progress{--el-color-primary:#409eff}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar__outer{height:10px!important;border-radius:8px;background:var(--progress-outer-bg,linear-gradient(135deg,rgba(0,0,0,.06) 0,rgba(0,0,0,.03) 100%));box-shadow:inset 0 1px 3px rgba(0,0,0,.08);overflow:hidden}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar__inner{border-radius:8px;background:linear-gradient(90deg,#409eff,#66b1ff 50%,#409eff)!important;box-shadow:0 0 12px rgba(64,158,255,.5),0 0 4px rgba(64,158,255,.3),inset 0 1px 0 hsla(0,0%,100%,.3);position:relative;overflow:hidden;transition:width .3s ease}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar__inner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);pointer-events:none}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar__inner:before{content:"";position:absolute;top:0;left:-100%;width:300%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 8px,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 16px);animation:progressStripes-c5a15344 1s linear infinite}.upload-list-item-progress[data-v-c5a15344] .el-progress--success .el-progress-bar__inner{background:linear-gradient(90deg,#67c23a,#85ce61 25%,#95d475 50%,#85ce61 75%,#67c23a)!important;background-size:200% 100%;box-shadow:0 0 12px rgba(103,194,58,.5),0 0 4px rgba(103,194,58,.3),inset 0 1px 0 hsla(0,0%,100%,.3);animation:none}.upload-list-item-progress[data-v-c5a15344] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-c5a15344] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-c5a15344] .el-progress--exception .el-progress-bar__inner{background:linear-gradient(90deg,#f56c6c,#f78989 25%,#f9a7a7 50%,#f78989 75%,#f56c6c)!important;background-size:200% 100%;box-shadow:0 0 12px hsla(0,87%,69%,.5),0 0 4px hsla(0,87%,69%,.3),inset 0 1px 0 hsla(0,0%,100%,.3);animation:progressPulse-c5a15344 1s ease-in-out infinite}.upload-list-item-progress[data-v-c5a15344] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressShine-c5a15344{0%{background-position:0 0}to{background-position:200% 0}}@keyframes progressStripes-c5a15344{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-c5a15344{0%,to{opacity:1}50%{opacity:.7}}@media (max-width:768px){.upload-list-item-progress[data-v-c5a15344]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-c5a15344] .el-progress-bar__outer{height:8px!important}}.modern-action-group[data-v-c5a15344]{display:flex;align-items:center;gap:6px;padding:4px;background:var(--modern-action-group-bg,rgba(64,158,255,.08));border-radius:14px;border:1px solid var(--modern-action-group-border,rgba(64,158,255,.15));box-shadow:0 2px 8px var(--modern-action-group-shadow,rgba(0,0,0,.06));transition:all .3s cubic-bezier(.4,0,.2,1)}.modern-action-group[data-v-c5a15344]:hover{background:var(--modern-action-group-hover-bg,rgba(64,158,255,.12));box-shadow:0 4px 16px var(--modern-action-group-hover-shadow,rgba(64,158,255,.15));transform:translateY(-1px)}.modern-action-btn[data-v-c5a15344]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:10px;background:var(--modern-action-btn-bg,linear-gradient(135deg,#409eff 0,#66b1ff 100%));color:#fff;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-size:14px;box-shadow:0 2px 6px rgba(64,158,255,.25);position:relative;overflow:hidden;outline:none!important}.modern-action-btn[data-v-c5a15344]:focus,.modern-action-btn[data-v-c5a15344]:focus-visible{outline:none!important}.modern-action-btn[data-v-c5a15344]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s ease}.modern-action-btn[data-v-c5a15344]:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(64,158,255,.4)}.modern-action-btn[data-v-c5a15344]:hover:before{left:100%}.modern-action-btn[data-v-c5a15344]:active{transform:translateY(0) scale(.98);box-shadow:0 1px 4px rgba(64,158,255,.3)}.modern-action-btn-danger[data-v-c5a15344]{background:var(--modern-action-btn-danger-bg,linear-gradient(135deg,#f56c6c 0,#f78989 100%));box-shadow:0 2px 6px hsla(0,87%,69%,.25)}.modern-action-btn-danger[data-v-c5a15344]:hover{box-shadow:0 4px 12px hsla(0,87%,69%,.4)}.modern-dropdown-item-content[data-v-c5a15344]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-c5a15344]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-item-name-wrapper[data-v-c5a15344]{display:flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--file-name-bg,linear-gradient(135deg,rgba(64,158,255,.08) 0,rgba(64,158,255,.03) 100%));border-radius:10px;margin-bottom:8px;border:1px solid var(--file-name-border,rgba(64,158,255,.12));backdrop-filter:blur(4px);transition:all .3s ease}.upload-list-item-name-wrapper[data-v-c5a15344]:hover{background:var(--file-name-hover-bg,linear-gradient(135deg,rgba(64,158,255,.12) 0,rgba(64,158,255,.06) 100%));border-color:var(--file-name-hover-border,rgba(64,158,255,.2))}.upload-list-item-name[data-v-c5a15344]{font-size:14px;font-weight:600;max-width:28vw;color:var(--el-text-color-primary);letter-spacing:.3px;text-align:center}.modern-file-action-btn[data-v-c5a15344]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:16px;position:relative;overflow:hidden;margin:4px 0}.modern-file-action-btn[data-v-c5a15344]:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.modern-file-action-btn[data-v-c5a15344]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-c5a15344]{background:var(--file-action-primary-bg,linear-gradient(145deg,#409eff 0,#53a8ff 50%,#66b1ff 100%));color:#fff;box-shadow:0 3px 10px rgba(64,158,255,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.modern-file-action-btn-primary[data-v-c5a15344]:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 6px 20px rgba(64,158,255,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.modern-file-action-btn-primary[data-v-c5a15344]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-c5a15344]{background:var(--file-action-danger-bg,linear-gradient(145deg,#f56c6c 0,#f78989 50%,#f9a7a7 100%));color:#fff;box-shadow:0 3px 10px hsla(0,87%,69%,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.modern-file-action-btn-danger[data-v-c5a15344]:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 6px 20px hsla(0,87%,69%,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.modern-file-action-btn-danger[data-v-c5a15344]:active{transform:translateY(-1px) scale(1.02)}.upload-list-item[data-v-c5a15344]{display:flex;align-items:center;justify-content:space-between;margin:8px 10px;border:1px solid var(--upload-list-item-border-color,rgba(64,158,255,.1));padding:10px 12px;border-radius:16px;background:var(--upload-list-item-bg,linear-gradient(135deg,hsla(0,0%,100%,.9) 0,hsla(0,0%,100%,.7) 100%));backdrop-filter:blur(10px);box-shadow:0 2px 8px var(--upload-list-item-shadow,rgba(0,0,0,.04));transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item[data-v-c5a15344]:hover{border-color:var(--upload-list-item-hover-border,rgba(64,158,255,.25));box-shadow:0 4px 16px var(--upload-list-item-hover-shadow,rgba(64,158,255,.12));transform:translateY(-2px)}.upload-list-item-action[data-v-c5a15344]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-dashboard-title[data-v-c5a15344]{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--dashboard-title-bg,linear-gradient(135deg,rgba(64,158,255,.06) 0,transparent 100%));border-radius:12px;color:var(--el-text-color-primary)}.upload-list-dashboard-title .el-icon[data-v-c5a15344]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-c5a15344]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-c5a15344]{width:32px;height:32px;border-radius:8px;font-size:12px}.modern-file-action-btn[data-v-c5a15344]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-c5a15344]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-c5a15344]{font-size:12px;width:32vw}.upload-list-dashboard-title[data-v-c5a15344]{font-size:12px;padding:4px 10px}}.logo-link[data-v-17f54292]{text-decoration:none;display:inline-block}.logo[data-v-17f54292]{transition:all .3s ease;border-radius:8px}.logo--fixed[data-v-17f54292]{position:fixed;top:20px;left:20px;z-index:100}.logo--relative[data-v-17f54292]{position:relative}.logo--absolute[data-v-17f54292]{position:absolute;top:5px;left:5px;z-index:100}.logo--static[data-v-17f54292]{position:static}.logo--small[data-v-17f54292]{height:50px;width:50px}.logo--normal[data-v-17f54292]{height:70px;width:70px}.logo--large[data-v-17f54292]{height:90px;width:90px}.logo--hover-enabled[data-v-17f54292]:hover{transform:scale(1.1) rotate(5deg);filter:drop-shadow(0 0 10px var(--logo-glow-color))}@media (max-width:768px){.logo--small[data-v-17f54292]{height:40px;width:40px}.logo--normal[data-v-17f54292]{height:60px;width:60px}.logo--large[data-v-17f54292]{height:75px;width:75px}}.logo[data-v-17f54292]:focus{outline:2px solid var(--el-color-primary);outline-offset:2px}.logo[data-v-17f54292]{filter:var(--logo-filter,none);opacity:var(--logo-opacity,1)}@media (prefers-color-scheme:dark){.logo[data-v-17f54292]{filter:var(--logo-dark-filter,brightness(.9))}}#themeToggle[data-v-466b2b5c]{border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem}@media (max-width:768px){#themeToggle[data-v-466b2b5c]{width:2rem;height:2rem}}.theme_toggle_circle1[data-v-466b2b5c]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-466b2b5c]{transition:all .5s ease-in-out;fill:var(--theme-toggle-bg-color)}.theme_toggle_svg[data-v-466b2b5c]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--theme-toggle-color)}.dark.theme_toggle_svg[data-v-466b2b5c]{transform:rotate(40deg)}.theme_toggle_g[data-v-466b2b5c]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-466b2b5c],.icon-fade-leave-active[data-v-466b2b5c]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-466b2b5c]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-466b2b5c]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-466b2b5c],.icon-fade-leave-from[data-v-466b2b5c]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-466b2b5c]{display:inline-block}.container[data-v-316c27dc]{background:var(--bg-color);min-height:100vh}.rotate[data-v-316c27dc]{animation:spin-316c27dc 2s ease-in-out}.scale[data-v-316c27dc]{animation:scale-316c27dc .5s ease-in-out}@keyframes spin-316c27dc{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-316c27dc{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-316c27dc{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-316c27dc{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-316c27dc{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-316c27dc]{display:inline-block}.mobile-only[data-v-316c27dc]{display:none}@media (max-width:768px){.desktop-only[data-v-316c27dc]{display:none!important}.mobile-only[data-v-316c27dc]{display:flex!important}}.toggle-dark-button[data-v-316c27dc]{right:30px}.toggle-dark-button[data-v-316c27dc],.upload-method-button[data-v-316c27dc]{border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border-radius:12px;position:fixed;top:30px}.upload-method-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;color:var(--theme-toggle-color);right:130px;outline:none}@media (max-width:768px){.upload-method-button[data-v-316c27dc]{width:2rem;height:2rem}}.upload-method-icon[data-v-316c27dc]{outline:none}.history-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;position:fixed;top:30px;right:180px;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);z-index:100;border-radius:12px;outline:none}@media (max-width:768px){.history-button[data-v-316c27dc]{width:2rem;height:2rem;top:85px;right:80px}}.history-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;position:fixed;top:30px;right:230px;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);z-index:100;border-radius:12px;outline:none}.announcement-button[data-v-316c27dc]:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-316c27dc]:disabled{opacity:.5;cursor:not-allowed}.mobile-more-dropdown[data-v-316c27dc]{position:fixed;top:30px;right:30px;z-index:100}.mobile-more-button[data-v-316c27dc]{width:2rem;height:2rem;display:flex;justify-content:center;align-items:center;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}.mobile-more-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.upload-folder[data-v-316c27dc]{width:100px;height:2.5rem;position:fixed;top:30px;right:280px;z-index:100;border-radius:12px;transition:all .3s ease,width .4s ease}.upload-folder.no-announcement[data-v-316c27dc]{right:230px}.upload-folder.active[data-v-316c27dc]{width:200px}@media (max-width:768px){.upload-folder[data-v-316c27dc]{width:80px;height:2rem;right:110px}.upload-folder.no-announcement[data-v-316c27dc]{right:110px}.upload-folder.active[data-v-316c27dc]{width:120px}}.upload-folder[data-v-316c27dc] .el-input__wrapper{border-radius:12px}.info-container[data-v-316c27dc],.upload-folder[data-v-316c27dc] .el-input__wrapper{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none}.info-container[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;border-radius:12px;color:var(--theme-toggle-color);transition:all .3s ease;position:fixed;top:30px;right:80px;cursor:pointer}.info-icon[data-v-316c27dc]{outline:none}@media (max-width:768px){.info-container[data-v-316c27dc]{width:2rem;height:2rem;right:70px}}.toolbar-manage[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;z-index:200}.toolbar-manage-button[data-v-316c27dc]{border:none;transition:all .3s ease,border-radius .4s ease;margin-left:0;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--toolbar-button-color);outline:none;border-radius:12px}.toolbar-manage-button.active[data-v-316c27dc]{border-radius:50%}.toolbar[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;display:flex;flex-direction:column;align-items:center;z-index:100}.toolbar-button[data-v-316c27dc]{border:none;transition:all .3s ease;margin-left:0;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--toolbar-button-color)}.info-container[data-v-316c27dc]:hover,.toggle-dark-button[data-v-316c27dc]:hover,.toolbar-button[data-v-316c27dc]:hover,.toolbar-manage-button[data-v-316c27dc]:hover,.upload-folder[data-v-316c27dc]:hover,.upload-method-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.compress-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.compress-button.active[data-v-316c27dc]{transform:translateY(-75px);opacity:1}.link-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.link-button.active[data-v-316c27dc]{transform:translateY(-58px) translateX(-50px);opacity:1}.config-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.config-button.active[data-v-316c27dc]{transform:translateY(-11px) translateX(-75px);opacity:1}.sign-out-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.sign-out-button.active[data-v-316c27dc]{transform:translateY(42px) translateX(-68px);opacity:1}@media (min-width:768px){.compress-button[data-v-316c27dc]:hover{transform:translateY(-77px)}.link-button[data-v-316c27dc]:hover{transform:translateY(-60px) translateX(-52px)}.config-button[data-v-316c27dc]:hover{transform:translateY(-12px) translateX(-77px)}.sign-out-button[data-v-316c27dc]:hover{transform:translateY(44px) translateX(-70px)}.compress-icon[data-v-316c27dc]:hover{animation:scale-316c27dc .5s ease-in-out}.config-icon[data-v-316c27dc]:hover{animation:spin-316c27dc .5s ease-in-out}.link-icon[data-v-316c27dc]:hover{animation:rotate-shake-316c27dc .5s ease-in-out}.sign-out-icon[data-v-316c27dc]:hover{animation:shake-316c27dc .5s ease-in-out}}[data-v-316c27dc] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);backdrop-filter:blur(10px);box-shadow:var(--dialog-box-shadow)}.dialog-action[data-v-316c27dc]{display:flex;justify-content:center;margin-top:20px}.header[data-v-316c27dc]{display:flex;justify-content:center;align-items:center;padding:15px;margin-top:5vh;color:var(--upload-header-color);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;position:relative;top:-3vh;transition:all .3s ease}.title[data-v-316c27dc]{font-size:2.5rem;font-weight:800;font-family:Noto Sans SC,sans-serif;position:relative;padding-bottom:8px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);animation:float-316c27dc 4s ease-in-out infinite;letter-spacing:2px}.title[data-v-316c27dc]:hover{transform:scale(1.08) translateY(-3px);filter:drop-shadow(0 0 20px var(--el-upload-dragger-uniform-color))}.title[data-v-316c27dc]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:linear-gradient(90deg,transparent,var(--el-upload-dragger-uniform-color),transparent);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px var(--el-upload-dragger-uniform-color)}.title[data-v-316c27dc]:hover:after{width:80%}.main-title[data-v-316c27dc]{background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;text-decoration:none;display:inline-block;animation:titleShimmer-316c27dc 3s ease-in-out infinite;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3))}.title:hover .main-title[data-v-316c27dc]{animation:titleShimmer-316c27dc 1s ease-in-out infinite;filter:brightness(1.2)}@keyframes float-316c27dc{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes titleShimmer-316c27dc{0%{background-position:200%}to{background-position:-200%}}@media (max-width:768px){.title[data-v-316c27dc]{font-size:1.8rem;letter-spacing:1px}.title[data-v-316c27dc]:hover{transform:scale(1.05) translateY(-2px)}}.upload-home[data-v-316c27dc]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-316c27dc]{margin-bottom:5px;position:relative;top:-3vh}.question-icon[data-v-316c27dc]{margin:0 3px}.compress-slider[data-v-316c27dc]{width:80%;margin:0 auto}.footer[data-v-316c27dc]{height:6vh} \ No newline at end of file +.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.history-container[data-v-3d294b36]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--bg-color);z-index:2000;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);backdrop-filter:blur(20px);background:hsla(0,0%,100%,.8);color:var(--upload-text-color)}.dark .history-container[data-v-3d294b36]{background:rgba(30,30,30,.9);color:var(--upload-text-color)}.history-container.active[data-v-3d294b36]{transform:translateY(0)}.history-header[data-v-3d294b36]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.1)}.dark .history-header[data-v-3d294b36]{border-bottom:1px solid hsla(0,0%,100%,.1)}.header-left[data-v-3d294b36]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-3d294b36]{margin:0;font-size:24px;color:var(--upload-header-color)}.record-count[data-v-3d294b36]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-3d294b36]{display:flex;gap:10px}.history-content[data-v-3d294b36]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-3d294b36]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-3d294b36]{background:var(--upload-list-card-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--upload-list-card-box-shadow);transition:transform .3s ease,box-shadow .3s ease;border:var(--upload-list-card-border)}.grid-item[data-v-3d294b36]:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.1)}.dark .grid-item[data-v-3d294b36]:hover{box-shadow:0 8px 20px hsla(0,0%,100%,.1)}.grid-preview[data-v-3d294b36]{height:160px;position:relative;background:rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;overflow:hidden}.dark .grid-preview[data-v-3d294b36]{background:hsla(0,0%,100%,.05)}.grid-preview img[data-v-3d294b36],.grid-preview video[data-v-3d294b36]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-3d294b36]{font-size:48px;color:var(--upload-list-file-icon-color)}.grid-overlay[data-v-3d294b36]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-3d294b36]{opacity:1}.grid-actions[data-v-3d294b36]{display:flex;gap:15px}.grid-info[data-v-3d294b36]{padding:10px}.file-name[data-v-3d294b36]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;color:var(--upload-text-color)}.upload-time[data-v-3d294b36]{font-size:12px;color:var(--upload-text-color);opacity:.7}.list-view[data-v-3d294b36]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-3d294b36]{display:flex;align-items:center;padding:10px;background:var(--upload-list-card-bg-color);border-radius:8px;border:var(--upload-list-item-border);transition:background .2s ease}.list-item[data-v-3d294b36]:hover{background:hsla(0,0%,100%,.8)}.dark .list-item[data-v-3d294b36]:hover{background:hsla(0,0%,100%,.1)}.list-preview[data-v-3d294b36]{width:50px;height:50px;border-radius:6px;overflow:hidden;margin-right:15px;background:rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dark .list-preview[data-v-3d294b36]{background:hsla(0,0%,100%,.05)}.list-preview img[data-v-3d294b36],.list-preview video[data-v-3d294b36]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-3d294b36]{font-size:24px;color:var(--upload-list-file-icon-color)}.list-info[data-v-3d294b36]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-3d294b36]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.list-meta[data-v-3d294b36]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-3d294b36]{display:flex;gap:5px}.empty-state[data-v-3d294b36]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.6}.empty-icon[data-v-3d294b36]{font-size:64px;margin-bottom:20px}.history-content[data-v-3d294b36]::-webkit-scrollbar{width:8px}.history-content[data-v-3d294b36]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-3d294b36]::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:4px}.history-content[data-v-3d294b36]::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.dark .history-content[data-v-3d294b36]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2)}.dark .history-content[data-v-3d294b36]::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.action-btn-view[data-v-3d294b36]{background-color:#f5f7fa;border-color:#dcdfe6;color:#606266}.action-btn-view[data-v-3d294b36]:hover{background-color:#e6e8eb;color:#409eff}.dark .action-btn-view[data-v-3d294b36]{background-color:hsla(0,0%,100%,.4);border-color:transparent;color:#fff}.dark .action-btn-view[data-v-3d294b36]:hover{background-color:hsla(0,0%,100%,.8)}.history-group[data-v-3d294b36]{position:relative;padding-left:30px;border-left:2px solid rgba(0,0,0,.1);margin-left:10px;padding-bottom:30px}.dark .history-group[data-v-3d294b36]{border-left:2px solid hsla(0,0%,100%,.1)}.history-group[data-v-3d294b36]:last-child{border-left:2px solid transparent}.timeline-header[data-v-3d294b36]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-3d294b36]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;border:3px solid var(--theme-toggle-color);background:#fff;z-index:2;box-sizing:border-box}.dark .timeline-dot[data-v-3d294b36]{background:#1a1a1a}.date-label[data-v-3d294b36]{font-size:20px;font-weight:700;color:var(--upload-header-color)}.page-footer[data-v-08acbaa9]{display:flex;justify-content:center;align-items:center;width:100vw;color:var(--page-footer-text-color);font-size:large;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.page-footer[data-v-08acbaa9]{font-size:small}}.footer-name[data-v-08acbaa9]{color:var(--page-footer-name-color);font-weight:700;text-decoration:none;position:relative;transition:all .3s ease}.footer-name[data-v-08acbaa9]:after{content:"";position:absolute;width:0;height:2px;bottom:-2px;left:0;background-color:var(--page-footer-name-color);transition:width .3s ease-in-out}.footer-name[data-v-08acbaa9]:hover:after{width:100%}.footer-link-icon[data-v-08acbaa9]{color:var(--page-footer-name-color);margin-left:5px;transition:transform .3s ease-in-out}.footer-link-icon[data-v-08acbaa9]:hover{transform:scale(1.2) rotate(-12deg)}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group--horizontal{display:inline-block;vertical-align:middle}.el-button-group--horizontal:after,.el-button-group--horizontal:before{content:"";display:table}.el-button-group--horizontal:after{clear:both}.el-button-group--horizontal>.el-button{float:left;position:relative}.el-button-group--horizontal>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group--horizontal>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group--horizontal>.el-button:not(:last-child){margin-right:-1px}.el-button-group--horizontal .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0}.el-button-group--vertical{align-items:stretch;display:inline-flex;flex-direction:column}.el-button-group--vertical>.el-button{margin-top:-1px}.el-button-group--vertical>.el-button:first-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-button-group--vertical>.el-button:last-child{border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical>.el-dropdown{margin-top:-1px}.el-button-group--vertical>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical .el-button--primary:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:not(:first-child):not(:last-child){border-bottom-color:var(--el-button-divide-border-color);border-top-color:var(--el-button-divide-border-color)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);line-height:1;position:relative;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper,.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:0}.el-dropdown .el-dropdown__caret-button{align-items:center;border-left:none;display:inline-flex;justify-content:center;padding-left:0;padding-right:0;width:32px}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{background:var(--el-overlay-color-lighter);bottom:-1px;content:"";display:block;left:0;position:absolute;top:-1px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;left:0;list-style:none;margin:0;padding:5px 0;position:relative;top:0;z-index:var(--el-dropdown-menu-index)}.el-dropdown-menu__item{align-items:center;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:var(--el-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:5px 16px;white-space:nowrap}.el-dropdown-menu__item:not(.is-disabled):focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{font-size:14px;line-height:22px;padding:7px 20px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:12px;line-height:20px;padding:2px 12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);display:flex;flex-direction:column;overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{flex:1;overflow:auto;padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}@property --border-angle{syntax:"";initial-value:0deg;inherits:false}@keyframes borderRotate-b352bfea{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-b352bfea],.upload-list-card[data-v-b352bfea]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-b352bfea]{width:55vw;height:7vh;margin-top:10px;border-radius:15px;background-color:var(--upload-list-card-bg-color);backdrop-filter:blur(10px);border:var(--upload-list-card-border);box-shadow:var(--upload-list-card-box-shadow)!important;transition:height .3s ease;overflow:hidden}.upload-list-card[data-v-b352bfea] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-b352bfea]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-b352bfea],.upload-list-container[data-v-b352bfea]{width:70vw}}.upload-list-card.upload-list-busy[data-v-b352bfea],.upload-list-container.upload-list-busy[data-v-b352bfea]{height:40vh}.upload-list-card.is-uploading[data-v-b352bfea]{border:1px solid var(--el-upload-dragger-uniform-color,#409eff)!important;box-shadow:0 0 20px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 30%,transparent),0 0 40px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 15%,transparent),inset 0 0 20px color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 8%,transparent)!important}.upload-list-item-content[data-v-b352bfea]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-url-row[data-v-b352bfea]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-b352bfea]:last-child{margin-bottom:0}.upload-list-item-url[data-v-b352bfea]{display:flex;flex-direction:column}@media (max-width:768px){.upload-list-item-content[data-v-b352bfea]{margin-left:2px}.upload-list-item-url-row[data-v-b352bfea]{width:42vw;flex-direction:column;gap:6px}}.upload-card-wrapper[data-v-b352bfea]{position:relative;overflow:visible}.upload-card-glow[data-v-b352bfea]{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.2) 0,transparent 70%);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease;z-index:10}.upload-card[data-v-b352bfea]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-b352bfea]{width:70vw}}.upload-card-busy[data-v-b352bfea] .el-upload-dragger{height:17vh}[data-v-b352bfea] .el-upload-dragger{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);opacity:.7;background-color:var(--el-upload-dragger-bg-color);backdrop-filter:blur(10px);transition:all .3s ease}[data-v-b352bfea] .el-upload:focus .el-upload-dragger{border-color:var(--el-upload-dragger-border-color)}[data-v-b352bfea] .el-upload-dragger.is-dragover,[data-v-b352bfea] .el-upload-dragger:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.is-uploading[data-v-b352bfea] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-b352bfea]{position:relative;background:none}.upload-card.is-uploading[data-v-b352bfea]:before{content:"";position:absolute;top:20px;left:20px;right:20px;bottom:20px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#409eff) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#409eff) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-b352bfea 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-b352bfea]{font-weight:700;font-size:medium;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}@media (max-width:768px){.el-upload__text[data-v-b352bfea]{font-size:small}}.el-upload__text.upload-list-busy[data-v-b352bfea]{font-size:small}.el-icon--upload[data-v-b352bfea]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-b352bfea]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-b352bfea]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-b352bfea]{font-size:30px}}.el-upload__tip[data-v-b352bfea]{font-size:medium;color:var(--upload-text-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.el-upload__tip[data-v-b352bfea]{font-size:small}}.paste-card[data-v-b352bfea]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);box-shadow:none;opacity:.7;background-color:var(--el-upload-dragger-bg-color);backdrop-filter:blur(10px);transition:all .3s ease;box-sizing:border-box}.paste-card[data-v-b352bfea]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-b352bfea]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-b352bfea]:before{content:"";position:absolute;inset:0;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#409eff) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#409eff) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#409eff) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-b352bfea 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-b352bfea] .el-card__body{padding:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-card-busy.paste-card[data-v-b352bfea]{height:17vh}.upload-card-textarea[data-v-b352bfea]{width:50vw;height:70%;border-radius:16px;background:var(--textarea-bg,linear-gradient(135deg,rgba(64,158,255,.03) 0,rgba(64,158,255,.01) 100%));backdrop-filter:blur(12px);transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box;display:flex;position:relative}.upload-card-busy .upload-card-textarea[data-v-b352bfea]{height:50%}.upload-card-textarea[data-v-b352bfea]:before{content:"";position:absolute;inset:-1px;border-radius:17px;padding:1px;background:linear-gradient(135deg,rgba(64,158,255,.3),rgba(64,158,255,.1) 50%,rgba(64,158,255,.3));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6;transition:opacity .3s ease}.upload-card-textarea[data-v-b352bfea]:hover:before{opacity:1}.upload-card-textarea[data-v-b352bfea]:focus-within:before{opacity:1;background:linear-gradient(135deg,rgba(64,158,255,.6),rgba(64,158,255,.2) 50%,rgba(64,158,255,.6))}[data-v-b352bfea] .el-textarea__inner{border-radius:16px;background:var(--textarea-inner-bg,rgba(0,0,0,.02));backdrop-filter:blur(12px);transition:all .3s cubic-bezier(.4,0,.2,1);resize:none;border:1px solid transparent;padding:16px 20px;font-size:14px;line-height:1.6;color:var(--el-text-color-primary)}[data-v-b352bfea] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-b352bfea] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-b352bfea] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(64,158,255,.03))}[data-v-b352bfea] .el-textarea__inner:focus{border-color:transparent;box-shadow:0 0 0 3px rgba(64,158,255,.15),0 4px 20px rgba(64,158,255,.1),inset 0 1px 3px rgba(0,0,0,.05);background:var(--textarea-inner-focus-bg,rgba(64,158,255,.02))}.upload-card-textarea[data-v-b352bfea] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-b352bfea] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-b352bfea] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(64,158,255,.4),rgba(64,158,255,.6));border-radius:6px;-webkit-transition:background .3s ease;transition:background .3s ease}.upload-card-textarea[data-v-b352bfea] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(64,158,255,.6),rgba(64,158,255,.8))}.paste-card-actions[data-v-b352bfea]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-b352bfea]{min-width:100px;height:42px;border-radius:14px!important;font-weight:600;font-size:15px;letter-spacing:2px;background:linear-gradient(135deg,#409eff,#66b1ff)!important;border:none!important;box-shadow:0 4px 15px rgba(64,158,255,.35),inset 0 1px 0 hsla(0,0%,100%,.2);transition:all .3s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.paste-card-upload-button[data-v-b352bfea]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.25),transparent);transition:left .6s ease}.paste-card-upload-button[data-v-b352bfea]:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px rgba(64,158,255,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.paste-card-upload-button[data-v-b352bfea]:hover:before{left:100%}.paste-card-upload-button[data-v-b352bfea]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-b352bfea]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-b352bfea]{margin-top:2%}.paste-card-method-group[data-v-b352bfea]{background:var(--paste-method-group-bg,rgba(64,158,255,.08));border-radius:14px;padding:4px;border:1px solid var(--paste-method-group-border,rgba(64,158,255,.15))}.paste-card-method-group[data-v-b352bfea] .el-radio-button__inner{transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:10px!important;border:none!important;background:transparent;font-weight:500;padding:10px 20px;color:var(--el-text-color-regular)}.paste-card-method-group[data-v-b352bfea] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-b352bfea] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-b352bfea] .el-radio-button__inner:hover{background:var(--paste-method-hover-bg,rgba(64,158,255,.12));color:var(--el-color-primary)}.paste-card-method-group[data-v-b352bfea] .el-radio-button__original-radio:checked+.el-radio-button__inner{background:linear-gradient(135deg,#409eff,#66b1ff)!important;color:#fff!important;box-shadow:0 3px 10px rgba(64,158,255,.35)}@media (max-width:768px){.paste-card[data-v-b352bfea]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-b352bfea]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-b352bfea]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-b352bfea]:before{border-radius:11px}[data-v-b352bfea] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-b352bfea]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-b352bfea]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-b352bfea]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-b352bfea] .el-radio-button__inner{padding:4px 10px;font-size:11px;border-radius:6px!important;height:26px;display:flex;align-items:center}}.upload-list-dashboard[data-v-b352bfea]{display:flex;justify-content:space-between;align-items:center;height:7vh;padding:0 15px;position:sticky;top:0;z-index:1;border-radius:15px;transition:all .3s ease}.upload-list-dashboard.list-scrolled[data-v-b352bfea]{background-color:var(--upload-list-dashboard-bg-color);box-shadow:var(--upload-list-dashboard-shadow)}.file-icon[data-v-b352bfea]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-url[data-v-b352bfea] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-b352bfea] .el-input:hover{transform:translateY(-1px)}.upload-list-item-url[data-v-b352bfea] .el-input__wrapper{border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--el-fill-color-blank);border:1px solid var(--el-border-color-lighter);overflow:hidden;position:relative;padding:0}.upload-list-item-url[data-v-b352bfea] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-b352bfea] .el-input__wrapper:hover{box-shadow:0 2px 8px rgba(0,0,0,.12);border-color:var(--el-color-primary-light-5)}.upload-list-item-url[data-v-b352bfea] .el-input__wrapper.is-focus{box-shadow:0 0 0 2px var(--el-color-primary-light-8),0 4px 12px rgba(0,0,0,.15);border-color:var(--el-color-primary)}.upload-list-item-url[data-v-b352bfea] .el-input__wrapper.is-focus:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(64,158,255,.08),transparent);animation:shimmer-b352bfea 2s infinite;z-index:0}@keyframes shimmer-b352bfea{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-b352bfea] .el-input__inner{font-size:13px;font-family:Courier New,Monaco,monospace;color:var(--el-text-color-regular);transition:all .3s ease;padding-left:12px;position:relative;z-index:1;border-radius:0 10px 10px 0}.upload-list-item-url[data-v-b352bfea] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-b352bfea] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-b352bfea] .el-input-group__prepend{background:var(--el-color-primary-light-9);color:var(--el-color-primary);font-weight:600;font-size:12px;border:none;padding:0 14px;margin:0;border-radius:9px 0 0 9px;box-shadow:none;transition:all .3s ease;letter-spacing:.5px;position:relative;z-index:1}.upload-list-item-url[data-v-b352bfea] .el-input-group__prepend:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background:var(--el-color-primary-light-7);opacity:.3;transition:all .3s ease}.upload-list-item-url[data-v-b352bfea] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-b352bfea] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-b352bfea] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff}.upload-list-item-url[data-v-b352bfea] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}.upload-list-item-url[data-v-b352bfea] .el-input.is-focus .el-input-group__prepend{animation:prependPulse-b352bfea 2s ease-in-out infinite}@keyframes prependPulse-b352bfea{0%,to{opacity:1}50%{opacity:.95}}@media (max-width:768px){.upload-list-item-url[data-v-b352bfea] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-b352bfea] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-b352bfea] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}}[data-v-b352bfea] .el-upload-dragger{position:relative;overflow:hidden}[data-v-b352bfea] .el-upload-dragger:before{background-image:radial-gradient(2px 2px at 10% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 20% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 30% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 40% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 50% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 60% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 70% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 80% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 90% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 15% 70%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:200px 200px}[data-v-b352bfea] .el-upload-dragger:after,[data-v-b352bfea] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-b352bfea] .el-upload-dragger:after{background-image:radial-gradient(3px 3px at 15% 15%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 50% 50%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 85% 85%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 35% 65%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 65% 35%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:150px 150px}.upload-card[data-v-b352bfea]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-b352bfea 60s linear infinite}.upload-card[data-v-b352bfea]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-b352bfea 40s linear infinite,starPulse-b352bfea 4s ease-in-out infinite}@keyframes starScroll-b352bfea{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-b352bfea{0%,to{opacity:.6}50%{opacity:.3}}.upload-list-item-progress[data-v-b352bfea]{margin-top:8px;width:28vw;padding:4px 8px;background:var(--progress-wrapper-bg,linear-gradient(135deg,rgba(64,158,255,.05) 0,rgba(64,158,255,.02) 100%));border-radius:12px;border:1px solid var(--progress-wrapper-border,rgba(64,158,255,.1))}.upload-list-item-progress[data-v-b352bfea] .el-progress{--el-color-primary:#409eff}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar__outer{height:10px!important;border-radius:8px;background:var(--progress-outer-bg,linear-gradient(135deg,rgba(0,0,0,.06) 0,rgba(0,0,0,.03) 100%));box-shadow:inset 0 1px 3px rgba(0,0,0,.08);overflow:hidden}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar__inner{border-radius:8px;background:linear-gradient(90deg,#409eff,#66b1ff 50%,#409eff)!important;box-shadow:0 0 12px rgba(64,158,255,.5),0 0 4px rgba(64,158,255,.3),inset 0 1px 0 hsla(0,0%,100%,.3);position:relative;overflow:hidden;transition:width .3s ease}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar__inner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);pointer-events:none}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar__inner:before{content:"";position:absolute;top:0;left:-100%;width:300%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 8px,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 16px);animation:progressStripes-b352bfea 1s linear infinite}.upload-list-item-progress[data-v-b352bfea] .el-progress--success .el-progress-bar__inner{background:linear-gradient(90deg,#67c23a,#85ce61 25%,#95d475 50%,#85ce61 75%,#67c23a)!important;background-size:200% 100%;box-shadow:0 0 12px rgba(103,194,58,.5),0 0 4px rgba(103,194,58,.3),inset 0 1px 0 hsla(0,0%,100%,.3);animation:none}.upload-list-item-progress[data-v-b352bfea] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-b352bfea] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-b352bfea] .el-progress--exception .el-progress-bar__inner{background:linear-gradient(90deg,#f56c6c,#f78989 25%,#f9a7a7 50%,#f78989 75%,#f56c6c)!important;background-size:200% 100%;box-shadow:0 0 12px hsla(0,87%,69%,.5),0 0 4px hsla(0,87%,69%,.3),inset 0 1px 0 hsla(0,0%,100%,.3);animation:progressPulse-b352bfea 1s ease-in-out infinite}.upload-list-item-progress[data-v-b352bfea] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressShine-b352bfea{0%{background-position:0 0}to{background-position:200% 0}}@keyframes progressStripes-b352bfea{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-b352bfea{0%,to{opacity:1}50%{opacity:.7}}@media (max-width:768px){.upload-list-item-progress[data-v-b352bfea]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-b352bfea] .el-progress-bar__outer{height:8px!important}}.modern-action-group[data-v-b352bfea]{display:flex;align-items:center;gap:6px;padding:4px;background:var(--modern-action-group-bg,rgba(64,158,255,.08));border-radius:14px;border:1px solid var(--modern-action-group-border,rgba(64,158,255,.15));box-shadow:0 2px 8px var(--modern-action-group-shadow,rgba(0,0,0,.06));transition:all .3s cubic-bezier(.4,0,.2,1)}.modern-action-group[data-v-b352bfea]:hover{background:var(--modern-action-group-hover-bg,rgba(64,158,255,.12));box-shadow:0 4px 16px var(--modern-action-group-hover-shadow,rgba(64,158,255,.15));transform:translateY(-1px)}.modern-action-btn[data-v-b352bfea]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:10px;background:var(--modern-action-btn-bg,linear-gradient(135deg,#409eff 0,#66b1ff 100%));color:#fff;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-size:14px;box-shadow:0 2px 6px rgba(64,158,255,.25);position:relative;overflow:hidden;outline:none!important}.modern-action-btn[data-v-b352bfea]:focus,.modern-action-btn[data-v-b352bfea]:focus-visible{outline:none!important}.modern-action-btn[data-v-b352bfea]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s ease}.modern-action-btn[data-v-b352bfea]:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(64,158,255,.4)}.modern-action-btn[data-v-b352bfea]:hover:before{left:100%}.modern-action-btn[data-v-b352bfea]:active{transform:translateY(0) scale(.98);box-shadow:0 1px 4px rgba(64,158,255,.3)}.modern-action-btn-danger[data-v-b352bfea]{background:var(--modern-action-btn-danger-bg,linear-gradient(135deg,#f56c6c 0,#f78989 100%));box-shadow:0 2px 6px hsla(0,87%,69%,.25)}.modern-action-btn-danger[data-v-b352bfea]:hover{box-shadow:0 4px 12px hsla(0,87%,69%,.4)}.modern-dropdown-item-content[data-v-b352bfea]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-b352bfea]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-item-name-wrapper[data-v-b352bfea]{display:flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--file-name-bg,linear-gradient(135deg,rgba(64,158,255,.08) 0,rgba(64,158,255,.03) 100%));border-radius:10px;margin-bottom:8px;border:1px solid var(--file-name-border,rgba(64,158,255,.12));backdrop-filter:blur(4px);transition:all .3s ease}.upload-list-item-name-wrapper[data-v-b352bfea]:hover{background:var(--file-name-hover-bg,linear-gradient(135deg,rgba(64,158,255,.12) 0,rgba(64,158,255,.06) 100%));border-color:var(--file-name-hover-border,rgba(64,158,255,.2))}.upload-list-item-name[data-v-b352bfea]{font-size:14px;font-weight:600;max-width:28vw;color:var(--el-text-color-primary);letter-spacing:.3px;text-align:center}.modern-file-action-btn[data-v-b352bfea]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:16px;position:relative;overflow:hidden;margin:4px 0}.modern-file-action-btn[data-v-b352bfea]:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.modern-file-action-btn[data-v-b352bfea]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-b352bfea]{background:var(--file-action-primary-bg,linear-gradient(145deg,#409eff 0,#53a8ff 50%,#66b1ff 100%));color:#fff;box-shadow:0 3px 10px rgba(64,158,255,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.modern-file-action-btn-primary[data-v-b352bfea]:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 6px 20px rgba(64,158,255,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.modern-file-action-btn-primary[data-v-b352bfea]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-b352bfea]{background:var(--file-action-danger-bg,linear-gradient(145deg,#f56c6c 0,#f78989 50%,#f9a7a7 100%));color:#fff;box-shadow:0 3px 10px hsla(0,87%,69%,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.modern-file-action-btn-danger[data-v-b352bfea]:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 6px 20px hsla(0,87%,69%,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.modern-file-action-btn-danger[data-v-b352bfea]:active{transform:translateY(-1px) scale(1.02)}.upload-list-item[data-v-b352bfea]{display:flex;align-items:center;justify-content:space-between;margin:8px 10px;border:1px solid var(--upload-list-item-border-color,rgba(64,158,255,.1));padding:10px 12px;border-radius:16px;background:var(--upload-list-item-bg,linear-gradient(135deg,hsla(0,0%,100%,.9) 0,hsla(0,0%,100%,.7) 100%));backdrop-filter:blur(10px);box-shadow:0 2px 8px var(--upload-list-item-shadow,rgba(0,0,0,.04));transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item[data-v-b352bfea]:hover{border-color:var(--upload-list-item-hover-border,rgba(64,158,255,.25));box-shadow:0 4px 16px var(--upload-list-item-hover-shadow,rgba(64,158,255,.12));transform:translateY(-2px)}.upload-list-item-action[data-v-b352bfea]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-dashboard-title[data-v-b352bfea]{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--dashboard-title-bg,linear-gradient(135deg,rgba(64,158,255,.06) 0,transparent 100%));border-radius:12px;color:var(--el-text-color-primary)}.upload-list-dashboard-title .el-icon[data-v-b352bfea]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-b352bfea]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-b352bfea]{width:32px;height:32px;border-radius:8px;font-size:12px}.modern-file-action-btn[data-v-b352bfea]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-b352bfea]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-b352bfea]{font-size:12px;width:32vw}.upload-list-dashboard-title[data-v-b352bfea]{font-size:12px;padding:4px 10px}}.logo-link[data-v-17f54292]{text-decoration:none;display:inline-block}.logo[data-v-17f54292]{transition:all .3s ease;border-radius:8px}.logo--fixed[data-v-17f54292]{position:fixed;top:20px;left:20px;z-index:100}.logo--relative[data-v-17f54292]{position:relative}.logo--absolute[data-v-17f54292]{position:absolute;top:5px;left:5px;z-index:100}.logo--static[data-v-17f54292]{position:static}.logo--small[data-v-17f54292]{height:50px;width:50px}.logo--normal[data-v-17f54292]{height:70px;width:70px}.logo--large[data-v-17f54292]{height:90px;width:90px}.logo--hover-enabled[data-v-17f54292]:hover{transform:scale(1.1) rotate(5deg);filter:drop-shadow(0 0 10px var(--logo-glow-color))}@media (max-width:768px){.logo--small[data-v-17f54292]{height:40px;width:40px}.logo--normal[data-v-17f54292]{height:60px;width:60px}.logo--large[data-v-17f54292]{height:75px;width:75px}}.logo[data-v-17f54292]:focus{outline:2px solid var(--el-color-primary);outline-offset:2px}.logo[data-v-17f54292]{filter:var(--logo-filter,none);opacity:var(--logo-opacity,1)}@media (prefers-color-scheme:dark){.logo[data-v-17f54292]{filter:var(--logo-dark-filter,brightness(.9))}}#themeToggle[data-v-466b2b5c]{border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem}@media (max-width:768px){#themeToggle[data-v-466b2b5c]{width:2rem;height:2rem}}.theme_toggle_circle1[data-v-466b2b5c]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-466b2b5c]{transition:all .5s ease-in-out;fill:var(--theme-toggle-bg-color)}.theme_toggle_svg[data-v-466b2b5c]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--theme-toggle-color)}.dark.theme_toggle_svg[data-v-466b2b5c]{transform:rotate(40deg)}.theme_toggle_g[data-v-466b2b5c]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-466b2b5c],.icon-fade-leave-active[data-v-466b2b5c]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-466b2b5c]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-466b2b5c]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-466b2b5c],.icon-fade-leave-from[data-v-466b2b5c]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-466b2b5c]{display:inline-block}.container[data-v-316c27dc]{background:var(--bg-color);min-height:100vh}.rotate[data-v-316c27dc]{animation:spin-316c27dc 2s ease-in-out}.scale[data-v-316c27dc]{animation:scale-316c27dc .5s ease-in-out}@keyframes spin-316c27dc{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-316c27dc{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-316c27dc{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-316c27dc{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-316c27dc{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-316c27dc]{display:inline-block}.mobile-only[data-v-316c27dc]{display:none}@media (max-width:768px){.desktop-only[data-v-316c27dc]{display:none!important}.mobile-only[data-v-316c27dc]{display:flex!important}}.toggle-dark-button[data-v-316c27dc]{right:30px}.toggle-dark-button[data-v-316c27dc],.upload-method-button[data-v-316c27dc]{border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border-radius:12px;position:fixed;top:30px}.upload-method-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;color:var(--theme-toggle-color);right:130px;outline:none}@media (max-width:768px){.upload-method-button[data-v-316c27dc]{width:2rem;height:2rem}}.upload-method-icon[data-v-316c27dc]{outline:none}.history-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;position:fixed;top:30px;right:180px;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);z-index:100;border-radius:12px;outline:none}@media (max-width:768px){.history-button[data-v-316c27dc]{width:2rem;height:2rem;top:85px;right:80px}}.history-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;position:fixed;top:30px;right:230px;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);z-index:100;border-radius:12px;outline:none}.announcement-button[data-v-316c27dc]:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-316c27dc]:disabled{opacity:.5;cursor:not-allowed}.mobile-more-dropdown[data-v-316c27dc]{position:fixed;top:30px;right:30px;z-index:100}.mobile-more-button[data-v-316c27dc]{width:2rem;height:2rem;display:flex;justify-content:center;align-items:center;border:none;transition:all .3s ease;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}.mobile-more-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.upload-folder[data-v-316c27dc]{width:100px;height:2.5rem;position:fixed;top:30px;right:280px;z-index:100;border-radius:12px;transition:all .3s ease,width .4s ease}.upload-folder.no-announcement[data-v-316c27dc]{right:230px}.upload-folder.active[data-v-316c27dc]{width:200px}@media (max-width:768px){.upload-folder[data-v-316c27dc]{width:80px;height:2rem;right:110px}.upload-folder.no-announcement[data-v-316c27dc]{right:110px}.upload-folder.active[data-v-316c27dc]{width:120px}}.upload-folder[data-v-316c27dc] .el-input__wrapper{border-radius:12px}.info-container[data-v-316c27dc],.upload-folder[data-v-316c27dc] .el-input__wrapper{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none}.info-container[data-v-316c27dc]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;border-radius:12px;color:var(--theme-toggle-color);transition:all .3s ease;position:fixed;top:30px;right:80px;cursor:pointer}.info-icon[data-v-316c27dc]{outline:none}@media (max-width:768px){.info-container[data-v-316c27dc]{width:2rem;height:2rem;right:70px}}.toolbar-manage[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;z-index:200}.toolbar-manage-button[data-v-316c27dc]{border:none;transition:all .3s ease,border-radius .4s ease;margin-left:0;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--toolbar-button-color);outline:none;border-radius:12px}.toolbar-manage-button.active[data-v-316c27dc]{border-radius:50%}.toolbar[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;display:flex;flex-direction:column;align-items:center;z-index:100}.toolbar-button[data-v-316c27dc]{border:none;transition:all .3s ease;margin-left:0;background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);color:var(--toolbar-button-color)}.info-container[data-v-316c27dc]:hover,.toggle-dark-button[data-v-316c27dc]:hover,.toolbar-button[data-v-316c27dc]:hover,.toolbar-manage-button[data-v-316c27dc]:hover,.upload-folder[data-v-316c27dc]:hover,.upload-method-button[data-v-316c27dc]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.compress-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.compress-button.active[data-v-316c27dc]{transform:translateY(-75px);opacity:1}.link-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.link-button.active[data-v-316c27dc]{transform:translateY(-58px) translateX(-50px);opacity:1}.config-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.config-button.active[data-v-316c27dc]{transform:translateY(-11px) translateX(-75px);opacity:1}.sign-out-button[data-v-316c27dc]{position:fixed;bottom:50px;right:30px;opacity:0;transition:all .3s ease,transform .4s cubic-bezier(.68,-.55,.27,1.55),opacity .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:none}.sign-out-button.active[data-v-316c27dc]{transform:translateY(42px) translateX(-68px);opacity:1}@media (min-width:768px){.compress-button[data-v-316c27dc]:hover{transform:translateY(-77px)}.link-button[data-v-316c27dc]:hover{transform:translateY(-60px) translateX(-52px)}.config-button[data-v-316c27dc]:hover{transform:translateY(-12px) translateX(-77px)}.sign-out-button[data-v-316c27dc]:hover{transform:translateY(44px) translateX(-70px)}.compress-icon[data-v-316c27dc]:hover{animation:scale-316c27dc .5s ease-in-out}.config-icon[data-v-316c27dc]:hover{animation:spin-316c27dc .5s ease-in-out}.link-icon[data-v-316c27dc]:hover{animation:rotate-shake-316c27dc .5s ease-in-out}.sign-out-icon[data-v-316c27dc]:hover{animation:shake-316c27dc .5s ease-in-out}}[data-v-316c27dc] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);backdrop-filter:blur(10px);box-shadow:var(--dialog-box-shadow)}.dialog-action[data-v-316c27dc]{display:flex;justify-content:center;margin-top:20px}.header[data-v-316c27dc]{display:flex;justify-content:center;align-items:center;padding:15px;margin-top:5vh;color:var(--upload-header-color);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;position:relative;top:-3vh;transition:all .3s ease}.title[data-v-316c27dc]{font-size:2.5rem;font-weight:800;font-family:Noto Sans SC,sans-serif;position:relative;padding-bottom:8px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);animation:float-316c27dc 4s ease-in-out infinite;letter-spacing:2px}.title[data-v-316c27dc]:hover{transform:scale(1.08) translateY(-3px);filter:drop-shadow(0 0 20px var(--el-upload-dragger-uniform-color))}.title[data-v-316c27dc]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:linear-gradient(90deg,transparent,var(--el-upload-dragger-uniform-color),transparent);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px var(--el-upload-dragger-uniform-color)}.title[data-v-316c27dc]:hover:after{width:80%}.main-title[data-v-316c27dc]{background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;text-decoration:none;display:inline-block;animation:titleShimmer-316c27dc 3s ease-in-out infinite;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3))}.title:hover .main-title[data-v-316c27dc]{animation:titleShimmer-316c27dc 1s ease-in-out infinite;filter:brightness(1.2)}@keyframes float-316c27dc{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes titleShimmer-316c27dc{0%{background-position:200%}to{background-position:-200%}}@media (max-width:768px){.title[data-v-316c27dc]{font-size:1.8rem;letter-spacing:1px}.title[data-v-316c27dc]:hover{transform:scale(1.05) translateY(-2px)}}.upload-home[data-v-316c27dc]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-316c27dc]{margin-bottom:5px;position:relative;top:-3vh}.question-icon[data-v-316c27dc]{margin:0 3px}.compress-slider[data-v-316c27dc]{width:80%;margin:0 auto}.footer[data-v-316c27dc]{height:6vh} \ No newline at end of file diff --git a/css/733.e9cbf0d4.css.gz b/css/733.e9cbf0d4.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..f86b4b87957b35bbffb3ef83523b11d67cef7461 GIT binary patch literal 14793 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index e3cfb3a..a46cfe9 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Sanyue ImgHub
\ No newline at end of file +Sanyue ImgHub
\ No newline at end of file diff --git a/index.html.gz b/index.html.gz index 0d00c968e75a6da58e44a0ae1c5a1b0177b2757b..16a5e809a2f98408dd466ab513f0d5101282e204 100644 GIT binary patch delta 496 zcmV?R>g!|ih-N#MjW%2xzF(L;Kow?&VJry zpQ-B=yV|1wO@T3RDek|NXj*&%1=V3GMu)qeBEP8HIm5OzIDa~g*&$fC;MggjC9OP` zm!gv1g)Kz%rEr>p02{F>Md7KXybtY3h3b2c8PlL`_I`Dz()Nuq(BvtW;$yR}*UROp z6N5=d*R$IrpUpg|FbxRzUHf&YA%i>U$Y2c6IFDc{u?sEqUU5UQJ7wJBw4-R!8QtQ@ zw>V*0fa_HIB7fAL1_OyHs@G#z16zt`#6O&gyY&>eVaYVMWK4==8eVdUdrz zv%bxBN@Ct*;>lyOh%C<0`$n5jrrE4;^%ka>FTW-;RcSKNvjdJ4+UgfxM1({!PEZdF z=`gWBu50a3gCR`ef?-E-3w@*>qn}{s*wVo8O^xbd9s~wedo($G_oxycV{i;ihyA!P mU@nVeS6TcQV%!MM91eW1*0`~f#jLhCeB^(RWvIp20{{RDlK0{O delta 497 zcmV3VgJJNtQ? zeWpH0wv9spiaev|O5A;^PTUc zL}OCX2DS&}lbL(zrvc%v@4gNVWN-^TX^b9P>ktejw!VYlB)1g%bH*J`dx|=}qFbE! z7H2FAu)XY_g@4M?pdm3u`Eu-XU_T1%{lLLIi&<@P{K)?R2Obga*aH9nw4U>_ diff --git a/js/34.71e48dd0.js b/js/34.71e48dd0.js deleted file mode 100644 index 9522183..0000000 --- a/js/34.71e48dd0.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[34],{213:function(e,t,o){"use strict";o(5331),o(9104)},333:function(e,t,o){"use strict";o(5331),o(6711)},670:function(e,t,o){"use strict";o(5331),o(9648),o(9104),o(5970)},1393:function(e,t,o){o(6573),o(8100),o(7936),o(9577),o(1549),o(9797),o(9631),o(5623),o(4979),o(4603),o(7566),o(8721),function(t,o){e.exports=o()}(0,function(){return function(e){var t={};function o(s){if(t[s])return t[s].exports;var l=t[s]={i:s,l:!1,exports:{}};return e[s].call(l.exports,l,l.exports,o),l.l=!0,l.exports}return o.m=e,o.c=t,o.d=function(e,t,s){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)o.d(s,l,function(t){return e[t]}.bind(null,l));return s},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";var s;function l(e){return["image/png","image/jpeg","image/gif"].some(t=>t===e)}o.r(t),o.d(t,"canvastoDataURL",function(){return a}),o.d(t,"canvastoFile",function(){return n}),o.d(t,"dataURLtoFile",function(){return c}),o.d(t,"dataURLtoImage",function(){return d}),o.d(t,"downloadFile",function(){return u}),o.d(t,"filetoDataURL",function(){return p}),o.d(t,"imagetoCanvas",function(){return m}),o.d(t,"urltoBlob",function(){return g}),o.d(t,"urltoImage",function(){return f}),o.d(t,"compress",function(){return y}),o.d(t,"compressAccurately",function(){return k}),o.d(t,"EImageType",function(){return s}),function(e){e.PNG="image/png",e.JPEG="image/jpeg",e.GIF="image/gif"}(s||(s={}));var i=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function a(e,t=.92,o=s.JPEG){return i(this,void 0,void 0,function*(){return l(o)||(o=s.JPEG),e.toDataURL(o,t)})}function n(e,t=.92,o=s.JPEG){return new Promise(s=>e.toBlob(e=>s(e),o,t))}var r=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function c(e,t){return r(this,void 0,void 0,function*(){const o=e.split(",");let s=o[0].match(/:(.*?);/)[1];const i=atob(o[1]);let a=i.length;const n=new Uint8Array(a);for(;a--;)n[a]=i.charCodeAt(a);return l(t)&&(s=t),new Blob([n],{type:s})})}function d(e){return new Promise((t,o)=>{const s=new Image;s.onload=()=>t(s),s.onerror=()=>o(new Error("dataURLtoImage(): dataURL is illegal")),s.src=e})}function u(e,t){const o=document.createElement("a");o.href=window.URL.createObjectURL(e),o.download=t||Date.now().toString(36),document.body.appendChild(o);const s=document.createEvent("MouseEvents");s.initEvent("click",!1,!1),o.dispatchEvent(s),document.body.removeChild(o)}function p(e){return new Promise(t=>{const o=new FileReader;o.onloadend=e=>t(e.target.result),o.readAsDataURL(e)})}var h=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function m(e,t={}){return h(this,void 0,void 0,function*(){const o=Object.assign({},t),s=document.createElement("canvas"),l=s.getContext("2d");let i,a;for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&(o[e]=Number(o[e]));if(o.scale){const t=o.scale>0&&o.scale<10?o.scale:1;a=e.width*t,i=e.height*t}else a=o.width||o.height*e.width/e.height||e.width,i=o.height||o.width*e.height/e.width||e.height;switch([5,6,7,8].some(e=>e===o.orientation)?(s.height=a,s.width=i):(s.height=i,s.width=a),o.orientation){case 3:l.rotate(180*Math.PI/180),l.drawImage(e,-s.width,-s.height,s.width,s.height);break;case 6:l.rotate(90*Math.PI/180),l.drawImage(e,0,-s.width,s.height,s.width);break;case 8:l.rotate(270*Math.PI/180),l.drawImage(e,-s.height,0,s.height,s.width);break;case 2:l.translate(s.width,0),l.scale(-1,1),l.drawImage(e,0,0,s.width,s.height);break;case 4:l.translate(s.width,0),l.scale(-1,1),l.rotate(180*Math.PI/180),l.drawImage(e,-s.width,-s.height,s.width,s.height);break;case 5:l.translate(s.width,0),l.scale(-1,1),l.rotate(90*Math.PI/180),l.drawImage(e,0,-s.width,s.height,s.width);break;case 7:l.translate(s.width,0),l.scale(-1,1),l.rotate(270*Math.PI/180),l.drawImage(e,-s.height,0,s.height,s.width);break;default:l.drawImage(e,0,0,s.width,s.height)}return s})}function g(e){return fetch(e).then(e=>e.blob())}function f(e){return new Promise((t,o)=>{const s=new Image;s.onload=()=>t(s),s.onerror=()=>o(new Error("urltoImage(): Image failed to load, please check the image URL")),s.src=e})}var b=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function y(e,t={}){return b(this,void 0,void 0,function*(){if(!(e instanceof Blob))throw new Error("compress(): First arg must be a Blob object or a File object.");if("object"!=typeof t&&(t=Object.assign({quality:t})),t.quality=Number(t.quality),Number.isNaN(t.quality))return e;const o=yield p(e);let i=o.split(",")[0].match(/:(.*?);/)[1],n=s.JPEG;l(t.type)&&(n=t.type,i=t.type);const r=yield d(o),u=yield m(r,Object.assign({},t)),h=yield a(u,t.quality,n),g=yield c(h,i);return g.size>e.size?e:g})}function k(e,t={}){return b(this,void 0,void 0,function*(){if(!(e instanceof Blob))throw new Error("compressAccurately(): First arg must be a Blob object or a File object.");if("object"!=typeof t&&(t=Object.assign({size:t})),t.size=Number(t.size),Number.isNaN(t.size))return e;if(1024*t.size>e.size)return e;t.accuracy=Number(t.accuracy),(!t.accuracy||t.accuracy<.8||t.accuracy>.99)&&(t.accuracy=.95);const o=t.size*(2-t.accuracy)*1024,i=1024*t.size,n=t.size*t.accuracy*1024,r=yield p(e);let u=r.split(",")[0].match(/:(.*?);/)[1],h=s.JPEG;l(t.type)&&(h=t.type,u=t.type);const g=yield d(r),f=yield m(g,Object.assign({},t));let b,y=.5;const k=[null,null];for(let e=1;e<=7;e++){b=yield a(f,y,h);const t=.75*b.length;if(7===e){(ot)&&(b=[b,...k].filter(e=>e).sort((e,t)=>Math.abs(.75*e.length-i)-Math.abs(.75*t.length-i))[0]);break}if(ot))break;k[0]=b,y+=Math.pow(.5,e+1)}}const C=yield c(b,u);return C.size>e.size?e:C})}}])})},2893:function(e,t,o){"use strict";o(5331)},3597:function(e,t,o){"use strict";o(5331)},4396:function(e,t,o){"use strict";o(5331),o(4885)},4885:function(e,t,o){"use strict";o(5331)},5385:function(e,t,o){"use strict";o(5331)},5562:function(e,t,o){"use strict";o.r(t),o.d(t,{default:function(){return _t}});var s=o(8507),l=(o(5331),o(213),o(47)),i=(o(9648),o(6768)),a=o(4232);const n={class:"history-header"},r={class:"header-left"},c={class:"record-count"},d={class:"header-right"},u={key:0,class:"history-content"},p={class:"timeline-header"},h={class:"date-label"},m={key:0,class:"grid-view"},g={class:"grid-preview"},f=["src"],b=["src"],y={key:2,class:"file-icon-wrapper"},k={class:"grid-overlay"},C={class:"grid-actions"},w={class:"grid-info"},v=["title"],F={class:"upload-time"},L={key:1,class:"list-view"},U={class:"list-preview"},x=["src"],S=["src"],T={key:2,class:"file-icon-wrapper-small"},$={class:"list-info"},_=["title"],M=["title"],R={class:"list-meta"},E={class:"upload-time"},I={class:"list-actions"},A={key:1,class:"empty-state"};function P(e,t,o,P,V,z){const D=(0,i.g2)("font-awesome-icon"),B=l.S2,W=s.R7;return(0,i.uX)(),(0,i.CE)("div",{class:(0,a.C4)(["history-container",{active:o.show}])},[(0,i.Lk)("div",n,[(0,i.Lk)("div",r,[t[3]||(t[3]=(0,i.Lk)("h2",null,"历史记录",-1)),(0,i.Lk)("span",c,"共 "+(0,a.v_)(V.historyList.length)+" 条",1)]),(0,i.Lk)("div",d,[(0,i.bF)(W,{content:"切换视图",placement:"bottom"},{default:(0,i.k6)(()=>[(0,i.bF)(B,{circle:"",onClick:z.toggleViewMode},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"grid"===V.viewMode?"list":"th-large"},null,8,["icon"])]),_:1},8,["onClick"])]),_:1}),(0,i.bF)(W,{content:"清空记录",placement:"bottom"},{default:(0,i.k6)(()=>[(0,i.bF)(B,{circle:"",type:"danger",onClick:z.clearHistory},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])]),_:1}),(0,i.bF)(B,{circle:"",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"times"})]),_:1})])]),V.historyList.length>0?((0,i.uX)(),(0,i.CE)("div",u,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(z.groupedHistory,e=>((0,i.uX)(),(0,i.CE)("div",{key:e.date,class:"history-group"},[(0,i.Lk)("div",p,[t[4]||(t[4]=(0,i.Lk)("div",{class:"timeline-dot"},null,-1)),(0,i.Lk)("span",h,(0,a.v_)(e.date),1)]),"grid"===V.viewMode?((0,i.uX)(),(0,i.CE)("div",m,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(e,o)=>((0,i.uX)(),(0,i.CE)("div",{key:e.time,class:"grid-item"},[(0,i.Lk)("div",g,[z.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[1]||(t[1]=(...e)=>z.handleImageError&&z.handleImageError(...e))},null,40,f)):z.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",{key:1,src:e.url,muted:""},null,8,b)):((0,i.uX)(),(0,i.CE)("div",y,[(0,i.bF)(D,{icon:"file",class:"file-icon"})])),(0,i.Lk)("div",k,[(0,i.Lk)("div",C,[(0,i.bF)(B,{circle:"",size:"default",type:"primary",onClick:t=>z.copyLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"copy"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"default",class:"action-btn-view",onClick:t=>z.openLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"default",type:"danger",onClick:t=>z.deleteItem(e)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])])])]),(0,i.Lk)("div",w,[(0,i.Lk)("div",{class:"file-name",title:e.name},(0,a.v_)(e.name),9,v),(0,i.Lk)("div",F,(0,a.v_)(z.formatTime(e.time)),1)])]))),128))])):((0,i.uX)(),(0,i.CE)("div",L,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(e,o)=>((0,i.uX)(),(0,i.CE)("div",{key:e.time,class:"list-item"},[(0,i.Lk)("div",U,[z.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[2]||(t[2]=(...e)=>z.handleImageError&&z.handleImageError(...e))},null,40,x)):z.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",{key:1,src:e.url,muted:""},null,8,S)):((0,i.uX)(),(0,i.CE)("div",T,[(0,i.bF)(D,{icon:"file"})]))]),(0,i.Lk)("div",$,[(0,i.Lk)("div",{class:"file-name",title:e.name},(0,a.v_)(e.name),9,_),(0,i.Lk)("div",{class:"file-url",title:e.url},(0,a.v_)(e.url),9,M)]),(0,i.Lk)("div",R,[(0,i.Lk)("div",E,(0,a.v_)(z.formatTime(e.time)),1)]),(0,i.Lk)("div",I,[(0,i.bF)(B,{circle:"",size:"small",type:"primary",onClick:t=>z.copyLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"copy"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"small",class:"action-btn-view",onClick:t=>z.openLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"small",type:"danger",onClick:t=>z.deleteItem(e)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])])]))),128))]))]))),128))])):((0,i.uX)(),(0,i.CE)("div",A,[(0,i.bF)(D,{icon:"history",class:"empty-icon"}),t[5]||(t[5]=(0,i.Lk)("p",null,"暂无上传记录",-1))]))],2)}o(4114),o(8111),o(2489),o(7588),o(1701),o(3110),o(8335);var V={name:"UploadHistory",props:{show:{type:Boolean,default:!1}},data(){return{historyList:[],viewMode:"grid"}},watch:{show(e){e&&this.loadHistory()}},computed:{groupedHistory(){const e={};return this.historyList.forEach(t=>{const o=new Date(t.time),s=`${o.getFullYear()}-${String(o.getMonth()+1).padStart(2,"0")}-${String(o.getDate()).padStart(2,"0")}`;e[s]||(e[s]=[]),e[s].push(t)}),Object.keys(e).sort((e,t)=>new Date(t)-new Date(e)).map(t=>({date:t,items:e[t]}))}},mounted(){const e=localStorage.getItem("historyViewMode");e&&(this.viewMode=e)},methods:{loadHistory(){try{const e=JSON.parse(localStorage.getItem("uploadHistory")||"[]");this.historyList=e.sort((e,t)=>t.time-e.time)}catch(e){console.error("Failed to load history",e),this.historyList=[]}},toggleViewMode(){this.viewMode="grid"===this.viewMode?"list":"grid",localStorage.setItem("historyViewMode",this.viewMode)},clearHistory(){this.$confirm("确定要清空所有上传记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=[],localStorage.removeItem("uploadHistory"),this.$message.success("记录已清空")}).catch(()=>{})},deleteItem(e){this.$confirm("确定要删除这条记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=this.historyList.filter(t=>t.time!==e.time);try{const t=JSON.parse(localStorage.getItem("uploadHistory")||"[]"),o=t.filter(t=>t.time!==e.time);localStorage.setItem("uploadHistory",JSON.stringify(o)),this.$message.success("记录已删除")}catch(t){console.error("Failed to update history",t)}}).catch(()=>{})},isImage(e){const t=["jpg","jpeg","png","gif","bmp","webp","svg","tiff","ico","avif","heic","jfif","pjpeg","pjp"],o=e?e.split(".").pop().toLowerCase():"";return t.includes(o)},isVideo(e){const t=["mp4","webm","ogg","mkv"],o=e?e.split(".").pop().toLowerCase():"";return t.includes(o)},formatTime(e){const t=new Date(e),o=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),l=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0");return`${o}-${s}-${l} ${i}:${a}:${n}`},copyLink(e){navigator.clipboard.writeText(e).then(()=>{this.$message.success("链接已复制")}).catch(()=>{this.$message.error("复制失败")})},openLink(e){window.open(e,"_blank")},handleImageError(e){e.target.src=o(6682)}}},z=o(1241);const D=(0,z.A)(V,[["render",P],["__scopeId","data-v-3d294b36"]]);var B=D,W=o(6975),N=o(1418),H=(o(333),o(4757)),j=o(9267),O=(o(5616),o(5558)),Q=(o(8075),o(6810)),X=(o(4396),o(4885),o(8559)),q=(o(5970),o(9655)),J=(o(2893),o(2086)),G=(o(670),o(8830),o(3597),o(4253)),K=o(683),Y=(o(5385),o(9623)),Z=(o(6711),o(7358)),ee=o(813);o(4896);const te={class:"upload-form"},oe={class:"upload-card-glow",ref:"uploadCardGlow"},se={key:0,class:"upload-card"},le={class:"paste-card-actions"},ie={class:"upload-list-dashboard-action"},ae={class:"modern-action-group"},ne={class:"modern-dropdown-item-content"},re={class:"modern-action-btn modern-action-btn-danger"},ce=["href"],de={key:0,style:{width:"10vw","border-radius":"12px"},autoplay:"",muted:"",playsinline:"",loop:""},ue=["src"],pe=["src","onError"],he={key:2,style:{width:"10vw","border-radius":"12px"}},me={class:"upload-list-item-content"},ge={class:"upload-list-item-name-wrapper"},fe={key:0,class:"upload-list-item-url"},be={class:"upload-list-item-url-row"},ye={class:"upload-list-item-url-row"},ke={key:1,class:"upload-list-item-progress"},Ce={class:"upload-list-item-action"},we=["onClick"],ve=["onClick"];function Fe(e,t,n,r,c,d){const u=(0,i.g2)("CameraFilled"),p=ee.tk,h=Z.j5,m=Y.WK,g=l.S2,f=Q.Zh,b=Q.MQ,y=K.Ik,k=(0,i.g2)("List"),C=(0,i.g2)("Checked"),w=(0,i.g2)("Failed"),v=G.$g,F=(0,i.g2)("font-awesome-icon"),L=s.R7,U=O.qi,x=J.c6,S=J.Iy,T=J.dW,$=q.ve,_=(0,i.g2)("Link"),M=(0,i.g2)("Delete"),R=X.kA;return(0,i.uX)(),(0,i.CE)("div",te,[(0,i.Lk)("div",{class:"upload-card-wrapper",onMousemove:t[0]||(t[0]=(...t)=>e.handleUploadCardMouseMove&&e.handleUploadCardMouseMove(...t)),onMouseleave:t[1]||(t[1]=(...t)=>e.handleUploadCardMouseLeave&&e.handleUploadCardMouseLeave(...t))},[(0,i.Lk)("div",oe,null,512),"default"===n.uploadMethod?((0,i.uX)(),(0,i.Wv)(h,{key:0,class:(0,a.C4)(["upload-card",{"is-uploading":c.uploading,"upload-card-busy":c.fileList.length}]),drag:"",multiple:"","http-request":d.uploadFile,onSuccess:d.handleSuccess,"on-error":d.handleError,"before-upload":d.beforeUpload,"on-progress":d.handleProgress,"file-list":c.fileList,"show-file-list":!1},{default:(0,i.k6)(()=>[(0,i.bF)(p,{class:(0,a.C4)(["el-icon--upload",{"upload-list-busy":c.fileList.length}])},{default:(0,i.k6)(()=>[(0,i.bF)(u)]),_:1},8,["class"]),(0,i.Lk)("div",{class:(0,a.C4)(["el-upload__text",{"upload-list-busy":c.fileList.length}])},[...t[7]||(t[7]=[(0,i.Lk)("em",null,"拖拽",-1),(0,i.eW)(),(0,i.Lk)("em",null,"点击",-1),(0,i.eW)(" 或 ",-1),(0,i.Lk)("em",null,"Ctrl + V",-1),(0,i.eW)(" 粘贴上传",-1)])],2)]),_:1},8,["class","http-request","onSuccess","on-error","before-upload","on-progress","file-list"])):(0,i.Q3)("",!0)],32),"paste"===n.uploadMethod?((0,i.uX)(),(0,i.CE)("div",se,[(0,i.bF)(y,{class:(0,a.C4)(["paste-card",{"is-uploading":c.uploading,"upload-card-busy":c.fileList.length}])},{default:(0,i.k6)(()=>[(0,i.bF)(m,{modelValue:c.pastedUrls,"onUpdate:modelValue":t[2]||(t[2]=e=>c.pastedUrls=e),class:"upload-card-textarea",placeholder:"粘贴外链上传,多个外链用换行分隔",type:"textarea",rows:c.fileList.length?4:14},null,8,["modelValue","rows"]),(0,i.Lk)("div",le,[(0,i.bF)(g,{class:"paste-card-upload-button",type:"primary",size:d.pasteCardMethodButtonSize,onClick:d.handleUploadPasteUrls},{default:(0,i.k6)(()=>[...t[8]||(t[8]=[(0,i.eW)(" 上 传 ",-1)])]),_:1},8,["size","onClick"]),(0,i.bF)(b,{modelValue:c.pasteUploadMethod,"onUpdate:modelValue":t[3]||(t[3]=e=>c.pasteUploadMethod=e),class:"paste-card-method-group",size:d.pasteCardMethodButtonSize},{default:(0,i.k6)(()=>[(0,i.bF)(f,{label:"save"},{default:(0,i.k6)(()=>[...t[9]||(t[9]=[(0,i.eW)("转存",-1)])]),_:1}),(0,i.bF)(f,{label:"external"},{default:(0,i.k6)(()=>[...t[10]||(t[10]=[(0,i.eW)("外链",-1)])]),_:1})]),_:1},8,["modelValue","size"])])]),_:1},8,["class"])])):(0,i.Q3)("",!0),(0,i.bF)(y,{class:(0,a.C4)(["upload-list-card",{"upload-list-busy":c.fileList.length,"is-uploading":c.uploading}])},{default:(0,i.k6)(()=>[(0,i.Lk)("div",{class:(0,a.C4)(["upload-list-container",{"upload-list-busy":c.fileList.length}])},[(0,i.bF)(R,{onScroll:d.handleScroll,ref:"scrollContainer"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",{class:(0,a.C4)(["upload-list-dashboard",{"list-scrolled":c.listScrolled}])},[(0,i.bF)(v,{class:"upload-list-dashboard-title"},{default:(0,i.k6)(()=>[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(k)]),_:1}),(0,i.eW)((0,a.v_)(d.uploadingCount+d.waitingCount)+" ",1),(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(C)]),_:1}),(0,i.eW)((0,a.v_)(d.uploadSuccessCount)+" ",1),(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(w)]),_:1}),(0,i.eW)((0,a.v_)(d.uploadErrorCount),1)]),_:1}),(0,i.Lk)("div",ie,[(0,i.Lk)("div",ae,[(0,i.bF)(L,{disabled:d.disableTooltip,content:"整体复制",placement:"top"},{default:(0,i.k6)(()=>[(0,i.Lk)("button",{class:"modern-action-btn",onClick:t[4]||(t[4]=(...e)=>d.copyAll&&d.copyAll(...e))},[(0,i.bF)(F,{icon:"copy"})])]),_:1},8,["disabled"]),(0,i.bF)(L,{disabled:d.disableTooltip,content:"失败重试",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(T,null,{dropdown:(0,i.k6)(()=>[(0,i.bF)(S,{class:"modern-dropdown-menu"},{default:(0,i.k6)(()=>[(0,i.bF)(x,null,{default:(0,i.k6)(()=>[(0,i.Lk)("div",ne,[t[11]||(t[11]=(0,i.Lk)("span",null,"自动重试",-1)),(0,i.bF)(U,{modelValue:c.autoReUpload,"onUpdate:modelValue":t[6]||(t[6]=e=>c.autoReUpload=e),onChange:d.handleAutoRetryChange,size:"small"},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),default:(0,i.k6)(()=>[(0,i.Lk)("button",{class:"modern-action-btn",onClick:t[5]||(t[5]=(...e)=>d.retryError&&d.retryError(...e))},[(0,i.bF)(F,{icon:"redo"})])]),_:1})]),_:1},8,["disabled"]),(0,i.bF)(L,{disabled:d.disableTooltip,content:"清空列表",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(T,null,{dropdown:(0,i.k6)(()=>[(0,i.bF)(S,{class:"modern-dropdown-menu"},{default:(0,i.k6)(()=>[(0,i.bF)(x,{onClick:d.clearFileList},{default:(0,i.k6)(()=>[...t[12]||(t[12]=[(0,i.eW)("清空全部",-1)])]),_:1},8,["onClick"]),(0,i.bF)(x,{onClick:d.clearSuccessList},{default:(0,i.k6)(()=>[...t[13]||(t[13]=[(0,i.eW)("清空已上传",-1)])]),_:1},8,["onClick"])]),_:1})]),default:(0,i.k6)(()=>[(0,i.Lk)("button",re,[(0,i.bF)(F,{icon:"trash-alt"})])]),_:1})]),_:1},8,["disabled"])])])],2),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(c.fileList.slice().reverse(),e=>((0,i.uX)(),(0,i.CE)("div",{class:"upload-list-item",key:e.name,span:8},[(0,i.Lk)("a",{href:e.url,target:"_blank",class:"upload-list-item-preview"},[d.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",de,[(0,i.Lk)("source",{src:e.url,type:"video/mp4"},null,8,ue),t[14]||(t[14]=(0,i.eW)(" Your browser does not support the video tag. ",-1))])):d.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:1,style:{width:"10vw","border-radius":"12px"},src:e.url,onError:t=>e.url=o(6682)},null,40,pe)):((0,i.uX)(),(0,i.CE)("div",he,[(0,i.bF)(F,{icon:"file",class:"file-icon"})]))],8,ce),(0,i.Lk)("div",me,[(0,i.Lk)("div",ge,[(0,i.bF)(v,{class:"upload-list-item-name",truncated:""},{default:(0,i.k6)(()=>[(0,i.eW)((0,a.v_)(d.truncateFilename(e.name)),1)]),_:2},1024)]),"done"===e.status?((0,i.uX)(),(0,i.CE)("div",fe,[(0,i.Lk)("div",be,[(0,i.bF)(m,{modelValue:e.finalURL,"onUpdate:modelValue":t=>e.finalURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,i.k6)(()=>[...t[15]||(t[15]=[(0,i.eW)("URL",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,i.bF)(m,{modelValue:e.mdURL,"onUpdate:modelValue":t=>e.mdURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,i.k6)(()=>[...t[16]||(t[16]=[(0,i.eW)("MarkDown",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])]),(0,i.Lk)("div",ye,[(0,i.bF)(m,{modelValue:e.htmlURL,"onUpdate:modelValue":t=>e.htmlURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,i.k6)(()=>[...t[17]||(t[17]=[(0,i.eW)("HTML",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,i.bF)(m,{modelValue:e.ubbURL,"onUpdate:modelValue":t=>e.ubbURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,i.k6)(()=>[...t[18]||(t[18]=[(0,i.eW)("BBCode",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])])])):((0,i.uX)(),(0,i.CE)("div",ke,[(0,i.bF)($,{percentage:e.progreess,status:e.status,"show-text":!1},null,8,["percentage","status"])]))]),(0,i.Lk)("div",Ce,[(0,i.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-primary",onClick:t=>d.handleCopy(e)},[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(_)]),_:1})],8,we),(0,i.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-danger",onClick:t=>d.handleRemove(e)},[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(M)]),_:1})],8,ve)])]))),128))]),_:1},8,["onScroll"])],2)]),_:1},8,["class"])])}o(6573),o(8100),o(7936),o(116),o(8237),o(9577),o(1549),o(9797),o(9631),o(5623),o(4979),o(4603),o(7566),o(8721);var Le=o(457),Ue=o(6334),xe=o(8401),Se={name:"UploadForm",props:{selectedUrlForm:{type:String,default:"url",required:!1},customerCompress:{type:Boolean,default:!0,required:!1},compressQuality:{type:Number,default:4,required:!1},compressBar:{type:Number,default:5,required:!1},serverCompress:{type:Boolean,default:!0,required:!1},uploadChannel:{type:String,default:"telegram",required:!1},uploadNameType:{type:String,default:"default",required:!1},useCustomUrl:{type:String,default:"false",required:!1},customUrlPrefix:{type:String,default:"",required:!1},autoRetry:{type:Boolean,default:!0,required:!1},urlPrefix:{type:String,default:"",required:!1},uploadMethod:{type:String,default:"default",required:!1},uploadFolder:{type:String,default:"",required:!1},convertToWebp:{type:Boolean,default:!1,required:!1}},data(){return{fileList:[],uploading:!1,maxUploading:6,exceptionList:[],listScrolled:!1,fileListLength:0,uploadCount:0,pastedUrls:"",pasteUploadMethod:"save",autoReUpload:!0,maxRetryCount:10,retryTimer:null,retryDelay:12e3,uploadQueue:[],activeUploads:0,maxConcurrentUploads:6,abortControllers:new Map}},watch:{fileList:{handler(){this.fileList.length>this.fileListLength&&this.$nextTick(()=>{setTimeout(()=>{this.$refs.scrollContainer&&this.$refs.scrollContainer.setScrollTop(0)},100)}),this.fileListLength=this.fileList.length},deep:!0},useCustomUrl:{handler(){"true"===this.useCustomUrl?this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.customUrlPrefix+e.srcID,e.mdURL=`![${e.name}](${this.customUrlPrefix+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.customUrlPrefix+e.srcID}[/img]`)}):this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.rootUrl+e.srcID,e.mdURL=`![${e.name}](${this.rootUrl+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.rootUrl+e.srcID}[/img]`)})},immediate:!0},customUrlPrefix:{handler(){"true"===this.useCustomUrl&&this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.customUrlPrefix+e.srcID,e.mdURL=`![${e.name}](${this.customUrlPrefix+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.customUrlPrefix+e.srcID}[/img]`)})},immediate:!0},autoReUpload(e){this.$store.commit("setStoreAutoReUpload",e)}},computed:{...(0,xe.L8)(["storeAutoReUpload"]),uploadSuccessCount(){return this.fileList.filter(e=>"done"===e.status||"success"===e.status).length},uploadErrorCount(){return this.fileList.filter(e=>"exception"===e.status).length},uploadingCount(){return this.fileList.filter(e=>"uploading"===e.status).length},waitingCount(){return this.uploadQueue.length},urlSize(){return window.innerWidth<768?"small":"default"},disableTooltip(){return window.innerWidth<768},rootUrl(){return"true"===this.useCustomUrl?this.customUrlPrefix:this.urlPrefix||`${window.location.protocol}//${window.location.host}/file/`},pasteCardMethodButtonSize(){return this.fileList.length||window.innerWidth<768?"small":"medium"}},mounted(){document.addEventListener("paste",this.handlePaste),this.autoReUpload=this.storeAutoReUpload},beforeUnmount(){document.removeEventListener("paste",this.handlePaste),this.uploadQueue=[],this.fileList=[],this.activeUploads=0},methods:{truncateFilename(e,t=20){if(!e||e.length<=t)return e;const o=e.lastIndexOf(".");let s,l;o>0?(s=e.substring(0,o),l=e.substring(o)):(s=e,l="");const i=l.length+4,a=t-i-3;return a<=0?e.substring(0,t-3)+"...":s.substring(0,a)+"..."+s.slice(-4)+l},uploadFile(e){if(!this.fileList.find(t=>t.uid===e.file.uid))return;if(this.activeUploads>=this.maxConcurrentUploads){this.uploadQueue.push(e);const t=this.fileList.find(t=>t.uid===e.file.uid);return void(t&&(t.status="waiting"))}this.activeUploads++;const t=this.fileList.find(t=>t.uid===e.file.uid);t&&(t.status="uploading");const o=this.fileList.find(t=>t.uid===e.file.uid),s=o?.uploadChannel||this.uploadChannel;if("external"===s)return void this.uploadSingleFile(e);if("huggingface"===s){const t=20971520;return void(e.file.size>=t?this.uploadToHuggingFaceDirect(e):this.uploadSingleFile(e))}if("discord"===s){const t=9437184;return void(e.file.size>t?this.uploadFileInChunks(e):this.uploadSingleFile(e))}const l=20971520;e.file.size>l?this.uploadFileInChunks(e):this.uploadSingleFile(e)},processUploadQueue(){if(0===this.uploadQueue.length||this.activeUploads>=this.maxConcurrentUploads)return;const e=this.uploadQueue.shift();e&&this.fileList.find(t=>t.uid===e.file.uid)?this.uploadFile(e):this.processUploadQueue()},onUploadComplete(){this.activeUploads=Math.max(0,this.activeUploads-1),this.processUploadQueue(),0===this.activeUploads&&0===this.uploadQueue.length&&(this.uploading=!1)},async uploadSingleFile(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=t.serverCompress,s=t.uploadChannel||this.uploadChannel,l=this.autoRetry&&"external"!==s,i="external"===s?"default":this.uploadNameType,a=new AbortController;this.abortControllers.set(e.file.uid,a);const n=new FormData;if(n.append("file",e.file),"external"===s&&n.append("url",e.file.url),"huggingface"===s)try{console.log("Computing SHA256 for HuggingFace upload...");const t=await this.computeSha256(e.file);n.append("sha256",t),console.log("SHA256 computed:",t)}catch(r){console.error("Failed to compute SHA256:",r)}(0,Le.A)({url:"/upload?serverCompress="+o+"&uploadChannel="+s+"&uploadNameType="+i+"&autoRetry="+l+"&uploadFolder="+this.uploadFolder,method:"post",data:n,withAuthCode:!0,signal:a.signal,onUploadProgress:t=>{const o=Math.round(t.loaded/t.total*100);e.onProgress({percent:o,file:e.file})}}).then(t=>{e.onSuccess(t,e.file)}).catch(t=>{"CanceledError"!==t.name&&"ERR_CANCELED"!==t.code?t.response&&401!==t.response.status?(this.exceptionList.push(e),e.onError(t,e.file)):t.response||(this.exceptionList.push(e),e.onError(t,e.file)):console.log("上传已取消:",e.file.name)}).finally(()=>{this.abortControllers.delete(e.file.uid),this.onUploadComplete()})},async uploadFileInChunks(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=t.uploadChannel||this.uploadChannel,s=new AbortController;this.abortControllers.set(e.file.uid,s);const l="discord"===o?9437184:16777216,i=e.file.size,a=Math.ceil(i/l),n=t.serverCompress,r=this.autoRetry&&"external"!==o,c="external"===o?"default":this.uploadNameType;let d=null;if("huggingface"===o)try{console.log("Computing SHA256 for HuggingFace chunked upload..."),d=await this.computeSha256(e.file),console.log("SHA256 computed:",d)}catch(u){console.error("Failed to compute SHA256:",u)}try{const t=new FormData;t.append("originalFileName",e.file.name),t.append("originalFileType",e.file.type),t.append("totalChunks",a.toString());const p=await(0,Le.A)({url:"/upload?serverCompress="+n+"&uploadChannel="+o+"&uploadNameType="+c+"&autoRetry="+r+"&uploadFolder="+this.uploadFolder+"&initChunked=true",method:"post",data:t,withAuthCode:!0});if(!p.data.success)throw new Error("初始化分块上传失败: "+p.data.message);const h=p.data.uploadId;console.log("分块上传初始化成功,uploadId:",h);const m=this.fileList.find(t=>t.uid===e.file.uid);m&&(m.totalChunks=a,m.uploadId=h);const g=3,f=new Array(a).fill(0);let b=0,y=!1,k="",C=!1;const w=async t=>{if(y||C)return;const d=t*l,p=Math.min(d+l,i),m=e.file.slice(d,p),g=new FormData;g.append("file",m,`${e.file.name}.part${t.toString().padStart(3,"0")}`),g.append("chunkIndex",t.toString()),g.append("totalChunks",a.toString()),g.append("uploadId",h),g.append("originalFileName",e.file.name),g.append("originalFileType",e.file.type);let b=0;const w=3;while(b{if(y||C)return;const s=Math.round(o.loaded/o.total*100);f[t]=s;const l=Math.round(f.reduce((e,t)=>e+t,0)/a);e.onProgress({percent:l,file:e.file})}})}catch(u){if("CanceledError"===u.name||"ERR_CANCELED"===u.code)return C=!0,void console.log("分块上传已取消:",e.file.name);if(b++,console.warn(`分块 ${t+1}/${a} 上传失败 (重试 ${b}/${w}):`,u),b>=w)throw y=!0,k=`分块 ${t+1}/${a} 上传失败: ${u.message}`,new Error(k);await new Promise(e=>setTimeout(e,2e3*b))}}},v=[];for(let e=0;e{while(bt.uid===e.file.uid);t&&t.uploadId&&this.cleanupUploadResources(t.uploadId,t.totalChunks).then(()=>{console.log(`已清理分块上传失败的资源: ${t.uploadId}`)}).catch(e=>{console.warn("清理分块上传失败资源时出错:",e)}),u.response&&401!==u.response.status?(this.exceptionList.push(e),e.onError(u,e.file)):u.response||(this.exceptionList.push(e),e.onError(u,e.file))}finally{this.abortControllers.delete(e.file.uid),this.onUploadComplete()}},handleRemove(e){this.abortControllers.has(e.uid)&&(this.abortControllers.get(e.uid).abort(),this.abortControllers.delete(e.uid)),this.uploadQueue=this.uploadQueue.filter(t=>t.file.uid!==e.uid),this.fileList=this.fileList.filter(t=>t.uid!==e.uid),this.$message({type:"info",message:this.truncateFilename(e.name)+"已删除"})},async cleanupUploadResources(e,t=0){try{await(0,Le.A)({url:`/upload?cleanup=true&uploadId=${e}&totalChunks=${t}`,method:"get",withAuthCode:!0,timeout:5e3}),console.log(`清理上传资源成功: ${e}`)}catch(o){console.warn("清理上传资源失败:",o)}},handleSuccess(e,t){const o=this.fileList.find(e=>e.uid===t.uid);if(o)try{const s=o.uploadChannel||this.uploadChannel;if("external"!==s){const s=e.data[0].src.replace("/file/","");o.url=`${window.location.protocol}//${window.location.host}/file/`+s,o.finalURL=this.rootUrl+s,o.mdURL=`![${t.name}](${this.rootUrl+s})`,o.htmlURL=`${t.name}`,o.ubbURL=`[img]${this.rootUrl+s}[/img]`,o.srcID=s}o.progreess=100,o.status="success",this.saveToHistory(o),this.$message({type:"success",message:this.truncateFilename(t.name)+"上传成功"}),setTimeout(()=>{const e=this.fileList.find(e=>e.uid===t.uid);e&&(e.status="done")},1e3)}catch(s){this.$message.error(this.truncateFilename(t.name)+"上传失败"),o.status="exception"}},saveToHistory(e){try{const t=JSON.parse(localStorage.getItem("uploadHistory")||"[]"),o={name:e.name,url:e.finalURL,time:Date.now(),type:e.name.split(".").pop().toLowerCase()};t.push(o),localStorage.setItem("uploadHistory",JSON.stringify(t))}catch(t){console.error("Failed to save history",t)}},handleError(e,t){const o=this.fileList.find(e=>e.uid===t.uid);o&&(this.$message.error(this.truncateFilename(t.name)+"上传失败"),o.status="exception",this.autoReUpload&&this.scheduleAutoRetry())},handleCopy(e){const t=this.fileList.find(t=>t.uid===e.uid).status;"done"===t||"success"===t?("url"===this.selectedUrlForm?navigator.clipboard.writeText(e.finalURL):"md"===this.selectedUrlForm?navigator.clipboard.writeText(e.mdURL):"html"===this.selectedUrlForm?navigator.clipboard.writeText(e.htmlURL):"ubb"===this.selectedUrlForm?navigator.clipboard.writeText(e.ubbURL):navigator.clipboard.writeText(e.finalURL),this.$message({type:"success",message:"复制成功"})):this.$message({type:"warning",message:"文件未上传成功,无法复制链接"})},beforeUpload(e){return new Promise(async(t,o)=>{let s=e;const l=this.convertToWebp&&e.type.includes("image")&&!e.type.includes("webp")&&!e.type.includes("gif")&&!e.type.includes("svg");if(l)try{const t=await this.convertImageToWebp(e);t&&(s=t,console.log(`WebP转换成功: ${e.name} -> ${t.name}, 大小: ${(e.size/1024).toFixed(1)}KB -> ${(t.size/1024).toFixed(1)}KB`))}catch(r){console.warn("WebP转换失败,使用原文件:",r)}const i=s.type.includes("image")&&this.customerCompress&&s.size/1024/1024>this.compressBar,a=s.size/1024/1024<=1024||"telegram"!==this.uploadChannel,n=(e,o)=>{const s=URL.createObjectURL(e);this.fileList.push({uid:e.uid,name:e.name,url:s,finalURL:"",mdURL:"",htmlURL:"",ubbURL:"",srcID:"",status:"uploading",progreess:0,serverCompress:o,retryCount:0}),t(e)};if(i)Ue.compressAccurately(s,1024*this.compressQuality).then(t=>{t.size/1024/1024>1024&&"telegram"===this.uploadChannel&&(this.$message.error(s.name+"压缩后文件过大,无法上传!"),o("文件过大")),this.uploading=!0;const l=new File([t],s.name,{type:t.type});l.uid=e.uid;const i=this.uploadCount++,a=this.serverCompress&&l.size/1024/1024<10&&"telegram"===this.uploadChannel;0===i?n(l,a):setTimeout(()=>{n(l,a),this.uploadCount--},300*i)}).catch(e=>{this.$message.error(s.name+"压缩失败,无法上传!"),o(e)});else if(a){this.uploading=!0;const e=this.uploadCount++,t="telegram"===this.uploadChannel&&this.serverCompress&&(!s.type.includes("image")||s.size/1024/1024<10);0===e?n(s,t):setTimeout(()=>{n(s,t),this.uploadCount--},300*e)}else this.$message.error(s.name+"文件过大,无法上传!"),o("文件过大")})},handleProgress(e){const t=this.fileList.find(t=>t.uid===e.file.uid);t&&(t.progreess=e.percent)},copyAll(){if("url"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.finalURL}).join("\n");navigator.clipboard.writeText(e)}else if("md"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.mdURL}).join("\n");navigator.clipboard.writeText(e)}else if("html"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.htmlURL}).join("\n");navigator.clipboard.writeText(e)}else if("ubb"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.ubbURL}).join("\n");navigator.clipboard.writeText(e)}else{const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.finalURL}).join("\n");navigator.clipboard.writeText(e)}this.$message({type:"success",message:"整体复制成功"})},clearFileList(){this.fileList.length>0?(this.abortControllers.forEach((e,t)=>{e.abort()}),this.abortControllers.clear(),this.uploadQueue=[],this.fileList=[],this.$message({type:"success",message:"文件列表已清空"})):this.$message({type:"info",message:"文件列表为空"})},clearSuccessList(){this.uploadSuccessCount>0?(this.fileList=this.fileList.filter(e=>"done"!==e.status&&"success"!==e.status),this.$message({type:"success",message:"成功上传文件已清空"})):this.$message({type:"info",message:"成功上传文件为空"})},handlePaste(e){if("INPUT"===e.target.tagName||"TEXTAREA"===e.target.tagName)return;const t=e.clipboardData.items;t.length>0&&this.uploadFromUrl(t)},handleUploadPasteUrls(){const e=this.pastedUrls.split("\n"),t=e.map(e=>e.trim()).filter(e=>""!==e).filter(e=>/^(https?:\/\/[^\s$.?#].[^\s]*)$/.test(e));if("save"===this.pasteUploadMethod)this.uploadFromUrl(t.map(e=>({kind:"string",getAsString:t=>{t(e)}})));else if("external"===this.pasteUploadMethod)for(let o=0;o`,a=`[img]${e}[/img]`,n=new File([],e.split("/").pop(),{type:"text/plain"});n.uid=Date.now()+o,n.url=e,this.fileList.push({uid:n.uid,name:n.name,url:e,finalURL:e,mdURL:l,htmlURL:i,ubbURL:a,srcID:e,status:"uploading",progreess:0,serverCompress:!1,uploadChannel:"external",retryCount:0}),this.uploadFile({file:n,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}},uploadFromUrl(e){for(let t=0;t{e instanceof File&&this.uploadFile({file:e,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}).catch(e=>{console.log(e)})}else"string"===e[t].kind&&e[t].getAsString(e=>{const o=/^(https?:\/\/[^\s$.?#].[^\s]*)$/;let s="";o.test(e)&&Le.A.post("/api/fetchRes",{url:e},{responseType:"blob"}).then(o=>{o.headers["content-type"];if(200!=o.status)throw new Error("URL地址请求失败");{const i=o.headers["content-disposition"];if(i){const e=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/,t=/filename\*\s*=\s*UTF-8''([^;\n]*)/;let o=e.exec(i);if(null!=o&&o[1]){s=o[1].replace(/['"]/g,"");try{s=decodeURIComponent(s)}catch(l){s=""}}""===s&&(o=t.exec(i),null!=o&&o[1]&&(s=decodeURIComponent(o[1])))}if(""===s){const t=new URL(e);s=t.pathname.split("/").pop()}if(""===s){const o=new URL(e);let l=o.pathname.split(".").pop();(!l||""===l||l.length>10)&&(l="bin"),s="PastedFile"+Date.now()+t+"."+l}const a=o.data,n=new File([a],s,{type:a.type});n.uid=Date.now()+t;const r=this.beforeUpload(n);r instanceof Promise&&r.then(e=>{e instanceof File&&this.uploadFile({file:e,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}).catch(e=>{console.log(e)})}}).catch(e=>{this.$message({type:"warning",message:"粘贴板中的URL地址请求失败"})})})},selectAllText(e){navigator.clipboard.writeText(e.target.value).then(()=>{this.$message({type:"success",message:"复制成功"})}).catch(()=>{this.$message({type:"error",message:"复制失败"})})},isImage(e){const t=["jpg","jpeg","png","gif","bmp","webp","svg","tiff","ico","avif","heic","jfif","pjpeg","pjp","raw","cr2","nef","dng","eps","ai","emf","wmf"],o=e.split(".").pop().toLowerCase();return t.includes(o)},isVideo(e){const t=["mp4","webm","ogg","mkv"],o=e.split(".").pop().toLowerCase();return t.includes(o)},handleScroll(e){this.listScrolled=e.scrollTop>0&&this.fileList.length>0},retryError(){this.exceptionList.length>0?(this.retryFailedFiles(this.exceptionList),this.exceptionList=[]):this.$message({type:"info",message:"无上传失败文件"})},handleAutoRetryChange(e){this.$message({type:e?"success":"info",message:e?"自动重试已开启":"自动重试已关闭"}),e&&this.exceptionList.length>0&&this.scheduleAutoRetry()},retryFailedFiles(e){e.forEach(e=>{const t=e.retryCount||0;tthis.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})):this.$message({type:"warning",message:`${e.name} 已达到最大重试次数(${this.maxRetryCount}),停止重试`})})},scheduleAutoRetry(){this.retryTimer&&clearTimeout(this.retryTimer),this.retryTimer=setTimeout(()=>{if(this.autoReUpload&&this.exceptionList.length>0){const e=[...this.exceptionList];this.exceptionList=[],this.retryFailedFiles(e)}},this.retryDelay)},async uploadToHuggingFaceDirect(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=new AbortController;this.abortControllers.set(e.file.uid,o);try{console.log("=== HuggingFace Direct Upload ==="),console.log("File:",e.file.name,"Size:",e.file.size),e.onProgress({percent:5,file:e.file}),console.log("Computing SHA256...");const t=await this.computeSha256(e.file);if(console.log("SHA256:",t),o.signal.aborted)return void console.log("HuggingFace 上传已取消:",e.file.name);const s=new Uint8Array(await e.file.slice(0,512).arrayBuffer()),l=btoa(String.fromCharCode(...s));e.onProgress({percent:10,file:e.file}),console.log("Getting LFS upload URL...");const i=await(0,Le.A)({url:"/api/huggingface/getUploadUrl",method:"post",data:{fileSize:e.file.size,fileName:e.file.name,sha256:t,fileSample:l},withAuthCode:!0,signal:o.signal});if(!i.data.success)throw new Error(i.data.error||"Failed to get upload URL");const a=i.data;if(console.log("Upload info:",a),a.alreadyExists)console.log("File already exists in LFS, skipping upload"),e.onProgress({percent:90,file:e.file});else if(a.needsLfs&&a.uploadAction){const{href:t,header:s}=a.uploadAction;if(s?.chunk_size)await this.uploadToHuggingFaceMultipart(e,a,o);else{console.log("Uploading to S3 (basic)...");const l=await fetch(t,{method:"PUT",headers:s||{},body:e.file,signal:o.signal});if(!l.ok){const e=await l.text();throw new Error(`S3 upload failed: ${l.status} - ${e}`)}console.log("S3 upload complete")}}if(o.signal.aborted)return void console.log("HuggingFace 上传已取消:",e.file.name);e.onProgress({percent:95,file:e.file}),console.log("Committing file...");const n=await(0,Le.A)({url:"/api/huggingface/commitUpload",method:"post",data:{fullId:a.fullId,filePath:a.filePath,sha256:t,fileSize:e.file.size,fileName:e.file.name,channelName:a.channelName},withAuthCode:!0,signal:o.signal});if(!n.data.success)throw new Error(n.data.error||"Failed to commit file");console.log("Upload complete:",n.data);const r={data:[{src:n.data.src}]};e.onSuccess(r,e.file)}catch(s){if("CanceledError"===s.name||"ERR_CANCELED"===s.code||"AbortError"===s.name)return void console.log("HuggingFace 上传已取消:",e.file.name);console.error("HuggingFace direct upload error:",s),this.exceptionList.push(e),e.onError(s,e.file)}finally{this.abortControllers.delete(e.file.uid),this.onUploadComplete()}},async uploadToHuggingFaceMultipart(e,t,o){const{uploadAction:s}=t,{href:l,header:i}=s,a=parseInt(i.chunk_size),n=Object.keys(i).filter(e=>/^[0-9]+$/.test(e));console.log(`Multipart upload: ${n.length} parts, chunk size: ${a}`);const r=[],c=n.length;for(const u of n){if(o&&o.signal.aborted)throw console.log("HuggingFace 分片上传已取消"),new DOMException("Upload cancelled","AbortError");const t=parseInt(u)-1,s=t*a,l=Math.min(s+a,e.file.size),n=e.file.slice(s,l);console.log(`Uploading part ${u}/${c}`);const d=await fetch(i[u],{method:"PUT",body:n,signal:o?o.signal:void 0});if(!d.ok)throw new Error(`Failed to upload part ${u}: ${d.status}`);const p=d.headers.get("ETag");if(!p)throw new Error(`No ETag for part ${u}`);r.push({partNumber:parseInt(u),etag:p});const h=10+Math.round(parseInt(u)/c*80);e.onProgress({percent:h,file:e.file})}if(o&&o.signal.aborted)throw console.log("HuggingFace 分片上传已取消"),new DOMException("Upload cancelled","AbortError");console.log("Completing multipart upload...");const d=await fetch(l,{method:"POST",headers:{Accept:"application/vnd.git-lfs+json","Content-Type":"application/vnd.git-lfs+json"},body:JSON.stringify({oid:t.oid,parts:r}),signal:o?o.signal:void 0});if(!d.ok){const e=await d.text();throw new Error(`Multipart complete failed: ${d.status} - ${e}`)}console.log("Multipart upload complete")},async computeSha256(e){const t=this.createSha256(),o=4194304;let s=0;while(se>>>t|e<<32-t,a=o=>{const s=new Uint32Array(64);for(let e=0;e<16;e++)s[e]=o[4*e]<<24|o[4*e+1]<<16|o[4*e+2]<<8|o[4*e+3];for(let e=16;e<64;e++){const t=i(s[e-15],7)^i(s[e-15],18)^s[e-15]>>>3,o=i(s[e-2],17)^i(s[e-2],19)^s[e-2]>>>10;s[e]=s[e-16]+t+s[e-7]+o>>>0}let[l,a,n,r,c,d,u,p]=t;for(let t=0;t<64;t++){const o=i(c,6)^i(c,11)^i(c,25),h=c&d^~c&u,m=p+o+h+e[t]+s[t]>>>0,g=i(l,2)^i(l,13)^i(l,22),f=l&a^l&n^a&n,b=g+f>>>0;p=u,u=d,d=c,c=r+m>>>0,r=n,n=a,a=l,l=m+b>>>0}t[0]=t[0]+l>>>0,t[1]=t[1]+a>>>0,t[2]=t[2]+n>>>0,t[3]=t[3]+r>>>0,t[4]=t[4]+c>>>0,t[5]=t[5]+d>>>0,t[6]=t[6]+u>>>0,t[7]=t[7]+p>>>0};return{update(e){l+=e.length;let t=0;if(s>0){const l=64-s,i=Math.min(l,e.length);o.set(e.subarray(0,i),s),s+=i,t=i,64===s&&(a(o),s=0)}while(t+64<=e.length)a(e.subarray(t,t+64)),t+=64;t56&&(o.fill(0,s,64),a(o),s=0),o.fill(0,s,56);const i=new DataView(o.buffer);i.setUint32(56,Math.floor(e/4294967296),!1),i.setUint32(60,e>>>0,!1),a(o);let n="";for(let o=0;o<8;o++)n+=t[o].toString(16).padStart(8,"0");return n}}},async convertImageToWebp(e){return new Promise((t,o)=>{if(e.type.includes("gif")||e.type.includes("svg")||e.type.includes("webp"))return void t(null);const s=new Image,l=document.createElement("canvas"),i=l.getContext("2d");s.onload=()=>{l.width=s.width,l.height=s.height,i.drawImage(s,0,0),l.toBlob(l=>{if(l){const o=e.name,s=o.lastIndexOf("."),i=s>0?o.substring(0,s)+".webp":o+".webp",a=new File([l],i,{type:"image/webp"});a.uid=e.uid,t(a)}else o(new Error("WebP 转换失败"));URL.revokeObjectURL(s.src)},"image/webp",.92)},s.onerror=()=>{URL.revokeObjectURL(s.src),o(new Error("图片加载失败"))},s.src=URL.createObjectURL(e)})}},beforeDestroy(){this.retryTimer&&clearTimeout(this.retryTimer)}};const Te=(0,z.A)(Se,[["render",Fe],["__scopeId","data-v-c5a15344"]]);var $e=Te,_e=o(732),Me=o(4453);const Re={class:"container"},Ee={class:"upload-home"},Ie={href:"https://cfbed.sanyue.de/qa/",target:"_blank",class:"info-container"},Ae={class:"toolbar-manage"},Pe={class:"toolbar"},Ve={class:"header"},ze={class:"title"},De={class:"main-title",href:"https://github.com/MarSeventh/CloudFlare-ImgBed",target:"_blank"},Be={class:"dialog-section"},We={class:"section-content"},Ne={class:"dialog-section"},He={class:"section-header"},je={class:"section-content"},Oe={class:"setting-item"},Qe={key:0,class:"setting-item"},Xe={class:"dialog-action"},qe={class:"dialog-section"},Je={class:"section-content"},Ge={class:"setting-item"},Ke={class:"setting-item"},Ye={class:"setting-item"},Ze={class:"setting-label"},et={class:"dialog-section"},tt={class:"section-content"},ot={class:"dialog-section"},st={class:"section-header"},lt={class:"section-content"},it={class:"setting-item"},at={class:"setting-label"},nt={class:"setting-item"},rt={key:0,class:"setting-item slider-item"},ct={class:"setting-label"},dt={class:"slider-wrapper"},ut={class:"slider-input-wrapper"},pt={key:1,class:"setting-item slider-item"},ht={class:"setting-label"},mt={class:"slider-wrapper"},gt={class:"slider-input-wrapper"},ft={key:0,class:"dialog-section"},bt={class:"section-header"},yt={class:"section-content"},kt={class:"setting-item"},Ct={class:"dialog-action"},wt=["innerHTML"],vt={class:"dialog-footer"};function Ft(e,t,o,n,r,c){const d=Me.A,u=(0,i.g2)("font-awesome-icon"),p=s.R7,h=Y.WK,m=l.S2,g=J.c6,f=J.Iy,b=J.dW,y=_e.A,k=$e,C=Q.ll,w=Q.MQ,v=O.qi,F=j.kZ,L=H.B8,U=N.lq,x=W.A,S=B;return(0,i.uX)(),(0,i.CE)("div",Re,[(0,i.Lk)("div",Ee,[(0,i.bF)(d,{class:"toggle-dark-button desktop-only"}),(0,i.bF)(p,{content:"查看文档",placement:"bottom",disabled:c.disableTooltip},{default:(0,i.k6)(()=>[(0,i.Lk)("a",Ie,[(0,i.bF)(u,{icon:"book",class:"info-icon",size:"lg"})])]),_:1},8,["disabled"]),(0,i.bF)(h,{class:(0,a.C4)(["upload-folder",{active:r.isFolderInputActive,"no-announcement":!c.announcementAvailable}]),modelValue:r.uploadFolder,"onUpdate:modelValue":t[0]||(t[0]=e=>r.uploadFolder=e),placeholder:"上传目录",onFocus:t[1]||(t[1]=e=>r.isFolderInputActive=!0),onBlur:t[2]||(t[2]=e=>r.isFolderInputActive=!1)},null,8,["class","modelValue"]),(0,i.bF)(p,{content:"切换上传方式",placement:"bottom",disabled:c.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"upload-method-button desktop-only",onClick:c.handleChangeUploadMethod},{default:(0,i.k6)(()=>["default"===r.uploadMethod?((0,i.uX)(),(0,i.Wv)(u,{key:0,icon:"folder-open",class:"upload-method-icon",size:"lg"})):"paste"===r.uploadMethod?((0,i.uX)(),(0,i.Wv)(u,{key:1,icon:"paste",class:"upload-method-icon",size:"lg"})):(0,i.Q3)("",!0)]),_:1},8,["onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{content:"上传记录",placement:"bottom",disabled:c.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"history-button desktop-only",onClick:t[3]||(t[3]=e=>r.showHistory=!0)},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"history",class:"history-icon",size:"lg"})]),_:1})]),_:1},8,["disabled"]),c.announcementAvailable?((0,i.uX)(),(0,i.Wv)(p,{key:0,content:"查看公告",placement:"bottom",disabled:c.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"announcement-button desktop-only",onClick:c.handleShowAnnouncement},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"bullhorn",class:"announcement-icon",size:"lg"})]),_:1},8,["onClick"])]),_:1},8,["disabled"])):(0,i.Q3)("",!0),(0,i.bF)(b,{class:"mobile-more-dropdown mobile-only",trigger:"click",onCommand:c.handleMobileMenuCommand},{dropdown:(0,i.k6)(()=>[(0,i.bF)(f,null,{default:(0,i.k6)(()=>[(0,i.bF)(g,{command:"toggleTheme"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:c.getThemeIcon(),style:{"margin-right":"8px"}},null,8,["icon"]),(0,i.eW)(" "+(0,a.v_)(c.getThemeText()),1)]),_:1}),(0,i.bF)(g,{command:"toggleUploadMethod"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"default"===r.uploadMethod?"paste":"folder-open",style:{"margin-right":"8px"}},null,8,["icon"]),(0,i.eW)(" "+(0,a.v_)("default"===r.uploadMethod?"粘贴上传":"文件上传"),1)]),_:1}),(0,i.bF)(g,{command:"showHistory"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"history",style:{"margin-right":"8px"}}),t[25]||(t[25]=(0,i.eW)(" 上传记录 ",-1))]),_:1}),(0,i.bF)(g,{command:"showAnnouncement",disabled:!c.announcementAvailable},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"bullhorn",style:{"margin-right":"8px"}}),t[26]||(t[26]=(0,i.eW)(" 查看公告 ",-1))]),_:1},8,["disabled"])]),_:1})]),default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"mobile-more-button"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"ellipsis-v",size:"lg"})]),_:1})]),_:1},8,["onCommand"]),(0,i.Lk)("div",Ae,[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-manage-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleOpenToolbar,circle:""},{default:(0,i.k6)(()=>[r.isToolBarOpen?((0,i.uX)(),(0,i.Wv)(u,{key:1,icon:"times",class:"manage-icon",size:"lg"})):((0,i.uX)(),(0,i.Wv)(u,{key:0,icon:"bars",class:"manage-icon",size:"lg"}))]),_:1},8,["class","onClick"])]),(0,i.Lk)("div",Pe,[(0,i.bF)(p,{disabled:c.disableTooltip,content:"上传设置",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button compress-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openCompressDialog,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cloud-upload",class:"compress-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:c.disableTooltip,content:"链接格式",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button link-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openUrlDialog,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"link",class:"link-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:c.disableTooltip,content:"系统管理",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button config-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleManage,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cog",class:"config-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:c.disableTooltip,content:"退出登录",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button sign-out-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleLogout,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"sign-out-alt",class:"sign-out-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"])]),(0,i.Lk)("div",Ve,[(0,i.bF)(y,{useConfigLink:!0}),(0,i.Lk)("h1",ze,[(0,i.Lk)("a",De,(0,a.v_)(c.ownerName),1),t[27]||(t[27]=(0,i.eW)(" ImgHub",-1))])]),(0,i.bF)(k,{selectedUrlForm:r.selectedUrlForm,customerCompress:r.customerCompress,compressQuality:r.compressQuality,compressBar:r.compressBar,serverCompress:r.serverCompress,uploadChannel:r.uploadChannel,uploadNameType:r.uploadNameType,useCustomUrl:r.useCustomUrl,customUrlPrefix:r.customUrlPrefix,autoRetry:r.autoRetry,urlPrefix:c.urlPrefix,uploadMethod:r.uploadMethod,uploadFolder:r.uploadFolder,convertToWebp:r.convertToWebp,class:"upload"},null,8,["selectedUrlForm","customerCompress","compressQuality","compressBar","serverCompress","uploadChannel","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadMethod","uploadFolder","convertToWebp"]),(0,i.bF)(F,{title:"链接格式设置",modelValue:r.showUrlDialog,"onUpdate:modelValue":t[8]||(t[8]=e=>r.showUrlDialog=e),width:c.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",Be,[t[32]||(t[32]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"默认复制链接")],-1)),(0,i.Lk)("div",We,[(0,i.bF)(w,{modelValue:r.selectedUrlForm,"onUpdate:modelValue":t[4]||(t[4]=e=>r.selectedUrlForm=e),onChange:c.changeUrlForm,class:"radio-card-group grid-2x2"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{value:"url",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"link",class:"radio-icon"}),t[28]||(t[28]=(0,i.Lk)("span",null,"原始链接",-1))]),_:1}),(0,i.bF)(C,{value:"md",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"code",class:"radio-icon"}),t[29]||(t[29]=(0,i.Lk)("span",null,"MarkDown",-1))]),_:1}),(0,i.bF)(C,{value:"html",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"code-branch",class:"radio-icon"}),t[30]||(t[30]=(0,i.Lk)("span",null,"HTML",-1))]),_:1}),(0,i.bF)(C,{value:"ubb",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"quote-right",class:"radio-icon"}),t[31]||(t[31]=(0,i.Lk)("span",null,"BBCode",-1))]),_:1})]),_:1},8,["modelValue","onChange"])])]),(0,i.Lk)("div",Ne,[(0,i.Lk)("div",He,[t[33]||(t[33]=(0,i.Lk)("span",{class:"section-title"},"自定义链接",-1)),(0,i.bF)(p,{content:"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入",placement:"top","raw-content":""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",je,[(0,i.Lk)("div",Oe,[t[34]||(t[34]=(0,i.Lk)("span",{class:"setting-label"},"启用自定义",-1)),(0,i.bF)(v,{modelValue:r.useCustomUrl,"onUpdate:modelValue":t[5]||(t[5]=e=>r.useCustomUrl=e),"active-value":"true","inactive-value":"false"},null,8,["modelValue"])]),"true"===r.useCustomUrl?((0,i.uX)(),(0,i.CE)("div",Qe,[t[35]||(t[35]=(0,i.Lk)("span",{class:"setting-label"},"自定义前缀",-1)),(0,i.bF)(h,{modelValue:r.customUrlPrefix,"onUpdate:modelValue":t[6]||(t[6]=e=>r.customUrlPrefix=e),placeholder:"请输入自定义链接前缀",class:"setting-input"},null,8,["modelValue"])])):(0,i.Q3)("",!0)])]),(0,i.Lk)("div",Xe,[(0,i.bF)(m,{type:"primary",onClick:t[7]||(t[7]=e=>r.showUrlDialog=!1),class:"confirm-btn"},{default:(0,i.k6)(()=>[...t[36]||(t[36]=[(0,i.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"]),(0,i.bF)(F,{title:"上传设置",modelValue:r.showCompressDialog,"onUpdate:modelValue":t[21]||(t[21]=e=>r.showCompressDialog=e),width:c.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",qe,[t[45]||(t[45]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"上传渠道")],-1)),(0,i.Lk)("div",Je,[(0,i.Lk)("div",Ge,[t[42]||(t[42]=(0,i.Lk)("span",{class:"setting-label"},"上传渠道",-1)),(0,i.bF)(w,{modelValue:r.uploadChannel,"onUpdate:modelValue":t[9]||(t[9]=e=>r.uploadChannel=e),class:"radio-card-group compact"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{label:"telegram",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"paper-plane",class:"channel-icon"}),t[37]||(t[37]=(0,i.Lk)("span",null,"TG",-1))]),_:1}),(0,i.bF)(C,{label:"cfr2",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cloud",class:"channel-icon"}),t[38]||(t[38]=(0,i.Lk)("span",null,"R2",-1))]),_:1}),(0,i.bF)(C,{label:"s3",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"database",class:"channel-icon"}),t[39]||(t[39]=(0,i.Lk)("span",null,"S3",-1))]),_:1}),(0,i.bF)(C,{label:"discord",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"comments",class:"channel-icon"}),t[40]||(t[40]=(0,i.Lk)("span",null,"DC",-1))]),_:1}),(0,i.bF)(C,{label:"huggingface",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"robot",class:"channel-icon"}),t[41]||(t[41]=(0,i.Lk)("span",null,"HF",-1))]),_:1})]),_:1},8,["modelValue"])]),(0,i.Lk)("div",Ke,[t[43]||(t[43]=(0,i.Lk)("span",{class:"setting-label"},"上传目录",-1)),(0,i.bF)(h,{modelValue:r.uploadFolder,"onUpdate:modelValue":t[10]||(t[10]=e=>r.uploadFolder=e),placeholder:"请输入上传目录路径",class:"setting-input"},null,8,["modelValue"])]),(0,i.Lk)("div",Ye,[(0,i.Lk)("span",Ze,[t[44]||(t[44]=(0,i.eW)(" 自动切换 ",-1)),(0,i.bF)(p,{content:"对于非分块上传文件,上传失败自动切换到其他渠道上传",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.bF)(v,{modelValue:r.autoRetry,"onUpdate:modelValue":t[11]||(t[11]=e=>r.autoRetry=e)},null,8,["modelValue"])])])]),(0,i.Lk)("div",et,[t[50]||(t[50]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"文件命名方式")],-1)),(0,i.Lk)("div",tt,[(0,i.bF)(w,{modelValue:r.uploadNameType,"onUpdate:modelValue":t[12]||(t[12]=e=>r.uploadNameType=e),class:"radio-card-group grid-2x2"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{label:"default",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cog",class:"radio-icon"}),t[46]||(t[46]=(0,i.Lk)("span",null,"默认",-1))]),_:1}),(0,i.bF)(C,{label:"index",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"hashtag",class:"radio-icon"}),t[47]||(t[47]=(0,i.Lk)("span",null,"仅前缀",-1))]),_:1}),(0,i.bF)(C,{label:"origin",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"file-signature",class:"radio-icon"}),t[48]||(t[48]=(0,i.Lk)("span",null,"仅原名",-1))]),_:1}),(0,i.bF)(C,{label:"short",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"compress-alt",class:"radio-icon"}),t[49]||(t[49]=(0,i.Lk)("span",null,"短链接",-1))]),_:1})]),_:1},8,["modelValue"])])]),(0,i.Lk)("div",ot,[(0,i.Lk)("div",st,[t[51]||(t[51]=(0,i.Lk)("span",{class:"section-title"},"文件预处理",-1)),(0,i.bF)(p,{content:"上传前在本地进行格式转换和压缩,仅对图片文件生效",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",lt,[(0,i.Lk)("div",it,[(0,i.Lk)("span",at,[t[52]||(t[52]=(0,i.eW)(" 转换为WebP ",-1)),(0,i.bF)(p,{content:"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.bF)(v,{modelValue:r.convertToWebp,"onUpdate:modelValue":t[13]||(t[13]=e=>r.convertToWebp=e)},null,8,["modelValue"])]),(0,i.Lk)("div",nt,[t[53]||(t[53]=(0,i.Lk)("span",{class:"setting-label"},"文件压缩",-1)),(0,i.bF)(v,{modelValue:r.customerCompress,"onUpdate:modelValue":t[14]||(t[14]=e=>r.customerCompress=e)},null,8,["modelValue"])]),r.customerCompress?((0,i.uX)(),(0,i.CE)("div",rt,[(0,i.Lk)("span",ct,[t[54]||(t[54]=(0,i.eW)(" 压缩阈值 ",-1)),(0,i.bF)(p,{content:"设置图片大小阈值,超过此值将自动压缩,单位MB",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.Lk)("div",dt,[(0,i.bF)(L,{modelValue:r.compressBar,"onUpdate:modelValue":t[15]||(t[15]=e=>r.compressBar=e),min:1,max:20,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","format-tooltip"]),(0,i.Lk)("div",ut,[(0,i.bF)(U,{modelValue:r.compressBar,"onUpdate:modelValue":t[16]||(t[16]=e=>r.compressBar=e),min:1,max:20,step:1,"value-on-clear":1,size:"small",class:"slider-input","controls-position":"right"},null,8,["modelValue"]),t[55]||(t[55]=(0,i.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,i.Q3)("",!0),r.customerCompress?((0,i.uX)(),(0,i.CE)("div",pt,[(0,i.Lk)("span",ht,[t[56]||(t[56]=(0,i.eW)(" 期望大小 ",-1)),(0,i.bF)(p,{content:"设置压缩后图片大小期望值,单位MB",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.Lk)("div",mt,[(0,i.bF)(L,{modelValue:r.compressQuality,"onUpdate:modelValue":t[17]||(t[17]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","max","format-tooltip"]),(0,i.Lk)("div",gt,[(0,i.bF)(U,{modelValue:r.compressQuality,"onUpdate:modelValue":t[18]||(t[18]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,precision:1,"value-on-clear":.5,size:"small",class:"slider-input","controls-position":"right"},null,8,["modelValue","max"]),t[57]||(t[57]=(0,i.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,i.Q3)("",!0)])]),"telegram"===r.uploadChannel?((0,i.uX)(),(0,i.CE)("div",ft,[(0,i.Lk)("div",bt,[t[58]||(t[58]=(0,i.Lk)("span",{class:"section-title"},"服务端压缩",-1)),(0,i.bF)(p,{content:"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题",placement:"top","raw-content":""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",yt,[(0,i.Lk)("div",kt,[t[59]||(t[59]=(0,i.Lk)("span",{class:"setting-label"},"开启压缩",-1)),(0,i.bF)(v,{modelValue:r.serverCompress,"onUpdate:modelValue":t[19]||(t[19]=e=>r.serverCompress=e)},null,8,["modelValue"])])])])):(0,i.Q3)("",!0),(0,i.Lk)("div",Ct,[(0,i.bF)(m,{type:"primary",onClick:t[20]||(t[20]=e=>r.showCompressDialog=!1),class:"confirm-btn"},{default:(0,i.k6)(()=>[...t[60]||(t[60]=[(0,i.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"])]),(0,i.bF)(x,{class:"footer"}),(0,i.bF)(F,{title:"公告",modelValue:r.showAnnouncementDialog,"onUpdate:modelValue":t[23]||(t[23]=e=>r.showAnnouncementDialog=e),width:c.dialogWidth,"show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1,center:""},{footer:(0,i.k6)(()=>[(0,i.Lk)("span",vt,[(0,i.bF)(m,{type:"primary",onClick:t[22]||(t[22]=e=>r.showAnnouncementDialog=!1)},{default:(0,i.k6)(()=>[...t[61]||(t[61]=[(0,i.eW)("我已知晓!",-1)])]),_:1})])]),default:(0,i.k6)(()=>[(0,i.Lk)("div",{innerHTML:r.announcementContent},null,8,wt)]),_:1},8,["modelValue","width"]),(0,i.bF)(S,{show:r.showHistory,onClose:t[24]||(t[24]=e=>r.showHistory=!1)},null,8,["show"])])}var Lt=o(8903),Ut=o(144),xt=o(4570),St=o.n(xt),Tt={name:"UploadHome",mixins:[Lt.A],data(){return{selectedUrlForm:(0,Ut.KR)(""),showUrlDialog:!1,showCompressDialog:!1,customerCompress:!0,compressQuality:4,compressBar:5,convertToWebp:!1,serverCompress:!0,uploadChannel:"",uploadNameType:"",customUrlPrefix:"",useCustomUrl:"false",autoRetry:!0,useDefaultWallPaper:!1,isToolBarOpen:!1,uploadMethod:"default",uploadFolder:"",isFolderInputActive:!1,showAnnouncementDialog:!1,announcementContent:"",showHistory:!1,themeMode:"auto"}},watch:{customerCompress(e){this.updateCompressConfig("customerCompress",e)},compressQuality(e){this.updateCompressConfig("compressQuality",e)},compressBar(e){null===e||void 0===e||e<1?this.compressBar=1:(this.compressQuality>e&&(this.compressQuality=e),this.updateCompressConfig("compressBar",e))},serverCompress(e){this.updateCompressConfig("serverCompress",e)},convertToWebp(e){this.updateCompressConfig("convertToWebp",e)},uploadChannel(e){this.updateStoreUploadChannel(e)},uploadNameType(e){this.updateStoreUploadNameType(e)},customUrlPrefix(e){this.$store.commit("setCustomUrlSettings",{key:"customUrlPrefix",value:e})},useCustomUrl(e){this.$store.commit("setCustomUrlSettings",{key:"useCustomUrl",value:e})},autoRetry(e){this.$store.commit("setStoreAutoRetry",e)},uploadFolder(e){this.validateUploadFolder(e)?this.$store.commit("setStoreUploadFolder",e):this.$nextTick(()=>{this.uploadFolder=this.storeUploadFolder})}},computed:{...(0,xe.L8)(["userConfig","uploadCopyUrlForm","compressConfig","storeUploadChannel","storeUploadNameType","customUrlSettings","storeAutoRetry","storeUploadMethod","storeUploadFolder"]),ownerName(){return this.userConfig?.ownerName||"Sanyue"},dialogWidth(){return window.innerWidth>768?"50%":"90%"},disableTooltip(){return window.innerWidth<768},urlPrefix(){return this.userConfig?.urlPrefix||`${window.location.protocol}//${window.location.host}/file/`},announcementAvailable(){return!!this.userConfig?.announcement}},mounted(){this.initializeBackground("uploadBkImg",".container",!1,!0),this.selectedUrlForm=this.uploadCopyUrlForm||"url",this.customerCompress=this.compressConfig.customerCompress??this.parseBoolean(this.userConfig?.defaultCustomerCompress,!0),this.compressQuality=this.compressConfig.compressQuality??this.parseNumber(this.userConfig?.defaultCompressQuality,4),this.compressBar=this.compressConfig.compressBar??this.parseNumber(this.userConfig?.defaultCompressBar,5),this.serverCompress=this.compressConfig.serverCompress??!0,this.convertToWebp=this.compressConfig.convertToWebp??this.parseBoolean(this.userConfig?.defaultConvertToWebp,!1),this.uploadChannel=this.storeUploadChannel||this.userConfig?.defaultUploadChannel||"telegram",this.autoRetry=this.storeAutoRetry,this.uploadNameType=this.storeUploadNameType||this.userConfig?.defaultUploadNameType||"default",this.customUrlPrefix=this.customUrlSettings.customUrlPrefix,this.useCustomUrl=this.customUrlSettings.useCustomUrl,this.uploadMethod=this.storeUploadMethod,this.uploadFolder=this.storeUploadFolder||this.userConfig?.defaultUploadFolder||"";const e=this.$store.getters.cusDarkMode,t=this.$store.getters.useDarkMode;this.themeMode=e?t?"dark":"light":"auto";const o=localStorage.getItem("visitedUploadHome"),s=this.userConfig?.announcement;!o&&s&&(this.announcementContent=s,this.showAnnouncementDialog=!0,localStorage.setItem("visitedUploadHome","true"))},components:{UploadForm:$e,Footer:W.A,ToggleDark:Me.A,Logo:_e.A,UploadHistory:B},methods:{validateUploadFolder(e){if(!e||""===e.trim())return!0;if(!e.startsWith("/"))return this.$message.error('上传目录必须以 "/" 开头'),!1;const t=/[\\:\*\?"'<>\| \(\)\[\]\{\}#%\^`~;@&=\+\$,]/;return t.test(e)?(this.$message.error("上传目录包含非法字符,请使用合法的路径格式"),!1):!e.includes("//")||(this.$message.error("上传目录不能包含连续的斜杠"),!1)},handleManage(){this.$router.push("/dashboard")},parseBoolean(e,t){return void 0===e||null===e?t:"boolean"===typeof e?e:"string"===typeof e?"true"===e:t},parseNumber(e,t){if(void 0===e||null===e)return t;const o=parseFloat(e);return isNaN(o)?t:o},openUrlDialog(){this.showUrlDialog=!0},handleLogout(){St().remove("authCode"),this.$router.push("/login"),this.$message.success("已退出登录")},changeUrlForm(){this.$store.commit("setUploadCopyUrlForm",this.selectedUrlForm)},openCompressDialog(){this.showCompressDialog=!0},updateCompressConfig(e,t){this.$store.commit("setCompressConfig",{key:e,value:t})},updateStoreUploadChannel(e){this.$store.commit("setStoreUploadChannel",e)},updateStoreUploadNameType(e){this.$store.commit("setStoreUploadNameType",e)},handleOpenToolbar(){this.isToolBarOpen=!this.isToolBarOpen,setTimeout(()=>{const e=document.querySelectorAll(".toolbar-button");e.forEach(e=>{e.style.pointerEvents=this.isToolBarOpen?"auto":"none"})},300)},handleChangeUploadMethod(){this.uploadMethod="default"===this.uploadMethod?"paste":"default",this.$store.commit("setUploadMethod",this.uploadMethod)},handleMobileMenuCommand(e){"toggleTheme"===e?"auto"===this.themeMode?(this.themeMode="light",this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!1)):"light"===this.themeMode?(this.themeMode="dark",this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!0)):(this.themeMode="auto",this.$store.commit("setCusDarkMode",!1)):"toggleUploadMethod"===e?this.handleChangeUploadMethod():"showHistory"===e?this.showHistory=!0:"showAnnouncement"===e&&this.handleShowAnnouncement()},getThemeIcon(){return"auto"===this.themeMode?"sun":"light"===this.themeMode?"moon":"adjust"},getThemeText(){return"auto"===this.themeMode?"浅色模式":"light"===this.themeMode?"深色模式":"自动模式"},handleShowAnnouncement(){const e=this.userConfig?.announcement;e?(this.announcementContent=e,this.showAnnouncementDialog=!0):this.$message.info("暂无公告")}}};const $t=(0,z.A)(Tt,[["render",Ft],["__scopeId","data-v-316c27dc"]]);var _t=$t},5616:function(e,t,o){"use strict";o(5331),o(7197)},5970:function(e,t,o){"use strict";o(5331)},6334:function(e,t,o){e.exports=o(1393)},6682:function(e,t,o){"use strict";e.exports=o.p+"img/404.8ed11fb3.png"},8075:function(e,t,o){"use strict";o(5331)},8830:function(e,t,o){"use strict";o(5331)},9104:function(e,t,o){"use strict";o(5331)}}]); -//# sourceMappingURL=34.71e48dd0.js.map \ No newline at end of file diff --git a/js/34.71e48dd0.js.gz b/js/34.71e48dd0.js.gz deleted file mode 100644 index 314bf50ffc5e8a117d14f570010166ebe90f1190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20606 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 diff --git a/js/34.71e48dd0.js.map b/js/34.71e48dd0.js.map deleted file mode 100644 index 3ce8e05..0000000 --- a/js/34.71e48dd0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/34.71e48dd0.js","mappings":"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","sources":["webpack://sanyue_imghub/./node_modules/image-conversion/build/conversion.js","webpack://sanyue_imghub/./src/components/UploadHistory.vue?19f6","webpack://sanyue_imghub/./src/components/UploadHistory.vue","webpack://sanyue_imghub/./src/components/UploadHistory.vue?4b6c","webpack://sanyue_imghub/./src/components/UploadForm.vue?f993","webpack://sanyue_imghub/./src/components/UploadForm.vue","webpack://sanyue_imghub/./src/components/UploadForm.vue?0da8","webpack://sanyue_imghub/./src/views/UploadHome.vue?b232","webpack://sanyue_imghub/./src/views/UploadHome.vue","webpack://sanyue_imghub/./src/views/UploadHome.vue?af00","webpack://sanyue_imghub/./node_modules/image-conversion/index.js"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.imageConversion=e():t.imageConversion=e()}(this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";var r;function o(t){return[\"image/png\",\"image/jpeg\",\"image/gif\"].some(e=>e===t)}n.r(e),n.d(e,\"canvastoDataURL\",(function(){return a})),n.d(e,\"canvastoFile\",(function(){return c})),n.d(e,\"dataURLtoFile\",(function(){return s})),n.d(e,\"dataURLtoImage\",(function(){return l})),n.d(e,\"downloadFile\",(function(){return d})),n.d(e,\"filetoDataURL\",(function(){return f})),n.d(e,\"imagetoCanvas\",(function(){return g})),n.d(e,\"urltoBlob\",(function(){return w})),n.d(e,\"urltoImage\",(function(){return m})),n.d(e,\"compress\",(function(){return p})),n.d(e,\"compressAccurately\",(function(){return b})),n.d(e,\"EImageType\",(function(){return r})),function(t){t.PNG=\"image/png\",t.JPEG=\"image/jpeg\",t.GIF=\"image/gif\"}(r||(r={}));var i=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function a(t,e=.92,n=r.JPEG){return i(this,void 0,void 0,(function*(){return o(n)||(n=r.JPEG),t.toDataURL(n,e)}))}function c(t,e=.92,n=r.JPEG){return new Promise(r=>t.toBlob(t=>r(t),n,e))}var u=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function s(t,e){return u(this,void 0,void 0,(function*(){const n=t.split(\",\");let r=n[0].match(/:(.*?);/)[1];const i=atob(n[1]);let a=i.length;const c=new Uint8Array(a);for(;a--;)c[a]=i.charCodeAt(a);return o(e)&&(r=e),new Blob([c],{type:r})}))}function l(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"dataURLtoImage(): dataURL is illegal\")),r.src=t})}function d(t,e){const n=document.createElement(\"a\");n.href=window.URL.createObjectURL(t),n.download=e||Date.now().toString(36),document.body.appendChild(n);const r=document.createEvent(\"MouseEvents\");r.initEvent(\"click\",!1,!1),n.dispatchEvent(r),document.body.removeChild(n)}function f(t){return new Promise(e=>{const n=new FileReader;n.onloadend=t=>e(t.target.result),n.readAsDataURL(t)})}var h=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function g(t,e={}){return h(this,void 0,void 0,(function*(){const n=Object.assign({},e),r=document.createElement(\"canvas\"),o=r.getContext(\"2d\");let i,a;for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Number(n[t]));if(n.scale){const e=n.scale>0&&n.scale<10?n.scale:1;a=t.width*e,i=t.height*e}else a=n.width||n.height*t.width/t.height||t.width,i=n.height||n.width*t.height/t.width||t.height;switch([5,6,7,8].some(t=>t===n.orientation)?(r.height=a,r.width=i):(r.height=i,r.width=a),n.orientation){case 3:o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 6:o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 8:o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;case 2:o.translate(r.width,0),o.scale(-1,1),o.drawImage(t,0,0,r.width,r.height);break;case 4:o.translate(r.width,0),o.scale(-1,1),o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 5:o.translate(r.width,0),o.scale(-1,1),o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 7:o.translate(r.width,0),o.scale(-1,1),o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;default:o.drawImage(t,0,0,r.width,r.height)}return r}))}function w(t){return fetch(t).then(t=>t.blob())}function m(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"urltoImage(): Image failed to load, please check the image URL\")),r.src=t})}var y=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function p(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compress(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({quality:e})),e.quality=Number(e.quality),Number.isNaN(e.quality))return t;const n=yield f(t);let i=n.split(\",\")[0].match(/:(.*?);/)[1],c=r.JPEG;o(e.type)&&(c=e.type,i=e.type);const u=yield l(n),d=yield g(u,Object.assign({},e)),h=yield a(d,e.quality,c),w=yield s(h,i);return w.size>t.size?t:w}))}function b(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compressAccurately(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({size:e})),e.size=Number(e.size),Number.isNaN(e.size))return t;if(1024*e.size>t.size)return t;e.accuracy=Number(e.accuracy),(!e.accuracy||e.accuracy<.8||e.accuracy>.99)&&(e.accuracy=.95);const n=e.size*(2-e.accuracy)*1024,i=1024*e.size,c=e.size*e.accuracy*1024,u=yield f(t);let d=u.split(\",\")[0].match(/:(.*?);/)[1],h=r.JPEG;o(e.type)&&(h=e.type,d=e.type);const w=yield l(u),m=yield g(w,Object.assign({},e));let y,p=.5;const b=[null,null];for(let t=1;t<=7;t++){y=yield a(m,p,h);const e=.75*y.length;if(7===t){(ne)&&(y=[y,...b].filter(t=>t).sort((t,e)=>Math.abs(.75*t.length-i)-Math.abs(.75*e.length-i))[0]);break}if(ne))break;b[0]=y,p+=Math.pow(.5,t+1)}}const v=yield s(y,d);return v.size>t.size?t:v}))}}])}));","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n class: \"history-header\"\n};\nconst _hoisted_2 = {\n class: \"header-left\"\n};\nconst _hoisted_3 = {\n class: \"record-count\"\n};\nconst _hoisted_4 = {\n class: \"header-right\"\n};\nconst _hoisted_5 = {\n key: 0,\n class: \"history-content\"\n};\nconst _hoisted_6 = {\n class: \"timeline-header\"\n};\nconst _hoisted_7 = {\n class: \"date-label\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"grid-view\"\n};\nconst _hoisted_9 = {\n class: \"grid-preview\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = {\n key: 2,\n class: \"file-icon-wrapper\"\n};\nconst _hoisted_13 = {\n class: \"grid-overlay\"\n};\nconst _hoisted_14 = {\n class: \"grid-actions\"\n};\nconst _hoisted_15 = {\n class: \"grid-info\"\n};\nconst _hoisted_16 = [\"title\"];\nconst _hoisted_17 = {\n class: \"upload-time\"\n};\nconst _hoisted_18 = {\n key: 1,\n class: \"list-view\"\n};\nconst _hoisted_19 = {\n class: \"list-preview\"\n};\nconst _hoisted_20 = [\"src\"];\nconst _hoisted_21 = [\"src\"];\nconst _hoisted_22 = {\n key: 2,\n class: \"file-icon-wrapper-small\"\n};\nconst _hoisted_23 = {\n class: \"list-info\"\n};\nconst _hoisted_24 = [\"title\"];\nconst _hoisted_25 = [\"title\"];\nconst _hoisted_26 = {\n class: \"list-meta\"\n};\nconst _hoisted_27 = {\n class: \"upload-time\"\n};\nconst _hoisted_28 = {\n class: \"list-actions\"\n};\nconst _hoisted_29 = {\n key: 1,\n class: \"empty-state\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n return _openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"history-container\", {\n 'active': $props.show\n }])\n }, [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_cache[3] || (_cache[3] = _createElementVNode(\"h2\", null, \"历史记录\", -1)), _createElementVNode(\"span\", _hoisted_3, \"共 \" + _toDisplayString($data.historyList.length) + \" 条\", 1)]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_tooltip, {\n content: \"切换视图\",\n placement: \"bottom\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n circle: \"\",\n onClick: $options.toggleViewMode\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $data.viewMode === 'grid' ? 'list' : 'th-large'\n }, null, 8, [\"icon\"])]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }), _createVNode(_component_el_tooltip, {\n content: \"清空记录\",\n placement: \"bottom\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n circle: \"\",\n type: \"danger\",\n onClick: $options.clearHistory\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }), _createVNode(_component_el_button, {\n circle: \"\",\n onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('close'))\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"times\"\n })]),\n _: 1\n })])]), $data.historyList.length > 0 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($options.groupedHistory, group => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: group.date,\n class: \"history-group\"\n }, [_createElementVNode(\"div\", _hoisted_6, [_cache[4] || (_cache[4] = _createElementVNode(\"div\", {\n class: \"timeline-dot\"\n }, null, -1)), _createElementVNode(\"span\", _hoisted_7, _toDisplayString(group.date), 1)]), $data.viewMode === 'grid' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, (item, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"grid-item\"\n }, [_createElementVNode(\"div\", _hoisted_9, [$options.isImage(item.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.url,\n loading: \"lazy\",\n onError: _cache[1] || (_cache[1] = (...args) => $options.handleImageError && $options.handleImageError(...args))\n }, null, 40, _hoisted_10)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_11)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })])), _createElementVNode(\"div\", _hoisted_13, [_createElementVNode(\"div\", _hoisted_14, [_createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n type: \"primary\",\n onClick: $event => $options.copyLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n class: \"action-btn-view\",\n onClick: $event => $options.openLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"external-link-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n type: \"danger\",\n onClick: $event => $options.deleteItem(item)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])])])]), _createElementVNode(\"div\", _hoisted_15, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_16), _createElementVNode(\"div\", _hoisted_17, _toDisplayString($options.formatTime(item.time)), 1)])]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, (item, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"list-item\"\n }, [_createElementVNode(\"div\", _hoisted_19, [$options.isImage(item.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.url,\n loading: \"lazy\",\n onError: _cache[2] || (_cache[2] = (...args) => $options.handleImageError && $options.handleImageError(...args))\n }, null, 40, _hoisted_20)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_21)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\"\n })]))]), _createElementVNode(\"div\", _hoisted_23, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_24), _createElementVNode(\"div\", {\n class: \"file-url\",\n title: item.url\n }, _toDisplayString(item.url), 9, _hoisted_25)]), _createElementVNode(\"div\", _hoisted_26, [_createElementVNode(\"div\", _hoisted_27, _toDisplayString($options.formatTime(item.time)), 1)]), _createElementVNode(\"div\", _hoisted_28, [_createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n type: \"primary\",\n onClick: $event => $options.copyLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n class: \"action-btn-view\",\n onClick: $event => $options.openLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"external-link-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n type: \"danger\",\n onClick: $event => $options.deleteItem(item)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])])]);\n }), 128))]))]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_29, [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"empty-icon\"\n }), _cache[5] || (_cache[5] = _createElementVNode(\"p\", null, \"暂无上传记录\", -1))]))], 2);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.filter.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport \"core-js/modules/es.iterator.map.js\";\nimport \"core-js/modules/es.json.stringify.js\";\nimport \"core-js/modules/esnext.json.parse.js\";\nexport default {\n name: 'UploadHistory',\n props: {\n show: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n historyList: [],\n viewMode: 'grid' // 'grid' or 'list'\n };\n },\n watch: {\n show(val) {\n if (val) {\n this.loadHistory();\n }\n }\n },\n computed: {\n groupedHistory() {\n const groups = {};\n this.historyList.forEach(item => {\n const date = new Date(item.time);\n const dateStr = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n if (!groups[dateStr]) {\n groups[dateStr] = [];\n }\n groups[dateStr].push(item);\n });\n\n // Sort dates descending\n return Object.keys(groups).sort((a, b) => new Date(b) - new Date(a)).map(date => ({\n date,\n items: groups[date]\n }));\n }\n },\n mounted() {\n // Load view mode preference\n const savedMode = localStorage.getItem('historyViewMode');\n if (savedMode) {\n this.viewMode = savedMode;\n }\n },\n methods: {\n loadHistory() {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n\n // Sort by time desc\n this.historyList = history.sort((a, b) => b.time - a.time);\n } catch (e) {\n console.error('Failed to load history', e);\n this.historyList = [];\n }\n },\n toggleViewMode() {\n this.viewMode = this.viewMode === 'grid' ? 'list' : 'grid';\n localStorage.setItem('historyViewMode', this.viewMode);\n },\n clearHistory() {\n this.$confirm('确定要清空所有上传记录吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.historyList = [];\n localStorage.removeItem('uploadHistory');\n this.$message.success('记录已清空');\n }).catch(() => {});\n },\n deleteItem(item) {\n this.$confirm('确定要删除这条记录吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n // Remove from list\n this.historyList = this.historyList.filter(i => i.time !== item.time);\n\n // Update localStorage\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n const newHistory = history.filter(i => i.time !== item.time);\n localStorage.setItem('uploadHistory', JSON.stringify(newHistory));\n this.$message.success('记录已删除');\n } catch (e) {\n console.error('Failed to update history', e);\n }\n }).catch(() => {});\n },\n isImage(fileName) {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff', 'ico', 'avif', 'heic', 'jfif', 'pjpeg', 'pjp'];\n const extension = fileName ? fileName.split('.').pop().toLowerCase() : '';\n return imageExtensions.includes(extension);\n },\n isVideo(fileName) {\n const videoExtensions = ['mp4', 'webm', 'ogg', 'mkv'];\n const extension = fileName ? fileName.split('.').pop().toLowerCase() : '';\n return videoExtensions.includes(extension);\n },\n formatTime(timestamp) {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n },\n copyLink(url) {\n navigator.clipboard.writeText(url).then(() => {\n this.$message.success('链接已复制');\n }).catch(() => {\n this.$message.error('复制失败');\n });\n },\n openLink(url) {\n window.open(url, '_blank');\n },\n handleImageError(e) {\n e.target.src = require('@/assets/404.png');\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadHistory.vue?vue&type=template&id=3d294b36&scoped=true\"\nimport script from \"./UploadHistory.vue?vue&type=script&lang=js\"\nexport * from \"./UploadHistory.vue?vue&type=script&lang=js\"\n\nimport \"./UploadHistory.vue?vue&type=style&index=0&id=3d294b36&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d294b36\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n class: \"upload-form\"\n};\nconst _hoisted_2 = {\n class: \"upload-card-glow\",\n ref: \"uploadCardGlow\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"upload-card\"\n};\nconst _hoisted_4 = {\n class: \"paste-card-actions\"\n};\nconst _hoisted_5 = {\n class: \"upload-list-dashboard-action\"\n};\nconst _hoisted_6 = {\n class: \"modern-action-group\"\n};\nconst _hoisted_7 = {\n class: \"modern-dropdown-item-content\"\n};\nconst _hoisted_8 = {\n class: \"modern-action-btn modern-action-btn-danger\"\n};\nconst _hoisted_9 = [\"href\"];\nconst _hoisted_10 = {\n key: 0,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n },\n autoplay: \"\",\n muted: \"\",\n playsinline: \"\",\n loop: \"\"\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\", \"onError\"];\nconst _hoisted_13 = {\n key: 2,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n }\n};\nconst _hoisted_14 = {\n class: \"upload-list-item-content\"\n};\nconst _hoisted_15 = {\n class: \"upload-list-item-name-wrapper\"\n};\nconst _hoisted_16 = {\n key: 0,\n class: \"upload-list-item-url\"\n};\nconst _hoisted_17 = {\n class: \"upload-list-item-url-row\"\n};\nconst _hoisted_18 = {\n class: \"upload-list-item-url-row\"\n};\nconst _hoisted_19 = {\n key: 1,\n class: \"upload-list-item-progress\"\n};\nconst _hoisted_20 = {\n class: \"upload-list-item-action\"\n};\nconst _hoisted_21 = [\"onClick\"];\nconst _hoisted_22 = [\"onClick\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CameraFilled = _resolveComponent(\"CameraFilled\");\n const _component_el_icon = _resolveComponent(\"el-icon\");\n const _component_el_upload = _resolveComponent(\"el-upload\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\");\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\");\n const _component_el_card = _resolveComponent(\"el-card\");\n const _component_List = _resolveComponent(\"List\");\n const _component_Checked = _resolveComponent(\"Checked\");\n const _component_Failed = _resolveComponent(\"Failed\");\n const _component_el_text = _resolveComponent(\"el-text\");\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n const _component_el_switch = _resolveComponent(\"el-switch\");\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\");\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\");\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\");\n const _component_el_progress = _resolveComponent(\"el-progress\");\n const _component_Link = _resolveComponent(\"Link\");\n const _component_Delete = _resolveComponent(\"Delete\");\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: \"upload-card-wrapper\",\n onMousemove: _cache[0] || (_cache[0] = (...args) => _ctx.handleUploadCardMouseMove && _ctx.handleUploadCardMouseMove(...args)),\n onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.handleUploadCardMouseLeave && _ctx.handleUploadCardMouseLeave(...args))\n }, [_createElementVNode(\"div\", _hoisted_2, null, 512), $props.uploadMethod === 'default' ? (_openBlock(), _createBlock(_component_el_upload, {\n key: 0,\n class: _normalizeClass([\"upload-card\", {\n 'is-uploading': $data.uploading,\n 'upload-card-busy': $data.fileList.length\n }]),\n drag: \"\",\n multiple: \"\",\n \"http-request\": $options.uploadFile,\n onSuccess: $options.handleSuccess,\n \"on-error\": $options.handleError,\n \"before-upload\": $options.beforeUpload,\n \"on-progress\": $options.handleProgress,\n \"file-list\": $data.fileList,\n \"show-file-list\": false\n }, {\n default: _withCtx(() => [_createVNode(_component_el_icon, {\n class: _normalizeClass([\"el-icon--upload\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, {\n default: _withCtx(() => [_createVNode(_component_CameraFilled)]),\n _: 1\n }, 8, [\"class\"]), _createElementVNode(\"div\", {\n class: _normalizeClass([\"el-upload__text\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, [...(_cache[7] || (_cache[7] = [_createElementVNode(\"em\", null, \"拖拽\", -1), _createTextVNode(), _createElementVNode(\"em\", null, \"点击\", -1), _createTextVNode(\" 或 \", -1), _createElementVNode(\"em\", null, \"Ctrl + V\", -1), _createTextVNode(\" 粘贴上传\", -1)]))], 2)]),\n _: 1\n }, 8, [\"class\", \"http-request\", \"onSuccess\", \"on-error\", \"before-upload\", \"on-progress\", \"file-list\"])) : _createCommentVNode(\"\", true)], 32), $props.uploadMethod === 'paste' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createVNode(_component_el_card, {\n class: _normalizeClass([\"paste-card\", {\n 'is-uploading': $data.uploading,\n 'upload-card-busy': $data.fileList.length\n }])\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $data.pastedUrls,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.pastedUrls = $event),\n class: \"upload-card-textarea\",\n placeholder: \"粘贴外链上传,多个外链用换行分隔\",\n type: \"textarea\",\n rows: $data.fileList.length ? 4 : 14\n }, null, 8, [\"modelValue\", \"rows\"]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: \"paste-card-upload-button\",\n type: \"primary\",\n size: $options.pasteCardMethodButtonSize,\n onClick: $options.handleUploadPasteUrls\n }, {\n default: _withCtx(() => [...(_cache[8] || (_cache[8] = [_createTextVNode(\" 上 传 \", -1)]))]),\n _: 1\n }, 8, [\"size\", \"onClick\"]), _createVNode(_component_el_radio_group, {\n modelValue: $data.pasteUploadMethod,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.pasteUploadMethod = $event),\n class: \"paste-card-method-group\",\n size: $options.pasteCardMethodButtonSize\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio_button, {\n label: \"save\"\n }, {\n default: _withCtx(() => [...(_cache[9] || (_cache[9] = [_createTextVNode(\"转存\", -1)]))]),\n _: 1\n }), _createVNode(_component_el_radio_button, {\n label: \"external\"\n }, {\n default: _withCtx(() => [...(_cache[10] || (_cache[10] = [_createTextVNode(\"外链\", -1)]))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"size\"])])]),\n _: 1\n }, 8, [\"class\"])])) : _createCommentVNode(\"\", true), _createVNode(_component_el_card, {\n class: _normalizeClass([\"upload-list-card\", {\n 'upload-list-busy': $data.fileList.length,\n 'is-uploading': $data.uploading\n }])\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-list-container\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, [_createVNode(_component_el_scrollbar, {\n onScroll: $options.handleScroll,\n ref: \"scrollContainer\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-list-dashboard\", {\n 'list-scrolled': $data.listScrolled\n }])\n }, [_createVNode(_component_el_text, {\n class: \"upload-list-dashboard-title\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_List)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadingCount + $options.waitingCount) + \" \", 1), _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Checked)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadSuccessCount) + \" \", 1), _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Failed)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadErrorCount), 1)]),\n _: 1\n }), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"整体复制\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"button\", {\n class: \"modern-action-btn\",\n onClick: _cache[4] || (_cache[4] = (...args) => $options.copyAll && $options.copyAll(...args))\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"失败重试\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown, null, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, {\n class: \"modern-dropdown-menu\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, null, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = _createElementVNode(\"span\", null, \"自动重试\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.autoReUpload,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.autoReUpload = $event),\n onChange: $options.handleAutoRetryChange,\n size: \"small\"\n }, null, 8, [\"modelValue\", \"onChange\"])])]),\n _: 1\n })]),\n _: 1\n })]),\n default: _withCtx(() => [_createElementVNode(\"button\", {\n class: \"modern-action-btn\",\n onClick: _cache[5] || (_cache[5] = (...args) => $options.retryError && $options.retryError(...args))\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n })])]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"清空列表\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown, null, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, {\n class: \"modern-dropdown-menu\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, {\n onClick: $options.clearFileList\n }, {\n default: _withCtx(() => [...(_cache[12] || (_cache[12] = [_createTextVNode(\"清空全部\", -1)]))]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_dropdown_item, {\n onClick: $options.clearSuccessList\n }, {\n default: _withCtx(() => [...(_cache[13] || (_cache[13] = [_createTextVNode(\"清空已上传\", -1)]))]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n })]),\n default: _withCtx(() => [_createElementVNode(\"button\", _hoisted_8, [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })])]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"])])])], 2), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($data.fileList.slice().reverse(), file => {\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"upload-list-item\",\n key: file.name,\n span: 8\n }, [_createElementVNode(\"a\", {\n href: file.url,\n target: \"_blank\",\n class: \"upload-list-item-preview\"\n }, [$options.isVideo(file.name) ? (_openBlock(), _createElementBlock(\"video\", _hoisted_10, [_createElementVNode(\"source\", {\n src: file.url,\n type: \"video/mp4\"\n }, null, 8, _hoisted_11), _cache[14] || (_cache[14] = _createTextVNode(\" Your browser does not support the video tag. \", -1))])) : $options.isImage(file.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n },\n src: file.url,\n onError: $event => file.url = require('@/assets/404.png')\n }, null, 40, _hoisted_12)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })]))], 8, _hoisted_9), _createElementVNode(\"div\", _hoisted_14, [_createElementVNode(\"div\", _hoisted_15, [_createVNode(_component_el_text, {\n class: \"upload-list-item-name\",\n truncated: \"\"\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString($options.truncateFilename(file.name)), 1)]),\n _: 2\n }, 1024)]), file.status === 'done' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [_createElementVNode(\"div\", _hoisted_17, [_createVNode(_component_el_input, {\n modelValue: file.finalURL,\n \"onUpdate:modelValue\": $event => file.finalURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[15] || (_cache[15] = [_createTextVNode(\"URL\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"]), _createVNode(_component_el_input, {\n modelValue: file.mdURL,\n \"onUpdate:modelValue\": $event => file.mdURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[16] || (_cache[16] = [_createTextVNode(\"MarkDown\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"])]), _createElementVNode(\"div\", _hoisted_18, [_createVNode(_component_el_input, {\n modelValue: file.htmlURL,\n \"onUpdate:modelValue\": $event => file.htmlURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[17] || (_cache[17] = [_createTextVNode(\"HTML\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"]), _createVNode(_component_el_input, {\n modelValue: file.ubbURL,\n \"onUpdate:modelValue\": $event => file.ubbURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[18] || (_cache[18] = [_createTextVNode(\"BBCode\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"])])])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [_createVNode(_component_el_progress, {\n percentage: file.progreess,\n status: file.status,\n \"show-text\": false\n }, null, 8, [\"percentage\", \"status\"])]))]), _createElementVNode(\"div\", _hoisted_20, [_createElementVNode(\"button\", {\n class: \"modern-file-action-btn modern-file-action-btn-primary\",\n onClick: $event => $options.handleCopy(file)\n }, [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Link)]),\n _: 1\n })], 8, _hoisted_21), _createElementVNode(\"button\", {\n class: \"modern-file-action-btn modern-file-action-btn-danger\",\n onClick: $event => $options.handleRemove(file)\n }, [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Delete)]),\n _: 1\n })], 8, _hoisted_22)])]);\n }), 128))]),\n _: 1\n }, 8, [\"onScroll\"])], 2)]),\n _: 1\n }, 8, [\"class\"])]);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.array-buffer.detached.js\";\nimport \"core-js/modules/es.array-buffer.transfer.js\";\nimport \"core-js/modules/es.array-buffer.transfer-to-fixed-length.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.filter.js\";\nimport \"core-js/modules/es.iterator.find.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport \"core-js/modules/es.iterator.map.js\";\nimport \"core-js/modules/es.iterator.reduce.js\";\nimport \"core-js/modules/es.json.stringify.js\";\nimport \"core-js/modules/es.typed-array.with.js\";\nimport \"core-js/modules/esnext.json.parse.js\";\nimport \"core-js/modules/esnext.uint8-array.set-from-base64.js\";\nimport \"core-js/modules/esnext.uint8-array.set-from-hex.js\";\nimport \"core-js/modules/esnext.uint8-array.to-base64.js\";\nimport \"core-js/modules/esnext.uint8-array.to-hex.js\";\nimport \"core-js/modules/web.dom-exception.stack.js\";\nimport \"core-js/modules/web.url-search-params.delete.js\";\nimport \"core-js/modules/web.url-search-params.has.js\";\nimport \"core-js/modules/web.url-search-params.size.js\";\nimport axios from '@/utils/axios';\nimport * as imageConversion from 'image-conversion';\nimport { mapGetters } from 'vuex';\nexport default {\n name: 'UploadForm',\n props: {\n selectedUrlForm: {\n type: String,\n default: 'url',\n required: false\n },\n customerCompress: {\n type: Boolean,\n default: true,\n required: false\n },\n compressQuality: {\n type: Number,\n default: 4,\n required: false\n },\n compressBar: {\n type: Number,\n default: 5,\n required: false\n },\n serverCompress: {\n type: Boolean,\n default: true,\n required: false\n },\n uploadChannel: {\n type: String,\n default: 'telegram',\n required: false\n },\n uploadNameType: {\n type: String,\n default: 'default',\n required: false\n },\n useCustomUrl: {\n type: String,\n default: 'false',\n required: false\n },\n customUrlPrefix: {\n type: String,\n default: '',\n required: false\n },\n autoRetry: {\n type: Boolean,\n default: true,\n required: false\n },\n urlPrefix: {\n type: String,\n default: '',\n required: false\n },\n uploadMethod: {\n type: String,\n default: 'default',\n required: false\n },\n uploadFolder: {\n type: String,\n default: '',\n required: false\n },\n convertToWebp: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n data() {\n return {\n fileList: [],\n uploading: false,\n maxUploading: 6,\n exceptionList: [],\n listScrolled: false,\n fileListLength: 0,\n uploadCount: 0,\n pastedUrls: '',\n pasteUploadMethod: 'save',\n // 失败文件自动重试相关\n autoReUpload: true,\n maxRetryCount: 10,\n // 最大重试次数\n retryTimer: null,\n // 自动重试定时器\n retryDelay: 12000,\n // 重试延迟时间(毫秒)\n // 批量上传并发控制\n uploadQueue: [],\n // 等待上传的文件队列\n activeUploads: 0,\n // 当前正在上传的文件数\n maxConcurrentUploads: 6,\n // 最大并发上传数\n // 取消上传控制\n abortControllers: new Map() // 存储每个文件的 AbortController\n };\n },\n watch: {\n fileList: {\n handler() {\n if (this.fileList.length > this.fileListLength) {\n this.$nextTick(() => {\n setTimeout(() => {\n if (this.$refs.scrollContainer) {\n // this.$refs.scrollContainer.setScrollTop(this.$refs.scrollContainer.wrapRef.scrollHeight) // 滚动到底部\n this.$refs.scrollContainer.setScrollTop(0); // 滚动到顶部\n }\n }, 100);\n });\n }\n this.fileListLength = this.fileList.length;\n },\n deep: true\n },\n useCustomUrl: {\n handler() {\n if (this.useCustomUrl === 'true') {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.customUrlPrefix + item.srcID;\n item.mdURL = `![${item.name}](${this.customUrlPrefix + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.customUrlPrefix + item.srcID}[/img]`;\n });\n } else {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.rootUrl + item.srcID;\n item.mdURL = `![${item.name}](${this.rootUrl + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.rootUrl + item.srcID}[/img]`;\n });\n }\n },\n immediate: true\n },\n customUrlPrefix: {\n handler() {\n if (this.useCustomUrl === 'true') {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.customUrlPrefix + item.srcID;\n item.mdURL = `![${item.name}](${this.customUrlPrefix + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.customUrlPrefix + item.srcID}[/img]`;\n });\n }\n },\n immediate: true\n },\n autoReUpload(val) {\n this.$store.commit('setStoreAutoReUpload', val);\n }\n },\n computed: {\n ...mapGetters(['storeAutoReUpload']),\n uploadSuccessCount() {\n return this.fileList.filter(item => item.status === 'done' || item.status === 'success').length;\n },\n uploadErrorCount() {\n return this.fileList.filter(item => item.status === 'exception').length;\n },\n uploadingCount() {\n return this.fileList.filter(item => item.status === 'uploading').length;\n },\n waitingCount() {\n return this.uploadQueue.length;\n },\n urlSize() {\n // 移动端为small\n return window.innerWidth < 768 ? 'small' : 'default';\n },\n disableTooltip() {\n return window.innerWidth < 768;\n },\n rootUrl() {\n // 链接前缀,优先级:用户自定义 > urlPrefix > 默认\n return this.useCustomUrl === 'true' ? this.customUrlPrefix : this.urlPrefix || `${window.location.protocol}//${window.location.host}/file/`;\n },\n pasteCardMethodButtonSize() {\n if (this.fileList.length) {\n return 'small';\n } else {\n return window.innerWidth < 768 ? 'small' : 'medium';\n }\n }\n },\n mounted() {\n document.addEventListener('paste', this.handlePaste);\n this.autoReUpload = this.storeAutoReUpload;\n },\n beforeUnmount() {\n document.removeEventListener('paste', this.handlePaste);\n // 清理状态\n this.uploadQueue = [];\n this.fileList = [];\n this.activeUploads = 0;\n },\n methods: {\n // 文件名中间截断,保留前缀和扩展名\n truncateFilename(filename, maxLength = 20) {\n if (!filename || filename.length <= maxLength) {\n return filename;\n }\n const lastDotIndex = filename.lastIndexOf('.');\n let name, ext;\n if (lastDotIndex > 0) {\n name = filename.substring(0, lastDotIndex);\n ext = filename.substring(lastDotIndex);\n } else {\n name = filename;\n ext = '';\n }\n // 保留扩展名和部分前后缀\n const keepEnd = ext.length + 4; // 扩展名 + 4个字符\n const keepStart = maxLength - keepEnd - 3; // 3个字符留给...\n if (keepStart <= 0) {\n return filename.substring(0, maxLength - 3) + '...';\n }\n return name.substring(0, keepStart) + '...' + name.slice(-4) + ext;\n },\n uploadFile(file) {\n // 如果fileList中不存在该文件,说明已被删除,直接返回\n if (!this.fileList.find(item => item.uid === file.file.uid)) {\n return;\n }\n\n // 并发控制:如果当前上传数已达上限,加入队列等待\n if (this.activeUploads >= this.maxConcurrentUploads) {\n this.uploadQueue.push(file);\n const waitingItem = this.fileList.find(item => item.uid === file.file.uid);\n if (waitingItem) waitingItem.status = 'waiting';\n return;\n }\n\n // 开始上传,增加计数\n this.activeUploads++;\n const uploadingItem = this.fileList.find(item => item.uid === file.file.uid);\n if (uploadingItem) uploadingItem.status = 'uploading';\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n const uploadChannel = fileItem?.uploadChannel || this.uploadChannel;\n\n // 如果上传渠道为外链,直接使用外链上传\n if (uploadChannel === 'external') {\n this.uploadSingleFile(file);\n return;\n }\n\n // HuggingFace 渠道:根据文件大小选择上传方式\n // 小文件(<20MB):通过 CF Workers 代理上传\n // 大文件(>=20MB):前端直传到 HuggingFace S3,绕过 CF Workers 限制\n if (uploadChannel === 'huggingface') {\n const HF_DIRECT_THRESHOLD = 20 * 1024 * 1024; // 20MB\n if (file.file.size >= HF_DIRECT_THRESHOLD) {\n this.uploadToHuggingFaceDirect(file);\n } else {\n this.uploadSingleFile(file);\n }\n return;\n }\n\n // Discord 渠道:限制 10MB,超过 9MB 就用分块上传(留安全余量)\n if (uploadChannel === 'discord') {\n const DISCORD_CHUNK_THRESHOLD = 9 * 1024 * 1024; // 9MB\n if (file.file.size > DISCORD_CHUNK_THRESHOLD) {\n this.uploadFileInChunks(file);\n } else {\n this.uploadSingleFile(file);\n }\n return;\n }\n\n // 其他渠道,检查文件大小,决定是否使用分块上传\n const CHUNK_THRESHOLD = 20 * 1024 * 1024; // 20MB\n if (file.file.size > CHUNK_THRESHOLD) {\n this.uploadFileInChunks(file);\n } else {\n this.uploadSingleFile(file);\n }\n },\n // 处理上传队列中的下一个文件\n processUploadQueue() {\n // 如果队列为空或已达并发上限,不处理\n if (this.uploadQueue.length === 0 || this.activeUploads >= this.maxConcurrentUploads) {\n return;\n }\n\n // 从队列中取出下一个文件并上传\n const nextFile = this.uploadQueue.shift();\n if (nextFile && this.fileList.find(item => item.uid === nextFile.file.uid)) {\n this.uploadFile(nextFile);\n } else {\n // 如果文件已被删除,继续处理下一个\n this.processUploadQueue();\n }\n },\n // 上传完成后的清理工作(成功或失败都调用)\n onUploadComplete() {\n this.activeUploads = Math.max(0, this.activeUploads - 1);\n\n // 处理队列中的下一个文件\n this.processUploadQueue();\n\n // 更新上传状态\n if (this.activeUploads === 0 && this.uploadQueue.length === 0) {\n this.uploading = false;\n }\n },\n // 单文件上传\n async uploadSingleFile(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return; // 文件已被删除\n\n const needServerCompress = fileItem.serverCompress;\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n const autoRetry = this.autoRetry && uploadChannel !== 'external';\n const uploadNameType = uploadChannel === 'external' ? 'default' : this.uploadNameType;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n const formData = new FormData();\n formData.append('file', file.file);\n if (uploadChannel === 'external') {\n formData.append('url', file.file.url);\n }\n\n // HuggingFace 渠道:在前端预计算 SHA256,避免后端 CPU 超时\n if (uploadChannel === 'huggingface') {\n try {\n console.log('Computing SHA256 for HuggingFace upload...');\n const sha256 = await this.computeSha256(file.file);\n formData.append('sha256', sha256);\n console.log('SHA256 computed:', sha256);\n } catch (err) {\n console.error('Failed to compute SHA256:', err);\n // 继续上传,让后端计算(可能会超时)\n }\n }\n axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder,\n method: 'post',\n data: formData,\n withAuthCode: true,\n signal: abortController.signal,\n // 添加取消信号\n onUploadProgress: progressEvent => {\n const percentCompleted = Math.round(progressEvent.loaded / progressEvent.total * 100);\n file.onProgress({\n percent: percentCompleted,\n file: file.file\n });\n }\n }).then(res => {\n file.onSuccess(res, file.file);\n }).catch(err => {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n console.log('上传已取消:', file.file.name);\n return;\n }\n if (err.response && err.response.status !== 401) {\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } else if (!err.response) {\n // 网络错误(如 ERR_HTTP2_PROTOCOL_ERROR),也加入异常列表\n this.exceptionList.push(file);\n file.onError(err, file.file);\n }\n }).finally(() => {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n });\n },\n // 分块上传\n async uploadFileInChunks(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return; // 文件已被删除\n\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n\n // Discord 使用 9MB 分块(留安全余量,Discord 限制 10MB)\n // Telegram 使用 16MB 分块(TG Bot getFile 下载限制 20MB,留 4MB 安全余量)\n // 其他渠道使用 16MB 分块\n const CHUNK_SIZE = uploadChannel === 'discord' ? 9 * 1024 * 1024 // 9MB for Discord\n : 16 * 1024 * 1024; // 16MB for Telegram and others (TG getFile limit: 20MB)\n\n const fileSize = file.file.size;\n const totalChunks = Math.ceil(fileSize / CHUNK_SIZE);\n const needServerCompress = fileItem.serverCompress;\n const autoRetry = this.autoRetry && uploadChannel !== 'external';\n const uploadNameType = uploadChannel === 'external' ? 'default' : this.uploadNameType;\n\n // HuggingFace 渠道:在前端预计算 SHA256\n let precomputedSha256 = null;\n if (uploadChannel === 'huggingface') {\n try {\n console.log('Computing SHA256 for HuggingFace chunked upload...');\n precomputedSha256 = await this.computeSha256(file.file);\n console.log('SHA256 computed:', precomputedSha256);\n } catch (err) {\n console.error('Failed to compute SHA256:', err);\n }\n }\n try {\n // 第一步:初始化分块上传,获取uploadId\n const initFormData = new FormData();\n initFormData.append('originalFileName', file.file.name);\n initFormData.append('originalFileType', file.file.type);\n initFormData.append('totalChunks', totalChunks.toString());\n const initResponse = await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&initChunked=true',\n method: 'post',\n data: initFormData,\n withAuthCode: true\n });\n if (!initResponse.data.success) {\n throw new Error('初始化分块上传失败: ' + initResponse.data.message);\n }\n const uploadId = initResponse.data.uploadId;\n console.log('分块上传初始化成功,uploadId:', uploadId);\n\n // 记录 totalChunks 和 uploadId 到文件项,用于后续清理\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (fileItem) {\n fileItem.totalChunks = totalChunks;\n fileItem.uploadId = uploadId;\n }\n\n // 第二步:并发上传所有分块\n const maxConcurrency = 3; // 最大并发数\n const chunkProgress = new Array(totalChunks).fill(0);\n let nextChunkIndex = 0;\n let hasError = false;\n let errorMsg = '';\n let isCancelled = false; // 标记是否被取消\n\n const uploadChunk = async chunkIndex => {\n if (hasError || isCancelled) return;\n const start = chunkIndex * CHUNK_SIZE;\n const end = Math.min(start + CHUNK_SIZE, fileSize);\n const chunk = file.file.slice(start, end);\n const formData = new FormData();\n formData.append('file', chunk, `${file.file.name}.part${chunkIndex.toString().padStart(3, '0')}`);\n formData.append('chunkIndex', chunkIndex.toString());\n formData.append('totalChunks', totalChunks.toString());\n formData.append('uploadId', uploadId);\n formData.append('originalFileName', file.file.name);\n formData.append('originalFileType', file.file.type);\n let retryCount = 0;\n const maxRetries = 3;\n while (retryCount < maxRetries) {\n if (hasError || isCancelled) return;\n try {\n await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&chunked=true',\n method: 'post',\n data: formData,\n withAuthCode: true,\n signal: abortController.signal,\n // 添加取消信号\n onUploadProgress: progressEvent => {\n if (hasError || isCancelled) return;\n const percent = Math.round(progressEvent.loaded / progressEvent.total * 100);\n chunkProgress[chunkIndex] = percent;\n const totalPercent = Math.round(chunkProgress.reduce((a, b) => a + b, 0) / totalChunks);\n file.onProgress({\n percent: totalPercent,\n file: file.file\n });\n }\n });\n return; // Success\n } catch (err) {\n // 如果是取消操作,直接返回\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n isCancelled = true;\n console.log('分块上传已取消:', file.file.name);\n return;\n }\n retryCount++;\n console.warn(`分块 ${chunkIndex + 1}/${totalChunks} 上传失败 (重试 ${retryCount}/${maxRetries}):`, err);\n if (retryCount >= maxRetries) {\n hasError = true;\n errorMsg = `分块 ${chunkIndex + 1}/${totalChunks} 上传失败: ${err.message}`;\n throw new Error(errorMsg);\n }\n // 等待后重试\n await new Promise(resolve => setTimeout(resolve, 2000 * retryCount));\n }\n }\n };\n\n // 创建并发池\n const pool = [];\n for (let i = 0; i < maxConcurrency; i++) {\n pool.push((async () => {\n while (nextChunkIndex < totalChunks && !hasError && !isCancelled) {\n const currentIndex = nextChunkIndex++;\n try {\n await uploadChunk(currentIndex);\n } catch (e) {\n if (!isCancelled) {\n hasError = true;\n errorMsg = e.message;\n }\n break;\n }\n }\n })());\n }\n await Promise.all(pool);\n\n // 如果被取消,直接返回\n if (isCancelled) {\n console.log('分块上传已取消,跳过合并步骤');\n return;\n }\n if (hasError) {\n throw new Error(errorMsg || '上传过程中发生错误');\n }\n\n // 第三步:所有分块上传完成,发送合并请求\n this.$message({\n type: 'info',\n message: '分块上传完成,正在合并文件,请耐心等待...',\n duration: 0 // 不自动关闭\n });\n const mergeFormData = new FormData();\n mergeFormData.append('uploadId', uploadId);\n mergeFormData.append('totalChunks', totalChunks.toString());\n mergeFormData.append('originalFileName', file.file.name);\n mergeFormData.append('originalFileType', file.file.type);\n // HuggingFace 渠道:传递预计算的 SHA256\n if (precomputedSha256) {\n mergeFormData.append('sha256', precomputedSha256);\n }\n const response = await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&chunked=true&merge=true',\n method: 'post',\n data: mergeFormData,\n withAuthCode: true\n });\n\n // 关闭提示\n this.$message.closeAll();\n\n // 同步处理完成\n file.onSuccess(response, file.file);\n } catch (err) {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n console.log('分块上传已取消:', file.file.name);\n return;\n }\n console.error('分块上传失败:', err);\n\n // 如果有uploadId,清理相关资源\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (fileItem && fileItem.uploadId) {\n this.cleanupUploadResources(fileItem.uploadId, fileItem.totalChunks).then(() => {\n console.log(`已清理分块上传失败的资源: ${fileItem.uploadId}`);\n }).catch(cleanupError => {\n console.warn('清理分块上传失败资源时出错:', cleanupError);\n });\n }\n if (err.response && err.response.status !== 401) {\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } else if (!err.response) {\n // 网络错误,也加入异常列表\n this.exceptionList.push(file);\n file.onError(err, file.file);\n }\n } finally {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n }\n },\n handleRemove(file) {\n // 如果文件正在上传,取消上传\n if (this.abortControllers.has(file.uid)) {\n this.abortControllers.get(file.uid).abort();\n this.abortControllers.delete(file.uid);\n }\n // 从上传队列中移除(如果在等待中)\n this.uploadQueue = this.uploadQueue.filter(item => item.file.uid !== file.uid);\n // 从文件列表中移除\n this.fileList = this.fileList.filter(item => item.uid !== file.uid);\n this.$message({\n type: 'info',\n message: this.truncateFilename(file.name) + '已删除'\n });\n },\n // 清理上传资源\n async cleanupUploadResources(uploadId, totalChunks = 0) {\n try {\n await axios({\n url: `/upload?cleanup=true&uploadId=${uploadId}&totalChunks=${totalChunks}`,\n method: 'get',\n withAuthCode: true,\n timeout: 5000\n });\n console.log(`清理上传资源成功: ${uploadId}`);\n } catch (error) {\n console.warn('清理上传资源失败:', error);\n }\n },\n handleSuccess(response, file) {\n const fileItem = this.fileList.find(item => item.uid === file.uid);\n if (!fileItem) return; // 文件已被删除\n\n try {\n // 对上传渠道为外链的,不修改链接\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n if (uploadChannel !== 'external') {\n // 从response.data[0].src中去除/file/前缀\n const srcID = response.data[0].src.replace('/file/', '');\n fileItem.url = `${window.location.protocol}//${window.location.host}/file/` + srcID;\n fileItem.finalURL = this.rootUrl + srcID;\n fileItem.mdURL = `![${file.name}](${this.rootUrl + srcID})`;\n fileItem.htmlURL = `\"${file.name}\"`;\n fileItem.ubbURL = `[img]${this.rootUrl + srcID}[/img]`;\n fileItem.srcID = srcID;\n }\n fileItem.progreess = 100;\n fileItem.status = 'success';\n\n // Save to history\n this.saveToHistory(fileItem);\n this.$message({\n type: 'success',\n message: this.truncateFilename(file.name) + '上传成功'\n });\n setTimeout(() => {\n const item = this.fileList.find(item => item.uid === file.uid);\n if (item) item.status = 'done';\n }, 1000);\n } catch (error) {\n this.$message.error(this.truncateFilename(file.name) + '上传失败');\n fileItem.status = 'exception';\n }\n // 注意:并发控制的 onUploadComplete 已在各上传方法的 finally 中调用\n },\n saveToHistory(fileItem) {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n const newRecord = {\n name: fileItem.name,\n url: fileItem.finalURL,\n time: Date.now(),\n type: fileItem.name.split('.').pop().toLowerCase()\n };\n history.push(newRecord);\n localStorage.setItem('uploadHistory', JSON.stringify(history));\n } catch (e) {\n console.error('Failed to save history', e);\n }\n },\n handleError(err, file) {\n const fileItem = this.fileList.find(item => item.uid === file.uid);\n if (!fileItem) return; // 文件已被删除\n\n this.$message.error(this.truncateFilename(file.name) + '上传失败');\n fileItem.status = 'exception';\n\n // 如果开启了自动重试,安排自动重试\n if (this.autoReUpload) {\n this.scheduleAutoRetry();\n }\n // 注意:并发控制的 onUploadComplete 已在各上传方法的 finally 中调用\n },\n handleCopy(file) {\n const status = this.fileList.find(item => item.uid === file.uid).status;\n if (status !== 'done' && status !== 'success') {\n this.$message({\n type: 'warning',\n message: '文件未上传成功,无法复制链接'\n });\n return;\n }\n if (this.selectedUrlForm === 'url') {\n navigator.clipboard.writeText(file.finalURL);\n } else if (this.selectedUrlForm === 'md') {\n navigator.clipboard.writeText(file.mdURL);\n } else if (this.selectedUrlForm === 'html') {\n navigator.clipboard.writeText(file.htmlURL);\n } else if (this.selectedUrlForm === 'ubb') {\n navigator.clipboard.writeText(file.ubbURL);\n } else {\n navigator.clipboard.writeText(file.finalURL);\n }\n this.$message({\n type: 'success',\n message: '复制成功'\n });\n },\n beforeUpload(file) {\n return new Promise(async (resolve, reject) => {\n let processedFile = file;\n\n // WebP 转换:在压缩之前进行\n // 条件:1.开启WebP转换 2.文件类型为图片 3.不是WebP/GIF/SVG格式\n const canConvertToWebp = this.convertToWebp && file.type.includes('image') && !file.type.includes('webp') && !file.type.includes('gif') && !file.type.includes('svg');\n if (canConvertToWebp) {\n try {\n const convertedFile = await this.convertImageToWebp(file);\n if (convertedFile) {\n processedFile = convertedFile;\n console.log(`WebP转换成功: ${file.name} -> ${convertedFile.name}, 大小: ${(file.size / 1024).toFixed(1)}KB -> ${(convertedFile.size / 1024).toFixed(1)}KB`);\n }\n } catch (err) {\n console.warn('WebP转换失败,使用原文件:', err);\n // 转换失败,继续使用原文件\n }\n }\n\n // 客户端压缩条件:1.文件类型为图片 2.开启客户端压缩,且文件大小大于压缩阈值\n const needCustomCompress = processedFile.type.includes('image') && this.customerCompress && processedFile.size / 1024 / 1024 > this.compressBar;\n const isLtLim = processedFile.size / 1024 / 1024 <= 1024 || this.uploadChannel !== 'telegram';\n const pushFileToQueue = (file, serverCompress) => {\n const fileUrl = URL.createObjectURL(file);\n this.fileList.push({\n uid: file.uid,\n name: file.name,\n url: fileUrl,\n finalURL: '',\n mdURL: '',\n htmlURL: '',\n ubbURL: '',\n srcID: '',\n status: 'uploading',\n progreess: 0,\n serverCompress: serverCompress,\n retryCount: 0\n });\n resolve(file);\n };\n if (needCustomCompress) {\n //尝试压缩图片\n imageConversion.compressAccurately(processedFile, 1024 * this.compressQuality).then(res => {\n //如果压缩后大于1024MB,且上传渠道为telegram,则不上传\n if (res.size / 1024 / 1024 > 1024 && this.uploadChannel === 'telegram') {\n this.$message.error(processedFile.name + '压缩后文件过大,无法上传!');\n reject('文件过大');\n }\n this.uploading = true;\n //将res包装成新的file\n const newFile = new File([res], processedFile.name, {\n type: res.type\n });\n newFile.uid = file.uid;\n const myUploadCount = this.uploadCount++;\n\n //开启服务端压缩条件:1.开启服务端压缩 2.文件大小小于10MB 3.上传渠道为Telegram\n const needServerCompress = this.serverCompress && newFile.size / 1024 / 1024 < 10 && this.uploadChannel === 'telegram';\n if (myUploadCount === 0) {\n pushFileToQueue(newFile, needServerCompress);\n } else {\n setTimeout(() => {\n pushFileToQueue(newFile, needServerCompress);\n this.uploadCount--;\n }, 300 * myUploadCount);\n }\n }).catch(err => {\n this.$message.error(processedFile.name + '压缩失败,无法上传!');\n reject(err);\n });\n } else if (isLtLim) {\n this.uploading = true;\n const myUploadCount = this.uploadCount++;\n\n // 开启服务端压缩条件:1.上传渠道为Telegram 2.开启服务端压缩 3.如果为图片,则文件大小小于10MB,否则不限制大小\n const needServerCompress = this.uploadChannel === 'telegram' && this.serverCompress && (processedFile.type.includes('image') ? processedFile.size / 1024 / 1024 < 10 : true);\n if (myUploadCount === 0) {\n pushFileToQueue(processedFile, needServerCompress);\n } else {\n setTimeout(() => {\n pushFileToQueue(processedFile, needServerCompress);\n this.uploadCount--;\n }, 300 * myUploadCount);\n }\n } else {\n this.$message.error(processedFile.name + '文件过大,无法上传!');\n reject('文件过大');\n }\n });\n },\n handleProgress(event) {\n const fileItem = this.fileList.find(item => item.uid === event.file.uid);\n if (fileItem) {\n fileItem.progreess = event.percent;\n }\n },\n copyAll() {\n if (this.selectedUrlForm === 'url') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.finalURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'md') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.mdURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'html') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.htmlURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'ubb') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.ubbURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.finalURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n }\n this.$message({\n type: 'success',\n message: '整体复制成功'\n });\n },\n clearFileList() {\n if (this.fileList.length > 0) {\n // 取消所有正在上传的文件\n this.abortControllers.forEach((controller, uid) => {\n controller.abort();\n });\n this.abortControllers.clear();\n // 清空上传队列\n this.uploadQueue = [];\n // 清空文件列表\n this.fileList = [];\n this.$message({\n type: 'success',\n message: '文件列表已清空'\n });\n } else {\n this.$message({\n type: 'info',\n message: '文件列表为空'\n });\n }\n },\n clearSuccessList() {\n if (this.uploadSuccessCount > 0) {\n this.fileList = this.fileList.filter(item => item.status !== 'done' && item.status !== 'success');\n this.$message({\n type: 'success',\n message: '成功上传文件已清空'\n });\n } else {\n this.$message({\n type: 'info',\n message: '成功上传文件为空'\n });\n }\n },\n handlePaste(event) {\n // 当粘贴位置是文本框时,不执行该操作\n if (event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA') {\n return;\n }\n const items = event.clipboardData.items;\n if (items.length > 0) {\n this.uploadFromUrl(items);\n }\n },\n handleUploadPasteUrls() {\n // 用于上传在上传文本框中粘贴的外链\n const urls = this.pastedUrls.split('\\n');\n // 处理空行和首尾空字符,链接须符合URL规范\n const validUrls = urls.map(url => url.trim()).filter(url => url !== '').filter(url => /^(https?:\\/\\/[^\\s$.?#].[^\\s]*)$/.test(url));\n\n // 根据粘贴上传方式进行上传\n if (this.pasteUploadMethod === 'save') {\n // 正常上传\n this.uploadFromUrl(validUrls.map(url => {\n return {\n kind: 'string',\n getAsString: callback => {\n callback(url);\n }\n };\n }));\n } else if (this.pasteUploadMethod === 'external') {\n // 仅保存外链,使用 external 渠道上传\n for (let i = 0; i < validUrls.length; i++) {\n const url = validUrls[i];\n const fileName = url.split('/').pop();\n const mdUrl = `![${fileName}](${url})`;\n const htmlUrl = `\"${fileName}\"`;\n const ubbUrl = `[img]${url}[/img]`;\n // 将 url 作为文件内容,文件名为 URL 的最后一部分\n const file = new File([], url.split('/').pop(), {\n type: 'text/plain'\n });\n file.uid = Date.now() + i;\n file.url = url;\n this.fileList.push({\n uid: file.uid,\n name: file.name,\n url: url,\n finalURL: url,\n mdURL: mdUrl,\n htmlURL: htmlUrl,\n ubbURL: ubbUrl,\n srcID: url,\n status: 'uploading',\n progreess: 0,\n serverCompress: false,\n uploadChannel: 'external',\n retryCount: 0\n });\n // 上传\n this.uploadFile({\n file: file,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }\n },\n uploadFromUrl(items) {\n for (let i = 0; i < items.length; i++) {\n if (items[i].kind === 'file') {\n const file = items[i].getAsFile();\n // 允许上传任意类型的文件\n file.uid = Date.now() + i;\n //接收beforeUpload的Promise对象\n const checkResult = this.beforeUpload(file);\n if (checkResult instanceof Promise) {\n checkResult.then(newFile => {\n if (newFile instanceof File) {\n this.uploadFile({\n file: newFile,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }).catch(err => {\n console.log(err);\n });\n }\n } else if (items[i].kind === 'string') {\n items[i].getAsString(text => {\n const urlPattern = /^(https?:\\/\\/[^\\s$.?#].[^\\s]*)$/;\n let fileName = '';\n if (urlPattern.test(text)) {\n axios.post('/api/fetchRes', {\n url: text\n }, {\n responseType: 'blob'\n }).then(response => {\n const contentType = response.headers['content-type'];\n if (response.status == 200) {\n // 提取文件名\n const disposition = response.headers['content-disposition'];\n if (disposition) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const filenameStarRegex = /filename\\*\\s*=\\s*UTF-8''([^;\\n]*)/; // 处理 filename*\n\n let matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n fileName = matches[1].replace(/['\"]/g, '');\n // 尝试解码\n try {\n fileName = decodeURIComponent(fileName);\n } catch (e) {\n fileName = '';\n }\n }\n if (fileName === '') {\n matches = filenameStarRegex.exec(disposition); // 尝试匹配 filename*\n if (matches != null && matches[1]) {\n fileName = decodeURIComponent(matches[1]);\n }\n }\n }\n // 尝试从URL中提取文件名\n if (fileName === '') {\n const url = new URL(text);\n fileName = url.pathname.split('/').pop();\n }\n // 未提取到文件名,使用默认文件名\n if (fileName === '') {\n // 获取文件后缀\n const url = new URL(text);\n let extension = url.pathname.split('.').pop();\n // 未能从URL提取有效后缀,使用bin作为默认后缀\n if (!extension || extension === '' || extension.length > 10) {\n extension = 'bin';\n }\n fileName = 'PastedFile' + Date.now() + i + '.' + extension;\n }\n\n // 读取文件内容\n const blob = response.data;\n const file = new File([blob], fileName, {\n type: blob.type\n });\n file.uid = Date.now() + i;\n // 接收beforeUpload的Promise对象\n const checkResult = this.beforeUpload(file);\n if (checkResult instanceof Promise) {\n checkResult.then(newFile => {\n if (newFile instanceof File) {\n this.uploadFile({\n file: newFile,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }).catch(err => {\n console.log(err);\n });\n }\n } else {\n throw new Error('URL地址请求失败');\n }\n }).catch(error => {\n this.$message({\n type: 'warning',\n message: '粘贴板中的URL地址请求失败'\n });\n });\n }\n });\n }\n }\n },\n selectAllText(event) {\n // 复制到剪贴板\n navigator.clipboard.writeText(event.target.value).then(() => {\n this.$message({\n type: 'success',\n message: '复制成功'\n });\n }).catch(() => {\n this.$message({\n type: 'error',\n message: '复制失败'\n });\n });\n },\n // 判断是否为图片类型\n isImage(fileName) {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff', 'ico', 'avif', 'heic', 'jfif', 'pjpeg', 'pjp', 'raw', 'cr2', 'nef', 'dng', 'eps', 'ai', 'emf', 'wmf'];\n const extension = fileName.split('.').pop().toLowerCase();\n return imageExtensions.includes(extension);\n },\n // 判断是否为视频类型\n isVideo(fileName) {\n const videoExtensions = ['mp4', 'webm', 'ogg', 'mkv'];\n const extension = fileName.split('.').pop().toLowerCase();\n return videoExtensions.includes(extension);\n },\n handleScroll(event) {\n this.listScrolled = event.scrollTop > 0 && this.fileList.length > 0;\n },\n retryError() {\n if (this.exceptionList.length > 0) {\n this.retryFailedFiles(this.exceptionList);\n this.exceptionList = [];\n } else {\n this.$message({\n type: 'info',\n message: '无上传失败文件'\n });\n }\n },\n handleAutoRetryChange(val) {\n this.$message({\n type: val ? 'success' : 'info',\n message: val ? '自动重试已开启' : '自动重试已关闭'\n });\n\n // 如果开启自动重试且有失败文件,立即开始重试\n if (val && this.exceptionList.length > 0) {\n this.scheduleAutoRetry();\n }\n },\n retryFailedFiles(files) {\n files.forEach(file => {\n const retryCount = file.retryCount || 0;\n if (retryCount < this.maxRetryCount) {\n file.retryCount = retryCount + 1;\n this.uploadFile({\n file: file.file,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n } else {\n this.$message({\n type: 'warning',\n message: `${file.name} 已达到最大重试次数(${this.maxRetryCount}),停止重试`\n });\n }\n });\n },\n scheduleAutoRetry() {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n }\n this.retryTimer = setTimeout(() => {\n if (this.autoReUpload && this.exceptionList.length > 0) {\n const filesToRetry = [...this.exceptionList];\n this.exceptionList = [];\n this.retryFailedFiles(filesToRetry);\n }\n }, this.retryDelay);\n },\n // HuggingFace 大文件直传(绕过 CF Workers 限制)\n // 流程:前端计算 SHA256 → 获取 S3 上传 URL → 直传到 S3 → 提交文件引用\n async uploadToHuggingFaceDirect(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n try {\n console.log('=== HuggingFace Direct Upload ===');\n console.log('File:', file.file.name, 'Size:', file.file.size);\n\n // 1. 计算 SHA256\n file.onProgress({\n percent: 5,\n file: file.file\n });\n console.log('Computing SHA256...');\n const sha256 = await this.computeSha256(file.file);\n console.log('SHA256:', sha256);\n\n // 检查是否已取消\n if (abortController.signal.aborted) {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n\n // 2. 获取文件样本(前512字节的base64)\n const sampleBytes = new Uint8Array(await file.file.slice(0, 512).arrayBuffer());\n const fileSample = btoa(String.fromCharCode(...sampleBytes));\n\n // 3. 获取 LFS 上传 URL\n file.onProgress({\n percent: 10,\n file: file.file\n });\n console.log('Getting LFS upload URL...');\n const uploadInfoRes = await axios({\n url: '/api/huggingface/getUploadUrl',\n method: 'post',\n data: {\n fileSize: file.file.size,\n fileName: file.file.name,\n sha256,\n fileSample\n },\n withAuthCode: true,\n signal: abortController.signal\n });\n if (!uploadInfoRes.data.success) {\n throw new Error(uploadInfoRes.data.error || 'Failed to get upload URL');\n }\n const uploadInfo = uploadInfoRes.data;\n console.log('Upload info:', uploadInfo);\n\n // 检查文件是否已存在\n if (uploadInfo.alreadyExists) {\n console.log('File already exists in LFS, skipping upload');\n file.onProgress({\n percent: 90,\n file: file.file\n });\n } else if (uploadInfo.needsLfs && uploadInfo.uploadAction) {\n // 4. 直接上传到 S3\n const {\n href,\n header\n } = uploadInfo.uploadAction;\n if (header?.chunk_size) {\n // 分片上传\n await this.uploadToHuggingFaceMultipart(file, uploadInfo, abortController);\n } else {\n // 基本上传\n console.log('Uploading to S3 (basic)...');\n const uploadRes = await fetch(href, {\n method: 'PUT',\n headers: header || {},\n body: file.file,\n signal: abortController.signal\n });\n if (!uploadRes.ok) {\n const error = await uploadRes.text();\n throw new Error(`S3 upload failed: ${uploadRes.status} - ${error}`);\n }\n console.log('S3 upload complete');\n }\n }\n\n // 检查是否已取消\n if (abortController.signal.aborted) {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n\n // 5. 提交文件引用\n file.onProgress({\n percent: 95,\n file: file.file\n });\n console.log('Committing file...');\n const commitRes = await axios({\n url: '/api/huggingface/commitUpload',\n method: 'post',\n data: {\n fullId: uploadInfo.fullId,\n filePath: uploadInfo.filePath,\n sha256,\n fileSize: file.file.size,\n fileName: file.file.name,\n channelName: uploadInfo.channelName\n },\n withAuthCode: true,\n signal: abortController.signal\n });\n if (!commitRes.data.success) {\n throw new Error(commitRes.data.error || 'Failed to commit file');\n }\n console.log('Upload complete:', commitRes.data);\n // 转换响应格式以匹配 handleSuccess 期望的格式\n const formattedResponse = {\n data: [{\n src: commitRes.data.src\n }]\n };\n file.onSuccess(formattedResponse, file.file);\n } catch (err) {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED' || err.name === 'AbortError') {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n console.error('HuggingFace direct upload error:', err);\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } finally {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n }\n },\n // HuggingFace 分片上传到 S3\n async uploadToHuggingFaceMultipart(file, uploadInfo, abortController) {\n const {\n uploadAction\n } = uploadInfo;\n const {\n href: completionUrl,\n header\n } = uploadAction;\n const chunkSize = parseInt(header.chunk_size);\n\n // 获取所有分片的上传 URL\n const parts = Object.keys(header).filter(key => /^[0-9]+$/.test(key));\n console.log(`Multipart upload: ${parts.length} parts, chunk size: ${chunkSize}`);\n const completeParts = [];\n const totalParts = parts.length;\n for (const part of parts) {\n // 检查是否已取消\n if (abortController && abortController.signal.aborted) {\n console.log('HuggingFace 分片上传已取消');\n throw new DOMException('Upload cancelled', 'AbortError');\n }\n const index = parseInt(part) - 1;\n const start = index * chunkSize;\n const end = Math.min(start + chunkSize, file.file.size);\n const chunk = file.file.slice(start, end);\n console.log(`Uploading part ${part}/${totalParts}`);\n const response = await fetch(header[part], {\n method: 'PUT',\n body: chunk,\n signal: abortController ? abortController.signal : undefined\n });\n if (!response.ok) {\n throw new Error(`Failed to upload part ${part}: ${response.status}`);\n }\n const etag = response.headers.get('ETag');\n if (!etag) {\n throw new Error(`No ETag for part ${part}`);\n }\n completeParts.push({\n partNumber: parseInt(part),\n etag\n });\n\n // 更新进度(10% - 90%)\n const progress = 10 + Math.round(parseInt(part) / totalParts * 80);\n file.onProgress({\n percent: progress,\n file: file.file\n });\n }\n\n // 检查是否已取消\n if (abortController && abortController.signal.aborted) {\n console.log('HuggingFace 分片上传已取消');\n throw new DOMException('Upload cancelled', 'AbortError');\n }\n\n // 完成分片上传\n console.log('Completing multipart upload...');\n const completeResponse = await fetch(completionUrl, {\n method: 'POST',\n headers: {\n 'Accept': 'application/vnd.git-lfs+json',\n 'Content-Type': 'application/vnd.git-lfs+json'\n },\n body: JSON.stringify({\n oid: uploadInfo.oid,\n parts: completeParts\n }),\n signal: abortController ? abortController.signal : undefined\n });\n if (!completeResponse.ok) {\n const error = await completeResponse.text();\n throw new Error(`Multipart complete failed: ${completeResponse.status} - ${error}`);\n }\n console.log('Multipart upload complete');\n },\n // 计算文件的 SHA256 哈希(用于 HuggingFace 上传)\n // 使用增量哈希算法,支持任意大小文件\n async computeSha256(file) {\n // 使用纯 JavaScript 实现的增量 SHA256\n // 这样可以分块处理大文件,避免内存溢出\n const sha256 = this.createSha256();\n const CHUNK_SIZE = 4 * 1024 * 1024; // 4MB chunks - 更小的块减少内存压力\n let offset = 0;\n while (offset < file.size) {\n const chunk = file.slice(offset, Math.min(offset + CHUNK_SIZE, file.size));\n const buffer = await chunk.arrayBuffer();\n sha256.update(new Uint8Array(buffer));\n offset += CHUNK_SIZE;\n\n // 每处理 20MB 打印一次进度\n if (offset % (20 * 1024 * 1024) < CHUNK_SIZE) {\n console.log(`SHA256 progress: ${Math.min(100, Math.round(offset / file.size * 100))}%`);\n }\n }\n return sha256.digest();\n },\n // 创建增量 SHA256 哈希器(纯 JavaScript 实现)\n createSha256() {\n // SHA256 常量\n const K = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n let H = new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]);\n let buffer = new Uint8Array(64);\n let bufferLength = 0;\n let totalLength = 0;\n const rotr = (x, n) => x >>> n | x << 32 - n;\n const processBlock = block => {\n const W = new Uint32Array(64);\n for (let i = 0; i < 16; i++) {\n W[i] = block[i * 4] << 24 | block[i * 4 + 1] << 16 | block[i * 4 + 2] << 8 | block[i * 4 + 3];\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(W[i - 15], 7) ^ rotr(W[i - 15], 18) ^ W[i - 15] >>> 3;\n const s1 = rotr(W[i - 2], 17) ^ rotr(W[i - 2], 19) ^ W[i - 2] >>> 10;\n W[i] = W[i - 16] + s0 + W[i - 7] + s1 >>> 0;\n }\n let [a, b, c, d, e, f, g, h] = H;\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);\n const ch = e & f ^ ~e & g;\n const temp1 = h + S1 + ch + K[i] + W[i] >>> 0;\n const S0 = rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22);\n const maj = a & b ^ a & c ^ b & c;\n const temp2 = S0 + maj >>> 0;\n h = g;\n g = f;\n f = e;\n e = d + temp1 >>> 0;\n d = c;\n c = b;\n b = a;\n a = temp1 + temp2 >>> 0;\n }\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n H[5] = H[5] + f >>> 0;\n H[6] = H[6] + g >>> 0;\n H[7] = H[7] + h >>> 0;\n };\n return {\n update(data) {\n totalLength += data.length;\n let offset = 0;\n if (bufferLength > 0) {\n const needed = 64 - bufferLength;\n const toCopy = Math.min(needed, data.length);\n buffer.set(data.subarray(0, toCopy), bufferLength);\n bufferLength += toCopy;\n offset = toCopy;\n if (bufferLength === 64) {\n processBlock(buffer);\n bufferLength = 0;\n }\n }\n while (offset + 64 <= data.length) {\n processBlock(data.subarray(offset, offset + 64));\n offset += 64;\n }\n if (offset < data.length) {\n buffer.set(data.subarray(offset), 0);\n bufferLength = data.length - offset;\n }\n },\n digest() {\n const bitLength = totalLength * 8;\n\n // Padding\n buffer[bufferLength++] = 0x80;\n if (bufferLength > 56) {\n buffer.fill(0, bufferLength, 64);\n processBlock(buffer);\n bufferLength = 0;\n }\n buffer.fill(0, bufferLength, 56);\n\n // Length in bits (big-endian, 64-bit)\n const view = new DataView(buffer.buffer);\n view.setUint32(56, Math.floor(bitLength / 0x100000000), false);\n view.setUint32(60, bitLength >>> 0, false);\n processBlock(buffer);\n\n // Convert to hex\n let hex = '';\n for (let i = 0; i < 8; i++) {\n hex += H[i].toString(16).padStart(8, '0');\n }\n return hex;\n }\n };\n },\n // 将图片转换为 WebP 格式\n async convertImageToWebp(file) {\n return new Promise((resolve, reject) => {\n // 不支持转换的格式直接返回 null\n if (file.type.includes('gif') || file.type.includes('svg') || file.type.includes('webp')) {\n resolve(null);\n return;\n }\n const img = new Image();\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n img.onload = () => {\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0);\n canvas.toBlob(blob => {\n if (blob) {\n // 修改文件名:将原扩展名替换为 .webp\n const originalName = file.name;\n const lastDotIndex = originalName.lastIndexOf('.');\n const newName = lastDotIndex > 0 ? originalName.substring(0, lastDotIndex) + '.webp' : originalName + '.webp';\n const webpFile = new File([blob], newName, {\n type: 'image/webp'\n });\n webpFile.uid = file.uid;\n resolve(webpFile);\n } else {\n reject(new Error('WebP 转换失败'));\n }\n\n // 清理\n URL.revokeObjectURL(img.src);\n }, 'image/webp', 0.92); // 0.92 质量参数,平衡质量和大小\n };\n img.onerror = () => {\n URL.revokeObjectURL(img.src);\n reject(new Error('图片加载失败'));\n };\n img.src = URL.createObjectURL(file);\n });\n }\n },\n beforeDestroy() {\n // 清理定时器\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadForm.vue?vue&type=template&id=c5a15344&scoped=true\"\nimport script from \"./UploadForm.vue?vue&type=script&lang=js\"\nexport * from \"./UploadForm.vue?vue&type=script&lang=js\"\n\nimport \"./UploadForm.vue?vue&type=style&index=0&id=c5a15344&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c5a15344\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"container\"\n};\nconst _hoisted_2 = {\n class: \"upload-home\"\n};\nconst _hoisted_3 = {\n href: \"https://cfbed.sanyue.de/qa/\",\n target: \"_blank\",\n class: \"info-container\"\n};\nconst _hoisted_4 = {\n class: \"toolbar-manage\"\n};\nconst _hoisted_5 = {\n class: \"toolbar\"\n};\nconst _hoisted_6 = {\n class: \"header\"\n};\nconst _hoisted_7 = {\n class: \"title\"\n};\nconst _hoisted_8 = {\n class: \"main-title\",\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n target: \"_blank\"\n};\nconst _hoisted_9 = {\n class: \"dialog-section\"\n};\nconst _hoisted_10 = {\n class: \"section-content\"\n};\nconst _hoisted_11 = {\n class: \"dialog-section\"\n};\nconst _hoisted_12 = {\n class: \"section-header\"\n};\nconst _hoisted_13 = {\n class: \"section-content\"\n};\nconst _hoisted_14 = {\n class: \"setting-item\"\n};\nconst _hoisted_15 = {\n key: 0,\n class: \"setting-item\"\n};\nconst _hoisted_16 = {\n class: \"dialog-action\"\n};\nconst _hoisted_17 = {\n class: \"dialog-section\"\n};\nconst _hoisted_18 = {\n class: \"section-content\"\n};\nconst _hoisted_19 = {\n class: \"setting-item\"\n};\nconst _hoisted_20 = {\n class: \"setting-item\"\n};\nconst _hoisted_21 = {\n class: \"setting-item\"\n};\nconst _hoisted_22 = {\n class: \"setting-label\"\n};\nconst _hoisted_23 = {\n class: \"dialog-section\"\n};\nconst _hoisted_24 = {\n class: \"section-content\"\n};\nconst _hoisted_25 = {\n class: \"dialog-section\"\n};\nconst _hoisted_26 = {\n class: \"section-header\"\n};\nconst _hoisted_27 = {\n class: \"section-content\"\n};\nconst _hoisted_28 = {\n class: \"setting-item\"\n};\nconst _hoisted_29 = {\n class: \"setting-label\"\n};\nconst _hoisted_30 = {\n class: \"setting-item\"\n};\nconst _hoisted_31 = {\n key: 0,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_32 = {\n class: \"setting-label\"\n};\nconst _hoisted_33 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_34 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_35 = {\n key: 1,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_36 = {\n class: \"setting-label\"\n};\nconst _hoisted_37 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_38 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_39 = {\n key: 0,\n class: \"dialog-section\"\n};\nconst _hoisted_40 = {\n class: \"section-header\"\n};\nconst _hoisted_41 = {\n class: \"section-content\"\n};\nconst _hoisted_42 = {\n class: \"setting-item\"\n};\nconst _hoisted_43 = {\n class: \"dialog-action\"\n};\nconst _hoisted_44 = [\"innerHTML\"];\nconst _hoisted_45 = {\n class: \"dialog-footer\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ToggleDark = _resolveComponent(\"ToggleDark\");\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\");\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\");\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\");\n const _component_Logo = _resolveComponent(\"Logo\");\n const _component_UploadForm = _resolveComponent(\"UploadForm\");\n const _component_el_radio = _resolveComponent(\"el-radio\");\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\");\n const _component_el_switch = _resolveComponent(\"el-switch\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n const _component_el_slider = _resolveComponent(\"el-slider\");\n const _component_el_input_number = _resolveComponent(\"el-input-number\");\n const _component_Footer = _resolveComponent(\"Footer\");\n const _component_UploadHistory = _resolveComponent(\"UploadHistory\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createVNode(_component_ToggleDark, {\n class: \"toggle-dark-button desktop-only\"\n }), _createVNode(_component_el_tooltip, {\n content: \"查看文档\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createElementVNode(\"a\", _hoisted_3, [_createVNode(_component_font_awesome_icon, {\n icon: \"book\",\n class: \"info-icon\",\n size: \"lg\"\n })])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_input, {\n class: _normalizeClass([\"upload-folder\", {\n 'active': $data.isFolderInputActive,\n 'no-announcement': !$options.announcementAvailable\n }]),\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.uploadFolder = $event),\n placeholder: \"上传目录\",\n onFocus: _cache[1] || (_cache[1] = $event => $data.isFolderInputActive = true),\n onBlur: _cache[2] || (_cache[2] = $event => $data.isFolderInputActive = false)\n }, null, 8, [\"class\", \"modelValue\"]), _createVNode(_component_el_tooltip, {\n content: \"切换上传方式\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"upload-method-button desktop-only\",\n onClick: $options.handleChangeUploadMethod\n }, {\n default: _withCtx(() => [$data.uploadMethod === 'default' ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"folder-open\",\n class: \"upload-method-icon\",\n size: \"lg\"\n })) : $data.uploadMethod === 'paste' ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"paste\",\n class: \"upload-method-icon\",\n size: \"lg\"\n })) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n content: \"上传记录\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"history-button desktop-only\",\n onClick: _cache[3] || (_cache[3] = $event => $data.showHistory = true)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"history-icon\",\n size: \"lg\"\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"]), $options.announcementAvailable ? (_openBlock(), _createBlock(_component_el_tooltip, {\n key: 0,\n content: \"查看公告\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"announcement-button desktop-only\",\n onClick: $options.handleShowAnnouncement\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"bullhorn\",\n class: \"announcement-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"])) : _createCommentVNode(\"\", true), _createVNode(_component_el_dropdown, {\n class: \"mobile-more-dropdown mobile-only\",\n trigger: \"click\",\n onCommand: $options.handleMobileMenuCommand\n }, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, null, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, {\n command: \"toggleTheme\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $options.getThemeIcon(),\n style: {\n \"margin-right\": \"8px\"\n }\n }, null, 8, [\"icon\"]), _createTextVNode(\" \" + _toDisplayString($options.getThemeText()), 1)]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"toggleUploadMethod\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $data.uploadMethod === 'default' ? 'paste' : 'folder-open',\n style: {\n \"margin-right\": \"8px\"\n }\n }, null, 8, [\"icon\"]), _createTextVNode(\" \" + _toDisplayString($data.uploadMethod === 'default' ? '粘贴上传' : '文件上传'), 1)]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"showHistory\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n style: {\n \"margin-right\": \"8px\"\n }\n }), _cache[25] || (_cache[25] = _createTextVNode(\" 上传记录 \", -1))]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"showAnnouncement\",\n disabled: !$options.announcementAvailable\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"bullhorn\",\n style: {\n \"margin-right\": \"8px\"\n }\n }), _cache[26] || (_cache[26] = _createTextVNode(\" 查看公告 \", -1))]),\n _: 1\n }, 8, [\"disabled\"])]),\n _: 1\n })]),\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"mobile-more-button\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"ellipsis-v\",\n size: \"lg\"\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"onCommand\"]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-manage-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleOpenToolbar,\n circle: \"\"\n }, {\n default: _withCtx(() => [!$data.isToolBarOpen ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"bars\",\n class: \"manage-icon\",\n size: \"lg\"\n })) : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"times\",\n class: \"manage-icon\",\n size: \"lg\"\n }))]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"上传设置\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button compress-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.openCompressDialog,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload\",\n class: \"compress-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"链接格式\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button link-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.openUrlDialog,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"link\",\n class: \"link-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"系统管理\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button config-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleManage,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cog\",\n class: \"config-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"退出登录\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button sign-out-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleLogout,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"sign-out-alt\",\n class: \"sign-out-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"])]), _createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_Logo, {\n useConfigLink: true\n }), _createElementVNode(\"h1\", _hoisted_7, [_createElementVNode(\"a\", _hoisted_8, _toDisplayString($options.ownerName), 1), _cache[27] || (_cache[27] = _createTextVNode(\" ImgHub\", -1))])]), _createVNode(_component_UploadForm, {\n selectedUrlForm: $data.selectedUrlForm,\n customerCompress: $data.customerCompress,\n compressQuality: $data.compressQuality,\n compressBar: $data.compressBar,\n serverCompress: $data.serverCompress,\n uploadChannel: $data.uploadChannel,\n uploadNameType: $data.uploadNameType,\n useCustomUrl: $data.useCustomUrl,\n customUrlPrefix: $data.customUrlPrefix,\n autoRetry: $data.autoRetry,\n urlPrefix: $options.urlPrefix,\n uploadMethod: $data.uploadMethod,\n uploadFolder: $data.uploadFolder,\n convertToWebp: $data.convertToWebp,\n class: \"upload\"\n }, null, 8, [\"selectedUrlForm\", \"customerCompress\", \"compressQuality\", \"compressBar\", \"serverCompress\", \"uploadChannel\", \"uploadNameType\", \"useCustomUrl\", \"customUrlPrefix\", \"autoRetry\", \"urlPrefix\", \"uploadMethod\", \"uploadFolder\", \"convertToWebp\"]), _createVNode(_component_el_dialog, {\n title: \"链接格式设置\",\n modelValue: $data.showUrlDialog,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.showUrlDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n class: \"settings-dialog\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_9, [_cache[32] || (_cache[32] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"默认复制链接\")], -1)), _createElementVNode(\"div\", _hoisted_10, [_createVNode(_component_el_radio_group, {\n modelValue: $data.selectedUrlForm,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.selectedUrlForm = $event),\n onChange: $options.changeUrlForm,\n class: \"radio-card-group grid-2x2\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n value: \"url\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"link\",\n class: \"radio-icon\"\n }), _cache[28] || (_cache[28] = _createElementVNode(\"span\", null, \"原始链接\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"md\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"code\",\n class: \"radio-icon\"\n }), _cache[29] || (_cache[29] = _createElementVNode(\"span\", null, \"MarkDown\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"html\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"code-branch\",\n class: \"radio-icon\"\n }), _cache[30] || (_cache[30] = _createElementVNode(\"span\", null, \"HTML\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"ubb\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"quote-right\",\n class: \"radio-icon\"\n }), _cache[31] || (_cache[31] = _createElementVNode(\"span\", null, \"BBCode\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"onChange\"])])]), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"div\", _hoisted_12, [_cache[33] || (_cache[33] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"自定义链接\", -1)), _createVNode(_component_el_tooltip, {\n content: \"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入\",\n placement: \"top\",\n \"raw-content\": \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_13, [_createElementVNode(\"div\", _hoisted_14, [_cache[34] || (_cache[34] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"启用自定义\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.useCustomUrl,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.useCustomUrl = $event),\n \"active-value\": \"true\",\n \"inactive-value\": \"false\"\n }, null, 8, [\"modelValue\"])]), $data.useCustomUrl === 'true' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [_cache[35] || (_cache[35] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"自定义前缀\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.customUrlPrefix,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.customUrlPrefix = $event),\n placeholder: \"请输入自定义链接前缀\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])])) : _createCommentVNode(\"\", true)])]), _createElementVNode(\"div\", _hoisted_16, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[7] || (_cache[7] = $event => $data.showUrlDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[36] || (_cache[36] = [_createTextVNode(\"确定\", -1)]))]),\n _: 1\n })])]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_el_dialog, {\n title: \"上传设置\",\n modelValue: $data.showCompressDialog,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = $event => $data.showCompressDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n class: \"settings-dialog\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_17, [_cache[45] || (_cache[45] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"上传渠道\")], -1)), _createElementVNode(\"div\", _hoisted_18, [_createElementVNode(\"div\", _hoisted_19, [_cache[42] || (_cache[42] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传渠道\", -1)), _createVNode(_component_el_radio_group, {\n modelValue: $data.uploadChannel,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = $event => $data.uploadChannel = $event),\n class: \"radio-card-group compact\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n label: \"telegram\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"paper-plane\",\n class: \"channel-icon\"\n }), _cache[37] || (_cache[37] = _createElementVNode(\"span\", null, \"TG\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"cfr2\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud\",\n class: \"channel-icon\"\n }), _cache[38] || (_cache[38] = _createElementVNode(\"span\", null, \"R2\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"s3\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"database\",\n class: \"channel-icon\"\n }), _cache[39] || (_cache[39] = _createElementVNode(\"span\", null, \"S3\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"discord\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"comments\",\n class: \"channel-icon\"\n }), _cache[40] || (_cache[40] = _createElementVNode(\"span\", null, \"DC\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"huggingface\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"robot\",\n class: \"channel-icon\"\n }), _cache[41] || (_cache[41] = _createElementVNode(\"span\", null, \"HF\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_20, [_cache[43] || (_cache[43] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传目录\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.uploadFolder = $event),\n placeholder: \"请输入上传目录路径\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_21, [_createElementVNode(\"span\", _hoisted_22, [_cache[44] || (_cache[44] = _createTextVNode(\" 自动切换 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"对于非分块上传文件,上传失败自动切换到其他渠道上传\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createVNode(_component_el_switch, {\n modelValue: $data.autoRetry,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $data.autoRetry = $event)\n }, null, 8, [\"modelValue\"])])])]), _createElementVNode(\"div\", _hoisted_23, [_cache[50] || (_cache[50] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件命名方式\")], -1)), _createElementVNode(\"div\", _hoisted_24, [_createVNode(_component_el_radio_group, {\n modelValue: $data.uploadNameType,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = $event => $data.uploadNameType = $event),\n class: \"radio-card-group grid-2x2\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n label: \"default\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cog\",\n class: \"radio-icon\"\n }), _cache[46] || (_cache[46] = _createElementVNode(\"span\", null, \"默认\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"index\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"hashtag\",\n class: \"radio-icon\"\n }), _cache[47] || (_cache[47] = _createElementVNode(\"span\", null, \"仅前缀\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"origin\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"file-signature\",\n class: \"radio-icon\"\n }), _cache[48] || (_cache[48] = _createElementVNode(\"span\", null, \"仅原名\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"short\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"compress-alt\",\n class: \"radio-icon\"\n }), _cache[49] || (_cache[49] = _createElementVNode(\"span\", null, \"短链接\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])])]), _createElementVNode(\"div\", _hoisted_25, [_createElementVNode(\"div\", _hoisted_26, [_cache[51] || (_cache[51] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件预处理\", -1)), _createVNode(_component_el_tooltip, {\n content: \"上传前在本地进行格式转换和压缩,仅对图片文件生效\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_27, [_createElementVNode(\"div\", _hoisted_28, [_createElementVNode(\"span\", _hoisted_29, [_cache[52] || (_cache[52] = _createTextVNode(\" 转换为WebP \", -1)), _createVNode(_component_el_tooltip, {\n content: \"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createVNode(_component_el_switch, {\n modelValue: $data.convertToWebp,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = $event => $data.convertToWebp = $event)\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_30, [_cache[53] || (_cache[53] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"文件压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.customerCompress,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = $event => $data.customerCompress = $event)\n }, null, 8, [\"modelValue\"])]), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [_createElementVNode(\"span\", _hoisted_32, [_cache[54] || (_cache[54] = _createTextVNode(\" 压缩阈值 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"设置图片大小阈值,超过此值将自动压缩,单位MB\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_33, [_createVNode(_component_el_slider, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_34, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n step: 1,\n \"value-on-clear\": 1,\n size: \"small\",\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\"]), _cache[55] || (_cache[55] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [_createElementVNode(\"span\", _hoisted_36, [_cache[56] || (_cache[56] = _createTextVNode(\" 期望大小 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"设置压缩后图片大小期望值,单位MB\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_37, [_createVNode(_component_el_slider, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.compressQuality = $event),\n min: 0.5,\n max: $data.compressBar,\n step: 0.1,\n \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"max\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_38, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = $event => $data.compressQuality = $event),\n min: 0.5,\n max: $data.compressBar,\n step: 0.1,\n precision: 1,\n \"value-on-clear\": 0.5,\n size: \"small\",\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\", \"max\"]), _cache[57] || (_cache[57] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true)])]), $data.uploadChannel === 'telegram' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_39, [_createElementVNode(\"div\", _hoisted_40, [_cache[58] || (_cache[58] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"服务端压缩\", -1)), _createVNode(_component_el_tooltip, {\n content: \"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题\",\n placement: \"top\",\n \"raw-content\": \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_41, [_createElementVNode(\"div\", _hoisted_42, [_cache[59] || (_cache[59] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"开启压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.serverCompress,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = $event => $data.serverCompress = $event)\n }, null, 8, [\"modelValue\"])])])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_43, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[20] || (_cache[20] = $event => $data.showCompressDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[60] || (_cache[60] = [_createTextVNode(\"确定\", -1)]))]),\n _: 1\n })])]),\n _: 1\n }, 8, [\"modelValue\", \"width\"])]), _createVNode(_component_Footer, {\n class: \"footer\"\n }), _createVNode(_component_el_dialog, {\n title: \"公告\",\n modelValue: $data.showAnnouncementDialog,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = $event => $data.showAnnouncementDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false,\n center: \"\"\n }, {\n footer: _withCtx(() => [_createElementVNode(\"span\", _hoisted_45, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[22] || (_cache[22] = $event => $data.showAnnouncementDialog = false)\n }, {\n default: _withCtx(() => [...(_cache[61] || (_cache[61] = [_createTextVNode(\"我已知晓!\", -1)]))]),\n _: 1\n })])]),\n default: _withCtx(() => [_createElementVNode(\"div\", {\n innerHTML: $data.announcementContent\n }, null, 8, _hoisted_44)]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_UploadHistory, {\n show: $data.showHistory,\n onClose: _cache[24] || (_cache[24] = $event => $data.showHistory = false)\n }, null, 8, [\"show\"])]);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport UploadForm from '@/components/UploadForm.vue';\nimport Footer from '@/components/Footer.vue';\nimport ToggleDark from '@/components/ToggleDark.vue';\nimport Logo from '@/components/Logo.vue';\nimport UploadHistory from '@/components/UploadHistory.vue';\nimport backgroundManager from '@/mixins/backgroundManager';\nimport { ref } from 'vue';\nimport cookies from 'vue-cookies';\nimport { mapGetters } from 'vuex';\nexport default {\n name: 'UploadHome',\n mixins: [backgroundManager],\n data() {\n return {\n selectedUrlForm: ref(''),\n showUrlDialog: false,\n showCompressDialog: false,\n customerCompress: true,\n //上传前压缩\n compressQuality: 4,\n //压缩后大小\n compressBar: 5,\n //压缩阈值\n convertToWebp: false,\n //转换为WebP格式\n serverCompress: true,\n //服务器端压缩\n uploadChannel: '',\n //上传渠道\n uploadNameType: '',\n //上传文件命名方式\n customUrlPrefix: '',\n //自定义链接前缀\n useCustomUrl: 'false',\n //是否启用自定义链接格式\n autoRetry: true,\n //失败自动切换\n useDefaultWallPaper: false,\n isToolBarOpen: false,\n //是否打开工具栏\n uploadMethod: 'default',\n //上传方式\n uploadFolder: '',\n // 上传文件夹\n isFolderInputActive: false,\n showAnnouncementDialog: false,\n // 控制公告弹窗的显示\n announcementContent: '',\n // 公告内容\n showHistory: false,\n themeMode: 'auto' // 主题模式:light, dark, auto\n };\n },\n watch: {\n customerCompress(val) {\n this.updateCompressConfig('customerCompress', val);\n },\n compressQuality(val) {\n this.updateCompressConfig('compressQuality', val);\n },\n compressBar(val) {\n // 确保值在有效范围内\n if (val === null || val === undefined || val < 1) {\n this.compressBar = 1;\n return;\n }\n // 确保期望大小不超过压缩阈值\n if (this.compressQuality > val) {\n this.compressQuality = val;\n }\n this.updateCompressConfig('compressBar', val);\n },\n serverCompress(val) {\n this.updateCompressConfig('serverCompress', val);\n },\n convertToWebp(val) {\n this.updateCompressConfig('convertToWebp', val);\n },\n uploadChannel(val) {\n this.updateStoreUploadChannel(val);\n },\n uploadNameType(val) {\n this.updateStoreUploadNameType(val);\n },\n customUrlPrefix(val) {\n this.$store.commit('setCustomUrlSettings', {\n key: 'customUrlPrefix',\n value: val\n });\n },\n useCustomUrl(val) {\n this.$store.commit('setCustomUrlSettings', {\n key: 'useCustomUrl',\n value: val\n });\n },\n autoRetry(val) {\n this.$store.commit('setStoreAutoRetry', val);\n },\n uploadFolder(val) {\n // 验证上传文件夹路径的合法性\n if (this.validateUploadFolder(val)) {\n this.$store.commit('setStoreUploadFolder', val);\n } else {\n this.$nextTick(() => {\n this.uploadFolder = this.storeUploadFolder;\n });\n }\n }\n },\n computed: {\n ...mapGetters(['userConfig', 'uploadCopyUrlForm', 'compressConfig', 'storeUploadChannel', 'storeUploadNameType', 'customUrlSettings', 'storeAutoRetry', 'storeUploadMethod', 'storeUploadFolder']),\n ownerName() {\n return this.userConfig?.ownerName || 'Sanyue';\n },\n dialogWidth() {\n return window.innerWidth > 768 ? '50%' : '90%';\n },\n disableTooltip() {\n return window.innerWidth < 768;\n },\n urlPrefix() {\n // 全局自定义链接前缀\n return this.userConfig?.urlPrefix || `${window.location.protocol}//${window.location.host}/file/`;\n },\n announcementAvailable() {\n return !!this.userConfig?.announcement;\n }\n },\n mounted() {\n // 初始化背景图,启用自动创建元素\n this.initializeBackground('uploadBkImg', '.container', false, true);\n\n // 读取用户选择的链接格式\n this.selectedUrlForm = this.uploadCopyUrlForm || 'url';\n // 读取用户选择的压缩设置(优先用户设置,其次系统默认配置)\n this.customerCompress = this.compressConfig.customerCompress ?? this.parseBoolean(this.userConfig?.defaultCustomerCompress, true);\n this.compressQuality = this.compressConfig.compressQuality ?? this.parseNumber(this.userConfig?.defaultCompressQuality, 4);\n this.compressBar = this.compressConfig.compressBar ?? this.parseNumber(this.userConfig?.defaultCompressBar, 5);\n this.serverCompress = this.compressConfig.serverCompress ?? true;\n this.convertToWebp = this.compressConfig.convertToWebp ?? this.parseBoolean(this.userConfig?.defaultConvertToWebp, false);\n // 读取用户选择的上传渠道\n this.uploadChannel = this.storeUploadChannel || this.userConfig?.defaultUploadChannel || 'telegram';\n // 用户定义的失败自动切换\n this.autoRetry = this.storeAutoRetry;\n // 读取用户选择的上传文件命名方式\n this.uploadNameType = this.storeUploadNameType || this.userConfig?.defaultUploadNameType || 'default';\n // 读取用户自定义链接格式\n this.customUrlPrefix = this.customUrlSettings.customUrlPrefix;\n this.useCustomUrl = this.customUrlSettings.useCustomUrl;\n // 读取用户偏好的上传方式\n this.uploadMethod = this.storeUploadMethod;\n // 读取用户设置的上传文件夹\n this.uploadFolder = this.storeUploadFolder || this.userConfig?.defaultUploadFolder || '';\n\n // 从 Vuex store 读取主题模式状态\n const cusDarkMode = this.$store.getters.cusDarkMode;\n const useDarkMode = this.$store.getters.useDarkMode;\n if (!cusDarkMode) {\n this.themeMode = 'auto';\n } else if (useDarkMode) {\n this.themeMode = 'dark';\n } else {\n this.themeMode = 'light';\n }\n\n // 首次访问公告\n const visited = localStorage.getItem('visitedUploadHome');\n const announcement = this.userConfig?.announcement;\n if (!visited && announcement) {\n this.announcementContent = announcement;\n this.showAnnouncementDialog = true;\n localStorage.setItem('visitedUploadHome', 'true');\n }\n },\n components: {\n UploadForm,\n Footer,\n ToggleDark,\n Logo,\n UploadHistory\n },\n methods: {\n // 验证上传文件夹路径的合法性\n validateUploadFolder(path) {\n // 如果路径为空,返回true(允许空路径)\n if (!path || path.trim() === '') {\n return true;\n }\n\n // 检查路径是否以/开头\n if (!path.startsWith('/')) {\n this.$message.error('上传目录必须以 \"/\" 开头');\n return false;\n }\n\n // 检查路径是否包含非法字符\n const invalidChars = /[\\\\:\\*\\?\"'<>\\| \\(\\)\\[\\]\\{\\}#%\\^`~;@&=\\+\\$,]/;\n if (invalidChars.test(path)) {\n this.$message.error('上传目录包含非法字符,请使用合法的路径格式');\n return false;\n }\n\n // 检查路径是否包含连续的斜杠\n if (path.includes('//')) {\n this.$message.error('上传目录不能包含连续的斜杠');\n return false;\n }\n return true;\n },\n handleManage() {\n this.$router.push('/dashboard');\n },\n // 解析布尔值\n parseBoolean(value, defaultValue) {\n if (value === undefined || value === null) return defaultValue;\n if (typeof value === 'boolean') return value;\n if (typeof value === 'string') return value === 'true';\n return defaultValue;\n },\n // 解析数字\n parseNumber(value, defaultValue) {\n if (value === undefined || value === null) return defaultValue;\n const num = parseFloat(value);\n return isNaN(num) ? defaultValue : num;\n },\n openUrlDialog() {\n this.showUrlDialog = true;\n },\n handleLogout() {\n cookies.remove('authCode');\n this.$router.push('/login');\n this.$message.success('已退出登录');\n },\n changeUrlForm() {\n this.$store.commit('setUploadCopyUrlForm', this.selectedUrlForm);\n },\n openCompressDialog() {\n this.showCompressDialog = true;\n },\n updateCompressConfig(key, value) {\n this.$store.commit('setCompressConfig', {\n key,\n value\n });\n },\n updateStoreUploadChannel(value) {\n this.$store.commit('setStoreUploadChannel', value);\n },\n updateStoreUploadNameType(value) {\n this.$store.commit('setStoreUploadNameType', value);\n },\n handleOpenToolbar() {\n this.isToolBarOpen = !this.isToolBarOpen;\n // 等过渡动画结束,向active类添加pointer-events属性,使其可以点击\n setTimeout(() => {\n const buttons = document.querySelectorAll('.toolbar-button');\n buttons.forEach(button => {\n button.style.pointerEvents = this.isToolBarOpen ? 'auto' : 'none';\n });\n }, 300);\n },\n handleChangeUploadMethod() {\n this.uploadMethod = this.uploadMethod === 'default' ? 'paste' : 'default';\n this.$store.commit('setUploadMethod', this.uploadMethod);\n },\n handleMobileMenuCommand(command) {\n if (command === 'toggleTheme') {\n // 循环切换:auto -> light -> dark -> auto\n if (this.themeMode === 'auto') {\n // 切换到亮色\n this.themeMode = 'light';\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', false);\n } else if (this.themeMode === 'light') {\n // 切换到暗色\n this.themeMode = 'dark';\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', true);\n } else {\n // 切换到自动\n this.themeMode = 'auto';\n this.$store.commit('setCusDarkMode', false);\n }\n } else if (command === 'toggleUploadMethod') {\n this.handleChangeUploadMethod();\n } else if (command === 'showHistory') {\n this.showHistory = true;\n } else if (command === 'showAnnouncement') {\n this.handleShowAnnouncement();\n }\n },\n getThemeIcon() {\n // 显示下一个模式的图标\n if (this.themeMode === 'auto') return 'sun'; // auto -> light\n if (this.themeMode === 'light') return 'moon'; // light -> dark\n return 'adjust'; // dark -> auto\n },\n getThemeText() {\n // 显示下一个模式的文字\n if (this.themeMode === 'auto') return '浅色模式';\n if (this.themeMode === 'light') return '深色模式';\n return '自动模式';\n },\n handleShowAnnouncement() {\n const announcement = this.userConfig?.announcement;\n if (announcement) {\n this.announcementContent = announcement;\n this.showAnnouncementDialog = true;\n } else {\n this.$message.info('暂无公告');\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadHome.vue?vue&type=template&id=316c27dc&scoped=true\"\nimport script from \"./UploadHome.vue?vue&type=script&lang=js\"\nexport * from \"./UploadHome.vue?vue&type=script&lang=js\"\n\nimport \"./UploadHome.vue?vue&type=style&index=0&id=316c27dc&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-316c27dc\"]])\n\nexport default __exports__","module.exports = require(\"./build/conversion.js\");\n"],"names":["t","e","module","exports","this","n","r","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","some","a","f","g","w","b","PNG","JPEG","GIF","Promise","u","next","throw","done","then","apply","toDataURL","toBlob","split","match","atob","length","Uint8Array","charCodeAt","Blob","type","Image","onload","onerror","Error","src","document","createElement","href","window","URL","createObjectURL","download","Date","now","toString","body","appendChild","createEvent","initEvent","dispatchEvent","removeChild","FileReader","onloadend","target","result","readAsDataURL","h","assign","getContext","Number","scale","width","height","orientation","rotate","Math","PI","drawImage","translate","fetch","blob","y","quality","isNaN","size","accuracy","filter","sort","abs","pow","v","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","key","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","_component_el_tooltip","show","historyList","content","placement","circle","onClick","toggleViewMode","icon","viewMode","_","clearHistory","$event","$emit","groupedHistory","group","date","items","item","index","time","isImage","name","url","loading","onError","args","handleImageError","isVideo","muted","copyLink","openLink","deleteItem","title","formatTime","props","Boolean","data","watch","val","loadHistory","computed","groups","forEach","dateStr","getFullYear","String","getMonth","padStart","getDate","push","keys","map","mounted","savedMode","localStorage","getItem","methods","history","JSON","parse","console","error","setItem","$confirm","confirmButtonText","cancelButtonText","removeItem","$message","success","catch","newHistory","stringify","fileName","imageExtensions","extension","pop","toLowerCase","includes","videoExtensions","timestamp","year","month","day","hours","getHours","minutes","getMinutes","seconds","getSeconds","navigator","clipboard","writeText","open","__exports__","ref","style","autoplay","playsinline","loop","_component_CameraFilled","_component_el_icon","_component_el_upload","_component_el_input","_component_el_radio_button","_component_el_radio_group","_component_el_card","_component_List","_component_Checked","_component_Failed","_component_el_text","_component_el_switch","_component_el_dropdown_item","_component_el_dropdown_menu","_component_el_dropdown","_component_el_progress","_component_Link","_component_Delete","_component_el_scrollbar","onMousemove","handleUploadCardMouseMove","onMouseleave","handleUploadCardMouseLeave","uploadMethod","uploading","fileList","drag","multiple","uploadFile","onSuccess","handleSuccess","handleError","beforeUpload","handleProgress","modelValue","pastedUrls","placeholder","rows","pasteCardMethodButtonSize","handleUploadPasteUrls","pasteUploadMethod","label","onScroll","handleScroll","listScrolled","uploadingCount","waitingCount","uploadSuccessCount","uploadErrorCount","disabled","disableTooltip","copyAll","dropdown","autoReUpload","onChange","handleAutoRetryChange","retryError","clearFileList","clearSuccessList","slice","reverse","file","span","truncated","truncateFilename","status","finalURL","readonly","selectAllText","urlSize","prepend","mdURL","htmlURL","ubbURL","percentage","progreess","handleCopy","handleRemove","selectedUrlForm","required","customerCompress","compressQuality","compressBar","serverCompress","uploadChannel","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadFolder","convertToWebp","maxUploading","exceptionList","fileListLength","uploadCount","maxRetryCount","retryTimer","retryDelay","uploadQueue","activeUploads","maxConcurrentUploads","abortControllers","Map","handler","$nextTick","setTimeout","$refs","scrollContainer","setScrollTop","deep","srcID","rootUrl","immediate","$store","commit","innerWidth","location","protocol","host","addEventListener","handlePaste","storeAutoReUpload","beforeUnmount","removeEventListener","filename","maxLength","lastDotIndex","lastIndexOf","ext","substring","keepEnd","keepStart","find","uid","waitingItem","uploadingItem","fileItem","uploadSingleFile","HF_DIRECT_THRESHOLD","uploadToHuggingFaceDirect","DISCORD_CHUNK_THRESHOLD","uploadFileInChunks","CHUNK_THRESHOLD","processUploadQueue","nextFile","shift","onUploadComplete","max","needServerCompress","abortController","AbortController","set","formData","FormData","append","log","sha256","computeSha256","err","axios","method","withAuthCode","signal","onUploadProgress","progressEvent","percentCompleted","round","loaded","total","onProgress","percent","res","code","response","finally","delete","CHUNK_SIZE","fileSize","totalChunks","ceil","precomputedSha256","initFormData","initResponse","message","uploadId","maxConcurrency","chunkProgress","Array","fill","nextChunkIndex","hasError","errorMsg","isCancelled","uploadChunk","async","start","chunkIndex","end","min","chunk","retryCount","maxRetries","totalPercent","reduce","warn","resolve","pool","currentIndex","all","duration","mergeFormData","closeAll","cleanupUploadResources","cleanupError","has","abort","timeout","replace","saveToHistory","newRecord","scheduleAutoRetry","reject","processedFile","canConvertToWebp","convertedFile","convertImageToWebp","toFixed","needCustomCompress","isLtLim","pushFileToQueue","fileUrl","newFile","File","myUploadCount","event","urls","join","controller","clear","tagName","clipboardData","uploadFromUrl","validUrls","trim","test","kind","getAsString","callback","mdUrl","htmlUrl","ubbUrl","evt","getAsFile","checkResult","text","urlPattern","post","responseType","headers","disposition","filenameRegex","filenameStarRegex","matches","exec","decodeURIComponent","pathname","scrollTop","retryFailedFiles","files","clearTimeout","filesToRetry","aborted","sampleBytes","arrayBuffer","fileSample","btoa","fromCharCode","uploadInfoRes","uploadInfo","alreadyExists","needsLfs","uploadAction","header","chunk_size","uploadToHuggingFaceMultipart","uploadRes","ok","commitRes","fullId","filePath","channelName","formattedResponse","completionUrl","chunkSize","parseInt","parts","completeParts","totalParts","part","DOMException","undefined","etag","partNumber","progress","completeResponse","oid","createSha256","offset","buffer","update","digest","K","Uint32Array","H","bufferLength","totalLength","rotr","x","processBlock","block","W","s0","s1","S1","ch","temp1","S0","maj","temp2","needed","toCopy","subarray","bitLength","view","DataView","setUint32","floor","hex","img","canvas","ctx","originalName","newName","webpFile","revokeObjectURL","beforeDestroy","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_component_ToggleDark","_component_Logo","_component_UploadForm","_component_el_radio","_component_el_dialog","_component_el_slider","_component_el_input_number","_component_Footer","_component_UploadHistory","isFolderInputActive","announcementAvailable","onFocus","onBlur","handleChangeUploadMethod","showHistory","handleShowAnnouncement","trigger","onCommand","handleMobileMenuCommand","command","getThemeIcon","getThemeText","isToolBarOpen","handleOpenToolbar","openCompressDialog","openUrlDialog","handleManage","handleLogout","useConfigLink","ownerName","showUrlDialog","dialogWidth","changeUrlForm","showCompressDialog","step","precision","showAnnouncementDialog","center","footer","innerHTML","announcementContent","onClose","mixins","backgroundManager","useDefaultWallPaper","themeMode","updateCompressConfig","updateStoreUploadChannel","updateStoreUploadNameType","validateUploadFolder","storeUploadFolder","userConfig","announcement","initializeBackground","uploadCopyUrlForm","compressConfig","parseBoolean","defaultCustomerCompress","parseNumber","defaultCompressQuality","defaultCompressBar","defaultConvertToWebp","storeUploadChannel","defaultUploadChannel","storeAutoRetry","storeUploadNameType","defaultUploadNameType","customUrlSettings","storeUploadMethod","defaultUploadFolder","cusDarkMode","getters","useDarkMode","visited","components","UploadForm","Footer","ToggleDark","Logo","UploadHistory","path","startsWith","invalidChars","$router","defaultValue","num","parseFloat","buttons","querySelectorAll","button","pointerEvents","info"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/js/34.71e48dd0.js.map.gz b/js/34.71e48dd0.js.map.gz deleted file mode 100644 index 0e0b21876aad232a54227b6755401f089f13e2a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53169 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 diff --git a/js/733.5ac461f0.js b/js/733.5ac461f0.js new file mode 100644 index 0000000..d88c15a --- /dev/null +++ b/js/733.5ac461f0.js @@ -0,0 +1,2 @@ +(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[733],{189:function(e,t,o){"use strict";o.r(t),o.d(t,{default:function(){return _t}});var s=o(8507),l=(o(5331),o(213),o(47)),i=(o(9648),o(6768)),a=o(4232);const n={class:"history-header"},r={class:"header-left"},d={class:"record-count"},c={class:"header-right"},u={key:0,class:"history-content"},p={class:"timeline-header"},h={class:"date-label"},m={key:0,class:"grid-view"},g={class:"grid-preview"},f=["src"],b=["src"],y={key:2,class:"file-icon-wrapper"},k={class:"grid-overlay"},C={class:"grid-actions"},w={class:"grid-info"},v=["title"],F={class:"upload-time"},L={key:1,class:"list-view"},U={class:"list-preview"},x=["src"],S=["src"],T={key:2,class:"file-icon-wrapper-small"},$={class:"list-info"},_=["title"],M=["title"],R={class:"list-meta"},E={class:"upload-time"},I={class:"list-actions"},A={key:1,class:"empty-state"};function P(e,t,o,P,V,z){const D=(0,i.g2)("font-awesome-icon"),B=l.S2,W=s.R7;return(0,i.uX)(),(0,i.CE)("div",{class:(0,a.C4)(["history-container",{active:o.show}])},[(0,i.Lk)("div",n,[(0,i.Lk)("div",r,[t[3]||(t[3]=(0,i.Lk)("h2",null,"历史记录",-1)),(0,i.Lk)("span",d,"共 "+(0,a.v_)(V.historyList.length)+" 条",1)]),(0,i.Lk)("div",c,[(0,i.bF)(W,{content:"切换视图",placement:"bottom"},{default:(0,i.k6)(()=>[(0,i.bF)(B,{circle:"",onClick:z.toggleViewMode},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"grid"===V.viewMode?"list":"th-large"},null,8,["icon"])]),_:1},8,["onClick"])]),_:1}),(0,i.bF)(W,{content:"清空记录",placement:"bottom"},{default:(0,i.k6)(()=>[(0,i.bF)(B,{circle:"",type:"danger",onClick:z.clearHistory},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])]),_:1}),(0,i.bF)(B,{circle:"",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"times"})]),_:1})])]),V.historyList.length>0?((0,i.uX)(),(0,i.CE)("div",u,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(z.groupedHistory,e=>((0,i.uX)(),(0,i.CE)("div",{key:e.date,class:"history-group"},[(0,i.Lk)("div",p,[t[4]||(t[4]=(0,i.Lk)("div",{class:"timeline-dot"},null,-1)),(0,i.Lk)("span",h,(0,a.v_)(e.date),1)]),"grid"===V.viewMode?((0,i.uX)(),(0,i.CE)("div",m,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(e,o)=>((0,i.uX)(),(0,i.CE)("div",{key:e.time,class:"grid-item"},[(0,i.Lk)("div",g,[z.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[1]||(t[1]=(...e)=>z.handleImageError&&z.handleImageError(...e))},null,40,f)):z.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",{key:1,src:e.url,muted:""},null,8,b)):((0,i.uX)(),(0,i.CE)("div",y,[(0,i.bF)(D,{icon:"file",class:"file-icon"})])),(0,i.Lk)("div",k,[(0,i.Lk)("div",C,[(0,i.bF)(B,{circle:"",size:"default",type:"primary",onClick:t=>z.copyLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"copy"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"default",class:"action-btn-view",onClick:t=>z.openLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"default",type:"danger",onClick:t=>z.deleteItem(e)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])])])]),(0,i.Lk)("div",w,[(0,i.Lk)("div",{class:"file-name",title:e.name},(0,a.v_)(e.name),9,v),(0,i.Lk)("div",F,(0,a.v_)(z.formatTime(e.time)),1)])]))),128))])):((0,i.uX)(),(0,i.CE)("div",L,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(e,o)=>((0,i.uX)(),(0,i.CE)("div",{key:e.time,class:"list-item"},[(0,i.Lk)("div",U,[z.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[2]||(t[2]=(...e)=>z.handleImageError&&z.handleImageError(...e))},null,40,x)):z.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",{key:1,src:e.url,muted:""},null,8,S)):((0,i.uX)(),(0,i.CE)("div",T,[(0,i.bF)(D,{icon:"file"})]))]),(0,i.Lk)("div",$,[(0,i.Lk)("div",{class:"file-name",title:e.name},(0,a.v_)(e.name),9,_),(0,i.Lk)("div",{class:"file-url",title:e.url},(0,a.v_)(e.url),9,M)]),(0,i.Lk)("div",R,[(0,i.Lk)("div",E,(0,a.v_)(z.formatTime(e.time)),1)]),(0,i.Lk)("div",I,[(0,i.bF)(B,{circle:"",size:"small",type:"primary",onClick:t=>z.copyLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"copy"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"small",class:"action-btn-view",onClick:t=>z.openLink(e.url)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,i.bF)(B,{circle:"",size:"small",type:"danger",onClick:t=>z.deleteItem(e)},{default:(0,i.k6)(()=>[(0,i.bF)(D,{icon:"trash-alt"})]),_:1},8,["onClick"])])]))),128))]))]))),128))])):((0,i.uX)(),(0,i.CE)("div",A,[(0,i.bF)(D,{icon:"history",class:"empty-icon"}),t[5]||(t[5]=(0,i.Lk)("p",null,"暂无上传记录",-1))]))],2)}o(4114),o(8111),o(2489),o(7588),o(1701),o(3110),o(8335);var V={name:"UploadHistory",props:{show:{type:Boolean,default:!1}},data(){return{historyList:[],viewMode:"grid"}},watch:{show(e){e&&this.loadHistory()}},computed:{groupedHistory(){const e={};return this.historyList.forEach(t=>{const o=new Date(t.time),s=`${o.getFullYear()}-${String(o.getMonth()+1).padStart(2,"0")}-${String(o.getDate()).padStart(2,"0")}`;e[s]||(e[s]=[]),e[s].push(t)}),Object.keys(e).sort((e,t)=>new Date(t)-new Date(e)).map(t=>({date:t,items:e[t]}))}},mounted(){const e=localStorage.getItem("historyViewMode");e&&(this.viewMode=e)},methods:{loadHistory(){try{const e=JSON.parse(localStorage.getItem("uploadHistory")||"[]");this.historyList=e.sort((e,t)=>t.time-e.time)}catch(e){console.error("Failed to load history",e),this.historyList=[]}},toggleViewMode(){this.viewMode="grid"===this.viewMode?"list":"grid",localStorage.setItem("historyViewMode",this.viewMode)},clearHistory(){this.$confirm("确定要清空所有上传记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=[],localStorage.removeItem("uploadHistory"),this.$message.success("记录已清空")}).catch(()=>{})},deleteItem(e){this.$confirm("确定要删除这条记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=this.historyList.filter(t=>t.time!==e.time);try{const t=JSON.parse(localStorage.getItem("uploadHistory")||"[]"),o=t.filter(t=>t.time!==e.time);localStorage.setItem("uploadHistory",JSON.stringify(o)),this.$message.success("记录已删除")}catch(t){console.error("Failed to update history",t)}}).catch(()=>{})},isImage(e){const t=["jpg","jpeg","png","gif","bmp","webp","svg","tiff","ico","avif","heic","jfif","pjpeg","pjp"],o=e?e.split(".").pop().toLowerCase():"";return t.includes(o)},isVideo(e){const t=["mp4","webm","ogg","mkv"],o=e?e.split(".").pop().toLowerCase():"";return t.includes(o)},formatTime(e){const t=new Date(e),o=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),l=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0");return`${o}-${s}-${l} ${i}:${a}:${n}`},copyLink(e){navigator.clipboard.writeText(e).then(()=>{this.$message.success("链接已复制")}).catch(()=>{this.$message.error("复制失败")})},openLink(e){window.open(e,"_blank")},handleImageError(e){e.target.src=o(6682)}}},z=o(1241);const D=(0,z.A)(V,[["render",P],["__scopeId","data-v-3d294b36"]]);var B=D,W=o(6975),N=o(1418),H=(o(333),o(4757)),j=o(9267),O=(o(5616),o(5558)),Q=(o(8075),o(6810)),X=(o(4396),o(4885),o(8559)),q=(o(5970),o(9655)),G=(o(2893),o(2086)),J=(o(670),o(8830),o(3597),o(4253)),K=o(683),Y=(o(5385),o(9623)),Z=(o(6711),o(7358)),ee=o(813);o(4896);const te={class:"upload-form"},oe={class:"upload-card-glow",ref:"uploadCardGlow"},se={key:0,class:"upload-card"},le={class:"paste-card-actions"},ie={class:"upload-list-dashboard-action"},ae={class:"modern-action-group"},ne={class:"modern-dropdown-item-content"},re={class:"modern-action-btn modern-action-btn-danger"},de=["href"],ce={key:0,style:{width:"10vw","border-radius":"12px"},autoplay:"",muted:"",playsinline:"",loop:""},ue=["src"],pe=["src","onError"],he={key:2,style:{width:"10vw","border-radius":"12px"}},me={class:"upload-list-item-content"},ge={class:"upload-list-item-name-wrapper"},fe={key:0,class:"upload-list-item-url"},be={class:"upload-list-item-url-row"},ye={class:"upload-list-item-url-row"},ke={key:1,class:"upload-list-item-progress"},Ce={class:"upload-list-item-action"},we=["onClick"],ve=["onClick"];function Fe(e,t,n,r,d,c){const u=(0,i.g2)("CameraFilled"),p=ee.tk,h=Z.j5,m=Y.WK,g=l.S2,f=Q.Zh,b=Q.MQ,y=K.Ik,k=(0,i.g2)("List"),C=(0,i.g2)("Checked"),w=(0,i.g2)("Failed"),v=J.$g,F=(0,i.g2)("font-awesome-icon"),L=s.R7,U=O.qi,x=G.c6,S=G.Iy,T=G.dW,$=q.ve,_=(0,i.g2)("Link"),M=(0,i.g2)("Delete"),R=X.kA;return(0,i.uX)(),(0,i.CE)("div",te,[(0,i.Lk)("div",{class:"upload-card-wrapper",onMousemove:t[0]||(t[0]=(...e)=>c.handleUploadCardMouseMove&&c.handleUploadCardMouseMove(...e)),onMouseleave:t[1]||(t[1]=(...e)=>c.handleUploadCardMouseLeave&&c.handleUploadCardMouseLeave(...e))},[(0,i.Lk)("div",oe,null,512),"default"===n.uploadMethod?((0,i.uX)(),(0,i.Wv)(h,{key:0,class:(0,a.C4)(["upload-card",{"is-uploading":d.uploading,"upload-card-busy":d.fileList.length}]),drag:"",multiple:"","http-request":c.uploadFile,onSuccess:c.handleSuccess,"on-error":c.handleError,"before-upload":c.beforeUpload,"on-progress":c.handleProgress,"file-list":d.fileList,"show-file-list":!1},{default:(0,i.k6)(()=>[(0,i.bF)(p,{class:(0,a.C4)(["el-icon--upload",{"upload-list-busy":d.fileList.length}])},{default:(0,i.k6)(()=>[(0,i.bF)(u)]),_:1},8,["class"]),(0,i.Lk)("div",{class:(0,a.C4)(["el-upload__text",{"upload-list-busy":d.fileList.length}])},[...t[7]||(t[7]=[(0,i.Lk)("em",null,"拖拽",-1),(0,i.eW)(),(0,i.Lk)("em",null,"点击",-1),(0,i.eW)(" 或 ",-1),(0,i.Lk)("em",null,"Ctrl + V",-1),(0,i.eW)(" 粘贴上传",-1)])],2)]),_:1},8,["class","http-request","onSuccess","on-error","before-upload","on-progress","file-list"])):(0,i.Q3)("",!0)],32),"paste"===n.uploadMethod?((0,i.uX)(),(0,i.CE)("div",se,[(0,i.bF)(y,{class:(0,a.C4)(["paste-card",{"is-uploading":d.uploading,"upload-card-busy":d.fileList.length}])},{default:(0,i.k6)(()=>[(0,i.bF)(m,{modelValue:d.pastedUrls,"onUpdate:modelValue":t[2]||(t[2]=e=>d.pastedUrls=e),class:"upload-card-textarea",placeholder:"粘贴外链上传,多个外链用换行分隔",type:"textarea",rows:d.fileList.length?4:14},null,8,["modelValue","rows"]),(0,i.Lk)("div",le,[(0,i.bF)(g,{class:"paste-card-upload-button",type:"primary",size:c.pasteCardMethodButtonSize,onClick:c.handleUploadPasteUrls},{default:(0,i.k6)(()=>[...t[8]||(t[8]=[(0,i.eW)(" 上 传 ",-1)])]),_:1},8,["size","onClick"]),(0,i.bF)(b,{modelValue:d.pasteUploadMethod,"onUpdate:modelValue":t[3]||(t[3]=e=>d.pasteUploadMethod=e),class:"paste-card-method-group",size:c.pasteCardMethodButtonSize},{default:(0,i.k6)(()=>[(0,i.bF)(f,{label:"save"},{default:(0,i.k6)(()=>[...t[9]||(t[9]=[(0,i.eW)("转存",-1)])]),_:1}),(0,i.bF)(f,{label:"external"},{default:(0,i.k6)(()=>[...t[10]||(t[10]=[(0,i.eW)("外链",-1)])]),_:1})]),_:1},8,["modelValue","size"])])]),_:1},8,["class"])])):(0,i.Q3)("",!0),(0,i.bF)(y,{class:(0,a.C4)(["upload-list-card",{"upload-list-busy":d.fileList.length,"is-uploading":d.uploading}])},{default:(0,i.k6)(()=>[(0,i.Lk)("div",{class:(0,a.C4)(["upload-list-container",{"upload-list-busy":d.fileList.length}])},[(0,i.bF)(R,{onScroll:c.handleScroll,ref:"scrollContainer"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",{class:(0,a.C4)(["upload-list-dashboard",{"list-scrolled":d.listScrolled}])},[(0,i.bF)(v,{class:"upload-list-dashboard-title"},{default:(0,i.k6)(()=>[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(k)]),_:1}),(0,i.eW)((0,a.v_)(c.uploadingCount+c.waitingCount)+" ",1),(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(C)]),_:1}),(0,i.eW)((0,a.v_)(c.uploadSuccessCount)+" ",1),(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(w)]),_:1}),(0,i.eW)((0,a.v_)(c.uploadErrorCount),1)]),_:1}),(0,i.Lk)("div",ie,[(0,i.Lk)("div",ae,[(0,i.bF)(L,{disabled:c.disableTooltip,content:"整体复制",placement:"top"},{default:(0,i.k6)(()=>[(0,i.Lk)("button",{class:"modern-action-btn",onClick:t[4]||(t[4]=(...e)=>c.copyAll&&c.copyAll(...e))},[(0,i.bF)(F,{icon:"copy"})])]),_:1},8,["disabled"]),(0,i.bF)(L,{disabled:c.disableTooltip,content:"失败重试",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(T,null,{dropdown:(0,i.k6)(()=>[(0,i.bF)(S,{class:"modern-dropdown-menu"},{default:(0,i.k6)(()=>[(0,i.bF)(x,null,{default:(0,i.k6)(()=>[(0,i.Lk)("div",ne,[t[11]||(t[11]=(0,i.Lk)("span",null,"自动重试",-1)),(0,i.bF)(U,{modelValue:d.autoReUpload,"onUpdate:modelValue":t[6]||(t[6]=e=>d.autoReUpload=e),onChange:c.handleAutoRetryChange,size:"small"},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),default:(0,i.k6)(()=>[(0,i.Lk)("button",{class:"modern-action-btn",onClick:t[5]||(t[5]=(...e)=>c.retryError&&c.retryError(...e))},[(0,i.bF)(F,{icon:"redo"})])]),_:1})]),_:1},8,["disabled"]),(0,i.bF)(L,{disabled:c.disableTooltip,content:"清空列表",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(T,null,{dropdown:(0,i.k6)(()=>[(0,i.bF)(S,{class:"modern-dropdown-menu"},{default:(0,i.k6)(()=>[(0,i.bF)(x,{onClick:c.clearFileList},{default:(0,i.k6)(()=>[...t[12]||(t[12]=[(0,i.eW)("清空全部",-1)])]),_:1},8,["onClick"]),(0,i.bF)(x,{onClick:c.clearSuccessList},{default:(0,i.k6)(()=>[...t[13]||(t[13]=[(0,i.eW)("清空已上传",-1)])]),_:1},8,["onClick"])]),_:1})]),default:(0,i.k6)(()=>[(0,i.Lk)("button",re,[(0,i.bF)(F,{icon:"trash-alt"})])]),_:1})]),_:1},8,["disabled"])])])],2),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(d.fileList.slice().reverse(),e=>((0,i.uX)(),(0,i.CE)("div",{class:"upload-list-item",key:e.name,span:8},[(0,i.Lk)("a",{href:e.url,target:"_blank",class:"upload-list-item-preview"},[c.isVideo(e.name)?((0,i.uX)(),(0,i.CE)("video",ce,[(0,i.Lk)("source",{src:e.url,type:"video/mp4"},null,8,ue),t[14]||(t[14]=(0,i.eW)(" Your browser does not support the video tag. ",-1))])):c.isImage(e.name)?((0,i.uX)(),(0,i.CE)("img",{key:1,style:{width:"10vw","border-radius":"12px"},src:e.url,onError:t=>e.url=o(6682)},null,40,pe)):((0,i.uX)(),(0,i.CE)("div",he,[(0,i.bF)(F,{icon:"file",class:"file-icon"})]))],8,de),(0,i.Lk)("div",me,[(0,i.Lk)("div",ge,[(0,i.bF)(v,{class:"upload-list-item-name",truncated:""},{default:(0,i.k6)(()=>[(0,i.eW)((0,a.v_)(c.truncateFilename(e.name)),1)]),_:2},1024)]),"done"===e.status?((0,i.uX)(),(0,i.CE)("div",fe,[(0,i.Lk)("div",be,[(0,i.bF)(m,{modelValue:e.finalURL,"onUpdate:modelValue":t=>e.finalURL=t,readonly:"",onClick:c.selectAllText,size:c.urlSize},{prepend:(0,i.k6)(()=>[...t[15]||(t[15]=[(0,i.eW)("URL",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,i.bF)(m,{modelValue:e.mdURL,"onUpdate:modelValue":t=>e.mdURL=t,readonly:"",onClick:c.selectAllText,size:c.urlSize},{prepend:(0,i.k6)(()=>[...t[16]||(t[16]=[(0,i.eW)("MarkDown",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])]),(0,i.Lk)("div",ye,[(0,i.bF)(m,{modelValue:e.htmlURL,"onUpdate:modelValue":t=>e.htmlURL=t,readonly:"",onClick:c.selectAllText,size:c.urlSize},{prepend:(0,i.k6)(()=>[...t[17]||(t[17]=[(0,i.eW)("HTML",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,i.bF)(m,{modelValue:e.ubbURL,"onUpdate:modelValue":t=>e.ubbURL=t,readonly:"",onClick:c.selectAllText,size:c.urlSize},{prepend:(0,i.k6)(()=>[...t[18]||(t[18]=[(0,i.eW)("BBCode",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])])])):((0,i.uX)(),(0,i.CE)("div",ke,[(0,i.bF)($,{percentage:e.progreess,status:e.status,"show-text":!1},null,8,["percentage","status"])]))]),(0,i.Lk)("div",Ce,[(0,i.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-primary",onClick:t=>c.handleCopy(e)},[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(_)]),_:1})],8,we),(0,i.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-danger",onClick:t=>c.handleRemove(e)},[(0,i.bF)(p,null,{default:(0,i.k6)(()=>[(0,i.bF)(M)]),_:1})],8,ve)])]))),128))]),_:1},8,["onScroll"])],2)]),_:1},8,["class"])])}o(6573),o(8100),o(7936),o(116),o(8237),o(9577),o(1549),o(9797),o(9631),o(5623),o(4979),o(4603),o(7566),o(8721);var Le=o(457),Ue=o(6334),xe=o(8401),Se={name:"UploadForm",props:{selectedUrlForm:{type:String,default:"url",required:!1},customerCompress:{type:Boolean,default:!0,required:!1},compressQuality:{type:Number,default:4,required:!1},compressBar:{type:Number,default:5,required:!1},serverCompress:{type:Boolean,default:!0,required:!1},uploadChannel:{type:String,default:"telegram",required:!1},uploadNameType:{type:String,default:"default",required:!1},useCustomUrl:{type:String,default:"false",required:!1},customUrlPrefix:{type:String,default:"",required:!1},autoRetry:{type:Boolean,default:!0,required:!1},urlPrefix:{type:String,default:"",required:!1},uploadMethod:{type:String,default:"default",required:!1},uploadFolder:{type:String,default:"",required:!1},convertToWebp:{type:Boolean,default:!1,required:!1}},data(){return{fileList:[],uploading:!1,maxUploading:6,exceptionList:[],listScrolled:!1,fileListLength:0,uploadCount:0,pastedUrls:"",pasteUploadMethod:"save",autoReUpload:!0,maxRetryCount:10,retryTimer:null,retryDelay:12e3,uploadQueue:[],activeUploads:0,maxConcurrentUploads:6,abortControllers:new Map}},watch:{fileList:{handler(){this.fileList.length>this.fileListLength&&this.$nextTick(()=>{setTimeout(()=>{this.$refs.scrollContainer&&this.$refs.scrollContainer.setScrollTop(0)},100)}),this.fileListLength=this.fileList.length},deep:!0},useCustomUrl:{handler(){"true"===this.useCustomUrl?this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.customUrlPrefix+e.srcID,e.mdURL=`![${e.name}](${this.customUrlPrefix+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.customUrlPrefix+e.srcID}[/img]`)}):this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.rootUrl+e.srcID,e.mdURL=`![${e.name}](${this.rootUrl+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.rootUrl+e.srcID}[/img]`)})},immediate:!0},customUrlPrefix:{handler(){"true"===this.useCustomUrl&&this.fileList.forEach(e=>{"external"!==e.uploadChannel&&(e.finalURL=this.customUrlPrefix+e.srcID,e.mdURL=`![${e.name}](${this.customUrlPrefix+e.srcID})`,e.htmlURL=`${e.name}`,e.ubbURL=`[img]${this.customUrlPrefix+e.srcID}[/img]`)})},immediate:!0},autoReUpload(e){this.$store.commit("setStoreAutoReUpload",e)}},computed:{...(0,xe.L8)(["storeAutoReUpload"]),uploadSuccessCount(){return this.fileList.filter(e=>"done"===e.status||"success"===e.status).length},uploadErrorCount(){return this.fileList.filter(e=>"exception"===e.status).length},uploadingCount(){return this.fileList.filter(e=>"uploading"===e.status).length},waitingCount(){return this.uploadQueue.length},urlSize(){return window.innerWidth<768?"small":"default"},disableTooltip(){return window.innerWidth<768},rootUrl(){return"true"===this.useCustomUrl?this.customUrlPrefix:this.urlPrefix||`${window.location.protocol}//${window.location.host}/file/`},pasteCardMethodButtonSize(){return this.fileList.length||window.innerWidth<768?"small":"medium"}},mounted(){document.addEventListener("paste",this.handlePaste),this.autoReUpload=this.storeAutoReUpload},beforeUnmount(){document.removeEventListener("paste",this.handlePaste),this.uploadQueue=[],this.fileList=[],this.activeUploads=0},methods:{truncateFilename(e,t=20){if(!e||e.length<=t)return e;const o=e.lastIndexOf(".");let s,l;o>0?(s=e.substring(0,o),l=e.substring(o)):(s=e,l="");const i=l.length+4,a=t-i-3;return a<=0?e.substring(0,t-3)+"...":s.substring(0,a)+"..."+s.slice(-4)+l},uploadFile(e){if(!this.fileList.find(t=>t.uid===e.file.uid))return;if(this.activeUploads>=this.maxConcurrentUploads){this.uploadQueue.push(e);const t=this.fileList.find(t=>t.uid===e.file.uid);return void(t&&(t.status="waiting"))}this.activeUploads++;const t=this.fileList.find(t=>t.uid===e.file.uid);t&&(t.status="uploading");const o=this.fileList.find(t=>t.uid===e.file.uid),s=o?.uploadChannel||this.uploadChannel;if("external"===s)return void this.uploadSingleFile(e);if("huggingface"===s){const t=20971520;return void(e.file.size>=t?this.uploadToHuggingFaceDirect(e):this.uploadSingleFile(e))}if("discord"===s){const t=9437184;return void(e.file.size>t?this.uploadFileInChunks(e):this.uploadSingleFile(e))}const l=20971520;e.file.size>l?this.uploadFileInChunks(e):this.uploadSingleFile(e)},processUploadQueue(){if(0===this.uploadQueue.length||this.activeUploads>=this.maxConcurrentUploads)return;const e=this.uploadQueue.shift();e&&this.fileList.find(t=>t.uid===e.file.uid)?this.uploadFile(e):this.processUploadQueue()},onUploadComplete(){this.activeUploads=Math.max(0,this.activeUploads-1),this.processUploadQueue(),0===this.activeUploads&&0===this.uploadQueue.length&&(this.uploading=!1)},async uploadSingleFile(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=t.serverCompress,s=t.uploadChannel||this.uploadChannel,l=this.autoRetry&&"external"!==s,i="external"===s?"default":this.uploadNameType,a=new AbortController;this.abortControllers.set(e.file.uid,a);const n=new FormData;if(n.append("file",e.file),"external"===s&&n.append("url",e.file.url),"huggingface"===s)try{console.log("Computing SHA256 for HuggingFace upload...");const t=await this.computeSha256(e.file);n.append("sha256",t),console.log("SHA256 computed:",t)}catch(r){console.error("Failed to compute SHA256:",r)}(0,Le.A)({url:"/upload?serverCompress="+o+"&uploadChannel="+s+"&uploadNameType="+i+"&autoRetry="+l+"&uploadFolder="+this.uploadFolder,method:"post",data:n,withAuthCode:!0,signal:a.signal,onUploadProgress:t=>{const o=Math.round(t.loaded/t.total*100);e.onProgress({percent:o,file:e.file})}}).then(t=>{e.onSuccess(t,e.file)}).catch(t=>{"CanceledError"!==t.name&&"ERR_CANCELED"!==t.code?t.response&&401!==t.response.status?(this.exceptionList.push(e),e.onError(t,e.file)):t.response||(this.exceptionList.push(e),e.onError(t,e.file)):console.log("上传已取消:",e.file.name)}).finally(()=>{this.abortControllers.delete(e.file.uid),this.onUploadComplete()})},async uploadFileInChunks(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=t.uploadChannel||this.uploadChannel,s=new AbortController;this.abortControllers.set(e.file.uid,s);const l="discord"===o?9437184:16777216,i=e.file.size,a=Math.ceil(i/l),n=t.serverCompress,r=this.autoRetry&&"external"!==o,d="external"===o?"default":this.uploadNameType;let c=null;if("huggingface"===o)try{console.log("Computing SHA256 for HuggingFace chunked upload..."),c=await this.computeSha256(e.file),console.log("SHA256 computed:",c)}catch(u){console.error("Failed to compute SHA256:",u)}try{const t=new FormData;t.append("originalFileName",e.file.name),t.append("originalFileType",e.file.type),t.append("totalChunks",a.toString());const p=await(0,Le.A)({url:"/upload?serverCompress="+n+"&uploadChannel="+o+"&uploadNameType="+d+"&autoRetry="+r+"&uploadFolder="+this.uploadFolder+"&initChunked=true",method:"post",data:t,withAuthCode:!0});if(!p.data.success)throw new Error("初始化分块上传失败: "+p.data.message);const h=p.data.uploadId;console.log("分块上传初始化成功,uploadId:",h);const m=this.fileList.find(t=>t.uid===e.file.uid);m&&(m.totalChunks=a,m.uploadId=h);const g=3,f=new Array(a).fill(0);let b=0,y=!1,k="",C=!1;const w=async t=>{if(y||C)return;const c=t*l,p=Math.min(c+l,i),m=e.file.slice(c,p),g=new FormData;g.append("file",m,`${e.file.name}.part${t.toString().padStart(3,"0")}`),g.append("chunkIndex",t.toString()),g.append("totalChunks",a.toString()),g.append("uploadId",h),g.append("originalFileName",e.file.name),g.append("originalFileType",e.file.type);let b=0;const w=3;while(b{if(y||C)return;const s=Math.round(o.loaded/o.total*100);f[t]=s;const l=Math.round(f.reduce((e,t)=>e+t,0)/a);e.onProgress({percent:l,file:e.file})}})}catch(u){if("CanceledError"===u.name||"ERR_CANCELED"===u.code)return C=!0,void console.log("分块上传已取消:",e.file.name);if(b++,console.warn(`分块 ${t+1}/${a} 上传失败 (重试 ${b}/${w}):`,u),b>=w)throw y=!0,k=`分块 ${t+1}/${a} 上传失败: ${u.message}`,new Error(k);await new Promise(e=>setTimeout(e,2e3*b))}}},v=[];for(let e=0;e{while(bt.uid===e.file.uid);t&&t.uploadId&&this.cleanupUploadResources(t.uploadId,t.totalChunks).then(()=>{console.log(`已清理分块上传失败的资源: ${t.uploadId}`)}).catch(e=>{console.warn("清理分块上传失败资源时出错:",e)}),u.response&&401!==u.response.status?(this.exceptionList.push(e),e.onError(u,e.file)):u.response||(this.exceptionList.push(e),e.onError(u,e.file))}finally{this.abortControllers.delete(e.file.uid),this.onUploadComplete()}},handleRemove(e){this.abortControllers.has(e.uid)&&(this.abortControllers.get(e.uid).abort(),this.abortControllers.delete(e.uid)),this.uploadQueue=this.uploadQueue.filter(t=>t.file.uid!==e.uid),this.fileList=this.fileList.filter(t=>t.uid!==e.uid),this.$message({type:"info",message:this.truncateFilename(e.name)+"已删除"})},async cleanupUploadResources(e,t=0){try{await(0,Le.A)({url:`/upload?cleanup=true&uploadId=${e}&totalChunks=${t}`,method:"get",withAuthCode:!0,timeout:5e3}),console.log(`清理上传资源成功: ${e}`)}catch(o){console.warn("清理上传资源失败:",o)}},handleSuccess(e,t){const o=this.fileList.find(e=>e.uid===t.uid);if(o)try{const s=o.uploadChannel||this.uploadChannel;if("external"!==s){const s=e.data[0].src.replace("/file/","");o.url=`${window.location.protocol}//${window.location.host}/file/`+s,o.finalURL=this.rootUrl+s,o.mdURL=`![${t.name}](${this.rootUrl+s})`,o.htmlURL=`${t.name}`,o.ubbURL=`[img]${this.rootUrl+s}[/img]`,o.srcID=s}o.progreess=100,o.status="success",this.saveToHistory(o),this.$message({type:"success",message:this.truncateFilename(t.name)+"上传成功"}),setTimeout(()=>{const e=this.fileList.find(e=>e.uid===t.uid);e&&(e.status="done")},1e3)}catch(s){this.$message.error(this.truncateFilename(t.name)+"上传失败"),o.status="exception"}},saveToHistory(e){try{const t=JSON.parse(localStorage.getItem("uploadHistory")||"[]"),o={name:e.name,url:e.finalURL,time:Date.now(),type:e.name.split(".").pop().toLowerCase()};t.push(o),localStorage.setItem("uploadHistory",JSON.stringify(t))}catch(t){console.error("Failed to save history",t)}},handleError(e,t){const o=this.fileList.find(e=>e.uid===t.uid);o&&(this.$message.error(this.truncateFilename(t.name)+"上传失败"),o.status="exception",this.autoReUpload&&this.scheduleAutoRetry())},handleCopy(e){const t=this.fileList.find(t=>t.uid===e.uid).status;"done"===t||"success"===t?("url"===this.selectedUrlForm?navigator.clipboard.writeText(e.finalURL):"md"===this.selectedUrlForm?navigator.clipboard.writeText(e.mdURL):"html"===this.selectedUrlForm?navigator.clipboard.writeText(e.htmlURL):"ubb"===this.selectedUrlForm?navigator.clipboard.writeText(e.ubbURL):navigator.clipboard.writeText(e.finalURL),this.$message({type:"success",message:"复制成功"})):this.$message({type:"warning",message:"文件未上传成功,无法复制链接"})},beforeUpload(e){return new Promise(async(t,o)=>{let s=e;const l=this.convertToWebp&&e.type.includes("image")&&!e.type.includes("webp")&&!e.type.includes("gif")&&!e.type.includes("svg");if(l)try{const t=await this.convertImageToWebp(e);t&&(s=t,console.log(`WebP转换成功: ${e.name} -> ${t.name}, 大小: ${(e.size/1024).toFixed(1)}KB -> ${(t.size/1024).toFixed(1)}KB`))}catch(r){console.warn("WebP转换失败,使用原文件:",r)}const i=s.type.includes("image")&&this.customerCompress&&s.size/1024/1024>this.compressBar,a=s.size/1024/1024<=1024||"telegram"!==this.uploadChannel,n=(e,o)=>{const s=URL.createObjectURL(e);this.fileList.push({uid:e.uid,name:e.name,url:s,finalURL:"",mdURL:"",htmlURL:"",ubbURL:"",srcID:"",status:"uploading",progreess:0,serverCompress:o,retryCount:0}),t(e)};if(i)Ue.compressAccurately(s,1024*this.compressQuality).then(t=>{t.size/1024/1024>1024&&"telegram"===this.uploadChannel&&(this.$message.error(s.name+"压缩后文件过大,无法上传!"),o("文件过大")),this.uploading=!0;const l=new File([t],s.name,{type:t.type});l.uid=e.uid;const i=this.uploadCount++,a=this.serverCompress&&l.size/1024/1024<10&&"telegram"===this.uploadChannel;0===i?n(l,a):setTimeout(()=>{n(l,a),this.uploadCount--},300*i)}).catch(e=>{this.$message.error(s.name+"压缩失败,无法上传!"),o(e)});else if(a){this.uploading=!0;const e=this.uploadCount++,t="telegram"===this.uploadChannel&&this.serverCompress&&(!s.type.includes("image")||s.size/1024/1024<10);0===e?n(s,t):setTimeout(()=>{n(s,t),this.uploadCount--},300*e)}else this.$message.error(s.name+"文件过大,无法上传!"),o("文件过大")})},handleProgress(e){const t=this.fileList.find(t=>t.uid===e.file.uid);t&&(t.progreess=e.percent)},copyAll(){if("url"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.finalURL}).join("\n");navigator.clipboard.writeText(e)}else if("md"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.mdURL}).join("\n");navigator.clipboard.writeText(e)}else if("html"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.htmlURL}).join("\n");navigator.clipboard.writeText(e)}else if("ubb"===this.selectedUrlForm){const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.ubbURL}).join("\n");navigator.clipboard.writeText(e)}else{const e=this.fileList.map(e=>{if("done"===e.status||"success"===e.status)return e.finalURL}).join("\n");navigator.clipboard.writeText(e)}this.$message({type:"success",message:"整体复制成功"})},clearFileList(){this.fileList.length>0?(this.abortControllers.forEach((e,t)=>{e.abort()}),this.abortControllers.clear(),this.uploadQueue=[],this.fileList=[],this.$message({type:"success",message:"文件列表已清空"})):this.$message({type:"info",message:"文件列表为空"})},clearSuccessList(){this.uploadSuccessCount>0?(this.fileList=this.fileList.filter(e=>"done"!==e.status&&"success"!==e.status),this.$message({type:"success",message:"成功上传文件已清空"})):this.$message({type:"info",message:"成功上传文件为空"})},handlePaste(e){if("INPUT"===e.target.tagName||"TEXTAREA"===e.target.tagName)return;const t=e.clipboardData.items;t.length>0&&this.uploadFromUrl(t)},handleUploadPasteUrls(){const e=this.pastedUrls.split("\n"),t=e.map(e=>e.trim()).filter(e=>""!==e).filter(e=>/^(https?:\/\/[^\s$.?#].[^\s]*)$/.test(e));if("save"===this.pasteUploadMethod)this.uploadFromUrl(t.map(e=>({kind:"string",getAsString:t=>{t(e)}})));else if("external"===this.pasteUploadMethod)for(let o=0;o`,a=`[img]${e}[/img]`,n=new File([],e.split("/").pop(),{type:"text/plain"});n.uid=Date.now()+o,n.url=e,this.fileList.push({uid:n.uid,name:n.name,url:e,finalURL:e,mdURL:l,htmlURL:i,ubbURL:a,srcID:e,status:"uploading",progreess:0,serverCompress:!1,uploadChannel:"external",retryCount:0}),this.uploadFile({file:n,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}},uploadFromUrl(e){for(let t=0;t{e instanceof File&&this.uploadFile({file:e,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}).catch(e=>{console.log(e)})}else"string"===e[t].kind&&e[t].getAsString(e=>{const o=/^(https?:\/\/[^\s$.?#].[^\s]*)$/;let s="";o.test(e)&&Le.A.post("/api/fetchRes",{url:e},{responseType:"blob"}).then(o=>{o.headers["content-type"];if(200!=o.status)throw new Error("URL地址请求失败");{const i=o.headers["content-disposition"];if(i){const e=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/,t=/filename\*\s*=\s*UTF-8''([^;\n]*)/;let o=e.exec(i);if(null!=o&&o[1]){s=o[1].replace(/['"]/g,"");try{s=decodeURIComponent(s)}catch(l){s=""}}""===s&&(o=t.exec(i),null!=o&&o[1]&&(s=decodeURIComponent(o[1])))}if(""===s){const t=new URL(e);s=t.pathname.split("/").pop()}if(""===s){const o=new URL(e);let l=o.pathname.split(".").pop();(!l||""===l||l.length>10)&&(l="bin"),s="PastedFile"+Date.now()+t+"."+l}const a=o.data,n=new File([a],s,{type:a.type});n.uid=Date.now()+t;const r=this.beforeUpload(n);r instanceof Promise&&r.then(e=>{e instanceof File&&this.uploadFile({file:e,onProgress:e=>this.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})}).catch(e=>{console.log(e)})}}).catch(e=>{this.$message({type:"warning",message:"粘贴板中的URL地址请求失败"})})})},selectAllText(e){navigator.clipboard.writeText(e.target.value).then(()=>{this.$message({type:"success",message:"复制成功"})}).catch(()=>{this.$message({type:"error",message:"复制失败"})})},isImage(e){const t=["jpg","jpeg","png","gif","bmp","webp","svg","tiff","ico","avif","heic","jfif","pjpeg","pjp","raw","cr2","nef","dng","eps","ai","emf","wmf"],o=e.split(".").pop().toLowerCase();return t.includes(o)},isVideo(e){const t=["mp4","webm","ogg","mkv"],o=e.split(".").pop().toLowerCase();return t.includes(o)},handleScroll(e){this.listScrolled=e.scrollTop>0&&this.fileList.length>0},retryError(){this.exceptionList.length>0?(this.retryFailedFiles(this.exceptionList),this.exceptionList=[]):this.$message({type:"info",message:"无上传失败文件"})},handleAutoRetryChange(e){this.$message({type:e?"success":"info",message:e?"自动重试已开启":"自动重试已关闭"}),e&&this.exceptionList.length>0&&this.scheduleAutoRetry()},retryFailedFiles(e){e.forEach(e=>{const t=e.retryCount||0;tthis.handleProgress(e),onSuccess:(e,t)=>this.handleSuccess(e,t),onError:(e,t)=>this.handleError(e,t)})):this.$message({type:"warning",message:`${e.name} 已达到最大重试次数(${this.maxRetryCount}),停止重试`})})},scheduleAutoRetry(){this.retryTimer&&clearTimeout(this.retryTimer),this.retryTimer=setTimeout(()=>{if(this.autoReUpload&&this.exceptionList.length>0){const e=[...this.exceptionList];this.exceptionList=[],this.retryFailedFiles(e)}},this.retryDelay)},async uploadToHuggingFaceDirect(e){const t=this.fileList.find(t=>t.uid===e.file.uid);if(!t)return;const o=new AbortController;this.abortControllers.set(e.file.uid,o);try{console.log("=== HuggingFace Direct Upload ==="),console.log("File:",e.file.name,"Size:",e.file.size),e.onProgress({percent:5,file:e.file}),console.log("Computing SHA256...");const t=await this.computeSha256(e.file);if(console.log("SHA256:",t),o.signal.aborted)return void console.log("HuggingFace 上传已取消:",e.file.name);const s=new Uint8Array(await e.file.slice(0,512).arrayBuffer()),l=btoa(String.fromCharCode(...s));e.onProgress({percent:10,file:e.file}),console.log("Getting LFS upload URL...");const i=await(0,Le.A)({url:"/api/huggingface/getUploadUrl",method:"post",data:{fileSize:e.file.size,fileName:e.file.name,sha256:t,fileSample:l},withAuthCode:!0,signal:o.signal});if(!i.data.success)throw new Error(i.data.error||"Failed to get upload URL");const a=i.data;if(console.log("Upload info:",a),a.alreadyExists)console.log("File already exists in LFS, skipping upload"),e.onProgress({percent:90,file:e.file});else if(a.needsLfs&&a.uploadAction){const{href:t,header:s}=a.uploadAction;if(s?.chunk_size)await this.uploadToHuggingFaceMultipart(e,a,o);else{console.log("Uploading to S3 (basic)...");const l=await fetch(t,{method:"PUT",headers:s||{},body:e.file,signal:o.signal});if(!l.ok){const e=await l.text();throw new Error(`S3 upload failed: ${l.status} - ${e}`)}console.log("S3 upload complete")}}if(o.signal.aborted)return void console.log("HuggingFace 上传已取消:",e.file.name);e.onProgress({percent:95,file:e.file}),console.log("Committing file...");const n=await(0,Le.A)({url:"/api/huggingface/commitUpload",method:"post",data:{fullId:a.fullId,filePath:a.filePath,sha256:t,fileSize:e.file.size,fileName:e.file.name,channelName:a.channelName},withAuthCode:!0,signal:o.signal});if(!n.data.success)throw new Error(n.data.error||"Failed to commit file");console.log("Upload complete:",n.data);const r={data:[{src:n.data.src}]};e.onSuccess(r,e.file)}catch(s){if("CanceledError"===s.name||"ERR_CANCELED"===s.code||"AbortError"===s.name)return void console.log("HuggingFace 上传已取消:",e.file.name);console.error("HuggingFace direct upload error:",s),this.exceptionList.push(e),e.onError(s,e.file)}finally{this.abortControllers.delete(e.file.uid),this.onUploadComplete()}},async uploadToHuggingFaceMultipart(e,t,o){const{uploadAction:s}=t,{href:l,header:i}=s,a=parseInt(i.chunk_size),n=Object.keys(i).filter(e=>/^[0-9]+$/.test(e));console.log(`Multipart upload: ${n.length} parts, chunk size: ${a}`);const r=[],d=n.length;for(const u of n){if(o&&o.signal.aborted)throw console.log("HuggingFace 分片上传已取消"),new DOMException("Upload cancelled","AbortError");const t=parseInt(u)-1,s=t*a,l=Math.min(s+a,e.file.size),n=e.file.slice(s,l);console.log(`Uploading part ${u}/${d}`);const c=await fetch(i[u],{method:"PUT",body:n,signal:o?o.signal:void 0});if(!c.ok)throw new Error(`Failed to upload part ${u}: ${c.status}`);const p=c.headers.get("ETag");if(!p)throw new Error(`No ETag for part ${u}`);r.push({partNumber:parseInt(u),etag:p});const h=10+Math.round(parseInt(u)/d*80);e.onProgress({percent:h,file:e.file})}if(o&&o.signal.aborted)throw console.log("HuggingFace 分片上传已取消"),new DOMException("Upload cancelled","AbortError");console.log("Completing multipart upload...");const c=await fetch(l,{method:"POST",headers:{Accept:"application/vnd.git-lfs+json","Content-Type":"application/vnd.git-lfs+json"},body:JSON.stringify({oid:t.oid,parts:r}),signal:o?o.signal:void 0});if(!c.ok){const e=await c.text();throw new Error(`Multipart complete failed: ${c.status} - ${e}`)}console.log("Multipart upload complete")},async computeSha256(e){const t=this.createSha256(),o=4194304;let s=0;while(se>>>t|e<<32-t,a=o=>{const s=new Uint32Array(64);for(let e=0;e<16;e++)s[e]=o[4*e]<<24|o[4*e+1]<<16|o[4*e+2]<<8|o[4*e+3];for(let e=16;e<64;e++){const t=i(s[e-15],7)^i(s[e-15],18)^s[e-15]>>>3,o=i(s[e-2],17)^i(s[e-2],19)^s[e-2]>>>10;s[e]=s[e-16]+t+s[e-7]+o>>>0}let[l,a,n,r,d,c,u,p]=t;for(let t=0;t<64;t++){const o=i(d,6)^i(d,11)^i(d,25),h=d&c^~d&u,m=p+o+h+e[t]+s[t]>>>0,g=i(l,2)^i(l,13)^i(l,22),f=l&a^l&n^a&n,b=g+f>>>0;p=u,u=c,c=d,d=r+m>>>0,r=n,n=a,a=l,l=m+b>>>0}t[0]=t[0]+l>>>0,t[1]=t[1]+a>>>0,t[2]=t[2]+n>>>0,t[3]=t[3]+r>>>0,t[4]=t[4]+d>>>0,t[5]=t[5]+c>>>0,t[6]=t[6]+u>>>0,t[7]=t[7]+p>>>0};return{update(e){l+=e.length;let t=0;if(s>0){const l=64-s,i=Math.min(l,e.length);o.set(e.subarray(0,i),s),s+=i,t=i,64===s&&(a(o),s=0)}while(t+64<=e.length)a(e.subarray(t,t+64)),t+=64;t56&&(o.fill(0,s,64),a(o),s=0),o.fill(0,s,56);const i=new DataView(o.buffer);i.setUint32(56,Math.floor(e/4294967296),!1),i.setUint32(60,e>>>0,!1),a(o);let n="";for(let o=0;o<8;o++)n+=t[o].toString(16).padStart(8,"0");return n}}},async convertImageToWebp(e){return new Promise((t,o)=>{if(e.type.includes("gif")||e.type.includes("svg")||e.type.includes("webp"))return void t(null);const s=new Image,l=document.createElement("canvas"),i=l.getContext("2d");s.onload=()=>{l.width=s.width,l.height=s.height,i.drawImage(s,0,0),l.toBlob(l=>{if(l){const o=e.name,s=o.lastIndexOf("."),i=s>0?o.substring(0,s)+".webp":o+".webp",a=new File([l],i,{type:"image/webp"});a.uid=e.uid,t(a)}else o(new Error("WebP 转换失败"));URL.revokeObjectURL(s.src)},"image/webp",.92)},s.onerror=()=>{URL.revokeObjectURL(s.src),o(new Error("图片加载失败"))},s.src=URL.createObjectURL(e)})},handleUploadCardMouseMove(e){const t=this.$refs.uploadCardGlow;if(!t)return;const o=e.currentTarget.getBoundingClientRect(),s=e.clientX-o.left,l=e.clientY-o.top;t.style.opacity="1",t.style.left=s+"px",t.style.top=l+"px"},handleUploadCardMouseLeave(){const e=this.$refs.uploadCardGlow;e&&(e.style.opacity="0")}},beforeDestroy(){this.retryTimer&&clearTimeout(this.retryTimer)}};const Te=(0,z.A)(Se,[["render",Fe],["__scopeId","data-v-b352bfea"]]);var $e=Te,_e=o(732),Me=o(4453);const Re={class:"container"},Ee={class:"upload-home"},Ie={href:"https://cfbed.sanyue.de/qa/",target:"_blank",class:"info-container"},Ae={class:"toolbar-manage"},Pe={class:"toolbar"},Ve={class:"header"},ze={class:"title"},De={class:"main-title",href:"https://github.com/MarSeventh/CloudFlare-ImgBed",target:"_blank"},Be={class:"dialog-section"},We={class:"section-content"},Ne={class:"dialog-section"},He={class:"section-header"},je={class:"section-content"},Oe={class:"setting-item"},Qe={key:0,class:"setting-item"},Xe={class:"dialog-action"},qe={class:"dialog-section"},Ge={class:"section-content"},Je={class:"setting-item"},Ke={class:"setting-item"},Ye={class:"setting-item"},Ze={class:"setting-label"},et={class:"dialog-section"},tt={class:"section-content"},ot={class:"dialog-section"},st={class:"section-header"},lt={class:"section-content"},it={class:"setting-item"},at={class:"setting-label"},nt={class:"setting-item"},rt={key:0,class:"setting-item slider-item"},dt={class:"setting-label"},ct={class:"slider-wrapper"},ut={class:"slider-input-wrapper"},pt={key:1,class:"setting-item slider-item"},ht={class:"setting-label"},mt={class:"slider-wrapper"},gt={class:"slider-input-wrapper"},ft={key:0,class:"dialog-section"},bt={class:"section-header"},yt={class:"section-content"},kt={class:"setting-item"},Ct={class:"dialog-action"},wt=["innerHTML"],vt={class:"dialog-footer"};function Ft(e,t,o,n,r,d){const c=Me.A,u=(0,i.g2)("font-awesome-icon"),p=s.R7,h=Y.WK,m=l.S2,g=G.c6,f=G.Iy,b=G.dW,y=_e.A,k=$e,C=Q.ll,w=Q.MQ,v=O.qi,F=j.kZ,L=H.B8,U=N.lq,x=W.A,S=B;return(0,i.uX)(),(0,i.CE)("div",Re,[(0,i.Lk)("div",Ee,[(0,i.bF)(c,{class:"toggle-dark-button desktop-only"}),(0,i.bF)(p,{content:"查看文档",placement:"bottom",disabled:d.disableTooltip},{default:(0,i.k6)(()=>[(0,i.Lk)("a",Ie,[(0,i.bF)(u,{icon:"book",class:"info-icon",size:"lg"})])]),_:1},8,["disabled"]),(0,i.bF)(h,{class:(0,a.C4)(["upload-folder",{active:r.isFolderInputActive,"no-announcement":!d.announcementAvailable}]),modelValue:r.uploadFolder,"onUpdate:modelValue":t[0]||(t[0]=e=>r.uploadFolder=e),placeholder:"上传目录",onFocus:t[1]||(t[1]=e=>r.isFolderInputActive=!0),onBlur:t[2]||(t[2]=e=>r.isFolderInputActive=!1)},null,8,["class","modelValue"]),(0,i.bF)(p,{content:"切换上传方式",placement:"bottom",disabled:d.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"upload-method-button desktop-only",onClick:d.handleChangeUploadMethod},{default:(0,i.k6)(()=>["default"===r.uploadMethod?((0,i.uX)(),(0,i.Wv)(u,{key:0,icon:"folder-open",class:"upload-method-icon",size:"lg"})):"paste"===r.uploadMethod?((0,i.uX)(),(0,i.Wv)(u,{key:1,icon:"paste",class:"upload-method-icon",size:"lg"})):(0,i.Q3)("",!0)]),_:1},8,["onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{content:"上传记录",placement:"bottom",disabled:d.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"history-button desktop-only",onClick:t[3]||(t[3]=e=>r.showHistory=!0)},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"history",class:"history-icon",size:"lg"})]),_:1})]),_:1},8,["disabled"]),d.announcementAvailable?((0,i.uX)(),(0,i.Wv)(p,{key:0,content:"查看公告",placement:"bottom",disabled:d.disableTooltip},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"announcement-button desktop-only",onClick:d.handleShowAnnouncement},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"bullhorn",class:"announcement-icon",size:"lg"})]),_:1},8,["onClick"])]),_:1},8,["disabled"])):(0,i.Q3)("",!0),(0,i.bF)(b,{class:"mobile-more-dropdown mobile-only",trigger:"click",onCommand:d.handleMobileMenuCommand},{dropdown:(0,i.k6)(()=>[(0,i.bF)(f,null,{default:(0,i.k6)(()=>[(0,i.bF)(g,{command:"toggleTheme"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:d.getThemeIcon(),style:{"margin-right":"8px"}},null,8,["icon"]),(0,i.eW)(" "+(0,a.v_)(d.getThemeText()),1)]),_:1}),(0,i.bF)(g,{command:"toggleUploadMethod"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"default"===r.uploadMethod?"paste":"folder-open",style:{"margin-right":"8px"}},null,8,["icon"]),(0,i.eW)(" "+(0,a.v_)("default"===r.uploadMethod?"粘贴上传":"文件上传"),1)]),_:1}),(0,i.bF)(g,{command:"showHistory"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"history",style:{"margin-right":"8px"}}),t[25]||(t[25]=(0,i.eW)(" 上传记录 ",-1))]),_:1}),(0,i.bF)(g,{command:"showAnnouncement",disabled:!d.announcementAvailable},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"bullhorn",style:{"margin-right":"8px"}}),t[26]||(t[26]=(0,i.eW)(" 查看公告 ",-1))]),_:1},8,["disabled"])]),_:1})]),default:(0,i.k6)(()=>[(0,i.bF)(m,{class:"mobile-more-button"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"ellipsis-v",size:"lg"})]),_:1})]),_:1},8,["onCommand"]),(0,i.Lk)("div",Ae,[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-manage-button",{active:r.isToolBarOpen}]),size:"large",onClick:d.handleOpenToolbar,circle:""},{default:(0,i.k6)(()=>[r.isToolBarOpen?((0,i.uX)(),(0,i.Wv)(u,{key:1,icon:"times",class:"manage-icon",size:"lg"})):((0,i.uX)(),(0,i.Wv)(u,{key:0,icon:"bars",class:"manage-icon",size:"lg"}))]),_:1},8,["class","onClick"])]),(0,i.Lk)("div",Pe,[(0,i.bF)(p,{disabled:d.disableTooltip,content:"上传设置",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button compress-button",{active:r.isToolBarOpen}]),size:"large",onClick:d.openCompressDialog,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cloud-upload",class:"compress-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:d.disableTooltip,content:"链接格式",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button link-button",{active:r.isToolBarOpen}]),size:"large",onClick:d.openUrlDialog,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"link",class:"link-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:d.disableTooltip,content:"系统管理",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button config-button",{active:r.isToolBarOpen}]),size:"large",onClick:d.handleManage,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cog",class:"config-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,i.bF)(p,{disabled:d.disableTooltip,content:"退出登录",placement:"left"},{default:(0,i.k6)(()=>[(0,i.bF)(m,{class:(0,a.C4)(["toolbar-button sign-out-button",{active:r.isToolBarOpen}]),size:"large",onClick:d.handleLogout,circle:""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"sign-out-alt",class:"sign-out-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"])]),(0,i.Lk)("div",Ve,[(0,i.bF)(y,{useConfigLink:!0}),(0,i.Lk)("h1",ze,[(0,i.Lk)("a",De,(0,a.v_)(d.ownerName),1),t[27]||(t[27]=(0,i.eW)(" ImgHub",-1))])]),(0,i.bF)(k,{selectedUrlForm:r.selectedUrlForm,customerCompress:r.customerCompress,compressQuality:r.compressQuality,compressBar:r.compressBar,serverCompress:r.serverCompress,uploadChannel:r.uploadChannel,uploadNameType:r.uploadNameType,useCustomUrl:r.useCustomUrl,customUrlPrefix:r.customUrlPrefix,autoRetry:r.autoRetry,urlPrefix:d.urlPrefix,uploadMethod:r.uploadMethod,uploadFolder:r.uploadFolder,convertToWebp:r.convertToWebp,class:"upload"},null,8,["selectedUrlForm","customerCompress","compressQuality","compressBar","serverCompress","uploadChannel","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadMethod","uploadFolder","convertToWebp"]),(0,i.bF)(F,{title:"链接格式设置",modelValue:r.showUrlDialog,"onUpdate:modelValue":t[8]||(t[8]=e=>r.showUrlDialog=e),width:d.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",Be,[t[32]||(t[32]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"默认复制链接")],-1)),(0,i.Lk)("div",We,[(0,i.bF)(w,{modelValue:r.selectedUrlForm,"onUpdate:modelValue":t[4]||(t[4]=e=>r.selectedUrlForm=e),onChange:d.changeUrlForm,class:"radio-card-group grid-2x2"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{value:"url",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"link",class:"radio-icon"}),t[28]||(t[28]=(0,i.Lk)("span",null,"原始链接",-1))]),_:1}),(0,i.bF)(C,{value:"md",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"code",class:"radio-icon"}),t[29]||(t[29]=(0,i.Lk)("span",null,"MarkDown",-1))]),_:1}),(0,i.bF)(C,{value:"html",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"code-branch",class:"radio-icon"}),t[30]||(t[30]=(0,i.Lk)("span",null,"HTML",-1))]),_:1}),(0,i.bF)(C,{value:"ubb",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"quote-right",class:"radio-icon"}),t[31]||(t[31]=(0,i.Lk)("span",null,"BBCode",-1))]),_:1})]),_:1},8,["modelValue","onChange"])])]),(0,i.Lk)("div",Ne,[(0,i.Lk)("div",He,[t[33]||(t[33]=(0,i.Lk)("span",{class:"section-title"},"自定义链接",-1)),(0,i.bF)(p,{content:"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入",placement:"top","raw-content":""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",je,[(0,i.Lk)("div",Oe,[t[34]||(t[34]=(0,i.Lk)("span",{class:"setting-label"},"启用自定义",-1)),(0,i.bF)(v,{modelValue:r.useCustomUrl,"onUpdate:modelValue":t[5]||(t[5]=e=>r.useCustomUrl=e),"active-value":"true","inactive-value":"false"},null,8,["modelValue"])]),"true"===r.useCustomUrl?((0,i.uX)(),(0,i.CE)("div",Qe,[t[35]||(t[35]=(0,i.Lk)("span",{class:"setting-label"},"自定义前缀",-1)),(0,i.bF)(h,{modelValue:r.customUrlPrefix,"onUpdate:modelValue":t[6]||(t[6]=e=>r.customUrlPrefix=e),placeholder:"请输入自定义链接前缀",class:"setting-input"},null,8,["modelValue"])])):(0,i.Q3)("",!0)])]),(0,i.Lk)("div",Xe,[(0,i.bF)(m,{type:"primary",onClick:t[7]||(t[7]=e=>r.showUrlDialog=!1),class:"confirm-btn"},{default:(0,i.k6)(()=>[...t[36]||(t[36]=[(0,i.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"]),(0,i.bF)(F,{title:"上传设置",modelValue:r.showCompressDialog,"onUpdate:modelValue":t[21]||(t[21]=e=>r.showCompressDialog=e),width:d.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",qe,[t[45]||(t[45]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"上传渠道")],-1)),(0,i.Lk)("div",Ge,[(0,i.Lk)("div",Je,[t[42]||(t[42]=(0,i.Lk)("span",{class:"setting-label"},"上传渠道",-1)),(0,i.bF)(w,{modelValue:r.uploadChannel,"onUpdate:modelValue":t[9]||(t[9]=e=>r.uploadChannel=e),class:"radio-card-group compact"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{label:"telegram",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"paper-plane",class:"channel-icon"}),t[37]||(t[37]=(0,i.Lk)("span",null,"TG",-1))]),_:1}),(0,i.bF)(C,{label:"cfr2",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cloud",class:"channel-icon"}),t[38]||(t[38]=(0,i.Lk)("span",null,"R2",-1))]),_:1}),(0,i.bF)(C,{label:"s3",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"database",class:"channel-icon"}),t[39]||(t[39]=(0,i.Lk)("span",null,"S3",-1))]),_:1}),(0,i.bF)(C,{label:"discord",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"comments",class:"channel-icon"}),t[40]||(t[40]=(0,i.Lk)("span",null,"DC",-1))]),_:1}),(0,i.bF)(C,{label:"huggingface",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"robot",class:"channel-icon"}),t[41]||(t[41]=(0,i.Lk)("span",null,"HF",-1))]),_:1})]),_:1},8,["modelValue"])]),(0,i.Lk)("div",Ke,[t[43]||(t[43]=(0,i.Lk)("span",{class:"setting-label"},"上传目录",-1)),(0,i.bF)(h,{modelValue:r.uploadFolder,"onUpdate:modelValue":t[10]||(t[10]=e=>r.uploadFolder=e),placeholder:"请输入上传目录路径",class:"setting-input"},null,8,["modelValue"])]),(0,i.Lk)("div",Ye,[(0,i.Lk)("span",Ze,[t[44]||(t[44]=(0,i.eW)(" 自动切换 ",-1)),(0,i.bF)(p,{content:"对于非分块上传文件,上传失败自动切换到其他渠道上传",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.bF)(v,{modelValue:r.autoRetry,"onUpdate:modelValue":t[11]||(t[11]=e=>r.autoRetry=e)},null,8,["modelValue"])])])]),(0,i.Lk)("div",et,[t[50]||(t[50]=(0,i.Lk)("div",{class:"section-header"},[(0,i.Lk)("span",{class:"section-title"},"文件命名方式")],-1)),(0,i.Lk)("div",tt,[(0,i.bF)(w,{modelValue:r.uploadNameType,"onUpdate:modelValue":t[12]||(t[12]=e=>r.uploadNameType=e),class:"radio-card-group grid-2x2"},{default:(0,i.k6)(()=>[(0,i.bF)(C,{label:"default",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"cog",class:"radio-icon"}),t[46]||(t[46]=(0,i.Lk)("span",null,"默认",-1))]),_:1}),(0,i.bF)(C,{label:"index",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"hashtag",class:"radio-icon"}),t[47]||(t[47]=(0,i.Lk)("span",null,"仅前缀",-1))]),_:1}),(0,i.bF)(C,{label:"origin",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"file-signature",class:"radio-icon"}),t[48]||(t[48]=(0,i.Lk)("span",null,"仅原名",-1))]),_:1}),(0,i.bF)(C,{label:"short",class:"radio-card"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"compress-alt",class:"radio-icon"}),t[49]||(t[49]=(0,i.Lk)("span",null,"短链接",-1))]),_:1})]),_:1},8,["modelValue"])])]),(0,i.Lk)("div",ot,[(0,i.Lk)("div",st,[t[51]||(t[51]=(0,i.Lk)("span",{class:"section-title"},"文件预处理",-1)),(0,i.bF)(p,{content:"上传前在本地进行格式转换和压缩,仅对图片文件生效",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",lt,[(0,i.Lk)("div",it,[(0,i.Lk)("span",at,[t[52]||(t[52]=(0,i.eW)(" 转换为WebP ",-1)),(0,i.bF)(p,{content:"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.bF)(v,{modelValue:r.convertToWebp,"onUpdate:modelValue":t[13]||(t[13]=e=>r.convertToWebp=e)},null,8,["modelValue"])]),(0,i.Lk)("div",nt,[t[53]||(t[53]=(0,i.Lk)("span",{class:"setting-label"},"文件压缩",-1)),(0,i.bF)(v,{modelValue:r.customerCompress,"onUpdate:modelValue":t[14]||(t[14]=e=>r.customerCompress=e)},null,8,["modelValue"])]),r.customerCompress?((0,i.uX)(),(0,i.CE)("div",rt,[(0,i.Lk)("span",dt,[t[54]||(t[54]=(0,i.eW)(" 压缩阈值 ",-1)),(0,i.bF)(p,{content:"设置图片大小阈值,超过此值将自动压缩,单位MB",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.Lk)("div",ct,[(0,i.bF)(L,{modelValue:r.compressBar,"onUpdate:modelValue":t[15]||(t[15]=e=>r.compressBar=e),min:1,max:20,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","format-tooltip"]),(0,i.Lk)("div",ut,[(0,i.bF)(U,{modelValue:r.compressBar,"onUpdate:modelValue":t[16]||(t[16]=e=>r.compressBar=e),min:1,max:20,step:1,"value-on-clear":1,size:"small",class:"slider-input","controls-position":"right"},null,8,["modelValue"]),t[55]||(t[55]=(0,i.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,i.Q3)("",!0),r.customerCompress?((0,i.uX)(),(0,i.CE)("div",pt,[(0,i.Lk)("span",ht,[t[56]||(t[56]=(0,i.eW)(" 期望大小 ",-1)),(0,i.bF)(p,{content:"设置压缩后图片大小期望值,单位MB",placement:"top"},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,i.Lk)("div",mt,[(0,i.bF)(L,{modelValue:r.compressQuality,"onUpdate:modelValue":t[17]||(t[17]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","max","format-tooltip"]),(0,i.Lk)("div",gt,[(0,i.bF)(U,{modelValue:r.compressQuality,"onUpdate:modelValue":t[18]||(t[18]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,precision:1,"value-on-clear":.5,size:"small",class:"slider-input","controls-position":"right"},null,8,["modelValue","max"]),t[57]||(t[57]=(0,i.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,i.Q3)("",!0)])]),"telegram"===r.uploadChannel?((0,i.uX)(),(0,i.CE)("div",ft,[(0,i.Lk)("div",bt,[t[58]||(t[58]=(0,i.Lk)("span",{class:"section-title"},"服务端压缩",-1)),(0,i.bF)(p,{content:"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题",placement:"top","raw-content":""},{default:(0,i.k6)(()=>[(0,i.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,i.Lk)("div",yt,[(0,i.Lk)("div",kt,[t[59]||(t[59]=(0,i.Lk)("span",{class:"setting-label"},"开启压缩",-1)),(0,i.bF)(v,{modelValue:r.serverCompress,"onUpdate:modelValue":t[19]||(t[19]=e=>r.serverCompress=e)},null,8,["modelValue"])])])])):(0,i.Q3)("",!0),(0,i.Lk)("div",Ct,[(0,i.bF)(m,{type:"primary",onClick:t[20]||(t[20]=e=>r.showCompressDialog=!1),class:"confirm-btn"},{default:(0,i.k6)(()=>[...t[60]||(t[60]=[(0,i.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"])]),(0,i.bF)(x,{class:"footer"}),(0,i.bF)(F,{title:"公告",modelValue:r.showAnnouncementDialog,"onUpdate:modelValue":t[23]||(t[23]=e=>r.showAnnouncementDialog=e),width:d.dialogWidth,"show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1,center:""},{footer:(0,i.k6)(()=>[(0,i.Lk)("span",vt,[(0,i.bF)(m,{type:"primary",onClick:t[22]||(t[22]=e=>r.showAnnouncementDialog=!1)},{default:(0,i.k6)(()=>[...t[61]||(t[61]=[(0,i.eW)("我已知晓!",-1)])]),_:1})])]),default:(0,i.k6)(()=>[(0,i.Lk)("div",{innerHTML:r.announcementContent},null,8,wt)]),_:1},8,["modelValue","width"]),(0,i.bF)(S,{show:r.showHistory,onClose:t[24]||(t[24]=e=>r.showHistory=!1)},null,8,["show"])])}var Lt=o(8903),Ut=o(144),xt=o(4570),St=o.n(xt),Tt={name:"UploadHome",mixins:[Lt.A],data(){return{selectedUrlForm:(0,Ut.KR)(""),showUrlDialog:!1,showCompressDialog:!1,customerCompress:!0,compressQuality:4,compressBar:5,convertToWebp:!1,serverCompress:!0,uploadChannel:"",uploadNameType:"",customUrlPrefix:"",useCustomUrl:"false",autoRetry:!0,useDefaultWallPaper:!1,isToolBarOpen:!1,uploadMethod:"default",uploadFolder:"",isFolderInputActive:!1,showAnnouncementDialog:!1,announcementContent:"",showHistory:!1,themeMode:"auto"}},watch:{customerCompress(e){this.updateCompressConfig("customerCompress",e)},compressQuality(e){this.updateCompressConfig("compressQuality",e)},compressBar(e){null===e||void 0===e||e<1?this.compressBar=1:(this.compressQuality>e&&(this.compressQuality=e),this.updateCompressConfig("compressBar",e))},serverCompress(e){this.updateCompressConfig("serverCompress",e)},convertToWebp(e){this.updateCompressConfig("convertToWebp",e)},uploadChannel(e){this.updateStoreUploadChannel(e)},uploadNameType(e){this.updateStoreUploadNameType(e)},customUrlPrefix(e){this.$store.commit("setCustomUrlSettings",{key:"customUrlPrefix",value:e})},useCustomUrl(e){this.$store.commit("setCustomUrlSettings",{key:"useCustomUrl",value:e})},autoRetry(e){this.$store.commit("setStoreAutoRetry",e)},uploadFolder(e){this.validateUploadFolder(e)?this.$store.commit("setStoreUploadFolder",e):this.$nextTick(()=>{this.uploadFolder=this.storeUploadFolder})}},computed:{...(0,xe.L8)(["userConfig","uploadCopyUrlForm","compressConfig","storeUploadChannel","storeUploadNameType","customUrlSettings","storeAutoRetry","storeUploadMethod","storeUploadFolder"]),ownerName(){return this.userConfig?.ownerName||"Sanyue"},dialogWidth(){return window.innerWidth>768?"50%":"90%"},disableTooltip(){return window.innerWidth<768},urlPrefix(){return this.userConfig?.urlPrefix||`${window.location.protocol}//${window.location.host}/file/`},announcementAvailable(){return!!this.userConfig?.announcement}},mounted(){this.initializeBackground("uploadBkImg",".container",!1,!0),this.selectedUrlForm=this.uploadCopyUrlForm||"url",this.customerCompress=this.compressConfig.customerCompress??this.parseBoolean(this.userConfig?.defaultCustomerCompress,!0),this.compressQuality=this.compressConfig.compressQuality??this.parseNumber(this.userConfig?.defaultCompressQuality,4),this.compressBar=this.compressConfig.compressBar??this.parseNumber(this.userConfig?.defaultCompressBar,5),this.serverCompress=this.compressConfig.serverCompress??!0,this.convertToWebp=this.compressConfig.convertToWebp??this.parseBoolean(this.userConfig?.defaultConvertToWebp,!1),this.uploadChannel=this.storeUploadChannel||this.userConfig?.defaultUploadChannel||"telegram",this.autoRetry=this.storeAutoRetry,this.uploadNameType=this.storeUploadNameType||this.userConfig?.defaultUploadNameType||"default",this.customUrlPrefix=this.customUrlSettings.customUrlPrefix,this.useCustomUrl=this.customUrlSettings.useCustomUrl,this.uploadMethod=this.storeUploadMethod,this.uploadFolder=this.storeUploadFolder||this.userConfig?.defaultUploadFolder||"";const e=this.$store.getters.cusDarkMode,t=this.$store.getters.useDarkMode;this.themeMode=e?t?"dark":"light":"auto";const o=localStorage.getItem("visitedUploadHome"),s=this.userConfig?.announcement;!o&&s&&(this.announcementContent=s,this.showAnnouncementDialog=!0,localStorage.setItem("visitedUploadHome","true"))},components:{UploadForm:$e,Footer:W.A,ToggleDark:Me.A,Logo:_e.A,UploadHistory:B},methods:{validateUploadFolder(e){if(!e||""===e.trim())return!0;if(!e.startsWith("/"))return this.$message.error('上传目录必须以 "/" 开头'),!1;const t=/[\\:\*\?"'<>\| \(\)\[\]\{\}#%\^`~;@&=\+\$,]/;return t.test(e)?(this.$message.error("上传目录包含非法字符,请使用合法的路径格式"),!1):!e.includes("//")||(this.$message.error("上传目录不能包含连续的斜杠"),!1)},handleManage(){this.$router.push("/dashboard")},parseBoolean(e,t){return void 0===e||null===e?t:"boolean"===typeof e?e:"string"===typeof e?"true"===e:t},parseNumber(e,t){if(void 0===e||null===e)return t;const o=parseFloat(e);return isNaN(o)?t:o},openUrlDialog(){this.showUrlDialog=!0},handleLogout(){St().remove("authCode"),this.$router.push("/login"),this.$message.success("已退出登录")},changeUrlForm(){this.$store.commit("setUploadCopyUrlForm",this.selectedUrlForm)},openCompressDialog(){this.showCompressDialog=!0},updateCompressConfig(e,t){this.$store.commit("setCompressConfig",{key:e,value:t})},updateStoreUploadChannel(e){this.$store.commit("setStoreUploadChannel",e)},updateStoreUploadNameType(e){this.$store.commit("setStoreUploadNameType",e)},handleOpenToolbar(){this.isToolBarOpen=!this.isToolBarOpen,setTimeout(()=>{const e=document.querySelectorAll(".toolbar-button");e.forEach(e=>{e.style.pointerEvents=this.isToolBarOpen?"auto":"none"})},300)},handleChangeUploadMethod(){this.uploadMethod="default"===this.uploadMethod?"paste":"default",this.$store.commit("setUploadMethod",this.uploadMethod)},handleMobileMenuCommand(e){"toggleTheme"===e?"auto"===this.themeMode?(this.themeMode="light",this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!1)):"light"===this.themeMode?(this.themeMode="dark",this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!0)):(this.themeMode="auto",this.$store.commit("setCusDarkMode",!1)):"toggleUploadMethod"===e?this.handleChangeUploadMethod():"showHistory"===e?this.showHistory=!0:"showAnnouncement"===e&&this.handleShowAnnouncement()},getThemeIcon(){return"auto"===this.themeMode?"sun":"light"===this.themeMode?"moon":"adjust"},getThemeText(){return"auto"===this.themeMode?"浅色模式":"light"===this.themeMode?"深色模式":"自动模式"},handleShowAnnouncement(){const e=this.userConfig?.announcement;e?(this.announcementContent=e,this.showAnnouncementDialog=!0):this.$message.info("暂无公告")}}};const $t=(0,z.A)(Tt,[["render",Ft],["__scopeId","data-v-316c27dc"]]);var _t=$t},213:function(e,t,o){"use strict";o(5331),o(9104)},333:function(e,t,o){"use strict";o(5331),o(6711)},670:function(e,t,o){"use strict";o(5331),o(9648),o(9104),o(5970)},1393:function(e,t,o){o(6573),o(8100),o(7936),o(9577),o(1549),o(9797),o(9631),o(5623),o(4979),o(4603),o(7566),o(8721),function(t,o){e.exports=o()}(0,function(){return function(e){var t={};function o(s){if(t[s])return t[s].exports;var l=t[s]={i:s,l:!1,exports:{}};return e[s].call(l.exports,l,l.exports,o),l.l=!0,l.exports}return o.m=e,o.c=t,o.d=function(e,t,s){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)o.d(s,l,function(t){return e[t]}.bind(null,l));return s},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";var s;function l(e){return["image/png","image/jpeg","image/gif"].some(t=>t===e)}o.r(t),o.d(t,"canvastoDataURL",function(){return a}),o.d(t,"canvastoFile",function(){return n}),o.d(t,"dataURLtoFile",function(){return d}),o.d(t,"dataURLtoImage",function(){return c}),o.d(t,"downloadFile",function(){return u}),o.d(t,"filetoDataURL",function(){return p}),o.d(t,"imagetoCanvas",function(){return m}),o.d(t,"urltoBlob",function(){return g}),o.d(t,"urltoImage",function(){return f}),o.d(t,"compress",function(){return y}),o.d(t,"compressAccurately",function(){return k}),o.d(t,"EImageType",function(){return s}),function(e){e.PNG="image/png",e.JPEG="image/jpeg",e.GIF="image/gif"}(s||(s={}));var i=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function a(e,t=.92,o=s.JPEG){return i(this,void 0,void 0,function*(){return l(o)||(o=s.JPEG),e.toDataURL(o,t)})}function n(e,t=.92,o=s.JPEG){return new Promise(s=>e.toBlob(e=>s(e),o,t))}var r=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function d(e,t){return r(this,void 0,void 0,function*(){const o=e.split(",");let s=o[0].match(/:(.*?);/)[1];const i=atob(o[1]);let a=i.length;const n=new Uint8Array(a);for(;a--;)n[a]=i.charCodeAt(a);return l(t)&&(s=t),new Blob([n],{type:s})})}function c(e){return new Promise((t,o)=>{const s=new Image;s.onload=()=>t(s),s.onerror=()=>o(new Error("dataURLtoImage(): dataURL is illegal")),s.src=e})}function u(e,t){const o=document.createElement("a");o.href=window.URL.createObjectURL(e),o.download=t||Date.now().toString(36),document.body.appendChild(o);const s=document.createEvent("MouseEvents");s.initEvent("click",!1,!1),o.dispatchEvent(s),document.body.removeChild(o)}function p(e){return new Promise(t=>{const o=new FileReader;o.onloadend=e=>t(e.target.result),o.readAsDataURL(e)})}var h=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function m(e,t={}){return h(this,void 0,void 0,function*(){const o=Object.assign({},t),s=document.createElement("canvas"),l=s.getContext("2d");let i,a;for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&(o[e]=Number(o[e]));if(o.scale){const t=o.scale>0&&o.scale<10?o.scale:1;a=e.width*t,i=e.height*t}else a=o.width||o.height*e.width/e.height||e.width,i=o.height||o.width*e.height/e.width||e.height;switch([5,6,7,8].some(e=>e===o.orientation)?(s.height=a,s.width=i):(s.height=i,s.width=a),o.orientation){case 3:l.rotate(180*Math.PI/180),l.drawImage(e,-s.width,-s.height,s.width,s.height);break;case 6:l.rotate(90*Math.PI/180),l.drawImage(e,0,-s.width,s.height,s.width);break;case 8:l.rotate(270*Math.PI/180),l.drawImage(e,-s.height,0,s.height,s.width);break;case 2:l.translate(s.width,0),l.scale(-1,1),l.drawImage(e,0,0,s.width,s.height);break;case 4:l.translate(s.width,0),l.scale(-1,1),l.rotate(180*Math.PI/180),l.drawImage(e,-s.width,-s.height,s.width,s.height);break;case 5:l.translate(s.width,0),l.scale(-1,1),l.rotate(90*Math.PI/180),l.drawImage(e,0,-s.width,s.height,s.width);break;case 7:l.translate(s.width,0),l.scale(-1,1),l.rotate(270*Math.PI/180),l.drawImage(e,-s.height,0,s.height,s.width);break;default:l.drawImage(e,0,0,s.width,s.height)}return s})}function g(e){return fetch(e).then(e=>e.blob())}function f(e){return new Promise((t,o)=>{const s=new Image;s.onload=()=>t(s),s.onerror=()=>o(new Error("urltoImage(): Image failed to load, please check the image URL")),s.src=e})}var b=function(e,t,o,s){return new(o||(o=Promise))(function(l,i){function a(e){try{r(s.next(e))}catch(e){i(e)}}function n(e){try{r(s.throw(e))}catch(e){i(e)}}function r(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,n)}r((s=s.apply(e,t||[])).next())})};function y(e,t={}){return b(this,void 0,void 0,function*(){if(!(e instanceof Blob))throw new Error("compress(): First arg must be a Blob object or a File object.");if("object"!=typeof t&&(t=Object.assign({quality:t})),t.quality=Number(t.quality),Number.isNaN(t.quality))return e;const o=yield p(e);let i=o.split(",")[0].match(/:(.*?);/)[1],n=s.JPEG;l(t.type)&&(n=t.type,i=t.type);const r=yield c(o),u=yield m(r,Object.assign({},t)),h=yield a(u,t.quality,n),g=yield d(h,i);return g.size>e.size?e:g})}function k(e,t={}){return b(this,void 0,void 0,function*(){if(!(e instanceof Blob))throw new Error("compressAccurately(): First arg must be a Blob object or a File object.");if("object"!=typeof t&&(t=Object.assign({size:t})),t.size=Number(t.size),Number.isNaN(t.size))return e;if(1024*t.size>e.size)return e;t.accuracy=Number(t.accuracy),(!t.accuracy||t.accuracy<.8||t.accuracy>.99)&&(t.accuracy=.95);const o=t.size*(2-t.accuracy)*1024,i=1024*t.size,n=t.size*t.accuracy*1024,r=yield p(e);let u=r.split(",")[0].match(/:(.*?);/)[1],h=s.JPEG;l(t.type)&&(h=t.type,u=t.type);const g=yield c(r),f=yield m(g,Object.assign({},t));let b,y=.5;const k=[null,null];for(let e=1;e<=7;e++){b=yield a(f,y,h);const t=.75*b.length;if(7===e){(ot)&&(b=[b,...k].filter(e=>e).sort((e,t)=>Math.abs(.75*e.length-i)-Math.abs(.75*t.length-i))[0]);break}if(ot))break;k[0]=b,y+=Math.pow(.5,e+1)}}const C=yield d(b,u);return C.size>e.size?e:C})}}])})},2893:function(e,t,o){"use strict";o(5331)},3597:function(e,t,o){"use strict";o(5331)},4396:function(e,t,o){"use strict";o(5331),o(4885)},4885:function(e,t,o){"use strict";o(5331)},5385:function(e,t,o){"use strict";o(5331)},5616:function(e,t,o){"use strict";o(5331),o(7197)},5970:function(e,t,o){"use strict";o(5331)},6334:function(e,t,o){e.exports=o(1393)},6682:function(e,t,o){"use strict";e.exports=o.p+"img/404.8ed11fb3.png"},8075:function(e,t,o){"use strict";o(5331)},8830:function(e,t,o){"use strict";o(5331)},9104:function(e,t,o){"use strict";o(5331)}}]); +//# sourceMappingURL=733.5ac461f0.js.map \ No newline at end of file diff --git a/js/733.5ac461f0.js.gz b/js/733.5ac461f0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..408749eb3a0fbf2d073740cfc3c4262ca8a25f2f GIT binary patch literal 20778 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�(sL^=k&ZXfjOnQx#`GQZj^vPLK;ZdJcDOglT2wyMKY_X8yD@e2J_2yXOyK` zRc00L2!+Wm&DWCG?kFw_8sWJ^8^&cR#sadza>dLjJBZ7UJclKGnN_ZrDwjK^Edj5Q z4J%u0FI((Xr!(@b07JyqY=!N(!u>2?4?TBe3;Gjb2f?s^Jo3;3rbtv+{njJ*N3R%d zVfBHtXH0>@CbGZ3FZ8@x;HNssTINBr5HSrD?{;xy8MRSFB>SOI*C}$XKOp3q)a)|3*QayU()?(e}A*3C~OQ0WVKlp2Z;hx zZ5W7{K1FtfDw|4bh$$VyKViia@hmzrQ7A@veFQmXIL*rhIF6D)Q(k{!5+~nW!(mP% zY_5SJ7C}?YvBCTA`CW8=yNON0J8Vkh3`PFXfuk0Z6rLB9Y-%laK!>~1l+_dK%Ib=; zskfrEVpc%fGTGF5DniS&!=!9s;__6!K#S%1TeXVCRmI)3S|(&`wmeWPoq_~Xs}Y3- z%F>eTn*mEoOUYu>ZE>F>5Um6f>l~68ER(q_nSm<+fg_n?Dv?JjxmUpC@&i9S?ps^;OHnEGOTI0NEzy z>G)0rEX|!|683d}pM;-y`IWFNWEf;w{cMv&?|8ivVW|}yHWa>D^>=Ncmdy&Pq8h4m zks6z8*fdR|5)Tr>QC9?IT@Diknik?o1Wj9M#;@(@wFOH>tUT^mJ}#7+j_Q#B4q|#; zJ3$jcK5}+NuhUF}aq>ZoieZ+*Vw9aQd=tJ2%A92J3Ny zM(r?Ac{|$tCXJ?}2A<{m4zwCVLEEF0AQyEAHkyW4n?LgMqOE>Ch_4*6`+GAxwIlX= z52i45+2OZ;sYEA8uSNG6<-KQ0h&RD zp@RY0oj&et7lJ-6(34RCPMirb1U8lSe{X<`Zh(8~4X}OK1_#NMdPN*uqBwRGX;zGq{nOQklpH^Z(OofL9T2*~9}y;VmJXo_9f zm0gqlMmGNu3ZowHqyu@3NBm(RduWDW0m-mg0ZSgmBSfx(di+CI?jt)oO7v8?v9^Zk zpLN{qiHm>x>!0#ibMm!MKE0a9XC8jX(+*FWIj1iZx?Ei|$|nL5Ve#icwdhDX0yTwi z6eJ&upZ53T-zU|&__(Gv8bAs{V``(KM8wAWJ|P=Lq45&{7P3tNI^>2$<8rK+mnPVe z=`BF8{aFOt4+(aZBG_I;upXpX4+*w6lVB+nZM0{q6<&SY+@yMC_%D&NeiffIYb;}Z zJEHO}w1@gi6l2)jIC#`c}K7f^K($>RN5lf!FJ$MMnW<(Zz~RTFUDGwX*Ur t1)q$(4nA)Uhql|heBqo~E0xrW)hSo?ElqvGR|nSc{{`=kZutWt0RVsUN-6*V literal 0 HcmV?d00001 diff --git a/js/733.5ac461f0.js.map b/js/733.5ac461f0.js.map new file mode 100644 index 0000000..37f418c --- /dev/null +++ b/js/733.5ac461f0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/733.5ac461f0.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/components/UploadHistory.vue?19f6","webpack://sanyue_imghub/./src/components/UploadHistory.vue","webpack://sanyue_imghub/./src/components/UploadHistory.vue?4b6c","webpack://sanyue_imghub/./src/components/UploadForm.vue?15ab","webpack://sanyue_imghub/./src/components/UploadForm.vue","webpack://sanyue_imghub/./src/components/UploadForm.vue?0da8","webpack://sanyue_imghub/./src/views/UploadHome.vue?b232","webpack://sanyue_imghub/./src/views/UploadHome.vue","webpack://sanyue_imghub/./src/views/UploadHome.vue?af00","webpack://sanyue_imghub/./node_modules/image-conversion/build/conversion.js","webpack://sanyue_imghub/./node_modules/image-conversion/index.js"],"sourcesContent":["import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n class: \"history-header\"\n};\nconst _hoisted_2 = {\n class: \"header-left\"\n};\nconst _hoisted_3 = {\n class: \"record-count\"\n};\nconst _hoisted_4 = {\n class: \"header-right\"\n};\nconst _hoisted_5 = {\n key: 0,\n class: \"history-content\"\n};\nconst _hoisted_6 = {\n class: \"timeline-header\"\n};\nconst _hoisted_7 = {\n class: \"date-label\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"grid-view\"\n};\nconst _hoisted_9 = {\n class: \"grid-preview\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = {\n key: 2,\n class: \"file-icon-wrapper\"\n};\nconst _hoisted_13 = {\n class: \"grid-overlay\"\n};\nconst _hoisted_14 = {\n class: \"grid-actions\"\n};\nconst _hoisted_15 = {\n class: \"grid-info\"\n};\nconst _hoisted_16 = [\"title\"];\nconst _hoisted_17 = {\n class: \"upload-time\"\n};\nconst _hoisted_18 = {\n key: 1,\n class: \"list-view\"\n};\nconst _hoisted_19 = {\n class: \"list-preview\"\n};\nconst _hoisted_20 = [\"src\"];\nconst _hoisted_21 = [\"src\"];\nconst _hoisted_22 = {\n key: 2,\n class: \"file-icon-wrapper-small\"\n};\nconst _hoisted_23 = {\n class: \"list-info\"\n};\nconst _hoisted_24 = [\"title\"];\nconst _hoisted_25 = [\"title\"];\nconst _hoisted_26 = {\n class: \"list-meta\"\n};\nconst _hoisted_27 = {\n class: \"upload-time\"\n};\nconst _hoisted_28 = {\n class: \"list-actions\"\n};\nconst _hoisted_29 = {\n key: 1,\n class: \"empty-state\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n return _openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"history-container\", {\n 'active': $props.show\n }])\n }, [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_cache[3] || (_cache[3] = _createElementVNode(\"h2\", null, \"历史记录\", -1)), _createElementVNode(\"span\", _hoisted_3, \"共 \" + _toDisplayString($data.historyList.length) + \" 条\", 1)]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_tooltip, {\n content: \"切换视图\",\n placement: \"bottom\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n circle: \"\",\n onClick: $options.toggleViewMode\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $data.viewMode === 'grid' ? 'list' : 'th-large'\n }, null, 8, [\"icon\"])]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }), _createVNode(_component_el_tooltip, {\n content: \"清空记录\",\n placement: \"bottom\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n circle: \"\",\n type: \"danger\",\n onClick: $options.clearHistory\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }), _createVNode(_component_el_button, {\n circle: \"\",\n onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('close'))\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"times\"\n })]),\n _: 1\n })])]), $data.historyList.length > 0 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($options.groupedHistory, group => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: group.date,\n class: \"history-group\"\n }, [_createElementVNode(\"div\", _hoisted_6, [_cache[4] || (_cache[4] = _createElementVNode(\"div\", {\n class: \"timeline-dot\"\n }, null, -1)), _createElementVNode(\"span\", _hoisted_7, _toDisplayString(group.date), 1)]), $data.viewMode === 'grid' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, (item, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"grid-item\"\n }, [_createElementVNode(\"div\", _hoisted_9, [$options.isImage(item.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.url,\n loading: \"lazy\",\n onError: _cache[1] || (_cache[1] = (...args) => $options.handleImageError && $options.handleImageError(...args))\n }, null, 40, _hoisted_10)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_11)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })])), _createElementVNode(\"div\", _hoisted_13, [_createElementVNode(\"div\", _hoisted_14, [_createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n type: \"primary\",\n onClick: $event => $options.copyLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n class: \"action-btn-view\",\n onClick: $event => $options.openLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"external-link-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"default\",\n type: \"danger\",\n onClick: $event => $options.deleteItem(item)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])])])]), _createElementVNode(\"div\", _hoisted_15, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_16), _createElementVNode(\"div\", _hoisted_17, _toDisplayString($options.formatTime(item.time)), 1)])]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, (item, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"list-item\"\n }, [_createElementVNode(\"div\", _hoisted_19, [$options.isImage(item.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.url,\n loading: \"lazy\",\n onError: _cache[2] || (_cache[2] = (...args) => $options.handleImageError && $options.handleImageError(...args))\n }, null, 40, _hoisted_20)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_21)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\"\n })]))]), _createElementVNode(\"div\", _hoisted_23, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_24), _createElementVNode(\"div\", {\n class: \"file-url\",\n title: item.url\n }, _toDisplayString(item.url), 9, _hoisted_25)]), _createElementVNode(\"div\", _hoisted_26, [_createElementVNode(\"div\", _hoisted_27, _toDisplayString($options.formatTime(item.time)), 1)]), _createElementVNode(\"div\", _hoisted_28, [_createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n type: \"primary\",\n onClick: $event => $options.copyLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n class: \"action-btn-view\",\n onClick: $event => $options.openLink(item.url)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"external-link-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n circle: \"\",\n size: \"small\",\n type: \"danger\",\n onClick: $event => $options.deleteItem(item)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })]),\n _: 1\n }, 8, [\"onClick\"])])]);\n }), 128))]))]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_29, [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"empty-icon\"\n }), _cache[5] || (_cache[5] = _createElementVNode(\"p\", null, \"暂无上传记录\", -1))]))], 2);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.filter.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport \"core-js/modules/es.iterator.map.js\";\nimport \"core-js/modules/es.json.stringify.js\";\nimport \"core-js/modules/esnext.json.parse.js\";\nexport default {\n name: 'UploadHistory',\n props: {\n show: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n historyList: [],\n viewMode: 'grid' // 'grid' or 'list'\n };\n },\n watch: {\n show(val) {\n if (val) {\n this.loadHistory();\n }\n }\n },\n computed: {\n groupedHistory() {\n const groups = {};\n this.historyList.forEach(item => {\n const date = new Date(item.time);\n const dateStr = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n if (!groups[dateStr]) {\n groups[dateStr] = [];\n }\n groups[dateStr].push(item);\n });\n\n // Sort dates descending\n return Object.keys(groups).sort((a, b) => new Date(b) - new Date(a)).map(date => ({\n date,\n items: groups[date]\n }));\n }\n },\n mounted() {\n // Load view mode preference\n const savedMode = localStorage.getItem('historyViewMode');\n if (savedMode) {\n this.viewMode = savedMode;\n }\n },\n methods: {\n loadHistory() {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n\n // Sort by time desc\n this.historyList = history.sort((a, b) => b.time - a.time);\n } catch (e) {\n console.error('Failed to load history', e);\n this.historyList = [];\n }\n },\n toggleViewMode() {\n this.viewMode = this.viewMode === 'grid' ? 'list' : 'grid';\n localStorage.setItem('historyViewMode', this.viewMode);\n },\n clearHistory() {\n this.$confirm('确定要清空所有上传记录吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.historyList = [];\n localStorage.removeItem('uploadHistory');\n this.$message.success('记录已清空');\n }).catch(() => {});\n },\n deleteItem(item) {\n this.$confirm('确定要删除这条记录吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n // Remove from list\n this.historyList = this.historyList.filter(i => i.time !== item.time);\n\n // Update localStorage\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n const newHistory = history.filter(i => i.time !== item.time);\n localStorage.setItem('uploadHistory', JSON.stringify(newHistory));\n this.$message.success('记录已删除');\n } catch (e) {\n console.error('Failed to update history', e);\n }\n }).catch(() => {});\n },\n isImage(fileName) {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff', 'ico', 'avif', 'heic', 'jfif', 'pjpeg', 'pjp'];\n const extension = fileName ? fileName.split('.').pop().toLowerCase() : '';\n return imageExtensions.includes(extension);\n },\n isVideo(fileName) {\n const videoExtensions = ['mp4', 'webm', 'ogg', 'mkv'];\n const extension = fileName ? fileName.split('.').pop().toLowerCase() : '';\n return videoExtensions.includes(extension);\n },\n formatTime(timestamp) {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n },\n copyLink(url) {\n navigator.clipboard.writeText(url).then(() => {\n this.$message.success('链接已复制');\n }).catch(() => {\n this.$message.error('复制失败');\n });\n },\n openLink(url) {\n window.open(url, '_blank');\n },\n handleImageError(e) {\n e.target.src = require('@/assets/404.png');\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadHistory.vue?vue&type=template&id=3d294b36&scoped=true\"\nimport script from \"./UploadHistory.vue?vue&type=script&lang=js\"\nexport * from \"./UploadHistory.vue?vue&type=script&lang=js\"\n\nimport \"./UploadHistory.vue?vue&type=style&index=0&id=3d294b36&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d294b36\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n class: \"upload-form\"\n};\nconst _hoisted_2 = {\n class: \"upload-card-glow\",\n ref: \"uploadCardGlow\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"upload-card\"\n};\nconst _hoisted_4 = {\n class: \"paste-card-actions\"\n};\nconst _hoisted_5 = {\n class: \"upload-list-dashboard-action\"\n};\nconst _hoisted_6 = {\n class: \"modern-action-group\"\n};\nconst _hoisted_7 = {\n class: \"modern-dropdown-item-content\"\n};\nconst _hoisted_8 = {\n class: \"modern-action-btn modern-action-btn-danger\"\n};\nconst _hoisted_9 = [\"href\"];\nconst _hoisted_10 = {\n key: 0,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n },\n autoplay: \"\",\n muted: \"\",\n playsinline: \"\",\n loop: \"\"\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\", \"onError\"];\nconst _hoisted_13 = {\n key: 2,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n }\n};\nconst _hoisted_14 = {\n class: \"upload-list-item-content\"\n};\nconst _hoisted_15 = {\n class: \"upload-list-item-name-wrapper\"\n};\nconst _hoisted_16 = {\n key: 0,\n class: \"upload-list-item-url\"\n};\nconst _hoisted_17 = {\n class: \"upload-list-item-url-row\"\n};\nconst _hoisted_18 = {\n class: \"upload-list-item-url-row\"\n};\nconst _hoisted_19 = {\n key: 1,\n class: \"upload-list-item-progress\"\n};\nconst _hoisted_20 = {\n class: \"upload-list-item-action\"\n};\nconst _hoisted_21 = [\"onClick\"];\nconst _hoisted_22 = [\"onClick\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CameraFilled = _resolveComponent(\"CameraFilled\");\n const _component_el_icon = _resolveComponent(\"el-icon\");\n const _component_el_upload = _resolveComponent(\"el-upload\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\");\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\");\n const _component_el_card = _resolveComponent(\"el-card\");\n const _component_List = _resolveComponent(\"List\");\n const _component_Checked = _resolveComponent(\"Checked\");\n const _component_Failed = _resolveComponent(\"Failed\");\n const _component_el_text = _resolveComponent(\"el-text\");\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n const _component_el_switch = _resolveComponent(\"el-switch\");\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\");\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\");\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\");\n const _component_el_progress = _resolveComponent(\"el-progress\");\n const _component_Link = _resolveComponent(\"Link\");\n const _component_Delete = _resolveComponent(\"Delete\");\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: \"upload-card-wrapper\",\n onMousemove: _cache[0] || (_cache[0] = (...args) => $options.handleUploadCardMouseMove && $options.handleUploadCardMouseMove(...args)),\n onMouseleave: _cache[1] || (_cache[1] = (...args) => $options.handleUploadCardMouseLeave && $options.handleUploadCardMouseLeave(...args))\n }, [_createElementVNode(\"div\", _hoisted_2, null, 512), $props.uploadMethod === 'default' ? (_openBlock(), _createBlock(_component_el_upload, {\n key: 0,\n class: _normalizeClass([\"upload-card\", {\n 'is-uploading': $data.uploading,\n 'upload-card-busy': $data.fileList.length\n }]),\n drag: \"\",\n multiple: \"\",\n \"http-request\": $options.uploadFile,\n onSuccess: $options.handleSuccess,\n \"on-error\": $options.handleError,\n \"before-upload\": $options.beforeUpload,\n \"on-progress\": $options.handleProgress,\n \"file-list\": $data.fileList,\n \"show-file-list\": false\n }, {\n default: _withCtx(() => [_createVNode(_component_el_icon, {\n class: _normalizeClass([\"el-icon--upload\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, {\n default: _withCtx(() => [_createVNode(_component_CameraFilled)]),\n _: 1\n }, 8, [\"class\"]), _createElementVNode(\"div\", {\n class: _normalizeClass([\"el-upload__text\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, [...(_cache[7] || (_cache[7] = [_createElementVNode(\"em\", null, \"拖拽\", -1), _createTextVNode(), _createElementVNode(\"em\", null, \"点击\", -1), _createTextVNode(\" 或 \", -1), _createElementVNode(\"em\", null, \"Ctrl + V\", -1), _createTextVNode(\" 粘贴上传\", -1)]))], 2)]),\n _: 1\n }, 8, [\"class\", \"http-request\", \"onSuccess\", \"on-error\", \"before-upload\", \"on-progress\", \"file-list\"])) : _createCommentVNode(\"\", true)], 32), $props.uploadMethod === 'paste' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createVNode(_component_el_card, {\n class: _normalizeClass([\"paste-card\", {\n 'is-uploading': $data.uploading,\n 'upload-card-busy': $data.fileList.length\n }])\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $data.pastedUrls,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.pastedUrls = $event),\n class: \"upload-card-textarea\",\n placeholder: \"粘贴外链上传,多个外链用换行分隔\",\n type: \"textarea\",\n rows: $data.fileList.length ? 4 : 14\n }, null, 8, [\"modelValue\", \"rows\"]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: \"paste-card-upload-button\",\n type: \"primary\",\n size: $options.pasteCardMethodButtonSize,\n onClick: $options.handleUploadPasteUrls\n }, {\n default: _withCtx(() => [...(_cache[8] || (_cache[8] = [_createTextVNode(\" 上 传 \", -1)]))]),\n _: 1\n }, 8, [\"size\", \"onClick\"]), _createVNode(_component_el_radio_group, {\n modelValue: $data.pasteUploadMethod,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.pasteUploadMethod = $event),\n class: \"paste-card-method-group\",\n size: $options.pasteCardMethodButtonSize\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio_button, {\n label: \"save\"\n }, {\n default: _withCtx(() => [...(_cache[9] || (_cache[9] = [_createTextVNode(\"转存\", -1)]))]),\n _: 1\n }), _createVNode(_component_el_radio_button, {\n label: \"external\"\n }, {\n default: _withCtx(() => [...(_cache[10] || (_cache[10] = [_createTextVNode(\"外链\", -1)]))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"size\"])])]),\n _: 1\n }, 8, [\"class\"])])) : _createCommentVNode(\"\", true), _createVNode(_component_el_card, {\n class: _normalizeClass([\"upload-list-card\", {\n 'upload-list-busy': $data.fileList.length,\n 'is-uploading': $data.uploading\n }])\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-list-container\", {\n 'upload-list-busy': $data.fileList.length\n }])\n }, [_createVNode(_component_el_scrollbar, {\n onScroll: $options.handleScroll,\n ref: \"scrollContainer\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", {\n class: _normalizeClass([\"upload-list-dashboard\", {\n 'list-scrolled': $data.listScrolled\n }])\n }, [_createVNode(_component_el_text, {\n class: \"upload-list-dashboard-title\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_List)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadingCount + $options.waitingCount) + \" \", 1), _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Checked)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadSuccessCount) + \" \", 1), _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Failed)]),\n _: 1\n }), _createTextVNode(_toDisplayString($options.uploadErrorCount), 1)]),\n _: 1\n }), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"整体复制\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"button\", {\n class: \"modern-action-btn\",\n onClick: _cache[4] || (_cache[4] = (...args) => $options.copyAll && $options.copyAll(...args))\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"copy\"\n })])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"失败重试\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown, null, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, {\n class: \"modern-dropdown-menu\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, null, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_7, [_cache[11] || (_cache[11] = _createElementVNode(\"span\", null, \"自动重试\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.autoReUpload,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.autoReUpload = $event),\n onChange: $options.handleAutoRetryChange,\n size: \"small\"\n }, null, 8, [\"modelValue\", \"onChange\"])])]),\n _: 1\n })]),\n _: 1\n })]),\n default: _withCtx(() => [_createElementVNode(\"button\", {\n class: \"modern-action-btn\",\n onClick: _cache[5] || (_cache[5] = (...args) => $options.retryError && $options.retryError(...args))\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n })])]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"清空列表\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown, null, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, {\n class: \"modern-dropdown-menu\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, {\n onClick: $options.clearFileList\n }, {\n default: _withCtx(() => [...(_cache[12] || (_cache[12] = [_createTextVNode(\"清空全部\", -1)]))]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_dropdown_item, {\n onClick: $options.clearSuccessList\n }, {\n default: _withCtx(() => [...(_cache[13] || (_cache[13] = [_createTextVNode(\"清空已上传\", -1)]))]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n })]),\n default: _withCtx(() => [_createElementVNode(\"button\", _hoisted_8, [_createVNode(_component_font_awesome_icon, {\n icon: \"trash-alt\"\n })])]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"])])])], 2), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($data.fileList.slice().reverse(), file => {\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"upload-list-item\",\n key: file.name,\n span: 8\n }, [_createElementVNode(\"a\", {\n href: file.url,\n target: \"_blank\",\n class: \"upload-list-item-preview\"\n }, [$options.isVideo(file.name) ? (_openBlock(), _createElementBlock(\"video\", _hoisted_10, [_createElementVNode(\"source\", {\n src: file.url,\n type: \"video/mp4\"\n }, null, 8, _hoisted_11), _cache[14] || (_cache[14] = _createTextVNode(\" Your browser does not support the video tag. \", -1))])) : $options.isImage(file.name) ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n style: {\n \"width\": \"10vw\",\n \"border-radius\": \"12px\"\n },\n src: file.url,\n onError: $event => file.url = require('@/assets/404.png')\n }, null, 40, _hoisted_12)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })]))], 8, _hoisted_9), _createElementVNode(\"div\", _hoisted_14, [_createElementVNode(\"div\", _hoisted_15, [_createVNode(_component_el_text, {\n class: \"upload-list-item-name\",\n truncated: \"\"\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString($options.truncateFilename(file.name)), 1)]),\n _: 2\n }, 1024)]), file.status === 'done' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [_createElementVNode(\"div\", _hoisted_17, [_createVNode(_component_el_input, {\n modelValue: file.finalURL,\n \"onUpdate:modelValue\": $event => file.finalURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[15] || (_cache[15] = [_createTextVNode(\"URL\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"]), _createVNode(_component_el_input, {\n modelValue: file.mdURL,\n \"onUpdate:modelValue\": $event => file.mdURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[16] || (_cache[16] = [_createTextVNode(\"MarkDown\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"])]), _createElementVNode(\"div\", _hoisted_18, [_createVNode(_component_el_input, {\n modelValue: file.htmlURL,\n \"onUpdate:modelValue\": $event => file.htmlURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[17] || (_cache[17] = [_createTextVNode(\"HTML\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"]), _createVNode(_component_el_input, {\n modelValue: file.ubbURL,\n \"onUpdate:modelValue\": $event => file.ubbURL = $event,\n readonly: \"\",\n onClick: $options.selectAllText,\n size: $options.urlSize\n }, {\n prepend: _withCtx(() => [...(_cache[18] || (_cache[18] = [_createTextVNode(\"BBCode\", -1)]))]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onClick\", \"size\"])])])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [_createVNode(_component_el_progress, {\n percentage: file.progreess,\n status: file.status,\n \"show-text\": false\n }, null, 8, [\"percentage\", \"status\"])]))]), _createElementVNode(\"div\", _hoisted_20, [_createElementVNode(\"button\", {\n class: \"modern-file-action-btn modern-file-action-btn-primary\",\n onClick: $event => $options.handleCopy(file)\n }, [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Link)]),\n _: 1\n })], 8, _hoisted_21), _createElementVNode(\"button\", {\n class: \"modern-file-action-btn modern-file-action-btn-danger\",\n onClick: $event => $options.handleRemove(file)\n }, [_createVNode(_component_el_icon, null, {\n default: _withCtx(() => [_createVNode(_component_Delete)]),\n _: 1\n })], 8, _hoisted_22)])]);\n }), 128))]),\n _: 1\n }, 8, [\"onScroll\"])], 2)]),\n _: 1\n }, 8, [\"class\"])]);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.array-buffer.detached.js\";\nimport \"core-js/modules/es.array-buffer.transfer.js\";\nimport \"core-js/modules/es.array-buffer.transfer-to-fixed-length.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.filter.js\";\nimport \"core-js/modules/es.iterator.find.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport \"core-js/modules/es.iterator.map.js\";\nimport \"core-js/modules/es.iterator.reduce.js\";\nimport \"core-js/modules/es.json.stringify.js\";\nimport \"core-js/modules/es.typed-array.with.js\";\nimport \"core-js/modules/esnext.json.parse.js\";\nimport \"core-js/modules/esnext.uint8-array.set-from-base64.js\";\nimport \"core-js/modules/esnext.uint8-array.set-from-hex.js\";\nimport \"core-js/modules/esnext.uint8-array.to-base64.js\";\nimport \"core-js/modules/esnext.uint8-array.to-hex.js\";\nimport \"core-js/modules/web.dom-exception.stack.js\";\nimport \"core-js/modules/web.url-search-params.delete.js\";\nimport \"core-js/modules/web.url-search-params.has.js\";\nimport \"core-js/modules/web.url-search-params.size.js\";\nimport axios from '@/utils/axios';\nimport * as imageConversion from 'image-conversion';\nimport { mapGetters } from 'vuex';\nexport default {\n name: 'UploadForm',\n props: {\n selectedUrlForm: {\n type: String,\n default: 'url',\n required: false\n },\n customerCompress: {\n type: Boolean,\n default: true,\n required: false\n },\n compressQuality: {\n type: Number,\n default: 4,\n required: false\n },\n compressBar: {\n type: Number,\n default: 5,\n required: false\n },\n serverCompress: {\n type: Boolean,\n default: true,\n required: false\n },\n uploadChannel: {\n type: String,\n default: 'telegram',\n required: false\n },\n uploadNameType: {\n type: String,\n default: 'default',\n required: false\n },\n useCustomUrl: {\n type: String,\n default: 'false',\n required: false\n },\n customUrlPrefix: {\n type: String,\n default: '',\n required: false\n },\n autoRetry: {\n type: Boolean,\n default: true,\n required: false\n },\n urlPrefix: {\n type: String,\n default: '',\n required: false\n },\n uploadMethod: {\n type: String,\n default: 'default',\n required: false\n },\n uploadFolder: {\n type: String,\n default: '',\n required: false\n },\n convertToWebp: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n data() {\n return {\n fileList: [],\n uploading: false,\n maxUploading: 6,\n exceptionList: [],\n listScrolled: false,\n fileListLength: 0,\n uploadCount: 0,\n pastedUrls: '',\n pasteUploadMethod: 'save',\n // 失败文件自动重试相关\n autoReUpload: true,\n maxRetryCount: 10,\n // 最大重试次数\n retryTimer: null,\n // 自动重试定时器\n retryDelay: 12000,\n // 重试延迟时间(毫秒)\n // 批量上传并发控制\n uploadQueue: [],\n // 等待上传的文件队列\n activeUploads: 0,\n // 当前正在上传的文件数\n maxConcurrentUploads: 6,\n // 最大并发上传数\n // 取消上传控制\n abortControllers: new Map() // 存储每个文件的 AbortController\n };\n },\n watch: {\n fileList: {\n handler() {\n if (this.fileList.length > this.fileListLength) {\n this.$nextTick(() => {\n setTimeout(() => {\n if (this.$refs.scrollContainer) {\n // this.$refs.scrollContainer.setScrollTop(this.$refs.scrollContainer.wrapRef.scrollHeight) // 滚动到底部\n this.$refs.scrollContainer.setScrollTop(0); // 滚动到顶部\n }\n }, 100);\n });\n }\n this.fileListLength = this.fileList.length;\n },\n deep: true\n },\n useCustomUrl: {\n handler() {\n if (this.useCustomUrl === 'true') {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.customUrlPrefix + item.srcID;\n item.mdURL = `![${item.name}](${this.customUrlPrefix + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.customUrlPrefix + item.srcID}[/img]`;\n });\n } else {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.rootUrl + item.srcID;\n item.mdURL = `![${item.name}](${this.rootUrl + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.rootUrl + item.srcID}[/img]`;\n });\n }\n },\n immediate: true\n },\n customUrlPrefix: {\n handler() {\n if (this.useCustomUrl === 'true') {\n this.fileList.forEach(item => {\n if (item.uploadChannel === 'external') {\n return;\n }\n item.finalURL = this.customUrlPrefix + item.srcID;\n item.mdURL = `![${item.name}](${this.customUrlPrefix + item.srcID})`;\n item.htmlURL = `\"${item.name}\"`;\n item.ubbURL = `[img]${this.customUrlPrefix + item.srcID}[/img]`;\n });\n }\n },\n immediate: true\n },\n autoReUpload(val) {\n this.$store.commit('setStoreAutoReUpload', val);\n }\n },\n computed: {\n ...mapGetters(['storeAutoReUpload']),\n uploadSuccessCount() {\n return this.fileList.filter(item => item.status === 'done' || item.status === 'success').length;\n },\n uploadErrorCount() {\n return this.fileList.filter(item => item.status === 'exception').length;\n },\n uploadingCount() {\n return this.fileList.filter(item => item.status === 'uploading').length;\n },\n waitingCount() {\n return this.uploadQueue.length;\n },\n urlSize() {\n // 移动端为small\n return window.innerWidth < 768 ? 'small' : 'default';\n },\n disableTooltip() {\n return window.innerWidth < 768;\n },\n rootUrl() {\n // 链接前缀,优先级:用户自定义 > urlPrefix > 默认\n return this.useCustomUrl === 'true' ? this.customUrlPrefix : this.urlPrefix || `${window.location.protocol}//${window.location.host}/file/`;\n },\n pasteCardMethodButtonSize() {\n if (this.fileList.length) {\n return 'small';\n } else {\n return window.innerWidth < 768 ? 'small' : 'medium';\n }\n }\n },\n mounted() {\n document.addEventListener('paste', this.handlePaste);\n this.autoReUpload = this.storeAutoReUpload;\n },\n beforeUnmount() {\n document.removeEventListener('paste', this.handlePaste);\n // 清理状态\n this.uploadQueue = [];\n this.fileList = [];\n this.activeUploads = 0;\n },\n methods: {\n // 文件名中间截断,保留前缀和扩展名\n truncateFilename(filename, maxLength = 20) {\n if (!filename || filename.length <= maxLength) {\n return filename;\n }\n const lastDotIndex = filename.lastIndexOf('.');\n let name, ext;\n if (lastDotIndex > 0) {\n name = filename.substring(0, lastDotIndex);\n ext = filename.substring(lastDotIndex);\n } else {\n name = filename;\n ext = '';\n }\n // 保留扩展名和部分前后缀\n const keepEnd = ext.length + 4; // 扩展名 + 4个字符\n const keepStart = maxLength - keepEnd - 3; // 3个字符留给...\n if (keepStart <= 0) {\n return filename.substring(0, maxLength - 3) + '...';\n }\n return name.substring(0, keepStart) + '...' + name.slice(-4) + ext;\n },\n uploadFile(file) {\n // 如果fileList中不存在该文件,说明已被删除,直接返回\n if (!this.fileList.find(item => item.uid === file.file.uid)) {\n return;\n }\n\n // 并发控制:如果当前上传数已达上限,加入队列等待\n if (this.activeUploads >= this.maxConcurrentUploads) {\n this.uploadQueue.push(file);\n const waitingItem = this.fileList.find(item => item.uid === file.file.uid);\n if (waitingItem) waitingItem.status = 'waiting';\n return;\n }\n\n // 开始上传,增加计数\n this.activeUploads++;\n const uploadingItem = this.fileList.find(item => item.uid === file.file.uid);\n if (uploadingItem) uploadingItem.status = 'uploading';\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n const uploadChannel = fileItem?.uploadChannel || this.uploadChannel;\n\n // 如果上传渠道为外链,直接使用外链上传\n if (uploadChannel === 'external') {\n this.uploadSingleFile(file);\n return;\n }\n\n // HuggingFace 渠道:根据文件大小选择上传方式\n // 小文件(<20MB):通过 CF Workers 代理上传\n // 大文件(>=20MB):前端直传到 HuggingFace S3,绕过 CF Workers 限制\n if (uploadChannel === 'huggingface') {\n const HF_DIRECT_THRESHOLD = 20 * 1024 * 1024; // 20MB\n if (file.file.size >= HF_DIRECT_THRESHOLD) {\n this.uploadToHuggingFaceDirect(file);\n } else {\n this.uploadSingleFile(file);\n }\n return;\n }\n\n // Discord 渠道:限制 10MB,超过 9MB 就用分块上传(留安全余量)\n if (uploadChannel === 'discord') {\n const DISCORD_CHUNK_THRESHOLD = 9 * 1024 * 1024; // 9MB\n if (file.file.size > DISCORD_CHUNK_THRESHOLD) {\n this.uploadFileInChunks(file);\n } else {\n this.uploadSingleFile(file);\n }\n return;\n }\n\n // 其他渠道,检查文件大小,决定是否使用分块上传\n const CHUNK_THRESHOLD = 20 * 1024 * 1024; // 20MB\n if (file.file.size > CHUNK_THRESHOLD) {\n this.uploadFileInChunks(file);\n } else {\n this.uploadSingleFile(file);\n }\n },\n // 处理上传队列中的下一个文件\n processUploadQueue() {\n // 如果队列为空或已达并发上限,不处理\n if (this.uploadQueue.length === 0 || this.activeUploads >= this.maxConcurrentUploads) {\n return;\n }\n\n // 从队列中取出下一个文件并上传\n const nextFile = this.uploadQueue.shift();\n if (nextFile && this.fileList.find(item => item.uid === nextFile.file.uid)) {\n this.uploadFile(nextFile);\n } else {\n // 如果文件已被删除,继续处理下一个\n this.processUploadQueue();\n }\n },\n // 上传完成后的清理工作(成功或失败都调用)\n onUploadComplete() {\n this.activeUploads = Math.max(0, this.activeUploads - 1);\n\n // 处理队列中的下一个文件\n this.processUploadQueue();\n\n // 更新上传状态\n if (this.activeUploads === 0 && this.uploadQueue.length === 0) {\n this.uploading = false;\n }\n },\n // 单文件上传\n async uploadSingleFile(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return; // 文件已被删除\n\n const needServerCompress = fileItem.serverCompress;\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n const autoRetry = this.autoRetry && uploadChannel !== 'external';\n const uploadNameType = uploadChannel === 'external' ? 'default' : this.uploadNameType;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n const formData = new FormData();\n formData.append('file', file.file);\n if (uploadChannel === 'external') {\n formData.append('url', file.file.url);\n }\n\n // HuggingFace 渠道:在前端预计算 SHA256,避免后端 CPU 超时\n if (uploadChannel === 'huggingface') {\n try {\n console.log('Computing SHA256 for HuggingFace upload...');\n const sha256 = await this.computeSha256(file.file);\n formData.append('sha256', sha256);\n console.log('SHA256 computed:', sha256);\n } catch (err) {\n console.error('Failed to compute SHA256:', err);\n // 继续上传,让后端计算(可能会超时)\n }\n }\n axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder,\n method: 'post',\n data: formData,\n withAuthCode: true,\n signal: abortController.signal,\n // 添加取消信号\n onUploadProgress: progressEvent => {\n const percentCompleted = Math.round(progressEvent.loaded / progressEvent.total * 100);\n file.onProgress({\n percent: percentCompleted,\n file: file.file\n });\n }\n }).then(res => {\n file.onSuccess(res, file.file);\n }).catch(err => {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n console.log('上传已取消:', file.file.name);\n return;\n }\n if (err.response && err.response.status !== 401) {\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } else if (!err.response) {\n // 网络错误(如 ERR_HTTP2_PROTOCOL_ERROR),也加入异常列表\n this.exceptionList.push(file);\n file.onError(err, file.file);\n }\n }).finally(() => {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n });\n },\n // 分块上传\n async uploadFileInChunks(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return; // 文件已被删除\n\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n\n // Discord 使用 9MB 分块(留安全余量,Discord 限制 10MB)\n // Telegram 使用 16MB 分块(TG Bot getFile 下载限制 20MB,留 4MB 安全余量)\n // 其他渠道使用 16MB 分块\n const CHUNK_SIZE = uploadChannel === 'discord' ? 9 * 1024 * 1024 // 9MB for Discord\n : 16 * 1024 * 1024; // 16MB for Telegram and others (TG getFile limit: 20MB)\n\n const fileSize = file.file.size;\n const totalChunks = Math.ceil(fileSize / CHUNK_SIZE);\n const needServerCompress = fileItem.serverCompress;\n const autoRetry = this.autoRetry && uploadChannel !== 'external';\n const uploadNameType = uploadChannel === 'external' ? 'default' : this.uploadNameType;\n\n // HuggingFace 渠道:在前端预计算 SHA256\n let precomputedSha256 = null;\n if (uploadChannel === 'huggingface') {\n try {\n console.log('Computing SHA256 for HuggingFace chunked upload...');\n precomputedSha256 = await this.computeSha256(file.file);\n console.log('SHA256 computed:', precomputedSha256);\n } catch (err) {\n console.error('Failed to compute SHA256:', err);\n }\n }\n try {\n // 第一步:初始化分块上传,获取uploadId\n const initFormData = new FormData();\n initFormData.append('originalFileName', file.file.name);\n initFormData.append('originalFileType', file.file.type);\n initFormData.append('totalChunks', totalChunks.toString());\n const initResponse = await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&initChunked=true',\n method: 'post',\n data: initFormData,\n withAuthCode: true\n });\n if (!initResponse.data.success) {\n throw new Error('初始化分块上传失败: ' + initResponse.data.message);\n }\n const uploadId = initResponse.data.uploadId;\n console.log('分块上传初始化成功,uploadId:', uploadId);\n\n // 记录 totalChunks 和 uploadId 到文件项,用于后续清理\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (fileItem) {\n fileItem.totalChunks = totalChunks;\n fileItem.uploadId = uploadId;\n }\n\n // 第二步:并发上传所有分块\n const maxConcurrency = 3; // 最大并发数\n const chunkProgress = new Array(totalChunks).fill(0);\n let nextChunkIndex = 0;\n let hasError = false;\n let errorMsg = '';\n let isCancelled = false; // 标记是否被取消\n\n const uploadChunk = async chunkIndex => {\n if (hasError || isCancelled) return;\n const start = chunkIndex * CHUNK_SIZE;\n const end = Math.min(start + CHUNK_SIZE, fileSize);\n const chunk = file.file.slice(start, end);\n const formData = new FormData();\n formData.append('file', chunk, `${file.file.name}.part${chunkIndex.toString().padStart(3, '0')}`);\n formData.append('chunkIndex', chunkIndex.toString());\n formData.append('totalChunks', totalChunks.toString());\n formData.append('uploadId', uploadId);\n formData.append('originalFileName', file.file.name);\n formData.append('originalFileType', file.file.type);\n let retryCount = 0;\n const maxRetries = 3;\n while (retryCount < maxRetries) {\n if (hasError || isCancelled) return;\n try {\n await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&chunked=true',\n method: 'post',\n data: formData,\n withAuthCode: true,\n signal: abortController.signal,\n // 添加取消信号\n onUploadProgress: progressEvent => {\n if (hasError || isCancelled) return;\n const percent = Math.round(progressEvent.loaded / progressEvent.total * 100);\n chunkProgress[chunkIndex] = percent;\n const totalPercent = Math.round(chunkProgress.reduce((a, b) => a + b, 0) / totalChunks);\n file.onProgress({\n percent: totalPercent,\n file: file.file\n });\n }\n });\n return; // Success\n } catch (err) {\n // 如果是取消操作,直接返回\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n isCancelled = true;\n console.log('分块上传已取消:', file.file.name);\n return;\n }\n retryCount++;\n console.warn(`分块 ${chunkIndex + 1}/${totalChunks} 上传失败 (重试 ${retryCount}/${maxRetries}):`, err);\n if (retryCount >= maxRetries) {\n hasError = true;\n errorMsg = `分块 ${chunkIndex + 1}/${totalChunks} 上传失败: ${err.message}`;\n throw new Error(errorMsg);\n }\n // 等待后重试\n await new Promise(resolve => setTimeout(resolve, 2000 * retryCount));\n }\n }\n };\n\n // 创建并发池\n const pool = [];\n for (let i = 0; i < maxConcurrency; i++) {\n pool.push((async () => {\n while (nextChunkIndex < totalChunks && !hasError && !isCancelled) {\n const currentIndex = nextChunkIndex++;\n try {\n await uploadChunk(currentIndex);\n } catch (e) {\n if (!isCancelled) {\n hasError = true;\n errorMsg = e.message;\n }\n break;\n }\n }\n })());\n }\n await Promise.all(pool);\n\n // 如果被取消,直接返回\n if (isCancelled) {\n console.log('分块上传已取消,跳过合并步骤');\n return;\n }\n if (hasError) {\n throw new Error(errorMsg || '上传过程中发生错误');\n }\n\n // 第三步:所有分块上传完成,发送合并请求\n this.$message({\n type: 'info',\n message: '分块上传完成,正在合并文件,请耐心等待...',\n duration: 0 // 不自动关闭\n });\n const mergeFormData = new FormData();\n mergeFormData.append('uploadId', uploadId);\n mergeFormData.append('totalChunks', totalChunks.toString());\n mergeFormData.append('originalFileName', file.file.name);\n mergeFormData.append('originalFileType', file.file.type);\n // HuggingFace 渠道:传递预计算的 SHA256\n if (precomputedSha256) {\n mergeFormData.append('sha256', precomputedSha256);\n }\n const response = await axios({\n url: '/upload' + '?serverCompress=' + needServerCompress + '&uploadChannel=' + uploadChannel + '&uploadNameType=' + uploadNameType + '&autoRetry=' + autoRetry + '&uploadFolder=' + this.uploadFolder + '&chunked=true&merge=true',\n method: 'post',\n data: mergeFormData,\n withAuthCode: true\n });\n\n // 关闭提示\n this.$message.closeAll();\n\n // 同步处理完成\n file.onSuccess(response, file.file);\n } catch (err) {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n console.log('分块上传已取消:', file.file.name);\n return;\n }\n console.error('分块上传失败:', err);\n\n // 如果有uploadId,清理相关资源\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (fileItem && fileItem.uploadId) {\n this.cleanupUploadResources(fileItem.uploadId, fileItem.totalChunks).then(() => {\n console.log(`已清理分块上传失败的资源: ${fileItem.uploadId}`);\n }).catch(cleanupError => {\n console.warn('清理分块上传失败资源时出错:', cleanupError);\n });\n }\n if (err.response && err.response.status !== 401) {\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } else if (!err.response) {\n // 网络错误,也加入异常列表\n this.exceptionList.push(file);\n file.onError(err, file.file);\n }\n } finally {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n }\n },\n handleRemove(file) {\n // 如果文件正在上传,取消上传\n if (this.abortControllers.has(file.uid)) {\n this.abortControllers.get(file.uid).abort();\n this.abortControllers.delete(file.uid);\n }\n // 从上传队列中移除(如果在等待中)\n this.uploadQueue = this.uploadQueue.filter(item => item.file.uid !== file.uid);\n // 从文件列表中移除\n this.fileList = this.fileList.filter(item => item.uid !== file.uid);\n this.$message({\n type: 'info',\n message: this.truncateFilename(file.name) + '已删除'\n });\n },\n // 清理上传资源\n async cleanupUploadResources(uploadId, totalChunks = 0) {\n try {\n await axios({\n url: `/upload?cleanup=true&uploadId=${uploadId}&totalChunks=${totalChunks}`,\n method: 'get',\n withAuthCode: true,\n timeout: 5000\n });\n console.log(`清理上传资源成功: ${uploadId}`);\n } catch (error) {\n console.warn('清理上传资源失败:', error);\n }\n },\n handleSuccess(response, file) {\n const fileItem = this.fileList.find(item => item.uid === file.uid);\n if (!fileItem) return; // 文件已被删除\n\n try {\n // 对上传渠道为外链的,不修改链接\n const uploadChannel = fileItem.uploadChannel || this.uploadChannel;\n if (uploadChannel !== 'external') {\n // 从response.data[0].src中去除/file/前缀\n const srcID = response.data[0].src.replace('/file/', '');\n fileItem.url = `${window.location.protocol}//${window.location.host}/file/` + srcID;\n fileItem.finalURL = this.rootUrl + srcID;\n fileItem.mdURL = `![${file.name}](${this.rootUrl + srcID})`;\n fileItem.htmlURL = `\"${file.name}\"`;\n fileItem.ubbURL = `[img]${this.rootUrl + srcID}[/img]`;\n fileItem.srcID = srcID;\n }\n fileItem.progreess = 100;\n fileItem.status = 'success';\n\n // Save to history\n this.saveToHistory(fileItem);\n this.$message({\n type: 'success',\n message: this.truncateFilename(file.name) + '上传成功'\n });\n setTimeout(() => {\n const item = this.fileList.find(item => item.uid === file.uid);\n if (item) item.status = 'done';\n }, 1000);\n } catch (error) {\n this.$message.error(this.truncateFilename(file.name) + '上传失败');\n fileItem.status = 'exception';\n }\n // 注意:并发控制的 onUploadComplete 已在各上传方法的 finally 中调用\n },\n saveToHistory(fileItem) {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n const newRecord = {\n name: fileItem.name,\n url: fileItem.finalURL,\n time: Date.now(),\n type: fileItem.name.split('.').pop().toLowerCase()\n };\n history.push(newRecord);\n localStorage.setItem('uploadHistory', JSON.stringify(history));\n } catch (e) {\n console.error('Failed to save history', e);\n }\n },\n handleError(err, file) {\n const fileItem = this.fileList.find(item => item.uid === file.uid);\n if (!fileItem) return; // 文件已被删除\n\n this.$message.error(this.truncateFilename(file.name) + '上传失败');\n fileItem.status = 'exception';\n\n // 如果开启了自动重试,安排自动重试\n if (this.autoReUpload) {\n this.scheduleAutoRetry();\n }\n // 注意:并发控制的 onUploadComplete 已在各上传方法的 finally 中调用\n },\n handleCopy(file) {\n const status = this.fileList.find(item => item.uid === file.uid).status;\n if (status !== 'done' && status !== 'success') {\n this.$message({\n type: 'warning',\n message: '文件未上传成功,无法复制链接'\n });\n return;\n }\n if (this.selectedUrlForm === 'url') {\n navigator.clipboard.writeText(file.finalURL);\n } else if (this.selectedUrlForm === 'md') {\n navigator.clipboard.writeText(file.mdURL);\n } else if (this.selectedUrlForm === 'html') {\n navigator.clipboard.writeText(file.htmlURL);\n } else if (this.selectedUrlForm === 'ubb') {\n navigator.clipboard.writeText(file.ubbURL);\n } else {\n navigator.clipboard.writeText(file.finalURL);\n }\n this.$message({\n type: 'success',\n message: '复制成功'\n });\n },\n beforeUpload(file) {\n return new Promise(async (resolve, reject) => {\n let processedFile = file;\n\n // WebP 转换:在压缩之前进行\n // 条件:1.开启WebP转换 2.文件类型为图片 3.不是WebP/GIF/SVG格式\n const canConvertToWebp = this.convertToWebp && file.type.includes('image') && !file.type.includes('webp') && !file.type.includes('gif') && !file.type.includes('svg');\n if (canConvertToWebp) {\n try {\n const convertedFile = await this.convertImageToWebp(file);\n if (convertedFile) {\n processedFile = convertedFile;\n console.log(`WebP转换成功: ${file.name} -> ${convertedFile.name}, 大小: ${(file.size / 1024).toFixed(1)}KB -> ${(convertedFile.size / 1024).toFixed(1)}KB`);\n }\n } catch (err) {\n console.warn('WebP转换失败,使用原文件:', err);\n // 转换失败,继续使用原文件\n }\n }\n\n // 客户端压缩条件:1.文件类型为图片 2.开启客户端压缩,且文件大小大于压缩阈值\n const needCustomCompress = processedFile.type.includes('image') && this.customerCompress && processedFile.size / 1024 / 1024 > this.compressBar;\n const isLtLim = processedFile.size / 1024 / 1024 <= 1024 || this.uploadChannel !== 'telegram';\n const pushFileToQueue = (file, serverCompress) => {\n const fileUrl = URL.createObjectURL(file);\n this.fileList.push({\n uid: file.uid,\n name: file.name,\n url: fileUrl,\n finalURL: '',\n mdURL: '',\n htmlURL: '',\n ubbURL: '',\n srcID: '',\n status: 'uploading',\n progreess: 0,\n serverCompress: serverCompress,\n retryCount: 0\n });\n resolve(file);\n };\n if (needCustomCompress) {\n //尝试压缩图片\n imageConversion.compressAccurately(processedFile, 1024 * this.compressQuality).then(res => {\n //如果压缩后大于1024MB,且上传渠道为telegram,则不上传\n if (res.size / 1024 / 1024 > 1024 && this.uploadChannel === 'telegram') {\n this.$message.error(processedFile.name + '压缩后文件过大,无法上传!');\n reject('文件过大');\n }\n this.uploading = true;\n //将res包装成新的file\n const newFile = new File([res], processedFile.name, {\n type: res.type\n });\n newFile.uid = file.uid;\n const myUploadCount = this.uploadCount++;\n\n //开启服务端压缩条件:1.开启服务端压缩 2.文件大小小于10MB 3.上传渠道为Telegram\n const needServerCompress = this.serverCompress && newFile.size / 1024 / 1024 < 10 && this.uploadChannel === 'telegram';\n if (myUploadCount === 0) {\n pushFileToQueue(newFile, needServerCompress);\n } else {\n setTimeout(() => {\n pushFileToQueue(newFile, needServerCompress);\n this.uploadCount--;\n }, 300 * myUploadCount);\n }\n }).catch(err => {\n this.$message.error(processedFile.name + '压缩失败,无法上传!');\n reject(err);\n });\n } else if (isLtLim) {\n this.uploading = true;\n const myUploadCount = this.uploadCount++;\n\n // 开启服务端压缩条件:1.上传渠道为Telegram 2.开启服务端压缩 3.如果为图片,则文件大小小于10MB,否则不限制大小\n const needServerCompress = this.uploadChannel === 'telegram' && this.serverCompress && (processedFile.type.includes('image') ? processedFile.size / 1024 / 1024 < 10 : true);\n if (myUploadCount === 0) {\n pushFileToQueue(processedFile, needServerCompress);\n } else {\n setTimeout(() => {\n pushFileToQueue(processedFile, needServerCompress);\n this.uploadCount--;\n }, 300 * myUploadCount);\n }\n } else {\n this.$message.error(processedFile.name + '文件过大,无法上传!');\n reject('文件过大');\n }\n });\n },\n handleProgress(event) {\n const fileItem = this.fileList.find(item => item.uid === event.file.uid);\n if (fileItem) {\n fileItem.progreess = event.percent;\n }\n },\n copyAll() {\n if (this.selectedUrlForm === 'url') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.finalURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'md') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.mdURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'html') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.htmlURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else if (this.selectedUrlForm === 'ubb') {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.ubbURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n } else {\n const urls = this.fileList.map(item => {\n if (item.status === 'done' || item.status === 'success') {\n return item.finalURL;\n }\n }).join('\\n');\n navigator.clipboard.writeText(urls);\n }\n this.$message({\n type: 'success',\n message: '整体复制成功'\n });\n },\n clearFileList() {\n if (this.fileList.length > 0) {\n // 取消所有正在上传的文件\n this.abortControllers.forEach((controller, uid) => {\n controller.abort();\n });\n this.abortControllers.clear();\n // 清空上传队列\n this.uploadQueue = [];\n // 清空文件列表\n this.fileList = [];\n this.$message({\n type: 'success',\n message: '文件列表已清空'\n });\n } else {\n this.$message({\n type: 'info',\n message: '文件列表为空'\n });\n }\n },\n clearSuccessList() {\n if (this.uploadSuccessCount > 0) {\n this.fileList = this.fileList.filter(item => item.status !== 'done' && item.status !== 'success');\n this.$message({\n type: 'success',\n message: '成功上传文件已清空'\n });\n } else {\n this.$message({\n type: 'info',\n message: '成功上传文件为空'\n });\n }\n },\n handlePaste(event) {\n // 当粘贴位置是文本框时,不执行该操作\n if (event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA') {\n return;\n }\n const items = event.clipboardData.items;\n if (items.length > 0) {\n this.uploadFromUrl(items);\n }\n },\n handleUploadPasteUrls() {\n // 用于上传在上传文本框中粘贴的外链\n const urls = this.pastedUrls.split('\\n');\n // 处理空行和首尾空字符,链接须符合URL规范\n const validUrls = urls.map(url => url.trim()).filter(url => url !== '').filter(url => /^(https?:\\/\\/[^\\s$.?#].[^\\s]*)$/.test(url));\n\n // 根据粘贴上传方式进行上传\n if (this.pasteUploadMethod === 'save') {\n // 正常上传\n this.uploadFromUrl(validUrls.map(url => {\n return {\n kind: 'string',\n getAsString: callback => {\n callback(url);\n }\n };\n }));\n } else if (this.pasteUploadMethod === 'external') {\n // 仅保存外链,使用 external 渠道上传\n for (let i = 0; i < validUrls.length; i++) {\n const url = validUrls[i];\n const fileName = url.split('/').pop();\n const mdUrl = `![${fileName}](${url})`;\n const htmlUrl = `\"${fileName}\"`;\n const ubbUrl = `[img]${url}[/img]`;\n // 将 url 作为文件内容,文件名为 URL 的最后一部分\n const file = new File([], url.split('/').pop(), {\n type: 'text/plain'\n });\n file.uid = Date.now() + i;\n file.url = url;\n this.fileList.push({\n uid: file.uid,\n name: file.name,\n url: url,\n finalURL: url,\n mdURL: mdUrl,\n htmlURL: htmlUrl,\n ubbURL: ubbUrl,\n srcID: url,\n status: 'uploading',\n progreess: 0,\n serverCompress: false,\n uploadChannel: 'external',\n retryCount: 0\n });\n // 上传\n this.uploadFile({\n file: file,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }\n },\n uploadFromUrl(items) {\n for (let i = 0; i < items.length; i++) {\n if (items[i].kind === 'file') {\n const file = items[i].getAsFile();\n // 允许上传任意类型的文件\n file.uid = Date.now() + i;\n //接收beforeUpload的Promise对象\n const checkResult = this.beforeUpload(file);\n if (checkResult instanceof Promise) {\n checkResult.then(newFile => {\n if (newFile instanceof File) {\n this.uploadFile({\n file: newFile,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }).catch(err => {\n console.log(err);\n });\n }\n } else if (items[i].kind === 'string') {\n items[i].getAsString(text => {\n const urlPattern = /^(https?:\\/\\/[^\\s$.?#].[^\\s]*)$/;\n let fileName = '';\n if (urlPattern.test(text)) {\n axios.post('/api/fetchRes', {\n url: text\n }, {\n responseType: 'blob'\n }).then(response => {\n const contentType = response.headers['content-type'];\n if (response.status == 200) {\n // 提取文件名\n const disposition = response.headers['content-disposition'];\n if (disposition) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const filenameStarRegex = /filename\\*\\s*=\\s*UTF-8''([^;\\n]*)/; // 处理 filename*\n\n let matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n fileName = matches[1].replace(/['\"]/g, '');\n // 尝试解码\n try {\n fileName = decodeURIComponent(fileName);\n } catch (e) {\n fileName = '';\n }\n }\n if (fileName === '') {\n matches = filenameStarRegex.exec(disposition); // 尝试匹配 filename*\n if (matches != null && matches[1]) {\n fileName = decodeURIComponent(matches[1]);\n }\n }\n }\n // 尝试从URL中提取文件名\n if (fileName === '') {\n const url = new URL(text);\n fileName = url.pathname.split('/').pop();\n }\n // 未提取到文件名,使用默认文件名\n if (fileName === '') {\n // 获取文件后缀\n const url = new URL(text);\n let extension = url.pathname.split('.').pop();\n // 未能从URL提取有效后缀,使用bin作为默认后缀\n if (!extension || extension === '' || extension.length > 10) {\n extension = 'bin';\n }\n fileName = 'PastedFile' + Date.now() + i + '.' + extension;\n }\n\n // 读取文件内容\n const blob = response.data;\n const file = new File([blob], fileName, {\n type: blob.type\n });\n file.uid = Date.now() + i;\n // 接收beforeUpload的Promise对象\n const checkResult = this.beforeUpload(file);\n if (checkResult instanceof Promise) {\n checkResult.then(newFile => {\n if (newFile instanceof File) {\n this.uploadFile({\n file: newFile,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n }\n }).catch(err => {\n console.log(err);\n });\n }\n } else {\n throw new Error('URL地址请求失败');\n }\n }).catch(error => {\n this.$message({\n type: 'warning',\n message: '粘贴板中的URL地址请求失败'\n });\n });\n }\n });\n }\n }\n },\n selectAllText(event) {\n // 复制到剪贴板\n navigator.clipboard.writeText(event.target.value).then(() => {\n this.$message({\n type: 'success',\n message: '复制成功'\n });\n }).catch(() => {\n this.$message({\n type: 'error',\n message: '复制失败'\n });\n });\n },\n // 判断是否为图片类型\n isImage(fileName) {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff', 'ico', 'avif', 'heic', 'jfif', 'pjpeg', 'pjp', 'raw', 'cr2', 'nef', 'dng', 'eps', 'ai', 'emf', 'wmf'];\n const extension = fileName.split('.').pop().toLowerCase();\n return imageExtensions.includes(extension);\n },\n // 判断是否为视频类型\n isVideo(fileName) {\n const videoExtensions = ['mp4', 'webm', 'ogg', 'mkv'];\n const extension = fileName.split('.').pop().toLowerCase();\n return videoExtensions.includes(extension);\n },\n handleScroll(event) {\n this.listScrolled = event.scrollTop > 0 && this.fileList.length > 0;\n },\n retryError() {\n if (this.exceptionList.length > 0) {\n this.retryFailedFiles(this.exceptionList);\n this.exceptionList = [];\n } else {\n this.$message({\n type: 'info',\n message: '无上传失败文件'\n });\n }\n },\n handleAutoRetryChange(val) {\n this.$message({\n type: val ? 'success' : 'info',\n message: val ? '自动重试已开启' : '自动重试已关闭'\n });\n\n // 如果开启自动重试且有失败文件,立即开始重试\n if (val && this.exceptionList.length > 0) {\n this.scheduleAutoRetry();\n }\n },\n retryFailedFiles(files) {\n files.forEach(file => {\n const retryCount = file.retryCount || 0;\n if (retryCount < this.maxRetryCount) {\n file.retryCount = retryCount + 1;\n this.uploadFile({\n file: file.file,\n onProgress: evt => this.handleProgress(evt),\n onSuccess: (response, file) => this.handleSuccess(response, file),\n onError: (error, file) => this.handleError(error, file)\n });\n } else {\n this.$message({\n type: 'warning',\n message: `${file.name} 已达到最大重试次数(${this.maxRetryCount}),停止重试`\n });\n }\n });\n },\n scheduleAutoRetry() {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n }\n this.retryTimer = setTimeout(() => {\n if (this.autoReUpload && this.exceptionList.length > 0) {\n const filesToRetry = [...this.exceptionList];\n this.exceptionList = [];\n this.retryFailedFiles(filesToRetry);\n }\n }, this.retryDelay);\n },\n // HuggingFace 大文件直传(绕过 CF Workers 限制)\n // 流程:前端计算 SHA256 → 获取 S3 上传 URL → 直传到 S3 → 提交文件引用\n async uploadToHuggingFaceDirect(file) {\n const fileItem = this.fileList.find(item => item.uid === file.file.uid);\n if (!fileItem) return;\n\n // 创建 AbortController 用于取消上传\n const abortController = new AbortController();\n this.abortControllers.set(file.file.uid, abortController);\n try {\n console.log('=== HuggingFace Direct Upload ===');\n console.log('File:', file.file.name, 'Size:', file.file.size);\n\n // 1. 计算 SHA256\n file.onProgress({\n percent: 5,\n file: file.file\n });\n console.log('Computing SHA256...');\n const sha256 = await this.computeSha256(file.file);\n console.log('SHA256:', sha256);\n\n // 检查是否已取消\n if (abortController.signal.aborted) {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n\n // 2. 获取文件样本(前512字节的base64)\n const sampleBytes = new Uint8Array(await file.file.slice(0, 512).arrayBuffer());\n const fileSample = btoa(String.fromCharCode(...sampleBytes));\n\n // 3. 获取 LFS 上传 URL\n file.onProgress({\n percent: 10,\n file: file.file\n });\n console.log('Getting LFS upload URL...');\n const uploadInfoRes = await axios({\n url: '/api/huggingface/getUploadUrl',\n method: 'post',\n data: {\n fileSize: file.file.size,\n fileName: file.file.name,\n sha256,\n fileSample\n },\n withAuthCode: true,\n signal: abortController.signal\n });\n if (!uploadInfoRes.data.success) {\n throw new Error(uploadInfoRes.data.error || 'Failed to get upload URL');\n }\n const uploadInfo = uploadInfoRes.data;\n console.log('Upload info:', uploadInfo);\n\n // 检查文件是否已存在\n if (uploadInfo.alreadyExists) {\n console.log('File already exists in LFS, skipping upload');\n file.onProgress({\n percent: 90,\n file: file.file\n });\n } else if (uploadInfo.needsLfs && uploadInfo.uploadAction) {\n // 4. 直接上传到 S3\n const {\n href,\n header\n } = uploadInfo.uploadAction;\n if (header?.chunk_size) {\n // 分片上传\n await this.uploadToHuggingFaceMultipart(file, uploadInfo, abortController);\n } else {\n // 基本上传\n console.log('Uploading to S3 (basic)...');\n const uploadRes = await fetch(href, {\n method: 'PUT',\n headers: header || {},\n body: file.file,\n signal: abortController.signal\n });\n if (!uploadRes.ok) {\n const error = await uploadRes.text();\n throw new Error(`S3 upload failed: ${uploadRes.status} - ${error}`);\n }\n console.log('S3 upload complete');\n }\n }\n\n // 检查是否已取消\n if (abortController.signal.aborted) {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n\n // 5. 提交文件引用\n file.onProgress({\n percent: 95,\n file: file.file\n });\n console.log('Committing file...');\n const commitRes = await axios({\n url: '/api/huggingface/commitUpload',\n method: 'post',\n data: {\n fullId: uploadInfo.fullId,\n filePath: uploadInfo.filePath,\n sha256,\n fileSize: file.file.size,\n fileName: file.file.name,\n channelName: uploadInfo.channelName\n },\n withAuthCode: true,\n signal: abortController.signal\n });\n if (!commitRes.data.success) {\n throw new Error(commitRes.data.error || 'Failed to commit file');\n }\n console.log('Upload complete:', commitRes.data);\n // 转换响应格式以匹配 handleSuccess 期望的格式\n const formattedResponse = {\n data: [{\n src: commitRes.data.src\n }]\n };\n file.onSuccess(formattedResponse, file.file);\n } catch (err) {\n // 如果是取消操作,不加入异常列表\n if (err.name === 'CanceledError' || err.code === 'ERR_CANCELED' || err.name === 'AbortError') {\n console.log('HuggingFace 上传已取消:', file.file.name);\n return;\n }\n console.error('HuggingFace direct upload error:', err);\n this.exceptionList.push(file);\n file.onError(err, file.file);\n } finally {\n // 清理 AbortController\n this.abortControllers.delete(file.file.uid);\n // 调用并发控制的完成回调\n this.onUploadComplete();\n }\n },\n // HuggingFace 分片上传到 S3\n async uploadToHuggingFaceMultipart(file, uploadInfo, abortController) {\n const {\n uploadAction\n } = uploadInfo;\n const {\n href: completionUrl,\n header\n } = uploadAction;\n const chunkSize = parseInt(header.chunk_size);\n\n // 获取所有分片的上传 URL\n const parts = Object.keys(header).filter(key => /^[0-9]+$/.test(key));\n console.log(`Multipart upload: ${parts.length} parts, chunk size: ${chunkSize}`);\n const completeParts = [];\n const totalParts = parts.length;\n for (const part of parts) {\n // 检查是否已取消\n if (abortController && abortController.signal.aborted) {\n console.log('HuggingFace 分片上传已取消');\n throw new DOMException('Upload cancelled', 'AbortError');\n }\n const index = parseInt(part) - 1;\n const start = index * chunkSize;\n const end = Math.min(start + chunkSize, file.file.size);\n const chunk = file.file.slice(start, end);\n console.log(`Uploading part ${part}/${totalParts}`);\n const response = await fetch(header[part], {\n method: 'PUT',\n body: chunk,\n signal: abortController ? abortController.signal : undefined\n });\n if (!response.ok) {\n throw new Error(`Failed to upload part ${part}: ${response.status}`);\n }\n const etag = response.headers.get('ETag');\n if (!etag) {\n throw new Error(`No ETag for part ${part}`);\n }\n completeParts.push({\n partNumber: parseInt(part),\n etag\n });\n\n // 更新进度(10% - 90%)\n const progress = 10 + Math.round(parseInt(part) / totalParts * 80);\n file.onProgress({\n percent: progress,\n file: file.file\n });\n }\n\n // 检查是否已取消\n if (abortController && abortController.signal.aborted) {\n console.log('HuggingFace 分片上传已取消');\n throw new DOMException('Upload cancelled', 'AbortError');\n }\n\n // 完成分片上传\n console.log('Completing multipart upload...');\n const completeResponse = await fetch(completionUrl, {\n method: 'POST',\n headers: {\n 'Accept': 'application/vnd.git-lfs+json',\n 'Content-Type': 'application/vnd.git-lfs+json'\n },\n body: JSON.stringify({\n oid: uploadInfo.oid,\n parts: completeParts\n }),\n signal: abortController ? abortController.signal : undefined\n });\n if (!completeResponse.ok) {\n const error = await completeResponse.text();\n throw new Error(`Multipart complete failed: ${completeResponse.status} - ${error}`);\n }\n console.log('Multipart upload complete');\n },\n // 计算文件的 SHA256 哈希(用于 HuggingFace 上传)\n // 使用增量哈希算法,支持任意大小文件\n async computeSha256(file) {\n // 使用纯 JavaScript 实现的增量 SHA256\n // 这样可以分块处理大文件,避免内存溢出\n const sha256 = this.createSha256();\n const CHUNK_SIZE = 4 * 1024 * 1024; // 4MB chunks - 更小的块减少内存压力\n let offset = 0;\n while (offset < file.size) {\n const chunk = file.slice(offset, Math.min(offset + CHUNK_SIZE, file.size));\n const buffer = await chunk.arrayBuffer();\n sha256.update(new Uint8Array(buffer));\n offset += CHUNK_SIZE;\n\n // 每处理 20MB 打印一次进度\n if (offset % (20 * 1024 * 1024) < CHUNK_SIZE) {\n console.log(`SHA256 progress: ${Math.min(100, Math.round(offset / file.size * 100))}%`);\n }\n }\n return sha256.digest();\n },\n // 创建增量 SHA256 哈希器(纯 JavaScript 实现)\n createSha256() {\n // SHA256 常量\n const K = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n let H = new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]);\n let buffer = new Uint8Array(64);\n let bufferLength = 0;\n let totalLength = 0;\n const rotr = (x, n) => x >>> n | x << 32 - n;\n const processBlock = block => {\n const W = new Uint32Array(64);\n for (let i = 0; i < 16; i++) {\n W[i] = block[i * 4] << 24 | block[i * 4 + 1] << 16 | block[i * 4 + 2] << 8 | block[i * 4 + 3];\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(W[i - 15], 7) ^ rotr(W[i - 15], 18) ^ W[i - 15] >>> 3;\n const s1 = rotr(W[i - 2], 17) ^ rotr(W[i - 2], 19) ^ W[i - 2] >>> 10;\n W[i] = W[i - 16] + s0 + W[i - 7] + s1 >>> 0;\n }\n let [a, b, c, d, e, f, g, h] = H;\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);\n const ch = e & f ^ ~e & g;\n const temp1 = h + S1 + ch + K[i] + W[i] >>> 0;\n const S0 = rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22);\n const maj = a & b ^ a & c ^ b & c;\n const temp2 = S0 + maj >>> 0;\n h = g;\n g = f;\n f = e;\n e = d + temp1 >>> 0;\n d = c;\n c = b;\n b = a;\n a = temp1 + temp2 >>> 0;\n }\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n H[5] = H[5] + f >>> 0;\n H[6] = H[6] + g >>> 0;\n H[7] = H[7] + h >>> 0;\n };\n return {\n update(data) {\n totalLength += data.length;\n let offset = 0;\n if (bufferLength > 0) {\n const needed = 64 - bufferLength;\n const toCopy = Math.min(needed, data.length);\n buffer.set(data.subarray(0, toCopy), bufferLength);\n bufferLength += toCopy;\n offset = toCopy;\n if (bufferLength === 64) {\n processBlock(buffer);\n bufferLength = 0;\n }\n }\n while (offset + 64 <= data.length) {\n processBlock(data.subarray(offset, offset + 64));\n offset += 64;\n }\n if (offset < data.length) {\n buffer.set(data.subarray(offset), 0);\n bufferLength = data.length - offset;\n }\n },\n digest() {\n const bitLength = totalLength * 8;\n\n // Padding\n buffer[bufferLength++] = 0x80;\n if (bufferLength > 56) {\n buffer.fill(0, bufferLength, 64);\n processBlock(buffer);\n bufferLength = 0;\n }\n buffer.fill(0, bufferLength, 56);\n\n // Length in bits (big-endian, 64-bit)\n const view = new DataView(buffer.buffer);\n view.setUint32(56, Math.floor(bitLength / 0x100000000), false);\n view.setUint32(60, bitLength >>> 0, false);\n processBlock(buffer);\n\n // Convert to hex\n let hex = '';\n for (let i = 0; i < 8; i++) {\n hex += H[i].toString(16).padStart(8, '0');\n }\n return hex;\n }\n };\n },\n // 将图片转换为 WebP 格式\n async convertImageToWebp(file) {\n return new Promise((resolve, reject) => {\n // 不支持转换的格式直接返回 null\n if (file.type.includes('gif') || file.type.includes('svg') || file.type.includes('webp')) {\n resolve(null);\n return;\n }\n const img = new Image();\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n img.onload = () => {\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0);\n canvas.toBlob(blob => {\n if (blob) {\n // 修改文件名:将原扩展名替换为 .webp\n const originalName = file.name;\n const lastDotIndex = originalName.lastIndexOf('.');\n const newName = lastDotIndex > 0 ? originalName.substring(0, lastDotIndex) + '.webp' : originalName + '.webp';\n const webpFile = new File([blob], newName, {\n type: 'image/webp'\n });\n webpFile.uid = file.uid;\n resolve(webpFile);\n } else {\n reject(new Error('WebP 转换失败'));\n }\n\n // 清理\n URL.revokeObjectURL(img.src);\n }, 'image/webp', 0.92); // 0.92 质量参数,平衡质量和大小\n };\n img.onerror = () => {\n URL.revokeObjectURL(img.src);\n reject(new Error('图片加载失败'));\n };\n img.src = URL.createObjectURL(file);\n });\n },\n // 拖拽上传卡片鼠标移动事件 - 悬浮光斑效果\n handleUploadCardMouseMove(e) {\n const glow = this.$refs.uploadCardGlow;\n if (!glow) return;\n const rect = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n glow.style.opacity = '1';\n glow.style.left = x + 'px';\n glow.style.top = y + 'px';\n },\n // 拖拽上传卡片鼠标离开事件\n handleUploadCardMouseLeave() {\n const glow = this.$refs.uploadCardGlow;\n if (!glow) return;\n glow.style.opacity = '0';\n }\n },\n beforeDestroy() {\n // 清理定时器\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadForm.vue?vue&type=template&id=b352bfea&scoped=true\"\nimport script from \"./UploadForm.vue?vue&type=script&lang=js\"\nexport * from \"./UploadForm.vue?vue&type=script&lang=js\"\n\nimport \"./UploadForm.vue?vue&type=style&index=0&id=b352bfea&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b352bfea\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"container\"\n};\nconst _hoisted_2 = {\n class: \"upload-home\"\n};\nconst _hoisted_3 = {\n href: \"https://cfbed.sanyue.de/qa/\",\n target: \"_blank\",\n class: \"info-container\"\n};\nconst _hoisted_4 = {\n class: \"toolbar-manage\"\n};\nconst _hoisted_5 = {\n class: \"toolbar\"\n};\nconst _hoisted_6 = {\n class: \"header\"\n};\nconst _hoisted_7 = {\n class: \"title\"\n};\nconst _hoisted_8 = {\n class: \"main-title\",\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n target: \"_blank\"\n};\nconst _hoisted_9 = {\n class: \"dialog-section\"\n};\nconst _hoisted_10 = {\n class: \"section-content\"\n};\nconst _hoisted_11 = {\n class: \"dialog-section\"\n};\nconst _hoisted_12 = {\n class: \"section-header\"\n};\nconst _hoisted_13 = {\n class: \"section-content\"\n};\nconst _hoisted_14 = {\n class: \"setting-item\"\n};\nconst _hoisted_15 = {\n key: 0,\n class: \"setting-item\"\n};\nconst _hoisted_16 = {\n class: \"dialog-action\"\n};\nconst _hoisted_17 = {\n class: \"dialog-section\"\n};\nconst _hoisted_18 = {\n class: \"section-content\"\n};\nconst _hoisted_19 = {\n class: \"setting-item\"\n};\nconst _hoisted_20 = {\n class: \"setting-item\"\n};\nconst _hoisted_21 = {\n class: \"setting-item\"\n};\nconst _hoisted_22 = {\n class: \"setting-label\"\n};\nconst _hoisted_23 = {\n class: \"dialog-section\"\n};\nconst _hoisted_24 = {\n class: \"section-content\"\n};\nconst _hoisted_25 = {\n class: \"dialog-section\"\n};\nconst _hoisted_26 = {\n class: \"section-header\"\n};\nconst _hoisted_27 = {\n class: \"section-content\"\n};\nconst _hoisted_28 = {\n class: \"setting-item\"\n};\nconst _hoisted_29 = {\n class: \"setting-label\"\n};\nconst _hoisted_30 = {\n class: \"setting-item\"\n};\nconst _hoisted_31 = {\n key: 0,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_32 = {\n class: \"setting-label\"\n};\nconst _hoisted_33 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_34 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_35 = {\n key: 1,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_36 = {\n class: \"setting-label\"\n};\nconst _hoisted_37 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_38 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_39 = {\n key: 0,\n class: \"dialog-section\"\n};\nconst _hoisted_40 = {\n class: \"section-header\"\n};\nconst _hoisted_41 = {\n class: \"section-content\"\n};\nconst _hoisted_42 = {\n class: \"setting-item\"\n};\nconst _hoisted_43 = {\n class: \"dialog-action\"\n};\nconst _hoisted_44 = [\"innerHTML\"];\nconst _hoisted_45 = {\n class: \"dialog-footer\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ToggleDark = _resolveComponent(\"ToggleDark\");\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\");\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\");\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\");\n const _component_Logo = _resolveComponent(\"Logo\");\n const _component_UploadForm = _resolveComponent(\"UploadForm\");\n const _component_el_radio = _resolveComponent(\"el-radio\");\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\");\n const _component_el_switch = _resolveComponent(\"el-switch\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n const _component_el_slider = _resolveComponent(\"el-slider\");\n const _component_el_input_number = _resolveComponent(\"el-input-number\");\n const _component_Footer = _resolveComponent(\"Footer\");\n const _component_UploadHistory = _resolveComponent(\"UploadHistory\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createVNode(_component_ToggleDark, {\n class: \"toggle-dark-button desktop-only\"\n }), _createVNode(_component_el_tooltip, {\n content: \"查看文档\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createElementVNode(\"a\", _hoisted_3, [_createVNode(_component_font_awesome_icon, {\n icon: \"book\",\n class: \"info-icon\",\n size: \"lg\"\n })])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_input, {\n class: _normalizeClass([\"upload-folder\", {\n 'active': $data.isFolderInputActive,\n 'no-announcement': !$options.announcementAvailable\n }]),\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.uploadFolder = $event),\n placeholder: \"上传目录\",\n onFocus: _cache[1] || (_cache[1] = $event => $data.isFolderInputActive = true),\n onBlur: _cache[2] || (_cache[2] = $event => $data.isFolderInputActive = false)\n }, null, 8, [\"class\", \"modelValue\"]), _createVNode(_component_el_tooltip, {\n content: \"切换上传方式\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"upload-method-button desktop-only\",\n onClick: $options.handleChangeUploadMethod\n }, {\n default: _withCtx(() => [$data.uploadMethod === 'default' ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"folder-open\",\n class: \"upload-method-icon\",\n size: \"lg\"\n })) : $data.uploadMethod === 'paste' ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"paste\",\n class: \"upload-method-icon\",\n size: \"lg\"\n })) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n content: \"上传记录\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"history-button desktop-only\",\n onClick: _cache[3] || (_cache[3] = $event => $data.showHistory = true)\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"history-icon\",\n size: \"lg\"\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"disabled\"]), $options.announcementAvailable ? (_openBlock(), _createBlock(_component_el_tooltip, {\n key: 0,\n content: \"查看公告\",\n placement: \"bottom\",\n disabled: $options.disableTooltip\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"announcement-button desktop-only\",\n onClick: $options.handleShowAnnouncement\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"bullhorn\",\n class: \"announcement-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"])) : _createCommentVNode(\"\", true), _createVNode(_component_el_dropdown, {\n class: \"mobile-more-dropdown mobile-only\",\n trigger: \"click\",\n onCommand: $options.handleMobileMenuCommand\n }, {\n dropdown: _withCtx(() => [_createVNode(_component_el_dropdown_menu, null, {\n default: _withCtx(() => [_createVNode(_component_el_dropdown_item, {\n command: \"toggleTheme\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $options.getThemeIcon(),\n style: {\n \"margin-right\": \"8px\"\n }\n }, null, 8, [\"icon\"]), _createTextVNode(\" \" + _toDisplayString($options.getThemeText()), 1)]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"toggleUploadMethod\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: $data.uploadMethod === 'default' ? 'paste' : 'folder-open',\n style: {\n \"margin-right\": \"8px\"\n }\n }, null, 8, [\"icon\"]), _createTextVNode(\" \" + _toDisplayString($data.uploadMethod === 'default' ? '粘贴上传' : '文件上传'), 1)]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"showHistory\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n style: {\n \"margin-right\": \"8px\"\n }\n }), _cache[25] || (_cache[25] = _createTextVNode(\" 上传记录 \", -1))]),\n _: 1\n }), _createVNode(_component_el_dropdown_item, {\n command: \"showAnnouncement\",\n disabled: !$options.announcementAvailable\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"bullhorn\",\n style: {\n \"margin-right\": \"8px\"\n }\n }), _cache[26] || (_cache[26] = _createTextVNode(\" 查看公告 \", -1))]),\n _: 1\n }, 8, [\"disabled\"])]),\n _: 1\n })]),\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: \"mobile-more-button\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"ellipsis-v\",\n size: \"lg\"\n })]),\n _: 1\n })]),\n _: 1\n }, 8, [\"onCommand\"]), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-manage-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleOpenToolbar,\n circle: \"\"\n }, {\n default: _withCtx(() => [!$data.isToolBarOpen ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"bars\",\n class: \"manage-icon\",\n size: \"lg\"\n })) : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"times\",\n class: \"manage-icon\",\n size: \"lg\"\n }))]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"上传设置\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button compress-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.openCompressDialog,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload\",\n class: \"compress-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"链接格式\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button link-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.openUrlDialog,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"link\",\n class: \"link-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"系统管理\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button config-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleManage,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cog\",\n class: \"config-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"]), _createVNode(_component_el_tooltip, {\n disabled: $options.disableTooltip,\n content: \"退出登录\",\n placement: \"left\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n class: _normalizeClass([\"toolbar-button sign-out-button\", {\n 'active': $data.isToolBarOpen\n }]),\n size: \"large\",\n onClick: $options.handleLogout,\n circle: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"sign-out-alt\",\n class: \"sign-out-icon\",\n size: \"lg\"\n })]),\n _: 1\n }, 8, [\"class\", \"onClick\"])]),\n _: 1\n }, 8, [\"disabled\"])]), _createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_Logo, {\n useConfigLink: true\n }), _createElementVNode(\"h1\", _hoisted_7, [_createElementVNode(\"a\", _hoisted_8, _toDisplayString($options.ownerName), 1), _cache[27] || (_cache[27] = _createTextVNode(\" ImgHub\", -1))])]), _createVNode(_component_UploadForm, {\n selectedUrlForm: $data.selectedUrlForm,\n customerCompress: $data.customerCompress,\n compressQuality: $data.compressQuality,\n compressBar: $data.compressBar,\n serverCompress: $data.serverCompress,\n uploadChannel: $data.uploadChannel,\n uploadNameType: $data.uploadNameType,\n useCustomUrl: $data.useCustomUrl,\n customUrlPrefix: $data.customUrlPrefix,\n autoRetry: $data.autoRetry,\n urlPrefix: $options.urlPrefix,\n uploadMethod: $data.uploadMethod,\n uploadFolder: $data.uploadFolder,\n convertToWebp: $data.convertToWebp,\n class: \"upload\"\n }, null, 8, [\"selectedUrlForm\", \"customerCompress\", \"compressQuality\", \"compressBar\", \"serverCompress\", \"uploadChannel\", \"uploadNameType\", \"useCustomUrl\", \"customUrlPrefix\", \"autoRetry\", \"urlPrefix\", \"uploadMethod\", \"uploadFolder\", \"convertToWebp\"]), _createVNode(_component_el_dialog, {\n title: \"链接格式设置\",\n modelValue: $data.showUrlDialog,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.showUrlDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n class: \"settings-dialog\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_9, [_cache[32] || (_cache[32] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"默认复制链接\")], -1)), _createElementVNode(\"div\", _hoisted_10, [_createVNode(_component_el_radio_group, {\n modelValue: $data.selectedUrlForm,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.selectedUrlForm = $event),\n onChange: $options.changeUrlForm,\n class: \"radio-card-group grid-2x2\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n value: \"url\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"link\",\n class: \"radio-icon\"\n }), _cache[28] || (_cache[28] = _createElementVNode(\"span\", null, \"原始链接\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"md\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"code\",\n class: \"radio-icon\"\n }), _cache[29] || (_cache[29] = _createElementVNode(\"span\", null, \"MarkDown\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"html\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"code-branch\",\n class: \"radio-icon\"\n }), _cache[30] || (_cache[30] = _createElementVNode(\"span\", null, \"HTML\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n value: \"ubb\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"quote-right\",\n class: \"radio-icon\"\n }), _cache[31] || (_cache[31] = _createElementVNode(\"span\", null, \"BBCode\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"onChange\"])])]), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"div\", _hoisted_12, [_cache[33] || (_cache[33] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"自定义链接\", -1)), _createVNode(_component_el_tooltip, {\n content: \"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入\",\n placement: \"top\",\n \"raw-content\": \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_13, [_createElementVNode(\"div\", _hoisted_14, [_cache[34] || (_cache[34] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"启用自定义\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.useCustomUrl,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.useCustomUrl = $event),\n \"active-value\": \"true\",\n \"inactive-value\": \"false\"\n }, null, 8, [\"modelValue\"])]), $data.useCustomUrl === 'true' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [_cache[35] || (_cache[35] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"自定义前缀\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.customUrlPrefix,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.customUrlPrefix = $event),\n placeholder: \"请输入自定义链接前缀\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])])) : _createCommentVNode(\"\", true)])]), _createElementVNode(\"div\", _hoisted_16, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[7] || (_cache[7] = $event => $data.showUrlDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[36] || (_cache[36] = [_createTextVNode(\"确定\", -1)]))]),\n _: 1\n })])]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_el_dialog, {\n title: \"上传设置\",\n modelValue: $data.showCompressDialog,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = $event => $data.showCompressDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n class: \"settings-dialog\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_17, [_cache[45] || (_cache[45] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"上传渠道\")], -1)), _createElementVNode(\"div\", _hoisted_18, [_createElementVNode(\"div\", _hoisted_19, [_cache[42] || (_cache[42] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传渠道\", -1)), _createVNode(_component_el_radio_group, {\n modelValue: $data.uploadChannel,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = $event => $data.uploadChannel = $event),\n class: \"radio-card-group compact\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n label: \"telegram\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"paper-plane\",\n class: \"channel-icon\"\n }), _cache[37] || (_cache[37] = _createElementVNode(\"span\", null, \"TG\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"cfr2\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud\",\n class: \"channel-icon\"\n }), _cache[38] || (_cache[38] = _createElementVNode(\"span\", null, \"R2\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"s3\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"database\",\n class: \"channel-icon\"\n }), _cache[39] || (_cache[39] = _createElementVNode(\"span\", null, \"S3\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"discord\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"comments\",\n class: \"channel-icon\"\n }), _cache[40] || (_cache[40] = _createElementVNode(\"span\", null, \"DC\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"huggingface\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"robot\",\n class: \"channel-icon\"\n }), _cache[41] || (_cache[41] = _createElementVNode(\"span\", null, \"HF\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_20, [_cache[43] || (_cache[43] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传目录\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.uploadFolder = $event),\n placeholder: \"请输入上传目录路径\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_21, [_createElementVNode(\"span\", _hoisted_22, [_cache[44] || (_cache[44] = _createTextVNode(\" 自动切换 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"对于非分块上传文件,上传失败自动切换到其他渠道上传\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createVNode(_component_el_switch, {\n modelValue: $data.autoRetry,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $data.autoRetry = $event)\n }, null, 8, [\"modelValue\"])])])]), _createElementVNode(\"div\", _hoisted_23, [_cache[50] || (_cache[50] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件命名方式\")], -1)), _createElementVNode(\"div\", _hoisted_24, [_createVNode(_component_el_radio_group, {\n modelValue: $data.uploadNameType,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = $event => $data.uploadNameType = $event),\n class: \"radio-card-group grid-2x2\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio, {\n label: \"default\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"cog\",\n class: \"radio-icon\"\n }), _cache[46] || (_cache[46] = _createElementVNode(\"span\", null, \"默认\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"index\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"hashtag\",\n class: \"radio-icon\"\n }), _cache[47] || (_cache[47] = _createElementVNode(\"span\", null, \"仅前缀\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"origin\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"file-signature\",\n class: \"radio-icon\"\n }), _cache[48] || (_cache[48] = _createElementVNode(\"span\", null, \"仅原名\", -1))]),\n _: 1\n }), _createVNode(_component_el_radio, {\n label: \"short\",\n class: \"radio-card\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"compress-alt\",\n class: \"radio-icon\"\n }), _cache[49] || (_cache[49] = _createElementVNode(\"span\", null, \"短链接\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])])]), _createElementVNode(\"div\", _hoisted_25, [_createElementVNode(\"div\", _hoisted_26, [_cache[51] || (_cache[51] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件预处理\", -1)), _createVNode(_component_el_tooltip, {\n content: \"上传前在本地进行格式转换和压缩,仅对图片文件生效\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_27, [_createElementVNode(\"div\", _hoisted_28, [_createElementVNode(\"span\", _hoisted_29, [_cache[52] || (_cache[52] = _createTextVNode(\" 转换为WebP \", -1)), _createVNode(_component_el_tooltip, {\n content: \"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createVNode(_component_el_switch, {\n modelValue: $data.convertToWebp,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = $event => $data.convertToWebp = $event)\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_30, [_cache[53] || (_cache[53] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"文件压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.customerCompress,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = $event => $data.customerCompress = $event)\n }, null, 8, [\"modelValue\"])]), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [_createElementVNode(\"span\", _hoisted_32, [_cache[54] || (_cache[54] = _createTextVNode(\" 压缩阈值 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"设置图片大小阈值,超过此值将自动压缩,单位MB\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_33, [_createVNode(_component_el_slider, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_34, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n step: 1,\n \"value-on-clear\": 1,\n size: \"small\",\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\"]), _cache[55] || (_cache[55] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [_createElementVNode(\"span\", _hoisted_36, [_cache[56] || (_cache[56] = _createTextVNode(\" 期望大小 \", -1)), _createVNode(_component_el_tooltip, {\n content: \"设置压缩后图片大小期望值,单位MB\",\n placement: \"top\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"inline-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_37, [_createVNode(_component_el_slider, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.compressQuality = $event),\n min: 0.5,\n max: $data.compressBar,\n step: 0.1,\n \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"max\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_38, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = $event => $data.compressQuality = $event),\n min: 0.5,\n max: $data.compressBar,\n step: 0.1,\n precision: 1,\n \"value-on-clear\": 0.5,\n size: \"small\",\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\", \"max\"]), _cache[57] || (_cache[57] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true)])]), $data.uploadChannel === 'telegram' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_39, [_createElementVNode(\"div\", _hoisted_40, [_cache[58] || (_cache[58] = _createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"服务端压缩\", -1)), _createVNode(_component_el_tooltip, {\n content: \"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题\",\n placement: \"top\",\n \"raw-content\": \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n class: \"section-help-icon\"\n })]),\n _: 1\n })]), _createElementVNode(\"div\", _hoisted_41, [_createElementVNode(\"div\", _hoisted_42, [_cache[59] || (_cache[59] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"开启压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.serverCompress,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = $event => $data.serverCompress = $event)\n }, null, 8, [\"modelValue\"])])])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_43, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[20] || (_cache[20] = $event => $data.showCompressDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[60] || (_cache[60] = [_createTextVNode(\"确定\", -1)]))]),\n _: 1\n })])]),\n _: 1\n }, 8, [\"modelValue\", \"width\"])]), _createVNode(_component_Footer, {\n class: \"footer\"\n }), _createVNode(_component_el_dialog, {\n title: \"公告\",\n modelValue: $data.showAnnouncementDialog,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = $event => $data.showAnnouncementDialog = $event),\n width: $options.dialogWidth,\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false,\n center: \"\"\n }, {\n footer: _withCtx(() => [_createElementVNode(\"span\", _hoisted_45, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[22] || (_cache[22] = $event => $data.showAnnouncementDialog = false)\n }, {\n default: _withCtx(() => [...(_cache[61] || (_cache[61] = [_createTextVNode(\"我已知晓!\", -1)]))]),\n _: 1\n })])]),\n default: _withCtx(() => [_createElementVNode(\"div\", {\n innerHTML: $data.announcementContent\n }, null, 8, _hoisted_44)]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_UploadHistory, {\n show: $data.showHistory,\n onClose: _cache[24] || (_cache[24] = $event => $data.showHistory = false)\n }, null, 8, [\"show\"])]);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport UploadForm from '@/components/UploadForm.vue';\nimport Footer from '@/components/Footer.vue';\nimport ToggleDark from '@/components/ToggleDark.vue';\nimport Logo from '@/components/Logo.vue';\nimport UploadHistory from '@/components/UploadHistory.vue';\nimport backgroundManager from '@/mixins/backgroundManager';\nimport { ref } from 'vue';\nimport cookies from 'vue-cookies';\nimport { mapGetters } from 'vuex';\nexport default {\n name: 'UploadHome',\n mixins: [backgroundManager],\n data() {\n return {\n selectedUrlForm: ref(''),\n showUrlDialog: false,\n showCompressDialog: false,\n customerCompress: true,\n //上传前压缩\n compressQuality: 4,\n //压缩后大小\n compressBar: 5,\n //压缩阈值\n convertToWebp: false,\n //转换为WebP格式\n serverCompress: true,\n //服务器端压缩\n uploadChannel: '',\n //上传渠道\n uploadNameType: '',\n //上传文件命名方式\n customUrlPrefix: '',\n //自定义链接前缀\n useCustomUrl: 'false',\n //是否启用自定义链接格式\n autoRetry: true,\n //失败自动切换\n useDefaultWallPaper: false,\n isToolBarOpen: false,\n //是否打开工具栏\n uploadMethod: 'default',\n //上传方式\n uploadFolder: '',\n // 上传文件夹\n isFolderInputActive: false,\n showAnnouncementDialog: false,\n // 控制公告弹窗的显示\n announcementContent: '',\n // 公告内容\n showHistory: false,\n themeMode: 'auto' // 主题模式:light, dark, auto\n };\n },\n watch: {\n customerCompress(val) {\n this.updateCompressConfig('customerCompress', val);\n },\n compressQuality(val) {\n this.updateCompressConfig('compressQuality', val);\n },\n compressBar(val) {\n // 确保值在有效范围内\n if (val === null || val === undefined || val < 1) {\n this.compressBar = 1;\n return;\n }\n // 确保期望大小不超过压缩阈值\n if (this.compressQuality > val) {\n this.compressQuality = val;\n }\n this.updateCompressConfig('compressBar', val);\n },\n serverCompress(val) {\n this.updateCompressConfig('serverCompress', val);\n },\n convertToWebp(val) {\n this.updateCompressConfig('convertToWebp', val);\n },\n uploadChannel(val) {\n this.updateStoreUploadChannel(val);\n },\n uploadNameType(val) {\n this.updateStoreUploadNameType(val);\n },\n customUrlPrefix(val) {\n this.$store.commit('setCustomUrlSettings', {\n key: 'customUrlPrefix',\n value: val\n });\n },\n useCustomUrl(val) {\n this.$store.commit('setCustomUrlSettings', {\n key: 'useCustomUrl',\n value: val\n });\n },\n autoRetry(val) {\n this.$store.commit('setStoreAutoRetry', val);\n },\n uploadFolder(val) {\n // 验证上传文件夹路径的合法性\n if (this.validateUploadFolder(val)) {\n this.$store.commit('setStoreUploadFolder', val);\n } else {\n this.$nextTick(() => {\n this.uploadFolder = this.storeUploadFolder;\n });\n }\n }\n },\n computed: {\n ...mapGetters(['userConfig', 'uploadCopyUrlForm', 'compressConfig', 'storeUploadChannel', 'storeUploadNameType', 'customUrlSettings', 'storeAutoRetry', 'storeUploadMethod', 'storeUploadFolder']),\n ownerName() {\n return this.userConfig?.ownerName || 'Sanyue';\n },\n dialogWidth() {\n return window.innerWidth > 768 ? '50%' : '90%';\n },\n disableTooltip() {\n return window.innerWidth < 768;\n },\n urlPrefix() {\n // 全局自定义链接前缀\n return this.userConfig?.urlPrefix || `${window.location.protocol}//${window.location.host}/file/`;\n },\n announcementAvailable() {\n return !!this.userConfig?.announcement;\n }\n },\n mounted() {\n // 初始化背景图,启用自动创建元素\n this.initializeBackground('uploadBkImg', '.container', false, true);\n\n // 读取用户选择的链接格式\n this.selectedUrlForm = this.uploadCopyUrlForm || 'url';\n // 读取用户选择的压缩设置(优先用户设置,其次系统默认配置)\n this.customerCompress = this.compressConfig.customerCompress ?? this.parseBoolean(this.userConfig?.defaultCustomerCompress, true);\n this.compressQuality = this.compressConfig.compressQuality ?? this.parseNumber(this.userConfig?.defaultCompressQuality, 4);\n this.compressBar = this.compressConfig.compressBar ?? this.parseNumber(this.userConfig?.defaultCompressBar, 5);\n this.serverCompress = this.compressConfig.serverCompress ?? true;\n this.convertToWebp = this.compressConfig.convertToWebp ?? this.parseBoolean(this.userConfig?.defaultConvertToWebp, false);\n // 读取用户选择的上传渠道\n this.uploadChannel = this.storeUploadChannel || this.userConfig?.defaultUploadChannel || 'telegram';\n // 用户定义的失败自动切换\n this.autoRetry = this.storeAutoRetry;\n // 读取用户选择的上传文件命名方式\n this.uploadNameType = this.storeUploadNameType || this.userConfig?.defaultUploadNameType || 'default';\n // 读取用户自定义链接格式\n this.customUrlPrefix = this.customUrlSettings.customUrlPrefix;\n this.useCustomUrl = this.customUrlSettings.useCustomUrl;\n // 读取用户偏好的上传方式\n this.uploadMethod = this.storeUploadMethod;\n // 读取用户设置的上传文件夹\n this.uploadFolder = this.storeUploadFolder || this.userConfig?.defaultUploadFolder || '';\n\n // 从 Vuex store 读取主题模式状态\n const cusDarkMode = this.$store.getters.cusDarkMode;\n const useDarkMode = this.$store.getters.useDarkMode;\n if (!cusDarkMode) {\n this.themeMode = 'auto';\n } else if (useDarkMode) {\n this.themeMode = 'dark';\n } else {\n this.themeMode = 'light';\n }\n\n // 首次访问公告\n const visited = localStorage.getItem('visitedUploadHome');\n const announcement = this.userConfig?.announcement;\n if (!visited && announcement) {\n this.announcementContent = announcement;\n this.showAnnouncementDialog = true;\n localStorage.setItem('visitedUploadHome', 'true');\n }\n },\n components: {\n UploadForm,\n Footer,\n ToggleDark,\n Logo,\n UploadHistory\n },\n methods: {\n // 验证上传文件夹路径的合法性\n validateUploadFolder(path) {\n // 如果路径为空,返回true(允许空路径)\n if (!path || path.trim() === '') {\n return true;\n }\n\n // 检查路径是否以/开头\n if (!path.startsWith('/')) {\n this.$message.error('上传目录必须以 \"/\" 开头');\n return false;\n }\n\n // 检查路径是否包含非法字符\n const invalidChars = /[\\\\:\\*\\?\"'<>\\| \\(\\)\\[\\]\\{\\}#%\\^`~;@&=\\+\\$,]/;\n if (invalidChars.test(path)) {\n this.$message.error('上传目录包含非法字符,请使用合法的路径格式');\n return false;\n }\n\n // 检查路径是否包含连续的斜杠\n if (path.includes('//')) {\n this.$message.error('上传目录不能包含连续的斜杠');\n return false;\n }\n return true;\n },\n handleManage() {\n this.$router.push('/dashboard');\n },\n // 解析布尔值\n parseBoolean(value, defaultValue) {\n if (value === undefined || value === null) return defaultValue;\n if (typeof value === 'boolean') return value;\n if (typeof value === 'string') return value === 'true';\n return defaultValue;\n },\n // 解析数字\n parseNumber(value, defaultValue) {\n if (value === undefined || value === null) return defaultValue;\n const num = parseFloat(value);\n return isNaN(num) ? defaultValue : num;\n },\n openUrlDialog() {\n this.showUrlDialog = true;\n },\n handleLogout() {\n cookies.remove('authCode');\n this.$router.push('/login');\n this.$message.success('已退出登录');\n },\n changeUrlForm() {\n this.$store.commit('setUploadCopyUrlForm', this.selectedUrlForm);\n },\n openCompressDialog() {\n this.showCompressDialog = true;\n },\n updateCompressConfig(key, value) {\n this.$store.commit('setCompressConfig', {\n key,\n value\n });\n },\n updateStoreUploadChannel(value) {\n this.$store.commit('setStoreUploadChannel', value);\n },\n updateStoreUploadNameType(value) {\n this.$store.commit('setStoreUploadNameType', value);\n },\n handleOpenToolbar() {\n this.isToolBarOpen = !this.isToolBarOpen;\n // 等过渡动画结束,向active类添加pointer-events属性,使其可以点击\n setTimeout(() => {\n const buttons = document.querySelectorAll('.toolbar-button');\n buttons.forEach(button => {\n button.style.pointerEvents = this.isToolBarOpen ? 'auto' : 'none';\n });\n }, 300);\n },\n handleChangeUploadMethod() {\n this.uploadMethod = this.uploadMethod === 'default' ? 'paste' : 'default';\n this.$store.commit('setUploadMethod', this.uploadMethod);\n },\n handleMobileMenuCommand(command) {\n if (command === 'toggleTheme') {\n // 循环切换:auto -> light -> dark -> auto\n if (this.themeMode === 'auto') {\n // 切换到亮色\n this.themeMode = 'light';\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', false);\n } else if (this.themeMode === 'light') {\n // 切换到暗色\n this.themeMode = 'dark';\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', true);\n } else {\n // 切换到自动\n this.themeMode = 'auto';\n this.$store.commit('setCusDarkMode', false);\n }\n } else if (command === 'toggleUploadMethod') {\n this.handleChangeUploadMethod();\n } else if (command === 'showHistory') {\n this.showHistory = true;\n } else if (command === 'showAnnouncement') {\n this.handleShowAnnouncement();\n }\n },\n getThemeIcon() {\n // 显示下一个模式的图标\n if (this.themeMode === 'auto') return 'sun'; // auto -> light\n if (this.themeMode === 'light') return 'moon'; // light -> dark\n return 'adjust'; // dark -> auto\n },\n getThemeText() {\n // 显示下一个模式的文字\n if (this.themeMode === 'auto') return '浅色模式';\n if (this.themeMode === 'light') return '深色模式';\n return '自动模式';\n },\n handleShowAnnouncement() {\n const announcement = this.userConfig?.announcement;\n if (announcement) {\n this.announcementContent = announcement;\n this.showAnnouncementDialog = true;\n } else {\n this.$message.info('暂无公告');\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./UploadHome.vue?vue&type=template&id=316c27dc&scoped=true\"\nimport script from \"./UploadHome.vue?vue&type=script&lang=js\"\nexport * from \"./UploadHome.vue?vue&type=script&lang=js\"\n\nimport \"./UploadHome.vue?vue&type=style&index=0&id=316c27dc&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-316c27dc\"]])\n\nexport default __exports__","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.imageConversion=e():t.imageConversion=e()}(this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";var r;function o(t){return[\"image/png\",\"image/jpeg\",\"image/gif\"].some(e=>e===t)}n.r(e),n.d(e,\"canvastoDataURL\",(function(){return a})),n.d(e,\"canvastoFile\",(function(){return c})),n.d(e,\"dataURLtoFile\",(function(){return s})),n.d(e,\"dataURLtoImage\",(function(){return l})),n.d(e,\"downloadFile\",(function(){return d})),n.d(e,\"filetoDataURL\",(function(){return f})),n.d(e,\"imagetoCanvas\",(function(){return g})),n.d(e,\"urltoBlob\",(function(){return w})),n.d(e,\"urltoImage\",(function(){return m})),n.d(e,\"compress\",(function(){return p})),n.d(e,\"compressAccurately\",(function(){return b})),n.d(e,\"EImageType\",(function(){return r})),function(t){t.PNG=\"image/png\",t.JPEG=\"image/jpeg\",t.GIF=\"image/gif\"}(r||(r={}));var i=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function a(t,e=.92,n=r.JPEG){return i(this,void 0,void 0,(function*(){return o(n)||(n=r.JPEG),t.toDataURL(n,e)}))}function c(t,e=.92,n=r.JPEG){return new Promise(r=>t.toBlob(t=>r(t),n,e))}var u=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function s(t,e){return u(this,void 0,void 0,(function*(){const n=t.split(\",\");let r=n[0].match(/:(.*?);/)[1];const i=atob(n[1]);let a=i.length;const c=new Uint8Array(a);for(;a--;)c[a]=i.charCodeAt(a);return o(e)&&(r=e),new Blob([c],{type:r})}))}function l(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"dataURLtoImage(): dataURL is illegal\")),r.src=t})}function d(t,e){const n=document.createElement(\"a\");n.href=window.URL.createObjectURL(t),n.download=e||Date.now().toString(36),document.body.appendChild(n);const r=document.createEvent(\"MouseEvents\");r.initEvent(\"click\",!1,!1),n.dispatchEvent(r),document.body.removeChild(n)}function f(t){return new Promise(e=>{const n=new FileReader;n.onloadend=t=>e(t.target.result),n.readAsDataURL(t)})}var h=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function g(t,e={}){return h(this,void 0,void 0,(function*(){const n=Object.assign({},e),r=document.createElement(\"canvas\"),o=r.getContext(\"2d\");let i,a;for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Number(n[t]));if(n.scale){const e=n.scale>0&&n.scale<10?n.scale:1;a=t.width*e,i=t.height*e}else a=n.width||n.height*t.width/t.height||t.width,i=n.height||n.width*t.height/t.width||t.height;switch([5,6,7,8].some(t=>t===n.orientation)?(r.height=a,r.width=i):(r.height=i,r.width=a),n.orientation){case 3:o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 6:o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 8:o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;case 2:o.translate(r.width,0),o.scale(-1,1),o.drawImage(t,0,0,r.width,r.height);break;case 4:o.translate(r.width,0),o.scale(-1,1),o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 5:o.translate(r.width,0),o.scale(-1,1),o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 7:o.translate(r.width,0),o.scale(-1,1),o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;default:o.drawImage(t,0,0,r.width,r.height)}return r}))}function w(t){return fetch(t).then(t=>t.blob())}function m(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"urltoImage(): Image failed to load, please check the image URL\")),r.src=t})}var y=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function p(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compress(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({quality:e})),e.quality=Number(e.quality),Number.isNaN(e.quality))return t;const n=yield f(t);let i=n.split(\",\")[0].match(/:(.*?);/)[1],c=r.JPEG;o(e.type)&&(c=e.type,i=e.type);const u=yield l(n),d=yield g(u,Object.assign({},e)),h=yield a(d,e.quality,c),w=yield s(h,i);return w.size>t.size?t:w}))}function b(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compressAccurately(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({size:e})),e.size=Number(e.size),Number.isNaN(e.size))return t;if(1024*e.size>t.size)return t;e.accuracy=Number(e.accuracy),(!e.accuracy||e.accuracy<.8||e.accuracy>.99)&&(e.accuracy=.95);const n=e.size*(2-e.accuracy)*1024,i=1024*e.size,c=e.size*e.accuracy*1024,u=yield f(t);let d=u.split(\",\")[0].match(/:(.*?);/)[1],h=r.JPEG;o(e.type)&&(h=e.type,d=e.type);const w=yield l(u),m=yield g(w,Object.assign({},e));let y,p=.5;const b=[null,null];for(let t=1;t<=7;t++){y=yield a(m,p,h);const e=.75*y.length;if(7===t){(ne)&&(y=[y,...b].filter(t=>t).sort((t,e)=>Math.abs(.75*t.length-i)-Math.abs(.75*e.length-i))[0]);break}if(ne))break;b[0]=y,p+=Math.pow(.5,t+1)}}const v=yield s(y,d);return v.size>t.size?t:v}))}}])}));","module.exports = require(\"./build/conversion.js\");\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","key","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","_component_el_tooltip","show","historyList","length","content","placement","default","circle","onClick","toggleViewMode","icon","viewMode","_","type","clearHistory","$event","$emit","groupedHistory","group","date","items","item","index","time","isImage","name","src","url","loading","onError","args","handleImageError","isVideo","muted","size","copyLink","openLink","deleteItem","title","formatTime","props","Boolean","data","watch","val","this","loadHistory","computed","groups","forEach","Date","dateStr","getFullYear","String","getMonth","padStart","getDate","push","Object","keys","sort","a","b","map","mounted","savedMode","localStorage","getItem","methods","history","JSON","parse","e","console","error","setItem","$confirm","confirmButtonText","cancelButtonText","then","removeItem","$message","success","catch","filter","i","newHistory","stringify","fileName","imageExtensions","extension","split","pop","toLowerCase","includes","videoExtensions","timestamp","year","month","day","hours","getHours","minutes","getMinutes","seconds","getSeconds","navigator","clipboard","writeText","window","open","target","__exports__","ref","style","autoplay","playsinline","loop","_component_CameraFilled","_component_el_icon","_component_el_upload","_component_el_input","_component_el_radio_button","_component_el_radio_group","_component_el_card","_component_List","_component_Checked","_component_Failed","_component_el_text","_component_el_switch","_component_el_dropdown_item","_component_el_dropdown_menu","_component_el_dropdown","_component_el_progress","_component_Link","_component_Delete","_component_el_scrollbar","onMousemove","handleUploadCardMouseMove","onMouseleave","handleUploadCardMouseLeave","uploadMethod","uploading","fileList","drag","multiple","uploadFile","onSuccess","handleSuccess","handleError","beforeUpload","handleProgress","modelValue","pastedUrls","placeholder","rows","pasteCardMethodButtonSize","handleUploadPasteUrls","pasteUploadMethod","label","onScroll","handleScroll","listScrolled","uploadingCount","waitingCount","uploadSuccessCount","uploadErrorCount","disabled","disableTooltip","copyAll","dropdown","autoReUpload","onChange","handleAutoRetryChange","retryError","clearFileList","clearSuccessList","slice","reverse","file","span","href","truncated","truncateFilename","status","finalURL","readonly","selectAllText","urlSize","prepend","mdURL","htmlURL","ubbURL","percentage","progreess","handleCopy","handleRemove","selectedUrlForm","required","customerCompress","compressQuality","Number","compressBar","serverCompress","uploadChannel","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadFolder","convertToWebp","maxUploading","exceptionList","fileListLength","uploadCount","maxRetryCount","retryTimer","retryDelay","uploadQueue","activeUploads","maxConcurrentUploads","abortControllers","Map","handler","$nextTick","setTimeout","$refs","scrollContainer","setScrollTop","deep","srcID","rootUrl","immediate","$store","commit","innerWidth","location","protocol","host","document","addEventListener","handlePaste","storeAutoReUpload","beforeUnmount","removeEventListener","filename","maxLength","lastDotIndex","lastIndexOf","ext","substring","keepEnd","keepStart","find","uid","waitingItem","uploadingItem","fileItem","uploadSingleFile","HF_DIRECT_THRESHOLD","uploadToHuggingFaceDirect","DISCORD_CHUNK_THRESHOLD","uploadFileInChunks","CHUNK_THRESHOLD","processUploadQueue","nextFile","shift","onUploadComplete","Math","max","needServerCompress","abortController","AbortController","set","formData","FormData","append","log","sha256","computeSha256","err","axios","method","withAuthCode","signal","onUploadProgress","progressEvent","percentCompleted","round","loaded","total","onProgress","percent","res","code","response","finally","delete","CHUNK_SIZE","fileSize","totalChunks","ceil","precomputedSha256","initFormData","toString","initResponse","Error","message","uploadId","maxConcurrency","chunkProgress","Array","fill","nextChunkIndex","hasError","errorMsg","isCancelled","uploadChunk","async","start","chunkIndex","end","min","chunk","retryCount","maxRetries","totalPercent","reduce","warn","Promise","resolve","pool","currentIndex","all","duration","mergeFormData","closeAll","cleanupUploadResources","cleanupError","has","get","abort","timeout","replace","saveToHistory","newRecord","now","scheduleAutoRetry","reject","processedFile","canConvertToWebp","convertedFile","convertImageToWebp","toFixed","needCustomCompress","isLtLim","pushFileToQueue","fileUrl","URL","createObjectURL","newFile","File","myUploadCount","event","urls","join","controller","clear","tagName","clipboardData","uploadFromUrl","validUrls","trim","test","kind","getAsString","callback","mdUrl","htmlUrl","ubbUrl","evt","getAsFile","checkResult","text","urlPattern","post","responseType","headers","disposition","filenameRegex","filenameStarRegex","matches","exec","decodeURIComponent","pathname","blob","value","scrollTop","retryFailedFiles","files","clearTimeout","filesToRetry","aborted","sampleBytes","Uint8Array","arrayBuffer","fileSample","btoa","fromCharCode","uploadInfoRes","uploadInfo","alreadyExists","needsLfs","uploadAction","header","chunk_size","uploadToHuggingFaceMultipart","uploadRes","fetch","body","ok","commitRes","fullId","filePath","channelName","formattedResponse","completionUrl","chunkSize","parseInt","parts","completeParts","totalParts","part","DOMException","undefined","etag","partNumber","progress","completeResponse","oid","createSha256","offset","buffer","update","digest","K","Uint32Array","H","bufferLength","totalLength","rotr","x","n","processBlock","block","W","s0","s1","c","d","f","g","h","S1","ch","temp1","S0","maj","temp2","needed","toCopy","subarray","bitLength","view","DataView","setUint32","floor","hex","img","Image","canvas","createElement","ctx","getContext","onload","width","height","drawImage","toBlob","originalName","newName","webpFile","revokeObjectURL","onerror","glow","uploadCardGlow","rect","currentTarget","getBoundingClientRect","clientX","left","y","clientY","top","opacity","beforeDestroy","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_component_ToggleDark","_component_Logo","_component_UploadForm","_component_el_radio","_component_el_dialog","_component_el_slider","_component_el_input_number","_component_Footer","_component_UploadHistory","isFolderInputActive","announcementAvailable","onFocus","onBlur","handleChangeUploadMethod","showHistory","handleShowAnnouncement","trigger","onCommand","handleMobileMenuCommand","command","getThemeIcon","getThemeText","isToolBarOpen","handleOpenToolbar","openCompressDialog","openUrlDialog","handleManage","handleLogout","useConfigLink","ownerName","showUrlDialog","dialogWidth","changeUrlForm","showCompressDialog","step","precision","showAnnouncementDialog","center","footer","innerHTML","announcementContent","onClose","mixins","backgroundManager","useDefaultWallPaper","themeMode","updateCompressConfig","updateStoreUploadChannel","updateStoreUploadNameType","validateUploadFolder","storeUploadFolder","userConfig","announcement","initializeBackground","uploadCopyUrlForm","compressConfig","parseBoolean","defaultCustomerCompress","parseNumber","defaultCompressQuality","defaultCompressBar","defaultConvertToWebp","storeUploadChannel","defaultUploadChannel","storeAutoRetry","storeUploadNameType","defaultUploadNameType","customUrlSettings","storeUploadMethod","defaultUploadFolder","cusDarkMode","getters","useDarkMode","visited","components","UploadForm","Footer","ToggleDark","Logo","UploadHistory","path","startsWith","invalidChars","$router","defaultValue","num","parseFloat","isNaN","buttons","querySelectorAll","button","pointerEvents","info","t","module","exports","r","o","l","call","m","defineProperty","enumerable","Symbol","toStringTag","__esModule","create","bind","prototype","hasOwnProperty","p","s","some","w","PNG","JPEG","GIF","u","next","throw","done","apply","toDataURL","match","atob","charCodeAt","Blob","download","appendChild","createEvent","initEvent","dispatchEvent","removeChild","FileReader","onloadend","result","readAsDataURL","assign","scale","orientation","rotate","PI","translate","quality","accuracy","abs","pow","v"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/js/733.5ac461f0.js.map.gz b/js/733.5ac461f0.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..43ab208ae192534852837a45c677f0bb26263ee5 GIT binary patch literal 53629 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 F5J$UF?>rp#2Q*;5MS4yElr)2PkGghy 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.withAuthCode){const t=a().get("authCode");t&&(e.headers["authCode"]=t)}return e},e=>Promise.reject(e)),l.interceptors.response.use(e=>e,e=>(e.config?.withAuthCode&&401===e.response?.status&&(i.nk.error("认证失败,请重新登录!"),s.A.push("/login")),Promise.reject(e))),t.A=l},3354:function(e,t,o){o(8111),o(7588);var n=o(5130),r=o(3888),a=o(4068),s=(o(9436),o(372),o(8950)),i=o(2353),l=o(292),u=o(6768);function c(e,t,o,n,r,a){const s=(0,u.g2)("router-view");return(0,u.uX)(),(0,u.Wv)(s)}var d=o(8401),p=o(3785),m={computed:{...(0,d.L8)(["userConfig","useDarkMode"])},mounted(){this.$nextTick(()=>{this.initOverlayScrollbars()})},watch:{useDarkMode(){this.setSiteIcon()}},methods:{initOverlayScrollbars(){try{if(p.ae.valid(document.body))return;(0,p.ae)(document.body,{scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"scroll",autoHideDelay:600,dragScroll:!0,clickScroll:!0},overflow:{x:"hidden",y:"scroll"}}),console.log("OverlayScrollbars initialized successfully")}catch(e){console.error("Failed to initialize OverlayScrollbars:",e)}},setSiteIcon(){const e=document.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="mask-icon"]');e.forEach(e=>e.remove());const t=document.createElement("link"),o=document.createElement("link"),n=document.createElement("link");t.rel="icon",o.rel="apple-touch-icon",n.rel="mask-icon",this.useDarkMode?(t.href=this.userConfig?.siteIcon||"/logo-dark.png",o.href=this.userConfig?.siteIcon||"/logo-dark.png",n.href=this.userConfig?.siteIcon||"/logo-dark.png"):(t.href=this.userConfig?.siteIcon||"/logo.png",o.href=this.userConfig?.siteIcon||"/logo.png",n.href=this.userConfig?.siteIcon||"/logo.png"),document.head.appendChild(t),document.head.appendChild(o),document.head.appendChild(n)}}},f=o(1241);const h=(0,f.A)(m,[["render",c]]);var g=h,b=o(6915),k=o(5507),y=o(7477);o(1862),o(635);s.Yv.add(i.X7I);const C=(0,n.Ef)(g),v=(0,r.Zf)();C.component("font-awesome-icon",l.gc);for(const[M,E]of Object.entries(y))C.component(M,E);const A=()=>{const e=document.documentElement;let t;if(k.A.state.cusDarkMode&&null!==k.A.state.useDarkMode)t=k.A.state.useDarkMode;else{if(t=window.matchMedia("(prefers-color-scheme: dark)").matches,!t){const e=new Date,o=e.getHours();t=o>=22||o<6}k.A.commit("setUseDarkMode",t)}t?e.classList.add("dark"):e.classList.remove("dark")},U=e=>{const t=document.documentElement;e?t.classList.add("dark"):t.classList.remove("dark")},w=e=>{document.title=e?.siteTitle||"Sanyue ImgHub"},S=(e,t)=>{const o=document.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="mask-icon"]');o.forEach(e=>e.remove());const n=document.createElement("link"),r=document.createElement("link"),a=document.createElement("link");n.rel="icon",r.rel="apple-touch-icon",a.rel="mask-icon",e?(n.href=t?.siteIcon||"/logo-dark.png",r.href=t?.siteIcon||"/logo-dark.png",a.href=t?.siteIcon||"/logo-dark.png"):(n.href=t?.siteIcon||"/logo.png",r.href=t?.siteIcon||"/logo.png",a.href=t?.siteIcon||"/logo.png"),document.head.appendChild(n),document.head.appendChild(r),document.head.appendChild(a)};k.A.dispatch("fetchUserConfig").then(()=>{A(),w(k.A.getters.userConfig),S(k.A.state.useDarkMode,k.A.getters.userConfig),k.A.subscribe((e,t)=>{"setUseDarkMode"===e.type&&k.A.state.cusDarkMode&&(U(t.useDarkMode),S(t.useDarkMode,k.A.getters.userConfig)),"setCusDarkMode"!==e.type||e.payload||(A(),S(k.A.state.useDarkMode,k.A.getters.userConfig))}),C.use(k.A).use(b.A).use(a.A).mount("#app")}).catch(e=>{console.error("Failed to load user configuration:",e),C.use(k.A).use(b.A).use(a.A).use(v).mount("#app")})},5507:function(e,t,o){o(8111),o(1701);var n=o(8401),r=o(457),a=o(5131);t.A=(0,n.y$)({state:{userConfig:null,bingWallPapers:[],credentials:null,uploadMethod:"default",uploadCopyUrlForm:"",compressConfig:{customerCompress:void 0,compressQuality:void 0,compressBar:void 0,serverCompress:void 0,convertToWebp:void 0},storeUploadChannel:"",storeAutoRetry:!0,storeUploadNameType:"",uploadFolder:"",customUrlSettings:{useCustomUrl:"false",customUrlPrefix:""},adminUrlSettings:{useCustomUrl:"false",customUrlPrefix:""},autoReUpload:!0,useDarkMode:null,cusDarkMode:!1},getters:{userConfig:e=>e.userConfig,bingWallPapers:e=>e.bingWallPapers,credentials:e=>e.credentials,storeUploadMethod:e=>e.uploadMethod,uploadCopyUrlForm:e=>e.uploadCopyUrlForm,compressConfig:e=>e.compressConfig,storeUploadChannel:e=>e.storeUploadChannel,storeUploadNameType:e=>e.storeUploadNameType,customUrlSettings:e=>e.customUrlSettings,storeAutoRetry:e=>e.storeAutoRetry,adminUrlSettings:e=>e.adminUrlSettings,storeUploadFolder:e=>e.uploadFolder||localStorage.getItem("uploadFolder")||"",useDarkMode:e=>e.useDarkMode,cusDarkMode:e=>e.cusDarkMode,storeAutoReUpload:e=>e.autoReUpload},mutations:{setUserConfig(e,t){e.userConfig=t},setBingWallPapers(e,t){e.bingWallPapers=t},setCredentials(e,t){e.credentials=t},setUploadMethod(e,t){e.uploadMethod=t},setUploadCopyUrlForm(e,t){e.uploadCopyUrlForm=t},setCompressConfig(e,{key:t,value:o}){e.compressConfig[t]=o},setStoreUploadChannel(e,t){e.storeUploadChannel=t},setStoreUploadNameType(e,t){e.storeUploadNameType=t},setCustomUrlSettings(e,{key:t,value:o}){e.customUrlSettings[t]=o},setStoreAutoRetry(e,t){e.storeAutoRetry=t},setAdminUrlSettings(e,{key:t,value:o}){e.adminUrlSettings[t]=o},setUseDarkMode(e,t){e.useDarkMode=t},setCusDarkMode(e,t){e.cusDarkMode=t},setStoreUploadFolder(e,t){e.uploadFolder=t,localStorage.setItem("uploadFolder",t)},setStoreAutoReUpload(e,t){e.autoReUpload=t}},actions:{async fetchUserConfig({commit:e}){try{const t=await r.A.get("/api/userConfig");e("setUserConfig",t.data)}catch(t){console.log(t)}},async fetchBingWallPapers({commit:e}){try{const t=await r.A.get("/api/bing/wallpaper"),o=t.data.data,n=o.map(e=>({url:"https://www.bing.com"+e.url}));await Promise.all(n.map(e=>new Promise((t,o)=>{const n=new Image;n.onload=t,n.onerror=o,n.src=e.url}))),e("setBingWallPapers",n)}catch(t){console.log(t)}}},modules:{},plugins:[(0,a.A)()]})},6915:function(e,t,o){o(4979);var n=o(8512),r=o(1219),a=o(4570),s=o.n(a),i=o(5507),l=o(457);const u=(e,t,o)=>{const n=i.A.getters.credentials;if(null===n&&"adminLogin"!==e.name){const e=btoa("unset:unset");l.A.get("/api/manage/check",{headers:{Authorization:"Basic "+e},withCredentials:!0}).then(t=>{if(200!==t.status)throw new Error("认证失败!");i.A.commit("setCredentials",e),o()}).catch(e=>{r.nk.error("请先认证!"),o({name:"adminLogin"})})}else o()},c=(e,t,o)=>{let n=s().get("authCode");null===n&&"login"!==e.name?l.A.post("/api/login",{authCode:"unset"}).then(e=>{if(200!==e.status)throw new Error("认证失败!");s().set("authCode","unset","14d"),n="unset",o()}).catch(e=>{r.nk.error("请先认证!"),o({name:"login"})}):o()},d=[{path:"/",name:"home",component:()=>Promise.all([o.e(600),o.e(34)]).then(o.bind(o,5562)),beforeEnter:c},{path:"/login",name:"login",component:()=>Promise.all([o.e(600),o.e(100)]).then(o.bind(o,2560))},{path:"/dashboard",name:"dashboard",component:()=>Promise.all([o.e(239),o.e(327)]).then(o.bind(o,327)),beforeEnter:u},{path:"/customerConfig",name:"customerConfig",component:()=>Promise.all([o.e(239),o.e(419)]).then(o.bind(o,8419)),beforeEnter:u},{path:"/systemConfig",name:"systemConfig",component:()=>Promise.all([o.e(239),o.e(468)]).then(o.bind(o,7468)),beforeEnter:u},{path:"/adminLogin",name:"adminLogin",component:()=>Promise.all([o.e(600),o.e(214)]).then(o.bind(o,3950))},{path:"/blockimg",name:"blockimg",component:()=>o.e(917).then(o.bind(o,4917))},{path:"/whiteliston",name:"whiteliston",component:()=>o.e(845).then(o.bind(o,7226))},{path:"/browse/:dir*",name:"publicBrowse",component:()=>o.e(667).then(o.bind(o,9667))},{path:"/:pathMatch(.*)*",name:"notFound",component:()=>o.e(226).then(o.bind(o,8226))}],p=(0,n.aE)({history:(0,n.LA)("/"),routes:d});t.A=p}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.m=e,function(){var e=[];o.O=function(t,n,r,a){if(!n){var s=1/0;for(c=0;c=a)&&Object.keys(o.O).every(function(e){return o.O[e](n[l])})?n.splice(l--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[n,r,a]}}(),function(){o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,{a:t}),t}}(),function(){o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce(function(t,n){return o.f[n](e,t),t},[]))}}(),function(){o.u=function(e){return"js/"+e+"."+{34:"71e48dd0",100:"d39a82be",214:"8d11f725",226:"f737e39a",239:"3f72b765",327:"bd854084",419:"2f159947",468:"a64c90fe",600:"3d796c41",667:"bbd60d43",845:"1bb9a557",917:"833cbf86"}[e]+".js"}}(),function(){o.miniCssF=function(e){return"css/"+e+"."+{34:"6bd21305",100:"3adc87e0",214:"3adc87e0",226:"6548e7b4",239:"d71f401a",327:"b20bfa43",419:"1d235d6e",468:"9d986aec",667:"a3c83e09",845:"6b45e8e3",917:"8529ad1e"}[e]+".css"}}(),function(){o.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="sanyue_imghub:";o.l=function(n,r,a,s){if(e[n])e[n].push(r);else{var i,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c{if(e.withAuthCode){const t=a().get("authCode");t&&(e.headers["authCode"]=t)}return e},e=>Promise.reject(e)),l.interceptors.response.use(e=>e,e=>(e.config?.withAuthCode&&401===e.response?.status&&(i.nk.error("认证失败,请重新登录!"),s.A.push("/login")),Promise.reject(e))),t.A=l},3354:function(e,t,o){o(8111),o(7588);var n=o(5130),r=o(3888),a=o(4068),s=(o(9436),o(372),o(8950)),i=o(2353),l=o(292),u=o(6768);function c(e,t,o,n,r,a){const s=(0,u.g2)("router-view");return(0,u.uX)(),(0,u.Wv)(s)}var d=o(8401),p=o(3785),f={computed:{...(0,d.L8)(["userConfig","useDarkMode"])},mounted(){this.$nextTick(()=>{this.initOverlayScrollbars()})},watch:{useDarkMode(){this.setSiteIcon()}},methods:{initOverlayScrollbars(){try{if(p.ae.valid(document.body))return;(0,p.ae)(document.body,{scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"scroll",autoHideDelay:600,dragScroll:!0,clickScroll:!0},overflow:{x:"hidden",y:"scroll"}}),console.log("OverlayScrollbars initialized successfully")}catch(e){console.error("Failed to initialize OverlayScrollbars:",e)}},setSiteIcon(){const e=document.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="mask-icon"]');e.forEach(e=>e.remove());const t=document.createElement("link"),o=document.createElement("link"),n=document.createElement("link");t.rel="icon",o.rel="apple-touch-icon",n.rel="mask-icon",this.useDarkMode?(t.href=this.userConfig?.siteIcon||"/logo-dark.png",o.href=this.userConfig?.siteIcon||"/logo-dark.png",n.href=this.userConfig?.siteIcon||"/logo-dark.png"):(t.href=this.userConfig?.siteIcon||"/logo.png",o.href=this.userConfig?.siteIcon||"/logo.png",n.href=this.userConfig?.siteIcon||"/logo.png"),document.head.appendChild(t),document.head.appendChild(o),document.head.appendChild(n)}}},m=o(1241);const h=(0,m.A)(f,[["render",c]]);var g=h,b=o(6915),k=o(5507),y=o(7477);o(1862),o(635);s.Yv.add(i.X7I);const C=(0,n.Ef)(g),v=(0,r.Zf)();C.component("font-awesome-icon",l.gc);for(const[M,E]of Object.entries(y))C.component(M,E);const A=()=>{const e=document.documentElement;let t;if(k.A.state.cusDarkMode&&null!==k.A.state.useDarkMode)t=k.A.state.useDarkMode;else{if(t=window.matchMedia("(prefers-color-scheme: dark)").matches,!t){const e=new Date,o=e.getHours();t=o>=22||o<6}k.A.commit("setUseDarkMode",t)}t?e.classList.add("dark"):e.classList.remove("dark")},U=e=>{const t=document.documentElement;e?t.classList.add("dark"):t.classList.remove("dark")},w=e=>{document.title=e?.siteTitle||"Sanyue ImgHub"},S=(e,t)=>{const o=document.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="mask-icon"]');o.forEach(e=>e.remove());const n=document.createElement("link"),r=document.createElement("link"),a=document.createElement("link");n.rel="icon",r.rel="apple-touch-icon",a.rel="mask-icon",e?(n.href=t?.siteIcon||"/logo-dark.png",r.href=t?.siteIcon||"/logo-dark.png",a.href=t?.siteIcon||"/logo-dark.png"):(n.href=t?.siteIcon||"/logo.png",r.href=t?.siteIcon||"/logo.png",a.href=t?.siteIcon||"/logo.png"),document.head.appendChild(n),document.head.appendChild(r),document.head.appendChild(a)};k.A.dispatch("fetchUserConfig").then(()=>{A(),w(k.A.getters.userConfig),S(k.A.state.useDarkMode,k.A.getters.userConfig),k.A.subscribe((e,t)=>{"setUseDarkMode"===e.type&&k.A.state.cusDarkMode&&(U(t.useDarkMode),S(t.useDarkMode,k.A.getters.userConfig)),"setCusDarkMode"!==e.type||e.payload||(A(),S(k.A.state.useDarkMode,k.A.getters.userConfig))}),C.use(k.A).use(b.A).use(a.A).mount("#app")}).catch(e=>{console.error("Failed to load user configuration:",e),C.use(k.A).use(b.A).use(a.A).use(v).mount("#app")})},5507:function(e,t,o){o(8111),o(1701);var n=o(8401),r=o(457),a=o(5131);t.A=(0,n.y$)({state:{userConfig:null,bingWallPapers:[],credentials:null,uploadMethod:"default",uploadCopyUrlForm:"",compressConfig:{customerCompress:void 0,compressQuality:void 0,compressBar:void 0,serverCompress:void 0,convertToWebp:void 0},storeUploadChannel:"",storeAutoRetry:!0,storeUploadNameType:"",uploadFolder:"",customUrlSettings:{useCustomUrl:"false",customUrlPrefix:""},adminUrlSettings:{useCustomUrl:"false",customUrlPrefix:""},autoReUpload:!0,useDarkMode:null,cusDarkMode:!1},getters:{userConfig:e=>e.userConfig,bingWallPapers:e=>e.bingWallPapers,credentials:e=>e.credentials,storeUploadMethod:e=>e.uploadMethod,uploadCopyUrlForm:e=>e.uploadCopyUrlForm,compressConfig:e=>e.compressConfig,storeUploadChannel:e=>e.storeUploadChannel,storeUploadNameType:e=>e.storeUploadNameType,customUrlSettings:e=>e.customUrlSettings,storeAutoRetry:e=>e.storeAutoRetry,adminUrlSettings:e=>e.adminUrlSettings,storeUploadFolder:e=>e.uploadFolder||localStorage.getItem("uploadFolder")||"",useDarkMode:e=>e.useDarkMode,cusDarkMode:e=>e.cusDarkMode,storeAutoReUpload:e=>e.autoReUpload},mutations:{setUserConfig(e,t){e.userConfig=t},setBingWallPapers(e,t){e.bingWallPapers=t},setCredentials(e,t){e.credentials=t},setUploadMethod(e,t){e.uploadMethod=t},setUploadCopyUrlForm(e,t){e.uploadCopyUrlForm=t},setCompressConfig(e,{key:t,value:o}){e.compressConfig[t]=o},setStoreUploadChannel(e,t){e.storeUploadChannel=t},setStoreUploadNameType(e,t){e.storeUploadNameType=t},setCustomUrlSettings(e,{key:t,value:o}){e.customUrlSettings[t]=o},setStoreAutoRetry(e,t){e.storeAutoRetry=t},setAdminUrlSettings(e,{key:t,value:o}){e.adminUrlSettings[t]=o},setUseDarkMode(e,t){e.useDarkMode=t},setCusDarkMode(e,t){e.cusDarkMode=t},setStoreUploadFolder(e,t){e.uploadFolder=t,localStorage.setItem("uploadFolder",t)},setStoreAutoReUpload(e,t){e.autoReUpload=t}},actions:{async fetchUserConfig({commit:e}){try{const t=await r.A.get("/api/userConfig");e("setUserConfig",t.data)}catch(t){console.log(t)}},async fetchBingWallPapers({commit:e}){try{const t=await r.A.get("/api/bing/wallpaper"),o=t.data.data,n=o.map(e=>({url:"https://www.bing.com"+e.url}));await Promise.all(n.map(e=>new Promise((t,o)=>{const n=new Image;n.onload=t,n.onerror=o,n.src=e.url}))),e("setBingWallPapers",n)}catch(t){console.log(t)}}},modules:{},plugins:[(0,a.A)()]})},6915:function(e,t,o){o(4979);var n=o(8512),r=o(1219),a=o(4570),s=o.n(a),i=o(5507),l=o(457);const u=(e,t,o)=>{const n=i.A.getters.credentials;if(null===n&&"adminLogin"!==e.name){const e=btoa("unset:unset");l.A.get("/api/manage/check",{headers:{Authorization:"Basic "+e},withCredentials:!0}).then(t=>{if(200!==t.status)throw new Error("认证失败!");i.A.commit("setCredentials",e),o()}).catch(e=>{r.nk.error("请先认证!"),o({name:"adminLogin"})})}else o()},c=(e,t,o)=>{let n=s().get("authCode");null===n&&"login"!==e.name?l.A.post("/api/login",{authCode:"unset"}).then(e=>{if(200!==e.status)throw new Error("认证失败!");s().set("authCode","unset","14d"),n="unset",o()}).catch(e=>{r.nk.error("请先认证!"),o({name:"login"})}):o()},d=[{path:"/",name:"home",component:()=>Promise.all([o.e(600),o.e(733)]).then(o.bind(o,189)),beforeEnter:c},{path:"/login",name:"login",component:()=>Promise.all([o.e(600),o.e(100)]).then(o.bind(o,2560))},{path:"/dashboard",name:"dashboard",component:()=>Promise.all([o.e(239),o.e(327)]).then(o.bind(o,327)),beforeEnter:u},{path:"/customerConfig",name:"customerConfig",component:()=>Promise.all([o.e(239),o.e(419)]).then(o.bind(o,8419)),beforeEnter:u},{path:"/systemConfig",name:"systemConfig",component:()=>Promise.all([o.e(239),o.e(468)]).then(o.bind(o,7468)),beforeEnter:u},{path:"/adminLogin",name:"adminLogin",component:()=>Promise.all([o.e(600),o.e(214)]).then(o.bind(o,3950))},{path:"/blockimg",name:"blockimg",component:()=>o.e(917).then(o.bind(o,4917))},{path:"/whiteliston",name:"whiteliston",component:()=>o.e(845).then(o.bind(o,7226))},{path:"/browse/:dir*",name:"publicBrowse",component:()=>o.e(667).then(o.bind(o,9667))},{path:"/:pathMatch(.*)*",name:"notFound",component:()=>o.e(226).then(o.bind(o,8226))}],p=(0,n.aE)({history:(0,n.LA)("/"),routes:d});t.A=p}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.m=e,function(){var e=[];o.O=function(t,n,r,a){if(!n){var s=1/0;for(c=0;c=a)&&Object.keys(o.O).every(function(e){return o.O[e](n[l])})?n.splice(l--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[n,r,a]}}(),function(){o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,{a:t}),t}}(),function(){o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce(function(t,n){return o.f[n](e,t),t},[]))}}(),function(){o.u=function(e){return"js/"+e+"."+{100:"d39a82be",214:"8d11f725",226:"f737e39a",239:"3f72b765",327:"bd854084",419:"2f159947",468:"a64c90fe",600:"3d796c41",667:"bbd60d43",733:"5ac461f0",845:"1bb9a557",917:"833cbf86"}[e]+".js"}}(),function(){o.miniCssF=function(e){return"css/"+e+"."+{100:"3adc87e0",214:"3adc87e0",226:"6548e7b4",239:"d71f401a",327:"b20bfa43",419:"1d235d6e",468:"9d986aec",667:"a3c83e09",733:"e9cbf0d4",845:"6b45e8e3",917:"8529ad1e"}[e]+".css"}}(),function(){o.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="sanyue_imghub:";o.l=function(n,r,a,s){if(e[n])e[n].push(r);else{var i,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),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 literal 0 HcmV?d00001 diff --git a/js/app.610acc76.js.map b/js/app.1c78aab3.js.map similarity index 71% rename from js/app.610acc76.js.map rename to js/app.1c78aab3.js.map index 121abc0..8e17f7e 100644 --- a/js/app.610acc76.js.map +++ b/js/app.1c78aab3.js.map @@ -1 +1 @@ -{"version":3,"file":"js/app.610acc76.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/utils/axios.js","webpack://sanyue_imghub/./src/App.vue?0365","webpack://sanyue_imghub/./src/App.vue","webpack://sanyue_imghub/./src/App.vue?a135","webpack://sanyue_imghub/./src/main.js","webpack://sanyue_imghub/./src/store/index.js","webpack://sanyue_imghub/./src/router/index.js","webpack://sanyue_imghub/webpack/bootstrap","webpack://sanyue_imghub/webpack/runtime/chunk loaded","webpack://sanyue_imghub/webpack/runtime/compat get default export","webpack://sanyue_imghub/webpack/runtime/define property getters","webpack://sanyue_imghub/webpack/runtime/ensure chunk","webpack://sanyue_imghub/webpack/runtime/get javascript chunk filename","webpack://sanyue_imghub/webpack/runtime/get mini-css chunk filename","webpack://sanyue_imghub/webpack/runtime/global","webpack://sanyue_imghub/webpack/runtime/hasOwnProperty shorthand","webpack://sanyue_imghub/webpack/runtime/load script","webpack://sanyue_imghub/webpack/runtime/make namespace object","webpack://sanyue_imghub/webpack/runtime/publicPath","webpack://sanyue_imghub/webpack/runtime/css loading","webpack://sanyue_imghub/webpack/runtime/jsonp chunk loading","webpack://sanyue_imghub/webpack/startup"],"sourcesContent":["import axios from 'axios';\r\nimport cookies from 'vue-cookies';\r\nimport router from '@/router/index';\r\nimport { ElMessage } from 'element-plus'\r\n\r\n// 创建axios实例\r\nconst instance = axios.create({\r\n baseURL: process.env.NODE_ENV === 'production' ? '/' : '/api',\r\n});\r\n\r\n// 请求拦截器\r\ninstance.interceptors.request.use(\r\n (config) => {\r\n // 如果配置中标记了withAuthCode,则添加authCode到header\r\n if (config.withAuthCode) {\r\n const authCode = cookies.get('authCode');\r\n if (authCode) {\r\n config.headers['authCode'] = authCode;\r\n }\r\n }\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n// 响应拦截器\r\ninstance.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n // 如果请求配置了withAuthCode且返回401,则跳转到登录页\r\n if (error.config?.withAuthCode && error.response?.status === 401) {\r\n ElMessage.error('认证失败,请重新登录!');\r\n router.push('/login');\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default instance;\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\";\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_view = _resolveComponent(\"router-view\");\n return _openBlock(), _createBlock(_component_router_view);\n}","import \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport { mapGetters } from 'vuex';\nimport { OverlayScrollbars } from 'overlayscrollbars';\nexport default {\n computed: {\n ...mapGetters(['userConfig', 'useDarkMode'])\n },\n mounted() {\n // 初始化 OverlayScrollbars 悬浮滚动条\n this.$nextTick(() => {\n this.initOverlayScrollbars();\n });\n },\n watch: {\n useDarkMode() {\n this.setSiteIcon();\n }\n },\n methods: {\n initOverlayScrollbars() {\n try {\n // 检查是否已经初始化\n if (OverlayScrollbars.valid(document.body)) {\n return;\n }\n\n // 应用到 body 实现全局悬浮滚动条\n OverlayScrollbars(document.body, {\n scrollbars: {\n theme: 'os-theme-dark',\n visibility: 'auto',\n autoHide: 'scroll',\n autoHideDelay: 600,\n dragScroll: true,\n clickScroll: true\n },\n overflow: {\n x: 'hidden',\n y: 'scroll'\n }\n });\n console.log('OverlayScrollbars initialized successfully');\n } catch (error) {\n console.error('Failed to initialize OverlayScrollbars:', error);\n }\n },\n setSiteIcon() {\n // 同时更改 icon apple-touch-icon 和 mask-icon\n const existingIcons = document.querySelectorAll('link[rel=\"icon\"], link[rel=\"apple-touch-icon\"], link[rel=\"mask-icon\"]');\n existingIcons.forEach(icon => icon.remove());\n const iconLink = document.createElement('link');\n const appleIconLink = document.createElement('link');\n const maskIconLink = document.createElement('link');\n iconLink.rel = 'icon';\n appleIconLink.rel = 'apple-touch-icon';\n maskIconLink.rel = 'mask-icon';\n if (this.useDarkMode) {\n iconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n appleIconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n maskIconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n } else {\n iconLink.href = this.userConfig?.siteIcon || '/logo.png';\n appleIconLink.href = this.userConfig?.siteIcon || '/logo.png';\n maskIconLink.href = this.userConfig?.siteIcon || '/logo.png';\n }\n document.head.appendChild(iconLink);\n document.head.appendChild(appleIconLink);\n document.head.appendChild(maskIconLink);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./App.vue?vue&type=template&id=7d6c298a\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=7d6c298a&lang=css\"\nimport \"./App.vue?vue&type=style&index=1&id=7d6c298a&lang=css\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport { createHead } from '@vueuse/head'; // 导入 createHead\r\nimport ElementPlus from 'element-plus'\r\nimport 'element-plus/es/components/message/style/css'\r\nimport 'element-plus/es/components/message-box/style/css'\r\n\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'; // 引入所有 solid 图标\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\r\n\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\n\r\nimport * as ElementPlusIconsVue from '@element-plus/icons-vue'\r\nimport 'element-plus/theme-chalk/dark/css-vars.css'\r\nimport './styles/global.css'\r\n\r\n// OverlayScrollbars 悬浮滚动条\r\nimport 'overlayscrollbars/overlayscrollbars.css'\r\n\r\n\r\nlibrary.add(fas);\r\n\r\nconst app = createApp(App);\r\nconst head = createHead(); // 创建 head 对象\r\n\r\napp.component('font-awesome-icon', FontAwesomeIcon);\r\nfor (const [key, component] of Object.entries(ElementPlusIconsVue)) {\r\n app.component(key, component)\r\n}\r\n\r\n// 根据 useDarkMode 的值添加或移除 dark 类\r\nconst initDarkModeClass = () => {\r\n const htmlElement = document.documentElement;\r\n let isDarkMode;\r\n\r\n // 判断用户是否是自定义模式\r\n if (store.state.cusDarkMode && store.state.useDarkMode !== null) {\r\n // 用户手动设置了暗色模式\r\n isDarkMode = store.state.useDarkMode;\r\n } else {\r\n // 跟随系统模式或时间\r\n isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n if (!isDarkMode) {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n isDarkMode = hour >= 22 || hour < 6;\r\n }\r\n // 更新 useDarkMode 的值\r\n store.commit('setUseDarkMode', isDarkMode);\r\n }\r\n\r\n if (isDarkMode) {\r\n htmlElement.classList.add('dark');\r\n } else {\r\n htmlElement.classList.remove('dark');\r\n }\r\n};\r\n\r\nconst applyDarkModeClass = (isDarkMode) => {\r\n const htmlElement = document.documentElement;\r\n if (isDarkMode) {\r\n htmlElement.classList.add('dark');\r\n } else {\r\n htmlElement.classList.remove('dark');\r\n }\r\n};\r\n\r\n// 预设网站标题的函数\r\nconst presetSiteTitle = (userConfig) => {\r\n document.title = userConfig?.siteTitle || 'Sanyue ImgHub';\r\n};\r\n\r\n// 预设网站图标的函数\r\nconst presetSiteIcon = (isDarkMode, userConfig) => {\r\n // 同时更改 icon apple-touch-icon 和 mask-icon\r\n const existingIcons = document.querySelectorAll('link[rel=\"icon\"], link[rel=\"apple-touch-icon\"], link[rel=\"mask-icon\"]');\r\n existingIcons.forEach(icon => icon.remove());\r\n\r\n const iconLink = document.createElement('link');\r\n const appleIconLink = document.createElement('link');\r\n const maskIconLink = document.createElement('link');\r\n iconLink.rel = 'icon';\r\n appleIconLink.rel = 'apple-touch-icon';\r\n maskIconLink.rel = 'mask-icon';\r\n\r\n if (isDarkMode) {\r\n iconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n appleIconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n maskIconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n } else {\r\n iconLink.href = userConfig?.siteIcon || '/logo.png';\r\n appleIconLink.href = userConfig?.siteIcon || '/logo.png';\r\n maskIconLink.href = userConfig?.siteIcon || '/logo.png';\r\n }\r\n\r\n document.head.appendChild(iconLink);\r\n document.head.appendChild(appleIconLink);\r\n document.head.appendChild(maskIconLink);\r\n};\r\n\r\nstore.dispatch('fetchUserConfig').then(() => {\r\n // 初始化时应用 dark 模式\r\n initDarkModeClass();\r\n\r\n // 预设网站标题和图标\r\n presetSiteTitle(store.getters.userConfig);\r\n presetSiteIcon(store.state.useDarkMode, store.getters.userConfig);\r\n\r\n // 监听 useDarkMode 和 cusDarkMode 的变化\r\n store.subscribe((mutation, state) => {\r\n if (mutation.type === 'setUseDarkMode' && store.state.cusDarkMode) {\r\n applyDarkModeClass(state.useDarkMode);\r\n // 同时更新网站图标\r\n presetSiteIcon(state.useDarkMode, store.getters.userConfig);\r\n }\r\n\r\n // 监听 cusDarkMode 变化,当设置为 false 时重新初始化\r\n if (mutation.type === 'setCusDarkMode' && !mutation.payload) {\r\n // 切换到跟随系统模式,重新初始化\r\n initDarkModeClass();\r\n // 同时更新网站图标\r\n presetSiteIcon(store.state.useDarkMode, store.getters.userConfig);\r\n }\r\n });\r\n\r\n app.use(store).use(router).use(ElementPlus).mount('#app');\r\n}).catch(error => {\r\n console.error('Failed to load user configuration:', error);\r\n app.use(store).use(router).use(ElementPlus).use(head).mount('#app');\r\n})\r\n","import { createStore } from 'vuex'\r\nimport axios from '@/utils/axios';\r\nimport createPersistedState from 'vuex-persistedstate';\r\n\r\nexport default createStore({\r\n state: {\r\n userConfig: null,\r\n bingWallPapers: [],\r\n credentials: null,\r\n uploadMethod: 'default',\r\n uploadCopyUrlForm: '',\r\n compressConfig: {\r\n customerCompress: undefined,\r\n compressQuality: undefined,\r\n compressBar: undefined,\r\n serverCompress: undefined,\r\n convertToWebp: undefined,\r\n },\r\n storeUploadChannel: '',\r\n storeAutoRetry: true,\r\n storeUploadNameType: '',\r\n uploadFolder: '',\r\n customUrlSettings: {\r\n useCustomUrl: 'false',\r\n customUrlPrefix: '',\r\n },\r\n adminUrlSettings: {\r\n useCustomUrl: 'false',\r\n customUrlPrefix: '',\r\n },\r\n autoReUpload: true,\r\n // 深色模式\r\n useDarkMode: null,\r\n cusDarkMode: false,\r\n },\r\n getters: {\r\n userConfig: state => state.userConfig,\r\n bingWallPapers: state => state.bingWallPapers,\r\n credentials: state => state.credentials,\r\n storeUploadMethod: state => state.uploadMethod,\r\n uploadCopyUrlForm: state => state.uploadCopyUrlForm,\r\n compressConfig: state => state.compressConfig,\r\n storeUploadChannel: state => state.storeUploadChannel,\r\n storeUploadNameType: state => state.storeUploadNameType,\r\n customUrlSettings: state => state.customUrlSettings,\r\n storeAutoRetry: state => state.storeAutoRetry,\r\n adminUrlSettings: state => state.adminUrlSettings,\r\n storeUploadFolder: (state) => {\r\n return state.uploadFolder || localStorage.getItem('uploadFolder') || ''\r\n },\r\n useDarkMode: state => state.useDarkMode,\r\n cusDarkMode: state => state.cusDarkMode,\r\n storeAutoReUpload: state => state.autoReUpload,\r\n },\r\n mutations: {\r\n setUserConfig(state, userConfig) {\r\n state.userConfig = userConfig;\r\n },\r\n setBingWallPapers(state, bingWallPapers) {\r\n state.bingWallPapers = bingWallPapers;\r\n },\r\n setCredentials(state, credentials) {\r\n state.credentials = credentials;\r\n },\r\n setUploadMethod(state, uploadMethod) {\r\n state.uploadMethod = uploadMethod;\r\n },\r\n setUploadCopyUrlForm(state, uploadCopyUrlForm) {\r\n state.uploadCopyUrlForm = uploadCopyUrlForm;\r\n },\r\n setCompressConfig(state, { key, value }) {\r\n state.compressConfig[key] = value;\r\n },\r\n setStoreUploadChannel(state, uploadChannel) {\r\n state.storeUploadChannel = uploadChannel;\r\n },\r\n setStoreUploadNameType(state, storeUploadNameType) {\r\n state.storeUploadNameType = storeUploadNameType;\r\n },\r\n setCustomUrlSettings(state, { key, value }) {\r\n state.customUrlSettings[key] = value;\r\n },\r\n setStoreAutoRetry(state, storeAutoRetry) {\r\n state.storeAutoRetry = storeAutoRetry;\r\n },\r\n setAdminUrlSettings(state, { key, value }) {\r\n state.adminUrlSettings[key] = value;\r\n },\r\n setUseDarkMode(state, useDarkMode) {\r\n state.useDarkMode = useDarkMode;\r\n },\r\n setCusDarkMode(state, cusDarkMode) {\r\n state.cusDarkMode = cusDarkMode;\r\n },\r\n setStoreUploadFolder(state, folder) {\r\n state.uploadFolder = folder\r\n localStorage.setItem('uploadFolder', folder)\r\n },\r\n setStoreAutoReUpload(state, autoReUpload) {\r\n state.autoReUpload = autoReUpload;\r\n }\r\n },\r\n actions: {\r\n async fetchUserConfig({ commit }) {\r\n try {\r\n const response = await axios.get('/api/userConfig');\r\n commit('setUserConfig', response.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n async fetchBingWallPapers({ commit }) {\r\n try {\r\n const response = await axios.get('/api/bing/wallpaper');\r\n const wallpapers = response.data.data;\r\n const bingWallPapers = wallpapers.map(wallpaper => {\r\n return {\r\n url: 'https://www.bing.com' + wallpaper.url,\r\n };\r\n }\r\n );\r\n\r\n //预加载图片,阻塞直到图片加载完成\r\n await Promise.all(bingWallPapers.map(wallpaper => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onload = resolve;\r\n img.onerror = reject;\r\n img.src = wallpaper.url;\r\n });\r\n }));\r\n commit('setBingWallPapers', bingWallPapers);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n },\r\n modules: {\r\n },\r\n plugins: [createPersistedState()]\r\n})\r\n","import { createRouter, createWebHistory } from 'vue-router'\r\nimport { ElMessage } from 'element-plus'\r\nimport cookies from 'vue-cookies'\r\nimport store from '../store'\r\nimport axios from '@/utils/axios'\r\n\r\n// 通用的管理员认证守卫\r\nconst adminAuthGuard = (to, from, next) => {\r\n // 从store中获取凭据\r\n const credentials = store.getters.credentials\r\n if (credentials === null && to.name !== 'adminLogin') {\r\n // 尝试未设置密码的情况\r\n const credentials = btoa('unset:unset')\r\n axios.get('/api/manage/check', {\r\n headers: {\r\n 'Authorization': 'Basic ' + credentials\r\n },\r\n withCredentials: true\r\n }).then(res => {\r\n if (res.status !== 200) {\r\n throw new Error('认证失败!')\r\n }\r\n store.commit('setCredentials', credentials)\r\n next()\r\n }).catch(err => {\r\n ElMessage.error('请先认证!')\r\n next({ name: 'adminLogin' })\r\n })\r\n } else {\r\n next()\r\n }\r\n}\r\n\r\n// 通用的用户认证守卫\r\nconst userAuthGuard = (to, from, next) => {\r\n let authCode = cookies.get('authCode');\r\n if (authCode === null && to.name !== 'login') {\r\n // 尝试未设置密码的情况\r\n axios.post('/api/login', {\r\n authCode: 'unset'\r\n }).then(res => {\r\n if (res.status !== 200) {\r\n throw new Error('认证失败!')\r\n }\r\n cookies.set('authCode', 'unset', '14d')\r\n authCode = 'unset'\r\n next()\r\n }).catch(err => {\r\n ElMessage.error('请先认证!')\r\n next({ name: 'login' })\r\n })\r\n } else {\r\n next()\r\n }\r\n}\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n name: 'home',\r\n component: () => import('../views/UploadHome.vue'),\r\n beforeEnter: userAuthGuard\r\n },\r\n {\r\n path: '/login',\r\n name: 'login',\r\n component: () => import('../views/Login.vue')\r\n },\r\n {\r\n path: '/dashboard',\r\n name: 'dashboard',\r\n component: () => import('../views/AdminDashBoard.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/customerConfig',\r\n name: 'customerConfig',\r\n component: () => import('../views/CustomerConfig.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/systemConfig',\r\n name: 'systemConfig',\r\n component: () => import('../views/SystemConfig.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/adminLogin',\r\n name: 'adminLogin',\r\n component: () => import('../views/AdminLogin.vue'),\r\n },\r\n {\r\n path: '/blockimg',\r\n name: 'blockimg',\r\n component: () => import('../views/BlockImage.vue'),\r\n },\r\n {\r\n path: '/whiteliston',\r\n name: 'whiteliston',\r\n component: () => import('../views/WhiteListOn.vue'),\r\n },\r\n {\r\n path: '/browse/:dir*',\r\n name: 'publicBrowse',\r\n component: () => import('../views/PublicBrowse.vue'),\r\n },\r\n {\r\n path: '/:pathMatch(.*)*',\r\n name: 'notFound',\r\n component: () => import('../views/NotFound.vue'),\r\n },\r\n]\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes\r\n})\r\n\r\nexport default router\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"34\":\"71e48dd0\",\"100\":\"d39a82be\",\"214\":\"8d11f725\",\"226\":\"f737e39a\",\"239\":\"3f72b765\",\"327\":\"bd854084\",\"419\":\"2f159947\",\"468\":\"a64c90fe\",\"600\":\"3d796c41\",\"667\":\"bbd60d43\",\"845\":\"1bb9a557\",\"917\":\"833cbf86\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"34\":\"6bd21305\",\"100\":\"3adc87e0\",\"214\":\"3adc87e0\",\"226\":\"6548e7b4\",\"239\":\"d71f401a\",\"327\":\"b20bfa43\",\"419\":\"1d235d6e\",\"468\":\"9d986aec\",\"667\":\"a3c83e09\",\"845\":\"6b45e8e3\",\"917\":\"8529ad1e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"sanyue_imghub:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"34\":1,\"100\":1,\"214\":1,\"226\":1,\"239\":1,\"327\":1,\"419\":1,\"468\":1,\"667\":1,\"845\":1,\"917\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksanyue_imghub\"] = self[\"webpackChunksanyue_imghub\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(3354); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["instance","axios","create","baseURL","interceptors","request","use","config","withAuthCode","authCode","cookies","headers","error","Promise","reject","response","status","ElMessage","router","push","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","computed","mounted","this","$nextTick","initOverlayScrollbars","watch","useDarkMode","setSiteIcon","methods","valid","document","body","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","overflow","x","y","console","log","existingIcons","querySelectorAll","forEach","icon","remove","iconLink","createElement","appleIconLink","maskIconLink","rel","href","userConfig","siteIcon","head","appendChild","__exports__","library","add","fas","app","createApp","App","createHead","component","FontAwesomeIcon","key","Object","entries","ElementPlusIconsVue","initDarkModeClass","htmlElement","documentElement","isDarkMode","store","state","cusDarkMode","window","matchMedia","matches","now","Date","hour","getHours","commit","classList","applyDarkModeClass","presetSiteTitle","title","siteTitle","presetSiteIcon","dispatch","then","getters","subscribe","mutation","type","payload","ElementPlus","mount","catch","createStore","bingWallPapers","credentials","uploadMethod","uploadCopyUrlForm","compressConfig","customerCompress","undefined","compressQuality","compressBar","serverCompress","convertToWebp","storeUploadChannel","storeAutoRetry","storeUploadNameType","uploadFolder","customUrlSettings","useCustomUrl","customUrlPrefix","adminUrlSettings","autoReUpload","storeUploadMethod","storeUploadFolder","localStorage","getItem","storeAutoReUpload","mutations","setUserConfig","setBingWallPapers","setCredentials","setUploadMethod","setUploadCopyUrlForm","setCompressConfig","value","setStoreUploadChannel","uploadChannel","setStoreUploadNameType","setCustomUrlSettings","setStoreAutoRetry","setAdminUrlSettings","setUseDarkMode","setCusDarkMode","setStoreUploadFolder","folder","setItem","setStoreAutoReUpload","actions","fetchUserConfig","get","data","fetchBingWallPapers","wallpapers","map","wallpaper","url","all","resolve","img","Image","onload","onerror","src","modules","plugins","createPersistedState","adminAuthGuard","to","from","next","name","btoa","withCredentials","res","Error","err","userAuthGuard","post","routes","path","beforeEnter","createRouter","history","createWebHistory","process","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","nc","setAttribute","onScriptComplete","prev","event","clearTimeout","timeout","doneFns","parentNode","removeChild","setTimeout","bind","target","Symbol","toStringTag","p","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","code","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","id","chunkLoadingGlobal","self","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.1c78aab3.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/utils/axios.js","webpack://sanyue_imghub/./src/App.vue?0365","webpack://sanyue_imghub/./src/App.vue","webpack://sanyue_imghub/./src/App.vue?a135","webpack://sanyue_imghub/./src/main.js","webpack://sanyue_imghub/./src/store/index.js","webpack://sanyue_imghub/./src/router/index.js","webpack://sanyue_imghub/webpack/bootstrap","webpack://sanyue_imghub/webpack/runtime/chunk loaded","webpack://sanyue_imghub/webpack/runtime/compat get default export","webpack://sanyue_imghub/webpack/runtime/define property getters","webpack://sanyue_imghub/webpack/runtime/ensure chunk","webpack://sanyue_imghub/webpack/runtime/get javascript chunk filename","webpack://sanyue_imghub/webpack/runtime/get mini-css chunk filename","webpack://sanyue_imghub/webpack/runtime/global","webpack://sanyue_imghub/webpack/runtime/hasOwnProperty shorthand","webpack://sanyue_imghub/webpack/runtime/load script","webpack://sanyue_imghub/webpack/runtime/make namespace object","webpack://sanyue_imghub/webpack/runtime/publicPath","webpack://sanyue_imghub/webpack/runtime/css loading","webpack://sanyue_imghub/webpack/runtime/jsonp chunk loading","webpack://sanyue_imghub/webpack/startup"],"sourcesContent":["import axios from 'axios';\r\nimport cookies from 'vue-cookies';\r\nimport router from '@/router/index';\r\nimport { ElMessage } from 'element-plus'\r\n\r\n// 创建axios实例\r\nconst instance = axios.create({\r\n baseURL: process.env.NODE_ENV === 'production' ? '/' : '/api',\r\n});\r\n\r\n// 请求拦截器\r\ninstance.interceptors.request.use(\r\n (config) => {\r\n // 如果配置中标记了withAuthCode,则添加authCode到header\r\n if (config.withAuthCode) {\r\n const authCode = cookies.get('authCode');\r\n if (authCode) {\r\n config.headers['authCode'] = authCode;\r\n }\r\n }\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n// 响应拦截器\r\ninstance.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n // 如果请求配置了withAuthCode且返回401,则跳转到登录页\r\n if (error.config?.withAuthCode && error.response?.status === 401) {\r\n ElMessage.error('认证失败,请重新登录!');\r\n router.push('/login');\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default instance;\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\";\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_view = _resolveComponent(\"router-view\");\n return _openBlock(), _createBlock(_component_router_view);\n}","import \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport { mapGetters } from 'vuex';\nimport { OverlayScrollbars } from 'overlayscrollbars';\nexport default {\n computed: {\n ...mapGetters(['userConfig', 'useDarkMode'])\n },\n mounted() {\n // 初始化 OverlayScrollbars 悬浮滚动条\n this.$nextTick(() => {\n this.initOverlayScrollbars();\n });\n },\n watch: {\n useDarkMode() {\n this.setSiteIcon();\n }\n },\n methods: {\n initOverlayScrollbars() {\n try {\n // 检查是否已经初始化\n if (OverlayScrollbars.valid(document.body)) {\n return;\n }\n\n // 应用到 body 实现全局悬浮滚动条\n OverlayScrollbars(document.body, {\n scrollbars: {\n theme: 'os-theme-dark',\n visibility: 'auto',\n autoHide: 'scroll',\n autoHideDelay: 600,\n dragScroll: true,\n clickScroll: true\n },\n overflow: {\n x: 'hidden',\n y: 'scroll'\n }\n });\n console.log('OverlayScrollbars initialized successfully');\n } catch (error) {\n console.error('Failed to initialize OverlayScrollbars:', error);\n }\n },\n setSiteIcon() {\n // 同时更改 icon apple-touch-icon 和 mask-icon\n const existingIcons = document.querySelectorAll('link[rel=\"icon\"], link[rel=\"apple-touch-icon\"], link[rel=\"mask-icon\"]');\n existingIcons.forEach(icon => icon.remove());\n const iconLink = document.createElement('link');\n const appleIconLink = document.createElement('link');\n const maskIconLink = document.createElement('link');\n iconLink.rel = 'icon';\n appleIconLink.rel = 'apple-touch-icon';\n maskIconLink.rel = 'mask-icon';\n if (this.useDarkMode) {\n iconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n appleIconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n maskIconLink.href = this.userConfig?.siteIcon || '/logo-dark.png';\n } else {\n iconLink.href = this.userConfig?.siteIcon || '/logo.png';\n appleIconLink.href = this.userConfig?.siteIcon || '/logo.png';\n maskIconLink.href = this.userConfig?.siteIcon || '/logo.png';\n }\n document.head.appendChild(iconLink);\n document.head.appendChild(appleIconLink);\n document.head.appendChild(maskIconLink);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./App.vue?vue&type=template&id=7d6c298a\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=7d6c298a&lang=css\"\nimport \"./App.vue?vue&type=style&index=1&id=7d6c298a&lang=css\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport { createHead } from '@vueuse/head'; // 导入 createHead\r\nimport ElementPlus from 'element-plus'\r\nimport 'element-plus/es/components/message/style/css'\r\nimport 'element-plus/es/components/message-box/style/css'\r\n\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'; // 引入所有 solid 图标\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\r\n\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\n\r\nimport * as ElementPlusIconsVue from '@element-plus/icons-vue'\r\nimport 'element-plus/theme-chalk/dark/css-vars.css'\r\nimport './styles/global.css'\r\n\r\n// OverlayScrollbars 悬浮滚动条\r\nimport 'overlayscrollbars/overlayscrollbars.css'\r\n\r\n\r\nlibrary.add(fas);\r\n\r\nconst app = createApp(App);\r\nconst head = createHead(); // 创建 head 对象\r\n\r\napp.component('font-awesome-icon', FontAwesomeIcon);\r\nfor (const [key, component] of Object.entries(ElementPlusIconsVue)) {\r\n app.component(key, component)\r\n}\r\n\r\n// 根据 useDarkMode 的值添加或移除 dark 类\r\nconst initDarkModeClass = () => {\r\n const htmlElement = document.documentElement;\r\n let isDarkMode;\r\n\r\n // 判断用户是否是自定义模式\r\n if (store.state.cusDarkMode && store.state.useDarkMode !== null) {\r\n // 用户手动设置了暗色模式\r\n isDarkMode = store.state.useDarkMode;\r\n } else {\r\n // 跟随系统模式或时间\r\n isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n if (!isDarkMode) {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n isDarkMode = hour >= 22 || hour < 6;\r\n }\r\n // 更新 useDarkMode 的值\r\n store.commit('setUseDarkMode', isDarkMode);\r\n }\r\n\r\n if (isDarkMode) {\r\n htmlElement.classList.add('dark');\r\n } else {\r\n htmlElement.classList.remove('dark');\r\n }\r\n};\r\n\r\nconst applyDarkModeClass = (isDarkMode) => {\r\n const htmlElement = document.documentElement;\r\n if (isDarkMode) {\r\n htmlElement.classList.add('dark');\r\n } else {\r\n htmlElement.classList.remove('dark');\r\n }\r\n};\r\n\r\n// 预设网站标题的函数\r\nconst presetSiteTitle = (userConfig) => {\r\n document.title = userConfig?.siteTitle || 'Sanyue ImgHub';\r\n};\r\n\r\n// 预设网站图标的函数\r\nconst presetSiteIcon = (isDarkMode, userConfig) => {\r\n // 同时更改 icon apple-touch-icon 和 mask-icon\r\n const existingIcons = document.querySelectorAll('link[rel=\"icon\"], link[rel=\"apple-touch-icon\"], link[rel=\"mask-icon\"]');\r\n existingIcons.forEach(icon => icon.remove());\r\n\r\n const iconLink = document.createElement('link');\r\n const appleIconLink = document.createElement('link');\r\n const maskIconLink = document.createElement('link');\r\n iconLink.rel = 'icon';\r\n appleIconLink.rel = 'apple-touch-icon';\r\n maskIconLink.rel = 'mask-icon';\r\n\r\n if (isDarkMode) {\r\n iconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n appleIconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n maskIconLink.href = userConfig?.siteIcon || '/logo-dark.png';\r\n } else {\r\n iconLink.href = userConfig?.siteIcon || '/logo.png';\r\n appleIconLink.href = userConfig?.siteIcon || '/logo.png';\r\n maskIconLink.href = userConfig?.siteIcon || '/logo.png';\r\n }\r\n\r\n document.head.appendChild(iconLink);\r\n document.head.appendChild(appleIconLink);\r\n document.head.appendChild(maskIconLink);\r\n};\r\n\r\nstore.dispatch('fetchUserConfig').then(() => {\r\n // 初始化时应用 dark 模式\r\n initDarkModeClass();\r\n\r\n // 预设网站标题和图标\r\n presetSiteTitle(store.getters.userConfig);\r\n presetSiteIcon(store.state.useDarkMode, store.getters.userConfig);\r\n\r\n // 监听 useDarkMode 和 cusDarkMode 的变化\r\n store.subscribe((mutation, state) => {\r\n if (mutation.type === 'setUseDarkMode' && store.state.cusDarkMode) {\r\n applyDarkModeClass(state.useDarkMode);\r\n // 同时更新网站图标\r\n presetSiteIcon(state.useDarkMode, store.getters.userConfig);\r\n }\r\n\r\n // 监听 cusDarkMode 变化,当设置为 false 时重新初始化\r\n if (mutation.type === 'setCusDarkMode' && !mutation.payload) {\r\n // 切换到跟随系统模式,重新初始化\r\n initDarkModeClass();\r\n // 同时更新网站图标\r\n presetSiteIcon(store.state.useDarkMode, store.getters.userConfig);\r\n }\r\n });\r\n\r\n app.use(store).use(router).use(ElementPlus).mount('#app');\r\n}).catch(error => {\r\n console.error('Failed to load user configuration:', error);\r\n app.use(store).use(router).use(ElementPlus).use(head).mount('#app');\r\n})\r\n","import { createStore } from 'vuex'\r\nimport axios from '@/utils/axios';\r\nimport createPersistedState from 'vuex-persistedstate';\r\n\r\nexport default createStore({\r\n state: {\r\n userConfig: null,\r\n bingWallPapers: [],\r\n credentials: null,\r\n uploadMethod: 'default',\r\n uploadCopyUrlForm: '',\r\n compressConfig: {\r\n customerCompress: undefined,\r\n compressQuality: undefined,\r\n compressBar: undefined,\r\n serverCompress: undefined,\r\n convertToWebp: undefined,\r\n },\r\n storeUploadChannel: '',\r\n storeAutoRetry: true,\r\n storeUploadNameType: '',\r\n uploadFolder: '',\r\n customUrlSettings: {\r\n useCustomUrl: 'false',\r\n customUrlPrefix: '',\r\n },\r\n adminUrlSettings: {\r\n useCustomUrl: 'false',\r\n customUrlPrefix: '',\r\n },\r\n autoReUpload: true,\r\n // 深色模式\r\n useDarkMode: null,\r\n cusDarkMode: false,\r\n },\r\n getters: {\r\n userConfig: state => state.userConfig,\r\n bingWallPapers: state => state.bingWallPapers,\r\n credentials: state => state.credentials,\r\n storeUploadMethod: state => state.uploadMethod,\r\n uploadCopyUrlForm: state => state.uploadCopyUrlForm,\r\n compressConfig: state => state.compressConfig,\r\n storeUploadChannel: state => state.storeUploadChannel,\r\n storeUploadNameType: state => state.storeUploadNameType,\r\n customUrlSettings: state => state.customUrlSettings,\r\n storeAutoRetry: state => state.storeAutoRetry,\r\n adminUrlSettings: state => state.adminUrlSettings,\r\n storeUploadFolder: (state) => {\r\n return state.uploadFolder || localStorage.getItem('uploadFolder') || ''\r\n },\r\n useDarkMode: state => state.useDarkMode,\r\n cusDarkMode: state => state.cusDarkMode,\r\n storeAutoReUpload: state => state.autoReUpload,\r\n },\r\n mutations: {\r\n setUserConfig(state, userConfig) {\r\n state.userConfig = userConfig;\r\n },\r\n setBingWallPapers(state, bingWallPapers) {\r\n state.bingWallPapers = bingWallPapers;\r\n },\r\n setCredentials(state, credentials) {\r\n state.credentials = credentials;\r\n },\r\n setUploadMethod(state, uploadMethod) {\r\n state.uploadMethod = uploadMethod;\r\n },\r\n setUploadCopyUrlForm(state, uploadCopyUrlForm) {\r\n state.uploadCopyUrlForm = uploadCopyUrlForm;\r\n },\r\n setCompressConfig(state, { key, value }) {\r\n state.compressConfig[key] = value;\r\n },\r\n setStoreUploadChannel(state, uploadChannel) {\r\n state.storeUploadChannel = uploadChannel;\r\n },\r\n setStoreUploadNameType(state, storeUploadNameType) {\r\n state.storeUploadNameType = storeUploadNameType;\r\n },\r\n setCustomUrlSettings(state, { key, value }) {\r\n state.customUrlSettings[key] = value;\r\n },\r\n setStoreAutoRetry(state, storeAutoRetry) {\r\n state.storeAutoRetry = storeAutoRetry;\r\n },\r\n setAdminUrlSettings(state, { key, value }) {\r\n state.adminUrlSettings[key] = value;\r\n },\r\n setUseDarkMode(state, useDarkMode) {\r\n state.useDarkMode = useDarkMode;\r\n },\r\n setCusDarkMode(state, cusDarkMode) {\r\n state.cusDarkMode = cusDarkMode;\r\n },\r\n setStoreUploadFolder(state, folder) {\r\n state.uploadFolder = folder\r\n localStorage.setItem('uploadFolder', folder)\r\n },\r\n setStoreAutoReUpload(state, autoReUpload) {\r\n state.autoReUpload = autoReUpload;\r\n }\r\n },\r\n actions: {\r\n async fetchUserConfig({ commit }) {\r\n try {\r\n const response = await axios.get('/api/userConfig');\r\n commit('setUserConfig', response.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n async fetchBingWallPapers({ commit }) {\r\n try {\r\n const response = await axios.get('/api/bing/wallpaper');\r\n const wallpapers = response.data.data;\r\n const bingWallPapers = wallpapers.map(wallpaper => {\r\n return {\r\n url: 'https://www.bing.com' + wallpaper.url,\r\n };\r\n }\r\n );\r\n\r\n //预加载图片,阻塞直到图片加载完成\r\n await Promise.all(bingWallPapers.map(wallpaper => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onload = resolve;\r\n img.onerror = reject;\r\n img.src = wallpaper.url;\r\n });\r\n }));\r\n commit('setBingWallPapers', bingWallPapers);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n },\r\n modules: {\r\n },\r\n plugins: [createPersistedState()]\r\n})\r\n","import { createRouter, createWebHistory } from 'vue-router'\r\nimport { ElMessage } from 'element-plus'\r\nimport cookies from 'vue-cookies'\r\nimport store from '../store'\r\nimport axios from '@/utils/axios'\r\n\r\n// 通用的管理员认证守卫\r\nconst adminAuthGuard = (to, from, next) => {\r\n // 从store中获取凭据\r\n const credentials = store.getters.credentials\r\n if (credentials === null && to.name !== 'adminLogin') {\r\n // 尝试未设置密码的情况\r\n const credentials = btoa('unset:unset')\r\n axios.get('/api/manage/check', {\r\n headers: {\r\n 'Authorization': 'Basic ' + credentials\r\n },\r\n withCredentials: true\r\n }).then(res => {\r\n if (res.status !== 200) {\r\n throw new Error('认证失败!')\r\n }\r\n store.commit('setCredentials', credentials)\r\n next()\r\n }).catch(err => {\r\n ElMessage.error('请先认证!')\r\n next({ name: 'adminLogin' })\r\n })\r\n } else {\r\n next()\r\n }\r\n}\r\n\r\n// 通用的用户认证守卫\r\nconst userAuthGuard = (to, from, next) => {\r\n let authCode = cookies.get('authCode');\r\n if (authCode === null && to.name !== 'login') {\r\n // 尝试未设置密码的情况\r\n axios.post('/api/login', {\r\n authCode: 'unset'\r\n }).then(res => {\r\n if (res.status !== 200) {\r\n throw new Error('认证失败!')\r\n }\r\n cookies.set('authCode', 'unset', '14d')\r\n authCode = 'unset'\r\n next()\r\n }).catch(err => {\r\n ElMessage.error('请先认证!')\r\n next({ name: 'login' })\r\n })\r\n } else {\r\n next()\r\n }\r\n}\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n name: 'home',\r\n component: () => import('../views/UploadHome.vue'),\r\n beforeEnter: userAuthGuard\r\n },\r\n {\r\n path: '/login',\r\n name: 'login',\r\n component: () => import('../views/Login.vue')\r\n },\r\n {\r\n path: '/dashboard',\r\n name: 'dashboard',\r\n component: () => import('../views/AdminDashBoard.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/customerConfig',\r\n name: 'customerConfig',\r\n component: () => import('../views/CustomerConfig.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/systemConfig',\r\n name: 'systemConfig',\r\n component: () => import('../views/SystemConfig.vue'),\r\n beforeEnter: adminAuthGuard\r\n },\r\n {\r\n path: '/adminLogin',\r\n name: 'adminLogin',\r\n component: () => import('../views/AdminLogin.vue'),\r\n },\r\n {\r\n path: '/blockimg',\r\n name: 'blockimg',\r\n component: () => import('../views/BlockImage.vue'),\r\n },\r\n {\r\n path: '/whiteliston',\r\n name: 'whiteliston',\r\n component: () => import('../views/WhiteListOn.vue'),\r\n },\r\n {\r\n path: '/browse/:dir*',\r\n name: 'publicBrowse',\r\n component: () => import('../views/PublicBrowse.vue'),\r\n },\r\n {\r\n path: '/:pathMatch(.*)*',\r\n name: 'notFound',\r\n component: () => import('../views/NotFound.vue'),\r\n },\r\n]\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes\r\n})\r\n\r\nexport default router\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"100\":\"d39a82be\",\"214\":\"8d11f725\",\"226\":\"f737e39a\",\"239\":\"3f72b765\",\"327\":\"bd854084\",\"419\":\"2f159947\",\"468\":\"a64c90fe\",\"600\":\"3d796c41\",\"667\":\"bbd60d43\",\"733\":\"5ac461f0\",\"845\":\"1bb9a557\",\"917\":\"833cbf86\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"100\":\"3adc87e0\",\"214\":\"3adc87e0\",\"226\":\"6548e7b4\",\"239\":\"d71f401a\",\"327\":\"b20bfa43\",\"419\":\"1d235d6e\",\"468\":\"9d986aec\",\"667\":\"a3c83e09\",\"733\":\"e9cbf0d4\",\"845\":\"6b45e8e3\",\"917\":\"8529ad1e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"sanyue_imghub:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"100\":1,\"214\":1,\"226\":1,\"239\":1,\"327\":1,\"419\":1,\"468\":1,\"667\":1,\"733\":1,\"845\":1,\"917\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksanyue_imghub\"] = self[\"webpackChunksanyue_imghub\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(3354); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["instance","axios","create","baseURL","interceptors","request","use","config","withAuthCode","authCode","cookies","headers","error","Promise","reject","response","status","ElMessage","router","push","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","computed","mounted","this","$nextTick","initOverlayScrollbars","watch","useDarkMode","setSiteIcon","methods","valid","document","body","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","overflow","x","y","console","log","existingIcons","querySelectorAll","forEach","icon","remove","iconLink","createElement","appleIconLink","maskIconLink","rel","href","userConfig","siteIcon","head","appendChild","__exports__","library","add","fas","app","createApp","App","createHead","component","FontAwesomeIcon","key","Object","entries","ElementPlusIconsVue","initDarkModeClass","htmlElement","documentElement","isDarkMode","store","state","cusDarkMode","window","matchMedia","matches","now","Date","hour","getHours","commit","classList","applyDarkModeClass","presetSiteTitle","title","siteTitle","presetSiteIcon","dispatch","then","getters","subscribe","mutation","type","payload","ElementPlus","mount","catch","createStore","bingWallPapers","credentials","uploadMethod","uploadCopyUrlForm","compressConfig","customerCompress","undefined","compressQuality","compressBar","serverCompress","convertToWebp","storeUploadChannel","storeAutoRetry","storeUploadNameType","uploadFolder","customUrlSettings","useCustomUrl","customUrlPrefix","adminUrlSettings","autoReUpload","storeUploadMethod","storeUploadFolder","localStorage","getItem","storeAutoReUpload","mutations","setUserConfig","setBingWallPapers","setCredentials","setUploadMethod","setUploadCopyUrlForm","setCompressConfig","value","setStoreUploadChannel","uploadChannel","setStoreUploadNameType","setCustomUrlSettings","setStoreAutoRetry","setAdminUrlSettings","setUseDarkMode","setCusDarkMode","setStoreUploadFolder","folder","setItem","setStoreAutoReUpload","actions","fetchUserConfig","get","data","fetchBingWallPapers","wallpapers","map","wallpaper","url","all","resolve","img","Image","onload","onerror","src","modules","plugins","createPersistedState","adminAuthGuard","to","from","next","name","btoa","withCredentials","res","Error","err","userAuthGuard","post","routes","path","beforeEnter","createRouter","history","createWebHistory","process","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","nc","setAttribute","onScriptComplete","prev","event","clearTimeout","timeout","doneFns","parentNode","removeChild","setTimeout","bind","target","Symbol","toStringTag","p","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","code","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","id","chunkLoadingGlobal","self","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.1c78aab3.js.map.gz b/js/app.1c78aab3.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..ee956baca1416c1847f03f2819dda1dbfed59124 GIT binary patch literal 15305 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 literal 0 HcmV?d00001 diff --git a/js/app.610acc76.js.gz b/js/app.610acc76.js.gz deleted file mode 100644 index 7bcf29bec95e455e7775fa522341627f4be371bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4919 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 diff --git a/js/app.610acc76.js.map.gz b/js/app.610acc76.js.map.gz deleted file mode 100644 index dcffccf7f80625f214411158e1a57f7ee6c664fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15306 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