|
@@ -44,27 +44,27 @@
|
|
<view class="iconfont icon-a-1_zhaopin" style="color: #e03506; font-size: 30px;"></view>
|
|
<view class="iconfont icon-a-1_zhaopin" style="color: #e03506; font-size: 30px;"></view>
|
|
<view class="hirePrice">{{ `赏金:${commissionCalculation(info.hirePrice, 1)}元` }}</view>
|
|
<view class="hirePrice">{{ `赏金:${commissionCalculation(info.hirePrice, 1)}元` }}</view>
|
|
</view>
|
|
</view>
|
|
|
|
+ <!-- 企业信息 -->
|
|
|
|
+ <view class="topLine mt-5 d-flex" @click="handleToEnterprise">
|
|
|
|
+ <view class="avatarBox">
|
|
|
|
+ <image class="avatar" :src="info.contact?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></image>
|
|
|
|
+ </view>
|
|
|
|
+ <view >
|
|
|
|
+ <view class="contact-name">{{ info.contact?.name }}</view>
|
|
|
|
+ <view class="contact-info">{{ info.enterprise?.name }} {{ info.contact?.postNameCn ? '· ' + info.contact?.postNameCn : '' }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
<!-- 岗位职责 -->
|
|
<!-- 岗位职责 -->
|
|
<view class="topLine fs14 mt-5">
|
|
<view class="topLine fs14 mt-5">
|
|
<view class="fs15 w-600 my5">岗位职责</view>
|
|
<view class="fs15 w-600 my5">岗位职责</view>
|
|
<view v-if="!info.content">暂无</view>
|
|
<view v-if="!info.content">暂无</view>
|
|
- <rich-text v-else class="htmlCss" :nodes="info.content"></rich-text>
|
|
|
|
|
|
+ <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.content)"></rich-text>
|
|
</view>
|
|
</view>
|
|
<!-- 岗位要求 -->
|
|
<!-- 岗位要求 -->
|
|
<view class="topLine mt-5">
|
|
<view class="topLine mt-5">
|
|
<view class="fs15 w-600 my5">岗位要求</view>
|
|
<view class="fs15 w-600 my5">岗位要求</view>
|
|
<view v-if="!info.requirement">暂无</view>
|
|
<view v-if="!info.requirement">暂无</view>
|
|
- <rich-text v-else class="htmlCss" :nodes="info.requirement"></rich-text>
|
|
|
|
- </view>
|
|
|
|
- <!-- 企业信息 -->
|
|
|
|
- <view class="topLine mt-5 d-flex">
|
|
|
|
- <view class="avatarBox">
|
|
|
|
- <image class="avatar" :src="info.contact?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></image>
|
|
|
|
- </view>
|
|
|
|
- <view >
|
|
|
|
- <view class="contact-name">{{ info.contact?.name }}</view>
|
|
|
|
- <view class="contact-info">{{ info.enterprise?.name }} {{ info.contact?.postNameCn ? '· ' + info.contact?.postNameCn : '' }}</view>
|
|
|
|
- </view>
|
|
|
|
|
|
+ <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.requirement)"></rich-text>
|
|
</view>
|
|
</view>
|
|
<!-- 工作地址 -->
|
|
<!-- 工作地址 -->
|
|
<view class="topLine mt-5">
|
|
<view class="topLine mt-5">
|
|
@@ -277,6 +277,23 @@ onShareAppMessage((res) => {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+// 富文本内容处理,去除多余的换行空格等
|
|
|
|
+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 handleToEnterprise = () => {
|
|
|
|
+ uni.navigateTo({
|
|
|
|
+ url: `/pagesB/companyDetail/index?id=${info.value.enterprise?.id}`
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
async function getPositionDetail () {
|
|
async function getPositionDetail () {
|
|
try {
|
|
try {
|
|
loading.value = true
|
|
loading.value = true
|