|
@@ -39,16 +39,16 @@
|
|
<v-tab :value="2">{{ $t('login.passwordLogin') }}</v-tab>
|
|
<v-tab :value="2">{{ $t('login.passwordLogin') }}</v-tab>
|
|
</v-tabs>
|
|
</v-tabs>
|
|
<div v-if="loginType" class="mt-9">
|
|
<div v-if="loginType" class="mt-9">
|
|
- <companySelect v-model="enterpriseId"></companySelect>
|
|
|
|
|
|
+ <companySelect ref="companySelectRef" v-model="enterpriseId"></companySelect>
|
|
</div>
|
|
</div>
|
|
<v-window v-model="tab" :class="{'mt-9': !loginType}">
|
|
<v-window v-model="tab" :class="{'mt-9': !loginType}">
|
|
<!-- 验证码登录 -->
|
|
<!-- 验证码登录 -->
|
|
<v-window-item :value="1">
|
|
<v-window-item :value="1">
|
|
- <phoneFrom ref="phoneRef" @handleEnter="handleLogin"></phoneFrom>
|
|
|
|
|
|
+ <phoneFrom ref="phoneRef" :phoneDisabled="Boolean(loginType)" @handleEnter="handleLogin"></phoneFrom>
|
|
</v-window-item>
|
|
</v-window-item>
|
|
<!-- 账号密码登录 -->
|
|
<!-- 账号密码登录 -->
|
|
<v-window-item :value="2">
|
|
<v-window-item :value="2">
|
|
- <passwordFrom ref="passRef" @handleEnter="handleLogin"></passwordFrom>
|
|
|
|
|
|
+ <passwordFrom ref="passRef" :phoneDisabled="Boolean(loginType)" @handleEnter="handleLogin"></passwordFrom>
|
|
</v-window-item>
|
|
</v-window-item>
|
|
</v-window>
|
|
</v-window>
|
|
</div>
|
|
</div>
|
|
@@ -79,6 +79,7 @@
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
import { ref } from 'vue'
|
|
import { ref } from 'vue'
|
|
|
|
+import { getUserBindEnterpriseListByPhone } from '@/api/personal/user'
|
|
import passwordFrom from './components/passwordPage.vue'
|
|
import passwordFrom from './components/passwordPage.vue'
|
|
import phoneFrom from '@/components/VerificationCode'
|
|
import phoneFrom from '@/components/VerificationCode'
|
|
import qrCode from './components/qrCode.vue'
|
|
import qrCode from './components/qrCode.vue'
|
|
@@ -110,6 +111,16 @@ const phoneRef = ref()
|
|
const passRef = ref()
|
|
const passRef = ref()
|
|
const loginLoading = ref(false)
|
|
const loginLoading = ref(false)
|
|
const userStore = useUserStore()
|
|
const userStore = useUserStore()
|
|
|
|
+
|
|
|
|
+const companySelectRef = ref()
|
|
|
|
+const beforeHandleLogin = async (params) => {
|
|
|
|
+ const data = await getUserBindEnterpriseListByPhone({ phone: params.phone}) // 申请通过才会数据,否则空数组
|
|
|
|
+ if (companySelectRef.value.item?.items) companySelectRef.value.item.items = data
|
|
|
|
+ localStorage.setItem('companyInfo', JSON.stringify(data))
|
|
|
|
+ const bool = Boolean(data?.length)
|
|
|
|
+ if (!bool) Snackbar.warning(t('login.loginFailed'))
|
|
|
|
+ return bool
|
|
|
|
+}
|
|
const handleLogin = async () => {
|
|
const handleLogin = async () => {
|
|
const { valid } = tab.value ? await phoneRef.value.phoneForm.validate() : await passRef.value.passwordForm.validate()
|
|
const { valid } = tab.value ? await phoneRef.value.phoneForm.validate() : await passRef.value.passwordForm.validate()
|
|
if (!valid) return
|
|
if (!valid) return
|
|
@@ -120,7 +131,10 @@ const handleLogin = async () => {
|
|
if (tab.value === 1) { params = { ...phoneRef.value.loginData }; api = 'handleSmsLogin'}
|
|
if (tab.value === 1) { params = { ...phoneRef.value.loginData }; api = 'handleSmsLogin'}
|
|
else { params = { ...passRef.value.loginData }; api = 'handlePasswordLogin'}
|
|
else { params = { ...passRef.value.loginData }; api = 'handlePasswordLogin'}
|
|
// 企业登录
|
|
// 企业登录
|
|
- if (type === 330) params.loginType = type; params.enterpriseId = enterpriseId.value
|
|
|
|
|
|
+ if (type === 330) {
|
|
|
|
+ const bool = await beforeHandleLogin(params); if (!bool) return
|
|
|
|
+ params.loginType = type; params.enterpriseId = enterpriseId.value
|
|
|
|
+ }
|
|
// await userStore.handlePasswordLogin({ ...passRef.value.loginData, type }) //tab.value === 1
|
|
// await userStore.handlePasswordLogin({ ...passRef.value.loginData, type }) //tab.value === 1
|
|
// await userStore.handleSmsLogin({ ...phoneRef.value.loginData, type })
|
|
// await userStore.handleSmsLogin({ ...phoneRef.value.loginData, type })
|
|
await userStore[api](params)
|
|
await userStore[api](params)
|