Browse Source

feat:"增加自动更新,增加纸币器禁能"

soobin 1 tháng trước cách đây
mục cha
commit
55c3dad8f4

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "shenze-vue3-app",
-  "version": "1.5.618",
+  "version": "1.5.702",
   "private": true,
   "scripts": {
     "start": "vue-cli-service serve",

+ 5 - 0
public/version.json

@@ -0,0 +1,5 @@
+{
+  "version": "1.5.618",
+  "timestamp": "2025-07-01T17:51:52.182",
+  "commitHash": "dev-build"
+}

BIN
src/assets/device/door.png


BIN
src/assets/device/operIcon/openControl.png


+ 3 - 1
src/assets/language/en.json

@@ -363,7 +363,9 @@
     "openDevice": "Power On",
     "closeFurnHead": "Turn Off",
     "closeDevice": "Power Off",
-    "remoteDoorOpening": "Remote Unlock",
+    "remoteDoorOpening": "Remote Lock Control",
+    "banPaper": "Bill Validator Disable",
+    "openRemindPaper": "Toggle bill validator disable mode?",
     "outDoor": "Outer Door",
     "inDoor": "Inner Door",
     "status": "Status",

+ 3 - 1
src/assets/language/es.json

@@ -363,7 +363,9 @@
         "openDevice": "Activar equipo",
         "closeFurnHead": "Apagar",
         "closeDevice": "Desactivar equipo",
-        "remoteDoorOpening": "Abrir remotamente",
+        "remoteDoorOpening": "Control remoto de puerta",
+        "banPaper": "Deshabilitar validador",
+        "openRemindPaper": "¿Cambiar modo deshabilitación de validador?",
         "outDoor": "Puerta exterior",
         "inDoor": "Puerta interior",
         "status": "Estado",

+ 3 - 1
src/assets/language/fr.json

@@ -363,7 +363,9 @@
         "openDevice": "Activer appareil",
         "closeFurnHead": "Désactiver four",
         "closeDevice": "Désactiver appareil",
-        "remoteDoorOpening": "Ouvrir à distance",
+        "remoteDoorOpening": "Contrôle à distance de porte",
+        "banPaper": "Désactivation validateur billets",
+        "openRemindPaper": "Basculer le mode désactivation du validateur billets ?",
         "outDoor": "Porte ext.",
         "inDoor": "Porte int.",
         "status": "État",

+ 3 - 1
src/assets/language/ja.json

@@ -355,7 +355,9 @@
         "openDevice": "デバイスオン",
         "closeFurnHead": "釜オフ",
         "closeDevice": "デバイスオフ",
-        "remoteDoorOpening": "遠隔ドア開閉",
+        "remoteDoorOpening": "リモートドア制御",
+        "banPaper": "紙幣受け取り停止",
+        "openRemindPaper": "紙幣識別機の停止モードを切り替えますか?",
         "outDoor": "外部ドア",
         "inDoor": "内部ドア",
         "status": "ステータス",

+ 3 - 1
src/assets/language/pt.json

@@ -363,7 +363,9 @@
         "openDevice": "Ligar Equipamento",
         "closeFurnHead": "Desativar Caldeira",
         "closeDevice": "Desligar Equipamento",
-        "remoteDoorOpening": "Abrir Porta Remotamente",
+        "remoteDoorOpening": "Controle remoto de tranca",
+        "banPaper": "Desativar leitor de cédulas",
+        "openRemindPaper": "Alternar modo desativação do leitor?",
         "outDoor": "Porta Externa",
         "inDoor": "Porta Interna",
         "status": "Status",

+ 3 - 1
src/assets/language/ru.json

@@ -363,7 +363,9 @@
         "openDevice": "Вкл.устройство",
         "closeFurnHead": "Выкл.нагрев",
         "closeDevice": "Выкл.устройство",
-        "remoteDoorOpening": "Удалённое открытие",
+        "remoteDoorOpening": "Удалённое управление замком",
+        "banPaper": "Отключение купюроприёмника",
+        "openRemindPaper": "Переключить режим отключения купюроприёмника?",
         "outDoor": "Внешняя",
         "inDoor": "Внутренняя",
         "status": "Статус",

+ 3 - 1
src/assets/language/uk.json

@@ -363,7 +363,9 @@
         "openDevice": "Увімкнути",
         "closeFurnHead": "Вимкнути",
         "closeDevice": "Вимкнути",
-        "remoteDoorOpening": "Відкрити двері",
+        "remoteDoorOpening": "Віддалене керування замком",
+        "banPaper": "Вимкнення банкнотоприймача",
+        "openRemindPaper": "Змінити режим вимкнення банкнотоприймача?",
         "outDoor": "Зовнішні",
         "inDoor": "Внутрішні",
         "status": "Стан",

+ 3 - 1
src/assets/language/zh.json

@@ -372,13 +372,15 @@
     "openDevice": "开启设备",
     "closeFurnHead": "关闭炉头",
     "closeDevice": "关闭设备",
-    "remoteDoorOpening": "远程开",
+    "remoteDoorOpening": "远程开",
     "outDoor": "外 门",
     "inDoor": "内 门",
+    "banPaper": "纸币器禁能",
     "status": "状 态",
     "openRemind": "提醒",
     "openRemindOut": "是否切换外门开关?",
     "openRemindIn": "是否切换内门开关?",
+    "openRemindPaper": "是否切换纸币器禁能开关?",
     "remoteSugarMaking": "远程制作",
     "remoteProduction": "远程制作",
     "modulation": "音量调节",

+ 1 - 1
src/main.js

@@ -80,7 +80,7 @@ import i18n from "./utils/i18n";
 
 async function checkVersion() {
   // 开发环境跳过检测
-  if (process.env.NODE_ENV !== "production") return;
+  // if (process.env.NODE_ENV !== "production") return;
   try {
     // 添加时间戳避免 version.json 缓存
     const response = await fetch("/shenze/version.json?t=" + Date.now());

+ 1 - 1
src/views/accountPer/add.vue

@@ -13,7 +13,7 @@
           class="modern-field"
           :rules="[
             {
-              pattern: /^[a-zA-Z][a-zA-Z0-9]*$/,
+              pattern: /^(?:[a-zA-Z][a-zA-Z0-9]*|[\w.-]+@[\w.-]+\.[a-zA-Z]{2,})$/,
               message: $t('register.usernameRequired'),
             },
           ]"

+ 2 - 3
src/views/bindBankCard/huifuBind.vue

@@ -1959,7 +1959,6 @@ export default {
 
 /* 按钮容器 */
 .action-buttons {
-  margin: 10px;
   display: flex;
   gap: 10px;
 
@@ -1967,13 +1966,13 @@ export default {
     flex: 2;
     border-color: #4d6add;
     color: #4d6add;
-    margin: 0 10px;
+    margin: 10px;
   }
 
   .next-btn {
     flex: 2;
     background: #4d6add;
-    margin: 0 10px;
+    margin: 10px;
   }
 
   :deep(.van-button__text) {

+ 4 - 107
src/views/bindBankCard/joinPayBind.vue

@@ -623,27 +623,6 @@
               required
               :rules="[{ required: true, message: '请输入银行账号' }]"
             />
-            <!-- <van-field label="结算方式" required>
-              <template #input>
-                <div class="settlement-container">
-                  <van-radio-group
-                    v-model="formData.settMode"
-                    direction="horizontal"
-                  >
-                    <van-radio name="1" checked-color="#4d6add" icon-size="18px"
-                      >自动结算</van-radio
-                    >
-                    <van-radio name="2" checked-color="#4d6add" icon-size="18px"
-                      >手动提现</van-radio
-                    >
-                  </van-radio-group>
-                  <div class="settlement-tip">
-                    <van-icon name="info" color="#999" size="14px" />
-                    <span>24小时内到账</span>
-                  </div>
-                </div>
-              </template>
-            </van-field> -->
           </template>
 
           <!-- 企业商户表单 -->
@@ -673,27 +652,6 @@
               required
               :rules="[{ required: true, message: '请输入联行号' }]"
             />
-            <!-- <van-field label="结算方式" required>
-              <template #input>
-                <div class="settlement-container">
-                  <van-radio-group
-                    v-model="formData.settMode"
-                    direction="horizontal"
-                  >
-                    <van-radio name="1" checked-color="#4d6add" icon-size="18px"
-                      >自动结算</van-radio
-                    >
-                    <van-radio name="2" checked-color="#4d6add" icon-size="18px"
-                      >手动提现</van-radio
-                    >
-                  </van-radio-group>
-                  <div class="settlement-tip">
-                    <van-icon name="info" color="#999" size="14px" />
-                    <span>自动结算和手工提现均为次日到账</span>
-                  </div>
-                </div>
-              </template>
-            </van-field> -->
           </template>
 
           <div class="confirm-buttons">
@@ -1223,7 +1181,6 @@ export default {
             case "审核不通过":
               auditStatus.value = 2;
               statusSubText.value = data.data.approveNote;
-              changeApproveStatus();
               break;
           }
           // 签约状态
@@ -1243,65 +1200,9 @@ export default {
       }
     };
 
-    // 获取图片
-    // const getUserLicense = async () => {
-    //   try {
-    //     const { data } = await getPhotos({
-    //       adminId: user.id,
-    //     });
-    //     if (data.code === "00000") {
-    //       console.log("图片", data.data);
-    //       if (data.data.idCardFront) {
-    //         idCardFront.value = [
-    //           {
-    //             url: "data:image/jpeg;base64," + data.data.idCardFront,
-    //             isImage: true,
-    //           },
-    //         ];
-    //       }
-    //       if (data.data.idCardBack) {
-    //         idCardBack.value = [
-    //           {
-    //             url: "data:image/jpeg;base64," + data.data.idCardBack,
-    //             isImage: true,
-    //           },
-    //         ];
-    //       }
-    //       if (data.data.bankCard) {
-    //         bankCard.value = [
-    //           {
-    //             url: "data:image/jpeg;base64," + data.data.bankCard,
-    //             isImage: true,
-    //           },
-    //         ];
-    //       }
-    //       if (data.data.businessLicense) {
-    //         businessLicense.value = [
-    //           {
-    //             url: "data:image/jpeg;base64," + data.data.businessLicense,
-    //             isImage: true,
-    //           },
-    //         ];
-    //       }
-    //       if (data.data.accountLicense) {
-    //         accountLicense.value = [
-    //           {
-    //             url: "data:image/jpeg;base64," + data.data.accountLicense,
-    //             isImage: true,
-    //           },
-    //         ];
-    //       }
-    //     }
-    //   } catch (error) {
-    //     console.log(error);
-    //   }
-    // };
-
     onMounted(async () => {
       await getMchInfo();
-      // await getUserLicense();
       if (currentStep.value === 3) {
-        changeApproveStatus();
         changeMchApproveStatus();
         changeSignStatus();
       }
@@ -1426,7 +1327,6 @@ export default {
       if (data.code === "00000") {
         if (data.data === "P1000") {
           auditStatus.value = 1;
-          statusSubText.value = "审核通过";
         }
       }
     };
@@ -1436,8 +1336,7 @@ export default {
       const { data } = await updateMchApproveStatus({ id: joinPayMchID.value });
       if (data.code === "00000") {
         if (data.data === "P1000") {
-          auditStatus.value = 1;
-          statusSubText.value = "审核通过";
+          infoStatus.value = 1;
         }
       }
     };
@@ -1447,8 +1346,7 @@ export default {
       const { data } = await updateMchSignStatus({ id: joinPayMchID.value });
       if (data.code === "00000") {
         if (data.data === "P1000") {
-          auditStatus.value = 1;
-          statusSubText.value = "审核通过";
+          signStatus.value = 1;
         }
       }
     };
@@ -1830,7 +1728,6 @@ export default {
 
 /* 按钮容器 */
 .action-buttons {
-  margin: 10px;
   display: flex;
   gap: 10px;
 
@@ -1838,13 +1735,13 @@ export default {
     flex: 2;
     border-color: #4d6add;
     color: #4d6add;
-    margin: 0 10px;
+    margin: 10px;
   }
 
   .next-btn {
     flex: 2;
     background: #4d6add;
-    margin: 0 10px;
+    margin: 10px;
   }
 
   :deep(.van-button__text) {

+ 2 - 2
src/views/device/deviceOper.vue

@@ -208,8 +208,8 @@
         <div class="icon-wrapper">
           <img
             class="operation-icon"
-            src="../../assets/device/operIcon/openDoor.png"
-            alt="openDoor"
+            src="../../assets/device/operIcon/openControl.png"
+            alt="openControl"
           />
         </div>
         <div class="text-wrapper">

+ 273 - 50
src/views/device/openDoor.vue

@@ -1,48 +1,129 @@
 <template>
-  <!-- 远程开门 -->
-  <div class="pageDoor flex-col">
-    <s-header :name="$t('device.remoteDoorOpening')" :noback="false"></s-header>
-    <div class="box1">
-      <div class="block2 flex-row justify-between">
-        <div class="block3 flex-col"></div>
-        <span class="info2">{{ $t('device.equipmentName') }}:{{ deviceDetal ? deviceDetal.name : '' }}</span>
+  <div class="door-access-page">
+    <!-- 顶部导航 -->
+    <s-header :name="$t('device.remoteDoorOpening')" :noback="false" />
+
+    <!-- 设备名称标题 -->
+    <div class="device-header">
+      <div class="vertical-indicator"></div>
+      <h3 class="device-name">
+        {{ $t("device.equipmentName") }}:{{
+          deviceDetal ? deviceDetal.name : ""
+        }}
+      </h3>
+    </div>
+
+    <!-- 门禁控制卡片 -->
+    <div class="settings-card">
+      <!-- 外部门控制 -->
+      <div class="door-item">
+        <div class="door-info">
+          <!-- <van-icon name="../assets/device/door.png" class="door-icon" /> -->
+          <div class="door-detail">
+            <h3 class="door-title">{{ $t("device.outDoor") }}</h3>
+            <p class="door-status">
+              {{ $t("device.status") }}:
+              <span
+                :class="
+                  deviceDetal.outDoor == '1' ? 'status-open' : 'status-closed'
+                "
+              >
+                {{
+                  deviceDetal.outDoor != "1"
+                    ? $t("device.closed")
+                    : $t("device.open")
+                }}
+              </span>
+            </p>
+          </div>
+        </div>
+        <van-switch
+          :model-value="deviceDetal.outDoor"
+          @update:model-value="outDoorChg"
+          size="24px"
+          active-value="1"
+          inactive-value="0"
+          active-color="#4d6add"
+          inactive-color="#dcdee0"
+        />
       </div>
-      <van-field colon readonly :label="`${$t('device.outDoor')}`" label-width="40px">
-        <template #input>
-          <div class="l-flex-RC">
-            <van-switch :model-value="deviceDetal.outDoor" @update:model-value="outDoorChg" size="22" active-value="1"
-              inactive-value="0" />
+
+      <!-- 内部门控制 -->
+      <div class="door-item" v-if="machineType == '0' || machineType == null">
+        <div class="door-info">
+          <!-- <van-icon name="door" class="door-icon" /> -->
+          <div class="door-detail">
+            <h3 class="door-title">{{ $t("device.inDoor") }}</h3>
+            <p class="door-status">
+              {{ $t("device.status") }}:
+              <span
+                :class="
+                  deviceDetal.inDoor == '1' ? 'status-open' : 'status-closed'
+                "
+              >
+                {{
+                  deviceDetal.inDoor != "1"
+                    ? $t("device.closed")
+                    : $t("device.open")
+                }}
+              </span>
+            </p>
           </div>
-          <span class="info3 o-pl-50">{{ $t("device.status") }}: </span>
-          <span class="info3 o-pl-10">{{ deviceDetal.outDoor != 1 ? $t("device.close") : $t("device.open") }}</span>
-        </template>
-      </van-field>
-
-      <van-field v-if="machineType == '0' || machineType == null" colon readonly :label="`${$t('device.inDoor')}`" label-width="40px">
-        <template #input>
-          <div class="l-flex-RC">
-            <van-switch :model-value="deviceDetal.inDoor" @update:model-value="inDoorChg" size="22" active-value="1"
-              inactive-value="0" />
+        </div>
+        <van-switch
+          :model-value="deviceDetal.inDoor"
+          @update:model-value="inDoorChg"
+          size="24px"
+          active-value="1"
+          inactive-value="0"
+          active-color="#4d6add"
+          inactive-color="#dcdee0"
+        />
+      </div>
+
+      <!-- 纸币器禁能开关 -->
+      <div class="door-item" v-if="(machineType == '0' || machineType == '1') && user.ifForegin == '1'">
+        <div class="door-info">
+          <div class="door-detail">
+            <h3 class="door-title">{{ $t("device.banPaper") }}</h3>
+            <p class="door-status">
+              {{ $t("device.status") }}:
+              <span
+                :class="deviceDetal.banPaper ? 'status-open' : 'status-closed'"
+              >
+                {{
+                  deviceDetal.banPaper ? $t("device.open") : $t("device.closed")
+                }}
+              </span>
+            </p>
           </div>
-          <span class="info3 o-pl-50">{{ $t("device.status") }}: </span>
-          <span class="info3 o-pl-10">{{ deviceDetal.inDoor != 1 ? $t("device.close") : $t("device.open") }}</span>
-        </template>
-      </van-field>
+        </div>
+        <van-switch
+          :model-value="deviceDetal.banPaper"
+          @update:model-value="banPaperChg"
+          size="24px"
+          active-value="1"
+          inactive-value="0"
+          active-color="#4d6add"
+          inactive-color="#dcdee0"
+        />
+      </div>
     </div>
   </div>
 </template>
 
 <script>
-import { onMounted, ref } from 'vue';
+import { onMounted, ref } from "vue";
 import sHeader from "@/components/SimpleHeader";
-import { useRoute } from 'vue-router';
-import { getDeviceDetal, Api_openDoor } from '@/service/device'
-import { showFailToast, showToast, showConfirmDialog } from 'vant';
+import { useRoute } from "vue-router";
+import { getDeviceDetal, Api_openDoor } from "@/service/device";
+import { showFailToast, showToast, showConfirmDialog } from "vant";
 import { useI18n } from "vue-i18n";
-import { styleUrl } from "../../common/js/utils";
+import { getLoginUser } from "../../common/js/utils";
 
 export default {
   setup() {
+    const user = getLoginUser();
     const route = useRoute();
     const deviceId = route.query.deviceId;
     const machineType = route.query.machineType;
@@ -52,18 +133,15 @@ export default {
     // 初始化页面获取列表
     onMounted(async () => {
       // 加载样式
-      styleUrl('deviceOper');
       getDeviceDetalFun();
     });
 
     // 获取设备列表数据
     const getDeviceDetalFun = async () => {
-      const {
-        data
-      } = await getDeviceDetal({
-        id: deviceId
+      const { data } = await getDeviceDetal({
+        id: deviceId,
       });
-      if (data.code === '00000') {
+      if (data.code === "00000") {
         // outDoor如果是null,默认是关闭
         if (data.data.outDoor == null) {
           data.data.outDoor = "0";
@@ -73,17 +151,17 @@ export default {
           data.data.inDoor = "0";
         }
         deviceDetal.value = data.data;
-        console.log(deviceDetal.value)
+        console.log(deviceDetal.value);
       } else {
         showFailToast(data.message);
       }
-    }
+    };
 
     // 点击外门开关
     const outDoorChg = (outDoor) => {
       showConfirmDialog({
-        title: t('device.openRemind'),
-        message: t('device.openRemindOut'),
+        title: t("device.openRemind"),
+        message: t("device.openRemindOut"),
       }).then(() => {
         Api_openDoor({
           equipmentId: deviceDetal.value.id,
@@ -91,7 +169,7 @@ export default {
           status: outDoor,
         }).then((res) => {
           if (res.data.code == "00000") {
-            showToast(t('device.sentSuccessfully'));
+            showToast(t("device.sentSuccessfully"));
           }
           setTimeout(() => {
             getDeviceDetalFun();
@@ -103,8 +181,8 @@ export default {
     // 点击内门开关
     const inDoorChg = (inDoor) => {
       showConfirmDialog({
-        title: t('device.openRemind'),
-        message: t('device.openRemindIn'),
+        title: t("device.openRemind"),
+        message: t("device.openRemindIn"),
       }).then(() => {
         Api_openDoor({
           equipmentId: deviceDetal.value.id,
@@ -112,7 +190,27 @@ export default {
           status: inDoor,
         }).then((res) => {
           if (res.data.code == "00000") {
-            showToast(t('device.sentSuccessfully'));
+            showToast(t("device.sentSuccessfully"));
+          }
+          setTimeout(() => {
+            getDeviceDetalFun();
+          }, 1500);
+        });
+      });
+    };
+
+    const banPaperChg = (banPaper) => {
+      showConfirmDialog({
+        title: t("device.openRemind"),
+        message: t("device.openRemindPaper"),
+      }).then(() => {
+        Api_openDoor({
+          equipmentId: deviceDetal.value.id,
+          type: 2,
+          status: banPaper,
+        }).then((res) => {
+          if (res.data.code == "00000") {
+            showToast(t("device.sentSuccessfully"));
           }
           setTimeout(() => {
             getDeviceDetalFun();
@@ -125,15 +223,140 @@ export default {
       deviceDetal,
       outDoorChg,
       inDoorChg,
-      machineType
+      banPaperChg,
+      machineType,
+      user,
     };
   },
   components: {
-    sHeader
+    sHeader,
   },
-}
+};
 </script>
 
 <style lang="less" scoped>
-@import "../../common/style/common";
-</style>
+@theme-color: #4d6add;
+@light-bg: #f5f8ff;
+@card-bg: #ffffff;
+@text-dark: #333;
+@text-light: #666;
+@text-lighter: #999;
+@border-radius: 12px;
+@card-shadow: 0 4px 12px rgba(77, 106, 221, 0.15);
+@hover-shadow: 0 8px 20px rgba(77, 106, 221, 0.25);
+@transition: all 0.3s ease;
+
+.door-access-page {
+  display: flex;
+  flex-direction: column;
+  height: 100vh;
+  background-color: @light-bg;
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
+    sans-serif;
+}
+
+.device-header {
+  display: flex;
+  align-items: center;
+  padding: 12px 15px;
+  background: #fff;
+  margin: 12px 16px;
+  border-radius: 8px;
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
+
+  .vertical-indicator {
+    width: 4px;
+    height: 15px;
+    background: var(--active-color, #4d6add);
+    border-radius: 2px;
+    margin-right: 10px;
+  }
+
+  .device-name {
+    margin: 0;
+    font-size: 15px;
+    color: #404d74;
+    font-weight: 550;
+
+    // 长名称处理
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    max-width: 70vw;
+  }
+}
+
+.settings-card {
+  background-color: @card-bg;
+  border-radius: @border-radius;
+  box-shadow: @card-shadow;
+  padding: 16px;
+  margin: 0 16px 24px;
+}
+
+.door-item {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 16px 0;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+
+  // &:last-child {
+  //   border-bottom: none;
+  //   padding-bottom: 0;
+  // }
+}
+
+.door-info {
+  display: flex;
+  align-items: center;
+}
+
+.door-icon {
+  font-size: 24px;
+  color: @theme-color;
+  margin-right: 16px;
+}
+
+.door-detail {
+  flex: 1;
+}
+
+.door-title {
+  font-size: 16px;
+  font-weight: 600;
+  color: @text-dark;
+  margin: 0 0 4px;
+}
+
+.door-status {
+  font-size: 14px;
+  color: @text-light;
+  margin: 0;
+
+  .status-open {
+    color: #4caf50;
+    font-weight: 500;
+  }
+
+  .status-closed {
+    color: #f44336;
+    font-weight: 500;
+  }
+}
+
+// 响应式调整
+@media (max-width: 360px) {
+  .device-header .device-name {
+    font-size: 16px;
+  }
+
+  .door-title {
+    font-size: 15px;
+  }
+
+  .door-status {
+    font-size: 13px;
+  }
+}
+</style>

+ 2 - 1
src/views/merchantManage/index.vue

@@ -168,14 +168,15 @@ export default {
             // 获取缓存的语言
             const curLang = localStorage.getItem("curLang");
             const savedCredentials = localStorage.getItem('savedCredentials');
+            const appVersion = localStorage.getItem("appVersion");
             // 清空缓存
             localStorage.clear();
             localStorage.setItem("curLang", curLang);
+            localStorage.setItem("appVersion", appVersion);
             if (savedCredentials) {
               localStorage.setItem('savedCredentials', savedCredentials);
             }
             setLocal("loginUser", JSON.stringify(res.data.data));
-            // console.log('loginUser JSON:', JSON.stringify(data.data));
             showSuccessToast(t('login.loginSucess'));
             localStorage.setItem('firstLogin', true);
             // 需要刷新页面,否则 axios.js 文件里的 token 不会被重置

+ 13 - 10
src/views/user.vue

@@ -820,10 +820,12 @@ export default {
     const confirmClk = () => {
       // 获取缓存的语言
       const savedCredentials = localStorage.getItem("savedCredentials");
-      const curLang = localStorage.getItem("curLang");
+      // const curLang = localStorage.getItem("curLang");
+      // const appVersion = localStorage.getItem("appVersion");
       // 清空缓存
-      localStorage.clear();
-      localStorage.setItem("curLang", curLang);
+      // localStorage.clear();
+      // localStorage.setItem("curLang", curLang);
+      localStorage.removeItem("loginUser");
       if (savedCredentials) {
         localStorage.setItem("savedCredentials", savedCredentials);
       }
@@ -998,14 +1000,15 @@ export default {
       })
         .then(() => {
           // 获取缓存的语言
-          const savedCredentials = localStorage.getItem("savedCredentials");
-          const curLang = localStorage.getItem("curLang");
+          // const savedCredentials = localStorage.getItem("savedCredentials");
+          // const curLang = localStorage.getItem("curLang");
           // 清空缓存
-          localStorage.clear();
-          localStorage.setItem("curLang", curLang);
-          if (savedCredentials) {
-            localStorage.setItem("savedCredentials", savedCredentials);
-          }
+          // localStorage.clear();
+          // localStorage.setItem("curLang", curLang);
+          // if (savedCredentials) {
+          //   localStorage.setItem("savedCredentials", savedCredentials);
+          // }
+          localStorage.removeItem("loginUser");
           if (sys.value) {
             setTimeout(() => {
               router.push({