You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1035 lines
26 KiB
Vue

4 years ago
<template>
<div class="detail-container">
4 years ago
<a-modal
4 years ago
title="报名"
4 years ago
:visible="visible"
class="modal"
:confirm-loading="confirmLoading"
@ok="handleOk"
@cancel="handleCancel"
:maskClosable="false"
okText="提交"
cancelText="取消"
:destroyOnClose="true"
>
<a-form-model ref="ruleForm" :model="form" :rules="rules" :colon="false">
4 years ago
<a-form-model-item ref="name" label="姓名" prop="name">
4 years ago
<a-input
v-model="form.name"
4 years ago
placeholder="请输入老乡姓名"
4 years ago
@blur="
() => {
$refs.name.onFieldBlur();
}
"
/>
</a-form-model-item>
4 years ago
<a-form-model-item ref="gender" label="性别" prop="gender">
<a-select v-model="form.gender" placeholder="请选择性别">
<a-select-option value="man"></a-select-option>
<a-select-option value="woman"></a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="tel" label="年龄" prop="tel">
4 years ago
<a-input
4 years ago
v-model="form.age"
placeholder="请输入年龄"
4 years ago
@blur="
() => {
$refs.tel.onFieldBlur();
}
"
/>
</a-form-model-item>
4 years ago
<a-form-model-item ref="peoplecard" label="民族" prop="peoplecard">
<a-select v-model="form.nation" placeholder="请选择民族">
<a-select-option
v-for="item in nationlist"
:key="item.id"
:value="item.id"
>{{ item.name }}</a-select-option
>
</a-select>
</a-form-model-item>
<a-form-model-item ref="peoplecard" label="身份证号" prop="peoplecard">
<a-input v-model="form.peoplecard" placeholder="请输入老乡身份证号" />
</a-form-model-item>
<a-form-model-item ref="peoplecard" label="家庭住址" prop="peoplecard">
<a-input v-model="form.location" placeholder="请输入家庭住址" />
</a-form-model-item>
<a-form-model-item ref="username" label="报名企业" prop="username">
<a-select v-model="form.firm" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="username" label="岗位" prop="username">
<a-select v-model="form.post" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="username" label="模式" prop="username">
<a-select v-model="form.pattern" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="username" label="政策" prop="username">
<a-select v-model="form.policy" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="username" label="代理" prop="username">
<a-select v-model="form.proxy" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
4 years ago
</a-form-model-item>
4 years ago
<a-form-model-item ref="username" label="面试时间" prop="username">
<a-select v-model="form.facedate" placeholder="请选择民族">
<a-select-option :value="id">{{ id }}</a-select-option>
</a-select>
4 years ago
</a-form-model-item>
</a-form-model>
</a-modal>
<!-- 面包屑 -->
<a-breadcrumb class="w">
<a-breadcrumb-item href="">
<router-link to="/main"><a-icon type="home" /></router-link>
</a-breadcrumb-item>
<a-breadcrumb-item href="">
<router-link to="/list">
<span>一手职位</span>
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item href="">
<span>企业详情</span>
</a-breadcrumb-item>
</a-breadcrumb>
<!-- 主体区域 -->
4 years ago
<div class="maincontent w">
<div class="maincontentleft">
<div class="subset">
<div class="subsetleft">
<div class="imgbox">
<a-carousel
arrows
:autoplay="true"
effect="fade"
4 years ago
:dots="true"
4 years ago
ref="scrollimg"
4 years ago
v-if="storeImage.length !== 0"
4 years ago
>
<div
slot="prevArrow"
class="custom-slick-arrow"
style="left: 5px; z-index: 99"
>
<a-icon type="left-circle" />
</div>
<div
slot="nextArrow"
class="custom-slick-arrow"
style="right: 5px; z-index: 99"
>
<a-icon type="right-circle" />
</div>
4 years ago
<img
v-for="(item, index) in storeImage"
:key="index"
:src="item"
alt=""
/>
4 years ago
</a-carousel>
4 years ago
<img v-else src="../../../static/img/nopicture.png" alt="" />
4 years ago
</div>
<div class="jobinfobox">
4 years ago
<div class="jobname">{{ jobDetail.aliasName }}</div>
4 years ago
<div class="jobinfo">
4 years ago
<span>{{ jobDetail.district }}</span>
<span>{{ jobDetail.gender }}</span>
4 years ago
<span>{{ jobDetail.age }}</span>
4 years ago
</div>
<div class="jobtag">
4 years ago
<!-- <span>返费</span> -->
4 years ago
<span
v-for="(item, index) in jobDetail.jobSpecialLabelNames"
:key="index"
>{{ item }}</span
>
</div>
<div class="jobpricemonth">
<span>{{ jobDetail.minMonthlyPay }}</span
>-<span>{{ jobDetail.maxMonthlyPay }}</span
>/
</div>
<div class="jobpricehour">
<template v-if="jobDetail.hourlyPay"
><span>{{ jobDetail.hourlyPay }}</span
>/小时</template
>
<template v-else-if="jobDetail.dayPay"
4 years ago
><span>{{ jobDetail.dayPay }}</span
4 years ago
>/</template
>
4 years ago
</div>
<div class="billbutton">
<span>服务费 <i>1.5</i>/小时</span>
4 years ago
<button @click="showmodal"></button>
4 years ago
</div>
</div>
</div>
</div>
4 years ago
<div class="proxy">
<h1><i>代理政策</i></h1>
<div>{{ jobDetail.returnFeeDesp }}</div>
</div>
4 years ago
<div class="jobinformationbox">
4 years ago
<h1><i>职位信息</i></h1>
4 years ago
<div
v-html="jobDetail.baseInfo"
4 years ago
style="white-space: break-spaces; line-height: 2"
4 years ago
></div>
4 years ago
</div>
</div>
<div class="maincontentright">
<div class="hotphone">
4 years ago
<h1 class="bottombox"><i>服务热线</i></h1>
4 years ago
<p>0371-666666666</p>
</div>
<div class="companyinfo">
<div class="companydetail">
4 years ago
<h1 class="bottombox"><i>企业详情</i></h1>
4 years ago
<p style="text-align: center">{{ jobDetail.aliasName }}</p>
4 years ago
<div class="imgbox">
4 years ago
<img v-if="storeImage.length !== 0" :src="storeImage[0]" alt="" />
<img v-else src="../../../static/img/nopicture.png" alt="" />
4 years ago
</div>
<p>
4 years ago
<!-- 我是文案我很长很长我是文案我 很长很长我是文案我很长很长我
是文案我很长很长我是文案我很 长很长 -->
4 years ago
</p>
</div>
<div class="companylocation">
4 years ago
<h1 class="bottombox"><i>企业位置</i></h1>
4 years ago
<div class="imgbox">
<img src="../../assets/map.png" alt="" />
</div>
</div>
</div>
4 years ago
<recommend />
4 years ago
</div>
</div>
</div>
</template>
<script>
4 years ago
import { getJobDetailApi } from "../../api/job";
import { disposeJobListData } from "../../utils/commonUtil";
import recommend from "../../components/FirstJob/components/recommend.vue";
4 years ago
export default {
// 组件名称
name: "",
// 局部注册的组件
4 years ago
components: {
recommend,
},
4 years ago
// 组件参数 接收来自父组件的数据
props: {},
// 组件状态值
data() {
return {
4 years ago
relationList: [],
jobDetail: {},
storeImage: [],
id: this.$route.params.id,
4 years ago
visible: false, // 录单模态框的展示
confirmLoading: false, // 录单提交的loading效果
4 years ago
nationlist: [
{
id: "01",
name: "汉族",
},
{
id: "02",
name: "蒙古族",
},
{
id: "03",
name: "回族",
},
{
id: "04",
name: "藏族",
},
{
id: "05",
name: "维吾尔族",
},
{
id: "06",
name: "苗族",
},
{
id: "07",
name: "彝族",
},
{
id: "08",
name: "壮族",
},
{
id: "09",
name: "布依族",
},
{
id: "10",
name: "朝鲜族",
},
{
id: "11",
name: "满族",
},
{
id: "12",
name: "侗族",
},
{
id: "13",
name: "瑶族",
},
{
id: "14",
name: "白族",
},
{
id: "15",
name: "土家族",
},
{
id: "16",
name: "哈尼族",
},
{
id: "17",
name: "哈萨克族",
},
{
id: "18",
name: "傣族",
},
{
id: "19",
name: "黎族",
},
{
id: "20",
name: "傈僳族",
},
{
id: "21",
name: "佤族",
},
{
id: "22",
name: "畲族",
},
{
id: "23",
name: "高山族",
},
{
id: "24",
name: "拉祜族",
},
{
id: "25",
name: "水族",
},
{
id: "26",
name: "东乡族",
},
{
id: "27",
name: "纳西族",
},
{
id: "28",
name: "景颇族",
},
{
id: "29",
name: "柯尔克孜族",
},
{
id: "30",
name: "土族",
},
{
id: "31",
name: "达斡尔族",
},
{
id: "32",
name: "仫佬族",
},
{
id: "33",
name: "羌族",
},
{
id: "34",
name: "布朗族",
},
{
id: "35",
name: "撒拉族",
},
{
id: "36",
name: "毛难族",
},
{
id: "37",
name: "仡佬族",
},
{
id: "38",
name: "锡伯族",
},
{
id: "39",
name: "阿昌族",
},
{
id: "40",
name: "普米族",
},
{
id: "41",
name: "塔吉克族",
},
{
id: "42",
name: "怒族",
},
{
id: "43",
name: "乌孜别克族",
},
{
id: "44",
name: "俄罗斯族",
},
{
id: "45",
name: "鄂温克族",
},
{
id: "46",
name: "崩龙族",
},
{
id: "47",
name: "保安族",
},
{
id: "48",
name: "裕固族",
},
{
id: "49",
name: "京族",
},
{
id: "50",
name: "塔塔尔族",
},
{
id: "51",
name: "独龙族",
},
{
id: "52",
name: "鄂伦春族",
},
{
id: "53",
name: "赫哲族",
},
{
id: "54",
name: "门巴族",
},
{
id: "55",
name: "珞巴族",
},
{
id: "56",
name: "基诺族",
},
{
id: "57",
name: "其他",
},
{
id: "58",
name: "外国血统中国人士",
},
],
4 years ago
form: {
// 录单数据
name: "",
peoplecard: "",
4 years ago
gender: "",
nation: "",
location: "",
firm: "",
post: "",
pattern: "",
policy: "",
proxy: "",
facedate: "",
4 years ago
},
rules: {
// 录单校验规则
name: [{ required: true, message: "请输入姓名", trigger: "submit" }],
4 years ago
// tel: [{ required: true, message: "请输入手机号", trigger: "submit" }],
4 years ago
},
4 years ago
};
},
// 计算属性
computed: {},
// 侦听器
watch: {},
// 生命周期钩子 注:没用到的钩子请自行删除
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
4 years ago
beforeCreate() {},
4 years ago
created() {
// console.log(this.$router.matcher.match());
4 years ago
this.getJobDetail();
4 years ago
// Object.defineProperties("window.opener", "sessionStorage", {
// LOGIN_DATA: {},
// });
// console.log(window.opener);
4 years ago
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
4 years ago
// console.log(this.$refs.scrollimg);
// this.$refs.scrollimg.goTo(0, false);
4 years ago
},
// 组件方法
4 years ago
methods: {
async getJobDetail() {
try {
const { data } = await getJobDetailApi(this.id);
4 years ago
console.log(data);
4 years ago
if (data.status === 200) {
this.jobDetail = disposeJobListData(data.data.storeJob);
data.data.storeImage.forEach((item) => {
this.storeImage.push(item.url);
});
4 years ago
// console.log(this.storeImage);
4 years ago
} else {
this.$message.warning("数据获取失败");
}
// = data.data.recordList;
4 years ago
// console.log(data);
// console.log(this.jobDetail);
4 years ago
} catch (error) {
4 years ago
// console.log(error);
4 years ago
}
},
4 years ago
// 录单弹出层的关闭
handleCancel() {
this.visible = false;
this.form = {
// 录单数据
name: "",
tel: "",
peoplecard: "",
username: "",
};
},
// 录单提交按钮的回调
handleOk() {
this.$refs.ruleForm.validate((ispass, no) => {
4 years ago
// console.log(ispass);
4 years ago
if (ispass) {
this.confirmLoading = true;
setTimeout(() => {
this.confirmLoading = false;
this.visible = false;
}, 2000);
} else {
4 years ago
// console.log(123);
4 years ago
}
console.log(no);
});
},
// 弹出录单模态框
4 years ago
showmodal() {
4 years ago
this.visible = true;
4 years ago
console.log(this.id);
4 years ago
},
4 years ago
},
4 years ago
};
</script>
<style scoped lang="less">
4 years ago
.ant-breadcrumb {
.ant-breadcrumb-link {
a:hover {
color: #ff6a00;
}
}
}
4 years ago
.detail-container {
overflow: hidden;
4 years ago
// border-top: 1px solid #eeefef;
4 years ago
4 years ago
background-color: #f6f6f6;
}
// 录单模态框样式
4 years ago
/deep/ .ant-modal {
top: 30px !important;
}
4 years ago
.modal {
.ant-form-item {
// margin-bottom: 0;
4 years ago
margin-top: -8px;
4 years ago
/deep/ .ant-form-item-label {
line-height: 22px;
}
4 years ago
.ant-input {
// width: 430px;
height: 40px;
4 years ago
// border: none;
border: 1px solid #dddddd;
4 years ago
box-shadow: none !important;
4 years ago
// background-color: #f6f6f6;
4 years ago
}
}
4 years ago
/deep/ .ant-modal-footer {
padding: 10px 24px;
.ant-btn {
&:hover {
color: #ff6a00;
border-color: #ff6a00;
}
}
.ant-btn.ant-btn-primary {
background-color: #ff6a00 !important;
border: none;
line-height: 32px;
margin-left: 12px;
color: #fff;
4 years ago
box-shadow: none;
4 years ago
&:hover {
background-color: #ff8025 !important;
}
}
}
/deep/ .ant-modal-header {
.ant-modal-title {
font-size: 20px;
4 years ago
// font-weight: normal;
4 years ago
}
}
/deep/ .ant-modal-body {
padding: 24px 24px 8px 24px;
4 years ago
overflow: auto;
height: 630px;
max-height: 630px !important;
4 years ago
}
4 years ago
}
/deep/ .maincontent {
display: flex;
justify-content: space-between;
margin-top: 16px;
.maincontentleft {
4 years ago
width: 944px;
4 years ago
margin-right: 16px;
text-align: left;
.subset {
display: flex;
justify-content: space-between;
padding: 16px;
margin-bottom: 16px;
4 years ago
// width: 914px;
4 years ago
background-color: #fff;
4 years ago
// height: 302px;
border-radius: 4px;
4 years ago
// border: 1px solid #eeefef;
4 years ago
.subsetleft {
display: flex;
.imgbox {
4 years ago
width: 320px;
// height: 240px;
4 years ago
margin-right: 20px;
4 years ago
overflow: hidden;
position: relative;
4 years ago
// .slick-active {
// button {
// background-color: #fe6a00 !important;
// }
// }
4 years ago
// .slick-track {
// transition: all 0s ease 0s !important;
// }
img {
4 years ago
// position: absolute;
width: 100%;
// height: 100%;
height: 240px;
4 years ago
// top: 50%;
// left: 50%;
4 years ago
// left: 0;
// top: 0;
// right: 0;
// bottom: 0;
// margin: auto;
4 years ago
// transform: translateX(-50%) translateY(-50%);
4 years ago
}
.ant-carousel {
.slick-slide {
text-align: center;
4 years ago
height: 230px;
4 years ago
// height: 160px;
// line-height: 160px;
background: #364d79;
overflow: hidden;
}
.custom-slick-arrow {
width: 40px;
height: 40px;
font-size: 40px;
margin-top: -20px;
border-radius: 50%;
color: #fff;
background-color: rgba(31, 45, 61, 0.11);
opacity: 0.6;
}
.custom-slick-arrow:before {
4 years ago
// color: #ff6a00;
4 years ago
display: none;
}
.custom-slick-arrow:hover {
4 years ago
// background-color: #ff6a00cc;
4 years ago
opacity: 0.8;
}
.slick-slide h3 {
color: #fff;
}
}
}
.jobinfobox {
.jobname {
// margin: 12px 0;
4 years ago
font-size: 20px;
4 years ago
font-weight: 400;
4 years ago
text-align: left;
color: #4d575e;
4 years ago
line-height: 20px;
4 years ago
// &:hover {
// color: #ff6a00;
// }
4 years ago
}
.jobinfo {
margin-top: 16px;
opacity: 0.5;
4 years ago
font-size: 16px;
4 years ago
font-weight: 400;
text-align: left;
color: #4d575e;
4 years ago
line-height: 20px;
4 years ago
}
.jobtag {
4 years ago
margin-top: 14px;
text-align: left;
4 years ago
span:first-child {
4 years ago
color: #ff6a00;
4 years ago
background: rgba(254, 97, 0, 0.1);
4 years ago
}
span {
margin-right: 8px;
4 years ago
font-size: 16px;
4 years ago
padding: 2px 10px;
4 years ago
background: rgba(51, 51, 51, 0.06);
4 years ago
border-radius: 4px;
}
}
.jobpricemonth {
margin-top: 16px;
4 years ago
font-size: 16px;
font-weight: 400;
4 years ago
text-align: left;
color: #4d575e;
4 years ago
line-height: 22px;
4 years ago
}
.jobpricehour {
4 years ago
margin-top: 16px;
font-size: 16px;
4 years ago
font-weight: normal;
4 years ago
text-align: left;
4 years ago
color: #ff6a00;
4 years ago
// line-height: 24px;
4 years ago
span {
4 years ago
vertical-align: baseline;
font-size: 20px;
line-height: 24px;
4 years ago
}
}
.billbutton {
display: flex;
4 years ago
justify-content: flex-start;
4 years ago
margin-top: 15px;
4 years ago
span {
4 years ago
padding: 0 16px;
height: 36px;
margin-right: 20px;
4 years ago
border-radius: 4px;
background-color: rgba(254, 97, 0, 0.1);
4 years ago
font-size: 18px;
4 years ago
font-weight: normal;
4 years ago
color: #ff6a00;
4 years ago
line-height: 34px;
4 years ago
}
button {
width: 160px;
4 years ago
// padding: 0 16px;
height: 36px;
4 years ago
border: none;
4 years ago
background-color: #ff6a00;
4 years ago
color: #fff;
4 years ago
font-weight: normal;
4 years ago
font-size: 18px;
4 years ago
border-radius: 4px;
4 years ago
cursor: pointer;
&:hover {
background-color: #ff7614;
}
4 years ago
}
}
}
4 years ago
// .jobinfobox {
// .jobname {
// // margin: 12px 0;
// font-size: 20px;
4 years ago
// font-weight: 400;
4 years ago
// text-align: left;
// color: #4d575e;
// line-height: 30px;
// }
// .jobinfo {
// margin-top: 16px;
// opacity: 0.5;
// font-size: 16px;
// font-weight: 400;
// text-align: left;
// color: #4d575e;
// line-height: 22px;
// }
// .jobtag {
// margin-top: 16px;
// span:first-child {
// color: #ff6a00;
// background: rgba(254, 97, 0, 0.06);
// }
// span {
// margin-right: 8px;
// font-size: 16px;
// padding: 2px 14px;
// text-align: left;
// background: rgba(51, 51, 51, 0.06);
// border-radius: 4px;
// }
// }
// .jobpricemonth {
// margin-top: 16px;
// font-size: 18px;
// text-align: left;
// color: #4d575e;
// line-height: 22px;
// }
// .jobpricehour {
// margin-top: 20px;
// font-size: 18px;
4 years ago
// font-weight: normal;
4 years ago
// text-align: left;
// color: #ff6a00;
// line-height: 18px;
// span {
// vertical-align: bottom;
// font-size: 24px;
// line-height: 18px;
// }
// }
// .billbutton {
// display: flex;
// justify-content: flex-start;
// margin-top: 20px;
// span {
// padding: 0 16px;
// height: 36px;
// margin-right: 20px;
// border-radius: 4px;
// background-color: rgba(254, 97, 0, 0.1);
// font-size: 18px;
4 years ago
// font-weight: normal;
4 years ago
// color: #ff6a00;
// line-height: 34px;
// }
// button {
// width: 160px;
// // padding: 0 16px;
// height: 36px;
// border: none;
// background-color: #ff6a00;
// color: #fff;
4 years ago
// font-weight: normal;
4 years ago
// font-size: 18px;
// border-radius: 4px;
// }
// }
// }
4 years ago
}
}
4 years ago
.proxy {
margin-bottom: 16px;
// padding: 20px !important;
}
.jobinformationbox,
.proxy {
4 years ago
width: 944px;
4 years ago
// border: 1px solid #eeefef;
overflow: hidden;
4 years ago
border-radius: 4px;
4 years ago
padding: 0 20px 20px 20px;
background-color: #fff;
4 years ago
h1 {
4 years ago
font-size: 20px;
4 years ago
text-align: left;
color: #4d575e;
line-height: 33px;
4 years ago
margin-bottom: 20px;
4 years ago
font-weight: normal;
4 years ago
padding: 10px 0;
border-bottom: 1px solid #eeefef;
4 years ago
span {
height: 25px;
}
}
dl {
dt {
margin: 30px 0 20px 0;
font-size: 20px;
text-align: left;
color: #4d575e;
line-height: 28px;
}
dd {
ul {
li {
line-height: 32px;
}
}
}
}
}
}
.maincontentright {
4 years ago
width: 240px;
4 years ago
> div {
margin-bottom: 16px;
}
.hotphone {
4 years ago
width: 240px;
4 years ago
overflow: hidden;
4 years ago
// height: 114px;
4 years ago
padding: 0 20px 20px 20px;
4 years ago
border-radius: 4px;
background-color: #fff;
4 years ago
text-align: center;
// border: 1px solid #eeefef;
4 years ago
p {
font-size: 24px;
color: #ff6a00;
4 years ago
// font-weight: normal;
4 years ago
margin-top: 12px;
}
}
.companyinfo {
4 years ago
overflow: hidden;
padding: 0 20px 20px 20px;
4 years ago
border-radius: 4px;
4 years ago
// border: 1px solid #eeefef;
background-color: #fff;
4 years ago
.companydetail {
4 years ago
width: 200px;
4 years ago
p:first-of-type {
font-size: 18px;
4 years ago
font-weight: normal;
4 years ago
text-align: left;
color: #4d575e;
margin-bottom: 12px;
line-height: 22px;
4 years ago
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
4 years ago
}
.imgbox {
4 years ago
// width: 230px;
4 years ago
height: 172px;
margin-bottom: 12px;
img {
width: 100%;
height: 100%;
}
}
p:last-of-type {
font-size: 16px;
text-align: left;
color: #788085;
line-height: 22px;
margin-bottom: 15px;
}
}
.companylocation {
4 years ago
width: 200px;
4 years ago
h1 {
4 years ago
// height: 50px;
// line-height: 50px;
padding-top: 10px;
4 years ago
text-align: center;
// border-top: 1px solid #eeefef;
4 years ago
}
.imgbox {
4 years ago
// width: 230px;
4 years ago
height: 172px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
}
</style>