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.

2103 lines
61 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="detail-container">
<div style="height: 56px"></div>
<!-- 面包屑 -->
<a-breadcrumb class="w" style="width: 960px; min-width: 960px">
<a-breadcrumb-item href>
<router-link to="/main">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item href>
<a @click="toList">
<span>{{ "职位列表" }}</span>
</a>
</a-breadcrumb-item>
<a-breadcrumb-item href>
<span style="color: #333">{{ "职位详情" }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
<!-- 主体区域 -->
<div class="maincontent w g_flex_row_between">
<div class="m-money-obj g_mb_20 g_p_20 g_flex_row_between" style="background-color: #fff; border-radius: 6px; width: 800px; margin: 0 auto 20px" v-if="false">
<div class="g_flex_row_start">
<div style="font-size: 16px; font-weight: 600; margin-right: 4px">代理佣金</div>
<div class="g_flex_column_center" @click="isSee = !isSee" style="cursor: pointer">
<i class="iconfont icon-zhengyan11" style="font-size: 22px; color: #ff4400; line-height: 0.1" v-if="isSee"></i>
<i class="iconfont icon-biyan11" style="font-size: 22px; color: #ff4400; line-height: 0.1; margin-top: -4px" v-if="!isSee"></i>
</div>
</div>
<div class="g_flex_row_end" @click="viewDetail" style="cursor: pointer">
<div class="g_flex_column_center g_fs_14">
<span v-if="isSee">
{{ jobDetail.servetype }}
</span>
<span v-if="!isSee"> *** </span>
</div>
<div class="g_flex_column_center">
<i class="iconfont icon-xiangyou1"></i>
</div>
</div>
</div>
<!-- 非职教 -->
<div class="maincontentleft">
<div class="mask" v-if="!(jobDetail.recruitment == '1')"></div>
<div class="subset">
<a-skeleton avatar active class="skeleton1" v-show="skeletonshow" :paragraph="{ rows: 4 }" />
<div class="subsetleft" v-show="!skeletonshow" style="border-bottom: 1px solid rgb(237, 237, 237);padding-bottom: 20px;">
<div class="info">
<!-- <div class="imgbox">
<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">
<div class="g_flex_row_between">
<div class="jobname">
{{ jobDetail.jobName }}
<span class="hotTag" v-if="jobDetail.hotJob == 1">
<i class="iconfont icon-dianzan1 mr0" style="font-size: 12px"></i>
主推
</span>
</div>
<div style="color: #a1a1a1; font-size: 14px; margin-left: 15px">{{ jobDetail.up_time }}</div>
</div>
<div class="jobinfo">
<span>{{ jobDetail.district ? jobDetail.district + " | " : "" }} </span>
<span>{{ jobDetail.gender }}</span>
<span>{{ jobDetail.age }}</span>
</div>
<div class="jobtag" v-if="jobDetail && jobDetail.jobRequestLabelNames && jobDetail.jobRequestLabelNames.length > 0">
<a-tag :color="labelColor[index % labelColor.length]" style="margin-bottom: 8px" v-for="(item, index) in jobDetail.jobRequestLabelNames" :key="index">
{{ item }}
</a-tag>
</div>
<!-- <div style="height: 27px" v-if="!jobDetail.jobRequestLabelNames" class="jobtag">
<a-tag :color="labelColor[1]">暂无要求</a-tag>
</div> -->
<!-- <div class="jobtag1">
<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="background-color: #f5f5f5">暂无特色</a-tag>
</div> -->
<div class="g_flex_row_between g_mt_4">
<div style="display: flex; align-items: center; height: 26px; margin-top: 8px">
<div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)"></div>
<span style="font-size: 14px">&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<div class="g_flex_column_end">
<div class="jobpricemonth">
<span>{{ jobDetail.minMonthlyPay / 100 }}</span
>-<span>{{ jobDetail.maxMonthlyPay / 100 }}</span
>元/月
</div>
</div>
</div>
<div class="sub-bottombox fss">
<button type="primary" class="jobDespBtn g_fs_14" style="padding: 0 5px; width: 100px">
<a :href="jobDetail.customServiceUrl || 'javascript:;'" target="_blank" v-if="jobDetail.customServiceUrl">
<a-icon class="g_fs_14" type="message" />
联系客服
</a>
<a href="javascript:;" v-else @click="noCustom">
<a-icon class="g_fs_14" type="message" />
联系客服
</a>
</button>
<!-- <a-dropdown :trigger="['click']" overlayClassName="special-dropdown" v-else>
<button type="primary" class="jobDespBtn"
style="padding: 0 15px;width: 116px;"
>
<a href="javascript:;" target="_blank"
style="font-size: 14px;"
>
<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: #1890ff"></i>{{ item.aliasName }} {{ item.tel }} </a-menu-item>
</a-menu>
</a-dropdown> -->
<a-button class="" @click="torecord()" v-if="jobDetail.recruitment == '1'" type="primary" style="font-size: 14px;width: 100px;font-weight: bold;">立即报名</a-button>
<button class="norecruitment bottombox1" v-else>暂时停招</button>
</div>
</div>
</div>
</div>
<!-- <div class="swiperBox" style="display: flex; justify-content: start">
<img :src="jobDetail.logo || jobDetail.store.logo" alt v-if="jobDetail.logo || jobDetail.store.logo" @click="showImage(0, 'logo')" style="cursor: pointer; width: 80px; height: 45px" />
<div id="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in [...storeImage]" :key="index">
<img :src="item" alt v-if="isImg(item)" @click="showImage(index)" style="cursor: pointer" />
<div v-if="!isImg(item)">
<div style="position: absolute; width: 78px; height: 78px; left: 0; top: 0; z-index: 99; background-color: transparent; cursor: pointer" @click.stop="handlePreview(item)"></div>
<video class="imgSpan" style="width: 80px; height: 45px" controls>
<source :src="item" type="video/mp4" />
<source :src="item" type="video/ogg" />
您的浏览器不支持 HTML5 video 标签。
</video>
</div>
</div>
</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div> -->
<a-modal :visible="previewVisible" wrapClassName="spic" centered :footer="null" @cancel="handleCancel">
<video style="width: 100%; max-height: calc(100vh - 40px)" id="movie" autoplay :src="previewImage" controls="controls" />
</a-modal>
</div>
<div class="subsetright">
<div class="topbox" v-if="false">
<div>服务费</div>
<div>
<span>{{ jobDetail.servetype }}</span>
</div>
</div>
</div>
</div>
<div class="jobinformationbox" style="padding-left: 20px; padding-top: 4px">
<h1 v-if="false">
<div class="infotitle">
<span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span>
<span @click="tabchange = 0" :class="tabchange === 0 ? 'active' : ''" v-if="false">财务结算</span>
<span @click="tabchange = 2" :class="tabchange === 2 ? 'active' : ''">职位描述</span>
</div>
</h1>
<div class="g_flex_row_between" style="border-bottom: 1px solid rgb(237, 237, 237);">
<div v-for="(item,index) in tabList" :key="index"
class="tab-item"
:class="tabActive == (index + 1) ? 'tab-item-active' : ''"
@click="updateTab(item,index)"
>
{{ item.title }}
<div class="bor"></div>
</div>
</div>
<div class="pay" id="tip" v-show="tabchange === 1">
<div class="mb12 mt20 titlestyle">温馨提示</div>
<div class="showInfo" style="width: unset; color: #ff4400 !important">{{ jobDetail.notes || "-" }}</div>
</div>
<div v-if="tabchange == 1" style="display: flex">
<!-- 薪资 -->
<div class="baseInfoContent" v-if="tabchange === 1">
<div class="pay" id="pay">
<div class="mb12 mt20">薪资待遇</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc boubleLevel">
<a-descriptions-item class="test1">
<span slot="label" class>薪资明细</span>
<span>{{ jobDetail.salaryDetail || "-" }}</span>
</a-descriptions-item>
<!-- <a-descriptions-item>
<span slot="label" class>发薪日</span>
<span>{{ jobDetail.payDay || "-" }}</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.employeeInsurance || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class>押金</span>
<span>{{ jobDetail.foregift || "-" }}</span>
</a-descriptions-item>
<template v-if="jobClassify == 2">
<a-descriptions-item>
<span slot="label" class>培训/试用期</span>
<span>{{ jobDetail.training || "-" }}</span>
</a-descriptions-item>
</template>
<template v-else>
<a-descriptions-item v-if="jobClassify == 1">
<span slot="label" class>培训</span>
<span>{{ jobDetail.training || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class>试用期</span>
<span>{{ jobDetail.probationStr || "-" }}</span>
</a-descriptions-item>
</template> -->
<!-- <a-descriptions-item>
<span slot="label" class>福利待遇</span>
<span>{{ jobDetail.boon || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item v-if="jobClassify == 1">
<span slot="label" class>薪资说明</span>
<span style="white-space: break-spaces">
{{ jobDetail.salaryDesp || "-" }}
</span>
</a-descriptions-item> -->
</a-descriptions>
</div>
<!-- 岗位要求 -->
<div class="required" id="required">
<div class="mb12 mt20">招聘要求</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions-item class="test1">
<span slot="label" class>性别年龄</span>
<span>
<span class="man" v-if="jobDetail.minAgeMan">
男 {{ jobDetail.minAgeMan }}<span v-if="jobDetail.maxAgeMan"> {{ "- " + jobDetail.maxAgeMan }} </span>岁
</span>
<span class="woman" v-if="jobDetail.minAgeWoman">
女 {{ jobDetail.minAgeWoman }}<span>{{ "- " + jobDetail.maxAgeWoman }}</span
>岁
</span>
{{ jobDetail.genderRemark || "" }}
</span>
</a-descriptions-item>
<!-- <a-descriptions-item>
<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>
<span>{{ jobDetail.idCardStr || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class>疑难杂症</span>
<span>{{ jobDetail.otherRequireStr || "-" }}</span>
</a-descriptions-item> -->
</a-descriptions>
</div>
<!-- 基本信息 -->
<div class id="contentspecial">
<div class="mb12 mt20">岗位说明</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<!-- <a-descriptions-item class="test1">
<span slot="label" class>工作内容</span>
<span>{{ jobDetail.workContent || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item class="test1">
<span slot="label" class>工作方式</span>
<span>{{ jobDetail.workMode || "-" }}</span>
</a-descriptions-item> -->
<a-descriptions-item>
<span slot="label" class>班次工时</span>
<span>{{ jobDetail.workClasses || "-" }}</span>
</a-descriptions-item>
<!-- <a-descriptions-item>
<span slot="label" class>工作衣</span>
<span>{{ jobDetail.workClothes || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class>车间</span>
<span>{{ jobDetail.securityCheck || "-" }}</span>
</a-descriptions-item> -->
</a-descriptions>
</div>
<!-- <div class="condition" id="condition">
<div class="mb12 mt20">吃饭住宿</div>
<ul class="conditiontable">
<li>
<span>吃饭</span>
<span>{{ jobDetail.workingLunch || "-" }}</span>
</li>
<li>
<span>住宿费用</span>
<span>{{ jobDetail.dormitory || "-" }}</span>
</li>
<li>
<span>宿舍设施</span>
<span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
</li>
<li>
<span>宿舍距离</span>
<span>{{ jobDetail.dormDistance || "-" }}</span>
</li>
<li>
<span>入住条件</span>
<span>{{ jobDetail.dormitoryDesp || "-" }}</span>
</li>
</ul>
</div> -->
<div class="required" id="abutment">
<div class="mb12 mt20">对接信息</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<!-- <a-descriptions-item class="test1">
<span slot="label" class>面试时间</span>
<span>{{ jobDetail.interviewDuration || "-" }}</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.interviewDesp || "-" }}</span>
</a-descriptions-item>
<!--<a-descriptions-item class="test1">
<span slot="label" class>入职说明</span>
<span>{{ jobDetail.entryDesp || "-" }}</span>
</a-descriptions-item>
<a-descriptions-item class="test1">
<span slot="label" class>离职说明</span>
<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">
<a-anchor-link href="#tip" title="注意" />
<a-anchor-link href="#pay" title="薪资" />
<a-anchor-link href="#required" title="要求" />
<a-anchor-link href="#contentspecial" title="岗位" />
<a-anchor-link href="#condition" title="吃住" />
<a-anchor-link href="#abutment" title="对接" />
</a-anchor> -->
</div>
<!-- 财务结算 -->
<div v-if="tabchange == 0">
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px">
<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-if="tabchange == 2">
<div class="pay" id="tip">
<div class="mb12 mt20 titlestyle">职位通告</div>
<div class="showInfo" style="width: unset; color: #000 !important">
<div class="copy" @click="copyText($event)">复制</div>
<div class="copyInfo" style="border: none; padding: 0 0; width: unset; white-space: pre-line">{{ jobDetail.jobInfo.split("————————")[0] || "-" }}</div>
</div>
</div>
</div>
</div>
</div>
<div class="maincontentright">
<div class="card-top g_flex_row_between" style="padding-left: 16px; padding-right: 16px; font-size: 14px; background-color: #1890ff; height: 40px; border-top-left-radius: 6px; border-top-right-radius: 6px">
<div class="g_flex_column_center">
<i style="color: #fff; font-weight: 600;font-size: 16px;">代理佣金</i>
</div>
<div class="g_flex_column_center" @click="isSee = !isSee" style="cursor: pointer">
<i class="iconfont icon-zhengyan11" style="font-size: 22px; color: #fff; line-height: 0.1" v-if="isSee"></i>
<i class="iconfont icon-biyan11" style="font-size: 22px; color: #fff; line-height: 0.1; margin-top: -4px" v-if="!isSee"></i>
</div>
</div>
<div class="card-bottom" style="background-color: #fff; border-bottom-right-radius: 6px; border-bottom-left-radius: 6px; padding: 16px">
<div class="box" style="border-radius: 6px; border: 1px solid #ededed; min-height: 288px">
<div class="title g_flex_row_start" style="height: 40px; border-bottom: 1px solid #ededed; padding: 0 16px">
<div style="font-size: 14px; height: 100%; font-weight: 600" class="g_flex_column_center">佣金:</div>
<div class="g_flex_column_center" style="font-size: 14px; height: 100%; color: #333">
<span v-if="isSee">
{{ jobDetail.servetype }}
</span>
<span v-if="!isSee"> *** </span>
</div>
</div>
<div class="content g_p_16">
<div class="con" style="white-space: pre-wrap; font-size: 14px; color: #333">
<span v-if="isSee">
{{ jobDetail.returnFeeDesp || "-" }}
</span>
<span v-if="!isSee"> *** </span>
</div>
</div>
</div>
</div>
</div>
</div>
<recordModal :show.sync="recordShow" :jobDetail="jobDetail"></recordModal>
</div>
</template>
<script>
import { getJobDetailApi } from "../../api/job";
import { disposeJobListData, getSalaryClassifyValue, setJobInfoPosition } from "../../utils/commonUtil";
import mserve from "../../components/FirstJob/components/servre.vue";
import { nationlist } from "../../utils/datalist";
import { getUserManagerApi } from "../../api/userinfo";
import "swiper/dist/css/swiper.css";
import Vue from "vue";
import Viewer from "v-viewer";
import "viewerjs/dist/viewer.css";
import swiper from "swiper";
import GDMap from "../map.vue";
// import recordbill from "@/components/FirstJob/components/recordbill.vue";
import Clipboard from "clipboard";
// 报名弹窗
import recordModal from "./components/vocationalRecord.vue";
// import map from '../map.vue'
Vue.use(Viewer, {
defaultOptions: {
// 需要配置的属性
toolbar: {
zoomIn: true,
zoomOut: true,
oneToOne: false,
reset: false,
prev: true,
play: {
show: true,
size: "large",
},
next: true,
rotateLeft: true,
rotateRight: true,
flipHorizontal: false,
flipVertical: false,
},
title: false,
navbar: false,
initialViewIndex: 1,
isMeetting: false,
},
});
export default {
// 组件名称
name: "",
// 局部注册的组件
components: {
mserve,
GDMap,
recordModal,
// GDMap
// recordbill,
},
// 组件参数 接收来自父组件的数据
props: {},
// 组件状态值
data() {
return {
tabActive:1,
tabList:[
{
title: "基本信息",
key: 1,
},
// {
// title: "财务结算",
// key: 0,
// },
{
title: "职位描述",
key: 2,
},
// }
],
isSee: true,
agency: {},
onSiteUsersInfo: "",
customServiceUsers: [],
previewVisible: false,
previewImage: "",
relationList: [],
jobDetail: {}, // 职位相关信息
storeImage: [],
storeInfo: {},
id: "",
jobClassify: "",
currentPageNum: this.$route.query.page || "",
visible: false, // 录单模态框的展示
xiangdanVisible: false, // 详单的弹出
confirmLoading: false, // 录单提交的loading效果
positionInfo: {}, // 企业位置信息
jobPoses: {}, // 职位位置信息
store: {}, // 职位详情信息
skeletonshow: true,
tabchange: 1,
nationlist,
imgList: [], // 预览图片列表
labelColor: ["pink", "blue", "purple", "orange", "green", "cyan", "red", "purple"],
form: {
// 录单数据
name: "",
peoplecard: "",
gender: "",
nation: "",
location: "",
firm: "",
post: "",
pattern: "",
policy: "",
proxy: "",
facedate: "",
},
storeJob: {},
// rules: {
// // 录单校验规则
// name: [{ required: true, message: "请输入姓名", trigger: "submit" }],
// // tel: [{ required: true, message: "请输入手机号", trigger: "submit" }],
// },
apply: {},
myswiper: null, // 存储swiper实例
managerInfo: {},
customServiceUrl: "", // 客服信息
from: null, // 来源
recordShow: false,
zhijiaoList: [
// 职教列表
{
id: 0,
vocationalName: "电气工程师(初级班)",
logo: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job1.png",
tuition: "6800元",
serviceCharge: "2000元/人",
salary: "7000-9000元/月",
enterprise: "",
semester: "30天",
totalProfit: "2500元/人+就业分成",
address: "河南省郑州市航空港区如荼路重英街交叉口南侧100米路东",
desp: `一、就业前景:
1. 学习合格后,公司统一推荐到相关企业的设备安装、调试、运营维护等相关岗位。
2. 薪酬待遇电气工程师初级实习期6000-8000元/月实习期过后7000-9000元/月。
二、关于学校
优星图教育科技是集智能制造设备的研发生产、智能工厂设计与升级改造、自动化技能人才培养培训为一体的智能制造整体解决方案供应商。双师型教师团队,先进的自动化教学设备,理论结合实操,让你用最短的时间学会最有用的技术,从而实现高质量就业!
三、课程介绍
本培养体系通过70%实操+30%理论相结合的模式掌握自动化技术,每个模块均有考核,考核通过即可推荐工作,未通过即针对性辅导,完成技术掌握。课程体系持续升级,教学内容以就业为导向,紧贴企业需求。
四、课程内容:
1. 电工基础课程
2. 气动基础课程
3. 传感器课程
4. 西门子200SMART PLC课程
5. ABB机器人课程
五、学习时间:
周一到周六
夏季:上午 8:30-11:30下午 14:00-18:00晚上 19:00-21:00 (晚自习)
冬季:上午 8:30-11:30下午 13:30-17:30晚上 18:30-20:30 (晚自习)
周日休息期间教室全天开放,可随时实操。
六、招生对象
基本要求初中及以上学历年龄18-35周岁思想端正心理和身体健康无危害团体的传染性疾病热爱自动化行业服从公司安排适应出差。
1. 工厂中想通过学习一门技术改变自己的一线操作工;
2. 从事自动化设备机构装配人员电控知识的扩展;
3. 想从事自动化行业的自动化相关专业毕业生,在步入岗位前的充电学习。
七、吃饭住宿
1. 吃饭自理住宿4-8人间收费12-18元/天/人。预约报名缴纳300元定金送开学大礼包被褥四件套+生活用品大礼包独立卫生间、空调、热水器免费洗衣机、饮水机24小时提供。
2. 住宿期间水电费全免!
八、服务流程
报名成功----到校考察----面试合格----缴纳费用----签订协议----安排入学----学习合格----推荐就业。
九、学员需提前准备的环节
1. 换洗衣服、常用物品即可
十、学习地址  
河南省郑州市航空港区如荼路重英街交叉口南侧100米路东`,
},
{
id: 1,
vocationalName: "调试工程师(中级班)",
logo: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job2.png",
tuition: "11800元",
serviceCharge: "3000元/人",
salary: "8000-11000元/月",
enterprise: "",
semester: "60天",
totalProfit: "4000元/人+就业分成",
address: "河南省郑州市航空港区如荼路重英街交叉口南侧100米路东",
desp: `一、就业前景:
1. 学习合格后,公司统一推荐到相关企业的设备安装、调试、运营维护等相关岗位。
2. 薪酬待遇调试工程师中级实习期7000-9000元/月实习期过后8000-11000元/月。
二、关于学校
优星图教育科技是集智能制造设备的研发生产、智能工厂设计与升级改造、自动化技能人才培养培训为一体的智能制造整体解决方案供应商。双师型教师团队,先进的自动化教学设备,理论结合实操,让你用最短的时间学会最有用的技术,从而实现高质量就业!
三、课程介绍
本培养体系通过70%实操+30%理论相结合的模式掌握自动化技术,每个模块均有考核,考核通过即可推荐工作,未通过即针对性辅导,完成技术掌握。课程体系持续升级,教学内容以就业为导向,紧贴企业需求。
四、课程内容:
1. PLC编程基础知识
2. 编程基本指令学习
3. 威纶通触摸屏
4. 运动控制课程
5. 模拟量应用课程
6. 通信课程/绘图课程
7. 非标设备实操课程
五、学习时间:
周一到周六
夏季:上午 8:30-11:30下午 14:00-18:00晚上 19:00-21:00 (晚自习)
冬季:上午 8:30-11:30下午 13:30-17:30晚上 18:30-20:30 (晚自习)
周日休息期间教室全天开放,可随时实操。
六、招生对象
基本要求初中及以上学历年龄18-35周岁思想端正心理和身体健康无危害团体的传染性疾病热爱自动化行业服从公司安排适应出差。
1. 工厂中想通过学习一门技术改变自己的一线操作工;
2. 从事自动化设备机构装配人员电控知识的扩展;
3. 想从事自动化行业的自动化相关专业毕业生,在步入岗位前的充电学习。
七、吃饭住宿
1. 吃饭自理住宿4-8人间收费12-18元/天/人。预约报名缴纳300元定金送开学大礼包被褥四件套+生活用品大礼包独立卫生间、空调、热水器免费洗衣机、饮水机24小时提供。
2. 住宿期间水电费全免!
八、服务流程
报名成功----到校考察----面试合格----缴纳费用----签订协议----安排入学----学习合格----推荐就业。
九、学员需提前准备的环节
1. 换洗衣服、常用物品即可
十、学习地址  
河南省郑州市航空港区如荼路重英街交叉口南侧100米路东`,
},
{
id: 2,
vocationalName: "运营管理团队(高级班)",
logo: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job3.png",
tuition: "19800元",
serviceCharge: "6500元/人",
salary: "9000-11000元/月",
enterprise: "",
semester: "90天",
totalProfit: "8000元/人",
address: "河南省郑州市航空港区如荼路重英街交叉口南侧100米路东",
desp: `一、就业前景:
1. 学习合格后,公司统一推荐到相关企业的设备安装、调试、运营维护等相关岗位。
2. 薪酬待遇:运营/教师精英班高级实习期三个月8000-9000元/月实习期过后9000-11000元/月运营管理类学员孵化创业年综合收入20w。
二、关于学校
优星图教育科技是集智能制造设备的研发生产、智能工厂设计与升级改造、自动化技能人才培养培训为一体的智能制造整体解决方案供应商。双师型教师团队,先进的自动化教学设备,理论结合实操,让你用最短的时间学会最有用的技术,从而实现高质量就业!
三、课程介绍
本培养体系通过70%实操+30%理论相结合的模式掌握自动化技术,每个模块均有考核,考核通过即可推荐工作,未通过即针对性辅导,完成技术掌握。课程体系持续升级,教学内容以就业为导向,紧贴企业需求。
四、课程内容:
1. 自动化专业技能培训 5周
2. 自动化教学技法培训 5周
3. 线上新媒体应用培训 1周
4. 综合素养培训 1周
五、学习时间:
周一到周六
夏季:上午 8:30-11:30下午 14:00-18:00晚上 19:00-21:00 (晚自习)
冬季:上午 8:30-11:30下午 13:30-17:30晚上 18:30-20:30 (晚自习)
周日休息期间教室全天开放,可随时实操。
六、招生对象
基本要求初中及以上学历年龄18-35周岁思想端正心理和身体健康无危害团体的传染性疾病热爱自动化行业服从公司安排适应出差。
1. 工厂中想通过学习一门技术改变自己的一线操作工;
2. 从事自动化设备机构装配人员电控知识的扩展;
3. 想从事自动化行业的自动化相关专业毕业生,在步入岗位前的充电学习。
七、吃饭住宿
1. 吃饭自理住宿4-8人间收费12-18元/天/人。预约报名缴纳300元定金送开学大礼包被褥四件套+生活用品大礼包独立卫生间、空调、热水器免费洗衣机、饮水机24小时提供。
2. 住宿期间水电费全免!
八、服务流程
报名成功----到校考察----面试合格----缴纳费用----签订协议----安排入学----学习合格----推荐就业。
九、学员需提前准备的环节
1. 换洗衣服、常用物品即可
十、学习地址  
河南省郑州市航空港区如荼路重英街交叉口南侧100米路东`,
},
],
};
},
// 计算属性
computed: {},
// 侦听器
watch: {},
// 生命周期钩子 注:没用到的钩子请自行删除
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
beforeCreate() {},
created() {
// 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")));
}
if (this.$route.query.jobClassify) {
this.jobClassify = this.$route.query.jobClassify;
}
if (this.$route.query.id) {
this.id = this.$route.query.id;
}
console.log("this.id ", this.id);
console.log("this.$route", this.$route); // 获取传过来的params数据
if (this.$route.query.type) {
this.from = this.$route.query.type;
this.jobDetail = this.zhijiaoList.find((item) => item.id == this.$route.query.id);
this.skeletonshow = false;
console.log(this.jobDetail);
} else {
this.getJobDetail();
}
this.getUserManager();
// Object.defineProperties("window.opener", "sessionStorage", {
// LOGIN_DATA: {},
// });
// console.log(window.opener);
},
/**
* el 被新创建的 vm.el 替换,并挂载到实例上去之后调用该钩子。
* 如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.el 也在文档内。
*/
mounted() {
let that = this;
// console.log(this.$refs.scrollimg);
// this.$refs.scrollimg.goTo(0, false);
setTimeout(() => {
this.myswiper = new swiper("#swiper", {
// loop: true,
// loopAdditionalSlides: 3,
// speed: 500,
// keyboard: true,
// allowTouchMove: false,
// slidesPerView: 1,
slidesPerView: 4,
slidesPerGroup: 1,
// loop: true,
// loopFillGroupWithBlank: true,
// pagination: {
// el: ".swiper-pagination",
// clickable: true,
// },
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
disabledClass: "swiper-button-disabled",
},
// spaceBetween: 100,
// effect: 'fade',
// fadeEffect: {
// crossFade: true,
// },
// autoplay: {
// delay: 8000,
// stopOnLastSlide: false,
// disableOnInteraction: false,
// },
on: {
// slideChangeTransitionEnd() {
// that.progressPercent = 0
// },
},
});
}, 1000);
},
// 组件方法
methods: {
noCustom() {
this.$message.error("此职位暂未接入客服");
},
async getJobDetail() {
console.log("this.id", this.id);
try {
const { data } = await getJobDetailApi(this.id, this.jobClassify);
console.log("data", data);
if (data.status === 200) {
console.log(data);
this.jobDetail = disposeJobListData(data.data.record);
this.jobDetail = {
...this.jobDetail,
...data.data,
};
this.jobDetail.jobDesp = data.data.record.jobDesp.replaceAll("*****", "");
this.customServiceUrl = data.data.customServiceUrl;
this.jobPoses = data.data.jobPoses;
this.agency = data.data.record.supplier;
this.customServiceUsers = data.data.customServiceUsers;
if (this.jobClassify == 1) {
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.jobDetail.district = setJobInfoPosition(disposeJobListData(data.data.store).district);
} else {
this.positionInfo = data.data.record;
this.store = data.data.record;
this.positionInfo.desc = this.positionInfo.storeAddr;
this.positionInfo.containerName = "mapContainer";
this.positionInfo.name = this.positionInfo.storeName;
this.positionInfo.lat = this.positionInfo.storeLat;
this.positionInfo.lng = this.positionInfo.storeLng;
this.jobDetail.district = setJobInfoPosition(this.positionInfo.storeDistrict);
console.log("this.jobDetail", this.jobDetail);
}
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.record.id,
// aliasName: data.data.store.aliasName,
jobName: data.data.record.jobName,
};
this.storeInfo = newdata;
let regs = /\.(jpg|jpeg|png)(\?.*)?$/;
// data.data.storeImage.forEach((item) => {
// if (regs.test(item.url.toLowerCase())) {
// this.storeImage.push(item.url)
// }
// })
// console.log(this.storeImage);
let storeImage = [];
let storeVideo = [];
if (data.data.storeImage) {
data.data.storeImage.forEach((item) => {
console.log(item.url);
if (regs.test(item.url.toLowerCase())) {
storeImage.push(item.url);
} else {
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.jobDetail.up_time = this.timeShowXXX2(this.jobDetail.updateTime);
this.storeImage = [...storeImage, ...storeVideo];
console.log("this.storeImage", this.storeImage);
} else {
this.$message.warning("数据获取失败");
}
// = data.data.recordList;
// console.log(data);
// console.log(this.jobDetail);
} catch (error) {
console.log(error);
}
},
timeShowXXX2(val) {
const now = Date.now();
const diff = now - val;
const seconds = Math.floor(diff / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
if (days < 2) {
if (hours > 0) {
return `${hours}小时前`;
} else if (minutes > 0) {
return `${minutes}分钟前`;
} else {
return `${seconds}秒前`;
}
} else {
return `${days}天前`;
}
},
/**
* 获取登录人对应的客户经理信息
*/
getUserManager() {
getUserManagerApi().then(({ data }) => {
console.log(data);
// this.$store.commit('setManagerInfo', data.data)
this.managerInfo = data.data;
// console.log('+++++++++++++++++++++++++', this.$store)
});
},
/**
* 职教职培报名点击
*/
showRecord(info) {
console.log(info);
this.currentInfo = info;
this.recordShow = true;
// window.open(`https://jinshuju.net/f/ohFOxo?x_field_1=${this.jobDetail.vocationalName}&background=white&banner=show&embedded=true&inner_redirect=false`);
},
// 录单弹出层的关闭
handleCancel() {
this.visible = false;
this.previewVisible = false;
let movie = document.querySelector("#movie");
console.dir(movie);
movie.pause();
// this.form = {
// // 录单数据
// name: '',
// tel: '',
// peoplecard: '',
// username: '',
// }
},
// 录单提交按钮的回调
handleOk() {
this.$refs.ruleForm.validate((ispass, no) => {
// console.log(ispass);
if (ispass) {
this.confirmLoading = true;
setTimeout(() => {
this.confirmLoading = false;
this.visible = false;
}, 2000);
} else {
// console.log(123);
}
console.log(no);
});
},
// 弹出录单模态框
// showmodal() {
// this.visible = true;
// console.log(this.id);
// },
showmodal() {
this.visible = true;
// this.apply = item;
// console.log(this.apply);
// console.log(id);
},
onClose() {
this.visible = false;
this.form = {
// 录单数据
name: "",
peoplecard: "",
gender: "", // 性别
nation: "", // 民族
location: "", // 家庭住址
firm: "", // 公司名
post: "", // 岗位
pattern: "", // 模式
policy: "", // 代理政策
proxy: "", // 代理
facedate: "", // 面试时间
};
},
torecord(item) {
// 跳转到路由新页面的方法
console.log(item);
// let userinfo = JSON.stringify(item);
console.log(this.jobDetail);
console.log(this.storeInfo);
this.storeInfo.currentPageNum = this.currentPageNum;
console.log(this.storeInfo);
this.$router.push({ name: "recordbill", params: this.storeInfo });
sessionStorage.setItem("CURRENT_FIRM", JSON.stringify(this.storeInfo));
},
getSalaryClassifyValue(salaryClassify, salaryClassifyValue) {
return getSalaryClassifyValue(salaryClassify, salaryClassifyValue);
},
/**
* 图片预览点击
*
*
*/
showImage(idx, type) {
var that = this;
console.log(that.storeImage);
that.storeImage.forEach((item, index) => {
if (that.isImg(item)) {
that.imgList.push(item);
}
});
if (type == "logo") {
that.imgList.unshift(that.jobDetail.logo || that.jobDetail.store.logo);
}
this.$viewerApi({
options: { initialViewIndex: idx },
images: this.imgList,
});
// }
},
isImg(str) {
console.log(str);
let regs = /\.(jpg|jpeg|png)(\?.*)?$/;
return regs.test(str);
},
copyText() {
console.log(123);
var clipboard = new Clipboard(".copy", {
// .copy 是点击的触发元素
target: function () {
// 通过target指定要复印的节点
return document.querySelector(".copyInfo"); // .copyInfo 是要复制的目标内容
},
});
clipboard.on("success", (e) => {
// success 是成功的回调 success => error 可以捕获复制失败的异常信息
console.log(e);
this.$message.success("复制成功");
});
},
toList() {
// 跳转到列表页
this.$router.push({
path: "/list",
// query: {
// pagenum: this.currentPageNum || "",
// },
});
},
handlePreview(file) {
this.previewImage = file;
this.previewVisible = true;
},
viewDetail() {
let that = this;
console.log("ces", that.jobDetail.returnFeeDesp);
const h = this.$createElement;
this.$info({
title: that.jobDetail.returnFeeDesp || "-",
onOk() {},
});
},
updateTab($item,$inedx){
this.tabActive = $item.key;
this.tabchange = $item.key;
}
},
};
</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 {
background-color: #f0f0f0;
// overflow: hidden;
// border-top: 1px solid #eeefef;
// background-color: #f6f6f6;
}
/deep/ .ant-form {
// overflow: auto;
margin-bottom: 50px;
}
// 录单模态框样式
/deep/ .ant-drawer-wrapper-body {
// overflow: none;
// position: relative;
&::-webkit-scrollbar {
/*滚动条整体样式*/
width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
height: 4px;
}
.ant-drawer-header {
position: absolute;
width: 100%;
background-color: #fff;
padding: 12px 24px;
z-index: 999;
.ant-drawer-close {
height: 48px;
width: 48px;
line-height: 48px;
}
}
.ant-drawer-body {
overflow-y: auto;
margin-top: 47px;
}
}
// /deep/ .ant-modal {
// top: 30px !important;
// }
// .modal {
// .ant-form-item {
// margin-top: -8px;
// /deep/ .ant-form-item-label {
// line-height: 22px;
// }
// .ant-input {
// // width: 430px;
// height: 40px;
// // border: none;
// border: 1px solid #dddddd;
// box-shadow: none !important;
// // background-color: #f6f6f6;
// }
// }
// /deep/ .ant-modal-footer {
// padding: 10px 24px;
// .ant-btn {
// &:hover {
// color: #1890ff;
// border-color: #1890ff;
// }
// }
// .ant-btn.ant-btn-primary {
// background-color: #1890ff !important;
// border: none;
// line-height: 32px;
// margin-left: 12px;
// color: #fff;
// box-shadow: none;
// &:hover {
// background-color: #ff8025 !important;
// }
// }
// }
// /deep/ .ant-modal-header {
// .ant-modal-title {
// font-size: 20px;
// // font-weight: normal;
// }
// }
// /deep/ .ant-modal-body {
// padding: 24px 24px 8px 24px;
// overflow: auto;
// height: 630px;
// max-height: 630px !important;
// }
// }
/deep/ .maincontent {
// display: flex;
// justify-content: space-between;
margin-top: 12px;
.maincontentleft {
width: 640px;
text-align: left;
background-color: #ffffff;
border-radius: 6px;
// margin: 0 auto;
overflow: hidden;
margin-bottom: 20px;
.subset {
padding: 20px;
padding-bottom: 12px;
// margin-bottom: 16px;
// width: 914px;
background-color: #fff;
// height: 302px;
border-radius: 6px;
// border: 1px solid #ededed;
display: flex;
justify-content: space-between;
.subsetleft {
display: flex;
flex-direction: column;
.info {
display: flex;
}
.imgbox {
width: 186px;
height: 186px;
margin-right: 20px;
overflow: hidden;
position: relative;
// .slick-active {
// button {
// background-color: #fe6a00 !important;
// }
// }
// .slick-track {
// transition: all 0s ease 0s !important;
// }
img {
position: absolute;
// width: 100%;
// height: 100%;
height: 100%;
// width: 100%;
top: 50%;
left: 50%;
// left: 0;
// top: 0;
// right: 0;
// bottom: 0;
// margin: auto;
transform: translateX(-50%) translateY(-50%);
}
.ant-carousel {
.slick-slide {
text-align: center;
height: 186px;
// height: 160px;
// line-height: 160px;
// background: #364d79;
overflow: hidden;
}
.custom-slick-arrow {
width: 35px;
height: 35px;
font-size: 35px;
margin-top: -20px;
border-radius: 50%;
color: #fff;
background-color: rgba(31, 45, 61, 0.11);
opacity: 0.6;
}
.custom-slick-arrow:before {
// color: #1890ff;
display: none;
}
.custom-slick-arrow:hover {
// background-color: #ff6a00cc;
opacity: 0.8;
}
.slick-slide h3 {
color: #fff;
}
}
}
.jobinfobox {
display: flex;
flex-direction: column;
width: 600px;
justify-content: space-between;
// .hotTag {
// display: flex;
// line-height: 44px;
// margin-left: 18px;
// div {
// font-size: 14px;
// }
// li {
// margin-right: 12px;
// color: #ff6a00;
// font-size: 14px;
// cursor: pointer;
// }
// > .active {
// text-decoration: underline;
// }
// }
.hotTag {
background-color: #1890ff;
color: #fff;
font-size: 12px;
padding: 2px 4px;
border-radius: 2px;
position: relative;
top: -3px;
i {
margin-right: 4px;
color: #fff;
}
}
.jobname {
// margin: 12px 0;
font-size: 20px;
font-weight: 600;
text-align: left;
color: #333;
line-height: 30px;
height: 26px;
overflow: hidden;
// &:hover {
// color: #1890ff;
// }
}
.jobinfo {
margin-top: 8px;
font-size: 14px;
font-weight: 400;
text-align: left;
color: #999;
line-height: 26px;
height: 19px;
overflow: hidden;
}
.jobtag,
.jobtag1 {
margin-top: 12px;
text-align: left;
max-width: 80%;
overflow: hidden;
height: 34px;
// span:first-child {
// color: #1890ff;
// background: rgba(254, 97, 0, 0.1);
// }
span {
margin-right: 8px;
font-size: 14px;
padding: 0px 12px;
border: none;
height: 26px;
line-height: 26px;
// background: rgba(51, 51, 51, 0.06);
border-radius: 4px;
}
}
.jobtag1 {
span {
background-color: #f5f5f5;
color: #666;
}
}
.jobpricemonth {
// margin-top: 16px;
font-size: 14px;
font-weight: bold;
text-align: left;
color: #666;
line-height: 26px;
margin-top: 6px;
}
.jobpricehour {
// margin-top: 16px;
font-size: 14px;
font-weight: bold;
text-align: left;
color: #ff4400;
// line-height: 24px;
span {
vertical-align: baseline;
font-weight: 600;
font-size: 22px;
line-height: 26px;
}
}
.billbutton {
display: flex;
justify-content: flex-start;
margin-top: 15px;
span {
padding: 0 16px;
height: 36px;
margin-right: 20px;
border-radius: 4px;
background-color: rgba(254, 97, 0, 0.1);
font-size: 18px;
font-weight: normal;
color: #1890ff;
line-height: 34px;
}
// button {
// width: 160px;
// // padding: 0 16px;
// height: 36px;
// border: none;
// background-color: #1890ff;
// color: #fff;
// font-weight: normal;
// font-size: 18px;
// border-radius: 4px;
// cursor: pointer;
// &:hover {
// background-color: #ff7614;
// }
// }
.dropdown {
width: 160px;
padding: 0 16px;
height: 36px;
border: none;
background-color: #1890ff;
color: #fff;
font-weight: normal;
font-size: 18px;
border-radius: 4px;
text-align: center;
line-height: 36px;
cursor: pointer;
&:hover {
color: #fff;
background-color: #1890ffcc;
}
}
}
}
.sub-bottombox {
font-size: 14px;
.bottombox1 {
width: 116px;
height: 32px;
line-height: 30px;
font-size: 14px;
// border: 1px solid rgba(77, 87, 94, 0.3);
border-radius: 4px;
border: 1px solid #1890ff;
background-color: #fff;
color: #1890ff;
cursor: pointer;
&:hover {
color: #fff;
background-color: #1890ff;
}
}
.jobDespBtn {
// width: 116px;
height: 32px;
line-height: 30px;
font-size: 14px;
margin-right: 20px;
// border: 1px solid rgba(77, 87, 94, 0.3);
border-radius: 4px;
border: 1px solid #d9d9d9;
background-color: #fff;
color: #333;
transition: none;
cursor: pointer;
&:hover {
color: #1890ff;
border: 1px solid #1890ff;
// background-color: #ff791a;
}
i {
color: #1890ff;
}
}
.norecruitment {
border: 1px solid #ccc;
margin-left: 16px;
color: #ccc;
cursor: default;
&:hover {
border: 1px solid #ccc;
background-color: #fff;
color: #ccc;
}
}
}
}
.subsetright {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
.topbox {
width: 116px;
height: 54px;
text-align: center;
overflow: hidden;
border-radius: 4px;
line-height: 30px;
div {
// font-weight: normal;
font-size: 14px;
span:first-of-type {
font-size: 20px;
// font-weight: normal;
}
}
div:first-child {
height: 24px;
background: #ff4400;
line-height: 21px;
font-size: 14px;
color: #ffffff;
border: 1px solid #ff4400;
border-radius: 4px 4px 0px 0px;
}
div:last-child {
font-weight: normal;
background-color: #ff6a001a;
color: #ff4400;
font-size: 18px;
span:last-child {
font-size: 14px;
}
}
}
}
}
.proxy {
margin-bottom: 16px;
div {
white-space: break-spaces;
}
// padding: 20px !important;
}
.jobinformationbox,
.proxy {
width: 620px;
// border: 1px solid #eeefef;
overflow: hidden;
border-radius: 4px;
padding: 20px 0;
background-color: #fff;
h1 {
display: flex;
justify-content: space-between;
font-size: 18px;
// margin-bottom: 20px;
> span {
font-size: 14px;
color: #1890ff;
text-decoration: underline;
cursor: pointer;
}
.infotitle {
display: flex;
margin-top: -2px;
border-bottom: 1px solid #eeefef;
span {
margin-bottom: -1px;
height: 30px;
line-height: 27px;
padding: 1px 12px 0 12px;
margin-right: 6px;
background-color: #fafafa;
border: 1px solid #ededed;
border-bottom: none;
cursor: pointer;
border-radius: 4px 4px 0 0;
font-size: 14px;
color: #333;
}
.active {
background-color: #fafafa;
font-weight: bold;
color: #1890ff;
}
}
span {
height: 25px;
}
}
}
#tip,
#other {
div:last-child {
width: 640px;
padding: 12px 16px;
font-size: 14px;
border: 1px solid #ededed;
color: #333;
}
}
.copy {
width: 46px !important;
position: relative;
padding: 0px 8px !important;
float: right;
top: 6px;
/* right: 20px; */
bottom: 4px;
font-size: 14px !important;
border: 1px solid #1890ff !important;
color: #1890ff !important;
line-height: 22px;
text-align: center;
border-radius: 4px;
cursor: pointer;
&:hover {
color: #fff !important;
background-color: #1890ff !important;
}
}
.jobinformationbox {
h1 {
position: relative;
.copy {
position: absolute;
padding: 0px 12px;
right: 20px;
bottom: 4px;
font-size: 14px;
border: 1px solid #1890ff;
color: #1890ff;
// border-radius: 5px;
line-height: 22px;
text-align: center;
cursor: pointer;
&:hover {
color: #fff;
background-color: #1890ff;
}
}
}
.navigation {
position: relative;
flex: 1;
margin-top: 40px;
// width: 70px !important;
.ant-affix {
left: calc(50% + 156px) !important; // 手动定位固定位置
}
.ant-anchor-wrapper {
padding-left: 5px !important;
}
.ant-anchor-ink-ball {
// border-color: #1890ff;
width: 12px;
height: 12px;
border: 3px solid #1890ff;
}
.ant-anchor-link {
padding: 10px 20px !important;
a {
color: #666;
font-size: 18px;
font-weight: 600;
}
}
.ant-anchor-link-active {
a {
color: #1890ff !important;
// font-weight: bold;
}
}
}
.baseInfoContent {
width: 600px;
> div {
> div:first-child {
font-size: 16px;
color: #333;
font-weight: 600;
}
}
.condition {
.conditiontable {
display: flex;
width: 640px;
flex-direction: column;
font-size: 14px;
border-radius: 6px;
border: 1px solid #ededed;
> li {
display: flex;
align-items: center;
border-bottom: 1px solid #ededed;
&:last-child {
border-bottom: 0px;
}
}
li {
display: flex;
min-height: 44px;
width: 100%;
span:first-child {
padding: 12px 16px;
width: 124px;
text-align: center;
border-right: 1px solid #ededed;
color: #666;
// font-weight: bold;
}
span:last-child {
flex: 1;
display: flex;
color: #333;
padding: 12px 16px;
white-space: break-space;
align-items: center;
}
}
li:not(li:last-child) {
border-bottom: 1px solid #ededed;
}
}
}
}
}
}
.maincontentright {
// position: sticky;
// top: 0;
width: 300px;
> div {
// margin-bottom: 16px;
// padding: 16px;
}
.jobDetailInfo {
width: 300px;
overflow: hidden;
// height: 114px;
// padding: 0 20px 0px 20px;
border-radius: 4px;
background-color: #fff;
text-align: left;
h1 {
position: relative;
text-align: center;
margin-bottom: 0;
span {
position: absolute;
right: 10px;
color: #1890ff;
}
}
p {
font-size: 16px;
word-break: break-all;
white-space: break-spaces;
padding: 16px 20px;
}
}
.hotphone {
overflow: hidden;
position: relative;
width: 300px;
height: 200px;
// height: 114px;
// padding: 0 20px 20px 20px;
border: 1px solid #eee;
border-radius: 6px;
background-color: #fff;
text-align: center;
// p {
// position: absolute;
// width: 100%;
// font-size: 20px;
// color: #333;
// font-weight: 600;
// top: 75%;
// left: 50%;
// transform: translateX(-50%) translateY(-50%);
// }
}
.companyinfo {
overflow: hidden;
// padding: 0 20px 20px 20px;
border-radius: 6px;
border: 1px solid #ededed;
background-color: #fff;
.companydetail {
// width: 200px;
p:first-of-type {
padding: 20px;
font-size: 18px;
font-weight: normal;
text-align: left;
color: #4d575e;
margin-bottom: 12px;
line-height: 22px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.imgbox {
// width: 230px;
display: flex;
align-items: center;
height: 172px;
margin-bottom: 12px;
img {
width: 100%;
}
}
p:last-of-type {
font-size: 14px;
text-align: left;
color: #788085;
line-height: 22px;
margin-bottom: 15px;
}
}
.companylocation {
// width: 200px;
h1 {
// height: 50px;
// line-height: 50px;
padding-top: 10px;
text-align: center;
// border-top: 1px solid #eeefef;
}
.imgbox {
width: 200px;
height: 200px;
margin-top: 20px;
img {
width: 100%;
height: 100%;
}
}
}
}
.recommendposition {
border: 1px solid #ededed;
}
}
.leftDesc {
.ant-descriptions-view {
width: 600px;
border-radius: 6px;
// border: 0 !important;
}
}
.leftDesc.ant-descriptions-bordered table {
// min-height: 352px !important;
tbody {
tr {
height: 44px;
}
}
}
.leftDesc.ant-descriptions-bordered .ant-descriptions-item-label {
width: 124px;
text-align: center;
font-weight: normal;
background-color: #fff;
padding: 8px 0;
font-size: 14px;
color: #666;
letter-spacing: 1px;
// padding: 8px 0px;
/*vertical-align: baseline;*/
}
.leftDesc.ant-descriptions-bordered .ant-descriptions-item-content {
white-space: break-spaces;
text-align: left;
// padding-left: 8px;
font-size: 14px;
color: #333;
}
.boubleLevel > .ant-descriptions-view > table > tbody > .ant-descriptions-row:last-child > .ant-descriptions-item-content {
// padding: 0 !important;
.noborder {
.ant-descriptions-view {
// border: 0 !important;
}
}
}
// .right
}
.showInfo {
width: unset;
white-space: pre-wrap;
word-break: break-all;
line-height: 28px;
color: #1890ff !important;
border-radius: 6px;
}
.hotTel {
position: fixed;
top: 50%;
left: calc(50vw + 616px);
width: 104px;
height: 110px;
background-color: #fff;
box-shadow: 5px 0px 10px 3px #eee;
text-align: center;
padding-top: 10px;
> i {
font-size: 40px;
}
> p {
font-size: 14px;
text-align: center;
color: #1890ff;
}
&:hover > div {
display: block;
}
div {
position: absolute;
display: none;
height: 110px;
width: 200px;
left: -236px;
bottom: 0px;
text-align: center;
box-shadow: 5px 0px 10px 3px #ddd;
background-color: #fff;
> p:first-child {
padding: 14px 0;
border-bottom: 1px solid #eee;
}
> p:last-child {
padding: 16px 0;
font-size: 24px;
color: #1890ff;
}
}
}
.mask {
position: fixed;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.06);
top: 0;
left: 0;
z-index: 999;
pointer-events: none;
}
.swiperBox {
width: 350px;
margin-top: 20px;
position: relative;
.swiper-button-next {
right: 0px;
background-image: url(http://matripe.oss-cn-beijing.aliyuncs.com/img/right.svg);
}
.swiper-button-prev {
left: -10px;
background-image: url(http://matripe.oss-cn-beijing.aliyuncs.com/img/left.svg);
}
}
#swiper {
width: 340px;
overflow: hidden;
.swiper-wrapper {
// width: 460px;
}
.swiper-slide {
img {
width: 80px;
height: 45px;
object-fit: cover;
// width: 100%;
}
}
}
.swiper-button-disabled {
display: none;
}
.spic.ant-modal-wrap {
text-align: center;
}
/deep/ .spic {
.ant-modal {
width: auto !important;
display: inline-block;
}
.ant-modal-close {
top: 24px;
right: 6px;
position: fixed;
color: #fff;
.ant-modal-close-x {
font-size: 30px;
}
}
.ant-modal-content {
background-color: transparent;
.ant-modal-body {
padding: 0;
}
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
user-select: none;
}
}
}
.rightFixed {
/deep/.ant-anchor-ink {
display: none;
}
}
.default_avatar {
width: 186px;
height: 186px;
display: flex;
align-items: center;
text-align: center;
background-color: #d85043;
color: #fff;
font-size: 44px;
line-height: 1.3;
}
.tab-item{
width: 50%;
text-align: center;
font-size: 16px;
padding-bottom: 12px;
cursor: pointer;
position: relative;
.bor{
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 0;
width: 20px;
height: 2px;
background-color: transparent;
}
}
.tab-item-active{
color: #1890ff;
font-weight: 600;
.bor{
background-color: #1890ff;
}
}
</style>