From 14681dfe7052cb76eefcc0c17d0a0d708e1ac9dd Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期二, 13 五月 2025 16:31:14 +0800 Subject: [PATCH] 完成移动端基本功能 --- eims-ui-mobile/src/pages/login/index.vue | 101 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 81 insertions(+), 20 deletions(-) diff --git a/eims-ui-mobile/src/pages/login/index.vue b/eims-ui-mobile/src/pages/login/index.vue index f26a05d..5c56190 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,46 @@ :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> + <wd-checkbox v-model="rember" @change="handleChange"> + <text class="rember-text">璁颁綇瀵嗙爜</text> + </wd-checkbox> + </view> + <wd-button class="mt-6" type="primary" size="large" @click="handleSubmit" block> + 鎻愪氦 + </wd-button> + + <view class="copyright-info"> + <text>涓婃捣鍏板疂浼犳劅绉戞妧鑲′唤鏈夐檺鍏徃</text> + </view> </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 { tabbarStore } from '@/components/fg-tabbar/tabbar' const userStore = useUserStore() const accessStore = useAccessStore() -const { success: showSuccess } = useToast() +const configStore = useSystemConfigStore() 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,25 +85,68 @@ 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 }) + uni.switchTab({ url: '/pages/home/index' }) + tabbarStore?.setCurIdx(0) + tabbarStore?.setLastIdx(0) } - - - - - </script> <style scoped lang="scss"> .footer { - padding: 12px; + padding: 24rpx; +} +.rember-text { + font-size: 24rpx; + color: $uni-text-color-grey; +} + +.copyright-info { + position: absolute; + bottom: 20rpx; + width: 100%; + display: flex; + justify-content: center; + color: $uni-text-color-disable; + font-size: 24rpx; } </style> -- Gitblit v1.9.3