diff --git a/dist/css/188.0f0e1e73.css b/dist/css/188.0f0e1e73.css
new file mode 100644
index 0000000..7d13000
--- /dev/null
+++ b/dist/css/188.0f0e1e73.css
@@ -0,0 +1 @@
+.qa-page[data-v-51411283]{padding-top:90px;padding-bottom:40px;min-height:100vh;background-color:#f5f7fa}.container[data-v-51411283]{max-width:800px;margin:0 auto;padding:0 20px}.header-section[data-v-51411283]{text-align:center;margin-bottom:25px}.header-section h1[data-v-51411283]{font-size:28px;color:#2c3e50;margin-bottom:10px}.subtitle[data-v-51411283]{color:#7f8c8d;font-size:16px}.notice-box[data-v-51411283]{background-color:#e8f4fd;color:#3498db;padding:10px 20px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;margin-top:15px;font-size:14px;border:1px solid #d6eaf8;max-width:100%;box-sizing:border-box}.notice-icon-circle[data-v-51411283]{display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;background-color:#3498db;color:#fff;border-radius:50%;font-weight:700;font-size:12px;flex-shrink:0}.warm-card[data-v-51411283]{background-color:#fff7e6;border:1px solid #ffe4b5;color:#d35400;padding:15px 20px;border-radius:12px;margin:20px auto;text-align:left;line-height:1.6;font-size:15px;box-shadow:0 2px 8px rgba(211,84,0,.05)}.warm-card p[data-v-51411283]{margin:5px 0}.info-card[data-v-51411283]{background-color:#e8f4fd;border:1px solid #d6eaf8;color:#2980b9;padding:15px 20px;border-radius:12px;margin:20px auto;text-align:left;box-shadow:0 2px 8px rgba(41,128,185,.05)}.info-header[data-v-51411283]{text-align:center;font-weight:700;font-size:16px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px}.info-list[data-v-51411283]{margin:0;padding-left:20px;font-size:14px;line-height:1.6}.info-list li[data-v-51411283]{margin-bottom:4px}.card[data-v-51411283]{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.05);padding:30px}.form-group[data-v-51411283]{margin-bottom:30px}.form-label[data-v-51411283]{display:block;font-weight:600;color:#2c3e50;margin-bottom:15px;font-size:16px}.form-label.required[data-v-51411283]:after{content:"*";color:#e74c3c;margin-left:4px}.options-grid[data-v-51411283]{display:flex;flex-wrap:wrap;gap:12px}.radio-label[data-v-51411283]{display:flex;align-items:center;cursor:pointer;padding:10px 16px;border:2px solid #eef1f6;border-radius:8px;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.radio-label[data-v-51411283]:hover{border-color:#bdc3c7}.radio-label.checked[data-v-51411283]{border-color:#3498db;background-color:#ebf5fb;color:#3498db;font-weight:500}.radio-label input[data-v-51411283]{display:none}.sub-input[data-v-51411283]{margin-top:10px}.form-input[data-v-51411283],.form-textarea[data-v-51411283]{width:100%;padding:12px 15px;border:2px solid #eef1f6;border-radius:8px;font-size:15px;transition:border-color .2s;box-sizing:border-box;font-family:inherit;resize:vertical}.form-input[data-v-51411283]:focus,.form-textarea[data-v-51411283]:focus{outline:none;border-color:#3498db}.rating-group[data-v-51411283]{display:flex;gap:10px;flex-wrap:wrap}.rating-item[data-v-51411283]{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border:2px solid #eef1f6;border-radius:8px;cursor:pointer;font-weight:600;color:#7f8c8d;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rating-item[data-v-51411283]:hover{border-color:#bdc3c7;color:#34495e}.rating-item.active[data-v-51411283]{background-color:#3498db;border-color:#3498db;color:#fff}.rating-item input[data-v-51411283]{display:none}.rating-desc[data-v-51411283]{margin-top:8px;display:flex;justify-content:space-between;color:#95a5a6;font-size:13px;max-width:300px}.rating-group.wrap[data-v-51411283]{gap:8px}.rating-item.small[data-v-51411283]{width:36px;height:36px;font-size:14px}.btn-submit[data-v-51411283]{width:100%;padding:16px;background-color:#3498db;color:#fff;border:none;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:10px}.btn-submit[data-v-51411283]:hover:not(:disabled){background-color:#2980b9}.btn-submit[data-v-51411283]:disabled{background-color:#bdc3c7;cursor:not-allowed}@media (max-width:600px){.qa-page[data-v-51411283]{padding-top:70px}.card[data-v-51411283]{padding:20px}.rating-item[data-v-51411283]{width:36px;height:36px}.rating-item.small[data-v-51411283]{width:32px;height:32px}.radio-label[data-v-51411283]{width:100%;justify-content:center}.header-section h1[data-v-51411283]{font-size:24px}}
\ No newline at end of file
diff --git a/dist/css/48.bf96e64e.css b/dist/css/48.bf96e64e.css
deleted file mode 100644
index 183a44a..0000000
--- a/dist/css/48.bf96e64e.css
+++ /dev/null
@@ -1 +0,0 @@
-.qa-page[data-v-37b8c71d]{padding-top:90px;padding-bottom:40px;min-height:100vh;background-color:#f5f7fa}.container[data-v-37b8c71d]{max-width:800px;margin:0 auto;padding:0 20px}.header-section[data-v-37b8c71d]{text-align:center;margin-bottom:25px}.header-section h1[data-v-37b8c71d]{font-size:28px;color:#2c3e50;margin-bottom:10px}.subtitle[data-v-37b8c71d]{color:#7f8c8d;font-size:16px}.notice-box[data-v-37b8c71d]{background-color:#e8f4fd;color:#3498db;padding:10px 20px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;margin-top:15px;font-size:14px;border:1px solid #d6eaf8;max-width:100%;box-sizing:border-box}.notice-icon-circle[data-v-37b8c71d]{display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;background-color:#3498db;color:#fff;border-radius:50%;font-weight:700;font-size:12px;flex-shrink:0}.warm-card[data-v-37b8c71d]{background-color:#fff7e6;border:1px solid #ffe4b5;color:#d35400;padding:15px 20px;border-radius:12px;margin:20px auto;text-align:left;line-height:1.6;font-size:15px;box-shadow:0 2px 8px rgba(211,84,0,.05)}.warm-card p[data-v-37b8c71d]{margin:5px 0}.info-card[data-v-37b8c71d]{background-color:#e8f4fd;border:1px solid #d6eaf8;color:#2980b9;padding:15px 20px;border-radius:12px;margin:20px auto;text-align:left;box-shadow:0 2px 8px rgba(41,128,185,.05)}.info-header[data-v-37b8c71d]{text-align:center;font-weight:700;font-size:16px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px}.info-list[data-v-37b8c71d]{margin:0;padding-left:20px;font-size:14px;line-height:1.6}.info-list li[data-v-37b8c71d]{margin-bottom:4px}.card[data-v-37b8c71d]{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.05);padding:30px}.form-group[data-v-37b8c71d]{margin-bottom:30px}.form-label[data-v-37b8c71d]{display:block;font-weight:600;color:#2c3e50;margin-bottom:15px;font-size:16px}.form-label.required[data-v-37b8c71d]:after{content:"*";color:#e74c3c;margin-left:4px}.options-grid[data-v-37b8c71d]{display:flex;flex-wrap:wrap;gap:12px}.radio-label[data-v-37b8c71d]{display:flex;align-items:center;cursor:pointer;padding:10px 16px;border:2px solid #eef1f6;border-radius:8px;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.radio-label[data-v-37b8c71d]:hover{border-color:#bdc3c7}.radio-label.checked[data-v-37b8c71d]{border-color:#3498db;background-color:#ebf5fb;color:#3498db;font-weight:500}.radio-label input[data-v-37b8c71d]{display:none}.sub-input[data-v-37b8c71d]{margin-top:10px}.form-input[data-v-37b8c71d],.form-textarea[data-v-37b8c71d]{width:100%;padding:12px 15px;border:2px solid #eef1f6;border-radius:8px;font-size:15px;transition:border-color .2s;box-sizing:border-box;font-family:inherit;resize:vertical}.form-input[data-v-37b8c71d]:focus,.form-textarea[data-v-37b8c71d]:focus{outline:none;border-color:#3498db}.rating-group[data-v-37b8c71d]{display:flex;gap:10px;flex-wrap:wrap}.rating-item[data-v-37b8c71d]{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border:2px solid #eef1f6;border-radius:8px;cursor:pointer;font-weight:600;color:#7f8c8d;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rating-item[data-v-37b8c71d]:hover{border-color:#bdc3c7;color:#34495e}.rating-item.active[data-v-37b8c71d]{background-color:#3498db;border-color:#3498db;color:#fff}.rating-item input[data-v-37b8c71d]{display:none}.rating-desc[data-v-37b8c71d]{margin-top:8px;display:flex;justify-content:space-between;color:#95a5a6;font-size:13px;max-width:300px}.rating-group.wrap[data-v-37b8c71d]{gap:8px}.rating-item.small[data-v-37b8c71d]{width:36px;height:36px;font-size:14px}.btn-submit[data-v-37b8c71d]{width:100%;padding:16px;background-color:#3498db;color:#fff;border:none;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:10px}.btn-submit[data-v-37b8c71d]:hover:not(:disabled){background-color:#2980b9}.btn-submit[data-v-37b8c71d]:disabled{background-color:#bdc3c7;cursor:not-allowed}@media (max-width:600px){.qa-page[data-v-37b8c71d]{padding-top:70px}.card[data-v-37b8c71d]{padding:20px}.rating-item[data-v-37b8c71d]{width:36px;height:36px}.rating-item.small[data-v-37b8c71d]{width:32px;height:32px}.radio-label[data-v-37b8c71d]{width:100%;justify-content:center}.header-section h1[data-v-37b8c71d]{font-size:24px}}
\ No newline at end of file
diff --git a/dist/css/app.f8d8a9e4.css b/dist/css/app.8b9daa1f.css
similarity index 93%
rename from dist/css/app.f8d8a9e4.css
rename to dist/css/app.8b9daa1f.css
index 3b14714..ee343a4 100644
--- a/dist/css/app.f8d8a9e4.css
+++ b/dist/css/app.8b9daa1f.css
@@ -1 +1 @@
-*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:Helvetica Neue,Helvetica,Arial,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.5;color:#333;background-color:#f8f9fa}#app{min-height:100vh;display:flex;flex-direction:column}a{text-decoration:none;color:inherit}img{max-width:100%;height:auto}.beian-footer{background-color:#f8f9fa;padding:15px 0;text-align:center;font-size:12px;color:#777;border-top:1px solid #e9ecef;margin-top:auto}.beian-footer a{color:#666}.beian-footer a:hover{color:#3273dc}.copyright{margin-top:8px}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 15px}.message-overlay[data-v-076938bc]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999}.message-box[data-v-076938bc]{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);width:400px;max-width:90%;overflow:hidden;animation:message-in-076938bc .3s ease}.message-header[data-v-076938bc]{padding:16px 20px;border-bottom:1px solid #f0f0f0}.message-header h3[data-v-076938bc]{margin:0;font-size:16px;font-weight:600;color:#333}.message-content[data-v-076938bc]{padding:20px;font-size:14px;color:#555;line-height:1.6}.message-content p[data-v-076938bc]{margin:0;margin-bottom:1rem}.message-content .input-wrapper[data-v-076938bc]{margin-top:1rem}.message-content .input-wrapper .message-input[data-v-076938bc]{width:100%;padding:8px 12px;border:1px solid #dcdfe6;border-radius:4px;font-size:14px;line-height:1.5;color:#606266;transition:border-color .2s}.message-content .input-wrapper .message-input[data-v-076938bc]:focus{outline:none;border-color:#3273dc}.message-content .input-wrapper .message-input[data-v-076938bc]::-moz-placeholder{color:#c0c4cc}.message-content .input-wrapper .message-input[data-v-076938bc]::placeholder{color:#c0c4cc}.message-footer[data-v-076938bc]{padding:12px 20px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #f0f0f0}.btn[data-v-076938bc]{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s;border:none;outline:none}.btn-cancel[data-v-076938bc]{background-color:#f5f5f5;color:#666}.btn-cancel[data-v-076938bc]:hover{background-color:#e8e8e8}.btn-confirm[data-v-076938bc]{background-color:#3273dc;color:#fff}.btn-confirm[data-v-076938bc]:hover{background-color:#2366d1}.message-fade-enter-active[data-v-076938bc],.message-fade-leave-active[data-v-076938bc]{transition:opacity .3s}.message-fade-enter-from[data-v-076938bc],.message-fade-leave-to[data-v-076938bc]{opacity:0}@keyframes message-in-076938bc{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.message-box[data-v-076938bc]{width:320px}.message-content[data-v-076938bc]{padding:16px}.message-footer[data-v-076938bc]{padding:10px 16px}}.login-container[data-v-4002456e]{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:9999}.login-overlay[data-v-4002456e]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.login-box[data-v-4002456e]{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:2rem;width:100%;max-width:400px;position:relative;z-index:1}.login-header[data-v-4002456e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.login-title[data-v-4002456e]{text-align:center;color:#333;font-size:1.5rem;margin:0;flex:1}.login-form[data-v-4002456e]{display:flex;flex-direction:column}.form-group[data-v-4002456e]{margin-bottom:1rem}label[data-v-4002456e]{display:block;margin-bottom:.5rem;font-weight:500}.form-input[data-v-4002456e]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-input[data-v-4002456e]:focus{outline:none;border-color:#3273dc;box-shadow:0 0 0 2px rgba(50,115,220,.2)}.message[data-v-4002456e]{margin:1rem 0;padding:.75rem;border-radius:4px;text-align:center}.message.error[data-v-4002456e]{background-color:rgba(255,56,96,.1);color:#ff3860}.message.success[data-v-4002456e]{background-color:rgba(35,209,96,.1);color:#23d160}.button-group[data-v-4002456e]{display:flex;gap:1rem;margin-top:1rem}.btn[data-v-4002456e]{flex:1;padding:.75rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .3s,transform .2s}.btn[data-v-4002456e]:hover{transform:translateY(-2px)}.btn[data-v-4002456e]:active{transform:translateY(0)}.btn-primary[data-v-4002456e]{background-color:#3273dc;color:#fff}.btn-primary[data-v-4002456e]:hover{background-color:#2366d1}.btn-secondary[data-v-4002456e]{background-color:#f5f5f5;color:#333}.btn-secondary[data-v-4002456e]:hover{background-color:#e8e8e8}.modal[data-v-4002456e]{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center}.modal.show[data-v-4002456e]{display:flex}.modal-content[data-v-4002456e]{background-color:#fff;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.2);width:90%;max-width:400px;overflow:hidden}.modal-header[data-v-4002456e]{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee}.modal-header h3[data-v-4002456e]{margin:0;font-size:1.25rem}.modal-body[data-v-4002456e]{padding:1.5rem}.modal-footer[data-v-4002456e]{padding:1rem;border-top:1px solid #eee;text-align:right}.close-btn[data-v-4002456e]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.close-btn[data-v-4002456e]:hover{color:#333}.captcha-instruction[data-v-4002456e]{margin-bottom:1rem}.captcha-message[data-v-4002456e]{margin-top:.5rem;font-size:.9rem}.captcha-message.error[data-v-4002456e]{color:#ff3860}.captcha-message.success[data-v-4002456e]{color:#23d160}.loading-overlay[data-v-4002456e]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.8);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:2000}.spinner[data-v-4002456e]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3273dc;border-radius:50%;animation:spin-4002456e 1s linear infinite;margin-bottom:1rem}@keyframes spin-4002456e{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media(max-width:480px){.login-box[data-v-4002456e]{padding:1.5rem}.button-group[data-v-4002456e]{flex-direction:column}.btn[data-v-4002456e]{margin-bottom:.5rem}}.vip-badge[data-v-243b974f]{height:25px;vertical-align:middle}.user-meta[data-v-243b974f]{position:relative;display:inline-block}.user-basic[data-v-243b974f]{display:flex;align-items:center;gap:8px;cursor:pointer}.avatar-wrapper[data-v-243b974f]{position:relative;width:36px;height:36px}.avatar[data-v-243b974f]{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid #eee}.avatar-loading[data-v-243b974f]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.7);border-radius:50%;display:flex;justify-content:center;align-items:center}.loading-spinner[data-v-243b974f]{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #3273dc;border-radius:50%;animation:spin-243b974f 1s linear infinite}@keyframes spin-243b974f{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.user-name[data-v-243b974f]{font-weight:500;font-size:14px;color:#333}.user-badges[data-v-243b974f]{display:flex;gap:4px}.badge[data-v-243b974f]{display:inline-block;padding:1px 6px;border-radius:4px;font-size:12px;color:#fff}.verified[data-v-243b974f]{background-color:#3273dc}.invited[data-v-243b974f]{background-color:coral}.medal[data-v-243b974f]{background-color:gold;color:#333}.user-detail[data-v-243b974f]{position:absolute;top:calc(100% + 8px);left:0;width:280px;z-index:9999}.detail-fade-enter-active[data-v-243b974f],.detail-fade-leave-active[data-v-243b974f]{transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:top}.detail-fade-enter-from[data-v-243b974f],.detail-fade-leave-to[data-v-243b974f]{opacity:0;transform:scale(.95) translateY(-10px)}.detail-fade-enter-to[data-v-243b974f],.detail-fade-leave-from[data-v-243b974f]{opacity:1;transform:scale(1) translateY(0)}.card-container[data-v-243b974f]{background-color:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15),0 2px 8px rgba(0,0,0,.1);overflow:hidden}.detail-header[data-v-243b974f]{position:relative;padding:16px 16px 4px}.header-bg[data-v-243b974f]{position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient(135deg,#3273dc,#6cb6ff);opacity:.3}.detail-avatar[data-v-243b974f]{width:64px;height:64px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.1);position:relative;z-index:1;background-color:#fff}.detail-right[data-v-243b974f]{margin-top:8px;position:relative}.detail-name[data-v-243b974f]{font-weight:600;font-size:18px;margin-bottom:4px;color:#333;display:inline-block}.user-sign[data-v-243b974f]{margin:8px 16px;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background-color:#f8f9fa;border-radius:8px}.sign-icon[data-v-243b974f]{font-size:16px;color:#666}.sign-text[data-v-243b974f]{font-size:13px;color:#555;line-height:1.9;flex:1}.user-stats[data-v-243b974f]{display:flex;justify-content:center;align-items:center;padding:6px 8px;background-color:#f8f9fa;margin:0 16px;border-radius:8px}.stat-item[data-v-243b974f]{text-align:center;flex:1}.stat-separator[data-v-243b974f]{width:1px;height:24px;background-color:#ddd;margin:0 16px}.stat-value[data-v-243b974f]{font-weight:600;font-size:16px;color:#333}.stat-label[data-v-243b974f]{font-size:12px;color:#666}.card-footer[data-v-243b974f]{padding:12px 16px 16px;text-align:center}.follow-btn[data-v-243b974f]{background:linear-gradient(135deg,#3273dc,#4a89ff);color:#fff;border:none;border-radius:20px;padding:6px 18px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 5px rgba(50,115,220,.3)}.follow-btn[data-v-243b974f]:hover{background:linear-gradient(135deg,#2366d1,#3273dc);transform:translateY(-1px);box-shadow:0 4px 8px rgba(50,115,220,.4)}.follow-btn.followed[data-v-243b974f]{background:#f0f0f0;color:#666;box-shadow:none;border:1px solid #ddd}.follow-btn.followed[data-v-243b974f]:hover{background:#e0e0e0;color:#333;transform:translateY(0);box-shadow:none}.follow-btn.disabled-look[data-v-243b974f]{background:#e6e6e6;color:#999;cursor:pointer;box-shadow:none}.follow-btn.disabled-look[data-v-243b974f]:hover{background:#dcdcdc;transform:none;box-shadow:none}.user-submissions[data-v-243b974f]{padding:16px 16px 0 16px}.submission-header[data-v-243b974f]{font-size:13px;font-weight:600;color:#333;margin-bottom:8px;padding-left:4px;border-left:3px solid #3273dc;line-height:1;display:flex;justify-content:space-between;align-items:center}.pagination-controls[data-v-243b974f]{display:flex;align-items:center;gap:4px}.page-btn[data-v-243b974f]{border:none;background:#f0f0f0;color:#666;width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;transition:all .2s;padding:0}.page-btn[data-v-243b974f]:hover:not(:disabled){background:#e0e0e0;color:#3273dc}.page-btn[data-v-243b974f]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-243b974f]{font-weight:400;font-size:11px;color:#888;min-width:30px;text-align:center}.submission-list[data-v-243b974f]{display:flex;flex-direction:column;gap:8px;max-height:150px;overflow-y:auto;padding-right:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar{width:4px}.submission-list[data-v-243b974f]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar-thumb:hover{background:#ccc}.submission-item[data-v-243b974f]{padding:8px 10px;background-color:#f8f9fa;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.submission-item[data-v-243b974f]:hover{background-color:#fff;border-color:#e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.05);transform:translateX(2px)}.submission-title[data-v-243b974f]{font-size:13px;color:#444;margin-bottom:6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.submission-tags[data-v-243b974f]{display:flex;gap:4px;flex-wrap:wrap}.tag[data-v-243b974f]{padding:2px 6px;border-radius:3px;font-size:11px;font-weight:500}.tag.official[data-v-243b974f]{background-color:#e6f7ff;color:#1890ff}.tag.highlight[data-v-243b974f]{background-color:#f6ffed;color:#52c41a}.tag.top[data-v-243b974f]{background-color:#fff7e6;color:#fa8c16}.colorful-name[data-v-243b974f]{background:linear-gradient(90deg,#0562ef,#722ed1,#eb2f96,#0562ef,#722ed1,#eb2f96,#0562ef);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow-243b974f 2s linear infinite;font-weight:700}@keyframes rainbow-243b974f{0%{background-position:0 50%}to{background-position:100% 50%}}.navbar[data-v-62ca13b8]{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1);position:fixed;top:0;left:0;right:0;padding:.5rem 1rem;z-index:1000}.navbar .container[data-v-62ca13b8]{display:flex;align-items:center;max-width:1200px;margin:0 auto;position:relative;width:100%}.navbar .navbar-brand[data-v-62ca13b8]{display:flex;align-items:center;justify-content:space-between;flex:1}.navbar .navbar-logo[data-v-62ca13b8]{font-size:1.5rem;font-weight:700;color:#333;text-decoration:none;display:flex;align-items:center}.navbar .navbar-logo-img[data-v-62ca13b8]{width:30px;margin-right:8px}.navbar .navbar-logo-img[data-v-62ca13b8],.navbar .navbar-title-img[data-v-62ca13b8]{height:30px;-o-object-fit:contain;object-fit:contain}.navbar .burger-container[data-v-62ca13b8]{position:relative;display:inline-block}.navbar .navbar-burger[data-v-62ca13b8]{display:none;width:2rem;height:1.2rem;cursor:pointer;margin-left:0;position:absolute;right:0;top:50%;transform:translateY(-50%)}.navbar .navbar-burger span[data-v-62ca13b8]{display:block;height:2px;width:74%;background-color:#333;transition:all .3s ease-in-out;position:absolute;left:0}.navbar .navbar-burger span[data-v-62ca13b8]:first-child{top:0}.navbar .navbar-burger span[data-v-62ca13b8]:nth-child(2){top:50%;transform:translateY(-50%)}.navbar .navbar-burger span[data-v-62ca13b8]:nth-child(3){bottom:0}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:nth-child(2){opacity:0}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:first-child{top:50%;transform:translateY(-50%) rotate(45deg)}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}.navbar .navbar-menu[data-v-62ca13b8]{display:flex;align-items:center;transition:transform .3s ease,opacity .3s ease}.navbar .navbar-end[data-v-62ca13b8]{display:flex;align-items:center}.navbar .navbar-item[data-v-62ca13b8]{padding:.5rem 1rem;color:#333;text-decoration:none;transition:color .3s;white-space:nowrap}.navbar .navbar-item[data-v-62ca13b8]:hover{color:#3273dc}.navbar .user-dropdown[data-v-62ca13b8]{position:relative}.navbar .user-dropdown .user-info[data-v-62ca13b8]{display:flex;align-items:center;cursor:pointer;padding:.5rem}.navbar .user-dropdown .user-info[data-v-62ca13b8]:hover{background-color:#f5f5f5;border-radius:4px}.navbar .user-dropdown .user-avatar[data-v-62ca13b8]{width:30px;height:30px;border-radius:50%;margin-right:8px;-o-object-fit:cover;object-fit:cover}.navbar .user-dropdown .user-nickname[data-v-62ca13b8]{margin-right:4px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar .user-dropdown .dropdown-arrow[data-v-62ca13b8]{font-size:12px;transition:transform .3s}.navbar .user-dropdown .dropdown-arrow.is-active[data-v-62ca13b8]{transform:rotate(180deg)}.navbar .user-dropdown .dropdown-menu[data-v-62ca13b8]{position:absolute;top:100%;right:0;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-width:120px;z-index:1001}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8]{padding:.75rem 1rem;cursor:pointer}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8]:hover{background-color:#f5f5f5}@media(max-width:768px){.navbar[data-v-62ca13b8]{padding:0}.navbar .navbar-brand[data-v-62ca13b8]{width:auto;padding:.5rem 1rem}.navbar .navbar-brand-yuandan[data-v-62ca13b8]{width:auto;padding:.2rem 1rem 0 1rem}.navbar .navbar-burger[data-v-62ca13b8]{display:flex;margin-left:1rem}.navbar .navbar-menu[data-v-62ca13b8]{display:block;position:absolute;top:100%;left:0;right:0;background-color:#fff;box-shadow:0 4px 6px rgba(0,0,0,.1);padding:.5rem 0;z-index:1000;opacity:0;transform:translateY(-20px);pointer-events:none}.navbar .navbar-menu.is-active[data-v-62ca13b8]{opacity:1;transform:translateY(0);pointer-events:auto}.navbar .navbar-end[data-v-62ca13b8]{flex-direction:column;align-items:stretch}.navbar .navbar-item[data-v-62ca13b8]{padding:.75rem 1.5rem;text-align:left;border-bottom:1px solid #f5f5f5}.navbar .navbar-item[data-v-62ca13b8]:last-child{border-bottom:none}.navbar .user-dropdown .dropdown-menu[data-v-62ca13b8]{position:static;box-shadow:none;border-top:1px solid #f5f5f5}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8],.navbar .user-dropdown .user-info[data-v-62ca13b8]{padding:.75rem 1.5rem}}.login-btn[data-v-62ca13b8]{color:#333;cursor:pointer;text-decoration:none;transition:color .3s}.login-btn[data-v-62ca13b8]:hover{color:#3273dc}.activation-dialog[data-v-62ca13b8]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.activation-dialog .activation-dialog-content[data-v-62ca13b8]{background-color:#fff;border-radius:8px;padding:2rem;max-width:90%;width:500px;box-shadow:0 4px 20px rgba(0,0,0,.15);max-height:90vh;overflow-y:auto}.activation-dialog .activation-dialog-content h3[data-v-62ca13b8]{font-size:1.5rem;margin-bottom:1rem;color:#333;text-align:center}.activation-dialog .activation-dialog-content p[data-v-62ca13b8]{margin-bottom:1.5rem;color:#666}.activation-dialog .activation-dialog-content .activation-methods[data-v-62ca13b8]{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.activation-dialog .activation-dialog-content .activation-method[data-v-62ca13b8]{background-color:#f9f9f9;padding:1rem;border-radius:6px;border:1px solid #eee}.activation-dialog .activation-dialog-content .activation-method h4[data-v-62ca13b8]{font-size:1.1rem;margin-bottom:.5rem;color:#444}.activation-dialog .activation-dialog-content .activation-method p[data-v-62ca13b8]{margin-bottom:1rem;color:#666;font-size:.9rem}.activation-dialog .activation-dialog-content .verify-btn[data-v-62ca13b8]{background-color:#3273dc;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;cursor:pointer;transition:background-color .3s}.activation-dialog .activation-dialog-content .verify-btn[data-v-62ca13b8]:hover{background-color:#2366d1}.activation-dialog .activation-dialog-content .close-btn[data-v-62ca13b8]{width:100%;background-color:#f0f0f0;color:#333;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;transition:background-color .3s}.activation-dialog .activation-dialog-content .close-btn[data-v-62ca13b8]:hover{background-color:#e0e0e0}.unread-dot[data-v-62ca13b8]{display:inline-block;width:8px;height:8px;background-color:#ff4d4f!important;border-radius:50%;margin-left:5px}.message-modal[data-v-62ca13b8]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.message-modal .message-modal-content[data-v-62ca13b8]{background-color:#fff;border-radius:8px;padding:2rem;max-width:90%;width:500px;box-shadow:0 4px 20px rgba(0,0,0,.15)}.message-modal .message-modal-content .message-modal-header[data-v-62ca13b8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.message-modal .message-modal-content .message-modal-header h3[data-v-62ca13b8]{font-size:1.5rem;color:#333}.message-modal .message-modal-content .message-modal-header .close-icon[data-v-62ca13b8]{font-size:1.5rem;cursor:pointer}.message-modal .message-modal-content .message-modal-body .loading-spinner[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .no-messages[data-v-62ca13b8]{text-align:center;margin-bottom:1rem}.message-modal .message-modal-content .message-modal-body .message-list[data-v-62ca13b8]{max-height:60vh;overflow-y:auto;padding-right:5px;margin-right:-5px}.message-modal .message-modal-content .message-modal-body .message-list .message-item[data-v-62ca13b8]{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f0f0f0}.message-modal .message-modal-content .message-modal-body .message-list .message-item[data-v-62ca13b8]:last-child{border-bottom:none}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header[data-v-62ca13b8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header .message-time[data-v-62ca13b8]{font-size:.9rem;color:#666}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header .unread-tag[data-v-62ca13b8]{background-color:#ff4d4f;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8]{font-size:1rem;color:#333}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content .router-link-active[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:link,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:visited,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8] a{color:#3273dc!important;text-decoration:none!important;font-weight:500!important}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content .router-link-active[data-v-62ca13b8]:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:link:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:visited:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8] a:hover{text-decoration:underline!important;color:#2366d1!important}.message-modal .message-modal-content .message-modal-body .pagination[data-v-62ca13b8]{display:flex;justify-content:center;align-items:center;margin-top:1rem}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]{background-color:#3273dc;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;transition:background-color .3s}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]:hover{background-color:#2366d1}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]:disabled{background-color:#f0f0f0;cursor:not-allowed}.message-modal .message-modal-content .message-modal-body .pagination .page-info[data-v-62ca13b8]{margin:0 1rem;font-size:.9rem;color:#666;display:flex;align-items:center}[data-v-62ca13b8] .message-modal-body a{color:#3273dc!important;text-decoration:none!important;font-weight:500!important}[data-v-62ca13b8] .message-modal-body a:hover{text-decoration:underline!important;color:#2366d1!important}.avatar-wrapper[data-v-62ca13b8]{position:relative;display:inline-block}.avatar-badge[data-v-62ca13b8]{position:absolute;top:0;right:0;width:8px;height:8px}.burger-badge[data-v-62ca13b8]{position:absolute;top:-13px;right:0;transform:translate(0);width:8px;height:8px;background-color:#ff4d4f!important;border-radius:50%;margin:0;padding:0;display:none}@media(max-width:768px){.burger-badge[data-v-62ca13b8]{display:block}}.route-tag[data-v-62ca13b8]{display:inline-block;color:#fff;font-size:.9rem;padding:2px 6px;border-radius:4px;margin-left:7px;vertical-align:middle;font-weight:500}.new-badge[data-v-62ca13b8]{display:inline-block;background-color:#f44336;color:#fff;font-size:.7rem;padding:1px 4px;border-radius:4px;vertical-align:top;line-height:1.2;font-weight:700;position:relative;top:-2px}.navbar.navbar-kaoyan[data-v-62ca13b8]{background-color:#d40c1d}.navbar.navbar-kaoyan .login-btn[data-v-62ca13b8],.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8],.navbar.navbar-kaoyan .navbar-logo[data-v-62ca13b8]{color:#fff}.navbar.navbar-kaoyan .login-btn[data-v-62ca13b8]:hover,.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8]:hover,.navbar.navbar-kaoyan .navbar-logo[data-v-62ca13b8]:hover{color:hsla(0,0%,100%,.8)}.navbar.navbar-kaoyan .navbar-burger span[data-v-62ca13b8]{background-color:#fff}.navbar.navbar-kaoyan .dropdown-menu .dropdown-item[data-v-62ca13b8]{color:#333}.navbar.navbar-kaoyan .dropdown-menu .dropdown-item[data-v-62ca13b8]:hover{color:#3273dc;background-color:#f5f5f5}.navbar.navbar-kaoyan .user-dropdown .user-info[data-v-62ca13b8]:hover{color:#e60012}@media(max-width:768px){.navbar.navbar-kaoyan .navbar-menu[data-v-62ca13b8]{background-color:#e60012}.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8]{border-bottom:1px solid hsla(0,0%,100%,.1)}}.home[data-v-e5f87384]{min-height:100vh;background-color:#f8f9fa;padding-top:60px}.container[data-v-e5f87384]{max-width:1200px;margin:0 auto;padding:2rem 1rem}.welcome-section[data-v-e5f87384]{text-align:center;padding:3rem 1rem}.welcome-section img[data-v-e5f87384]{width:150px;margin-bottom:2rem}.welcome-section h1[data-v-e5f87384]{font-size:2.5rem;margin-bottom:1rem;color:#333}.welcome-section p[data-v-e5f87384]{font-size:1.2rem;margin-bottom:2rem;color:#555}.welcome-section .intro-text[data-v-e5f87384]{background-color:#fff;border-radius:10px;padding:2rem;margin-top:2rem;box-shadow:0 4px 15px rgba(0,0,0,.08);text-align:left;border-left:4px solid #f6be05;position:relative;overflow:hidden;max-width:800px;margin-left:auto;margin-right:auto}.welcome-section .intro-text[data-v-e5f87384]:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle at top right,rgba(50,115,220,.08),transparent 70%);z-index:0}.welcome-section .intro-text.intro-kaoyan[data-v-e5f87384]{background-color:#e60012;border-left:none}.welcome-section .intro-text.intro-kaoyan p[data-v-e5f87384]{color:#fff;font-weight:700}.welcome-section .intro-text.intro-kaoyan[data-v-e5f87384]:before{background:radial-gradient(circle at top right,hsla(0,0%,100%,.2),transparent 70%)}.welcome-section .intro-text p[data-v-e5f87384]{position:relative;z-index:1;margin-bottom:1rem;font-size:1.1rem;line-height:1.6;color:#555}.welcome-section .intro-text p[data-v-e5f87384]:last-child{margin-bottom:0}.welcome-section .cta-buttons[data-v-e5f87384]{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.welcome-section .cta-buttons .btn[data-v-e5f87384]{padding:.75rem 1.5rem;border-radius:4px;font-weight:600;transition:all .3s;text-decoration:none}.welcome-section .cta-buttons .btn.btn-primary[data-v-e5f87384]{background-color:#3273dc;color:#fff}.welcome-section .cta-buttons .btn.btn-primary[data-v-e5f87384]:hover{background-color:#2366c9}.welcome-section .cta-buttons .btn.btn-secondary[data-v-e5f87384]{background-color:#f5f5f5;color:#333}.welcome-section .cta-buttons .btn.btn-secondary[data-v-e5f87384]:hover{background-color:#e8e8e8}.quick-links[data-v-e5f87384]{margin-top:1.5rem;font-size:1rem;color:#555}.quick-links a[data-v-e5f87384]{color:#3273dc;text-decoration:none;margin:0 .5rem;cursor:pointer}.quick-links a[data-v-e5f87384]:hover{text-decoration:underline}.colorful-text[data-v-e5f87384]{background:linear-gradient(90deg,#0562ef,#722ed1,#eb2f96,#0562ef,#722ed1,#eb2f96,#0562ef);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow-e5f87384 2s linear infinite;font-weight:700}@keyframes rainbow-e5f87384{0%{background-position:0 50%}to{background-position:100% 50%}}@media(max-width:768px){.welcome-section[data-v-e5f87384]{padding:2rem 1rem}.welcome-section h1[data-v-e5f87384]{font-size:2rem}.welcome-section p[data-v-e5f87384]{font-size:1rem}.welcome-section .intro-text[data-v-e5f87384]{padding:1.5rem}.welcome-section .intro-text p[data-v-e5f87384]{font-size:1rem}.welcome-section .cta-buttons[data-v-e5f87384]{flex-direction:column;align-items:center}.welcome-section .cta-buttons .btn[data-v-e5f87384]{width:100%;max-width:300px;margin-bottom:.5rem}}#nprogress .bar{background:#00f5ff!important;height:2px!important}.bar-message[data-v-18bdfd8a]{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:80%;max-width:500px;z-index:9999;pointer-events:auto}.bar-message-content[data-v-18bdfd8a]{padding:12px 16px;border-radius:8px;text-align:left;font-size:14px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);word-break:break-word;display:flex;align-items:center}.bar-message-icon[data-v-18bdfd8a]{margin-right:10px;font-size:16px}.bar-message-text[data-v-18bdfd8a]{flex:1}.bar-message-close[data-v-18bdfd8a]{margin-left:10px;cursor:pointer;font-size:14px;opacity:.8;transition:opacity .2s}.bar-message-close[data-v-18bdfd8a]:hover{opacity:1}.success[data-v-18bdfd8a]{background-color:#4caf50}.error[data-v-18bdfd8a]{background-color:#f44336}.warning[data-v-18bdfd8a]{background-color:#ff9800}.info[data-v-18bdfd8a]{background-color:#2196f3}.bar-message-fade-enter-active[data-v-18bdfd8a],.bar-message-fade-leave-active[data-v-18bdfd8a]{transition:opacity .3s,transform .3s}.bar-message-fade-enter-from[data-v-18bdfd8a],.bar-message-fade-leave-to[data-v-18bdfd8a]{opacity:0;transform:translate(-50%,-15px)}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:Helvetica Neue,Helvetica,Arial,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.5;color:#333;background-color:#f8f9fa}#app{min-height:100vh;display:flex;flex-direction:column}a{text-decoration:none;color:inherit}img{max-width:100%;height:auto}.beian-footer{background-color:#f8f9fa;padding:15px 0;text-align:center;font-size:12px;color:#777;border-top:1px solid #e9ecef;margin-top:auto}.beian-footer a{color:#666}.beian-footer a:hover{color:#3273dc}.copyright{margin-top:8px}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 15px}.message-overlay[data-v-076938bc]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999}.message-box[data-v-076938bc]{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);width:400px;max-width:90%;overflow:hidden;animation:message-in-076938bc .3s ease}.message-header[data-v-076938bc]{padding:16px 20px;border-bottom:1px solid #f0f0f0}.message-header h3[data-v-076938bc]{margin:0;font-size:16px;font-weight:600;color:#333}.message-content[data-v-076938bc]{padding:20px;font-size:14px;color:#555;line-height:1.6}.message-content p[data-v-076938bc]{margin:0;margin-bottom:1rem}.message-content .input-wrapper[data-v-076938bc]{margin-top:1rem}.message-content .input-wrapper .message-input[data-v-076938bc]{width:100%;padding:8px 12px;border:1px solid #dcdfe6;border-radius:4px;font-size:14px;line-height:1.5;color:#606266;transition:border-color .2s}.message-content .input-wrapper .message-input[data-v-076938bc]:focus{outline:none;border-color:#3273dc}.message-content .input-wrapper .message-input[data-v-076938bc]::-moz-placeholder{color:#c0c4cc}.message-content .input-wrapper .message-input[data-v-076938bc]::placeholder{color:#c0c4cc}.message-footer[data-v-076938bc]{padding:12px 20px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #f0f0f0}.btn[data-v-076938bc]{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s;border:none;outline:none}.btn-cancel[data-v-076938bc]{background-color:#f5f5f5;color:#666}.btn-cancel[data-v-076938bc]:hover{background-color:#e8e8e8}.btn-confirm[data-v-076938bc]{background-color:#3273dc;color:#fff}.btn-confirm[data-v-076938bc]:hover{background-color:#2366d1}.message-fade-enter-active[data-v-076938bc],.message-fade-leave-active[data-v-076938bc]{transition:opacity .3s}.message-fade-enter-from[data-v-076938bc],.message-fade-leave-to[data-v-076938bc]{opacity:0}@keyframes message-in-076938bc{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.message-box[data-v-076938bc]{width:320px}.message-content[data-v-076938bc]{padding:16px}.message-footer[data-v-076938bc]{padding:10px 16px}}.login-container[data-v-4002456e]{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:9999}.login-overlay[data-v-4002456e]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.login-box[data-v-4002456e]{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:2rem;width:100%;max-width:400px;position:relative;z-index:1}.login-header[data-v-4002456e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.login-title[data-v-4002456e]{text-align:center;color:#333;font-size:1.5rem;margin:0;flex:1}.login-form[data-v-4002456e]{display:flex;flex-direction:column}.form-group[data-v-4002456e]{margin-bottom:1rem}label[data-v-4002456e]{display:block;margin-bottom:.5rem;font-weight:500}.form-input[data-v-4002456e]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-input[data-v-4002456e]:focus{outline:none;border-color:#3273dc;box-shadow:0 0 0 2px rgba(50,115,220,.2)}.message[data-v-4002456e]{margin:1rem 0;padding:.75rem;border-radius:4px;text-align:center}.message.error[data-v-4002456e]{background-color:rgba(255,56,96,.1);color:#ff3860}.message.success[data-v-4002456e]{background-color:rgba(35,209,96,.1);color:#23d160}.button-group[data-v-4002456e]{display:flex;gap:1rem;margin-top:1rem}.btn[data-v-4002456e]{flex:1;padding:.75rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .3s,transform .2s}.btn[data-v-4002456e]:hover{transform:translateY(-2px)}.btn[data-v-4002456e]:active{transform:translateY(0)}.btn-primary[data-v-4002456e]{background-color:#3273dc;color:#fff}.btn-primary[data-v-4002456e]:hover{background-color:#2366d1}.btn-secondary[data-v-4002456e]{background-color:#f5f5f5;color:#333}.btn-secondary[data-v-4002456e]:hover{background-color:#e8e8e8}.modal[data-v-4002456e]{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center}.modal.show[data-v-4002456e]{display:flex}.modal-content[data-v-4002456e]{background-color:#fff;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.2);width:90%;max-width:400px;overflow:hidden}.modal-header[data-v-4002456e]{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee}.modal-header h3[data-v-4002456e]{margin:0;font-size:1.25rem}.modal-body[data-v-4002456e]{padding:1.5rem}.modal-footer[data-v-4002456e]{padding:1rem;border-top:1px solid #eee;text-align:right}.close-btn[data-v-4002456e]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.close-btn[data-v-4002456e]:hover{color:#333}.captcha-instruction[data-v-4002456e]{margin-bottom:1rem}.captcha-message[data-v-4002456e]{margin-top:.5rem;font-size:.9rem}.captcha-message.error[data-v-4002456e]{color:#ff3860}.captcha-message.success[data-v-4002456e]{color:#23d160}.loading-overlay[data-v-4002456e]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.8);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:2000}.spinner[data-v-4002456e]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3273dc;border-radius:50%;animation:spin-4002456e 1s linear infinite;margin-bottom:1rem}@keyframes spin-4002456e{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media(max-width:480px){.login-box[data-v-4002456e]{padding:1.5rem}.button-group[data-v-4002456e]{flex-direction:column}.btn[data-v-4002456e]{margin-bottom:.5rem}}.vip-badge[data-v-243b974f]{height:25px;vertical-align:middle}.user-meta[data-v-243b974f]{position:relative;display:inline-block}.user-basic[data-v-243b974f]{display:flex;align-items:center;gap:8px;cursor:pointer}.avatar-wrapper[data-v-243b974f]{position:relative;width:36px;height:36px}.avatar[data-v-243b974f]{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid #eee}.avatar-loading[data-v-243b974f]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.7);border-radius:50%;display:flex;justify-content:center;align-items:center}.loading-spinner[data-v-243b974f]{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #3273dc;border-radius:50%;animation:spin-243b974f 1s linear infinite}@keyframes spin-243b974f{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.user-name[data-v-243b974f]{font-weight:500;font-size:14px;color:#333}.user-badges[data-v-243b974f]{display:flex;gap:4px}.badge[data-v-243b974f]{display:inline-block;padding:1px 6px;border-radius:4px;font-size:12px;color:#fff}.verified[data-v-243b974f]{background-color:#3273dc}.invited[data-v-243b974f]{background-color:coral}.medal[data-v-243b974f]{background-color:gold;color:#333}.user-detail[data-v-243b974f]{position:absolute;top:calc(100% + 8px);left:0;width:280px;z-index:9999}.detail-fade-enter-active[data-v-243b974f],.detail-fade-leave-active[data-v-243b974f]{transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:top}.detail-fade-enter-from[data-v-243b974f],.detail-fade-leave-to[data-v-243b974f]{opacity:0;transform:scale(.95) translateY(-10px)}.detail-fade-enter-to[data-v-243b974f],.detail-fade-leave-from[data-v-243b974f]{opacity:1;transform:scale(1) translateY(0)}.card-container[data-v-243b974f]{background-color:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15),0 2px 8px rgba(0,0,0,.1);overflow:hidden}.detail-header[data-v-243b974f]{position:relative;padding:16px 16px 4px}.header-bg[data-v-243b974f]{position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient(135deg,#3273dc,#6cb6ff);opacity:.3}.detail-avatar[data-v-243b974f]{width:64px;height:64px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.1);position:relative;z-index:1;background-color:#fff}.detail-right[data-v-243b974f]{margin-top:8px;position:relative}.detail-name[data-v-243b974f]{font-weight:600;font-size:18px;margin-bottom:4px;color:#333;display:inline-block}.user-sign[data-v-243b974f]{margin:8px 16px;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background-color:#f8f9fa;border-radius:8px}.sign-icon[data-v-243b974f]{font-size:16px;color:#666}.sign-text[data-v-243b974f]{font-size:13px;color:#555;line-height:1.9;flex:1}.user-stats[data-v-243b974f]{display:flex;justify-content:center;align-items:center;padding:6px 8px;background-color:#f8f9fa;margin:0 16px;border-radius:8px}.stat-item[data-v-243b974f]{text-align:center;flex:1}.stat-separator[data-v-243b974f]{width:1px;height:24px;background-color:#ddd;margin:0 16px}.stat-value[data-v-243b974f]{font-weight:600;font-size:16px;color:#333}.stat-label[data-v-243b974f]{font-size:12px;color:#666}.card-footer[data-v-243b974f]{padding:12px 16px 16px;text-align:center}.follow-btn[data-v-243b974f]{background:linear-gradient(135deg,#3273dc,#4a89ff);color:#fff;border:none;border-radius:20px;padding:6px 18px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 5px rgba(50,115,220,.3)}.follow-btn[data-v-243b974f]:hover{background:linear-gradient(135deg,#2366d1,#3273dc);transform:translateY(-1px);box-shadow:0 4px 8px rgba(50,115,220,.4)}.follow-btn.followed[data-v-243b974f]{background:#f0f0f0;color:#666;box-shadow:none;border:1px solid #ddd}.follow-btn.followed[data-v-243b974f]:hover{background:#e0e0e0;color:#333;transform:translateY(0);box-shadow:none}.follow-btn.disabled-look[data-v-243b974f]{background:#e6e6e6;color:#999;cursor:pointer;box-shadow:none}.follow-btn.disabled-look[data-v-243b974f]:hover{background:#dcdcdc;transform:none;box-shadow:none}.user-submissions[data-v-243b974f]{padding:16px 16px 0 16px}.submission-header[data-v-243b974f]{font-size:13px;font-weight:600;color:#333;margin-bottom:8px;padding-left:4px;border-left:3px solid #3273dc;line-height:1;display:flex;justify-content:space-between;align-items:center}.pagination-controls[data-v-243b974f]{display:flex;align-items:center;gap:4px}.page-btn[data-v-243b974f]{border:none;background:#f0f0f0;color:#666;width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;transition:all .2s;padding:0}.page-btn[data-v-243b974f]:hover:not(:disabled){background:#e0e0e0;color:#3273dc}.page-btn[data-v-243b974f]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-243b974f]{font-weight:400;font-size:11px;color:#888;min-width:30px;text-align:center}.submission-list[data-v-243b974f]{display:flex;flex-direction:column;gap:8px;max-height:150px;overflow-y:auto;padding-right:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar{width:4px}.submission-list[data-v-243b974f]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.submission-list[data-v-243b974f]::-webkit-scrollbar-thumb:hover{background:#ccc}.submission-item[data-v-243b974f]{padding:8px 10px;background-color:#f8f9fa;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.submission-item[data-v-243b974f]:hover{background-color:#fff;border-color:#e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.05);transform:translateX(2px)}.submission-title[data-v-243b974f]{font-size:13px;color:#444;margin-bottom:6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.submission-tags[data-v-243b974f]{display:flex;gap:4px;flex-wrap:wrap}.tag[data-v-243b974f]{padding:2px 6px;border-radius:3px;font-size:11px;font-weight:500}.tag.official[data-v-243b974f]{background-color:#e6f7ff;color:#1890ff}.tag.highlight[data-v-243b974f]{background-color:#f6ffed;color:#52c41a}.tag.top[data-v-243b974f]{background-color:#fff7e6;color:#fa8c16}.colorful-name[data-v-243b974f]{background:linear-gradient(90deg,#0562ef,#722ed1,#eb2f96,#0562ef,#722ed1,#eb2f96,#0562ef);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow-243b974f 2s linear infinite;font-weight:700}@keyframes rainbow-243b974f{0%{background-position:0 50%}to{background-position:100% 50%}}.navbar[data-v-62ca13b8]{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1);position:fixed;top:0;left:0;right:0;padding:.5rem 1rem;z-index:1000}.navbar .container[data-v-62ca13b8]{display:flex;align-items:center;max-width:1200px;margin:0 auto;position:relative;width:100%}.navbar .navbar-brand[data-v-62ca13b8]{display:flex;align-items:center;justify-content:space-between;flex:1}.navbar .navbar-logo[data-v-62ca13b8]{font-size:1.5rem;font-weight:700;color:#333;text-decoration:none;display:flex;align-items:center}.navbar .navbar-logo-img[data-v-62ca13b8]{width:30px;margin-right:8px}.navbar .navbar-logo-img[data-v-62ca13b8],.navbar .navbar-title-img[data-v-62ca13b8]{height:30px;-o-object-fit:contain;object-fit:contain}.navbar .burger-container[data-v-62ca13b8]{position:relative;display:inline-block}.navbar .navbar-burger[data-v-62ca13b8]{display:none;width:2rem;height:1.2rem;cursor:pointer;margin-left:0;position:absolute;right:0;top:50%;transform:translateY(-50%)}.navbar .navbar-burger span[data-v-62ca13b8]{display:block;height:2px;width:74%;background-color:#333;transition:all .3s ease-in-out;position:absolute;left:0}.navbar .navbar-burger span[data-v-62ca13b8]:first-child{top:0}.navbar .navbar-burger span[data-v-62ca13b8]:nth-child(2){top:50%;transform:translateY(-50%)}.navbar .navbar-burger span[data-v-62ca13b8]:nth-child(3){bottom:0}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:nth-child(2){opacity:0}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:first-child{top:50%;transform:translateY(-50%) rotate(45deg)}.navbar .navbar-burger.is-active span[data-v-62ca13b8]:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}.navbar .navbar-menu[data-v-62ca13b8]{display:flex;align-items:center;transition:transform .3s ease,opacity .3s ease}.navbar .navbar-end[data-v-62ca13b8]{display:flex;align-items:center}.navbar .navbar-item[data-v-62ca13b8]{padding:.5rem 1rem;color:#333;text-decoration:none;transition:color .3s;white-space:nowrap}.navbar .navbar-item[data-v-62ca13b8]:hover{color:#3273dc}.navbar .user-dropdown[data-v-62ca13b8]{position:relative}.navbar .user-dropdown .user-info[data-v-62ca13b8]{display:flex;align-items:center;cursor:pointer;padding:.5rem}.navbar .user-dropdown .user-info[data-v-62ca13b8]:hover{background-color:#f5f5f5;border-radius:4px}.navbar .user-dropdown .user-avatar[data-v-62ca13b8]{width:30px;height:30px;border-radius:50%;margin-right:8px;-o-object-fit:cover;object-fit:cover}.navbar .user-dropdown .user-nickname[data-v-62ca13b8]{margin-right:4px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar .user-dropdown .dropdown-arrow[data-v-62ca13b8]{font-size:12px;transition:transform .3s}.navbar .user-dropdown .dropdown-arrow.is-active[data-v-62ca13b8]{transform:rotate(180deg)}.navbar .user-dropdown .dropdown-menu[data-v-62ca13b8]{position:absolute;top:100%;right:0;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-width:120px;z-index:1001}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8]{padding:.75rem 1rem;cursor:pointer}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8]:hover{background-color:#f5f5f5}@media(max-width:768px){.navbar[data-v-62ca13b8]{padding:0}.navbar .navbar-brand[data-v-62ca13b8]{width:auto;padding:.5rem 1rem}.navbar .navbar-brand-yuandan[data-v-62ca13b8]{width:auto;padding:.2rem 1rem 0 1rem}.navbar .navbar-burger[data-v-62ca13b8]{display:flex;margin-left:1rem}.navbar .navbar-menu[data-v-62ca13b8]{display:block;position:absolute;top:100%;left:0;right:0;background-color:#fff;box-shadow:0 4px 6px rgba(0,0,0,.1);padding:.5rem 0;z-index:1000;opacity:0;transform:translateY(-20px);pointer-events:none}.navbar .navbar-menu.is-active[data-v-62ca13b8]{opacity:1;transform:translateY(0);pointer-events:auto}.navbar .navbar-end[data-v-62ca13b8]{flex-direction:column;align-items:stretch}.navbar .navbar-item[data-v-62ca13b8]{padding:.75rem 1.5rem;text-align:left;border-bottom:1px solid #f5f5f5}.navbar .navbar-item[data-v-62ca13b8]:last-child{border-bottom:none}.navbar .user-dropdown .dropdown-menu[data-v-62ca13b8]{position:static;box-shadow:none;border-top:1px solid #f5f5f5}.navbar .user-dropdown .dropdown-item[data-v-62ca13b8],.navbar .user-dropdown .user-info[data-v-62ca13b8]{padding:.75rem 1.5rem}}.login-btn[data-v-62ca13b8]{color:#333;cursor:pointer;text-decoration:none;transition:color .3s}.login-btn[data-v-62ca13b8]:hover{color:#3273dc}.activation-dialog[data-v-62ca13b8]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.activation-dialog .activation-dialog-content[data-v-62ca13b8]{background-color:#fff;border-radius:8px;padding:2rem;max-width:90%;width:500px;box-shadow:0 4px 20px rgba(0,0,0,.15);max-height:90vh;overflow-y:auto}.activation-dialog .activation-dialog-content h3[data-v-62ca13b8]{font-size:1.5rem;margin-bottom:1rem;color:#333;text-align:center}.activation-dialog .activation-dialog-content p[data-v-62ca13b8]{margin-bottom:1.5rem;color:#666}.activation-dialog .activation-dialog-content .activation-methods[data-v-62ca13b8]{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.activation-dialog .activation-dialog-content .activation-method[data-v-62ca13b8]{background-color:#f9f9f9;padding:1rem;border-radius:6px;border:1px solid #eee}.activation-dialog .activation-dialog-content .activation-method h4[data-v-62ca13b8]{font-size:1.1rem;margin-bottom:.5rem;color:#444}.activation-dialog .activation-dialog-content .activation-method p[data-v-62ca13b8]{margin-bottom:1rem;color:#666;font-size:.9rem}.activation-dialog .activation-dialog-content .verify-btn[data-v-62ca13b8]{background-color:#3273dc;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;cursor:pointer;transition:background-color .3s}.activation-dialog .activation-dialog-content .verify-btn[data-v-62ca13b8]:hover{background-color:#2366d1}.activation-dialog .activation-dialog-content .close-btn[data-v-62ca13b8]{width:100%;background-color:#f0f0f0;color:#333;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;transition:background-color .3s}.activation-dialog .activation-dialog-content .close-btn[data-v-62ca13b8]:hover{background-color:#e0e0e0}.unread-dot[data-v-62ca13b8]{display:inline-block;width:8px;height:8px;background-color:#ff4d4f!important;border-radius:50%;margin-left:5px}.message-modal[data-v-62ca13b8]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.message-modal .message-modal-content[data-v-62ca13b8]{background-color:#fff;border-radius:8px;padding:2rem;max-width:90%;width:500px;box-shadow:0 4px 20px rgba(0,0,0,.15)}.message-modal .message-modal-content .message-modal-header[data-v-62ca13b8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.message-modal .message-modal-content .message-modal-header h3[data-v-62ca13b8]{font-size:1.5rem;color:#333}.message-modal .message-modal-content .message-modal-header .close-icon[data-v-62ca13b8]{font-size:1.5rem;cursor:pointer}.message-modal .message-modal-content .message-modal-body .loading-spinner[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .no-messages[data-v-62ca13b8]{text-align:center;margin-bottom:1rem}.message-modal .message-modal-content .message-modal-body .message-list[data-v-62ca13b8]{max-height:60vh;overflow-y:auto;padding-right:5px;margin-right:-5px}.message-modal .message-modal-content .message-modal-body .message-list .message-item[data-v-62ca13b8]{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f0f0f0}.message-modal .message-modal-content .message-modal-body .message-list .message-item[data-v-62ca13b8]:last-child{border-bottom:none}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header[data-v-62ca13b8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header .message-time[data-v-62ca13b8]{font-size:.9rem;color:#666}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-header .unread-tag[data-v-62ca13b8]{background-color:#ff4d4f;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8]{font-size:1rem;color:#333}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content .router-link-active[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8],.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:link,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:visited,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8] a{color:#3273dc!important;text-decoration:none!important;font-weight:500!important}.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content .router-link-active[data-v-62ca13b8]:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:link:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content a[data-v-62ca13b8]:visited:hover,.message-modal .message-modal-content .message-modal-body .message-list .message-item .message-content[data-v-62ca13b8] a:hover{text-decoration:underline!important;color:#2366d1!important}.message-modal .message-modal-content .message-modal-body .pagination[data-v-62ca13b8]{display:flex;justify-content:center;align-items:center;margin-top:1rem}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]{background-color:#3273dc;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;transition:background-color .3s}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]:hover{background-color:#2366d1}.message-modal .message-modal-content .message-modal-body .pagination .page-btn[data-v-62ca13b8]:disabled{background-color:#f0f0f0;cursor:not-allowed}.message-modal .message-modal-content .message-modal-body .pagination .page-info[data-v-62ca13b8]{margin:0 1rem;font-size:.9rem;color:#666;display:flex;align-items:center}[data-v-62ca13b8] .message-modal-body a{color:#3273dc!important;text-decoration:none!important;font-weight:500!important}[data-v-62ca13b8] .message-modal-body a:hover{text-decoration:underline!important;color:#2366d1!important}.avatar-wrapper[data-v-62ca13b8]{position:relative;display:inline-block}.avatar-badge[data-v-62ca13b8]{position:absolute;top:0;right:0;width:8px;height:8px}.burger-badge[data-v-62ca13b8]{position:absolute;top:-13px;right:0;transform:translate(0);width:8px;height:8px;background-color:#ff4d4f!important;border-radius:50%;margin:0;padding:0;display:none}@media(max-width:768px){.burger-badge[data-v-62ca13b8]{display:block}}.route-tag[data-v-62ca13b8]{display:inline-block;color:#fff;font-size:.9rem;padding:2px 6px;border-radius:4px;margin-left:7px;vertical-align:middle;font-weight:500}.new-badge[data-v-62ca13b8]{display:inline-block;background-color:#f44336;color:#fff;font-size:.7rem;padding:1px 4px;border-radius:4px;vertical-align:top;line-height:1.2;font-weight:700;position:relative;top:-2px}.navbar.navbar-kaoyan[data-v-62ca13b8]{background-color:#d40c1d}.navbar.navbar-kaoyan .login-btn[data-v-62ca13b8],.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8],.navbar.navbar-kaoyan .navbar-logo[data-v-62ca13b8]{color:#fff}.navbar.navbar-kaoyan .login-btn[data-v-62ca13b8]:hover,.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8]:hover,.navbar.navbar-kaoyan .navbar-logo[data-v-62ca13b8]:hover{color:hsla(0,0%,100%,.8)}.navbar.navbar-kaoyan .navbar-burger span[data-v-62ca13b8]{background-color:#fff}.navbar.navbar-kaoyan .dropdown-menu .dropdown-item[data-v-62ca13b8]{color:#333}.navbar.navbar-kaoyan .dropdown-menu .dropdown-item[data-v-62ca13b8]:hover{color:#3273dc;background-color:#f5f5f5}.navbar.navbar-kaoyan .user-dropdown .user-info[data-v-62ca13b8]:hover{color:#e60012}@media(max-width:768px){.navbar.navbar-kaoyan .navbar-menu[data-v-62ca13b8]{background-color:#e60012}.navbar.navbar-kaoyan .navbar-item[data-v-62ca13b8]{border-bottom:1px solid hsla(0,0%,100%,.1)}}.home[data-v-5f3e32dc]{min-height:100vh;background-color:#f8f9fa;padding-top:60px}.container[data-v-5f3e32dc]{max-width:1200px;margin:0 auto;padding:2rem 1rem}.welcome-section[data-v-5f3e32dc]{text-align:center;padding:3rem 1rem}.welcome-section img[data-v-5f3e32dc]{width:150px;margin-bottom:2rem}.welcome-section h1[data-v-5f3e32dc]{font-size:2.5rem;margin-bottom:1rem;color:#333}.welcome-section p[data-v-5f3e32dc]{font-size:1.2rem;margin-bottom:2rem;color:#555}.welcome-section .intro-text[data-v-5f3e32dc]{background-color:#fff;border-radius:10px;padding:2rem;margin-top:2rem;box-shadow:0 4px 15px rgba(0,0,0,.08);text-align:left;border-left:4px solid #f6be05;position:relative;overflow:hidden;max-width:800px;margin-left:auto;margin-right:auto}.welcome-section .intro-text[data-v-5f3e32dc]:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle at top right,rgba(50,115,220,.08),transparent 70%);z-index:0}.welcome-section .intro-text.intro-kaoyan[data-v-5f3e32dc]{background-color:#e60012;border-left:none}.welcome-section .intro-text.intro-kaoyan p[data-v-5f3e32dc]{color:#fff;font-weight:700}.welcome-section .intro-text.intro-kaoyan[data-v-5f3e32dc]:before{background:radial-gradient(circle at top right,hsla(0,0%,100%,.2),transparent 70%)}.welcome-section .intro-text p[data-v-5f3e32dc]{position:relative;z-index:1;margin-bottom:1rem;font-size:1.1rem;line-height:1.6;color:#555}.welcome-section .intro-text p[data-v-5f3e32dc]:last-child{margin-bottom:0}.welcome-section .cta-buttons[data-v-5f3e32dc]{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.welcome-section .cta-buttons .btn[data-v-5f3e32dc]{padding:.75rem 1.5rem;border-radius:4px;font-weight:600;transition:all .3s;text-decoration:none}.welcome-section .cta-buttons .btn.btn-primary[data-v-5f3e32dc]{background-color:#3273dc;color:#fff}.welcome-section .cta-buttons .btn.btn-primary[data-v-5f3e32dc]:hover{background-color:#2366c9}.welcome-section .cta-buttons .btn.btn-secondary[data-v-5f3e32dc]{background-color:#f5f5f5;color:#333}.welcome-section .cta-buttons .btn.btn-secondary[data-v-5f3e32dc]:hover{background-color:#e8e8e8}.quick-links[data-v-5f3e32dc]{margin-top:1.5rem;font-size:1rem;color:#555}.quick-links a[data-v-5f3e32dc]{color:#3273dc;text-decoration:none;margin:0 .5rem;cursor:pointer}.quick-links a[data-v-5f3e32dc]:hover{text-decoration:underline}.colorful-text[data-v-5f3e32dc]{background:linear-gradient(90deg,#0562ef,#722ed1,#eb2f96,#0562ef,#722ed1,#eb2f96,#0562ef);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow-5f3e32dc 2s linear infinite;font-weight:700}@keyframes rainbow-5f3e32dc{0%{background-position:0 50%}to{background-position:100% 50%}}@media(max-width:768px){.welcome-section[data-v-5f3e32dc]{padding:2rem 1rem}.welcome-section h1[data-v-5f3e32dc]{font-size:2rem}.welcome-section p[data-v-5f3e32dc]{font-size:1rem}.welcome-section .intro-text[data-v-5f3e32dc]{padding:1.5rem}.welcome-section .intro-text p[data-v-5f3e32dc]{font-size:1rem}.welcome-section .cta-buttons[data-v-5f3e32dc]{flex-direction:column;align-items:center}.welcome-section .cta-buttons .btn[data-v-5f3e32dc]{width:100%;max-width:300px;margin-bottom:.5rem}}#nprogress .bar{background:#00f5ff!important;height:2px!important}.bar-message[data-v-18bdfd8a]{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:80%;max-width:500px;z-index:9999;pointer-events:auto}.bar-message-content[data-v-18bdfd8a]{padding:12px 16px;border-radius:8px;text-align:left;font-size:14px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);word-break:break-word;display:flex;align-items:center}.bar-message-icon[data-v-18bdfd8a]{margin-right:10px;font-size:16px}.bar-message-text[data-v-18bdfd8a]{flex:1}.bar-message-close[data-v-18bdfd8a]{margin-left:10px;cursor:pointer;font-size:14px;opacity:.8;transition:opacity .2s}.bar-message-close[data-v-18bdfd8a]:hover{opacity:1}.success[data-v-18bdfd8a]{background-color:#4caf50}.error[data-v-18bdfd8a]{background-color:#f44336}.warning[data-v-18bdfd8a]{background-color:#ff9800}.info[data-v-18bdfd8a]{background-color:#2196f3}.bar-message-fade-enter-active[data-v-18bdfd8a],.bar-message-fade-leave-active[data-v-18bdfd8a]{transition:opacity .3s,transform .3s}.bar-message-fade-enter-from[data-v-18bdfd8a],.bar-message-fade-leave-to[data-v-18bdfd8a]{opacity:0;transform:translate(-50%,-15px)}
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index c30a8f2..ed48da6 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1 +1 @@
-
NEU小站 抱歉,NEU小站无法在没有 JavaScript 的情况下正常工作。请启用 JavaScript 以继续。
\ No newline at end of file
+NEU小站 抱歉,NEU小站无法在没有 JavaScript 的情况下正常工作。请启用 JavaScript 以继续。
\ No newline at end of file
diff --git a/dist/js/188.8360fee7.js b/dist/js/188.8360fee7.js
new file mode 100644
index 0000000..9a3eafd
--- /dev/null
+++ b/dist/js/188.8360fee7.js
@@ -0,0 +1,2 @@
+"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[188],{7188:function(e,a,r){r.r(a),r.d(a,{default:function(){return Y}});var s=r(6768),l=r(4232),o=r(5130);const t={class:"qa-page"},i={class:"container"},n={class:"content-area"},u={class:"card form-card"},c={class:"form-group"},d={class:"options-grid"},m=["value"],f={class:"radio-text"},v={key:0,class:"sub-input"},p={class:"form-group"},k={class:"options-grid"},g=["value"],b={class:"radio-text"},_={class:"form-group"},L={class:"options-grid"},h=["value"],y={class:"radio-text"},w={class:"form-group"},C={class:"form-group"},X={class:"rating-group"},U=["value"],E={class:"form-group"},q={class:"rating-group"},x=["value"],V={class:"form-group"},F={class:"rating-group"},I=["value"],$={class:"form-group"},M={class:"rating-group"},K=["value"],N={class:"form-group"},O={class:"rating-group wrap"},A=["value"],J={class:"form-group"},W={class:"form-group"},S={class:"form-group"},T={class:"form-actions"},B=["disabled"];function P(e,a,r,P,z,Q){const j=(0,s.g2)("NavBar");return(0,s.uX)(),(0,s.CE)("div",t,[(0,s.bF)(j),(0,s.Lk)("div",i,[a[28]||(a[28]=(0,s.Fv)('',1)),(0,s.Lk)("div",n,[(0,s.Lk)("div",u,[(0,s.Lk)("div",c,[a[14]||(a[14]=(0,s.Lk)("label",{class:"form-label required"},"1. 您从哪里了解到NEU小站?",-1)),(0,s.Lk)("div",d,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.discoverySourceOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.discovery_source===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=e=>z.form.discovery_source=e),value:e},null,8,m),[[o.XL,z.form.discovery_source]]),(0,s.Lk)("span",f,(0,l.v_)(e),1)],2)))),128))]),"其他"===z.form.discovery_source?((0,s.uX)(),(0,s.CE)("div",v,[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":a[1]||(a[1]=e=>z.form.discovery_source_other=e),class:"form-input",placeholder:"请填写具体渠道"},null,512),[[o.Jo,z.form.discovery_source_other]])])):(0,s.Q3)("",!0)]),(0,s.Lk)("div",p,[a[15]||(a[15]=(0,s.Lk)("label",{class:"form-label required"},"2. 您的使用频率如何?",-1)),(0,s.Lk)("div",k,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.usageFrequencyOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.usage_frequency===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=e=>z.form.usage_frequency=e),value:e},null,8,g),[[o.XL,z.form.usage_frequency]]),(0,s.Lk)("span",b,(0,l.v_)(e),1)],2)))),128))])]),(0,s.Lk)("div",_,[a[16]||(a[16]=(0,s.Lk)("label",{class:"form-label required"},"3. 您目前使用过下列哪些功能?(多选)",-1)),(0,s.Lk)("div",L,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.featureOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.used_features.includes(e)}])},[(0,s.bo)((0,s.Lk)("input",{type:"checkbox",value:e,"onUpdate:modelValue":a[3]||(a[3]=e=>z.form.used_features=e)},null,8,h),[[o.lH,z.form.used_features]]),(0,s.Lk)("span",y,(0,l.v_)(e),1)],2)))),128))])]),(0,s.Lk)("div",w,[a[17]||(a[17]=(0,s.Lk)("label",{class:"form-label"},"4. 您觉得最棒或最差的功能是?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[4]||(a[4]=e=>z.form.best_worst_feature=e),class:"form-textarea",rows:"3",placeholder:"请畅所欲言..."},null,512),[[o.Jo,z.form.best_worst_feature]])]),(0,s.Lk)("div",C,[a[18]||(a[18]=(0,s.Lk)("label",{class:"form-label required"},"5. 您的整体使用体验如何?(1-5分)",-1)),(0,s.Lk)("div",X,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_overall===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[5]||(a[5]=e=>z.form.rating_overall=e),value:e},null,8,U),[[o.XL,z.form.rating_overall]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))]),a[19]||(a[19]=(0,s.Lk)("div",{class:"rating-desc"},[(0,s.Lk)("span",null,"1分: 极差"),(0,s.Lk)("span",null,"5分: 极好")],-1))]),(0,s.Lk)("div",E,[a[20]||(a[20]=(0,s.Lk)("label",{class:"form-label required"},"6. 您觉得网站界面的交互体验如何?(1-5分)",-1)),(0,s.Lk)("div",q,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_ui===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[6]||(a[6]=e=>z.form.rating_ui=e),value:e},null,8,x),[[o.XL,z.form.rating_ui]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",V,[a[21]||(a[21]=(0,s.Lk)("label",{class:"form-label"},"7. 您觉得网站资源的下载速度如何?(1-5分)",-1)),(0,s.Lk)("div",F,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_speed===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[7]||(a[7]=e=>z.form.rating_speed=e),value:e},null,8,I),[[o.XL,z.form.rating_speed]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",$,[a[22]||(a[22]=(0,s.Lk)("label",{class:"form-label"},"8. 您觉得课程评分系统的使用体验如何?(1-5分)",-1)),(0,s.Lk)("div",M,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_course_system===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[8]||(a[8]=e=>z.form.rating_course_system=e),value:e},null,8,K),[[o.XL,z.form.rating_course_system]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",N,[a[23]||(a[23]=(0,s.Lk)("label",{class:"form-label required"},"9. 您愿意把NEU小站推荐给同学或朋友吗?(0-10分)",-1)),(0,s.Lk)("div",O,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(11,(e=>(0,s.Lk)("label",{key:e-1,class:(0,l.C4)(["rating-item small",{active:z.form.recommend_score===e-1}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[9]||(a[9]=e=>z.form.recommend_score=e),value:e-1},null,8,A),[[o.XL,z.form.recommend_score]]),(0,s.eW)(" "+(0,l.v_)(e-1),1)],2))),64))]),a[24]||(a[24]=(0,s.Lk)("div",{class:"rating-desc"},[(0,s.Lk)("span",null,"0分: 不愿意"),(0,s.Lk)("span",null,"10分: 非常愿意")],-1))]),(0,s.Lk)("div",J,[a[25]||(a[25]=(0,s.Lk)("label",{class:"form-label"},"10. 如果(不)推荐,您最想推荐(吐槽)的是它的什么功能/特点?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[10]||(a[10]=e=>z.form.recommend_reason=e),class:"form-textarea",rows:"3",placeholder:"请填写..."},null,512),[[o.Jo,z.form.recommend_reason]])]),(0,s.Lk)("div",W,[a[26]||(a[26]=(0,s.Lk)("label",{class:"form-label"},"11. 您希望我们新增什么功能?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[11]||(a[11]=e=>z.form.new_features_wish=e),class:"form-textarea",rows:"3",placeholder:"请填写..."},null,512),[[o.Jo,z.form.new_features_wish]])]),(0,s.Lk)("div",S,[a[27]||(a[27]=(0,s.Lk)("label",{class:"form-label"},"12. 您还有什么想对我们说的吗?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[12]||(a[12]=e=>z.form.additional_feedback=e),class:"form-textarea",rows:"4",placeholder:"关于功能、内容、隐私、界面…任何方面都可以~"},null,512),[[o.Jo,z.form.additional_feedback]])]),(0,s.Lk)("div",T,[(0,s.Lk)("button",{class:"btn-submit",onClick:a[13]||(a[13]=(...e)=>Q.handleSubmit&&Q.handleSubmit(...e)),disabled:z.submitting},(0,l.v_)(z.submitting?"提交中...":"提交问卷"),9,B)])])])])])}r(4114);var z=r(4373),Q=r(8704),j=r(4993),D=r(3825),H={name:"Qa2025",components:{NavBar:D.A},data(){return{submitting:!1,discoverySourceOptions:["朋友/同学推荐","校园群/表白墙","社交媒体(小红书/微博/B站等)","搜索引擎","其他"],usageFrequencyOptions:["几乎每天","每周几次","每月几次","很少,偶尔需要时才来"],featureOptions:["资源共享与下载","课程评分/评论","课程追问交流","内容搜索","内容评论区","内容投稿","兑换密钥","云解压","PDF预览","OJ题库","WebVPN地址生成"],form:{discovery_source:"",discovery_source_other:"",usage_frequency:"",used_features:[],best_worst_feature:"",rating_overall:null,rating_ui:null,rating_speed:null,rating_course_system:null,recommend_score:null,recommend_reason:"",new_features_wish:"",additional_feedback:""}}},mounted(){document.title="与你一起,让NEU小站变得更好💞",window.scrollTo({top:0,behavior:"smooth"})},methods:{getToken(){let e=Q.A.get("token");if(!e){const a=document.cookie.match(/(^| )token=([^;]+)/);a&&(e=a[2])}return e},async handleSubmit(){if(!this.form.discovery_source)return this.$barMessage.warning("请回答第1题:了解渠道");if("其他"===this.form.discovery_source&&!this.form.discovery_source_other)return this.$barMessage.warning("请填写具体的了解渠道");if(!this.form.usage_frequency)return this.$barMessage.warning("请回答第2题:使用频率");if(0===this.form.used_features.length)return this.$barMessage.warning("请回答第3题:使用过的功能");if(null===this.form.rating_overall)return this.$barMessage.warning("请回答第5题:整体体验评分");if(null===this.form.rating_ui)return this.$barMessage.warning("请回答第6题:UI交互评分");if(null===this.form.recommend_score)return this.$barMessage.warning("请回答第9题:推荐意愿评分");const e=this.getToken();e?j.A.confirm("确定要提交问卷吗?提交后不可修改哦。","提交确认").then((async()=>{this.submitting=!0;try{await z.A.post("https://newfront.xn--xhq44jb2fzpc.com/qa/add",this.form,{headers:{Authorization:e}}),this.$barMessage.success("问卷提交成功,非常感谢您的参与~"),setTimeout((()=>{this.$router.push("/")}),1500)}catch(a){console.error(a);const e=a.response?.data?.error||"提交失败,请稍后重试";this.$barMessage.error(e)}finally{this.submitting=!1}})).catch((()=>{})):this.$barMessage.error("请先登录再提交问卷")}}},G=r(1241);const R=(0,G.A)(H,[["render",P],["__scopeId","data-v-51411283"]]);var Y=R}}]);
+//# sourceMappingURL=188.8360fee7.js.map
\ No newline at end of file
diff --git a/dist/js/48.d69889fa.js b/dist/js/48.d69889fa.js
deleted file mode 100644
index 7927f6d..0000000
--- a/dist/js/48.d69889fa.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[48],{2048:function(e,a,r){r.r(a),r.d(a,{default:function(){return Y}});var s=r(6768),l=r(4232),o=r(5130);const t={class:"qa-page"},i={class:"container"},n={class:"content-area"},u={class:"card form-card"},c={class:"form-group"},d={class:"options-grid"},m=["value"],f={class:"radio-text"},v={key:0,class:"sub-input"},p={class:"form-group"},b={class:"options-grid"},k=["value"],g={class:"radio-text"},_={class:"form-group"},L={class:"options-grid"},h=["value"],y={class:"radio-text"},w={class:"form-group"},C={class:"form-group"},X={class:"rating-group"},U=["value"],E={class:"form-group"},q={class:"rating-group"},x=["value"],V={class:"form-group"},F={class:"rating-group"},I=["value"],$={class:"form-group"},M={class:"rating-group"},K=["value"],N={class:"form-group"},O={class:"rating-group wrap"},A=["value"],J={class:"form-group"},W={class:"form-group"},S={class:"form-group"},B={class:"form-actions"},P=["disabled"];function T(e,a,r,T,z,Q){const j=(0,s.g2)("NavBar");return(0,s.uX)(),(0,s.CE)("div",t,[(0,s.bF)(j),(0,s.Lk)("div",i,[a[28]||(a[28]=(0,s.Fv)('',1)),(0,s.Lk)("div",n,[(0,s.Lk)("div",u,[(0,s.Lk)("div",c,[a[14]||(a[14]=(0,s.Lk)("label",{class:"form-label required"},"1. 您从哪里了解到NEU小站?",-1)),(0,s.Lk)("div",d,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.discoverySourceOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.discovery_source===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=e=>z.form.discovery_source=e),value:e},null,8,m),[[o.XL,z.form.discovery_source]]),(0,s.Lk)("span",f,(0,l.v_)(e),1)],2)))),128))]),"其他"===z.form.discovery_source?((0,s.uX)(),(0,s.CE)("div",v,[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":a[1]||(a[1]=e=>z.form.discovery_source_other=e),class:"form-input",placeholder:"请填写具体渠道"},null,512),[[o.Jo,z.form.discovery_source_other]])])):(0,s.Q3)("",!0)]),(0,s.Lk)("div",p,[a[15]||(a[15]=(0,s.Lk)("label",{class:"form-label required"},"2. 您的使用频率如何?",-1)),(0,s.Lk)("div",b,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.usageFrequencyOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.usage_frequency===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=e=>z.form.usage_frequency=e),value:e},null,8,k),[[o.XL,z.form.usage_frequency]]),(0,s.Lk)("span",g,(0,l.v_)(e),1)],2)))),128))])]),(0,s.Lk)("div",_,[a[16]||(a[16]=(0,s.Lk)("label",{class:"form-label required"},"3. 您目前使用过下列哪些功能?(多选)",-1)),(0,s.Lk)("div",L,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(z.featureOptions,(e=>((0,s.uX)(),(0,s.CE)("label",{key:e,class:(0,l.C4)(["radio-label",{checked:z.form.used_features.includes(e)}])},[(0,s.bo)((0,s.Lk)("input",{type:"checkbox",value:e,"onUpdate:modelValue":a[3]||(a[3]=e=>z.form.used_features=e)},null,8,h),[[o.lH,z.form.used_features]]),(0,s.Lk)("span",y,(0,l.v_)(e),1)],2)))),128))])]),(0,s.Lk)("div",w,[a[17]||(a[17]=(0,s.Lk)("label",{class:"form-label"},"4. 您觉得最棒或最差的功能是?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[4]||(a[4]=e=>z.form.best_worst_feature=e),class:"form-textarea",rows:"3",placeholder:"请畅所欲言..."},null,512),[[o.Jo,z.form.best_worst_feature]])]),(0,s.Lk)("div",C,[a[18]||(a[18]=(0,s.Lk)("label",{class:"form-label required"},"5. 您的整体使用体验如何?(1-5分)",-1)),(0,s.Lk)("div",X,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_overall===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[5]||(a[5]=e=>z.form.rating_overall=e),value:e},null,8,U),[[o.XL,z.form.rating_overall]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))]),a[19]||(a[19]=(0,s.Lk)("div",{class:"rating-desc"},[(0,s.Lk)("span",null,"1分: 极差"),(0,s.Lk)("span",null,"5分: 极好")],-1))]),(0,s.Lk)("div",E,[a[20]||(a[20]=(0,s.Lk)("label",{class:"form-label required"},"6. 您觉得网站界面的交互体验如何?(1-5分)",-1)),(0,s.Lk)("div",q,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_ui===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[6]||(a[6]=e=>z.form.rating_ui=e),value:e},null,8,x),[[o.XL,z.form.rating_ui]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",V,[a[21]||(a[21]=(0,s.Lk)("label",{class:"form-label"},"7. 您觉得网站资源的下载速度如何?(1-5分)",-1)),(0,s.Lk)("div",F,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_speed===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[7]||(a[7]=e=>z.form.rating_speed=e),value:e},null,8,I),[[o.XL,z.form.rating_speed]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",$,[a[22]||(a[22]=(0,s.Lk)("label",{class:"form-label"},"8. 您觉得课程评分系统的使用体验如何?(1-5分)",-1)),(0,s.Lk)("div",M,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(5,(e=>(0,s.Lk)("label",{key:e,class:(0,l.C4)(["rating-item",{active:z.form.rating_course_system===e}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[8]||(a[8]=e=>z.form.rating_course_system=e),value:e},null,8,K),[[o.XL,z.form.rating_course_system]]),(0,s.eW)(" "+(0,l.v_)(e),1)],2))),64))])]),(0,s.Lk)("div",N,[a[23]||(a[23]=(0,s.Lk)("label",{class:"form-label required"},"9. 您愿意把NEU小站推荐给同学或朋友吗?(0-10分)",-1)),(0,s.Lk)("div",O,[((0,s.uX)(),(0,s.CE)(s.FK,null,(0,s.pI)(11,(e=>(0,s.Lk)("label",{key:e-1,class:(0,l.C4)(["rating-item small",{active:z.form.recommend_score===e-1}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":a[9]||(a[9]=e=>z.form.recommend_score=e),value:e-1},null,8,A),[[o.XL,z.form.recommend_score]]),(0,s.eW)(" "+(0,l.v_)(e-1),1)],2))),64))]),a[24]||(a[24]=(0,s.Lk)("div",{class:"rating-desc"},[(0,s.Lk)("span",null,"0分: 不愿意"),(0,s.Lk)("span",null,"10分: 非常愿意")],-1))]),(0,s.Lk)("div",J,[a[25]||(a[25]=(0,s.Lk)("label",{class:"form-label"},"10. 如果(不)推荐,您最想推荐(吐槽)的是它的什么功能/特点?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[10]||(a[10]=e=>z.form.recommend_reason=e),class:"form-textarea",rows:"3",placeholder:"请填写..."},null,512),[[o.Jo,z.form.recommend_reason]])]),(0,s.Lk)("div",W,[a[26]||(a[26]=(0,s.Lk)("label",{class:"form-label"},"11. 您希望我们新增什么功能?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[11]||(a[11]=e=>z.form.new_features_wish=e),class:"form-textarea",rows:"3",placeholder:"请填写..."},null,512),[[o.Jo,z.form.new_features_wish]])]),(0,s.Lk)("div",S,[a[27]||(a[27]=(0,s.Lk)("label",{class:"form-label"},"12. 您还有什么想对我们说的吗?",-1)),(0,s.bo)((0,s.Lk)("textarea",{"onUpdate:modelValue":a[12]||(a[12]=e=>z.form.additional_feedback=e),class:"form-textarea",rows:"4",placeholder:"关于功能、内容、隐私、界面…任何方面都可以~"},null,512),[[o.Jo,z.form.additional_feedback]])]),(0,s.Lk)("div",B,[(0,s.Lk)("button",{class:"btn-submit",onClick:a[13]||(a[13]=(...e)=>Q.handleSubmit&&Q.handleSubmit(...e)),disabled:z.submitting},(0,l.v_)(z.submitting?"提交中...":"提交问卷"),9,P)])])])])])}r(4114);var z=r(4373),Q=r(8704),j=r(4993),D=r(3825),H={name:"Qa2025",components:{NavBar:D.A},data(){return{submitting:!1,discoverySourceOptions:["朋友/同学推荐","校园群/表白墙","社交媒体(小红书/微博/B站等)","搜索引擎","其他"],usageFrequencyOptions:["几乎每天","每周几次","每月几次","很少,偶尔需要时才来"],featureOptions:["资源共享与下载","课程评分/评论","课程追问交流","内容搜索","内容评论区","内容投稿","兑换密钥","云解压","PDF预览","OJ题库","WebVPN地址生成"],form:{discovery_source:"",discovery_source_other:"",usage_frequency:"",used_features:[],best_worst_feature:"",rating_overall:null,rating_ui:null,rating_speed:null,rating_course_system:null,recommend_score:null,recommend_reason:"",new_features_wish:"",additional_feedback:""}}},mounted(){document.title="与你一起,让NEU小站变得更好💞"},methods:{getToken(){let e=Q.A.get("token");if(!e){const a=document.cookie.match(/(^| )token=([^;]+)/);a&&(e=a[2])}return e},async handleSubmit(){if(!this.form.discovery_source)return this.$barMessage.warning("请回答第1题:了解渠道");if("其他"===this.form.discovery_source&&!this.form.discovery_source_other)return this.$barMessage.warning("请填写具体的了解渠道");if(!this.form.usage_frequency)return this.$barMessage.warning("请回答第2题:使用频率");if(0===this.form.used_features.length)return this.$barMessage.warning("请回答第3题:使用过的功能");if(null===this.form.rating_overall)return this.$barMessage.warning("请回答第5题:整体体验评分");if(null===this.form.rating_ui)return this.$barMessage.warning("请回答第6题:UI交互评分");if(null===this.form.recommend_score)return this.$barMessage.warning("请回答第9题:推荐意愿评分");const e=this.getToken();e?j.A.confirm("确定要提交问卷吗?提交后不可修改哦。","提交确认").then((async()=>{this.submitting=!0;try{await z.A.post("https://newfront.xn--xhq44jb2fzpc.com/qa/add",this.form,{headers:{Authorization:e}}),this.$barMessage.success("问卷提交成功,非常感谢您的参与~"),setTimeout((()=>{this.$router.push("/")}),1500)}catch(a){console.error(a);const e=a.response?.data?.error||"提交失败,请稍后重试";this.$barMessage.error(e)}finally{this.submitting=!1}})).catch((()=>{})):this.$barMessage.error("请先登录再提交问卷")}}},G=r(1241);const R=(0,G.A)(H,[["render",T],["__scopeId","data-v-37b8c71d"]]);var Y=R}}]);
-//# sourceMappingURL=48.d69889fa.js.map
\ No newline at end of file
diff --git a/dist/js/app.8443c52c.js b/dist/js/app.8443c52c.js
deleted file mode 100644
index 563b77e..0000000
--- a/dist/js/app.8443c52c.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(){"use strict";var e={878:function(e,t,s){var a=s(5130),n=s(6768),o=s(4232),i=s(144);const l={id:"app"},r={class:"beian-footer"},c={class:"container"},d={class:"copyright"};var u={__name:"App",setup(e){const t=(new Date).getFullYear();return(e,s)=>{const a=(0,n.g2)("router-view"),u=(0,n.g2)("router-link");return(0,n.uX)(),(0,n.CE)("div",l,[(0,n.bF)(a),(0,n.Lk)("footer",r,[(0,n.Lk)("div",c,[s[1]||(s[1]=(0,n.Lk)("span",{style:{"white-space":"nowrap"}},[(0,n.Lk)("img",{src:"https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png",alt:"公安标识",style:{"vertical-align":"middle",height:"16px",display:"inline-block"}}),(0,n.Lk)("a",{href:"https://beian.mps.gov.cn/",target:"_blank"}," 赣公网安备36090202000259号"),(0,n.eW)(" | "),(0,n.Lk)("a",{href:"https://beian.miit.gov.cn/",target:"_blank"},"赣ICP备2024039267号-1")],-1)),(0,n.Lk)("div",d,[(0,n.eW)(" © 2024-"+(0,o.v_)((0,i.R1)(t))+" ",1),(0,n.bF)(u,{to:"/about"},{default:(0,n.k6)((()=>s[0]||(s[0]=[(0,n.eW)("NEU小站")]))),_:1})])])])])}}};const h=u;var g=h,p=s(1387);const m={class:"home"},f={class:"container"},v={class:"welcome-section"},k=["src"],b={class:"quick-links"},y={style:{"text-align":"right","font-weight":"normal"}};function w(e,t,s,a,i,l){const r=(0,n.g2)("Navbar");return(0,n.uX)(),(0,n.CE)("div",m,[(0,n.bF)(r),(0,n.Lk)("div",f,[(0,n.Lk)("div",v,[(0,n.Lk)("img",{alt:"Vue logo",src:i.kaoyan?"https://download.东北大学.com/images/logo-ky.png":"https://download.东北大学.com/images/logo-hd.png"},null,8,k),t[3]||(t[3]=(0,n.Lk)("h1",null,"欢迎访问NEU小站",-1)),(0,n.Lk)("div",b,[t[1]||(t[1]=(0,n.Lk)("span",{class:"colorful-text"},"课程评分V2版本已上线,移动端可用!",-1)),t[2]||(t[2]=(0,n.Lk)("span",null,"入口:",-1)),(0,n.Lk)("a",{onClick:t[0]||(t[0]=e=>l.goTo("course",!1)),target:"_blank"},"课程评分系统")]),(0,n.Lk)("div",{class:(0,o.C4)(["intro-text",{"intro-kaoyan":i.kaoyan}])},[(0,n.Lk)("p",null,(0,o.v_)(i.kaoyan?"这一程霜雪披肩,终淬出笔锋里的晨曦。愿你合卷时,有剑归鞘的从容~":"“让我在接下来的日子里陪你一起成长吧”"),1),(0,n.Lk)("p",y,(0,o.v_)(i.kaoyan?"——致考研NEUers":"——NEU小站"),1)],2)])])])}var C=s(3825),L=s(4993),_={name:"HomeView",components:{Navbar:C.A},created(){document.title="NEU小站"},data(){return{kaoyan:!1}},methods:{goTo(e,t=!1){const s={course:"https://course.xn--xhq44jb2fzpc.com",oj:"https://oj.xn--xhq44jb2fzpc.com"},a=s[e];if(a)if(t){const e=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<768;e?L.A.confirm("推荐在电脑端访问,以获得最佳体验。仍要继续吗?","提示").then((()=>{window.open(a,"_blank")})).catch((()=>{})):window.open(a,"_blank")}else window.open(a,"_blank");else console.error(`No URL found for name: ${e}`)}}},E=s(1241);const A=(0,E.A)(_,[["render",w],["__scopeId","data-v-e5f87384"]]);var I=A,x=s(4130),M=s.n(x);M().configure({showSpinner:!1});const X=[{path:"/",name:"home",component:I},{path:"/login",name:"login",component:()=>s.e(225).then(s.bind(s,225))},{path:"/article/:id",name:"article-detail",component:()=>s.e(493).then(s.bind(s,5493))},{path:"/about",name:"about",component:()=>s.e(893).then(s.bind(s,5893))},{path:"/strategy",name:"strategy",component:()=>s.e(608).then(s.bind(s,5608))},{path:"/resources",name:"resources",component:()=>s.e(556).then(s.bind(s,556))},{path:"/ranking",name:"ranking",component:()=>s.e(550).then(s.bind(s,1550))},{path:"/:pathMatch(.*)*",name:"404",component:()=>s.e(899).then(s.bind(s,3899))},{path:"/search",name:"search",component:()=>s.e(325).then(s.bind(s,4325))},{path:"/user-center",name:"user-center",component:()=>s.e(225).then(s.bind(s,225))},{path:"/app",name:"app",component:()=>s.e(159).then(s.bind(s,5540))},{path:"/submit",name:"submit",component:()=>Promise.all([s.e(625),s.e(954)]).then(s.bind(s,4954))},{path:"/preview",name:"preview",component:()=>s.e(493).then(s.bind(s,5493))},{path:"/edit",name:"edit-article",component:()=>Promise.all([s.e(625),s.e(954)]).then(s.bind(s,4954))},{path:"/widgets",name:"widgets",component:()=>s.e(155).then(s.bind(s,5155))},{path:"/widgets/webvpn",name:"webvpn",component:()=>s.e(898).then(s.bind(s,898))},{path:"/subscribe",name:"subscribe",component:()=>s.e(637).then(s.bind(s,3637))},{path:"/advice",name:"advice",component:()=>Promise.all([s.e(625),s.e(11)]).then(s.bind(s,7011))},{path:"/qa",name:"qa",component:()=>s.e(48).then(s.bind(s,2048))}],P=(0,p.aE)({history:(0,p.LA)("/"),routes:X});P.beforeEach(((e,t,s)=>{M().start(),s()})),P.afterEach((()=>{M().done()}));var S=P,j=s(2090);const z=(0,a.Ef)(g);z.config.globalProperties.$barMessage=j.A,z.use(S).mount("#app"),window.$barMessage=j.A},2090:function(e,t,s){s.d(t,{A:function(){return f}});s(4114);var a=s(6768),n=s(5130),o=s(4232);const i={class:"bar-message-text"};function l(e,t,s,l,r,c){return(0,a.uX)(),(0,a.Wv)(n.eB,{name:"bar-message-fade"},{default:(0,a.k6)((()=>[r.visible?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"bar-message",style:(0,o.Tr)(c.positionStyle)},[(0,a.Lk)("div",{class:(0,o.C4)(["bar-message-content",r.customColor?"":r.type]),style:(0,o.Tr)({backgroundColor:r.customColor})},[r.showIcon?((0,a.uX)(),(0,a.CE)("i",{key:0,class:(0,o.C4)(["bar-message-icon",c.iconClass])},null,2)):(0,a.Q3)("",!0),(0,a.Lk)("span",i,(0,o.v_)(r.message),1),r.showClose?((0,a.uX)(),(0,a.CE)("i",{key:1,class:"bar-message-close fas fa-times",onClick:t[0]||(t[0]=(...e)=>c.close&&c.close(...e))})):(0,a.Q3)("",!0)],6)],4)):(0,a.Q3)("",!0)])),_:1})}var r={name:"BarMessage",data(){return{visible:!1,message:"",type:"success",customColor:"",timer:null,duration:3e3,position:"top",showIcon:!0,showClose:!1}},computed:{positionStyle(){return"bottom"===this.position?{top:"auto",bottom:"16px"}:"center"===this.position?{top:"50%",transform:"translate(-50%, -50%)"}:{top:"16px",bottom:"auto"}},iconClass(){switch(this.type){case"success":return"fas fa-check-circle";case"error":return"fas fa-times-circle";case"warning":return"fas fa-exclamation-circle";case"info":return"fas fa-info-circle";default:return"fas fa-bell"}}},methods:{show(e){this.timer&&clearTimeout(this.timer),this.message=e.message||"",this.type=e.type||"success",this.customColor=e.color||"",this.duration=void 0!==e.duration?e.duration:3e3,this.position=e.position||"top",this.showIcon=void 0===e.showIcon||e.showIcon,this.showClose=void 0!==e.showClose&&e.showClose,this.visible=!0,this.duration>0&&(this.timer=setTimeout((()=>{this.close()}),this.duration))},close(){this.visible=!1,this.timer&&(clearTimeout(this.timer),this.timer=null),this.onClose&&this.onClose()}}},c=s(1241);const d=(0,c.A)(r,[["render",l],["__scopeId","data-v-18bdfd8a"]]);var u=d;const h=[];let g=1;const p=function(e){"string"===typeof e&&(e={message:e}),e=e||{};const t="bar_message_"+g++,s=document.createElement("div"),o=e.onClose;e.onClose=()=>{m(t,o)};const i=(0,a.bF)(u,e);(0,n.XX)(i,s),document.body.appendChild(s);const l=i.component.proxy;l.show(e);const r={id:t,vnode:i,vm:l,container:s};return h.push(r),{close:()=>{l.close()}}};function m(e,t){const s=h.findIndex((t=>t.id===e));if(-1===s)return;const{vm:a,container:o}=h[s];a&&("function"===typeof t&&t(),(0,n.XX)(null,o),document.body.removeChild(o),h.splice(s,1))}["success","error","warning","info"].forEach((e=>{p[e]=t=>("string"===typeof t?t={message:t,type:e}:(t=t||{},t.type=e),p(t))})),p.permanent=e=>("string"===typeof e&&(e={message:e}),e=e||{},e.duration=0,e.showClose=!1!==e.showClose,p(e)),p.closeAll=function(){for(let e=h.length-1;e>=0;e--)h[e].vm.close()};var f=p},3825:function(e,t,s){s.d(t,{A:function(){return Le}});var a=s(6768),n=s(4232),o=s(5130);const i={class:"container"},l=["src"],r={key:0},c=["src"],d={class:"burger-container"},u={key:0,class:"unread-dot burger-badge"},h={class:"navbar-end"},g={key:0,class:"navbar-item user-dropdown",style:{padding:"0"}},p={class:"avatar-wrapper"},m=["src","alt"],f={key:0,class:"unread-dot avatar-badge"},v={class:"user-nickname"},k={class:"dropdown-menu"},b={key:0,class:"unread-dot"},y={key:1,class:"navbar-item"},w={key:0,class:"activation-dialog"},C={class:"activation-dialog-content"},L={class:"activation-methods"},_={class:"activation-method"},E={class:"activation-method"},A={class:"activation-method"},I=["disabled"],x={key:1,class:"message-modal"},M={class:"message-modal-content"},X={class:"message-modal-header"},P={class:"message-modal-body",ref:"messageContainer"},S={key:0,class:"no-messages"},j={key:1,class:"message-list"},z={class:"message-header"},F={class:"message-time"},T={key:0,class:"unread-tag"},U=["innerHTML"],D={key:1,class:"message-content"},q=["href"],W={key:1},$={key:2,class:"message-content"},O=["href"],Q={key:1},N={key:3,class:"message-content"},V=["href"],B={key:1},R={key:4,class:"message-content"},J={key:5,class:"message-content"},Y=["href"],Z={key:1},G={key:6,class:"message-content"},H=["href"],K={key:1},ee={key:7,class:"message-content"},te=["href"],se={key:1},ae={key:8,class:"message-content"},ne={style:{"margin-top":"8px"}},oe={key:9,class:"message-content"},ie={style:{display:"inline-block","vertical-align":"middle",margin:"0 4px"}},le={style:{"margin-top":"8px"}},re=["href"],ce={key:10,class:"message-content"},de={key:2,class:"pagination"},ue=["disabled"],he={class:"page-info"},ge=["disabled"];function pe(e,t,s,pe,me,fe){const ve=(0,a.g2)("router-link"),ke=(0,a.g2)("UserMeta");return(0,a.uX)(),(0,a.CE)("nav",{class:(0,n.C4)(["navbar",{"navbar-kaoyan":me.kaoyan}])},[(0,a.Lk)("div",i,[(0,a.Lk)("div",{class:(0,n.C4)(["navbar-brand",me.isYuandan?"navbar-brand-yuandan":""])},[(0,a.bF)(ve,{to:"/",class:"navbar-logo"},{default:(0,a.k6)((()=>[(0,a.Lk)("img",{src:me.kaoyan?"https://download.xn--xhq44jb2fzpc.com/images/logo-ky.png":"https://download.xn--xhq44jb2fzpc.com/images/logo-hd.png",alt:"NEU小站",class:"navbar-logo-img"},null,8,l),me.kaoyan?((0,a.uX)(),(0,a.CE)("span",r,"一战成硕")):((0,a.uX)(),(0,a.CE)("img",{key:1,src:me.isYuandan?"https://download.xn--xhq44jb2fzpc.com/images/head_f.png":fe.isChristmas?"https://download.xn--xhq44jb2fzpc.com/images/sdb_ys.png":"https://download.xn--xhq44jb2fzpc.com/images/head.png",alt:"NEU小站",class:"navbar-title-img",style:(0,n.Tr)(me.isYuandan?{height:"45px",marginBottom:"10px"}:{})},null,12,c)),fe.currentTagConfig?((0,a.uX)(),(0,a.CE)("span",{key:2,style:(0,n.Tr)({backgroundColor:fe.currentTagConfig.backgroundColor}),class:"route-tag"},(0,n.v_)(fe.currentTagConfig.text),5)):(0,a.Q3)("",!0)])),_:1}),(0,a.Lk)("div",d,[(0,a.Lk)("div",{class:(0,n.C4)(["navbar-burger",{"is-active":me.isMenuActive}]),onClick:t[0]||(t[0]=(...e)=>fe.toggleMenu&&fe.toggleMenu(...e))},t[14]||(t[14]=[(0,a.Lk)("span",null,null,-1),(0,a.Lk)("span",null,null,-1),(0,a.Lk)("span",null,null,-1)]),2),me.userInfo&&me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",u)):(0,a.Q3)("",!0)])],2),(0,a.Lk)("div",{class:(0,n.C4)(["navbar-menu",{"is-active":me.isMenuActive}])},[(0,a.Lk)("div",h,[(0,a.bF)(ve,{to:"/strategy",class:"navbar-item"},{default:(0,a.k6)((()=>t[15]||(t[15]=[(0,a.eW)("攻略指南")]))),_:1}),(0,a.bF)(ve,{to:"/resources",class:"navbar-item"},{default:(0,a.k6)((()=>t[16]||(t[16]=[(0,a.eW)("资源共享")]))),_:1}),(0,a.bF)(ve,{to:"/app",class:"navbar-item"},{default:(0,a.k6)((()=>t[17]||(t[17]=[(0,a.eW)(" 应用中心 ")]))),_:1}),(0,a.bF)(ve,{to:"/search",class:"navbar-item"},{default:(0,a.k6)((()=>t[18]||(t[18]=[(0,a.eW)("搜索")]))),_:1}),(0,a.bF)(ve,{to:"/advice",class:"navbar-item"},{default:(0,a.k6)((()=>t[19]||(t[19]=[(0,a.eW)(" 反馈 ")]))),_:1}),(0,a.bF)(ve,{to:"/subscribe",class:"navbar-item"},{default:(0,a.k6)((()=>t[20]||(t[20]=[(0,a.eW)("赞助")]))),_:1}),(0,a.bF)(ve,{to:"/about",class:"navbar-item"},{default:(0,a.k6)((()=>t[21]||(t[21]=[(0,a.eW)("关于")]))),_:1}),me.userInfo?((0,a.uX)(),(0,a.CE)("div",g,[(0,a.Lk)("div",{class:"user-info",onClick:t[1]||(t[1]=(...e)=>fe.toggleDropdown&&fe.toggleDropdown(...e))},[(0,a.Lk)("div",p,[(0,a.Lk)("img",{src:me.userInfo.avatar_path,class:"user-avatar",alt:me.userInfo.nickname},null,8,m),me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",f)):(0,a.Q3)("",!0)]),(0,a.Lk)("span",v,(0,n.v_)(me.userInfo.nickname),1),(0,a.Lk)("span",{class:(0,n.C4)(["dropdown-arrow",{"is-active":me.isDropdownActive}])},"▼",2)]),(0,a.bo)((0,a.Lk)("div",k,[(0,a.Lk)("div",{class:"dropdown-item",onClick:t[2]||(t[2]=(...e)=>fe.handleUserCenter&&fe.handleUserCenter(...e))},"个人中心"),(0,a.Lk)("div",{class:"dropdown-item",onClick:t[3]||(t[3]=(...e)=>fe.handleMessages&&fe.handleMessages(...e))},[t[22]||(t[22]=(0,a.eW)(" 我的消息 ")),me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",b)):(0,a.Q3)("",!0)]),(0,a.Lk)("div",{class:"dropdown-item",onClick:t[4]||(t[4]=(...e)=>fe.handleLogout&&fe.handleLogout(...e))},"退出登录")],512),[[o.aG,me.isDropdownActive]])])):((0,a.uX)(),(0,a.CE)("div",y,[(0,a.Lk)("a",{class:"login-btn",onClick:t[5]||(t[5]=(...e)=>fe.handleLogin&&fe.handleLogin(...e))},"登录")]))])],2)]),me.showActivationDialog?((0,a.uX)(),(0,a.CE)("div",w,[(0,a.Lk)("div",C,[t[29]||(t[29]=(0,a.Lk)("h3",null,"账户激活",-1)),t[30]||(t[30]=(0,a.Lk)("p",null,"您的账户尚未激活,请选择以下一种方式进行激活。如果无法激活,请退出登录后在“关于”页面联系网站管理员。",-1)),(0,a.Lk)("div",L,[(0,a.Lk)("div",_,[t[23]||(t[23]=(0,a.Lk)("h4",null,"方式 1:NEU 校园网验证",-1)),t[24]||(t[24]=(0,a.Lk)("p",null,"请连接 NEU 校园网后点击下面的验证按钮(暂不支持秦皇岛分校)",-1)),(0,a.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>fe.handleNetworkVerify&&fe.handleNetworkVerify(...e)),class:"verify-btn"},"校园网验证")]),(0,a.Lk)("div",E,[t[25]||(t[25]=(0,a.Lk)("h4",null,"方式 2:校园邮箱验证",-1)),t[26]||(t[26]=(0,a.Lk)("p",null,"使用 @stu.neu.edu.cn、@stu.neuq.edu.cn 或 @mails.neu.edu.cn 后缀的校园邮箱验证",-1)),(0,a.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>fe.handleEmailVerify&&fe.handleEmailVerify(...e)),class:"verify-btn"},"邮箱验证")]),(0,a.Lk)("div",A,[t[27]||(t[27]=(0,a.Lk)("h4",null,"方式 3:学生证照片认证",-1)),t[28]||(t[28]=(0,a.Lk)("p",null,[(0,a.eW)("请上传清晰、无遮挡的学生证(校园卡,"),(0,a.Lk)("strong",null,"非火车票学生证"),(0,a.eW)(")个人信息面照片,并清晰露出公章(支持JPG/PNG/WEBP格式,不超过5M)")],-1)),(0,a.Lk)("input",{type:"file",onChange:t[8]||(t[8]=(...e)=>fe.handleFileSelect&&fe.handleFileSelect(...e)),accept:"image/jpeg,image/png,image/webp",ref:"fileInput",style:{display:"none"}},null,544),(0,a.Lk)("button",{onClick:t[9]||(t[9]=(...e)=>fe.triggerFileInput&&fe.triggerFileInput(...e)),class:"verify-btn",disabled:me.isUploading},(0,n.v_)(me.isUploading?"上传认证中...":"上传学生证"),9,I)])]),(0,a.Lk)("button",{onClick:t[10]||(t[10]=(...e)=>fe.handleLogout&&fe.handleLogout(...e)),class:"close-btn"},"退出登录")])])):(0,a.Q3)("",!0),me.showMessageModal?((0,a.uX)(),(0,a.CE)("div",x,[(0,a.Lk)("div",M,[(0,a.Lk)("div",X,[t[31]||(t[31]=(0,a.Lk)("h3",null,"我的消息",-1)),(0,a.Lk)("span",{class:"close-icon",onClick:t[11]||(t[11]=(...e)=>fe.closeMessageModal&&fe.closeMessageModal(...e))},"×")]),(0,a.Lk)("div",P,[0===me.messages.length?((0,a.uX)(),(0,a.CE)("div",S," 暂无消息 ")):((0,a.uX)(),(0,a.CE)("div",j,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(me.messages,(e=>((0,a.uX)(),(0,a.CE)("div",{key:e.id,class:"message-item"},[(0,a.Lk)("div",z,[(0,a.Lk)("span",F,(0,n.v_)(fe.formatDate(e.created_at)),1),e.status?(0,a.Q3)("",!0):((0,a.uX)(),(0,a.CE)("span",T,"未读"))]),0===e.type?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"message-content",style:{"white-space":"pre-wrap"},innerHTML:e.content},null,8,U)):1===e.type?((0,a.uX)(),(0,a.CE)("div",D,[t[32]||(t[32]=(0,a.eW)(" 您在《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,q)):((0,a.uX)(),(0,a.CE)("span",W,(0,n.v_)(e.article_title),1)),(0,a.eW)("》内容下的「"+(0,n.v_)(e.original_content)+"」评论被回复:「"+(0,n.v_)(e.reply_content)+"」 ",1)])):2===e.type?((0,a.uX)(),(0,a.CE)("div",$,[t[33]||(t[33]=(0,a.eW)(" 您的投稿《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.title),9,O)):((0,a.uX)(),(0,a.CE)("span",Q,(0,n.v_)(e.title),1)),(0,a.eW)("》审核"+(0,n.v_)(e.pass?"已通过":"未通过")+(0,n.v_)(e.note?",审核备注:"+e.note:""),1)])):3===e.type?((0,a.uX)(),(0,a.CE)("div",N,[t[34]||(t[34]=(0,a.eW)(' 您添加的课程"')),e.course_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://course.xn--xhq44jb2fzpc.com/courses?c="+fe.encodeBase64(e.course_id),target:"_blank"},(0,n.v_)(e.course_name),9,V)):((0,a.uX)(),(0,a.CE)("span",B,(0,n.v_)(e.course_name),1)),(0,a.eW)('"审核'+(0,n.v_)(e.course_status),1)])):4===e.type?((0,a.uX)(),(0,a.CE)("div",R," 您的密钥「"+(0,n.v_)(e.key_plaintext)+"」使用次数已用尽,继续投稿可获得新的密钥。 ",1)):5===e.type?((0,a.uX)(),(0,a.CE)("div",J,[t[35]||(t[35]=(0,a.eW)(" 您在《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,Y)):((0,a.uX)(),(0,a.CE)("span",Z,(0,n.v_)(e.article_title),1)),(0,a.eW)("》内容下的「"+(0,n.v_)(e.content)+"」评论被点赞。 ",1)])):6===e.type?((0,a.uX)(),(0,a.CE)("div",G,[t[36]||(t[36]=(0,a.eW)(" 您的内容《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,H)):((0,a.uX)(),(0,a.CE)("span",K,(0,n.v_)(e.article_title),1)),(0,a.eW)("》收到新评论:「"+(0,n.v_)(e.comment_content)+"」 ",1)])):7===e.type?((0,a.uX)(),(0,a.CE)("div",ee,[t[37]||(t[37]=(0,a.eW)(" 恭喜您的内容《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,te)):((0,a.uX)(),(0,a.CE)("span",se,(0,n.v_)(e.article_title),1)),(0,a.eW)("》浏览量达到"+(0,n.v_)(e.view_count)+",感谢您为NEU小站贡献优质内容,小站因为有你而更加精彩~ ",1)])):8===e.type?((0,a.uX)(),(0,a.CE)("div",ae,[t[38]||(t[38]=(0,a.Lk)("div",null,"您有一个新粉丝:",-1)),(0,a.Lk)("div",ne,[(0,a.bF)(ke,{id:e.follower_id},null,8,["id"])])])):9===e.type?((0,a.uX)(),(0,a.CE)("div",oe,[(0,a.Lk)("div",null,[t[39]||(t[39]=(0,a.eW)("您关注的用户")),(0,a.Lk)("span",ie,[(0,a.bF)(ke,{id:e.author_id},null,8,["id"])]),t[40]||(t[40]=(0,a.eW)("有新的投稿内容:"))]),(0,a.Lk)("div",le,[t[41]||(t[41]=(0,a.eW)(" 《")),(0,a.Lk)("a",{href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,re),t[42]||(t[42]=(0,a.eW)("》 "))])])):((0,a.uX)(),(0,a.CE)("div",ce,(0,n.v_)(e.error||"未知消息类型"),1))])))),128))])),me.totalPages>1?((0,a.uX)(),(0,a.CE)("div",de,[(0,a.Lk)("button",{disabled:1===me.currentPage,onClick:t[12]||(t[12]=e=>fe.loadMessages(me.currentPage-1)),class:"page-btn"},"上一页",8,ue),(0,a.Lk)("span",he,(0,n.v_)(me.currentPage)+" / "+(0,n.v_)(me.totalPages),1),(0,a.Lk)("button",{disabled:me.currentPage===me.totalPages,onClick:t[13]||(t[13]=e=>fe.loadMessages(me.currentPage+1)),class:"page-btn"},"下一页",8,ge)])):(0,a.Q3)("",!0)],512)])])):(0,a.Q3)("",!0)],2)}s(4114),s(8111),s(116),s(3579),s(4979);var me=s(8704),fe=s(4373),ve=s(4993),ke=s(8630),be=s(4888),ye={name:"NavBar",components:{UserMeta:be.A},data(){return{kaoyan:!1,isYuandan:!0,isMenuActive:!1,isDropdownActive:!1,userInfo:null,showActivationDialog:!1,isActivated:!1,isUploading:!1,showMessageModal:!1,messages:[],loading:!1,currentPage:1,totalPages:1,pageSize:10,tagConfigurations:[{text:"应用",backgroundColor:"#ff8c00",routes:["/app","/app/"],wildcard:!1},{text:"工具",backgroundColor:"#3273dc",routes:["/widgets"],wildcard:!0}]}},computed:{isChristmas(){const e=new Date,t=new Date("2025-12-26T00:00:00");return e!!t.routes.includes(e)||!!t.wildcard&&t.routes.some((t=>e===t||e.startsWith(t+"/")))))||null}},mounted(){this.checkLoginStatus()},methods:{handleLogin(){(0,ke.A)().then((e=>{console.log(e),this.checkLoginStatus()})).catch((e=>{console.log(e)}))},toggleMenu(){this.isMenuActive=!this.isMenuActive},toggleDropdown(){this.isDropdownActive=!this.isDropdownActive},handleUserCenter(){this.isDropdownActive=!1,this.$router.push("/user-center")},handleLogout(){const e=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");me.A.remove("token",{domain:e,path:"/"}),this.userInfo=null,window.location.reload()},checkLoginStatus(){const e=me.A.get("token");e&&fe.A.get("https://newfront.xn--xhq44jb2fzpc.com/user/info",{headers:{Authorization:e}}).then((e=>{this.userInfo=e.data,e.data.banned?(this.$barMessage({message:"您的账户已被封禁,请联系网站管理员",type:"error"}),ve.A.alert('您的账户已被封禁,如有疑问请在"关于"页面联系网站管理员。',"账户状态异常",{confirmText:"退出登录",cancel:!1}).then((()=>{this.handleLogout()})).catch((()=>{this.handleLogout()}))):(this.isActivated=e.data.activated,this.isActivated||(this.showActivationDialog=!0))})).catch((e=>{console.log(e),this.userInfo=null}))},closeActivationDialog(){this.showActivationDialog=!1},handleNetworkVerify(){const e=me.A.get("token");e?fe.A.get("https://userlogin.xn--xhq44jb2fzpc.com/qv",{headers:{Authorization:e}}).then((e=>{ve.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((e=>{e.response&&e.response.data?ve.A.alert(`${e.response.data.message} 当前IP: ${e.response.data.ip||"未知"}`,"提示"):ve.A.alert("验证失败,请稍后重试","提示")})):ve.A.alert("您未登录,请先登录后操作!","提示")},handleEmailVerify(){const e=me.A.get("token");e?fe.A.get("https://userlogin.xn--xhq44jb2fzpc.com/check-email",{headers:{Authorization:e}}).then((e=>{ve.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((t=>{t.response&&403===t.response.status?this.promptForCampusEmail(e):t.response&&t.response.data?ve.A.alert(t.response.data.message||"发生未知错误,请稍后重试","提示"):ve.A.alert("验证失败,请稍后重试","提示")})):ve.A.alert("您未登录,请先登录后操作!","提示")},promptForCampusEmail(e){(0,ve.A)({title:"校园邮箱验证",message:"请输入您的校园邮箱:",showInput:!0,inputPlaceholder:"请输入校园邮箱",confirmText:"确认",cancelText:"取消",cancel:!0}).then((({value:t})=>{t?t.endsWith("@stu.neu.edu.cn")||t.endsWith("@stu.neuq.edu.cn")||t.endsWith("@mails.neu.edu.cn")?this.sendCampusVerificationEmail(t,e):ve.A.alert("请输入有效的 @stu.neu.edu.cn、@stu.neuq.edu.cn 或 @mails.neu.edu.cn 校园邮箱!","提示"):ve.A.alert("邮箱不能为空","提示")})).catch((()=>{}))},sendCampusVerificationEmail(e,t){fe.A.post("https://userlogin.xn--xhq44jb2fzpc.com/send-campus-verify",{campus_email:e},{headers:{Authorization:t,"Content-Type":"application/json"}}).then((t=>{ve.A.alert(`验证邮件已发送至 ${e},请检查您的邮箱完成验证。`,"提示")})).catch((e=>{e.response&&e.response.data?ve.A.alert(`发送验证邮件失败:${e.response.data.message}`,"提示"):ve.A.alert("发送验证邮件失败,请稍后重试","提示")}))},handleMessages(){this.isDropdownActive=!1,this.showMessageModal=!0,this.loadMessages(1)},closeMessageModal(){this.showMessageModal=!1,this.checkLoginStatus()},loadMessages(e){this.currentPage=e,fe.A.get("https://newfront.xn--xhq44jb2fzpc.com/message/get",{headers:{Authorization:me.A.get("token")},params:{page:e}}).then((e=>{this.messages=e.data.messages,this.totalPages=e.data.totalPages,this.pageSize=e.data.pageSize})).catch((e=>{console.error("获取消息失败:",e),ve.A.alert("获取消息失败,请稍后再试。","错误")}))},formatDate(e){const t=new Date(e);return t.toLocaleDateString()+" "+t.toLocaleTimeString()},encodeBase64(e){return window.btoa(e)},triggerFileInput(){this.$refs.fileInput.click()},async handleFileSelect(e){const t=e.target.files[0];if(!t)return;const s=["image/jpeg","image/png","image/webp"];if(!s.includes(t.type))return void ve.A.alert("不支持的文件格式,请上传 JPG, PNG, 或 WEBP 图片。","格式错误");const a=5242880;if(t.size>a)ve.A.alert("文件大小不能超过 5MB。","文件过大");else{this.isUploading=!0;try{const e=me.A.get("token");if(!e)return ve.A.alert("您未登录,请先登录后操作!","提示"),void(this.isUploading=!1);const s=await fe.A.post("https://newfront.xn--xhq44jb2fzpc.com/freshman/validate_card/get-upload-url",{filename:t.name},{headers:{Authorization:e}}),{uploadUrl:a,objectPath:n}=s.data;await fe.A.put(a,t,{headers:{"Content-Type":t.type}});await fe.A.post("https://newfront.xn--xhq44jb2fzpc.com/freshman/validate_card/verify",{objectPath:n},{headers:{Authorization:e}});ve.A.alert("学生证认证成功!","激活成功"),this.isActivated=!0,this.showActivationDialog=!1,this.checkLoginStatus()}catch(n){let e="操作失败,请稍后重试。";n.response&&n.response.data&&n.response.data.message&&(e=n.response.data.message),ve.A.alert(e,"错误")}finally{this.isUploading=!1,this.$refs.fileInput.value=""}}}}},we=s(1241);const Ce=(0,we.A)(ye,[["render",pe],["__scopeId","data-v-62ca13b8"]]);var Le=Ce},4888:function(e,t,s){s.d(t,{A:function(){return K}});var a=s(6768),n=s(4232),o=s(5130);const i={class:"user-meta"},l={class:"avatar-wrapper"},r=["src"],c={key:0,class:"avatar-loading"},d={key:0,src:"https://download.xn--xhq44jb2fzpc.com/images/vip_g3.svg",class:"vip-badge",alt:"VIP",title:"VIP用户"},u={class:"user-badges"},h=["title"],g=["title"],p={key:2,class:"badge medal"},m={class:"card-container"},f={class:"detail-header"},v=["src"],k={class:"detail-right"},b={key:0,src:"https://download.xn--xhq44jb2fzpc.com/images/vip_g3.svg",class:"vip-badge",alt:"VIP",title:"VIP用户"},y={class:"user-badges"},w=["title"],C=["title"],L={key:2,class:"badge medal"},_={key:0,class:"user-sign"},E={class:"sign-text"},A={class:"user-stats"},I={class:"stat-item"},x={class:"stat-value"},M={class:"stat-item"},X={class:"stat-value"},P={key:1,class:"user-submissions"},S={class:"submission-header"},j={key:0,class:"pagination-controls"},z=["disabled"],F={class:"page-info"},T=["disabled"],U={class:"submission-list"},D=["onClick"],q={class:"submission-title"},W={class:"submission-tags"},$={key:0,class:"tag official"},O={key:1,class:"tag highlight"},Q={key:2,class:"tag top"},N={class:"card-footer"};function V(e,t,s,V,B,R){return(0,a.uX)(),(0,a.CE)("div",i,[(0,a.Lk)("div",{class:"user-basic",ref:"userBasic",onMouseenter:t[0]||(t[0]=(...e)=>R.handleMouseEnter&&R.handleMouseEnter(...e))},[(0,a.Lk)("div",l,[(0,a.Lk)("img",{src:B.userInfo.avatarUrl,alt:"用户头像",class:"avatar"},null,8,r),B.loading?((0,a.uX)(),(0,a.CE)("div",c,t[6]||(t[6]=[(0,a.Lk)("div",{class:"loading-spinner"},null,-1)]))):(0,a.Q3)("",!0)]),(0,a.Lk)("div",{class:(0,n.C4)(["user-name",{"colorful-name":B.userInfo.color_name}])},[(0,a.eW)((0,n.v_)(B.userInfo.nickname)+" ",1),B.userInfo.is_vip?((0,a.uX)(),(0,a.CE)("img",d)):(0,a.Q3)("",!0)],2),(0,a.Lk)("div",u,[B.userInfo.verified?((0,a.uX)(),(0,a.CE)("span",{key:0,class:"badge verified",title:B.userInfo.verified},"认证",8,h)):(0,a.Q3)("",!0),B.userInfo.invited?((0,a.uX)(),(0,a.CE)("span",{key:1,class:"badge invited",title:B.userInfo.invited},"特邀",8,g)):(0,a.Q3)("",!0),1===B.userInfo.medal?((0,a.uX)(),(0,a.CE)("span",p,"小站奖章")):(0,a.Q3)("",!0)])],544),((0,a.uX)(),(0,a.Wv)(a.Im,{to:"body"},[(0,a.bF)(o.eB,{name:"detail-fade"},{default:(0,a.k6)((()=>[B.showDetail?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"user-detail",ref:"userDetail",style:(0,n.Tr)(B.popupStyle),onMouseenter:t[4]||(t[4]=e=>B.showDetail=!0),onMouseleave:t[5]||(t[5]=e=>B.showDetail=!1)},[(0,a.Lk)("div",m,[(0,a.Lk)("div",f,[t[7]||(t[7]=(0,a.Lk)("div",{class:"header-bg"},null,-1)),(0,a.Lk)("img",{src:B.userInfo.avatarUrl,alt:"用户头像",class:"detail-avatar"},null,8,v),(0,a.Lk)("div",k,[(0,a.Lk)("div",{class:(0,n.C4)(["detail-name",{"colorful-name":B.userInfo.color_name}])},[(0,a.eW)((0,n.v_)(B.userInfo.nickname)+" ",1),B.userInfo.is_vip?((0,a.uX)(),(0,a.CE)("img",b)):(0,a.Q3)("",!0)],2),(0,a.Lk)("div",y,[B.userInfo.verified?((0,a.uX)(),(0,a.CE)("span",{key:0,class:"badge verified",title:B.userInfo.verified},"认证",8,w)):(0,a.Q3)("",!0),B.userInfo.invited?((0,a.uX)(),(0,a.CE)("span",{key:1,class:"badge invited",title:B.userInfo.invited},"特邀",8,C)):(0,a.Q3)("",!0),1===B.userInfo.medal?((0,a.uX)(),(0,a.CE)("span",L,"小站奖章")):(0,a.Q3)("",!0)])])]),B.userInfo.sign?((0,a.uX)(),(0,a.CE)("div",_,[t[8]||(t[8]=(0,a.Lk)("div",{class:"sign-icon"},"✍️",-1)),(0,a.Lk)("div",E,(0,n.v_)(B.userInfo.sign),1)])):(0,a.Q3)("",!0),(0,a.Lk)("div",A,[(0,a.Lk)("div",I,[(0,a.Lk)("div",x,(0,n.v_)(B.userInfo.follower),1),t[9]||(t[9]=(0,a.Lk)("div",{class:"stat-label"},"粉丝",-1))]),t[11]||(t[11]=(0,a.Lk)("div",{class:"stat-separator"},null,-1)),(0,a.Lk)("div",M,[(0,a.Lk)("div",X,(0,n.v_)(B.userInfo.following),1),t[10]||(t[10]=(0,a.Lk)("div",{class:"stat-label"},"关注",-1))])]),B.submissions.length>0?((0,a.uX)(),(0,a.CE)("div",P,[(0,a.Lk)("div",S,[t[12]||(t[12]=(0,a.Lk)("span",null,"TA的投稿",-1)),B.totalPages>1?((0,a.uX)(),(0,a.CE)("div",j,[(0,a.Lk)("button",{class:"page-btn",disabled:1===B.currentPage,onClick:t[1]||(t[1]=(0,o.D$)((e=>R.changePage(B.currentPage-1)),["stop"]))}," < ",8,z),(0,a.Lk)("span",F,(0,n.v_)(B.currentPage)+"/"+(0,n.v_)(B.totalPages),1),(0,a.Lk)("button",{class:"page-btn",disabled:B.currentPage===B.totalPages,onClick:t[2]||(t[2]=(0,o.D$)((e=>R.changePage(B.currentPage+1)),["stop"]))}," > ",8,T)])):(0,a.Q3)("",!0)]),(0,a.Lk)("div",U,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(B.submissions,(e=>((0,a.uX)(),(0,a.CE)("div",{key:e.id,class:"submission-item",onClick:t=>R.handleArticleClick(e.id)},[(0,a.Lk)("div",q,(0,n.v_)(e.title),1),(0,a.Lk)("div",W,[e.official?((0,a.uX)(),(0,a.CE)("span",$,"官方")):(0,a.Q3)("",!0),e.highlight?((0,a.uX)(),(0,a.CE)("span",O,"优质")):(0,a.Q3)("",!0),e.top?((0,a.uX)(),(0,a.CE)("span",Q,"置顶")):(0,a.Q3)("",!0)])],8,D)))),128))])])):(0,a.Q3)("",!0),(0,a.Lk)("div",N,[s.showFollow?((0,a.uX)(),(0,a.CE)("button",{key:0,class:(0,n.C4)(["follow-btn",{followed:B.isFollowing,"disabled-look":!B.isLoggedIn}]),onClick:t[3]||(t[3]=(...e)=>R.handleFollow&&R.handleFollow(...e))},(0,n.v_)(B.isFollowing?"取消关注":"+ 关注"),3)):(0,a.Q3)("",!0)])])],36)):(0,a.Q3)("",!0)])),_:1})]))])}var B=s(4373),R=s(4993),J=s(8704);let Y=null;var Z={name:"UserMeta",props:{id:{type:[String,Number],required:!0},showFollow:{type:Boolean,default:!0}},data(){return{userInfo:{nickname:"默认昵称",verified:null,invited:null,medal:0,avatarUrl:"https://download.东北大学.com/avatar/default.png",follower:0,following:0,sign:"这个人很懒,还没有写个性签名~",color_name:!1},submissions:[],currentPage:1,totalPages:1,total:0,showDetail:!1,loading:!1,error:null,isFollowing:!1,isLoggedIn:!1,popupStyle:{}}},created(){this.showFollow&&this.checkLoginStatus(),this.fetchUserInfo(),this.fetchUserSubmissions(),this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()},mounted(){document.addEventListener("click",this.handleClickOutside)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside),Y===this&&(Y=null)},watch:{id(){this.fetchUserInfo(),this.fetchUserSubmissions(),this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()},showDetail(e){e?(Y&&Y!==this&&(Y.showDetail=!1),Y=this,this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()):Y===this&&(Y=null)}},methods:{handleMouseEnter(){this.updatePopupPosition(),this.showDetail=!0},updatePopupPosition(){const e=this.$refs.userBasic;if(!e)return;const t=e.getBoundingClientRect();this.popupStyle={top:t.bottom+window.scrollY+8+"px",left:t.left+window.scrollX+"px",position:"absolute",zIndex:9999}},checkLoginStatus(){const e=J.A.get("token");this.isLoggedIn=!!e},async checkFollowStatus(){if(!this.isLoggedIn)return;const e=J.A.get("token");try{const t=await B.A.post("https://newfront.xn--xhq44jb2fzpc.com/user/follow/status",{user_id:this.id},{headers:{Authorization:e}});this.isFollowing=t.data.is_following}catch(t){console.error("检查关注状态失败:",t)}},async fetchUserInfo(){this.loading=!0;try{const e=await B.A.get(`https://userlogin.xn--xhq44jb2fzpc.com/submission/get-author-info?id=${this.id}`);this.userInfo={...e.data,follower:e.data.follower||0,following:e.data.following||0,sign:e.data.sign||"这个人很懒,还没有写个性签名~",color_name:e.data.color_name||!1}}catch(e){this.error="获取用户信息失败",console.error("获取用户信息失败:",e)}finally{this.loading=!1}},async fetchUserSubmissions(e=1){try{const t=await B.A.get(`https://userlogin.xn--xhq44jb2fzpc.com/submission/get-author-submissions?id=${this.id}&page=${e}`);t.data?(this.submissions=t.data.list||[],this.total=t.data.total||0,this.currentPage=t.data.page||1,this.totalPages=Math.ceil(this.total/5)):(this.submissions=[],this.total=0,this.totalPages=0)}catch(t){console.error("获取用户投稿失败:",t),this.submissions=[],this.total=0,this.totalPages=0}},changePage(e){e<1||e>this.totalPages||this.fetchUserSubmissions(e)},handleClickOutside(e){const t=this.$el,s=this.$refs.userDetail;if(this.showDetail){const a=t.contains(e.target),n=s&&s.contains(e.target);a||n||(this.showDetail=!1)}},handleFollow(){if(!this.isLoggedIn)return void R.A.alert("请先登录后再关注用户!","提示");const e=J.A.get("token");if(!e)return this.isLoggedIn=!1,void R.A.alert("登录已过期,请重新登录!","提示");const t=this.isFollowing?"取消关注":"关注",s=async()=>{try{const s=await B.A.post("https://newfront.xn--xhq44jb2fzpc.com/user/follow/do",{user_id:this.id},{headers:{Authorization:e}});this.isFollowing=s.data.is_following,this.fetchUserInfo(),this.$barMessage.success(`${t}成功`)}catch(s){console.error(`${t}失败:`,s),s.response&&s.response.data&&s.response.data.message?this.$barMessage.error(s.response.data.message):R.A.alert("操作失败,请稍后重试","错误")}};this.isFollowing?R.A.confirm("确定取消关注该用户吗?","确认操作").then(s).catch((()=>{})):s()},handleArticleClick(e){window.location.href=`/article/${e}`}}},G=s(1241);const H=(0,G.A)(Z,[["render",V],["__scopeId","data-v-243b974f"]]);var K=H},4993:function(e,t,s){s.d(t,{A:function(){return k}});var a=s(5130),n=s(6768),o=s(4232);const i={class:"message-box"},l={key:0,class:"message-header"},r={class:"message-content"},c={key:0,class:"input-wrapper"},d=["type","placeholder"],u={class:"message-footer"};function h(e,t,s,h,g,p){return(0,n.uX)(),(0,n.Wv)(a.eB,{name:"message-fade"},{default:(0,n.k6)((()=>[s.visible?((0,n.uX)(),(0,n.CE)("div",{key:0,class:"message-overlay",onClick:t[4]||(t[4]=(0,a.D$)(((...e)=>p.handleOverlayClick&&p.handleOverlayClick(...e)),["self"]))},[(0,n.Lk)("div",i,[s.title?((0,n.uX)(),(0,n.CE)("div",l,[(0,n.Lk)("h3",null,(0,o.v_)(s.title),1)])):(0,n.Q3)("",!0),(0,n.Lk)("div",r,[(0,n.Lk)("p",null,(0,o.v_)(s.message),1),s.showInput?((0,n.uX)(),(0,n.CE)("div",c,[(0,n.bo)((0,n.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>g.localInputValue=e),type:s.inputType,placeholder:s.inputPlaceholder,class:"message-input",onKeyup:t[1]||(t[1]=(0,a.jR)(((...e)=>p.handleConfirm&&p.handleConfirm(...e)),["enter"]))},null,40,d),[[a.hp,g.localInputValue]])])):(0,n.Q3)("",!0)]),(0,n.Lk)("div",u,[p.cancelVisible?((0,n.uX)(),(0,n.CE)("button",{key:0,class:"btn btn-cancel",onClick:t[2]||(t[2]=(...e)=>p.handleCancel&&p.handleCancel(...e))},(0,o.v_)(s.cancelText),1)):(0,n.Q3)("",!0),p.confirmVisible?((0,n.uX)(),(0,n.CE)("button",{key:1,class:"btn btn-confirm",onClick:t[3]||(t[3]=(...e)=>p.handleConfirm&&p.handleConfirm(...e))},(0,o.v_)(s.confirmText),1)):(0,n.Q3)("",!0)])])])):(0,n.Q3)("",!0)])),_:1})}var g={name:"MessageBox",props:{visible:{type:Boolean,default:!1},title:{type:String,default:""},message:{type:String,required:!0},confirm:{type:Boolean,default:!0},cancel:{type:Boolean,default:!1},confirmText:{type:String,default:"确定"},cancelText:{type:String,default:"取消"},closeOnClickOverlay:{type:Boolean,default:!1},showInput:{type:Boolean,default:!1},inputType:{type:String,default:"text"},inputValue:{type:String,default:""},inputPlaceholder:{type:String,default:"请输入"}},data(){return{localInputValue:""}},watch:{inputValue:{immediate:!0,handler(e){this.localInputValue=e}}},computed:{confirmVisible(){return this.confirm},cancelVisible(){return this.cancel}},methods:{handleConfirm(){this.$emit("confirm",this.localInputValue)},handleCancel(){this.$emit("cancel")},handleOverlayClick(){this.closeOnClickOverlay&&this.$emit("cancel")}}},p=s(1241);const m=(0,p.A)(g,[["render",h],["__scopeId","data-v-076938bc"]]);var f=m;const v=(e={})=>new Promise(((t,s)=>{const n=document.createElement("div");document.body.appendChild(n);const o=(0,a.Ef)(f,{...e,visible:!0,confirm:!1!==e.confirm,cancel:!0===e.cancel,onConfirm:e=>{o.unmount(),document.body.removeChild(n),t({value:e,action:"confirm"})},onCancel:()=>{o.unmount(),document.body.removeChild(n),s({action:"cancel"})}});o.mount(n)}));v.alert=(e,t="",s={})=>v({title:t,message:e,confirm:!0,cancel:!1,...s}),v.confirm=(e,t="",s={})=>v({title:t,message:e,confirm:!0,cancel:!0,...s}),v.prompt=(e,t="",s={})=>v({title:t,message:e,showInput:!0,confirm:!0,cancel:!0,...s});var k=v},8630:function(e,t,s){s.d(t,{A:function(){return x}});var a=s(5130),n=s(6768),o=s(4232);const i={key:0,class:"login-container"},l={class:"login-box"},r={class:"login-header"},c={class:"form-group"},d={class:"form-group"},u={class:"button-group"},h={class:"modal-content"},g={class:"modal-header"},p={class:"modal-body"},m={class:"captcha-instruction"},f={class:"form-group"},v={class:"modal-footer"},k={key:0,class:"loading-overlay"};function b(e,t,s,b,y,w){return s.visible?((0,n.uX)(),(0,n.CE)("div",i,[t[13]||(t[13]=(0,n.Lk)("div",{class:"login-overlay"},null,-1)),(0,n.Lk)("div",l,[(0,n.Lk)("div",r,[t[8]||(t[8]=(0,n.Lk)("h2",{class:"login-title"},"登录/注册",-1)),s.showClose?((0,n.uX)(),(0,n.CE)("button",{key:0,onClick:t[0]||(t[0]=(...e)=>w.handleClose&&w.handleClose(...e)),class:"close-btn"},"×")):(0,n.Q3)("",!0)]),(0,n.Lk)("form",{onSubmit:t[4]||(t[4]=(0,a.D$)(((...e)=>w.handleSubmit&&w.handleSubmit(...e)),["prevent"])),class:"login-form"},[(0,n.Lk)("div",c,[t[9]||(t[9]=(0,n.Lk)("label",{for:"email"},"邮箱",-1)),(0,n.bo)((0,n.Lk)("input",{type:"email",id:"email","onUpdate:modelValue":t[1]||(t[1]=e=>y.email=e),placeholder:"请输入邮箱地址",required:"",class:"form-input",pattern:"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$",title:"请输入有效的邮箱地址"},null,512),[[a.Jo,y.email]])]),(0,n.Lk)("div",d,[t[10]||(t[10]=(0,n.Lk)("label",{for:"password"},"密码",-1)),(0,n.bo)((0,n.Lk)("input",{type:"password",id:"password","onUpdate:modelValue":t[2]||(t[2]=e=>y.password=e),placeholder:"请输入密码",required:"",class:"form-input"},null,512),[[a.Jo,y.password]])]),y.message?((0,n.uX)(),(0,n.CE)("div",{key:0,class:(0,o.C4)(["message",{error:y.messageIsError,success:!y.messageIsError}])},(0,o.v_)(y.message),3)):(0,n.Q3)("",!0),(0,n.Lk)("div",u,[(0,n.Lk)("button",{type:"button",onClick:t[3]||(t[3]=(...e)=>w.login&&w.login(...e)),class:"btn btn-primary"},"登录/注册")])],32)]),(0,n.Lk)("div",{class:(0,o.C4)(["modal",{show:y.showCaptchaModal}])},[(0,n.Lk)("div",h,[(0,n.Lk)("div",g,[t[11]||(t[11]=(0,n.Lk)("h3",null,"邮箱验证",-1)),(0,n.Lk)("button",{onClick:t[5]||(t[5]=(...e)=>w.closeCaptchaModal&&w.closeCaptchaModal(...e)),class:"close-btn"},"×")]),(0,n.Lk)("div",p,[(0,n.Lk)("p",m,(0,o.v_)(y.captchaInstruction),1),(0,n.Lk)("div",f,[(0,n.bo)((0,n.Lk)("input",{type:"text","onUpdate:modelValue":t[6]||(t[6]=e=>y.captchaCode=e),placeholder:"请输入验证码",class:"form-input"},null,512),[[a.Jo,y.captchaCode]])]),y.captchaMessage?((0,n.uX)(),(0,n.CE)("div",{key:0,class:(0,o.C4)(["captcha-message",{error:y.captchaMessageIsError,success:!y.captchaMessageIsError}])},(0,o.v_)(y.captchaMessage),3)):(0,n.Q3)("",!0)]),(0,n.Lk)("div",v,[(0,n.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>w.verifyCaptcha&&w.verifyCaptcha(...e)),class:"btn btn-primary"},"验证")])])],2),y.loading?((0,n.uX)(),(0,n.CE)("div",k,[t[12]||(t[12]=(0,n.Lk)("div",{class:"spinner"},null,-1)),(0,n.Lk)("p",null,(0,o.v_)(y.loadingMessage),1)])):(0,n.Q3)("",!0)])):(0,n.Q3)("",!0)}var y=s(4993),w=s(235),C=s.n(w),L={name:"Login",props:{visible:{type:Boolean,default:!0},showClose:{type:Boolean,default:!1},onSuccess:{type:Function,default:null},onClose:{type:Function,default:null}},data(){return{email:"",password:"",message:"",messageIsError:!0,loading:!1,loadingMessage:"加载中...",showCaptchaModal:!1,captchaCode:"",captchaMessage:"",captchaMessageIsError:!0,captchaInstruction:"验证码已发送至您的邮箱,请在下方输入"}},methods:{detectDevice(){try{const e=C().getParser(window.navigator.userAgent),t=e.getOS(),s=e.getBrowser();let a=t.name||"Unknown";return t.version&&(a+=` ${t.version}`),s.name&&(a+=` / ${s.name}`,s.version&&(a+=` ${s.version}`)),a}catch(e){return console.error("Device detection failed:",e),"Unknown"}},async handleSubmit(){await this.login()},handleClose(){this.onClose?this.onClose():this.$emit("close")},async login(){if(!this.email||!this.password)return this.message="请输入邮箱和密码",void(this.messageIsError=!0);const e=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if(!e.test(this.email))return this.message="请输入有效的邮箱地址",void(this.messageIsError=!0);this.loading=!0,this.loadingMessage="登录中...";try{const e=await this.loginOrRegister(this.email,this.password,"login");"Login successful."===e.message?this.handleLoginSuccess(e):"User not registered."===e.message?(this.loading=!1,(0,y.A)({title:"邮箱未注册",message:'此邮箱没有注册。点击"发送"按钮将向您的邮箱发送注册验证码。',confirmText:"发送",cancelText:"取消",cancel:!0,closeOnClickOverlay:!0}).then((async()=>{await this.sendRegisterCode()})).catch((()=>{}))):"Invalid email or password."===e.message?(this.message="密码错误。",this.messageIsError=!0,this.loading=!1):(this.message=e.message||"登录失败,请重试。",this.messageIsError=!0,this.loading=!1)}catch(t){console.error("Error:",t),this.message="发生错误,请稍后重试。",this.messageIsError=!0,this.loading=!1}},async register(){if(!this.email||!this.password)return this.message="请输入邮箱和密码",void(this.messageIsError=!0);const e=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if(!e.test(this.email))return this.message="请输入有效的邮箱地址",void(this.messageIsError=!0);await this.sendRegisterCode()},async sendRegisterCode(){this.loading=!0,this.loadingMessage="发送验证码中...";try{const e=await this.loginOrRegister(this.email,this.password,"register");"Verification email sent."===e.message?(this.captchaInstruction="验证码已发送至您的邮箱,请在下方输入",this.captchaMessage="",this.captchaCode="",this.showCaptchaModal=!0):"A valid code has already been sent. Please try again later."===e.message?(this.captchaInstruction="您还有未验证的验证码,请查看邮箱并在下方输入",this.captchaMessage="",this.captchaCode="",this.showCaptchaModal=!0):"Email is already registered."===e.message?(this.message="此邮箱已注册。",this.messageIsError=!0):(this.message="发送验证码失败,请稍后重试。",this.messageIsError=!0),this.loading=!1}catch(e){console.error("Error:",e),this.message="发生错误,请稍后重试。",this.messageIsError=!0,this.loading=!1}},async verifyCaptcha(){if(!this.captchaCode)return this.captchaMessage="请输入验证码",void(this.captchaMessageIsError=!0);try{const e=await this.verifyRegisterCode(this.email,this.captchaCode);"User registered successfully."===e.message?(this.captchaMessage="验证成功!",this.captchaMessageIsError=!1,setTimeout((()=>{this.closeCaptchaModal(),this.handleSuccessfulRegistration()}),1500)):(this.captchaMessage="您的验证码不正确",this.captchaMessageIsError=!0)}catch(e){console.error("Error:",e),this.captchaMessage="验证过程中发生错误,请重试",this.captchaMessageIsError=!0}},closeCaptchaModal(){this.showCaptchaModal=!1,this.captchaCode="",this.captchaMessage=""},async handleSuccessfulRegistration(){this.message="注册成功!正在登录...",this.messageIsError=!1,this.loading=!0,this.loadingMessage="登录中...",await this.delay(1e3);try{const e=await this.loginOrRegister(this.email,this.password,"login");"Login successful."===e.message?this.handleLoginSuccess(e):(this.message="注册成功,但自动登录失败,请手动登录。",this.messageIsError=!0,this.loading=!1)}catch(e){console.error("Error during login after registration:",e),this.message="注册成功,但自动登录失败,请手动登录。",this.messageIsError=!0,this.loading=!1}},handleLoginSuccess(e){const t=e.token,s=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");document.cookie=`token=${t}; max-age=604740; path=/; domain=${s}; secure; SameSite=Strict`,this.loading=!1,this.message="登录成功!正在加载中...",this.messageIsError=!1;const a={email:this.email,userId:e.id,token:e.token};this.onSuccess&&(this.onSuccess(a),window.location.reload()),this.$emit("login-success",a),this.onClose&&setTimeout((()=>{this.handleClose()}),3e3)},async loginOrRegister(e,t,s){const a="login"===s?"https://userlogin.xn--xhq44jb2fzpc.com/login":"https://userlogin.xn--xhq44jb2fzpc.com/register",n={email:e,password:t};"login"===s&&(n.device=this.detectDevice());const o=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return o.json()},async verifyRegisterCode(e,t){const s="https://userlogin.xn--xhq44jb2fzpc.com/verify-register-code",a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,code:t})});return a.json()},delay(e){return new Promise((t=>setTimeout(t,e)))}}},_=s(1241);const E=(0,_.A)(L,[["render",b],["__scopeId","data-v-4002456e"]]);var A=E;const I=(e={})=>new Promise(((t,s)=>{const n=document.createElement("div");document.body.appendChild(n);const o=(0,a.Ef)(A,{...e,visible:!0,showClose:!0,onSuccess:e=>{t(e)},onClose:()=>{o.unmount(),document.body.removeChild(n)}});o.mount(n)}));I.withCallback=(e,t={})=>I({...t,onSuccess:t=>{e(t)}});var x=I}},t={};function s(a){var n=t[a];if(void 0!==n)return n.exports;var o=t[a]={exports:{}};return e[a].call(o.exports,o,o.exports,s),o.exports}s.m=e,function(){var e=[];s.O=function(t,a,n,o){if(!a){var i=1/0;for(d=0;d=o)&&Object.keys(s.O).every((function(e){return s.O[e](a[r])}))?a.splice(r--,1):(l=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[a,n,o]}}(),function(){s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,{a:t}),t}}(),function(){s.d=function(e,t){for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,a){return s.f[a](e,t),t}),[]))}}(),function(){s.u=function(e){return"js/"+e+"."+{11:"b66012a9",12:"dc7bebdb",48:"d69889fa",155:"fda25d1c",159:"27121bfb",225:"a1a776b7",325:"748aabdf",493:"70eaafd9",550:"518471f5",556:"fad1d0d1",608:"0fae2b59",625:"4ff04b31",637:"d6eaf3fc",893:"894d0c3e",898:"08f09bf8",899:"c894bc0f",940:"562973c0",954:"6c33aa27"}[e]+".js"}}(),function(){s.miniCssF=function(e){return"css/"+e+"."+{11:"0ebea814",48:"bf96e64e",155:"e92d57c5",159:"8357e143",225:"57387d34",325:"fa8a5d86",493:"d5089386",550:"7c932b4a",556:"6a7a8c4a",608:"2533838f",625:"b01fd648",637:"260fb010",893:"c0f251e8",898:"6cbcb5bc",899:"35501d47",954:"b8c67783"}[e]+".css"}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="newfront:";s.l=function(a,n,o,i){if(e[a])e[a].push(n);else{var l,r;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d[r.visible?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"bar-message",style:(0,o.Tr)(c.positionStyle)},[(0,a.Lk)("div",{class:(0,o.C4)(["bar-message-content",r.customColor?"":r.type]),style:(0,o.Tr)({backgroundColor:r.customColor})},[r.showIcon?((0,a.uX)(),(0,a.CE)("i",{key:0,class:(0,o.C4)(["bar-message-icon",c.iconClass])},null,2)):(0,a.Q3)("",!0),(0,a.Lk)("span",i,(0,o.v_)(r.message),1),r.showClose?((0,a.uX)(),(0,a.CE)("i",{key:1,class:"bar-message-close fas fa-times",onClick:t[0]||(t[0]=(...e)=>c.close&&c.close(...e))})):(0,a.Q3)("",!0)],6)],4)):(0,a.Q3)("",!0)])),_:1})}var r={name:"BarMessage",data(){return{visible:!1,message:"",type:"success",customColor:"",timer:null,duration:3e3,position:"top",showIcon:!0,showClose:!1}},computed:{positionStyle(){return"bottom"===this.position?{top:"auto",bottom:"16px"}:"center"===this.position?{top:"50%",transform:"translate(-50%, -50%)"}:{top:"16px",bottom:"auto"}},iconClass(){switch(this.type){case"success":return"fas fa-check-circle";case"error":return"fas fa-times-circle";case"warning":return"fas fa-exclamation-circle";case"info":return"fas fa-info-circle";default:return"fas fa-bell"}}},methods:{show(e){this.timer&&clearTimeout(this.timer),this.message=e.message||"",this.type=e.type||"success",this.customColor=e.color||"",this.duration=void 0!==e.duration?e.duration:3e3,this.position=e.position||"top",this.showIcon=void 0===e.showIcon||e.showIcon,this.showClose=void 0!==e.showClose&&e.showClose,this.visible=!0,this.duration>0&&(this.timer=setTimeout((()=>{this.close()}),this.duration))},close(){this.visible=!1,this.timer&&(clearTimeout(this.timer),this.timer=null),this.onClose&&this.onClose()}}},c=s(1241);const d=(0,c.A)(r,[["render",l],["__scopeId","data-v-18bdfd8a"]]);var u=d;const h=[];let g=1;const p=function(e){"string"===typeof e&&(e={message:e}),e=e||{};const t="bar_message_"+g++,s=document.createElement("div"),o=e.onClose;e.onClose=()=>{m(t,o)};const i=(0,a.bF)(u,e);(0,n.XX)(i,s),document.body.appendChild(s);const l=i.component.proxy;l.show(e);const r={id:t,vnode:i,vm:l,container:s};return h.push(r),{close:()=>{l.close()}}};function m(e,t){const s=h.findIndex((t=>t.id===e));if(-1===s)return;const{vm:a,container:o}=h[s];a&&("function"===typeof t&&t(),(0,n.XX)(null,o),document.body.removeChild(o),h.splice(s,1))}["success","error","warning","info"].forEach((e=>{p[e]=t=>("string"===typeof t?t={message:t,type:e}:(t=t||{},t.type=e),p(t))})),p.permanent=e=>("string"===typeof e&&(e={message:e}),e=e||{},e.duration=0,e.showClose=!1!==e.showClose,p(e)),p.closeAll=function(){for(let e=h.length-1;e>=0;e--)h[e].vm.close()};var f=p},3825:function(e,t,s){s.d(t,{A:function(){return Le}});var a=s(6768),n=s(4232),o=s(5130);const i={class:"container"},l=["src"],r={key:0},c=["src"],d={class:"burger-container"},u={key:0,class:"unread-dot burger-badge"},h={class:"navbar-end"},g={key:0,class:"navbar-item user-dropdown",style:{padding:"0"}},p={class:"avatar-wrapper"},m=["src","alt"],f={key:0,class:"unread-dot avatar-badge"},v={class:"user-nickname"},k={class:"dropdown-menu"},b={key:0,class:"unread-dot"},y={key:1,class:"navbar-item"},w={key:0,class:"activation-dialog"},C={class:"activation-dialog-content"},L={class:"activation-methods"},_={class:"activation-method"},E={class:"activation-method"},A={class:"activation-method"},I=["disabled"],x={key:1,class:"message-modal"},M={class:"message-modal-content"},X={class:"message-modal-header"},P={class:"message-modal-body",ref:"messageContainer"},S={key:0,class:"no-messages"},j={key:1,class:"message-list"},z={class:"message-header"},F={class:"message-time"},U={key:0,class:"unread-tag"},T=["innerHTML"],D={key:1,class:"message-content"},q=["href"],W={key:1},$={key:2,class:"message-content"},O=["href"],Q={key:1},N={key:3,class:"message-content"},B=["href"],V={key:1},R={key:4,class:"message-content"},J={key:5,class:"message-content"},Y=["href"],Z={key:1},G={key:6,class:"message-content"},H=["href"],K={key:1},ee={key:7,class:"message-content"},te=["href"],se={key:1},ae={key:8,class:"message-content"},ne={style:{"margin-top":"8px"}},oe={key:9,class:"message-content"},ie={style:{display:"inline-block","vertical-align":"middle",margin:"0 4px"}},le={style:{"margin-top":"8px"}},re=["href"],ce={key:10,class:"message-content"},de={key:2,class:"pagination"},ue=["disabled"],he={class:"page-info"},ge=["disabled"];function pe(e,t,s,pe,me,fe){const ve=(0,a.g2)("router-link"),ke=(0,a.g2)("UserMeta");return(0,a.uX)(),(0,a.CE)("nav",{class:(0,n.C4)(["navbar",{"navbar-kaoyan":me.kaoyan}])},[(0,a.Lk)("div",i,[(0,a.Lk)("div",{class:(0,n.C4)(["navbar-brand",me.isYuandan?"navbar-brand-yuandan":""])},[(0,a.bF)(ve,{to:"/",class:"navbar-logo"},{default:(0,a.k6)((()=>[(0,a.Lk)("img",{src:me.kaoyan?"https://download.xn--xhq44jb2fzpc.com/images/logo-ky.png":"https://download.xn--xhq44jb2fzpc.com/images/logo-hd.png",alt:"NEU小站",class:"navbar-logo-img"},null,8,l),me.kaoyan?((0,a.uX)(),(0,a.CE)("span",r,"一战成硕")):((0,a.uX)(),(0,a.CE)("img",{key:1,src:me.isYuandan?"https://download.xn--xhq44jb2fzpc.com/images/head_f.png":fe.isChristmas?"https://download.xn--xhq44jb2fzpc.com/images/sdb_ys.png":"https://download.xn--xhq44jb2fzpc.com/images/head.png",alt:"NEU小站",class:"navbar-title-img",style:(0,n.Tr)(me.isYuandan?{height:"45px",marginBottom:"10px"}:{})},null,12,c)),fe.currentTagConfig?((0,a.uX)(),(0,a.CE)("span",{key:2,style:(0,n.Tr)({backgroundColor:fe.currentTagConfig.backgroundColor}),class:"route-tag"},(0,n.v_)(fe.currentTagConfig.text),5)):(0,a.Q3)("",!0)])),_:1}),(0,a.Lk)("div",d,[(0,a.Lk)("div",{class:(0,n.C4)(["navbar-burger",{"is-active":me.isMenuActive}]),onClick:t[0]||(t[0]=(...e)=>fe.toggleMenu&&fe.toggleMenu(...e))},t[14]||(t[14]=[(0,a.Lk)("span",null,null,-1),(0,a.Lk)("span",null,null,-1),(0,a.Lk)("span",null,null,-1)]),2),me.userInfo&&me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",u)):(0,a.Q3)("",!0)])],2),(0,a.Lk)("div",{class:(0,n.C4)(["navbar-menu",{"is-active":me.isMenuActive}])},[(0,a.Lk)("div",h,[(0,a.bF)(ve,{to:"/strategy",class:"navbar-item"},{default:(0,a.k6)((()=>t[15]||(t[15]=[(0,a.eW)("攻略指南")]))),_:1}),(0,a.bF)(ve,{to:"/resources",class:"navbar-item"},{default:(0,a.k6)((()=>t[16]||(t[16]=[(0,a.eW)("资源共享")]))),_:1}),(0,a.bF)(ve,{to:"/app",class:"navbar-item"},{default:(0,a.k6)((()=>t[17]||(t[17]=[(0,a.eW)(" 应用中心 ")]))),_:1}),(0,a.bF)(ve,{to:"/search",class:"navbar-item"},{default:(0,a.k6)((()=>t[18]||(t[18]=[(0,a.eW)("搜索")]))),_:1}),(0,a.bF)(ve,{to:"/advice",class:"navbar-item"},{default:(0,a.k6)((()=>t[19]||(t[19]=[(0,a.eW)(" 反馈 ")]))),_:1}),(0,a.bF)(ve,{to:"/subscribe",class:"navbar-item"},{default:(0,a.k6)((()=>t[20]||(t[20]=[(0,a.eW)("赞助")]))),_:1}),(0,a.bF)(ve,{to:"/about",class:"navbar-item"},{default:(0,a.k6)((()=>t[21]||(t[21]=[(0,a.eW)("关于")]))),_:1}),me.userInfo?((0,a.uX)(),(0,a.CE)("div",g,[(0,a.Lk)("div",{class:"user-info",onClick:t[1]||(t[1]=(...e)=>fe.toggleDropdown&&fe.toggleDropdown(...e))},[(0,a.Lk)("div",p,[(0,a.Lk)("img",{src:me.userInfo.avatar_path,class:"user-avatar",alt:me.userInfo.nickname},null,8,m),me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",f)):(0,a.Q3)("",!0)]),(0,a.Lk)("span",v,(0,n.v_)(me.userInfo.nickname),1),(0,a.Lk)("span",{class:(0,n.C4)(["dropdown-arrow",{"is-active":me.isDropdownActive}])},"▼",2)]),(0,a.bo)((0,a.Lk)("div",k,[(0,a.Lk)("div",{class:"dropdown-item",onClick:t[2]||(t[2]=(...e)=>fe.handleUserCenter&&fe.handleUserCenter(...e))},"个人中心"),(0,a.Lk)("div",{class:"dropdown-item",onClick:t[3]||(t[3]=(...e)=>fe.handleMessages&&fe.handleMessages(...e))},[t[22]||(t[22]=(0,a.eW)(" 我的消息 ")),me.userInfo.messageUnread?((0,a.uX)(),(0,a.CE)("span",b)):(0,a.Q3)("",!0)]),(0,a.Lk)("div",{class:"dropdown-item",onClick:t[4]||(t[4]=(...e)=>fe.handleLogout&&fe.handleLogout(...e))},"退出登录")],512),[[o.aG,me.isDropdownActive]])])):((0,a.uX)(),(0,a.CE)("div",y,[(0,a.Lk)("a",{class:"login-btn",onClick:t[5]||(t[5]=(...e)=>fe.handleLogin&&fe.handleLogin(...e))},"登录")]))])],2)]),me.showActivationDialog?((0,a.uX)(),(0,a.CE)("div",w,[(0,a.Lk)("div",C,[t[29]||(t[29]=(0,a.Lk)("h3",null,"账户激活",-1)),t[30]||(t[30]=(0,a.Lk)("p",null,"您的账户尚未激活,请选择以下一种方式进行激活。如果无法激活,请退出登录后在“关于”页面联系网站管理员。",-1)),(0,a.Lk)("div",L,[(0,a.Lk)("div",_,[t[23]||(t[23]=(0,a.Lk)("h4",null,"方式 1:NEU 校园网验证",-1)),t[24]||(t[24]=(0,a.Lk)("p",null,"请连接 NEU 校园网后点击下面的验证按钮(暂不支持秦皇岛分校)",-1)),(0,a.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>fe.handleNetworkVerify&&fe.handleNetworkVerify(...e)),class:"verify-btn"},"校园网验证")]),(0,a.Lk)("div",E,[t[25]||(t[25]=(0,a.Lk)("h4",null,"方式 2:校园邮箱验证",-1)),t[26]||(t[26]=(0,a.Lk)("p",null,"使用 @stu.neu.edu.cn、@stu.neuq.edu.cn 或 @mails.neu.edu.cn 后缀的校园邮箱验证",-1)),(0,a.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>fe.handleEmailVerify&&fe.handleEmailVerify(...e)),class:"verify-btn"},"邮箱验证")]),(0,a.Lk)("div",A,[t[27]||(t[27]=(0,a.Lk)("h4",null,"方式 3:学生证照片认证",-1)),t[28]||(t[28]=(0,a.Lk)("p",null,[(0,a.eW)("请上传清晰、无遮挡的学生证(校园卡,"),(0,a.Lk)("strong",null,"非火车票学生证"),(0,a.eW)(")个人信息面照片,并清晰露出公章(支持JPG/PNG/WEBP格式,不超过5M)")],-1)),(0,a.Lk)("input",{type:"file",onChange:t[8]||(t[8]=(...e)=>fe.handleFileSelect&&fe.handleFileSelect(...e)),accept:"image/jpeg,image/png,image/webp",ref:"fileInput",style:{display:"none"}},null,544),(0,a.Lk)("button",{onClick:t[9]||(t[9]=(...e)=>fe.triggerFileInput&&fe.triggerFileInput(...e)),class:"verify-btn",disabled:me.isUploading},(0,n.v_)(me.isUploading?"上传认证中...":"上传学生证"),9,I)])]),(0,a.Lk)("button",{onClick:t[10]||(t[10]=(...e)=>fe.handleLogout&&fe.handleLogout(...e)),class:"close-btn"},"退出登录")])])):(0,a.Q3)("",!0),me.showMessageModal?((0,a.uX)(),(0,a.CE)("div",x,[(0,a.Lk)("div",M,[(0,a.Lk)("div",X,[t[31]||(t[31]=(0,a.Lk)("h3",null,"我的消息",-1)),(0,a.Lk)("span",{class:"close-icon",onClick:t[11]||(t[11]=(...e)=>fe.closeMessageModal&&fe.closeMessageModal(...e))},"×")]),(0,a.Lk)("div",P,[0===me.messages.length?((0,a.uX)(),(0,a.CE)("div",S," 暂无消息 ")):((0,a.uX)(),(0,a.CE)("div",j,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(me.messages,(e=>((0,a.uX)(),(0,a.CE)("div",{key:e.id,class:"message-item"},[(0,a.Lk)("div",z,[(0,a.Lk)("span",F,(0,n.v_)(fe.formatDate(e.created_at)),1),e.status?(0,a.Q3)("",!0):((0,a.uX)(),(0,a.CE)("span",U,"未读"))]),0===e.type?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"message-content",style:{"white-space":"pre-wrap"},innerHTML:e.content},null,8,T)):1===e.type?((0,a.uX)(),(0,a.CE)("div",D,[t[32]||(t[32]=(0,a.eW)(" 您在《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,q)):((0,a.uX)(),(0,a.CE)("span",W,(0,n.v_)(e.article_title),1)),(0,a.eW)("》内容下的「"+(0,n.v_)(e.original_content)+"」评论被回复:「"+(0,n.v_)(e.reply_content)+"」 ",1)])):2===e.type?((0,a.uX)(),(0,a.CE)("div",$,[t[33]||(t[33]=(0,a.eW)(" 您的投稿《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.title),9,O)):((0,a.uX)(),(0,a.CE)("span",Q,(0,n.v_)(e.title),1)),(0,a.eW)("》审核"+(0,n.v_)(e.pass?"已通过":"未通过")+(0,n.v_)(e.note?",审核备注:"+e.note:""),1)])):3===e.type?((0,a.uX)(),(0,a.CE)("div",N,[t[34]||(t[34]=(0,a.eW)(' 您添加的课程"')),e.course_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://course.xn--xhq44jb2fzpc.com/courses?c="+fe.encodeBase64(e.course_id),target:"_blank"},(0,n.v_)(e.course_name),9,B)):((0,a.uX)(),(0,a.CE)("span",V,(0,n.v_)(e.course_name),1)),(0,a.eW)('"审核'+(0,n.v_)(e.course_status),1)])):4===e.type?((0,a.uX)(),(0,a.CE)("div",R," 您的密钥「"+(0,n.v_)(e.key_plaintext)+"」使用次数已用尽,继续投稿可获得新的密钥。 ",1)):5===e.type?((0,a.uX)(),(0,a.CE)("div",J,[t[35]||(t[35]=(0,a.eW)(" 您在《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,Y)):((0,a.uX)(),(0,a.CE)("span",Z,(0,n.v_)(e.article_title),1)),(0,a.eW)("》内容下的「"+(0,n.v_)(e.content)+"」评论被点赞。 ",1)])):6===e.type?((0,a.uX)(),(0,a.CE)("div",G,[t[36]||(t[36]=(0,a.eW)(" 您的内容《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,H)):((0,a.uX)(),(0,a.CE)("span",K,(0,n.v_)(e.article_title),1)),(0,a.eW)("》收到新评论:「"+(0,n.v_)(e.comment_content)+"」 ",1)])):7===e.type?((0,a.uX)(),(0,a.CE)("div",ee,[t[37]||(t[37]=(0,a.eW)(" 恭喜您的内容《")),e.article_id?((0,a.uX)(),(0,a.CE)("a",{key:0,href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,te)):((0,a.uX)(),(0,a.CE)("span",se,(0,n.v_)(e.article_title),1)),(0,a.eW)("》浏览量达到"+(0,n.v_)(e.view_count)+",感谢您为NEU小站贡献优质内容,小站因为有你而更加精彩~ ",1)])):8===e.type?((0,a.uX)(),(0,a.CE)("div",ae,[t[38]||(t[38]=(0,a.Lk)("div",null,"您有一个新粉丝:",-1)),(0,a.Lk)("div",ne,[(0,a.bF)(ke,{id:e.follower_id},null,8,["id"])])])):9===e.type?((0,a.uX)(),(0,a.CE)("div",oe,[(0,a.Lk)("div",null,[t[39]||(t[39]=(0,a.eW)("您关注的用户")),(0,a.Lk)("span",ie,[(0,a.bF)(ke,{id:e.author_id},null,8,["id"])]),t[40]||(t[40]=(0,a.eW)("有新的投稿内容:"))]),(0,a.Lk)("div",le,[t[41]||(t[41]=(0,a.eW)(" 《")),(0,a.Lk)("a",{href:"https://www.xn--xhq44jb2fzpc.com/article/"+e.article_id,target:"_blank"},(0,n.v_)(e.article_title),9,re),t[42]||(t[42]=(0,a.eW)("》 "))])])):((0,a.uX)(),(0,a.CE)("div",ce,(0,n.v_)(e.error||"未知消息类型"),1))])))),128))])),me.totalPages>1?((0,a.uX)(),(0,a.CE)("div",de,[(0,a.Lk)("button",{disabled:1===me.currentPage,onClick:t[12]||(t[12]=e=>fe.loadMessages(me.currentPage-1)),class:"page-btn"},"上一页",8,ue),(0,a.Lk)("span",he,(0,n.v_)(me.currentPage)+" / "+(0,n.v_)(me.totalPages),1),(0,a.Lk)("button",{disabled:me.currentPage===me.totalPages,onClick:t[13]||(t[13]=e=>fe.loadMessages(me.currentPage+1)),class:"page-btn"},"下一页",8,ge)])):(0,a.Q3)("",!0)],512)])])):(0,a.Q3)("",!0)],2)}s(4114),s(8111),s(116),s(3579),s(4979);var me=s(8704),fe=s(4373),ve=s(4993),ke=s(8630),be=s(4888),ye={name:"NavBar",components:{UserMeta:be.A},data(){return{kaoyan:!1,isYuandan:!0,isMenuActive:!1,isDropdownActive:!1,userInfo:null,showActivationDialog:!1,isActivated:!1,isUploading:!1,showMessageModal:!1,messages:[],loading:!1,currentPage:1,totalPages:1,pageSize:10,tagConfigurations:[{text:"应用",backgroundColor:"#ff8c00",routes:["/app","/app/"],wildcard:!1},{text:"工具",backgroundColor:"#3273dc",routes:["/widgets"],wildcard:!0}]}},computed:{isChristmas(){const e=new Date,t=new Date("2025-12-26T00:00:00");return e!!t.routes.includes(e)||!!t.wildcard&&t.routes.some((t=>e===t||e.startsWith(t+"/")))))||null}},mounted(){this.checkLoginStatus()},methods:{handleLogin(){(0,ke.A)().then((e=>{console.log(e),this.checkLoginStatus()})).catch((e=>{console.log(e)}))},toggleMenu(){this.isMenuActive=!this.isMenuActive},toggleDropdown(){this.isDropdownActive=!this.isDropdownActive},handleUserCenter(){this.isDropdownActive=!1,this.$router.push("/user-center")},handleLogout(){const e=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");me.A.remove("token",{domain:e,path:"/"}),this.userInfo=null,window.location.reload()},checkLoginStatus(){const e=me.A.get("token");e&&fe.A.get("https://newfront.xn--xhq44jb2fzpc.com/user/info",{headers:{Authorization:e}}).then((e=>{this.userInfo=e.data,e.data.banned?(this.$barMessage({message:"您的账户已被封禁,请联系网站管理员",type:"error"}),ve.A.alert('您的账户已被封禁,如有疑问请在"关于"页面联系网站管理员。',"账户状态异常",{confirmText:"退出登录",cancel:!1}).then((()=>{this.handleLogout()})).catch((()=>{this.handleLogout()}))):(this.isActivated=e.data.activated,this.isActivated||(this.showActivationDialog=!0))})).catch((e=>{console.log(e),this.userInfo=null}))},closeActivationDialog(){this.showActivationDialog=!1},handleNetworkVerify(){const e=me.A.get("token");e?fe.A.get("https://userlogin.xn--xhq44jb2fzpc.com/qv",{headers:{Authorization:e}}).then((e=>{ve.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((e=>{e.response&&e.response.data?ve.A.alert(`${e.response.data.message} 当前IP: ${e.response.data.ip||"未知"}`,"提示"):ve.A.alert("验证失败,请稍后重试","提示")})):ve.A.alert("您未登录,请先登录后操作!","提示")},handleEmailVerify(){const e=me.A.get("token");e?fe.A.get("https://userlogin.xn--xhq44jb2fzpc.com/check-email",{headers:{Authorization:e}}).then((e=>{ve.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((t=>{t.response&&403===t.response.status?this.promptForCampusEmail(e):t.response&&t.response.data?ve.A.alert(t.response.data.message||"发生未知错误,请稍后重试","提示"):ve.A.alert("验证失败,请稍后重试","提示")})):ve.A.alert("您未登录,请先登录后操作!","提示")},promptForCampusEmail(e){(0,ve.A)({title:"校园邮箱验证",message:"请输入您的校园邮箱:",showInput:!0,inputPlaceholder:"请输入校园邮箱",confirmText:"确认",cancelText:"取消",cancel:!0}).then((({value:t})=>{t?t.endsWith("@stu.neu.edu.cn")||t.endsWith("@stu.neuq.edu.cn")||t.endsWith("@mails.neu.edu.cn")?this.sendCampusVerificationEmail(t,e):ve.A.alert("请输入有效的 @stu.neu.edu.cn、@stu.neuq.edu.cn 或 @mails.neu.edu.cn 校园邮箱!","提示"):ve.A.alert("邮箱不能为空","提示")})).catch((()=>{}))},sendCampusVerificationEmail(e,t){fe.A.post("https://userlogin.xn--xhq44jb2fzpc.com/send-campus-verify",{campus_email:e},{headers:{Authorization:t,"Content-Type":"application/json"}}).then((t=>{ve.A.alert(`验证邮件已发送至 ${e},请检查您的邮箱完成验证。`,"提示")})).catch((e=>{e.response&&e.response.data?ve.A.alert(`发送验证邮件失败:${e.response.data.message}`,"提示"):ve.A.alert("发送验证邮件失败,请稍后重试","提示")}))},handleMessages(){this.isDropdownActive=!1,this.showMessageModal=!0,this.loadMessages(1)},closeMessageModal(){this.showMessageModal=!1,this.checkLoginStatus()},loadMessages(e){this.currentPage=e,fe.A.get("https://newfront.xn--xhq44jb2fzpc.com/message/get",{headers:{Authorization:me.A.get("token")},params:{page:e}}).then((e=>{this.messages=e.data.messages,this.totalPages=e.data.totalPages,this.pageSize=e.data.pageSize})).catch((e=>{console.error("获取消息失败:",e),ve.A.alert("获取消息失败,请稍后再试。","错误")}))},formatDate(e){const t=new Date(e);return t.toLocaleDateString()+" "+t.toLocaleTimeString()},encodeBase64(e){return window.btoa(e)},triggerFileInput(){this.$refs.fileInput.click()},async handleFileSelect(e){const t=e.target.files[0];if(!t)return;const s=["image/jpeg","image/png","image/webp"];if(!s.includes(t.type))return void ve.A.alert("不支持的文件格式,请上传 JPG, PNG, 或 WEBP 图片。","格式错误");const a=5242880;if(t.size>a)ve.A.alert("文件大小不能超过 5MB。","文件过大");else{this.isUploading=!0;try{const e=me.A.get("token");if(!e)return ve.A.alert("您未登录,请先登录后操作!","提示"),void(this.isUploading=!1);const s=await fe.A.post("https://newfront.xn--xhq44jb2fzpc.com/freshman/validate_card/get-upload-url",{filename:t.name},{headers:{Authorization:e}}),{uploadUrl:a,objectPath:n}=s.data;await fe.A.put(a,t,{headers:{"Content-Type":t.type}});await fe.A.post("https://newfront.xn--xhq44jb2fzpc.com/freshman/validate_card/verify",{objectPath:n},{headers:{Authorization:e}});ve.A.alert("学生证认证成功!","激活成功"),this.isActivated=!0,this.showActivationDialog=!1,this.checkLoginStatus()}catch(n){let e="操作失败,请稍后重试。";n.response&&n.response.data&&n.response.data.message&&(e=n.response.data.message),ve.A.alert(e,"错误")}finally{this.isUploading=!1,this.$refs.fileInput.value=""}}}}},we=s(1241);const Ce=(0,we.A)(ye,[["render",pe],["__scopeId","data-v-62ca13b8"]]);var Le=Ce},4888:function(e,t,s){s.d(t,{A:function(){return K}});var a=s(6768),n=s(4232),o=s(5130);const i={class:"user-meta"},l={class:"avatar-wrapper"},r=["src"],c={key:0,class:"avatar-loading"},d={key:0,src:"https://download.xn--xhq44jb2fzpc.com/images/vip_g3.svg",class:"vip-badge",alt:"VIP",title:"VIP用户"},u={class:"user-badges"},h=["title"],g=["title"],p={key:2,class:"badge medal"},m={class:"card-container"},f={class:"detail-header"},v=["src"],k={class:"detail-right"},b={key:0,src:"https://download.xn--xhq44jb2fzpc.com/images/vip_g3.svg",class:"vip-badge",alt:"VIP",title:"VIP用户"},y={class:"user-badges"},w=["title"],C=["title"],L={key:2,class:"badge medal"},_={key:0,class:"user-sign"},E={class:"sign-text"},A={class:"user-stats"},I={class:"stat-item"},x={class:"stat-value"},M={class:"stat-item"},X={class:"stat-value"},P={key:1,class:"user-submissions"},S={class:"submission-header"},j={key:0,class:"pagination-controls"},z=["disabled"],F={class:"page-info"},U=["disabled"],T={class:"submission-list"},D=["onClick"],q={class:"submission-title"},W={class:"submission-tags"},$={key:0,class:"tag official"},O={key:1,class:"tag highlight"},Q={key:2,class:"tag top"},N={class:"card-footer"};function B(e,t,s,B,V,R){return(0,a.uX)(),(0,a.CE)("div",i,[(0,a.Lk)("div",{class:"user-basic",ref:"userBasic",onMouseenter:t[0]||(t[0]=(...e)=>R.handleMouseEnter&&R.handleMouseEnter(...e))},[(0,a.Lk)("div",l,[(0,a.Lk)("img",{src:V.userInfo.avatarUrl,alt:"用户头像",class:"avatar"},null,8,r),V.loading?((0,a.uX)(),(0,a.CE)("div",c,t[6]||(t[6]=[(0,a.Lk)("div",{class:"loading-spinner"},null,-1)]))):(0,a.Q3)("",!0)]),(0,a.Lk)("div",{class:(0,n.C4)(["user-name",{"colorful-name":V.userInfo.color_name}])},[(0,a.eW)((0,n.v_)(V.userInfo.nickname)+" ",1),V.userInfo.is_vip?((0,a.uX)(),(0,a.CE)("img",d)):(0,a.Q3)("",!0)],2),(0,a.Lk)("div",u,[V.userInfo.verified?((0,a.uX)(),(0,a.CE)("span",{key:0,class:"badge verified",title:V.userInfo.verified},"认证",8,h)):(0,a.Q3)("",!0),V.userInfo.invited?((0,a.uX)(),(0,a.CE)("span",{key:1,class:"badge invited",title:V.userInfo.invited},"特邀",8,g)):(0,a.Q3)("",!0),1===V.userInfo.medal?((0,a.uX)(),(0,a.CE)("span",p,"小站奖章")):(0,a.Q3)("",!0)])],544),((0,a.uX)(),(0,a.Wv)(a.Im,{to:"body"},[(0,a.bF)(o.eB,{name:"detail-fade"},{default:(0,a.k6)((()=>[V.showDetail?((0,a.uX)(),(0,a.CE)("div",{key:0,class:"user-detail",ref:"userDetail",style:(0,n.Tr)(V.popupStyle),onMouseenter:t[4]||(t[4]=e=>V.showDetail=!0),onMouseleave:t[5]||(t[5]=e=>V.showDetail=!1)},[(0,a.Lk)("div",m,[(0,a.Lk)("div",f,[t[7]||(t[7]=(0,a.Lk)("div",{class:"header-bg"},null,-1)),(0,a.Lk)("img",{src:V.userInfo.avatarUrl,alt:"用户头像",class:"detail-avatar"},null,8,v),(0,a.Lk)("div",k,[(0,a.Lk)("div",{class:(0,n.C4)(["detail-name",{"colorful-name":V.userInfo.color_name}])},[(0,a.eW)((0,n.v_)(V.userInfo.nickname)+" ",1),V.userInfo.is_vip?((0,a.uX)(),(0,a.CE)("img",b)):(0,a.Q3)("",!0)],2),(0,a.Lk)("div",y,[V.userInfo.verified?((0,a.uX)(),(0,a.CE)("span",{key:0,class:"badge verified",title:V.userInfo.verified},"认证",8,w)):(0,a.Q3)("",!0),V.userInfo.invited?((0,a.uX)(),(0,a.CE)("span",{key:1,class:"badge invited",title:V.userInfo.invited},"特邀",8,C)):(0,a.Q3)("",!0),1===V.userInfo.medal?((0,a.uX)(),(0,a.CE)("span",L,"小站奖章")):(0,a.Q3)("",!0)])])]),V.userInfo.sign?((0,a.uX)(),(0,a.CE)("div",_,[t[8]||(t[8]=(0,a.Lk)("div",{class:"sign-icon"},"✍️",-1)),(0,a.Lk)("div",E,(0,n.v_)(V.userInfo.sign),1)])):(0,a.Q3)("",!0),(0,a.Lk)("div",A,[(0,a.Lk)("div",I,[(0,a.Lk)("div",x,(0,n.v_)(V.userInfo.follower),1),t[9]||(t[9]=(0,a.Lk)("div",{class:"stat-label"},"粉丝",-1))]),t[11]||(t[11]=(0,a.Lk)("div",{class:"stat-separator"},null,-1)),(0,a.Lk)("div",M,[(0,a.Lk)("div",X,(0,n.v_)(V.userInfo.following),1),t[10]||(t[10]=(0,a.Lk)("div",{class:"stat-label"},"关注",-1))])]),V.submissions.length>0?((0,a.uX)(),(0,a.CE)("div",P,[(0,a.Lk)("div",S,[t[12]||(t[12]=(0,a.Lk)("span",null,"TA的投稿",-1)),V.totalPages>1?((0,a.uX)(),(0,a.CE)("div",j,[(0,a.Lk)("button",{class:"page-btn",disabled:1===V.currentPage,onClick:t[1]||(t[1]=(0,o.D$)((e=>R.changePage(V.currentPage-1)),["stop"]))}," < ",8,z),(0,a.Lk)("span",F,(0,n.v_)(V.currentPage)+"/"+(0,n.v_)(V.totalPages),1),(0,a.Lk)("button",{class:"page-btn",disabled:V.currentPage===V.totalPages,onClick:t[2]||(t[2]=(0,o.D$)((e=>R.changePage(V.currentPage+1)),["stop"]))}," > ",8,U)])):(0,a.Q3)("",!0)]),(0,a.Lk)("div",T,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(V.submissions,(e=>((0,a.uX)(),(0,a.CE)("div",{key:e.id,class:"submission-item",onClick:t=>R.handleArticleClick(e.id)},[(0,a.Lk)("div",q,(0,n.v_)(e.title),1),(0,a.Lk)("div",W,[e.official?((0,a.uX)(),(0,a.CE)("span",$,"官方")):(0,a.Q3)("",!0),e.highlight?((0,a.uX)(),(0,a.CE)("span",O,"优质")):(0,a.Q3)("",!0),e.top?((0,a.uX)(),(0,a.CE)("span",Q,"置顶")):(0,a.Q3)("",!0)])],8,D)))),128))])])):(0,a.Q3)("",!0),(0,a.Lk)("div",N,[s.showFollow?((0,a.uX)(),(0,a.CE)("button",{key:0,class:(0,n.C4)(["follow-btn",{followed:V.isFollowing,"disabled-look":!V.isLoggedIn}]),onClick:t[3]||(t[3]=(...e)=>R.handleFollow&&R.handleFollow(...e))},(0,n.v_)(V.isFollowing?"取消关注":"+ 关注"),3)):(0,a.Q3)("",!0)])])],36)):(0,a.Q3)("",!0)])),_:1})]))])}var V=s(4373),R=s(4993),J=s(8704);let Y=null;var Z={name:"UserMeta",props:{id:{type:[String,Number],required:!0},showFollow:{type:Boolean,default:!0}},data(){return{userInfo:{nickname:"默认昵称",verified:null,invited:null,medal:0,avatarUrl:"https://download.东北大学.com/avatar/default.png",follower:0,following:0,sign:"这个人很懒,还没有写个性签名~",color_name:!1},submissions:[],currentPage:1,totalPages:1,total:0,showDetail:!1,loading:!1,error:null,isFollowing:!1,isLoggedIn:!1,popupStyle:{}}},created(){this.showFollow&&this.checkLoginStatus(),this.fetchUserInfo(),this.fetchUserSubmissions(),this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()},mounted(){document.addEventListener("click",this.handleClickOutside)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside),Y===this&&(Y=null)},watch:{id(){this.fetchUserInfo(),this.fetchUserSubmissions(),this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()},showDetail(e){e?(Y&&Y!==this&&(Y.showDetail=!1),Y=this,this.showFollow&&this.isLoggedIn&&this.checkFollowStatus()):Y===this&&(Y=null)}},methods:{handleMouseEnter(){this.updatePopupPosition(),this.showDetail=!0},updatePopupPosition(){const e=this.$refs.userBasic;if(!e)return;const t=e.getBoundingClientRect();this.popupStyle={top:t.bottom+window.scrollY+8+"px",left:t.left+window.scrollX+"px",position:"absolute",zIndex:9999}},checkLoginStatus(){const e=J.A.get("token");this.isLoggedIn=!!e},async checkFollowStatus(){if(!this.isLoggedIn)return;const e=J.A.get("token");try{const t=await V.A.post("https://newfront.xn--xhq44jb2fzpc.com/user/follow/status",{user_id:this.id},{headers:{Authorization:e}});this.isFollowing=t.data.is_following}catch(t){console.error("检查关注状态失败:",t)}},async fetchUserInfo(){this.loading=!0;try{const e=await V.A.get(`https://userlogin.xn--xhq44jb2fzpc.com/submission/get-author-info?id=${this.id}`);this.userInfo={...e.data,follower:e.data.follower||0,following:e.data.following||0,sign:e.data.sign||"这个人很懒,还没有写个性签名~",color_name:e.data.color_name||!1}}catch(e){this.error="获取用户信息失败",console.error("获取用户信息失败:",e)}finally{this.loading=!1}},async fetchUserSubmissions(e=1){try{const t=await V.A.get(`https://userlogin.xn--xhq44jb2fzpc.com/submission/get-author-submissions?id=${this.id}&page=${e}`);t.data?(this.submissions=t.data.list||[],this.total=t.data.total||0,this.currentPage=t.data.page||1,this.totalPages=Math.ceil(this.total/5)):(this.submissions=[],this.total=0,this.totalPages=0)}catch(t){console.error("获取用户投稿失败:",t),this.submissions=[],this.total=0,this.totalPages=0}},changePage(e){e<1||e>this.totalPages||this.fetchUserSubmissions(e)},handleClickOutside(e){const t=this.$el,s=this.$refs.userDetail;if(this.showDetail){const a=t.contains(e.target),n=s&&s.contains(e.target);a||n||(this.showDetail=!1)}},handleFollow(){if(!this.isLoggedIn)return void R.A.alert("请先登录后再关注用户!","提示");const e=J.A.get("token");if(!e)return this.isLoggedIn=!1,void R.A.alert("登录已过期,请重新登录!","提示");const t=this.isFollowing?"取消关注":"关注",s=async()=>{try{const s=await V.A.post("https://newfront.xn--xhq44jb2fzpc.com/user/follow/do",{user_id:this.id},{headers:{Authorization:e}});this.isFollowing=s.data.is_following,this.fetchUserInfo(),this.$barMessage.success(`${t}成功`)}catch(s){console.error(`${t}失败:`,s),s.response&&s.response.data&&s.response.data.message?this.$barMessage.error(s.response.data.message):R.A.alert("操作失败,请稍后重试","错误")}};this.isFollowing?R.A.confirm("确定取消关注该用户吗?","确认操作").then(s).catch((()=>{})):s()},handleArticleClick(e){window.location.href=`/article/${e}`}}},G=s(1241);const H=(0,G.A)(Z,[["render",B],["__scopeId","data-v-243b974f"]]);var K=H},4993:function(e,t,s){s.d(t,{A:function(){return k}});var a=s(5130),n=s(6768),o=s(4232);const i={class:"message-box"},l={key:0,class:"message-header"},r={class:"message-content"},c={key:0,class:"input-wrapper"},d=["type","placeholder"],u={class:"message-footer"};function h(e,t,s,h,g,p){return(0,n.uX)(),(0,n.Wv)(a.eB,{name:"message-fade"},{default:(0,n.k6)((()=>[s.visible?((0,n.uX)(),(0,n.CE)("div",{key:0,class:"message-overlay",onClick:t[4]||(t[4]=(0,a.D$)(((...e)=>p.handleOverlayClick&&p.handleOverlayClick(...e)),["self"]))},[(0,n.Lk)("div",i,[s.title?((0,n.uX)(),(0,n.CE)("div",l,[(0,n.Lk)("h3",null,(0,o.v_)(s.title),1)])):(0,n.Q3)("",!0),(0,n.Lk)("div",r,[(0,n.Lk)("p",null,(0,o.v_)(s.message),1),s.showInput?((0,n.uX)(),(0,n.CE)("div",c,[(0,n.bo)((0,n.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>g.localInputValue=e),type:s.inputType,placeholder:s.inputPlaceholder,class:"message-input",onKeyup:t[1]||(t[1]=(0,a.jR)(((...e)=>p.handleConfirm&&p.handleConfirm(...e)),["enter"]))},null,40,d),[[a.hp,g.localInputValue]])])):(0,n.Q3)("",!0)]),(0,n.Lk)("div",u,[p.cancelVisible?((0,n.uX)(),(0,n.CE)("button",{key:0,class:"btn btn-cancel",onClick:t[2]||(t[2]=(...e)=>p.handleCancel&&p.handleCancel(...e))},(0,o.v_)(s.cancelText),1)):(0,n.Q3)("",!0),p.confirmVisible?((0,n.uX)(),(0,n.CE)("button",{key:1,class:"btn btn-confirm",onClick:t[3]||(t[3]=(...e)=>p.handleConfirm&&p.handleConfirm(...e))},(0,o.v_)(s.confirmText),1)):(0,n.Q3)("",!0)])])])):(0,n.Q3)("",!0)])),_:1})}var g={name:"MessageBox",props:{visible:{type:Boolean,default:!1},title:{type:String,default:""},message:{type:String,required:!0},confirm:{type:Boolean,default:!0},cancel:{type:Boolean,default:!1},confirmText:{type:String,default:"确定"},cancelText:{type:String,default:"取消"},closeOnClickOverlay:{type:Boolean,default:!1},showInput:{type:Boolean,default:!1},inputType:{type:String,default:"text"},inputValue:{type:String,default:""},inputPlaceholder:{type:String,default:"请输入"}},data(){return{localInputValue:""}},watch:{inputValue:{immediate:!0,handler(e){this.localInputValue=e}}},computed:{confirmVisible(){return this.confirm},cancelVisible(){return this.cancel}},methods:{handleConfirm(){this.$emit("confirm",this.localInputValue)},handleCancel(){this.$emit("cancel")},handleOverlayClick(){this.closeOnClickOverlay&&this.$emit("cancel")}}},p=s(1241);const m=(0,p.A)(g,[["render",h],["__scopeId","data-v-076938bc"]]);var f=m;const v=(e={})=>new Promise(((t,s)=>{const n=document.createElement("div");document.body.appendChild(n);const o=(0,a.Ef)(f,{...e,visible:!0,confirm:!1!==e.confirm,cancel:!0===e.cancel,onConfirm:e=>{o.unmount(),document.body.removeChild(n),t({value:e,action:"confirm"})},onCancel:()=>{o.unmount(),document.body.removeChild(n),s({action:"cancel"})}});o.mount(n)}));v.alert=(e,t="",s={})=>v({title:t,message:e,confirm:!0,cancel:!1,...s}),v.confirm=(e,t="",s={})=>v({title:t,message:e,confirm:!0,cancel:!0,...s}),v.prompt=(e,t="",s={})=>v({title:t,message:e,showInput:!0,confirm:!0,cancel:!0,...s});var k=v},8630:function(e,t,s){s.d(t,{A:function(){return x}});var a=s(5130),n=s(6768),o=s(4232);const i={key:0,class:"login-container"},l={class:"login-box"},r={class:"login-header"},c={class:"form-group"},d={class:"form-group"},u={class:"button-group"},h={class:"modal-content"},g={class:"modal-header"},p={class:"modal-body"},m={class:"captcha-instruction"},f={class:"form-group"},v={class:"modal-footer"},k={key:0,class:"loading-overlay"};function b(e,t,s,b,y,w){return s.visible?((0,n.uX)(),(0,n.CE)("div",i,[t[13]||(t[13]=(0,n.Lk)("div",{class:"login-overlay"},null,-1)),(0,n.Lk)("div",l,[(0,n.Lk)("div",r,[t[8]||(t[8]=(0,n.Lk)("h2",{class:"login-title"},"登录/注册",-1)),s.showClose?((0,n.uX)(),(0,n.CE)("button",{key:0,onClick:t[0]||(t[0]=(...e)=>w.handleClose&&w.handleClose(...e)),class:"close-btn"},"×")):(0,n.Q3)("",!0)]),(0,n.Lk)("form",{onSubmit:t[4]||(t[4]=(0,a.D$)(((...e)=>w.handleSubmit&&w.handleSubmit(...e)),["prevent"])),class:"login-form"},[(0,n.Lk)("div",c,[t[9]||(t[9]=(0,n.Lk)("label",{for:"email"},"邮箱",-1)),(0,n.bo)((0,n.Lk)("input",{type:"email",id:"email","onUpdate:modelValue":t[1]||(t[1]=e=>y.email=e),placeholder:"请输入邮箱地址",required:"",class:"form-input",pattern:"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$",title:"请输入有效的邮箱地址"},null,512),[[a.Jo,y.email]])]),(0,n.Lk)("div",d,[t[10]||(t[10]=(0,n.Lk)("label",{for:"password"},"密码",-1)),(0,n.bo)((0,n.Lk)("input",{type:"password",id:"password","onUpdate:modelValue":t[2]||(t[2]=e=>y.password=e),placeholder:"请输入密码",required:"",class:"form-input"},null,512),[[a.Jo,y.password]])]),y.message?((0,n.uX)(),(0,n.CE)("div",{key:0,class:(0,o.C4)(["message",{error:y.messageIsError,success:!y.messageIsError}])},(0,o.v_)(y.message),3)):(0,n.Q3)("",!0),(0,n.Lk)("div",u,[(0,n.Lk)("button",{type:"button",onClick:t[3]||(t[3]=(...e)=>w.login&&w.login(...e)),class:"btn btn-primary"},"登录/注册")])],32)]),(0,n.Lk)("div",{class:(0,o.C4)(["modal",{show:y.showCaptchaModal}])},[(0,n.Lk)("div",h,[(0,n.Lk)("div",g,[t[11]||(t[11]=(0,n.Lk)("h3",null,"邮箱验证",-1)),(0,n.Lk)("button",{onClick:t[5]||(t[5]=(...e)=>w.closeCaptchaModal&&w.closeCaptchaModal(...e)),class:"close-btn"},"×")]),(0,n.Lk)("div",p,[(0,n.Lk)("p",m,(0,o.v_)(y.captchaInstruction),1),(0,n.Lk)("div",f,[(0,n.bo)((0,n.Lk)("input",{type:"text","onUpdate:modelValue":t[6]||(t[6]=e=>y.captchaCode=e),placeholder:"请输入验证码",class:"form-input"},null,512),[[a.Jo,y.captchaCode]])]),y.captchaMessage?((0,n.uX)(),(0,n.CE)("div",{key:0,class:(0,o.C4)(["captcha-message",{error:y.captchaMessageIsError,success:!y.captchaMessageIsError}])},(0,o.v_)(y.captchaMessage),3)):(0,n.Q3)("",!0)]),(0,n.Lk)("div",v,[(0,n.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>w.verifyCaptcha&&w.verifyCaptcha(...e)),class:"btn btn-primary"},"验证")])])],2),y.loading?((0,n.uX)(),(0,n.CE)("div",k,[t[12]||(t[12]=(0,n.Lk)("div",{class:"spinner"},null,-1)),(0,n.Lk)("p",null,(0,o.v_)(y.loadingMessage),1)])):(0,n.Q3)("",!0)])):(0,n.Q3)("",!0)}var y=s(4993),w=s(235),C=s.n(w),L={name:"Login",props:{visible:{type:Boolean,default:!0},showClose:{type:Boolean,default:!1},onSuccess:{type:Function,default:null},onClose:{type:Function,default:null}},data(){return{email:"",password:"",message:"",messageIsError:!0,loading:!1,loadingMessage:"加载中...",showCaptchaModal:!1,captchaCode:"",captchaMessage:"",captchaMessageIsError:!0,captchaInstruction:"验证码已发送至您的邮箱,请在下方输入"}},methods:{detectDevice(){try{const e=C().getParser(window.navigator.userAgent),t=e.getOS(),s=e.getBrowser();let a=t.name||"Unknown";return t.version&&(a+=` ${t.version}`),s.name&&(a+=` / ${s.name}`,s.version&&(a+=` ${s.version}`)),a}catch(e){return console.error("Device detection failed:",e),"Unknown"}},async handleSubmit(){await this.login()},handleClose(){this.onClose?this.onClose():this.$emit("close")},async login(){if(!this.email||!this.password)return this.message="请输入邮箱和密码",void(this.messageIsError=!0);const e=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if(!e.test(this.email))return this.message="请输入有效的邮箱地址",void(this.messageIsError=!0);this.loading=!0,this.loadingMessage="登录中...";try{const e=await this.loginOrRegister(this.email,this.password,"login");"Login successful."===e.message?this.handleLoginSuccess(e):"User not registered."===e.message?(this.loading=!1,(0,y.A)({title:"邮箱未注册",message:'此邮箱没有注册。点击"发送"按钮将向您的邮箱发送注册验证码。',confirmText:"发送",cancelText:"取消",cancel:!0,closeOnClickOverlay:!0}).then((async()=>{await this.sendRegisterCode()})).catch((()=>{}))):"Invalid email or password."===e.message?(this.message="密码错误。",this.messageIsError=!0,this.loading=!1):(this.message=e.message||"登录失败,请重试。",this.messageIsError=!0,this.loading=!1)}catch(t){console.error("Error:",t),this.message="发生错误,请稍后重试。",this.messageIsError=!0,this.loading=!1}},async register(){if(!this.email||!this.password)return this.message="请输入邮箱和密码",void(this.messageIsError=!0);const e=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if(!e.test(this.email))return this.message="请输入有效的邮箱地址",void(this.messageIsError=!0);await this.sendRegisterCode()},async sendRegisterCode(){this.loading=!0,this.loadingMessage="发送验证码中...";try{const e=await this.loginOrRegister(this.email,this.password,"register");"Verification email sent."===e.message?(this.captchaInstruction="验证码已发送至您的邮箱,请在下方输入",this.captchaMessage="",this.captchaCode="",this.showCaptchaModal=!0):"A valid code has already been sent. Please try again later."===e.message?(this.captchaInstruction="您还有未验证的验证码,请查看邮箱并在下方输入",this.captchaMessage="",this.captchaCode="",this.showCaptchaModal=!0):"Email is already registered."===e.message?(this.message="此邮箱已注册。",this.messageIsError=!0):(this.message="发送验证码失败,请稍后重试。",this.messageIsError=!0),this.loading=!1}catch(e){console.error("Error:",e),this.message="发生错误,请稍后重试。",this.messageIsError=!0,this.loading=!1}},async verifyCaptcha(){if(!this.captchaCode)return this.captchaMessage="请输入验证码",void(this.captchaMessageIsError=!0);try{const e=await this.verifyRegisterCode(this.email,this.captchaCode);"User registered successfully."===e.message?(this.captchaMessage="验证成功!",this.captchaMessageIsError=!1,setTimeout((()=>{this.closeCaptchaModal(),this.handleSuccessfulRegistration()}),1500)):(this.captchaMessage="您的验证码不正确",this.captchaMessageIsError=!0)}catch(e){console.error("Error:",e),this.captchaMessage="验证过程中发生错误,请重试",this.captchaMessageIsError=!0}},closeCaptchaModal(){this.showCaptchaModal=!1,this.captchaCode="",this.captchaMessage=""},async handleSuccessfulRegistration(){this.message="注册成功!正在登录...",this.messageIsError=!1,this.loading=!0,this.loadingMessage="登录中...",await this.delay(1e3);try{const e=await this.loginOrRegister(this.email,this.password,"login");"Login successful."===e.message?this.handleLoginSuccess(e):(this.message="注册成功,但自动登录失败,请手动登录。",this.messageIsError=!0,this.loading=!1)}catch(e){console.error("Error during login after registration:",e),this.message="注册成功,但自动登录失败,请手动登录。",this.messageIsError=!0,this.loading=!1}},handleLoginSuccess(e){const t=e.token,s=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");document.cookie=`token=${t}; max-age=604740; path=/; domain=${s}; secure; SameSite=Strict`,this.loading=!1,this.message="登录成功!正在加载中...",this.messageIsError=!1;const a={email:this.email,userId:e.id,token:e.token};this.onSuccess&&(this.onSuccess(a),window.location.reload()),this.$emit("login-success",a),this.onClose&&setTimeout((()=>{this.handleClose()}),3e3)},async loginOrRegister(e,t,s){const a="login"===s?"https://userlogin.xn--xhq44jb2fzpc.com/login":"https://userlogin.xn--xhq44jb2fzpc.com/register",n={email:e,password:t};"login"===s&&(n.device=this.detectDevice());const o=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return o.json()},async verifyRegisterCode(e,t){const s="https://userlogin.xn--xhq44jb2fzpc.com/verify-register-code",a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,code:t})});return a.json()},delay(e){return new Promise((t=>setTimeout(t,e)))}}},_=s(1241);const E=(0,_.A)(L,[["render",b],["__scopeId","data-v-4002456e"]]);var A=E;const I=(e={})=>new Promise(((t,s)=>{const n=document.createElement("div");document.body.appendChild(n);const o=(0,a.Ef)(A,{...e,visible:!0,showClose:!0,onSuccess:e=>{t(e)},onClose:()=>{o.unmount(),document.body.removeChild(n)}});o.mount(n)}));I.withCallback=(e,t={})=>I({...t,onSuccess:t=>{e(t)}});var x=I},9804:function(e,t,s){var a=s(5130),n=s(6768),o=s(4232),i=s(144);const l={id:"app"},r={class:"beian-footer"},c={class:"container"},d={class:"copyright"};var u={__name:"App",setup(e){const t=(new Date).getFullYear();return(e,s)=>{const a=(0,n.g2)("router-view"),u=(0,n.g2)("router-link");return(0,n.uX)(),(0,n.CE)("div",l,[(0,n.bF)(a),(0,n.Lk)("footer",r,[(0,n.Lk)("div",c,[s[1]||(s[1]=(0,n.Lk)("span",{style:{"white-space":"nowrap"}},[(0,n.Lk)("img",{src:"https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png",alt:"公安标识",style:{"vertical-align":"middle",height:"16px",display:"inline-block"}}),(0,n.Lk)("a",{href:"https://beian.mps.gov.cn/",target:"_blank"}," 赣公网安备36090202000259号"),(0,n.eW)(" | "),(0,n.Lk)("a",{href:"https://beian.miit.gov.cn/",target:"_blank"},"赣ICP备2024039267号-1")],-1)),(0,n.Lk)("div",d,[(0,n.eW)(" © 2024-"+(0,o.v_)((0,i.R1)(t))+" ",1),(0,n.bF)(u,{to:"/about"},{default:(0,n.k6)((()=>s[0]||(s[0]=[(0,n.eW)("NEU小站")]))),_:1})])])])])}}};const h=u;var g=h,p=s(1387);const m={class:"home"},f={class:"container"},v={class:"welcome-section"},k=["src"],b={class:"quick-links"},y={style:{"text-align":"right","font-weight":"normal"}};function w(e,t,s,a,i,l){const r=(0,n.g2)("Navbar"),c=(0,n.g2)("router-link");return(0,n.uX)(),(0,n.CE)("div",m,[(0,n.bF)(r),(0,n.Lk)("div",f,[(0,n.Lk)("div",v,[(0,n.Lk)("img",{alt:"Vue logo",src:i.kaoyan?"https://download.东北大学.com/images/logo-ky.png":"https://download.东北大学.com/images/logo-hd.png"},null,8,k),t[3]||(t[3]=(0,n.Lk)("h1",null,"欢迎访问NEU小站",-1)),(0,n.Lk)("div",b,[t[1]||(t[1]=(0,n.Lk)("span",{class:"colorful-text"},"2025年度问卷已上线,我们期待您的反馈!",-1)),t[2]||(t[2]=(0,n.Lk)("span",null,"入口:",-1)),(0,n.bF)(c,{to:"/qa"},{default:(0,n.k6)((()=>t[0]||(t[0]=[(0,n.eW)("戳这里")]))),_:1})]),(0,n.Lk)("div",{class:(0,o.C4)(["intro-text",{"intro-kaoyan":i.kaoyan}])},[(0,n.Lk)("p",null,(0,o.v_)(i.kaoyan?"这一程霜雪披肩,终淬出笔锋里的晨曦。愿你合卷时,有剑归鞘的从容~":"“让我在接下来的日子里陪你一起成长吧”"),1),(0,n.Lk)("p",y,(0,o.v_)(i.kaoyan?"——致考研NEUers":"——NEU小站"),1)],2)])])])}var C=s(3825),L=s(4993),_={name:"HomeView",components:{Navbar:C.A},created(){document.title="NEU小站"},data(){return{kaoyan:!1}},methods:{goTo(e,t=!1){const s={course:"https://course.xn--xhq44jb2fzpc.com",oj:"https://oj.xn--xhq44jb2fzpc.com"},a=s[e];if(a)if(t){const e=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<768;e?L.A.confirm("推荐在电脑端访问,以获得最佳体验。仍要继续吗?","提示").then((()=>{window.open(a,"_blank")})).catch((()=>{})):window.open(a,"_blank")}else window.open(a,"_blank");else console.error(`No URL found for name: ${e}`)}}},E=s(1241);const A=(0,E.A)(_,[["render",w],["__scopeId","data-v-5f3e32dc"]]);var I=A,x=s(4130),M=s.n(x);M().configure({showSpinner:!1});const X=[{path:"/",name:"home",component:I},{path:"/login",name:"login",component:()=>s.e(225).then(s.bind(s,225))},{path:"/article/:id",name:"article-detail",component:()=>s.e(493).then(s.bind(s,5493))},{path:"/about",name:"about",component:()=>s.e(893).then(s.bind(s,5893))},{path:"/strategy",name:"strategy",component:()=>s.e(608).then(s.bind(s,5608))},{path:"/resources",name:"resources",component:()=>s.e(556).then(s.bind(s,556))},{path:"/ranking",name:"ranking",component:()=>s.e(550).then(s.bind(s,1550))},{path:"/:pathMatch(.*)*",name:"404",component:()=>s.e(899).then(s.bind(s,3899))},{path:"/search",name:"search",component:()=>s.e(325).then(s.bind(s,4325))},{path:"/user-center",name:"user-center",component:()=>s.e(225).then(s.bind(s,225))},{path:"/app",name:"app",component:()=>s.e(159).then(s.bind(s,5540))},{path:"/submit",name:"submit",component:()=>Promise.all([s.e(625),s.e(954)]).then(s.bind(s,4954))},{path:"/preview",name:"preview",component:()=>s.e(493).then(s.bind(s,5493))},{path:"/edit",name:"edit-article",component:()=>Promise.all([s.e(625),s.e(954)]).then(s.bind(s,4954))},{path:"/widgets",name:"widgets",component:()=>s.e(155).then(s.bind(s,5155))},{path:"/widgets/webvpn",name:"webvpn",component:()=>s.e(898).then(s.bind(s,898))},{path:"/subscribe",name:"subscribe",component:()=>s.e(637).then(s.bind(s,3637))},{path:"/advice",name:"advice",component:()=>Promise.all([s.e(625),s.e(11)]).then(s.bind(s,7011))},{path:"/qa",name:"qa",component:()=>s.e(188).then(s.bind(s,7188))}],P=(0,p.aE)({history:(0,p.LA)("/"),routes:X});P.beforeEach(((e,t,s)=>{M().start(),s()})),P.afterEach((()=>{M().done()}));var S=P,j=s(2090);const z=(0,a.Ef)(g);z.config.globalProperties.$barMessage=j.A,z.use(S).mount("#app"),window.$barMessage=j.A}},t={};function s(a){var n=t[a];if(void 0!==n)return n.exports;var o=t[a]={exports:{}};return e[a].call(o.exports,o,o.exports,s),o.exports}s.m=e,function(){var e=[];s.O=function(t,a,n,o){if(!a){var i=1/0;for(d=0;d=o)&&Object.keys(s.O).every((function(e){return s.O[e](a[r])}))?a.splice(r--,1):(l=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[a,n,o]}}(),function(){s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,{a:t}),t}}(),function(){s.d=function(e,t){for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,a){return s.f[a](e,t),t}),[]))}}(),function(){s.u=function(e){return"js/"+e+"."+{11:"b66012a9",12:"dc7bebdb",155:"fda25d1c",159:"27121bfb",188:"8360fee7",225:"a1a776b7",325:"748aabdf",493:"70eaafd9",550:"518471f5",556:"fad1d0d1",608:"0fae2b59",625:"4ff04b31",637:"d6eaf3fc",893:"894d0c3e",898:"08f09bf8",899:"c894bc0f",940:"562973c0",954:"6c33aa27"}[e]+".js"}}(),function(){s.miniCssF=function(e){return"css/"+e+"."+{11:"0ebea814",155:"e92d57c5",159:"8357e143",188:"0f0e1e73",225:"57387d34",325:"fa8a5d86",493:"d5089386",550:"7c932b4a",556:"6a7a8c4a",608:"2533838f",625:"b01fd648",637:"260fb010",893:"c0f251e8",898:"6cbcb5bc",899:"35501d47",954:"b8c67783"}[e]+".css"}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="newfront:";s.l=function(a,n,o,i){if(e[a])e[a].push(n);else{var l,r;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d
标 * 的问题为必填项
- 一位同学仅限填写一次,请不要重复填写~
+ 一位同学仅限填写一次,请登录后填写,且不要重复填写哦~
我们会认真对待每一份答案,认真填写的同学将获得至少1个月的VIP权益~
@@ -283,6 +283,7 @@ export default {
},
mounted() {
document.title = '与你一起,让NEU小站变得更好💞';
+ window.scrollTo({ top: 0, behavior: 'smooth' });
},
methods: {
getToken() {
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 59d09aa..dac7893 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -11,8 +11,10 @@
查看下载
-->
-
课程评分V2版本已上线,移动端可用! 入口:
-
课程评分系统
+
+
2025年度问卷已上线,我们期待您的反馈! 入口:
+
戳这里