123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- import { fastLogin, logout, login,complogin, getRoule, getCurrentUserInfo, companyInfo, isLandBased, getAccountLoginHistoryCount, updateShowInfo }
- from '@/model/indexRx'
- import { getNoviceGuideData, findVesselSysVersion, getStaffHomeShowList } from '@/model/indexRx'
- import {
- getTenantInfoByUser,
- } from '@/model/signIn/index'
- import { setToken, getCompanyId, clearStorage } from '../../utils/auth'
- import { resetRouter, asyncRoutes } from '../../router'
- import notification from '../../notification'
- import { Message } from 'element-ui';
- import Cookies from 'js-cookie'
- import {
- setStore,
- } from '@/utils/store'
- import { groupBy } from 'lodash'
- const state = {
- token: '',
- name: '',
- avatar: '',
- openRoute:[],
- companyId: getCompanyId(),
- introduction: '',
- roles: [],
- tabActiveName: '', // 用于存放采购管理模块的tab
- baseInfo: {},
- scheduleState: true,
- guideInfo: {},
- isTrainDialog: '',
- userInfo: '',
- userSetting: '',
- adminId: Cookies.get('adminId') || ''
- }
- const getters = {
- // ...
- getUserSetting: (state, getters) => {
- return getters.userSetting
- }
- }
- const mutations = {
- // 设置基础信息
- SET_BASE_INFO: (state, baseInfo) => {
- state.baseInfo = { ...baseInfo } // , fileUrl: '/pb'
- },
- // 新手指引信息
- SET_GUIDE_INFO: (state, guideInfo) => {
- state.guideInfo = { ...guideInfo }
- },
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_INTRODUCTION: (state, introduction) => {
- state.introduction = introduction
- },
- SET_NAME: (state, name) => {
- state.name = name
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles
- },
- SET_OPEN_ROUTE: (state, openRoute) => {
- console.log(state, openRoute)
- state.openRoute = openRoute
- },
- SET_COMPANY: (state, companyId) => {
- state.companyId = companyId
- },
- // SET_TRAIN: (state, isTrainDialog) => {
- // state.isTrainDialog = isTrainDialog
- // },
- SET_TABNAME: (state, tabActiveName) => {
- state.tabActiveName = tabActiveName
- },
- SET_SCHEDULE_STATE: (state, params) => {
- state.scheduleState = params
- },
- SET_USER_INFO: (state, params) => {
- state.userInfo = params
- },
- SET_USERSETTING: (state, params) => {
- state.userSetting = params
- },
- SET_ADMINID: (state, adminId) => {
- state.adminId = adminId
- Cookies.set('adminId', adminId)
- }
- }
- const actions = {
- async login({ commit, dispatch }, userInfo) {
- const { username, password, domainName, companyName,status } = userInfo
- localStorage.setItem('ws-pf_pass',password)
- const data = await login({
- username: username.trim(),
- password: password,
- domainName: domainName,
- companyName: companyName
- }).toPromise()
-
- const { compId,
- tenantId,
- vesselId,
- vesselBankFlag,
- clientFag,
- userId
- } = data
- // {TYPE='' MESSAGE} [第一次,失效].indexOf(type){type,msg,到期时间}
- // EventBus.$emit('success', '登录成功')
- localStorage.setItem('ws-pf_compId', compId)
- localStorage.setItem('ws-pf_userId', userId)
- localStorage.setItem('ws-pf_tenantId', tenantId)
- localStorage.setItem('ws-pf_vesselId', vesselId) // 仅适用于一条船
- localStorage.setItem('ws-pf_vesselBankFlag', vesselBankFlag) // 当前登录人是船端还是岸端的人员
- localStorage.setItem('ws-pf_clientFag', clientFag)
- notification.setSessionId(userId) // 设置通知唯一标识
- notification.start() // 开始监听通知
- // 查询当前租户服务类型
- await isLandBased().toPromise().then(response => {
- localStorage.setItem('ws-pf_serviceTypeFlag', response)
- })
- const { organizationMonetaryKey,
- compName,
- compDomainName,
- organizationMonetaryValue
- } = await companyInfo({ compId: compId }).toPromise()
- localStorage.setItem('ws-pf_organMonetaryKey', organizationMonetaryKey)
- localStorage.setItem('ws-pf_compName', compName)
- localStorage.setItem('ws-pf_compDomainName', compDomainName)
- localStorage.setItem('ws-pf_organMonetaryValue', organizationMonetaryValue)
- dispatch('getUserInfo', { vesselBankFlag, compName })
- dispatch('toSetShow', userId)
- setToken('Admin-Token')
- return data
- },
-
- // async complogin({ commit, dispatch }, userInfo) {
-
-
- // },
- async fastLogin({ dispatch }, userInfo) {
- const { mobilePhone, veriCode } = userInfo
- const data = await fastLogin({
- mobilePhone: mobilePhone,
- veriCode: veriCode
- }).toPromise()
- const {
- compId,
- userId,
- tenantId,
- vesselId,
- vesselBankFlag
- } = data
- localStorage.setItem('ws-pf_compId', compId)
- localStorage.setItem('ws-pf_userId', userId)
- localStorage.setItem('ws-pf_tenantId', tenantId)
- localStorage.setItem('ws-pf_vesselId', vesselId) // 仅适用于一条船
- localStorage.setItem('ws-pf_vesselBankFlag', vesselBankFlag) // 当前登录人是船端还是岸端的人员
- notification.setSessionId(userId) // 设置通知唯一标识
- notification.start() // 开始监听通知
- // 查询当前租户服务类型
- isLandBased().toPromise().then(response => {
- localStorage.setItem('ws-pf_serviceTypeFlag', response)
- })
- const {
- organizationMonetaryKey,
- compName,
- organizationMonetaryValue
- } = await companyInfo({ compId: compId }).toPromise()
- localStorage.setItem('ws-pf_organMonetaryKey', organizationMonetaryKey)
- localStorage.setItem('ws-pf_compName', compName)
- localStorage.setItem(
- 'ws-pf_organMonetaryValue',
- organizationMonetaryValue
- )
- dispatch('getUserInfo', { vesselBankFlag, compName })
- dispatch('toSetShow', userId)
- setToken('Admin-Token')
- return data
- },
- // get user info
- getRoule({ commit, state }) {
- return new Promise(async (resolve, reject) => {
- try {
- const data = await getRoule(state.roles)
- data.forEach(route => { asyncRoutes.push(route) })
- commit('SET_ROUTES', asyncRoutes)
- resolve(asyncRoutes)
- } catch (error) {
- reject(error)
- }
- })
- },
- // user logout
- logout({ commit, state }) {
- return new Promise((resolve, reject) => {
- logout(state.token).toPromise()
- .then(() => {
- commit('SET_TOKEN', '')
- commit('SET_COMPANY', '')
- // commit('SET_TRAIN', '')
- commit('SET_ROLES', [])
- commit('SET_OPEN_ROUTE', [])
- commit('SET_GUIDE_INFO', [])
- commit('permission/SET_ROUTES', [], { root: true }) // 清空路由,因为有权限管理
- localStorage.removeItem('wf-pf_admin-token')
- clearStorage()
- resetRouter()
- notification.end() // 取消监听通知
- resolve()
- })
- .catch(error => {
- reject(error)
- })
- })
- },
- // remove token
- resetToken({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- clearStorage()
- resolve()
- })
- },
- async getBaseInfo({ commit }, params) {
- if (process.env.VUE_APP_PACKAGE_ENV === 'ship') {
- findVesselSysVersion().toPromise().then(res => {
- let loginAddress = 'http://' + res.localHostAddress + ':81/'
- commit('SET_BASE_INFO', {
- fileUrl: loginAddress
- })
- })
- } else {
- }
- },
- setScheduleState({ commit }, params) {
- commit('SET_SCHEDULE_STATE', params)
- },
- async getTrainInfo({ commit }, params) {
- let guideData = await getNoviceGuideData().toPromise()
- commit('SET_GUIDE_INFO', guideData.data)
- },
- async getNewLogin({ commit }, params) {
- // let res = await getAccountLoginHistoryCount().toPromise()
- // commit('SET_TRAIN', res * 1 <= 0 ? 'new' : 'old')
- },
- async getUserInfo({ commit, dispatch }, { vesselBankFlag = 'B', compName = '' }) {
- const response = await getCurrentUserInfo().toPromise()
- const {
- staffName, deptId, deptName, deptNameEn, vessels = [],
- majorRole: { roleName = '', roleId = '', dutyId = '' },
- roles
- } = response
- const content = {
- ...response,
- showRoleName: roleName || roles[0].roleName,
- showRoleId: roleId || roles[0].roleId,
- showCompName: vesselBankFlag === 'V' ? vessels[0].vesselName : compName,
- avatar: 'img/user.png'
- }
- setStore({
- name: 'userInfo', content: content, type: 'session'
- })
- dispatch('common/setLocalVessels', vessels, { root: true })
- commit('SET_USER_INFO', content)
- localStorage.setItem('ws-pf_dutyId', dutyId || response.roles[0].dutyId)
- localStorage.setItem('ws-pf_roleName', roleName || roles[0].roleName)
- localStorage.setItem('ws-pf_staffName', staffName)
- localStorage.setItem('ws-pf_deptId', deptId)
- localStorage.setItem('ws-pf_deptName', deptName)
- localStorage.setItem('ws-pf_deptNameEn', deptNameEn)
- localStorage.setItem('ws-pf_vessels', JSON.stringify(vessels))
- localStorage.setItem('ws-pf_roleId', roleId || roles[0].roleId)
- },
- async toSetShow({ commit, dispatch }, { userId = '' }) {
- const data = await getStaffHomeShowList({
- staffId: userId
- }).toPromise()
- const showObject = groupBy(data, 'typeId')
- setStore({
- name: 'userSetting', content: showObject, type: 'session'
- })
- commit('SET_USERSETTING', showObject)
- },
- async changeVesslBank({ commit, dispatch, state }, showVal) {
- await updateShowInfo(showVal).toPromise()
- dispatch('toSetShow', { userId: localStorage.getItem('ws-pf_userId') })
- },
- setAdminId({ commit }, adminId) {
- commit('SET_ADMINID', adminId)
- },
- }
- export default {
- namespaced: true,
- state,
- mutations,
- actions,
- getters
- }
|