gjy 3 lat temu
rodzic
commit
5d8bf79a10

+ 2 - 1
src/api/common/index.js

@@ -59,7 +59,8 @@ export const API_GET_PROGRESS_PERCENTAGE = '/tbInitializationData/query/getProgr
 export const API_GET_IS_SHOW_DIALOG = '/tbInitializationData/query/getVesselList'
 
 
-
+// 通过手机号获取公司
+export const API_GET_COMP = '/commonUser/getCompList'
 /*
  * @Author: Myz
  * @Date: 2020-10-19 15:10:28

+ 40 - 2
src/layout/index/top/index.vue

@@ -50,7 +50,15 @@
         </el-dialog>
       </div>
       <div class="compName-row">
-        <span class="compName">{{compName}}</span>
+        <!-- <span class="compName">{{compName}}</span> -->
+        <el-select @change='compNameChange' v-model="compName" placeholder="请选择">
+        <el-option
+          v-for="item in compNameoptions"
+          :key="item"
+          :label="item"
+          :value="item">
+        </el-option>
+      </el-select>
       </div>
       <div v-if="getDay" class="right-menu-item hover-effect dayClass">
         {{ $t('common.trialDays') }}
@@ -165,8 +173,10 @@
 </template>
 <script>
   import {
-    changePasswordByPwd
+    changePasswordByPwd,
+    getcomp
   } from '@/model/indexRx'
+  import Cookies from 'js-cookie'
   import {
     mapActions,
     mapGetters,
@@ -243,6 +253,7 @@
         toPageData: {},
         userINfo: {},
         barCode: '',
+        compNameoptions:[],
         isOpenCodeGun: false,
         smAlert: false,
         showList: [
@@ -288,6 +299,7 @@
           newPassword: '', // 新密码
           password: '', // 二次输入密码
         },
+        loginForm:{},
         // roleName: '',
         // phone: '',
         // roleId: '',
@@ -298,6 +310,7 @@
         compName: localStorage.getItem('ws-pf_compName'),
         companyId: localStorage.getItem('ws-pf_compId'),
         cangid:'',
+        UserInfo:JSON.parse(localStorage.getItem('ws_login_getTenantInfoByUser')),
         tmp:{},
       }
     },
@@ -309,9 +322,20 @@
         userCompany: localStorage.getItem('ws-pf_compId'),
         userName: localStorage.getItem('ws-pf_staffName'),
       }
+      
     },
     mounted() {
       listenfullscreen(this.setScreen)
+      getcomp({userMobilePhone:this.UserInfo.loginInfo.userMobilePhone}).toPromise().then((res)=>{
+        this.compNameoptions=res
+      })
+      // this.complogin({username: Cookies.get('ws_login_account'),
+      // password: Cookies.get('ws_login_pwd'),
+      // companyName: this.compName})
+      // var res=this.complogin({username: Cookies.get('ws_login_account'),
+      // password: 111111,
+      // companyName: this.compName})
+      // console.log(res)
     },
     computed: {
       ...mapState({
@@ -349,6 +373,7 @@
     },
     methods: {
       ...mapActions('common', ['setLocalVessels']),
+      ...mapActions('user', ['complogin', 'fastLogin']),
       payCode() {
         console.log("input", this.barCode)
         this.btnStatus = {
@@ -384,6 +409,19 @@
         this.getLook(this.cangid, this.userINfo.userName)
         
       },
+      compNameChange(){
+        this.complogin({username:this.UserInfo.loginInfo.userMobilePhone,
+      password: localStorage.getItem('ws-pf_pass'),
+      companyName: this.compName})
+      console.log(localStorage.getItem('status'))
+      if(localStorage.getItem('status')==1){
+        this.compName=localStorage.getItem('ws-pf_compName')
+      }
+          // } else {
+          //   this.$message.error("您输入的用户名或密码错误!")
+          //   return false
+          // }
+      },
       cancel(){
          this.barCode = ''
         this.smAlert = false

+ 4 - 2
src/model/indexRx.js

@@ -107,7 +107,8 @@ import {
   API_GET_NOTIFICATIONSTAFFTODOTASK_QUERYPAGE,
   API_GET_NOTIFICATIONSTAFFTODOTASK_COUNTAMOUNT,
   API_POST_NOTIFICATIONSTAFFTODOTASK_CONFIRM,
-  API_POST_NOTIFICATIONSTAFFTODOTASK_CHANGESHOWTIME
+  API_POST_NOTIFICATIONSTAFFTODOTASK_CHANGESHOWTIME,
+  API_GET_COMP
 } from '@/api/common'
 
 import {
@@ -128,11 +129,12 @@ import { appRx } from './defalutConfig/indexRx'
 
 // TODO: 需要后台对接相应的错误信息前端不作处理
 export const login = appRx.post(API_POST_LOGINENHANCED, errorCatcher, errorHandle, filter) // , errorCatcher, errorHandle, filter
+export const complogin = appRx.post(API_POST_LOGINENHANCED) // , errorCatcher, errorHandle, filter
 export const fastLogin = appRx.post(API_POST_LOGINQUICKLY, errorCatcher, errorHandle, filter)
 export const getInfo = appRx.get(API_GET_USERINFO, errorCatcher, errorHandle, filter)
 export const getRoule = appRx.get(API_GET_LOGOUT, errorCatcher, errorHandle, filter)
 export const logout = appRx.post(API_POST_LOGINOUT)
-
+export const getcomp = appRx.get(API_GET_COMP, errorCatcher, errorHandle, filter)
 export const retrievePassword = appRx.post(API_POST_RETRIEVEPASSWORD)
 export const getCompanyInfo = appRx.get(API_GET_COMPANYINFOBYDOMAINNAME)
 export const companyInfo = appRx.get(API_GET_COMPANYINFO, errorCatcher, errorHandle, filter)

+ 108 - 4
src/store/modules/user.js

@@ -1,9 +1,13 @@
-import { fastLogin, logout, login, getRoule, getCurrentUserInfo, companyInfo, isLandBased, getAccountLoginHistoryCount, updateShowInfo }
+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,
@@ -84,14 +88,15 @@ const mutations = {
 
 const actions = {
   async login({ commit, dispatch }, userInfo) {
-    const { username, password, domainName, companyName } = userInfo
-    const data = await login({
+    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,
@@ -128,6 +133,105 @@ const actions = {
     setToken('Admin-Token')
     return data
   },
+  
+  async complogin({ commit, dispatch }, userInfo) {
+    var status=0
+    const { username, password, domainName, companyName } = userInfo
+      complogin({
+        username: username.trim(),
+        password: password,
+        domainName: domainName,
+        companyName: companyName
+      }).toPromise().then((res)=>{
+        console.log(res)
+        if(res.data.code=='AUTH_001'){
+          Message({showClose: true,
+            message: '公司不可切换',
+            type: 'error'
+          });
+          localStorage.setItem('status', 1)
+        }else{
+          const { compId,
+            tenantId,
+            vesselId,
+            vesselBankFlag,
+            clientFag,
+            userId
+          } = res.data.data
+          // {TYPE='' MESSAGE} [第一次,失效].indexOf(type){type,msg,到期时间}
+          // EventBus.$emit('success', '登录成功')
+          localStorage.setItem('ws-pf_compId', compId)
+          localStorage.setItem('status', 2)
+          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() // 开始监听通知
+          // 查询当前租户服务类型
+          isLandBased().toPromise().then(response => {
+            localStorage.setItem('ws-pf_serviceTypeFlag', response)
+          })
+        companyInfo({ compId: compId }).toPromise().then((res1)=>{
+            localStorage.setItem('ws-pf_organMonetaryKey', res1.organizationMonetaryKey)
+            localStorage.setItem('ws-pf_compName', res1.compName)
+            localStorage.setItem('ws-pf_compDomainName', res1.compDomainName)
+            localStorage.setItem('ws-pf_organMonetaryValue', res1.organizationMonetaryValue)
+            dispatch('getUserInfo', { vesselBankFlag, compName:res1.compName })
+          })
+          
+          
+          dispatch('toSetShow', userId)
+          setToken('Admin-Token')
+          localStorage.setItem('ws_login_type', 2)
+            Cookies.set('ws_login_companyShortName', companyName, {
+              expires: 365,
+            })
+            Cookies.set('ws_login_account', username, {
+              expires: 365,
+            })
+            console.log(username, password, domainName, companyName)
+            var rememberMe = Cookies.get('ws_login_rememberMe') === '1'
+            if (rememberMe) {
+              Cookies.set('ws_login_pwd', password, {
+                expires: 365,
+              })
+              Cookies.set('ws_login_rememberMe', 1, {
+                expires: 365
+              })
+            } else {
+              Cookies.remove('ws_login_companyShortName')
+              Cookies.remove('ws_login_account')
+              Cookies.remove('ws_login_pwd')
+              Cookies.set('ws_login_rememberMe', 0, {
+                expires: 365
+              })
+            }
+              let newList = {
+                companyName: companyName,
+                username: username,
+                password: password,
+              }
+              getTenantInfoByUser(newList).toPromise().then((res2)=>{
+                console.log(res2)
+                localStorage.setItem(
+                'ws_login_getTenantInfoByUser',
+                JSON.stringify({
+                  ...res2,
+                  loginInfo: res.data.data
+                }))
+              })
+           
+            localStorage.setItem(
+              'ws_login_accountId',
+              JSON.stringify(res.data.data.accountId)
+            )
+        }
+        status=2
+      })
+      
+  },
   async fastLogin({ dispatch }, userInfo) {
     const { mobilePhone, veriCode } = userInfo
     const data = await fastLogin({