Explorar o código

岗位管理隐藏

Xiao_123 hai 7 meses
pai
achega
83e7a5afb9

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

@@ -24,7 +24,7 @@
                 <defineListPage v-bind="$attrs" :title="val.title" :list="val.children" @emitClick="handleClick" :closeOnContentClick="true"></defineListPage>
               </template>
               <template v-else>
-                <span class="cursor-pointer menuList-first-title" :class="{'active-route' : route.path === val.path}" @click="handleClick(val, true)">{{ val.title }}</span>
+                <span class="cursor-pointer menuList-first-title" :class="{'active-route' : route.path === val.path || route.path.includes(val.path)}" @click="handleClick(val, true)">{{ val.title }}</span>
               </template>
             </div>
           </div>

+ 26 - 6
src/router/modules/components/headhunting.js

@@ -1,24 +1,44 @@
+import Layout from '@/layout'
+
 const headhunting = [
   {
     path: '/headhunting',
-    component: () => import('@/views/headhunting/index.vue'),
+    component: Layout,
     meta: {
       title: '门墩儿猎寻服务'
-    }
+    },
+    children: [
+      {
+        path:'/headhunting',
+        component: () => import('@/views/headhunting/index.vue')
+      }
+    ]
   },
   {
     path: '/headhunting/service',
-    component: () => import('@/views/headhunting/service.vue'),
+    component: Layout,
     meta: {
       title: '我们的服务'
-    }
+    },
+    children: [
+      {
+        path: '/headhunting/service',
+        component: () => import('@/views/headhunting/service.vue')
+      }
+    ]
   },
   {
     path: '/headhunting/service/details',
-    component: () => import('@/views/headhunting/details.vue'),
+    component: Layout,
     meta: {
       title: '门墩儿猎寻服务'
-    }
+    },
+    children: [
+      {
+        path: '/headhunting/service/details',
+        component: () => import('@/views/headhunting/details.vue')
+      }
+    ]
   }
 ]
 

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

@@ -18,7 +18,44 @@ const enterprise = [
   {
     path: '/recruit/enterprise',
     show: true,
-    redirect: '/recruit/enterprise/talentRecruitment',
+    redirect: '/recruit/enterprise/position',
+  },
+  {
+    path: '/recruit/enterprise/position',
+    component: Layout,
+    name: 'jobManagement',
+    meta: {
+      title: '职位管理',
+      enName: 'Job Management',
+      icon: 'mdi-format-list-bulleted-square'
+    },
+    children: [
+      {
+        path: '/recruit/enterprise/position',
+        show: true,
+        meta: {
+          title: '职位列表',
+          enName: 'Job list'
+        },
+        component: () => import('@/views/recruit/enterprise/positionManagement/index.vue')
+      },
+      {
+        path: '/recruit/enterprise/position/add',
+        show: true,
+        meta: {
+          title: '新增职位'
+        },
+        component: () => import('@/views/recruit/enterprise/positionManagement/components/add.vue')
+      },
+      {
+        path: '/recruit/enterprise/position/edit',
+        show: true,
+        meta: {
+          title: '职位编辑'
+        },
+        component: () => import('@/views/recruit/enterprise/positionManagement/components/add.vue')
+      }
+    ]
   },
   {
     path: '/recruit/enterprise/talentRecruitment',
@@ -92,43 +129,6 @@ const enterprise = [
       },
     ]
   },
