|
|
<template>
|
|
|
<div class="joblist-container">
|
|
|
<!-- 城市的弹出框 -->
|
|
|
<a-modal class="cityModal" transitionName v-model="visible" width="680px" @cancel="cityModalClose" title="请选择城市" :footer="null">
|
|
|
<div class="inputBox">
|
|
|
<a-input placeholder="请输入城市名称" allow-clear width="300px" v-model="cityValue" @keyup.enter="searchCity" @input="resetCityList"></a-input>
|
|
|
<a-button @click="searchCity">确认</a-button>
|
|
|
</div>
|
|
|
<ul class="firstList">
|
|
|
<li @click="[(currentCityList = hotCityList), (activeInd = -1)]">
|
|
|
<div :class="activeInd == -1 ? 'active' : ''">热门地区</div>
|
|
|
</li>
|
|
|
<li v-for="(item, index) in hasJobCityList.firstList" :key="index" @click="[changeCurrentCity(index), (activeInd = index)]">
|
|
|
<div :class="activeInd == index ? 'active' : ''">
|
|
|
<span v-for="i in item" :key="i">{{ i }}</span>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
<ul class="currentCity">
|
|
|
<li v-for="(item, index) in currentCityList" :key="index">
|
|
|
<div @click="searchJob(item)">{{ item.name }}</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</a-modal>
|
|
|
<!-- 筛选导航 -->
|
|
|
<div class="navigation">
|
|
|
<div class="w" id="navigation">
|
|
|
<span class="dn">
|
|
|
<!-- <i class="iconfont icon-yigezhuanmenfuwudailidepingtai"></i> -->
|
|
|
<router-link to="/main">
|
|
|
<!-- <svg class="icon" aria-hidden="true">
|
|
|
<use xlink:href="#icon-yishoudanlogo"></use></svg
|
|
|
>-->
|
|
|
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" class="icon" />
|
|
|
</router-link>
|
|
|
</span>
|
|
|
<!-- 特色筛选的列表盒子 -->
|
|
|
<!-- <div v-if="isspecialboxshow" class="specialbox" @click.stop="">
|
|
|
<div class="w">
|
|
|
<ul>
|
|
|
<li
|
|
|
v-for="(item, index) in specialList"
|
|
|
:key="index"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item.name) > -1,
|
|
|
}"
|
|
|
>
|
|
|
{{ item.name }}
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>-->
|
|
|
<!-- <ul class="filterbox">
|
|
|
<li>
|
|
|
<i class="iconfont icon-dingwei"></i>
|
|
|
<a-cascader
|
|
|
:options="cityoption"
|
|
|
change-on-select
|
|
|
@change="onChange"
|
|
|
placeholder="选择城市"
|
|
|
v-model="formvalue.district"
|
|
|
popupClassName="flitercity"
|
|
|
:getPopupContainer="
|
|
|
(triggerNode) => {
|
|
|
return triggerNode.parentNode || document.body;
|
|
|
}
|
|
|
"
|
|
|
id="city"
|
|
|
:popupStyle="{
|
|
|
transform: 'all .1s',
|
|
|
}"
|
|
|
><i slot="suffixIcon" class="iconfont icon-xiala"></i
|
|
|
></a-cascader>
|
|
|
|
|
|
<div @click="visible = true">
|
|
|
<span :style="{ color: currentCity != '全国' ? '#ff6a00' : '' }">{{ currentCity }}</span>
|
|
|
<div><i class="iconfont icon-sousuoxiala"></i> <i class="iconfont icon-guanbishixin" v-show="currentCity != '全国'" @click.stop="resetCity"></i></div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
<div>
|
|
|
<a-cascader
|
|
|
:options="options.price"
|
|
|
placeholder="工价"
|
|
|
@change="onChange"
|
|
|
popupClassName="monthlypay"
|
|
|
:getPopupContainer="
|
|
|
(triggerNode) => {
|
|
|
return triggerNode.parentNode || document.body;
|
|
|
}
|
|
|
"
|
|
|
v-model="formvalue.monthlyPayStr"
|
|
|
id="price"
|
|
|
><i slot="suffixIcon" class="iconfont icon-xiala"></i
|
|
|
></a-cascader>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
<div>
|
|
|
<a-cascader
|
|
|
:options="options.gender"
|
|
|
placeholder="性别"
|
|
|
@change="onChange"
|
|
|
class="gender"
|
|
|
popupClassName="gender"
|
|
|
:getPopupContainer="
|
|
|
(triggerNode) => {
|
|
|
return triggerNode.parentNode || document.body;
|
|
|
}
|
|
|
"
|
|
|
v-model="formvalue.sex"
|
|
|
id="gender"
|
|
|
><i slot="suffixIcon" class="iconfont icon-xiala"></i
|
|
|
></a-cascader>
|
|
|
</div>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a-cascader
|
|
|
:options="options.age"
|
|
|
placeholder="年龄"
|
|
|
@change="onChange"
|
|
|
popupClassName="agestr"
|
|
|
:getPopupContainer="
|
|
|
(triggerNode) => {
|
|
|
return triggerNode.parentNode || document.body;
|
|
|
}
|
|
|
"
|
|
|
v-model="formvalue.ageStr"
|
|
|
id="age"
|
|
|
><i slot="suffixIcon" class="iconfont icon-xiala"></i
|
|
|
></a-cascader>
|
|
|
</li>
|
|
|
|
|
|
<li class="special">
|
|
|
<div @click.stop="isspecialboxshowclick" :style="isspecialboxshow ? 'color:#ff4400' : ''">
|
|
|
<ul class="showspecial" v-if="filterObj.specialactive.length !== 0">
|
|
|
<li v-for="(item, index) in filterObj.specialactive" :key="index" @click.stop>{{ item }}<i class="iconfont icon-guanbi" @click.stop="delmark(index)"></i></li>
|
|
|
</ul>
|
|
|
<span v-if="filterObj.specialactive.length > 2">...</span>
|
|
|
<span :style="filterObj.specialactive.length > 0 ? 'color:#ff4400' : ''" v-if="filterObj.specialactive.length === 0">特色</span><i class="iconfont icon-xiala" :class="isspecialboxshow ? 'turn' : ''" :style="isspecialboxshow ? 'color:#ff4400' : ''"></i>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li class="ageinputbox">
|
|
|
<a-input
|
|
|
class="ageinput"
|
|
|
placeholder="年龄,如20"
|
|
|
v-model="formvalue.ageStr"
|
|
|
type="text"
|
|
|
allow-clear
|
|
|
@input="resetAgeSearch"
|
|
|
@keyup.enter="onSearch"
|
|
|
@click.stop="
|
|
|
() => {
|
|
|
return false;
|
|
|
}
|
|
|
"
|
|
|
></a-input>
|
|
|
<div class="confirm">
|
|
|
<button @click="onSearch">确定</button>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li class="claerfilter">
|
|
|
<div>
|
|
|
<a @click="claerfilter" href="javascript:;" v-show="formvalue.ageStr.length != 0 || formvalue.sex.length != 0 || formvalue.monthlyPayStr.length != 0 || filterObj.specialactive.length != 0">清空筛选条件</a>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>-->
|
|
|
<div class="searchBox" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" outline="0" hidefocus="true">
|
|
|
<a-input placeholder="搜索职位、企业名称、年龄要求" @keyup.enter="onSearch" @input="resetsearch" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" v-model="searchValue" class="searchinput" style allow-clear>
|
|
|
<div slot="prefix" class="fsa w100" @focus.stop tabindex="0" @click.stop="visible = true">
|
|
|
<span class="dpib esl" style="width: 60px">{{ currentCity }}</span>
|
|
|
<div>
|
|
|
<i class="iconfont icon-sousuoxiala"></i>
|
|
|
<i class="iconfont icon-guanbishixin" v-show="currentCity != '全国'" @click.stop="resetCity"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
<button slot="suffix" @click="onSearch" style="border-radius: 0px 6px 6px 0">搜索</button>
|
|
|
</a-input>
|
|
|
<!-- v-show="isdownHotStoreShow" -->
|
|
|
<!-- <ul class="downHotStore" style="display: none">
|
|
|
<div>热门企业</div>
|
|
|
<li v-for="(item, index) in hotStoreList" :key="index" @click="getHotStoreList(item)">
|
|
|
{{ item.storeName }}
|
|
|
</li>
|
|
|
</ul>-->
|
|
|
<div class="hotStore">
|
|
|
<!-- <span>热门企业:</span> -->
|
|
|
<ul>
|
|
|
<li v-for="(item, index) in hotStoreList" :key="index" @click="getHotStoreList(item)">{{ item.storeName }}</li>
|
|
|
<!-- <li @click="resetResult" style="color: #aaa">重置</li> -->
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
<ul class="hotTag" style="display: none">
|
|
|
<div>热门:</div>
|
|
|
<li
|
|
|
v-for="(item, index) in specialHotTag"
|
|
|
:key="index"
|
|
|
@click="specialclick(index, item)"
|
|
|
:class="{
|
|
|
active: filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
>
|
|
|
{{ item.name }}
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 面包屑 -->
|
|
|
<!-- <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="">
|
|
|
<span>一手职位</span>
|
|
|
</a-breadcrumb-item>
|
|
|
</a-breadcrumb>-->
|
|
|
<!-- #### 主体部分 ##### -->
|
|
|
<div class="w" id="maincontent">
|
|
|
<div class="maincontentleft" v-if="!isVocational" style="padding-top: 50px">
|
|
|
<div class="tabBar" @click="changeTab($event)">
|
|
|
<div class="tabSubset" :class="{ active: signType == '' }" data-type="0">全部</div>
|
|
|
<div class="tabSubset" :class="{ active: signType == 1 }" v-if="loginValue.agencyName == '郑州一才工作'" data-type="1">一才</div>
|
|
|
<!-- <div class="tabSubset" :class="{ active: signType == 2 }" data-type="2">三方</div> -->
|
|
|
</div>
|
|
|
<div class="filter" v-show="signType == ''" :class="[filterStatus == 0 ? '' : 'nobd']" style>
|
|
|
<div class="filter-title" :style="{ top: filterStatus == 0 ? '-32px' : '-21px' }">
|
|
|
<span>
|
|
|
<span>
|
|
|
所有筛选
|
|
|
<i class="iconfont icon-youjiantou"></i>
|
|
|
</span>
|
|
|
<span class="filter-show">
|
|
|
<span @click="delFilter($event, 'price')" v-show="filterObj.price">
|
|
|
{{ filterObj.price }}
|
|
|
<i class="iconfont icon-guanbi2" v-show="filterObj.price"></i>
|
|
|
</span>
|
|
|
<span @click="delFilter($event, 'gender')" v-show="filterObj.gender">
|
|
|
{{ filterObj.gender }}
|
|
|
<i class="iconfont icon-guanbi2" v-show="filterObj.gender"></i>
|
|
|
</span>
|
|
|
<span @click="delFilter($event, 'age')" v-show="filterObj.age">
|
|
|
{{ filterObj.age }}
|
|
|
<i class="iconfont icon-guanbi2" v-show="filterObj.age"></i>
|
|
|
</span>
|
|
|
<span @click="delFilter($event, 'special', item)" v-for="(item, index) in filterObj.specialactive" :key="index">
|
|
|
{{ item.name }}
|
|
|
<i class="iconfont icon-guanbi2"></i>
|
|
|
</span>
|
|
|
<i v-show="showDotted" style="line-height: 24px">...</i>
|
|
|
</span>
|
|
|
</span>
|
|
|
<span>
|
|
|
<span class="toggleFilter" @click="hideFilterContent">
|
|
|
{{ filterStatus == 0 ? "收起筛选" : "展开筛选" }}
|
|
|
<i
|
|
|
class="iconfont icon-sousuoxiala"
|
|
|
:style="{
|
|
|
transform: filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
|
|
|
}"
|
|
|
></i>
|
|
|
</span>
|
|
|
<a-dropdown :trigger="['click']" overlayClassName="sortClass" placement="bottomRight">
|
|
|
<span class="sort">{{ sortStr }}</span>
|
|
|
<a-menu slot="overlay">
|
|
|
<a-menu-item>
|
|
|
<div class="sortMenu" :class="sortNum == 1 ? 'active' : ''" @click="sortList('price')">工价优先</div>
|
|
|
</a-menu-item>
|
|
|
<a-menu-item>
|
|
|
<div class="sortMenu" :class="sortNum == 2 ? 'active' : ''" @click="sortList('juli')">距离优先</div>
|
|
|
</a-menu-item>
|
|
|
<a-menu-item>
|
|
|
<div class="sortMenu" :class="sortNum == 3 ? 'active' : ''" @click="sortList('fuwufei')">佣金优先</div>
|
|
|
</a-menu-item>
|
|
|
</a-menu>
|
|
|
</a-dropdown>
|
|
|
</span>
|
|
|
</div>
|
|
|
<div class="filter-content" style="transition: height 0.2s">
|
|
|
<dl class="price">
|
|
|
<dt>工价:</dt>
|
|
|
<dd>
|
|
|
<div class="ageinputbox">
|
|
|
<!-- <div> -->
|
|
|
<a-input
|
|
|
class="ageinput"
|
|
|
v-model="minMonthlyPay"
|
|
|
:maxLength="5"
|
|
|
type="text"
|
|
|
allow-clear
|
|
|
prefix="¥"
|
|
|
@input="resetPriceSearch"
|
|
|
@click.stop="
|
|
|
() => {
|
|
|
return false;
|
|
|
}
|
|
|
"
|
|
|
></a-input>
|
|
|
<span class="middle-line">-</span>
|
|
|
<a-input
|
|
|
class="ageinput"
|
|
|
v-model="maxMonthlyPay"
|
|
|
:maxLength="5"
|
|
|
type="text"
|
|
|
allow-clear
|
|
|
prefix="¥"
|
|
|
@input="resetPriceSearch"
|
|
|
@click.stop="
|
|
|
() => {
|
|
|
return false;
|
|
|
}
|
|
|
"
|
|
|
></a-input>
|
|
|
<div class="confirm">
|
|
|
<button @click="searchPrice">确定</button>
|
|
|
</div>
|
|
|
<!-- </div> -->
|
|
|
</div>
|
|
|
<i @click="searchPrice">
|
|
|
<span
|
|
|
:style="{
|
|
|
color: filterObj.price == '3000-4000' ? '#ff4400' : '',
|
|
|
}"
|
|
|
>3000-4000</span
|
|
|
>
|
|
|
<span
|
|
|
:style="{
|
|
|
color: filterObj.price == '4000-5000' ? '#ff4400' : '',
|
|
|
}"
|
|
|
>4000-5000</span
|
|
|
>
|
|
|
<span
|
|
|
:style="{
|
|
|
color: filterObj.price == '5000-6000' ? '#ff4400' : '',
|
|
|
}"
|
|
|
>5000-6000</span
|
|
|
>
|
|
|
<span
|
|
|
:style="{
|
|
|
color: filterObj.price == '6000-7000' ? '#ff4400' : '',
|
|
|
}"
|
|
|
>6000-7000</span
|
|
|
>
|
|
|
</i>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl class="price">
|
|
|
<dt>年龄:</dt>
|
|
|
<dd>
|
|
|
<div class="ageinputbox">
|
|
|
<!-- <div> -->
|
|
|
<a-input
|
|
|
class="ageinput age"
|
|
|
v-model="minAge"
|
|
|
:maxLength="3"
|
|
|
type="text"
|
|
|
allow-clear
|
|
|
suffix="岁"
|
|
|
@input="resetAgeSearch"
|
|
|
@click.stop="
|
|
|
() => {
|
|
|
return false;
|
|
|
}
|
|
|
"
|
|
|
></a-input>
|
|
|
<span class="middle-line">-</span>
|
|
|
<a-input
|
|
|
class="ageinput age"
|
|
|
v-model="maxAge"
|
|
|
:maxLength="3"
|
|
|
type="text"
|
|
|
allow-clear
|
|
|
suffix="岁"
|
|
|
@input="resetAgeSearch"
|
|
|
@click.stop="
|
|
|
() => {
|
|
|
return false;
|
|
|
}
|
|
|
"
|
|
|
></a-input>
|
|
|
<div class="confirm">
|
|
|
<button @click="searchAge">确定</button>
|
|
|
</div>
|
|
|
<!-- </div> -->
|
|
|
</div>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>性别:</dt>
|
|
|
<dd @click="searchGender">
|
|
|
<span :style="{ color: filterObj.gender == '男' ? '#ff4400' : '' }">男</span>
|
|
|
<span :style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }">女</span>
|
|
|
<span
|
|
|
:style="{
|
|
|
color: filterObj.gender == '男女不限' ? '#ff4400' : '',
|
|
|
}"
|
|
|
>男女不限</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>分类:</dt>
|
|
|
<dd>
|
|
|
<span v-for="(item, index) in classifyList" :key="index" :class="{ 'special-active': filterObj.specialactive.indexOf(item) > -1 }" @click.stop="classifyClick(index, item)">{{ item.name }}</span>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>薪资福利:</dt>
|
|
|
<dd>
|
|
|
<span
|
|
|
v-for="(item, index) in tagArray1"
|
|
|
:key="index"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
>{{ item.name }}</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>宿舍保障:</dt>
|
|
|
<dd>
|
|
|
<span
|
|
|
v-for="(item, index) in tagArray3"
|
|
|
:key="index"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
>{{ item.name }}</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>班制休息:</dt>
|
|
|
<dd>
|
|
|
<span
|
|
|
v-for="(item, index) in tagArray0"
|
|
|
:key="index"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
>{{ item.name }}</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>面试特色:</dt>
|
|
|
<dd>
|
|
|
<span
|
|
|
v-for="(item, index) in tagArray4"
|
|
|
:key="index"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
>{{ item.name }}</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
<dl>
|
|
|
<dt>其他特色:</dt>
|
|
|
<dd>
|
|
|
<span
|
|
|
v-for="(item, index) in tagArray2"
|
|
|
:key="index"
|
|
|
:class="{
|
|
|
'special-active': filterObj.specialactive.indexOf(item) > -1,
|
|
|
}"
|
|
|
@click.stop="specialclick(index, item)"
|
|
|
>{{ item.name }}</span
|
|
|
>
|
|
|
</dd>
|
|
|
</dl>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="text-align: center">
|
|
|
<a-spin tip="加载中..." :spinning="isspinning"></a-spin>
|
|
|
</div>
|
|
|
<!-- <div
|
|
|
class="nodata"
|
|
|
v-if="jobMainList.length === 0 && isspinning === false"
|
|
|
>-->
|
|
|
<template v-if="jobMainList.length === 0 && isspinning === false">
|
|
|
<a-empty class="nodata" description="暂无符合条件的岗位" />
|
|
|
</template>
|
|
|
<!-- </div> -->
|
|
|
|
|
|
<div v-if="!isspinning">
|
|
|
<div
|
|
|
class="subset"
|
|
|
v-for="(item, index) in jobMainList"
|
|
|
:key="index"
|
|
|
:style="{
|
|
|
background: item.recruitment == '1' ? '#fff' : '#f5f5f5',
|
|
|
}"
|
|
|
>
|
|
|
<!-- v-if="signType == ''" -->
|
|
|
|
|
|
<span @click="toDetail(item)" style="cursor: pointer">
|
|
|
<div class="subsetleft" @click="totop">
|
|
|
<div class="imgbox">
|
|
|
<img v-if="item.logo.length !== 0" :src="item.logo" />
|
|
|
<div v-else class="default_avatar">{{ item.brandName || item.jobName }}</div>
|
|
|
<!-- <img v-else src="../../../static/img/nopicture.png" /> -->
|
|
|
</div>
|
|
|
<div class="jobinfobox">
|
|
|
<!-- <router-link
|
|
|
target="_blank"
|
|
|
:to="'/detail/' + item.id"
|
|
|
rel="opener"
|
|
|
>-->
|
|
|
<div class="jobname">{{ item.jobName }}</div>
|
|
|
<!-- </router-link> -->
|
|
|
<div class="jobinfo">
|
|
|
<span>{{ item.district }}</span>
|
|
|
<span>{{ item.gender }}</span>
|
|
|
<span v-if="item.distance != null && item.distance != '' && formvalue.sortTag == 2">{{ item.distanceKm }}</span>
|
|
|
<span v-else>{{ item.age }}</span>
|
|
|
</div>
|
|
|
<div class="jobtag">
|
|
|
<!-- <span>返费</span> -->
|
|
|
<!-- <i class="iconfont icon-ziying" v-if="item.signType == 1" style></i> -->
|
|
|
<span class="hotTag" v-if="item.hotJob == 1">
|
|
|
<i class="iconfont icon-dianzan1 mr0" style="font-size: 12px"></i>
|
|
|
主推
|
|
|
</span>
|
|
|
<span v-for="(item1, index) in item.jobSpecialLabelNames" :key="index">{{ item1 }}</span>
|
|
|
<span v-if="item.jobSpecialLabelNames.length == 0">暂无特色</span>
|
|
|
</div>
|
|
|
<div class="jobpricemonth" v-if="item.minMonthlyPay">
|
|
|
<!-- :style="{ opacity: item.minMonthlyPay ? '1' : '0' }" -->
|
|
|
|
|
|
<template v-if="formvalue.signType != 1">
|
|
|
<span>{{ item.minMonthlyPay ? item.minMonthlyPay : "" }}</span
|
|
|
>-<span>{{ item.maxMonthlyPay ? item.maxMonthlyPay : "" }}</span
|
|
|
>元/月
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<span>{{ item.minMonthlyPay ? item.minMonthlyPay / 100 : "" }}</span
|
|
|
>-<span>{{ item.maxMonthlyPay ? item.maxMonthlyPay / 100 : "" }}</span
|
|
|
>元/月
|
|
|
</template>
|
|
|
</div>
|
|
|
<div class="jobpricehour" v-html="getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue)"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</span>
|
|
|
<div class="subsetright">
|
|
|
<div class="topContainer">
|
|
|
<div class="updateTime" style="display: none">
|
|
|
<span>更新时间:{{ item.updateTime || "--" }} ( {{ item.diffTime || "--" }} )</span>
|
|
|
</div>
|
|
|
<div class="topbox">
|
|
|
<div>服务费</div>
|
|
|
<div>{{ item.servetype }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottombox1">
|
|
|
<!-- <a-popover title="" trigger="click" placement="bottomRight">
|
|
|
<template slot="content" class="jobDesp_content">
|
|
|
<div :class="'copy' + index" @click="copyText($event, index)">复制</div>
|
|
|
<span v-if="item.jobDesp" :class="'copyInfo' + index">{{ item.jobDesp }}</span
|
|
|
><span v-else>暂无详单</span>
|
|
|
</template>-->
|
|
|
<a>
|
|
|
<button
|
|
|
type="primary"
|
|
|
class="jobDesp br4"
|
|
|
:style="{
|
|
|
background: item.recruitment == '1' ? '#fff' : '#f5f5f5',
|
|
|
}"
|
|
|
@click="toDetail(item)"
|
|
|
>
|
|
|
更多
|
|
|
</button>
|
|
|
</a>
|
|
|
<!-- </a-popover> -->
|
|
|
<button class="apply br4" @click="torecord(item)" v-if="item.recruitment == '1'">报名{{item.id}}</button>
|
|
|
<button class="norecruitment" v-else>暂时停招</button>
|
|
|
|
|
|
<!-- <button @click="showmodal(item)" @click="">报名</button> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="pagecontainer f40">
|
|
|
<a-pagination :current="+formvalue.pageNum" :default-current="1" :defaultPageSize="8" :total="formvalue.total" @change="pageChange" />
|
|
|
<div class="ant-pagination-options-quick-jumper">
|
|
|
跳至
|
|
|
<input ref="pageinput" type="text" @keyup.enter="inputpageChange" @blur="inputpageChange" />页
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="maincontentleft isVocational" v-else style="padding-top: 50px">
|
|
|
<div class="tabBar" @click="changeTab($event)">
|
|
|
<div class="tabSubset" :class="{ active: 1 }" data-type="0">全部</div>
|
|
|
</div>
|
|
|
<div style="text-align: center">
|
|
|
<a-spin tip="加载中..." :spinning="isspinning"></a-spin>
|
|
|
</div>
|
|
|
<!-- <template v-if="jobMainList.length === 0 && isspinning === false">
|
|
|
<a-empty class="nodata" description="暂无符合条件的岗位" />
|
|
|
</template> -->
|
|
|
<div v-if="!isspinning">
|
|
|
<div
|
|
|
class="subset"
|
|
|
v-for="(item, index) in zhijiaoList"
|
|
|
:key="index"
|
|
|
:style="{
|
|
|
background: '#fff',
|
|
|
}"
|
|
|
>
|
|
|
<router-link target="_blank" :to="`/detail?id=${item.id}&page=${formvalue.pageNum}&type=vocational`" rel="opener">
|
|
|
<div class="subsetleft" @click="totop">
|
|
|
<div class="imgbox">
|
|
|
<img v-if="item.logo.length !== 0" :src="item.logo" />
|
|
|
<div v-else class="default_avatar">{{ item.vocationalName || item.jobName }}</div>
|
|
|
<!-- <img v-else src="../../../static/img/nopicture.png" /> -->
|
|
|
</div>
|
|
|
<div class="jobinfobox" style="display: flex; flex-direction: column; justify-content: space-between">
|
|
|
<div>
|
|
|
<div class="jobname">{{ item.vocationalName }}</div>
|
|
|
<div class="jobinfo">
|
|
|
<span>{{ item.district || "河南省 | 郑州市 | 16-35岁" }}</span>
|
|
|
<!-- <span>{{ item.gender }}</span> -->
|
|
|
</div>
|
|
|
<div class="jobpricemonth">
|
|
|
<span style="color: #ff4d4f; background: rgba(255, 77, 79, 0.1); padding: 1px 6px"> 工作薪资:{{ item.salary }} </span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="jobpricehour" style="font-size: 18px">
|
|
|
学费<span class="" style="font-size: 24px">{{ item.tuition }}</span>
|
|
|
<span style="font-size: 16px"> | 课期{{ item.semester }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</router-link>
|
|
|
<div class="subsetright">
|
|
|
<div class="topContainer">
|
|
|
<div class="topbox">
|
|
|
<div>服务费</div>
|
|
|
<div>{{ item.serviceCharge }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottombox1">
|
|
|
<!-- <a-popover title="" trigger="click" placement="bottomRight">
|
|
|
<template slot="content" class="jobDesp_content">
|
|
|
<div :class="'copy' + index" @click="copyText($event, index)">复制</div>
|
|
|
<span v-if="item.jobDesp" :class="'copyInfo' + index">{{ item.jobDesp }}</span
|
|
|
><span v-else>暂无详单</span>
|
|
|
</template>-->
|
|
|
<router-link target="_blank" :to="`/detail?id=${item.id}&type=vocational`" rel="opener">
|
|
|
<button
|
|
|
type="primary"
|
|
|
class="jobDesp br4"
|
|
|
:style="{
|
|
|
background: '#fff',
|
|
|
}"
|
|
|
>
|
|
|
更多
|
|
|
</button>
|
|
|
</router-link>
|
|
|
<!-- </a-popover> -->
|
|
|
<button class="apply br4" @click="showRecord(item)">立即报名</button>
|
|
|
<!-- <button class="norecruitment" v-else>暂时停招</button> -->
|
|
|
|
|
|
<!-- <button @click="showmodal(item)" @click="">报名</button> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="maincontentright">
|
|
|
<div class="dateinfo">
|
|
|
<h1 class="bottombox">
|
|
|
<i>我的日历</i>
|
|
|
</h1>
|
|
|
<p
|
|
|
class="day"
|
|
|
:style="{
|
|
|
'font-size': '60px',
|
|
|
color: '#ff4400',
|
|
|
'line-height': '80px',
|
|
|
'margin-top': '8px',
|
|
|
}"
|
|
|
>
|
|
|
{{ dateinfo.day }}
|
|
|
</p>
|
|
|
<p class="week" :style="{ 'font-size': '16px', color: '#ff4400' }">{{ dateinfo.week }}</p>
|
|
|
<p class="date" :style="{ 'font-size': '16px', color: '#ff4400' }">{{ dateinfo.date }}</p>
|
|
|
</div>
|
|
|
<div class="hotphone">
|
|
|
<h1 class="bottombox" style>
|
|
|
<i>客户经理</i>
|
|
|
</h1>
|
|
|
<!-- <div class="fcsc"> -->
|
|
|
|
|
|
<!-- <p>0371-6611 3723</p> -->
|
|
|
<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; font-weight: 600">
|
|
|
<p class="f16" style="margin-top: 10px">
|
|
|
{{ managerInfo.name }}
|
|
|
<i class="iconfont icon-dianhua1 ml4 f14" style="line-height: 24px; color: #ff4400"></i>
|
|
|
</p>
|
|
|
<p class="f16">{{ managerInfo.workPhone || "-" }}</p>
|
|
|
</div>
|
|
|
<!-- </div> -->
|
|
|
</div>
|
|
|
<!-- <div class="relationme">
|
|
|
<p class="bottombox"><i>稻田合作</i></p>
|
|
|
<button>发布稻田</button>
|
|
|
</div>-->
|
|
|
<recommend />
|
|
|
</div>
|
|
|
</div>
|
|
|
<recordModal :show.sync="recordShow" :jobDetail="currentInfo"></recordModal>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import {
|
|
|
JobListApi,
|
|
|
JobListApiYicai,
|
|
|
getJobSpecialApi,
|
|
|
getProvinceApi,
|
|
|
getHotCityApi,
|
|
|
getCityWhichHasJobApi,
|
|
|
getHotStoreApi,
|
|
|
getClassifyListApi,
|
|
|
// getCityApi,
|
|
|
} from "../../api/job";
|
|
|
import { getUserManagerApi } from "../../api/userinfo";
|
|
|
import $ from "jquery";
|
|
|
|
|
|
import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck, disposeJobListData, setReturnFee } from "../../utils/commonUtil";
|
|
|
import recommend from "@/components/FirstJob/components/recommend.vue";
|
|
|
import { nationlist } from "../../utils/datalist";
|
|
|
import Clipboard from "clipboard";
|
|
|
// 报名弹窗
|
|
|
import recordModal from "./components/vocationalRecord.vue";
|
|
|
|
|
|
// import PinYin from '../../utils/ChinesePY'
|
|
|
// import recordbill from "@/components/FirstJob/components/recordbill.vue";
|
|
|
export default {
|
|
|
// 注入获取职位列表的方法
|
|
|
inject: ["reload"],
|
|
|
// 组件名称
|
|
|
name: "",
|
|
|
// 局部注册的组件
|
|
|
components: {
|
|
|
recommend,
|
|
|
recordModal,
|
|
|
// recordbill,
|
|
|
},
|
|
|
// 组件参数 接收来自父组件的数据
|
|
|
props: {
|
|
|
isspecialboxshow: {
|
|
|
require: true,
|
|
|
},
|
|
|
formvalue: {
|
|
|
// type: Object,
|
|
|
require: true,
|
|
|
},
|
|
|
|
|
|
// isspinning: {
|
|
|
// require: true,
|
|
|
// }, // 加载中显示
|
|
|
},
|
|
|
// 组件状态值
|
|
|
data() {
|
|
|
return {
|
|
|
jobMainList: [], // 职位列表
|
|
|
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米路东`,
|
|
|
},
|
|
|
],
|
|
|
recordShow: false,
|
|
|
currentInfo: {}, // 当前点击的职位信息
|
|
|
isVocational: false,
|
|
|
isLogin: false,
|
|
|
isspinning: false,
|
|
|
sortNum: 1, // 排序的标识
|
|
|
sortStr: "工价优先",
|
|
|
specialList: [], // 获取的特色列表
|
|
|
classifyList: [], // 分类列表
|
|
|
searchValue: "",
|
|
|
specialvalue: [], // 点中的特色标签
|
|
|
classifyvalue: [], // 点中的分类标签
|
|
|
filterObj: {
|
|
|
price: "", // 选中的价格搜索
|
|
|
gender: "", // 选中的性别搜索
|
|
|
specialactive: [], // 点中的特色标签索引
|
|
|
},
|
|
|
showDotted: false,
|
|
|
visible: false, // 录单模态框的展示
|
|
|
confirmLoading: false, // 录单提交的loading效果
|
|
|
cityoption: [], // 城市列表
|
|
|
hotCityList: [], // 热门城市列表
|
|
|
hasJobCityList: {}, // 有职位的城市列表
|
|
|
currentCityList: {}, // 当前首字母展示的城市列表
|
|
|
minMonthlyPay: "",
|
|
|
maxMonthlyPay: "",
|
|
|
isdownHotStoreShow: false, // 热门企业下拉显示
|
|
|
currentPage: "",
|
|
|
currentCity: "全国",
|
|
|
cityValue: "", // 城市输入框内容
|
|
|
activeInd: -1,
|
|
|
hotStoreList: [],
|
|
|
newFormValue: [],
|
|
|
apply: "", // 报名企业id
|
|
|
filterStatus: 0, // 筛选开合状态
|
|
|
filterHeight: "", // 筛选盒子高度
|
|
|
signType: 0, // 自营三方类型(0全部,1自营,2三方)
|
|
|
tagArray0: [],
|
|
|
tagArray1: [],
|
|
|
tagArray2: [],
|
|
|
tagArray3: [],
|
|
|
tagArray4: [],
|
|
|
proxyinfo: JSON.parse(localStorage.getItem("LOGIN_DATA")),
|
|
|
nationlist: nationlist,
|
|
|
specialHotTag: [],
|
|
|
loginValue: {},
|
|
|
dateinfo: {
|
|
|
day: "",
|
|
|
week: "",
|
|
|
date: "",
|
|
|
},
|
|
|
|
|
|
options: {
|
|
|
//
|
|
|
price: [
|
|
|
{
|
|
|
value: "3000-4000",
|
|
|
label: "3000-4000元",
|
|
|
uid: 1,
|
|
|
},
|
|
|
{
|
|
|
value: "4000-5000",
|
|
|
label: "4000-5000元",
|
|
|
uid: 1,
|
|
|
},
|
|
|
{
|
|
|
value: "5000-6000",
|
|
|
label: "5000-6000元",
|
|
|
uid: 1,
|
|
|
},
|
|
|
{
|
|
|
value: "6000-7000",
|
|
|
label: "6000-7000元",
|
|
|
uid: 1,
|
|
|
},
|
|
|
],
|
|
|
age: [
|
|
|
{
|
|
|
value: "16-45",
|
|
|
label: "16-45岁",
|
|
|
uid: 2,
|
|
|
},
|
|
|
{
|
|
|
value: "18-35",
|
|
|
label: "18-35岁",
|
|
|
uid: 2,
|
|
|
},
|
|
|
{
|
|
|
value: "45-58",
|
|
|
label: "45-58岁",
|
|
|
uid: 2,
|
|
|
},
|
|
|
{
|
|
|
value: "58",
|
|
|
label: "58岁以上",
|
|
|
uid: 2,
|
|
|
},
|
|
|
],
|
|
|
gender: [
|
|
|
{
|
|
|
value: "1",
|
|
|
label: "男",
|
|
|
uid: 3,
|
|
|
},
|
|
|
{
|
|
|
value: "2",
|
|
|
label: "女",
|
|
|
uid: 3,
|
|
|
},
|
|
|
{
|
|
|
value: "-1",
|
|
|
label: "男女不限",
|
|
|
uid: 3,
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
relationList: [],
|
|
|
lng: "",
|
|
|
lat: "",
|
|
|
minAge: "",
|
|
|
maxAge: "",
|
|
|
managerInfo: {},
|
|
|
};
|
|
|
},
|
|
|
// 计算属性
|
|
|
computed: {},
|
|
|
// 侦听器
|
|
|
watch: {
|
|
|
formvalue: {
|
|
|
handler() {
|
|
|
// console.log(e);
|
|
|
// 筛选列表数据处理
|
|
|
// if (e.district !== undefined) {
|
|
|
// if (e.district.length === 0) {
|
|
|
// document.getElementById("city").style.width = 85 + "px";
|
|
|
// } else {
|
|
|
// const result = e.district.join("");
|
|
|
// console.log(result);
|
|
|
// if (result.length > 6) {
|
|
|
// document.getElementById("city").style.width = (result.length + 3) * 14 + "px";
|
|
|
// document.getElementById("city").style.maxWidth = "210px";
|
|
|
// document.querySelector("#city").nextElementSibling.style.width = (result.length + 3) * 14 + "px"; // 获取下一个兄弟元素s
|
|
|
// document.getElementById("city").nextElementSibling.style.maxWidth = "210px";
|
|
|
// } else if (result.length > 5) {
|
|
|
// document.getElementById("city").style.width = (result.length + 2.8) * 14 + "px";
|
|
|
// document.querySelector("#city").nextElementSibling.style.width = (result.length + 2.6) * 14 + "px";
|
|
|
// } else if (result.length > 4) {
|
|
|
// document.getElementById("city").style.width = (result.length + 2.4) * 14 + "px";
|
|
|
// document.querySelector("#city").nextElementSibling.style.width = (result.length + 2.4) * 14 + "px";
|
|
|
// } else {
|
|
|
// document.getElementById("city").style.width = (result.length + 1.5) * 14 + "px";
|
|
|
// document.getElementById("city").style.minWidth = 72 + "px";
|
|
|
// document.querySelector("#city").nextElementSibling.style.width = (result.length + 1.5) * 14 + "px";
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// 工价的判断
|
|
|
// if (e.monthlyPayStr.length == 0) {
|
|
|
// document.getElementById("price").style.width = 60 + "px";
|
|
|
// document.getElementById("price").style.minWidth = 60 + "px";
|
|
|
// } else {
|
|
|
// const result = e.monthlyPayStr.join("");
|
|
|
// if (result.length >= 0) {
|
|
|
// document.getElementById("price").style.width = "120px";
|
|
|
// document.getElementById("price").nextElementSibling.style.width = "130px";
|
|
|
// document.querySelector(".ant-cascader-picker-label").style.width =
|
|
|
// "150px";
|
|
|
// }
|
|
|
// }
|
|
|
// if (e.monthlyPayStr.length == 0) {
|
|
|
// document.getElementById("price").style.width = 60 + "px";
|
|
|
// document.getElementById("price").style.minWidth = 60 + "px";
|
|
|
// } else {
|
|
|
// const result = e.monthlyPayStr.join("");
|
|
|
// if (result.length >= 0) {
|
|
|
// document.getElementById("price").style.width = "120px";
|
|
|
// document.getElementById("price").nextElementSibling.style.width = "130px";
|
|
|
// // document.querySelector(".ant-cascader-picker-label").style.width =
|
|
|
// // "150px";
|
|
|
// }
|
|
|
// }
|
|
|
// if (e.sex.length == 0) {
|
|
|
// document.getElementById("gender").style.width = 60 + "px";
|
|
|
// document.getElementById("gender").style.minWidth = 60 + "px";
|
|
|
// } else {
|
|
|
// const result = e.sex.join("");
|
|
|
// if (result.length >= 2) {
|
|
|
// document.getElementById("gender").style.width = "90px";
|
|
|
// document.getElementById("gender").nextElementSibling.style.width = "100px";
|
|
|
// document.querySelector(".ant-cascader-picker-label").style.width =
|
|
|
// "150px";
|
|
|
// }
|
|
|
// }
|
|
|
// 年龄筛选长度的判断
|
|
|
// if (e.ageStr.length === 0) {
|
|
|
// document.getElementById("age").style.width = 60 + "px";
|
|
|
// } else {
|
|
|
// const result = e.ageStr.join("");
|
|
|
// if (result.length >= 0) {
|
|
|
// document.getElementById("age").style.width = "90px";
|
|
|
// document.getElementById("age").nextElementSibling.style.width = "90px";
|
|
|
// // document.querySelector(".ant-cascader-picker-label").style.width =
|
|
|
// // "150px";
|
|
|
// }
|
|
|
// }
|
|
|
},
|
|
|
deep: true,
|
|
|
},
|
|
|
$route: {
|
|
|
handler(e) {
|
|
|
console.log("$route", e);
|
|
|
if (e.query.type && e.query.type == "vocational") {
|
|
|
this.isVocational = true;
|
|
|
} else {
|
|
|
this.isVocational = false;
|
|
|
}
|
|
|
// console.log("ischange");
|
|
|
// console.log(to);
|
|
|
// console.log(from);
|
|
|
},
|
|
|
deep: true,
|
|
|
immediate: true,
|
|
|
},
|
|
|
filterObj: {
|
|
|
handler(newv) {
|
|
|
var arr = Object.keys(newv);
|
|
|
console.log(arr.length);
|
|
|
if (arr.length + newv.specialactive.length - 1 > 6) {
|
|
|
this.showDotted = true;
|
|
|
} else {
|
|
|
this.showDotted = false;
|
|
|
}
|
|
|
},
|
|
|
deep: true,
|
|
|
},
|
|
|
"formvalue.pageNum"(val) {
|
|
|
sessionStorage.removeItem("PAGE_TYPE");
|
|
|
},
|
|
|
},
|
|
|
// 组件
|
|
|
|
|
|
// 生命周期钩子 注:没用到的钩子请自行删除
|
|
|
/**
|
|
|
* 组件实例创建完成,属性已绑定,但DOM还未生成,$ el属性还不存在
|
|
|
*/
|
|
|
created() {
|
|
|
// console.log(this.proxyinfo);
|
|
|
console.log(this.$route);
|
|
|
|
|
|
window.addEventListener("beforeunload", (e) => this.removePageInfo());
|
|
|
if (sessionStorage.getItem("PAGE_TYPE")) {
|
|
|
let info = JSON.parse(sessionStorage.getItem("PAGE_TYPE"));
|
|
|
this.signType = info.signType ? info.signType : "";
|
|
|
this.currentPage = info.pageNum ? info.pageNum : 1;
|
|
|
}
|
|
|
if (this.$route.query.type) {
|
|
|
if (this.$route.query.type == "vocational") {
|
|
|
this.isVocational = true;
|
|
|
}
|
|
|
}
|
|
|
if (localStorage.getItem("LOGIN_DATA")) {
|
|
|
this.isLogin = true;
|
|
|
}
|
|
|
if (this.currentPage) {
|
|
|
// console.log(this.currentPage);
|
|
|
this.formvalue.pageNum = this.currentPage;
|
|
|
}
|
|
|
if (this.signType == "") {
|
|
|
this.getJobList();
|
|
|
} else {
|
|
|
this.getJobListYicai();
|
|
|
}
|
|
|
this.getRecommendJob();
|
|
|
|
|
|
this.getJobSpecial();
|
|
|
this.getProvince();
|
|
|
this.getdateinfo();
|
|
|
this.getHotCity();
|
|
|
this.getCityWhichHasJob();
|
|
|
this.getHotStore();
|
|
|
this.getClassifyList();
|
|
|
this.getUserManager();
|
|
|
this.hideFilterContent();
|
|
|
if (isNotEmptyCheck(localStorage.getItem("POSITION_INFO"))) {
|
|
|
let position = JSON.parse(localStorage.getItem("POSITION_INFO"));
|
|
|
let diffTime = new Date().getTime() - JSON.parse(localStorage.getItem("POSITION_INFO")).timestamp;
|
|
|
if (diffTime / 3600000 > 24) {
|
|
|
this.getPosition();
|
|
|
} else {
|
|
|
this.lng = position.lng;
|
|
|
this.lat = position.lat;
|
|
|
}
|
|
|
} else {
|
|
|
this.getPosition();
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* el 被新创建的 vm.el 替换,并挂载到实例上去之后调用该钩子。
|
|
|
* 如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.el 也在文档内。
|
|
|
*/
|
|
|
mounted() {
|
|
|
this.loginValue = localStorage.getItem("LOGIN_DATA") !== null ? JSON.parse(localStorage.getItem("LOGIN_DATA")) : { tel: "" };
|
|
|
console.log(this.loginValue);
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
console.log("beforeDestroy");
|
|
|
// sessionStorage.removeItem("PAGE_TYPE")
|
|
|
},
|
|
|
|
|
|
destroyed() {
|
|
|
window.removeEventListener("beforeunload", (e) => this.removePageInfo(e));
|
|
|
},
|
|
|
// 组件方法
|
|
|
methods: {
|
|
|
removePageInfo() {
|
|
|
sessionStorage.removeItem("PAGE_TYPE");
|
|
|
},
|
|
|
// 处理筛选框的定位
|
|
|
// filterbox() {
|
|
|
// return () => {
|
|
|
// return document.getElementById("filterbox")[0];
|
|
|
// // return document.body;
|
|
|
// };
|
|
|
// },
|
|
|
/**
|
|
|
* 获取登录人对应的客户经理信息
|
|
|
*/
|
|
|
getUserManager() {
|
|
|
getUserManagerApi().then(({ data }) => {
|
|
|
console.log(data);
|
|
|
this.$store.commit("setManagerInfo", data.data);
|
|
|
this.managerInfo = data.data;
|
|
|
console.log("+++++++++++++++++++++++++", this.$store);
|
|
|
});
|
|
|
},
|
|
|
async getRecommendJob() {
|
|
|
this.isspinning = true;
|
|
|
try {
|
|
|
if (this.isLogin) {
|
|
|
const { data } = await JobListApi({
|
|
|
pageNum: 1,
|
|
|
pageSize: 4,
|
|
|
jobCategory: 608,
|
|
|
});
|
|
|
// console.log(data);
|
|
|
this.fellowList = disposeJobListData(data.data.recordList);
|
|
|
// console.log(this.fellowList);
|
|
|
}
|
|
|
// this.$emit("update:relationList", this.relationList);
|
|
|
} catch (error) {
|
|
|
console.log(error);
|
|
|
}
|
|
|
this.isspinning = false;
|
|
|
},
|
|
|
// 获取工作列表
|
|
|
async getJobList(newdata) {
|
|
|
this.isspinning = true;
|
|
|
console.log("this.formvalue", this.formvalue);
|
|
|
try {
|
|
|
newdata = {
|
|
|
district: "",
|
|
|
monthlyPayStr: "",
|
|
|
ageStr: "",
|
|
|
jobSpecialLabelIds: "",
|
|
|
aliasName: "",
|
|
|
pageNum: 1,
|
|
|
pageSize: 8,
|
|
|
total: null, //分页配置
|
|
|
};
|
|
|
for (var k in this.formvalue) {
|
|
|
// console.log(this.formvalue[k]);
|
|
|
if (Array.isArray(this.formvalue[k])) {
|
|
|
newdata[k] = this.formvalue[k].length > 0 ? this.formvalue[k].join() : "";
|
|
|
} else {
|
|
|
newdata[k] = this.formvalue[k];
|
|
|
}
|
|
|
}
|
|
|
// console.log(newdata);
|
|
|
// debugger;
|
|
|
// console.log(this.isLogin);
|
|
|
if (this.isLogin) {
|
|
|
const { data } = await JobListApi(newdata);
|
|
|
console.log("data", data);
|
|
|
if (data.status === 200) {
|
|
|
this.jobMainList = disposeJobListData(data.data.recordList);
|
|
|
this.formvalue.total = data.data.recordCount;
|
|
|
console.log(this.jobMainList);
|
|
|
} else {
|
|
|
this.$message.info("数据获取失败");
|
|
|
}
|
|
|
}
|
|
|
this.totop();
|
|
|
// = data.data.recordList;
|
|
|
// console.log(this.formvalue);
|
|
|
} catch (error) {
|
|
|
console.log(error);
|
|
|
}
|
|
|
this.isspinning = false;
|
|
|
},
|
|
|
|
|
|
// 获取一才工作列表
|
|
|
async getJobListYicai(newdata) {
|
|
|
this.isspinning = true;
|
|
|
console.log(this.formvalue);
|
|
|
try {
|
|
|
newdata = {
|
|
|
agencyId: "3087",
|
|
|
// agencyId: "2743", //测试版
|
|
|
recruitment: "1",
|
|
|
keys: "",
|
|
|
pageNum: 1,
|
|
|
pageSize: 8,
|
|
|
total: null, //分页配置
|
|
|
};
|
|
|
for (var k in this.formvalue) {
|
|
|
// console.log(this.formvalue[k]);
|
|
|
if (Array.isArray(this.formvalue[k])) {
|
|
|
newdata[k] = this.formvalue[k].length > 0 ? this.formvalue[k].join() : "";
|
|
|
} else {
|
|
|
newdata[k] = this.formvalue[k];
|
|
|
}
|
|
|
}
|
|
|
// console.log(newdata);
|
|
|
// debugger;
|
|
|
// console.log(this.isLogin);
|
|
|
if (this.isLogin) {
|
|
|
const { data } = await JobListApiYicai(newdata);
|
|
|
// console.log(data);
|
|
|
if (data.status === 200) {
|
|
|
this.jobMainList = disposeJobListData(data.data.recordList);
|
|
|
this.jobMainList.forEach((item, index) => {
|
|
|
item["servetype"] = setReturnFee(item.returnFee, item.returnFeeType);
|
|
|
});
|
|
|
this.formvalue.total = data.data.recordCount;
|
|
|
console.log(this.jobMainList);
|
|
|
} else {
|
|
|
this.$message.info("数据获取失败");
|
|
|
}
|
|
|
}
|
|
|
this.totop();
|
|
|
// = data.data.recordList;
|
|
|
// console.log(this.formvalue);
|
|
|
} catch (error) {
|
|
|
console.log(error);
|
|
|
}
|
|
|
this.isspinning = false;
|
|
|
},
|
|
|
|
|
|
//搜索企业名称
|
|
|
onSearch() {
|
|
|
// console.log(e);
|
|
|
// if (typeof e === "string" || typeof e === "number") {
|
|
|
// if (e.length !== 0) {
|
|
|
// console.log("zifuchuan ");
|
|
|
// this.formvalue.aliasName = e;
|
|
|
// this.getJobList();
|
|
|
// }
|
|
|
// } else
|
|
|
console.log(typeof this.searchValue.trim());
|
|
|
// this.formvalue = {
|
|
|
// // 筛选的上传参数
|
|
|
// district: [], // 城镇数据
|
|
|
// monthlyPayStr: [], // 每月工资
|
|
|
// ageStr: '', // 年龄数据
|
|
|
// jobSpecialLabelIds: [], // 特色标签索引
|
|
|
// aliasName: '',
|
|
|
// sex: [],
|
|
|
// pageNum: 1,
|
|
|
// pageSize: 8,
|
|
|
// total: null, //分页配置
|
|
|
// }
|
|
|
this.formvalue.aliasName = "";
|
|
|
this.formvalue.ageStr = "";
|
|
|
if (this.searchValue.trim() !== "") {
|
|
|
this.formvalue.pageNum = 1;
|
|
|
console.log(this.searchValue);
|
|
|
if (typeof +this.searchValue.trim() == "number" && !isNaN(+this.searchValue.trim())) {
|
|
|
this.formvalue.ageStr = this.searchValue.trim();
|
|
|
} else {
|
|
|
this.formvalue.aliasName = this.searchValue.trim();
|
|
|
this.formvalue.keys = this.searchValue.trim();
|
|
|
}
|
|
|
// console.log("search1");
|
|
|
// this.formvalue.aliasName = this.searchValue;
|
|
|
// console.log(this.formvalue);
|
|
|
|
|
|
if(this.formvalue.signType == 1){
|
|
|
this.getJobListYicai();
|
|
|
}else{
|
|
|
this.getJobList();
|
|
|
}
|
|
|
this.isdownHotStoreShow = false;
|
|
|
}
|
|
|
|
|
|
// this.$router.push("/list").catch((err) => {
|
|
|
// console.log(err);
|
|
|
// });
|
|
|
},
|
|
|
// 搜索工价
|
|
|
searchPrice(e) {
|
|
|
console.log(e);
|
|
|
if (e.target.nodeName == "SPAN") {
|
|
|
if (e.target.textContent == this.filterObj.price) {
|
|
|
this.formvalue.monthlyPayStr = "";
|
|
|
this.filterObj.price = "";
|
|
|
} else {
|
|
|
this.formvalue.monthlyPayStr = e.target.textContent;
|
|
|
this.filterObj.price = this.formvalue.monthlyPayStr;
|
|
|
}
|
|
|
|
|
|
this.getJobList();
|
|
|
} else if (e.target.nodeName == "BUTTON") {
|
|
|
console.log(this.minMonthlyPay);
|
|
|
console.log(this.maxMonthlyPay);
|
|
|
if (this.minMonthlyPay.length != 0 && this.maxMonthlyPay.length != 0 && typeof +this.minMonthlyPay == "number" && typeof +this.maxMonthlyPay == "number" && !isNaN(+this.minMonthlyPay) && !isNaN(+this.maxMonthlyPay)) {
|
|
|
this.formvalue.monthlyPayStr = this.minMonthlyPay + "-" + this.maxMonthlyPay;
|
|
|
this.filterObj.price = this.formvalue.monthlyPayStr;
|
|
|
this.getJobList();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* 搜索年龄
|
|
|
*/
|
|
|
searchAge() {
|
|
|
console.log(this.minAge);
|
|
|
console.log(this.maxAge);
|
|
|
if (this.minAge.length != 0 && this.maxAge.length != 0 && typeof +this.minAge == "number" && typeof +this.maxAge == "number" && !isNaN(+this.minAge) && !isNaN(+this.maxAge)) {
|
|
|
let list = [this.minAge, this.maxAge];
|
|
|
list.sort(function (a, b) {
|
|
|
return a - b;
|
|
|
});
|
|
|
console.log(list);
|
|
|
this.formvalue.ageRangeStr = list[0] + "-" + list[1];
|
|
|
this.filterObj.age = this.formvalue.ageRangeStr;
|
|
|
console.log(this.filterObj.age);
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
// 搜索性别
|
|
|
searchGender(e) {
|
|
|
console.log(e);
|
|
|
if (e.target.tagName == "SPAN") {
|
|
|
if (e.target.textContent == "男") {
|
|
|
if (this.filterObj.gender == "男") {
|
|
|
this.filterObj.gender = "";
|
|
|
this.formvalue.sex = "";
|
|
|
} else {
|
|
|
this.filterObj.gender = "男";
|
|
|
this.formvalue.sex = 1;
|
|
|
}
|
|
|
} else if (e.target.textContent == "女") {
|
|
|
if (this.filterObj.gender == "女") {
|
|
|
this.filterObj.gender = "";
|
|
|
this.formvalue.sex = "";
|
|
|
} else {
|
|
|
this.filterObj.gender = "女";
|
|
|
this.formvalue.sex = 2;
|
|
|
}
|
|
|
} else {
|
|
|
if (this.filterObj.gender == "男女不限") {
|
|
|
this.filterObj.gender = "";
|
|
|
this.formvalue.sex = "";
|
|
|
} else {
|
|
|
this.filterObj.gender = "男女不限";
|
|
|
this.formvalue.sex = -1;
|
|
|
}
|
|
|
}
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
// 获取职位特色
|
|
|
getJobSpecial() {
|
|
|
// var timestamp = new Date().getTime();
|
|
|
console.log(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST")));
|
|
|
console.log(new Date(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"))));
|
|
|
if (isNotEmptyCheck(localStorage.getItem("SPECIALLIST"))) {
|
|
|
let diffTime = new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST")).timestamp;
|
|
|
if (diffTime / 3600000 > 2) {
|
|
|
console.log("======================", "needRequest");
|
|
|
this.getJobSpecialList().then((res) => {
|
|
|
this.specialList = res;
|
|
|
this.specialList.forEach((item) => {
|
|
|
if (item.typeClassify == "0") {
|
|
|
this.tagArray0.push(item);
|
|
|
} else if (item.typeClassify == "1") {
|
|
|
this.tagArray1.push(item);
|
|
|
} else if (item.typeClassify == "2") {
|
|
|
this.tagArray2.push(item);
|
|
|
} else if (item.typeClassify == "3") {
|
|
|
this.tagArray3.push(item);
|
|
|
} else if (item.typeClassify == "4") {
|
|
|
this.tagArray4.push(item);
|
|
|
}
|
|
|
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
|
|
|
this.specialHotTag.push(item);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
} else {
|
|
|
this.specialList = JSON.parse(localStorage.getItem("SPECIALLIST")).data;
|
|
|
console.log(diffTime);
|
|
|
this.specialList.forEach((item) => {
|
|
|
if (item.typeClassify == "0") {
|
|
|
this.tagArray0.push(item);
|
|
|
} else if (item.typeClassify == "1") {
|
|
|
this.tagArray1.push(item);
|
|
|
} else if (item.typeClassify == "2") {
|
|
|
this.tagArray2.push(item);
|
|
|
} else if (item.typeClassify == "3") {
|
|
|
this.tagArray3.push(item);
|
|
|
} else if (item.typeClassify == "4") {
|
|
|
this.tagArray4.push(item);
|
|
|
}
|
|
|
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
|
|
|
this.specialHotTag.push(item);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
this.getJobSpecialList().then((res) => {
|
|
|
this.specialList = res;
|
|
|
this.specialList.forEach((item) => {
|
|
|
if (item.typeClassify == "0") {
|
|
|
this.tagArray0.push(item);
|
|
|
} else if (item.typeClassify == "1") {
|
|
|
this.tagArray1.push(item);
|
|
|
} else if (item.typeClassify == "2") {
|
|
|
this.tagArray2.push(item);
|
|
|
} else if (item.typeClassify == "3") {
|
|
|
this.tagArray3.push(item);
|
|
|
} else if (item.typeClassify == "4") {
|
|
|
this.tagArray4.push(item);
|
|
|
}
|
|
|
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
|
|
|
this.specialHotTag.push(item);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
this.$nextTick(() => {
|
|
|
let fileterContent = document.querySelector(".filter-content");
|
|
|
this.filterHeight = fileterContent.scrollHeight;
|
|
|
// fileterContent.style.height = this.filterHeight + "px";
|
|
|
});
|
|
|
},
|
|
|
// 改变自营三方类型
|
|
|
changeTab(e) {
|
|
|
console.log(e.target.dataset.type);
|
|
|
if (e.target.dataset.type != undefined) {
|
|
|
this.formvalue.pageNum = 1;
|
|
|
if (e.target.dataset.type != 0) {
|
|
|
this.formvalue.signType = this.signType = e.target.dataset.type;
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.formvalue.signType = this.signType = "";
|
|
|
this.getJobList();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
async getJobSpecialList() {
|
|
|
const { data } = await getJobSpecialApi();
|
|
|
console.log(data);
|
|
|
if (data.status == 200) {
|
|
|
let container = {
|
|
|
data: data.data,
|
|
|
timestamp: new Date().getTime(),
|
|
|
};
|
|
|
// console.log(container.timestamp);
|
|
|
localStorage.setItem("SPECIALLIST", JSON.stringify(container));
|
|
|
return data.data;
|
|
|
}
|
|
|
},
|
|
|
// 获取省份列表
|
|
|
async getProvince() {
|
|
|
// const that = this;
|
|
|
try {
|
|
|
const { data } = await getProvinceApi();
|
|
|
// console.log(data);
|
|
|
data.data.pop();
|
|
|
this.cityoption = data.data;
|
|
|
|
|
|
// console.log(this.cityoption);
|
|
|
// console.log(data);
|
|
|
} catch (error) {
|
|
|
// console.log(error);
|
|
|
}
|
|
|
},
|
|
|
// 筛选职位
|
|
|
onChange() {
|
|
|
// console.log(e);
|
|
|
// console.log(item);
|
|
|
// console.log(this.formvalue);
|
|
|
// if (item) {
|
|
|
// if (item.uid === 1) {
|
|
|
// console.log(1);
|
|
|
// this.formvalue.monthlyPayStr = item[0];
|
|
|
// } else if (item.uid === 2) {
|
|
|
// this.formvalue.ageStr = item[0];
|
|
|
// } else if (item[0].id) {
|
|
|
// console.log(e.join());
|
|
|
// this.formvalue.district = e;
|
|
|
// } else
|
|
|
// if (item[0].uid == 3){
|
|
|
// this.formvalue.sex = item[0].value;
|
|
|
|
|
|
// }
|
|
|
// }
|
|
|
this.getJobList();
|
|
|
},
|
|
|
pageChange(e) {
|
|
|
console.log(e);
|
|
|
this.formvalue.pageNum = e;
|
|
|
this.$refs.pageinput.value = "";
|
|
|
if (this.signType == 1) {
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
inputpageChange(e) {
|
|
|
const pagenumcount = this.formvalue.total / this.formvalue.pageSize;
|
|
|
// console.log(pagenumcount);
|
|
|
if (e.target.value) {
|
|
|
if (e.target.value > pagenumcount) {
|
|
|
this.formvalue.pageNum = Math.ceil(pagenumcount);
|
|
|
} else {
|
|
|
this.formvalue.pageNum = e.target.value;
|
|
|
}
|
|
|
} else {
|
|
|
this.formvalue.pageNum = 1;
|
|
|
}
|
|
|
this.getJobList();
|
|
|
// console.log(e);
|
|
|
},
|
|
|
handleChange() {},
|
|
|
claerfilter() {
|
|
|
const { pageNum, pageSize, total } = this.formvalue;
|
|
|
// this.formvalue = { // 改变引用地址不会使vue侦听到数据的变化,
|
|
|
// district: [],
|
|
|
// monthlyPayStr: [],
|
|
|
// ageStr: [],
|
|
|
// jobSpecialLabelIds: [],
|
|
|
// pageNum,
|
|
|
// pageSize,
|
|
|
// total, //分页配置
|
|
|
// };
|
|
|
this.formvalue.district = [];
|
|
|
this.formvalue.monthlyPayStr = [];
|
|
|
this.formvalue.ageStr = "";
|
|
|
this.formvalue.jobSpecialLabelIds = [];
|
|
|
this.formvalue.aliasName = "";
|
|
|
this.formvalue.cityName = "";
|
|
|
this.formvalue.sex = [];
|
|
|
this.formvalue.levelType = "";
|
|
|
this.formvalue.hotStoreId = "";
|
|
|
this.currentCity = "全国";
|
|
|
this.formvalue.pageNum = pageNum;
|
|
|
this.formvalue.pageSize = pageSize;
|
|
|
this.formvalue.total = total;
|
|
|
// console.log(this.formvalue);
|
|
|
this.filterObj.specialactive = [];
|
|
|
this.specialvalue = [];
|
|
|
this.getJobList();
|
|
|
},
|
|
|
specialclick(index, item) {
|
|
|
// console.log(item);
|
|
|
// console.log(index);
|
|
|
let arrIndex = this.filterObj.specialactive.indexOf(item);
|
|
|
if (arrIndex > -1) {
|
|
|
this.filterObj.specialactive.splice(arrIndex, 1);
|
|
|
this.specialvalue.splice(arrIndex, 1);
|
|
|
} else {
|
|
|
this.filterObj.specialactive.push(item);
|
|
|
this.specialvalue.push(item.id);
|
|
|
}
|
|
|
this.formvalue.jobSpecialLabelIds = this.specialvalue;
|
|
|
// console.log(this.filterObj.specialactive);
|
|
|
this.getJobList();
|
|
|
// console.log(this.specialvalue);
|
|
|
// console.log(this.formvalue);
|
|
|
// console.log(index);
|
|
|
},
|
|
|
classifyClick(index, item) {
|
|
|
let arrIndex = this.filterObj.specialactive.indexOf(item);
|
|
|
if (arrIndex > -1) {
|
|
|
this.filterObj.specialactive.splice(arrIndex, 1);
|
|
|
this.classifyvalue.splice(arrIndex, 1);
|
|
|
} else {
|
|
|
this.filterObj.specialactive.push(item);
|
|
|
this.classifyvalue.push(item.id);
|
|
|
}
|
|
|
this.formvalue.jobCategoryLabelIds = this.classifyvalue;
|
|
|
// console.log(this.filterObj.specialactive);
|
|
|
this.getJobList();
|
|
|
},
|
|
|
isspecialboxshowclick() {
|
|
|
this.$emit("update:isspecialboxshow", !this.isspecialboxshow);
|
|
|
},
|
|
|
totop() {
|
|
|
// console.log(window);
|
|
|
document.body.scrollTop = 0;
|
|
|
document.documentElement.scrollTop = 0;
|
|
|
// window.body.scrollY = 0;
|
|
|
},
|
|
|
moneyToFixed(value) {
|
|
|
// console.log(value);
|
|
|
return moneyToFixed(value);
|
|
|
},
|
|
|
// 重置搜索结果
|
|
|
resetsearch(e) {
|
|
|
// console.log(e);
|
|
|
if (e.target.value.length === 0) {
|
|
|
this.formvalue.aliasName = "";
|
|
|
this.formvalue.keys = "";
|
|
|
this.formvalue.ageStr = "";
|
|
|
|
|
|
if (this.formvalue.signType != 0) {
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.getJobList();
|
|
|
}
|
|
|
}
|
|
|
// this.$router.push("/list").catch((err) => {
|
|
|
// console.log(err);
|
|
|
// });
|
|
|
},
|
|
|
delFilter(e, value, items) {
|
|
|
console.log(e);
|
|
|
console.log(items);
|
|
|
if (value == "price") {
|
|
|
this.filterObj.price = "";
|
|
|
this.formvalue.monthlyPayStr = "";
|
|
|
this.minMonthlyPay = "";
|
|
|
this.maxMonthlyPay = "";
|
|
|
} else if (value == "gender") {
|
|
|
this.filterObj.gender = "";
|
|
|
this.formvalue.sex = "";
|
|
|
} else if (value == "age") {
|
|
|
this.filterObj.age = "";
|
|
|
this.formvalue.ageRangeStr = "";
|
|
|
this.minAge = "";
|
|
|
this.maxAge = "";
|
|
|
} else {
|
|
|
this.filterObj.specialactive.splice(this.filterObj.specialactive.indexOf(items), 1);
|
|
|
if (this.classifyvalue.indexOf(items.id) != -1) {
|
|
|
this.classifyvalue.splice(this.classifyvalue.indexOf(items.id), 1);
|
|
|
this.formvalue.jobCategoryLabelIds = this.classifyvalue;
|
|
|
} else {
|
|
|
this.specialvalue.splice(this.specialvalue.indexOf(items.id), 1);
|
|
|
this.formvalue.jobSpecialLabelIds = this.specialvalue;
|
|
|
}
|
|
|
|
|
|
// if(this.filterObj.specialactive.indexOf(items) > -1){
|
|
|
// }
|
|
|
}
|
|
|
this.getJobList();
|
|
|
},
|
|
|
resetPriceSearch(e) {
|
|
|
// console.log(e.target.value);
|
|
|
// console.log(+e.target.value);
|
|
|
if (this.minMonthlyPay.length == 0 && this.maxMonthlyPay.length == 0) {
|
|
|
this.formvalue.monthlyPayStr = "";
|
|
|
this.filterObj.price = "";
|
|
|
this.getJobList();
|
|
|
} else if (typeof +e.target.value != "number" || isNaN(+e.target.value)) {
|
|
|
this.$message.warning("请输入正确的价格");
|
|
|
}
|
|
|
},
|
|
|
resetAgeSearch(e) {
|
|
|
console.log(this.minAge);
|
|
|
console.log(this.maxAge);
|
|
|
if (this.minAge.length == 0 && this.maxAge.length == 0) {
|
|
|
this.formvalue.ageRangeStr = "";
|
|
|
this.filterObj.age = "";
|
|
|
this.getJobList();
|
|
|
} else if (typeof +e.target.value != "number" || isNaN(+e.target.value)) {
|
|
|
this.$message.warning("请输入正确的价格");
|
|
|
}
|
|
|
},
|
|
|
cityModalClose() {
|
|
|
// 城市选择弹出框关闭
|
|
|
this.cityValue = "";
|
|
|
this.searchCity();
|
|
|
},
|
|
|
|
|
|
// 获取日期信息
|
|
|
getdateinfo() {
|
|
|
const date = new Date();
|
|
|
// console.log(date);
|
|
|
// console.log(date.getDate());
|
|
|
// console.log(date.getDay());
|
|
|
// console.log(date.getFullYear());
|
|
|
// console.log(date.getMonth());
|
|
|
if (date.getDay() === 1) {
|
|
|
this.dateinfo.week = "星期一";
|
|
|
} else if (date.getDay() === 2) {
|
|
|
this.dateinfo.week = "星期二";
|
|
|
} else if (date.getDay() === 3) {
|
|
|
this.dateinfo.week = "星期三";
|
|
|
} else if (date.getDay() === 4) {
|
|
|
this.dateinfo.week = "星期四";
|
|
|
} else if (date.getDay() === 5) {
|
|
|
this.dateinfo.week = "星期五";
|
|
|
} else if (date.getDay() === 6) {
|
|
|
this.dateinfo.week = "星期六";
|
|
|
} else if (date.getDay() === 7) {
|
|
|
this.dateinfo.week = "星期日";
|
|
|
}
|
|
|
// console.log(date.getDate());
|
|
|
// console.log(date.getDate().length);
|
|
|
if (date.getDate().toString().length <= 1) {
|
|
|
this.dateinfo.day = "0" + date.getDate();
|
|
|
// console.log(this.dateinfo.day);
|
|
|
} else {
|
|
|
this.dateinfo.day = date.getDate();
|
|
|
// console.log(this.dateinfo.day);
|
|
|
}
|
|
|
this.dateinfo.date = date.getFullYear() + "." + (date.getMonth() + 1);
|
|
|
},
|
|
|
// delmark(index) {
|
|
|
// // console.log(index);
|
|
|
// this.specialactive.splice(index, 1);
|
|
|
// this.specialvalue.splice(index, 1);
|
|
|
// this.getJobList();
|
|
|
// },
|
|
|
torecord(item) {
|
|
|
// 跳转到路由新页面的方法
|
|
|
// console.log(item);
|
|
|
// let userinfo = JSON.stringify(item);
|
|
|
sessionStorage.setItem("PAGE_TYPE", JSON.stringify({ id: item.id, pageNum: this.formvalue.pageNum, signType: this.signType }));
|
|
|
|
|
|
if (this.signType == "") {
|
|
|
this.$router.push({ name: "recordbill", params: item });
|
|
|
sessionStorage.setItem("CURRENT_FIRM", JSON.stringify(item));
|
|
|
} else if (this.signType == "1") {
|
|
|
this.$router.push({ name: "recordbillYicai", params: item });
|
|
|
sessionStorage.setItem("CURRENT_FIRM_YICAI", JSON.stringify(item));
|
|
|
}
|
|
|
},
|
|
|
getSalaryClassifyValue(salaryClassify, salaryClassifyValue) {
|
|
|
return getSalaryClassifyValue(salaryClassify, salaryClassifyValue);
|
|
|
},
|
|
|
async getHotCity() {
|
|
|
try {
|
|
|
const { data } = await getHotCityApi();
|
|
|
// console.log(data);
|
|
|
if (data.status == 200) {
|
|
|
this.hotCityList = data.data;
|
|
|
this.currentCityList = this.hotCityList;
|
|
|
}
|
|
|
} catch (error) {
|
|
|
// console.log(error);
|
|
|
}
|
|
|
},
|
|
|
async getCityWhichHasJob() {
|
|
|
try {
|
|
|
const { data } = await getCityWhichHasJobApi();
|
|
|
console.log(data);
|
|
|
if (data.status == 200) {
|
|
|
let pinyinList = [];
|
|
|
data.data.forEach((item) => {
|
|
|
if (pinyinList.indexOf(item.firstLetter) == -1) {
|
|
|
pinyinList.push(item.firstLetter);
|
|
|
}
|
|
|
});
|
|
|
pinyinList.sort(); // 拼音首字母排序
|
|
|
let firstList = [];
|
|
|
let cityList = [];
|
|
|
let num = -1;
|
|
|
|
|
|
pinyinList.forEach((item, i) => {
|
|
|
if (i % 5 == 0) {
|
|
|
num++;
|
|
|
firstList[num] = [];
|
|
|
}
|
|
|
firstList[num].push(item);
|
|
|
});
|
|
|
firstList.forEach((item, i) => {
|
|
|
cityList[i] = [];
|
|
|
|
|
|
item.forEach((item1) => {
|
|
|
data.data.forEach((item2) => {
|
|
|
if (item2.firstLetter == item1) {
|
|
|
cityList[i].push(item2);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
this.hasJobCityList.firstList = firstList;
|
|
|
this.hasJobCityList.cityList = cityList;
|
|
|
}
|
|
|
} catch (error) {
|
|
|
// console.log(error);
|
|
|
}
|
|
|
},
|
|
|
async getHotStore() {
|
|
|
try {
|
|
|
const { data } = await getHotStoreApi();
|
|
|
// console.log(data);
|
|
|
if (data.status == 200) {
|
|
|
let middle = [];
|
|
|
this.hotStoreList = data.data;
|
|
|
this.hotStoreList.forEach((item, index) => {
|
|
|
if (index <= 4) {
|
|
|
middle.push(item);
|
|
|
}
|
|
|
});
|
|
|
this.hotStoreList = middle;
|
|
|
// console.log(this.hotStoreList);
|
|
|
}
|
|
|
} catch (error) {
|
|
|
// console.log(error);
|
|
|
}
|
|
|
},
|
|
|
async getClassifyList() {
|
|
|
try {
|
|
|
const { data } = await getClassifyListApi();
|
|
|
console.log(data);
|
|
|
if (data.status == 200) {
|
|
|
console.log(data);
|
|
|
this.classifyList = data.data.labels;
|
|
|
this.$nextTick(() => {
|
|
|
let fileterContent = document.querySelector(".filter-content");
|
|
|
if (isNotEmptyCheck(fileterContent.scrollHeight)) {
|
|
|
this.filterHeight = fileterContent.scrollHeight;
|
|
|
}
|
|
|
// fileterContent.style.height = this.filterHeight + "px";
|
|
|
});
|
|
|
}
|
|
|
} catch (error) {
|
|
|
// console.log(error);
|
|
|
}
|
|
|
},
|
|
|
changeCurrentCity(index) {
|
|
|
this.currentCityList = this.hasJobCityList.cityList[index];
|
|
|
// console.log(index);
|
|
|
},
|
|
|
searchCity() {
|
|
|
this.currentCityList = [];
|
|
|
if (this.cityValue) {
|
|
|
this.hotCityList.forEach((item) => {
|
|
|
// console.log(item);
|
|
|
// console.log(item.name.indexOf(this.cityValue));
|
|
|
if (item.name.indexOf(this.cityValue) > -1) {
|
|
|
// console.log(123);
|
|
|
this.currentCityList.push(item);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
if (this.currentCityList.length == 0) {
|
|
|
this.currentCityList = this.hotCityList;
|
|
|
}
|
|
|
},
|
|
|
resetCityList(e) {
|
|
|
if (e.target.value.length === 0) {
|
|
|
this.cityValue = "";
|
|
|
this.currentCityList = this.hotCityList;
|
|
|
}
|
|
|
},
|
|
|
searchJob(item) {
|
|
|
// console.log(item);
|
|
|
if (item.levelType == 1) {
|
|
|
this.formvalue.cityName = "";
|
|
|
this.formvalue.provinceName = item.name;
|
|
|
} else {
|
|
|
this.formvalue.provinceName = "";
|
|
|
this.formvalue.cityName = item.name;
|
|
|
}
|
|
|
this.formvalue.levelType = item.levelType;
|
|
|
this.currentCity = item.name;
|
|
|
// this.getJobList();
|
|
|
this.visible = false;
|
|
|
if (this.formvalue.signType != 0) {
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
getHotStoreList(item) {
|
|
|
// console.log(item);
|
|
|
this.searchValue = item.storeName;
|
|
|
this.formvalue.aliasName = item.storeName;
|
|
|
|
|
|
this.isdownHotStoreShow = false;
|
|
|
// this.formvalue.hotStoreId = item.storeId;
|
|
|
this.getJobList();
|
|
|
},
|
|
|
resetResult() {
|
|
|
this.formvalue.cityName = "";
|
|
|
this.formvalue.levelType = "";
|
|
|
this.formvalue.hotStoreId = "";
|
|
|
this.currentCity = "全国";
|
|
|
// console.log(this.formvalue);
|
|
|
// this.getJobList();
|
|
|
if (this.formvalue.signType != 0) {
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
copyText(event, ind) {
|
|
|
// 复制文本内容
|
|
|
var clipboard = new Clipboard(".copy" + ind, {
|
|
|
// .copy 是点击的触发元素
|
|
|
target: function () {
|
|
|
// 通过target指定要复印的节点
|
|
|
return document.querySelector(".copyInfo" + ind); // .copyInfo 是要复制的目标内容
|
|
|
},
|
|
|
});
|
|
|
// console.log(clipboard);
|
|
|
// if(){
|
|
|
|
|
|
// }
|
|
|
clipboard.on("success", () => {
|
|
|
// success 是成功的回调 success => error 可以捕获复制失败的异常信息
|
|
|
// console.log(123);
|
|
|
// console.log(e);
|
|
|
this.$message.success("复制成功");
|
|
|
clipboard.destroy();
|
|
|
});
|
|
|
},
|
|
|
showHotStore() {
|
|
|
// 显示热门企业下拉
|
|
|
// console.log("isinner");
|
|
|
this.isdownHotStoreShow = true;
|
|
|
},
|
|
|
hidedownHotStore() {
|
|
|
// console.log("isdown");
|
|
|
this.isdownHotStoreShow = false;
|
|
|
},
|
|
|
resetCity() {
|
|
|
// 重置当前城市
|
|
|
this.currentCity = "全国";
|
|
|
this.formvalue.cityName = "";
|
|
|
this.formvalue.levelType = "";
|
|
|
this.formvalue.provinceName = "";
|
|
|
// this.getJobList();
|
|
|
if (this.formvalue.signType != 0) {
|
|
|
this.getJobListYicai();
|
|
|
} else {
|
|
|
this.getJobList();
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* 前往详情页
|
|
|
*/
|
|
|
toDetail(item) {
|
|
|
// :to="signType == '' ? '/detail?id=' + item.id + '&page=' + formvalue.pageNum : '/detailYicai?id=' + item.id + '&page=' + formvalue.pageNum"
|
|
|
sessionStorage.setItem("PAGE_TYPE", JSON.stringify({ id: item.id, pageNum: this.formvalue.pageNum, signType: this.signType }));
|
|
|
|
|
|
const routeURL = this.$router.resolve({
|
|
|
name: this.signType == "" ? "Detail" : "DetailYicai",
|
|
|
// query: item.id,
|
|
|
});
|
|
|
window.open(routeURL.href, "_blank");
|
|
|
console.log(item);
|
|
|
},
|
|
|
hideFilterContent() {
|
|
|
setTimeout(() => {
|
|
|
let fileterContent = document.querySelector(".filter-content");
|
|
|
// console.log(fileterContent)
|
|
|
// fileterContent.style.transition = 'all .2s'
|
|
|
if (this.filterStatus == 0) {
|
|
|
console.log("is in the 0 zone");
|
|
|
this.filterStatus = 1;
|
|
|
fileterContent.style.height = "0px";
|
|
|
} else {
|
|
|
console.log("is in the 1 zone");
|
|
|
|
|
|
this.filterStatus = 0;
|
|
|
fileterContent.style.height = this.filterHeight + "px";
|
|
|
}
|
|
|
}, 0);
|
|
|
},
|
|
|
/**
|
|
|
* 获取当前位置信息
|
|
|
*
|
|
|
*
|
|
|
*/
|
|
|
getPosition() {
|
|
|
let that = this;
|
|
|
$.ajax({
|
|
|
url: "https://restapi.amap.com/v3/ip?key=44c6ad3624a5957505fec66f6bdd6110",
|
|
|
// type: "GET",
|
|
|
dataType: "JSONP",
|
|
|
success: function (data) {
|
|
|
console.log(data);
|
|
|
let position = data.rectangle.split(";");
|
|
|
console.log(position);
|
|
|
var lng1;
|
|
|
var lng2;
|
|
|
position.forEach((item, index) => {
|
|
|
if (index == 0) {
|
|
|
lng1 = item.split(",");
|
|
|
} else if (index == 1) {
|
|
|
lng2 = item.split(",");
|
|
|
}
|
|
|
});
|
|
|
|
|
|
that.lng = (+lng1[0] + +lng2[0]) / 2;
|
|
|
that.lat = (+lng1[1] + +lng2[1]) / 2;
|
|
|
localStorage.setItem("POSITION_INFO", JSON.stringify({ lng: that.lng, lat: that.lat, timestamp: new Date().getTime() }));
|
|
|
// lng: '',
|
|
|
// lat: '',
|
|
|
// let code = cityList.find((item) => {
|
|
|
// return item.city == data.city
|
|
|
// }).code
|
|
|
},
|
|
|
});
|
|
|
},
|
|
|
sortList(type) {
|
|
|
console.log(type);
|
|
|
this.formvalue.lng = "";
|
|
|
this.formvalue.lat = "";
|
|
|
if (type == "juli") {
|
|
|
this.formvalue.sortTag = 2;
|
|
|
this.sortNum = 2;
|
|
|
this.sortStr = "距离优先";
|
|
|
this.formvalue.lng = this.lng;
|
|
|
this.formvalue.lat = this.lat;
|
|
|
} else if (type == "fuwufei") {
|
|
|
this.sortNum = 3;
|
|
|
this.sortStr = "佣金优先";
|
|
|
this.formvalue.sortTag = 3;
|
|
|
} else if (type == "price") {
|
|
|
this.sortNum = 1;
|
|
|
this.sortStr = "工价优先";
|
|
|
this.formvalue.sortTag = 1;
|
|
|
}
|
|
|
this.getJobList();
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 职教职培报名点击
|
|
|
*/
|
|
|
showRecord(info) {
|
|
|
console.log(info);
|
|
|
this.currentInfo = info;
|
|
|
this.recordShow = true;
|
|
|
// window.open(`https://jinshuju.net/f/ohFOxo?x_field_1=${this.currentInfo.vocationalName}&background=white&banner=show&embedded=true&inner_redirect=false`);
|
|
|
// console.log("this.recordShow", this.recordShow);
|
|
|
// console.log("this.currentInfo", this.currentInfo);
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
.joblist-container {
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
// .dropdown {
|
|
|
// display: inline-block;
|
|
|
// width: 100px;
|
|
|
// height: 32px;
|
|
|
// line-height: 30px;
|
|
|
// font-size: 16px;
|
|
|
// // border: 1px solid rgba(77, 87, 94, 0.3);
|
|
|
// border-radius: 4px;
|
|
|
// margin-left: 16px;
|
|
|
// border: 1px solid #ff4400;
|
|
|
// background-color: #fff;
|
|
|
// color: rgba(255, 106, 0, 1);
|
|
|
// text-align: center;
|
|
|
// cursor: pointer;
|
|
|
// &:hover {
|
|
|
// color: #fff;
|
|
|
|
|
|
// background-color: #ff791a;
|
|
|
// }
|
|
|
// }
|
|
|
/deep/ .ant-drawer-content {
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
// 录单模态框样式
|
|
|
/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-form {
|
|
|
// overflow: auto;
|
|
|
margin-bottom: 50px;
|
|
|
}
|
|
|
|
|
|
/deep/ .ant-form-item {
|
|
|
// margin-bottom: 0;
|
|
|
display: flex;
|
|
|
justify-content: start;
|
|
|
align-items: middle;
|
|
|
margin-top: -8px;
|
|
|
.ant-form-item-label {
|
|
|
line-height: 40px;
|
|
|
// font-weight: bold;
|
|
|
}
|
|
|
|
|
|
.ant-input {
|
|
|
// width: 430px;
|
|
|
height: 40px;
|
|
|
// border: none;
|
|
|
border: 1px solid #dddddd;
|
|
|
box-shadow: none !important;
|
|
|
// background-color: #f6f6f6;
|
|
|
}
|
|
|
.ant-select-selection__rendered,
|
|
|
.ant-select-selection--single,
|
|
|
.ant-select {
|
|
|
height: 40px;
|
|
|
// border: none;
|
|
|
// border: 1px solid #dddddd;
|
|
|
line-height: 40px;
|
|
|
box-shadow: none !important;
|
|
|
border-color: #d9d9d9;
|
|
|
/deep/ .ant-form-item-children {
|
|
|
line-height: 40px;
|
|
|
// .ant-radio-checked {
|
|
|
// }
|
|
|
// display: flex !important;
|
|
|
}
|
|
|
// &:hover {
|
|
|
// border-color: #d9d9d9;
|
|
|
// }
|
|
|
// &:focus {
|
|
|
// border-color: #d9d9d9;
|
|
|
// }
|
|
|
// &:active {
|
|
|
// border-color: #d9d9d9;
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
// /deep/ .ant-modal-footer {
|
|
|
// padding: 10px 24px;
|
|
|
// .ant-btn {
|
|
|
// box-shadow: none;
|
|
|
// &:hover {
|
|
|
// color: #ff4400;
|
|
|
// border-color: #ff4400;
|
|
|
// }
|
|
|
// }
|
|
|
// .ant-btn.ant-btn-primary {
|
|
|
// background-color: #ff4400 !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-drawer-body {
|
|
|
overflow: auto;
|
|
|
padding: 20px 16px 8px 16px;
|
|
|
}
|
|
|
|
|
|
/deep/ .navigation {
|
|
|
// margin-top: -1px;
|
|
|
width: 100vw;
|
|
|
padding: 25px 0 64px 0;
|
|
|
background-color: #fff;
|
|
|
// border: 1px solid #f6f6f6;
|
|
|
// height: 72px;
|
|
|
// margin-bottom: 10px;
|
|
|
// line-height: 100px;
|
|
|
|
|
|
position: relative;
|
|
|
z-index: 9;
|
|
|
.special-active {
|
|
|
color: rgb(254, 97, 0) !important;
|
|
|
background-color: rgba(255, 106, 0, 0.1) !important;
|
|
|
}
|
|
|
.ant-cascader-picker-focused {
|
|
|
input {
|
|
|
transition: all 0.3s;
|
|
|
}
|
|
|
input::placeholder {
|
|
|
color: rgb(255, 106, 0) !important;
|
|
|
}
|
|
|
i {
|
|
|
color: rgb(255, 106, 0) !important;
|
|
|
}
|
|
|
}
|
|
|
> .w {
|
|
|
// height: 72px;
|
|
|
background-color: #fff;
|
|
|
display: flex;
|
|
|
justify-content: end;
|
|
|
// flex-direction: column;
|
|
|
.icon {
|
|
|
width: 90px;
|
|
|
height: auto;
|
|
|
margin-top: 6px;
|
|
|
}
|
|
|
.searchBox {
|
|
|
position: relative;
|
|
|
// margin-left: 100px;
|
|
|
width: 757px;
|
|
|
margin-right: 256px;
|
|
|
line-height: 44px;
|
|
|
z-index: 10;
|
|
|
.hotStore {
|
|
|
position: absolute;
|
|
|
top: 46px;
|
|
|
left: 0px;
|
|
|
line-height: 24px;
|
|
|
// margin: 8px 0 12px 0;
|
|
|
font-size: 14px;
|
|
|
display: flex;
|
|
|
> span {
|
|
|
width: 80px;
|
|
|
}
|
|
|
ul {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
flex: 1;
|
|
|
li {
|
|
|
color: #ff4400;
|
|
|
margin-right: 20px;
|
|
|
overflow: hidden;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #ff8f3f;
|
|
|
}
|
|
|
&:active {
|
|
|
color: #e24f00;
|
|
|
}
|
|
|
// &:nth-child(-n + 5) {
|
|
|
// display: none;
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.downHotStore {
|
|
|
position: absolute;
|
|
|
width: 685px;
|
|
|
top: 44px;
|
|
|
left: 0;
|
|
|
z-index: 99;
|
|
|
// border-radius: 8px;
|
|
|
background-color: #fff;
|
|
|
border: 1px solid #eee;
|
|
|
div {
|
|
|
padding: 0 12px;
|
|
|
}
|
|
|
li {
|
|
|
height: 42px;
|
|
|
line-height: 42px;
|
|
|
padding: 0 12px;
|
|
|
font-size: 14px;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
li:not(:last-child) {
|
|
|
border-bottom: 1px solid #eee;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.searchinput {
|
|
|
// margin-top: 19px;
|
|
|
// margin-right: 285px;
|
|
|
// width: 685px;
|
|
|
// height: 44px;
|
|
|
&.ant-input-affix-wrapper {
|
|
|
// width: 772px;
|
|
|
position: relative;
|
|
|
.ant-input-prefix {
|
|
|
position: absolute;
|
|
|
height: 86%;
|
|
|
width: 80px;
|
|
|
left: 4px;
|
|
|
top: 50%;
|
|
|
padding: 0 8px;
|
|
|
background-color: #fff;
|
|
|
transform: translateY(-50%);
|
|
|
cursor: pointer;
|
|
|
&::after {
|
|
|
content: "";
|
|
|
position: absolute;
|
|
|
width: 1px;
|
|
|
height: 50%;
|
|
|
background-color: #eee;
|
|
|
right: 0px;
|
|
|
top: 50%;
|
|
|
transform: translateY(-50%);
|
|
|
}
|
|
|
> div {
|
|
|
position: relative;
|
|
|
&:hover .icon-guanbishixin {
|
|
|
opacity: 1;
|
|
|
}
|
|
|
&:hover {
|
|
|
opacity: 0.6;
|
|
|
}
|
|
|
> span {
|
|
|
display: inline-block;
|
|
|
text-align: center;
|
|
|
user-select: none;
|
|
|
width: 60px;
|
|
|
}
|
|
|
i {
|
|
|
display: inline-block;
|
|
|
transform: scale(0.6);
|
|
|
transition: opacity 0.1s;
|
|
|
font-size: 12px;
|
|
|
color: #c5c5c5;
|
|
|
}
|
|
|
.icon-guanbishixin {
|
|
|
position: absolute;
|
|
|
right: 0;
|
|
|
top: 3px;
|
|
|
opacity: 0;
|
|
|
transform: scale(1.4);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.ant-input-suffix {
|
|
|
right: 0px !important;
|
|
|
.ant-input-clear-icon {
|
|
|
margin-right: 20px;
|
|
|
width: 1.5em !important;
|
|
|
height: 1.5em !important;
|
|
|
> svg {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
> .ant-input {
|
|
|
height: 40px;
|
|
|
text-indent: 60px;
|
|
|
background: #fff;
|
|
|
border: 2px solid #ff4400;
|
|
|
border-radius: 6px;
|
|
|
box-shadow: 0px 2px 4px 0px transparent;
|
|
|
font-size: 14px !important;
|
|
|
padding-right: 0;
|
|
|
// border-color: #e9e9e9;
|
|
|
&::placeholder {
|
|
|
// text-indent: 30px;
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
&:hover {
|
|
|
border-color: #ff6933;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff6933;
|
|
|
}
|
|
|
}
|
|
|
button {
|
|
|
width: 80px;
|
|
|
height: 40px;
|
|
|
color: white;
|
|
|
background: #ff4400;
|
|
|
border-color: #ff4400;
|
|
|
border: none;
|
|
|
// border-radius: 999px;
|
|
|
font-size: 16px;
|
|
|
box-shadow: none;
|
|
|
cursor: pointer;
|
|
|
outline: none;
|
|
|
&:hover {
|
|
|
background-color: rgba(255, 68, 0, 0.8);
|
|
|
}
|
|
|
// &:focus {
|
|
|
// border: none;
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
.specialbox {
|
|
|
position: absolute;
|
|
|
border-bottom: 1px solid #f6f6f6;
|
|
|
box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
|
|
|
// display: ;
|
|
|
transition: all 0.4s;
|
|
|
left: 0;
|
|
|
top: 45px;
|
|
|
width: 100vw;
|
|
|
background-color: #fff;
|
|
|
z-index: 99;
|
|
|
ul {
|
|
|
overflow: hidden;
|
|
|
padding: 20px 0 8px 0;
|
|
|
li {
|
|
|
padding: 4px 16px;
|
|
|
margin: 0px 16px 12px 0;
|
|
|
cursor: pointer;
|
|
|
float: left;
|
|
|
background: rgba(216, 216, 216, 0.3);
|
|
|
// border-radius: 15px;
|
|
|
font-size: 14px;
|
|
|
color: #4d575e;
|
|
|
line-height: 22px;
|
|
|
&:hover {
|
|
|
color: rgb(254, 97, 0);
|
|
|
background-color: rgba(255, 106, 0, 0.1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.filterbox {
|
|
|
display: flex;
|
|
|
justify-content: flex-start;
|
|
|
min-width: 664px;
|
|
|
> li {
|
|
|
// margin-top: 22px;
|
|
|
font-size: 14px;
|
|
|
color: #4d575e;
|
|
|
margin-right: 4px;
|
|
|
line-height: 44px;
|
|
|
.ant-cascader-picker {
|
|
|
width: auto;
|
|
|
position: relative;
|
|
|
transform: translateY(-2px);
|
|
|
.anticon-close-circle {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
.icon-xiala {
|
|
|
font-size: 12px;
|
|
|
transform: translateY(1px) scale(0.5);
|
|
|
}
|
|
|
.ant-cascader-input {
|
|
|
width: 60px;
|
|
|
height: 40px;
|
|
|
// line-height: 40px;
|
|
|
// margin-top: -5px;
|
|
|
// max-width: 150px !important;
|
|
|
border: none;
|
|
|
padding: 0;
|
|
|
// margin-bottom: 6px;
|
|
|
box-shadow: none;
|
|
|
|
|
|
&::placeholder {
|
|
|
// width: auto;
|
|
|
// text-indent: 20px;
|
|
|
color: #4d575ecc;
|
|
|
// line-height: 20px;
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
span {
|
|
|
width: 60px;
|
|
|
// max-width: 150px;
|
|
|
color: rgb(255, 106, 0) !important;
|
|
|
font-size: 14px;
|
|
|
padding: 0 20px 0 0;
|
|
|
text-align: left;
|
|
|
// line-height: 22px !important;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
> li:not(.ageinputbox) {
|
|
|
padding-top: 4px;
|
|
|
}
|
|
|
|
|
|
.ageinputbox {
|
|
|
position: relative;
|
|
|
|
|
|
&:hover .confirm {
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.ageinput.age {
|
|
|
position: relative;
|
|
|
z-index: 3;
|
|
|
padding: 0;
|
|
|
padding-top: 8px;
|
|
|
margin: 0 5px;
|
|
|
height: 32px;
|
|
|
width: 90px;
|
|
|
text-indent: 10px;
|
|
|
border-color: #e9e9e9;
|
|
|
&:hover {
|
|
|
input {
|
|
|
border-color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
input {
|
|
|
// border-radius: 999px;
|
|
|
padding-right: unset;
|
|
|
&::placeholder {
|
|
|
// text-indent: 30px;
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
&:hover {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
}
|
|
|
.ant-input-suffix {
|
|
|
right: 0px;
|
|
|
top: 76%;
|
|
|
}
|
|
|
}
|
|
|
.confirm {
|
|
|
position: absolute;
|
|
|
display: none;
|
|
|
width: 160px;
|
|
|
height: 48px;
|
|
|
line-height: 44px;
|
|
|
left: 8px;
|
|
|
top: 0;
|
|
|
z-index: 1;
|
|
|
border: 1px solid #eee;
|
|
|
background-color: #fff;
|
|
|
box-shadow: 0 5px 10px 5px #eee;
|
|
|
button {
|
|
|
position: relative;
|
|
|
width: 44px;
|
|
|
height: 28px;
|
|
|
line-height: 26px;
|
|
|
top: 50%;
|
|
|
transform: translateY(-50%);
|
|
|
margin-right: 8px;
|
|
|
float: right;
|
|
|
background-color: rgba(255, 68, 0, 0.9);
|
|
|
border: none;
|
|
|
color: #fff;
|
|
|
&:hover {
|
|
|
background-color: rgba(255, 68, 0, 0.75);
|
|
|
}
|
|
|
&:active {
|
|
|
background-color: rgba(255, 68, 0, 1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
> li:first-child {
|
|
|
> div {
|
|
|
display: flex;
|
|
|
// line-height: 40px;
|
|
|
margin-top: -2px;
|
|
|
margin-right: 12px;
|
|
|
cursor: pointer;
|
|
|
span {
|
|
|
margin-right: 12px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.claerfilter {
|
|
|
position: relative;
|
|
|
color: #8c8d8f;
|
|
|
font-size: 14px;
|
|
|
margin: 0px 10px 0 10px;
|
|
|
// color: rgba(78, 88, 95, 0.8);
|
|
|
transform: translateY(-1px);
|
|
|
// margin-left: 25px;
|
|
|
a {
|
|
|
display: inline-block;
|
|
|
// margin-top: 4px;
|
|
|
transition: all 0.5s;
|
|
|
// line-height: 14px;
|
|
|
&:active {
|
|
|
color: #ff6a00;
|
|
|
transition: none;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/deep/ #maincontent {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
margin-top: 10px;
|
|
|
.maincontentleft {
|
|
|
width: 944px;
|
|
|
margin-right: 16px;
|
|
|
text-align: left;
|
|
|
position: relative;
|
|
|
.tabBar {
|
|
|
position: absolute;
|
|
|
display: flex;
|
|
|
justify-content: start;
|
|
|
align-items: center;
|
|
|
width: 100%;
|
|
|
top: -40px;
|
|
|
text-align: center;
|
|
|
line-height: 40px;
|
|
|
border-bottom: 2px solid #f40;
|
|
|
z-index: 999;
|
|
|
font-size: 16px;
|
|
|
.tabSubset {
|
|
|
width: 96px;
|
|
|
height: 40px;
|
|
|
border-radius: 6px 6px 0px 0px;
|
|
|
cursor: pointer;
|
|
|
&.active {
|
|
|
background-color: #f40;
|
|
|
color: #fff;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.filter {
|
|
|
position: relative;
|
|
|
width: 100%;
|
|
|
top: -10px;
|
|
|
margin-top: 10px;
|
|
|
margin-bottom: 6px;
|
|
|
box-sizing: border-box;
|
|
|
border: 1px solid #ededed;
|
|
|
border-radius: 6px;
|
|
|
// background-color: pink;
|
|
|
padding: 0 12px;
|
|
|
.filter-title {
|
|
|
position: absolute;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
font-size: 14px;
|
|
|
width: 100%;
|
|
|
height: 24px;
|
|
|
top: -34px;
|
|
|
left: 0;
|
|
|
padding-left: 20px;
|
|
|
z-index: 10;
|
|
|
span i {
|
|
|
font-size: 12px;
|
|
|
}
|
|
|
.toggleFilter {
|
|
|
height: 24px;
|
|
|
padding: 0px 2px 0 4px;
|
|
|
line-height: 22px;
|
|
|
border: 1px solid #ededed;
|
|
|
background-color: #f5f5f5;
|
|
|
border-radius: 4px;
|
|
|
color: #666;
|
|
|
cursor: pointer;
|
|
|
user-select: none;
|
|
|
i {
|
|
|
// line-height: 28px;
|
|
|
height: 100%;
|
|
|
line-height: 22px;
|
|
|
display: inline-block;
|
|
|
transform-origin: center;
|
|
|
transform: scale(0.6);
|
|
|
margin-left: 2px;
|
|
|
}
|
|
|
}
|
|
|
.sort {
|
|
|
width: 86px;
|
|
|
height: 22px;
|
|
|
margin-left: 16px;
|
|
|
display: inline-block;
|
|
|
text-align: center;
|
|
|
padding: 0px 2px 0 4px;
|
|
|
line-height: 20px;
|
|
|
border: 1px solid #ededed;
|
|
|
background-color: #f5f5f5;
|
|
|
border-radius: 4px;
|
|
|
color: #666;
|
|
|
cursor: pointer;
|
|
|
user-select: none;
|
|
|
}
|
|
|
|
|
|
> span:first-child {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: start;
|
|
|
line-height: 22px;
|
|
|
> span:first-child {
|
|
|
margin-right: 14px;
|
|
|
i {
|
|
|
margin-left: 4px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.filter-show {
|
|
|
display: flex;
|
|
|
line-height: 1;
|
|
|
color: #666;
|
|
|
> span:nth-child(-n + 6) {
|
|
|
display: inline-block;
|
|
|
}
|
|
|
> span {
|
|
|
display: none;
|
|
|
height: 24px;
|
|
|
line-height: 22px;
|
|
|
padding: 0 2px 0 4px;
|
|
|
background-color: #f5f5f5;
|
|
|
border: 1px solid #ededed;
|
|
|
margin-right: 8px;
|
|
|
user-select: none;
|
|
|
border-radius: 4px;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
border-color: #f40;
|
|
|
background: #fff3ef;
|
|
|
color: #f40;
|
|
|
i {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
i {
|
|
|
font-size: 14px;
|
|
|
margin-left: 4px;
|
|
|
color: #666;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.filter-content {
|
|
|
overflow: hidden;
|
|
|
// background-color: skyblue;
|
|
|
dl {
|
|
|
display: flex;
|
|
|
justify-content: start;
|
|
|
padding: 8px 8px 4px 8px;
|
|
|
font-size: 14px;
|
|
|
line-height: 1.5;
|
|
|
user-select: none;
|
|
|
|
|
|
.special-active {
|
|
|
color: #ff4400 !important;
|
|
|
// background-color: rgba(255, 106, 0, 0.1) !important;
|
|
|
}
|
|
|
&:first-child {
|
|
|
padding-bottom: 7px;
|
|
|
dd {
|
|
|
> i {
|
|
|
> span {
|
|
|
color: #333;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
&:not(:last-child) {
|
|
|
border-bottom: 1px dotted #ededed;
|
|
|
}
|
|
|
&:not(:first-child) {
|
|
|
dd {
|
|
|
display: flex;
|
|
|
justify-content: start;
|
|
|
flex-wrap: wrap;
|
|
|
> span {
|
|
|
margin-bottom: 4px;
|
|
|
color: #333;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
dt {
|
|
|
width: 74px;
|
|
|
margin-right: 16px;
|
|
|
text-align: left;
|
|
|
color: #888;
|
|
|
}
|
|
|
dd {
|
|
|
flex: 1;
|
|
|
.ageinputbox {
|
|
|
position: relative;
|
|
|
display: inline-block;
|
|
|
margin-right: 16px;
|
|
|
> span:nth-of-type(2) {
|
|
|
position: relative;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
&:hover .confirm {
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.ageinput:not(.age) {
|
|
|
position: relative;
|
|
|
z-index: 3;
|
|
|
padding: 0;
|
|
|
// margin: 0 5px;
|
|
|
height: 26px;
|
|
|
width: 80px;
|
|
|
border-color: #ddd;
|
|
|
.ant-input-prefix {
|
|
|
left: 3px;
|
|
|
top: 51%;
|
|
|
}
|
|
|
&:hover {
|
|
|
input {
|
|
|
border-color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
input {
|
|
|
border-radius: 4px;
|
|
|
text-indent: 20px;
|
|
|
height: 26px;
|
|
|
padding: 0;
|
|
|
padding-right: unset;
|
|
|
border-color: #ddd;
|
|
|
&::placeholder {
|
|
|
// text-indent: 30px;
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
&:hover {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
}
|
|
|
.ant-input-suffix {
|
|
|
right: 3px;
|
|
|
}
|
|
|
}
|
|
|
.ageinput {
|
|
|
position: relative;
|
|
|
z-index: 3;
|
|
|
padding: 0;
|
|
|
// margin: 0 5px;
|
|
|
height: 26px;
|
|
|
width: 80px;
|
|
|
border-color: #ddd;
|
|
|
.ant-input-prefix {
|
|
|
left: 3px;
|
|
|
top: 51%;
|
|
|
}
|
|
|
&:hover {
|
|
|
input {
|
|
|
border-color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
input {
|
|
|
border-radius: 4px;
|
|
|
text-indent: 10px;
|
|
|
height: 26px;
|
|
|
padding: 0;
|
|
|
padding-right: unset;
|
|
|
border-color: #ddd;
|
|
|
&::placeholder {
|
|
|
// text-indent: 30px;
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
&:hover {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
}
|
|
|
.ant-input-suffix {
|
|
|
right: 3px;
|
|
|
}
|
|
|
}
|
|
|
.confirm {
|
|
|
position: absolute;
|
|
|
display: none;
|
|
|
width: 254px;
|
|
|
height: 46px;
|
|
|
line-height: 46px;
|
|
|
left: -8px;
|
|
|
top: -11px;
|
|
|
z-index: 1;
|
|
|
border: 1px solid #eee;
|
|
|
border-radius: 6px;
|
|
|
background-color: #fff;
|
|
|
box-shadow: 0 0px 10px 5px #eee;
|
|
|
button {
|
|
|
position: relative;
|
|
|
width: 44px;
|
|
|
height: 26px;
|
|
|
line-height: 26px;
|
|
|
top: 52%;
|
|
|
transform: translateY(-50%);
|
|
|
margin-right: 8px;
|
|
|
float: right;
|
|
|
background-color: rgba(255, 68, 0, 0.9);
|
|
|
border-radius: 4px;
|
|
|
border: none;
|
|
|
color: #fff;
|
|
|
&:hover {
|
|
|
background-color: rgba(255, 68, 0, 0.75);
|
|
|
}
|
|
|
&:active {
|
|
|
background-color: rgba(255, 68, 0, 1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
> span {
|
|
|
margin-right: 40px;
|
|
|
|
|
|
> span {
|
|
|
cursor: pointer;
|
|
|
margin-right: 40px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.price {
|
|
|
dd i {
|
|
|
span {
|
|
|
cursor: pointer;
|
|
|
margin-right: 40px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.nodata {
|
|
|
overflow: hidden;
|
|
|
height: 230px;
|
|
|
padding-top: 30px;
|
|
|
text-align: center;
|
|
|
background-color: #fff;
|
|
|
// border-radius: 5px;
|
|
|
margin: 0 auto;
|
|
|
color: #00000066;
|
|
|
margin-bottom: 20px;
|
|
|
p {
|
|
|
position: relative;
|
|
|
transform: translateY(35px);
|
|
|
}
|
|
|
}
|
|
|
.subset {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
border: 1px solid #ededed;
|
|
|
// width: 944px;
|
|
|
// height: 212px;
|
|
|
padding: 16px;
|
|
|
margin-bottom: 16px;
|
|
|
background: #ffffff;
|
|
|
border-radius: 6px;
|
|
|
transition: all 0.2s;
|
|
|
|
|
|
&:hover {
|
|
|
// position: relative;
|
|
|
box-shadow: 3px 3px 20px 0px rgba(77, 87, 94, 0.1);
|
|
|
// transform: translateY(-0.5px);
|
|
|
}
|
|
|
.subsetleft {
|
|
|
display: flex;
|
|
|
.imgbox {
|
|
|
width: 156px;
|
|
|
height: 156px;
|
|
|
margin-right: 16px;
|
|
|
position: relative;
|
|
|
overflow: hidden;
|
|
|
img {
|
|
|
position: absolute;
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%) translateY(-50%);
|
|
|
|
|
|
// width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
.default_avatar {
|
|
|
width: 156px;
|
|
|
height: 156px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
text-align: center;
|
|
|
background-color: #d85043;
|
|
|
color: #fff;
|
|
|
font-size: 44px;
|
|
|
line-height: 1.3;
|
|
|
}
|
|
|
}
|
|
|
.jobinfobox {
|
|
|
.jobname {
|
|
|
// margin: 12px 0;
|
|
|
font-size: 18px;
|
|
|
font-weight: 600;
|
|
|
text-align: left;
|
|
|
color: #333;
|
|
|
line-height: 26px;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
.jobinfo {
|
|
|
margin-top: 8px;
|
|
|
// opacity: 0.5;
|
|
|
font-size: 14px;
|
|
|
font-weight: 400;
|
|
|
text-align: left;
|
|
|
color: #999;
|
|
|
line-height: 20px;
|
|
|
}
|
|
|
.jobtag {
|
|
|
display: flex;
|
|
|
margin-top: 10px;
|
|
|
align-items: center;
|
|
|
text-align: left;
|
|
|
// span:first-child {
|
|
|
// color: #ff4400;
|
|
|
// background: rgba(254, 97, 0, 0.1);
|
|
|
// }
|
|
|
i {
|
|
|
margin-right: 8px;
|
|
|
color: #f40;
|
|
|
font-size: 20px;
|
|
|
}
|
|
|
span {
|
|
|
height: 20px;
|
|
|
margin-right: 8px;
|
|
|
line-height: 1;
|
|
|
font-size: 14px;
|
|
|
padding: 2px 8px;
|
|
|
background: rgba(51, 51, 51, 0.06);
|
|
|
border-radius: 2px;
|
|
|
}
|
|
|
.hotTag {
|
|
|
background-color: #f40;
|
|
|
color: #fff;
|
|
|
font-size: 12px;
|
|
|
padding: 4px;
|
|
|
i {
|
|
|
margin-right: 4px;
|
|
|
color: #fff;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.jobpricemonth {
|
|
|
margin-top: 10px;
|
|
|
font-size: 14px;
|
|
|
font-weight: 400;
|
|
|
text-align: left;
|
|
|
color: #333;
|
|
|
line-height: 20px;
|
|
|
}
|
|
|
.jobpricehour {
|
|
|
margin-top: 8px;
|
|
|
font-size: 14px;
|
|
|
font-weight: normal;
|
|
|
text-align: left;
|
|
|
color: #ff4400;
|
|
|
// line-height: 24px;
|
|
|
font-weight: 600;
|
|
|
span {
|
|
|
vertical-align: baseline;
|
|
|
font-size: 22px;
|
|
|
line-height: 28px;
|
|
|
}
|
|
|
i {
|
|
|
font-size: 18px;
|
|
|
line-height: 28px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.subsetright {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
justify-content: space-between;
|
|
|
align-items: flex-end;
|
|
|
.topContainer {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
justify-content: space-between;
|
|
|
align-items: flex-end;
|
|
|
margin-top: -8px;
|
|
|
}
|
|
|
.updateTime {
|
|
|
line-height: 1;
|
|
|
font-size: 14px;
|
|
|
color: #999;
|
|
|
}
|
|
|
.topbox {
|
|
|
width: 100px;
|
|
|
height: 48px;
|
|
|
margin-top: 8px;
|
|
|
overflow: hidden;
|
|
|
text-align: center;
|
|
|
background: rgba(255, 106, 0, 0.1);
|
|
|
// border-radius: 4px;
|
|
|
border-radius: 4px;
|
|
|
line-height: 26px;
|
|
|
div {
|
|
|
// font-weight: normal;
|
|
|
font-size: 16px;
|
|
|
span {
|
|
|
font-size: 20px;
|
|
|
// font-weight: normal;
|
|
|
}
|
|
|
}
|
|
|
div:first-child {
|
|
|
height: 22px;
|
|
|
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: #fff3ef;
|
|
|
color: #ff4400 !important;
|
|
|
}
|
|
|
}
|
|
|
.bottombox1 {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
.jobDesp {
|
|
|
border: 1px solid #ff4400;
|
|
|
background-color: #fff;
|
|
|
color: #ff4400;
|
|
|
transition: none;
|
|
|
box-shadow: none;
|
|
|
text-shadow: none;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #fff;
|
|
|
|
|
|
background-color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
button {
|
|
|
min-width: 80px;
|
|
|
height: 28px;
|
|
|
font-size: 16px;
|
|
|
// border: 1px solid rgba(77, 87, 94, 0.3);
|
|
|
// border-radius: 4px;
|
|
|
}
|
|
|
> a {
|
|
|
button:first-child {
|
|
|
border: 1px solid #d9d9d9;
|
|
|
// border-radius: 4px;
|
|
|
color: #4d575e;
|
|
|
background-color: #fff;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
border-color: #ff4400;
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.apply {
|
|
|
margin-left: 16px;
|
|
|
border: 1px solid #ff4400;
|
|
|
padding: 0 16px;
|
|
|
background-color: #fff;
|
|
|
color: #ff4400;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #fff;
|
|
|
|
|
|
background-color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.norecruitment {
|
|
|
background-color: #f5f5f5;
|
|
|
border: 1px solid #ccc;
|
|
|
margin-left: 16px;
|
|
|
|
|
|
color: #ccc;
|
|
|
}
|
|
|
}
|
|
|
// .pagecontainer {
|
|
|
// display: flex;
|
|
|
// justify-content: center;
|
|
|
// text-align: center;
|
|
|
// margin-bottom: 30px;
|
|
|
// .ant-pagination-options-quick-jumper {
|
|
|
// margin-left: 10px;
|
|
|
// font-size: 16px;
|
|
|
// }
|
|
|
// .ant-pagination-disabled {
|
|
|
// a:hover {
|
|
|
// color: #c5c5c5 !important;
|
|
|
// }
|
|
|
// }
|
|
|
// .ant-pagination-next,
|
|
|
// .ant-pagination-prev {
|
|
|
// a:hover {
|
|
|
// color: #ff4400;
|
|
|
// }
|
|
|
// }
|
|
|
// input[type="text"] {
|
|
|
// box-shadow: none;
|
|
|
// &:focus {
|
|
|
// border: 1px solid #ff4400;
|
|
|
// }
|
|
|
// &:hover {
|
|
|
// border: 1px solid #ff4400;
|
|
|
// }
|
|
|
// }
|
|
|
// .ant-pagination-item {
|
|
|
// border: none;
|
|
|
// a:hover {
|
|
|
// color: #ff4400;
|
|
|
// }
|
|
|
// }
|
|
|
// .ant-pagination-item-active {
|
|
|
// background: #ff4400;
|
|
|
// a {
|
|
|
// color: white;
|
|
|
// }
|
|
|
// a:hover {
|
|
|
// color: white;
|
|
|
// }
|
|
|
// }
|
|
|
// .ant-pagination-item-link {
|
|
|
// border: none;
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
.maincontentright {
|
|
|
width: 240px;
|
|
|
position: relative;
|
|
|
top: -42px;
|
|
|
> div {
|
|
|
margin-bottom: 16px;
|
|
|
border: 1px solid #ededed;
|
|
|
border-radius: 6px;
|
|
|
}
|
|
|
.dateinfo {
|
|
|
text-align: center;
|
|
|
overflow: hidden;
|
|
|
border-radius: 6px;
|
|
|
border: none;
|
|
|
position: relative;
|
|
|
padding-bottom: 10px;
|
|
|
background-color: #fff3ef;
|
|
|
.bottombox {
|
|
|
position: relative;
|
|
|
margin-top: 0;
|
|
|
margin-bottom: 0;
|
|
|
// padding-top: 10px;
|
|
|
height: 44px;
|
|
|
padding: 0;
|
|
|
line-height: 44px;
|
|
|
font-size: 16px;
|
|
|
font-weight: 600;
|
|
|
border-bottom: none;
|
|
|
color: #fff;
|
|
|
background-color: #ff4400;
|
|
|
z-index: 10;
|
|
|
&::after {
|
|
|
left: 0;
|
|
|
// display: none;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.hotphone {
|
|
|
overflow: hidden;
|
|
|
position: relative;
|
|
|
width: 240px;
|
|
|
height: 200px;
|
|
|
// height: 114px;
|
|
|
// padding: 0 20px 20px 20px;
|
|
|
border-radius: 6px;
|
|
|
background-color: #fff;
|
|
|
text-align: center;
|
|
|
.bottombox {
|
|
|
font-size: 16px;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
}
|
|
|
.relationme {
|
|
|
overflow: hidden;
|
|
|
position: relative;
|
|
|
width: 240px;
|
|
|
height: 160px;
|
|
|
padding: 0 20px 20px;
|
|
|
background: #ffffff;
|
|
|
text-align: center;
|
|
|
button {
|
|
|
position: absolute;
|
|
|
width: 120px;
|
|
|
height: 32px;
|
|
|
margin-top: 16px;
|
|
|
font-size: 16px;
|
|
|
line-height: 20px;
|
|
|
// border-radius: 999px;
|
|
|
border: 0;
|
|
|
background-color: #ff4400;
|
|
|
color: #fff;
|
|
|
top: 55%;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%) translateY(-50%);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.sortClass {
|
|
|
.sortMenu {
|
|
|
text-align: center;
|
|
|
height: 46px;
|
|
|
line-height: 46px;
|
|
|
}
|
|
|
.ant-dropdown-menu {
|
|
|
padding: 0;
|
|
|
}
|
|
|
.ant-dropdown-menu-item {
|
|
|
width: 140px;
|
|
|
padding: 0 16px;
|
|
|
&:not(:last-child) {
|
|
|
.sortMenu {
|
|
|
border-bottom: 1px solid #eee;
|
|
|
}
|
|
|
}
|
|
|
&:hover {
|
|
|
background-color: #fff3ef;
|
|
|
}
|
|
|
}
|
|
|
.active.sortMenu {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
.cityModal {
|
|
|
.inputBox {
|
|
|
display: flex;
|
|
|
}
|
|
|
/deep/ .ant-input-affix-wrapper {
|
|
|
flex: 1;
|
|
|
margin-right: 12px;
|
|
|
.ant-input {
|
|
|
&:hover {
|
|
|
border-color: #ff4400;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff4400;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.ant-btn {
|
|
|
&:hover {
|
|
|
border-color: #ff4400;
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
&:active {
|
|
|
border-color: #ee3f00;
|
|
|
color: #ee3f00;
|
|
|
}
|
|
|
&:focus {
|
|
|
border-color: #ff4400;
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
button {
|
|
|
width: 60px;
|
|
|
height: 32px;
|
|
|
}
|
|
|
.firstList {
|
|
|
display: flex;
|
|
|
justify-content: start;
|
|
|
margin: 30px 0;
|
|
|
li {
|
|
|
width: 16.6%;
|
|
|
text-align: center;
|
|
|
color: #666;
|
|
|
div {
|
|
|
width: 60%;
|
|
|
padding-bottom: 5px;
|
|
|
cursor: pointer;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
.active {
|
|
|
color: #ff4400;
|
|
|
// position: relative;
|
|
|
// &::after {
|
|
|
// content:'';
|
|
|
// display: block;
|
|
|
// position: absolute;
|
|
|
// height: 2px;
|
|
|
// width: 50px;
|
|
|
// bottom: 0;
|
|
|
// left: 0;
|
|
|
// background-color: #ff4400;
|
|
|
// }
|
|
|
border-bottom: 2px solid #ff4400;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.currentCity {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
li {
|
|
|
width: 16.6%;
|
|
|
margin-bottom: 20px;
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|
|
|
div {
|
|
|
width: 60%;
|
|
|
&:hover {
|
|
|
color: #ff4400;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
p {
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
</style>
|