<template>
|
<PageLayoutWithBg title="面试登记" class="interview-page">
|
<ContentScrollView>
|
<MainCell title="面试登记">
|
<template #icon>
|
<img :src="IconMain" class="icon-main" />
|
</template>
|
<ProForm :model="form" ref="formRef" label-width="auto">
|
<ProFormItemV2 label="姓名:" prop="name" :check-rules="[{ message: '请输入您的姓名' }]">
|
<ProFormText placeholder="请输入您的姓名" v-model.trim="form.name"></ProFormText>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="手机号:"
|
prop="phoneNumber"
|
:check-rules="[{ message: '请输入您的手机号', type: 'phone' }]"
|
>
|
<ProFormText
|
placeholder="请输入您的手机号"
|
v-model.trim="form.phoneNumber"
|
></ProFormText>
|
</ProFormItemV2>
|
<ProFormItemV2 class="pro-form-item-label-hidden pro-form-item-center" prop="isAgree">
|
<el-checkbox v-model="form.isAgree">
|
<span class="text">我已阅读并同意 </span>
|
<span class="primary-text" @click.stop.prevent="goFaq"
|
>《818平台数字证书使用协议》</span
|
>
|
</el-checkbox>
|
</ProFormItemV2>
|
<PageFooterBtn @click="handleConfirm" style="width: 100%" :hasMargin="false"
|
>提交</PageFooterBtn
|
>
|
</ProForm>
|
</MainCell>
|
</ContentScrollView>
|
<!-- <PageFooter>
|
<PageFooterBtn @click="handleConfirm">下一步</PageFooterBtn>
|
</PageFooter> -->
|
</PageLayoutWithBg>
|
</template>
|
|
<script setup lang="ts">
|
import { FormInstance } from 'element-plus';
|
import {
|
ProDialog,
|
ProForm,
|
ProFormItemV2,
|
ProFormText,
|
UploadUserFile,
|
} from '@bole-core/components';
|
import { DigitalProtocolTempPath, SignAction, GigWorkerConstant } from '@/constants';
|
import { Message } from '@bole-core/core';
|
import * as lgGigWorkerServices from '@/services/api/LgGigWorker';
|
import { getPreviewOfficeUrl } from '@/utils';
|
import IconMain from '@/assets/interview/icon-main.png';
|
|
defineOptions({
|
name: 'Interview',
|
});
|
|
const route = useRoute();
|
console.log('route: ', route);
|
const customerId = (route.query.customerId as string) ?? '';
|
const templateId = (route.query.templateId as string) ?? '';
|
const companyId = (route.query.companyId as string) ?? '';
|
const action = Number(route.query.action as string);
|
const messageBussinessCode = route.params.bussinessCode as string;
|
const tempBussinessCode = route.query.bussinessCode as string;
|
const bussinessCode = messageBussinessCode || tempBussinessCode;
|
|
// const isFromShotMessage = !!bussinessCode;
|
console.log('bussinessCode: ', bussinessCode);
|
|
const state = reactive({
|
loading: false,
|
});
|
|
const form = reactive({
|
name: '',
|
phoneNumber: '',
|
isAgree: false,
|
});
|
|
const formRef = ref<FormInstance>();
|
|
async function handleConfirm() {
|
if (!formRef.value) return;
|
if (!form.isAgree) {
|
Message.errorMessage('请勾选数字证书使用协议');
|
return;
|
}
|
await formRef.value?.validate?.();
|
|
checkUserRealVerifyStatus();
|
}
|
|
const router = useRouter();
|
|
async function lgGigWorkerRegister() {
|
try {
|
let params: API.LgGigWorkerRegisterInput = {
|
name: form.name,
|
phone: form.phoneNumber,
|
companyId: companyId,
|
customerId: customerId,
|
contractTemplateId: templateId,
|
bussinessCode: bussinessCode,
|
};
|
state.loading = true;
|
let res = await lgGigWorkerServices.lgGigWorkerRegister(params);
|
if (res) {
|
// Message.successMessage('登记成功,请注意查收签约短信');
|
router.push({
|
name: 'OnlineSign',
|
query: {
|
customerId: customerId,
|
templateId: templateId,
|
companyId: companyId,
|
action: action,
|
name: form.name,
|
phoneNumber: form.phoneNumber,
|
bussinessCode: bussinessCode,
|
},
|
});
|
}
|
} catch (error) {
|
} finally {
|
state.loading = false;
|
}
|
}
|
|
async function checkUserRealVerifyStatus() {
|
try {
|
let res = await lgGigWorkerServices.checkUserRealVerifyStatus({
|
phone: form.phoneNumber,
|
companyId: companyId,
|
bussinessCode: bussinessCode,
|
});
|
if (res === GigWorkerConstant.FAILURE) {
|
// if (isFromShotMessage) {
|
// Message.errorMessage('该手机号未进行登记录入,请确认号码是否正确');
|
// } else {
|
lgGigWorkerRegister();
|
// }
|
} else if (res === GigWorkerConstant.SUCCESS) {
|
getLgGigWorkerPriviewUrl();
|
} else if (res === GigWorkerConstant.NoVerify) {
|
router.push({
|
name: 'OnlineSign',
|
query: {
|
customerId: customerId,
|
templateId: templateId,
|
companyId: companyId,
|
action: action,
|
name: form.name,
|
phoneNumber: form.phoneNumber,
|
bussinessCode: bussinessCode,
|
},
|
});
|
} else {
|
router.push({
|
name: 'OnlineSignResult',
|
query: {
|
customerId: customerId,
|
templateId: templateId,
|
companyId: companyId,
|
action: action,
|
phoneNumber: form.phoneNumber,
|
bussinessCode: bussinessCode,
|
},
|
});
|
}
|
} catch (error) {}
|
}
|
|
async function getLgGigWorkerPriviewUrl() {
|
try {
|
let res = await lgGigWorkerServices.getLgGigWorkerPriviewUrl({
|
phone: form.phoneNumber,
|
companyId: companyId,
|
bussinessCode: bussinessCode,
|
});
|
if (res) {
|
router.push({
|
name: 'ContractPreview',
|
query: {
|
url: res.data,
|
lgGigSignId: res.data2,
|
},
|
});
|
}
|
} catch (error) {}
|
}
|
|
function goFaq() {
|
// bolePreview({
|
// fileUrl: DigitalProtocolTempPath,
|
// });
|
location.href = getPreviewOfficeUrl(DigitalProtocolTempPath);
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@use '@/style/common.scss' as *;
|
|
.text {
|
color: getCssVar('text-color', 'regular') !important;
|
}
|
|
.primary-text {
|
color: boleGetCssVar('color', 'primary') !important;
|
}
|
|
.pro-form-item-center {
|
:deep(.el-form-item__content) {
|
justify-content: center;
|
}
|
}
|
|
.interview-page {
|
.icon-main {
|
margin-bottom: 24px;
|
width: 201px;
|
height: 180px;
|
}
|
}
|
</style>
|