| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>Reset</title>
- <meta http-equiv="X-UA-Compatible" content="ie=edge" />
- <meta name="full-screen" content="yes" />
- <meta name="x5-fullscreen" content="true" />
- <meta name="viewport"
- content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
- <link rel="stylesheet" href="css/element-ui.css" />
- <link rel="stylesheet" href="css/element@2.12.2.css" />
- <link rel="stylesheet" href="css/index.css" />
- <style>
- :root {
- --brand-red: #eb3f57;
- --brand-red-dark: #d92f48;
- --brand-red-soft: #fff1f3;
- --text-main: #111827;
- --text-secondary: #4b5563;
- --text-muted: #9ca3af;
- --border: #e5e7eb;
- --card-bg: rgba(255, 255, 255, 0.96);
- --page-bg: #f5f7fb;
- --success: #22c55e;
- --radius-xl: 28px;
- --radius-lg: 20px;
- --radius-md: 16px;
- --shadow-card: 0 24px 70px rgba(17, 24, 39, 0.08),
- 0 6px 18px rgba(17, 24, 39, 0.05);
- --shadow-red: 0 14px 30px rgba(235, 63, 87, 0.28);
- }
- * {
- box-sizing: border-box;
- }
- html,
- body {
- min-height: 100%;
- }
- body {
- margin: 0;
- background:
- radial-gradient(circle at top left, rgba(235, 63, 87, 0.14), transparent 34%),
- radial-gradient(circle at top right, rgba(59, 130, 246, 0.1), transparent 32%),
- var(--page-bg);
- color: var(--text-main);
- font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
- "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
- -webkit-font-smoothing: antialiased;
- }
- img {
- display: block;
- max-width: 100%;
- }
- .container {
- width: 100%;
- }
- .reset-page {
- width: 100%;
- min-height: 100vh;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 32px 20px;
- }
- .reset-card {
- width: min(960px, 100%);
- min-height: 620px;
- display: grid;
- grid-template-columns: 0.95fr 1.05fr;
- overflow: hidden;
- border-radius: var(--radius-xl);
- border: 1px solid rgba(255, 255, 255, 0.75);
- background: var(--card-bg);
- box-shadow: var(--shadow-card);
- backdrop-filter: blur(18px);
- }
- .reset-visual {
- position: relative;
- padding: 36px;
- overflow: hidden;
- color: #fff;
- background:
- linear-gradient(135deg, rgba(235, 63, 87, 0.97), rgba(185, 28, 28, 0.92)),
- var(--brand-red);
- }
- .reset-visual::before,
- .reset-visual::after {
- content: "";
- position: absolute;
- border-radius: 999px;
- background: rgba(255, 255, 255, 0.16);
- }
- .reset-visual::before {
- width: 260px;
- height: 260px;
- left: -90px;
- bottom: -90px;
- }
- .reset-visual::after {
- width: 180px;
- height: 180px;
- right: -60px;
- top: 80px;
- }
- .visual-inner {
- position: relative;
- z-index: 1;
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
- .brand-logo {
- width: 154px;
- max-height: 76px;
- object-fit: contain;
- padding: 12px;
- border-radius: 18px;
- background: rgba(255, 255, 255, 1);
- box-shadow: 0 16px 36px rgba(17, 24, 39, 0.16);
- }
- .visual-content {
- margin-top: 76px;
- }
- .visual-icon {
- width: 60px;
- height: 60px;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- border-radius: 20px;
- font-size: 30px;
- background: rgba(255, 255, 255, 0.18);
- border: 1px solid rgba(255, 255, 255, 0.26);
- backdrop-filter: blur(12px);
- }
- .visual-title {
- margin: 24px 0 0;
- font-size: 34px;
- line-height: 1.15;
- font-weight: 850;
- letter-spacing: -0.04em;
- }
- .visual-desc {
- margin: 16px 0 0;
- max-width: 330px;
- color: rgba(255, 255, 255, 0.84);
- font-size: 15px;
- line-height: 1.75;
- }
- .security-note {
- margin-top: 34px;
- padding: 16px;
- border-radius: 18px;
- background: rgba(255, 255, 255, 0.14);
- border: 1px solid rgba(255, 255, 255, 0.2);
- color: rgba(255, 255, 255, 0.86);
- font-size: 13px;
- line-height: 1.65;
- backdrop-filter: blur(12px);
- }
- .reset-panel {
- padding: 30px 42px 38px;
- background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
- }
- .top-action {
- display: flex;
- justify-content: flex-end;
- margin-bottom: 42px;
- }
- .language-switch {
- display: inline-flex;
- align-items: center;
- gap: 8px;
- padding: 10px 12px;
- border: 1px solid var(--border);
- border-radius: 999px;
- background: #fff;
- box-shadow: 0 8px 20px rgba(17, 24, 39, 0.04);
- }
- .language-switch img {
- width: 18px;
- height: 12px;
- object-fit: cover;
- border-radius: 2px;
- }
- .language-switch .menu {
- color: var(--text-main);
- font-size: 14px;
- font-weight: 650;
- cursor: pointer;
- }
- .mobile-logo {
- display: none;
- width: 160px;
- border-radius: 16px;
- }
- .form-heading {
- margin-bottom: 26px;
- }
- .form-heading h1 {
- margin: 0;
- color: var(--text-main);
- font-size: 28px;
- line-height: 1.2;
- font-weight: 850;
- letter-spacing: -0.035em;
- }
- .form-heading p {
- margin: 10px 0 0;
- color: var(--text-secondary);
- font-size: 14px;
- line-height: 1.7;
- }
- .form {
- width: 100%;
- max-width: 450px;
- margin: 0 auto;
- }
- .form .el-form-item {
- margin-bottom: 18px;
- }
- .m-input .el-input__inner {
- height: 52px;
- padding-left: 16px;
- padding-right: 44px;
- border-radius: var(--radius-md);
- border: 1px solid var(--border);
- color: var(--text-main);
- font-size: 15px;
- background: #fff;
- transition: border-color 0.22s ease, box-shadow 0.22s ease;
- }
- .m-input .el-input__inner:focus {
- border-color: var(--brand-red);
- box-shadow: 0 0 0 4px rgba(235, 63, 87, 0.1);
- }
- .m-input .el-input__inner::placeholder {
- color: var(--text-muted);
- }
- .m-input .el-input__suffix {
- right: 12px;
- }
- .pwd {
- margin: 4px 0 6px;
- padding: 16px 18px 16px 38px;
- border-radius: 18px;
- border: 1px solid var(--border);
- background: #fff;
- text-align: left;
- }
- .pwd li {
- list-style-type: disc;
- line-height: 1.7;
- color: var(--text-muted);
- font-size: 13px;
- transition: color 0.22s ease;
- }
- .pwd .fit {
- color: var(--success);
- font-weight: 650;
- }
- .pwd .fit::marker {
- color: var(--success);
- }
- .s-btn.el-button--primary {
- width: 100%;
- height: 52px;
- border: none;
- border-radius: 999px;
- font-size: 16px;
- font-weight: 800;
- background: linear-gradient(135deg, var(--brand-red), var(--brand-red-dark));
- box-shadow: var(--shadow-red);
- transition: transform 0.22s ease, box-shadow 0.22s ease;
- }
- .s-btn.el-button--primary:hover,
- .s-btn.el-button--primary:focus {
- transform: translateY(-2px);
- box-shadow: 0 18px 38px rgba(235, 63, 87, 0.34);
- }
- .el-form-item__error {
- padding-top: 6px;
- font-size: 12px;
- }
- .el-dropdown-menu {
- border-radius: 14px;
- overflow: hidden;
- }
- .el-button,
- .el-input__inner {
- font-family: inherit;
- }
- @media (max-width: 900px) {
- .reset-page {
- align-items: flex-start;
- padding: 22px 14px;
- }
- .reset-card {
- grid-template-columns: 1fr;
- min-height: auto;
- }
- .reset-visual {
- display: none;
- }
- .reset-panel {
- padding: 24px 24px 32px;
- }
- .top-action {
- margin-bottom: 22px;
- }
- .mobile-logo {
- display: block;
- }
- .form-heading {
- text-align: center;
- }
- }
- @media (max-width: 540px) {
- .reset-page {
- padding: 12px;
- }
- .reset-card {
- border-radius: 22px;
- }
- .reset-panel {
- padding: 20px 16px 26px;
- }
- .top-action {
- justify-content: space-between;
- }
- .language-switch {
- /* width: 100%; */
- justify-content: center;
- }
- .form-heading h1 {
- font-size: 23px;
- }
- .form-heading p {
- font-size: 13px;
- }
- .m-input .el-input__inner,
- .s-btn.el-button--primary {
- height: 50px;
- }
- .pwd {
- padding: 14px 14px 14px 32px;
- border-radius: 16px;
- }
- }
- </style>
- </head>
- <body>
- <div class="container" id="forget">
- <div class="reset-page">
- <div class="reset-card">
- <aside class="reset-visual">
- <div class="visual-inner">
- <img class="brand-logo" src="img/logo.jpg" alt="Logo" />
- <div class="visual-content">
- <div class="visual-icon">
- <i class="el-icon-lock"></i>
- </div>
- <h1 class="visual-title">{{lang.item1}}</h1>
- <p class="visual-desc">
- {{lang.item6}}
- </p>
- </div>
- <div class="security-note">
- {{lang.item7}}
- </div>
- </div>
- </aside>
- <main class="reset-panel">
- <div class="top-action">
- <img class="mobile-logo" src="img/logo.jpg" alt="Logo" />
- <div class="language-switch chooseLang">
- <el-dropdown trigger="click" @command="chooseLang">
- <span class="menu">
- {{langList[language]}}
- <i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item command="en">English</el-dropdown-item>
- <el-dropdown-item command="cn">中文简体</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </div>
- </div>
- <div class="form-heading">
- <h1>{{lang.item1}}</h1>
- <p>{{lang.item8}}</p>
- </div>
- <el-form :model="params" :rules="rules" ref="params" label-width="0" class="form">
- <el-form-item prop="newPassword">
- <el-input show-password class="m-input" v-model="params.newPassword" :placeholder="lang.item3"></el-input>
- </el-form-item>
- <el-form-item prop="password1">
- <el-input show-password class="m-input" v-model="params.password1" :placeholder="lang.item4"></el-input>
- </el-form-item>
- <el-form-item>
- <ul class="pwd">
- <li :class="{ fit: rule1 }">{{lang.st1}}</li>
- <li :class="{ fit: rule2 }">{{lang.nd2}}</li>
- <li :class="{ fit: rule3 }">{{lang.rd3}}</li>
- </ul>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" class="s-btn" @click="send">
- {{lang.btn}}
- </el-button>
- </el-form-item>
- </el-form>
- </main>
- </div>
- </div>
- </div>
- <script src="js/vue.min.js"></script>
- <script src="js/axios.min.js"></script>
- <script src="js/element-ui.js"></script>
- <script src="js/element@2.12.2.js"></script>
- <script src="js/reset.js"></script>
- </body>
- </html>
|