| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>Bank</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, .96);
- --page-bg: #f5f7fb;
- --radius-xl: 30px;
- --radius-lg: 22px;
- --radius-md: 16px;
- --shadow-card:
- 0 24px 70px rgba(17, 24, 39, .08),
- 0 6px 20px rgba(17, 24, 39, .05);
- --shadow-red:
- 0 14px 30px rgba(235, 63, 87, .28);
- }
- * {
- box-sizing: border-box;
- }
- body {
- margin: 0;
- min-height: 100vh;
- background:
- radial-gradient(circle at top left, rgba(235, 63, 87, .12), transparent 32%),
- radial-gradient(circle at top right, rgba(59, 130, 246, .1), transparent 30%),
- var(--page-bg);
- font-family:
- Inter,
- -apple-system,
- BlinkMacSystemFont,
- "Segoe UI",
- sans-serif;
- color: var(--text-main);
- -webkit-font-smoothing: antialiased;
- }
- img {
- display: block;
- max-width: 100%;
- }
- .container {
- width: 100%;
- }
- .upload-page {
- width: 100%;
- min-height: 100vh;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 32px 20px;
- }
- .upload-card {
- width: min(760px, 100%);
- border-radius: var(--radius-xl);
- border: 1px solid rgba(255, 255, 255, .75);
- background: var(--card-bg);
- backdrop-filter: blur(18px);
- box-shadow: var(--shadow-card);
- overflow: hidden;
- }
- .card-header {
- padding: 30px 34px;
- border-bottom: 1px solid var(--border);
- background:
- linear-gradient(180deg,
- #ffffff 0%,
- #fafcff 100%);
- }
- .header-top {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 20px;
- }
- .title-group {
- display: flex;
- align-items: center;
- gap: 16px;
- }
- .title-icon {
- width: 52px;
- height: 52px;
- border-radius: 18px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: var(--brand-red-soft);
- color: var(--brand-red);
- font-size: 26px;
- }
- .title-text h1 {
- margin: 0;
- font-size: 28px;
- line-height: 1.2;
- font-weight: 850;
- letter-spacing: -.03em;
- }
- .title-text p {
- margin: 8px 0 0;
- color: var(--text-secondary);
- font-size: 14px;
- }
- .language-switch {
- display: inline-flex;
- align-items: center;
- gap: 8px;
- padding: 10px 12px;
- border-radius: 999px;
- border: 1px solid var(--border);
- background: #fff;
- }
- .language-switch img {
- width: 18px;
- height: 12px;
- object-fit: cover;
- }
- .language-switch .menu {
- font-size: 14px;
- font-weight: 650;
- cursor: pointer;
- }
- .format-badges {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-top: 18px;
- }
- .format-badge {
- padding: 6px 12px;
- border-radius: 999px;
- background: #fff;
- border: 1px solid var(--border);
- color: var(--text-secondary);
- font-size: 12px;
- font-weight: 700;
- }
- .card-body {
- padding: 38px 34px;
- }
- .upload-box {
- width: 100%;
- }
- .upload-box .el-upload {
- width: 100%;
- height: 260px;
- border: 2px dashed #d7dce4;
- border-radius: 24px;
- background: #fff;
- overflow: hidden;
- cursor: pointer;
- transition:
- border-color .22s ease,
- transform .22s ease,
- box-shadow .22s ease,
- background-color .22s ease;
- }
- .upload-box .el-upload:hover {
- border-color: var(--brand-red);
- background: #fff7f8;
- transform: translateY(-2px);
- box-shadow:
- 0 18px 38px rgba(235, 63, 87, .12);
- }
- .upload-inner {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- text-align: center;
- gap: 12px;
- padding: 20px;
- }
- .upload-inner img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- .upload-icon {
- width: 68px;
- height: 68px;
- border-radius: 22px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: var(--brand-red-soft);
- color: var(--brand-red);
- font-size: 36px;
- }
- .upload-title {
- margin: 0;
- font-size: 18px;
- font-weight: 800;
- }
- .upload-desc {
- margin: 0;
- color: var(--text-secondary);
- font-size: 14px;
- line-height: 1.7;
- }
- .updatePrompt {
- margin-top: 24px;
- width: 100%;
- }
- .prompt-box {
- max-width: 520px;
- margin: 0 auto;
- padding: 18px 20px;
- border-radius: var(--radius-lg);
- border: 1px solid rgba(235, 63, 87, .18);
- background: var(--brand-red-soft);
- color: var(--text-secondary);
- display: flex;
- align-items: flex-start;
- gap: 12px;
- line-height: 1.8;
- font-size: 14px;
- }
- .prompt-box i {
- color: var(--brand-red);
- font-size: 20px;
- margin-top: 2px;
- }
- .card-footer {
- padding: 0 34px 38px;
- display: flex;
- justify-content: center;
- }
- .submit-btn.el-button--danger {
- min-width: 240px;
- 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 .22s ease,
- box-shadow .22s ease;
- }
- .submit-btn.el-button--danger:hover,
- .submit-btn.el-button--danger:focus {
- transform: translateY(-2px);
- box-shadow:
- 0 18px 38px rgba(235, 63, 87, .34);
- }
- .el-dropdown-menu {
- border-radius: 14px;
- overflow: hidden;
- }
- @media (max-width: 768px) {
- .upload-page {
- padding: 14px;
- align-items: flex-start;
- }
- .upload-card {
- border-radius: 24px;
- }
- .card-header {
- padding: 24px 18px;
- }
- .header-top {
- flex-direction: column;
- align-items: flex-start;
- }
- .language-switch {
- width: 100%;
- justify-content: center;
- }
- .title-text h1 {
- font-size: 24px;
- }
- .card-body {
- padding: 28px 18px;
- }
- .upload-box .el-upload {
- height: 220px;
- border-radius: 20px;
- }
- .card-footer {
- padding: 0 18px 28px;
- }
- .submit-btn.el-button--danger {
- width: 100%;
- }
- }
- </style>
- </head>
- <body>
- <div class="container" id="index">
- <div class="upload-page">
- <div class="upload-card">
- <div class="card-header">
- <div class="header-top">
- <div class="title-group">
- <div class="title-icon">
- <i class="el-icon-postcard"></i>
- </div>
- <div class="title-text">
- <h1>{{lang.item1}}</h1>
- </div>
- </div>
- <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="format-badges">
- <span class="format-badge">JPEG</span>
- <span class="format-badge">JPG</span>
- <span class="format-badge">PNG</span>
- <span class="format-badge">PDF</span>
- </div>
- </div>
- <div class="card-body">
- <el-upload class="avatar-uploader upload-box" :action="imgUrl + '/custom/bank/upload'"
- :headers="AccessToken" :show-file-list="false" :on-success="handleAvatarSuccess1"
- :before-upload="beforeAvatarUpload">
- <div class="upload-inner">
- <img v-if="imageUrl" :src="imageUrl" class="avatar" />
- <template v-else>
- <div class="upload-icon">
- <i class="el-icon-picture-outline"></i>
- </div>
- <h3 class="upload-title">
- {{lang.item1}}
- </h3>
- <p class="upload-desc">
- JPEG/
- JPG/
- PNG/
- PDF/
- </p>
- </template>
- </div>
- </el-upload>
- <div class="updatePrompt">
- <div class="prompt-box">
- <i class="el-icon-warning-outline"></i>
- <span>
- {{lang.UpdatePrompt}}
- </span>
- </div>
- </div>
- </div>
- <div class="card-footer">
- <el-button type="danger" class="submit-btn" @click="update">
- {{lang.btn}}
- </el-button>
- </div>
- </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/bank.js"></script>
- </body>
- </html>
|