From 89cd3efd5dc533e6c8129d7d86dc74e1adf3d84c Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期三, 20 八月 2025 14:00:25 +0800 Subject: [PATCH] 1.回款登记页面开发账联调 --- src/store/modules/user.ts | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 103 insertions(+), 0 deletions(-) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts new file mode 100644 index 0000000..db4dc32 --- /dev/null +++ b/src/store/modules/user.ts @@ -0,0 +1,103 @@ +import {logout, getInfo, loginCheckFactory} from "@/api/login"; +import { getToken, setToken, removeToken } from "@/utils/auth"; +import defAva from "@/static/images/profile.jpg"; +import { defineStore } from "pinia"; +import config from '@/config.js' + +export interface LoginForm { + username: string; + password: string; + factoryId: string; +} + +const useUserStore = defineStore("user", { + state: () => ({ + token: getToken(), + id: "", + name: "", + avatar: "", + currentFactoryName: "", + nickName: "", + roleName: "", + currentDeptId: "", + currentLoginTime: "", + roles: Array(), + permissions: [], + }), + actions: { + // 閮ㄩ棬鐧诲綍 + loginCheckFactory(userInfo: any) { + const username = userInfo.username.trim() + const password = userInfo.password + const factoryId = userInfo.factoryId + return new Promise((resolve, reject) => { + loginCheckFactory(username, password, factoryId).then((res: any) => { + setToken(res.token) + this.token = res.token + resolve(null) + }).catch((error: any) => { + reject(error) + }) + }) + }, + // 鑾峰彇鐢ㄦ埛淇℃伅 + getInfo() { + return new Promise((resolve, reject) => { + getInfo() + .then((res: any) => { + const user = res.user + let avatar = user.avatar || "" + avatar = config.baseUrl + '/profile/' + avatar + if (res.roles && res.roles.length > 0) { // 楠岃瘉杩斿洖鐨剅oles鏄惁鏄竴涓潪绌烘暟缁� + this.roles = res.roles + this.permissions = res.permissions + } else { + this.roles = ['ROLE_DEFAULT'] + } + this.id = user.userId + this.name = user.userName + this.avatar = avatar + this.currentFactoryName = user.currentFactoryName + this.nickName = user.nickName + this.roleName = user.roles[0].roleName + this.currentDeptId = user.tenantId + this.currentLoginTime = this.getCurrentTime() + resolve(res); + }) + .catch((error) => { + reject(error); + }); + }); + }, + // 閫�鍑虹郴缁� + logOut() { + return new Promise<null>((resolve, reject) => { + logout() + .then(() => { + this.token = ""; + this.roles = []; + this.permissions = []; + this.name = ""; + this.avatar = ""; + removeToken(); + resolve(null); + }) + .catch((error) => { + reject(error); + }); + }); + }, + getCurrentTime() { + const now = new Date(); + const year = now.getFullYear(); // 鑾峰彇骞翠唤 + const month = String(now.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝瑕�+1锛屽苟琛ラ浂 + const day = String(now.getDate()).padStart(2, '0'); // 鏃ユ湡琛ラ浂 + const hours = String(now.getHours()).padStart(2, '0'); // 灏忔椂琛ラ浂 + const minutes = String(now.getMinutes()).padStart(2, '0'); // 鍒嗛挓琛ラ浂 + const seconds = String(now.getSeconds()).padStart(2, '0'); // 绉掓暟琛ラ浂 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + }, + }, +}); + +export default useUserStore; -- Gitblit v1.9.3