|
|
@@ -34,8 +34,8 @@
|
|
|
</div>
|
|
|
|
|
|
<!--发布者&&是企业身份,增加招聘数据展示-->
|
|
|
- <div class="data-wrapper myJobDetail" @click="jumpToDetail('communicated')" v-if="recruitData.role==='owner'">
|
|
|
- <!--<div class="data-wrapper myJobDetail">-->
|
|
|
+ <div class="data-wrapper myJobDetail" @click="jumpToDetail('communicated')" v-if="recruitData.role==='owner'">
|
|
|
+ <!--<div class="data-wrapper myJobDetail">-->
|
|
|
<div class="data-title">招聘数据</div>
|
|
|
<div class="value-box">
|
|
|
<div class="left">已投递: <span>{{recruitData.countApplied || 0}}</span>
|
|
|
@@ -56,7 +56,7 @@
|
|
|
<div class="data-title">公司信息</div>
|
|
|
<div class="value-box">
|
|
|
<div class="left">
|
|
|
- <img :src="defaultIcon(recruitData.companyInfo && recruitData.companyInfo.logo)" alt="" />
|
|
|
+ <img :src="defaultIcon(recruitData.companyInfo && recruitData.companyInfo.logo)" alt=""/>
|
|
|
</div>
|
|
|
<div class="center">
|
|
|
<div class="ctitle" :class="calcCompanyVip"><p>{{recruitData.companyInfo.name}}</p></div>
|
|
|
@@ -96,7 +96,8 @@
|
|
|
<!--不是发布者-->
|
|
|
<template v-else-if="recruitData.role==='developer'">
|
|
|
<div class="btn-list" v-if="recruitData.status==='3'">
|
|
|
- <div class="btn-item applyBtn" @click="handleSendClick()" :class="{none: Number(recruitData.applicationState) === 1}">
|
|
|
+ <div class="btn-item applyBtn" @click="handleSendClick()"
|
|
|
+ :class="{none: Number(recruitData.applicationState) === 1}">
|
|
|
{{Number(recruitData.applicationState) === 1 ? '已投递': '投递'}}
|
|
|
</div>
|
|
|
<div class="btn-item " @click="handleContactClick()">
|
|
|
@@ -126,32 +127,18 @@
|
|
|
:href="item.url"
|
|
|
:title="item.name"
|
|
|
>
|
|
|
- <p v-if="index!==breadcrumbList.length-1">{{item.name}} <span> > </span> </p>
|
|
|
+ <p v-if="index!==breadcrumbList.length-1">{{item.name}} <span> > </span></p>
|
|
|
<h1 v-else>{{item.name}}</h1>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div class="contentArea">
|
|
|
- <div class="leftArea">
|
|
|
+ <div class="jobTitleArea">
|
|
|
<div class="jobTitle">{{recruitData.title}}</div>
|
|
|
- <div class="publishTime">发布时间:<span>{{recruitData.auditAtFormat}}</span></div>
|
|
|
- <div class="workTime">经验要求:<span>{{recruitData.experienceName}}</span></div>
|
|
|
- <div class="skills">技能要求:<span>{{recruitData.skills.map(s=> s.name).join(',')}}</span></div>
|
|
|
- <div class="desc">
|
|
|
- <div class="descTitle">
|
|
|
- 工作描述:
|
|
|
- </div>
|
|
|
- <div class="descValue" v-html="whiteSpace(recruitData.description)">>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="btnArea">
|
|
|
- <div class="btn submitNow" :class="{noneClick: recruitData.role === 'owner'}" @click="showGoAppTipsHandler">
|
|
|
- <p>立即申请</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="rightArea">
|
|
|
<div class="jobPrice">{{recruitData.salaryName}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="skills">技能要求:<span>{{recruitData.skills.map(s=> s.name).join(',')}}</span></div>
|
|
|
+ <div class="workTime">经验要求:<span>{{recruitData.experienceName}}</span></div>
|
|
|
+ <div class="publishUser">
|
|
|
<div class="userInfo" @click="jumpToCompany">
|
|
|
<div class="img" :class="calcUserVip">
|
|
|
<img :src="defaultIcon(recruitData.ownerInfo && recruitData.ownerInfo.iconUrl)" alt="">
|
|
|
@@ -160,16 +147,41 @@
|
|
|
{{recruitData.ownerInfo.nickname}}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="qrcode" v-if="qrCodeBase64">
|
|
|
- <img class="code" :src="qrCodeBase64" alt="">
|
|
|
- <img class="logo" src="~@/assets/img/job/logo_icon_reverse2.jpg" alt="">
|
|
|
+ <div class="publishTime"><span>{{recruitData.auditAtFormat}}</span></div>
|
|
|
+ </div>
|
|
|
+ <div class="desc">
|
|
|
+ <div class="descTitle">
|
|
|
+ 工作描述:
|
|
|
+ </div>
|
|
|
+ <div class="descValue" v-html="whiteSpace(recruitData.description)">>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="companyInfoArea">
|
|
|
+ <div class="companyTitle">公司信息</div>
|
|
|
+ <div class="companyInfo">
|
|
|
+ <div class="img">
|
|
|
+ <img :src="defaultIcon(recruitData.companyInfo && recruitData.companyInfo.logo)" alt=""/>
|
|
|
+ </div>
|
|
|
+ <div class="ctitle" :class="calcCompanyVip"><p>{{recruitData.companyInfo.name}}</p></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="btnArea">
|
|
|
+ <div class="btn submitNow" :class="{noneClick: recruitData.role === 'owner'}" @click="showGoAppTipsHandler">
|
|
|
+ <p>立即申请</p>
|
|
|
</div>
|
|
|
- <p class="tips">使用程序员客栈APP,扫描二维码,</p>
|
|
|
- <p class="tips">直接与雇主沟通!</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!--<div class="rightArea">-->
|
|
|
+ <!--<div class="qrcode" v-if="qrCodeBase64">-->
|
|
|
+ <!--<img class="code" :src="qrCodeBase64" alt="">-->
|
|
|
+ <!--<img class="logo" src="~@/assets/img/job/logo_icon_reverse2.jpg" alt="">-->
|
|
|
+ <!--</div>-->
|
|
|
+ <!--<p class="tips">使用程序员客栈APP,扫描二维码,</p>-->
|
|
|
+ <!--<p class="tips">直接与雇主沟通!</p>-->
|
|
|
+ <!--</div>-->
|
|
|
<BottomBanner></BottomBanner>
|
|
|
-
|
|
|
<SeoFooter style="margin-top: 30px;" :data="footer"/>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -196,7 +208,7 @@
|
|
|
const PERSONAL = 2;
|
|
|
export default {
|
|
|
name: "JobListSeoDetail",
|
|
|
- components: {SeoFooter, BottomBanner},
|
|
|
+ components: { SeoFooter, BottomBanner },
|
|
|
data() {
|
|
|
return {
|
|
|
showConfirm: false,
|
|
|
@@ -218,11 +230,11 @@
|
|
|
'content': `${this.recruitData.title}`
|
|
|
} ],
|
|
|
link: [
|
|
|
- { rel: 'canonical', href: this.nowUrl},
|
|
|
+ { rel: 'canonical', href: this.nowUrl },
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
- async asyncData({...params}) {
|
|
|
+ async asyncData({ ...params }) {
|
|
|
try {
|
|
|
params.store.commit("updateNoneCommonFooter", true)
|
|
|
} catch ( e ) {
|
|
|
@@ -246,9 +258,9 @@
|
|
|
|
|
|
/** 处理面包屑导航 **/
|
|
|
let dealBreadcrumbList = [
|
|
|
- { name: '首页', url: "/" },
|
|
|
- { name: '兼职招聘', url: "/job/" },
|
|
|
- { name: recruitData.title, url: `/job/detail/${recruitData.id}.html` },
|
|
|
+ { name: '首页', url: "/" },
|
|
|
+ { name: '兼职招聘', url: "/job/" },
|
|
|
+ { name: recruitData.title, url: `/job/detail/${recruitData.id}.html` },
|
|
|
]
|
|
|
|
|
|
let dealSeoFooterObj = new DealSeoFooter(params, recruitData)
|
|
|
@@ -256,7 +268,7 @@
|
|
|
|
|
|
let nowUrl = ""
|
|
|
try {
|
|
|
- const { headers: {host} } = params.app.context.req || {};
|
|
|
+ const { headers: { host } } = params.app.context.req || {};
|
|
|
let { fullPath } = params.app.context.route
|
|
|
//设置baseLink
|
|
|
if (host.indexOf('local') !== -1) {
|
|
|
@@ -264,7 +276,7 @@
|
|
|
} else {
|
|
|
nowUrl = 'https://' + host + fullPath
|
|
|
}
|
|
|
- } catch (e) {
|
|
|
+ } catch ( e ) {
|
|
|
console.log(e)
|
|
|
}
|
|
|
|
|
|
@@ -330,34 +342,34 @@
|
|
|
}
|
|
|
//处理分享信息
|
|
|
//
|
|
|
- if (this.$deviceType.app) {
|
|
|
- try {
|
|
|
- // briefIntroduction: "全球不哈的吧"
|
|
|
- // description: "测试公司介绍"
|
|
|
- // logo: "https://inn.proginn.com/useralbum/666709/5e43f82e9fe94/recordsay1581512750.jpg"
|
|
|
- // name: "程序员"
|
|
|
- // shortName: ""
|
|
|
- // uid: "666709"
|
|
|
- // website: "http://jjjjjj"
|
|
|
- let {companyInfo: {name, shortName, logo}, description, occupationName, workTypeName,salaryName } = this.recruitData
|
|
|
- let companyName = shortName || name
|
|
|
- if (companyName.length > 7) {
|
|
|
- companyName = companyName.slice(0, 7) + '...'
|
|
|
- }
|
|
|
- let shareData = {
|
|
|
- title: `【程序员客栈】强烈推荐!${companyName}正在招聘${workTypeName}兼职${occupationName}工程师,待遇${salaryName}!`,
|
|
|
- description: "找程序员上程序员客栈~ ",
|
|
|
- logo_url: logo
|
|
|
- }
|
|
|
- console.log("分享信息", shareData )
|
|
|
- if (this.$deviceType.android) {
|
|
|
- shareData = JSON.stringify(shareData)
|
|
|
- }
|
|
|
- window.app_event.load_share_data(shareData)
|
|
|
- } catch (e) {
|
|
|
- console.log("处理分享信息 error ", e)
|
|
|
- }
|
|
|
- }
|
|
|
+ if (this.$deviceType.app) {
|
|
|
+ try {
|
|
|
+ // briefIntroduction: "全球不哈的吧"
|
|
|
+ // description: "测试公司介绍"
|
|
|
+ // logo: "https://inn.proginn.com/useralbum/666709/5e43f82e9fe94/recordsay1581512750.jpg"
|
|
|
+ // name: "程序员"
|
|
|
+ // shortName: ""
|
|
|
+ // uid: "666709"
|
|
|
+ // website: "http://jjjjjj"
|
|
|
+ let { companyInfo: { name, shortName, logo }, description, occupationName, workTypeName, salaryName } = this.recruitData
|
|
|
+ let companyName = shortName || name
|
|
|
+ if (companyName.length > 7) {
|
|
|
+ companyName = companyName.slice(0, 7) + '...'
|
|
|
+ }
|
|
|
+ let shareData = {
|
|
|
+ title: `【程序员客栈】强烈推荐!${companyName}正在招聘${workTypeName}兼职${occupationName}工程师,待遇${salaryName}!`,
|
|
|
+ description: "找程序员上程序员客栈~ ",
|
|
|
+ logo_url: logo
|
|
|
+ }
|
|
|
+ console.log("分享信息", shareData)
|
|
|
+ if (this.$deviceType.android) {
|
|
|
+ shareData = JSON.stringify(shareData)
|
|
|
+ }
|
|
|
+ window.app_event.load_share_data(shareData)
|
|
|
+ } catch ( e ) {
|
|
|
+ console.log("处理分享信息 error ", e)
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
async getRecruit() {
|
|
|
@@ -440,7 +452,7 @@
|
|
|
},
|
|
|
async handleContactClick() {
|
|
|
// 是否是APP
|
|
|
- if ( this.judgeToDownloadApp() ) {
|
|
|
+ if (this.judgeToDownloadApp()) {
|
|
|
return
|
|
|
}
|
|
|
if (this.recruitData.loginStatus === -99) {
|
|
|
@@ -473,7 +485,7 @@
|
|
|
/** 投递 **/
|
|
|
async handleSendClick() {
|
|
|
// 是否是APP
|
|
|
- if ( this.judgeToDownloadApp() ) {
|
|
|
+ if (this.judgeToDownloadApp()) {
|
|
|
return
|
|
|
}
|
|
|
const { applicationState, id } = this.recruitData
|
|
|
@@ -580,7 +592,7 @@
|
|
|
},
|
|
|
//创建二维码
|
|
|
createCode(url) {
|
|
|
- console.log('warn' ,url)
|
|
|
+ console.log('warn', url)
|
|
|
qrcode.toDataURL(url, {
|
|
|
width: 250,
|
|
|
margin: 0,
|