Browse Source

职位详情海报空格调整

Xiao_123 6 months ago
parent
commit
a636d0f7e7

+ 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']

+ 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('')
 // 获取二维码