Explorar el Código

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

lifanagju_citu hace 6 meses
padre
commit
4f6d30454a

+ 0 - 1
components.d.ts

@@ -31,7 +31,6 @@ declare module 'vue' {
     Details: typeof import('./src/components/Enterprise/details.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
-    ElWatermark: typeof import('element-plus/es')['ElWatermark']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
     HeadSearch: typeof import('./src/components/headSearch/index.vue')['default']

+ 4 - 11
src/layout/personal/footer.vue

@@ -51,28 +51,21 @@
       </div>
     </div>
   </div>
-  <PreviewImg v-if="showPreview" :list="[imgUrl]" :hideDownload="true" @close="showPreview = !showPreview"></PreviewImg>
 </template>
 
 <script setup>
-import { ref } from 'vue'
-
 defineOptions({ name: 'personal-footer' })
 const list = [
-  // { label: 'Copyright © 2024招聘人才网', path: '' },
   { label: '苏ICP备2024103111号-1', openPath: 'https://beian.miit.gov.cn/#/Integrated/index' },
   { label: '苏ICP备2024103111号-4', openPath: 'https://beian.miit.gov.cn/#/Integrated/index' },
-  { label: '电子营业执照', path: '', img: 'https://minio.citupro.com/dev/menduner/businessLicense.jpg' },
+  { label: '电子营业执照', path: '', id: 'business license' },
   { label: '公安备案号 32059002001928', openPath: 'https://beian.mps.gov.cn/#/query/webSearch?code=32059002001928', iconImg: 'https://minio.citupro.com/dev/menduner/RecordIcon.png' },
-  { label: '人力资源服务许可证', img: 'https://minio.citupro.com/dev/menduner/humanResourcesLicense.jpg' }
+  { label: '人力资源服务许可证', id: 'Human Resources License' }
 ]
 
-const showPreview = ref(false)
-let imgUrl = ''
 const handleClick = (item) => {
-  if (item.img) {
-    imgUrl = item.img
-    showPreview.value = true
+  if (item.id) {
+    window.open('/qualificationCertificate?id=' + item.id)
   } else if (item.openPath) {
     window.open(item.openPath)
   }

+ 12 - 1
src/router/modules/recruit.js

@@ -114,7 +114,18 @@ const recruit = [
         },
       }
     ]
-  }
+  },
+  {
+    path: '/qualificationCertificate',
+    component: Layout,
+    children: [
+      {
+        path: '/qualificationCertificate',
+        component: () => import('@/views/common/qualificationCertificate.vue'),
+        name: 'QualificationCertificate'
+      }
+    ]
+  },
 ]
 
 setLoginType(recruit, 'personalCommon'),

+ 8 - 9
src/utils/headhuntingData.js

