|
@@ -79,6 +79,8 @@ const loginLoading = ref(false)
|
|
const loading = ref(false)
|
|
const loading = ref(false)
|
|
const showPreview = ref(false)
|
|
const showPreview = ref(false)
|
|
const current = ref(0)
|
|
const current = ref(0)
|
|
|
|
+const business = ref({})
|
|
|
|
+let licenseUrl = ref('')
|
|
const email = localStorage.getItem('loginAccount') || ''
|
|
const email = localStorage.getItem('loginAccount') || ''
|
|
|
|
|
|
// 组件挂载后添加事件监听器
|
|
// 组件挂载后添加事件监听器
|
|
@@ -88,19 +90,9 @@ onMounted(() => {
|
|
isMobile.value = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(userAgent)
|
|
isMobile.value = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(userAgent)
|
|
})
|
|
})
|
|
|
|
|
|
-
|
|
|
|
import { useRoute } from 'vue-router'; const route = useRoute()
|
|
import { useRoute } from 'vue-router'; const route = useRoute()
|
|
const pageType = route?.query?.type || '' // type: noLoginToRegister:->登录页注册企业
|
|
const pageType = route?.query?.type || '' // type: noLoginToRegister:->登录页注册企业
|
|
|
|
|
|
-// 是否筹建中
|
|
|
|
-const isPrepareChange = () => {
|
|
|
|
- const code = formItems.value.options.find(e => e.key === 'code')
|
|
|
|
- if (code) {
|
|
|
|
- code.label = prepareValue.value ? '企业统一社会信用代码' : '企业统一社会信用代码 *'
|
|
|
|
- code.rules = prepareValue.value ? [] : [v => !!v || '请输入企业统一社会信用代码']
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
const handleSecondConfirm = () => {
|
|
const handleSecondConfirm = () => {
|
|
const obj = formItems.value.options.find(e => e.key === 'passwordConfirm')
|
|
const obj = formItems.value.options.find(e => e.key === 'passwordConfirm')
|
|
obj.type = obj.type === 'password' ? 'text' : 'password'
|
|
obj.type = obj.type === 'password' ? 'text' : 'password'
|
|
@@ -113,6 +105,29 @@ const handlePassword = () => {
|
|
obj.appendInnerIcon = obj.type === 'password' ? 'mdi-eye-off-outline' : 'mdi-eye-outline'
|
|
obj.appendInnerIcon = obj.type === 'password' ? 'mdi-eye-off-outline' : 'mdi-eye-outline'
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 注册信息保存
|
|
|
|
+const enterpriseRegisterInfo = ref(localStorage.getItem('enterpriseRegisterInfo') ? JSON.parse(localStorage.getItem('enterpriseRegisterInfo')) : {})
|
|
|
|
+const saveRegisterInfo = () => {
|
|
|
|
+ const obj = {
|
|
|
|
+ licenseUrl: licenseUrl.value,
|
|
|
|
+ ocr: business.value
|
|
|
|
+ }
|
|
|
|
+ formItems.value.options.forEach(e => {
|
|
|
|
+ if (e.key) obj[e.key] = e.value
|
|
|
|
+ })
|
|
|
|
+ localStorage.setItem('enterpriseRegisterInfo', JSON.stringify(obj))
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 是否筹建中
|
|
|
|
+const isPrepareChange = () => {
|
|
|
|
+ const code = formItems.value.options.find(e => e.key === 'code')
|
|
|
|
+ if (code) {
|
|
|
|
+ code.label = prepareValue.value ? '企业统一社会信用代码' : '企业统一社会信用代码 *'
|
|
|
|
+ code.rules = prepareValue.value ? [] : [v => !!v || '请输入企业统一社会信用代码']
|
|
|
|
+ }
|
|
|
|
+ saveRegisterInfo()
|
|
|
|
+}
|
|
|
|
+
|
|
const formItems = ref({
|
|
const formItems = ref({
|
|
options: [
|
|
options: [
|
|
{
|
|
{
|
|
@@ -136,7 +151,8 @@ const formItems = ref({
|
|
value: '',
|
|
value: '',
|
|
label: '企业名称(需要与营业执照完全一致)*',
|
|
label: '企业名称(需要与营业执照完全一致)*',
|
|
counter: 50,
|
|
counter: 50,
|
|
- rules: [v => !!v || '请输入企业名称']
|
|
|
|
|
|
+ rules: [v => !!v || '请输入企业名称'],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'text',
|
|
type: 'text',
|
|
@@ -144,21 +160,24 @@ const formItems = ref({
|
|
value: '',
|
|
value: '',
|
|
counter: 18,
|
|
counter: 18,
|
|
label: '企业统一社会信用代码 *',
|
|
label: '企业统一社会信用代码 *',
|
|
- rules: [v => !!v || '请输入企业统一社会信用代码']
|
|
|
|
|
|
+ rules: [v => !!v || '请输入企业统一社会信用代码'],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'text',
|
|
type: 'text',
|
|
key: 'contactName',
|
|
key: 'contactName',
|
|
value: '',
|
|
value: '',
|
|
label: '联系人姓名 *',
|
|
label: '联系人姓名 *',
|
|
- rules: [v => !!v || '请输入联系人姓名']
|
|
|
|
|
|
+ rules: [v => !!v || '请输入联系人姓名'],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'phoneNumber',
|
|
type: 'phoneNumber',
|
|
key: 'phone',
|
|
key: 'phone',
|
|
value: '',
|
|
value: '',
|
|
label: '联系电话 *',
|
|
label: '联系电话 *',
|
|
- rules: [v => !!v || '请输入联系电话']
|
|
|
|
|
|
+ rules: [v => !!v || '请输入联系电话'],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'text',
|
|
type: 'text',
|
|
@@ -174,7 +193,8 @@ const formItems = ref({
|
|
if (checkEmail(value)) return true
|
|
if (checkEmail(value)) return true
|
|
return '请输入正确的企业邮箱'
|
|
return '请输入正确的企业邮箱'
|
|
}
|
|
}
|
|
- ]
|
|
|
|
|
|
+ ],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'password',
|
|
type: 'password',
|
|
@@ -193,7 +213,8 @@ const formItems = ref({
|
|
if (/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$/.test(value)) return true
|
|
if (/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$/.test(value)) return true
|
|
return '请输入8-16位数由数字、大小写字母组成的密码'
|
|
return '请输入8-16位数由数字、大小写字母组成的密码'
|
|
}
|
|
}
|
|
- ]
|
|
|
|
|
|
+ ],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'password',
|
|
type: 'password',
|
|
@@ -212,7 +233,8 @@ const formItems = ref({
|
|
if (value === formItems.value.options.find(e => e.key === 'password').value) return true
|
|
if (value === formItems.value.options.find(e => e.key === 'password').value) return true
|
|
return '两次输入密码不一致'
|
|
return '两次输入密码不一致'
|
|
}
|
|
}
|
|
- ]
|
|
|
|
|
|
+ ],
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'textarea',
|
|
type: 'textarea',
|
|
@@ -223,6 +245,7 @@ const formItems = ref({
|
|
counter: 500,
|
|
counter: 500,
|
|
rows: 2,
|
|
rows: 2,
|
|
label: '备注/说明',
|
|
label: '备注/说明',
|
|
|
|
+ blur: saveRegisterInfo
|
|
},
|
|
},
|
|
]
|
|
]
|
|
})
|
|
})
|
|
@@ -233,7 +256,6 @@ const prepareValue = computed(() => {
|
|
})
|
|
})
|
|
|
|
|
|
// 识别营业执照图片
|
|
// 识别营业执照图片
|
|
-const business = ref({})
|
|
|
|
const getOcr = async () => {
|
|
const getOcr = async () => {
|
|
loading.value = true
|
|
loading.value = true
|
|
try {
|
|
try {
|
|
@@ -242,6 +264,7 @@ const getOcr = async () => {
|
|
formItems.value.options.find(e => e.key === 'code').value = data.code
|
|
formItems.value.options.find(e => e.key === 'code').value = data.code
|
|
formItems.value.options.find(e => e.key === 'name').value = data.name
|
|
formItems.value.options.find(e => e.key === 'name').value = data.name
|
|
business.value = data
|
|
business.value = data
|
|
|
|
+ saveRegisterInfo()
|
|
}
|
|
}
|
|
} finally {
|
|
} finally {
|
|
loading.value = false
|
|
loading.value = false
|
|
@@ -249,7 +272,6 @@ const getOcr = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
// 上传
|
|
// 上传
|
|
-let licenseUrl = ref('')
|
|
|
|
const handleUploadImg = (url) => {
|
|
const handleUploadImg = (url) => {
|
|
licenseUrl.value = url
|
|
licenseUrl.value = url
|
|
if (licenseUrl.value) getOcr()
|
|
if (licenseUrl.value) getOcr()
|
|
@@ -260,6 +282,7 @@ const handleDeleteImg = () => {
|
|
business.value = {}
|
|
business.value = {}
|
|
formItems.value.options.find(e => e.key === 'code').value = ''
|
|
formItems.value.options.find(e => e.key === 'code').value = ''
|
|
formItems.value.options.find(e => e.key === 'name').value = ''
|
|
formItems.value.options.find(e => e.key === 'name').value = ''
|
|
|
|
+ saveRegisterInfo()
|
|
}
|
|
}
|
|
|
|
|
|
// 提交 企业注册
|
|
// 提交 企业注册
|
|
@@ -273,11 +296,14 @@ const handleCommit = async () => {
|
|
businessLicenseUrl,
|
|
businessLicenseUrl,
|
|
prepare: prepareValue.value,
|
|
prepare: prepareValue.value,
|
|
}
|
|
}
|
|
- formItems.value.options.forEach(e => { params[e.key] = e.value })
|
|
|
|
|
|
+ formItems.value.options.forEach(e => {
|
|
|
|
+ if (e.key) params[e.key] = e.value
|
|
|
|
+ })
|
|
if (business.value && Object.keys(business.value).length) params.ocr = business.value
|
|
if (business.value && Object.keys(business.value).length) params.ocr = business.value
|
|
|
|
|
|
await enterpriseRegisterApply(params)
|
|
await enterpriseRegisterApply(params)
|
|
localStorage.removeItem('loginAccount')
|
|
localStorage.removeItem('loginAccount')
|
|
|
|
+ localStorage.removeItem('enterpriseRegisterInfo')
|
|
Snackbar.success(t('common.submittedSuccessfully'))
|
|
Snackbar.success(t('common.submittedSuccessfully'))
|
|
router.push({ path: '/recruit/entRegister/inReview' })
|
|
router.push({ path: '/recruit/entRegister/inReview' })
|
|
}
|
|
}
|
|
@@ -295,6 +321,17 @@ if (info && Object.keys(info).length && info.status === '2') {
|
|
else e.value = info[e.key]
|
|
else e.value = info[e.key]
|
|
})
|
|
})
|
|
isPrepareChange()
|
|
isPrepareChange()
|
|
|
|
+} else {
|
|
|
|
+ // 表单信息保存
|
|
|
|
+ if (enterpriseRegisterInfo.value && Object.keys(enterpriseRegisterInfo.value).length) {
|
|
|
|
+ licenseUrl.value = enterpriseRegisterInfo.value.licenseUrl
|
|
|
|
+ business.value = enterpriseRegisterInfo.value?.ocr
|
|
|
|
+ formItems.value.options.forEach(e => {
|
|
|
|
+ if (e.key === 'passwordConfirm') e.value = enterpriseRegisterInfo.value.password
|
|
|
|
+ else e.value = enterpriseRegisterInfo.value[e.key]
|
|
|
|
+ if (e?.change) e.change()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
</script>
|
|
</script>
|