From c1175a87b1fbfbb08eca74c1fadb0d9be9311db7 Mon Sep 17 00:00:00 2001 From: MarSeventh <1193267292@qq.com> Date: Fri, 16 Jan 2026 23:11:40 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=E4=BC=98=E5=8C=96=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E9=A1=B5=E6=98=BE=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/{282.ad42e268.css => 689.69f7094e.css} | 2 +- ...82.ad42e268.css.gz => 689.69f7094e.css.gz} | Bin 12768 -> 12775 bytes css/app.da44fa8b.css | 1 + css/app.da44fa8b.css.gz | Bin 0 -> 3789 bytes css/app.ee9a7bf2.css | 1 - css/app.ee9a7bf2.css.gz | Bin 3750 -> 0 bytes fonts/Righteous.207a66c3.woff2 | Bin 0 -> 12608 bytes index.html | 2 +- index.html.gz | Bin 512 -> 510 bytes js/282.326e16ce.js | 2 -- js/282.326e16ce.js.gz | Bin 21748 -> 0 bytes js/282.326e16ce.js.map | 1 - js/282.326e16ce.js.map.gz | Bin 56791 -> 0 bytes js/689.ed6ed975.js | 2 ++ js/689.ed6ed975.js.gz | Bin 0 -> 21786 bytes js/689.ed6ed975.js.map | 1 + js/689.ed6ed975.js.map.gz | Bin 0 -> 56667 bytes js/app.9461872b.js.gz | Bin 4998 -> 0 bytes js/app.9461872b.js.map | 1 - js/app.9461872b.js.map.gz | Bin 15465 -> 0 bytes js/{app.9461872b.js => app.ff74a37e.js} | 4 ++-- js/app.ff74a37e.js.gz | Bin 0 -> 4997 bytes js/app.ff74a37e.js.map | 1 + js/app.ff74a37e.js.map.gz | Bin 0 -> 15438 bytes 24 files changed, 9 insertions(+), 9 deletions(-) rename css/{282.ad42e268.css => 689.69f7094e.css} (92%) rename css/{282.ad42e268.css.gz => 689.69f7094e.css.gz} (70%) create mode 100644 css/app.da44fa8b.css create mode 100644 css/app.da44fa8b.css.gz delete mode 100644 css/app.ee9a7bf2.css delete mode 100644 css/app.ee9a7bf2.css.gz create mode 100644 fonts/Righteous.207a66c3.woff2 delete mode 100644 js/282.326e16ce.js delete mode 100644 js/282.326e16ce.js.gz delete mode 100644 js/282.326e16ce.js.map delete mode 100644 js/282.326e16ce.js.map.gz create mode 100644 js/689.ed6ed975.js create mode 100644 js/689.ed6ed975.js.gz create mode 100644 js/689.ed6ed975.js.map create mode 100644 js/689.ed6ed975.js.map.gz delete mode 100644 js/app.9461872b.js.gz delete mode 100644 js/app.9461872b.js.map delete mode 100644 js/app.9461872b.js.map.gz rename js/{app.9461872b.js => app.ff74a37e.js} (53%) create mode 100644 js/app.ff74a37e.js.gz create mode 100644 js/app.ff74a37e.js.map create mode 100644 js/app.ff74a37e.js.map.gz diff --git a/css/282.ad42e268.css b/css/689.69f7094e.css similarity index 92% rename from css/282.ad42e268.css rename to css/689.69f7094e.css index 2cee892..a52b071 100644 --- a/css/282.ad42e268.css +++ b/css/689.69f7094e.css @@ -1 +1 @@ -.history-container[data-v-12200cbe]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;flex-direction:column;backdrop-filter:blur(20px);background:var(--admin-container-bg-color);color:var(--upload-text-color);clip-path:circle(0 at calc(100% - 200px) 50px);opacity:0;transition:clip-path .6s cubic-bezier(.4,0,.2,1),opacity .3s ease}.history-container.active[data-v-12200cbe]{clip-path:circle(150% at calc(100% - 200px) 50px);opacity:1}.history-header[data-v-12200cbe]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.header-left[data-v-12200cbe]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-12200cbe]{margin:0;font-size:24px;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;font-weight:700}.record-count[data-v-12200cbe]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-12200cbe]{display:flex;gap:10px}.header-right .el-button[data-v-12200cbe]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none;color:var(--theme-toggle-color);transition:all .3s ease}.header-right .el-button[data-v-12200cbe]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.header-right .el-button.el-button--danger[data-v-12200cbe]{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.history-content[data-v-12200cbe]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-12200cbe]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-12200cbe]{background:var(--toolbar-button-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--toolbar-button-shadow);transition:transform .3s ease,box-shadow .3s ease;border:none;backdrop-filter:blur(10px)}.grid-item[data-v-12200cbe]:hover{transform:translateY(-5px);box-shadow:var(--toolbar-button-shadow-hover)}.grid-preview[data-v-12200cbe]{height:160px;position:relative;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-preview img[data-v-12200cbe],.grid-preview video[data-v-12200cbe]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-12200cbe]{font-size:48px;color:var(--theme-toggle-color);opacity:.5}.grid-overlay[data-v-12200cbe]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-12200cbe]{opacity:1}.grid-actions[data-v-12200cbe]{display:flex;gap:15px}.grid-actions .el-button[data-v-12200cbe]{backdrop-filter:blur(10px)}.grid-info[data-v-12200cbe]{padding:12px}.file-name[data-v-12200cbe]{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-12200cbe]{font-size:12px;color:var(--upload-text-color);opacity:.6}.list-view[data-v-12200cbe]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-12200cbe]{display:flex;align-items:center;padding:12px 15px;background:var(--toolbar-button-bg-color);border-radius:12px;box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none;transition:all .3s ease}.list-item[data-v-12200cbe]:hover{transform:translateX(5px);box-shadow:var(--toolbar-button-shadow-hover)}.list-preview[data-v-12200cbe]{width:50px;height:50px;border-radius:8px;overflow:hidden;margin-right:15px;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.list-preview img[data-v-12200cbe],.list-preview video[data-v-12200cbe]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-12200cbe]{font-size:24px;color:var(--theme-toggle-color);opacity:.5}.list-info[data-v-12200cbe]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-12200cbe]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.6}.list-meta[data-v-12200cbe]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-12200cbe]{display:flex;gap:8px}.list-actions .el-button[data-v-12200cbe]{backdrop-filter:blur(10px)}.empty-state[data-v-12200cbe]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.5}.empty-icon[data-v-12200cbe]{font-size:64px;margin-bottom:20px;color:var(--theme-toggle-color)}.history-content[data-v-12200cbe]::-webkit-scrollbar{width:8px}.history-content[data-v-12200cbe]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-12200cbe]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:4px}.history-content[data-v-12200cbe]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker)}.action-btn-view[data-v-12200cbe]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color)}.action-btn-view[data-v-12200cbe]:hover{box-shadow:var(--toolbar-button-shadow-hover);color:var(--el-color-primary)}.history-group[data-v-12200cbe]{position:relative;padding-left:30px;border-left:2px solid var(--el-border-color-lighter);margin-left:10px;padding-bottom:30px}.history-group[data-v-12200cbe]:last-child{border-left:2px solid transparent}.timeline-header[data-v-12200cbe]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-12200cbe]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;background:var(--el-upload-dragger-uniform-color);box-shadow:0 0 10px var(--el-upload-dragger-uniform-color);z-index:2;box-sizing:border-box}.date-label[data-v-12200cbe]{font-size:20px;font-weight:700;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent}.load-more-container[data-v-12200cbe]{display:flex;justify-content:center;padding:20px}.loading-indicator[data-v-12200cbe]{display:flex;align-items:center;gap:8px;color:var(--el-upload-dragger-uniform-color)}.load-more-hint[data-v-12200cbe],.no-more-hint[data-v-12200cbe]{color:var(--upload-text-color);opacity:.5;font-size:14px}.no-more-hint[data-v-12200cbe]{text-align:center;padding:20px}@media (max-width:768px){.history-header[data-v-12200cbe]{padding:15px 20px}.header-left h2[data-v-12200cbe]{font-size:20px}.history-content[data-v-12200cbe]{padding:15px 20px}.grid-view[data-v-12200cbe]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:15px}.grid-preview[data-v-12200cbe]{height:120px}.list-meta[data-v-12200cbe]{display:none}.list-info[data-v-12200cbe]{margin-right:10px}}.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-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-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-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-6a7fc61f{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-6a7fc61f],.upload-list-card[data-v-6a7fc61f]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-6a7fc61f]{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-6a7fc61f] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-6a7fc61f]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-6a7fc61f],.upload-list-container[data-v-6a7fc61f]{width:70vw}}.upload-list-card.upload-list-busy[data-v-6a7fc61f],.upload-list-container.upload-list-busy[data-v-6a7fc61f]{height:40vh}.upload-list-card.is-uploading[data-v-6a7fc61f]{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-6a7fc61f]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-url-row[data-v-6a7fc61f]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-6a7fc61f]:last-child{margin-bottom:0}.upload-list-item-url[data-v-6a7fc61f]{display:flex;flex-direction:column}@media (max-width:768px){.upload-list-item-content[data-v-6a7fc61f]{margin-left:2px}.upload-list-item-url-row[data-v-6a7fc61f]{width:42vw;flex-direction:column;gap:6px}}.upload-card-wrapper[data-v-6a7fc61f]{position:relative;overflow:visible}.upload-card-glow[data-v-6a7fc61f]{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-6a7fc61f]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-6a7fc61f]{width:70vw}}.upload-card-busy[data-v-6a7fc61f] .el-upload-dragger{height:17vh}[data-v-6a7fc61f] .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-6a7fc61f] .el-upload:focus .el-upload-dragger{border-color:var(--el-upload-dragger-border-color)}[data-v-6a7fc61f] .el-upload-dragger.is-dragover,[data-v-6a7fc61f] .el-upload-dragger:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.is-uploading[data-v-6a7fc61f] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-6a7fc61f]{position:relative;background:none}.upload-card.is-uploading[data-v-6a7fc61f]: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-6a7fc61f 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-6a7fc61f]{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-6a7fc61f]{font-size:small}}.el-upload__text.upload-list-busy[data-v-6a7fc61f]{font-size:small}.el-icon--upload[data-v-6a7fc61f]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-6a7fc61f]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-6a7fc61f]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-6a7fc61f]{font-size:30px}}.el-upload__tip[data-v-6a7fc61f]{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-6a7fc61f]{font-size:small}}.paste-card[data-v-6a7fc61f]{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-6a7fc61f]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-6a7fc61f]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-6a7fc61f]:before{content:"";position:absolute;inset:-4px;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-6a7fc61f 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-6a7fc61f] .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-6a7fc61f]{height:17vh}.upload-card-textarea[data-v-6a7fc61f]{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-6a7fc61f]{height:50%}.upload-card-textarea[data-v-6a7fc61f]: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-6a7fc61f]:hover:before{opacity:1}.upload-card-textarea[data-v-6a7fc61f]: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-6a7fc61f] .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-6a7fc61f] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-6a7fc61f] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-6a7fc61f] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(64,158,255,.03))}[data-v-6a7fc61f] .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-6a7fc61f] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-6a7fc61f] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-6a7fc61f] ::-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-6a7fc61f] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(64,158,255,.6),rgba(64,158,255,.8))}.paste-card-actions[data-v-6a7fc61f]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]: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-6a7fc61f]:hover:before{left:100%}.paste-card-upload-button[data-v-6a7fc61f]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-6a7fc61f]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-6a7fc61f]{margin-top:2%}.paste-card-method-group[data-v-6a7fc61f]{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-6a7fc61f] .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-6a7fc61f] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-6a7fc61f] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-6a7fc61f]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-6a7fc61f]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-6a7fc61f]:before{border-radius:11px}[data-v-6a7fc61f] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-6a7fc61f]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-6a7fc61f]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-6a7fc61f]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-6a7fc61f] .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-6a7fc61f]{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-6a7fc61f]{background-color:var(--upload-list-dashboard-bg-color);box-shadow:var(--upload-list-dashboard-shadow)}.file-icon[data-v-6a7fc61f]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-url[data-v-6a7fc61f] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-6a7fc61f] .el-input:hover{transform:translateY(-1px)}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f 2s infinite;z-index:0}@keyframes shimmer-6a7fc61f{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-6a7fc61f] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-6a7fc61f] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend{animation:prependPulse-6a7fc61f 2s ease-in-out infinite}@keyframes prependPulse-6a7fc61f{0%,to{opacity:1}50%{opacity:.95}}@media (max-width:768px){.upload-list-item-url[data-v-6a7fc61f] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-6a7fc61f] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-6a7fc61f] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}}[data-v-6a7fc61f] .el-upload-dragger{position:relative;overflow:hidden}[data-v-6a7fc61f] .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-6a7fc61f] .el-upload-dragger:after,[data-v-6a7fc61f] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-6a7fc61f] .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-6a7fc61f]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-6a7fc61f 60s linear infinite}.upload-card[data-v-6a7fc61f]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-6a7fc61f 40s linear infinite,starPulse-6a7fc61f 4s ease-in-out infinite}@keyframes starScroll-6a7fc61f{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-6a7fc61f{0%,to{opacity:.6}50%{opacity:.3}}.upload-list-item-progress[data-v-6a7fc61f]{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-6a7fc61f] .el-progress{--el-color-primary:#409eff}.upload-list-item-progress[data-v-6a7fc61f] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f 1s linear infinite}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-6a7fc61f] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f 1s ease-in-out infinite}.upload-list-item-progress[data-v-6a7fc61f] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressShine-6a7fc61f{0%{background-position:0 0}to{background-position:200% 0}}@keyframes progressStripes-6a7fc61f{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-6a7fc61f{0%,to{opacity:1}50%{opacity:.7}}@media (max-width:768px){.upload-list-item-progress[data-v-6a7fc61f]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-6a7fc61f] .el-progress-bar__outer{height:8px!important}}.modern-action-group[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{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-6a7fc61f]:focus,.modern-action-btn[data-v-6a7fc61f]:focus-visible{outline:none!important}.modern-action-btn[data-v-6a7fc61f]: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-6a7fc61f]:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(64,158,255,.4)}.modern-action-btn[data-v-6a7fc61f]:hover:before{left:100%}.modern-action-btn[data-v-6a7fc61f]:active{transform:translateY(0) scale(.98);box-shadow:0 1px 4px rgba(64,158,255,.3)}.modern-action-btn-danger[data-v-6a7fc61f]{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-6a7fc61f]:hover{box-shadow:0 4px 12px hsla(0,87%,69%,.4)}.modern-dropdown-item-content[data-v-6a7fc61f]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-6a7fc61f]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-item-name-wrapper[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{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-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active{transform:translateY(-1px) scale(1.02)}.upload-list-item[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-dashboard-title[data-v-6a7fc61f]{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-6a7fc61f]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-6a7fc61f]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-6a7fc61f]{width:32px;height:32px;border-radius:8px;font-size:12px}.modern-file-action-btn[data-v-6a7fc61f]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-6a7fc61f]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-6a7fc61f]{font-size:12px;width:32vw}.upload-list-dashboard-title[data-v-6a7fc61f]{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-5db1b684]{background:var(--bg-color);min-height:100vh}.rotate[data-v-5db1b684]{animation:spin-5db1b684 2s ease-in-out}.scale[data-v-5db1b684]{animation:scale-5db1b684 .5s ease-in-out}@keyframes spin-5db1b684{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-5db1b684{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-5db1b684{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-5db1b684{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-5db1b684{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-5db1b684]{display:inline-block}.mobile-only[data-v-5db1b684]{display:none}@media (max-width:768px){.desktop-only[data-v-5db1b684]{display:none!important}.mobile-only[data-v-5db1b684]{display:flex!important}}.toggle-dark-button[data-v-5db1b684]{right:30px}.toggle-dark-button[data-v-5db1b684],.upload-method-button[data-v-5db1b684]{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-5db1b684]{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-5db1b684]{width:2rem;height:2rem}}.upload-method-icon[data-v-5db1b684]{outline:none}.history-button[data-v-5db1b684]{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-5db1b684]{width:2rem;height:2rem;top:85px;right:80px}}.history-button[data-v-5db1b684]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-5db1b684]{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-5db1b684]:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-5db1b684]:disabled{opacity:.5;cursor:not-allowed}.mobile-more-dropdown[data-v-5db1b684]{position:fixed;top:30px;right:30px;z-index:100}.mobile-more-button[data-v-5db1b684]{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-5db1b684]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.upload-folder[data-v-5db1b684]{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-5db1b684]{right:230px}.upload-folder.active[data-v-5db1b684]{width:200px}@media (max-width:768px){.upload-folder[data-v-5db1b684]{width:80px;height:2rem;right:110px}.upload-folder.no-announcement[data-v-5db1b684]{right:110px}.upload-folder.active[data-v-5db1b684]{width:120px}}.upload-folder[data-v-5db1b684] .el-input__wrapper{border-radius:12px}.info-container[data-v-5db1b684],.upload-folder[data-v-5db1b684] .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-5db1b684]{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-5db1b684]{outline:none}@media (max-width:768px){.info-container[data-v-5db1b684]{width:2rem;height:2rem;right:70px}}.toolbar-manage[data-v-5db1b684]{position:fixed;bottom:50px;right:30px;z-index:200}.toolbar-manage-button[data-v-5db1b684]{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-5db1b684]{border-radius:50%}.toolbar[data-v-5db1b684]{position:fixed;bottom:50px;right:30px;display:flex;flex-direction:column;align-items:center;z-index:100}.toolbar-button[data-v-5db1b684]{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-5db1b684]:hover,.toggle-dark-button[data-v-5db1b684]:hover,.toolbar-button[data-v-5db1b684]:hover,.toolbar-manage-button[data-v-5db1b684]:hover,.upload-folder[data-v-5db1b684]:hover,.upload-method-button[data-v-5db1b684]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.compress-button[data-v-5db1b684]{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-5db1b684]{transform:translateY(-75px);opacity:1}.link-button[data-v-5db1b684]{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-5db1b684]{transform:translateY(-58px) translateX(-50px);opacity:1}.config-button[data-v-5db1b684]{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-5db1b684]{transform:translateY(-11px) translateX(-75px);opacity:1}.sign-out-button[data-v-5db1b684]{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-5db1b684]{transform:translateY(42px) translateX(-68px);opacity:1}@media (min-width:768px){.compress-button[data-v-5db1b684]:hover{transform:translateY(-77px)}.link-button[data-v-5db1b684]:hover{transform:translateY(-60px) translateX(-52px)}.config-button[data-v-5db1b684]:hover{transform:translateY(-12px) translateX(-77px)}.sign-out-button[data-v-5db1b684]:hover{transform:translateY(44px) translateX(-70px)}.compress-icon[data-v-5db1b684]:hover{animation:scale-5db1b684 .5s ease-in-out}.config-icon[data-v-5db1b684]:hover{animation:spin-5db1b684 .5s ease-in-out}.link-icon[data-v-5db1b684]:hover{animation:rotate-shake-5db1b684 .5s ease-in-out}.sign-out-icon[data-v-5db1b684]:hover{animation:shake-5db1b684 .5s ease-in-out}}[data-v-5db1b684] .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-5db1b684]{display:flex;justify-content:center;margin-top:20px}.header[data-v-5db1b684]{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-5db1b684]{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-5db1b684 4s ease-in-out infinite;letter-spacing:2px}.title[data-v-5db1b684]:hover{transform:scale(1.08) translateY(-3px);filter:drop-shadow(0 0 20px var(--el-upload-dragger-uniform-color))}.title[data-v-5db1b684]: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-5db1b684]:hover:after{width:80%}.main-title[data-v-5db1b684]{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-5db1b684 3s ease-in-out infinite;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3))}.title:hover .main-title[data-v-5db1b684]{animation:titleShimmer-5db1b684 1s ease-in-out infinite;filter:brightness(1.2)}@keyframes float-5db1b684{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes titleShimmer-5db1b684{0%{background-position:200%}to{background-position:-200%}}@media (max-width:768px){.title[data-v-5db1b684]{font-size:1.8rem;letter-spacing:1px}.title[data-v-5db1b684]:hover{transform:scale(1.05) translateY(-2px)}}.upload-home[data-v-5db1b684]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-5db1b684]{margin-bottom:5px;position:relative;top:-3vh}.question-icon[data-v-5db1b684]{margin:0 3px}.compress-slider[data-v-5db1b684]{width:80%;margin:0 auto}.footer[data-v-5db1b684]{height:6vh} \ No newline at end of file +.history-container[data-v-12200cbe]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;flex-direction:column;backdrop-filter:blur(20px);background:var(--admin-container-bg-color);color:var(--upload-text-color);clip-path:circle(0 at calc(100% - 200px) 50px);opacity:0;transition:clip-path .6s cubic-bezier(.4,0,.2,1),opacity .3s ease}.history-container.active[data-v-12200cbe]{clip-path:circle(150% at calc(100% - 200px) 50px);opacity:1}.history-header[data-v-12200cbe]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.header-left[data-v-12200cbe]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-12200cbe]{margin:0;font-size:24px;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;font-weight:700}.record-count[data-v-12200cbe]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-12200cbe]{display:flex;gap:10px}.header-right .el-button[data-v-12200cbe]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none;color:var(--theme-toggle-color);transition:all .3s ease}.header-right .el-button[data-v-12200cbe]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.header-right .el-button.el-button--danger[data-v-12200cbe]{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.history-content[data-v-12200cbe]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-12200cbe]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-12200cbe]{background:var(--toolbar-button-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--toolbar-button-shadow);transition:transform .3s ease,box-shadow .3s ease;border:none;backdrop-filter:blur(10px)}.grid-item[data-v-12200cbe]:hover{transform:translateY(-5px);box-shadow:var(--toolbar-button-shadow-hover)}.grid-preview[data-v-12200cbe]{height:160px;position:relative;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-preview img[data-v-12200cbe],.grid-preview video[data-v-12200cbe]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-12200cbe]{font-size:48px;color:var(--theme-toggle-color);opacity:.5}.grid-overlay[data-v-12200cbe]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-12200cbe]{opacity:1}.grid-actions[data-v-12200cbe]{display:flex;gap:15px}.grid-actions .el-button[data-v-12200cbe]{backdrop-filter:blur(10px)}.grid-info[data-v-12200cbe]{padding:12px}.file-name[data-v-12200cbe]{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-12200cbe]{font-size:12px;color:var(--upload-text-color);opacity:.6}.list-view[data-v-12200cbe]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-12200cbe]{display:flex;align-items:center;padding:12px 15px;background:var(--toolbar-button-bg-color);border-radius:12px;box-shadow:var(--toolbar-button-shadow);backdrop-filter:blur(10px);border:none;transition:all .3s ease}.list-item[data-v-12200cbe]:hover{transform:translateX(5px);box-shadow:var(--toolbar-button-shadow-hover)}.list-preview[data-v-12200cbe]{width:50px;height:50px;border-radius:8px;overflow:hidden;margin-right:15px;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.list-preview img[data-v-12200cbe],.list-preview video[data-v-12200cbe]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-12200cbe]{font-size:24px;color:var(--theme-toggle-color);opacity:.5}.list-info[data-v-12200cbe]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-12200cbe]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.6}.list-meta[data-v-12200cbe]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-12200cbe]{display:flex;gap:8px}.list-actions .el-button[data-v-12200cbe]{backdrop-filter:blur(10px)}.empty-state[data-v-12200cbe]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.5}.empty-icon[data-v-12200cbe]{font-size:64px;margin-bottom:20px;color:var(--theme-toggle-color)}.history-content[data-v-12200cbe]::-webkit-scrollbar{width:8px}.history-content[data-v-12200cbe]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-12200cbe]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:4px}.history-content[data-v-12200cbe]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker)}.action-btn-view[data-v-12200cbe]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color)}.action-btn-view[data-v-12200cbe]:hover{box-shadow:var(--toolbar-button-shadow-hover);color:var(--el-color-primary)}.history-group[data-v-12200cbe]{position:relative;padding-left:30px;border-left:2px solid var(--el-border-color-lighter);margin-left:10px;padding-bottom:30px}.history-group[data-v-12200cbe]:last-child{border-left:2px solid transparent}.timeline-header[data-v-12200cbe]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-12200cbe]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;background:var(--el-upload-dragger-uniform-color);box-shadow:0 0 10px var(--el-upload-dragger-uniform-color);z-index:2;box-sizing:border-box}.date-label[data-v-12200cbe]{font-size:20px;font-weight:700;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent}.load-more-container[data-v-12200cbe]{display:flex;justify-content:center;padding:20px}.loading-indicator[data-v-12200cbe]{display:flex;align-items:center;gap:8px;color:var(--el-upload-dragger-uniform-color)}.load-more-hint[data-v-12200cbe],.no-more-hint[data-v-12200cbe]{color:var(--upload-text-color);opacity:.5;font-size:14px}.no-more-hint[data-v-12200cbe]{text-align:center;padding:20px}@media (max-width:768px){.history-header[data-v-12200cbe]{padding:15px 20px}.header-left h2[data-v-12200cbe]{font-size:20px}.history-content[data-v-12200cbe]{padding:15px 20px}.grid-view[data-v-12200cbe]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:15px}.grid-preview[data-v-12200cbe]{height:120px}.list-meta[data-v-12200cbe]{display:none}.list-info[data-v-12200cbe]{margin-right:10px}}.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-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-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-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-6a7fc61f{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-6a7fc61f],.upload-list-card[data-v-6a7fc61f]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-6a7fc61f]{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-6a7fc61f] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-6a7fc61f]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-6a7fc61f],.upload-list-container[data-v-6a7fc61f]{width:70vw}}.upload-list-card.upload-list-busy[data-v-6a7fc61f],.upload-list-container.upload-list-busy[data-v-6a7fc61f]{height:40vh}.upload-list-card.is-uploading[data-v-6a7fc61f]{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-6a7fc61f]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-url-row[data-v-6a7fc61f]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-6a7fc61f]:last-child{margin-bottom:0}.upload-list-item-url[data-v-6a7fc61f]{display:flex;flex-direction:column}@media (max-width:768px){.upload-list-item-content[data-v-6a7fc61f]{margin-left:2px}.upload-list-item-url-row[data-v-6a7fc61f]{width:42vw;flex-direction:column;gap:6px}}.upload-card-wrapper[data-v-6a7fc61f]{position:relative;overflow:visible}.upload-card-glow[data-v-6a7fc61f]{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-6a7fc61f]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-6a7fc61f]{width:70vw}}.upload-card-busy[data-v-6a7fc61f] .el-upload-dragger{height:17vh}[data-v-6a7fc61f] .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-6a7fc61f] .el-upload:focus .el-upload-dragger{border-color:var(--el-upload-dragger-border-color)}[data-v-6a7fc61f] .el-upload-dragger.is-dragover,[data-v-6a7fc61f] .el-upload-dragger:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.is-uploading[data-v-6a7fc61f] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-6a7fc61f]{position:relative;background:none}.upload-card.is-uploading[data-v-6a7fc61f]: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-6a7fc61f 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-6a7fc61f]{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-6a7fc61f]{font-size:small}}.el-upload__text.upload-list-busy[data-v-6a7fc61f]{font-size:small}.el-icon--upload[data-v-6a7fc61f]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-6a7fc61f]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-6a7fc61f]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-6a7fc61f]{font-size:30px}}.el-upload__tip[data-v-6a7fc61f]{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-6a7fc61f]{font-size:small}}.paste-card[data-v-6a7fc61f]{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-6a7fc61f]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-6a7fc61f]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-6a7fc61f]:before{content:"";position:absolute;inset:-4px;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-6a7fc61f 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-6a7fc61f] .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-6a7fc61f]{height:17vh}.upload-card-textarea[data-v-6a7fc61f]{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-6a7fc61f]{height:50%}.upload-card-textarea[data-v-6a7fc61f]: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-6a7fc61f]:hover:before{opacity:1}.upload-card-textarea[data-v-6a7fc61f]: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-6a7fc61f] .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-6a7fc61f] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-6a7fc61f] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-6a7fc61f] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(64,158,255,.03))}[data-v-6a7fc61f] .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-6a7fc61f] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-6a7fc61f] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-6a7fc61f] ::-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-6a7fc61f] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(64,158,255,.6),rgba(64,158,255,.8))}.paste-card-actions[data-v-6a7fc61f]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]: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-6a7fc61f]:hover:before{left:100%}.paste-card-upload-button[data-v-6a7fc61f]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-6a7fc61f]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-6a7fc61f]{margin-top:2%}.paste-card-method-group[data-v-6a7fc61f]{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-6a7fc61f] .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-6a7fc61f] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-6a7fc61f] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-6a7fc61f]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-6a7fc61f]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-6a7fc61f]:before{border-radius:11px}[data-v-6a7fc61f] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-6a7fc61f]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-6a7fc61f]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-6a7fc61f]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-6a7fc61f] .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-6a7fc61f]{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-6a7fc61f]{background-color:var(--upload-list-dashboard-bg-color);box-shadow:var(--upload-list-dashboard-shadow)}.file-icon[data-v-6a7fc61f]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-url[data-v-6a7fc61f] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-6a7fc61f] .el-input:hover{transform:translateY(-1px)}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f 2s infinite;z-index:0}@keyframes shimmer-6a7fc61f{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-6a7fc61f] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-6a7fc61f] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}.upload-list-item-url[data-v-6a7fc61f] .el-input.is-focus .el-input-group__prepend{animation:prependPulse-6a7fc61f 2s ease-in-out infinite}@keyframes prependPulse-6a7fc61f{0%,to{opacity:1}50%{opacity:.95}}@media (max-width:768px){.upload-list-item-url[data-v-6a7fc61f] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-6a7fc61f] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-6a7fc61f] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}}[data-v-6a7fc61f] .el-upload-dragger{position:relative;overflow:hidden}[data-v-6a7fc61f] .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-6a7fc61f] .el-upload-dragger:after,[data-v-6a7fc61f] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-6a7fc61f] .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-6a7fc61f]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-6a7fc61f 60s linear infinite}.upload-card[data-v-6a7fc61f]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-6a7fc61f 40s linear infinite,starPulse-6a7fc61f 4s ease-in-out infinite}@keyframes starScroll-6a7fc61f{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-6a7fc61f{0%,to{opacity:.6}50%{opacity:.3}}.upload-list-item-progress[data-v-6a7fc61f]{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-6a7fc61f] .el-progress{--el-color-primary:#409eff}.upload-list-item-progress[data-v-6a7fc61f] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f] .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-6a7fc61f 1s linear infinite}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-6a7fc61f] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-6a7fc61f] .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-6a7fc61f 1s ease-in-out infinite}.upload-list-item-progress[data-v-6a7fc61f] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressShine-6a7fc61f{0%{background-position:0 0}to{background-position:200% 0}}@keyframes progressStripes-6a7fc61f{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-6a7fc61f{0%,to{opacity:1}50%{opacity:.7}}@media (max-width:768px){.upload-list-item-progress[data-v-6a7fc61f]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-6a7fc61f] .el-progress-bar__outer{height:8px!important}}.modern-action-group[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{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-6a7fc61f]:focus,.modern-action-btn[data-v-6a7fc61f]:focus-visible{outline:none!important}.modern-action-btn[data-v-6a7fc61f]: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-6a7fc61f]:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(64,158,255,.4)}.modern-action-btn[data-v-6a7fc61f]:hover:before{left:100%}.modern-action-btn[data-v-6a7fc61f]:active{transform:translateY(0) scale(.98);box-shadow:0 1px 4px rgba(64,158,255,.3)}.modern-action-btn-danger[data-v-6a7fc61f]{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-6a7fc61f]:hover{box-shadow:0 4px 12px hsla(0,87%,69%,.4)}.modern-dropdown-item-content[data-v-6a7fc61f]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-6a7fc61f]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-item-name-wrapper[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{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-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]:active{transform:translateY(-1px) scale(1.02)}.upload-list-item[data-v-6a7fc61f]{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-6a7fc61f]: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-6a7fc61f]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-dashboard-title[data-v-6a7fc61f]{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-6a7fc61f]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-6a7fc61f]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-6a7fc61f]{width:32px;height:32px;border-radius:8px;font-size:12px}.modern-file-action-btn[data-v-6a7fc61f]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-6a7fc61f]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-6a7fc61f]{font-size:12px;width:32vw}.upload-list-dashboard-title[data-v-6a7fc61f]{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-64bd58b9]{background:var(--bg-color);min-height:100vh}.rotate[data-v-64bd58b9]{animation:spin-64bd58b9 2s ease-in-out}.scale[data-v-64bd58b9]{animation:scale-64bd58b9 .5s ease-in-out}@keyframes spin-64bd58b9{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-64bd58b9{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-64bd58b9{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-64bd58b9{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-64bd58b9{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-64bd58b9]{display:inline-block}.mobile-only[data-v-64bd58b9]{display:none}@media (max-width:768px){.desktop-only[data-v-64bd58b9]{display:none!important}.mobile-only[data-v-64bd58b9]{display:flex!important}}.toggle-dark-button[data-v-64bd58b9]{right:30px}.toggle-dark-button[data-v-64bd58b9],.upload-method-button[data-v-64bd58b9]{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-64bd58b9]{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-64bd58b9]{width:2rem;height:2rem}}.upload-method-icon[data-v-64bd58b9]{outline:none}.history-button[data-v-64bd58b9]{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-64bd58b9]{width:2rem;height:2rem;top:85px;right:80px}}.history-button[data-v-64bd58b9]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-64bd58b9]{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-64bd58b9]:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.announcement-button[data-v-64bd58b9]:disabled{opacity:.5;cursor:not-allowed}.mobile-more-dropdown[data-v-64bd58b9]{position:fixed;top:30px;right:30px;z-index:100}.mobile-more-button[data-v-64bd58b9]{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-64bd58b9]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.upload-folder[data-v-64bd58b9]{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-64bd58b9]{right:230px}.upload-folder.active[data-v-64bd58b9]{width:200px}@media (max-width:768px){.upload-folder[data-v-64bd58b9]{width:80px;height:2rem;right:110px}.upload-folder.no-announcement[data-v-64bd58b9]{right:110px}.upload-folder.active[data-v-64bd58b9]{width:120px}}.upload-folder[data-v-64bd58b9] .el-input__wrapper{border-radius:12px}.info-container[data-v-64bd58b9],.upload-folder[data-v-64bd58b9] .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-64bd58b9]{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-64bd58b9]{outline:none}@media (max-width:768px){.info-container[data-v-64bd58b9]{width:2rem;height:2rem;right:70px}}.toolbar-manage[data-v-64bd58b9]{position:fixed;bottom:50px;right:30px;z-index:200}.toolbar-manage-button[data-v-64bd58b9]{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-64bd58b9]{border-radius:50%}.toolbar[data-v-64bd58b9]{position:fixed;bottom:50px;right:30px;display:flex;flex-direction:column;align-items:center;z-index:100}.toolbar-button[data-v-64bd58b9]{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-64bd58b9]:hover,.toggle-dark-button[data-v-64bd58b9]:hover,.toolbar-button[data-v-64bd58b9]:hover,.toolbar-manage-button[data-v-64bd58b9]:hover,.upload-folder[data-v-64bd58b9]:hover,.upload-method-button[data-v-64bd58b9]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.compress-button[data-v-64bd58b9]{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-64bd58b9]{transform:translateY(-75px);opacity:1}.link-button[data-v-64bd58b9]{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-64bd58b9]{transform:translateY(-58px) translateX(-50px);opacity:1}.config-button[data-v-64bd58b9]{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-64bd58b9]{transform:translateY(-11px) translateX(-75px);opacity:1}.sign-out-button[data-v-64bd58b9]{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-64bd58b9]{transform:translateY(42px) translateX(-68px);opacity:1}@media (min-width:768px){.compress-button[data-v-64bd58b9]:hover{transform:translateY(-77px)}.link-button[data-v-64bd58b9]:hover{transform:translateY(-60px) translateX(-52px)}.config-button[data-v-64bd58b9]:hover{transform:translateY(-12px) translateX(-77px)}.sign-out-button[data-v-64bd58b9]:hover{transform:translateY(44px) translateX(-70px)}.compress-icon[data-v-64bd58b9]:hover{animation:scale-64bd58b9 .5s ease-in-out}.config-icon[data-v-64bd58b9]:hover{animation:spin-64bd58b9 .5s ease-in-out}.link-icon[data-v-64bd58b9]:hover{animation:rotate-shake-64bd58b9 .5s ease-in-out}.sign-out-icon[data-v-64bd58b9]:hover{animation:shake-64bd58b9 .5s ease-in-out}}[data-v-64bd58b9] .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-64bd58b9]{display:flex;justify-content:center;margin-top:20px}.header[data-v-64bd58b9]{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-64bd58b9]{font-size:2.5rem;font-weight:400;font-family:Righteous,Noto Sans SC,sans-serif;position:relative;padding-bottom:8px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);animation:float-64bd58b9 4s ease-in-out infinite;letter-spacing:3px}.title[data-v-64bd58b9]:hover{transform:scale(1.08) translateY(-3px);filter:drop-shadow(0 0 20px var(--el-upload-dragger-uniform-color))}.title[data-v-64bd58b9]: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-64bd58b9]:hover:after{width:80%}.main-title[data-v-64bd58b9]{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-64bd58b9 3s ease-in-out infinite;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3))}.title:hover .main-title[data-v-64bd58b9]{animation:titleShimmer-64bd58b9 1s ease-in-out infinite;filter:brightness(1.2)}@keyframes float-64bd58b9{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes titleShimmer-64bd58b9{0%{background-position:200%}to{background-position:-200%}}@media (max-width:768px){.title[data-v-64bd58b9]{font-size:1.8rem;letter-spacing:1px}.title[data-v-64bd58b9]:hover{transform:scale(1.05) translateY(-2px)}}.upload-home[data-v-64bd58b9]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-64bd58b9]{margin-bottom:5px;position:relative;top:-3vh}.question-icon[data-v-64bd58b9]{margin:0 3px}.compress-slider[data-v-64bd58b9]{width:80%;margin:0 auto}.footer[data-v-64bd58b9]{height:6vh} \ No newline at end of file diff --git a/css/282.ad42e268.css.gz b/css/689.69f7094e.css.gz similarity index 70% rename from css/282.ad42e268.css.gz rename to css/689.69f7094e.css.gz index 21e8ab215531a59b32e825a16d59977618a72dea..55dad43b399b080c64ab14f34abbbfccfcf6b624 100644 GIT binary patch delta 3579 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 B2;Tqz delta 3572 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 uR#kq115T`yG|#Rooz8a diff --git a/css/app.da44fa8b.css b/css/app.da44fa8b.css new file mode 100644 index 0000000..32773f6 --- /dev/null +++ b/css/app.da44fa8b.css @@ -0,0 +1 @@ +@font-face{font-family:Righteous;src:url(/fonts/Righteous.207a66c3.woff2) format("woff2");font-display:swap}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}nav{padding:30px}nav a{font-weight:700;color:#2c3e50}nav a.router-link-exact-active{color:#42b983}body{margin:0;padding:0;background-color:#f8f8f8}:focus-visible{outline:none}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:root{--bg-color:linear-gradient(90deg,#efe8e8,#e4f8ff);--popper-bg-color:hsla(0,0%,100%,.8);--popper-shadow:0 0 10px 2px rgba(0,0,0,.1);--image-preview-filter:brightness(1);--text-bg-color:rgba(0,0,0,.1);--background-image-filter:brightness(1);--upload-list-card-bg-color:hsla(0,0%,100%,.7);--upload-list-card-border:1px solid #327ecc50;--upload-list-card-box-shadow:1px 2px 5px 1px #327ecc50;--upload-list-item-border:1px solid #a5bef7;--upload-list-dashboard-bg-color:hsla(0,0%,100%,.7);--upload-list-dashboard-shadow:0 2px 10px rgba(0,0,0,.1);--upload-list-file-icon-color:#327ecc;--el-upload-dragger-bg-color:hsla(0,0%,100%,.6);--el-upload-dragger-border:3px dashed #409eff;--el-upload-dragger-border-color:#409eff;--el-upload-dragger-hover-box-shadow:0 0 10px 5px #409eff;--el-upload-dragger-uniform-color:#409eff;--paste-card-textarea-border-color:#409eff;--paste-card-textarea-box-shadow:0 0 6px 1px #409eff;--el-icon--upload-color:#1f8bf8;--upload-text-color:rgba(58,58,58,.8);--upload-header-color:rgba(58,58,58,.8);--upload-main-title-color:linear-gradient(90deg,#a1e3cc,#78aeec);--modern-action-group-bg:rgba(64,158,255,.08);--modern-action-group-border:rgba(64,158,255,.15);--logo-glow-color:#409eff;--modern-action-group-shadow:rgba(0,0,0,.06);--modern-action-group-hover-bg:rgba(64,158,255,.12);--modern-action-group-hover-shadow:rgba(64,158,255,.15);--file-name-bg:linear-gradient(135deg,rgba(64,158,255,.08),rgba(64,158,255,.03));--file-name-border:rgba(64,158,255,.12);--file-name-hover-bg:linear-gradient(135deg,rgba(64,158,255,.12),rgba(64,158,255,.06));--file-name-hover-border:rgba(64,158,255,.2);--upload-list-item-bg:linear-gradient(135deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.7));--upload-list-item-border-color:rgba(64,158,255,.1);--upload-list-item-shadow:rgba(0,0,0,.04);--upload-list-item-hover-border:rgba(64,158,255,.25);--upload-list-item-hover-shadow:rgba(64,158,255,.12);--dashboard-title-bg:linear-gradient(135deg,rgba(64,158,255,.06),transparent);--toolbar-button-bg-color:hsla(0,0%,100%,.5);--toolbar-button-shadow:1px 2px 4px rgba(0,0,0,.3);--toolbar-button-shadow-hover:1px 2px 4px rgba(0,0,0,.5);--toolbar-button-color:#327ecc;--page-footer-text-color:rgba(58,58,58,.8);--page-footer-name-color:rgba(12,76,105,.8);--login-container-bg-color:hsla(0,0%,100%,.6);--password-input-bg-color:hsla(0,0%,100%,.9);--password-input-border:1px solid #dcdfe6;--login-title-color:#000;--login-container-box-shadow:0 0 12px rgba(0,0,0,.12);--login-container-hover-box-shadow:0 0 12px 4px rgba(0,0,0,.24);--login-submit-btn-bg-color:#487cb0e8;--login-title-glow-color:rgba(52,152,219,.5);--login-input-underline-color:#5b9bd3;--login-input-underline-secondary-color:#7ba9d8;--login-input-label-focus-color:#5b9bd3;--dialog-bg-color:hsla(0,0%,100%,.7);--dialog-box-shadow:0 0 10px 2px rgba(0,0,0,.1);--tabs-dropdown-popper-bg-color:hsla(0,0%,100%,.2);--tabs-dropdown-popper-shadow:0 0 10px 2px rgba(0,0,0,.1);--admin-header-content-bg-color:hsla(0,0%,100%,.75);--admin-header-content-hover-bg-color:hsla(0,0%,100%,.85);--admin-header-content-border-bottom:1px solid rgba(0,0,0,.1);--admin-header-content-box-shadow:0 4px 6px rgba(0,0,0,.1);--admin-header-content-hover-box-shadow:0 6px 10px rgba(0,0,0,.2);--admin-container-bg-color:linear-gradient(90deg,#fdf3f6,#e4f8ff);--admin-container-color:#333;--admin-dashborad-stats-bg-color:hsla(0,0%,100%,.9);--admin-dashborad-stats-hover-bg-color:#f0eaf8;--admin-dashboard-search-card-bg-color:hsla(0,0%,100%,.9);--admin-dashboard-stats-shadow:0 2px 4px rgba(0,0,0,.05);--admin-dashboard-stats-hover-shadow:0 4px 6px rgba(0,0,0,.1);--admin-dashboard-search-card-box-shadow:0 2px 6px rgba(0,0,0,.1);--admin-dashboard-btn-color:#000;--admin-dashboard-btn-bg-color:hsla(0,0%,100%,.3);--admin-dashboard-btn-shadow:0 2px 4px rgba(0,0,0,.3);--admin-dashboard-btn-hover-shadow:0 4px 6px rgba(0,0,0,.3);--admin-dashboard-imgcard-bg-color:hsla(0,0%,100%,.6);--admin-dashboard-imgcard-shadow:0 2px 12px rgba(0,0,0,.1);--admin-dashboard-tag-suggestion-bg-color:#fff;--admin-dashboard-tag-suggestion-border-color:#dcdfe6;--admin-dashboard-tag-suggestion-box-shadow:0 2px 12px rgba(0,0,0,.1);--admin-dashboard-tag-suggestion-item-hover-bg-color:#f5f7fa;--skeleton-bg-color:#e0e0e0;--skeleton-shimmer-color:hsla(0,0%,100%,.5);--admin-cuscfg-table-shadow:0 4px 6px rgba(0,0,0,.1);--admin-cuscfg-table-bg-color:hsla(0,0%,100%,.95);--admin-syscfg-tabs-border-color:#3c3c3c4c;--admin-purple:#b39ddb;--theme-toggle-color:#327ecc;--theme-toggle-bg-color:#327ecc;--admin-theme-toggle-color:#000;--admin-theme-toggle-bg-color:#000;--not-found-title-text-color:linear-gradient(90deg,#6b9788,#6285ac)}.dark{--bg-color:linear-gradient(90deg,#1c1c1c,#000);--popper-bg-color:rgba(0,0,0,.8);--popper-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--image-preview-filter:brightness(0.8);--text-bg-color:hsla(0,0%,100%,.1);--background-image-filter:brightness(0.6);--upload-list-card-bg-color:rgba(0,0,0,.7);--upload-list-card-border:1px solid #8fadc8;--upload-list-card-box-shadow:-1px 2px 4px #c1ddf5ae;--upload-list-item-border:1px solid #8fadc8;--upload-list-dashboard-bg-color:rgba(0,0,0,.7);--upload-list-dashboard-shadow:0 2px 10px hsla(0,0%,100%,.1);--upload-list-file-icon-color:#8fadc8;--el-upload-dragger-bg-color:rgba(0,0,0,.6);--el-upload-dragger-border:3px dashed #8fadc8;--el-upload-dragger-border-color:#8fadc8;--el-upload-dragger-hover-box-shadow:0 0 10px 5px #8fadc8;--el-upload-dragger-uniform-color:#8fadc8;--paste-card-textarea-border-color:#8fadc8;--paste-card-textarea-box-shadow:0 0 6px 1px #8fadc8;--el-icon--upload-color:#ffebcd;--upload-text-color:#faebd7;--upload-header-color:#ffebcd;--upload-main-title-color:linear-gradient(90deg,#effac3,#f3a060);--toolbar-button-bg-color:rgba(0,0,0,.7);--toolbar-button-shadow:-1px 2px 4px hsla(0,0%,100%,.3);--toolbar-button-shadow-hover:-1px 2px 4px hsla(0,0%,100%,.5);--toolbar-button-color:#bedefd;--modern-action-group-bg:rgba(64,158,255,.12);--modern-action-group-border:rgba(64,158,255,.2);--logo-glow-color:#8fadc8;--modern-action-group-shadow:rgba(0,0,0,.2);--modern-action-group-hover-bg:rgba(64,158,255,.18);--modern-action-group-hover-shadow:rgba(64,158,255,.25);--file-name-bg:linear-gradient(135deg,rgba(64,158,255,.12),rgba(64,158,255,.05));--file-name-border:rgba(64,158,255,.18);--file-name-hover-bg:linear-gradient(135deg,rgba(64,158,255,.18),rgba(64,158,255,.08));--file-name-hover-border:rgba(64,158,255,.3);--upload-list-item-bg:linear-gradient(135deg,rgba(30,30,30,.9),rgba(40,40,40,.7));--upload-list-item-border-color:rgba(64,158,255,.15);--upload-list-item-shadow:rgba(0,0,0,.15);--upload-list-item-hover-border:rgba(64,158,255,.35);--upload-list-item-hover-shadow:rgba(64,158,255,.2);--dashboard-title-bg:linear-gradient(135deg,rgba(64,158,255,.1),transparent);--page-footer-text-color:#f0f8ff;--page-footer-name-color:#faebd7;--login-container-bg-color:rgba(0,0,0,.6);--password-input-bg-color:rgba(77,77,77,.8);--password-input-border:1px solid #919191;--login-title-color:#f0f8ff;--login-container-box-shadow:-3px 2px 12px hsla(0,0%,100%,.12);--login-container-hover-box-shadow:-3px 2px 12px 4px hsla(0,0%,100%,.24);--login-submit-btn-bg-color:#8fadc8b4;--login-title-glow-color:rgba(143,173,200,.7);--login-input-underline-color:#a3c5e5;--login-input-underline-secondary-color:#b8d0e8;--login-input-label-focus-color:#a3c5e5;--dialog-bg-color:rgba(0,0,0,.8);--dialog-box-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--tabs-dropdown-popper-bg-color:rgba(0,0,0,.2);--tabs-dropdown-popper-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--admin-header-content-bg-color:rgba(0,0,0,.75);--admin-header-content-hover-bg-color:rgba(0,0,0,.85);--admin-header-content-border-bottom:1px solid hsla(0,0%,100%,.1);--admin-header-content-box-shadow:0 4px 6px hsla(0,0%,100%,.1);--admin-header-content-hover-box-shadow:0 6px 10px hsla(0,0%,100%,.2);--admin-container-bg-color:linear-gradient(90deg,#464545,#2d2d2d);--admin-container-color:#f0f0f0;--admin-dashborad-stats-bg-color:rgba(0,0,0,.9);--admin-dashborad-stats-hover-bg-color:#1e1e1e;--admin-dashboard-stats-shadow:0 2px 4px hsla(0,0%,100%,.1);--admin-dashboard-stats-hover-shadow:0 4px 6px hsla(0,0%,100%,.15);--admin-dashboard-search-card-bg-color:rgba(0,0,0,.9);--admin-dashboard-search-card-box-shadow:0 2px 6px hsla(0,0%,100%,.1);--admin-dashboard-btn-color:#f0f0f0;--admin-dashboard-btn-bg-color:rgba(0,0,0,.3);--admin-dashboard-btn-shadow:0 2px 4px hsla(0,0%,100%,.3);--admin-dashboard-btn-hover-shadow:0 4px 6px hsla(0,0%,100%,.3);--admin-dashboard-imgcard-bg-color:rgba(0,0,0,.6);--admin-dashboard-imgcard-shadow:0 2px 12px hsla(0,0%,100%,.1);--admin-dashboard-tag-suggestion-bg-color:#2d2d2d;--admin-dashboard-tag-suggestion-border-color:#555;--admin-dashboard-tag-suggestion-box-shadow:0 2px 12px hsla(0,0%,100%,.1);--admin-dashboard-tag-suggestion-item-hover-bg-color:#3a3a3a;--skeleton-bg-color:#3a3a3a;--skeleton-shimmer-color:hsla(0,0%,100%,.15);--admin-cuscfg-table-shadow:0 4px 6px rgba(0,0,0,.3),0 0 1px 1px hsla(0,0%,100%,.05);--admin-cuscfg-table-bg-color:rgba(45,45,45,.95);--admin-syscfg-tabs-border-color:#cfcccc47;--theme-toggle-color:#bedefd;--theme-toggle-bg-color:#bedefd;--admin-theme-toggle-color:#fff;--admin-theme-toggle-bg-color:#fcfcfc;--not-found-title-text-color:linear-gradient(90deg,#effac3,#f3a060)}.el-message{border-radius:50px!important;border:none!important;padding:10px 30px!important;box-shadow:0 4px 16px rgba(0,0,0,.2)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:rgba(40,40,40,.85)!important;min-width:unset!important;top:30px!important}.el-message .el-message__icon{font-size:18px!important;color:#fff!important}.el-message .el-message__content{font-size:16px!important;font-weight:500!important;color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:.5px}.el-message--success .el-message__icon{color:#67c23a!important}.el-message--warning .el-message__icon{color:#e6a23c!important}.el-message--error .el-message__icon{color:#f56c6c!important}.dark .el-message{background-color:hsla(0,0%,100%,.2)!important;border:1px solid hsla(0,0%,100%,.1)!important;box-shadow:0 4px 16px rgba(0,0,0,.4)!important}.dialog-section{margin-bottom:24px;background:var(--el-fill-color-lighter);border-radius:12px;padding:16px;border:1px solid var(--el-border-color-lighter)}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--el-border-color-lighter)}.section-title{font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.section-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:14px;transition:color .2s}.section-help-icon:hover{color:var(--el-color-primary)}.section-content{display:flex;flex-direction:column;gap:16px}.radio-card-group{display:flex;flex-wrap:wrap;gap:10px}.radio-card-group .radio-card{margin-right:0;padding:10px 16px;border-radius:8px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);transition:all .2s ease}.radio-card-group .radio-card:hover{border-color:var(--el-color-primary-light-5)}.radio-card-group .radio-card.is-checked{background:linear-gradient(135deg,rgba(64,158,255,.1),rgba(56,189,248,.05));border-color:var(--el-color-primary)}.radio-card-group .el-radio__input{display:none}.radio-card-group .el-radio__label{padding-left:0;font-weight:500;display:flex;align-items:center;gap:8px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--el-bg-color);border-radius:8px;border:1px solid var(--el-border-color-lighter)}.setting-label{font-size:14px;font-weight:500;color:var(--el-text-color-primary)}.setting-input{width:60%;max-width:250px}.dialog-action{display:flex;justify-content:flex-end;padding-top:16px}.confirm-btn{min-width:100px;border-radius:8px}@media (max-width:768px){.el-message{padding:8px 18px!important;border-radius:30px!important}.el-message .el-message__icon{font-size:14px!important}.el-message .el-message__content{font-size:13px!important}.dialog-section{padding:12px}.radio-card-group{flex-direction:column}.radio-card-group .radio-card{width:100%;text-align:center}.setting-item{flex-direction:column;align-items:flex-start;gap:10px}.setting-item .radio-card-group.compact{width:100%}.setting-input{width:100%;max-width:none}.radio-card-group.compact{flex-direction:row;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.radio-card-group.compact .radio-card{width:100%;box-sizing:border-box;justify-content:center;flex:1}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;justify-content:center;gap:6px}.radio-card-group.compact .channel-icon{width:16px;text-align:center;flex-shrink:0}}.slider-item{flex-direction:column;align-items:flex-start;gap:12px}.slider-wrapper{display:flex;align-items:center;gap:12px;width:100%}.slider-wrapper .el-slider{flex:1;min-width:0}.slider-input{width:80px!important;flex-shrink:0}.slider-input .el-input__wrapper{padding:0 8px}.slider-input-wrapper{display:flex;align-items:center;gap:6px;flex-shrink:0}.slider-unit{font-size:13px;font-weight:500;color:var(--el-text-color-secondary)}@media (max-width:768px){.slider-wrapper{gap:8px;width:100%}.slider-input{width:80px!important}.setting-input{width:100%!important;max-width:none!important}.dialog-section{overflow:hidden}.radio-card-group.grid-2x2{grid-template-columns:repeat(2,1fr);gap:8px}.radio-card-group.grid-2x2 .radio-card{padding:10px 8px;font-size:13px}}.inline-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-help-icon:hover{color:var(--el-color-primary)}.radio-card-group.compact{gap:8px}.radio-card-group.compact .radio-card{padding:8px 12px;font-size:13px}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;gap:6px}.radio-card-group.compact .channel-icon{width:16px;text-align:center;flex-shrink:0}.radio-card-group.grid-2x2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.radio-card-group.grid-2x2 .radio-card{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:20px}.radio-icon{font-size:14px;opacity:.8;width:20px;text-align:center;display:inline-block}.radio-card.is-checked .radio-icon{opacity:1}.el-dialog,.el-message-box{border-radius:16px!important;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.2)!important;border:1px solid hsla(0,0%,100%,.5);background-color:hsla(0,0%,100%,.85)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.el-dialog__header,.el-message-box__header{border-bottom:none;padding:16px 20px!important;margin-right:0!important;position:relative}.el-dialog__header:after{background:linear-gradient(90deg,transparent,rgba(156,163,175,.5) 20%,rgba(156,163,175,.8) 50%,rgba(156,163,175,.5) 80%,transparent)}.el-dialog__header:after,.el-message-box__header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px}.el-message-box__header:after{background:linear-gradient(90deg,rgba(156,163,175,.8),rgba(156,163,175,.5) 30%,transparent 80%)}.el-dialog__body,.el-message-box__content{padding:20px!important}.el-dialog__footer,.el-message-box__btns{border-top:none;padding:12px 20px!important;background-color:transparent}.dark .el-dialog,.dark .el-message-box{background-color:rgba(30,30,30,.75)!important;border:1px solid hsla(0,0%,100%,.08)!important;box-shadow:0 12px 32px rgba(0,0,0,.5)!important}.dark .el-dialog__header,.dark .el-message-box__header{border-bottom:none}.dark .el-dialog__header:after{background:linear-gradient(90deg,transparent,rgba(156,163,175,.3) 20%,rgba(156,163,175,.5) 50%,rgba(156,163,175,.3) 80%,transparent)}.dark .el-message-box__header:after{background:linear-gradient(90deg,rgba(156,163,175,.5),rgba(156,163,175,.3) 30%,transparent 80%)}.dark .el-dialog__footer,.dark .el-message-box__btns{border-top:none;background-color:transparent}.dark .el-dialog__title,.dark .el-message-box__title{color:#e5eaf3}.dark .el-message-box__content{color:#cfd3dc}.el-loading-mask{border-radius:12px}.el-dropdown__popper.el-popper{border-radius:12px;border:none;background-color:var(--popper-bg-color);backdrop-filter:blur(10px);box-shadow:var(--popper-shadow)}.el-dropdown__popper.el-popper .el-dropdown-menu,.el-dropdown__popper.el-popper .el-dropdown-menu__item{background:none;border:none}.el-popper.is-light>.el-popper__arrow:before{background:none!important;border:none!important}*,body,html{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.os-theme-dark{--os-handle-bg:hsla(0,0%,50%,.5);--os-handle-bg-hover:hsla(0,0%,50%,.7);--os-handle-bg-active:hsla(0,0%,50%,.85)}.dark .os-theme-dark,html.dark .os-theme-dark{--os-handle-bg:hsla(0,0%,71%,.6);--os-handle-bg-hover:hsla(0,0%,71%,.75);--os-handle-bg-active:hsla(0,0%,71%,.9)}.os-theme-dark .os-scrollbar,.os-theme-dark .os-scrollbar-horizontal,.os-theme-dark .os-scrollbar-vertical{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-bg:transparent;--os-track-bg-hover:transparent;--os-track-bg-active:transparent}.os-theme-dark .os-scrollbar .os-scrollbar-handle{border-radius:10px!important;transition:background-color .2s ease,opacity .2s ease!important} \ No newline at end of file diff --git a/css/app.da44fa8b.css.gz b/css/app.da44fa8b.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..44328be15d5ed91e637c0e6af83da829c2b23817 GIT binary patch literal 3789 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 D+Av7x literal 0 HcmV?d00001 diff --git a/css/app.ee9a7bf2.css b/css/app.ee9a7bf2.css deleted file mode 100644 index d00f702..0000000 --- a/css/app.ee9a7bf2.css +++ /dev/null @@ -1 +0,0 @@ -#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}nav{padding:30px}nav a{font-weight:700;color:#2c3e50}nav a.router-link-exact-active{color:#42b983}body{margin:0;padding:0;background-color:#f8f8f8}:focus-visible{outline:none}.el-dropdown__popper.el-popper{background-color:hsla(0,0%,100%,.8);box-shadow:0 0 10px 2px rgba(0,0,0,.1)}.el-popper.is-light>.el-popper__arrow:before{background:none;border:none}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:root{--bg-color:linear-gradient(90deg,#efe8e8,#e4f8ff);--popper-bg-color:hsla(0,0%,100%,.8);--popper-shadow:0 0 10px 2px rgba(0,0,0,.1);--image-preview-filter:brightness(1);--text-bg-color:rgba(0,0,0,.1);--background-image-filter:brightness(1);--upload-list-card-bg-color:hsla(0,0%,100%,.7);--upload-list-card-border:1px solid #327ecc50;--upload-list-card-box-shadow:1px 2px 5px 1px #327ecc50;--upload-list-item-border:1px solid #a5bef7;--upload-list-dashboard-bg-color:hsla(0,0%,100%,.7);--upload-list-dashboard-shadow:0 2px 10px rgba(0,0,0,.1);--upload-list-file-icon-color:#327ecc;--el-upload-dragger-bg-color:hsla(0,0%,100%,.6);--el-upload-dragger-border:3px dashed #409eff;--el-upload-dragger-border-color:#409eff;--el-upload-dragger-hover-box-shadow:0 0 10px 5px #409eff;--el-upload-dragger-uniform-color:#409eff;--paste-card-textarea-border-color:#409eff;--paste-card-textarea-box-shadow:0 0 6px 1px #409eff;--el-icon--upload-color:#1f8bf8;--upload-text-color:rgba(58,58,58,.8);--upload-header-color:rgba(58,58,58,.8);--upload-main-title-color:linear-gradient(90deg,#a1e3cc,#78aeec);--modern-action-group-bg:rgba(64,158,255,.08);--modern-action-group-border:rgba(64,158,255,.15);--logo-glow-color:#409eff;--modern-action-group-shadow:rgba(0,0,0,.06);--modern-action-group-hover-bg:rgba(64,158,255,.12);--modern-action-group-hover-shadow:rgba(64,158,255,.15);--file-name-bg:linear-gradient(135deg,rgba(64,158,255,.08),rgba(64,158,255,.03));--file-name-border:rgba(64,158,255,.12);--file-name-hover-bg:linear-gradient(135deg,rgba(64,158,255,.12),rgba(64,158,255,.06));--file-name-hover-border:rgba(64,158,255,.2);--upload-list-item-bg:linear-gradient(135deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.7));--upload-list-item-border-color:rgba(64,158,255,.1);--upload-list-item-shadow:rgba(0,0,0,.04);--upload-list-item-hover-border:rgba(64,158,255,.25);--upload-list-item-hover-shadow:rgba(64,158,255,.12);--dashboard-title-bg:linear-gradient(135deg,rgba(64,158,255,.06),transparent);--toolbar-button-bg-color:hsla(0,0%,100%,.5);--toolbar-button-shadow:1px 2px 4px rgba(0,0,0,.3);--toolbar-button-shadow-hover:1px 2px 4px rgba(0,0,0,.5);--toolbar-button-color:#327ecc;--page-footer-text-color:rgba(58,58,58,.8);--page-footer-name-color:rgba(12,76,105,.8);--login-container-bg-color:hsla(0,0%,100%,.6);--password-input-bg-color:hsla(0,0%,100%,.9);--password-input-border:1px solid #dcdfe6;--login-title-color:#000;--login-container-box-shadow:0 0 12px rgba(0,0,0,.12);--login-container-hover-box-shadow:0 0 12px 4px rgba(0,0,0,.24);--login-submit-btn-bg-color:#487cb0e8;--login-title-glow-color:rgba(52,152,219,.5);--login-input-underline-color:#5b9bd3;--login-input-underline-secondary-color:#7ba9d8;--login-input-label-focus-color:#5b9bd3;--dialog-bg-color:hsla(0,0%,100%,.7);--dialog-box-shadow:0 0 10px 2px rgba(0,0,0,.1);--tabs-dropdown-popper-bg-color:hsla(0,0%,100%,.2);--tabs-dropdown-popper-shadow:0 0 10px 2px rgba(0,0,0,.1);--admin-header-content-bg-color:hsla(0,0%,100%,.75);--admin-header-content-hover-bg-color:hsla(0,0%,100%,.85);--admin-header-content-border-bottom:1px solid rgba(0,0,0,.1);--admin-header-content-box-shadow:0 4px 6px rgba(0,0,0,.1);--admin-header-content-hover-box-shadow:0 6px 10px rgba(0,0,0,.2);--admin-container-bg-color:linear-gradient(90deg,#fdf3f6,#e4f8ff);--admin-container-color:#333;--admin-dashborad-stats-bg-color:hsla(0,0%,100%,.9);--admin-dashborad-stats-hover-bg-color:#f0eaf8;--admin-dashboard-search-card-bg-color:hsla(0,0%,100%,.9);--admin-dashboard-stats-shadow:0 2px 4px rgba(0,0,0,.05);--admin-dashboard-stats-hover-shadow:0 4px 6px rgba(0,0,0,.1);--admin-dashboard-search-card-box-shadow:0 2px 6px rgba(0,0,0,.1);--admin-dashboard-btn-color:#000;--admin-dashboard-btn-bg-color:hsla(0,0%,100%,.3);--admin-dashboard-btn-shadow:0 2px 4px rgba(0,0,0,.3);--admin-dashboard-btn-hover-shadow:0 4px 6px rgba(0,0,0,.3);--admin-dashboard-imgcard-bg-color:hsla(0,0%,100%,.6);--admin-dashboard-imgcard-shadow:0 2px 12px rgba(0,0,0,.1);--admin-dashboard-tag-suggestion-bg-color:#fff;--admin-dashboard-tag-suggestion-border-color:#dcdfe6;--admin-dashboard-tag-suggestion-box-shadow:0 2px 12px rgba(0,0,0,.1);--admin-dashboard-tag-suggestion-item-hover-bg-color:#f5f7fa;--skeleton-bg-color:#e0e0e0;--skeleton-shimmer-color:hsla(0,0%,100%,.5);--admin-cuscfg-table-shadow:0 4px 6px rgba(0,0,0,.1);--admin-cuscfg-table-bg-color:hsla(0,0%,100%,.95);--admin-syscfg-tabs-border-color:#3c3c3c4c;--admin-purple:#b39ddb;--theme-toggle-color:#327ecc;--theme-toggle-bg-color:#327ecc;--admin-theme-toggle-color:#000;--admin-theme-toggle-bg-color:#000;--not-found-title-text-color:linear-gradient(90deg,#6b9788,#6285ac)}.dark{--bg-color:linear-gradient(90deg,#1c1c1c,#000);--popper-bg-color:rgba(0,0,0,.8);--popper-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--image-preview-filter:brightness(0.8);--text-bg-color:hsla(0,0%,100%,.1);--background-image-filter:brightness(0.6);--upload-list-card-bg-color:rgba(0,0,0,.7);--upload-list-card-border:1px solid #8fadc8;--upload-list-card-box-shadow:-1px 2px 4px #c1ddf5ae;--upload-list-item-border:1px solid #8fadc8;--upload-list-dashboard-bg-color:rgba(0,0,0,.7);--upload-list-dashboard-shadow:0 2px 10px hsla(0,0%,100%,.1);--upload-list-file-icon-color:#8fadc8;--el-upload-dragger-bg-color:rgba(0,0,0,.6);--el-upload-dragger-border:3px dashed #8fadc8;--el-upload-dragger-border-color:#8fadc8;--el-upload-dragger-hover-box-shadow:0 0 10px 5px #8fadc8;--el-upload-dragger-uniform-color:#8fadc8;--paste-card-textarea-border-color:#8fadc8;--paste-card-textarea-box-shadow:0 0 6px 1px #8fadc8;--el-icon--upload-color:#ffebcd;--upload-text-color:#faebd7;--upload-header-color:#ffebcd;--upload-main-title-color:linear-gradient(90deg,#effac3,#f3a060);--toolbar-button-bg-color:rgba(0,0,0,.7);--toolbar-button-shadow:-1px 2px 4px hsla(0,0%,100%,.3);--toolbar-button-shadow-hover:-1px 2px 4px hsla(0,0%,100%,.5);--toolbar-button-color:#bedefd;--modern-action-group-bg:rgba(64,158,255,.12);--modern-action-group-border:rgba(64,158,255,.2);--logo-glow-color:#8fadc8;--modern-action-group-shadow:rgba(0,0,0,.2);--modern-action-group-hover-bg:rgba(64,158,255,.18);--modern-action-group-hover-shadow:rgba(64,158,255,.25);--file-name-bg:linear-gradient(135deg,rgba(64,158,255,.12),rgba(64,158,255,.05));--file-name-border:rgba(64,158,255,.18);--file-name-hover-bg:linear-gradient(135deg,rgba(64,158,255,.18),rgba(64,158,255,.08));--file-name-hover-border:rgba(64,158,255,.3);--upload-list-item-bg:linear-gradient(135deg,rgba(30,30,30,.9),rgba(40,40,40,.7));--upload-list-item-border-color:rgba(64,158,255,.15);--upload-list-item-shadow:rgba(0,0,0,.15);--upload-list-item-hover-border:rgba(64,158,255,.35);--upload-list-item-hover-shadow:rgba(64,158,255,.2);--dashboard-title-bg:linear-gradient(135deg,rgba(64,158,255,.1),transparent);--page-footer-text-color:#f0f8ff;--page-footer-name-color:#faebd7;--login-container-bg-color:rgba(0,0,0,.6);--password-input-bg-color:rgba(77,77,77,.8);--password-input-border:1px solid #919191;--login-title-color:#f0f8ff;--login-container-box-shadow:-3px 2px 12px hsla(0,0%,100%,.12);--login-container-hover-box-shadow:-3px 2px 12px 4px hsla(0,0%,100%,.24);--login-submit-btn-bg-color:#8fadc8b4;--login-title-glow-color:rgba(143,173,200,.7);--login-input-underline-color:#a3c5e5;--login-input-underline-secondary-color:#b8d0e8;--login-input-label-focus-color:#a3c5e5;--dialog-bg-color:rgba(0,0,0,.8);--dialog-box-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--tabs-dropdown-popper-bg-color:rgba(0,0,0,.2);--tabs-dropdown-popper-shadow:0 0 10px 2px hsla(0,0%,100%,.1);--admin-header-content-bg-color:rgba(0,0,0,.75);--admin-header-content-hover-bg-color:rgba(0,0,0,.85);--admin-header-content-border-bottom:1px solid hsla(0,0%,100%,.1);--admin-header-content-box-shadow:0 4px 6px hsla(0,0%,100%,.1);--admin-header-content-hover-box-shadow:0 6px 10px hsla(0,0%,100%,.2);--admin-container-bg-color:linear-gradient(90deg,#464545,#2d2d2d);--admin-container-color:#f0f0f0;--admin-dashborad-stats-bg-color:rgba(0,0,0,.9);--admin-dashborad-stats-hover-bg-color:#1e1e1e;--admin-dashboard-stats-shadow:0 2px 4px hsla(0,0%,100%,.1);--admin-dashboard-stats-hover-shadow:0 4px 6px hsla(0,0%,100%,.15);--admin-dashboard-search-card-bg-color:rgba(0,0,0,.9);--admin-dashboard-search-card-box-shadow:0 2px 6px hsla(0,0%,100%,.1);--admin-dashboard-btn-color:#f0f0f0;--admin-dashboard-btn-bg-color:rgba(0,0,0,.3);--admin-dashboard-btn-shadow:0 2px 4px hsla(0,0%,100%,.3);--admin-dashboard-btn-hover-shadow:0 4px 6px hsla(0,0%,100%,.3);--admin-dashboard-imgcard-bg-color:rgba(0,0,0,.6);--admin-dashboard-imgcard-shadow:0 2px 12px hsla(0,0%,100%,.1);--admin-dashboard-tag-suggestion-bg-color:#2d2d2d;--admin-dashboard-tag-suggestion-border-color:#555;--admin-dashboard-tag-suggestion-box-shadow:0 2px 12px hsla(0,0%,100%,.1);--admin-dashboard-tag-suggestion-item-hover-bg-color:#3a3a3a;--skeleton-bg-color:#3a3a3a;--skeleton-shimmer-color:hsla(0,0%,100%,.15);--admin-cuscfg-table-shadow:0 4px 6px rgba(0,0,0,.3),0 0 1px 1px hsla(0,0%,100%,.05);--admin-cuscfg-table-bg-color:rgba(45,45,45,.95);--admin-syscfg-tabs-border-color:#cfcccc47;--theme-toggle-color:#bedefd;--theme-toggle-bg-color:#bedefd;--admin-theme-toggle-color:#fff;--admin-theme-toggle-bg-color:#fcfcfc;--not-found-title-text-color:linear-gradient(90deg,#effac3,#f3a060)}.el-message{border-radius:50px!important;border:none!important;padding:10px 30px!important;box-shadow:0 4px 16px rgba(0,0,0,.2)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:rgba(40,40,40,.85)!important;min-width:unset!important;top:30px!important}.el-message .el-message__icon{font-size:18px!important;color:#fff!important}.el-message .el-message__content{font-size:16px!important;font-weight:500!important;color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:.5px}.el-message--success .el-message__icon{color:#67c23a!important}.el-message--warning .el-message__icon{color:#e6a23c!important}.el-message--error .el-message__icon{color:#f56c6c!important}.dark .el-message{background-color:hsla(0,0%,100%,.2)!important;border:1px solid hsla(0,0%,100%,.1)!important;box-shadow:0 4px 16px rgba(0,0,0,.4)!important}.dialog-section{margin-bottom:24px;background:var(--el-fill-color-lighter);border-radius:12px;padding:16px;border:1px solid var(--el-border-color-lighter)}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--el-border-color-lighter)}.section-title{font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.section-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:14px;transition:color .2s}.section-help-icon:hover{color:var(--el-color-primary)}.section-content{display:flex;flex-direction:column;gap:16px}.radio-card-group{display:flex;flex-wrap:wrap;gap:10px}.radio-card-group .radio-card{margin-right:0;padding:10px 16px;border-radius:8px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);transition:all .2s ease}.radio-card-group .radio-card:hover{border-color:var(--el-color-primary-light-5)}.radio-card-group .radio-card.is-checked{background:linear-gradient(135deg,rgba(64,158,255,.1),rgba(56,189,248,.05));border-color:var(--el-color-primary)}.radio-card-group .el-radio__input{display:none}.radio-card-group .el-radio__label{padding-left:0;font-weight:500;display:flex;align-items:center;gap:8px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--el-bg-color);border-radius:8px;border:1px solid var(--el-border-color-lighter)}.setting-label{font-size:14px;font-weight:500;color:var(--el-text-color-primary)}.setting-input{width:60%;max-width:250px}.dialog-action{display:flex;justify-content:flex-end;padding-top:16px}.confirm-btn{min-width:100px;border-radius:8px}@media (max-width:768px){.el-message{padding:8px 18px!important;border-radius:30px!important}.el-message .el-message__icon{font-size:14px!important}.el-message .el-message__content{font-size:13px!important}.dialog-section{padding:12px}.radio-card-group{flex-direction:column}.radio-card-group .radio-card{width:100%;text-align:center}.setting-item{flex-direction:column;align-items:flex-start;gap:10px}.setting-item .radio-card-group.compact{width:100%}.setting-input{width:100%;max-width:none}.radio-card-group.compact{flex-direction:row;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.radio-card-group.compact .radio-card{width:100%;box-sizing:border-box;justify-content:center;flex:1}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;justify-content:center;gap:6px}.radio-card-group.compact .channel-icon{width:16px;text-align:center;flex-shrink:0}}.slider-item{flex-direction:column;align-items:flex-start;gap:12px}.slider-wrapper{display:flex;align-items:center;gap:12px;width:100%}.slider-wrapper .el-slider{flex:1;min-width:0}.slider-input{width:80px!important;flex-shrink:0}.slider-input .el-input__wrapper{padding:0 8px}.slider-input-wrapper{display:flex;align-items:center;gap:6px;flex-shrink:0}.slider-unit{font-size:13px;font-weight:500;color:var(--el-text-color-secondary)}@media (max-width:768px){.slider-wrapper{gap:8px;width:100%}.slider-input{width:80px!important}.setting-input{width:100%!important;max-width:none!important}.dialog-section{overflow:hidden}.radio-card-group.grid-2x2{grid-template-columns:repeat(2,1fr);gap:8px}.radio-card-group.grid-2x2 .radio-card{padding:10px 8px;font-size:13px}}.inline-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-help-icon:hover{color:var(--el-color-primary)}.radio-card-group.compact{gap:8px}.radio-card-group.compact .radio-card{padding:8px 12px;font-size:13px}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;gap:6px}.radio-card-group.compact .channel-icon{width:16px;text-align:center;flex-shrink:0}.radio-card-group.grid-2x2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.radio-card-group.grid-2x2 .radio-card{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:20px}.radio-icon{font-size:14px;opacity:.8;width:20px;text-align:center;display:inline-block}.radio-card.is-checked .radio-icon{opacity:1}.el-dialog,.el-message-box{border-radius:16px!important;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.2)!important;border:1px solid hsla(0,0%,100%,.5);background-color:hsla(0,0%,100%,.85)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.el-dialog__header,.el-message-box__header{border-bottom:none;padding:16px 20px!important;margin-right:0!important;position:relative}.el-dialog__header:after{background:linear-gradient(90deg,transparent,rgba(156,163,175,.5) 20%,rgba(156,163,175,.8) 50%,rgba(156,163,175,.5) 80%,transparent)}.el-dialog__header:after,.el-message-box__header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px}.el-message-box__header:after{background:linear-gradient(90deg,rgba(156,163,175,.8),rgba(156,163,175,.5) 30%,transparent 80%)}.el-dialog__body,.el-message-box__content{padding:20px!important}.el-dialog__footer,.el-message-box__btns{border-top:none;padding:12px 20px!important;background-color:transparent}.dark .el-dialog,.dark .el-message-box{background-color:rgba(30,30,30,.75)!important;border:1px solid hsla(0,0%,100%,.08)!important;box-shadow:0 12px 32px rgba(0,0,0,.5)!important}.dark .el-dialog__header,.dark .el-message-box__header{border-bottom:none}.dark .el-dialog__header:after{background:linear-gradient(90deg,transparent,rgba(156,163,175,.3) 20%,rgba(156,163,175,.5) 50%,rgba(156,163,175,.3) 80%,transparent)}.dark .el-message-box__header:after{background:linear-gradient(90deg,rgba(156,163,175,.5),rgba(156,163,175,.3) 30%,transparent 80%)}.dark .el-dialog__footer,.dark .el-message-box__btns{border-top:none;background-color:transparent}.dark .el-dialog__title,.dark .el-message-box__title{color:#e5eaf3}.dark .el-message-box__content{color:#cfd3dc}.el-loading-mask{border-radius:12px}.el-dropdown__popper.el-popper{border-radius:12px;border:none;background-color:var(--popper-bg-color);backdrop-filter:blur(10px);box-shadow:var(--popper-shadow)}.el-dropdown__popper.el-popper .el-dropdown-menu,.el-dropdown__popper.el-popper .el-dropdown-menu__item{background:none;border:none}.el-popper.is-light>.el-popper__arrow:before{background:none!important;border:none!important}*,body,html{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.os-theme-dark{--os-handle-bg:hsla(0,0%,50%,.5);--os-handle-bg-hover:hsla(0,0%,50%,.7);--os-handle-bg-active:hsla(0,0%,50%,.85)}.dark .os-theme-dark,html.dark .os-theme-dark{--os-handle-bg:hsla(0,0%,71%,.6);--os-handle-bg-hover:hsla(0,0%,71%,.75);--os-handle-bg-active:hsla(0,0%,71%,.9)}.os-theme-dark .os-scrollbar,.os-theme-dark .os-scrollbar-horizontal,.os-theme-dark .os-scrollbar-vertical{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-bg:transparent;--os-track-bg-hover:transparent;--os-track-bg-active:transparent}.os-theme-dark .os-scrollbar .os-scrollbar-handle{border-radius:10px!important;transition:background-color .2s ease,opacity .2s ease!important} \ No newline at end of file diff --git a/css/app.ee9a7bf2.css.gz b/css/app.ee9a7bf2.css.gz deleted file mode 100644 index 9cb420f179c71f0c0e396172fd33821fd8b98815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3750 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±b2xpuTB zn~Nj%0doVH)bJ1`F&QZZ2|1uFKbb5;296!EMwQ14O2Tr{RK#HjSt1~7bgO>A(p=YJ zR_in-{Q=<5*weVep}@Zsa2fGTtT}b&yzxVlfRzqUrwW{_b-jAy7k?}8HaUr7vv>v? z`Y{x|>-s=0lrDD9=Wj$rhB#7{E{CVOre(^?swS;|pon;63YA)^ZitMVT4jw&k$R4> z=+BqIU>&=z!&+&T(rs4bRd8hfdrbhAUu*bdJfFw?fh{)%QSUtFebw&Ak-NMf^IrRc ZW`A4ngYS15KQ#k6qo<*vJKw)h{y#Pt4Icmi literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 8ec5504..d0bd0d0 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 560fd6fb47ac6566b8afc50ffaed94299e27e3ed..2c31ab17b04073eb9a1374b6e2e90ce4842288c1 100644 GIT binary patch literal 510 zcmVn| zFRsNgYnfw#eT>3+@KloA1J618!?oQ1f^Ku<+nlg$z>R8n5^7JAfy|WD^RcUmEu|O4-<@bBJNDR~2$$8G zl&eKB*kjsT?lB3-NjIW;$d$HJ*cLMeLn)V6*XP~G%gdYcA&XX4EA%Z26=T`=SGBsh z!e_w4ijFJM`FXec;^PIH`li%5i*=Kk7mwK@vUrK!H!`ZOdv)EthN;%e@5n5z4D{%L z6NRDuiDwBRQ%VbT6GJ{s?6(^SJ9S_Pb2wwzQQAUG6fyY)c8)Dg3}4l(?$<$JP@P9p z!Z(j9<1q%uz;xJ;3lo;II(C)Se<8-r;LPE`_iBxsTUo7YtHVeB3x3sQ!`K4=03=)e Aq5uE@ literal 512 zcmV+b0{{IViwFP!000023WZa_Zrd;n{S{6-^b*@?o2CsQ8z_bW>rNYrVY>~oMB8d) zQIlu~{`(v&E=yWDEH6bRo%LIY=t^NVc>!I-rWA#vmh#}+lL{4r!;ERrUG{!; zuhRC7GSK8Gmf~Zxs#nY9sS|@qM;qAgk5Oi1cv#VKB|5$Cwz^(lqgicoosyV0nRs%TIz$%d=zSx^jk>LytG6)4eEBt*sgjN!LzVCtgJobk?8o{6b6Fg_%HqEeV@I&&aNv8j#*URNX0^rPBmV`8xp)=W0{{TW C*8d6s diff --git a/js/282.326e16ce.js b/js/282.326e16ce.js deleted file mode 100644 index 03f5f24..0000000 --- a/js/282.326e16ce.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[282],{200:function(e,t,o){"use strict";o(5331)},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 i}),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 C}),o.d(t,"EImageType",function(){return s}),function(e){e.PNG="image/png",e.JPEG="image/jpeg",e.GIF="image/gif"}(s||(s={}));var a=function(e,t,o,s){return new(o||(o=Promise))(function(l,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,n)}r((s=s.apply(e,t||[])).next())})};function i(e,t=.92,o=s.JPEG){return a(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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a=atob(o[1]);let i=a.length;const n=new Uint8Array(i);for(;i--;)n[i]=a.charCodeAt(i);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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a,i;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;i=e.width*t,a=e.height*t}else i=o.width||o.height*e.width/e.height||e.width,a=o.height||o.width*e.height/e.width||e.height;switch([5,6,7,8].some(e=>e===o.orientation)?(s.height=i,s.width=a):(s.height=a,s.width=i),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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a=o.split(",")[0].match(/:(.*?);/)[1],n=s.JPEG;l(t.type)&&(n=t.type,a=t.type);const r=yield d(o),u=yield m(r,Object.assign({},t)),h=yield i(u,t.quality,n),g=yield c(h,a);return g.size>e.size?e:g})}function C(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,a=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 C=[null,null];for(let e=1;e<=7;e++){b=yield i(f,y,h);const t=.75*b.length;if(7===e){(ot)&&(b=[b,...C].filter(e=>e).sort((e,t)=>Math.abs(.75*e.length-a)-Math.abs(.75*t.length-a))[0]);break}if(ot))break;C[0]=b,y+=Math.pow(.5,e+1)}}const k=yield c(b,u);return k.size>e.size?e:k})}}])})},2388:function(e,t,o){"use strict";function s(e){if(!e||""===e.trim())return{valid:!0};if("/"===e)return{valid:!0};if(!e.startsWith("/"))return{valid:!1,error:'目标目录必须以 "/" 开头'};const t=/[\\:\*\?"'<>\| \(\)\[\]\{\}#%\^`~;@&=\+\$,]/;return t.test(e)?{valid:!1,error:"目标目录包含非法字符,请使用合法的路径格式"}:e.includes("//")?{valid:!1,error:"目标目录不能包含连续的斜杠"}:{valid:!0}}o.d(t,{G:function(){return s}})},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"},6808:function(e,t,o){"use strict";o(5331),o(8785),o(200),o(5970),o(9104)},7618:function(e,t,o){"use strict";o.r(t),o.d(t,{default:function(){return Nt}});var s=o(8507),l=(o(5331),o(213),o(47)),a=(o(9648),o(6768)),i=o(4232);const n={class:"history-header"},r={class:"header-left"},c={class:"record-count"},d={class:"header-right"},u={class:"timeline-header"},p={class:"date-label"},h={key:0,class:"grid-view"},m={class:"grid-preview"},g=["src"],f=["src"],b={key:2,class:"file-icon-wrapper"},y={class:"grid-overlay"},C={class:"grid-actions"},k={class:"grid-info"},v=["title"],w={class:"upload-time"},F={key:1,class:"list-view"},L={class:"list-preview"},U=["src"],x=["src"],S={key:2,class:"file-icon-wrapper-small"},T={class:"list-info"},M=["title"],$=["title"],_={class:"list-meta"},E={class:"upload-time"},R={class:"list-actions"},A={key:0,class:"load-more-container"},I={key:0,class:"loading-indicator"},P={key:1,class:"load-more-hint"},N={key:1,class:"no-more-hint"},V={key:1,class:"empty-state"};function z(e,t,o,z,D,B){const W=(0,a.g2)("font-awesome-icon"),H=l.S2,j=s.R7;return(0,a.uX)(),(0,a.CE)("div",{class:(0,i.C4)(["history-container",{active:o.show}])},[(0,a.Lk)("div",n,[(0,a.Lk)("div",r,[t[4]||(t[4]=(0,a.Lk)("h2",null,"历史记录",-1)),(0,a.Lk)("span",c,"共 "+(0,i.v_)(D.totalCount)+" 条",1)]),(0,a.Lk)("div",d,[(0,a.bF)(j,{content:"切换视图",placement:"bottom"},{default:(0,a.k6)(()=>[(0,a.bF)(H,{circle:"",onClick:B.toggleViewMode},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"grid"===D.viewMode?"list":"th-large"},null,8,["icon"])]),_:1},8,["onClick"])]),_:1}),(0,a.bF)(j,{content:"清空记录",placement:"bottom"},{default:(0,a.k6)(()=>[(0,a.bF)(H,{circle:"",type:"danger",onClick:B.clearHistory},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])]),_:1}),(0,a.bF)(H,{circle:"",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"times"})]),_:1})])]),D.historyList.length>0?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"history-content",ref:"historyContent",onScroll:t[3]||(t[3]=(...e)=>B.handleScroll&&B.handleScroll(...e))},[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(B.groupedHistory,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.date,class:"history-group"},[(0,a.Lk)("div",u,[t[5]||(t[5]=(0,a.Lk)("div",{class:"timeline-dot"},null,-1)),(0,a.Lk)("span",p,(0,i.v_)(e.date),1)]),"grid"===D.viewMode?((0,a.uX)(),(0,a.CE)("div",h,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.items,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.time,class:"grid-item"},[(0,a.Lk)("div",m,[B.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[1]||(t[1]=(...e)=>B.handleImageError&&B.handleImageError(...e))},null,40,g)):B.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",{key:1,src:e.url,muted:""},null,8,f)):((0,a.uX)(),(0,a.CE)("div",b,[(0,a.bF)(W,{icon:"file",class:"file-icon"})])),(0,a.Lk)("div",y,[(0,a.Lk)("div",C,[(0,a.bF)(H,{circle:"",size:"default",type:"primary",onClick:t=>B.copyLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"copy"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"default",class:"action-btn-view",onClick:t=>B.openLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"default",type:"danger",onClick:t=>B.deleteItem(e)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])])])]),(0,a.Lk)("div",k,[(0,a.Lk)("div",{class:"file-name",title:e.name},(0,i.v_)(e.name),9,v),(0,a.Lk)("div",w,(0,i.v_)(B.formatTime(e.time)),1)])]))),128))])):((0,a.uX)(),(0,a.CE)("div",F,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.items,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.time,class:"list-item"},[(0,a.Lk)("div",L,[B.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[2]||(t[2]=(...e)=>B.handleImageError&&B.handleImageError(...e))},null,40,U)):B.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",{key:1,src:e.url,muted:""},null,8,x)):((0,a.uX)(),(0,a.CE)("div",S,[(0,a.bF)(W,{icon:"file"})]))]),(0,a.Lk)("div",T,[(0,a.Lk)("div",{class:"file-name",title:e.name},(0,i.v_)(e.name),9,M),(0,a.Lk)("div",{class:"file-url",title:e.url},(0,i.v_)(e.url),9,$)]),(0,a.Lk)("div",_,[(0,a.Lk)("div",E,(0,i.v_)(B.formatTime(e.time)),1)]),(0,a.Lk)("div",R,[(0,a.bF)(H,{circle:"",size:"small",type:"primary",onClick:t=>B.copyLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"copy"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"small",class:"action-btn-view",onClick:t=>B.openLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"small",type:"danger",onClick:t=>B.deleteItem(e)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])])]))),128))]))]))),128)),B.hasMore?((0,a.uX)(),(0,a.CE)("div",A,[D.loadingMore?((0,a.uX)(),(0,a.CE)("div",I,[(0,a.bF)(W,{icon:"spinner",spin:""}),t[6]||(t[6]=(0,a.Lk)("span",null,"加载中...",-1))])):((0,a.uX)(),(0,a.CE)("div",P,"下拉加载更多"))])):D.historyList.length>0?((0,a.uX)(),(0,a.CE)("div",N,"没有更多记录了")):(0,a.Q3)("",!0)],544)):((0,a.uX)(),(0,a.CE)("div",V,[(0,a.bF)(W,{icon:"history",class:"empty-icon"}),t[7]||(t[7]=(0,a.Lk)("p",null,"暂无上传记录",-1))]))],2)}o(4114),o(8111),o(2489),o(7588),o(1701),o(3110),o(8335);var D={name:"UploadHistory",props:{show:{type:Boolean,default:!1}},data(){return{historyList:[],allHistory:[],viewMode:"grid",pageSize:30,currentPage:0,loadingMore:!1,totalCount:0}},watch:{show(e){e&&this.resetAndLoad()}},computed:{hasMore(){return this.historyList.length{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:{resetAndLoad(){this.historyList=[],this.currentPage=0,this.loadAllHistory(),this.loadMore()},loadAllHistory(){try{const e=JSON.parse(localStorage.getItem("uploadHistory")||"[]");this.allHistory=e.sort((e,t)=>t.time-e.time),this.totalCount=this.allHistory.length}catch(e){console.error("Failed to load history",e),this.allHistory=[],this.totalCount=0}},loadMore(){!this.loadingMore&&this.hasMore&&(this.loadingMore=!0,setTimeout(()=>{const e=this.currentPage*this.pageSize,t=e+this.pageSize,o=this.allHistory.slice(e,t);this.historyList=[...this.historyList,...o],this.currentPage++,this.loadingMore=!1},50))},handleScroll(e){const t=e.target,o=t.scrollTop,s=t.scrollHeight,l=t.clientHeight;s-o-l<100&&this.loadMore()},toggleViewMode(){this.viewMode="grid"===this.viewMode?"list":"grid",localStorage.setItem("historyViewMode",this.viewMode)},clearHistory(){this.$confirm("确定要清空所有上传记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=[],this.allHistory=[],this.totalCount=0,this.currentPage=0,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),this.allHistory=this.allHistory.filter(t=>t.time!==e.time),this.totalCount=this.allHistory.length;try{localStorage.setItem("uploadHistory",JSON.stringify(this.allHistory)),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"),a=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0");return`${o}-${s}-${l} ${a}:${i}:${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)}}},B=o(1241);const W=(0,B.A)(D,[["render",z],["__scopeId","data-v-12200cbe"]]);var H=W,j=o(6975),X=o(1418),O=(o(333),o(4757)),Q=o(6018),q=(o(6808),o(200),o(9267)),G=(o(5616),o(5558)),J=(o(8075),o(6810)),K=(o(4396),o(4885),o(8559)),Y=(o(5970),o(9655)),Z=(o(2893),o(2086)),ee=(o(670),o(8830),o(3597),o(4253)),te=o(683),oe=(o(5385),o(9623)),se=(o(6711),o(7358)),le=o(813);o(4896);const ae={class:"upload-form"},ie={class:"upload-card-glow",ref:"uploadCardGlow"},ne={key:0,class:"upload-card"},re={class:"paste-card-actions"},ce={class:"upload-list-dashboard-action"},de={class:"modern-action-group"},ue={class:"modern-dropdown-item-content"},pe={class:"modern-action-btn modern-action-btn-danger"},he=["href"],me={key:0,style:{width:"10vw","border-radius":"12px"},autoplay:"",muted:"",playsinline:"",loop:""},ge=["src"],fe=["src","onError"],be={key:2,style:{width:"10vw","border-radius":"12px"}},ye={class:"upload-list-item-content"},Ce={class:"upload-list-item-name-wrapper"},ke={key:0,class:"upload-list-item-url"},ve={class:"upload-list-item-url-row"},we={class:"upload-list-item-url-row"},Fe={key:1,class:"upload-list-item-progress"},Le={class:"upload-list-item-action"},Ue=["onClick"],xe=["onClick"];function Se(e,t,n,r,c,d){const u=(0,a.g2)("CameraFilled"),p=le.tk,h=se.j5,m=oe.WK,g=l.S2,f=J.Zh,b=J.MQ,y=te.Ik,C=(0,a.g2)("List"),k=(0,a.g2)("Checked"),v=(0,a.g2)("Failed"),w=ee.$g,F=(0,a.g2)("font-awesome-icon"),L=s.R7,U=G.qi,x=Z.c6,S=Z.Iy,T=Z.dW,M=Y.ve,$=(0,a.g2)("Link"),_=(0,a.g2)("Delete"),E=K.kA;return(0,a.uX)(),(0,a.CE)("div",ae,[(0,a.Lk)("div",{class:"upload-card-wrapper",onMousemove:t[0]||(t[0]=(...e)=>d.handleUploadCardMouseMove&&d.handleUploadCardMouseMove(...e)),onMouseleave:t[1]||(t[1]=(...e)=>d.handleUploadCardMouseLeave&&d.handleUploadCardMouseLeave(...e))},[(0,a.Lk)("div",ie,null,512),"default"===n.uploadMethod?((0,a.uX)(),(0,a.Wv)(h,{key:0,class:(0,i.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,a.k6)(()=>[(0,a.bF)(p,{class:(0,i.C4)(["el-icon--upload",{"upload-list-busy":c.fileList.length}])},{default:(0,a.k6)(()=>[(0,a.bF)(u)]),_:1},8,["class"]),(0,a.Lk)("div",{class:(0,i.C4)(["el-upload__text",{"upload-list-busy":c.fileList.length}])},[...t[7]||(t[7]=[(0,a.Lk)("em",null,"拖拽",-1),(0,a.eW)(),(0,a.Lk)("em",null,"点击",-1),(0,a.eW)(" 或 ",-1),(0,a.Lk)("em",null,"Ctrl + V",-1),(0,a.eW)(" 粘贴上传",-1)])],2)]),_:1},8,["class","http-request","onSuccess","on-error","before-upload","on-progress","file-list"])):(0,a.Q3)("",!0)],32),"paste"===n.uploadMethod?((0,a.uX)(),(0,a.CE)("div",ne,[(0,a.bF)(y,{class:(0,i.C4)(["paste-card",{"is-uploading":c.uploading,"upload-card-busy":c.fileList.length}])},{default:(0,a.k6)(()=>[(0,a.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,a.Lk)("div",re,[(0,a.bF)(g,{class:"paste-card-upload-button",type:"primary",size:d.pasteCardMethodButtonSize,onClick:d.handleUploadPasteUrls},{default:(0,a.k6)(()=>[...t[8]||(t[8]=[(0,a.eW)(" 上 传 ",-1)])]),_:1},8,["size","onClick"]),(0,a.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,a.k6)(()=>[(0,a.bF)(f,{label:"save"},{default:(0,a.k6)(()=>[...t[9]||(t[9]=[(0,a.eW)("转存",-1)])]),_:1}),(0,a.bF)(f,{label:"external"},{default:(0,a.k6)(()=>[...t[10]||(t[10]=[(0,a.eW)("外链",-1)])]),_:1})]),_:1},8,["modelValue","size"])])]),_:1},8,["class"])])):(0,a.Q3)("",!0),(0,a.bF)(y,{class:(0,i.C4)(["upload-list-card",{"upload-list-busy":c.fileList.length,"is-uploading":c.uploading}])},{default:(0,a.k6)(()=>[(0,a.Lk)("div",{class:(0,i.C4)(["upload-list-container",{"upload-list-busy":c.fileList.length}])},[(0,a.bF)(E,{onScroll:d.handleScroll,ref:"scrollContainer"},{default:(0,a.k6)(()=>[(0,a.Lk)("div",{class:(0,i.C4)(["upload-list-dashboard",{"list-scrolled":c.listScrolled}])},[(0,a.bF)(w,{class:"upload-list-dashboard-title"},{default:(0,a.k6)(()=>[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(C)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadingCount+d.waitingCount)+" ",1),(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(k)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadSuccessCount)+" ",1),(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(v)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadErrorCount),1)]),_:1}),(0,a.Lk)("div",ce,[(0,a.Lk)("div",de,[(0,a.bF)(L,{disabled:d.disableTooltip,content:"整体复制",placement:"top"},{default:(0,a.k6)(()=>[(0,a.Lk)("button",{class:"modern-action-btn",onClick:t[4]||(t[4]=(...e)=>d.copyAll&&d.copyAll(...e))},[(0,a.bF)(F,{icon:"copy"})])]),_:1},8,["disabled"]),(0,a.bF)(L,{disabled:d.disableTooltip,content:"失败重试",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(T,null,{dropdown:(0,a.k6)(()=>[(0,a.bF)(S,{class:"modern-dropdown-menu"},{default:(0,a.k6)(()=>[(0,a.bF)(x,null,{default:(0,a.k6)(()=>[(0,a.Lk)("div",ue,[t[11]||(t[11]=(0,a.Lk)("span",null,"自动重试",-1)),(0,a.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,a.k6)(()=>[(0,a.Lk)("button",{class:"modern-action-btn",onClick:t[5]||(t[5]=(...e)=>d.retryError&&d.retryError(...e))},[(0,a.bF)(F,{icon:"redo"})])]),_:1})]),_:1},8,["disabled"]),(0,a.bF)(L,{disabled:d.disableTooltip,content:"清空列表",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(T,null,{dropdown:(0,a.k6)(()=>[(0,a.bF)(S,{class:"modern-dropdown-menu"},{default:(0,a.k6)(()=>[(0,a.bF)(x,{onClick:d.clearFileList},{default:(0,a.k6)(()=>[...t[12]||(t[12]=[(0,a.eW)("清空全部",-1)])]),_:1},8,["onClick"]),(0,a.bF)(x,{onClick:d.clearSuccessList},{default:(0,a.k6)(()=>[...t[13]||(t[13]=[(0,a.eW)("清空已上传",-1)])]),_:1},8,["onClick"])]),_:1})]),default:(0,a.k6)(()=>[(0,a.Lk)("button",pe,[(0,a.bF)(F,{icon:"trash-alt"})])]),_:1})]),_:1},8,["disabled"])])])],2),((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(c.fileList.slice().reverse(),e=>((0,a.uX)(),(0,a.CE)("div",{class:"upload-list-item",key:e.name,span:8},[(0,a.Lk)("a",{href:e.url,target:"_blank",class:"upload-list-item-preview"},[d.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",me,[(0,a.Lk)("source",{src:e.url,type:"video/mp4"},null,8,ge),t[14]||(t[14]=(0,a.eW)(" Your browser does not support the video tag. ",-1))])):d.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:1,style:{width:"10vw","border-radius":"12px"},src:e.url,onError:t=>e.url=o(6682)},null,40,fe)):((0,a.uX)(),(0,a.CE)("div",be,[(0,a.bF)(F,{icon:"file",class:"file-icon"})]))],8,he),(0,a.Lk)("div",ye,[(0,a.Lk)("div",Ce,[(0,a.bF)(w,{class:"upload-list-item-name",truncated:""},{default:(0,a.k6)(()=>[(0,a.eW)((0,i.v_)(d.truncateFilename(e.name)),1)]),_:2},1024)]),"done"===e.status?((0,a.uX)(),(0,a.CE)("div",ke,[(0,a.Lk)("div",ve,[(0,a.bF)(m,{modelValue:e.finalURL,"onUpdate:modelValue":t=>e.finalURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[15]||(t[15]=[(0,a.eW)("URL",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,a.bF)(m,{modelValue:e.mdURL,"onUpdate:modelValue":t=>e.mdURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[16]||(t[16]=[(0,a.eW)("MarkDown",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])]),(0,a.Lk)("div",we,[(0,a.bF)(m,{modelValue:e.htmlURL,"onUpdate:modelValue":t=>e.htmlURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[17]||(t[17]=[(0,a.eW)("HTML",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,a.bF)(m,{modelValue:e.ubbURL,"onUpdate:modelValue":t=>e.ubbURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[18]||(t[18]=[(0,a.eW)("BBCode",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])])])):((0,a.uX)(),(0,a.CE)("div",Fe,[(0,a.bF)(M,{percentage:e.progreess,status:e.status,"show-text":!1},null,8,["percentage","status"])]))]),(0,a.Lk)("div",Le,[(0,a.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-primary",onClick:t=>d.handleCopy(e)},[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)($)]),_:1})],8,Ue),(0,a.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-danger",onClick:t=>d.handleRemove(e)},[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(_)]),_:1})],8,xe)])]))),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 Te=o(457),Me=o(6334),$e=o(8401),_e={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},channelName:{type:String,default:"",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,$e.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 a=l.length+4,i=t-a-3;return i<=0?e.substring(0,t-3)+"...":s.substring(0,i)+"..."+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,a="external"===s?"default":this.uploadNameType,i=new AbortController;this.abortControllers.set(e.file.uid,i);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,Te.A)({url:"/upload?serverCompress="+o+"&uploadChannel="+s+(this.channelName?"&channelName="+encodeURIComponent(this.channelName):"")+"&uploadNameType="+a+"&autoRetry="+l+"&uploadFolder="+this.uploadFolder,method:"post",data:n,withAuthCode:!0,signal:i.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,a=e.file.size,i=Math.ceil(a/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",i.toString());const p=await(0,Te.A)({url:"/upload?serverCompress="+n+"&uploadChannel="+o+(this.channelName?"&channelName="+encodeURIComponent(this.channelName):"")+"&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=i,m.uploadId=h);const g=3,f=new Array(i).fill(0);let b=0,y=!1,C="",k=!1;const v=async t=>{if(y||k)return;const d=t*l,p=Math.min(d+l,a),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",i.toString()),g.append("uploadId",h),g.append("originalFileName",e.file.name),g.append("originalFileType",e.file.type);let b=0;const v=3;while(b{if(y||k)return;const s=Math.round(o.loaded/o.total*100);f[t]=s;const l=Math.round(f.reduce((e,t)=>e+t,0)/i);e.onProgress({percent:l,file:e.file})}})}catch(u){if("CanceledError"===u.name||"ERR_CANCELED"===u.code)return k=!0,void console.log("分块上传已取消:",e.file.name);if(b++,console.warn(`分块 ${t+1}/${i} 上传失败 (重试 ${b}/${v}):`,u),b>=v)throw y=!0,C=`分块 ${t+1}/${i} 上传失败: ${u.message}`,new Error(C);await new Promise(e=>setTimeout(e,2e3*b))}}},w=[];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,Te.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 a=s.type.includes("image")&&this.customerCompress&&s.size/1024/1024>this.compressBar,i=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(a)Me.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 a=this.uploadCount++,i=this.serverCompress&&l.size/1024/1024<10&&"telegram"===this.uploadChannel;0===a?n(l,i):setTimeout(()=>{n(l,i),this.uploadCount--},300*a)}).catch(e=>{this.$message.error(s.name+"压缩失败,无法上传!"),o(e)});else if(i){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`,i=`[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:a,ubbURL:i,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)&&Te.A.post("/api/fetchRes",{url:e},{responseType:"blob"}).then(o=>{o.headers["content-type"];if(200!=o.status)throw new Error("URL地址请求失败");{const a=o.headers["content-disposition"];if(a){const e=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/,t=/filename\*\s*=\s*UTF-8''([^;\n]*)/;let o=e.exec(a);if(null!=o&&o[1]){s=o[1].replace(/['"]/g,"");try{s=decodeURIComponent(s)}catch(l){s=""}}""===s&&(o=t.exec(a),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 i=o.data,n=new File([i],s,{type:i.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 a=await(0,Te.A)({url:"/api/huggingface/getUploadUrl",method:"post",data:{fileSize:e.file.size,fileName:e.file.name,fileType:e.file.type,sha256:t,fileSample:l,channelName:this.channelName,uploadNameType:this.uploadNameType,uploadFolder:this.uploadFolder},withAuthCode:!0,signal:o.signal});if(!a.data.success)throw new Error(a.data.error||"Failed to get upload URL");const i=a.data;if(console.log("Upload info:",i),i.alreadyExists)console.log("File already exists in LFS, skipping upload"),e.onProgress({percent:90,file:e.file});else if(i.needsLfs&&i.uploadAction){const{href:t,header:s}=i.uploadAction;if(s?.chunk_size)await this.uploadToHuggingFaceMultipart(e,i,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,Te.A)({url:"/api/huggingface/commitUpload",method:"post",data:{fullId:i.fullId,filePath:i.filePath,sha256:t,fileSize:e.file.size,fileName:e.file.name,fileType:e.file.type,channelName:i.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:a}=s,i=parseInt(a.chunk_size),n=Object.keys(a).filter(e=>/^[0-9]+$/.test(e));console.log(`Multipart upload: ${n.length} parts, chunk size: ${i}`);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*i,l=Math.min(s+i,e.file.size),n=e.file.slice(s,l);console.log(`Uploading part ${u}/${c}`);const d=await fetch(a[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,i=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=a(s[e-15],7)^a(s[e-15],18)^s[e-15]>>>3,o=a(s[e-2],17)^a(s[e-2],19)^s[e-2]>>>10;s[e]=s[e-16]+t+s[e-7]+o>>>0}let[l,i,n,r,c,d,u,p]=t;for(let t=0;t<64;t++){const o=a(c,6)^a(c,11)^a(c,25),h=c&d^~c&u,m=p+o+h+e[t]+s[t]>>>0,g=a(l,2)^a(l,13)^a(l,22),f=l&i^l&n^i&n,b=g+f>>>0;p=u,u=d,d=c,c=r+m>>>0,r=n,n=i,i=l,l=m+b>>>0}t[0]=t[0]+l>>>0,t[1]=t[1]+i>>>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,a=Math.min(l,e.length);o.set(e.subarray(0,a),s),s+=a,t=a,64===s&&(i(o),s=0)}while(t+64<=e.length)i(e.subarray(t,t+64)),t+=64;t56&&(o.fill(0,s,64),i(o),s=0),o.fill(0,s,56);const a=new DataView(o.buffer);a.setUint32(56,Math.floor(e/4294967296),!1),a.setUint32(60,e>>>0,!1),i(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"),a=l.getContext("2d");s.onload=()=>{l.width=s.width,l.height=s.height,a.drawImage(s,0,0),l.toBlob(l=>{if(l){const o=e.name,s=o.lastIndexOf("."),a=s>0?o.substring(0,s)+".webp":o+".webp",i=new File([l],a,{type:"image/webp"});i.uid=e.uid,t(i)}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 Ee=(0,B.A)(_e,[["render",Se],["__scopeId","data-v-6a7fc61f"]]);var Re=Ee,Ae=o(732),Ie=o(4453);const Pe={class:"container"},Ne={class:"upload-home"},Ve={href:"https://cfbed.sanyue.de/qa/",target:"_blank",class:"info-container"},ze={class:"toolbar-manage"},De={class:"toolbar"},Be={class:"header"},We={class:"title"},He={class:"main-title",href:"https://github.com/MarSeventh/CloudFlare-ImgBed",target:"_blank"},je={class:"dialog-section"},Xe={class:"section-content"},Oe={class:"dialog-section"},Qe={class:"section-header"},qe={class:"section-content"},Ge={class:"setting-item"},Je={key:0,class:"setting-item"},Ke={class:"dialog-action"},Ye={class:"dialog-section"},Ze={class:"section-content"},et={class:"setting-item"},tt={key:0,class:"setting-item"},ot={class:"setting-label"},st={class:"setting-item"},lt={class:"setting-item"},at={class:"setting-label"},it={class:"dialog-section"},nt={class:"section-content"},rt={class:"dialog-section"},ct={class:"section-header"},dt={class:"section-content"},ut={class:"setting-item"},pt={class:"setting-label"},ht={class:"setting-item"},mt={key:0,class:"setting-item slider-item"},gt={class:"setting-label"},ft={class:"slider-wrapper"},bt={class:"slider-input-wrapper"},yt={key:1,class:"setting-item slider-item"},Ct={class:"setting-label"},kt={class:"slider-wrapper"},vt={class:"slider-input-wrapper"},wt={key:0,class:"dialog-section"},Ft={class:"section-header"},Lt={class:"section-content"},Ut={class:"setting-item"},xt={class:"dialog-action"},St=["innerHTML"],Tt={class:"dialog-footer"};function Mt(e,t,o,n,r,c){const d=Ie.A,u=(0,a.g2)("font-awesome-icon"),p=s.R7,h=oe.WK,m=l.S2,g=Z.c6,f=Z.Iy,b=Z.dW,y=Ae.A,C=Re,k=J.ll,v=J.MQ,w=G.qi,F=q.kZ,L=Q.P9,U=Q.AV,x=O.B8,S=X.lq,T=j.A,M=H;return(0,a.uX)(),(0,a.CE)("div",Pe,[(0,a.Lk)("div",Ne,[(0,a.bF)(d,{class:"toggle-dark-button desktop-only"}),(0,a.bF)(p,{content:"查看文档",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.Lk)("a",Ve,[(0,a.bF)(u,{icon:"book",class:"info-icon",size:"lg"})])]),_:1},8,["disabled"]),(0,a.bF)(h,{class:(0,i.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,a.bF)(p,{content:"切换上传方式",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"upload-method-button desktop-only",onClick:c.handleChangeUploadMethod},{default:(0,a.k6)(()=>["default"===r.uploadMethod?((0,a.uX)(),(0,a.Wv)(u,{key:0,icon:"folder-open",class:"upload-method-icon",size:"lg"})):"paste"===r.uploadMethod?((0,a.uX)(),(0,a.Wv)(u,{key:1,icon:"paste",class:"upload-method-icon",size:"lg"})):(0,a.Q3)("",!0)]),_:1},8,["onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{content:"上传记录",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"history-button desktop-only",onClick:t[3]||(t[3]=e=>r.showHistory=!0)},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"history",class:"history-icon",size:"lg"})]),_:1})]),_:1},8,["disabled"]),c.announcementAvailable?((0,a.uX)(),(0,a.Wv)(p,{key:0,content:"查看公告",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"announcement-button desktop-only",onClick:c.handleShowAnnouncement},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"bullhorn",class:"announcement-icon",size:"lg"})]),_:1},8,["onClick"])]),_:1},8,["disabled"])):(0,a.Q3)("",!0),(0,a.bF)(b,{class:"mobile-more-dropdown mobile-only",trigger:"click",onCommand:c.handleMobileMenuCommand},{dropdown:(0,a.k6)(()=>[(0,a.bF)(f,null,{default:(0,a.k6)(()=>[(0,a.bF)(g,{command:"toggleTheme"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:c.getThemeIcon(),style:{"margin-right":"8px"}},null,8,["icon"]),(0,a.eW)(" "+(0,i.v_)(c.getThemeText()),1)]),_:1}),(0,a.bF)(g,{command:"toggleUploadMethod"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"default"===r.uploadMethod?"paste":"folder-open",style:{"margin-right":"8px"}},null,8,["icon"]),(0,a.eW)(" "+(0,i.v_)("default"===r.uploadMethod?"粘贴上传":"文件上传"),1)]),_:1}),(0,a.bF)(g,{command:"showHistory"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"history",style:{"margin-right":"8px"}}),t[26]||(t[26]=(0,a.eW)(" 上传记录 ",-1))]),_:1}),(0,a.bF)(g,{command:"showAnnouncement",disabled:!c.announcementAvailable},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"bullhorn",style:{"margin-right":"8px"}}),t[27]||(t[27]=(0,a.eW)(" 查看公告 ",-1))]),_:1},8,["disabled"])]),_:1})]),default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"mobile-more-button"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"ellipsis-v",size:"lg"})]),_:1})]),_:1},8,["onCommand"]),(0,a.Lk)("div",ze,[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-manage-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleOpenToolbar,circle:""},{default:(0,a.k6)(()=>[r.isToolBarOpen?((0,a.uX)(),(0,a.Wv)(u,{key:1,icon:"times",class:"manage-icon",size:"lg"})):((0,a.uX)(),(0,a.Wv)(u,{key:0,icon:"bars",class:"manage-icon",size:"lg"}))]),_:1},8,["class","onClick"])]),(0,a.Lk)("div",De,[(0,a.bF)(p,{disabled:c.disableTooltip,content:"上传设置",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button compress-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openCompressDialog,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cloud-upload",class:"compress-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"链接格式",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button link-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openUrlDialog,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"link",class:"link-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"系统管理",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button config-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleManage,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cog",class:"config-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"退出登录",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button sign-out-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleLogout,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"sign-out-alt",class:"sign-out-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"])]),(0,a.Lk)("div",Be,[(0,a.bF)(y,{useConfigLink:!0}),(0,a.Lk)("h1",We,[(0,a.Lk)("a",He,(0,i.v_)(c.ownerName),1),t[28]||(t[28]=(0,a.eW)(" ImgHub",-1))])]),(0,a.bF)(C,{selectedUrlForm:r.selectedUrlForm,customerCompress:r.customerCompress,compressQuality:r.compressQuality,compressBar:r.compressBar,serverCompress:r.serverCompress,uploadChannel:r.uploadChannel,channelName:r.channelName,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","channelName","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadMethod","uploadFolder","convertToWebp"]),(0,a.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,a.k6)(()=>[(0,a.Lk)("div",je,[t[33]||(t[33]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"默认复制链接")],-1)),(0,a.Lk)("div",Xe,[(0,a.bF)(v,{modelValue:r.selectedUrlForm,"onUpdate:modelValue":t[4]||(t[4]=e=>r.selectedUrlForm=e),onChange:c.changeUrlForm,class:"radio-card-group grid-2x2"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{value:"url",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"link",class:"radio-icon"}),t[29]||(t[29]=(0,a.Lk)("span",null,"原始链接",-1))]),_:1}),(0,a.bF)(k,{value:"md",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"code",class:"radio-icon"}),t[30]||(t[30]=(0,a.Lk)("span",null,"MarkDown",-1))]),_:1}),(0,a.bF)(k,{value:"html",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"code-branch",class:"radio-icon"}),t[31]||(t[31]=(0,a.Lk)("span",null,"HTML",-1))]),_:1}),(0,a.bF)(k,{value:"ubb",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"quote-right",class:"radio-icon"}),t[32]||(t[32]=(0,a.Lk)("span",null,"BBCode",-1))]),_:1})]),_:1},8,["modelValue","onChange"])])]),(0,a.Lk)("div",Oe,[(0,a.Lk)("div",Qe,[t[34]||(t[34]=(0,a.Lk)("span",{class:"section-title"},"自定义链接",-1)),(0,a.bF)(p,{content:"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入",placement:"top","raw-content":""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",qe,[(0,a.Lk)("div",Ge,[t[35]||(t[35]=(0,a.Lk)("span",{class:"setting-label"},"启用自定义",-1)),(0,a.bF)(w,{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,a.uX)(),(0,a.CE)("div",Je,[t[36]||(t[36]=(0,a.Lk)("span",{class:"setting-label"},"自定义前缀",-1)),(0,a.bF)(h,{modelValue:r.customUrlPrefix,"onUpdate:modelValue":t[6]||(t[6]=e=>r.customUrlPrefix=e),placeholder:"请输入自定义链接前缀",class:"setting-input"},null,8,["modelValue"])])):(0,a.Q3)("",!0)])]),(0,a.Lk)("div",Ke,[(0,a.bF)(m,{type:"primary",onClick:t[7]||(t[7]=e=>r.showUrlDialog=!1),class:"confirm-btn"},{default:(0,a.k6)(()=>[...t[37]||(t[37]=[(0,a.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"]),(0,a.bF)(F,{title:"上传设置",modelValue:r.showCompressDialog,"onUpdate:modelValue":t[22]||(t[22]=e=>r.showCompressDialog=e),width:c.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,a.k6)(()=>[(0,a.Lk)("div",Ye,[t[47]||(t[47]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"上传渠道")],-1)),(0,a.Lk)("div",Ze,[(0,a.Lk)("div",et,[t[43]||(t[43]=(0,a.Lk)("span",{class:"setting-label"},"渠道类型",-1)),(0,a.bF)(v,{modelValue:r.uploadChannel,"onUpdate:modelValue":t[9]||(t[9]=e=>r.uploadChannel=e),class:"radio-card-group compact"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{label:"telegram",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"paper-plane",class:"channel-icon"}),t[38]||(t[38]=(0,a.Lk)("span",null,"TG",-1))]),_:1}),(0,a.bF)(k,{label:"cfr2",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cloud",class:"channel-icon"}),t[39]||(t[39]=(0,a.Lk)("span",null,"R2",-1))]),_:1}),(0,a.bF)(k,{label:"s3",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"database",class:"channel-icon"}),t[40]||(t[40]=(0,a.Lk)("span",null,"S3",-1))]),_:1}),(0,a.bF)(k,{label:"discord",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"comments",class:"channel-icon"}),t[41]||(t[41]=(0,a.Lk)("span",null,"DC",-1))]),_:1}),(0,a.bF)(k,{label:"huggingface",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"robot",class:"channel-icon"}),t[42]||(t[42]=(0,a.Lk)("span",null,"HF",-1))]),_:1})]),_:1},8,["modelValue"])]),c.currentChannelList.length>1?((0,a.uX)(),(0,a.CE)("div",tt,[(0,a.Lk)("span",ot,[t[44]||(t[44]=(0,a.eW)(" 渠道名称 ",-1)),(0,a.bF)(p,{content:"选择具体的渠道名称,不选择则使用负载均衡或默认渠道",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(U,{modelValue:r.channelName,"onUpdate:modelValue":t[10]||(t[10]=e=>r.channelName=e),placeholder:"自动选择",clearable:"",class:"setting-input"},{default:(0,a.k6)(()=>[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(c.currentChannelList,e=>((0,a.uX)(),(0,a.Wv)(L,{key:e.name,label:e.name,value:e.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):(0,a.Q3)("",!0),(0,a.Lk)("div",st,[t[45]||(t[45]=(0,a.Lk)("span",{class:"setting-label"},"上传目录",-1)),(0,a.bF)(h,{modelValue:r.uploadFolder,"onUpdate:modelValue":t[11]||(t[11]=e=>r.uploadFolder=e),placeholder:"请输入上传目录路径",class:"setting-input"},null,8,["modelValue"])]),(0,a.Lk)("div",lt,[(0,a.Lk)("span",at,[t[46]||(t[46]=(0,a.eW)(" 自动切换 ",-1)),(0,a.bF)(p,{content:"对于非分块上传文件,上传失败自动切换到其他渠道上传",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(w,{modelValue:r.autoRetry,"onUpdate:modelValue":t[12]||(t[12]=e=>r.autoRetry=e)},null,8,["modelValue"])])])]),(0,a.Lk)("div",it,[t[52]||(t[52]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"文件命名方式")],-1)),(0,a.Lk)("div",nt,[(0,a.bF)(v,{modelValue:r.uploadNameType,"onUpdate:modelValue":t[13]||(t[13]=e=>r.uploadNameType=e),class:"radio-card-group grid-2x2"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{label:"default",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cog",class:"radio-icon"}),t[48]||(t[48]=(0,a.Lk)("span",null,"默认",-1))]),_:1}),(0,a.bF)(k,{label:"index",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"hashtag",class:"radio-icon"}),t[49]||(t[49]=(0,a.Lk)("span",null,"仅前缀",-1))]),_:1}),(0,a.bF)(k,{label:"origin",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"file-signature",class:"radio-icon"}),t[50]||(t[50]=(0,a.Lk)("span",null,"仅原名",-1))]),_:1}),(0,a.bF)(k,{label:"short",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"compress-alt",class:"radio-icon"}),t[51]||(t[51]=(0,a.Lk)("span",null,"短链接",-1))]),_:1})]),_:1},8,["modelValue"])])]),(0,a.Lk)("div",rt,[(0,a.Lk)("div",ct,[t[53]||(t[53]=(0,a.Lk)("span",{class:"section-title"},"文件预处理",-1)),(0,a.bF)(p,{content:"上传前在本地进行格式转换和压缩,仅对图片文件生效",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",dt,[(0,a.Lk)("div",ut,[(0,a.Lk)("span",pt,[t[54]||(t[54]=(0,a.eW)(" 转换为WebP ",-1)),(0,a.bF)(p,{content:"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(w,{modelValue:r.convertToWebp,"onUpdate:modelValue":t[14]||(t[14]=e=>r.convertToWebp=e)},null,8,["modelValue"])]),(0,a.Lk)("div",ht,[t[55]||(t[55]=(0,a.Lk)("span",{class:"setting-label"},"文件压缩",-1)),(0,a.bF)(w,{modelValue:r.customerCompress,"onUpdate:modelValue":t[15]||(t[15]=e=>r.customerCompress=e)},null,8,["modelValue"])]),r.customerCompress?((0,a.uX)(),(0,a.CE)("div",mt,[(0,a.Lk)("span",gt,[t[56]||(t[56]=(0,a.eW)(" 压缩阈值 ",-1)),(0,a.bF)(p,{content:"设置图片大小阈值,超过此值将自动压缩,单位MB",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.Lk)("div",ft,[(0,a.bF)(x,{modelValue:r.compressBar,"onUpdate:modelValue":t[16]||(t[16]=e=>r.compressBar=e),min:1,max:20,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","format-tooltip"]),(0,a.Lk)("div",bt,[(0,a.bF)(S,{modelValue:r.compressBar,"onUpdate:modelValue":t[17]||(t[17]=e=>r.compressBar=e),min:1,max:20,step:1,"value-on-clear":1,class:"slider-input","controls-position":"right"},null,8,["modelValue"]),t[57]||(t[57]=(0,a.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,a.Q3)("",!0),r.customerCompress?((0,a.uX)(),(0,a.CE)("div",yt,[(0,a.Lk)("span",Ct,[t[58]||(t[58]=(0,a.eW)(" 期望大小 ",-1)),(0,a.bF)(p,{content:"设置压缩后图片大小期望值,单位MB",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.Lk)("div",kt,[(0,a.bF)(x,{modelValue:r.compressQuality,"onUpdate:modelValue":t[18]||(t[18]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","max","format-tooltip"]),(0,a.Lk)("div",vt,[(0,a.bF)(S,{modelValue:r.compressQuality,"onUpdate:modelValue":t[19]||(t[19]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,precision:1,"value-on-clear":.5,class:"slider-input","controls-position":"right"},null,8,["modelValue","max"]),t[59]||(t[59]=(0,a.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,a.Q3)("",!0)])]),"telegram"===r.uploadChannel?((0,a.uX)(),(0,a.CE)("div",wt,[(0,a.Lk)("div",Ft,[t[60]||(t[60]=(0,a.Lk)("span",{class:"section-title"},"服务端压缩",-1)),(0,a.bF)(p,{content:"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题",placement:"top","raw-content":""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",Lt,[(0,a.Lk)("div",Ut,[t[61]||(t[61]=(0,a.Lk)("span",{class:"setting-label"},"开启压缩",-1)),(0,a.bF)(w,{modelValue:r.serverCompress,"onUpdate:modelValue":t[20]||(t[20]=e=>r.serverCompress=e)},null,8,["modelValue"])])])])):(0,a.Q3)("",!0),(0,a.Lk)("div",xt,[(0,a.bF)(m,{type:"primary",onClick:t[21]||(t[21]=e=>r.showCompressDialog=!1),class:"confirm-btn"},{default:(0,a.k6)(()=>[...t[62]||(t[62]=[(0,a.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"])]),(0,a.bF)(T,{class:"footer"}),(0,a.bF)(F,{title:"公告",modelValue:r.showAnnouncementDialog,"onUpdate:modelValue":t[24]||(t[24]=e=>r.showAnnouncementDialog=e),width:c.dialogWidth,"show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1,center:""},{footer:(0,a.k6)(()=>[(0,a.Lk)("span",Tt,[(0,a.bF)(m,{type:"primary",onClick:t[23]||(t[23]=e=>r.showAnnouncementDialog=!1)},{default:(0,a.k6)(()=>[...t[63]||(t[63]=[(0,a.eW)("我已知晓!",-1)])]),_:1})])]),default:(0,a.k6)(()=>[(0,a.Lk)("div",{innerHTML:r.announcementContent},null,8,St)]),_:1},8,["modelValue","width"]),(0,a.bF)(M,{show:r.showHistory,onClose:t[25]||(t[25]=e=>r.showHistory=!1)},null,8,["show"])])}o(3579);var $t=o(8903),_t=o(144),Et=o(4570),Rt=o.n(Et),At=o(2388),It={name:"UploadHome",mixins:[$t.A],data(){return{selectedUrlForm:(0,_t.KR)(""),showUrlDialog:!1,showCompressDialog:!1,customerCompress:!0,compressQuality:4,compressBar:5,convertToWebp:!1,serverCompress:!0,uploadChannel:"",channelName:"",availableChannels:{},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);const t=this.availableChannels[e]||[],o=this.storeChannelName;o&&t.some(e=>e.name===o)?this.channelName=o:this.channelName=""},channelName(e){this.$store.commit("setStoreChannelName",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,$e.L8)(["userConfig","uploadCopyUrlForm","compressConfig","storeUploadChannel","storeChannelName","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},currentChannelList(){return this.availableChannels[this.uploadChannel]||[]}},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.fetchAvailableChannels(),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:Re,Footer:j.A,ToggleDark:Ie.A,Logo:Ae.A,UploadHistory:H},methods:{async fetchAvailableChannels(){try{const e=await Te.A.get("/api/channels");if(e.data){this.availableChannels=e.data;const t=this.storeChannelName,o=this.userConfig?.defaultChannelName,s=this.availableChannels[this.uploadChannel]||[];t&&s.some(e=>e.name===t)?this.channelName=t:o&&s.some(e=>e.name===o)&&(this.channelName=o)}}catch(e){console.error("Failed to fetch available channels:",e)}},validateUploadFolder(e){const t=(0,At.G)(e);if(!t.valid){const e=t.error.replace("目标目录","上传目录");return this.$message.error(e),!1}return!0},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(){Rt().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 Pt=(0,B.A)(It,[["render",Mt],["__scopeId","data-v-5db1b684"]]);var Nt=Pt},8075:function(e,t,o){"use strict";o(5331)},8785: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=282.326e16ce.js.map \ No newline at end of file diff --git a/js/282.326e16ce.js.gz b/js/282.326e16ce.js.gz deleted file mode 100644 index 7e2c470fcf498c610720deaf085bc33e9a9d7c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21748 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 bspV1)>$MJ6AM@0KIsAVC8%BM!l`jDRIOKyO diff --git a/js/282.326e16ce.js.map b/js/282.326e16ce.js.map deleted file mode 100644 index 50929ae..0000000 --- a/js/282.326e16ce.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/282.326e16ce.js","mappings":"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","sources":["webpack://sanyue_imghub/./node_modules/image-conversion/build/conversion.js","webpack://sanyue_imghub/./src/utils/pathValidator.js","webpack://sanyue_imghub/./node_modules/image-conversion/index.js","webpack://sanyue_imghub/./src/components/UploadHistory.vue?e143","webpack://sanyue_imghub/./src/components/UploadHistory.vue","webpack://sanyue_imghub/./src/components/UploadHistory.vue?4b6c","webpack://sanyue_imghub/./src/components/UploadForm.vue?527f","webpack://sanyue_imghub/./src/components/UploadForm.vue","webpack://sanyue_imghub/./src/components/UploadForm.vue?0da8","webpack://sanyue_imghub/./src/views/UploadHome.vue?bfa1","webpack://sanyue_imghub/./src/views/UploadHome.vue","webpack://sanyue_imghub/./src/views/UploadHome.vue?af00"],"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}))}}])}));","/**\r\n * 路径验证器模块\r\n * 提供共享的文件夹路径验证功能,供 AdminDashBoard 和 UploadHome 共同使用\r\n */\r\n\r\n/**\r\n * 验证文件夹路径的合法性\r\n * @param {string} path - 要验证的路径\r\n * @returns {{ valid: boolean, error?: string }} 验证结果\r\n */\r\nexport function validateFolderPath(path) {\r\n // 如果路径为空或仅为空白字符,返回有效(表示根目录)\r\n if (!path || path.trim() === '') {\r\n return { valid: true };\r\n }\r\n \r\n // 如果路径仅为 \"/\",返回有效(表示根目录)\r\n if (path === '/') {\r\n return { valid: true };\r\n }\r\n \r\n // 检查路径是否以 \"/\" 开头\r\n if (!path.startsWith('/')) {\r\n return { \r\n valid: false, \r\n error: '目标目录必须以 \"/\" 开头' \r\n };\r\n }\r\n \r\n // 检查路径是否包含非法字符\r\n // 非法字符包括: \\ : * ? \" ' < > | 空格 ( ) [ ] { } # % ^ ` ~ ; @ & = + $ ,\r\n const invalidChars = /[\\\\:\\*\\?\"'<>\\| \\(\\)\\[\\]\\{\\}#%\\^`~;@&=\\+\\$,]/;\r\n if (invalidChars.test(path)) {\r\n return { \r\n valid: false, \r\n error: '目标目录包含非法字符,请使用合法的路径格式' \r\n };\r\n }\r\n \r\n // 检查路径是否包含连续的斜杠\r\n if (path.includes('//')) {\r\n return { \r\n valid: false, \r\n error: '目标目录不能包含连续的斜杠' \r\n };\r\n }\r\n \r\n return { valid: true };\r\n}\r\n","module.exports = require(\"./build/conversion.js\");\n","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 class: \"timeline-header\"\n};\nconst _hoisted_6 = {\n class: \"date-label\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"grid-view\"\n};\nconst _hoisted_8 = {\n class: \"grid-preview\"\n};\nconst _hoisted_9 = [\"src\"];\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = {\n key: 2,\n class: \"file-icon-wrapper\"\n};\nconst _hoisted_12 = {\n class: \"grid-overlay\"\n};\nconst _hoisted_13 = {\n class: \"grid-actions\"\n};\nconst _hoisted_14 = {\n class: \"grid-info\"\n};\nconst _hoisted_15 = [\"title\"];\nconst _hoisted_16 = {\n class: \"upload-time\"\n};\nconst _hoisted_17 = {\n key: 1,\n class: \"list-view\"\n};\nconst _hoisted_18 = {\n class: \"list-preview\"\n};\nconst _hoisted_19 = [\"src\"];\nconst _hoisted_20 = [\"src\"];\nconst _hoisted_21 = {\n key: 2,\n class: \"file-icon-wrapper-small\"\n};\nconst _hoisted_22 = {\n class: \"list-info\"\n};\nconst _hoisted_23 = [\"title\"];\nconst _hoisted_24 = [\"title\"];\nconst _hoisted_25 = {\n class: \"list-meta\"\n};\nconst _hoisted_26 = {\n class: \"upload-time\"\n};\nconst _hoisted_27 = {\n class: \"list-actions\"\n};\nconst _hoisted_28 = {\n key: 0,\n class: \"load-more-container\"\n};\nconst _hoisted_29 = {\n key: 0,\n class: \"loading-indicator\"\n};\nconst _hoisted_30 = {\n key: 1,\n class: \"load-more-hint\"\n};\nconst _hoisted_31 = {\n key: 1,\n class: \"no-more-hint\"\n};\nconst _hoisted_32 = {\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[4] || (_cache[4] = _createElementVNode(\"h2\", null, \"历史记录\", -1)), _createElementVNode(\"span\", _hoisted_3, \"共 \" + _toDisplayString($data.totalCount) + \" 条\", 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\", {\n key: 0,\n class: \"history-content\",\n ref: \"historyContent\",\n onScroll: _cache[3] || (_cache[3] = (...args) => $options.handleScroll && $options.handleScroll(...args))\n }, [(_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_5, [_cache[5] || (_cache[5] = _createElementVNode(\"div\", {\n class: \"timeline-dot\"\n }, null, -1)), _createElementVNode(\"span\", _hoisted_6, _toDisplayString(group.date), 1)]), $data.viewMode === 'grid' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, item => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"grid-item\"\n }, [_createElementVNode(\"div\", _hoisted_8, [$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_9)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_10)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })])), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"div\", _hoisted_13, [_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_14, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_15), _createElementVNode(\"div\", _hoisted_16, _toDisplayString($options.formatTime(item.time)), 1)])]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, item => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"list-item\"\n }, [_createElementVNode(\"div\", _hoisted_18, [$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_19)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_20)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\"\n })]))]), _createElementVNode(\"div\", _hoisted_22, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_23), _createElementVNode(\"div\", {\n class: \"file-url\",\n title: item.url\n }, _toDisplayString(item.url), 9, _hoisted_24)]), _createElementVNode(\"div\", _hoisted_25, [_createElementVNode(\"div\", _hoisted_26, _toDisplayString($options.formatTime(item.time)), 1)]), _createElementVNode(\"div\", _hoisted_27, [_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)), $options.hasMore ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [$data.loadingMore ? (_openBlock(), _createElementBlock(\"div\", _hoisted_29, [_createVNode(_component_font_awesome_icon, {\n icon: \"spinner\",\n spin: \"\"\n }), _cache[6] || (_cache[6] = _createElementVNode(\"span\", null, \"加载中...\", -1))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_30, \"下拉加载更多\"))])) : $data.historyList.length > 0 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, \"没有更多记录了\")) : _createCommentVNode(\"\", true)], 544)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"empty-icon\"\n }), _cache[7] || (_cache[7] = _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 allHistory: [],\n // 完整历史记录\n viewMode: 'grid',\n // 'grid' or 'list'\n pageSize: 30,\n // 每次加载数量\n currentPage: 0,\n loadingMore: false,\n totalCount: 0\n };\n },\n watch: {\n show(val) {\n if (val) {\n this.resetAndLoad();\n }\n }\n },\n computed: {\n hasMore() {\n return this.historyList.length < this.totalCount;\n },\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 resetAndLoad() {\n this.historyList = [];\n this.currentPage = 0;\n this.loadAllHistory();\n this.loadMore();\n },\n loadAllHistory() {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n // Sort by time desc\n this.allHistory = history.sort((a, b) => b.time - a.time);\n this.totalCount = this.allHistory.length;\n } catch (e) {\n console.error('Failed to load history', e);\n this.allHistory = [];\n this.totalCount = 0;\n }\n },\n loadMore() {\n if (this.loadingMore || !this.hasMore) return;\n this.loadingMore = true;\n\n // 模拟异步加载,避免阻塞UI\n setTimeout(() => {\n const start = this.currentPage * this.pageSize;\n const end = start + this.pageSize;\n const newItems = this.allHistory.slice(start, end);\n this.historyList = [...this.historyList, ...newItems];\n this.currentPage++;\n this.loadingMore = false;\n }, 50);\n },\n handleScroll(e) {\n const container = e.target;\n const scrollTop = container.scrollTop;\n const scrollHeight = container.scrollHeight;\n const clientHeight = container.clientHeight;\n\n // 距离底部 100px 时加载更多\n if (scrollHeight - scrollTop - clientHeight < 100) {\n this.loadMore();\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 this.allHistory = [];\n this.totalCount = 0;\n this.currentPage = 0;\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 lists\n this.historyList = this.historyList.filter(i => i.time !== item.time);\n this.allHistory = this.allHistory.filter(i => i.time !== item.time);\n this.totalCount = this.allHistory.length;\n\n // Update localStorage\n try {\n localStorage.setItem('uploadHistory', JSON.stringify(this.allHistory));\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=12200cbe&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=12200cbe&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-12200cbe\"]])\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 channelName: {\n type: String,\n default: '',\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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 fileType: file.file.type,\n sha256,\n fileSample,\n channelName: this.channelName,\n // 传递指定的渠道名称\n uploadNameType: this.uploadNameType,\n uploadFolder: this.uploadFolder\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 fileType: file.file.type,\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=6a7fc61f&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=6a7fc61f&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-6a7fc61f\"]])\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, renderList as _renderList, Fragment as _Fragment } 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 key: 0,\n class: \"setting-item\"\n};\nconst _hoisted_21 = {\n class: \"setting-label\"\n};\nconst _hoisted_22 = {\n class: \"setting-item\"\n};\nconst _hoisted_23 = {\n class: \"setting-item\"\n};\nconst _hoisted_24 = {\n class: \"setting-label\"\n};\nconst _hoisted_25 = {\n class: \"dialog-section\"\n};\nconst _hoisted_26 = {\n class: \"section-content\"\n};\nconst _hoisted_27 = {\n class: \"dialog-section\"\n};\nconst _hoisted_28 = {\n class: \"section-header\"\n};\nconst _hoisted_29 = {\n class: \"section-content\"\n};\nconst _hoisted_30 = {\n class: \"setting-item\"\n};\nconst _hoisted_31 = {\n class: \"setting-label\"\n};\nconst _hoisted_32 = {\n class: \"setting-item\"\n};\nconst _hoisted_33 = {\n key: 0,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_34 = {\n class: \"setting-label\"\n};\nconst _hoisted_35 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_36 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_37 = {\n key: 1,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_38 = {\n class: \"setting-label\"\n};\nconst _hoisted_39 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_40 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_41 = {\n key: 0,\n class: \"dialog-section\"\n};\nconst _hoisted_42 = {\n class: \"section-header\"\n};\nconst _hoisted_43 = {\n class: \"section-content\"\n};\nconst _hoisted_44 = {\n class: \"setting-item\"\n};\nconst _hoisted_45 = {\n class: \"dialog-action\"\n};\nconst _hoisted_46 = [\"innerHTML\"];\nconst _hoisted_47 = {\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_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\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[26] || (_cache[26] = _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[27] || (_cache[27] = _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[28] || (_cache[28] = _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 channelName: $data.channelName,\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\", \"channelName\", \"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[33] || (_cache[33] = _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[29] || (_cache[29] = _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[30] || (_cache[30] = _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[31] || (_cache[31] = _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[32] || (_cache[32] = _createElementVNode(\"span\", null, \"BBCode\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"onChange\"])])]), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"div\", _hoisted_12, [_cache[34] || (_cache[34] = _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[35] || (_cache[35] = _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[36] || (_cache[36] = _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[37] || (_cache[37] = [_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[22] || (_cache[22] = $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[47] || (_cache[47] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"上传渠道\")], -1)), _createElementVNode(\"div\", _hoisted_18, [_createElementVNode(\"div\", _hoisted_19, [_cache[43] || (_cache[43] = _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[38] || (_cache[38] = _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[39] || (_cache[39] = _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[40] || (_cache[40] = _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[41] || (_cache[41] = _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[42] || (_cache[42] = _createElementVNode(\"span\", null, \"HF\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])]), $options.currentChannelList.length > 1 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [_createElementVNode(\"span\", _hoisted_21, [_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_select, {\n modelValue: $data.channelName,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.channelName = $event),\n placeholder: \"自动选择\",\n clearable: \"\",\n class: \"setting-input\"\n }, {\n default: _withCtx(() => [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($options.currentChannelList, ch => {\n return _openBlock(), _createBlock(_component_el_option, {\n key: ch.name,\n label: ch.name,\n value: ch.name\n }, null, 8, [\"label\", \"value\"]);\n }), 128))]),\n _: 1\n }, 8, [\"modelValue\"])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_22, [_cache[45] || (_cache[45] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传目录\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $data.uploadFolder = $event),\n placeholder: \"请输入上传目录路径\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_23, [_createElementVNode(\"span\", _hoisted_24, [_cache[46] || (_cache[46] = _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[12] || (_cache[12] = $event => $data.autoRetry = $event)\n }, null, 8, [\"modelValue\"])])])]), _createElementVNode(\"div\", _hoisted_25, [_cache[52] || (_cache[52] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件命名方式\")], -1)), _createElementVNode(\"div\", _hoisted_26, [_createVNode(_component_el_radio_group, {\n modelValue: $data.uploadNameType,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = $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[48] || (_cache[48] = _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[49] || (_cache[49] = _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[50] || (_cache[50] = _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[51] || (_cache[51] = _createElementVNode(\"span\", null, \"短链接\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])])]), _createElementVNode(\"div\", _hoisted_27, [_createElementVNode(\"div\", _hoisted_28, [_cache[53] || (_cache[53] = _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_29, [_createElementVNode(\"div\", _hoisted_30, [_createElementVNode(\"span\", _hoisted_31, [_cache[54] || (_cache[54] = _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[14] || (_cache[14] = $event => $data.convertToWebp = $event)\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_32, [_cache[55] || (_cache[55] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"文件压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.customerCompress,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $data.customerCompress = $event)\n }, null, 8, [\"modelValue\"])]), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_33, [_createElementVNode(\"span\", _hoisted_34, [_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_35, [_createVNode(_component_el_slider, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = $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_36, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n step: 1,\n \"value-on-clear\": 1,\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\"]), _cache[57] || (_cache[57] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_37, [_createElementVNode(\"span\", _hoisted_38, [_cache[58] || (_cache[58] = _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_39, [_createVNode(_component_el_slider, {\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 \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"max\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_40, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = $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 class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\", \"max\"]), _cache[59] || (_cache[59] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true)])]), $data.uploadChannel === 'telegram' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_41, [_createElementVNode(\"div\", _hoisted_42, [_cache[60] || (_cache[60] = _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_43, [_createElementVNode(\"div\", _hoisted_44, [_cache[61] || (_cache[61] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"开启压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.serverCompress,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = $event => $data.serverCompress = $event)\n }, null, 8, [\"modelValue\"])])])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_45, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[21] || (_cache[21] = $event => $data.showCompressDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[62] || (_cache[62] = [_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[24] || (_cache[24] = $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_47, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[23] || (_cache[23] = $event => $data.showAnnouncementDialog = false)\n }, {\n default: _withCtx(() => [...(_cache[63] || (_cache[63] = [_createTextVNode(\"我已知晓!\", -1)]))]),\n _: 1\n })])]),\n default: _withCtx(() => [_createElementVNode(\"div\", {\n innerHTML: $data.announcementContent\n }, null, 8, _hoisted_46)]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_UploadHistory, {\n show: $data.showHistory,\n onClose: _cache[25] || (_cache[25] = $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 \"core-js/modules/es.iterator.some.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 axios from '@/utils/axios';\nimport { ref } from 'vue';\nimport cookies from 'vue-cookies';\nimport { mapGetters } from 'vuex';\nimport { validateFolderPath } from '@/utils/pathValidator';\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 channelName: '',\n //指定的渠道名称\n availableChannels: {},\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 const newChannelList = this.availableChannels[val] || [];\n const savedChannelName = this.storeChannelName;\n if (savedChannelName && newChannelList.some(ch => ch.name === savedChannelName)) {\n // 持久化的渠道名在新渠道列表中,恢复它\n this.channelName = savedChannelName;\n } else {\n // 否则清空\n this.channelName = '';\n }\n },\n channelName(val) {\n this.$store.commit('setStoreChannelName', 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', 'storeChannelName', '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 currentChannelList() {\n return this.availableChannels[this.uploadChannel] || [];\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.fetchAvailableChannels();\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 async fetchAvailableChannels() {\n try {\n const response = await axios.get('/api/channels');\n if (response.data) {\n this.availableChannels = response.data;\n // 恢复渠道名称:优先持久化的值,其次系统默认配置\n const savedChannelName = this.storeChannelName;\n const defaultChannelName = this.userConfig?.defaultChannelName;\n const currentChannelList = this.availableChannels[this.uploadChannel] || [];\n if (savedChannelName && currentChannelList.some(ch => ch.name === savedChannelName)) {\n this.channelName = savedChannelName;\n } else if (defaultChannelName && currentChannelList.some(ch => ch.name === defaultChannelName)) {\n this.channelName = defaultChannelName;\n }\n }\n } catch (error) {\n console.error('Failed to fetch available channels:', error);\n }\n },\n // 验证上传文件夹路径的合法性\n validateUploadFolder(path) {\n const result = validateFolderPath(path);\n if (!result.valid) {\n // 将错误消息中的\"目标目录\"替换为\"上传目录\"以保持原有的提示风格\n const errorMessage = result.error.replace('目标目录', '上传目录');\n this.$message.error(errorMessage);\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=5db1b684&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=5db1b684&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-5db1b684\"]])\n\nexport default __exports__"],"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","validateFolderPath","path","trim","valid","startsWith","error","invalidChars","test","includes","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","key","_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","_hoisted_30","_hoisted_31","_hoisted_32","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","_component_el_tooltip","show","totalCount","content","placement","circle","onClick","toggleViewMode","icon","viewMode","_","clearHistory","$event","$emit","historyList","ref","onScroll","args","handleScroll","groupedHistory","group","date","items","item","time","isImage","name","url","loading","onError","handleImageError","isVideo","muted","copyLink","openLink","deleteItem","title","formatTime","hasMore","loadingMore","spin","props","Boolean","data","allHistory","pageSize","currentPage","watch","val","resetAndLoad","computed","groups","forEach","dateStr","getFullYear","String","getMonth","padStart","getDate","push","keys","map","mounted","savedMode","localStorage","getItem","methods","loadAllHistory","loadMore","history","JSON","parse","console","setTimeout","start","end","newItems","slice","container","scrollTop","scrollHeight","clientHeight","setItem","$confirm","confirmButtonText","cancelButtonText","removeItem","$message","success","catch","stringify","fileName","imageExtensions","extension","pop","toLowerCase","videoExtensions","timestamp","year","month","day","hours","getHours","minutes","getMinutes","seconds","getSeconds","navigator","clipboard","writeText","open","__exports__","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","listScrolled","uploadingCount","waitingCount","uploadSuccessCount","uploadErrorCount","disabled","disableTooltip","copyAll","dropdown","autoReUpload","onChange","handleAutoRetryChange","retryError","clearFileList","clearSuccessList","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","channelName","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadFolder","convertToWebp","maxUploading","exceptionList","fileListLength","uploadCount","maxRetryCount","retryTimer","retryDelay","uploadQueue","activeUploads","maxConcurrentUploads","abortControllers","Map","handler","$nextTick","$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","encodeURIComponent","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","chunkIndex","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","kind","getAsString","callback","mdUrl","htmlUrl","ubbUrl","evt","getAsFile","checkResult","text","urlPattern","post","responseType","headers","disposition","filenameRegex","filenameStarRegex","matches","exec","decodeURIComponent","pathname","retryFailedFiles","files","clearTimeout","filesToRetry","aborted","sampleBytes","arrayBuffer","fileSample","btoa","fromCharCode","uploadInfoRes","fileType","uploadInfo","alreadyExists","needsLfs","uploadAction","header","chunk_size","uploadToHuggingFaceMultipart","uploadRes","ok","commitRes","fullId","filePath","formattedResponse","completionUrl","chunkSize","parseInt","parts","completeParts","totalParts","part","DOMException","index","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","glow","uploadCardGlow","rect","currentTarget","getBoundingClientRect","clientX","left","clientY","top","opacity","beforeDestroy","_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","_hoisted_46","_hoisted_47","_component_ToggleDark","_component_Logo","_component_UploadForm","_component_el_radio","_component_el_dialog","_component_el_option","_component_el_select","_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","currentChannelList","clearable","step","precision","showAnnouncementDialog","center","footer","innerHTML","announcementContent","onClose","mixins","backgroundManager","availableChannels","useDefaultWallPaper","themeMode","updateCompressConfig","updateStoreUploadChannel","newChannelList","savedChannelName","storeChannelName","updateStoreUploadNameType","validateUploadFolder","storeUploadFolder","userConfig","announcement","initializeBackground","uploadCopyUrlForm","compressConfig","parseBoolean","defaultCustomerCompress","parseNumber","defaultCompressQuality","defaultCompressBar","defaultConvertToWebp","storeUploadChannel","defaultUploadChannel","storeAutoRetry","storeUploadNameType","defaultUploadNameType","customUrlSettings","storeUploadMethod","fetchAvailableChannels","defaultUploadFolder","cusDarkMode","getters","useDarkMode","visited","components","UploadForm","Footer","ToggleDark","Logo","UploadHistory","defaultChannelName","errorMessage","$router","defaultValue","num","parseFloat","buttons","querySelectorAll","button","pointerEvents","info"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/js/282.326e16ce.js.map.gz b/js/282.326e16ce.js.map.gz deleted file mode 100644 index 92e569a8d308b509939ceabbea4efbbd1a76d79d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56791 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 Q3(c|r2O|o>)$K9>0P2C&ApigX diff --git a/js/app.9461872b.js.map b/js/app.9461872b.js.map deleted file mode 100644 index 668a74c..0000000 --- a/js/app.9461872b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/app.9461872b.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 storeChannelName: '', // 指定的渠道名称\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 storeChannelName: state => state.storeChannelName,\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 setStoreChannelName(state, channelName) {\r\n state.storeChannelName = channelName;\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\":\"fdd153ed\",\"214\":\"21f2745a\",\"226\":\"f737e39a\",\"282\":\"326e16ce\",\"419\":\"714823b1\",\"456\":\"bfb68f0d\",\"494\":\"83aa83f3\",\"600\":\"3d796c41\",\"658\":\"c794cc62\",\"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 + \".\" + {\"100\":\"205cfe37\",\"119\":\"2a856832\",\"214\":\"205cfe37\",\"226\":\"6548e7b4\",\"275\":\"bf4b380e\",\"282\":\"ad42e268\",\"419\":\"605c1f2d\",\"494\":\"06d0e694\",\"658\":\"b51706c2\",\"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 = {\"100\":1,\"119\":1,\"214\":1,\"226\":1,\"275\":1,\"282\":1,\"419\":1,\"494\":1,\"658\":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(!/^(119|275)$/.test(chunkId)) {\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} else installedChunks[chunkId] = 0;\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","storeChannelName","storeAutoRetry","storeUploadNameType","uploadFolder","customUrlSettings","useCustomUrl","customUrlPrefix","adminUrlSettings","autoReUpload","storeUploadMethod","storeUploadFolder","localStorage","getItem","storeAutoReUpload","mutations","setUserConfig","setBingWallPapers","setCredentials","setUploadMethod","setUploadCopyUrlForm","setCompressConfig","value","setStoreUploadChannel","uploadChannel","setStoreChannelName","channelName","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","test","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.9461872b.js.map.gz b/js/app.9461872b.js.map.gz deleted file mode 100644 index 8f92d6b73f207a079d22647bb8cf413a8548895b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15465 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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),c=o(6768);function u(e,t,o,n,r,a){const s=(0,c.g2)("router-view");return(0,c.uX)(),(0,c.Wv)(s)}var d=o(8401),m=o(3785),f={computed:{...(0,d.L8)(["userConfig","useDarkMode"])},mounted(){this.$nextTick(()=>{this.initOverlayScrollbars()})},watch:{useDarkMode(){this.setSiteIcon()}},methods:{initOverlayScrollbars(){try{if(m.ae.valid(document.body))return;(0,m.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)}}},p=o(1241);const h=(0,p.A)(f,[["render",u]]);var g=h,b=o(6915),C=o(5507),k=o(7477);o(1862),o(635);s.Yv.add(i.X7I);const y=(0,n.Ef)(g),v=(0,r.Zf)();y.component("font-awesome-icon",l.gc);for(const[M,E]of Object.entries(k))y.component(M,E);const A=()=>{const e=document.documentElement;let t;if(C.A.state.cusDarkMode&&null!==C.A.state.useDarkMode)t=C.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}C.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)};C.A.dispatch("fetchUserConfig").then(()=>{A(),w(C.A.getters.userConfig),S(C.A.state.useDarkMode,C.A.getters.userConfig),C.A.subscribe((e,t)=>{"setUseDarkMode"===e.type&&C.A.state.cusDarkMode&&(U(t.useDarkMode),S(t.useDarkMode,C.A.getters.userConfig)),"setCusDarkMode"!==e.type||e.payload||(A(),S(C.A.state.useDarkMode,C.A.getters.userConfig))}),y.use(C.A).use(b.A).use(a.A).mount("#app")}).catch(e=>{console.error("Failed to load user configuration:",e),y.use(C.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:"",storeChannelName:"",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,storeChannelName:e=>e.storeChannelName,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},setStoreChannelName(e,t){e.storeChannelName=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 c=(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()},u=(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(275),o.e(600),o.e(282)]).then(o.bind(o,7618)),beforeEnter:u},{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(275),o.e(456),o.e(494)]).then(o.bind(o,8268)),beforeEnter:c},{path:"/customerConfig",name:"customerConfig",component:()=>Promise.all([o.e(275),o.e(456),o.e(119),o.e(419)]).then(o.bind(o,8419)),beforeEnter:c},{path:"/systemConfig",name:"systemConfig",component:()=>Promise.all([o.e(275),o.e(456),o.e(119),o.e(658)]).then(o.bind(o,6658)),beforeEnter:c},{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))}],m=(0,n.aE)({history:(0,n.LA)("/"),routes:d});t.A=m}},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(u=0;u=a)&&Object.keys(o.O).every(function(e){return o.O[e](n[l])})?n.splice(l--,1):(i=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[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:"fdd153ed",214:"21f2745a",226:"f737e39a",282:"326e16ce",419:"714823b1",456:"bfb68f0d",494:"83aa83f3",600:"3d796c41",658:"c794cc62",667:"bbd60d43",845:"1bb9a557",917:"833cbf86"}[e]+".js"}}(),function(){o.miniCssF=function(e){return"css/"+e+"."+{100:"205cfe37",119:"2a856832",214:"205cfe37",226:"6548e7b4",275:"bf4b380e",282:"ad42e268",419:"605c1f2d",494:"06d0e694",658:"b51706c2",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 c=document.getElementsByTagName("script"),u=0;u{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},5315: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),c=o(6768);function u(e,t,o,n,r,a){const s=(0,c.g2)("router-view");return(0,c.uX)(),(0,c.Wv)(s)}var d=o(8401),m=o(3785),f={computed:{...(0,d.L8)(["userConfig","useDarkMode"])},mounted(){this.$nextTick(()=>{this.initOverlayScrollbars()})},watch:{useDarkMode(){this.setSiteIcon()}},methods:{initOverlayScrollbars(){try{if(m.ae.valid(document.body))return;(0,m.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)}}},p=o(1241);const h=(0,p.A)(f,[["render",u]]);var g=h,b=o(6915),C=o(5507),k=o(7477);o(1862),o(635);s.Yv.add(i.X7I);const y=(0,n.Ef)(g),v=(0,r.Zf)();y.component("font-awesome-icon",l.gc);for(const[M,E]of Object.entries(k))y.component(M,E);const A=()=>{const e=document.documentElement;let t;if(C.A.state.cusDarkMode&&null!==C.A.state.useDarkMode)t=C.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}C.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)};C.A.dispatch("fetchUserConfig").then(()=>{A(),w(C.A.getters.userConfig),S(C.A.state.useDarkMode,C.A.getters.userConfig),C.A.subscribe((e,t)=>{"setUseDarkMode"===e.type&&C.A.state.cusDarkMode&&(U(t.useDarkMode),S(t.useDarkMode,C.A.getters.userConfig)),"setCusDarkMode"!==e.type||e.payload||(A(),S(C.A.state.useDarkMode,C.A.getters.userConfig))}),y.use(C.A).use(b.A).use(a.A).mount("#app")}).catch(e=>{console.error("Failed to load user configuration:",e),y.use(C.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:"",storeChannelName:"",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,storeChannelName:e=>e.storeChannelName,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},setStoreChannelName(e,t){e.storeChannelName=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 c=(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()},u=(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(275),o.e(600),o.e(689)]).then(o.bind(o,193)),beforeEnter:u},{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(275),o.e(456),o.e(494)]).then(o.bind(o,8268)),beforeEnter:c},{path:"/customerConfig",name:"customerConfig",component:()=>Promise.all([o.e(275),o.e(456),o.e(119),o.e(419)]).then(o.bind(o,8419)),beforeEnter:c},{path:"/systemConfig",name:"systemConfig",component:()=>Promise.all([o.e(275),o.e(456),o.e(119),o.e(658)]).then(o.bind(o,6658)),beforeEnter:c},{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))}],m=(0,n.aE)({history:(0,n.LA)("/"),routes:d});t.A=m}},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(u=0;u=a)&&Object.keys(o.O).every(function(e){return o.O[e](n[l])})?n.splice(l--,1):(i=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[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:"fdd153ed",214:"21f2745a",226:"f737e39a",419:"714823b1",456:"bfb68f0d",494:"83aa83f3",600:"3d796c41",658:"c794cc62",667:"bbd60d43",689:"ed6ed975",845:"1bb9a557",917:"833cbf86"}[e]+".js"}}(),function(){o.miniCssF=function(e){return"css/"+e+"."+{100:"205cfe37",119:"2a856832",214:"205cfe37",226:"6548e7b4",275:"bf4b380e",419:"605c1f2d",494:"06d0e694",658:"b51706c2",667:"a3c83e09",689:"69f7094e",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 c=document.getElementsByTagName("script"),u=0;u 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 literal 0 HcmV?d00001 diff --git a/js/app.ff74a37e.js.map b/js/app.ff74a37e.js.map new file mode 100644 index 0000000..9344b39 --- /dev/null +++ b/js/app.ff74a37e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/app.ff74a37e.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/utils/axios.js","webpack://sanyue_imghub/./src/App.vue?c23e","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=126f53e2\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\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 storeChannelName: '', // 指定的渠道名称\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 storeChannelName: state => state.storeChannelName,\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 setStoreChannelName(state, channelName) {\r\n state.storeChannelName = channelName;\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\":\"fdd153ed\",\"214\":\"21f2745a\",\"226\":\"f737e39a\",\"419\":\"714823b1\",\"456\":\"bfb68f0d\",\"494\":\"83aa83f3\",\"600\":\"3d796c41\",\"658\":\"c794cc62\",\"667\":\"bbd60d43\",\"689\":\"ed6ed975\",\"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\":\"205cfe37\",\"119\":\"2a856832\",\"214\":\"205cfe37\",\"226\":\"6548e7b4\",\"275\":\"bf4b380e\",\"419\":\"605c1f2d\",\"494\":\"06d0e694\",\"658\":\"b51706c2\",\"667\":\"a3c83e09\",\"689\":\"69f7094e\",\"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,\"119\":1,\"214\":1,\"226\":1,\"275\":1,\"419\":1,\"494\":1,\"658\":1,\"667\":1,\"689\":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(!/^(119|275)$/.test(chunkId)) {\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} else installedChunks[chunkId] = 0;\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__(5315); })\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","storeChannelName","storeAutoRetry","storeUploadNameType","uploadFolder","customUrlSettings","useCustomUrl","customUrlPrefix","adminUrlSettings","autoReUpload","storeUploadMethod","storeUploadFolder","localStorage","getItem","storeAutoReUpload","mutations","setUserConfig","setBingWallPapers","setCredentials","setUploadMethod","setUploadCopyUrlForm","setCompressConfig","value","setStoreUploadChannel","uploadChannel","setStoreChannelName","channelName","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","test","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.ff74a37e.js.map.gz b/js/app.ff74a37e.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..52eda67aefa15a680fe4906002b71ec482f9178d GIT binary patch literal 15438 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 E0Lk75vH$=8 literal 0 HcmV?d00001

KPo2$ya!0l@N3 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 g#^kj[(0,a.bF)(H,{circle:"",onClick:B.toggleViewMode},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"grid"===D.viewMode?"list":"th-large"},null,8,["icon"])]),_:1},8,["onClick"])]),_:1}),(0,a.bF)(j,{content:"清空记录",placement:"bottom"},{default:(0,a.k6)(()=>[(0,a.bF)(H,{circle:"",type:"danger",onClick:B.clearHistory},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])]),_:1}),(0,a.bF)(H,{circle:"",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"times"})]),_:1})])]),D.historyList.length>0?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"history-content",ref:"historyContent",onScroll:t[3]||(t[3]=(...e)=>B.handleScroll&&B.handleScroll(...e))},[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(B.groupedHistory,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.date,class:"history-group"},[(0,a.Lk)("div",u,[t[5]||(t[5]=(0,a.Lk)("div",{class:"timeline-dot"},null,-1)),(0,a.Lk)("span",p,(0,i.v_)(e.date),1)]),"grid"===D.viewMode?((0,a.uX)(),(0,a.CE)("div",h,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.items,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.time,class:"grid-item"},[(0,a.Lk)("div",m,[B.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[1]||(t[1]=(...e)=>B.handleImageError&&B.handleImageError(...e))},null,40,g)):B.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",{key:1,src:e.url,muted:""},null,8,f)):((0,a.uX)(),(0,a.CE)("div",b,[(0,a.bF)(W,{icon:"file",class:"file-icon"})])),(0,a.Lk)("div",y,[(0,a.Lk)("div",C,[(0,a.bF)(H,{circle:"",size:"default",type:"primary",onClick:t=>B.copyLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"copy"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"default",class:"action-btn-view",onClick:t=>B.openLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"default",type:"danger",onClick:t=>B.deleteItem(e)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])])])]),(0,a.Lk)("div",k,[(0,a.Lk)("div",{class:"file-name",title:e.name},(0,i.v_)(e.name),9,v),(0,a.Lk)("div",w,(0,i.v_)(B.formatTime(e.time)),1)])]))),128))])):((0,a.uX)(),(0,a.CE)("div",F,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.items,e=>((0,a.uX)(),(0,a.CE)("div",{key:e.time,class:"list-item"},[(0,a.Lk)("div",L,[B.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:0,src:e.url,loading:"lazy",onError:t[2]||(t[2]=(...e)=>B.handleImageError&&B.handleImageError(...e))},null,40,U)):B.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",{key:1,src:e.url,muted:""},null,8,x)):((0,a.uX)(),(0,a.CE)("div",S,[(0,a.bF)(W,{icon:"file"})]))]),(0,a.Lk)("div",T,[(0,a.Lk)("div",{class:"file-name",title:e.name},(0,i.v_)(e.name),9,M),(0,a.Lk)("div",{class:"file-url",title:e.url},(0,i.v_)(e.url),9,$)]),(0,a.Lk)("div",_,[(0,a.Lk)("div",E,(0,i.v_)(B.formatTime(e.time)),1)]),(0,a.Lk)("div",R,[(0,a.bF)(H,{circle:"",size:"small",type:"primary",onClick:t=>B.copyLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"copy"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"small",class:"action-btn-view",onClick:t=>B.openLink(e.url)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"external-link-alt"})]),_:1},8,["onClick"]),(0,a.bF)(H,{circle:"",size:"small",type:"danger",onClick:t=>B.deleteItem(e)},{default:(0,a.k6)(()=>[(0,a.bF)(W,{icon:"trash-alt"})]),_:1},8,["onClick"])])]))),128))]))]))),128)),B.hasMore?((0,a.uX)(),(0,a.CE)("div",A,[D.loadingMore?((0,a.uX)(),(0,a.CE)("div",I,[(0,a.bF)(W,{icon:"spinner",spin:""}),t[6]||(t[6]=(0,a.Lk)("span",null,"加载中...",-1))])):((0,a.uX)(),(0,a.CE)("div",P,"下拉加载更多"))])):D.historyList.length>0?((0,a.uX)(),(0,a.CE)("div",N,"没有更多记录了")):(0,a.Q3)("",!0)],544)):((0,a.uX)(),(0,a.CE)("div",V,[(0,a.bF)(W,{icon:"history",class:"empty-icon"}),t[7]||(t[7]=(0,a.Lk)("p",null,"暂无上传记录",-1))]))],2)}o(4114),o(8111),o(2489),o(7588),o(1701),o(3110),o(8335);var D={name:"UploadHistory",props:{show:{type:Boolean,default:!1}},data(){return{historyList:[],allHistory:[],viewMode:"grid",pageSize:30,currentPage:0,loadingMore:!1,totalCount:0}},watch:{show(e){e&&this.resetAndLoad()}},computed:{hasMore(){return this.historyList.length{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:{resetAndLoad(){this.historyList=[],this.currentPage=0,this.loadAllHistory(),this.loadMore()},loadAllHistory(){try{const e=JSON.parse(localStorage.getItem("uploadHistory")||"[]");this.allHistory=e.sort((e,t)=>t.time-e.time),this.totalCount=this.allHistory.length}catch(e){console.error("Failed to load history",e),this.allHistory=[],this.totalCount=0}},loadMore(){!this.loadingMore&&this.hasMore&&(this.loadingMore=!0,setTimeout(()=>{const e=this.currentPage*this.pageSize,t=e+this.pageSize,o=this.allHistory.slice(e,t);this.historyList=[...this.historyList,...o],this.currentPage++,this.loadingMore=!1},50))},handleScroll(e){const t=e.target,o=t.scrollTop,s=t.scrollHeight,l=t.clientHeight;s-o-l<100&&this.loadMore()},toggleViewMode(){this.viewMode="grid"===this.viewMode?"list":"grid",localStorage.setItem("historyViewMode",this.viewMode)},clearHistory(){this.$confirm("确定要清空所有上传记录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.historyList=[],this.allHistory=[],this.totalCount=0,this.currentPage=0,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),this.allHistory=this.allHistory.filter(t=>t.time!==e.time),this.totalCount=this.allHistory.length;try{localStorage.setItem("uploadHistory",JSON.stringify(this.allHistory)),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"),a=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),n=String(t.getSeconds()).padStart(2,"0");return`${o}-${s}-${l} ${a}:${i}:${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)}}},B=o(1241);const W=(0,B.A)(D,[["render",z],["__scopeId","data-v-12200cbe"]]);var H=W,j=o(6975),X=o(1418),O=(o(333),o(4757)),Q=o(6018),q=(o(6808),o(200),o(9267)),G=(o(5616),o(5558)),J=(o(8075),o(6810)),K=(o(4396),o(4885),o(8559)),Y=(o(5970),o(9655)),Z=(o(2893),o(2086)),ee=(o(670),o(8830),o(3597),o(4253)),te=o(683),oe=(o(5385),o(9623)),se=(o(6711),o(7358)),le=o(813);o(4896);const ae={class:"upload-form"},ie={class:"upload-card-glow",ref:"uploadCardGlow"},ne={key:0,class:"upload-card"},re={class:"paste-card-actions"},ce={class:"upload-list-dashboard-action"},de={class:"modern-action-group"},ue={class:"modern-dropdown-item-content"},pe={class:"modern-action-btn modern-action-btn-danger"},he=["href"],me={key:0,style:{width:"10vw","border-radius":"12px"},autoplay:"",muted:"",playsinline:"",loop:""},ge=["src"],fe=["src","onError"],be={key:2,style:{width:"10vw","border-radius":"12px"}},ye={class:"upload-list-item-content"},Ce={class:"upload-list-item-name-wrapper"},ke={key:0,class:"upload-list-item-url"},ve={class:"upload-list-item-url-row"},we={class:"upload-list-item-url-row"},Fe={key:1,class:"upload-list-item-progress"},Le={class:"upload-list-item-action"},Ue=["onClick"],xe=["onClick"];function Se(e,t,n,r,c,d){const u=(0,a.g2)("CameraFilled"),p=le.tk,h=se.j5,m=oe.WK,g=l.S2,f=J.Zh,b=J.MQ,y=te.Ik,C=(0,a.g2)("List"),k=(0,a.g2)("Checked"),v=(0,a.g2)("Failed"),w=ee.$g,F=(0,a.g2)("font-awesome-icon"),L=s.R7,U=G.qi,x=Z.c6,S=Z.Iy,T=Z.dW,M=Y.ve,$=(0,a.g2)("Link"),_=(0,a.g2)("Delete"),E=K.kA;return(0,a.uX)(),(0,a.CE)("div",ae,[(0,a.Lk)("div",{class:"upload-card-wrapper",onMousemove:t[0]||(t[0]=(...e)=>d.handleUploadCardMouseMove&&d.handleUploadCardMouseMove(...e)),onMouseleave:t[1]||(t[1]=(...e)=>d.handleUploadCardMouseLeave&&d.handleUploadCardMouseLeave(...e))},[(0,a.Lk)("div",ie,null,512),"default"===n.uploadMethod?((0,a.uX)(),(0,a.Wv)(h,{key:0,class:(0,i.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,a.k6)(()=>[(0,a.bF)(p,{class:(0,i.C4)(["el-icon--upload",{"upload-list-busy":c.fileList.length}])},{default:(0,a.k6)(()=>[(0,a.bF)(u)]),_:1},8,["class"]),(0,a.Lk)("div",{class:(0,i.C4)(["el-upload__text",{"upload-list-busy":c.fileList.length}])},[...t[7]||(t[7]=[(0,a.Lk)("em",null,"拖拽",-1),(0,a.eW)(),(0,a.Lk)("em",null,"点击",-1),(0,a.eW)(" 或 ",-1),(0,a.Lk)("em",null,"Ctrl + V",-1),(0,a.eW)(" 粘贴上传",-1)])],2)]),_:1},8,["class","http-request","onSuccess","on-error","before-upload","on-progress","file-list"])):(0,a.Q3)("",!0)],32),"paste"===n.uploadMethod?((0,a.uX)(),(0,a.CE)("div",ne,[(0,a.bF)(y,{class:(0,i.C4)(["paste-card",{"is-uploading":c.uploading,"upload-card-busy":c.fileList.length}])},{default:(0,a.k6)(()=>[(0,a.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,a.Lk)("div",re,[(0,a.bF)(g,{class:"paste-card-upload-button",type:"primary",size:d.pasteCardMethodButtonSize,onClick:d.handleUploadPasteUrls},{default:(0,a.k6)(()=>[...t[8]||(t[8]=[(0,a.eW)(" 上 传 ",-1)])]),_:1},8,["size","onClick"]),(0,a.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,a.k6)(()=>[(0,a.bF)(f,{label:"save"},{default:(0,a.k6)(()=>[...t[9]||(t[9]=[(0,a.eW)("转存",-1)])]),_:1}),(0,a.bF)(f,{label:"external"},{default:(0,a.k6)(()=>[...t[10]||(t[10]=[(0,a.eW)("外链",-1)])]),_:1})]),_:1},8,["modelValue","size"])])]),_:1},8,["class"])])):(0,a.Q3)("",!0),(0,a.bF)(y,{class:(0,i.C4)(["upload-list-card",{"upload-list-busy":c.fileList.length,"is-uploading":c.uploading}])},{default:(0,a.k6)(()=>[(0,a.Lk)("div",{class:(0,i.C4)(["upload-list-container",{"upload-list-busy":c.fileList.length}])},[(0,a.bF)(E,{onScroll:d.handleScroll,ref:"scrollContainer"},{default:(0,a.k6)(()=>[(0,a.Lk)("div",{class:(0,i.C4)(["upload-list-dashboard",{"list-scrolled":c.listScrolled}])},[(0,a.bF)(w,{class:"upload-list-dashboard-title"},{default:(0,a.k6)(()=>[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(C)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadingCount+d.waitingCount)+" ",1),(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(k)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadSuccessCount)+" ",1),(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(v)]),_:1}),(0,a.eW)((0,i.v_)(d.uploadErrorCount),1)]),_:1}),(0,a.Lk)("div",ce,[(0,a.Lk)("div",de,[(0,a.bF)(L,{disabled:d.disableTooltip,content:"整体复制",placement:"top"},{default:(0,a.k6)(()=>[(0,a.Lk)("button",{class:"modern-action-btn",onClick:t[4]||(t[4]=(...e)=>d.copyAll&&d.copyAll(...e))},[(0,a.bF)(F,{icon:"copy"})])]),_:1},8,["disabled"]),(0,a.bF)(L,{disabled:d.disableTooltip,content:"失败重试",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(T,null,{dropdown:(0,a.k6)(()=>[(0,a.bF)(S,{class:"modern-dropdown-menu"},{default:(0,a.k6)(()=>[(0,a.bF)(x,null,{default:(0,a.k6)(()=>[(0,a.Lk)("div",ue,[t[11]||(t[11]=(0,a.Lk)("span",null,"自动重试",-1)),(0,a.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,a.k6)(()=>[(0,a.Lk)("button",{class:"modern-action-btn",onClick:t[5]||(t[5]=(...e)=>d.retryError&&d.retryError(...e))},[(0,a.bF)(F,{icon:"redo"})])]),_:1})]),_:1},8,["disabled"]),(0,a.bF)(L,{disabled:d.disableTooltip,content:"清空列表",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(T,null,{dropdown:(0,a.k6)(()=>[(0,a.bF)(S,{class:"modern-dropdown-menu"},{default:(0,a.k6)(()=>[(0,a.bF)(x,{onClick:d.clearFileList},{default:(0,a.k6)(()=>[...t[12]||(t[12]=[(0,a.eW)("清空全部",-1)])]),_:1},8,["onClick"]),(0,a.bF)(x,{onClick:d.clearSuccessList},{default:(0,a.k6)(()=>[...t[13]||(t[13]=[(0,a.eW)("清空已上传",-1)])]),_:1},8,["onClick"])]),_:1})]),default:(0,a.k6)(()=>[(0,a.Lk)("button",pe,[(0,a.bF)(F,{icon:"trash-alt"})])]),_:1})]),_:1},8,["disabled"])])])],2),((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(c.fileList.slice().reverse(),e=>((0,a.uX)(),(0,a.CE)("div",{class:"upload-list-item",key:e.name,span:8},[(0,a.Lk)("a",{href:e.url,target:"_blank",class:"upload-list-item-preview"},[d.isVideo(e.name)?((0,a.uX)(),(0,a.CE)("video",me,[(0,a.Lk)("source",{src:e.url,type:"video/mp4"},null,8,ge),t[14]||(t[14]=(0,a.eW)(" Your browser does not support the video tag. ",-1))])):d.isImage(e.name)?((0,a.uX)(),(0,a.CE)("img",{key:1,style:{width:"10vw","border-radius":"12px"},src:e.url,onError:t=>e.url=o(6682)},null,40,fe)):((0,a.uX)(),(0,a.CE)("div",be,[(0,a.bF)(F,{icon:"file",class:"file-icon"})]))],8,he),(0,a.Lk)("div",ye,[(0,a.Lk)("div",Ce,[(0,a.bF)(w,{class:"upload-list-item-name",truncated:""},{default:(0,a.k6)(()=>[(0,a.eW)((0,i.v_)(d.truncateFilename(e.name)),1)]),_:2},1024)]),"done"===e.status?((0,a.uX)(),(0,a.CE)("div",ke,[(0,a.Lk)("div",ve,[(0,a.bF)(m,{modelValue:e.finalURL,"onUpdate:modelValue":t=>e.finalURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[15]||(t[15]=[(0,a.eW)("URL",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,a.bF)(m,{modelValue:e.mdURL,"onUpdate:modelValue":t=>e.mdURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[16]||(t[16]=[(0,a.eW)("MarkDown",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])]),(0,a.Lk)("div",we,[(0,a.bF)(m,{modelValue:e.htmlURL,"onUpdate:modelValue":t=>e.htmlURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[17]||(t[17]=[(0,a.eW)("HTML",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"]),(0,a.bF)(m,{modelValue:e.ubbURL,"onUpdate:modelValue":t=>e.ubbURL=t,readonly:"",onClick:d.selectAllText,size:d.urlSize},{prepend:(0,a.k6)(()=>[...t[18]||(t[18]=[(0,a.eW)("BBCode",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onClick","size"])])])):((0,a.uX)(),(0,a.CE)("div",Fe,[(0,a.bF)(M,{percentage:e.progreess,status:e.status,"show-text":!1},null,8,["percentage","status"])]))]),(0,a.Lk)("div",Le,[(0,a.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-primary",onClick:t=>d.handleCopy(e)},[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)($)]),_:1})],8,Ue),(0,a.Lk)("button",{class:"modern-file-action-btn modern-file-action-btn-danger",onClick:t=>d.handleRemove(e)},[(0,a.bF)(p,null,{default:(0,a.k6)(()=>[(0,a.bF)(_)]),_:1})],8,xe)])]))),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 Te=o(457),Me=o(6334),$e=o(8401),_e={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},channelName:{type:String,default:"",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,$e.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 a=l.length+4,i=t-a-3;return i<=0?e.substring(0,t-3)+"...":s.substring(0,i)+"..."+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,a="external"===s?"default":this.uploadNameType,i=new AbortController;this.abortControllers.set(e.file.uid,i);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,Te.A)({url:"/upload?serverCompress="+o+"&uploadChannel="+s+(this.channelName?"&channelName="+encodeURIComponent(this.channelName):"")+"&uploadNameType="+a+"&autoRetry="+l+"&uploadFolder="+this.uploadFolder,method:"post",data:n,withAuthCode:!0,signal:i.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,a=e.file.size,i=Math.ceil(a/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",i.toString());const p=await(0,Te.A)({url:"/upload?serverCompress="+n+"&uploadChannel="+o+(this.channelName?"&channelName="+encodeURIComponent(this.channelName):"")+"&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=i,m.uploadId=h);const g=3,f=new Array(i).fill(0);let b=0,y=!1,C="",k=!1;const v=async t=>{if(y||k)return;const d=t*l,p=Math.min(d+l,a),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",i.toString()),g.append("uploadId",h),g.append("originalFileName",e.file.name),g.append("originalFileType",e.file.type);let b=0;const v=3;while(b{if(y||k)return;const s=Math.round(o.loaded/o.total*100);f[t]=s;const l=Math.round(f.reduce((e,t)=>e+t,0)/i);e.onProgress({percent:l,file:e.file})}})}catch(u){if("CanceledError"===u.name||"ERR_CANCELED"===u.code)return k=!0,void console.log("分块上传已取消:",e.file.name);if(b++,console.warn(`分块 ${t+1}/${i} 上传失败 (重试 ${b}/${v}):`,u),b>=v)throw y=!0,C=`分块 ${t+1}/${i} 上传失败: ${u.message}`,new Error(C);await new Promise(e=>setTimeout(e,2e3*b))}}},w=[];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,Te.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 a=s.type.includes("image")&&this.customerCompress&&s.size/1024/1024>this.compressBar,i=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(a)Me.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 a=this.uploadCount++,i=this.serverCompress&&l.size/1024/1024<10&&"telegram"===this.uploadChannel;0===a?n(l,i):setTimeout(()=>{n(l,i),this.uploadCount--},300*a)}).catch(e=>{this.$message.error(s.name+"压缩失败,无法上传!"),o(e)});else if(i){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`,i=`[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:a,ubbURL:i,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)&&Te.A.post("/api/fetchRes",{url:e},{responseType:"blob"}).then(o=>{o.headers["content-type"];if(200!=o.status)throw new Error("URL地址请求失败");{const a=o.headers["content-disposition"];if(a){const e=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/,t=/filename\*\s*=\s*UTF-8''([^;\n]*)/;let o=e.exec(a);if(null!=o&&o[1]){s=o[1].replace(/['"]/g,"");try{s=decodeURIComponent(s)}catch(l){s=""}}""===s&&(o=t.exec(a),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 i=o.data,n=new File([i],s,{type:i.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 a=await(0,Te.A)({url:"/api/huggingface/getUploadUrl",method:"post",data:{fileSize:e.file.size,fileName:e.file.name,fileType:e.file.type,sha256:t,fileSample:l,channelName:this.channelName,uploadNameType:this.uploadNameType,uploadFolder:this.uploadFolder},withAuthCode:!0,signal:o.signal});if(!a.data.success)throw new Error(a.data.error||"Failed to get upload URL");const i=a.data;if(console.log("Upload info:",i),i.alreadyExists)console.log("File already exists in LFS, skipping upload"),e.onProgress({percent:90,file:e.file});else if(i.needsLfs&&i.uploadAction){const{href:t,header:s}=i.uploadAction;if(s?.chunk_size)await this.uploadToHuggingFaceMultipart(e,i,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,Te.A)({url:"/api/huggingface/commitUpload",method:"post",data:{fullId:i.fullId,filePath:i.filePath,sha256:t,fileSize:e.file.size,fileName:e.file.name,fileType:e.file.type,channelName:i.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:a}=s,i=parseInt(a.chunk_size),n=Object.keys(a).filter(e=>/^[0-9]+$/.test(e));console.log(`Multipart upload: ${n.length} parts, chunk size: ${i}`);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*i,l=Math.min(s+i,e.file.size),n=e.file.slice(s,l);console.log(`Uploading part ${u}/${c}`);const d=await fetch(a[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,i=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=a(s[e-15],7)^a(s[e-15],18)^s[e-15]>>>3,o=a(s[e-2],17)^a(s[e-2],19)^s[e-2]>>>10;s[e]=s[e-16]+t+s[e-7]+o>>>0}let[l,i,n,r,c,d,u,p]=t;for(let t=0;t<64;t++){const o=a(c,6)^a(c,11)^a(c,25),h=c&d^~c&u,m=p+o+h+e[t]+s[t]>>>0,g=a(l,2)^a(l,13)^a(l,22),f=l&i^l&n^i&n,b=g+f>>>0;p=u,u=d,d=c,c=r+m>>>0,r=n,n=i,i=l,l=m+b>>>0}t[0]=t[0]+l>>>0,t[1]=t[1]+i>>>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,a=Math.min(l,e.length);o.set(e.subarray(0,a),s),s+=a,t=a,64===s&&(i(o),s=0)}while(t+64<=e.length)i(e.subarray(t,t+64)),t+=64;t56&&(o.fill(0,s,64),i(o),s=0),o.fill(0,s,56);const a=new DataView(o.buffer);a.setUint32(56,Math.floor(e/4294967296),!1),a.setUint32(60,e>>>0,!1),i(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"),a=l.getContext("2d");s.onload=()=>{l.width=s.width,l.height=s.height,a.drawImage(s,0,0),l.toBlob(l=>{if(l){const o=e.name,s=o.lastIndexOf("."),a=s>0?o.substring(0,s)+".webp":o+".webp",i=new File([l],a,{type:"image/webp"});i.uid=e.uid,t(i)}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 Ee=(0,B.A)(_e,[["render",Se],["__scopeId","data-v-6a7fc61f"]]);var Re=Ee,Ae=o(732),Ie=o(4453);const Pe={class:"container"},Ne={class:"upload-home"},Ve={href:"https://cfbed.sanyue.de/qa/",target:"_blank",class:"info-container"},ze={class:"toolbar-manage"},De={class:"toolbar"},Be={class:"header"},We={class:"title"},He={class:"main-title",href:"https://github.com/MarSeventh/CloudFlare-ImgBed",target:"_blank"},je={class:"dialog-section"},Xe={class:"section-content"},Oe={class:"dialog-section"},Qe={class:"section-header"},qe={class:"section-content"},Ge={class:"setting-item"},Je={key:0,class:"setting-item"},Ke={class:"dialog-action"},Ye={class:"dialog-section"},Ze={class:"section-content"},et={class:"setting-item"},tt={key:0,class:"setting-item"},ot={class:"setting-label"},st={class:"setting-item"},lt={class:"setting-item"},at={class:"setting-label"},it={class:"dialog-section"},nt={class:"section-content"},rt={class:"dialog-section"},ct={class:"section-header"},dt={class:"section-content"},ut={class:"setting-item"},pt={class:"setting-label"},ht={class:"setting-item"},mt={key:0,class:"setting-item slider-item"},gt={class:"setting-label"},ft={class:"slider-wrapper"},bt={class:"slider-input-wrapper"},yt={key:1,class:"setting-item slider-item"},Ct={class:"setting-label"},kt={class:"slider-wrapper"},vt={class:"slider-input-wrapper"},wt={key:0,class:"dialog-section"},Ft={class:"section-header"},Lt={class:"section-content"},Ut={class:"setting-item"},xt={class:"dialog-action"},St=["innerHTML"],Tt={class:"dialog-footer"};function Mt(e,t,o,n,r,c){const d=Ie.A,u=(0,a.g2)("font-awesome-icon"),p=s.R7,h=oe.WK,m=l.S2,g=Z.c6,f=Z.Iy,b=Z.dW,y=Ae.A,C=Re,k=J.ll,v=J.MQ,w=G.qi,F=q.kZ,L=Q.P9,U=Q.AV,x=O.B8,S=X.lq,T=j.A,M=H;return(0,a.uX)(),(0,a.CE)("div",Pe,[(0,a.Lk)("div",Ne,[(0,a.bF)(d,{class:"toggle-dark-button desktop-only"}),(0,a.bF)(p,{content:"查看文档",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.Lk)("a",Ve,[(0,a.bF)(u,{icon:"book",class:"info-icon",size:"lg"})])]),_:1},8,["disabled"]),(0,a.bF)(h,{class:(0,i.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,a.bF)(p,{content:"切换上传方式",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"upload-method-button desktop-only",onClick:c.handleChangeUploadMethod},{default:(0,a.k6)(()=>["default"===r.uploadMethod?((0,a.uX)(),(0,a.Wv)(u,{key:0,icon:"folder-open",class:"upload-method-icon",size:"lg"})):"paste"===r.uploadMethod?((0,a.uX)(),(0,a.Wv)(u,{key:1,icon:"paste",class:"upload-method-icon",size:"lg"})):(0,a.Q3)("",!0)]),_:1},8,["onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{content:"上传记录",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"history-button desktop-only",onClick:t[3]||(t[3]=e=>r.showHistory=!0)},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"history",class:"history-icon",size:"lg"})]),_:1})]),_:1},8,["disabled"]),c.announcementAvailable?((0,a.uX)(),(0,a.Wv)(p,{key:0,content:"查看公告",placement:"bottom",disabled:c.disableTooltip},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"announcement-button desktop-only",onClick:c.handleShowAnnouncement},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"bullhorn",class:"announcement-icon",size:"lg"})]),_:1},8,["onClick"])]),_:1},8,["disabled"])):(0,a.Q3)("",!0),(0,a.bF)(b,{class:"mobile-more-dropdown mobile-only",trigger:"click",onCommand:c.handleMobileMenuCommand},{dropdown:(0,a.k6)(()=>[(0,a.bF)(f,null,{default:(0,a.k6)(()=>[(0,a.bF)(g,{command:"toggleTheme"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:c.getThemeIcon(),style:{"margin-right":"8px"}},null,8,["icon"]),(0,a.eW)(" "+(0,i.v_)(c.getThemeText()),1)]),_:1}),(0,a.bF)(g,{command:"toggleUploadMethod"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"default"===r.uploadMethod?"paste":"folder-open",style:{"margin-right":"8px"}},null,8,["icon"]),(0,a.eW)(" "+(0,i.v_)("default"===r.uploadMethod?"粘贴上传":"文件上传"),1)]),_:1}),(0,a.bF)(g,{command:"showHistory"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"history",style:{"margin-right":"8px"}}),t[26]||(t[26]=(0,a.eW)(" 上传记录 ",-1))]),_:1}),(0,a.bF)(g,{command:"showAnnouncement",disabled:!c.announcementAvailable},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"bullhorn",style:{"margin-right":"8px"}}),t[27]||(t[27]=(0,a.eW)(" 查看公告 ",-1))]),_:1},8,["disabled"])]),_:1})]),default:(0,a.k6)(()=>[(0,a.bF)(m,{class:"mobile-more-button"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"ellipsis-v",size:"lg"})]),_:1})]),_:1},8,["onCommand"]),(0,a.Lk)("div",ze,[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-manage-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleOpenToolbar,circle:""},{default:(0,a.k6)(()=>[r.isToolBarOpen?((0,a.uX)(),(0,a.Wv)(u,{key:1,icon:"times",class:"manage-icon",size:"lg"})):((0,a.uX)(),(0,a.Wv)(u,{key:0,icon:"bars",class:"manage-icon",size:"lg"}))]),_:1},8,["class","onClick"])]),(0,a.Lk)("div",De,[(0,a.bF)(p,{disabled:c.disableTooltip,content:"上传设置",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button compress-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openCompressDialog,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cloud-upload",class:"compress-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"链接格式",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button link-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.openUrlDialog,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"link",class:"link-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"系统管理",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button config-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleManage,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cog",class:"config-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"]),(0,a.bF)(p,{disabled:c.disableTooltip,content:"退出登录",placement:"left"},{default:(0,a.k6)(()=>[(0,a.bF)(m,{class:(0,i.C4)(["toolbar-button sign-out-button",{active:r.isToolBarOpen}]),size:"large",onClick:c.handleLogout,circle:""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"sign-out-alt",class:"sign-out-icon",size:"lg"})]),_:1},8,["class","onClick"])]),_:1},8,["disabled"])]),(0,a.Lk)("div",Be,[(0,a.bF)(y,{useConfigLink:!0}),(0,a.Lk)("h1",We,[(0,a.Lk)("a",He,(0,i.v_)(c.ownerName),1),t[28]||(t[28]=(0,a.eW)(" ImgHub",-1))])]),(0,a.bF)(C,{selectedUrlForm:r.selectedUrlForm,customerCompress:r.customerCompress,compressQuality:r.compressQuality,compressBar:r.compressBar,serverCompress:r.serverCompress,uploadChannel:r.uploadChannel,channelName:r.channelName,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","channelName","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadMethod","uploadFolder","convertToWebp"]),(0,a.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,a.k6)(()=>[(0,a.Lk)("div",je,[t[33]||(t[33]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"默认复制链接")],-1)),(0,a.Lk)("div",Xe,[(0,a.bF)(v,{modelValue:r.selectedUrlForm,"onUpdate:modelValue":t[4]||(t[4]=e=>r.selectedUrlForm=e),onChange:c.changeUrlForm,class:"radio-card-group grid-2x2"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{value:"url",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"link",class:"radio-icon"}),t[29]||(t[29]=(0,a.Lk)("span",null,"原始链接",-1))]),_:1}),(0,a.bF)(k,{value:"md",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"code",class:"radio-icon"}),t[30]||(t[30]=(0,a.Lk)("span",null,"MarkDown",-1))]),_:1}),(0,a.bF)(k,{value:"html",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"code-branch",class:"radio-icon"}),t[31]||(t[31]=(0,a.Lk)("span",null,"HTML",-1))]),_:1}),(0,a.bF)(k,{value:"ubb",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"quote-right",class:"radio-icon"}),t[32]||(t[32]=(0,a.Lk)("span",null,"BBCode",-1))]),_:1})]),_:1},8,["modelValue","onChange"])])]),(0,a.Lk)("div",Oe,[(0,a.Lk)("div",Qe,[t[34]||(t[34]=(0,a.Lk)("span",{class:"section-title"},"自定义链接",-1)),(0,a.bF)(p,{content:"默认链接为https://your.domain/file/xxx.jpg
如果启用自定义链接格式,只保留xxx.jpg部分,其他部分请自行输入",placement:"top","raw-content":""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",qe,[(0,a.Lk)("div",Ge,[t[35]||(t[35]=(0,a.Lk)("span",{class:"setting-label"},"启用自定义",-1)),(0,a.bF)(w,{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,a.uX)(),(0,a.CE)("div",Je,[t[36]||(t[36]=(0,a.Lk)("span",{class:"setting-label"},"自定义前缀",-1)),(0,a.bF)(h,{modelValue:r.customUrlPrefix,"onUpdate:modelValue":t[6]||(t[6]=e=>r.customUrlPrefix=e),placeholder:"请输入自定义链接前缀",class:"setting-input"},null,8,["modelValue"])])):(0,a.Q3)("",!0)])]),(0,a.Lk)("div",Ke,[(0,a.bF)(m,{type:"primary",onClick:t[7]||(t[7]=e=>r.showUrlDialog=!1),class:"confirm-btn"},{default:(0,a.k6)(()=>[...t[37]||(t[37]=[(0,a.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"]),(0,a.bF)(F,{title:"上传设置",modelValue:r.showCompressDialog,"onUpdate:modelValue":t[22]||(t[22]=e=>r.showCompressDialog=e),width:c.dialogWidth,"show-close":!1,class:"settings-dialog"},{default:(0,a.k6)(()=>[(0,a.Lk)("div",Ye,[t[47]||(t[47]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"上传渠道")],-1)),(0,a.Lk)("div",Ze,[(0,a.Lk)("div",et,[t[43]||(t[43]=(0,a.Lk)("span",{class:"setting-label"},"渠道类型",-1)),(0,a.bF)(v,{modelValue:r.uploadChannel,"onUpdate:modelValue":t[9]||(t[9]=e=>r.uploadChannel=e),class:"radio-card-group compact"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{label:"telegram",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"paper-plane",class:"channel-icon"}),t[38]||(t[38]=(0,a.Lk)("span",null,"TG",-1))]),_:1}),(0,a.bF)(k,{label:"cfr2",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cloud",class:"channel-icon"}),t[39]||(t[39]=(0,a.Lk)("span",null,"R2",-1))]),_:1}),(0,a.bF)(k,{label:"s3",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"database",class:"channel-icon"}),t[40]||(t[40]=(0,a.Lk)("span",null,"S3",-1))]),_:1}),(0,a.bF)(k,{label:"discord",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"comments",class:"channel-icon"}),t[41]||(t[41]=(0,a.Lk)("span",null,"DC",-1))]),_:1}),(0,a.bF)(k,{label:"huggingface",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"robot",class:"channel-icon"}),t[42]||(t[42]=(0,a.Lk)("span",null,"HF",-1))]),_:1})]),_:1},8,["modelValue"])]),c.currentChannelList.length>1?((0,a.uX)(),(0,a.CE)("div",tt,[(0,a.Lk)("span",ot,[t[44]||(t[44]=(0,a.eW)(" 渠道名称 ",-1)),(0,a.bF)(p,{content:"选择具体的渠道名称,不选择则使用负载均衡或默认渠道",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(U,{modelValue:r.channelName,"onUpdate:modelValue":t[10]||(t[10]=e=>r.channelName=e),placeholder:"自动选择",clearable:"",class:"setting-input"},{default:(0,a.k6)(()=>[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(c.currentChannelList,e=>((0,a.uX)(),(0,a.Wv)(L,{key:e.name,label:e.name,value:e.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):(0,a.Q3)("",!0),(0,a.Lk)("div",st,[t[45]||(t[45]=(0,a.Lk)("span",{class:"setting-label"},"上传目录",-1)),(0,a.bF)(h,{modelValue:r.uploadFolder,"onUpdate:modelValue":t[11]||(t[11]=e=>r.uploadFolder=e),placeholder:"请输入上传目录路径",class:"setting-input"},null,8,["modelValue"])]),(0,a.Lk)("div",lt,[(0,a.Lk)("span",at,[t[46]||(t[46]=(0,a.eW)(" 自动切换 ",-1)),(0,a.bF)(p,{content:"对于非分块上传文件,上传失败自动切换到其他渠道上传",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(w,{modelValue:r.autoRetry,"onUpdate:modelValue":t[12]||(t[12]=e=>r.autoRetry=e)},null,8,["modelValue"])])])]),(0,a.Lk)("div",it,[t[52]||(t[52]=(0,a.Lk)("div",{class:"section-header"},[(0,a.Lk)("span",{class:"section-title"},"文件命名方式")],-1)),(0,a.Lk)("div",nt,[(0,a.bF)(v,{modelValue:r.uploadNameType,"onUpdate:modelValue":t[13]||(t[13]=e=>r.uploadNameType=e),class:"radio-card-group grid-2x2"},{default:(0,a.k6)(()=>[(0,a.bF)(k,{label:"default",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"cog",class:"radio-icon"}),t[48]||(t[48]=(0,a.Lk)("span",null,"默认",-1))]),_:1}),(0,a.bF)(k,{label:"index",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"hashtag",class:"radio-icon"}),t[49]||(t[49]=(0,a.Lk)("span",null,"仅前缀",-1))]),_:1}),(0,a.bF)(k,{label:"origin",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"file-signature",class:"radio-icon"}),t[50]||(t[50]=(0,a.Lk)("span",null,"仅原名",-1))]),_:1}),(0,a.bF)(k,{label:"short",class:"radio-card"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"compress-alt",class:"radio-icon"}),t[51]||(t[51]=(0,a.Lk)("span",null,"短链接",-1))]),_:1})]),_:1},8,["modelValue"])])]),(0,a.Lk)("div",rt,[(0,a.Lk)("div",ct,[t[53]||(t[53]=(0,a.Lk)("span",{class:"section-title"},"文件预处理",-1)),(0,a.bF)(p,{content:"上传前在本地进行格式转换和压缩,仅对图片文件生效",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",dt,[(0,a.Lk)("div",ut,[(0,a.Lk)("span",pt,[t[54]||(t[54]=(0,a.eW)(" 转换为WebP ",-1)),(0,a.bF)(p,{content:"上传前将图片转换为WebP格式,可有效减小文件体积。转换失败时保持原格式上传",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.bF)(w,{modelValue:r.convertToWebp,"onUpdate:modelValue":t[14]||(t[14]=e=>r.convertToWebp=e)},null,8,["modelValue"])]),(0,a.Lk)("div",ht,[t[55]||(t[55]=(0,a.Lk)("span",{class:"setting-label"},"文件压缩",-1)),(0,a.bF)(w,{modelValue:r.customerCompress,"onUpdate:modelValue":t[15]||(t[15]=e=>r.customerCompress=e)},null,8,["modelValue"])]),r.customerCompress?((0,a.uX)(),(0,a.CE)("div",mt,[(0,a.Lk)("span",gt,[t[56]||(t[56]=(0,a.eW)(" 压缩阈值 ",-1)),(0,a.bF)(p,{content:"设置图片大小阈值,超过此值将自动压缩,单位MB",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.Lk)("div",ft,[(0,a.bF)(x,{modelValue:r.compressBar,"onUpdate:modelValue":t[16]||(t[16]=e=>r.compressBar=e),min:1,max:20,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","format-tooltip"]),(0,a.Lk)("div",bt,[(0,a.bF)(S,{modelValue:r.compressBar,"onUpdate:modelValue":t[17]||(t[17]=e=>r.compressBar=e),min:1,max:20,step:1,"value-on-clear":1,class:"slider-input","controls-position":"right"},null,8,["modelValue"]),t[57]||(t[57]=(0,a.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,a.Q3)("",!0),r.customerCompress?((0,a.uX)(),(0,a.CE)("div",yt,[(0,a.Lk)("span",Ct,[t[58]||(t[58]=(0,a.eW)(" 期望大小 ",-1)),(0,a.bF)(p,{content:"设置压缩后图片大小期望值,单位MB",placement:"top"},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"inline-help-icon"})]),_:1})]),(0,a.Lk)("div",kt,[(0,a.bF)(x,{modelValue:r.compressQuality,"onUpdate:modelValue":t[18]||(t[18]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,"format-tooltip":e=>`${e} MB`},null,8,["modelValue","max","format-tooltip"]),(0,a.Lk)("div",vt,[(0,a.bF)(S,{modelValue:r.compressQuality,"onUpdate:modelValue":t[19]||(t[19]=e=>r.compressQuality=e),min:.5,max:r.compressBar,step:.1,precision:1,"value-on-clear":.5,class:"slider-input","controls-position":"right"},null,8,["modelValue","max"]),t[59]||(t[59]=(0,a.Lk)("span",{class:"slider-unit"},"MB",-1))])])])):(0,a.Q3)("",!0)])]),"telegram"===r.uploadChannel?((0,a.uX)(),(0,a.CE)("div",wt,[(0,a.Lk)("div",Ft,[t[60]||(t[60]=(0,a.Lk)("span",{class:"section-title"},"服务端压缩",-1)),(0,a.bF)(p,{content:"1. 在 Telegram 端进行压缩,仅对上传渠道为 Telegram 的图片文件生效
2. 若图片大小(本地压缩后大小)大于10MB,本设置自动失效
3. 若上传分辨率过大、透明背景等图片,建议关闭服务端压缩,否则可能出现未知问题",placement:"top","raw-content":""},{default:(0,a.k6)(()=>[(0,a.bF)(u,{icon:"question-circle",class:"section-help-icon"})]),_:1})]),(0,a.Lk)("div",Lt,[(0,a.Lk)("div",Ut,[t[61]||(t[61]=(0,a.Lk)("span",{class:"setting-label"},"开启压缩",-1)),(0,a.bF)(w,{modelValue:r.serverCompress,"onUpdate:modelValue":t[20]||(t[20]=e=>r.serverCompress=e)},null,8,["modelValue"])])])])):(0,a.Q3)("",!0),(0,a.Lk)("div",xt,[(0,a.bF)(m,{type:"primary",onClick:t[21]||(t[21]=e=>r.showCompressDialog=!1),class:"confirm-btn"},{default:(0,a.k6)(()=>[...t[62]||(t[62]=[(0,a.eW)("确定",-1)])]),_:1})])]),_:1},8,["modelValue","width"])]),(0,a.bF)(T,{class:"footer"}),(0,a.bF)(F,{title:"公告",modelValue:r.showAnnouncementDialog,"onUpdate:modelValue":t[24]||(t[24]=e=>r.showAnnouncementDialog=e),width:c.dialogWidth,"show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1,center:""},{footer:(0,a.k6)(()=>[(0,a.Lk)("span",Tt,[(0,a.bF)(m,{type:"primary",onClick:t[23]||(t[23]=e=>r.showAnnouncementDialog=!1)},{default:(0,a.k6)(()=>[...t[63]||(t[63]=[(0,a.eW)("我已知晓!",-1)])]),_:1})])]),default:(0,a.k6)(()=>[(0,a.Lk)("div",{innerHTML:r.announcementContent},null,8,St)]),_:1},8,["modelValue","width"]),(0,a.bF)(M,{show:r.showHistory,onClose:t[25]||(t[25]=e=>r.showHistory=!1)},null,8,["show"])])}o(3579);var $t=o(8903),_t=o(144),Et=o(4570),Rt=o.n(Et),At=o(2388),It={name:"UploadHome",mixins:[$t.A],data(){return{selectedUrlForm:(0,_t.KR)(""),showUrlDialog:!1,showCompressDialog:!1,customerCompress:!0,compressQuality:4,compressBar:5,convertToWebp:!1,serverCompress:!0,uploadChannel:"",channelName:"",availableChannels:{},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);const t=this.availableChannels[e]||[],o=this.storeChannelName;o&&t.some(e=>e.name===o)?this.channelName=o:this.channelName=""},channelName(e){this.$store.commit("setStoreChannelName",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,$e.L8)(["userConfig","uploadCopyUrlForm","compressConfig","storeUploadChannel","storeChannelName","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},currentChannelList(){return this.availableChannels[this.uploadChannel]||[]}},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.fetchAvailableChannels(),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:Re,Footer:j.A,ToggleDark:Ie.A,Logo:Ae.A,UploadHistory:H},methods:{async fetchAvailableChannels(){try{const e=await Te.A.get("/api/channels");if(e.data){this.availableChannels=e.data;const t=this.storeChannelName,o=this.userConfig?.defaultChannelName,s=this.availableChannels[this.uploadChannel]||[];t&&s.some(e=>e.name===t)?this.channelName=t:o&&s.some(e=>e.name===o)&&(this.channelName=o)}}catch(e){console.error("Failed to fetch available channels:",e)}},validateUploadFolder(e){const t=(0,At.G)(e);if(!t.valid){const e=t.error.replace("目标目录","上传目录");return this.$message.error(e),!1}return!0},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(){Rt().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 Pt=(0,B.A)(It,[["render",Mt],["__scopeId","data-v-64bd58b9"]]);var Nt=Pt},200:function(e,t,o){"use strict";o(5331)},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 i}),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 C}),o.d(t,"EImageType",function(){return s}),function(e){e.PNG="image/png",e.JPEG="image/jpeg",e.GIF="image/gif"}(s||(s={}));var a=function(e,t,o,s){return new(o||(o=Promise))(function(l,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,n)}r((s=s.apply(e,t||[])).next())})};function i(e,t=.92,o=s.JPEG){return a(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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a=atob(o[1]);let i=a.length;const n=new Uint8Array(i);for(;i--;)n[i]=a.charCodeAt(i);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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a,i;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;i=e.width*t,a=e.height*t}else i=o.width||o.height*e.width/e.height||e.width,a=o.height||o.width*e.height/e.width||e.height;switch([5,6,7,8].some(e=>e===o.orientation)?(s.height=i,s.width=a):(s.height=a,s.width=i),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,a){function i(e){try{r(s.next(e))}catch(e){a(e)}}function n(e){try{r(s.throw(e))}catch(e){a(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(i,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 a=o.split(",")[0].match(/:(.*?);/)[1],n=s.JPEG;l(t.type)&&(n=t.type,a=t.type);const r=yield d(o),u=yield m(r,Object.assign({},t)),h=yield i(u,t.quality,n),g=yield c(h,a);return g.size>e.size?e:g})}function C(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,a=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 C=[null,null];for(let e=1;e<=7;e++){b=yield i(f,y,h);const t=.75*b.length;if(7===e){(ot)&&(b=[b,...C].filter(e=>e).sort((e,t)=>Math.abs(.75*e.length-a)-Math.abs(.75*t.length-a))[0]);break}if(ot))break;C[0]=b,y+=Math.pow(.5,e+1)}}const k=yield c(b,u);return k.size>e.size?e:k})}}])})},2388:function(e,t,o){"use strict";function s(e){if(!e||""===e.trim())return{valid:!0};if("/"===e)return{valid:!0};if(!e.startsWith("/"))return{valid:!1,error:'目标目录必须以 "/" 开头'};const t=/[\\:\*\?"'<>\| \(\)\[\]\{\}#%\^`~;@&=\+\$,]/;return t.test(e)?{valid:!1,error:"目标目录包含非法字符,请使用合法的路径格式"}:e.includes("//")?{valid:!1,error:"目标目录不能包含连续的斜杠"}:{valid:!0}}o.d(t,{G:function(){return s}})},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"},6808:function(e,t,o){"use strict";o(5331),o(8785),o(200),o(5970),o(9104)},8075:function(e,t,o){"use strict";o(5331)},8785: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=689.ed6ed975.js.map \ No newline at end of file diff --git a/js/689.ed6ed975.js.gz b/js/689.ed6ed975.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3954bd57e3c7ca7367f5018a99b108d7f970d8c4 GIT binary patch literal 21786 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
$)%{qyb)URs**k-tL({oB~21Ek+rGx|6O4Khcd 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 N{}-}ajHi?@0RTkftn~l@ literal 0 HcmV?d00001 diff --git a/js/689.ed6ed975.js.map b/js/689.ed6ed975.js.map new file mode 100644 index 0000000..66a6454 --- /dev/null +++ b/js/689.ed6ed975.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/689.ed6ed975.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/components/UploadHistory.vue?e143","webpack://sanyue_imghub/./src/components/UploadHistory.vue","webpack://sanyue_imghub/./src/components/UploadHistory.vue?4b6c","webpack://sanyue_imghub/./src/components/UploadForm.vue?527f","webpack://sanyue_imghub/./src/components/UploadForm.vue","webpack://sanyue_imghub/./src/components/UploadForm.vue?0da8","webpack://sanyue_imghub/./src/views/UploadHome.vue?ab3f","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/./src/utils/pathValidator.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 class: \"timeline-header\"\n};\nconst _hoisted_6 = {\n class: \"date-label\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"grid-view\"\n};\nconst _hoisted_8 = {\n class: \"grid-preview\"\n};\nconst _hoisted_9 = [\"src\"];\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = {\n key: 2,\n class: \"file-icon-wrapper\"\n};\nconst _hoisted_12 = {\n class: \"grid-overlay\"\n};\nconst _hoisted_13 = {\n class: \"grid-actions\"\n};\nconst _hoisted_14 = {\n class: \"grid-info\"\n};\nconst _hoisted_15 = [\"title\"];\nconst _hoisted_16 = {\n class: \"upload-time\"\n};\nconst _hoisted_17 = {\n key: 1,\n class: \"list-view\"\n};\nconst _hoisted_18 = {\n class: \"list-preview\"\n};\nconst _hoisted_19 = [\"src\"];\nconst _hoisted_20 = [\"src\"];\nconst _hoisted_21 = {\n key: 2,\n class: \"file-icon-wrapper-small\"\n};\nconst _hoisted_22 = {\n class: \"list-info\"\n};\nconst _hoisted_23 = [\"title\"];\nconst _hoisted_24 = [\"title\"];\nconst _hoisted_25 = {\n class: \"list-meta\"\n};\nconst _hoisted_26 = {\n class: \"upload-time\"\n};\nconst _hoisted_27 = {\n class: \"list-actions\"\n};\nconst _hoisted_28 = {\n key: 0,\n class: \"load-more-container\"\n};\nconst _hoisted_29 = {\n key: 0,\n class: \"loading-indicator\"\n};\nconst _hoisted_30 = {\n key: 1,\n class: \"load-more-hint\"\n};\nconst _hoisted_31 = {\n key: 1,\n class: \"no-more-hint\"\n};\nconst _hoisted_32 = {\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[4] || (_cache[4] = _createElementVNode(\"h2\", null, \"历史记录\", -1)), _createElementVNode(\"span\", _hoisted_3, \"共 \" + _toDisplayString($data.totalCount) + \" 条\", 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\", {\n key: 0,\n class: \"history-content\",\n ref: \"historyContent\",\n onScroll: _cache[3] || (_cache[3] = (...args) => $options.handleScroll && $options.handleScroll(...args))\n }, [(_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_5, [_cache[5] || (_cache[5] = _createElementVNode(\"div\", {\n class: \"timeline-dot\"\n }, null, -1)), _createElementVNode(\"span\", _hoisted_6, _toDisplayString(group.date), 1)]), $data.viewMode === 'grid' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, item => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"grid-item\"\n }, [_createElementVNode(\"div\", _hoisted_8, [$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_9)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_10)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\",\n class: \"file-icon\"\n })])), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"div\", _hoisted_13, [_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_14, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_15), _createElementVNode(\"div\", _hoisted_16, _toDisplayString($options.formatTime(item.time)), 1)])]);\n }), 128))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group.items, item => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: item.time,\n class: \"list-item\"\n }, [_createElementVNode(\"div\", _hoisted_18, [$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_19)) : $options.isVideo(item.name) ? (_openBlock(), _createElementBlock(\"video\", {\n key: 1,\n src: item.url,\n muted: \"\"\n }, null, 8, _hoisted_20)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [_createVNode(_component_font_awesome_icon, {\n icon: \"file\"\n })]))]), _createElementVNode(\"div\", _hoisted_22, [_createElementVNode(\"div\", {\n class: \"file-name\",\n title: item.name\n }, _toDisplayString(item.name), 9, _hoisted_23), _createElementVNode(\"div\", {\n class: \"file-url\",\n title: item.url\n }, _toDisplayString(item.url), 9, _hoisted_24)]), _createElementVNode(\"div\", _hoisted_25, [_createElementVNode(\"div\", _hoisted_26, _toDisplayString($options.formatTime(item.time)), 1)]), _createElementVNode(\"div\", _hoisted_27, [_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)), $options.hasMore ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [$data.loadingMore ? (_openBlock(), _createElementBlock(\"div\", _hoisted_29, [_createVNode(_component_font_awesome_icon, {\n icon: \"spinner\",\n spin: \"\"\n }), _cache[6] || (_cache[6] = _createElementVNode(\"span\", null, \"加载中...\", -1))])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_30, \"下拉加载更多\"))])) : $data.historyList.length > 0 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, \"没有更多记录了\")) : _createCommentVNode(\"\", true)], 544)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [_createVNode(_component_font_awesome_icon, {\n icon: \"history\",\n class: \"empty-icon\"\n }), _cache[7] || (_cache[7] = _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 allHistory: [],\n // 完整历史记录\n viewMode: 'grid',\n // 'grid' or 'list'\n pageSize: 30,\n // 每次加载数量\n currentPage: 0,\n loadingMore: false,\n totalCount: 0\n };\n },\n watch: {\n show(val) {\n if (val) {\n this.resetAndLoad();\n }\n }\n },\n computed: {\n hasMore() {\n return this.historyList.length < this.totalCount;\n },\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 resetAndLoad() {\n this.historyList = [];\n this.currentPage = 0;\n this.loadAllHistory();\n this.loadMore();\n },\n loadAllHistory() {\n try {\n const history = JSON.parse(localStorage.getItem('uploadHistory') || '[]');\n // Sort by time desc\n this.allHistory = history.sort((a, b) => b.time - a.time);\n this.totalCount = this.allHistory.length;\n } catch (e) {\n console.error('Failed to load history', e);\n this.allHistory = [];\n this.totalCount = 0;\n }\n },\n loadMore() {\n if (this.loadingMore || !this.hasMore) return;\n this.loadingMore = true;\n\n // 模拟异步加载,避免阻塞UI\n setTimeout(() => {\n const start = this.currentPage * this.pageSize;\n const end = start + this.pageSize;\n const newItems = this.allHistory.slice(start, end);\n this.historyList = [...this.historyList, ...newItems];\n this.currentPage++;\n this.loadingMore = false;\n }, 50);\n },\n handleScroll(e) {\n const container = e.target;\n const scrollTop = container.scrollTop;\n const scrollHeight = container.scrollHeight;\n const clientHeight = container.clientHeight;\n\n // 距离底部 100px 时加载更多\n if (scrollHeight - scrollTop - clientHeight < 100) {\n this.loadMore();\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 this.allHistory = [];\n this.totalCount = 0;\n this.currentPage = 0;\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 lists\n this.historyList = this.historyList.filter(i => i.time !== item.time);\n this.allHistory = this.allHistory.filter(i => i.time !== item.time);\n this.totalCount = this.allHistory.length;\n\n // Update localStorage\n try {\n localStorage.setItem('uploadHistory', JSON.stringify(this.allHistory));\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=12200cbe&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=12200cbe&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-12200cbe\"]])\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 channelName: {\n type: String,\n default: '',\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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 + (this.channelName ? '&channelName=' + encodeURIComponent(this.channelName) : '') + '&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 fileType: file.file.type,\n sha256,\n fileSample,\n channelName: this.channelName,\n // 传递指定的渠道名称\n uploadNameType: this.uploadNameType,\n uploadFolder: this.uploadFolder\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 fileType: file.file.type,\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=6a7fc61f&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=6a7fc61f&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-6a7fc61f\"]])\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, renderList as _renderList, Fragment as _Fragment } 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 key: 0,\n class: \"setting-item\"\n};\nconst _hoisted_21 = {\n class: \"setting-label\"\n};\nconst _hoisted_22 = {\n class: \"setting-item\"\n};\nconst _hoisted_23 = {\n class: \"setting-item\"\n};\nconst _hoisted_24 = {\n class: \"setting-label\"\n};\nconst _hoisted_25 = {\n class: \"dialog-section\"\n};\nconst _hoisted_26 = {\n class: \"section-content\"\n};\nconst _hoisted_27 = {\n class: \"dialog-section\"\n};\nconst _hoisted_28 = {\n class: \"section-header\"\n};\nconst _hoisted_29 = {\n class: \"section-content\"\n};\nconst _hoisted_30 = {\n class: \"setting-item\"\n};\nconst _hoisted_31 = {\n class: \"setting-label\"\n};\nconst _hoisted_32 = {\n class: \"setting-item\"\n};\nconst _hoisted_33 = {\n key: 0,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_34 = {\n class: \"setting-label\"\n};\nconst _hoisted_35 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_36 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_37 = {\n key: 1,\n class: \"setting-item slider-item\"\n};\nconst _hoisted_38 = {\n class: \"setting-label\"\n};\nconst _hoisted_39 = {\n class: \"slider-wrapper\"\n};\nconst _hoisted_40 = {\n class: \"slider-input-wrapper\"\n};\nconst _hoisted_41 = {\n key: 0,\n class: \"dialog-section\"\n};\nconst _hoisted_42 = {\n class: \"section-header\"\n};\nconst _hoisted_43 = {\n class: \"section-content\"\n};\nconst _hoisted_44 = {\n class: \"setting-item\"\n};\nconst _hoisted_45 = {\n class: \"dialog-action\"\n};\nconst _hoisted_46 = [\"innerHTML\"];\nconst _hoisted_47 = {\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_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\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[26] || (_cache[26] = _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[27] || (_cache[27] = _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[28] || (_cache[28] = _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 channelName: $data.channelName,\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\", \"channelName\", \"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[33] || (_cache[33] = _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[29] || (_cache[29] = _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[30] || (_cache[30] = _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[31] || (_cache[31] = _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[32] || (_cache[32] = _createElementVNode(\"span\", null, \"BBCode\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\", \"onChange\"])])]), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"div\", _hoisted_12, [_cache[34] || (_cache[34] = _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[35] || (_cache[35] = _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[36] || (_cache[36] = _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[37] || (_cache[37] = [_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[22] || (_cache[22] = $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[47] || (_cache[47] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"上传渠道\")], -1)), _createElementVNode(\"div\", _hoisted_18, [_createElementVNode(\"div\", _hoisted_19, [_cache[43] || (_cache[43] = _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[38] || (_cache[38] = _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[39] || (_cache[39] = _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[40] || (_cache[40] = _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[41] || (_cache[41] = _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[42] || (_cache[42] = _createElementVNode(\"span\", null, \"HF\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])]), $options.currentChannelList.length > 1 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [_createElementVNode(\"span\", _hoisted_21, [_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_select, {\n modelValue: $data.channelName,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.channelName = $event),\n placeholder: \"自动选择\",\n clearable: \"\",\n class: \"setting-input\"\n }, {\n default: _withCtx(() => [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($options.currentChannelList, ch => {\n return _openBlock(), _createBlock(_component_el_option, {\n key: ch.name,\n label: ch.name,\n value: ch.name\n }, null, 8, [\"label\", \"value\"]);\n }), 128))]),\n _: 1\n }, 8, [\"modelValue\"])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_22, [_cache[45] || (_cache[45] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"上传目录\", -1)), _createVNode(_component_el_input, {\n modelValue: $data.uploadFolder,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $data.uploadFolder = $event),\n placeholder: \"请输入上传目录路径\",\n class: \"setting-input\"\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_23, [_createElementVNode(\"span\", _hoisted_24, [_cache[46] || (_cache[46] = _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[12] || (_cache[12] = $event => $data.autoRetry = $event)\n }, null, 8, [\"modelValue\"])])])]), _createElementVNode(\"div\", _hoisted_25, [_cache[52] || (_cache[52] = _createElementVNode(\"div\", {\n class: \"section-header\"\n }, [_createElementVNode(\"span\", {\n class: \"section-title\"\n }, \"文件命名方式\")], -1)), _createElementVNode(\"div\", _hoisted_26, [_createVNode(_component_el_radio_group, {\n modelValue: $data.uploadNameType,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = $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[48] || (_cache[48] = _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[49] || (_cache[49] = _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[50] || (_cache[50] = _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[51] || (_cache[51] = _createElementVNode(\"span\", null, \"短链接\", -1))]),\n _: 1\n })]),\n _: 1\n }, 8, [\"modelValue\"])])]), _createElementVNode(\"div\", _hoisted_27, [_createElementVNode(\"div\", _hoisted_28, [_cache[53] || (_cache[53] = _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_29, [_createElementVNode(\"div\", _hoisted_30, [_createElementVNode(\"span\", _hoisted_31, [_cache[54] || (_cache[54] = _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[14] || (_cache[14] = $event => $data.convertToWebp = $event)\n }, null, 8, [\"modelValue\"])]), _createElementVNode(\"div\", _hoisted_32, [_cache[55] || (_cache[55] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"文件压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.customerCompress,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $data.customerCompress = $event)\n }, null, 8, [\"modelValue\"])]), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_33, [_createElementVNode(\"span\", _hoisted_34, [_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_35, [_createVNode(_component_el_slider, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = $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_36, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressBar,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.compressBar = $event),\n min: 1,\n max: 20,\n step: 1,\n \"value-on-clear\": 1,\n class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\"]), _cache[57] || (_cache[57] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true), $data.customerCompress ? (_openBlock(), _createElementBlock(\"div\", _hoisted_37, [_createElementVNode(\"span\", _hoisted_38, [_cache[58] || (_cache[58] = _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_39, [_createVNode(_component_el_slider, {\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 \"format-tooltip\": value => `${value} MB`\n }, null, 8, [\"modelValue\", \"max\", \"format-tooltip\"]), _createElementVNode(\"div\", _hoisted_40, [_createVNode(_component_el_input_number, {\n modelValue: $data.compressQuality,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = $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 class: \"slider-input\",\n \"controls-position\": \"right\"\n }, null, 8, [\"modelValue\", \"max\"]), _cache[59] || (_cache[59] = _createElementVNode(\"span\", {\n class: \"slider-unit\"\n }, \"MB\", -1))])])])) : _createCommentVNode(\"\", true)])]), $data.uploadChannel === 'telegram' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_41, [_createElementVNode(\"div\", _hoisted_42, [_cache[60] || (_cache[60] = _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_43, [_createElementVNode(\"div\", _hoisted_44, [_cache[61] || (_cache[61] = _createElementVNode(\"span\", {\n class: \"setting-label\"\n }, \"开启压缩\", -1)), _createVNode(_component_el_switch, {\n modelValue: $data.serverCompress,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = $event => $data.serverCompress = $event)\n }, null, 8, [\"modelValue\"])])])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_45, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[21] || (_cache[21] = $event => $data.showCompressDialog = false),\n class: \"confirm-btn\"\n }, {\n default: _withCtx(() => [...(_cache[62] || (_cache[62] = [_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[24] || (_cache[24] = $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_47, [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[23] || (_cache[23] = $event => $data.showAnnouncementDialog = false)\n }, {\n default: _withCtx(() => [...(_cache[63] || (_cache[63] = [_createTextVNode(\"我已知晓!\", -1)]))]),\n _: 1\n })])]),\n default: _withCtx(() => [_createElementVNode(\"div\", {\n innerHTML: $data.announcementContent\n }, null, 8, _hoisted_46)]),\n _: 1\n }, 8, [\"modelValue\", \"width\"]), _createVNode(_component_UploadHistory, {\n show: $data.showHistory,\n onClose: _cache[25] || (_cache[25] = $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 \"core-js/modules/es.iterator.some.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 axios from '@/utils/axios';\nimport { ref } from 'vue';\nimport cookies from 'vue-cookies';\nimport { mapGetters } from 'vuex';\nimport { validateFolderPath } from '@/utils/pathValidator';\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 channelName: '',\n //指定的渠道名称\n availableChannels: {},\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 const newChannelList = this.availableChannels[val] || [];\n const savedChannelName = this.storeChannelName;\n if (savedChannelName && newChannelList.some(ch => ch.name === savedChannelName)) {\n // 持久化的渠道名在新渠道列表中,恢复它\n this.channelName = savedChannelName;\n } else {\n // 否则清空\n this.channelName = '';\n }\n },\n channelName(val) {\n this.$store.commit('setStoreChannelName', 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', 'storeChannelName', '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 currentChannelList() {\n return this.availableChannels[this.uploadChannel] || [];\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.fetchAvailableChannels();\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 async fetchAvailableChannels() {\n try {\n const response = await axios.get('/api/channels');\n if (response.data) {\n this.availableChannels = response.data;\n // 恢复渠道名称:优先持久化的值,其次系统默认配置\n const savedChannelName = this.storeChannelName;\n const defaultChannelName = this.userConfig?.defaultChannelName;\n const currentChannelList = this.availableChannels[this.uploadChannel] || [];\n if (savedChannelName && currentChannelList.some(ch => ch.name === savedChannelName)) {\n this.channelName = savedChannelName;\n } else if (defaultChannelName && currentChannelList.some(ch => ch.name === defaultChannelName)) {\n this.channelName = defaultChannelName;\n }\n }\n } catch (error) {\n console.error('Failed to fetch available channels:', error);\n }\n },\n // 验证上传文件夹路径的合法性\n validateUploadFolder(path) {\n const result = validateFolderPath(path);\n if (!result.valid) {\n // 将错误消息中的\"目标目录\"替换为\"上传目录\"以保持原有的提示风格\n const errorMessage = result.error.replace('目标目录', '上传目录');\n this.$message.error(errorMessage);\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=64bd58b9&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=64bd58b9&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-64bd58b9\"]])\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}))}}])}));","/**\r\n * 路径验证器模块\r\n * 提供共享的文件夹路径验证功能,供 AdminDashBoard 和 UploadHome 共同使用\r\n */\r\n\r\n/**\r\n * 验证文件夹路径的合法性\r\n * @param {string} path - 要验证的路径\r\n * @returns {{ valid: boolean, error?: string }} 验证结果\r\n */\r\nexport function validateFolderPath(path) {\r\n // 如果路径为空或仅为空白字符,返回有效(表示根目录)\r\n if (!path || path.trim() === '') {\r\n return { valid: true };\r\n }\r\n \r\n // 如果路径仅为 \"/\",返回有效(表示根目录)\r\n if (path === '/') {\r\n return { valid: true };\r\n }\r\n \r\n // 检查路径是否以 \"/\" 开头\r\n if (!path.startsWith('/')) {\r\n return { \r\n valid: false, \r\n error: '目标目录必须以 \"/\" 开头' \r\n };\r\n }\r\n \r\n // 检查路径是否包含非法字符\r\n // 非法字符包括: \\ : * ? \" ' < > | 空格 ( ) [ ] { } # % ^ ` ~ ; @ & = + $ ,\r\n const invalidChars = /[\\\\:\\*\\?\"'<>\\| \\(\\)\\[\\]\\{\\}#%\\^`~;@&=\\+\\$,]/;\r\n if (invalidChars.test(path)) {\r\n return { \r\n valid: false, \r\n error: '目标目录包含非法字符,请使用合法的路径格式' \r\n };\r\n }\r\n \r\n // 检查路径是否包含连续的斜杠\r\n if (path.includes('//')) {\r\n return { \r\n valid: false, \r\n error: '目标目录不能包含连续的斜杠' \r\n };\r\n }\r\n \r\n return { valid: true };\r\n}\r\n","module.exports = require(\"./build/conversion.js\");\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","key","_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","_hoisted_30","_hoisted_31","_hoisted_32","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","_component_el_tooltip","show","totalCount","content","placement","default","circle","onClick","toggleViewMode","icon","viewMode","_","type","clearHistory","$event","$emit","historyList","length","ref","onScroll","args","handleScroll","groupedHistory","group","date","items","item","time","isImage","name","src","url","loading","onError","handleImageError","isVideo","muted","size","copyLink","openLink","deleteItem","title","formatTime","hasMore","loadingMore","spin","props","Boolean","data","allHistory","pageSize","currentPage","watch","val","this","resetAndLoad","computed","groups","forEach","Date","dateStr","getFullYear","String","getMonth","padStart","getDate","push","Object","keys","sort","a","b","map","mounted","savedMode","localStorage","getItem","methods","loadAllHistory","loadMore","history","JSON","parse","e","console","error","setTimeout","start","end","newItems","slice","container","target","scrollTop","scrollHeight","clientHeight","setItem","$confirm","confirmButtonText","cancelButtonText","then","removeItem","$message","success","catch","filter","i","stringify","fileName","imageExtensions","extension","split","pop","toLowerCase","includes","videoExtensions","timestamp","year","month","day","hours","getHours","minutes","getMinutes","seconds","getSeconds","navigator","clipboard","writeText","window","open","__exports__","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","listScrolled","uploadingCount","waitingCount","uploadSuccessCount","uploadErrorCount","disabled","disableTooltip","copyAll","dropdown","autoReUpload","onChange","handleAutoRetryChange","retryError","clearFileList","clearSuccessList","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","channelName","uploadNameType","useCustomUrl","customUrlPrefix","autoRetry","urlPrefix","uploadFolder","convertToWebp","maxUploading","exceptionList","fileListLength","uploadCount","maxRetryCount","retryTimer","retryDelay","uploadQueue","activeUploads","maxConcurrentUploads","abortControllers","Map","handler","$nextTick","$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","encodeURIComponent","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","chunkIndex","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","retryFailedFiles","files","clearTimeout","filesToRetry","aborted","sampleBytes","Uint8Array","arrayBuffer","fileSample","btoa","fromCharCode","uploadInfoRes","fileType","uploadInfo","alreadyExists","needsLfs","uploadAction","header","chunk_size","uploadToHuggingFaceMultipart","uploadRes","fetch","body","ok","commitRes","fullId","filePath","formattedResponse","completionUrl","chunkSize","parseInt","parts","completeParts","totalParts","part","DOMException","index","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_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","_hoisted_46","_hoisted_47","_component_ToggleDark","_component_Logo","_component_UploadForm","_component_el_radio","_component_el_dialog","_component_el_option","_component_el_select","_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","currentChannelList","clearable","step","precision","showAnnouncementDialog","center","footer","innerHTML","announcementContent","onClose","mixins","backgroundManager","availableChannels","useDefaultWallPaper","themeMode","updateCompressConfig","updateStoreUploadChannel","newChannelList","savedChannelName","storeChannelName","some","updateStoreUploadNameType","validateUploadFolder","storeUploadFolder","userConfig","announcement","initializeBackground","uploadCopyUrlForm","compressConfig","parseBoolean","defaultCustomerCompress","parseNumber","defaultCompressQuality","defaultCompressBar","defaultConvertToWebp","storeUploadChannel","defaultUploadChannel","storeAutoRetry","storeUploadNameType","defaultUploadNameType","customUrlSettings","storeUploadMethod","fetchAvailableChannels","defaultUploadFolder","cusDarkMode","getters","useDarkMode","visited","components","UploadForm","Footer","ToggleDark","Logo","UploadHistory","defaultChannelName","path","result","valid","errorMessage","$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","w","PNG","JPEG","GIF","u","next","throw","done","apply","toDataURL","match","atob","charCodeAt","Blob","download","appendChild","createEvent","initEvent","dispatchEvent","removeChild","FileReader","onloadend","readAsDataURL","assign","scale","orientation","rotate","PI","translate","quality","accuracy","abs","pow","v","validateFolderPath","startsWith","invalidChars"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/js/689.ed6ed975.js.map.gz b/js/689.ed6ed975.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5828cf8d56fad553db70e3085cba1fe1a041c14 GIT binary patch literal 56667 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