Forráskód Böngészése

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

lifanagju_citu 7 hónapja
szülő
commit
1feb97ad33

+ 11 - 0
src/views/common/loginDialog.vue

@@ -24,6 +24,14 @@ import { useUserStore } from '@/store/user'; const userStore = useUserStore()
 import { nextTick, ref } from 'vue'
 const emit = defineEmits(['loginSuccess'])
 
+const props = defineProps({
+  // 是否需要退出后再登录,切换账号时使用
+  hasLogout: {
+    type: Boolean,
+    default: false
+  }
+})
+
 const openDialog = ref(false)
 nextTick(() => {
   openDialog.value = true
@@ -36,6 +44,9 @@ const loginLoading = ref(false)
 const handleLogin = async () => {
   const { valid } = await phoneRef.value.phoneForm.validate()
   if (!valid) return
+  if (props.hasLogout) {
+    await userStore.userLogout(1)
+  }
   loginLoading.value = true
   try {
     const params = { ...phoneRef.value.loginData } // 只能验证码登录

+ 0 - 3
src/views/recruit/components/message/components/chatting.vue

@@ -287,9 +287,6 @@ const userStore = useUserStore()
 const loading = ref(false)
 
 const mAvatar = () => {
-  if (isEnterprise) {
-    return getUserAvatar(userStore.entBaseInfo?.avatar, userStore.entBaseInfo?.sex)
-  }
   return getUserAvatar(userStore.baseInfo?.avatar, userStore.baseInfo?.sex)
 }
 

+ 10 - 0
src/views/recruit/enterprise/hirePosition/components/baseInfo.vue

@@ -93,6 +93,16 @@ const items = ref({
       label: '职位名称 *',
       rules: [v => !!v || '请填写职位名称']
     },
+    {
+      type: 'datePicker',
+      key: 'expireTime',
+      dateType: 'date',
+      value: null,
+      label: '到期时间 *',
+      outlined: true,
+      clearable: true,
+      rules: [v => !!v || '请选择职位到期时间']
+    },
     {
       slotName: 'positionId',
       key: 'positionId',

+ 4 - 1
src/views/recruit/enterprise/hirePosition/components/item.vue

@@ -30,7 +30,10 @@
         </div>
       </div>
       <div class="bottom pa-5 d-flex justify-space-between align-center">
-        <div>{{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}</div>
+        <div>
+          {{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}
+          <span v-if="val.expireDay && Number(val.expireDay) > 0">({{ val.expireDay }}天后到期)</span>
+        </div>
         <div class="d-flex align-center">
           <span v-if="(val.status-0) === 99" class="cursor-pointer color-primary" @click="toPay(val)">去支付</span>
           <span v-if="(val.status-0) === 99" class="lines"></span>

+ 10 - 0
src/views/recruit/enterprise/positionManagement/components/baseInfo.vue

@@ -47,6 +47,16 @@ const items = ref({
       label: '职位名称 *',
       rules: [v => !!v || '请填写职位名称']
     },
+    {
+      type: 'datePicker',
+      key: 'expireTime',
+      dateType: 'date',
+      value: null,
+      label: '到期时间 *',
+      outlined: true,
+      clearable: true,
+      rules: [v => !!v || '请选择职位到期时间']
+    },
     {
       slotName: 'positionId',
       key: 'positionId',

+ 4 - 1
src/views/recruit/enterprise/positionManagement/components/item.vue

@@ -38,7 +38,10 @@
         </div>
       </div>
       <div class="bottom pa-5 d-flex justify-space-between align-center">
-        <div>{{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}</div>
+        <div>
+          {{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}
+          <span v-if="val.expireDay && Number(val.expireDay) > 0">({{ val.expireDay }}天后到期)</span>
+        </div>
         <div class="d-flex">
           <div class="ml-10 d-flex">
             <div v-if="tab === 1">

+ 15 - 29
src/views/recruit/personal/PersonalCenter/resume/online/components/basicInfo.vue

@@ -61,7 +61,7 @@
               </div>
               <div>
                 <span class="mdi mdi-phone-outline"></span>
-                <span>{{ baseInfo?.phone || $t('common.currentlyUnavailable') }}</span>
+                <span>{{ baseInfo?.phone || userInfo.phone || $t('common.currentlyUnavailable') }}</span>
               </div>
               <div>
                 <span class="mdi mdi-email-outline"></span>
@@ -219,9 +219,9 @@ const items = ref({
     {
       type: 'ifRadio',
       key: 'sex',
-      value: '0', // '1' ? '男' : '女'
+      value: '1', // '1' ? '男' : '女'
       default: 0,
-      label: '性别',
+      label: '性别 *',
       col: 6,
       width: 70,
       dictTypeName: 'menduner_sex',
@@ -230,42 +230,33 @@ const items = ref({
     {
       type: 'datePicker',
       key: 'birthday',
-      // dateType: 'date', // 时间类型 year month date time
       value: null,
       label: '出生日期 *',
       col: 6,
       outlined: true,
       rules: [v => !!v || '请选择出生日期']
-      // options: {},
     },
     {
       type: 'phoneNumber',
       key: 'phone',
-      value: null,
+      value: userInfo.value.phone || '',
       default: null,
       label: '电话号码',
       col: 6,
-      outlined: true,
-      rules: [v => !!v || '请填写手机号码']
-      // disabled: true,
-      // slotName: 'phone',
+      outlined: true
     },
     {
       type: 'text',
       key: 'email',
       value: null,
       default: null,
-      label: '常用邮箱 *',
+      label: '常用邮箱',
       col: 6,
       outlined: true,
       rules: [
         value => {
-          if (value) return true
-          return '请输入常用邮箱'
-        },
-        value => {
-          if (checkEmail(value)) return true
-          return '请输入正确的电子邮箱'
+          if (value && !checkEmail(value)) return '请输入正确的电子邮箱'
+          return true
         }
       ]
     },
@@ -330,20 +321,19 @@ const items = ref({
       key: 'maritalStatus',
       value: null,
       default: null,
-      label: '婚姻状况 *',
+      label: '婚姻状况',
       col: 6,
       outlined: true,
       itemText: 'label',
       itemValue: 'value',
       dictTypeName: 'menduner_marital_status',
-      rules: [v => !!v || '请选择婚姻状况'],
       items: []
     },
     {
       type: 'autocomplete',
       key: 'workAreaProvinceId',
       value: null,
-      label: '所在城市:省 *',
+      label: '所在城市:省',
       outlined: true,
       itemText: 'name',
       itemValue: 'id',
@@ -351,7 +341,6 @@ const items = ref({
       noParam: true,
       col: 6,
       flexStyle: 'mr-3',
-      rules: [v => !!v || '请选择所在城市:省'],
       items: [],
       change: null
     },
@@ -359,12 +348,11 @@ const items = ref({
       type: 'autocomplete',
       key: 'areaId',
       value: null,
-      label: '所在城市:市 *',
+      label: '所在城市:市',
       outlined: true,
       itemText: 'name',
       itemValue: 'id',
       col: 6,
-      rules: [v => !!v || '请选择所在城市:市'],
       items: [],
       change: null
     },
@@ -402,13 +390,10 @@ const items = ref({
       dateType: 'month',
       key: 'firstWorkTime',
       value: null,
-      label: '首次工作时间 *',
+      label: '首次工作时间',
       col: 6,
-      outlined: true,
-      // clearable: true,
-      rules: [v => !!v || '请选择首次工作时间']
-      // options: {},
-    },
+      outlined: true
+    }
   ]
 })
 
@@ -423,6 +408,7 @@ const handleSave = async () => {
     if (e.type === 'datepicker') obj[e.key] = getTimeStamp(e.value)
     else obj[e.key] = e.value
   })
+  if (!obj.sex) return Snackbar.warning('请先选择您的性别')
   await saveResumeBasicInfo(obj)
   Snackbar.success(t('common.saveMsg'))
   isEdit.value = false

+ 8 - 12
src/views/recruit/personal/shareJob/index.vue

@@ -66,7 +66,7 @@
         <div class="text-center my-10">
           <v-btn v-if="!isMobile" class="mr-2 radius button-item" color="success" variant="outlined" target="_blank" to="/recruit/personal/position">{{ $t('position.moreBtn') }}</v-btn>
           <v-btn class="radius button-item" color="primary" :disabled="delivery" @click="sendResumeProcessVerify">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
-          <span v-if="showSwitchAccount" class="ml-2" style="font-size: 14px; color: #666; text-decoration: underline;" @click="handleSwitchAccount">切换账号</span>
+          <span v-if="showSwitchAccount" class="ml-2 cursor-pointer" style="font-size: 14px; color: #666; text-decoration: underline;" @click="handleSwitchAccount">切换账号</span>
         </div>
       </div>
     </v-card>
@@ -75,6 +75,7 @@
     <login-page
       v-if="sendResume.showLogin"
       :jobId="jobId"
+      :hasLogout="hasLogout"
       @loginSuccess="loginSuccess"
       @close="handleClose('showLogin')"
     ></login-page>
@@ -153,7 +154,6 @@ const handleCollection = async () => {
   // 效验登录状态
   if (!getToken()) {
     actions.value = true
-    // handleLogin()
     sendResume.showLogin = true
     return
   }
@@ -185,6 +185,7 @@ const desc = [
 
 // 快速登录成功
 const loginSuccess = async () => {
+  simpleInfoReady.value = false
   sendResume.showLogin = false // 关闭快速登录弹窗
   showSwitchAccountFun(true)
   // actions为true则是收藏时的登录,不需要弹窗选择简历
@@ -227,8 +228,8 @@ const sendResumeProcessVerify = async () => {
       return
     }
     // * 简历列表
-    // if (!) sendResume.showSelect = true
-    sendResume.showSelect = true
+    sendResume.showSelect = hasLogout.value ? false : true
+    hasLogout.value = false
   } catch (error) {
     console.error('error', error)
   }
@@ -236,11 +237,10 @@ const sendResumeProcessVerify = async () => {
 
 const handleClose = (key) => {
   sendResume[key] = false // 弹窗关闭,重置绑定数据
+  hasLogout.value = false
 }
 
-
 const showSwitchAccount = ref(false)
-
 const showSwitchAccountFun = (bool) => {
   showSwitchAccount.value = bool
 }
@@ -250,13 +250,9 @@ onMounted(() => {
 })
 
 // 切换账号
-import { useUserStore } from '@/store/user'; const userStore = useUserStore()
+const hasLogout = ref(false)
 const handleSwitchAccount = async () => {
-  delivery.value = false // 重置投递状态
-  isCollection.value = false // 重置收藏
-  showSwitchAccount.value = false
-  await userStore.userLogout(1)
-  // location.reload()
+  hasLogout.value = true
   sendResume.showLogin = true
 }
 </script>

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

@@ -51,6 +51,7 @@ const handleRegister = async () => {
     props.isLogin ? await userStore.handleSmsLogin({ ...phoneRef.value.loginData }) : await userStore.handleUserRegister({ ...phoneRef.value.loginData })
     Snackbar.success(props.isCompany ? '手机号验证成功' : '注册成功')
     if (!props.isCompany) {
+      localStorage.setItem('simpleCompleteDialogHaveBeenShow', true) // 个人登录简易基本信息填写弹窗open-status
       router.push({ path: '/recruitHome' })
       localStorage.removeItem('loginAccount')
     } else emit('success')