-  {
-    path: '/recruit/enterprise/position',
-    component: Layout,
-    name: 'jobManagement',
-    meta: {
-      title: '职位管理',
-      enName: 'Job Management',
-      icon: 'mdi-format-list-bulleted-square'
-    },
-    children: [
-      {
-        path: '/recruit/enterprise/position',
-        show: true,
-        meta: {
-          title: '职位列表',
-          enName: 'Job list'
-        },
-        component: () => import('@/views/recruit/enterprise/positionManagement/index.vue')
-      },
-      {
-        path: '/recruit/enterprise/position/add',
-        show: true,
-        meta: {
-          title: '新增职位'
-        },
-        component: () => import('@/views/recruit/enterprise/positionManagement/components/add.vue')
-      },
-      {
-        path: '/recruit/enterprise/position/edit',
-        show: true,
-        meta: {
-          title: '职位编辑'
-        },
-        component: () => import('@/views/recruit/enterprise/positionManagement/components/add.vue')
-      }
-    ]
-  },
   {
     path: '/recruit/enterprise/hirePosition',
     component: Layout,
@@ -240,14 +240,14 @@ const enterprise = [
       // },
 
       // 岗位管理 
-      {
-        path: '/recruit/enterprise/systemManagement/postManagement',
-        meta: {
-          title: '岗位管理',
-          enName: 'Post Management '
-        },
-        component: () => import('@/views/recruit/enterprise/systemManagement/postManagement/index.vue')
-      },
+      // {
+      //   path: '/recruit/enterprise/systemManagement/postManagement',
+      //   meta: {
+      //     title: '岗位管理',
+      //     enName: 'Post Management '
+      //   },
+      //   component: () => import('@/views/recruit/enterprise/systemManagement/postManagement/index.vue')
+      // },
       {
         path: '/recruit/enterprise/systemManagement/postManagement/add',
         show: true,

+ 1 - 1
src/utils/headhuntingData.js

@@ -219,7 +219,7 @@ export const serviceData = [
 export const consultantData = [
   {
     id: 'simon',
-    title: '田森先生(Simon Tian)',
+    title: '田森博士(Simon Tian)',
     job: '创始人兼首席执行官',
     country: '苏州',
     avatar: 'https://minio.citupro.com/dev/menduner/consultant/simon.png',

+ 2 - 9
src/views/about/index.vue

@@ -15,7 +15,7 @@
       </div>
       <div class="py-15">
         <v-divider></v-divider>
-        <h1 class="title mt-15">门墩儿合伙人</h1>
+        <h1 class="title mt-15">学术和行业之声</h1>
         <div class="mt-10">
           <div v-for="(val, i) in introduce" :key="i" :style="{'text-align': i % 2 === 0 ? 'left' : 'right'}" class="py-15 bole-item">
             <div class="left">
@@ -105,14 +105,7 @@ const introduce = [
     company: '禾禾木文化发展有限公司',
     avatar: 'https://minio.citupro.com/dev/menduner/home/about/%E5%9B%BE%E7%89%879.png',
     desc: '找到对的门,认识对的人. 门墩儿,比酒店人更懂酒店人,从这里开启不同的圈层,打开职业生涯你不敢想象的可能!'
-  },
-  // {
-  //   name: 'Henry Sun 孙伟杰',
-  //   job: '创始人',
-  //   company: 'Mentor共享教室',
-  //   avatar: 'https://minio.citupro.com/dev/menduner/home/about/%E5%9B%BE%E7%89%8710.png',
-  //   desc: 'What a day and milestone for Chinese hospitality industry! Congratulations to Simon and his team on providing this great platform to hoteliers, where we will no longer feel alone when building our careers. Knowing someone experienced and knowledgeable is there for us, our fellow hoteliers, is fantastic and extremely helpful. Go Menduner!'
-  // }
+  }
 ]
 </script>
 

+ 80 - 0
src/views/headhunting/components/contact.vue

@@ -0,0 +1,80 @@
+<template>
+  <div class="social-media common-width">
+    <h5 class="social-media-header">
+      <span class="inner-text">联系我们</span>
+    </h5>
+    <div class="d-flex">
+      <div class="left">
+        <h2>欢迎关注,了解门墩儿的新动态。</h2>
+        <p class="mt-3" style="font-size: .9rem;">门墩儿在所有主流社交媒体都有账号。欢迎关注我们,以便了解关于发展趋势和领导力问题的最新见解。</p>
+        <div class="d-flex align-center social-contact mt-5 justify-space-between">
+          <div>
+            <p class="mb-2">联系方式</p>
+            <p>猎头顾问: 姚嘉庆 Julia</p>
+            <p>邮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱:Julia.yao@menduner.com</p>
+            <p>手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机:18501626969</p>
+          </div>
+          <div class="text-center">
+            <div style="width: 120px; height: 120px; margin: auto;">
+              <v-img class="ml-2" cover aspect-ratio="1/1" src="https://minio.citupro.com/dev/menduner/official-account-code4.jpg" width="120" height="120"></v-img>
+            </div>
+            <div class="tips-text ml-4">门墩儿公众号</div>
+          </div>
+        </div>
+      </div>
+      <div class="right text-end">
+        <img src="https://minio.citupro.com/dev/menduner/headhunting/concact-bg.jpg" height="324" width="460" alt="" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+defineOptions({ name: 'contactPage'})
+</script>
+
+<style scoped lang="scss">
+.common-width {
+  width: 100%;
+  max-width: 1000px;
+}
+.social-media {
+  margin: auto;
+  margin-bottom: 100px;
+  &-header {
+    position: relative;
+    text-transform: uppercase;
+    text-align: center;
+    margin: 0 0 52px;
+    .inner-text {
+      display: inline-block;
+      background-color: #fff;
+      padding: 0 18px;
+      color: #4c4c4e;
+      position: relative;
+      z-index: 2;
+    }
+    &::after {
+      content: "";
+      position: absolute;
+      width: 100%;
+      height: 0;
+      border-top: 1px dotted #747476;
+      left: 0;
+      bottom: 50%;
+      margin-bottom: 2px;
+    }
+  }
+  .left {
+    width: 50%;
+    color: #4c4c4e;
+    .social-contact {
+      padding: 28px 26px;
+      background-color: #f5f7f9;
+    }
+  }
+  .right {
+    flex: 1;
+  }
+}
+</style>

+ 8 - 76
src/views/headhunting/components/content.vue

@@ -9,7 +9,7 @@
       </div>
     </div>
     <!-- 数值示例 -->
-    <div class="three-up-promo-cards common-width">
+    <div class="three-up-promo-cards">
       <div class="three-up-promo-cards__card" v-for="(k, i) in list" :key="i">
         <span class="impact-messaging__number">{{ k.title }}</span>
         <span class="impact-messaging__copy">{{ k.desc }}</span>
@@ -81,47 +81,21 @@
       </div>
     </div>
     <!-- 联系我们 -->
-    <div class="social-media common-width">
-      <h5 class="social-media-header">
-        <span class="inner-text">联系我们</span>
-      </h5>
-      <div class="d-flex">
-        <div class="left">
-          <h2>欢迎关注,了解门墩儿的新动态。</h2>
-          <p class="mt-3" style="font-size: .9rem;">门墩儿在所有主流社交媒体都有账号。欢迎关注我们,以便了解关于发展趋势和领导力问题的最新见解。</p>
-          <div class="d-flex align-center social-contact mt-5 justify-space-between">
-            <div>
-              <p class="mb-2">联系方式</p>
-              <p>猎头顾问: 姚嘉庆 Julia</p>
-              <p>邮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱:Julia.yao@menduner.com</p>
-              <p>手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机:18501626969</p>
-            </div>
-            <div class="text-center">
-              <div style="width: 120px; height: 120px; margin: auto;">
-                <v-img class="ml-2" cover aspect-ratio="1/1" src="https://minio.citupro.com/dev/menduner/official-account-code4.jpg" width="120" height="120"></v-img>
-              </div>
-              <div class="tips-text ml-4">门墩儿公众号</div>
-            </div>
-          </div>
-        </div>
-        <div class="right text-end">
-          <img src="https://minio.citupro.com/dev/menduner/headhunting/concact-bg.jpg" height="324" width="460" alt="" />
-        </div>
-      </div>
-    </div>
+    <ContactPage></ContactPage>
   </div>
 </template>
 
 <script setup>
 defineOptions({ name: 'headhunting-carousel'})
 import { useRouter } from 'vue-router'
+import ContactPage from './contact.vue'
 
 const router = useRouter()
 
 // 数值示例
 const list = [
-  { title: '1500+', desc: '服务企业' },
-  { title: '236000+', desc: '人才数据库' },
+  { title: '1500家+', desc: '服务企业' },
+  { title: '70%', desc: '拥有本科及以上学历人群' },
   { title: '12种', desc: '涉及行业' }
 ]
 // 服务
@@ -141,7 +115,7 @@ const countryOffice = [
 ]
 // 我们的顾问
 const consultant = [
-  { country: '苏州', enName: '田森先生(Simon Tian)', id: 'simon', avatar: 'https://minio.citupro.com/dev/menduner/consultant/simon.png' },
+  { country: '苏州', enName: '田森博士(Simon Tian)', id: 'simon', avatar: 'https://minio.citupro.com/dev/menduner/consultant/simon.png' },
   { country: '北京', enName: '潘青海先生(Peter Pan)', id: 'peter', avatar: 'https://minio.citupro.com/dev/menduner/consultant/peter.png' },
   { country: '北京', enName: '姚嘉庆女士(Julia)', id: 'julia', avatar: 'https://minio.citupro.com/dev/menduner/consultant/julie.png' }
 ]
@@ -151,11 +125,6 @@ const articles = [
   { title: '纷繁复杂世界中的领导力:为未来的首席执行官做好规划', id: 'leadership-for-a-complex-world-planning-for-the-ceo-of-the-future', url: 'https://cn.spencerstuart.com/-/media/2023/september/ceofuture/thmb-ceoofthefuture-sept2023-616x434.jpg' },
   { title: '全球视角下的CFO角色演变:跨领域高管的洞察与应对策略', id: 'the-evolution-of-the-cfo-role-from-a-global-perspective', url: 'https://cn.spencerstuart.com/-/media/search-images/placeholder-hdr.jpg' }
 ]
-// 联系我们
-// const social = [
-//   { desc: '敬请查询我们的领英账号以关注最新的研究报告和职业机会。', url: 'https://cn.spencerstuart.com/-/media/linkedin-logo.png?h=50&amp;w=50&amp;la=zh-CN&amp;hash=80E76CEDF468709061F46EE02219B4DA' },
-//   { showTooltip: true, desc: '关注门墩儿官方微信公众号,获悉热点资讯和行业洞见。', url: 'https://cn.spencerstuart.com/-/media/wechat.jpg?h=75&amp;w=75&amp;la=zh-CN&amp;hash=B9D5E58A097630C3C5A878D5ED49B4A6' }
-// ]
 
 const handleClick = (type, id) => {
   if (!type && !id) return
@@ -202,6 +171,8 @@ const handleClick = (type, id) => {
 }
 .three-up-promo-cards {
   display: flex;
+  width: 100%;
+  max-width: 1200px;
   margin: 0 auto;
   background-color: #f5f7f9;
   margin-top: -100px;
@@ -490,45 +461,6 @@ const handleClick = (type, id) => {
     }
   }
 }
-.social-media {
-  margin: auto;
-  margin-bottom: 100px;
-  &-header {
-    position: relative;
-    text-transform: uppercase;
-    text-align: center;
-    margin: 0 0 52px;
-    .inner-text {
-      display: inline-block;
-      background-color: #fff;
-      padding: 0 18px;
-      color: #4c4c4e;
-      position: relative;
-      z-index: 2;
-    }
-    &::after {
-      content: "";
-      position: absolute;
-      width: 100%;
-      height: 0;
-      border-top: 1px dotted #747476;
-      left: 0;
-      bottom: 50%;
-      margin-bottom: 2px;
-    }
-  }
-  .left {
-    width: 50%;
-    color: #4c4c4e;
-    .social-contact {
-      padding: 28px 26px;
-      background-color: #f5f7f9;
-    }
-  }
-  .right {
-    flex: 1;
-  }
-}
 .tip-text {
   font-size: 14px;
   color: var(--color-222);

+ 2 - 0
src/views/headhunting/drill/consultant.vue

@@ -20,6 +20,7 @@
     <div class="mt-10" style="flex: 1;">
       <p v-for="(k, i) in data.desc" :key="i" class="desc">{{ k }}</p>
     </div>
+    <ContactPage style="margin-top: 50px;"></ContactPage>
   </div>
 </template>
 
@@ -27,6 +28,7 @@
 defineOptions({ name: 'headhunting-drill-consultant'})
 import { ref } from 'vue'
 import { consultantData } from '@/utils/headhuntingData'
+import ContactPage from '../components/contact.vue'
 
 const props = defineProps({
   id: {

+ 12 - 12
src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

@@ -43,7 +43,7 @@
           @pageHandleChange="handleChangePage"
         >
           <template #actions="{ item }">
-            <v-btn color="primary" variant="text" @click="handleBinding(item)">{{ $t('enterprise.userManagement.jobBinding') }}</v-btn>
+            <!-- <v-btn color="primary" variant="text" @click="handleBinding(item)">{{ $t('enterprise.userManagement.jobBinding') }}</v-btn> -->
             <v-btn v-if="item.status === '1' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 0, item)">{{ $t('enterprise.userManagement.enable') }}</v-btn>
             <v-btn v-if="item.status === '0' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 1, item)">{{ $t('enterprise.userManagement.disable') }}</v-btn>
             <v-btn color="primary" variant="text" @click="handleChangeEmail(item)">修改员工邮箱</v-btn>
@@ -183,17 +183,17 @@ const handleAction = (type, index, item) => {
 }
 
 // 绑定岗位
-const handleBinding = async (item) => {
-  if (!postList.value.length) {
-    Snackbar.warning(t('enterprise.userManagement.postNodataToAdd'))
-    return
-  }
-  bindQuery.value.id = item.id
-  const obj = formItems.value.options.find(e => e.key === 'postId')
-  obj.items = postList.value
-  obj.value = item.postId
-  show.value = true
-}
+// const handleBinding = async (item) => {
+//   if (!postList.value.length) {
+//     Snackbar.warning(t('enterprise.userManagement.postNodataToAdd'))
+//     return
+//   }
+//   bindQuery.value.id = item.id
+//   const obj = formItems.value.options.find(e => e.key === 'postId')
+//   obj.items = postList.value
+//   obj.value = item.postId
+//   show.value = true
+// }
 
 const handleAdd = (type) => {
   // type: 类型(0 邀请同事 | 1 邀请子公司)

+ 12 - 12
src/views/recruit/enterprise/systemManagement/userManagement/index.vue

@@ -15,7 +15,7 @@
     >
       <template #bottom></template>
       <template v-slot:item.actions="{ item }">
-        <v-btn color="primary" variant="text" @click="handleBinding(item)">{{ $t('enterprise.userManagement.jobBinding') }}</v-btn>
+        <!-- <v-btn color="primary" variant="text" @click="handleBinding(item)">{{ $t('enterprise.userManagement.jobBinding') }}</v-btn> -->
         <v-btn v-if="item.status === '1' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 0, item)">{{ $t('enterprise.userManagement.enable') }}</v-btn>
         <v-btn v-if="item.status === '0' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 1, item)">{{ $t('enterprise.userManagement.disable') }}</v-btn>
       </template>
@@ -115,17 +115,17 @@ const handleAction = (type, index, item) => {
 }
 
 // 绑定岗位
-const handleBinding = async (item) => {
-  if (!postList.value.length) {
-    Snackbar.warning(t('enterprise.userManagement.postNodataToAdd'))
-    return
-  }
-  bindQuery.value.id = item.id
-  const obj = formItems.value.options.find(e => e.key === 'postId')
-  obj.items = postList.value
-  obj.value = item.postId
-  show.value = true
-}
+// const handleBinding = async (item) => {
+//   if (!postList.value.length) {
+//     Snackbar.warning(t('enterprise.userManagement.postNodataToAdd'))
+//     return
+//   }
+//   bindQuery.value.id = item.id
+//   const obj = formItems.value.options.find(e => e.key === 'postId')
+//   obj.items = postList.value
+//   obj.value = item.postId
+//   show.value = true
+// }
 
 const handleClose = () => {
   show.value = false

+ 2 - 2
src/views/recruit/personal/PersonalCenter/resume/online/components/jobIntention.vue

@@ -142,6 +142,7 @@ const items = ref({
       value: null,
       label: '期望薪资(最低要求) *',
       col: 4,
+      suffix: '元',
       outlined: true,
       rules: [v => !!v || '请输入薪资最低要求']
     },
@@ -151,6 +152,7 @@ const items = ref({
       value: null,
       label: '期望薪资(最高要求) *',
       col: 4,
+      suffix: '元',
       outlined: true,
       flexStyle: 'mx-3',
       rules: [v => !!v || '请输入薪资最高要求']
@@ -320,10 +322,8 @@ const handleEdit = async (item) => {
     if (e.valueKey) {
       e.value = item[e.valueKey]
     } else e.value = item[e.key]
-    // if (e.key === 'industryIdList') e.value = item.industry.map(e => e.nameCn).join('、')
     if (e.key === 'industryIdList') e.value = null
     if (e.key === 'interestedAreaIdList') {
-      // e.value = item.interestedArea && item.interestedArea.length ? item.interestedArea.map(e => e.name).join('、') : []
       e.value = null
       query.interestedAreaIdList = item.interestedAreaIdList && item.interestedAreaIdList.length ? item.interestedAreaIdList : []
     }