You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
4.3 KiB

6 months ago
import config from '@/config'
import storage from '@/utils/storage'
import constant from '@/utils/constant'
import {
getAppCheck,
getAppInfo
} from '@/api/pgy.js'
6 months ago
import {
login,
logout,
getInfo
} from '@/api/login'
import {
getWarningList
} from '@/api/taicangpop/data.js' //预警
import {
getToken,
setToken,
removeToken
} from '@/utils/auth'
6 months ago
const baseUrl = config.baseUrl
const user = {
state: {
app: {},
6 months ago
userId: null,
6 months ago
dept: {},
deptId: null,
token: getToken(),
name: storage.get(constant.name),
avatar: storage.get(constant.avatar),
roles: storage.get(constant.roles),
permissions: storage.get(constant.permissions)
},
mutations: {
SET_APP: (state, data) => {
state.app.check = data
},
6 months ago
SET_DEPT_ID: (state, deptId) => {
state.deptId = deptId
},
6 months ago
SET_USER_ID: (state, userId) => {
state.userId = userId
},
6 months ago
SET_DEPT: (state, dept) => {
state.dept = dept
},
SET_TOKEN: (state, token) => {
state.token = token
},
SET_NAME: (state, name) => {
state.name = name
storage.set(constant.name, name)
},
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
storage.set(constant.avatar, avatar)
},
SET_ROLES: (state, roles) => {
state.roles = roles
storage.set(constant.roles, roles)
},
SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions
storage.set(constant.permissions, permissions)
}
},
actions: {
// 登录
Login({
commit
}, userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
setToken(res.token)
commit('SET_TOKEN', res.token)
resolve()
}).catch(error => {
reject(error)
})
})
},
// 获取用户信息
GetInfo({
commit,
state
}) {
return new Promise((resolve, reject) => {
getInfo().then(async (res) => {
const user = res.user
const avatar = (user == null || user.avatar == "" || user.avatar == null) ?
require("@/static/images/profile.jpg") : baseUrl + user.avatar
const username = (user == null || user.userName == "" || user.userName ==
null) ? "" : user.userName
if (res.roles && res.roles.length > 0) {
commit('SET_ROLES', res.roles)
commit('SET_PERMISSIONS', res.permissions)
} else {
commit('SET_ROLES', ['ROLE_DEFAULT'])
}
const app = await AppCheck()
commit('SET_APP', app)
6 months ago
commit('SET_NAME', username)
6 months ago
commit('SET_USER_ID', user.userId)
commit('SET_DEPT_ID', user.dept.deptId)
6 months ago
commit('SET_DEPT', user.dept)
commit('SET_AVATAR', avatar)
resolve(res)
}).catch(error => {
reject(error)
})
})
},
//预警中心
getWarnNum({
commit,
state
}, data) {
return new Promise((resolve, reject) => {
let query = {
xiaoquId: state.dept.xiaoquId,
deptId: data.deptId,
pageNum: 1,
pageSize: 1,
}
getWarningList(query).then(res => {
resolve(res.total)
})
})
},
// 退出系统
LogOut({
commit,
state
}) {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_PERMISSIONS', [])
removeToken()
storage.clean()
resolve()
}).catch(error => {
reject(error)
})
})
},
//检测是否有新版本
checkApp({
commit,
state
}) {
AppCheck()
6 months ago
}
}
}
async function AppCheck() {
const appKey = 'e4c51352c1a5a46cb49b44ae24edea32'
const res = await getAppCheck({
appKey: appKey
})
// uni.getSystemInfo({
// success: async function(it) {
// //有新版本
// if (it.appVersionCode != res.data.buildVersionNo) {
// // const info = await getAppInfo({
// // appKey: appKey,
// // buildKey: res.data.buildKey
// // })
// // let megabytes = info.data.buildFileSize / (1024 * 1024);
// // uni.showModal({
// // title: '发现新版本!',
// // content: `新版本号V${info.data.buildVersion}\n软件体积${megabytes.toFixed(1)}MB`,
// // cancelText: '暂不更新',
// // confirmText: '立即更新',
// // success: (res) => {
// // if (res.confirm) {}
// // }
// // })
// }
// }
// })
6 months ago
return res.data
}
6 months ago
export default user