Jelajahi Sumber

企业注册页面

Xiao_123 8 bulan lalu
induk
melakukan
855bc6b858

+ 9 - 0
src/router/modules/remaining.js

@@ -41,6 +41,15 @@ const remainingRouter = [
       title: '企业用户注册'
     }
   },
+  {
+    path: '/forgotPassword',
+    component: () => import('@/views/login/forgotPassword.vue'),
+    name: 'forgotPassword',
+    meta: {
+      hidden: true,
+      title: '找回密码'
+    }
+  },
   {
     path: '/userAgreement',
     component: Layout,

+ 7 - 0
src/views/headhunting/details.vue

@@ -4,6 +4,13 @@
 
 <script setup>
 defineOptions({ name: 'headhuntingDetails' })
+import { useRouter } from 'vue-router'
+
+const router  = useRouter()
+router.beforeEach((to, from, next) => {
+  document.title = to.meta.title
+  next()
+})
 </script>
 
 <style scoped lang="scss">

+ 37 - 0
src/views/login/forgotPassword.vue

@@ -0,0 +1,37 @@
+<template>
+  <div class="box">
+    <div class="content pa-10">
+      找回密码
+    </div>
+  </div>
+</template>
+
+<script setup>
+defineOptions({ name: 'forgotPassword'})
+// import { ref } from 'vue'
+// import { useRouter } from 'vue-router'
+// import Snackbar from '@/plugins/snackbar'
+
+// const router = useRouter()
+// const loading = ref(false)
+</script>
+
+<style scoped lang="scss">
+.box {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  background-image: url('https://www.mendunerhr.com/images/userfiles/92d7e4a755e2428b94aab3636d5047f3/images/recruitment/adImages/2018/11/1920x940.jpg');
+  background-size: cover;
+}
+.content {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  translate: -50% -50%;
+  width: 450px;
+  height: 400px;
+  background-color: #fff;
+  border-radius: 10px;
+}
+</style>

+ 1 - 1
src/views/login/index.vue

@@ -26,7 +26,7 @@
           </v-window>
         </div>
         <div class="font-size-14 tips">
-          <span class="float-left color-666 cursor-pointer" v-if="tab === 2">忘记密码</span>
+          <span class="float-left color-666 cursor-pointer" v-if="tab === 2" @click="router.push('/forgotPassword')">忘记密码</span>
           <span class="float-right color-error cursor-pointer" @click="router.push('/register/selected')">注册</span>
         </div>
         <v-btn :loading="loginLoading" color="primary" class="white--text mt-5" min-width="350" @click="handleLogin">

+ 5 - 5
src/views/recruit/personal/accountSettings/dynamic/editPassword.vue

@@ -30,32 +30,32 @@
             <v-form ref="passwordRef" style="width: 300px;">
               <v-text-field
                 v-model="query.password"
-                placeholder="请输入密码" 
+                placeholder="请输入密码" 
                 variant="outlined" 
                 density="compact"
                 color="primary"
                 prepend-inner-icon="mdi-lock-outline" 
                 :append-inner-icon="passwordType ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
                 :type="passwordType ? 'text' : 'password'"
-                :rules="[v=> !!v || '请填写密码', validPassword]"
+                :rules="[v=> !!v || '请填写密码', validPassword]"
                 @click:append-inner="passwordType = !passwordType"
               ></v-text-field>
               <v-text-field
                 v-model="query.checkPassword"
-                placeholder="请再次输入密码" 
+                placeholder="请再次输入密码" 
                 variant="outlined" 
                 density="compact"
                 color="primary"
                 prepend-inner-icon="mdi-lock-outline" 
                 :append-inner-icon="show ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
                 :type="show ? 'text' : 'password'"
-                :rules="[v=> !!v || '请再次输入密码', passwordCheck]"
+                :rules="[v=> !!v || '请再次输入密码', passwordCheck]"
                 @click:append-inner="show = !show"
               ></v-text-field>
             </v-form>
           </div>
           <div class="text-center mt-5">
-            <v-btn class="buttons" color="primary" @click="handleSubmit" :loading="loading">确认密码</v-btn>
+            <v-btn class="buttons" color="primary" @click="handleSubmit" :loading="loading">确认修改</v-btn>
           </div>
           <div class="text-end">
             <v-btn color="primary" variant="outlined" @click="handleClose">取 消</v-btn>

+ 149 - 4
src/views/register/company.vue

@@ -2,8 +2,50 @@
   <div class="box">
     <!-- 手机号注册 -->
     <PhonePage v-if="!valid" :isCompany="true" @success="handleValidate"></PhonePage>
-    <div v-else class="content">
-      register
+    <div v-else class="content pa-10">
+      <div class="resume-header mb-5">
+        <div class="resume-title">企业注册</div>
+      </div>
+      <CtForm ref="CtFormRef" :items="formItems" style="width: 100%;">
+        <template #prepare>
+          <v-checkbox
+            v-model="isPrepare"
+            label="筹建中"
+            color="primary"
+            class="ml-1"
+            style="width: 150px; max-height: 38px;"
+            @change="isPrepareChange"
+          ></v-checkbox>
+        </template>
+      </CtForm>
+      <!-- 上传照片 -->
+      <div style="color: var(--color-999);">
+        <span v-if="!isPrepare" class="mr-1" style="color: var(--v-error-base);">*</span>
+        <span>上传营业执照</span>
+        <span>支持jpg、jpeg、png格式,图片大小不得超过10M</span>
+      </div>
+      <div class="file-box">
+        <Img class="mt-3" :value="licenseUrl" tips="上传图片" @imgClick="showPreview = !showPreview" :showCursor="true" @success="val => licenseUrl = val" @delete="licenseUrl = ''"></Img>
+      </div>
+      <div class="note mt-10">
+        <h4>注意事项:</h4>
+        <span>企业名称为对外展示的企业名称,建议填写公司营业执照上的名称,请区分总公司和分公司</span>
+      </div>
+      <div class="text-center">
+        <!-- 提交 -->
+        <v-btn
+          :loading="loginLoading"
+          color="primary" class="white--text mt-8" min-width="350"
+          @click="handleCommit"
+        >
+        注册
+        </v-btn>
+      </div>
+      <div class="login-tips mt-3">
+        点击注册即代表您同意
+        <span class="color-primary" style="cursor: pointer;" @click="router.push('/userAgreement')"> [{{ $t('login.userAgreement') }}] </span>和
+        <span class="color-primary" style="cursor: pointer;" @click="router.push('/privacyPolicy')">[{{ $t('login.privacyPolicy') }}]</span>
+      </div>
     </div>
   </div>
 </template>
@@ -12,11 +54,89 @@
 defineOptions({ name: 'registerCompany'})
 import { ref } from 'vue'
 import PhonePage from './person.vue'
+import { useRouter } from 'vue-router'
+
+const router = useRouter()
+let licenseUrl = ref('')
+const showPreview = ref(false)
+const loginLoading = ref(false)
+
+// 是否筹建中
+const isPrepare = ref(false)
+const isPrepareChange = () => {
+  const code = formItems.value.options.find(e => e.key === 'code')
+  if (code) {
+    code.label = isPrepare.value ? '企业统一社会信用代码' : '企业统一社会信用代码 *'
+    code.rules = isPrepare.value ? [] : [v => !!v || '请输入企业统一社会信用代码']
+  }
+}
+
+const formItems = ref({
+  options: [
+    {
+      type: 'text',
+      key: 'name',
+      value: '',
+      label: '企业名称(需要与营业执照完全一致)*',
+      counter: 50,
+      rules: [v => !!v || '请输入企业名称']
+    },
+    {
+      slotName: 'prepare',
+      type: 'text',
+      key: 'code',
+      value: '',
+      counter: 18,
+      label: '企业统一社会信用代码 *',
+      rules: [v => !!v || '请输入企业统一社会信用代码']
+    },
+    {
+      type: 'text',
+      key: 'contactName',
+      value: '',
+      label: '联系人姓名 *',
+      rules: [v => !!v || '请输入联系人姓名']
+    },
+    {
+      type: 'phoneNumber',
+      key: 'phone',
+      value: '',
+      label: '联系电话 *',
+      rules: [v => !!v || '请输入联系电话']
+    },
+    {
+      type: 'text',
+      key: 'email',
+      value: '',
+      label: '联系邮箱 *',
+      rules: [v => !!v || '请输入联系邮箱']
+    },
+    {
+      type: 'text',
+      key: 'password',
+      value: '',
+      label: '邮箱登录密码',
+      placeholder: '若想使用邮箱登录,请设置密码'
+    },
+    {
+      type: 'textarea',
+      key: 'description',
+      value: '',
+      clearable: true,
+      resize: true,
+      counter: 500,
+      rows: 2,
+      label: '备注/说明',
+    },
+  ]
+})
 
 const valid = ref(true)
 const handleValidate = () => {
   valid.value = true
 }
+
+const handleCommit = async () => {}
 </script>
 
 <style scoped lang="scss">
@@ -26,15 +146,40 @@ const handleValidate = () => {
   height: 100%;
   background-image: url('https://www.mendunerhr.com/images/userfiles/92d7e4a755e2428b94aab3636d5047f3/images/recruitment/adImages/2018/11/1920x940.jpg');
   background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center center;
 }
 .content {
   position: absolute;
   top: 50%;
   left: 50%;
   translate: -50% -50%;
-  width: 450px;
-  height: 450px;
+  width: 600px;
+  height: 90%;
+  overflow: auto;
   background-color: #fff;
   border-radius: 10px;
 }
+.note {
+  color: var(--color-666);
+  font-size: 14px;
+  line-height: 32px;
+}
+.login-tips {
+  width: 100%;
+  font-size: 14px;
+  text-align: center;
+}
+::-webkit-scrollbar {
+  width: 4px;
+  height: 4px;
+}
+::-webkit-scrollbar-thumb, .temporaryAdd ::-webkit-scrollbar-thumb, .details_edit ::-webkit-scrollbar-thumb {
+  // 滚动条-颜色
+  background: #c3c3c379;
+}
+::-webkit-scrollbar-track, .temporaryAdd ::-webkit-scrollbar-track, .details_edit ::-webkit-scrollbar-track {
+  // 滚动条-底色
+  background: #e5e5e58f;
+}
 </style>

+ 1 - 1
src/views/register/person.vue

@@ -5,7 +5,7 @@
       <phoneFrom class="mt-10" ref="phoneRef" @handleEnter="handleRegister"></phoneFrom>
       <div class="font-size-14 tips color-primary cursor-pointer text-end" @click="router.push('/login')">已有账号?去登录</div>
       <v-btn :loading="loading" color="primary" class="white--text mt-5" min-width="370" @click="handleRegister">{{ isCompany ? '下一步' : '注册' }}</v-btn>
-      <div class="login-tips mt-3">
+      <div class="login-tips mt-3" v-if="!isCompany">
         点击注册即代表您同意
         <span class="color-primary" style="cursor: pointer;" @click="router.push('/userAgreement')"> [{{ $t('login.userAgreement') }}] </span>和
         <span class="color-primary" style="cursor: pointer;" @click="router.push('/privacyPolicy')">[{{ $t('login.privacyPolicy') }}]</span>

+ 1 - 2
src/views/register/select.vue

@@ -3,8 +3,7 @@
     <div class="register-content">
       <h2 style="color: #666; font-weight: 400;">请选择您当前注册的身份</h2>
       <div class="d-flex mt-16">
-        <!--  @click="handleToRegister('/register/company')" -->
-        <div style="width: 50%;" class="cursor-pointer item pa-3">
+        <div style="width: 50%;" class="cursor-pointer item pa-3" @click="handleToRegister('/register/company')">
           <v-icon color="primary" size="100">mdi-home-city-outline</v-icon>
           <div class="color-primary" style="font-size: 24px">企业用户</div>
         </div>