123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- import config from '@/config'
- import storage from '@/utils/storage'
- import constant from '@/utils/constant'
- import { getweChatLogin, logout, getInfo,login } from '@/api/login'
- import { getToken, setToken, removeToken } from '@/utils/auth'
- import { toast, showConfirm, tansParams } from '@/utils/common'
- const baseUrl = config.baseUrl
- const Clientid = config.Clientid
- const user = {
- state: {
- token: getToken(),
- name: storage.get(constant.name),
- phonenumber: storage.get(constant.phonenumber),
- deptId: storage.get(constant.deptId),
- schoolId: storage.get(constant.schoolId),
- schoolName: storage.get(constant.schoolName),
- openId: storage.get(constant.openId),
- deptName: storage.get(constant.deptName),
- avatar: storage.get(constant.avatar),
- roles: storage.get(constant.roles),
- userroles: storage.get(constant.userroles),
- choseroles: storage.get(constant.choseroles),
- permissions: storage.get(constant.permissions),
- userId:storage.get(constant.userId),
- tenantId:storage.get(constant.tenantId),
- student:storage.get(constant.student),
- teacherClass:storage.get(constant.teacherClass),
- shareflag: false,
- shaflag:false,
- sharetit: '',
- sharedesc: '',
- sharelink: '',
- shareimg: '',
- refreshflag:storage.get(constant.refreshflag),
- scorknow:storage.get(constant.scorknow),
- autologin:storage.get(constant.autologin),
- },
- mutations: {
- share:(state, provider)=>{
- state.shareflag = provider[0].shareflag;
- state.shaflag = provider[0].shaflag;
- state.sharetit = provider[0].sharetit;
- state.sharedesc = provider[0].sharedesc;
- state.sharelink = provider[0].sharelink;
- state.shareimg = provider[0].shareimg;
- },
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_NAME: (state, name) => {
- state.name = name
- storage.set(constant.name, name)
- },
- SET_PHONENUMBER: (state, phonenumber) => {
- state.phonenumber = phonenumber
- storage.set(constant.phonenumber, phonenumber)
- },
- SET_DEPTID: (state, deptId) => {
- state.deptId = deptId
- storage.set(constant.deptId, deptId)
- },
- SET_OPENID: (state, openId) => {
- state.openId = openId
- storage.set(constant.openId, openId)
- },
- SET_SCHOOLID: (state, schoolId) => {
- state.schoolId = schoolId
- storage.set(constant.schoolId, schoolId)
- },
- SET_SCHOOLNAME: (state, schoolName) => {
- state.schoolName = schoolName
- storage.set(constant.schoolName, schoolName)
- },
- SET_DEPNAME: (state, deptName) => {
- state.deptName = deptName
- storage.set(constant.deptName, deptName)
- },
- 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_USERROLES: (state, userroles) => {
- state.userroles = userroles
- storage.set(constant.userroles, userroles)
- },
- SET_CHOSEROLES: (state, choseroles) => {
- state.choseroles = choseroles
- storage.set(constant.choseroles, choseroles)
- },
- SET_PERMISSIONS: (state, permissions) => {
- state.permissions = permissions
- storage.set(constant.permissions, permissions)
- },
- SET_USERID: (state, userId) => {
- state.userId = userId
- storage.set(constant.userId, userId)
- },
- SET_TENANID: (state, tenantId) => {
- state.tenantId = tenantId
- storage.set(constant.tenantId, tenantId)
- },
- SET_STUDENT: (state, student) => {
- state.student = student
- storage.set(constant.student, student)
- },
- SET_TEACHERCLASS: (state, teacherClass) => {
- state.teacherClass = teacherClass
- storage.set(constant.teacherClass, teacherClass)
- },
- SET_REFRESH: (state, refreshflag) => {
- state.refreshflag = refreshflag
- storage.set(constant.refreshflag, refreshflag)
- },
- SET_SCOREKNOW: (state, scorknow) => {
- state.scorknow = scorknow
- storage.set(constant.scorknow, scorknow)
- },
- SET_AUTOLOGIN: (state, autologin) => {
- state.autologin = autologin
- storage.set(constant.autologin, autologin)
- },
- },
- actions: {
- //修改存储的角色 权限
- checkRole({commit},data){
- var roles=data
- commit('SET_PERMISSIONS', roles.permissions)
- commit('SET_CHOSEROLES', roles.roleKey)
- },
- checkClass({commit},data){
- var roles=data
- commit('SET_SCHOOLID', roles.schoolId)
- commit('SET_SCHOOLNAME', roles.schoolName)
- },
- // 刷新问题
- checkRefresh({commit},data){
- commit('SET_REFRESH', data)
- },
- //下载示例
- checkKnow({commit},data){
- commit('SET_SCOREKNOW', data)
- },
- // 微信登录
- Login({ commit }, userInfo) {
- const iv = userInfo.iv
- const encryptedData = userInfo.encryptedData
- const code = userInfo.code
- const tenantId = userInfo.tenantId
- // const uuid = userInfo.uuid
- return new Promise((resolve, reject) => {
- var params={
- iv: iv,
- encryptedData: encryptedData,
- code : code,
- tenantId : tenantId,
- }
- getweChatLogin(params).then(res => {
- setToken(res.data.access_token)
- commit('SET_TOKEN', res.data.access_token)
- // commit('SET_SCOREKNOW', 0)
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 登录
- Logines({ commit }, userInfo) {
- const username = userInfo.username.trim()
- const password = userInfo.password
- const code = userInfo.code
- const uuid = userInfo.uuid
- const tenantId = userInfo.tenantId
- // const clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e'
- const strfrom = userInfo.strfrom||""
- const clientId = Clientid
- const grantType = 'password'
- return new Promise((resolve, reject) => {
- login(username, password, code, uuid,tenantId,clientId,grantType).then(res => {
- setToken(res.data.access_token)
- commit('SET_TOKEN', res.data.access_token)
- commit('SET_AUTOLOGIN',true)
- resolve()
- }).catch(error => {
- console.log(error,strfrom,123)
- if(error==500&&strfrom=='request'){
- uni.hideLoading()
- // 清空数据
- uni.showModal({
- title: '提示',
- content: '登录状态已过期,您可以继续留在该页面,或者重新登录?',
- cancelText: '取消',
- confirmText: '确定',
- success: function(res) {
- if (res.confirm) {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- commit('SET_PERMISSIONS', [])
- removeToken()
- storage.clean()
- uni.reLaunch({ url: '/pages/login' })
- }else{
- commit('SET_AUTOLOGIN',false)
- }
- }
- })
- }
- reject(error)
- })
- })
- },
-
- // 获取用户信息
- GetInfo({ commit, state }) {
- return new Promise((resolve, reject) => {
- getInfo().then(resd => {
- const res = resd.data
- const user = res.user
- // const avatar = (user == null || user.avatar == "" || user.avatar == null) ? require("@/static/images/profile.png") : baseUrl + user.avatar
- const avatar = (user == null || user.avatar == "" || user.avatar == null) ? '' : user.avatar
- const username = (user == null || user.nickName == "" || user.nickName == null) ? "" : user.nickName
- const userId = (user == null || user.userId == "" || user.userId == null) ? "" : user.userId
- const tenantId = (user == null || user.tenantId == "" || user.tenantId == null) ? "" : user.tenantId
- const phonenumber = (user == null || user.phonenumber == "" || user.phonenumber == null) ? "" : user.phonenumber
-
- const deptId = (user == null || user.deptId == "" || user.deptId == null) ? "" : user.deptId
- const openId = (user == null || user.openId == "" || user.openId == null) ? "" : user.openId
- const deptName = (user == null || user.dept == "" || user.dept == null||user.dept.deptName==''||user.dept.deptName==null) ? "" : user.dept.deptName
-
-
- if (res.roles && res.roles.length > 0) {
- commit('SET_ROLES', res.roles)
- commit('SET_PERMISSIONS', res.permissions)
- if(res.roles.length==1){
- commit('SET_CHOSEROLES', res.roles)
- }
- } else {
- commit('SET_ROLES', ['ROLE_DEFAULT'])
- }
-
-
- // 根据角色来储存权限
- if (res.user.roles && res.user.roles.length > 0) {
- var newArr=[];
- var schoolId=res.schoolId;
- var schoolName='';
- newArr = res.user.roles.map(v => {
- if(v.roleKey=='teacher'&&res.user.teacherClass&&res.user.teacherClass.length){
- schoolId=res.user.teacherClass[0].schoolId
- schoolName=res.user.teacherClass[0].schoolName
- }
- return {
- roleKey: v.roleKey,
- permissions: v.permissions
- }
- })
- commit('SET_SCHOOLID', schoolId)
- commit('SET_SCHOOLNAME', schoolName)
- commit('SET_USERROLES', newArr)
- } else {
- commit('SET_USERROLES', ['ROLE_DEFAULT'])
- }
- commit('SET_NAME', username)
- commit('SET_USERID', userId)
- commit('SET_TENANID', tenantId)
- commit('SET_PHONENUMBER', phonenumber)
- commit('SET_DEPTID', deptId)
- commit('SET_OPENID', openId)
- commit('SET_DEPNAME', deptName)
-
- commit('SET_AVATAR', avatar)
- resolve(resd)
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 用户列表信息获取用户信息
- GetInforoles({ commit, state }) {
- return new Promise((resolve, reject) => {
- getInfo().then(resd => {
- var res=resd.data;
- // 判断和存储的是否一样 不一样重新存
- var choseroles=state.choseroles;
- var roles=state.roles;
- var user = res.roles;
- // 塞老师 孩子信息
- if(res.user.parentsStudent&&res.user.parentsStudent.length>0){
- commit('SET_STUDENT', res.user.parentsStudent)
- }
- if(res.user.teacherClass&&res.user.teacherClass.length>0){
- // 碰到一样去重
- var teacherClass=res.user.teacherClass;
- var newArrs = [];
- const map = new Map();
- newArrs = teacherClass.filter(v => !map.has(v.classId) && map.set(v.classId, 1));
- commit('SET_TEACHERCLASS',newArrs)
- }
- // 需要完善信息
- var userType=res.userType;
- if(userType=='register'){
- // 必须完信息
- showConfirm('您还未选择角色,请去完善信息').then(ress => {
- if(ress.confirm) {
- uni.navigateTo('/mine/pages/mine/roles')
- resolve()
- return
- }
- })
- return
- }
- if(JSON.stringify(roles.sort()) === JSON.stringify(user.sort())){
-
- }else{
- // 必须退出
- showConfirm('身份角色有更新,请退出重新登录,避免身份切换错误').then(ress => {
- if (ress.confirm) {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- // commit('SET_SCOREKNOW', '')
- commit('SET_PERMISSIONS', [])
- removeToken()
- storage.clean()
- uni.reLaunch({ url: '/pages/login' })
- resolve()
- return
- }
- })
- }
- resolve(resd)
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 退出系统
- LogOut({ commit, state }) {
- return new Promise((resolve, reject) => {
- logout(state.token).then(() => {
- commit('SET_TOKEN', '')
- // commit('SET_SCOREKNOW', '')
- commit('SET_ROLES', [])
- commit('SET_PERMISSIONS', [])
- removeToken()
- storage.clean()
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- }
- }
- }
- export default user
|