Переглянути джерело

求职感喟-已关闭职位状态

Xiao_123 7 місяців тому
батько
коміт
41c3ced905

+ 21 - 3
src/components/Position/longStrip.vue

@@ -1,9 +1,13 @@
 <template>
   <div>
-    <div class="position-item mb-3 job-closed elevation-2" v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false">
+    <div class="position-item mb-3 job-closed elevation-2" style="position: relative;" 
+      :class="{'close-position': val.job.status === '1'}"  
+      v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false"
+    >
       <div class="info-header">
-        <div v-if="val.active" class="header-btn">
+        <div v-if="val.active && val.job.status === '0'" class="header-btn">
           <v-btn v-if="props.showCancelBtn" class="half-button ml-3" color="primary" size="small" @click="handleCancel(val)">取消收藏</v-btn>
+          <!-- <v-btn class="half-button ml-3" color="primary" size="small" @click="toDetails(val)">立即沟通</v-btn> -->
         </div>
         <div class="img-box">
           <v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
@@ -13,7 +17,7 @@
           </span>
         </div>
       </div>
-      <div class="info-content">
+      <div class="info-content" >
         <div class="job-info">
           <div class="job-name cursor-pointer">
             <span class="mr-3 info-name" @click="handleToPositionDetails(val)">{{ val.job.name }}</span>
@@ -52,6 +56,7 @@ import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
 import { getUserAvatar } from '@/utils/avatar'
 import { useRouter } from 'vue-router'
+// import { prologue, defaultText } from '@/hooks/web/useIM'
 
 const emits = defineEmits(['refresh'])
 const { t } = useI18n()
@@ -86,6 +91,19 @@ const handleToPositionDetails = (item) => {
 const handleToEnterprise = (item) => {
   router.push(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
 }
+
+// // 立即沟通
+// const toDetails = async (info) => {
+//   const userId = info.contact.userId
+//   const enterpriseId = info.contact.enterpriseId
+//   await prologue({userId, enterpriseId, defaultText})
+//   let url = `/recruit/personal/message?id=${info.job.id}`
+//   if (info.contact.enterpriseId) {
+//     url += `&enterprise=${info.contact.enterpriseId}`
+//   }
+
+//   router.push(url)
+// }
 </script>
 
 <style scoped lang="scss">

+ 11 - 0
src/styles/index.css

@@ -228,3 +228,14 @@
   color: #00887A;
   font-weight: 700;
 }
+
+.close-position::after {
+  content: '';
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  background-color: #fff;
+  opacity: .7;
+}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
src/styles/index.min.css


+ 12 - 0
src/styles/index.scss

@@ -166,4 +166,16 @@
 .commonHover2:hover {
   color: #00887A;
   font-weight: 700;
+}
+
+// 已关闭职位遮罩层
+.close-position::after {
+  content: '';
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  background-color: #fff;
+  opacity: .7;
 }

+ 1 - 1
src/views/headhunting/components/nav.vue

@@ -22,7 +22,7 @@ defineOptions({ name: 'headhunting-nav'})
 const emit = defineEmits(['click'])
 const navList = [
   { title: '我们的服务', path: '/headhunting/service' },
-  { title: '我们的顾问', path: '' },
+  // { title: '我们的顾问', path: '' },
   { title: '候选人', path: '' }
 ]
 </script>

+ 17 - 13
src/views/recruit/personal/PersonalCenter/jobFeedback/components/interview/item.vue

@@ -1,14 +1,18 @@
 <template>
-  <div class="position-item mb-3 job-closed elevation-2" v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false">
-      <div class="info-header">
-        <div v-if="val.active && val.status === '0'" class="header-btn">
-          <v-btn color="primary" size="small" @click="handleAgree(val)">同意</v-btn>
-          <v-btn class="ml-3" color="error" size="small" @click="handleRefuse(val)">拒绝</v-btn>
-        </div>
-        <div v-if="tab === '1' || tab === '98'" class="float-right font-size-13" :style="{'padding': '12px 12px 0 0', 'color': tab === '1' ? 'var(--v-primary-base)' : 'var(--v-error-base)'}">
-          您已于{{ timesTampChange(val.updateTime, 'Y-M-D h:m') }}{{ tab === '1' ? '接受' : '拒绝'}}了此面试邀请
-        </div>
-        <div class="img-box">
+  <div class="position-item mb-3 job-closed elevation-2"
+    style="position: relative;"
+    :class="{'close-position': val.job.status === '1'}"  
+    v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false"
+  >
+    <div class="info-header">
+      <div v-if="val.active && val.status === '0' && val.job.status === '0'" class="header-btn">
+        <v-btn color="primary" size="small" @click="handleAgree(val)">同意</v-btn>
+        <v-btn class="ml-3" color="error" size="small" @click="handleRefuse(val)">拒绝</v-btn>
+      </div>
+      <div v-if="tab === '1' || tab === '98'" class="float-right font-size-13" :style="{'padding': '12px 12px 0 0', 'color': tab === '1' ? 'var(--v-primary-base)' : 'var(--v-error-base)'}">
+        您已于{{ timesTampChange(val.updateTime, 'Y-M-D h:m') }}{{ tab === '1' ? '接受' : '拒绝'}}了此面试邀请
+      </div>
+      <div class="img-box">
           <v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
           <span class="name">
             <span class="mx-3">{{ val.contact.name }}</span>
@@ -16,9 +20,9 @@
             <span v-if="val.invitePhone" class="septal-line"></span>
             <span class="gray">{{ val.invitePhone }}</span>
           </span>
-        </div>
       </div>
-      <div class="info-content">
+    </div>
+    <div class="info-content">
         <div class="font-size-16 color-333 mr-5" style="width: 322px;">
           <div>面试时间:{{ timesTampChange(val.time, 'Y-M-D h:m') }}</div>
           <div class="mt-3 ellipsis" style="max-width: 322px;">面试地点:{{ val.address }}</div>
@@ -43,7 +47,7 @@
             </div>
           </div>
         </div>
-      </div>
+    </div>
   </div>
 </template>
 

Деякі файли не було показано, через те що забагато файлів було змінено