From c537807f5c775360cb34347c1bd36cc85baef928 Mon Sep 17 00:00:00 2001 From: ember <1279347317@qq.com> Date: Sun, 13 Apr 2025 00:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=89=E4=BF=AE=E8=AF=BE?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/css/{14.e76c0ca7.css => 287.7da28f35.css} | 2 +- dist/index.html | 2 +- dist/js/14.57fda0cc.js | 2 -- dist/js/287.f37f152f.js | 2 ++ dist/js/app.7900698b.js | 2 ++ dist/js/app.a7617884.js | 2 -- src/views/ResourceView.vue | 1 + 7 files changed, 7 insertions(+), 6 deletions(-) rename dist/css/{14.e76c0ca7.css => 287.7da28f35.css} (63%) delete mode 100644 dist/js/14.57fda0cc.js create mode 100644 dist/js/287.f37f152f.js create mode 100644 dist/js/app.7900698b.js delete mode 100644 dist/js/app.a7617884.js diff --git a/dist/css/14.e76c0ca7.css b/dist/css/287.7da28f35.css similarity index 63% rename from dist/css/14.e76c0ca7.css rename to dist/css/287.7da28f35.css index d381c2f..d907d26 100644 --- a/dist/css/14.e76c0ca7.css +++ b/dist/css/287.7da28f35.css @@ -1 +1 @@ -.card-list-container[data-v-4c3bb6b4]{width:100%;padding:20px 0}.card-grid[data-v-4c3bb6b4]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card[data-v-4c3bb6b4]{background-color:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .3s,box-shadow .3s;cursor:pointer;height:100%}.card[data-v-4c3bb6b4]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.card-content[data-v-4c3bb6b4]{padding:16px;display:flex;flex-direction:column;height:100%}.card-title[data-v-4c3bb6b4]{margin:0 0 12px 0;font-size:1.2rem;line-height:1.4;font-weight:600;color:#333;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.card-tags[data-v-4c3bb6b4]{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.article-tag[data-v-4c3bb6b4]{padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.08)}.official[data-v-4c3bb6b4]{background-color:#e6f7ff;color:#1890ff}.highlight[data-v-4c3bb6b4]{background-color:#f6ffed;color:#52c41a}.top[data-v-4c3bb6b4]{background-color:#fff7e6;color:#fa8c16}.card-meta[data-v-4c3bb6b4]{display:flex;justify-content:space-between;margin-bottom:12px;font-size:.85rem;color:#666}.card-tags-list[data-v-4c3bb6b4]{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.card-tag[data-v-4c3bb6b4]{background-color:#f5f5f5;padding:2px 8px;border-radius:4px;font-size:.7rem;color:#666}.table-container[data-v-4c3bb6b4]{width:100%;overflow-x:auto}.articles-table[data-v-4c3bb6b4]{width:100%;border-collapse:collapse;box-shadow:0 2px 8px rgba(0,0,0,.06);background-color:#fff;border-radius:8px;overflow:hidden}.articles-table td[data-v-4c3bb6b4],.articles-table th[data-v-4c3bb6b4]{padding:12px 16px;text-align:left}.articles-table th[data-v-4c3bb6b4]{background-color:#f5f5f5;font-weight:600;color:#333}.articles-table tr[data-v-4c3bb6b4]{border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s}.articles-table tr[data-v-4c3bb6b4]:last-child{border-bottom:none}.articles-table tr[data-v-4c3bb6b4]:hover{background-color:#f9f9f9}.pagination[data-v-4c3bb6b4]{display:flex;justify-content:center;align-items:center;margin-top:30px}.pagination-btn[data-v-4c3bb6b4]{padding:6px 14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.pagination-btn[data-v-4c3bb6b4]:hover:not(:disabled){color:#1890ff;border-color:#1890ff}.pagination-btn[data-v-4c3bb6b4]:disabled{color:#d9d9d9;cursor:not-allowed;background-color:#f5f5f5}.page-info[data-v-4c3bb6b4]{margin:0 15px;color:#666}.loading[data-v-4c3bb6b4]{display:flex;justify-content:center;align-items:center;padding:30px 0;flex-direction:column}.loading .loading-spinner[data-v-4c3bb6b4]{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#1890ff;animation:spin-4c3bb6b4 1s ease-in-out infinite;margin-bottom:10px}@keyframes spin-4c3bb6b4{to{transform:rotate(1turn)}}.no-data[data-v-4c3bb6b4]{grid-column:1/-1;text-align:center;padding:30px 0;color:#999;font-size:1rem}@media(max-width:1024px){.card-grid[data-v-4c3bb6b4]{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.card-grid[data-v-4c3bb6b4]{grid-template-columns:1fr}.card-title[data-v-4c3bb6b4]{font-size:1.1rem}.pagination-btn[data-v-4c3bb6b4]{padding:5px 12px}}.resource-view[data-v-67a7fa70]{background-color:#f5f5f7;min-height:100vh;padding-top:60px}.container[data-v-67a7fa70]{max-width:1200px;margin:0 auto;padding:2rem 1rem}.page-title[data-v-67a7fa70]{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:#333;text-align:center}.intro-card[data-v-67a7fa70]{background-color:#fff;border-radius:8px;padding:1.5rem 2rem;margin-bottom:2rem;box-shadow:0 2px 10px rgba(0,0,0,.05);border-left:4px solid #3273dc;position:relative;overflow:hidden}.intro-card[data-v-67a7fa70]:before{content:"";position:absolute;top:0;right:0;width:150px;height:150px;background:radial-gradient(circle at top right,rgba(50,115,220,.08),transparent 70%);z-index:0}.intro-text[data-v-67a7fa70]{color:#555;line-height:1.6;margin-bottom:1rem;position:relative;z-index:1}.intro-text[data-v-67a7fa70]:last-child{margin-bottom:0}.filter-control[data-v-67a7fa70]{background-color:#fff;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease;border-left:4px solid #722ed1}.filter-control[data-v-67a7fa70]:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.filter-title[data-v-67a7fa70]{margin:0;font-size:1.2rem;font-weight:600;color:#333}.filters-container[data-v-67a7fa70]{margin-bottom:2rem;animation:slideDown-67a7fa70 .3s ease}@keyframes slideDown-67a7fa70{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tag-selection[data-v-67a7fa70]{background-color:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 10px rgba(0,0,0,.05)}.college-category[data-v-67a7fa70]{border-left:4px solid #3273dc}.resource-category[data-v-67a7fa70]{border-left:4px solid #52c41a}.resource-category .tag-control-btn[data-v-67a7fa70]{background:linear-gradient(90deg,#52c41a,#73d13d);box-shadow:0 3px 6px rgba(82,196,26,.2)}.resource-category .tag-control-btn[data-v-67a7fa70]:hover{background:linear-gradient(90deg,#49ad18,#67bc35);box-shadow:0 5px 10px rgba(82,196,26,.3)}.resource-category .tag-control-btn[data-v-67a7fa70]:active{background:linear-gradient(90deg,#3f9714,#579b2d);box-shadow:0 2px 4px rgba(82,196,26,.2)}.resource-category .tag-chip.active[data-v-67a7fa70]{background-color:#52c41a}.tag-header[data-v-67a7fa70]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tag-title[data-v-67a7fa70]{font-size:1.2rem;font-weight:600;color:#333;margin:0}.tag-controls[data-v-67a7fa70]{display:flex;gap:.8rem;align-items:center}.toggle-icon[data-v-67a7fa70]{font-size:1rem;color:#722ed1;transition:transform .3s ease}.toggle-icon.is-active[data-v-67a7fa70]{transform:rotate(180deg)}.tag-control-btn[data-v-67a7fa70]{padding:.6rem 1.2rem;border:none;background:linear-gradient(90deg,#3273dc,#4286f4);color:#fff;border-radius:30px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;box-shadow:0 3px 6px rgba(50,115,220,.2)}.tag-control-btn[data-v-67a7fa70]:hover{transform:translateY(-2px);box-shadow:0 5px 10px rgba(50,115,220,.3);background:linear-gradient(90deg,#2e69cc,#3b7ce3)}.tag-control-btn[data-v-67a7fa70]:active{transform:translateY(0);box-shadow:0 2px 4px rgba(50,115,220,.2);background:linear-gradient(90deg,#2960bd,#356ccc)}.tags-container[data-v-67a7fa70]{display:flex;flex-wrap:wrap;gap:.8rem}.tag-chip[data-v-67a7fa70]{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#f1f1f1;border-radius:20px;font-size:.9rem;cursor:pointer;transition:all .2s}.tag-chip[data-v-67a7fa70]:hover{background-color:#e0e0e0}.tag-chip.active[data-v-67a7fa70]{background-color:#3273dc;color:#fff}.tag-chip .check-icon[data-v-67a7fa70]{font-size:.8rem}@media(max-width:768px){.tag-header[data-v-67a7fa70]{flex-direction:column;align-items:flex-start;gap:1rem}.page-title[data-v-67a7fa70]{font-size:1.6rem;text-align:left}.tag-selection[data-v-67a7fa70]{padding:1rem}.intro-card[data-v-67a7fa70]{padding:1.2rem 1rem}.intro-text[data-v-67a7fa70]{font-size:.95rem}.tag-controls[data-v-67a7fa70]{width:100%;justify-content:space-between}.filter-control[data-v-67a7fa70]{padding:.8rem 1rem}} \ No newline at end of file +.card-list-container[data-v-4c3bb6b4]{width:100%;padding:20px 0}.card-grid[data-v-4c3bb6b4]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card[data-v-4c3bb6b4]{background-color:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .3s,box-shadow .3s;cursor:pointer;height:100%}.card[data-v-4c3bb6b4]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.card-content[data-v-4c3bb6b4]{padding:16px;display:flex;flex-direction:column;height:100%}.card-title[data-v-4c3bb6b4]{margin:0 0 12px 0;font-size:1.2rem;line-height:1.4;font-weight:600;color:#333;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.card-tags[data-v-4c3bb6b4]{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.article-tag[data-v-4c3bb6b4]{padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.08)}.official[data-v-4c3bb6b4]{background-color:#e6f7ff;color:#1890ff}.highlight[data-v-4c3bb6b4]{background-color:#f6ffed;color:#52c41a}.top[data-v-4c3bb6b4]{background-color:#fff7e6;color:#fa8c16}.card-meta[data-v-4c3bb6b4]{display:flex;justify-content:space-between;margin-bottom:12px;font-size:.85rem;color:#666}.card-tags-list[data-v-4c3bb6b4]{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.card-tag[data-v-4c3bb6b4]{background-color:#f5f5f5;padding:2px 8px;border-radius:4px;font-size:.7rem;color:#666}.table-container[data-v-4c3bb6b4]{width:100%;overflow-x:auto}.articles-table[data-v-4c3bb6b4]{width:100%;border-collapse:collapse;box-shadow:0 2px 8px rgba(0,0,0,.06);background-color:#fff;border-radius:8px;overflow:hidden}.articles-table td[data-v-4c3bb6b4],.articles-table th[data-v-4c3bb6b4]{padding:12px 16px;text-align:left}.articles-table th[data-v-4c3bb6b4]{background-color:#f5f5f5;font-weight:600;color:#333}.articles-table tr[data-v-4c3bb6b4]{border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s}.articles-table tr[data-v-4c3bb6b4]:last-child{border-bottom:none}.articles-table tr[data-v-4c3bb6b4]:hover{background-color:#f9f9f9}.pagination[data-v-4c3bb6b4]{display:flex;justify-content:center;align-items:center;margin-top:30px}.pagination-btn[data-v-4c3bb6b4]{padding:6px 14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.pagination-btn[data-v-4c3bb6b4]:hover:not(:disabled){color:#1890ff;border-color:#1890ff}.pagination-btn[data-v-4c3bb6b4]:disabled{color:#d9d9d9;cursor:not-allowed;background-color:#f5f5f5}.page-info[data-v-4c3bb6b4]{margin:0 15px;color:#666}.loading[data-v-4c3bb6b4]{display:flex;justify-content:center;align-items:center;padding:30px 0;flex-direction:column}.loading .loading-spinner[data-v-4c3bb6b4]{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#1890ff;animation:spin-4c3bb6b4 1s ease-in-out infinite;margin-bottom:10px}@keyframes spin-4c3bb6b4{to{transform:rotate(1turn)}}.no-data[data-v-4c3bb6b4]{grid-column:1/-1;text-align:center;padding:30px 0;color:#999;font-size:1rem}@media(max-width:1024px){.card-grid[data-v-4c3bb6b4]{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.card-grid[data-v-4c3bb6b4]{grid-template-columns:1fr}.card-title[data-v-4c3bb6b4]{font-size:1.1rem}.pagination-btn[data-v-4c3bb6b4]{padding:5px 12px}}.resource-view[data-v-0aab4a81]{background-color:#f5f5f7;min-height:100vh;padding-top:60px}.container[data-v-0aab4a81]{max-width:1200px;margin:0 auto;padding:2rem 1rem}.page-title[data-v-0aab4a81]{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:#333;text-align:center}.intro-card[data-v-0aab4a81]{background-color:#fff;border-radius:8px;padding:1.5rem 2rem;margin-bottom:2rem;box-shadow:0 2px 10px rgba(0,0,0,.05);border-left:4px solid #3273dc;position:relative;overflow:hidden}.intro-card[data-v-0aab4a81]:before{content:"";position:absolute;top:0;right:0;width:150px;height:150px;background:radial-gradient(circle at top right,rgba(50,115,220,.08),transparent 70%);z-index:0}.intro-text[data-v-0aab4a81]{color:#555;line-height:1.6;margin-bottom:1rem;position:relative;z-index:1}.intro-text[data-v-0aab4a81]:last-child{margin-bottom:0}.filter-control[data-v-0aab4a81]{background-color:#fff;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease;border-left:4px solid #722ed1}.filter-control[data-v-0aab4a81]:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.filter-title[data-v-0aab4a81]{margin:0;font-size:1.2rem;font-weight:600;color:#333}.filters-container[data-v-0aab4a81]{margin-bottom:2rem;animation:slideDown-0aab4a81 .3s ease}@keyframes slideDown-0aab4a81{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tag-selection[data-v-0aab4a81]{background-color:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 10px rgba(0,0,0,.05)}.college-category[data-v-0aab4a81]{border-left:4px solid #3273dc}.resource-category[data-v-0aab4a81]{border-left:4px solid #52c41a}.resource-category .tag-control-btn[data-v-0aab4a81]{background:linear-gradient(90deg,#52c41a,#73d13d);box-shadow:0 3px 6px rgba(82,196,26,.2)}.resource-category .tag-control-btn[data-v-0aab4a81]:hover{background:linear-gradient(90deg,#49ad18,#67bc35);box-shadow:0 5px 10px rgba(82,196,26,.3)}.resource-category .tag-control-btn[data-v-0aab4a81]:active{background:linear-gradient(90deg,#3f9714,#579b2d);box-shadow:0 2px 4px rgba(82,196,26,.2)}.resource-category .tag-chip.active[data-v-0aab4a81]{background-color:#52c41a}.tag-header[data-v-0aab4a81]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tag-title[data-v-0aab4a81]{font-size:1.2rem;font-weight:600;color:#333;margin:0}.tag-controls[data-v-0aab4a81]{display:flex;gap:.8rem;align-items:center}.toggle-icon[data-v-0aab4a81]{font-size:1rem;color:#722ed1;transition:transform .3s ease}.toggle-icon.is-active[data-v-0aab4a81]{transform:rotate(180deg)}.tag-control-btn[data-v-0aab4a81]{padding:.6rem 1.2rem;border:none;background:linear-gradient(90deg,#3273dc,#4286f4);color:#fff;border-radius:30px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;box-shadow:0 3px 6px rgba(50,115,220,.2)}.tag-control-btn[data-v-0aab4a81]:hover{transform:translateY(-2px);box-shadow:0 5px 10px rgba(50,115,220,.3);background:linear-gradient(90deg,#2e69cc,#3b7ce3)}.tag-control-btn[data-v-0aab4a81]:active{transform:translateY(0);box-shadow:0 2px 4px rgba(50,115,220,.2);background:linear-gradient(90deg,#2960bd,#356ccc)}.tags-container[data-v-0aab4a81]{display:flex;flex-wrap:wrap;gap:.8rem}.tag-chip[data-v-0aab4a81]{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#f1f1f1;border-radius:20px;font-size:.9rem;cursor:pointer;transition:all .2s}.tag-chip[data-v-0aab4a81]:hover{background-color:#e0e0e0}.tag-chip.active[data-v-0aab4a81]{background-color:#3273dc;color:#fff}.tag-chip .check-icon[data-v-0aab4a81]{font-size:.8rem}@media(max-width:768px){.tag-header[data-v-0aab4a81]{flex-direction:column;align-items:flex-start;gap:1rem}.page-title[data-v-0aab4a81]{font-size:1.6rem;text-align:left}.tag-selection[data-v-0aab4a81]{padding:1rem}.intro-card[data-v-0aab4a81]{padding:1.2rem 1rem}.intro-text[data-v-0aab4a81]{font-size:.95rem}.tag-controls[data-v-0aab4a81]{width:100%;justify-content:space-between}.filter-control[data-v-0aab4a81]{padding:.8rem 1rem}} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 2693f10..17f1a9c 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -NEU小站
\ No newline at end of file +NEU小站
\ No newline at end of file diff --git a/dist/js/14.57fda0cc.js b/dist/js/14.57fda0cc.js deleted file mode 100644 index 0d1573b..0000000 --- a/dist/js/14.57fda0cc.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[14],{5014:function(e,a,t){t.r(a),t.d(a,{default:function(){return w}});var s=t(6768),l=t(4232),i=t(5130);const c={class:"resource-view"},n={class:"container"},r={class:"filters-container"},o={class:"tag-selection college-category"},g={class:"tag-header"},d={class:"tag-controls"},u={class:"tags-container"},h=["onClick"],C={key:0,class:"check-icon"},k={class:"tag-selection resource-category"},p={class:"tag-header"},v={class:"tag-controls"},m={class:"tags-container"},y=["onClick"],f={key:0,class:"check-icon"};function L(e,a,t,L,T,P){const b=(0,s.g2)("NavBar"),E=(0,s.g2)("CardList");return(0,s.uX)(),(0,s.CE)("div",c,[(0,s.bF)(b),(0,s.Lk)("div",n,[a[6]||(a[6]=(0,s.Lk)("h1",{class:"page-title"},"资源共享",-1)),a[7]||(a[7]=(0,s.Lk)("div",{class:"intro-card"},[(0,s.Lk)("p",{class:"intro-text"}," 为鼓励大家积极投稿,本站投稿者可获得专属访问密码以访问本站加密资源,感谢支持~ ")],-1)),(0,s.Lk)("div",{class:"filter-control",onClick:a[0]||(a[0]=(...e)=>P.toggleFilterPanel&&P.toggleFilterPanel(...e))},[a[3]||(a[3]=(0,s.Lk)("h2",{class:"filter-title"},"筛选",-1)),(0,s.Lk)("span",{class:(0,l.C4)(["toggle-icon",{"is-active":!T.filtersCollapsed}])},"▼",2)]),(0,s.bo)((0,s.Lk)("div",r,[(0,s.Lk)("div",o,[(0,s.Lk)("div",g,[a[4]||(a[4]=(0,s.Lk)("h2",{class:"tag-title"},"按学院筛选",-1)),(0,s.Lk)("div",d,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:a[1]||(a[1]=(...e)=>P.clearCollegeTags&&P.clearCollegeTags(...e))},"清除")])]),(0,s.Lk)("div",u,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(T.collegeTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,l.C4)(["tag-chip",{active:T.selectedCollegeTags.includes(e.id)}]),onClick:a=>P.toggleCollegeTag(e.id)},[(0,s.eW)((0,l.v_)(e.name)+" ",1),T.selectedCollegeTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",C,"✓")):(0,s.Q3)("",!0)],10,h)))),128))])]),(0,s.Lk)("div",k,[(0,s.Lk)("div",p,[a[5]||(a[5]=(0,s.Lk)("h2",{class:"tag-title"},"按资源类别",-1)),(0,s.Lk)("div",v,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:a[2]||(a[2]=(...e)=>P.clearCategoryTags&&P.clearCategoryTags(...e))},"清除")])]),(0,s.Lk)("div",m,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(T.categoryTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,l.C4)(["tag-chip",{active:T.selectedCategoryTags.includes(e.id)}]),onClick:a=>P.toggleCategoryTag(e.id)},[(0,s.eW)((0,l.v_)(e.name)+" ",1),T.selectedCategoryTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",f,"✓")):(0,s.Q3)("",!0)],10,y)))),128))])])],512),[[i.aG,!T.filtersCollapsed]]),(0,s.bF)(E,{searchParams:P.searchParams,mode:1,pageSize:12},null,8,["searchParams"])])])}t(4114),t(8111),t(2489);var T=t(3070),P=t(9009),b={name:"ResourceView",components:{NavBar:T.A,CardList:P.A},data(){return{filtersCollapsed:!0,selectedCollegeTags:[],selectedCategoryTags:[],collegeTags:[{id:1,name:"软件学院"},{id:2,name:"计算机学院"},{id:3,name:"工商管理学院"},{id:4,name:"理学院"},{id:18,name:"信息学院"}],categoryTags:[{id:5,name:"课件"},{id:7,name:"课本"},{id:8,name:"习题答案"},{id:9,name:"期末真题"},{id:10,name:"PDF"},{id:16,name:"公共课"},{id:17,name:"专业课"},{id:20,name:"题库"}]}},created(){document.title="资源共享 - NEU小站"},computed:{searchParams(){const e={section:1},a=[...this.selectedCollegeTags,...this.selectedCategoryTags];return a.length>0&&(e.tags=a),e}},methods:{toggleFilterPanel(){this.filtersCollapsed=!this.filtersCollapsed},toggleCollegeTag(e){this.selectedCollegeTags.includes(e)?this.selectedCollegeTags=this.selectedCollegeTags.filter((a=>a!==e)):this.selectedCollegeTags.push(e)},toggleCategoryTag(e){this.selectedCategoryTags.includes(e)?this.selectedCategoryTags=this.selectedCategoryTags.filter((a=>a!==e)):this.selectedCategoryTags.push(e)},clearCollegeTags(){this.selectedCollegeTags=[]},clearCategoryTags(){this.selectedCategoryTags=[]}}},E=t(1241);const X=(0,E.A)(b,[["render",L],["__scopeId","data-v-67a7fa70"]]);var w=X},9009:function(e,a,t){t.d(a,{A:function(){return Q}});var s=t(6768),l=t(4232);const i={class:"card-list-container"},c={key:0,class:"card-grid"},n=["onClick"],r={class:"card-content"},o={class:"card-title"},g={class:"card-tags"},d={key:0,class:"article-tag official"},u={key:1,class:"article-tag highlight"},h={key:2,class:"article-tag top"},C={class:"card-meta"},k={class:"card-section"},p={class:"card-date"},v={class:"card-tags-list"},m={key:0,class:"no-data"},y={key:1,class:"table-container"},f={class:"articles-table"},L=["onClick"],T={key:0,class:"no-data"},P={key:2,class:"loading"},b={key:3,class:"pagination"},E=["disabled"],X={class:"page-info"},w=["disabled"];function _(e,a,t,_,A,F){return(0,s.uX)(),(0,s.CE)("div",i,[1===t.mode?((0,s.uX)(),(0,s.CE)("div",c,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(A.articles,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"card",onClick:a=>F.viewArticle(e.id)},[(0,s.Lk)("div",r,[(0,s.Lk)("h3",o,(0,l.v_)(e.title),1),(0,s.Lk)("div",g,[e.official?((0,s.uX)(),(0,s.CE)("span",d,"官方")):(0,s.Q3)("",!0),e.highlight?((0,s.uX)(),(0,s.CE)("span",u,"优质")):(0,s.Q3)("",!0),e.top?((0,s.uX)(),(0,s.CE)("span",h,"置顶")):(0,s.Q3)("",!0)]),(0,s.Lk)("div",C,[(0,s.Lk)("span",k,(0,l.v_)(F.getSectionName(e.section)),1),(0,s.Lk)("span",p,"更新于 "+(0,l.v_)(F.formatDate(e.updated_at)),1)]),(0,s.Lk)("div",v,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(e.tags,(e=>((0,s.uX)(),(0,s.CE)("span",{key:e.id,class:"card-tag"},(0,l.v_)(e.name),1)))),128))])])],8,n)))),128)),0!==A.articles.length||A.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",m," 暂无符合条件的文章 "))])):((0,s.uX)(),(0,s.CE)("div",y,[(0,s.Lk)("table",f,[a[2]||(a[2]=(0,s.Lk)("thead",null,[(0,s.Lk)("tr",null,[(0,s.Lk)("th",null,"文章标题")])],-1)),(0,s.Lk)("tbody",null,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(A.articles,(e=>((0,s.uX)(),(0,s.CE)("tr",{key:e.id,onClick:a=>F.viewArticle(e.id)},[(0,s.Lk)("td",null,(0,l.v_)(e.title),1)],8,L)))),128))])]),0!==A.articles.length||A.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",T," 暂无符合条件的文章 "))])),A.loading?((0,s.uX)(),(0,s.CE)("div",P,a[3]||(a[3]=[(0,s.Lk)("div",{class:"loading-spinner"},null,-1),(0,s.Lk)("span",null,"正在加载...",-1)]))):(0,s.Q3)("",!0),A.totalPages>1&&!A.loading?((0,s.uX)(),(0,s.CE)("div",b,[(0,s.Lk)("button",{disabled:1===A.currentPage,onClick:a[0]||(a[0]=e=>F.changePage(A.currentPage-1)),class:"pagination-btn"}," 上一页 ",8,E),(0,s.Lk)("span",X,(0,l.v_)(A.currentPage)+" / "+(0,l.v_)(A.totalPages),1),(0,s.Lk)("button",{disabled:A.currentPage===A.totalPages,onClick:a[1]||(a[1]=e=>F.changePage(A.currentPage+1)),class:"pagination-btn"}," 下一页 ",8,w)])):(0,s.Q3)("",!0)])}t(4114);var A={name:"CardList",props:{searchParams:{type:Object,default:()=>({})},mode:{type:Number,default:1},pageSize:{type:Number,default:12}},data(){return{articles:[],currentPage:1,totalPages:0,total:0,loading:!1}},watch:{searchParams:{handler(){this.currentPage=1,this.fetchArticles()},deep:!0}},mounted(){this.fetchArticles()},methods:{async fetchArticles(){this.loading=!0;try{const e=await fetch("https://newfront.xn--xhq44jb2fzpc.com/search/general",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.searchParams,mode:this.mode,page:this.currentPage,pageSize:this.pageSize})});if(!e.ok)throw new Error("获取文章失败");const a=await e.json();this.articles=a.articles,this.totalPages=a.totalPages,this.total=a.total}catch(e){console.error("获取文章数据失败:",e),this.articles=[]}finally{this.loading=!1}},getSectionName(e){return 0===e?"攻略指南":"资源共享"},formatDate(e){if(!e)return"";const a=new Date(e);return a.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})},changePage(e){e>=1&&e<=this.totalPages&&(this.currentPage=e,this.fetchArticles())},viewArticle(e){this.$router.push(`/article/${e}`)}}},F=t(1241);const N=(0,F.A)(A,[["render",_],["__scopeId","data-v-4c3bb6b4"]]);var Q=N}}]); -//# sourceMappingURL=14.57fda0cc.js.map \ No newline at end of file diff --git a/dist/js/287.f37f152f.js b/dist/js/287.f37f152f.js new file mode 100644 index 0000000..d3b800e --- /dev/null +++ b/dist/js/287.f37f152f.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[287],{5287:function(e,a,t){t.r(a),t.d(a,{default:function(){return w}});var s=t(6768),l=t(4232),i=t(5130);const c={class:"resource-view"},n={class:"container"},r={class:"filters-container"},o={class:"tag-selection college-category"},g={class:"tag-header"},d={class:"tag-controls"},u={class:"tags-container"},h=["onClick"],C={key:0,class:"check-icon"},k={class:"tag-selection resource-category"},p={class:"tag-header"},v={class:"tag-controls"},m={class:"tags-container"},y=["onClick"],f={key:0,class:"check-icon"};function L(e,a,t,L,T,P){const b=(0,s.g2)("NavBar"),E=(0,s.g2)("CardList");return(0,s.uX)(),(0,s.CE)("div",c,[(0,s.bF)(b),(0,s.Lk)("div",n,[a[6]||(a[6]=(0,s.Lk)("h1",{class:"page-title"},"资源共享",-1)),a[7]||(a[7]=(0,s.Lk)("div",{class:"intro-card"},[(0,s.Lk)("p",{class:"intro-text"}," 为鼓励大家积极投稿,本站投稿者可获得专属访问密码以访问本站加密资源,感谢支持~ ")],-1)),(0,s.Lk)("div",{class:"filter-control",onClick:a[0]||(a[0]=(...e)=>P.toggleFilterPanel&&P.toggleFilterPanel(...e))},[a[3]||(a[3]=(0,s.Lk)("h2",{class:"filter-title"},"筛选",-1)),(0,s.Lk)("span",{class:(0,l.C4)(["toggle-icon",{"is-active":!T.filtersCollapsed}])},"▼",2)]),(0,s.bo)((0,s.Lk)("div",r,[(0,s.Lk)("div",o,[(0,s.Lk)("div",g,[a[4]||(a[4]=(0,s.Lk)("h2",{class:"tag-title"},"按学院筛选",-1)),(0,s.Lk)("div",d,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:a[1]||(a[1]=(...e)=>P.clearCollegeTags&&P.clearCollegeTags(...e))},"清除")])]),(0,s.Lk)("div",u,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(T.collegeTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,l.C4)(["tag-chip",{active:T.selectedCollegeTags.includes(e.id)}]),onClick:a=>P.toggleCollegeTag(e.id)},[(0,s.eW)((0,l.v_)(e.name)+" ",1),T.selectedCollegeTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",C,"✓")):(0,s.Q3)("",!0)],10,h)))),128))])]),(0,s.Lk)("div",k,[(0,s.Lk)("div",p,[a[5]||(a[5]=(0,s.Lk)("h2",{class:"tag-title"},"按资源类别",-1)),(0,s.Lk)("div",v,[(0,s.Lk)("button",{class:"tag-control-btn",onClick:a[2]||(a[2]=(...e)=>P.clearCategoryTags&&P.clearCategoryTags(...e))},"清除")])]),(0,s.Lk)("div",m,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(T.categoryTags,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:(0,l.C4)(["tag-chip",{active:T.selectedCategoryTags.includes(e.id)}]),onClick:a=>P.toggleCategoryTag(e.id)},[(0,s.eW)((0,l.v_)(e.name)+" ",1),T.selectedCategoryTags.includes(e.id)?((0,s.uX)(),(0,s.CE)("span",f,"✓")):(0,s.Q3)("",!0)],10,y)))),128))])])],512),[[i.aG,!T.filtersCollapsed]]),(0,s.bF)(E,{searchParams:P.searchParams,mode:1,pageSize:12},null,8,["searchParams"])])])}t(4114),t(8111),t(2489);var T=t(3070),P=t(9009),b={name:"ResourceView",components:{NavBar:T.A,CardList:P.A},data(){return{filtersCollapsed:!0,selectedCollegeTags:[],selectedCategoryTags:[],collegeTags:[{id:1,name:"软件学院"},{id:2,name:"计算机学院"},{id:3,name:"工商管理学院"},{id:4,name:"理学院"},{id:18,name:"信息学院"}],categoryTags:[{id:5,name:"课件"},{id:7,name:"课本"},{id:8,name:"习题答案"},{id:9,name:"期末真题"},{id:10,name:"PDF"},{id:16,name:"公共课"},{id:17,name:"专业课"},{id:22,name:"选修课"},{id:20,name:"题库"}]}},created(){document.title="资源共享 - NEU小站"},computed:{searchParams(){const e={section:1},a=[...this.selectedCollegeTags,...this.selectedCategoryTags];return a.length>0&&(e.tags=a),e}},methods:{toggleFilterPanel(){this.filtersCollapsed=!this.filtersCollapsed},toggleCollegeTag(e){this.selectedCollegeTags.includes(e)?this.selectedCollegeTags=this.selectedCollegeTags.filter((a=>a!==e)):this.selectedCollegeTags.push(e)},toggleCategoryTag(e){this.selectedCategoryTags.includes(e)?this.selectedCategoryTags=this.selectedCategoryTags.filter((a=>a!==e)):this.selectedCategoryTags.push(e)},clearCollegeTags(){this.selectedCollegeTags=[]},clearCategoryTags(){this.selectedCategoryTags=[]}}},E=t(1241);const X=(0,E.A)(b,[["render",L],["__scopeId","data-v-0aab4a81"]]);var w=X},9009:function(e,a,t){t.d(a,{A:function(){return Q}});var s=t(6768),l=t(4232);const i={class:"card-list-container"},c={key:0,class:"card-grid"},n=["onClick"],r={class:"card-content"},o={class:"card-title"},g={class:"card-tags"},d={key:0,class:"article-tag official"},u={key:1,class:"article-tag highlight"},h={key:2,class:"article-tag top"},C={class:"card-meta"},k={class:"card-section"},p={class:"card-date"},v={class:"card-tags-list"},m={key:0,class:"no-data"},y={key:1,class:"table-container"},f={class:"articles-table"},L=["onClick"],T={key:0,class:"no-data"},P={key:2,class:"loading"},b={key:3,class:"pagination"},E=["disabled"],X={class:"page-info"},w=["disabled"];function _(e,a,t,_,A,F){return(0,s.uX)(),(0,s.CE)("div",i,[1===t.mode?((0,s.uX)(),(0,s.CE)("div",c,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(A.articles,(e=>((0,s.uX)(),(0,s.CE)("div",{key:e.id,class:"card",onClick:a=>F.viewArticle(e.id)},[(0,s.Lk)("div",r,[(0,s.Lk)("h3",o,(0,l.v_)(e.title),1),(0,s.Lk)("div",g,[e.official?((0,s.uX)(),(0,s.CE)("span",d,"官方")):(0,s.Q3)("",!0),e.highlight?((0,s.uX)(),(0,s.CE)("span",u,"优质")):(0,s.Q3)("",!0),e.top?((0,s.uX)(),(0,s.CE)("span",h,"置顶")):(0,s.Q3)("",!0)]),(0,s.Lk)("div",C,[(0,s.Lk)("span",k,(0,l.v_)(F.getSectionName(e.section)),1),(0,s.Lk)("span",p,"更新于 "+(0,l.v_)(F.formatDate(e.updated_at)),1)]),(0,s.Lk)("div",v,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(e.tags,(e=>((0,s.uX)(),(0,s.CE)("span",{key:e.id,class:"card-tag"},(0,l.v_)(e.name),1)))),128))])])],8,n)))),128)),0!==A.articles.length||A.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",m," 暂无符合条件的文章 "))])):((0,s.uX)(),(0,s.CE)("div",y,[(0,s.Lk)("table",f,[a[2]||(a[2]=(0,s.Lk)("thead",null,[(0,s.Lk)("tr",null,[(0,s.Lk)("th",null,"文章标题")])],-1)),(0,s.Lk)("tbody",null,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(A.articles,(e=>((0,s.uX)(),(0,s.CE)("tr",{key:e.id,onClick:a=>F.viewArticle(e.id)},[(0,s.Lk)("td",null,(0,l.v_)(e.title),1)],8,L)))),128))])]),0!==A.articles.length||A.loading?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",T," 暂无符合条件的文章 "))])),A.loading?((0,s.uX)(),(0,s.CE)("div",P,a[3]||(a[3]=[(0,s.Lk)("div",{class:"loading-spinner"},null,-1),(0,s.Lk)("span",null,"正在加载...",-1)]))):(0,s.Q3)("",!0),A.totalPages>1&&!A.loading?((0,s.uX)(),(0,s.CE)("div",b,[(0,s.Lk)("button",{disabled:1===A.currentPage,onClick:a[0]||(a[0]=e=>F.changePage(A.currentPage-1)),class:"pagination-btn"}," 上一页 ",8,E),(0,s.Lk)("span",X,(0,l.v_)(A.currentPage)+" / "+(0,l.v_)(A.totalPages),1),(0,s.Lk)("button",{disabled:A.currentPage===A.totalPages,onClick:a[1]||(a[1]=e=>F.changePage(A.currentPage+1)),class:"pagination-btn"}," 下一页 ",8,w)])):(0,s.Q3)("",!0)])}t(4114);var A={name:"CardList",props:{searchParams:{type:Object,default:()=>({})},mode:{type:Number,default:1},pageSize:{type:Number,default:12}},data(){return{articles:[],currentPage:1,totalPages:0,total:0,loading:!1}},watch:{searchParams:{handler(){this.currentPage=1,this.fetchArticles()},deep:!0}},mounted(){this.fetchArticles()},methods:{async fetchArticles(){this.loading=!0;try{const e=await fetch("https://newfront.xn--xhq44jb2fzpc.com/search/general",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.searchParams,mode:this.mode,page:this.currentPage,pageSize:this.pageSize})});if(!e.ok)throw new Error("获取文章失败");const a=await e.json();this.articles=a.articles,this.totalPages=a.totalPages,this.total=a.total}catch(e){console.error("获取文章数据失败:",e),this.articles=[]}finally{this.loading=!1}},getSectionName(e){return 0===e?"攻略指南":"资源共享"},formatDate(e){if(!e)return"";const a=new Date(e);return a.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})},changePage(e){e>=1&&e<=this.totalPages&&(this.currentPage=e,this.fetchArticles())},viewArticle(e){this.$router.push(`/article/${e}`)}}},F=t(1241);const N=(0,F.A)(A,[["render",_],["__scopeId","data-v-4c3bb6b4"]]);var Q=N}}]); +//# sourceMappingURL=287.f37f152f.js.map \ No newline at end of file diff --git a/dist/js/app.7900698b.js b/dist/js/app.7900698b.js new file mode 100644 index 0000000..dbbe656 --- /dev/null +++ b/dist/js/app.7900698b.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={3070:function(e,t,a){a.d(t,{A:function(){return S}});var n=a(6768),s=a(4232),o=a(5130);const i={class:"navbar"},r={class:"container"},c={class:"navbar-brand"},l={class:"navbar-end"},d={key:0,class:"navbar-item user-dropdown",style:{padding:"0"}},u=["src","alt"],h={class:"user-nickname"},p={class:"dropdown-menu"},m={key:1,class:"navbar-item"},g={key:0,class:"activation-dialog"},f={class:"activation-dialog-content"},v={class:"activation-methods"},b={class:"activation-method"},k={class:"activation-method"};function y(e,t,a,y,C,w){const L=(0,n.g2)("router-link");return(0,n.uX)(),(0,n.CE)("nav",i,[(0,n.Lk)("div",r,[(0,n.Lk)("div",c,[(0,n.bF)(L,{to:"/",class:"navbar-logo"},{default:(0,n.k6)((()=>t[8]||(t[8]=[(0,n.Lk)("img",{src:"https://download.xn--xhq44jb2fzpc.com/images/logo-hd.png",alt:"NEU小站",class:"navbar-logo-img"},null,-1),(0,n.Lk)("span",null,"NEU小站",-1)]))),_:1}),(0,n.Lk)("div",{class:(0,s.C4)(["navbar-burger",{"is-active":C.isMenuActive}]),onClick:t[0]||(t[0]=(...e)=>w.toggleMenu&&w.toggleMenu(...e))},t[9]||(t[9]=[(0,n.Lk)("span",null,null,-1),(0,n.Lk)("span",null,null,-1),(0,n.Lk)("span",null,null,-1)]),2)]),(0,n.Lk)("div",{class:(0,s.C4)(["navbar-menu",{"is-active":C.isMenuActive}])},[(0,n.Lk)("div",l,[(0,n.bF)(L,{to:"/",class:"navbar-item"},{default:(0,n.k6)((()=>t[10]||(t[10]=[(0,n.eW)("首页")]))),_:1}),(0,n.bF)(L,{to:"/strategy",class:"navbar-item"},{default:(0,n.k6)((()=>t[11]||(t[11]=[(0,n.eW)("攻略指南")]))),_:1}),(0,n.bF)(L,{to:"/resources",class:"navbar-item"},{default:(0,n.k6)((()=>t[12]||(t[12]=[(0,n.eW)("资源共享")]))),_:1}),(0,n.bF)(L,{to:"/app",class:"navbar-item"},{default:(0,n.k6)((()=>t[13]||(t[13]=[(0,n.eW)("应用中心")]))),_:1}),(0,n.bF)(L,{to:"/about",class:"navbar-item"},{default:(0,n.k6)((()=>t[14]||(t[14]=[(0,n.eW)("关于")]))),_:1}),(0,n.bF)(L,{to:"/search",class:"navbar-item"},{default:(0,n.k6)((()=>t[15]||(t[15]=[(0,n.eW)("搜索")]))),_:1}),C.userInfo?((0,n.uX)(),(0,n.CE)("div",d,[(0,n.Lk)("div",{class:"user-info",onClick:t[1]||(t[1]=(...e)=>w.toggleDropdown&&w.toggleDropdown(...e))},[(0,n.Lk)("img",{src:C.userInfo.avatar_path,class:"user-avatar",alt:C.userInfo.nickname},null,8,u),(0,n.Lk)("span",h,(0,s.v_)(C.userInfo.nickname),1),(0,n.Lk)("span",{class:(0,s.C4)(["dropdown-arrow",{"is-active":C.isDropdownActive}])},"▼",2)]),(0,n.bo)((0,n.Lk)("div",p,[(0,n.Lk)("div",{class:"dropdown-item",onClick:t[2]||(t[2]=(...e)=>w.handleUserCenter&&w.handleUserCenter(...e))},"个人中心"),(0,n.Lk)("div",{class:"dropdown-item",onClick:t[3]||(t[3]=(...e)=>w.handleLogout&&w.handleLogout(...e))},"退出登录")],512),[[o.aG,C.isDropdownActive]])])):((0,n.uX)(),(0,n.CE)("div",m,[(0,n.Lk)("a",{class:"login-btn",onClick:t[4]||(t[4]=(...e)=>w.handleLogin&&w.handleLogin(...e))},"登录")]))])],2)]),C.showActivationDialog?((0,n.uX)(),(0,n.CE)("div",g,[(0,n.Lk)("div",f,[t[20]||(t[20]=(0,n.Lk)("h3",null,"账户激活",-1)),t[21]||(t[21]=(0,n.Lk)("p",null,"您的账户尚未激活,请选择以下方式进行激活:",-1)),(0,n.Lk)("div",v,[(0,n.Lk)("div",b,[t[16]||(t[16]=(0,n.Lk)("h4",null,"方式 1:NEU 校园网验证",-1)),t[17]||(t[17]=(0,n.Lk)("p",null,"请连接 NEU 校园网后点击下面的验证按钮(暂不支持秦皇岛分校)",-1)),(0,n.Lk)("button",{onClick:t[5]||(t[5]=(...e)=>w.handleNetworkVerify&&w.handleNetworkVerify(...e)),class:"verify-btn"},"校园网验证")]),(0,n.Lk)("div",k,[t[18]||(t[18]=(0,n.Lk)("h4",null,"方式 2:校园邮箱验证",-1)),t[19]||(t[19]=(0,n.Lk)("p",null,"使用 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 后缀的校园邮箱验证",-1)),(0,n.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>w.handleEmailVerify&&w.handleEmailVerify(...e)),class:"verify-btn"},"邮箱验证")])]),(0,n.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>w.handleLogout&&w.handleLogout(...e)),class:"close-btn"},"退出登录")])])):(0,n.Q3)("",!0)])}a(4114);var C=a(8704),w=a(4373),L=a(6253),A=a(6965),E={name:"NavBar",data(){return{isMenuActive:!1,isDropdownActive:!1,userInfo:null,showActivationDialog:!1,isActivated:!1}},mounted(){this.checkLoginStatus()},methods:{handleLogin(){(0,A.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(".");C.A.remove("token",{domain:e,path:"/"}),this.userInfo=null,window.location.reload()},checkLoginStatus(){const e=C.A.get("token");e&&w.A.get("https://newfront.xn--xhq44jb2fzpc.com/user/info",{headers:{Authorization:e}}).then((e=>{this.userInfo=e.data,this.isActivated=e.data.activated,this.isActivated||(this.showActivationDialog=!0)})).catch((e=>{console.log(e),this.userInfo=null}))},checkActivationStatus(e){},closeActivationDialog(){this.showActivationDialog=!1},handleNetworkVerify(){const e=C.A.get("token");e?w.A.get("https://userlogin.xn--xhq44jb2fzpc.com/qv",{headers:{Authorization:e}}).then((e=>{L.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((e=>{e.response&&e.response.data?L.A.alert(`${e.response.data.message} 当前IP: ${e.response.data.ip||"未知"}`,"提示"):L.A.alert("验证失败,请稍后重试","提示")})):L.A.alert("您未登录,请先登录后操作!","提示")},handleEmailVerify(){const e=C.A.get("token");e?w.A.get("https://userlogin.xn--xhq44jb2fzpc.com/check-email",{headers:{Authorization:e}}).then((e=>{L.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?L.A.alert(t.response.data.message||"发生未知错误,请稍后重试","提示"):L.A.alert("验证失败,请稍后重试","提示")})):L.A.alert("您未登录,请先登录后操作!","提示")},promptForCampusEmail(e){(0,L.A)({title:"校园邮箱验证",message:"请输入您的 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 校园邮箱:",showInput:!0,inputPlaceholder:"请输入校园邮箱",confirmText:"确认",cancelText:"取消",cancel:!0}).then((({value:t})=>{t?t.endsWith("@stu.neu.edu.cn")||t.endsWith("@stu.neuq.edu.cn")?this.sendCampusVerificationEmail(t,e):L.A.alert("请输入有效的 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 校园邮箱!","提示"):L.A.alert("邮箱不能为空","提示")})).catch((()=>{}))},sendCampusVerificationEmail(e,t){w.A.post("https://userlogin.xn--xhq44jb2fzpc.com/send-campus-verify",{campus_email:e},{headers:{Authorization:t,"Content-Type":"application/json"}}).then((t=>{L.A.alert(`验证邮件已发送至 ${e},请检查您的邮箱完成验证。`,"提示")})).catch((e=>{e.response&&e.response.data?L.A.alert(`发送验证邮件失败:${e.response.data.message}`,"提示"):L.A.alert("发送验证邮件失败,请稍后重试","提示")}))}}},I=a(1241);const M=(0,I.A)(E,[["render",y],["__scopeId","data-v-868bf484"]]);var S=M},4876:function(e,t,a){a.d(t,{A:function(){return f}});var n=a(6768),s=a(5130),o=a(4232);const i={class:"message-box"},r={key:0,class:"message-header"},c={class:"message-content"},l={key:0,class:"input-wrapper"},d=["type","placeholder"],u={class:"message-footer"};function h(e,t,a,h,p,m){return(0,n.uX)(),(0,n.Wv)(s.eB,{name:"message-fade"},{default:(0,n.k6)((()=>[a.visible?((0,n.uX)(),(0,n.CE)("div",{key:0,class:"message-overlay",onClick:t[4]||(t[4]=(0,s.D$)(((...e)=>m.handleOverlayClick&&m.handleOverlayClick(...e)),["self"]))},[(0,n.Lk)("div",i,[a.title?((0,n.uX)(),(0,n.CE)("div",r,[(0,n.Lk)("h3",null,(0,o.v_)(a.title),1)])):(0,n.Q3)("",!0),(0,n.Lk)("div",c,[(0,n.Lk)("p",null,(0,o.v_)(a.message),1),a.showInput?((0,n.uX)(),(0,n.CE)("div",l,[(0,n.bo)((0,n.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>p.localInputValue=e),type:a.inputType,placeholder:a.inputPlaceholder,class:"message-input",onKeyup:t[1]||(t[1]=(0,s.jR)(((...e)=>m.handleConfirm&&m.handleConfirm(...e)),["enter"]))},null,40,d),[[s.hp,p.localInputValue]])])):(0,n.Q3)("",!0)]),(0,n.Lk)("div",u,[m.cancelVisible?((0,n.uX)(),(0,n.CE)("button",{key:0,class:"btn btn-cancel",onClick:t[2]||(t[2]=(...e)=>m.handleCancel&&m.handleCancel(...e))},(0,o.v_)(a.cancelText),1)):(0,n.Q3)("",!0),m.confirmVisible?((0,n.uX)(),(0,n.CE)("button",{key:1,class:"btn btn-confirm",onClick:t[3]||(t[3]=(...e)=>m.handleConfirm&&m.handleConfirm(...e))},(0,o.v_)(a.confirmText),1)):(0,n.Q3)("",!0)])])])):(0,n.Q3)("",!0)])),_:1})}var p={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")}}},m=a(1241);const g=(0,m.A)(p,[["render",h],["__scopeId","data-v-076938bc"]]);var f=g},6253:function(e,t,a){var n=a(5130),s=a(4876);const o=(e={})=>new Promise(((t,a)=>{const o=document.createElement("div");document.body.appendChild(o);const i=(0,n.Ef)(s.A,{...e,visible:!0,confirm:!1!==e.confirm,cancel:!0===e.cancel,onConfirm:e=>{i.unmount(),document.body.removeChild(o),t({value:e,action:"confirm"})},onCancel:()=>{i.unmount(),document.body.removeChild(o),a({action:"cancel"})}});i.mount(o)}));o.alert=(e,t="",a={})=>o({title:t,message:e,confirm:!0,cancel:!1,...a}),o.confirm=(e,t="",a={})=>o({title:t,message:e,confirm:!0,cancel:!0,...a}),o.prompt=(e,t="",a={})=>o({title:t,message:e,showInput:!0,confirm:!0,cancel:!0,...a}),t.A=o},6597:function(e,t,a){var n=a(5130),s=a(6768);const o={id:"app"},i={class:"beian-footer"},r={class:"container"},c={class:"copyright"};function l(e,t){const a=(0,s.g2)("router-view"),n=(0,s.g2)("router-link");return(0,s.uX)(),(0,s.CE)("div",o,[(0,s.bF)(a),(0,s.Lk)("footer",i,[(0,s.Lk)("div",r,[t[2]||(t[2]=(0,s.Lk)("span",{style:{"white-space":"nowrap"}},[(0,s.Lk)("img",{src:"https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png",alt:"公安标识",style:{"vertical-align":"middle",height:"16px",display:"inline-block"}}),(0,s.Lk)("a",{href:"https://beian.mps.gov.cn/",target:"_blank"}," 赣公网安备36090202000259号"),(0,s.eW)("  |  "),(0,s.Lk)("a",{href:"https://beian.miit.gov.cn/",target:"_blank"},"赣ICP备2024039267号-1")],-1)),(0,s.Lk)("div",c,[t[1]||(t[1]=(0,s.eW)(" © 2025 ")),(0,s.bF)(n,{to:"/about"},{default:(0,s.k6)((()=>t[0]||(t[0]=[(0,s.eW)("NEU小站")]))),_:1})])])])])}var d=a(1241);const u={},h=(0,d.A)(u,[["render",l]]);var p=h,m=a(1387);const g={class:"home"};function f(e,t,a,n,o,i){const r=(0,s.g2)("Navbar");return(0,s.uX)(),(0,s.CE)("div",g,[(0,s.bF)(r),t[0]||(t[0]=(0,s.Fv)('
Vue logo

