| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 |
- import {
- login,
- logout,
- getMessage,
- getContentByMsgId,
- hasRead,
- removeReaded,
- restoreTrash,
- getUnreadCount
- } from '@/api/system/user/login'
- import {setToken, getToken, setTagNavListInLocalstorage} from '@/libs/base/util'
- import maxLogo from '@/assets/images/dongke_logo.png'
- import mainService from '@/api/main'
- import store from '@/store'
- import config from '@/config'
- import Router from 'vue-router'
- import router, {resetRouter} from '@/router'
- import {getRouteTree2, filterAsyncRouter} from '@/libs/base/router-util'
- import {convertToChildrenMain, handleMenu} from '@/libs/tools/user-tools'
- let Base64 = require('js-base64').Base64
- export default {
- state: {
- imagePath: '',
- imagePathType: '',
- userName: '',
- id: '',
- avatorImgPath: '',
- token: getToken(),
- access: [],
- hasGetInfo: false,
- unreadCount: 0,
- messageUnreadList: [],
- messageReadedList: [],
- messageTrashList: [],
- messageContentStore: {},
- userCode: '',
- loginType: 1,
- cpId: 0,
- // dealerCode:'',
- userPwd: '',
- soCode: '',
- soId: 0,
- sysId: 0,
- // 是否是初始化密码
- flgInitPwd: null,
- // 密码过期日期
- pwdDate: null,
- //业务部门id
- orgId: null,
- //业务部门名称
- orgName: null,
- //渠道名称
- salesChannelName: null,
- //渠道Id
- salesChannel: null,
- //所在城市
- cityName: null,
- //用户表格设置
- userTableSetting: null,
- roleName: null,
- // 系统参数
- setting: {},
- },
- mutations: {
- setUserPwd(state, userPwd) {
- state.userPwd = userPwd
- },
- setSoCode(state, soCode) {
- state.soCode = soCode
- },
- setSoId(state, soId) {
- state.soId = soId
- },
- setAvator(state, avatorPath) {
- state.avatorImgPath = avatorPath
- },
- setId(state, id) {
- state.id = id
- },
- setUserName(state, name) {
- state.userName = name
- },
- setToken(state, token) {
- state.token = token
- setToken(token)
- },
- setMessageCount(state, count) {
- state.unreadCount = count
- },
- setMessageUnreadList(state, list) {
- state.messageUnreadList = list
- },
- setMessageReadedList(state, list) {
- state.messageReadedList = list
- },
- setMessageTrashList(state, list) {
- state.messageTrashList = list
- },
- setUserCode(state, userCode) {
- state.userCode = userCode
- },
- setLoginType(state, loginType) {
- state.loginType = loginType
- },
- setAppCode(state, appCode) {
- state.appCode = appCode
- },
- setFtyId(state, ftyId) {
- state.ftyId = ftyId
- },
- setFtyCode(state, ftyCode) {
- state.ftyCode = ftyCode
- },
- setFtyName(state, ftyName) {
- state.ftyName = ftyName
- },
- setAccess(state, access) {
- state.access = access || []
- },
- setRoleName(state, roleName) {
- state.roleName = roleName
- },
- updateMessageContentStore(state, {msg_id, content}) {
- state.messageContentStore[msg_id] = content
- },
- moveMsg(state, {from, to, msg_id}) {
- const index = state[from].findIndex(_ => _.msg_id === msg_id)
- const msgItem = state[from].splice(index, 1)[0]
- msgItem.loading = false
- state[to].unshift(msgItem)
- },
- setFlgInitPwd(state, flgInitPwd) {
- state.flgInitPwd = flgInitPwd
- },
- setOrgId(state, orgId) {
- state.orgId = orgId
- },
- setOrgName(state, orgName) {
- state.orgName = orgName
- },
- setCityName(state, cityName) {
- state.cityName = cityName
- },
- setStaffId(state, staffId) {
- state.staffId = staffId
- },
- setRoleIds(state, roleIds) {
- state.roleIds = roleIds
- },
- setStaffName(state, staffName) {
- state.staffName = staffName
- },
- setSetting(state, setting) {
- state.setting = setting
- },
- setUserTableSetting(state, setting) {
- state.userTableSetting = setting
- },
- setPwdDate(state,pwdDate){
- state.pwdDate = pwdDate
- },
- },
- getters: {
- messageUnreadCount: state => state.messageUnreadList.length,
- messageReadedCount: state => state.messageReadedList.length,
- messageTrashCount: state => state.messageTrashList.length
- },
- actions: {
- getRouters({commit}) {
- return new Promise((resolve, reject) => {
- try {
- getRouterReq().then(res => {
- let routers = backendMenusToRouters(res.data)
- commit('setRouters', routers)
- commit('setHasGetRouter', true)
- resolve(routers)
- }).catch(err => {
- reject(err)
- })
- } catch (error) {
- reject(error)
- }
- })
- },
- // 登录
- handleLogin({commit}, {ftyCode, userCode, userPwd, appCode}) {
- userCode = userCode.trim()
- return new Promise((resolve, reject) => {
- login({
- ftyCode,
- userCode,
- userPwd,
- appCode
- }).then(res => {
- const data = res.data
- if (data) {
- } else (commit('setToken', ''))
- resolve(res)
- }).catch(err => {
- reject(err)
- })
- })
- },
- /**
- * @desc : 登录后处理
- * @author : 洪旭东
- * @date : 2022-06-09 16:14
- */
- afterLogin({commit}, data) {
- // 保存系统参数
- commit('setSetting', data.setting)
- store.dispatch('saveSetting')
- sessionStorage.setItem('online', 'true')
- sessionStorage.setItem('login', 'login')
- sessionStorage.setItem('token', data.accessToken)
- commit('setId', data.user.userId)
- commit('setUserCode', data.user.userCode)
- commit('setUserName', data.user.userName)
- commit('setToken', data.accessToken)
- commit('setLoginType', data.user.sysId)
- // todo 前台保存权限
- // commit('setAccess', data.user.funCodeList)
- let menu = data.menu;
- menu = []
- let menuCopy = menu.copy();
- // menuCopy = menuCopy.filter(it => it.flgRight && it.objectCode !== 'home')
- menuCopy = menuCopy.filter(it => it.objectCode !== 'home')
- sessionStorage.setItem('menu', JSON.stringify(menuCopy))
- // 功能权限
- if (data.function) {
- sessionStorage.setItem('function', JSON.stringify(data.function))
- }
- // 处理数据
- menu = handleMenu(menu);
- let arr = convertToChildrenMain(menu,'parentId','id','objectPaths');
- console.log('menu', menu, arr)
- commit('setMenuList', arr.copy())
- sessionStorage.setItem('route', JSON.stringify(arr))
- router.addRoutes(filterAsyncRouter(arr,menu))
- commit('setAvator', maxLogo)
- commit('setFlgInitPwd', data.user.flgInitPwd)
- commit('setOrgId', data.user.orgId)
- commit('setOrgName', data.user.orgName)
- commit('setFtyId', data.user.ftyId)
- commit('setFtyCode', data.user.ftyCode)
- commit('setFtyName', data.user.ftyName)
- commit('setStaffId', data.user.staffId)
- commit('setStaffName', data.user.staffName)
- commit('setRoleIds', data.user.roleIds)
- commit('setUserTableSetting', data.userTableSetting)
- //菜单类型 默认抽屉
- commit('setMenuType', data.menuType || 'drawer')
- commit('setPwdDate', data.user.pwdDate)
- },
- /**
- * @desc : 给用户表格缓存赋值
- * @author : 周兴
- * @date : 2023/5/11 10:39
- */
- setUserTableSettingAfter({commit}, data) {
- commit('setUserTableSetting', data)
- },
- /**
- * @desc : 设置菜单
- * @author : 周兴
- * @date : 2023/5/11 10:48
- */
- setMenuListAfter({commit}, data){
- commit('setMenuList', data)
- },
- /**
- * @desc : 读取系统参数
- * @author : 洪旭东
- * @date : 2022-09-20 13:02
- */
- saveSetting({state}) {
- let data = state.setting
- // 保存系统参数
- // if (data.HGSCRM_OSS1) {
- // if (!data.HGSCRM_OSS1.endsWith('/')) {
- // data.HGSCRM_OSS1 += '/'
- // }
- // config.imgUrl = data.HGSCRM_OSS1
- // } else {
- // config.imgUrl =process.env.VUE_APP_IMG_URL
- // }
- config.imgUrl = process.env.VUE_APP_IMG_URL
- // if (data.HGHAP_OSS2) {
- // if (!data.HGHAP_OSS2.endsWith('/')) {
- // data.HGHAP_OSS2 += '/'
- // }
- // config.hgImgUrl = data.HGHAP_OSS2
- // } else {
- // config.hgImgUrl = process.env.VUE_APP_HG_IMG_URL
- // }
- config.hgImgUrl = process.env.VUE_APP_HG_IMG_URL
- },
- // 退出登录
- handleLogOut({state, commit}) {
- return new Promise((resolve, reject) => {
- logout(state.token).then(() => {
- commit('setToken', '')
- commit('setAccess', [])
- resolve()
- }).catch(err => {
- reject(err)
- })
- // 如果你的退出登录无需请求接口,则可以直接使用下面三行代码而无需使用logout调用接口
- commit('setToken', '')
- commit('setAccess', [])
- commit('setTagNavList', [])
- commit('setMenuList', [])
- // mainService.closeByHand()
- //退出后清空tagList
- setTagNavListInLocalstorage([])
- sessionStorage.removeItem('route')
- sessionStorage.removeItem('token')
- resetRouter()
- resolve()
- })
- },
- // 根据当前点击的消息的id获取内容
- getContentByMsgId({state, commit}, {msg_id}) {
- return new Promise((resolve, reject) => {
- let contentItem = state.messageContentStore[msg_id]
- if (contentItem) {
- resolve(contentItem)
- } else {
- getContentByMsgId(msg_id).then(res => {
- const content = res.data
- commit('updateMessageContentStore', {msg_id, content})
- resolve(content)
- })
- }
- })
- },
- // 把一个未读消息标记为已读
- hasRead({state, commit}, {msg_id}) {
- return new Promise((resolve, reject) => {
- hasRead(msg_id).then(() => {
- commit('moveMsg', {
- from: 'messageUnreadList',
- to: 'messageReadedList',
- msg_id
- })
- commit('setMessageCount', state.unreadCount - 1)
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 删除一个已读消息到回收站
- removeReaded({commit}, {msg_id}) {
- return new Promise((resolve, reject) => {
- removeReaded(msg_id).then(() => {
- commit('moveMsg', {
- from: 'messageReadedList',
- to: 'messageTrashList',
- msg_id
- })
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 还原一个已删除消息到已读消息
- restoreTrash({commit}, {msg_id}) {
- return new Promise((resolve, reject) => {
- restoreTrash(msg_id).then(() => {
- commit('moveMsg', {
- from: 'messageTrashList',
- to: 'messageReadedList',
- msg_id
- })
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- pushAccess({state, commit}, access) {
- return new Promise((resolve, reject) => {
- state.access.push({code: access})
- commit('setAccess', state.access)
- resolve()
- })
- },
- removeAccess({state, commit}, access) {
- return new Promise((resolve, reject) => {
- state.access.filter(it => it.code !== access)
- commit('setAccess', state.access)
- resolve()
- })
- },
- /**
- * @desc : 刷新token
- * @author : 洪旭东
- * @date : 2022-05-10 14:15
- */
- refreshToken({state, commit}, token) {
- commit('setToken', token)
- },
- /**
- * @desc : 强制修改密码后 修改flgInitPwd
- * @author : 沈博
- * @date : 2022/7/5 13:01
- */
- refreshFlgInitPwd({state, commit}, flag) {
- commit('setFlgInitPwd', flag)
- },
- }
- }
|