cyl/dev
wangxia 4 years ago
parent 7e99af49d2
commit 3479b4e51e

@ -121,18 +121,43 @@
<div class="maincontent w">
<div class="maincontentleft">
<div class="subset">
<a-skeleton avatar :loading="skeletonshow" v-if="skeletonshow" :paragraph="{ rows: 4 }" />
<a-skeleton
avatar
:loading="skeletonshow"
v-if="skeletonshow"
:paragraph="{ rows: 4 }"
/>
<div class="subsetleft" v-else>
<div class="imgbox">
<a-carousel arrows :autoplay="true" effect="fade" :dots="true" ref="scrollimg" v-if="storeImage.length !== 0">
<div slot="prevArrow" class="custom-slick-arrow" style="left: 5px; z-index: 99">
<a-carousel
arrows
:autoplay="true"
effect="fade"
:dots="true"
ref="scrollimg"
v-if="storeImage.length !== 0"
>
<div
slot="prevArrow"
class="custom-slick-arrow"
style="left: 5px; z-index: 99"
>
<a-icon type="left-circle" />
</div>
<div slot="nextArrow" class="custom-slick-arrow" style="right: 5px; z-index: 99">
<div
slot="nextArrow"
class="custom-slick-arrow"
style="right: 5px; z-index: 99"
>
<a-icon type="right-circle" />
</div>
<img v-for="(item, index) in storeImage" :key="index" :src="item" alt="" />
<img
v-for="(item, index) in storeImage"
:key="index"
:src="item"
alt=""
/>
</a-carousel>
<img v-else src="../../../static/img/nopicture.png" alt="" />
</div>
@ -145,20 +170,52 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<a-tag :color="labelColor[index % labelColor.length]" v-for="(item, index) in jobDetail.jobRequestLabelNames" :key="index">{{ item }}</a-tag>
<a-tag
:color="labelColor[index % labelColor.length]"
v-for="(item, index) in jobDetail.jobRequestLabelNames"
:key="index"
>{{ item }}</a-tag
>
</div>
<div style="height: 27px" v-if="!jobDetail.jobRequestLabelNames" class="jobtag">
<div
style="height: 27px"
v-if="!jobDetail.jobRequestLabelNames"
class="jobtag"
>
<a-tag :color="labelColor[1]">暂无要求</a-tag>
</div>
<div class="jobtag1">
<!-- <span>返费</span> -->
<a-tag v-for="(item, index) in jobDetail.jobSpecialLabelNames" :key="index">{{ item }}</a-tag>
<a-tag
v-for="(item, index) in jobDetail.jobSpecialLabelNames"
:key="index"
>{{ item }}</a-tag
>
</div>
<div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag">
<div
style="height: 27px"
v-if="!jobDetail.jobSpecialLabelNames"
class="jobtag"
>
<a-tag style="backgroundcolor: #f5f5f5">暂无特色</a-tag>
</div>
<div style="display: flex; align-items: center; height: 26px; margin-top: 16px">
<div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)">
<div
style="
display: flex;
align-items: center;
height: 26px;
margin-top: 16px;
"
>
<div
class="jobpricehour"
v-html="
getSalaryClassifyValue(
jobDetail.salaryClassify,
jobDetail.salaryClassifyValue
)
"
>
<!-- <template v-if="jobDetail.hourlyPay"
><span>{{ jobDetail.hourlyPay }}</span
>/小时</template
@ -205,7 +262,9 @@
<a-button type="primary" class="jobDesp">职位详单</a-button>
</a-popover> -->
<button class="dropdown bottombox1" @click="torecord()"></button>
<button class="dropdown bottombox1" @click="torecord()">
报名
</button>
</div>
</div>
</div>
@ -216,14 +275,30 @@
<div class="jobinformationbox">
<h1>
<div class="infotitle">
<span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span>
<span @click="tabchange = 0" :class="tabchange !== 1 ? 'active' : ''">财务结算</span>
<span
@click="tabchange = 1"
:class="tabchange === 1 ? 'active' : ''"
>基本信息</span
>
<span
@click="tabchange = 0"
:class="tabchange !== 1 ? 'active' : ''"
>财务结算</span
>
</div>
<div class="copy" @click="xiangdanVisible = true">通告</div>
<a-modal v-model="xiangdanVisible" title="通告" class="xiangdan" :footer="null" @ok="handleOk">
<a-modal
v-model="xiangdanVisible"
title="通告"
class="xiangdan"
:footer="null"
@ok="handleOk"
>
<!-- <template slot="content" class="jobDesp_content"> -->
<div class="copy" @click="copyText($event)"></div>
<span v-if="jobDetail.jobDesp" class="copyInfo">{{ jobDetail.jobDesp }}</span
<span v-if="jobDetail.jobDesp" class="copyInfo">{{
jobDetail.jobDesp
}}</span
><span v-else></span>
<!-- </template> -->
</a-modal>
@ -239,7 +314,12 @@
<div class="baseInfoContent" v-if="tabchange === 1">
<div class="pay" id="pay">
<div class="mb12 mt20">薪资待遇</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc boubleLevel">
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc boubleLevel"
>
<!-- <a-descriptions-item class="test1">
<span slot="label" class="fw500">工价</span>
<span>{{ jobDetail.calculationUnit }}</span>
@ -262,7 +342,9 @@
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class="fw500">补充说明</span>
<span style="white-space: break-spaces">{{ jobDetail.salaryDesp || "-" }}</span>
<span style="white-space: break-spaces">{{
jobDetail.salaryDesp || "-"
}}</span>
</a-descriptions-item>
<!-- <a-descriptions-item style="padding: 0">
<span slot="label">薪资说明</span>
@ -300,15 +382,24 @@
<!-- 岗位要求 -->
<div class="required" id="required">
<div class="mb12 mt20">面试要求</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions-item class="test1">
<span slot="label" class="fw500">性别年龄</span>
<span>
<span class="man" v-if="jobDetail.minAgeMan"
> {{ jobDetail.minAgeMan }} <span v-if="jobDetail.maxAgeMan">{{ "- " + jobDetail.maxAgeMan }}</span
> {{ jobDetail.minAgeMan }}
<span v-if="jobDetail.maxAgeMan">{{
"- " + jobDetail.maxAgeMan
}}</span
> </span
><span class="woman" v-if="jobDetail.minAgeWoman">
{{ jobDetail.minAgeWoman }} <span> {{ "- " + jobDetail.maxAgeWoman }}</span
{{ jobDetail.minAgeWoman }}
<span> {{ "- " + jobDetail.maxAgeWoman }}</span
></span
>
</span>
@ -344,7 +435,12 @@
<!-- 基本信息 -->
<div class=" " id="contentspecial">
<div class="mb12 mt20">岗位说明</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions-item class="test1">
<span slot="label" class="fw500">工作内容</span>
<span>{{ jobDetail.workContent || "-" }}</span>
@ -375,7 +471,9 @@
</a-descriptions-item> -->
<a-descriptions-item>
<span slot="label" class="fw500">补充说明</span>
<span style="white-space: break-spaces">{{ jobDetail.otherDesp || "-" }}</span>
<span style="white-space: break-spaces">{{
jobDetail.otherDesp || "-"
}}</span>
</a-descriptions-item>
</a-descriptions>
</div>
@ -387,7 +485,8 @@
<div>吃饭</div>
<ul>
<li>
<span>吃饭</span><span>{{ jobDetail.workingLunch || "-" }}</span>
<span>吃饭</span
><span>{{ jobDetail.workingLunch || "-" }}</span>
</li>
<!-- <li>
<span>餐补</span
@ -405,7 +504,10 @@
<span>民族窗口</span><span>{{ jobDetail.muslim }}</span>
</li> -->
<li>
<span>补充说明</span><span style="white-space: break-spaces">{{ jobDetail.workingLunchDesp || "-" }}</span>
<span>补充说明</span
><span style="white-space: break-spaces">{{
jobDetail.workingLunchDesp || "-"
}}</span>
</li>
</ul>
</li>
@ -413,10 +515,12 @@
<div>住宿</div>
<ul>
<li>
<span>住宿</span><span>{{ jobDetail.dormitory || "-" }}</span>
<span>住宿</span
><span>{{ jobDetail.dormitory || "-" }}</span>
</li>
<li>
<span>宿舍设施</span><span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
<span>宿舍设施</span
><span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
</li>
<!-- <li>
<span>宿舍距离</span
@ -437,13 +541,17 @@
><span>{{ jobDetail.dormitoryFacilities }}</span>
</li> -->
<li>
<span>水电费</span><span>{{ jobDetail.waterAndElec || "-" }}</span>
<span>水电费</span
><span>{{ jobDetail.waterAndElec || "-" }}</span>
</li>
<!-- <li>
<span>班车</span><span>{{ jobDetail.regularBus }}</span>
</li> -->
<li>
<span>补充说明</span><span style="white-space: break-spaces">{{ jobDetail.dormitoryDesp || "-" }}</span>
<span>补充说明</span
><span style="white-space: break-spaces">{{
jobDetail.dormitoryDesp || "-"
}}</span>
</li>
</ul>
</li>
@ -513,7 +621,13 @@
{{ jobDetail.agencyStatement || "-" }}
</div>
</div>
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px">
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc mt20"
style="width: 900px"
>
<a-descriptions-item class="test1">
<span slot="label" class="fw500">代理利润</span>
<span>{{ jobDetail.agencyProfit || "-" }}</span>
@ -588,7 +702,10 @@
</template>
<script>
import { getJobDetailApi } from "../../api/job";
import { disposeJobListData, getSalaryClassifyValue } from "../../utils/commonUtil";
import {
disposeJobListData,
getSalaryClassifyValue,
} from "../../utils/commonUtil";
import recommend from "../../components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import GDMap from "../map.vue";
@ -623,7 +740,16 @@ export default {
skeletonshow: true,
tabchange: 1,
nationlist,
labelColor: ["pink", "blue", "purple", "orange", "green", "cyan", "red", "purple"],
labelColor: [
"pink",
"blue",
"purple",
"orange",
"green",
"cyan",
"red",
"purple",
],
form: {
//
name: "",
@ -688,7 +814,9 @@ export default {
this.positionInfo.containerName = "mapContainer";
this.positionInfo.name = this.positionInfo.aliasName;
this.skeletonshow = false;
this.jobDetail.district = disposeJobListData(data.data.store).district;
this.jobDetail.district = disposeJobListData(
data.data.store
).district;
let newdata = {
id: data.data.storeJob.id,
aliasName: data.data.store.aliasName,
@ -1500,7 +1628,12 @@ export default {
font-size: 16px;
color: #333;
}
.boubleLevel > .ant-descriptions-view > table > tbody > .ant-descriptions-row:last-child > .ant-descriptions-item-content {
.boubleLevel
> .ant-descriptions-view
> table
> tbody
> .ant-descriptions-row:last-child
> .ant-descriptions-item-content {
// padding: 0 !important;
.noborder {
.ant-descriptions-view {

@ -23,13 +23,35 @@
>
</a-modal> -->
<!-- 城市的弹出框 -->
<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>
<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)]">
<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>
@ -184,11 +206,39 @@
</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" @focus.stop="" tabindex="0" @click.stop="visible = true">
<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"
@focus.stop=""
tabindex="0"
@click.stop="visible = true"
>
<span>{{ currentCity }}</span
><i class="iconfont icon-sousuoxiala"></i><i class="iconfont icon-guanbishixin" v-show="currentCity != '全国'" @click.stop="resetCity"></i>
><i class="iconfont icon-sousuoxiala"></i
><i
class="iconfont icon-guanbishixin"
v-show="currentCity != '全国'"
@click.stop="resetCity"
></i>
</div>
<button slot="suffix" @click="onSearch" style="">搜索</button>
</a-input>
@ -202,7 +252,11 @@
<div class="hotStore">
<!-- <span>热门企业</span> -->
<ul>
<li v-for="(item, index) in hotStoreList" :key="index" @click="getHotStoreList(item)">
<li
v-for="(item, index) in hotStoreList"
:key="index"
@click="getHotStoreList(item)"
>
{{ item.storeName }}
</li>
<!-- <li @click="resetResult" style="color: #aaa">重置</li> -->
@ -237,18 +291,60 @@
<div class="w" id="maincontent">
<div class="maincontentleft" 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 }" data-type="1">自营</div>
<div class="tabSubset" :class="{ active: signType == 2 }" data-type="2">三方</div>
<div
class="tabSubset"
:class="{ active: signType == '' }"
data-type="0"
>
全部
</div>
<div
class="tabSubset"
:class="{ active: signType == 1 }"
data-type="1"
>
自营
</div>
<div
class="tabSubset"
:class="{ active: signType == 2 }"
data-type="2"
>
三方
</div>
</div>
<div class="filter" :class="[filterStatus == 0 ? '' : 'nobd']" style="">
<div class="filter-title" :style="{ top: filterStatus == 0 ? '-32px' : '-21px' }">
<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, 'special', item)" v-for="(item, index) in filterObj.specialactive" :key="index">{{ item.name }}<i class="iconfont icon-guanbi2"></i></span>
<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, '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>
@ -257,7 +353,8 @@
}}<i
class="iconfont icon-sousuoxiala"
:style="{
transform: filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
transform:
filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
}"
></i
></span>
@ -331,7 +428,12 @@
<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
><span
:style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }"
></span
><span
:style="{
color: filterObj.gender == '男女不限' ? '#ff4400' : '',
@ -347,7 +449,8 @@
v-for="(item, index) in tagArray1"
:key="index"
:class="{
'special-active': filterObj.specialactive.indexOf(item) > -1,
'special-active':
filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -361,7 +464,8 @@
v-for="(item, index) in tagArray3"
:key="index"
:class="{
'special-active': filterObj.specialactive.indexOf(item) > -1,
'special-active':
filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -375,7 +479,8 @@
v-for="(item, index) in tagArray0"
:key="index"
:class="{
'special-active': filterObj.specialactive.indexOf(item) > -1,
'special-active':
filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -389,7 +494,8 @@
v-for="(item, index) in tagArray4"
:key="index"
:class="{
'special-active': filterObj.specialactive.indexOf(item) > -1,
'special-active':
filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -403,7 +509,8 @@
v-for="(item, index) in tagArray2"
:key="index"
:class="{
'special-active': filterObj.specialactive.indexOf(item) > -1,
'special-active':
filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -426,7 +533,13 @@
<div v-if="!isspinning">
<div class="subset" v-for="(item, index) in jobMainList" :key="index">
<router-link target="_blank" :to="'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum" rel="opener">
<router-link
target="_blank"
:to="
'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum
"
rel="opener"
>
<div class="subsetleft" @click="totop">
<div class="imgbox">
<img v-if="item.logo.length !== 0" :src="item.logo" />
@ -447,18 +560,39 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<i class="iconfont icon-ziying" v-if="item.signType == 1" style=""></i>
<span v-for="(item1, index) in item.jobSpecialLabelNames" :key="index">{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"></span>
<i
class="iconfont icon-ziying"
v-if="item.signType == 1"
style=""
></i>
<span
v-for="(item1, index) in item.jobSpecialLabelNames"
:key="index"
>{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"
>暂无特色</span
>
</div>
<div class="jobpricemonth">
<!-- :style="{ opacity: item.minMonthlyPay ? '1' : '0' }" -->
<span>{{ item.minMonthlyPay ? item.minMonthlyPay : "" }}</span
>-<span>{{ item.maxMonthlyPay ? item.maxMonthlyPay : "" }}</span
<span>{{
item.minMonthlyPay ? item.minMonthlyPay : ""
}}</span
>-<span>{{
item.maxMonthlyPay ? item.maxMonthlyPay : ""
}}</span
>/
</div>
<div class="jobpricehour" v-html="getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue)">
<div
class="jobpricehour"
v-html="
getSalaryClassifyValue(
item.salaryClassify,
item.salaryClassifyValue
)
"
>
<!-- <template v-if="item.hourlyPay"
><span>{{ item.hourlyPay }}</span
>/小时</template
@ -474,7 +608,10 @@
<div class="subsetright">
<div class="topContainer">
<div class="updateTime" style="display: none">
<span>更新时间{{ item.updateTime || "--" }} ( {{ item.diffTime || "--" }} ) </span>
<span
>更新时间{{ item.updateTime || "--" }} (
{{ item.diffTime || "--" }} )
</span>
</div>
<div class="topbox">
<div>服务费</div>
@ -488,7 +625,22 @@
<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 + '&' + 'page=' + formvalue.pageNum" rel="opener"> <button type="primary" class="jobDesp">更多</button></router-link>
<router-link
target="_blank"
:to="
'/detail?' +
'id=' +
item.id +
'&' +
'page=' +
formvalue.pageNum
"
rel="opener"
>
<button type="primary" class="jobDesp">
更多
</button></router-link
>
<!-- </a-popover> -->
<button @click="torecord(item)"></button>
@ -498,8 +650,21 @@
</div>
</div>
<div class="pagecontainer">
<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>
<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="maincontentright">
@ -547,7 +712,11 @@ import {
getHotStoreApi,
// getCityApi,
} from "../../api/job";
import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck } from "../../utils/commonUtil";
import {
moneyToFixed,
getSalaryClassifyValue,
isNotEmptyCheck,
} from "../../utils/commonUtil";
import recommend from "@/components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import Clipboard from "clipboard";
@ -848,7 +1017,10 @@ export default {
console.log(typeof this.searchValue.trim());
if (this.searchValue.trim() !== "") {
this.formvalue.pageNum = 1;
if (typeof +this.searchValue.trim() == "number" && !isNaN(+this.searchValue.trim())) {
if (
typeof +this.searchValue.trim() == "number" &&
!isNaN(+this.searchValue.trim())
) {
this.formvalue.ageStr = this.searchValue.trim();
} else {
this.formvalue.aliasName = this.searchValue.trim();
@ -880,8 +1052,16 @@ export default {
} 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;
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();
}
@ -922,7 +1102,12 @@ export default {
//
getJobSpecial() {
if (isNotEmptyCheck(localStorage.getItem("SPECIALLIST"))) {
if (new Date(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST")).timestamp).getHours() > 2) {
if (
new Date(
new Date().getTime() -
JSON.parse(localStorage.getItem("SPECIALLIST")).timestamp
).getHours() > 2
) {
this.getJobSpecialList().then((res) => {
this.specialList = res;
this.specialList.forEach((item) => {
@ -937,7 +1122,11 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
this.specialHotTag.push(item);
}
});
@ -948,7 +1137,9 @@ export default {
});
});
} else {
this.specialList = JSON.parse(localStorage.getItem("SPECIALLIST")).data;
this.specialList = JSON.parse(
localStorage.getItem("SPECIALLIST")
).data;
this.specialList.forEach((item) => {
if (item.typeClassify == "0") {
this.tagArray0.push(item);
@ -961,7 +1152,11 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
this.specialHotTag.push(item);
}
});
@ -986,7 +1181,11 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
this.specialHotTag.push(item);
}
});
@ -1006,7 +1205,7 @@ export default {
} else {
this.formvalue.signType = this.signType = "";
}
this.formvalue.pageNum = 1
this.formvalue.pageNum = 1;
this.getJobList();
},
async getJobSpecialList() {
@ -1162,7 +1361,10 @@ export default {
this.filterObj.gender = "";
this.formvalue.sex = "";
} else {
this.filterObj.specialactive.splice(this.filterObj.specialactive.indexOf(items), 1);
this.filterObj.specialactive.splice(
this.filterObj.specialactive.indexOf(items),
1
);
this.specialvalue.splice(this.specialvalue.indexOf(items.id), 1);
this.formvalue.jobSpecialLabelIds = this.specialvalue;

@ -89,7 +89,10 @@
<p>覆盖华东华南华中华北西南西北6大区域</p>
</div>
<div class="right">
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/map.svg" alt="" />
<img
src="http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/map.svg"
alt=""
/>
</div>
</div>
</div>
@ -388,7 +391,8 @@ export default {
padding-top: 100px;
// padding-bottom: 96px;
height: 740px;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/cooperativeBrandBg.png") no-repeat 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/cooperativeBrandBg.png")
no-repeat 100%;
.content {
ul {
li {
@ -444,7 +448,8 @@ export default {
justify-content: center;
padding: unset;
height: 445px;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/relationUsBg.png") no-repeat 100% 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/relationUsBg.png")
no-repeat 100% 100%;
// padding-bottom: 126px;
.content {

@ -19,13 +19,19 @@
<div class="contentbody">
<div class="searchbox">
<div class="searchinput">
<a-input placeholder="请输入老乡姓名/身份证号" @keyup.enter="onSearch" @input="resetsearch" v-model="pagination.keys"
<a-input
placeholder="请输入老乡姓名/身份证号"
@keyup.enter="onSearch"
@input="resetsearch"
v-model="pagination.keys"
><i slot="prefix" class="iconfont icon-sousuo"></i>
<button slot="suffix" @click="onSearch"></button>
</a-input>
</div>
<div class="pagechange">
<button @click="showDetail('add')"><i class="iconfont icon-fangda"></i> 添加成员</button>
<button @click="showDetail('add')">
<i class="iconfont icon-fangda"></i> 添加成员
</button>
<!-- <button @click="changepage(1)"></button> -->
</div>
</div>
@ -46,22 +52,62 @@
<span slot="userName" slot-scope="text, record"
>{{ text }} <span>{{ record.tel }}</span>
</span>
<div slot="setting" class="setting" slot-scope="text, record" style="color: #f40">
<div
slot="setting"
class="setting"
slot-scope="text, record"
style="color: #f40"
>
<a @click="showDetail('detail', record)">详情</a>
<a @click="deleteMemeber(record)"></a>
</div>
</a-table>
<div class="pagecontainer">
<a-pagination :current="+pagination.pageNum" :default-current="1" :defaultPageSize="8" :total="pagination.total" @change="onChange" />
<a-pagination
:current="+pagination.pageNum"
:default-current="1"
:defaultPageSize="8"
:total="pagination.total"
@change="onChange"
/>
<div class="ant-pagination-options-quick-jumper">
<span>{{ pagination.total }}</span>跳至<input ref="pageinput" type="text" @keyup.enter="inputpageChange" @blur="inputpageChange" />
<span>{{ pagination.total }}</span>跳至<input
ref="pageinput"
type="text"
@keyup.enter="inputpageChange"
@blur="inputpageChange"
/>
</div>
</div>
</div>
<a-modal :title="modalTitle" v-model="visible" id="demo" @cancel='modalCancel' width="640px" destroyOnClose class="detailWindow">
<a-modal
:title="modalTitle"
v-model="visible"
id="demo"
@cancel="modalCancel"
width="640px"
destroyOnClose
class="detailWindow"
>
<template slot="footer" v-if="modalTitle == '新建成员'">
<button style="background-color: #fff; border-color: #d9d9d9" @click="modalCancel"></button>
<button style="background-color: #f40; color: #fff; border: none; margin-left: 16px; margin-right: 16px" @click="handleSubmit"></button>
<button
style="background-color: #fff; border-color: #d9d9d9"
@click="modalCancel"
>
取消
</button>
<button
style="
background-color: #f40;
color: #fff;
border: none;
margin-left: 16px;
margin-right: 16px;
"
@click="handleSubmit"
>
确定
</button>
</template>
<template slot="footer" v-else>
<span></span>
@ -90,9 +136,18 @@
</a-row>
</template>
<template v-else>
<a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 16 }">
<a-form
:form="form"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 16 }"
>
<a-form-item label="姓名">
<a-input v-decorator="['userName', { rules: [{ required: true, message: '' }] }]" />
<a-input
v-decorator="[
'userName',
{ rules: [{ required: true, message: '请输入姓名' }] },
]"
/>
</a-form-item>
<a-form-item label="手机号">
<a-input
@ -101,7 +156,11 @@
{
rules: [
{ required: true, message: '请输入手机号' },
{ type: 'regexp', validator: validateServiceName, message: '请输入正确的手机号' },
{
type: 'regexp',
validator: validateServiceName,
message: '请输入正确的手机号',
},
],
validateTrigger: 'submit',
},
@ -110,7 +169,14 @@
/>
</a-form-item>
<a-form-item label="角色">
<a-radio-group v-decorator="['agencyRole', { rules: [{ required: true, message: '' }] }]" :options="options" @change="groupChange" />
<a-radio-group
v-decorator="[
'agencyRole',
{ rules: [{ required: true, message: '请选择角色' }] },
]"
:options="options"
@change="groupChange"
/>
</a-form-item>
<a-row>
<a-col :span="4">权限</a-col>
@ -123,8 +189,18 @@
</template>
<script>
import { getMemberListApi, deleteMemberApi, addMemberApi } from "../../api/userinfo";
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole } from "../../utils/commonUtil";
import {
getMemberListApi,
deleteMemberApi,
addMemberApi,
} from "../../api/userinfo";
import {
formatDateYMD,
getUserApplyOrderStatusById,
getAgencyRoleTypeById,
getAgencyPermissionNameById,
getAgencyPermissionsByRole,
} from "../../utils/commonUtil";
export default {
//
@ -141,7 +217,10 @@ export default {
emptyText: () => (
<div>
<div>
<img src="https://user-images.githubusercontent.com/507615/54591670-ac0a0180-4a65-11e9-846c-e55ffce0fe7b.png" style="width:105px;height:90px;marginTop:20px" />
<img
src="https://user-images.githubusercontent.com/507615/54591670-ac0a0180-4a65-11e9-846c-e55ffce0fe7b.png"
style="width:105px;height:90px;marginTop:20px"
/>
</div>
<div style="marginBottom:20px">暂无数据</div>
</div>
@ -174,7 +253,8 @@ export default {
{ label: "管理员", value: "2" },
{ label: "成员", value: "3" },
],
permissionName: "查看职位,报名,查看报名,查看老乡,修改密码,修改手机号",
permissionName:
"查看职位,报名,查看报名,查看老乡,修改密码,修改手机号",
permission: "job:list,apply:add,apply:list,apply:user,user:pwd,user:tel",
};
},
@ -286,7 +366,9 @@ export default {
this.memberList.forEach((item) => {
console.log(item);
item.role = getAgencyRoleTypeById(item.agencyRole);
item.permission = getAgencyPermissionNameById(item.agencyPermissions);
item.permission = getAgencyPermissionNameById(
item.agencyPermissions
);
});
// this.data.forEach((item, index) => {
// // console.log(item);
@ -385,13 +467,18 @@ export default {
if (err == null) {
console.log(this.form.getFieldsValue());
try {
let { data } = await addMemberApi({ ...this.form.getFieldsValue(), agencyPermissions: this.permission });
let { data } = await addMemberApi({
...this.form.getFieldsValue(),
agencyPermissions: this.permission,
});
console.log(data);
if (data.status == 200) {
this.$message.success("新建成功");
this.visible = false;
this.permission = getAgencyPermissionsByRole(1);
this.permissionName = getAgencyPermissionNameById(this.permission);
this.permissionName = getAgencyPermissionNameById(
this.permission
);
this.getMemberList();
}
} catch (error) {

@ -102,7 +102,6 @@ const routes = [
component: () =>
import("../components/userinfo/usercenter/components/mybill.vue"),
// component: resolve => require(['../components/userinfo/usercenter/components/mybill.vue'],resolve)
},
{
path: "memberInfo",

@ -1690,15 +1690,14 @@ export function getAgeFromBirthday(bir) {
return infoObj; //返回周岁年龄
}
/**
* 代理成员角色类型
*/
export function agencyRoleTypeArray() {
let workTypeArray = [
{ id: 1, name: '创建人', value: "1", text: "创建人", checked: false },
{ id: 2, name: '管理员', value: "2", text: "管理员", checked: false },
{ id: 3, name: '成员', value: "3", text: "成员", checked: false },
{ id: 1, name: "创建人", value: "1", text: "创建人", checked: false },
{ id: 2, name: "管理员", value: "2", text: "管理员", checked: false },
{ id: 3, name: "成员", value: "3", text: "成员", checked: false },
];
return workTypeArray;
}
@ -1708,7 +1707,7 @@ export function getAgeFromBirthday(bir) {
export function getAgencyRoleTypeById(id) {
let str = "";
let array = agencyRoleTypeArray();
array.forEach(item => {
array.forEach((item) => {
if (item.id == id) {
str = item.name;
}
@ -1722,15 +1721,63 @@ export function getAgencyRoleTypeById(id) {
export function agencyPermissionArray() {
//查看职位、报名、查看报名、查看老乡、修改密码、修改手机号、新增成员、修改成员信息、删除成员
let workTypeArray = [
{ id: 1, name: '查看职位', value: "job:list", text: "查看职位", checked: false },
{ id: 2, name: '报名', value: "apply:add", text: "报名", checked: false },
{ id: 3, name: '查看报名', value: "apply:list", text: "查看报名", checked: false },
{ id: 4, name: '查看老乡', value: "apply:user", text: "查看老乡", checked: false },
{ id: 5, name: '修改密码', value: "user:pwd", text: "修改密码", checked: false },
{ id: 6, name: '修改手机号', value: "user:tel", text: "修改手机号", checked: false },
{ id: 7, name: '新增成员', value: "user:add", text: "新增成员", checked: false },
{ id: 8, name: '修改成员信息', value: "user:update", text: "修改成员信息", checked: false },
{ id: 9, name: '删除成员', value: "user:del", text: "删除成员", checked: false },
{
id: 1,
name: "查看职位",
value: "job:list",
text: "查看职位",
checked: false,
},
{ id: 2, name: "报名", value: "apply:add", text: "报名", checked: false },
{
id: 3,
name: "查看报名",
value: "apply:list",
text: "查看报名",
checked: false,
},
{
id: 4,
name: "查看老乡",
value: "apply:user",
text: "查看老乡",
checked: false,
},
{
id: 5,
name: "修改密码",
value: "user:pwd",
text: "修改密码",
checked: false,
},
{
id: 6,
name: "修改手机号",
value: "user:tel",
text: "修改手机号",
checked: false,
},
{
id: 7,
name: "新增成员",
value: "user:add",
text: "新增成员",
checked: false,
},
{
id: 8,
name: "修改成员信息",
value: "user:update",
text: "修改成员信息",
checked: false,
},
{
id: 9,
name: "删除成员",
value: "user:del",
text: "删除成员",
checked: false,
},
];
return workTypeArray;
}
@ -1743,7 +1790,7 @@ export function getAgencyPermissionNameById(permissionStr) {
let array = agencyPermissionArray();
let names = [];
let permissions = permissionStr.split(",");
array.forEach(item => {
array.forEach((item) => {
if (permissions.indexOf(item.value) >= 0) {
names.push(item.name);
}
@ -1761,4 +1808,3 @@ export function getAgencyPermissionsByRole(role) {
return "job:list,apply:add,apply:list,apply:user,user:pwd,user:tel";
}
}

@ -94,7 +94,7 @@ module.exports = {
resolve: {
alias: {
"@": resolve("src"),
'@ant-design/icons/lib/dist.$': resolve('src/icons.js')
"@ant-design/icons/lib/dist.$": resolve("src/icons.js"),
},
},
// plugins: [
@ -135,7 +135,9 @@ module.exports = {
name(module) {
// get the name. E.g. node_modules/packageName/not/this/part.js
// or node_modules/packageName
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
const packageName = module.context.match(
/[\\/]node_modules[\\/](.*?)([\\/]|$)/
)[1];
// npm package names are URL-safe, but some servers don't like @ symbols
return `npm.${packageName.replace("@", "")}`;
},

Loading…
Cancel
Save