|
@@ -191,7 +191,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { defineComponent, reactive, ref, nextTick, onUnmounted } from 'vue';
|
|
|
+import { defineComponent, reactive, ref, nextTick, onUnmounted, onMounted, watch } from 'vue';
|
|
|
import { useRouter } from 'vue-router';
|
|
|
import { useStore } from 'vuex';
|
|
|
import axios from 'axios';
|
|
@@ -332,7 +332,6 @@ export default defineComponent({
|
|
|
store.commit('app/setUser', {
|
|
|
user: userInfoResponse.data.data,
|
|
|
permission: userInfoResponse.data.data || [],
|
|
|
-
|
|
|
});
|
|
|
|
|
|
// 同时存储到 localStorage
|
|
@@ -350,10 +349,21 @@ export default defineComponent({
|
|
|
// 记住账号
|
|
|
if (rememberMe.value) {
|
|
|
if (loginType.value === 'account') {
|
|
|
- localStorage.setItem('username', formData.username);
|
|
|
+ localStorage.setItem('rememberedAccount', JSON.stringify({
|
|
|
+ username: formData.username,
|
|
|
+ merchant_code: formData.merchant_code,
|
|
|
+ loginType: 'account'
|
|
|
+ }));
|
|
|
} else if (loginType.value === 'mobile') {
|
|
|
- localStorage.setItem('mobile', formData.mobile);
|
|
|
+ localStorage.setItem('rememberedAccount', JSON.stringify({
|
|
|
+ mobile: formData.mobile,
|
|
|
+ merchant_code: formData.merchant_code,
|
|
|
+ loginType: 'mobile'
|
|
|
+ }));
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 如果取消记住账号,则清除保存的信息
|
|
|
+ localStorage.removeItem('rememberedAccount');
|
|
|
}
|
|
|
|
|
|
message.success('登录成功');
|
|
@@ -385,14 +395,47 @@ export default defineComponent({
|
|
|
};
|
|
|
|
|
|
// 初始化时从本地存储获取记住的信息
|
|
|
- if (localStorage.getItem('username')) {
|
|
|
- formData.username = localStorage.getItem('username');
|
|
|
- rememberMe.value = true;
|
|
|
- } else if (localStorage.getItem('mobile')) {
|
|
|
- formData.mobile = localStorage.getItem('mobile');
|
|
|
- loginType.value = 'mobile';
|
|
|
- rememberMe.value = true;
|
|
|
- }
|
|
|
+ const initRememberedAccount = () => {
|
|
|
+ const rememberedAccount = localStorage.getItem('rememberedAccount');
|
|
|
+ if (rememberedAccount) {
|
|
|
+ try {
|
|
|
+ const accountInfo = JSON.parse(rememberedAccount);
|
|
|
+ rememberMe.value = true;
|
|
|
+
|
|
|
+ if (accountInfo.loginType === 'account') {
|
|
|
+ loginType.value = 'account';
|
|
|
+ formData.username = accountInfo.username;
|
|
|
+ /* formData.merchant_code = accountInfo.merchant_code; */
|
|
|
+ } else if (accountInfo.loginType === 'mobile') {
|
|
|
+ loginType.value = 'mobile';
|
|
|
+ formData.mobile = accountInfo.mobile;
|
|
|
+ /* formData.merchant_code = accountInfo.merchant_code; */
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('解析记住的账号信息失败:', error);
|
|
|
+ localStorage.removeItem('rememberedAccount');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 清除记住的账号信息
|
|
|
+ const clearRememberedAccount = () => {
|
|
|
+ localStorage.removeItem('rememberedAccount');
|
|
|
+ rememberMe.value = false;
|
|
|
+ message.success('已清除记住的账号信息');
|
|
|
+ };
|
|
|
+
|
|
|
+ // 监听记住账号复选框变化
|
|
|
+ watch(rememberMe, (newValue) => {
|
|
|
+ if (!newValue) {
|
|
|
+ clearRememberedAccount();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 在组件挂载时初始化记住的账号信息
|
|
|
+ onMounted(() => {
|
|
|
+ initRememberedAccount();
|
|
|
+ });
|
|
|
|
|
|
// 切换到手机号登录
|
|
|
const switchToMobileLogin = () => {
|
|
@@ -558,7 +601,8 @@ export default defineComponent({
|
|
|
wechatLoginModal,
|
|
|
wechatQrCode,
|
|
|
getWechatQrCode,
|
|
|
- handleWechatLoginCancel
|
|
|
+ handleWechatLoginCancel,
|
|
|
+ clearRememberedAccount
|
|
|
};
|
|
|
}
|
|
|
});
|