فهرست منبع

refactor: 登陆逻辑优化

Burt 2 سال پیش
والد
کامیت
006bf537f8
3فایلهای تغییر یافته به همراه11 افزوده شده و 27 حذف شده
  1. 8 4
      src/components/fly-login/fly-login.vue
  2. 1 2
      src/pages/login/index.vue
  3. 2 21
      uni-pages.d.ts

+ 8 - 4
src/components/fly-login/fly-login.vue

@@ -1,5 +1,5 @@
 <template>
-  <view class="fly-login" v-if="show">
+  <view class="fly-login" v-if="modelValue">
     <view class="fly-login-mask" />
     <view class="fly-login-content px-4">
       <view class="font-bold h-16 leading-16">获取您的昵称、头像</view>
@@ -28,7 +28,7 @@
         class="flex items-center h-16 leading-16 border-b-gray-400 border-b-solid border-1 mt-4"
       >
         <text class="mr-4 flex-shrink-0">昵称</text>
-        <input type="nickname" placeholder="请输入昵称" @change="onChange" />
+        <input type="nickname" placeholder="请输入昵称" @change="onChange" @blur="onChange" />
       </view>
 
       <button
@@ -47,14 +47,16 @@
 import { useUserStore } from '@/store'
 import defaultAvatarUrl from './defaultAvatar.png'
 
+const emit = defineEmits(['update:modelValue'])
+defineProps<{ modelValue: boolean }>()
+
 const userStore = useUserStore()
 
-const show = ref(true)
 const avatarUrl = ref(defaultAvatarUrl)
 const nickname = ref('')
 
 const onClose = () => {
-  show.value = false
+  emit('update:modelValue', false)
 }
 
 const onChooseAvatar = (e) => {
@@ -67,6 +69,7 @@ const onChooseAvatar = (e) => {
 const onChange = (e) => {
   const { value } = e.detail
   nickname.value = value
+  console.log(value)
 }
 
 const onSubmit = () => {
@@ -87,6 +90,7 @@ const onSubmit = () => {
     return
   }
 
+  emit('update:modelValue', false)
   console.log('保存用户信息')
   userStore.setUserInfo({ nickname: nickname.value, avatar: avatarUrl.value })
 }

+ 1 - 2
src/pages/login/index.vue

@@ -11,10 +11,10 @@
       <view class="ml-2">{{ userStore.userInfo?.nickname }}</view>
     </view>
     <view class="flex items-center leading-6" v-else @click="show = true">
-      <fly-login v-if="show" />
       <view class="i-carbon-user-avatar"></view>
       <view class="ml-2">点击显示微信头像</view>
     </view>
+    <fly-login v-model="show" />
     <fly-content :line="10" />
     <button v-if="hasLogin" class="mt-2" @click="logout">退出登录</button>
   </view>
@@ -31,7 +31,6 @@ const logout = () => {
     title: '确认退出当前账号?',
     success: (res) => {
       if (res.confirm) {
-        show.value = false
         userStore.clearUserInfo()
       }
     },

+ 2 - 21
uni-pages.d.ts

@@ -5,32 +5,13 @@
 
 interface NavigateToOptions {
   url: "pages/index/index" |
-       "pages/demo/index" |
        "pages/login/index" |
-       "pages/my/index" |
-       "pages/demo/demo/clock" |
-       "pages/demo/demo/component-auto-import" |
-       "pages/demo/demo/lottery" |
-       "pages/demo/demo/lottery2" |
-       "pages/demo/demo/mp-weixin-share" |
-       "pages/demo/demo/navbar" |
-       "pages/demo/demo/pages-auto-import" |
-       "pages/demo/demo/pinia" |
-       "pages/demo/demo/request" |
-       "pages/demo/demo/throughout" |
-       "pages/demo/demo/uni-ui-icons" |
-       "pages/demo/demo/uni-ui" |
-       "pages/demo/demo/unocss-icons" |
-       "pages/demo/demo/unocss" |
-       "pages/demo/demo/img-min/index" |
-       "pages/demo/demo/lottery/big-wheel" |
-       "pages/demo/demo/lottery/nine-grid" |
-       "pages/demo/demo/throughout/index";
+       "pages/my/index";
 }
 interface RedirectToOptions extends NavigateToOptions {}
 
 interface SwitchTabOptions {
-  url: 'pages/index/index' | 'pages/demo/index' | 'pages/my/index'
+  url: 'pages/index/index' | 'pages/my/index'
 }
 
 type ReLaunchOptions = NavigateToOptions | SwitchTabOptions