欢迎访问NEU小站

NEUer的实用工具站

“哈哈,恭喜你发现了宝藏,让我在接下来的日子里陪你一起成长吧”

——NEU小站

',1))])}var v=a(3070),b={name:"HomeView",components:{Navbar:v.A},created(){document.title="NEU小站"}};const k=(0,d.A)(b,[["render",f],["__scopeId","data-v-1c64fc58"]]);var y=k;const C=[{path:"/",name:"home",component:y},{path:"/login",name:"login",component:()=>a.e(771).then(a.bind(a,1771))},{path:"/article/:id",name:"article-detail",component:()=>a.e(848).then(a.bind(a,6848))},{path:"/about",name:"about",component:()=>a.e(594).then(a.bind(a,3254))},{path:"/strategy",name:"strategy",component:()=>a.e(34).then(a.bind(a,3034))},{path:"/resources",name:"resources",component:()=>a.e(287).then(a.bind(a,5287))},{path:"/loading-demo",name:"loading-demo",component:()=>a.e(647).then(a.bind(a,4647))},{path:"/user-demo",name:"user-demo",component:()=>a.e(5).then(a.bind(a,2005))},{path:"/message-demo",name:"message-demo",component:()=>a.e(120).then(a.bind(a,7120))},{path:"/:pathMatch(.*)*",name:"404",component:()=>a.e(899).then(a.bind(a,3899))},{path:"/search",name:"search",component:()=>a.e(368).then(a.bind(a,7368))},{path:"/user-center",name:"user-center",component:()=>a.e(771).then(a.bind(a,1771))},{path:"/app",name:"app",component:()=>a.e(313).then(a.bind(a,2313))},{path:"/submit",name:"submit",component:()=>a.e(892).then(a.bind(a,8892))},{path:"/preview",name:"preview",component:()=>a.e(848).then(a.bind(a,6848))},{path:"/edit",name:"edit-article",component:()=>a.e(892).then(a.bind(a,8892))}],w=(0,m.aE)({history:(0,m.LA)("/"),routes:C});var L=w;(0,n.Ef)(p).use(L).mount("#app")},6965:function(e,t,a){a.d(t,{A:function(){return I}});var n=a(5130),s=a(6768),o=a(4232);const i={key:0,class:"login-container"},r={class:"login-box"},c={class:"login-header"},l={class:"form-group"},d={class:"form-group"},u={class:"button-group"},h={class:"modal-content"},p={class:"modal-header"},m={class:"modal-body"},g={class:"captcha-instruction"},f={class:"form-group"},v={class:"modal-footer"},b={key:0,class:"loading-overlay"};function k(e,t,a,k,y,C){return a.visible?((0,s.uX)(),(0,s.CE)("div",i,[t[14]||(t[14]=(0,s.Lk)("div",{class:"login-overlay"},null,-1)),(0,s.Lk)("div",r,[(0,s.Lk)("div",c,[t[9]||(t[9]=(0,s.Lk)("h2",{class:"login-title"},"登录/注册",-1)),a.showClose?((0,s.uX)(),(0,s.CE)("button",{key:0,onClick:t[0]||(t[0]=(...e)=>C.handleClose&&C.handleClose(...e)),class:"close-btn"},"×")):(0,s.Q3)("",!0)]),(0,s.Lk)("form",{onSubmit:t[5]||(t[5]=(0,n.D$)(((...e)=>C.handleSubmit&&C.handleSubmit(...e)),["prevent"])),class:"login-form"},[(0,s.Lk)("div",l,[t[10]||(t[10]=(0,s.Lk)("label",{for:"email"},"邮箱",-1)),(0,s.bo)((0,s.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),[[n.Jo,y.email]])]),(0,s.Lk)("div",d,[t[11]||(t[11]=(0,s.Lk)("label",{for:"password"},"密码",-1)),(0,s.bo)((0,s.Lk)("input",{type:"password",id:"password","onUpdate:modelValue":t[2]||(t[2]=e=>y.password=e),placeholder:"请输入密码",required:"",class:"form-input"},null,512),[[n.Jo,y.password]])]),y.message?((0,s.uX)(),(0,s.CE)("div",{key:0,class:(0,o.C4)(["message",{error:y.messageIsError,success:!y.messageIsError}])},(0,o.v_)(y.message),3)):(0,s.Q3)("",!0),(0,s.Lk)("div",u,[(0,s.Lk)("button",{type:"button",onClick:t[3]||(t[3]=(...e)=>C.login&&C.login(...e)),class:"btn btn-primary"},"登录"),(0,s.Lk)("button",{type:"button",onClick:t[4]||(t[4]=(...e)=>C.register&&C.register(...e)),class:"btn btn-secondary"},"注册")])],32)]),(0,s.Lk)("div",{class:(0,o.C4)(["modal",{show:y.showCaptchaModal}])},[(0,s.Lk)("div",h,[(0,s.Lk)("div",p,[t[12]||(t[12]=(0,s.Lk)("h3",null,"邮箱验证",-1)),(0,s.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>C.closeCaptchaModal&&C.closeCaptchaModal(...e)),class:"close-btn"},"×")]),(0,s.Lk)("div",m,[(0,s.Lk)("p",g,(0,o.v_)(y.captchaInstruction),1),(0,s.Lk)("div",f,[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":t[7]||(t[7]=e=>y.captchaCode=e),placeholder:"请输入验证码",class:"form-input"},null,512),[[n.Jo,y.captchaCode]])]),y.captchaMessage?((0,s.uX)(),(0,s.CE)("div",{key:0,class:(0,o.C4)(["captcha-message",{error:y.captchaMessageIsError,success:!y.captchaMessageIsError}])},(0,o.v_)(y.captchaMessage),3)):(0,s.Q3)("",!0)]),(0,s.Lk)("div",v,[(0,s.Lk)("button",{onClick:t[8]||(t[8]=(...e)=>C.verifyCaptcha&&C.verifyCaptcha(...e)),class:"btn btn-primary"},"验证")])])],2),y.loading?((0,s.uX)(),(0,s.CE)("div",b,[t[13]||(t[13]=(0,s.Lk)("div",{class:"spinner"},null,-1)),(0,s.Lk)("p",null,(0,o.v_)(y.loadingMessage),1)])):(0,s.Q3)("",!0)])):(0,s.Q3)("",!0)}var y=a(6253),C={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:{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,a=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");document.cookie=`token=${t}; max-age=86340; path=/; domain=${a}; secure; SameSite=Strict`,this.loading=!1,this.message="登录成功!正在加载中...",this.messageIsError=!1;const n={email:this.email,userId:e.id,token:e.token};this.onSuccess&&(this.onSuccess(n),window.location.reload()),this.$emit("login-success",n),this.onClose&&setTimeout((()=>{this.handleClose()}),3e3)},async loginOrRegister(e,t,a){const n="login"===a?"https://userlogin.xn--xhq44jb2fzpc.com/login":"https://userlogin.xn--xhq44jb2fzpc.com/register",s=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t})});return s.json()},async verifyRegisterCode(e,t){const a="https://userlogin.xn--xhq44jb2fzpc.com/verify-register-code",n=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,code:t})});return n.json()},delay(e){return new Promise((t=>setTimeout(t,e)))}}},w=a(1241);const L=(0,w.A)(C,[["render",k],["__scopeId","data-v-514354c8"]]);var A=L;const E=(e={})=>new Promise(((t,a)=>{const s=document.createElement("div");document.body.appendChild(s);const o=(0,n.Ef)(A,{...e,visible:!0,showClose:!0,onSuccess:e=>{t(e)},onClose:()=>{o.unmount(),document.body.removeChild(s)}});o.mount(s)}));E.withCallback=(e,t={})=>E({...t,onSuccess:t=>{e(t)}});var I=E}},t={};function a(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,a),o.exports}a.m=e,function(){var e=[];a.O=function(t,n,s,o){if(!n){var i=1/0;for(d=0;d=o)&&Object.keys(a.O).every((function(e){return a.O[e](n[c])}))?n.splice(c--,1):(r=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,s,o]}}(),function(){a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,{a:t}),t}}(),function(){a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))}}(),function(){a.u=function(e){return"js/"+(594===e?"about":e)+"."+{5:"56366bd5",34:"f5c2eff0",120:"e01d64ca",287:"f37f152f",313:"0593018b",368:"658f248e",594:"1aa4509b",647:"262efcda",771:"09748c4c",848:"37f52b0d",892:"b2dc307d",899:"a643b136"}[e]+".js"}}(),function(){a.miniCssF=function(e){return"css/"+(594===e?"about":e)+"."+{5:"d70f219a",34:"e99d09ea",120:"720fbcc2",287:"7da28f35",313:"72ba01cb",368:"9ee9e7c3",594:"11ca9b14",647:"ce55be69",771:"e64654b9",848:"1ec15f93",892:"f245becb",899:"35501d47"}[e]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="newfront:";a.l=function(n,s,o,i){if(e[n])e[n].push(s);else{var r,c;if(void 0!==o)for(var l=document.getElementsByTagName("script"),d=0;dt[8]||(t[8]=[(0,n.Lk)("img",{src:"https://download.xn--xhq44jb2fzpc.com/images/logo-hd.png",alt:"NEU小站",class:"navbar-logo-img"},null,-1),(0,n.Lk)("span",null,"NEU小站",-1)]))),_:1}),(0,n.Lk)("div",{class:(0,s.C4)(["navbar-burger",{"is-active":C.isMenuActive}]),onClick:t[0]||(t[0]=(...e)=>w.toggleMenu&&w.toggleMenu(...e))},t[9]||(t[9]=[(0,n.Lk)("span",null,null,-1),(0,n.Lk)("span",null,null,-1),(0,n.Lk)("span",null,null,-1)]),2)]),(0,n.Lk)("div",{class:(0,s.C4)(["navbar-menu",{"is-active":C.isMenuActive}])},[(0,n.Lk)("div",l,[(0,n.bF)(L,{to:"/",class:"navbar-item"},{default:(0,n.k6)((()=>t[10]||(t[10]=[(0,n.eW)("首页")]))),_:1}),(0,n.bF)(L,{to:"/strategy",class:"navbar-item"},{default:(0,n.k6)((()=>t[11]||(t[11]=[(0,n.eW)("攻略指南")]))),_:1}),(0,n.bF)(L,{to:"/resources",class:"navbar-item"},{default:(0,n.k6)((()=>t[12]||(t[12]=[(0,n.eW)("资源共享")]))),_:1}),(0,n.bF)(L,{to:"/app",class:"navbar-item"},{default:(0,n.k6)((()=>t[13]||(t[13]=[(0,n.eW)("应用中心")]))),_:1}),(0,n.bF)(L,{to:"/about",class:"navbar-item"},{default:(0,n.k6)((()=>t[14]||(t[14]=[(0,n.eW)("关于")]))),_:1}),(0,n.bF)(L,{to:"/search",class:"navbar-item"},{default:(0,n.k6)((()=>t[15]||(t[15]=[(0,n.eW)("搜索")]))),_:1}),C.userInfo?((0,n.uX)(),(0,n.CE)("div",d,[(0,n.Lk)("div",{class:"user-info",onClick:t[1]||(t[1]=(...e)=>w.toggleDropdown&&w.toggleDropdown(...e))},[(0,n.Lk)("img",{src:C.userInfo.avatar_path,class:"user-avatar",alt:C.userInfo.nickname},null,8,u),(0,n.Lk)("span",h,(0,s.v_)(C.userInfo.nickname),1),(0,n.Lk)("span",{class:(0,s.C4)(["dropdown-arrow",{"is-active":C.isDropdownActive}])},"▼",2)]),(0,n.bo)((0,n.Lk)("div",p,[(0,n.Lk)("div",{class:"dropdown-item",onClick:t[2]||(t[2]=(...e)=>w.handleUserCenter&&w.handleUserCenter(...e))},"个人中心"),(0,n.Lk)("div",{class:"dropdown-item",onClick:t[3]||(t[3]=(...e)=>w.handleLogout&&w.handleLogout(...e))},"退出登录")],512),[[o.aG,C.isDropdownActive]])])):((0,n.uX)(),(0,n.CE)("div",m,[(0,n.Lk)("a",{class:"login-btn",onClick:t[4]||(t[4]=(...e)=>w.handleLogin&&w.handleLogin(...e))},"登录")]))])],2)]),C.showActivationDialog?((0,n.uX)(),(0,n.CE)("div",g,[(0,n.Lk)("div",f,[t[20]||(t[20]=(0,n.Lk)("h3",null,"账户激活",-1)),t[21]||(t[21]=(0,n.Lk)("p",null,"您的账户尚未激活,请选择以下方式进行激活:",-1)),(0,n.Lk)("div",v,[(0,n.Lk)("div",b,[t[16]||(t[16]=(0,n.Lk)("h4",null,"方式 1:NEU 校园网验证",-1)),t[17]||(t[17]=(0,n.Lk)("p",null,"请连接 NEU 校园网后点击下面的验证按钮(暂不支持秦皇岛分校)",-1)),(0,n.Lk)("button",{onClick:t[5]||(t[5]=(...e)=>w.handleNetworkVerify&&w.handleNetworkVerify(...e)),class:"verify-btn"},"校园网验证")]),(0,n.Lk)("div",k,[t[18]||(t[18]=(0,n.Lk)("h4",null,"方式 2:校园邮箱验证",-1)),t[19]||(t[19]=(0,n.Lk)("p",null,"使用 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 后缀的校园邮箱验证",-1)),(0,n.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>w.handleEmailVerify&&w.handleEmailVerify(...e)),class:"verify-btn"},"邮箱验证")])]),(0,n.Lk)("button",{onClick:t[7]||(t[7]=(...e)=>w.handleLogout&&w.handleLogout(...e)),class:"close-btn"},"退出登录")])])):(0,n.Q3)("",!0)])}a(4114);var C=a(8704),w=a(4373),L=a(6253),A=a(6965),E={name:"NavBar",data(){return{isMenuActive:!1,isDropdownActive:!1,userInfo:null,showActivationDialog:!1,isActivated:!1}},mounted(){this.checkLoginStatus()},methods:{handleLogin(){(0,A.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(".");C.A.remove("token",{domain:e,path:"/"}),this.userInfo=null,window.location.reload()},checkLoginStatus(){const e=C.A.get("token");e&&w.A.get("https://newfront.xn--xhq44jb2fzpc.com/user/info",{headers:{Authorization:e}}).then((e=>{this.userInfo=e.data,this.isActivated=e.data.activated,this.isActivated||(this.showActivationDialog=!0)})).catch((e=>{console.log(e),this.userInfo=null}))},checkActivationStatus(e){},closeActivationDialog(){this.showActivationDialog=!1},handleNetworkVerify(){const e=C.A.get("token");e?w.A.get("https://userlogin.xn--xhq44jb2fzpc.com/qv",{headers:{Authorization:e}}).then((e=>{L.A.alert(e.data.message,"提示"),this.isActivated=!0,this.showActivationDialog=!1})).catch((e=>{e.response&&e.response.data?L.A.alert(`${e.response.data.message} 当前IP: ${e.response.data.ip||"未知"}`,"提示"):L.A.alert("验证失败,请稍后重试","提示")})):L.A.alert("您未登录,请先登录后操作!","提示")},handleEmailVerify(){const e=C.A.get("token");e?w.A.get("https://userlogin.xn--xhq44jb2fzpc.com/check-email",{headers:{Authorization:e}}).then((e=>{L.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?L.A.alert(t.response.data.message||"发生未知错误,请稍后重试","提示"):L.A.alert("验证失败,请稍后重试","提示")})):L.A.alert("您未登录,请先登录后操作!","提示")},promptForCampusEmail(e){(0,L.A)({title:"校园邮箱验证",message:"请输入您的 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 校园邮箱:",showInput:!0,inputPlaceholder:"请输入校园邮箱",confirmText:"确认",cancelText:"取消",cancel:!0}).then((({value:t})=>{t?t.endsWith("@stu.neu.edu.cn")||t.endsWith("@stu.neuq.edu.cn")?this.sendCampusVerificationEmail(t,e):L.A.alert("请输入有效的 @stu.neu.edu.cn 或 @stu.neuq.edu.cn 校园邮箱!","提示"):L.A.alert("邮箱不能为空","提示")})).catch((()=>{}))},sendCampusVerificationEmail(e,t){w.A.post("https://userlogin.xn--xhq44jb2fzpc.com/send-campus-verify",{campus_email:e},{headers:{Authorization:t,"Content-Type":"application/json"}}).then((t=>{L.A.alert(`验证邮件已发送至 ${e},请检查您的邮箱完成验证。`,"提示")})).catch((e=>{e.response&&e.response.data?L.A.alert(`发送验证邮件失败:${e.response.data.message}`,"提示"):L.A.alert("发送验证邮件失败,请稍后重试","提示")}))}}},I=a(1241);const M=(0,I.A)(E,[["render",y],["__scopeId","data-v-868bf484"]]);var S=M},4876:function(e,t,a){a.d(t,{A:function(){return f}});var n=a(6768),s=a(5130),o=a(4232);const i={class:"message-box"},r={key:0,class:"message-header"},c={class:"message-content"},l={key:0,class:"input-wrapper"},d=["type","placeholder"],u={class:"message-footer"};function h(e,t,a,h,p,m){return(0,n.uX)(),(0,n.Wv)(s.eB,{name:"message-fade"},{default:(0,n.k6)((()=>[a.visible?((0,n.uX)(),(0,n.CE)("div",{key:0,class:"message-overlay",onClick:t[4]||(t[4]=(0,s.D$)(((...e)=>m.handleOverlayClick&&m.handleOverlayClick(...e)),["self"]))},[(0,n.Lk)("div",i,[a.title?((0,n.uX)(),(0,n.CE)("div",r,[(0,n.Lk)("h3",null,(0,o.v_)(a.title),1)])):(0,n.Q3)("",!0),(0,n.Lk)("div",c,[(0,n.Lk)("p",null,(0,o.v_)(a.message),1),a.showInput?((0,n.uX)(),(0,n.CE)("div",l,[(0,n.bo)((0,n.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>p.localInputValue=e),type:a.inputType,placeholder:a.inputPlaceholder,class:"message-input",onKeyup:t[1]||(t[1]=(0,s.jR)(((...e)=>m.handleConfirm&&m.handleConfirm(...e)),["enter"]))},null,40,d),[[s.hp,p.localInputValue]])])):(0,n.Q3)("",!0)]),(0,n.Lk)("div",u,[m.cancelVisible?((0,n.uX)(),(0,n.CE)("button",{key:0,class:"btn btn-cancel",onClick:t[2]||(t[2]=(...e)=>m.handleCancel&&m.handleCancel(...e))},(0,o.v_)(a.cancelText),1)):(0,n.Q3)("",!0),m.confirmVisible?((0,n.uX)(),(0,n.CE)("button",{key:1,class:"btn btn-confirm",onClick:t[3]||(t[3]=(...e)=>m.handleConfirm&&m.handleConfirm(...e))},(0,o.v_)(a.confirmText),1)):(0,n.Q3)("",!0)])])])):(0,n.Q3)("",!0)])),_:1})}var p={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")}}},m=a(1241);const g=(0,m.A)(p,[["render",h],["__scopeId","data-v-076938bc"]]);var f=g},6253:function(e,t,a){var n=a(5130),s=a(4876);const o=(e={})=>new Promise(((t,a)=>{const o=document.createElement("div");document.body.appendChild(o);const i=(0,n.Ef)(s.A,{...e,visible:!0,confirm:!1!==e.confirm,cancel:!0===e.cancel,onConfirm:e=>{i.unmount(),document.body.removeChild(o),t({value:e,action:"confirm"})},onCancel:()=>{i.unmount(),document.body.removeChild(o),a({action:"cancel"})}});i.mount(o)}));o.alert=(e,t="",a={})=>o({title:t,message:e,confirm:!0,cancel:!1,...a}),o.confirm=(e,t="",a={})=>o({title:t,message:e,confirm:!0,cancel:!0,...a}),o.prompt=(e,t="",a={})=>o({title:t,message:e,showInput:!0,confirm:!0,cancel:!0,...a}),t.A=o},6597:function(e,t,a){var n=a(5130),s=a(6768);const o={id:"app"},i={class:"beian-footer"},r={class:"container"},c={class:"copyright"};function l(e,t){const a=(0,s.g2)("router-view"),n=(0,s.g2)("router-link");return(0,s.uX)(),(0,s.CE)("div",o,[(0,s.bF)(a),(0,s.Lk)("footer",i,[(0,s.Lk)("div",r,[t[2]||(t[2]=(0,s.Lk)("span",{style:{"white-space":"nowrap"}},[(0,s.Lk)("img",{src:"https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png",alt:"公安标识",style:{"vertical-align":"middle",height:"16px",display:"inline-block"}}),(0,s.Lk)("a",{href:"https://beian.mps.gov.cn/",target:"_blank"}," 赣公网安备36090202000259号"),(0,s.eW)("  |  "),(0,s.Lk)("a",{href:"https://beian.miit.gov.cn/",target:"_blank"},"赣ICP备2024039267号-1")],-1)),(0,s.Lk)("div",c,[t[1]||(t[1]=(0,s.eW)(" © 2025 ")),(0,s.bF)(n,{to:"/about"},{default:(0,s.k6)((()=>t[0]||(t[0]=[(0,s.eW)("NEU小站")]))),_:1})])])])])}var d=a(1241);const u={},h=(0,d.A)(u,[["render",l]]);var p=h,m=a(1387);const g={class:"home"};function f(e,t,a,n,o,i){const r=(0,s.g2)("Navbar");return(0,s.uX)(),(0,s.CE)("div",g,[(0,s.bF)(r),t[0]||(t[0]=(0,s.Fv)('
Vue logo

