浏览代码

企业登录修改密码

lifanagju_citu 7 月之前
父节点
当前提交
50b424119d

+ 8 - 0
src/api/enterprise.js

@@ -87,6 +87,14 @@ export const entUpdateEmail = async (data) => {
   })
 }
 
+// 招聘端-重置用户密码
+export const entUpdatePassword = async (data) => {
+  return await request.put({
+    url: '/app-api/menduner/system/recruit/user/update-password',
+    data
+  })
+}
+
 // 招聘端-获取人才的在线简历详情
 export const getPersonCvDetail = async (userId, id) => {
   return await request.get({

+ 8 - 0
src/router/modules/components/recruit/enterprise.js

@@ -273,6 +273,14 @@ const enterprise = [
         },
         component: () => import('@/views/recruit/enterprise/staffInfoSetting/index.vue')
       },
+      {
+        path: '/recruit/enterprise/staffChangePassword',
+        show: true,
+        meta: {
+          title: '修改登录密码',
+        },
+        component: () => import('@/views/recruit/enterprise/staffChangePassword/index.vue')
+      },
     ]
   },
   {

+ 21 - 10
src/views/recruit/entRegister/register.vue

@@ -151,7 +151,16 @@ const formItems = ref({
       value: '',
       label: '邮箱登录密码(用于企业招聘邮箱登录) *',
       placeholder: '请输入邮箱登录密码(用于企业招聘邮箱登录)',
-      rules: [v => !!v || '请输入邮箱登录密码(用于企业招聘邮箱登录)']
+      rules: [
+        value => {
+          if (value) return true
+          return '请输入邮箱登录密码(用于企业招聘邮箱登录)'
+        },
+        value => {
+          if (!(/^[\s]+$/.test(value))) return true
+          return '请输入邮箱登录密码(用于企业招聘邮箱登录)'
+        }
+      ]
     },
     {
       type: 'text',
@@ -159,7 +168,16 @@ const formItems = ref({
       value: '',
       label: '请再次输入邮箱登录密码 *',
       placeholder: '请再次输入邮箱登录密码',
-      rules: [v => !!v || '请再次输入邮箱登录密码']
+      rules: [
+        value => {
+          if (value) return true
+          return '请再次输入邮箱登录密码'
+        },
+        value => {
+          if (!(/^[\s]+$/.test(value))) return true
+          return '请再次输入邮箱登录密码'
+        }
+      ]
     },
     {
       type: 'textarea',
@@ -177,10 +195,6 @@ const formItems = ref({
 // 上传
 let licenseUrl = ref('')
 
-const isOnlySpaces = (str) => {
-  return /^[\s]+$/.test(str) ? null : str // 判断是否只有空格
-}
-
 // 提交 企业注册
 const handleCommit = async () => {
   const { valid } = await CtFormRef.value.formRef.validate()
@@ -194,10 +208,7 @@ const handleCommit = async () => {
   }
   formItems.value.options.forEach(e => { params[e.key] = e.value })
   // 邮箱登录密码校验
-  const pa1 = isOnlySpaces(params.password); const pa2 = isOnlySpaces(params.passwordConfirm);
-  if (pa1 && !pa2) return Snackbar.warning('请输入确认邮箱登录密码')
-  if (!pa1 && pa2) return Snackbar.warning('请输入邮箱登录密码')
-  if (pa1 !== pa2) return Snackbar.warning('两次输入的邮箱登录密码不一致,请确认输入内容')
+  if (params.password !== params.passwordConfirm) return Snackbar.warning('两次输入的密码不一致,请确认')
 
   await enterpriseRegisterApply(params)
   Snackbar.success(t('common.submittedSuccessfully'))

+ 82 - 0
src/views/recruit/enterprise/staffChangePassword/index.vue

@@ -0,0 +1,82 @@
+<!--  -->
+<template>
+  <v-card class="pa-5 card-box d-flex flex-column align-center">
+    <div class="resume-header mt-15 mb-8" style="width: 700px;">
+      <div class="resume-title">修改登录密码</div>
+    </div>
+    <CtForm ref="CtFormRef" :items="formItems" style="width: 700px;"></CtForm>
+    <v-btn class="buttons mt-5" color="primary" @click.stop="handleCommit">{{ $t('common.save') }}</v-btn>
+    <v-btn class="mt-3" color="primary" variant="text" @click="router.go(-1)">返回</v-btn>
+  </v-card>
+
+  <Loading :visible="overlay"></Loading>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import Snackbar from '@/plugins/snackbar'
+import { useI18n } from '@/hooks/web/useI18n'
+import { useRouter } from 'vue-router'; const router = useRouter()
+import { entUpdatePassword } from '@/api/enterprise'
+defineOptions({name: 'staff-changePassword'})
+
+const { t } = useI18n()
+
+const CtFormRef = ref()
+const formItems = ref({
+  options: [
+    {
+      type: 'text',
+      key: 'password',
+      value: '',
+      label: '请输入新密码 *',
+      rules: [
+        value => {
+          if (value) return true
+          return '请输入新密码'
+        },
+        value => {
+          if (!(/^[\s]+$/.test(value))) return true
+          return '请输入新密码'
+        }
+      ]
+    },
+    {
+      type: 'text',
+      key: 'passwordConfirm',
+      value: '',
+      label: '请再次输入新密码 *',
+      rules: [
+        value => {
+          if (value) return true
+          return '请再次输入新密码'
+        },
+        value => {
+          if (!(/^[\s]+$/.test(value))) return true
+          return '请再次输入新密码'
+        }
+      ]
+    },
+  ]
+})
+
+
+const handleCommit = async () => {
+  const { valid } = await CtFormRef.value.formRef.validate()
+  if (!valid) return
+  
+  const params = {}
+  const baseInfo = JSON.parse(localStorage.getItem('entBaseInfo') || "null") || null
+  if (baseInfo?.id) params.id = baseInfo.id
+
+  formItems.value.options.forEach(e => { params[e.key] = e.value })
+  // 邮箱登录密码校验
+  if (params.password !== params.passwordConfirm) return Snackbar.warning('两次输入的密码不一致,请确认')
+
+  await entUpdatePassword(params)
+  Snackbar.success(t('common.submittedSuccessfully'))
+  router.go(-1)
+}
+</script>
+<style lang="scss" scoped>
+</style>

+ 2 - 1
src/views/recruit/enterprise/staffInfoSetting/index.vue

@@ -19,7 +19,7 @@
       </template>
     </CtForm>
     <v-btn class="buttons mt-5" color="primary" @click.stop="handleSubmit">{{ $t('common.save') }}</v-btn>
-    <!-- <v-btn class="mt-3" color="primary" variant="text" @click.stop="ud">修改登录密码</v-btn> -->
+    <v-btn class="mt-3" color="primary" variant="text" to="/recruit/enterprise/staffChangePassword">修改登录密码</v-btn>
   </v-card>
 
   <Loading :visible="overlay"></Loading>
@@ -178,6 +178,7 @@ const handleSubmit = async () => {
     overlay.value = false
   }, 1000)
 }
+
 </script>
 
 <style scoped lang="scss">