Kaynağa Gözat

卡片样式

Xiao_123 9 ay önce
ebeveyn
işleme
ad5eba2362

+ 22 - 17
src/components/PositionLongStrip/item.vue

@@ -3,23 +3,28 @@
   <div class="positionItem" v-for="(item, index) in list" :key="index" @mouseenter="item.active = true" @mouseleave="item.active = false">
     <div class="position-and-company">
       <!-- 职位 -->
-      <div v-if="item?.job?.hire" class="mr-3">
-        <PublicRecruitment width="45" height="45"></PublicRecruitment>
-      </div>
+      
       <div class="position" @mouseenter="item.positionActive = true" @mouseleave="item.positionActive = false" @click="handlePosition(item)">
         <div class="d-flex">
-          <p v-if="item.job.name.indexOf('style')" v-html="item.job.name" :class="['title1', {'default-active': item.positionActive }]"></p>
-          <p v-else :class="['title1', {'default-active': item.positionActive }]">{{ item.job.name }}{{ item.job.pos ? ' [' + item.job.pos + '] ' : '' }}</p>
-          <p class="salary ml-1">{{ item.job.payFrom }}-{{ item.job.payTo }}/{{ item.job.payName }}</p>
-          <div v-if="item?.job?.hire">
-            <v-chip v-if="item?.job?.hirePrice && item?.job?.hirePrice > 0" class="ml-3" label color="primary" size="small">赏金:{{ commissionCalculation(item.job.hirePrice, 1) }}元</v-chip>
-            <v-chip v-if="item?.job?.hirePoint && item?.job?.hirePoint > 0" class="ml-3" label color="primary" size="small">积分:{{ commissionCalculation(item.job.hirePoint, 1) }}点</v-chip>
+          <div v-if="item?.job?.hire" class="mr-3">
+            <PublicRecruitment width="45" height="45"></PublicRecruitment>
+          </div>
+          <div>
+            <div class="d-flex">
+              <p v-if="item.job.name.indexOf('style')" v-html="item.job.name" :class="['title1', {'default-active': item.positionActive }]"></p>
+              <p v-else :class="['title1', {'default-active': item.positionActive }]">{{ item.job.name }}{{ item.job.pos ? ' [' + item.job.pos + '] ' : '' }}</p>
+              <p class="salary ml-1">{{ item.job.payFrom }}-{{ item.job.payTo }}/{{ item.job.payName }}</p>
+              <div v-if="item?.job?.hire">
+                <v-chip v-if="item?.job?.hirePrice && item?.job?.hirePrice > 0" class="ml-3" label color="primary" size="small">赏金:{{ commissionCalculation(item.job.hirePrice, 1) }}元</v-chip>
+                <v-chip v-if="item?.job?.hirePoint && item?.job?.hirePoint > 0" class="ml-3" label color="primary" size="small">积分:{{ commissionCalculation(item.job.hirePoint, 1) }}点</v-chip>
+              </div>
+            </div>
+            <div class="mt-2">
+              <span v-for="(j, i) in desc" :key="i">
+                <v-chip v-if="item.job[j.value]" size="x-small" label class="mr-1" color="var(--color-666)" :prepend-icon="j.mdi">{{ item.job[j.value] }}</v-chip>
+              </span>
+            </div>
           </div>
-        </div>
-        <div class="mt-2">
-          <span v-for="(j, i) in desc" :key="i">
-            <v-chip v-if="item.job[j.value]" size="x-small" label class="mr-1" color="var(--color-666)" :prepend-icon="j.mdi">{{ item.job[j.value] }}</v-chip>
-          </span>
         </div>
       </div>
       <!-- 公司 -->
@@ -118,7 +123,7 @@ const handleEnterprise = (item) => {
 .company {
   flex: 1;
   display: flex;
-  justify-content: end;
+  justify-content: start;
 }
 .company-info {
   float: left;
@@ -149,8 +154,8 @@ const handleEnterprise = (item) => {
     padding: 16px 20px;
     width: 100%;
     .position {
-      width: 484px;
-      padding-right: 12px;
+      width: 500px;
+      padding-right: 30px;
     }
   }
   .footer {

+ 7 - 3
src/layout/company/slider.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="slider-box">
-    <div v-for="(item, index) in list" :key="index" class="slider-box-item" @click="handleClick(index)">
+    <div v-for="(item, index) in list" :key="index" class="slider-box-item" @click="handleClick(item, index)">
       <v-btn size="30" class="icons" icon variant="text">
         <v-icon class="icons" size="30">{{ item.mdi }}</v-icon>
         <v-tooltip :text="item.tips" location="start" activator="parent">
@@ -17,15 +17,19 @@
 
 <script setup>
 defineOptions({ name: 'personalSlider' })
+import { useRouter } from 'vue-router'
+
+const router = useRouter()
 const list = [
   { mdi: 'mdi-arrow-up-bold', tips: '返回顶部' },
   { mdi: 'mdi-qrcode', tips: '微信公众号', showImg: 'https://minio.citupro.com/dev/static/mendunerCode.jpg' },
-  { mdi: 'mdi-face-agent', tips: '客服' }
+  { mdi: 'mdi-bell-outline', tips: '消息', path: '/recruit/enterprise/communication' }
 ]
 
-const handleClick = (index) => {
+const handleClick = (item, index) => {
   // 回到顶部
   if (index === 0) window.scrollTo({ top: 0, behavior: 'smooth' })
+  if (item.path) router.push(item.path)
 }
 </script>
 

+ 1 - 1
src/layout/personal/slider.vue

@@ -23,7 +23,7 @@ const router = useRouter()
 const list = [
   { mdi: 'mdi-arrow-up-bold', tips: '返回顶部' },
   { mdi: 'mdi-qrcode', tips: '微信公众号', showImg: 'https://minio.citupro.com/dev/static/mendunerCode.jpg' },
-  { mdi: 'mdi-face-agent', tips: '客服' },
+  { mdi: 'mdi-bell-outline', tips: '消息', path: '/recruit/personal/message' },
   { mdi: 'mdi-list-box-outline', tips: '在线简历', path: '/recruit/personal/resume' }
 ]
 

+ 1 - 1
src/router/modules/components/recruit/enterprise.js

@@ -127,7 +127,7 @@ const enterprise = [
     component: Layout,
     name: 'interview',
     meta: {
-      title: '面试',
+      title: '面试管理',
       enName: 'interview',
       icon: 'mdi-account-multiple-check'
     },

+ 1 - 0
src/views/recruit/personal/company/index.vue

@@ -61,6 +61,7 @@ const dealRouteQuery = (data) => {
 
 // 搜索
 const handleSearch = async (val, key) => {
+  if (!val) return
   query.value.pageNo = 1
   // val为-1时选择的是不限或者全国, 此时选中的字段不传
   if (val === -1 || val[0] === -1) delete query.value[key]