| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import { defineStore } from 'pinia'
- import { ref } from 'vue'
- import { Base64 } from 'js-base64'
- import defHead from '@img/icons/turnk_number_head.png'
- interface TUser extends Token认证用户实体 {
- /** 令牌 */
- token?: string
- /** 组织机构id */
- orgId?: string
- /** 角色id */
- roleId?: string
- /** 请求时携带的标识符 */
- Identifier?: string
- mobileDes?: string
- }
- const service = 'miniprogram'
- const initState = {
- Identifier: Base64.encode(service + ':org:user:role'),
- }
- const useUserStore = defineStore(
- 'user',
- () => {
- const userInfo = ref<TUser>({ ...initState })
- const isLogined = computed(() => !!userInfo.value.token)
- /** 初始化用户信息 */
- const initUserInfo = (val: Token认证返回实体) => {
- const data = { ...val.user }
- delete data.authorities
- if (!data.head_url) {
- data.head_url = defHead
- }
- userInfo.value = data
- userInfo.value.mobileDes = func.convert.mobileDes(data.mobile)
- if (store.common.data.mockScenes === config.common.mockScenes.examine) {
- userInfo.value.mobileDes = ''
- }
- userInfo.value.token = val.access_token
- userInfo.value.orgId = val.user.authorities[0].orgId
- userInfo.value.roleId = val.user.authorities[0].roles[0].roleId
- userInfo.value.Identifier = Base64.encode(
- `${service}:${userInfo.value.orgId}:${userInfo.value.user_id}:${userInfo.value.roleId}`,
- )
- }
- /** 设置部分用户信息 */
- const setUserInfo = (ui: User对象) => {
- if (ui.userName) {
- userInfo.value.user_name = ui.userName
- }
- if (ui.headUrl) {
- userInfo.value.head_url = ui.headUrl
- }
- }
- const clearUserInfo = (type = 0) => {
- userInfo.value = { ...initState }
- ay.goLogin(type)
- }
- const Authorization = computed(() => {
- if (isLogined.value) {
- return 'Bearer ' + userInfo.value.token
- } else {
- return 'Basic ' + Base64.encode(service + ':123456')
- }
- })
- return {
- userInfo,
- initUserInfo,
- setUserInfo,
- /** 清理身份信息-跳登录页面
- * @parmas type 0:手机号快捷 1:账号、密码
- */
- clearUserInfo,
- /** 已登录 */
- isLogined,
- /** 授权信息 */
- Authorization,
- /** 小程序类型标识 */
- service,
- }
- },
- {
- persist: true,
- },
- )
- export default useUserStore
|