|
|
|
|
@ -104,7 +104,7 @@
|
|
|
|
|
<div class="subsetleft" v-show="!skeletonshow">
|
|
|
|
|
<div class="info">
|
|
|
|
|
<div class="imgbox">
|
|
|
|
|
<img v-if="store.logo" :src="store.logo" alt />
|
|
|
|
|
<img v-if="jobDetail.logo || store.logo" :src="jobDetail.logo || store.logo" alt />
|
|
|
|
|
<img v-else src="../../../static/img/nopicture.png" alt />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jobinfobox">
|
|
|
|
|
@ -124,7 +124,7 @@
|
|
|
|
|
<a-tag v-for="(item, index) in jobDetail.jobSpecialLabelNames" :key="index">{{ item }}</a-tag>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag">
|
|
|
|
|
<a-tag style="backgroundcolor: #f5f5f5">暂无特色</a-tag>
|
|
|
|
|
<a-tag style="background-color: #f5f5f5">暂无特色</a-tag>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex; align-items: center; height: 26px; margin-top: 16px">
|
|
|
|
|
<div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)"></div>
|
|
|
|
|
@ -168,9 +168,18 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sub-bottombox fss">
|
|
|
|
|
<button type="primary" class="jobDespBtn" v-if="jobClassify == 1">
|
|
|
|
|
<a :href="jobDetail.customServiceUrl" target="_blank"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
|
|
<a-dropdown :trigger="['click']" overlayClassName="special-dropdown" v-else>
|
|
|
|
|
<button type="primary" class="jobDespBtn">
|
|
|
|
|
<a :href="customServiceUrl" target="_blank"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
|
|
|
|
|
<a href="javascript:;" target="_blank"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
|
|
|
|
|
</button>
|
|
|
|
|
<a-menu slot="overlay" style="padding: 0 10px">
|
|
|
|
|
<a-menu-item v-for="(item, index) in customServiceUsers" :key="index"> <i class="iconfont icon-dianhua1 mr4 f14" style="color: #ff4400"></i>{{ item.aliasName }} {{ item.tel }} </a-menu-item>
|
|
|
|
|
</a-menu>
|
|
|
|
|
</a-dropdown>
|
|
|
|
|
<button class="dropdown bottombox1" @click="torecord()" v-if="jobDetail.recruitment == '1'">报名</button>
|
|
|
|
|
<button class="norecruitment bottombox1" v-else>暂时停招</button>
|
|
|
|
|
</div>
|
|
|
|
|
@ -199,35 +208,39 @@
|
|
|
|
|
<span>{{ jobDetail.salaryDetail || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>薪资发放</span>
|
|
|
|
|
<span slot="label" class>发薪日</span>
|
|
|
|
|
<span>{{ jobDetail.payDay || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>保险</span>
|
|
|
|
|
<span>{{ jobDetail.employeeInsurance || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>银行卡</span>
|
|
|
|
|
<span>{{ jobDetail.bankInfo || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>押金</span>
|
|
|
|
|
<span>{{ jobDetail.mealCardDeposit || "-" }}</span>
|
|
|
|
|
<span>{{ jobDetail.foregift || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>培训</span>
|
|
|
|
|
<span slot="label" class>培训/试用期</span>
|
|
|
|
|
<span>{{ jobDetail.training || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<!-- <a-descriptions-item>
|
|
|
|
|
<span slot="label" class>试用期</span>
|
|
|
|
|
<span>{{ jobDetail.probation || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions-item> -->
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>福利待遇</span>
|
|
|
|
|
<span>{{ jobDetail.boon || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<!-- <a-descriptions-item>
|
|
|
|
|
<span slot="label" class>薪资说明</span>
|
|
|
|
|
<span style="white-space: break-spaces">
|
|
|
|
|
{{ jobDetail.salaryDesp || "-" }}
|
|
|
|
|
</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions-item> -->
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 岗位要求 -->
|
|
|
|
|
@ -247,9 +260,13 @@
|
|
|
|
|
</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>文化学历</span>
|
|
|
|
|
<span slot="label" class>文化要求</span>
|
|
|
|
|
<span>{{ jobDetail.education || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>体检</span>
|
|
|
|
|
<span>{{ jobDetail.healthRequire || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>证件</span>
|
|
|
|
|
@ -260,11 +277,6 @@
|
|
|
|
|
<span slot="label" class>疑难杂症</span>
|
|
|
|
|
<span>{{ jobDetail.otherRequireStr || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>体检</span>
|
|
|
|
|
<span>{{ jobDetail.healthRequire || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 基本信息 -->
|
|
|
|
|
@ -293,10 +305,6 @@
|
|
|
|
|
<span slot="label" class>车间</span>
|
|
|
|
|
<span>{{ jobDetail.securityCheck || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item>
|
|
|
|
|
<span slot="label" class>保险</span>
|
|
|
|
|
<span>{{ jobDetail.employeeInsurance || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -327,7 +335,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div class="required" id="abutment">
|
|
|
|
|
<div class="mb12 mt20">对接信息</div>
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc">
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc" v-if="jobClassify == 1">
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>面试时间</span>
|
|
|
|
|
<span>{{ jobDetail.interviewDuration || "-" }}</span>
|
|
|
|
|
@ -336,10 +344,6 @@
|
|
|
|
|
<span slot="label" class>面试地点</span>
|
|
|
|
|
<span>{{ jobPoses.interview.posContent || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<!-- <a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>宿舍地址</span>
|
|
|
|
|
<span>{{ jobPoses.room.posContent ? jobPoses.room.posContent : "-" }}</span>
|
|
|
|
|
</a-descriptions-item> -->
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>面试说明</span>
|
|
|
|
|
<span>{{ jobDetail.interviewDesp || "-" }}</span>
|
|
|
|
|
@ -353,6 +357,20 @@
|
|
|
|
|
<span>{{ jobDetail.leaveRequire || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc" v-else>
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>驻场信息</span>
|
|
|
|
|
<span>{{ onSiteUsersInfo || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>面试地址</span>
|
|
|
|
|
<span>{{ jobDetail.interviewAddr || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>其他说明</span>
|
|
|
|
|
<span>{{ jobDetail.otherInfo || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a-anchor @click.prevent class="navigation">
|
|
|
|
|
@ -367,7 +385,7 @@
|
|
|
|
|
|
|
|
|
|
<!-- 财务结算 -->
|
|
|
|
|
<div v-else-if="tabchange == 0">
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px">
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px" v-if="jobClassify == 1">
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>服务费详情</span>
|
|
|
|
|
<span>{{ jobDetail.agencyProfit || "-" }}</span>
|
|
|
|
|
@ -390,6 +408,16 @@
|
|
|
|
|
<span>{{ jobDetail.settlementTime || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px" v-else-if="jobClassify == 2">
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>服务费</span>
|
|
|
|
|
<span>{{jobDetail.servetype}}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
<a-descriptions-item class="test1">
|
|
|
|
|
<span slot="label" class>服务费详情</span>
|
|
|
|
|
<span>{{ jobDetail.returnFeeDesp || "-" }}</span>
|
|
|
|
|
</a-descriptions-item>
|
|
|
|
|
</a-descriptions>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else-if="tabchange === 2">
|
|
|
|
|
<div class="pay" id="tip">
|
|
|
|
|
@ -407,13 +435,13 @@
|
|
|
|
|
<h1 class="bottombox" style>
|
|
|
|
|
<i>项目方</i>
|
|
|
|
|
</h1>
|
|
|
|
|
<img style="width: 60px; height: 60px; border-radius: 50%" class="mt24" :src="managerInfo.avatar || 'https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/service.jpg'" alt />
|
|
|
|
|
<div style="color: #333;">
|
|
|
|
|
<img style="width: 60px; height: 60px; border-radius: 50%;display: block;margin: 24px auto 0;" :src="agency.logo || 'https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/service.jpg'" alt />
|
|
|
|
|
<div style="color: #333">
|
|
|
|
|
<p class="f14" style="margin-top: 10px; margin-bottom: 0">
|
|
|
|
|
{{ managerInfo.name }}
|
|
|
|
|
{{ agency.agencyName || "-" }}
|
|
|
|
|
<!-- <i class="iconfont icon-dianhua1 ml4 f14" style="line-height: 24px; color: #ff4400"></i> -->
|
|
|
|
|
</p>
|
|
|
|
|
<img src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/ysd1.png" style="width: 20px;height: 20px;" alt="">
|
|
|
|
|
<!-- <img src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/ysd1.png" style="width: 20px; height: 20px" alt="" /> -->
|
|
|
|
|
<!-- <p class="f16">{{ managerInfo.workPhone || "-" }}</p> -->
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <p class="mt24 f16">{{ managerInfo.workPhone || "-" }}</p>
|
|
|
|
|
@ -501,6 +529,9 @@ export default {
|
|
|
|
|
// 组件状态值
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
agency: {},
|
|
|
|
|
onSiteUsersInfo: "",
|
|
|
|
|
customServiceUsers: [],
|
|
|
|
|
previewVisible: false,
|
|
|
|
|
previewImage: "",
|
|
|
|
|
relationList: [],
|
|
|
|
|
@ -508,6 +539,7 @@ export default {
|
|
|
|
|
storeImage: [],
|
|
|
|
|
storeInfo: {},
|
|
|
|
|
id: "",
|
|
|
|
|
jobClassify: "",
|
|
|
|
|
currentPageNum: this.$route.query.page || "",
|
|
|
|
|
visible: false, // 录单模态框的展示
|
|
|
|
|
xiangdanVisible: false, // 详单的弹出
|
|
|
|
|
@ -726,6 +758,7 @@ export default {
|
|
|
|
|
// console.log(this.$router.matcher.match());
|
|
|
|
|
if (sessionStorage.getItem("PAGE_TYPE")) {
|
|
|
|
|
this.id = JSON.parse(sessionStorage.getItem("PAGE_TYPE")).id;
|
|
|
|
|
this.jobClassify = JSON.parse(sessionStorage.getItem("PAGE_TYPE")).jobClassify;
|
|
|
|
|
this.currentPageNum = JSON.parse(sessionStorage.getItem("PAGE_TYPE")).pageNum;
|
|
|
|
|
|
|
|
|
|
console.log("PAGE_TYPE", JSON.parse(sessionStorage.getItem("PAGE_TYPE")));
|
|
|
|
|
@ -801,27 +834,46 @@ export default {
|
|
|
|
|
async getJobDetail() {
|
|
|
|
|
console.log("this.id", this.id);
|
|
|
|
|
try {
|
|
|
|
|
const { data } = await getJobDetailApi(this.id);
|
|
|
|
|
const { data } = await getJobDetailApi(this.id, this.jobClassify);
|
|
|
|
|
console.log("data", data);
|
|
|
|
|
if (data.status === 200) {
|
|
|
|
|
console.log(data);
|
|
|
|
|
this.jobDetail = disposeJobListData(data.data.storeJob);
|
|
|
|
|
this.jobDetail.jobDesp = data.data.storeJob.jobDesp.replaceAll("*****", "");
|
|
|
|
|
this.jobDetail = disposeJobListData(data.data.record);
|
|
|
|
|
this.jobDetail.jobDesp = data.data.record.jobDesp.replaceAll("*****", "");
|
|
|
|
|
this.customServiceUrl = data.data.customServiceUrl;
|
|
|
|
|
this.positionInfo = data.data.store;
|
|
|
|
|
this.jobPoses = data.data.jobPoses;
|
|
|
|
|
this.agency = data.data.agency;
|
|
|
|
|
this.customServiceUsers = data.data.customServiceUsers;
|
|
|
|
|
|
|
|
|
|
if (data.data.store) {
|
|
|
|
|
this.positionInfo = data.data.store;
|
|
|
|
|
this.store = data.data.store;
|
|
|
|
|
this.positionInfo.desc = this.positionInfo.detailPosition;
|
|
|
|
|
this.positionInfo.containerName = "mapContainer";
|
|
|
|
|
this.positionInfo.name = this.positionInfo.aliasName;
|
|
|
|
|
this.skeletonshow = false;
|
|
|
|
|
this.jobDetail.district = disposeJobListData(data.data.store).district;
|
|
|
|
|
}
|
|
|
|
|
if (data.data.onSiteUsers) {
|
|
|
|
|
this.onSiteUsersInfo = data.data.onSiteUsers.map((item) => `${item.aliasName} ${item.tel}`).join(", ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// console.log(this.jobDetail.jobRequestLabelNames)
|
|
|
|
|
// if(this.jobDetail.jobRequestLabelNames){
|
|
|
|
|
// this.jobDetail.jobRequestLabelNames = this.jobDetail.jobRequestLabelNames.split(',')
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if(this.jobDetail.jobSpecialLabelNames){
|
|
|
|
|
// this.jobDetail.jobSpecialLabelNames = this.jobDetail.jobSpecialLabelNames.split(',')
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.skeletonshow = false;
|
|
|
|
|
console.log(this.jobDetail);
|
|
|
|
|
console.log(this.jobPoses);
|
|
|
|
|
let newdata = {
|
|
|
|
|
id: data.data.storeJob.id,
|
|
|
|
|
aliasName: data.data.store.aliasName,
|
|
|
|
|
jobName: data.data.storeJob.jobName,
|
|
|
|
|
id: data.data.record.id,
|
|
|
|
|
// aliasName: data.data.store.aliasName,
|
|
|
|
|
jobName: data.data.record.jobName,
|
|
|
|
|
};
|
|
|
|
|
this.storeInfo = newdata;
|
|
|
|
|
let regs = /\.(jpg|jpeg|png)(\?.*)?$/;
|
|
|
|
|
@ -833,6 +885,7 @@ export default {
|
|
|
|
|
// console.log(this.storeImage);
|
|
|
|
|
let storeImage = [];
|
|
|
|
|
let storeVideo = [];
|
|
|
|
|
if(data.data.storeImage){
|
|
|
|
|
data.data.storeImage.forEach((item) => {
|
|
|
|
|
console.log(item.url);
|
|
|
|
|
|
|
|
|
|
@ -842,6 +895,20 @@ export default {
|
|
|
|
|
storeVideo.push(item.url);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(data.data.images){
|
|
|
|
|
data.data.images.forEach((item) => {
|
|
|
|
|
console.log(item.url);
|
|
|
|
|
|
|
|
|
|
if (regs.test(item.url.toLowerCase())) {
|
|
|
|
|
storeImage.push(item.url);
|
|
|
|
|
} else {
|
|
|
|
|
storeVideo.push(item.url);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.storeImage = [...storeImage, ...storeVideo];
|
|
|
|
|
console.log("this.storeImage", this.storeImage);
|
|
|
|
|
} else {
|
|
|
|
|
@ -1017,6 +1084,17 @@ export default {
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
|
|
.special-dropdown .ant-dropdown-menu-item:hover {
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
}
|
|
|
|
|
.special-dropdown ul > li {
|
|
|
|
|
border-bottom: 1px solid #eee;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
}
|
|
|
|
|
.special-dropdown ul > li:last-child {
|
|
|
|
|
border-bottom: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.detail-container {
|
|
|
|
|
// overflow: hidden;
|
|
|
|
|
// border-top: 1px solid #eeefef;
|
|
|
|
|
@ -1356,6 +1434,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
.sub-bottombox {
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
|
|
|
|
.bottombox1 {
|
|
|
|
|
width: 116px;
|
|
|
|
|
height: 32px;
|
|
|
|
|
|