| | |
| | | |
| | | .tools-dialog .el-dialog, |
| | | .text-dialog .el-dialog, |
| | | .upload-dialog .el-dialog { |
| | | .upload-dialog .el-dialog, |
| | | .mfa-dialog .el-dialog { |
| | | border-radius: 20px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .tools-dialog .el-dialog__header, |
| | | .text-dialog .el-dialog__header, |
| | | .upload-dialog .el-dialog__header { |
| | | .upload-dialog .el-dialog__header, |
| | | .mfa-dialog .el-dialog__header { |
| | | padding: 18px 20px 12px; |
| | | border-bottom: 1px solid rgba(222, 230, 239, 0.92); |
| | | background: #f8fbff; |
| | |
| | | |
| | | .tools-dialog .el-dialog__title, |
| | | .text-dialog .el-dialog__title, |
| | | .upload-dialog .el-dialog__title { |
| | | .upload-dialog .el-dialog__title, |
| | | .mfa-dialog .el-dialog__title { |
| | | font-weight: 700; |
| | | color: #243447; |
| | | } |
| | | |
| | | .tools-dialog .el-dialog__body, |
| | | .text-dialog .el-dialog__body, |
| | | .upload-dialog .el-dialog__body { |
| | | .upload-dialog .el-dialog__body, |
| | | .mfa-dialog .el-dialog__body { |
| | | padding: 18px 20px 20px; |
| | | } |
| | | |
| | |
| | | display: inline-flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .mfa-tip { |
| | | color: #6f7f92; |
| | | font-size: 13px; |
| | | line-height: 1.7; |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | .mfa-account { |
| | | margin-bottom: 14px; |
| | | padding: 12px 14px; |
| | | border-radius: 14px; |
| | | background: rgba(244, 248, 253, 0.92); |
| | | color: #42576d; |
| | | font-size: 13px; |
| | | } |
| | | |
| | | .mfa-account strong { |
| | | color: #1e3956; |
| | | } |
| | | |
| | | .mfa-footer { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | gap: 10px; |
| | | margin-top: 14px; |
| | | } |
| | | |
| | | @media (max-width: 640px) { |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | class="mfa-dialog" |
| | | title="MFA二次验证" |
| | | :visible.sync="mfaDialogVisible" |
| | | width="420px" |
| | | :close-on-click-modal="false" |
| | | @close="closeMfaDialog" |
| | | append-to-body> |
| | | <div class="mfa-tip">账号密码已通过,请输入身份验证器中的 6 位动态验证码后继续登录。</div> |
| | | <div class="mfa-account">当前账号:<strong>{{ mfaPending.username || loginForm.mobile || '--' }}</strong></div> |
| | | <el-form ref="mfaForm" :model="mfaForm" :rules="mfaRules" label-width="82px" size="small" @submit.native.prevent> |
| | | <el-form-item label="验证码" prop="code"> |
| | | <el-input v-model.trim="mfaForm.code" maxlength="6" placeholder="请输入6位动态码" @keyup.enter.native="handleMfaLogin"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="mfa-footer"> |
| | | <el-button @click="closeMfaDialog">取消</el-button> |
| | | <el-button type="primary" :loading="mfaLoading" @click="handleMfaLogin">验证并登录</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog class="text-dialog" :title="textDialog.title" :visible.sync="textDialogVisible" width="720px" append-to-body> |
| | | <div class="dialog-text-label">{{ textDialog.label }}</div> |
| | | <div v-if="textDialog.tip" class="dialog-text-tip">{{ textDialog.tip }}</div> |
| | |
| | | <script type="text/javascript" src="../static/js/common.js"></script> |
| | | <script type="text/javascript" src="../static/vue/js/vue.min.js"></script> |
| | | <script type="text/javascript" src="../static/vue/element/element.js"></script> |
| | | <script type="text/javascript" src="../static/js/login/login.js?v=20260310_login_vue"></script> |
| | | <script type="text/javascript" src="../static/js/login/login.js?v=20260311_login_mfa"></script> |
| | | </html> |