|
@@ -67,6 +67,13 @@
|
|
|
</div>
|
|
|
<navBar :showLoginBtn="false" class="navBar"></navBar>
|
|
|
</div>
|
|
|
+ <Verify
|
|
|
+ ref="verify"
|
|
|
+ captchaType="blockPuzzle"
|
|
|
+ :imgSize="{ width: '400px', height: '200px' }"
|
|
|
+ mode="pop"
|
|
|
+ @success="verifySuccess"
|
|
|
+ />
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
@@ -86,6 +93,7 @@ import Confirm from '@/plugins/confirm'
|
|
|
import navBar from '@/layout/personal/navBar.vue'
|
|
|
import about from '@/views/about/index.vue'
|
|
|
import { useRoute } from 'vue-router'; const route = useRoute()
|
|
|
+import Verify from '@/components/Verifition'
|
|
|
|
|
|
const { t } = useI18n()
|
|
|
const router = useRouter()
|
|
@@ -119,11 +127,16 @@ const handleCheckEnterprise = async () => {
|
|
|
const handleLogin = async () => {
|
|
|
const { valid } = tab.value === 1 ? await phoneRef.value.phoneForm.validate() : await passRef.value.passwordForm.validate()
|
|
|
if (!valid) return
|
|
|
+ if (tab.value === 2 && !captchaVerification) {
|
|
|
+ getCode() // 验证码组件
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
loginLoading.value = true
|
|
|
try {
|
|
|
let params, api = {}
|
|
|
if (tab.value === 1) { params = { ...phoneRef.value.loginData }; api = 'handleSmsLogin'}
|
|
|
- else { params = { ...passRef.value.loginData }; api = 'handlePasswordLogin'}
|
|
|
+ else { params = { ...passRef.value.loginData, captchaVerification }; api = 'handlePasswordLogin'}
|
|
|
|
|
|
// 邮箱为企业招聘, 手机号为个人求职
|
|
|
if (isEnterpriseLogin.value) {
|
|
@@ -185,6 +198,20 @@ const carouselList = ref([
|
|
|
{ src: 'https://minio.citupro.com/dev/menduner/preferredGroup/Hong-Kong-Polytechnic-University-banner.jpg' }
|
|
|
])
|
|
|
|
|
|
+// 验证码
|
|
|
+const verify = ref()
|
|
|
+// 获取验证码
|
|
|
+const getCode = async () => {
|
|
|
+ // 弹出验证码 // 已开启:则展示验证码;只有完成验证码的情况,才进行登录
|
|
|
+ verify.value.show()
|
|
|
+}
|
|
|
+
|
|
|
+let captchaVerification = ''
|
|
|
+const verifySuccess = (params) => {
|
|
|
+ captchaVerification = params.captchaVerification
|
|
|
+ handleLogin()
|
|
|
+}
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|