xiongzhu 3 years ago
parent
commit
02fe1d23e7
10 changed files with 48 additions and 52 deletions
  1. 1 1
      package.json
  2. 8 14
      src/App.vue
  3. 0 2
      src/main.js
  4. 1 0
      src/plugins/http.js
  5. 6 1
      src/stores/user.js
  6. 1 1
      src/views/CommissionPage.vue
  7. 1 2
      src/views/HomePage.vue
  8. 3 3
      src/views/MinePage.vue
  9. 17 12
      src/views/SettingPage.vue
  10. 10 16
      yarn.lock

+ 1 - 1
package.json

@@ -25,7 +25,7 @@
     "qrcode": "1",
     "qs": "^6.11.0",
     "swiper": "^8.4.5",
-    "vant": "^3.2.3",
+    "vant": "^4.0.2",
     "vue": "^3.2.45",
     "vue-i18n": "9",
     "vue-router": "^4.1.6"

+ 8 - 14
src/App.vue

@@ -1,18 +1,12 @@
 <template>
-    <ion-app>
-        <ion-router-outlet />
-    </ion-app>
+    <vant-config-provider :theme="dark ? 'dark' : 'light'">
+        <ion-app>
+            <ion-router-outlet />
+        </ion-app>
+    </vant-config-provider>
 </template>
 
-<script lang="ts">
-import { IonApp, IonRouterOutlet } from '@ionic/vue'
-import { defineComponent } from 'vue'
-
-export default defineComponent({
-    name: 'App',
-    components: {
-        IonApp,
-        IonRouterOutlet
-    }
-})
+<script setup>
+import { useDark } from '@vueuse/core'
+const dark = useDark()
 </script>

+ 0 - 2
src/main.js

@@ -7,7 +7,6 @@ import { IonicVue } from '@ionic/vue'
 import * as IonComponents from '@ionic/vue'
 import i18n from './locales'
 import Vant from 'vant'
-import { ConfigProvider } from 'vant'
 import { useDark } from '@vueuse/core'
 import toast from '@/utils/toast'
 import setDefaultOptions from 'date-fns/setDefaultOptions'
@@ -46,7 +45,6 @@ app.use(IonicVue)
 app.use(router)
 app.use(http)
 app.use(Vant)
-app.use(ConfigProvider)
 app.use(toast)
 app.mixin(common)
 

+ 1 - 0
src/plugins/http.js

@@ -33,6 +33,7 @@ axiosInstance.interceptors.response.use(
 )
 
 const http = {
+    token,
     setToken(_token) {
         token.value = _token
         if (_token) {

+ 6 - 1
src/stores/user.js

@@ -69,10 +69,15 @@ export const useUserStore = defineStore('user', () => {
         })
     }
     const get = async () => {
+        if (!http.token.value) return Promise.resolve()
         return http.get('/user/my').then(res => {
             console.log(res)
             user.value = res
         })
     }
-    return { user, login, get, loginByPhone, loginByCode, register }
+    const logout = () => {
+        http.setToken(null)
+        user.value = null
+    }
+    return { user, login, get, loginByPhone, loginByCode, register, logout }
 })

+ 1 - 1
src/views/CommissionPage.vue

