This commit is contained in:
我是个攻城狮
2026-08-26 16:53:45 +08:00
parent 62b7844199
commit 2fe864787a
94 changed files with 240 additions and 93 deletions
BIN
View File
Binary file not shown.
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.login-page[data-v-08a886b3]{min-height:100vh;background:url(../img/l_bg.b4766c7f.png) 50% no-repeat;background-size:100% 100%}.login-shell[data-v-08a886b3]{position:relative;min-height:100vh;padding:30px 52px}.brand-corner[data-v-08a886b3]{position:absolute;top:32px;left:52px;cursor:pointer}.brand-corner-logo[data-v-08a886b3]{width:292px;display:block}.login-stage[data-v-08a886b3]{min-height:calc(100vh - 60px);display:grid;grid-template-columns:minmax(480px,1fr) 536px;align-items:center;gap:72px}.stage-visual[data-v-08a886b3]{display:flex;align-items:flex-end;justify-content:center;padding-top:30px}.stage-visual-img[data-v-08a886b3]{width:min(100%,540px);display:block;transform:translateX(-90px)}.login-card[data-v-08a886b3]{width:536px;min-height:714px;padding:58px 48px 44px;border-radius:24px;background:hsla(0,0%,100%,.94);box-shadow:0 20px 60px rgba(131,141,190,.18);transform:translateX(-270px)}.login-card-logo[data-v-08a886b3]{width:152px;display:block;margin:0 auto}.login-tabs[data-v-08a886b3]{display:grid;grid-template-columns:1fr 1fr;margin-top:34px;border-bottom:1px solid #cfd3de;width:260px}.login-tab[data-v-08a886b3]{height:44px;border:0;border-bottom:2px solid transparent;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#999fb8}.login-tab-icon[data-v-08a886b3]{width:16px;height:16px;display:block;-o-object-fit:contain;object-fit:contain}.login-tab.active[data-v-08a886b3]{border-bottom-color:#5b63f3;color:#5b63f3}.form-block[data-v-08a886b3],.login-form[data-v-08a886b3]{margin-top:22px}.field-label[data-v-08a886b3]{margin-bottom:12px;color:#232843;font-size:15px}.required[data-v-08a886b3]{color:#9f6bff}.inline-row[data-v-08a886b3]{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px;align-items:center}.flex-1[data-v-08a886b3]{min-width:0}.field-input[data-v-08a886b3] .el-input__inner{height:45px;background:#f8fafc;border-radius:8px 8px 8px 8px;border:1px solid #e2e8f0;color:#2d3654;font-size:15px}.inline-row2[data-v-08a886b3] .el-input__inner{border:none;height:43px}.inline-row2[data-v-08a886b3]{display:grid;grid-template-columns:minmax(0,1fr) 87px;gap:10px;align-items:center;height:45px;background:#f8fafc;border-radius:8px 8px 8px 8px;border:1px solid #e2e8f0;color:#2d3654;font-size:15px}.field-input[data-v-08a886b3] .el-input__inner::-moz-placeholder{color:#b2b9d0}.field-input[data-v-08a886b3] .el-input__inner::placeholder{color:#b2b9d0}.field-input[data-v-08a886b3] .el-input__inner:focus{border-color:#7a83ff}.captcha-box[data-v-08a886b3],.code-btn[data-v-08a886b3]{height:45px;border:0;border-radius:8px}.code-btn[data-v-08a886b3]{background:#e6e9ff;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#4f46e5}.code-btn[data-v-08a886b3]:disabled{cursor:not-allowed;opacity:.7}.captcha-box[data-v-08a886b3]{display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;border:none;background:none;cursor:pointer;width:82px;height:36px;margin-top:0}.captcha-image[data-v-08a886b3]{width:100%;height:100%;display:block}.submit-btn[data-v-08a886b3]{width:100%;height:54px;margin-top:28px;border:0;background:linear-gradient(117deg,#518bff,#9e5dff),linear-gradient(149deg,rgba(172,234,255,.6),rgba(209,250,255,0));box-shadow:0 2px 10px 0 rgba(157,157,191,.35);border-radius:12px 12px 12px 12px;color:#fff;font-size:18px;font-weight:700;cursor:pointer}.submit-btn[data-v-08a886b3]:disabled{cursor:not-allowed;opacity:.75}.login-footer[data-v-08a886b3]{margin-top:14px;display:flex;justify-content:flex-end;align-items:center;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8;line-height:20px}.register-link[data-v-08a886b3]{border:0;padding:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#4f46e5}@media(max-width:1200px){.login-shell[data-v-08a886b3]{padding:24px}.brand-corner[data-v-08a886b3]{left:24px;top:24px}.login-stage[data-v-08a886b3]{grid-template-columns:1fr;justify-items:center;gap:24px;padding-top:70px}.stage-visual[data-v-08a886b3]{padding-top:0}.login-card[data-v-08a886b3],.stage-visual-img[data-v-08a886b3]{transform:none}}@media(max-width:640px){.brand-corner-logo[data-v-08a886b3]{width:210px}.login-card[data-v-08a886b3]{min-height:auto;padding:34px 20px 28px;border-radius:20px}.login-card-logo[data-v-08a886b3]{width:170px}.login-tab[data-v-08a886b3]{font-size:14px}.field-label[data-v-08a886b3]{font-family:Source Han Sans;font-weight:400;font-size:14px;color:#1e293b;line-height:20px;text-align:left}.inline-row[data-v-08a886b3]{grid-template-columns:1fr}.captcha-box[data-v-08a886b3],.code-btn[data-v-08a886b3],.field-input[data-v-08a886b3] .el-input__inner{height:44px}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
.user-shell-page[data-v-08ed3d66]{min-height:100vh;background:#eef3fb}.topbar[data-v-08ed3d66]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-08ed3d66]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-08ed3d66]{width:273px;display:block}.brand-text[data-v-08ed3d66]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-08ed3d66]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-08ed3d66]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-08ed3d66],.top-nav-item[data-v-08ed3d66]:hover{color:#625ae8}.top-actions[data-v-08ed3d66]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-08ed3d66]{position:relative}.center-link[data-v-08ed3d66]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-08ed3d66]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-08ed3d66]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-08ed3d66]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-08ed3d66]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-08ed3d66]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-08ed3d66]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-08ed3d66]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-08ed3d66]{padding:24px 0 40px}.page-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-08ed3d66]{align-self:start;width:254px}.content-card[data-v-08ed3d66],.sidebar[data-v-08ed3d66]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-08ed3d66]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-08ed3d66]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-08ed3d66]{min-width:0}.profile-name[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-08ed3d66]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-08ed3d66]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-08ed3d66]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-08ed3d66]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-08ed3d66]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-08ed3d66]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-08ed3d66]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-08ed3d66]{height:auto;padding:12px 0}.page-inner[data-v-08ed3d66],.topbar-inner[data-v-08ed3d66]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-08ed3d66]{flex-wrap:wrap;gap:12px}.top-nav[data-v-08ed3d66]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-08ed3d66]{grid-template-columns:1fr}}
-1
View File
@@ -1 +0,0 @@
.user-shell-page[data-v-08ed3d66]{min-height:100vh;background:#eef3fb}.topbar[data-v-08ed3d66]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-08ed3d66]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-08ed3d66]{width:273px;display:block}.brand-text[data-v-08ed3d66]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-08ed3d66]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-08ed3d66]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-08ed3d66],.top-nav-item[data-v-08ed3d66]:hover{color:#625ae8}.top-actions[data-v-08ed3d66]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-08ed3d66]{position:relative}.center-link[data-v-08ed3d66]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-08ed3d66]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-08ed3d66]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-08ed3d66]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-08ed3d66]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-08ed3d66]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-08ed3d66]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-08ed3d66]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-08ed3d66]{padding:24px 0 40px}.page-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-08ed3d66]{align-self:start;width:254px}.content-card[data-v-08ed3d66],.sidebar[data-v-08ed3d66]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-08ed3d66]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-08ed3d66]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-08ed3d66]{min-width:0}.profile-name[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-08ed3d66]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-08ed3d66]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-08ed3d66]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-08ed3d66]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-08ed3d66]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-08ed3d66]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-08ed3d66]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-08ed3d66]{height:auto;padding:12px 0}.page-inner[data-v-08ed3d66],.topbar-inner[data-v-08ed3d66]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-08ed3d66]{flex-wrap:wrap;gap:12px}.top-nav[data-v-08ed3d66]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-08ed3d66]{grid-template-columns:1fr}}
+1
View File
@@ -0,0 +1 @@
.user-shell-page[data-v-82f3cd94]{min-height:100vh;background:#eef3fb}.topbar[data-v-82f3cd94]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-82f3cd94]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-82f3cd94]{width:273px;display:block}.brand-text[data-v-82f3cd94]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-82f3cd94]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-82f3cd94]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-82f3cd94],.top-nav-item[data-v-82f3cd94]:hover{color:#625ae8}.top-actions[data-v-82f3cd94]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-82f3cd94]{position:relative}.center-link[data-v-82f3cd94]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-82f3cd94]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-82f3cd94]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-82f3cd94]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-82f3cd94]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-82f3cd94]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-82f3cd94]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-82f3cd94]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-82f3cd94]{padding:24px 0 40px}.page-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-82f3cd94]{align-self:start;width:254px}.content-card[data-v-82f3cd94],.sidebar[data-v-82f3cd94]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-82f3cd94]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-82f3cd94]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-82f3cd94]{min-width:0}.profile-name[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-82f3cd94]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-82f3cd94]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-82f3cd94]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-82f3cd94]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-82f3cd94]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-82f3cd94]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-82f3cd94]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-82f3cd94]{height:auto;padding:12px 0}.page-inner[data-v-82f3cd94],.topbar-inner[data-v-82f3cd94]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-82f3cd94]{flex-wrap:wrap;gap:12px}.top-nav[data-v-82f3cd94]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-82f3cd94]{grid-template-columns:1fr}}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.hero-row[data-v-dcd3d2de]{display:flex;align-items:center;gap:22px;padding-bottom:24px;border-bottom:1px solid #e6e8ee;margin-top:28px}.hero-avatar[data-v-dcd3d2de]{width:82px;height:82px;border-radius:50%;background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;display:block}.hero-avatar-btn[data-v-dcd3d2de]{position:relative;width:82px;height:82px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;overflow:hidden}.hero-avatar-mask[data-v-dcd3d2de]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:50%;background:rgba(15,23,42,.58);color:#fff;font-size:12px;opacity:0;transition:opacity .2s ease}.hero-avatar-btn:hover .hero-avatar-mask[data-v-dcd3d2de]{opacity:1}.hidden-input[data-v-dcd3d2de]{display:none}.hero-avatar-mask-icon[data-v-dcd3d2de]{width:16px;height:16px}.hero-name-row[data-v-dcd3d2de]{display:flex;align-items:center;gap:16px}.hero-name[data-v-dcd3d2de]{font-size:22px;font-weight:600;color:#1e293b}.hero-subline[data-v-dcd3d2de]{margin-top:10px;font-size:14px;color:#84899e}.mcn-tag[data-v-dcd3d2de]{width:92px}.overview-grid[data-v-dcd3d2de]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;margin-top:30px}.section-heading[data-v-dcd3d2de]{display:inline-flex;align-items:center;gap:8px;color:#1e293b;font-size:16px;font-weight:600}.heading-icon[data-v-dcd3d2de]{width:18px;height:18px}.info-card[data-v-dcd3d2de]{margin-top:18px;min-height:150px;padding:26px 24px 20px;border-radius:12px;background:#f8f9fc}.info-grid[data-v-dcd3d2de]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 28px}.info-label[data-v-dcd3d2de]{font-size:14px;color:#a2aac4}.info-value[data-v-dcd3d2de]{margin-top:10px;font-weight:500;font-size:14px;color:#1e293b;line-height:24px;text-align:left}.multi-line[data-v-dcd3d2de]{line-height:1.8}.operation-item+.operation-item[data-v-dcd3d2de]{margin-top:20px}.auth-section[data-v-dcd3d2de]{margin-top:34px;padding-top:6px}.auth-heading[data-v-dcd3d2de]{margin-bottom:26px}.auth-process[data-v-dcd3d2de]{position:relative;padding-left:10px}.timeline-line[data-v-dcd3d2de]{position:absolute;left:15px;top:30px;width:1px;height:92px;border-left:1px dashed #d7dce8}.process-step[data-v-dcd3d2de]{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:3px}.process-step+.process-step[data-v-dcd3d2de]{margin-top:30px}.dot[data-v-dcd3d2de]{width:10px;height:10px;margin-top:10px;border-radius:50%;background:#d7dce8}.process-step.current .dot[data-v-dcd3d2de]{background:#3f73ff;box-shadow:0 0 0 3px rgba(63,115,255,.12)}.step-row[data-v-dcd3d2de]{display:flex;align-items:center;gap:12px}.step-row strong[data-v-dcd3d2de]{font-size:14px;font-weight:600;color:#3d3d3d}.badge[data-v-dcd3d2de]{min-width:37px;height:16px;padding:0 10px;border-radius:2px;background:#d1e0fa;color:#0857df;font-size:12px;line-height:16px;text-align:center}.badge.light[data-v-dcd3d2de]{min-width:80px}.step-content p[data-v-dcd3d2de]{margin-top:10px;font-size:14px;color:#818181;line-height:22px}.text_red[data-v-dcd3d2de]{color:#e34d59!important}.bj-tag[data-v-dcd3d2de]{width:10px;height:10px}.verify-btn[data-v-dcd3d2de]{align-self:center;width:94px;height:32px;border:0;border-radius:4px;background:#5754cd;color:#fff;font-size:15px;cursor:pointer}.verify-btn[data-v-dcd3d2de]:disabled{cursor:not-allowed;opacity:.7}@media(max-width:1200px){.overview-grid[data-v-dcd3d2de]{grid-template-columns:1fr}}@media(max-width:760px){.hero-name-row[data-v-dcd3d2de],.hero-row[data-v-dcd3d2de],.process-step[data-v-dcd3d2de],.step-row[data-v-dcd3d2de]{flex-direction:column;align-items:flex-start}.info-grid[data-v-dcd3d2de],.process-step[data-v-dcd3d2de]{grid-template-columns:1fr}.timeline-line[data-v-dcd3d2de]{display:none}}
-1
View File
@@ -1 +0,0 @@
.hero-row[data-v-404a3483]{display:flex;align-items:center;gap:22px;padding-bottom:24px;border-bottom:1px solid #e6e8ee;margin-top:28px}.hero-avatar[data-v-404a3483]{width:82px;height:82px;border-radius:50%;background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;display:block}.hero-avatar-btn[data-v-404a3483]{position:relative;width:82px;height:82px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;overflow:hidden}.hero-avatar-mask[data-v-404a3483]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:50%;background:rgba(15,23,42,.58);color:#fff;font-size:12px;opacity:0;transition:opacity .2s ease}.hero-avatar-btn:hover .hero-avatar-mask[data-v-404a3483]{opacity:1}.hidden-input[data-v-404a3483]{display:none}.hero-avatar-mask-icon[data-v-404a3483]{width:16px;height:16px}.hero-name-row[data-v-404a3483]{display:flex;align-items:center;gap:16px}.hero-name[data-v-404a3483]{font-size:22px;font-weight:600;color:#1e293b}.hero-subline[data-v-404a3483]{margin-top:10px;font-size:14px;color:#84899e}.mcn-tag[data-v-404a3483]{width:92px}.overview-grid[data-v-404a3483]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;margin-top:30px}.section-heading[data-v-404a3483]{display:inline-flex;align-items:center;gap:8px;color:#1e293b;font-size:16px;font-weight:600}.heading-icon[data-v-404a3483]{width:18px;height:18px}.info-card[data-v-404a3483]{margin-top:18px;min-height:150px;padding:26px 24px 20px;border-radius:12px;background:#f8f9fc}.info-grid[data-v-404a3483]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 28px}.info-label[data-v-404a3483]{font-size:14px;color:#a2aac4}.info-value[data-v-404a3483]{margin-top:10px;font-weight:500;font-size:14px;color:#1e293b;line-height:24px;text-align:left}.multi-line[data-v-404a3483]{line-height:1.8}.operation-item+.operation-item[data-v-404a3483]{margin-top:20px}.auth-section[data-v-404a3483]{margin-top:34px;padding-top:6px}.auth-heading[data-v-404a3483]{margin-bottom:26px}.auth-process[data-v-404a3483]{position:relative;padding-left:10px}.timeline-line[data-v-404a3483]{position:absolute;left:15px;top:30px;width:1px;height:92px;border-left:1px dashed #d7dce8}.process-step[data-v-404a3483]{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:3px}.process-step+.process-step[data-v-404a3483]{margin-top:30px}.dot[data-v-404a3483]{width:10px;height:10px;margin-top:10px;border-radius:50%;background:#d7dce8}.process-step.current .dot[data-v-404a3483]{background:#3f73ff;box-shadow:0 0 0 3px rgba(63,115,255,.12)}.step-row[data-v-404a3483]{display:flex;align-items:center;gap:12px}.step-row strong[data-v-404a3483]{font-size:14px;font-weight:600;color:#3d3d3d}.badge[data-v-404a3483]{min-width:37px;height:16px;padding:0 10px;border-radius:2px;background:#d1e0fa;color:#0857df;font-size:12px;line-height:16px;text-align:center}.badge.light[data-v-404a3483]{min-width:80px}.step-content p[data-v-404a3483]{margin-top:10px;font-size:14px;color:#818181;line-height:22px}.text_red[data-v-404a3483]{color:#e34d59!important}.bj-tag[data-v-404a3483]{width:10px;height:10px}.verify-btn[data-v-404a3483]{align-self:center;width:94px;height:32px;border:0;border-radius:4px;background:#5754cd;color:#fff;font-size:15px;cursor:pointer}.verify-btn[data-v-404a3483]:disabled{cursor:not-allowed;opacity:.7}@media(max-width:1200px){.overview-grid[data-v-404a3483]{grid-template-columns:1fr}}@media(max-width:760px){.hero-name-row[data-v-404a3483],.hero-row[data-v-404a3483],.process-step[data-v-404a3483],.step-row[data-v-404a3483]{flex-direction:column;align-items:flex-start}.info-grid[data-v-404a3483],.process-step[data-v-404a3483]{grid-template-columns:1fr}.timeline-line[data-v-404a3483]{display:none}}
+1
View File
@@ -0,0 +1 @@
.user-shell-page[data-v-82f3cd94]{min-height:100vh;background:#eef3fb}.topbar[data-v-82f3cd94]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-82f3cd94]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-82f3cd94]{width:273px;display:block}.brand-text[data-v-82f3cd94]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-82f3cd94]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-82f3cd94]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-82f3cd94],.top-nav-item[data-v-82f3cd94]:hover{color:#625ae8}.top-actions[data-v-82f3cd94]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-82f3cd94]{position:relative}.center-link[data-v-82f3cd94]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-82f3cd94]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-82f3cd94]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-82f3cd94]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-82f3cd94]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-82f3cd94]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-82f3cd94]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-82f3cd94]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-82f3cd94]{padding:24px 0 40px}.page-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-82f3cd94]{align-self:start;width:254px}.content-card[data-v-82f3cd94],.sidebar[data-v-82f3cd94]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-82f3cd94]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-82f3cd94]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-82f3cd94]{min-width:0}.profile-name[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-82f3cd94]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-82f3cd94]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-82f3cd94]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-82f3cd94]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-82f3cd94]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-82f3cd94]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-82f3cd94]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-82f3cd94]{height:auto;padding:12px 0}.page-inner[data-v-82f3cd94],.topbar-inner[data-v-82f3cd94]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-82f3cd94]{flex-wrap:wrap;gap:12px}.top-nav[data-v-82f3cd94]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-82f3cd94]{grid-template-columns:1fr}}
-1
View File
@@ -1 +0,0 @@
.login-page[data-v-1b71f7a2]{min-height:100vh;background:url(../img/l_bg.b4766c7f.png) 50% no-repeat;background-size:100% 100%}.login-shell[data-v-1b71f7a2]{position:relative;min-height:100vh;padding:30px 52px}.brand-corner[data-v-1b71f7a2]{position:absolute;top:32px;left:52px;cursor:pointer}.brand-corner-logo[data-v-1b71f7a2]{width:292px;display:block}.login-stage[data-v-1b71f7a2]{min-height:calc(100vh - 60px);display:grid;grid-template-columns:minmax(480px,1fr) 536px;align-items:center;gap:72px}.stage-visual[data-v-1b71f7a2]{display:flex;align-items:flex-end;justify-content:center;padding-top:30px}.stage-visual-img[data-v-1b71f7a2]{width:min(100%,540px);display:block;transform:translateX(-90px)}.login-card[data-v-1b71f7a2]{width:536px;min-height:714px;padding:58px 48px 44px;border-radius:24px;background:hsla(0,0%,100%,.94);box-shadow:0 20px 60px rgba(131,141,190,.18);transform:translateX(-270px)}.login-card-logo[data-v-1b71f7a2]{width:152px;display:block;margin:0 auto}.login-tabs[data-v-1b71f7a2]{display:grid;grid-template-columns:1fr 1fr;margin-top:34px;border-bottom:1px solid #cfd3de;width:260px}.login-tab[data-v-1b71f7a2]{height:44px;border:0;border-bottom:2px solid transparent;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#999fb8}.login-tab-icon[data-v-1b71f7a2]{width:16px;height:16px;display:block;-o-object-fit:contain;object-fit:contain}.login-tab.active[data-v-1b71f7a2]{border-bottom-color:#5b63f3;color:#5b63f3}.form-block[data-v-1b71f7a2],.login-form[data-v-1b71f7a2]{margin-top:22px}.field-label[data-v-1b71f7a2]{margin-bottom:12px;color:#232843;font-size:15px}.required[data-v-1b71f7a2]{color:#9f6bff}.inline-row[data-v-1b71f7a2]{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px;align-items:center}.flex-1[data-v-1b71f7a2]{min-width:0}.field-input[data-v-1b71f7a2] .el-input__inner{height:45px;background:#f8fafc;border-radius:8px 8px 8px 8px;border:1px solid #e2e8f0;color:#2d3654;font-size:15px}.inline-row2[data-v-1b71f7a2] .el-input__inner{border:none;height:43px}.inline-row2[data-v-1b71f7a2]{display:grid;grid-template-columns:minmax(0,1fr) 87px;gap:10px;align-items:center;height:45px;background:#f8fafc;border-radius:8px 8px 8px 8px;border:1px solid #e2e8f0;color:#2d3654;font-size:15px}.field-input[data-v-1b71f7a2] .el-input__inner::-moz-placeholder{color:#b2b9d0}.field-input[data-v-1b71f7a2] .el-input__inner::placeholder{color:#b2b9d0}.field-input[data-v-1b71f7a2] .el-input__inner:focus{border-color:#7a83ff}.captcha-box[data-v-1b71f7a2],.code-btn[data-v-1b71f7a2]{height:45px;border:0;border-radius:8px}.code-btn[data-v-1b71f7a2]{background:#e6e9ff;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#4f46e5}.code-btn[data-v-1b71f7a2]:disabled{cursor:not-allowed;opacity:.7}.captcha-box[data-v-1b71f7a2]{display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;border:none;background:none;cursor:pointer;width:82px;height:36px}.captcha-image[data-v-1b71f7a2]{width:100%;height:100%;display:block}.submit-btn[data-v-1b71f7a2]{width:100%;height:54px;margin-top:28px;border:0;background:linear-gradient(117deg,#518bff,#9e5dff),linear-gradient(149deg,rgba(172,234,255,.6),rgba(209,250,255,0));box-shadow:0 2px 10px 0 rgba(157,157,191,.35);border-radius:12px 12px 12px 12px;color:#fff;font-size:18px;font-weight:700;cursor:pointer}.submit-btn[data-v-1b71f7a2]:disabled{cursor:not-allowed;opacity:.75}.login-footer[data-v-1b71f7a2]{margin-top:14px;display:flex;justify-content:flex-end;align-items:center;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8;line-height:20px}.register-link[data-v-1b71f7a2]{border:0;padding:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#4f46e5}@media(max-width:1200px){.login-shell[data-v-1b71f7a2]{padding:24px}.brand-corner[data-v-1b71f7a2]{left:24px;top:24px}.login-stage[data-v-1b71f7a2]{grid-template-columns:1fr;justify-items:center;gap:24px;padding-top:70px}.stage-visual[data-v-1b71f7a2]{padding-top:0}.login-card[data-v-1b71f7a2],.stage-visual-img[data-v-1b71f7a2]{transform:none}}@media(max-width:640px){.brand-corner-logo[data-v-1b71f7a2]{width:210px}.login-card[data-v-1b71f7a2]{min-height:auto;padding:34px 20px 28px;border-radius:20px}.login-card-logo[data-v-1b71f7a2]{width:170px}.login-tab[data-v-1b71f7a2]{font-size:14px}.field-label[data-v-1b71f7a2]{font-family:Source Han Sans;font-weight:400;font-size:14px;color:#1e293b;line-height:20px;text-align:left}.inline-row[data-v-1b71f7a2]{grid-template-columns:1fr}.captcha-box[data-v-1b71f7a2],.code-btn[data-v-1b71f7a2],.field-input[data-v-1b71f7a2] .el-input__inner{height:44px}}
+1
View File
@@ -0,0 +1 @@
.user-shell-page[data-v-82f3cd94]{min-height:100vh;background:#eef3fb}.topbar[data-v-82f3cd94]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-82f3cd94]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-82f3cd94]{width:273px;display:block}.brand-text[data-v-82f3cd94]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-82f3cd94]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-82f3cd94]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-82f3cd94],.top-nav-item[data-v-82f3cd94]:hover{color:#625ae8}.top-actions[data-v-82f3cd94]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-82f3cd94]{position:relative}.center-link[data-v-82f3cd94]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-82f3cd94]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-82f3cd94]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-82f3cd94]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-82f3cd94]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-82f3cd94]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-82f3cd94]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-82f3cd94]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-82f3cd94]{padding:24px 0 40px}.page-inner[data-v-82f3cd94]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-82f3cd94]{align-self:start;width:254px}.content-card[data-v-82f3cd94],.sidebar[data-v-82f3cd94]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-82f3cd94]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-82f3cd94]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-82f3cd94]{min-width:0}.profile-name[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-82f3cd94]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-82f3cd94]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-82f3cd94]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-82f3cd94]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-82f3cd94]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-82f3cd94]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-82f3cd94]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-82f3cd94]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-82f3cd94]{height:auto;padding:12px 0}.page-inner[data-v-82f3cd94],.topbar-inner[data-v-82f3cd94]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-82f3cd94]{flex-wrap:wrap;gap:12px}.top-nav[data-v-82f3cd94]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-82f3cd94]{grid-template-columns:1fr}}
-1
View File
@@ -1 +0,0 @@
.user-shell-page[data-v-08ed3d66]{min-height:100vh;background:#eef3fb}.topbar[data-v-08ed3d66]{position:sticky;top:0;z-index:20;height:78px;background:hsla(0,0%,100%,.96);box-shadow:0 1px 0 rgba(229,235,247,.95)}.topbar-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);height:100%;margin:0 auto;display:flex;align-items:center}.brand[data-v-08ed3d66]{border:0;padding:0;background:transparent;display:inline-flex;align-items:center;gap:12px;cursor:pointer}.brand-logo[data-v-08ed3d66]{width:273px;display:block}.brand-text[data-v-08ed3d66]{color:#222942;font-size:15px;font-weight:700}.top-nav[data-v-08ed3d66]{display:flex;align-items:center;gap:36px;margin-left:130px;width:450px}.top-nav-item[data-v-08ed3d66]{border:0;background:transparent;cursor:pointer;font-family:Source Han Sans;font-weight:400;font-size:15px;color:#646199;line-height:24px}.top-nav-item.active[data-v-08ed3d66],.top-nav-item[data-v-08ed3d66]:hover{color:#625ae8}.top-actions[data-v-08ed3d66]{margin-left:auto;display:flex;align-items:center;gap:18px}.center-entry[data-v-08ed3d66]{position:relative}.center-link[data-v-08ed3d66]{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:Source Han Sans;font-weight:500;font-size:15px;color:#5b63f3;line-height:22px}.center-menu[data-v-08ed3d66]{position:absolute;top:100%;right:0;z-index:10;min-width:118px;padding:8px;border:1px solid #e5e9f7;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(72,84,132,.14)}.center-menu-item[data-v-08ed3d66]{width:100%;height:36px;border:0;border-radius:8px;background:transparent;color:#303a62;font-size:14px;cursor:pointer}.center-menu-item[data-v-08ed3d66]:hover:not(:disabled){background:#f3f5ff;color:#5b63f3}.center-menu-item[data-v-08ed3d66]:disabled{cursor:not-allowed;color:#a0a7c2}.center-avatar[data-v-08ed3d66]{width:38px;height:38px;border-radius:50%;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.center-avatar[data-v-08ed3d66]:after{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;border-radius:50%;background:#fff}.apply-btn[data-v-08ed3d66]{border:none;width:120px;height:44px;background:linear-gradient(117deg,#518bff,#9e5dff);box-shadow:0 4px 14px 0 rgba(99,102,241,.35);border-radius:10px 10px 10px 10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.page-body[data-v-08ed3d66]{padding:24px 0 40px}.page-inner[data-v-08ed3d66]{width:1166px;max-width:calc(100vw - 32px);margin:0 auto;display:grid;grid-template-columns:254px minmax(0,1fr);gap:28px}.sidebar[data-v-08ed3d66]{align-self:start;width:254px}.content-card[data-v-08ed3d66],.sidebar[data-v-08ed3d66]{border-radius:8px;background:#fff;box-shadow:0 3px 8px 0 rgba(118,120,144,.22)}.profile-card[data-v-08ed3d66]{min-height:118px;padding:18px 20px;display:flex;align-items:center;gap:14px;background-size:cover;background-position:50%;border-radius:8px 8px 0 0}.profile-avatar[data-v-08ed3d66]{width:54px;height:54px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:rgba(93,96,106,.5);background:conic-gradient(from 0deg,#9f64ff,#528aff);padding:2px;box-sizing:border-box;position:relative}.profile-meta[data-v-08ed3d66]{min-width:0}.profile-name[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d233e;font-size:18px;font-weight:700}.profile-role[data-v-08ed3d66]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;color:#6170ff;font-size:15px}.menu-card[data-v-08ed3d66]{min-height:430px;padding:12px;border-radius:0}.menu-item[data-v-08ed3d66]{border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:0 18px;font-weight:400;font-size:14px;color:#696e83;cursor:pointer;width:230px;height:40px;border-radius:8px 8px 8px 8px;margin-bottom:8px}.menu-item.active[data-v-08ed3d66]{background:#e6e8ff;font-family:Source Han Sans;font-weight:500;font-size:14px;color:#4f46e5}.menu-icon[data-v-08ed3d66]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.content-card[data-v-08ed3d66]{min-height:886px;padding:22px 44px;box-shadow:0 4px 10px 0 rgba(118,120,144,.22)}.content-header h1[data-v-08ed3d66]{font-family:Source Han Sans;font-weight:700;font-size:20px;color:#1e293b}.content-header p[data-v-08ed3d66]{margin-top:6px;font-family:Source Han Sans;font-weight:400;font-size:14px;color:#999fb8}@media(max-width:1200px){.topbar[data-v-08ed3d66]{height:auto;padding:12px 0}.page-inner[data-v-08ed3d66],.topbar-inner[data-v-08ed3d66]{max-width:calc(100vw - 24px)}.topbar-inner[data-v-08ed3d66]{flex-wrap:wrap;gap:12px}.top-nav[data-v-08ed3d66]{margin-left:0;order:3;flex-wrap:wrap}.page-inner[data-v-08ed3d66]{grid-template-columns:1fr}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel="icon" href="favicon.ico"><title>COG主播可信资产综合服务平台</title><link href="css/chunk-079812e5.a0f5f242.css" rel="prefetch"><link href="css/chunk-0abba2d0.cf540aca.css" rel="prefetch"><link href="css/chunk-1658b337.6ce3178b.css" rel="prefetch"><link href="css/chunk-1b77d37a.6ce3178b.css" rel="prefetch"><link href="css/chunk-2017397a.bdcf0619.css" rel="prefetch"><link href="css/chunk-24d5a030.3d811258.css" rel="prefetch"><link href="css/chunk-295a9974.cd7250ee.css" rel="prefetch"><link href="css/chunk-2ec66508.32128c81.css" rel="prefetch"><link href="css/chunk-3d390780.7473d143.css" rel="prefetch"><link href="css/chunk-46434497.207a7e9d.css" rel="prefetch"><link href="css/chunk-4ebbbd38.36b30638.css" rel="prefetch"><link href="css/chunk-6d665f0f.9efde4d6.css" rel="prefetch"><link href="css/chunk-7dd59700.29667479.css" rel="prefetch"><link href="css/chunk-9a3f03de.6ce3178b.css" rel="prefetch"><link href="css/chunk-a5ac84ce.eada41cf.css" rel="prefetch"><link href="css/chunk-bab9cf58.230870f3.css" rel="prefetch"><link href="js/chunk-079812e5.eebd7b53.js" rel="prefetch"><link href="js/chunk-0abba2d0.7ef5f423.js" rel="prefetch"><link href="js/chunk-1658b337.f4bb1668.js" rel="prefetch"><link href="js/chunk-1b77d37a.c7ac8188.js" rel="prefetch"><link href="js/chunk-2017397a.50264d8b.js" rel="prefetch"><link href="js/chunk-24d5a030.ca3a0b47.js" rel="prefetch"><link href="js/chunk-295a9974.f314bde0.js" rel="prefetch"><link href="js/chunk-2ec66508.cccf5a9c.js" rel="prefetch"><link href="js/chunk-3d390780.b152ea0d.js" rel="prefetch"><link href="js/chunk-46434497.dbf5ed10.js" rel="prefetch"><link href="js/chunk-4ebbbd38.4d7f8fb3.js" rel="prefetch"><link href="js/chunk-6d665f0f.ef19eb31.js" rel="prefetch"><link href="js/chunk-7dd59700.f0243b69.js" rel="prefetch"><link href="js/chunk-9a3f03de.43adabbf.js" rel="prefetch"><link href="js/chunk-a5ac84ce.67023274.js" rel="prefetch"><link href="js/chunk-bab9cf58.841a5f8b.js" rel="prefetch"><link href="css/app.8dc99273.css" rel="preload" as="style"><link href="css/chunk-vendors.6521351c.css" rel="preload" as="style"><link href="js/app.83237aa3.js" rel="preload" as="script"><link href="js/chunk-vendors.1cebe2c1.js" rel="preload" as="script"><link href="css/chunk-vendors.6521351c.css" rel="stylesheet"><link href="css/app.8dc99273.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but COG主播可信资产综合服务平台 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.1cebe2c1.js"></script><script src="js/app.83237aa3.js"></script></body></html> <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel="icon" href="favicon.ico"><title>COG主播可信资产综合服务平台</title><link href="css/chunk-014bac7c.42ef0a11.css" rel="prefetch"><link href="css/chunk-01c198f1.6c523b93.css" rel="prefetch"><link href="css/chunk-02b41192.62a93228.css" rel="prefetch"><link href="css/chunk-206307ef.a0f5f242.css" rel="prefetch"><link href="css/chunk-23a03460.bdcf0619.css" rel="prefetch"><link href="css/chunk-295a9974.cd7250ee.css" rel="prefetch"><link href="css/chunk-2d98e3b8.f148d267.css" rel="prefetch"><link href="css/chunk-2ec66508.32128c81.css" rel="prefetch"><link href="css/chunk-3c765fa2.2b3c099f.css" rel="prefetch"><link href="css/chunk-3d390780.70f5750d.css" rel="prefetch"><link href="css/chunk-45d93684.feec998c.css" rel="prefetch"><link href="css/chunk-5211ba86.f148d267.css" rel="prefetch"><link href="css/chunk-547e5f24.3d811258.css" rel="prefetch"><link href="css/chunk-71c0446b.f148d267.css" rel="prefetch"><link href="css/chunk-7dd59700.29667479.css" rel="prefetch"><link href="css/chunk-f3da9654.9130b07b.css" rel="prefetch"><link href="js/chunk-014bac7c.afbac5cf.js" rel="prefetch"><link href="js/chunk-01c198f1.21cb9ef4.js" rel="prefetch"><link href="js/chunk-02b41192.20ee2b9c.js" rel="prefetch"><link href="js/chunk-206307ef.931e2876.js" rel="prefetch"><link href="js/chunk-23a03460.fb66bf9b.js" rel="prefetch"><link href="js/chunk-295a9974.2655dd8d.js" rel="prefetch"><link href="js/chunk-2d98e3b8.fb7f97da.js" rel="prefetch"><link href="js/chunk-2ec66508.8c50bd7f.js" rel="prefetch"><link href="js/chunk-3c765fa2.47a2973c.js" rel="prefetch"><link href="js/chunk-3d390780.6893670d.js" rel="prefetch"><link href="js/chunk-45d93684.ddf3c580.js" rel="prefetch"><link href="js/chunk-5211ba86.f9da09df.js" rel="prefetch"><link href="js/chunk-547e5f24.6ea56b03.js" rel="prefetch"><link href="js/chunk-71c0446b.39022c55.js" rel="prefetch"><link href="js/chunk-7dd59700.2567eb8d.js" rel="prefetch"><link href="js/chunk-f3da9654.cf235142.js" rel="prefetch"><link href="css/app.f779ef5a.css" rel="preload" as="style"><link href="css/chunk-vendors.6521351c.css" rel="preload" as="style"><link href="js/app.1311b942.js" rel="preload" as="script"><link href="js/chunk-vendors.62ab1190.js" rel="preload" as="script"><link href="css/chunk-vendors.6521351c.css" rel="stylesheet"><link href="css/app.f779ef5a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but COG主播可信资产综合服务平台 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.62ab1190.js"></script><script src="js/app.1311b942.js"></script></body></html>
+2
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
-2
View File
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3d390780"],{"059d":function(t,r,a){},"6ab1":function(t,r,a){"use strict";a.r(r);var e=function(){var t=this,r=t._self._c;return r("div",{staticClass:"product-detail"},[r("Nav"),r("el-card",[r("img",{staticClass:"product-image",attrs:{src:t.product.coverImage}}),r("div",{staticClass:"product-info"},[r("h1",[t._v(t._s(t.product.name))]),r("p",[t._v(t._s(t.product.description))]),t._l(t.product.detailImages,(function(t,a){return r("div",{key:a},[r("img",{staticClass:"product-image",attrs:{src:t,alt:"商品图片"}})])}))],2)]),t.error?r("el-alert",{attrs:{title:t.error,type:"error",closable:!1}}):t._e(),r("Footer",{staticClass:"top"})],1)},o=[],c=(a("d9e2"),a("f8d9")),s=a("c683");a("b775");function i(t){}var n={name:"ProductDetail",data(){return{product:{},error:null}},components:{Nav:c["a"],Footer:s["a"]},async created(){try{const t=this.$route.params.id;console.log("Fetching product with ID:",t);const r=await i(t);if(console.log("Product data received:",r),0!==r.code)throw new Error(r.message||"获取产品详情失败");this.product=r.data}catch(t){console.error("获取产品详情失败:",t),this.error="获取产品详情失败,请稍后再试"}}},d=n,u=(a("aa10"),a("2877")),l=Object(u["a"])(d,e,o,!1,null,"266593e1",null);r["default"]=l.exports},aa10:function(t,r,a){"use strict";a("059d")}}]); (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3d390780"],{"059d":function(t,r,a){},"6ab1":function(t,r,a){"use strict";a.r(r);var e=function(){var t=this,r=t._self._c;return r("div",{staticClass:"product-detail"},[r("Nav"),r("el-card",[r("img",{staticClass:"product-image",attrs:{src:t.product.coverImage}}),r("div",{staticClass:"product-info"},[r("h1",[t._v(t._s(t.product.name))]),r("p",[t._v(t._s(t.product.description))]),t._l(t.product.detailImages,(function(t,a){return r("div",{key:a},[r("img",{staticClass:"product-image",attrs:{src:t,alt:"商品图片"}})])}))],2)]),t.error?r("el-alert",{attrs:{title:t.error,type:"error",closable:!1}}):t._e(),r("Footer",{staticClass:"top"})],1)},o=[],c=(a("d9e2"),a("f8d9")),s=a("c683");a("b775");function i(t){}var n={name:"ProductDetail",data(){return{product:{},error:null}},components:{Nav:c["a"],Footer:s["a"]},async created(){try{const t=this.$route.params.id;console.log("Fetching product with ID:",t);const r=await i(t);if(console.log("Product data received:",r),0!==r.code)throw new Error(r.message||"获取产品详情失败");this.product=r.data}catch(t){console.error("获取产品详情失败:",t),this.error="获取产品详情失败,请稍后再试"}}},d=n,u=(a("aa10"),a("2877")),l=Object(u["a"])(d,e,o,!1,null,"266593e1",null);r["default"]=l.exports},aa10:function(t,r,a){"use strict";a("059d")}}]);
//# sourceMappingURL=chunk-3d390780.b152ea0d.js.map //# sourceMappingURL=chunk-3d390780.6893670d.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+83 -19
View File
@@ -66,6 +66,57 @@ const requestAuthenticatedPublicApi = (config) => {
.catch(normalizePublicApiError) .catch(normalizePublicApiError)
} }
const MAX_DIRECT_UPLOAD_SIZE = 30 * 1024 * 1024
const DIRECT_UPLOAD_EXTENSIONS = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'pdf', 'doc', 'docx']
const getDirectUploadFileName = (file) => {
const filename = file && typeof file.name === 'string' ? file.name.trim() : ''
const extension = filename.includes('.') ? filename.split('.').pop().toLowerCase() : ''
if (!filename) {
throw new Error('请选择要上传的文件')
}
if (filename.length > 255) {
throw new Error('文件名不能超过255个字符')
}
if (!DIRECT_UPLOAD_EXTENSIONS.includes(extension)) {
throw new Error('仅支持 jpg、jpeg、png、gif、webp、pdf、doc、docx 格式文件')
}
if (typeof file.size === 'number' && file.size > MAX_DIRECT_UPLOAD_SIZE) {
throw new Error('文件大小不能超过30M')
}
return filename
}
const getDirectUploadSignature = (response) => {
const signature = response && response.data && typeof response.data === 'object'
? response.data
: response
const headers = signature && signature.headers
const contentTypeKey = headers && Object.keys(headers).find(key => key.toLowerCase() === 'content-type')
if (!signature || typeof signature.upload_url !== 'string' || typeof signature.url !== 'string') {
throw new Error('上传签名无效,请重试')
}
if (!headers || typeof headers !== 'object' || !contentTypeKey || !headers[contentTypeKey]) {
throw new Error('上传签名缺少 Content-Type,请重试')
}
return signature
}
const getDirectUploadError = (error) => {
const responseData = error && error.response ? error.response.data : null
const message = responseData && typeof responseData === 'object' && responseData.message
? responseData.message
: (error && error.message)
const normalizedError = new Error(message || '文件上传失败,请重试')
normalizedError.response = error && error.response
normalizedError.data = responseData
throw normalizedError
}
export const getCaptcha = () => { export const getCaptcha = () => {
return publicApi.get('/captcha') return publicApi.get('/captcha')
.then(unwrapPublicApiResponse) .then(unwrapPublicApiResponse)
@@ -117,29 +168,42 @@ export const getAssetEvaluationOptions = () => {
}) })
} }
export const uploadMemberImage = (file) => { export const uploadMemberFile = async (file, type = 'image', options = {}) => {
const formData = new FormData() void type
formData.append('type', 'image') const filename = getDirectUploadFileName(file)
formData.append('file', file) const signatureResponse = await requestAuthenticatedPublicApi({
url: '/upload/direct',
return requestAuthenticatedPublicApi({
url: '/upload',
method: 'post', method: 'post',
data: formData data: { filename }
}) })
const signature = getDirectUploadSignature(signatureResponse)
try {
await axios({
url: signature.upload_url,
method: 'put',
data: file,
headers: { ...signature.headers },
timeout: 600000,
withCredentials: false,
transformRequest: [data => data],
validateStatus: status => status === 200,
onUploadProgress: typeof options.onProgress === 'function' ? options.onProgress : undefined
})
} catch (error) {
getDirectUploadError(error)
}
return {
data: {
url: signature.url,
key: signature.key,
expires_in: signature.expires_in
}
}
} }
export const uploadMemberFile = (file, type = 'image') => { export const uploadMemberImage = (file, options = {}) => uploadMemberFile(file, 'image', options)
const formData = new FormData()
formData.append('type', type)
formData.append('file', file)
return requestAuthenticatedPublicApi({
url: '/upload',
method: 'post',
data: formData
})
}
export const verifyMemberIdCard = (data) => { export const verifyMemberIdCard = (data) => {
return requestAuthenticatedPublicApi({ return requestAuthenticatedPublicApi({
+3 -1
View File
@@ -1,5 +1,7 @@
//const baseUrl = 'http://cogzb.com/' // 测试环境地址cogzb.com //const baseUrl = 'http://cogzb.com/' // 测试环境地址cogzb.com
const baseUrl = 'https://dev-cogzb-api.scszsj.com/' // 产线地址 //const baseUrl = 'https://dev-cogzb-api.scszsj.com/' // 产线地址
const baseUrl = 'https://cogzb-api.scszsj.com/' // 产线地址
// const baseUrl = process.env.VUE_APP_API_URL; // 使用环境变量 // const baseUrl = process.env.VUE_APP_API_URL; // 使用环境变量
export { export {
+30
View File
@@ -0,0 +1,30 @@
export const USER_INFO_UPDATED_EVENT = 'user-info-updated';
function getCachedUserInfo() {
try {
const raw = window.localStorage.getItem('userInfo');
return raw ? JSON.parse(raw) : {};
} catch (error) {
return {};
}
}
export function updateCachedUserInfo(changes) {
if (typeof window === 'undefined' || !window.localStorage) {
return {};
}
const nextUserInfo = {
...getCachedUserInfo(),
...(changes && typeof changes === 'object' ? changes : {})
};
try {
window.localStorage.setItem('userInfo', JSON.stringify(nextUserInfo));
} catch (error) {
void error;
}
window.dispatchEvent(new CustomEvent(USER_INFO_UPDATED_EVENT, { detail: nextUserInfo }));
return nextUserInfo;
}
+11
View File
@@ -39,6 +39,7 @@
import { logoutMemberSession } from '@/api/user'; import { logoutMemberSession } from '@/api/user';
import { clearUserSession, getToken } from '@/utils/auth'; import { clearUserSession, getToken } from '@/utils/auth';
import defaultAvatar from '@/assets/img/user/avatar.png'; import defaultAvatar from '@/assets/img/user/avatar.png';
import { USER_INFO_UPDATED_EVENT } from '@/utils/userInfo';
export default { export default {
name: 'Nav', name: 'Nav',
@@ -71,8 +72,18 @@ export default {
}, },
created() { created() {
this.syncUserState(); this.syncUserState();
window.addEventListener(USER_INFO_UPDATED_EVENT, this.handleUserInfoUpdated);
},
beforeDestroy() {
window.removeEventListener(USER_INFO_UPDATED_EVENT, this.handleUserInfoUpdated);
}, },
methods: { methods: {
handleUserInfoUpdated(event) {
const userInfo = event && event.detail;
if (userInfo && typeof userInfo === 'object') {
this.userInfo = { ...this.userInfo, ...userInfo };
}
},
syncUserState() { syncUserState() {
this.token = getToken(); this.token = getToken();
try { try {
+1
View File
@@ -486,6 +486,7 @@ export default {
cursor: pointer; cursor: pointer;
width: 82px; width: 82px;
height: 36px; height: 36px;
margin-top: 0;
} }
.captcha-image { .captcha-image {
+26 -4
View File
@@ -186,7 +186,7 @@ export default {
} }
} }
}, },
validateBaseFields() { validateBaseFields(requireServiceAgreement = false) {
if (this.activeType === 'org' && !this.registerForm.companyName) { if (this.activeType === 'org' && !this.registerForm.companyName) {
this.$message.warning('请输入企业名称'); this.$message.warning('请输入企业名称');
return false; return false;
@@ -207,7 +207,7 @@ export default {
return false; return false;
} }
if (!this.registerForm.agreeService) { if (requireServiceAgreement && !this.registerForm.agreeService) {
this.$message.warning('请先阅读并同意相关协议'); this.$message.warning('请先阅读并同意相关协议');
return false; return false;
} }
@@ -264,7 +264,7 @@ export default {
} }
}, },
async handleSubmitRegister() { async handleSubmitRegister() {
if (!this.validateBaseFields()) { if (!this.validateBaseFields(true)) {
return; return;
} }
@@ -326,8 +326,29 @@ export default {
|| (error && error.message ? error.message.includes('图形验证码') : false); || (error && error.message ? error.message.includes('图形验证码') : false);
}, },
handleRegisterSuccess(response) { handleRegisterSuccess(response) {
const token = response && response.token;
if (!token) {
throw new Error('注册返回数据不完整');
}
const userInfo = response && response.data;
const userType = userInfo && userInfo.type
? userInfo.type
: (this.activeType === 'org' ? 'mcn' : 'individual');
localStorage.setItem('token', token);
localStorage.setItem('loginType', userType);
if (userInfo) {
localStorage.setItem('userInfo', JSON.stringify(userInfo));
}
if (this.$store) {
this.$store.commit('user/SET_TOKEN', token);
}
this.$message.success((response && response.message) || '注册成功'); this.$message.success((response && response.message) || '注册成功');
this.$router.push({ path: '/login' }); this.$router.push({
path: userType === 'mcn' || userType === 'org' ? '/user/org' : '/user/personal'
});
} }
} }
}; };
@@ -525,6 +546,7 @@ export default {
cursor: pointer; cursor: pointer;
width: 82px; width: 82px;
height: 36px; height: 36px;
margin-top: 0;
} }
.captcha-image { .captcha-image {
+2 -1
View File
@@ -112,6 +112,7 @@ import {
updateMemberAvatar, updateMemberAvatar,
uploadMemberImage uploadMemberImage
} from '@/api/user'; } from '@/api/user';
import { updateCachedUserInfo } from '@/utils/userInfo';
const MAX_IMAGE_SIZE = 5 * 1024 * 1024; const MAX_IMAGE_SIZE = 5 * 1024 * 1024;
@@ -191,7 +192,7 @@ function syncCachedUserInfo(profileData) {
created_at: profileData.created_at || cachedUserInfo.created_at || '', created_at: profileData.created_at || cachedUserInfo.created_at || '',
company_code: profileData.company_code || cachedUserInfo.company_code || '' company_code: profileData.company_code || cachedUserInfo.company_code || ''
}; };
window.localStorage.setItem('userInfo', JSON.stringify(nextUserInfo)); updateCachedUserInfo(nextUserInfo);
} catch (error) { } catch (error) {
void error; void error;
} }
+3 -1
View File
@@ -211,6 +211,7 @@ import {
personalProfile, personalProfile,
personalQuickInfo personalQuickInfo
} from './personalShared'; } from './personalShared';
import { updateCachedUserInfo } from '@/utils/userInfo';
const MAX_IMAGE_SIZE = 5 * 1024 * 1024; const MAX_IMAGE_SIZE = 5 * 1024 * 1024;
const PLATFORM_OPTIONS = [ const PLATFORM_OPTIONS = [
@@ -326,7 +327,7 @@ function syncCachedUserInfo(profileData, certificationData) {
id_card_no: certificationData.id_card_no || cachedUserInfo.id_card_no || '', id_card_no: certificationData.id_card_no || cachedUserInfo.id_card_no || '',
platform_accounts: platformAccounts platform_accounts: platformAccounts
}; };
window.localStorage.setItem('userInfo', JSON.stringify(nextUserInfo)); updateCachedUserInfo(nextUserInfo);
} catch (error) { } catch (error) {
void error; void error;
} }
@@ -545,6 +546,7 @@ export default {
...this.profile, ...this.profile,
avatar: avatarUrl avatar: avatarUrl
}; };
updateCachedUserInfo({ avatar: avatarUrl });
this.$message.success('头像已更新'); this.$message.success('头像已更新');
} catch (error) { } catch (error) {
this.$message.error(error && error.message ? error.message : '头像更新失败'); this.$message.error(error && error.message ? error.message : '头像更新失败');
+17 -3
View File
@@ -37,7 +37,7 @@
<div class="page-inner"> <div class="page-inner">
<aside class="sidebar"> <aside class="sidebar">
<div class="profile-card" :style="profileCardStyle"> <div class="profile-card" :style="profileCardStyle">
<img class="profile-avatar" :src="profile.avatar" alt="头像" referrerpolicy="no-referrer" /> <img class="profile-avatar" :src="displayAvatar" alt="头像" referrerpolicy="no-referrer" />
<div class="profile-meta"> <div class="profile-meta">
<div class="profile-name">{{ profile.name }}</div> <div class="profile-name">{{ profile.name }}</div>
<div class="profile-role">{{ profileRoleText }}</div> <div class="profile-role">{{ profileRoleText }}</div>
@@ -75,6 +75,7 @@ import { logoutMemberSession } from '@/api/user';
import brandLogo from '@/assets/img/logo.png'; import brandLogo from '@/assets/img/logo.png';
import defaultAvatar from '@/assets/img/user/avatar.png'; import defaultAvatar from '@/assets/img/user/avatar.png';
import { clearUserSession } from '@/utils/auth'; import { clearUserSession } from '@/utils/auth';
import { USER_INFO_UPDATED_EVENT } from '@/utils/userInfo';
export default { export default {
name: 'UserShell', name: 'UserShell',
@@ -109,7 +110,7 @@ export default {
return brandLogo; return brandLogo;
}, },
displayAvatar() { displayAvatar() {
return this.profile.avatar || defaultAvatar; return this.syncedAvatar || this.profile.avatar || defaultAvatar;
}, },
isMcnRole() { isMcnRole() {
const role = String(this.profile && this.profile.role ? this.profile.role : ''); const role = String(this.profile && this.profile.role ? this.profile.role : '');
@@ -147,10 +148,23 @@ export default {
data() { data() {
return { return {
loggingOut: false, loggingOut: false,
profileMenuVisible: false profileMenuVisible: false,
syncedAvatar: ''
}; };
}, },
created() {
window.addEventListener(USER_INFO_UPDATED_EVENT, this.handleUserInfoUpdated);
},
beforeDestroy() {
window.removeEventListener(USER_INFO_UPDATED_EVENT, this.handleUserInfoUpdated);
},
methods: { methods: {
handleUserInfoUpdated(event) {
const userInfo = event && event.detail;
if (userInfo && userInfo.avatar) {
this.syncedAvatar = userInfo.avatar;
}
},
openApplyDialog() { openApplyDialog() {
this.$openApplyDialog({ this.$openApplyDialog({
source: 'user-shell-apply', source: 'user-shell-apply',