From c424e22924f32d739855665970e0b961f0e504e7 Mon Sep 17 00:00:00 2001
From: ssongliu <73214554+ssongliu@users.noreply.github.com>
Date: Fri, 28 Apr 2023 15:58:19 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=A4=E6=AD=A5=E9=AA=8C=E8=AF=81?=
 =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4=20(#827)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 frontend/src/lang/modules/en.ts               |  4 --
 frontend/src/lang/modules/zh.ts               |  4 --
 frontend/src/views/setting/safe/mfa/index.vue | 46 ++++++++++---------
 3 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts
index aed1822ed..a399db7d7 100644
--- a/frontend/src/lang/modules/en.ts
+++ b/frontend/src/lang/modules/en.ts
@@ -891,10 +891,6 @@ const message = {
         mfaHelper1: 'Download a MFA verification mobile app e.g.:',
         mfaHelper2: 'Scan the following QR code using the mobile app to obtain the 6-digit verification code',
         mfaHelper3: 'Enter six digits from the app',
-        mfaSecret: 'Secret',
-        mfaTypeOption: 'Select the method of obtaining the secret',
-        qrCode: 'QR code',
-        manualInput: 'Manual input',
         mfaCode: 'Code',
         sslDisable: 'Disable',
         sslDisableHelper:
diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts
index a8e1671b5..73251216b 100644
--- a/frontend/src/lang/modules/zh.ts
+++ b/frontend/src/lang/modules/zh.ts
@@ -928,10 +928,6 @@ const message = {
         mfaHelper1: '下载两步验证手机应用 如:',
         mfaHelper2: '使用手机应用扫描以下二维码,获取 6 位验证码',
         mfaHelper3: '输入手机应用上的 6 位数字',
-        mfaSecret: '验证密钥',
-        mfaTypeOption: '选择获取密钥方式',
-        qrCode: '二维码',
-        manualInput: '手动输入',
         mfaCode: '验证码',
         sslDisable: '禁用',
         sslDisableHelper: '禁用 https 服务,需要重启面板才能生效,是否继续?',
diff --git a/frontend/src/views/setting/safe/mfa/index.vue b/frontend/src/views/setting/safe/mfa/index.vue
index b467408ef..a26d73a6f 100644
--- a/frontend/src/views/setting/safe/mfa/index.vue
+++ b/frontend/src/views/setting/safe/mfa/index.vue
@@ -22,28 +22,23 @@
                                 <li>Authenticator</li>
                             </ul>
                         </el-form-item>
-                        <el-form-item :label="$t('setting.mfaTypeOption')">
-                            <el-radio-group v-model="mode" @change="form.secret = ''">
-                                <el-radio label="scan">{{ $t('setting.qrCode') }}</el-radio>
-                                <el-radio label="input">{{ $t('setting.manualInput') }}</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                        <el-form-item :label="$t('setting.mfaHelper2')" v-if="mode === 'scan'">
+                        <el-form-item :label="$t('setting.mfaHelper2')">
                             <el-image style="width: 120px; height: 120px" :src="qrImage" />
+                            <span class="input-help">
+                                <span style="float: left">{{ $t('setting.secret') }}: {{ form.secret }}</span>
+                                <div style="float: left; margin-top: 2px">
+                                    <el-icon
+                                        color="#409EFC"
+                                        style="cursor: pointer; margin-left: 10px"
+                                        :size="18"
+                                        @click="onCopy()"
+                                    >
+                                        <DocumentCopy />
+                                    </el-icon>
+                                </div>
+                            </span>
                         </el-form-item>
-                        <el-form-item
-                            :label="$t('setting.mfaSecret')"
-                            v-if="mode === 'input'"
-                            prop="secret"
-                            :rules="Rules.requiredInput"
-                        >
-                            <el-input v-model="form.secret"></el-input>
-                        </el-form-item>
-                        <el-form-item
-                            :label="mode === 'scan' ? $t('setting.mfaHelper3') : $t('setting.mfaCode')"
-                            prop="code"
-                            :rules="Rules.requiredInput"
-                        >
+                        <el-form-item :label="$t('setting.mfaCode')" prop="code" :rules="Rules.requiredInput">
                             <el-input v-model="form.code"></el-input>
                         </el-form-item>
                     </el-col>
@@ -70,7 +65,6 @@ import { FormInstance } from 'element-plus';
 
 const loading = ref();
 const qrImage = ref();
-const mode = ref('scan');
 const drawerVisiable = ref();
 const formRef = ref();
 
@@ -85,6 +79,16 @@ const acceptParams = (): void => {
     drawerVisiable.value = true;
 };
 
+const onCopy = () => {
+    let input = document.createElement('input');
+    input.value = form.secret;
+    document.body.appendChild(input);
+    input.select();
+    document.execCommand('Copy');
+    document.body.removeChild(input);
+    MsgSuccess(i18n.global.t('commons.msg.copySuccess'));
+};
+
 const loadMfaCode = async () => {
     const res = await getMFA();
     form.secret = res.data.secret;