@@ -115,7 +115,7 @@ export default {
 }
 .cell-value {
     font-size: 16px;
-    color: #000;
+    color: var(--ion-color-light-contrast);
 }
 
 .van-cell {

+ 1 - 2
src/views/HomePage.vue

@@ -48,7 +48,7 @@
             <van-notice-bar
                 left-icon="volume-o"
                 background="var(--ion-color-step-0)"
-                color="#000"
+                color="var(--ion-text-color)"
                 text="
                     无论我们能活多久,我们能够享受的只有无法分割的此刻,此外别无其他。
                 "
@@ -214,7 +214,6 @@ onMounted(() => {
     //     forbidClick: true
     // })
     Promise.all([getBanner(), getSaleBatch()]).then(() => {
-        console.log(toast)
         toast.dismiss()
     })
 })

+ 3 - 3
src/views/MinePage.vue

@@ -195,7 +195,7 @@ const goSetting = () => {
 
     .card-content {
         margin-top: 8px;
-        --van-grid-item-content-background: var(--ion-color-step-0)8fc;
+        --van-grid-item-content-background: var(--ion-color-step-0);
         border-radius: 4px;
         overflow: hidden;
     }
@@ -229,7 +229,7 @@ const goSetting = () => {
         }
 
         :deep(.van-grid) {
-            --van-grid-item-text-color: #000;
+            --van-grid-item-text-color: var(--ion-color-light-contrast);
             --van-grid-item-text-font-size: 15px;
             .van-grid-item__text {
                 font-weight: bold;
@@ -244,7 +244,7 @@ const goSetting = () => {
 
 :deep(.menu) {
     --van-cell-line-height: 28px;
-    --van-cell-text-color: #000;
+    --van-cell-text-color: var(--ion-color-light-contrast);
     --van-cell-font-size: 14px;
     --van-cell-vertical-padding: 16px;
     --van-cell-horizontal-padding: 30px;

+ 17 - 12
src/views/SettingPage.vue

@@ -8,7 +8,7 @@
                 <ion-title>{{ $t('user.profile') }}</ion-title>
             </ion-toolbar>
         </ion-header>
-        <ion-content :fullscreen="true">
+        <ion-content>
             <div class="setting">
                 <van-cell-group :border="false">
                     <van-cell title="头像" is-link>
@@ -17,7 +17,7 @@
                                 radius="4"
                                 width="36"
                                 height="36"
-                                :src="user.avatar || defaultLogo"
+                                :src="(user || {}).avatar || defaultLogo"
                                 fit="cover"
                             />
 
@@ -31,7 +31,7 @@
                         title="昵称"
                         @click="$router.push({ name: 'changeText', query: { type: 'nickname' } })"
                         is-link
-                        :value="user.nickname"
+                        :value="(user || {}).nickname"
                     >
                         <template #right-icon>
                             <img src="../assets/icon_inter.png" alt="" class="right-icon" />
@@ -40,9 +40,9 @@
 
                     <van-cell
                         title="性别"
-                        :class="{ not: !user.sex }"
+                        :class="{ not: !(user || {}).sex }"
                         is-link
-                        :value="user.sex || '未设置'"
+                        :value="(user || {}).sex || '未设置'"
                         @click="show = true"
                     >
                         <template #right-icon>
@@ -64,9 +64,9 @@
                     </van-cell>
                 </van-cell-group> -->
                 <van-cell-group :border="false">
-                    <van-cell title="绑定手机号" class="not" :value="user.phone"> </van-cell>
+                    <van-cell title="绑定手机号" class="not" :value="(user || {}).phone"> </van-cell>
                     <!-- <van-cell title="修改密码" is-link></van-cell> -->
-                    <van-cell class="not" title="用户ID" :value="user.id" @click="showConsoleEve" />
+                    <van-cell class="not" title="用户ID" :value="(user || {}).id" @click="showConsoleEve" />
                     <van-cell class="not" v-if="showConsole" title="审核版本" is-link @click="goReview" />
                     <van-cell class="not" v-if="showConsole" title="测试app" is-link @click="goTest" />
                 </van-cell-group>
@@ -74,6 +74,7 @@
                 <van-action-sheet v-model:show="show" :actions="actions" cancel-text="取消" @select="chooseSex" />
 
                 <!-- <van-area title="选择地址" :area-list="areaList" :columns-num="2" /> -->
+                <van-button style="margin-top: 20px" type="primary" block @click="onLogout">退出登录</van-button>
             </div>
         </ion-content>
     </ion-page>
@@ -92,7 +93,7 @@ export default {
         }
     },
     computed: {
-        ...mapState(useUserStore, ['user'])
+        ...mapState(useUserStore, ['user', 'logout'])
     },
     setup() {
         //性别
@@ -102,7 +103,7 @@ export default {
         const userStore = useUserStore()
 
         const cityName = computed(() => {
-            return userStore.user.country + ' ' + userStore.user.city
+            return (userStore.user || {}).country + ' ' + (userStore.user || {}).city
         })
 
         return {
@@ -211,6 +212,10 @@ export default {
         },
         goTest() {
             window.location.href = 'https://test.raex.vip/saas/home'
+        },
+        onLogout() {
+            this.logout()
+            this.$router.back()
         }
     }
 }
@@ -231,7 +236,7 @@ export default {
 .tabs {
     font-size: 20px;
     font-weight: bold;
-    color: #000;
+    color: var(--ion-color-light-contrast);
     line-height: 30px;
     padding: 0 16px;
 }
@@ -261,7 +266,7 @@ export default {
     .van-cell__value {
         span {
             font-size: 16px;
-            color: #000;
+            color: var(--ion-color-light-contrast);
             line-height: 24px;
         }
     }
@@ -281,7 +286,7 @@ export default {
         .van-cell__value {
             span {
                 font-size: 13px;
-                color: #000;
+                color: var(--ion-color-light-contrast);
                 line-height: 24px;
                 display: -webkit-box;
                 overflow: hidden;

+ 10 - 16
yarn.lock

@@ -256,19 +256,14 @@
   resolved "https://registry.yarnpkg.com/@vant/area-data/-/area-data-1.3.2.tgz#1672dcbeaf9ef33ceaba602ecd4f3cb0456c7737"
   integrity sha512-KHGvvIxApxCXDTzsh5hPsIVrF4ll5J3pNgYNL3lmNJxye7aWySK97EgXiprVee+FshVa1jVW4esJ7VyW0l94WQ==
 
-"@vant/icons@^1.8.0":
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/@vant/icons/-/icons-1.8.0.tgz#36b13f2e628b533f6523a93a168cf02f07056674"
-  integrity sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==
-
-"@vant/popperjs@^1.2.1":
+"@vant/popperjs@^1.3.0":
   version "1.3.0"
-  resolved "https://registry.yarnpkg.com/@vant/popperjs/-/popperjs-1.3.0.tgz#e0eff017124b5b2352ef3b36a6df06277f4400f2"
+  resolved "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz#e0eff017124b5b2352ef3b36a6df06277f4400f2"
   integrity sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==
 
-"@vant/use@^1.4.2":
+"@vant/use@^1.4.3":
   version "1.4.3"
-  resolved "https://registry.yarnpkg.com/@vant/use/-/use-1.4.3.tgz#0c542fe01a1439878e4aa8779d1791e189610d30"
+  resolved "https://registry.npmmirror.com/@vant/use/-/use-1.4.3.tgz#0c542fe01a1439878e4aa8779d1791e189610d30"
   integrity sha512-rSnETN7P9qT1WbItMpQxBqe3cHeK2ZFYp1sCxWUXaTeI71TqA8sOdzC36ledZ36NQgFNTch9fsRPYOkrCgZfQA==
 
 "@vitejs/plugin-vue@^3.2.0":
@@ -3685,14 +3680,13 @@ validate-npm-package-license@^3.0.1:
     spdx-correct "^3.0.0"
     spdx-expression-parse "^3.0.0"
 
-vant@^3.2.3:
-  version "3.6.9"
-  resolved "https://registry.yarnpkg.com/vant/-/vant-3.6.9.tgz#958eb47a01e1acdfb230e488290ab1a0ea674862"
-  integrity sha512-N7n66BMAU58HEPpUFRnCjdzK2swgRONFkkr7QLm1AoNBel7yvINZ0BYnrNU6+CMjEnTQmv8H3eN6t4bv9ZJ//A==
+vant@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.npmmirror.com/vant/-/vant-4.0.2.tgz#629c9b4f5ac020f8b0c74cade4aa8ffef3bfe3b5"
+  integrity sha512-qv3YaysqDbDI4N1peuck0v2g/Zz2rH2ao2qLNn166ZsuPadCmwsuwaypT+eFWElAzj0P1f9aUEmFmdJJwGuRfw==
   dependencies:
-    "@vant/icons" "^1.8.0"
-    "@vant/popperjs" "^1.2.1"
-    "@vant/use" "^1.4.2"
+    "@vant/popperjs" "^1.3.0"
+    "@vant/use" "^1.4.3"
 
 vite-plugin-imagemin@^0.6.1:
   version "0.6.1"