欢迎访问NEU小站

NEUer的实用工具站

“哈哈,恭喜你发现了宝藏,让我在接下来的日子里陪你一起成长吧”

——NEU小站

',1))])}var v=a(3070),b={name:"HomeView",components:{Navbar:v.A},created(){document.title="NEU小站"}};const k=(0,d.A)(b,[["render",f],["__scopeId","data-v-1c64fc58"]]);var y=k;const C=[{path:"/",name:"home",component:y},{path:"/login",name:"login",component:()=>a.e(771).then(a.bind(a,1771))},{path:"/article/:id",name:"article-detail",component:()=>a.e(848).then(a.bind(a,6848))},{path:"/about",name:"about",component:()=>a.e(594).then(a.bind(a,3254))},{path:"/strategy",name:"strategy",component:()=>a.e(34).then(a.bind(a,3034))},{path:"/resources",name:"resources",component:()=>a.e(14).then(a.bind(a,5014))},{path:"/loading-demo",name:"loading-demo",component:()=>a.e(647).then(a.bind(a,4647))},{path:"/user-demo",name:"user-demo",component:()=>a.e(5).then(a.bind(a,2005))},{path:"/message-demo",name:"message-demo",component:()=>a.e(120).then(a.bind(a,7120))},{path:"/:pathMatch(.*)*",name:"404",component:()=>a.e(899).then(a.bind(a,3899))},{path:"/search",name:"search",component:()=>a.e(368).then(a.bind(a,7368))},{path:"/user-center",name:"user-center",component:()=>a.e(771).then(a.bind(a,1771))},{path:"/app",name:"app",component:()=>a.e(313).then(a.bind(a,2313))},{path:"/submit",name:"submit",component:()=>a.e(892).then(a.bind(a,8892))},{path:"/preview",name:"preview",component:()=>a.e(848).then(a.bind(a,6848))},{path:"/edit",name:"edit-article",component:()=>a.e(892).then(a.bind(a,8892))}],w=(0,m.aE)({history:(0,m.LA)("/"),routes:C});var L=w;(0,n.Ef)(p).use(L).mount("#app")},6965:function(e,t,a){a.d(t,{A:function(){return I}});var n=a(5130),s=a(6768),o=a(4232);const i={key:0,class:"login-container"},r={class:"login-box"},c={class:"login-header"},l={class:"form-group"},d={class:"form-group"},u={class:"button-group"},h={class:"modal-content"},p={class:"modal-header"},m={class:"modal-body"},g={class:"captcha-instruction"},f={class:"form-group"},v={class:"modal-footer"},b={key:0,class:"loading-overlay"};function k(e,t,a,k,y,C){return a.visible?((0,s.uX)(),(0,s.CE)("div",i,[t[14]||(t[14]=(0,s.Lk)("div",{class:"login-overlay"},null,-1)),(0,s.Lk)("div",r,[(0,s.Lk)("div",c,[t[9]||(t[9]=(0,s.Lk)("h2",{class:"login-title"},"登录/注册",-1)),a.showClose?((0,s.uX)(),(0,s.CE)("button",{key:0,onClick:t[0]||(t[0]=(...e)=>C.handleClose&&C.handleClose(...e)),class:"close-btn"},"×")):(0,s.Q3)("",!0)]),(0,s.Lk)("form",{onSubmit:t[5]||(t[5]=(0,n.D$)(((...e)=>C.handleSubmit&&C.handleSubmit(...e)),["prevent"])),class:"login-form"},[(0,s.Lk)("div",l,[t[10]||(t[10]=(0,s.Lk)("label",{for:"email"},"邮箱",-1)),(0,s.bo)((0,s.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),[[n.Jo,y.email]])]),(0,s.Lk)("div",d,[t[11]||(t[11]=(0,s.Lk)("label",{for:"password"},"密码",-1)),(0,s.bo)((0,s.Lk)("input",{type:"password",id:"password","onUpdate:modelValue":t[2]||(t[2]=e=>y.password=e),placeholder:"请输入密码",required:"",class:"form-input"},null,512),[[n.Jo,y.password]])]),y.message?((0,s.uX)(),(0,s.CE)("div",{key:0,class:(0,o.C4)(["message",{error:y.messageIsError,success:!y.messageIsError}])},(0,o.v_)(y.message),3)):(0,s.Q3)("",!0),(0,s.Lk)("div",u,[(0,s.Lk)("button",{type:"button",onClick:t[3]||(t[3]=(...e)=>C.login&&C.login(...e)),class:"btn btn-primary"},"登录"),(0,s.Lk)("button",{type:"button",onClick:t[4]||(t[4]=(...e)=>C.register&&C.register(...e)),class:"btn btn-secondary"},"注册")])],32)]),(0,s.Lk)("div",{class:(0,o.C4)(["modal",{show:y.showCaptchaModal}])},[(0,s.Lk)("div",h,[(0,s.Lk)("div",p,[t[12]||(t[12]=(0,s.Lk)("h3",null,"邮箱验证",-1)),(0,s.Lk)("button",{onClick:t[6]||(t[6]=(...e)=>C.closeCaptchaModal&&C.closeCaptchaModal(...e)),class:"close-btn"},"×")]),(0,s.Lk)("div",m,[(0,s.Lk)("p",g,(0,o.v_)(y.captchaInstruction),1),(0,s.Lk)("div",f,[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":t[7]||(t[7]=e=>y.captchaCode=e),placeholder:"请输入验证码",class:"form-input"},null,512),[[n.Jo,y.captchaCode]])]),y.captchaMessage?((0,s.uX)(),(0,s.CE)("div",{key:0,class:(0,o.C4)(["captcha-message",{error:y.captchaMessageIsError,success:!y.captchaMessageIsError}])},(0,o.v_)(y.captchaMessage),3)):(0,s.Q3)("",!0)]),(0,s.Lk)("div",v,[(0,s.Lk)("button",{onClick:t[8]||(t[8]=(...e)=>C.verifyCaptcha&&C.verifyCaptcha(...e)),class:"btn btn-primary"},"验证")])])],2),y.loading?((0,s.uX)(),(0,s.CE)("div",b,[t[13]||(t[13]=(0,s.Lk)("div",{class:"spinner"},null,-1)),(0,s.Lk)("p",null,(0,o.v_)(y.loadingMessage),1)])):(0,s.Q3)("",!0)])):(0,s.Q3)("",!0)}var y=a(6253),C={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:{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,a=window.location.hostname.includes("localhost")?"localhost":window.location.hostname.split(".").slice(-2).join(".");document.cookie=`token=${t}; max-age=86340; path=/; domain=${a}; secure; SameSite=Strict`,this.loading=!1,this.message="登录成功!正在加载中...",this.messageIsError=!1;const n={email:this.email,userId:e.id,token:e.token};this.onSuccess&&(this.onSuccess(n),window.location.reload()),this.$emit("login-success",n),this.onClose&&setTimeout((()=>{this.handleClose()}),3e3)},async loginOrRegister(e,t,a){const n="login"===a?"https://userlogin.xn--xhq44jb2fzpc.com/login":"https://userlogin.xn--xhq44jb2fzpc.com/register",s=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t})});return s.json()},async verifyRegisterCode(e,t){const a="https://userlogin.xn--xhq44jb2fzpc.com/verify-register-code",n=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,code:t})});return n.json()},delay(e){return new Promise((t=>setTimeout(t,e)))}}},w=a(1241);const L=(0,w.A)(C,[["render",k],["__scopeId","data-v-514354c8"]]);var A=L;const E=(e={})=>new Promise(((t,a)=>{const s=document.createElement("div");document.body.appendChild(s);const o=(0,n.Ef)(A,{...e,visible:!0,showClose:!0,onSuccess:e=>{t(e)},onClose:()=>{o.unmount(),document.body.removeChild(s)}});o.mount(s)}));E.withCallback=(e,t={})=>E({...t,onSuccess:t=>{e(t)}});var I=E}},t={};function a(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,a),o.exports}a.m=e,function(){var e=[];a.O=function(t,n,s,o){if(!n){var i=1/0;for(d=0;d=o)&&Object.keys(a.O).every((function(e){return a.O[e](n[c])}))?n.splice(c--,1):(r=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,s,o]}}(),function(){a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,{a:t}),t}}(),function(){a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))}}(),function(){a.u=function(e){return"js/"+(594===e?"about":e)+"."+{5:"56366bd5",14:"57fda0cc",34:"f5c2eff0",120:"e01d64ca",313:"0593018b",368:"658f248e",594:"1aa4509b",647:"262efcda",771:"09748c4c",848:"37f52b0d",892:"b2dc307d",899:"a643b136"}[e]+".js"}}(),function(){a.miniCssF=function(e){return"css/"+(594===e?"about":e)+"."+{5:"d70f219a",14:"e76c0ca7",34:"e99d09ea",120:"720fbcc2",313:"72ba01cb",368:"9ee9e7c3",594:"11ca9b14",647:"ce55be69",771:"e64654b9",848:"1ec15f93",892:"f245becb",899:"35501d47"}[e]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="newfront:";a.l=function(n,s,o,i){if(e[n])e[n].push(s);else{var r,c;if(void 0!==o)for(var l=document.getElementsByTagName("script"),d=0;d