@@ -73,16 +73,15 @@ export const serviceData = [
   {
     title: '多样化的人才网络',
     id: 'diversified-talent-network',
-    startDesc: '门墩儿猎头深知企业在招募高级管理人员时,高管信誉与资质的重要性。为此,我们推出了高管信誉与资质验证服务,这是一项专业的背景调查和资质审核服务,旨在为企业提供准确、可靠的高管候选人评估,确保企业能够招募到具备优秀职业道德和过硬专业能力的高层领导。',
-    startTitle: '以下是高管信誉与资质验证服务的详细描述:',
-    endDesc: '门墩儿猎头的高管信誉与资质验证服务,为企业招募高管提供了坚实的安全保障,帮助企业规避了因高管个人问题带来的风险,确保了企业高层管理的稳定性和企业声誉的完整性。通过我们的专业服务,企业能够更加放心地选拔和任用高层管理人才,为企业的长远发展保驾护航。',
+    startDesc: '门墩儿平台作为一个专注于酒店行业高端人才的职业发展平台,通过汇聚并连接来自不同背景、专业领域和具有不同技能的酒店业资深人士及青年英才,形成一个多元化包容性强的人才资源库。',
+    startTitle: '门墩儿多样化人才网络包含了多个重要的人才类型,这些人才在酒店行业中发挥着至关重要的作用:',
+    endDesc: '门墩儿多样化人才网络致力于连接酒店从业者、酒店雇主和业主,借助先进的信息技术以及广阔的行业人脉,为高端人才和酒店行业企业提供优质的社交平台与专业的职场发展服务。',
     children: [
-      '1. 信誉调查:门墩儿猎头通过严格的调查流程,对高管候选人的职业背景、个人声誉、法律记录等进行深入调查,包括但不限于工作经历、教育背景、信用记录、社会关系等,以确保候选人的信誉良好。',
-      '2. 资质审核:我们对候选人的专业资质进行详细审核,包括专业资格证书、行业认证、荣誉奖项等,确保候选人的专业能力符合企业的要求。',
-      '3. 工作表现评估:门墩儿猎头通过与候选人前任雇主、同事、下属的沟通,了解其在以往工作中的表现和领导风格,为企业的决策提供参考。',
-      '4. 道德风险评估:我们评估候选人是否存在潜在的商业道德风险,如利益冲突、不正当竞争等,为企业规避潜在的风险。',
-      '5. 综合报告:门墩儿猎头根据调查和审核结果,提供一份详尽的综合报告,为企业决策提供客观、全面的参考依据。',
-      '6. 法律合规性:我们的服务严格遵守相关法律法规,确保调查过程的合法性、合规性,保护候选人的隐私权益。'
+      '1. 酒店经营管理决策者:这类人才具有丰富的酒店管理经验和卓越的决策能力,能够制定并实施有效的经营策略,推动酒店的持续发展和创新。他们可能包括酒店总经理、副总经理、运营总监等高级管理人员。',
+      '2. 酒店行业资深人士:在酒店行业中拥有深厚的资历和丰富的经验,对酒店行业的运营、管理、市场趋势等方面有着深入的了解和独到的见解。他们可能包括各部门经理、资深顾问、行业专家等。',
+      '3. 青年英才:虽然年轻但具备出色的学习能力、创新思维和适应能力,是酒店行业未来的希望。门墩儿平台通过提供定制职业规划等服务,支持这些青年英才的职业发展,使他们能够快速成长为酒店行业的中坚力量。',
+      '4. 数智化人才:随着旅游业从劳动密集型向以数据驱动的商业模式发展,数智化人才在酒店行业中的需求日益增加。他们具备数据分析、信息技术、人工智能等方面的专业技能,能够推动酒店业务的数字化、智能化转型。',
+      '5. 多元化背景人才:门墩儿多样化人才网络还注重吸纳具有不同文化背景、国籍、性别等多元化背景的人才。这些人才能够为酒店行业带来更加丰富的视角和创新思维,提升酒店的国际竞争力和跨文化服务能力。',
     ]
   },
   {

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

@@ -20,8 +20,9 @@
           <div class="ceo"></div>
           <p class="mt-2 consultant-item__name">创始人 田森博士(Simon Tian)</p>
         </div>
+        <img class="mt-15" src="https://minio.menduner.com/dev/menduner/team.jpg" alt="" style="width: 100%; height: 335px;">
       </div>
-      <div class="py-15">
+      <div class="pb-15">
         <v-divider></v-divider>
         <h1 class="title mt-15">学术和行业之声</h1>
         <div class="mt-10">

+ 25 - 0
src/views/common/qualificationCertificate.vue

@@ -0,0 +1,25 @@
+<template>
+  <div class="default-width py-5">
+    <img :src="data.url" alt="" style="width: 100%; height: 100%;">
+  </div>
+</template>
+
+<script setup>
+defineOptions({ name: 'QualificationCertificate'})
+import { useRouter } from 'vue-router'
+
+const router = useRouter()
+const id = router.currentRoute.value.query?.id
+const list = [
+  { id: 'business license', url: 'https://minio.citupro.com/dev/menduner/businessLicense.jpg', title: '营业执照' },
+  { id: 'Human Resources License', url: 'https://minio.citupro.com/dev/menduner/humanResourcesLicense.jpg', title: '人力资源许可证' }
+]
+
+const data = list.find(e => e.id === id)
+document.title = import.meta.env.VITE_APP_TITLE + ' - ' +  data.title
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

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

@@ -141,7 +141,7 @@ const handleClick = (type, id) => {
   height: 480px;
   color: #fff;
   font-weight: 700;
-  background-image: url('https://minio.citupro.com/dev/menduner/headhunting/ad.jpeg');
+  background-image: url('https://minio.menduner.com/dev/menduner/banner.png');
   background-size: cover;
   background-repeat: no-repeat;
   background-position: center center;

+ 13 - 12
src/views/headhunting/components/serviceContent.vue

@@ -34,6 +34,7 @@
         <div class="d-flex industry">
           <div class="industry-item mt-5">
             <p class="font-size-16">{{ k.desc }}</p>
+            <p class="font-size-16 mt-5">{{ k.subDesc }}</p>
           </div>
           <div class="industry-item mt-5 industry-right ml-15 d-flex">
             <ul style="list-style-type: none; width: 50%;">
@@ -58,19 +59,19 @@ const router = useRouter()
 
 // 我们的服务
 const service = ref([
-  { title: '高级管理精英甄选', desc: '我们协助世界一流企业构建成功的领导团队。', active: false, id: 'selection-senior-management-elite' },
-  { title: '人才发展储备策略', desc: '我我们协助建立专业合规、经验丰富且多元化的董事会,并为董事会交接、业绩及治理等问题提供建议。', id: 'talent-development-reserve-strategy' },
-  { title: '管理者能力提升方案', desc: '我们在CEO继任领域拥有数十年的顾问经验,致力于协助董事会制定、规划和执行CEO继任的全过程。', id: 'manager-capability-enhancement-plan' },
-  { title: '卓越成长轨迹', desc: '我们的综合评估方法能提供翔实数据和深入见解,从而评价和预测领导者的表现、契合度和影响力。', active: false, id: 'excellent-growth-trajectory' },
-  { title: '高管信誉与资质验证', desc: '我们提供甄选和培养领导者、优化团队效能,以及评估和改进企业文化所需的见解。', active: false, id: 'senior-management-elite-verification' },
-  { title: '多样化的人才网络', desc: '我们提供的高管和董事人选,能够制定明确的数字化战略,并驾驭企业转型所需的人才、运营及文化变革。', active: false, id: 'diversified-talent-network' }
+  { title: '高级管理精英甄选', desc: '我们有能力挖掘具备卓越领导力、深远战略眼光及高效执行能力的行业翘楚。', active: false, id: 'selection-senior-management-elite' },
+  { title: '人才发展储备策略', desc: '我们能协助企业构建系统化的人才培养与储备体系,确保组织持续拥有适应未来发展的高素质人才梯队。', id: 'talent-development-reserve-strategy' },
+  { title: '管理者能力提升方案', desc: '我们将根据管理者的能力制定个性化提升方案,聚焦领导力、决策力与团队管理能力等综合提升,以实战培训与持续发展计划为核心。', id: 'manager-capability-enhancement-plan' },
+  { title: '卓越成长轨迹', desc: '酒店职业经理人在持续学习、勇于挑战与不断自我超越中所展现出的非凡成长历程与成就路径。', active: false, id: 'excellent-growth-trajectory' },
+  { title: '高管信誉与资质验证', desc: '是确保企业高层管理者具备专业能力、诚信品质与合法资质的综合评估过程。', active: false, id: 'senior-management-elite-verification' },
+  { title: '多样化的人才网络', desc: '我们是人力资源一体化平台,涵盖不同背景、技能与经验的人才资源库,促进企业创新与多元化发展。', active: false, id: 'diversified-talent-network' }
 ])
 
 const list = [
   {
-    title: '我们服务的行业',
-    desc: '最佳的领导力决策,源于对行业动态及企业关键需求的深入理解。我们的顾问在各自领域拥有丰富的实践经验。凭借一套行之有效的高管寻访流程,我们能够帮助您找到与企业独特需求无缝对接,且适应竞争环境的领导者。凭借我们的经验、国际声望,以及与卓越领导者的深厚关系,我们能够在全球范围内寻觅炙手可热的候选人。',
-    btnTitle: '查看所有行业',
+    title: '我们服务的行业 - 酒店业',
+    desc: '我们致力于为酒店行业领域提供深度与广度兼具的服务,全面覆盖了酒店集团总部、业主公司、连锁酒店及公寓,以及单体酒店等多个关键层面。这不仅体现了对酒店行业多元化生态的深刻理解,更彰显了我们对于满足不同客户需求、推动行业发展的坚定承诺。',
+    subDesc: '我们全方位服务于酒店行业的多个细分领域,致力于为客户提供专业、高效且个性化的服务。我们坚信通过努力与付出将能够为酒店行业的繁荣发展贡献一份力量。',
     items1: [
       { title: '酒店集团总部', id: 'hotel-group-headquarters' },
       { title: '业主公司', id: 'owner-company' },
@@ -79,9 +80,9 @@ const list = [
     ]
   },
   {
-    title: '我们服务的行业',
-    desc: '最佳的领导力决策,源于对行业动态及企业关键需求的深入理解。我们的顾问在各自领域拥有丰富的实践经验。凭借一套行之有效的高管寻访流程,我们能够帮助您找到与企业独特需求无缝对接,且适应竞争环境的领导者。凭借我们的经验、国际声望,以及与卓越领导者的深厚关系,我们能够在全球范围内寻觅炙手可热的候选人。',
-    btnTitle: '查看所有职能',
+    title: '我们服务的行业 - 泛服务业',
+    desc: '在泛服务业的广阔天地里,我们正以前所未有的热情与智慧,推动着一系列关键领域的革新与进步。这些领域,包括新餐饮、邮轮产业、高端民宿、旅游及地产、体育与休闲业、会展业、医院与博物馆等,共同织就了一幅多元化高品质的服务业生态画卷。',
+    subDesc: '泛服务业的各个领域正以蓬勃的姿态,推动着经济的繁荣和社会的进步。未来,随着科技的不断进步和消费者需求的日益多样化,泛服务业将继续迎来新的发展机遇和挑战,我们期待着在这一广阔的舞台上,共同书写更加辉煌的篇章。',
     items1: [
       { title: '新餐饮', id: 'new-catering' },
       { title: '高端民宿', id: 'high-end-cottage' },

+ 2 - 2
src/views/recruit/personal/position/components/details.vue

@@ -278,8 +278,8 @@ const generateAndDownloadImage = async () => {
 // 保存图片到本地
 const handleDownloadImage = () => {
   const { name, areaName, payFrom, payTo } = info.value
-  const salary = payFrom && payTo ? `${payFrom ? '_' + payFrom + '-' : ''}${payTo}` : '面议'
-  downloadBase64(previewSrc.value, `${name}${areaName ? '_' + areaName : ''}${salary}-${positionInfo.value.payName}`)
+  const salary = payFrom && payTo ? `${payFrom ? '_' + payFrom + '-' : ''}${payTo}` : '-面议'
+  downloadBase64(previewSrc.value, `${name}${areaName ? '_' + areaName : ''}${salary}${positionInfo.value.payName ? '-' + positionInfo.value.payName : ''}`)
   setTimeout(() => {
     Snackbar.success('下载成功')
   }, 500);

+ 12 - 2
src/views/recruit/personal/position/components/poster.vue

@@ -36,14 +36,14 @@
             <div class="resume-header">
               <div class="introduce-title">{{ $t('position.jobResponsibilities') }}</div>
             </div>
-            <div class="requirement" v-html="info.content?.replace(/\n/g, '</br>')"></div>
+            <div class="requirement" v-html="cleanedHtml(info.content)"></div>
           </div>
 
           <div v-if="info.requirement" class="resume-box pa-0">
             <div class="resume-header">
               <div class="introduce-title">{{ $t('position.jobRequirements') }}</div>
             </div>
-            <div class="requirement" v-html="info.requirement?.replace(/\n/g, '</br>')"></div>
+            <div class="requirement" v-html="cleanedHtml(info.requirement)"></div>
           </div>
 
           <div class="px-5 py-3 d-flex justify-space-evenly align-center mt-10 radius" style="background-color: #e3f2f0">
@@ -77,6 +77,16 @@ const props = defineProps({
   id: String
 })
 
+// 富文本内容处理,去除多余的换行空格等
+const cleanedHtml = (text) => {
+  let cleaned = text.replace(/\n/g, '</br>')
+  cleaned = cleaned.replace(/\s+/g, ' ').trim()
+  cleaned = cleaned.replace(/(^|\s+)<\/p>(\s*<p>|$)/g, '</p><p>').trim()
+  cleaned = cleaned.replace(/<p>\s*(<br>)\s*<\/p>/g, '')
+  cleaned = cleaned.replace(/<p>\s*(<\/br>)\s*<\/p>/g, '')
+  return cleaned
+}
+
 const userInfo = localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : {}
 const url = ref('')
 // 获取二维码