From 7db4e38c6d967d511f0c1248bf22ceaf6a6f55d3 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期五, 18 四月 2025 18:33:24 +0800
Subject: [PATCH] 配置http,完成登录信息缓存,添加部分pinia配置

---
 eims-ui-mobile/src/pages/login/index.vue |   76 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 17 deletions(-)

diff --git a/eims-ui-mobile/src/pages/login/index.vue b/eims-ui-mobile/src/pages/login/index.vue
index f26a05d..46626e7 100644
--- a/eims-ui-mobile/src/pages/login/index.vue
+++ b/eims-ui-mobile/src/pages/login/index.vue
@@ -13,7 +13,7 @@
     <wd-cell-group border>
       <wd-input
         label="鐢ㄦ埛鍚�"
-        label-width="100px"
+        label-width="200rpx"
         prop="username"
         clearable
         v-model="model.username"
@@ -22,7 +22,7 @@
       />
       <wd-input
         label="瀵嗙爜"
-        label-width="100px"
+        label-width="200rpx"
         prop="password"
         show-password
         clearable
@@ -31,28 +31,43 @@
         :rules="[{ required: true, message: '璇峰~鍐欏瘑鐮�' }]"
       />
     </wd-cell-group>
-    <view class="footer mt-6">
-      <wd-button type="primary" size="large" @click="handleSubmit" block>鎻愪氦</wd-button>
+    <view class="footer">
+      <view class="w-full text-end">
+        <wd-checkbox v-model="rember" shape="square" @change="handleChange">
+          璁颁綇瀵嗙爜
+        </wd-checkbox>
+      </view>
+      <wd-button class="mt-6" type="primary" size="large" @click="handleSubmit" block>
+        鎻愪氦
+      </wd-button>
     </view>
   </wd-form>
 </template>
 
 <script setup lang="ts">
 import { currRoute } from '@/utils'
-import { useUserStore, useAccessStore } from '@/store'
+import { useUserStore, useAccessStore, useSystemConfigStore } from '@/store'
 import { useToast } from 'wot-design-uni'
-import { login } from '@/service/login'
+import { login, getUserInfo } from '@/service/login'
+import type { UserInfo } from '@/service/login.d'
+import { TestEnum } from '@/typings'
 const userStore = useUserStore()
 const accessStore = useAccessStore()
+const configStore = useSystemConfigStore()
 const { success: showSuccess } = useToast()
 
 const model = reactive<{
   username: string
   password: string
 }>({
-  username: 'admin',
-  password: 'admin123',
+  username: '',
+  password: '',
 })
+const rember = ref<boolean>(false)
+
+function handleChange({ value }) {
+  console.log(value)
+}
 
 const form = ref()
 function handleSubmit() {
@@ -67,21 +82,48 @@
       console.log(error, 'error')
     })
 }
+
+onLoad(() => {
+  const { remberPassword, username, password } = configStore.systemConfigInfo
+  if (remberPassword) {
+    rember.value = true
+    model.username = username
+    model.password = password
+  }
+})
+
 const toLogin = async () => {
+  // 璁颁綇瀵嗙爜
+  if (rember.value) {
+    configStore.setConfigInfo({ ...model, ...{ remberPassword: true } })
+  }
+
   const res = await login(model)
-  console.error(res)
   accessStore.setAccessInfo(res as any)
-  console.error(accessStore.accessInfo.access_token)
-  // userStore.setUserInfo({ nickname: '鑿查附', avatar: '', token: 'abcdef' })
+  const backUserInfo: any = await getUserInfo()
+  /**
+   * 鐧诲綍瓒呮椂鐨勬儏鍐�
+   */
+  if (!backUserInfo) {
+    throw new Error('鑾峰彇鐢ㄦ埛淇℃伅澶辫触.')
+  }
+  const { permissions = [], roles = [], user } = backUserInfo
+  /**
+   * 浠庡悗鍙皍ser -> vben user杞崲
+   */
+  const userInfo: UserInfo = {
+    avatar: user.avatar ?? '',
+    permissions,
+    realName: user.nickName,
+    roles,
+    userId: user.userId,
+    deptId: user.deptId,
+    username: user.userName,
+  }
+  userStore.setUserInfo(userInfo)
   const { query } = currRoute()
-  console.error(query.redirect)
   uni.switchTab({ url: query.redirect })
 }
-
-
-
-
-
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.9.3