# Conflicts:
#	package-lock.json
cyl/dev
zsk 1 year ago
commit 3ac6b4fe72

@ -1,4 +1,11 @@
## yishoudan ## 伯才供应链
```
访问网址https://ibocai.cn
FTP文件夹
1webapp/yishoudan
2删除并重新上传staticindex.htmlfavicon.ico
```

@ -8,7 +8,7 @@
<script> <script>
import zhCn from "ant-design-vue/lib/locale-provider/zh_CN"; import zhCn from "ant-design-vue/lib/locale-provider/zh_CN";
let sp = document.createElement('script') let sp = document.createElement('script')
sp.src = '//at.alicdn.com/t/c/font_3135652_34tw0b78y6p.js' sp.src = '//at.alicdn.com/t/c/font_3135652_w51b50q5ata.js'
document.body.appendChild(sp) document.body.appendChild(sp)
export default { export default {
provide() { provide() {
@ -66,6 +66,7 @@ body {
position: inherit !important; position: inherit !important;
width: auto !important; width: auto !important;
overflow: revert !important; overflow: revert !important;
background-color: #f0f0f0 !important;
} }
</style> </style>

@ -0,0 +1,287 @@
<template>
<div class="recommend-container">
<div class="recommendposition">
<!-- :class="isdetail ? 'showborder' : ''" -->
<h1 class="bottombox g_flex_row_between g_pl_16 g_pr_16" style="padding-left: 16px;padding-right: 16px;">
<div>
<i>代理佣金</i>
</div>
<div class="g_flex_column_center" @click="isSee = !isSee" style="cursor: pointer;">
<i class="iconfont icon-zhengyan11" style="font-size: 22px;color: #ff4400;line-height: 0.1;" v-if="isSee"></i>
<i class="iconfont icon-biyan11" style="font-size: 22px;color: #ff4400;line-height: 0.1;margin-top: -4px;" v-if="!isSee"></i>
</div>
</h1>
<div style="text-align: center">
<a-spin tip="加载中..." :spinning="isspinning"></a-spin>
</div>
<div class="jobBox" v-if="false">
<div class="jobinfobox" v-for="(item, index) in relationList" :key="index">
<router-link target="_blank" :to="'/detail?id=' + item.id +'&jobClassify='+item.jobClassify" @click.prevent="resetpage">
<!-- <a href="javascript:;" > -->
<!-- <div class="imgbox">
<img v-if="item.logo" :src="item.logo" alt />
<img v-else src="../../../../static/img/nopicture.png" alt />
<span>服务费{{ item.servetype }}</span>
</div> -->
<div class="jobname">{{item.jobName || '-' }}</div>
<span style=" padding: 0 10px;
height: 20px;
background: #ff4400;
border-radius: 16px;
font-size: 12px;
font-weight: 500;
text-align: center;
color: #ffffff;
line-height: 20px;">服务费{{ item.servetype }}</span>
<!-- </a> -->
</router-link>
<div class="jobinfo">
<span>{{ item.district }}</span>
<span>{{ item.gender }}</span>
<span>{{ item.age }}</span>
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<span v-for="(item1, index) in item.jobSpecialLabelNames" :key="index">{{ item1 }}</span>
</div>
<div class="jobprice" v-html="
getSalaryClassifyValue(
item.salaryClassify,
item.salaryClassifyValue
)
">
<!-- <template v-if="item.hourlyPay"
><span>{{ item.hourlyPayTemp / 100 }}</span
>/小时</template
>
<template v-else-if="item.dayPay"
><span>{{ item.hourlyPayTemp / 100 }}</span
>/</template
>-->
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { disposeJobListData, getSalaryClassifyValue } from '../../../utils/commonUtil'
import {
JobListApi,
// getCityApi,
} from '../../../api/job'
export default {
inject: ['reload'],
//
name: '',
//
components: {},
//
props: {},
//
data() {
return {
isSee:true,
isspinning: false,
isdetail: false,
relationList: [],
}
},
//
computed: {},
//
watch: {},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
this.getRecommendJob()
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
// console.log(this.$route.fullPath);
if (this.$route.fullPath.indexOf('detail') > -1) {
this.isdetail = true
}
console.log(this.isdetail)
},
//
methods: {
async getRecommendJob() {
this.isspinning = true
try {
const { data } = await JobListApi({
pageNum: 1,
pageSize: 3,
jobCategory: 608,
})
console.log(data)
this.relationList = disposeJobListData(data.data.recordList)
console.log(this.relationList)
// this.relationList.forEach((item) => {
// item.age = ''
// })
// this.$emit("update:relationList", this.relationList);
} catch (error) {
console.log(error)
}
this.isspinning = false
},
resetpage() {
console.log(1)
setTimeout(() => {
this.reload()
document.body.scrollTop = 0
document.documentElement.scrollTop = 0
}, 1000)
},
getSalaryClassifyValue(salaryClassify, salaryClassifyValue) {
return getSalaryClassifyValue(salaryClassify, salaryClassifyValue)
},
},
}
</script>
<style scoped lang="less">
.showborder {
border: 1px solid rgba(77, 87, 94, 0.1);
}
.recommendposition {
// width: 270px;
// height: 1008px;
overflow: hidden;
background: #ffffff;
border-radius: 6px;
// padding: 0px 20px 0px 20px;
h1 {
// margin-bottom: 12px;
font-size: 16px;
text-align: left;
&::after {
// display: none;
}
i {
display: inline-block;
line-height: 20px;
// border-bottom: 2px solid #1890ff;
// padding: 6px 0;
}
span {
display: inline-block;
vertical-align: middle;
margin-top: -4px;
width: 4px;
height: 20px;
margin-right: 8px;
background: #1890ff;
}
}
.jobBox {
padding: 16px 20px 0 20px;
border-radius: 0 0 6px 6px;
overflow: hidden;
.jobinfobox:last-of-type {
border-bottom: none;
}
.jobinfobox {
// width: 240px;
// height: 298px;
// margin-bottom: 16px;
background: #ffffff;
// border: 1px solid rgba(77, 87, 94, 0.1);
border-radius: 4px;
// padding: 20px;
border-bottom: 1px solid #f2f0ec;
margin-bottom: 10px;
.imgbox {
width: 200px;
height: 200px;
position: relative;
img {
width: 100%;
height: 100%;
border-radius: 6px;
}
span {
position: absolute;
// width: 118px;
padding: 0 10px;
height: 20px;
left: 0;
bottom: 0;
background: #1890ff;
border-radius: 16px 16px 16px 0px;
font-size: 12px;
font-weight: 500;
text-align: center;
color: #ffffff;
line-height: 20px;
}
}
.jobname {
// height: 45px;
// margin: 12px 0;
font-size: 18px;
font-weight: bold;
text-align: left;
color: #4d575e;
line-height: 18px;
margin-bottom: 8px;
// margin-top: 16px;
// border-bottom: 1px solid #f2f0ec;
}
.jobinfo {
margin-top: 8px;
font-size: 14px;
font-weight: 400;
text-align: left;
color: #999;
line-height: 18px;
}
.jobtag {
margin-top: 12px;
text-align: left;
// span:first-child {
// color: #1890ff;
// background: rgba(254, 97, 0, 0.1);
// }
span {
margin-right: 12px;
font-size: 14px;
padding: 2px 5px;
background: rgba(51, 51, 51, 0.06);
border-radius: 4px;
}
span:nth-of-type(n + 3) {
display: none;
}
}
/deep/ .jobprice {
margin-top: 8px;
margin-bottom:8px;
font-size: 14px;
text-align: left;
color: #ff4400;
line-height: 18px;
font-weight: 600;
span {
font-weight: 600 !important;
}
i {
font-size: 18px;
line-height: 28px;
}
}
}
}
}
</style>

@ -1,7 +1,8 @@
<template> <template>
<div class="detail-container"> <div class="detail-container">
<div style="height: 56px"></div>
<!-- 面包屑 --> <!-- 面包屑 -->
<a-breadcrumb class="w"> <a-breadcrumb class="w" style="width: 960px; min-width: 960px">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link to="/main"> <router-link to="/main">
<a-icon type="home" /> <a-icon type="home" />
@ -9,135 +10,118 @@
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item href> <a-breadcrumb-item href>
<a @click="toList"> <a @click="toList">
<span>{{ "伯才职位" }}</span> <span>{{ "职位列表" }}</span>
</a> </a>
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item href> <a-breadcrumb-item href>
<span style="color: #333">{{ from == "vocational" ? "详情" : "职位详情" }}</span> <span style="color: #333">{{ "职位详情" }}</span>
</a-breadcrumb-item> </a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb>
<!-- 主体区域 --> <!-- 主体区域 -->
<div class="maincontent w"> <div class="maincontent w g_flex_row_between">
<!-- 职教 --> <div class="m-money-obj g_mb_20 g_p_20 g_flex_row_between" style="background-color: #fff; border-radius: 6px; width: 800px; margin: 0 auto 20px" v-if="false">
<div class="maincontentleft" v-if="from == 'vocational'"> <div class="g_flex_row_start">
<div class="subset"> <div style="font-size: 16px; font-weight: 600; margin-right: 4px">代理佣金</div>
<a-skeleton avatar active class="skeleton1" v-show="skeletonshow" :paragraph="{ rows: 4 }" /> <div class="g_flex_column_center" @click="isSee = !isSee" style="cursor: pointer">
<div class="subsetleft" v-show="!skeletonshow"> <i class="iconfont icon-zhengyan11" style="font-size: 22px; color: #ff4400; line-height: 0.1" v-if="isSee"></i>
<div class="info"> <i class="iconfont icon-biyan11" style="font-size: 22px; color: #ff4400; line-height: 0.1; margin-top: -4px" v-if="!isSee"></i>
<!-- <div class="imgbox">
<img v-if="jobDetail.logo" :src="jobDetail.logo" alt />
<div v-else class="default_avatar">{{ jobDetail.vocationalName }}</div>
</div> -->
<div class="jobinfobox">
<div>
<div class="jobname">{{ jobDetail.vocationalName }}</div>
<div class="jobinfo">
<span>{{ jobDetail.district || "河南省 | 郑州市 | 16-35岁" }}</span>
<!-- <span>{{ jobDetail.district }}</span>
<span>{{ jobDetail.gender }}</span>
<span>{{ jobDetail.age }}</span> -->
</div>
<div class="jobpricemonth" style="margin-top: 12px">
<span style="color: #ff4d4f; background: rgba(255, 77, 79, 0.1); padding: 1px 6px"> 工作薪资{{ jobDetail.salary }} </span>
</div>
</div>
<div style="margin-top: 8px; font-size: 14px; font-weight: normal; text-align: left; color: #1890ff; font-weight: 600">
<span class="" style="font-size: 24px">学费{{ jobDetail.tuition }}</span>
<span style="font-size: 16px"> | 课期{{ jobDetail.semester }}</span>
</div>
</div>
</div>
<div class="swiperBox">
<div id="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in [...vocationalImgList]" :key="index">
<img :src="item" alt v-if="isImg(item)" @click="showImage(index)" style="cursor: pointer" />
<div v-if="!isImg(item)">
<div style="position: absolute; width: 78px; height: 78px; left: 0; top: 0; z-index: 99; background-color: transparent; cursor: pointer" @click.stop="handlePreview(item)"></div>
<video class="imgSpan" style="width: 80px; height: 45px" controls>
<source :src="item" type="video/mp4" />
<source :src="item" type="video/ogg" />
您的浏览器不支持 HTML5 video 标签
</video>
</div>
</div>
</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<a-modal :visible="previewVisible" wrapClassName="spic" centered :footer="null" @cancel="handleCancel">
<video style="width: 100%; max-height: calc(100vh - 40px)" id="movie" autoplay :src="previewImage" controls="controls" />
</a-modal>
</div>
<div class="subsetright">
<div class="topbox">
<div>服务费</div>
<div>
<span>{{ jobDetail.serviceCharge }}</span>
</div>
</div>
<div class="sub-bottombox">
<!-- <button type="primary" class="jobDespBtn">
<a :href="customServiceUrl" target="_blank"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
</button> -->
<button class="dropdown bottombox1" @click="showRecord"></button>
<!-- <button class="norecruitment bottombox1" v-else></button> -->
</div>
</div> </div>
</div> </div>
<div style="padding: 0 16px"> <div class="g_flex_row_end" @click="viewDetail" style="cursor: pointer">
<div class="" style="color: #333; font-size: 20px; font-weight: 600; margin: 32px 0 16px">职教描述</div> <div class="g_flex_column_center g_fs_14">
<div class="c7" style="white-space: pre-line; font-size: 16px"> <span v-if="isSee">
{{ jobDetail.desp }} {{ jobDetail.servetype }}
</span>
<span v-if="!isSee"> *** </span>
</div>
<div class="g_flex_column_center">
<i class="iconfont icon-xiangyou1"></i>
</div> </div>
</div> </div>
</div> </div>
<!-- 非职教 --> <!-- 非职教 -->
<div class="maincontentleft" v-else> <div class="maincontentleft">
<div class="mask" v-if="!(jobDetail.recruitment == '1')"></div> <div class="mask" v-if="!(jobDetail.recruitment == '1')"></div>
<div class="subset"> <div class="subset">
<a-skeleton avatar active class="skeleton1" v-show="skeletonshow" :paragraph="{ rows: 4 }" /> <a-skeleton avatar active class="skeleton1" v-show="skeletonshow" :paragraph="{ rows: 4 }" />
<div class="subsetleft" v-show="!skeletonshow"> <div class="subsetleft" v-show="!skeletonshow" style="border-bottom: 1px solid rgb(237, 237, 237);padding-bottom: 20px;">
<div class="info"> <div class="info">
<!-- <div class="imgbox"> <!-- <div class="imgbox">
<img v-if="jobDetail.logo || store.logo" :src="jobDetail.logo || store.logo" alt /> <img v-if="jobDetail.logo || store.logo" :src="jobDetail.logo || store.logo" alt />
<img v-else src="../../../static/img/nopicture.png" alt /> <img v-else src="../../../static/img/nopicture.png" alt />
</div> --> </div> -->
<div class="jobinfobox"> <div class="jobinfobox">
<div class="jobname">{{ jobDetail.jobName }} <div class="g_flex_row_between">
<span class="hotTag" v-if="jobDetail.hotJob == 1"> <div class="jobname">
{{ jobDetail.jobName }}
<span class="hotTag" v-if="jobDetail.hotJob == 1">
<i class="iconfont icon-dianzan1 mr0" style="font-size: 12px"></i> <i class="iconfont icon-dianzan1 mr0" style="font-size: 12px"></i>
主推 主推
</span> </span>
</div> </div>
<div style="color: #a1a1a1; font-size: 14px; margin-left: 15px">{{ jobDetail.up_time }}</div>
</div>
<div class="jobinfo"> <div class="jobinfo">
<span>{{ jobDetail.storeAddr }} </span> <span>{{ jobDetail.district ? jobDetail.district + " | " : "" }} </span>
<span>{{ jobDetail.gender }}</span> <span>{{ jobDetail.gender }}</span>
<span>{{ jobDetail.age }}</span> <span>{{ jobDetail.age }}</span>
</div> </div>
<!-- <div class="jobtag"> <div class="jobtag" v-if="jobDetail && jobDetail.jobRequestLabelNames && jobDetail.jobRequestLabelNames.length > 0">
<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]" style="margin-bottom: 8px" v-for="(item, index) in jobDetail.jobRequestLabelNames" :key="index">
{{ item }}
</a-tag>
</div> </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> <a-tag :color="labelColor[1]">暂无要求</a-tag>
</div> </div> -->
<div class="jobtag1"> <!-- <div class="jobtag1">
<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>
<div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag"> <div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag">
<a-tag style="background-color: #f5f5f5">暂无特色</a-tag> <a-tag style="background-color: #f5f5f5">暂无特色</a-tag>
</div> --> </div> -->
<div style="display: flex; align-items: center; height: 26px; margin-top: 16px"> <div class="g_flex_row_between g_mt_12">
<div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)"></div> <div style="display: flex; align-items: center; height: 26px; margin-top: 8px">
<span style="font-size: 16px">&nbsp;&nbsp;|&nbsp;&nbsp;</span> <div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)"></div>
<div class="jobpricemonth"> <span style="font-size: 16px">&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<span>{{ jobDetail.minMonthlyPay/100 }}</span <div class="jobpricemonth">
>-<span>{{ jobDetail.maxMonthlyPay/100 }}</span <span>{{ jobDetail.minMonthlyPay / 100 }}</span
>/ >-<span>{{ jobDetail.maxMonthlyPay / 100 }}</span
>/
</div>
</div>
<div class="sub-bottombox fss">
<button type="primary" class="jobDespBtn g_fs_14" style="padding: 0 5px; width: 100px">
<a :href="jobDetail.customServiceUrl || 'javascript:;'" target="_blank" v-if="jobDetail.customServiceUrl">
<a-icon class="g_fs_14" type="message" />
联系客服
</a>
<a href="javascript:;" v-else @click="noCustom">
<a-icon class="g_fs_14" type="message" />
联系客服
</a>
</button>
<!-- <a-dropdown :trigger="['click']" overlayClassName="special-dropdown" v-else>
<button type="primary" class="jobDespBtn"
style="padding: 0 15px;width: 116px;"
>
<a href="javascript:;" target="_blank"
style="font-size: 14px;"
>
<i class="iconfont icon-kefu_lan mr6"></i>
联系客服
</a>
</button>
<a-menu slot="overlay" style="padding: 0 10px">
<a-menu-item v-for="(item, index) in customServiceUsers" :key="index"> <i class="iconfont icon-dianhua1 mr4 f14" style="color: #1890ff"></i>{{ item.aliasName }} {{ item.tel }} </a-menu-item>
</a-menu>
</a-dropdown> -->
<a-button class="" @click="torecord()" v-if="jobDetail.recruitment == '1'" type="primary" style="font-size: 14px;width: 100px;"></a-button>
<button class="norecruitment bottombox1" v-else></button>
</div> </div>
</div> </div>
</div> </div>
@ -167,45 +151,26 @@
</a-modal> </a-modal>
</div> </div>
<div class="subsetright"> <div class="subsetright">
<div class="topbox"> <div class="topbox" v-if="false">
<div>服务费</div> <div>服务费</div>
<div> <div>
<span>{{ jobDetail.servetype }}</span> <span>{{ jobDetail.servetype }}</span>
</div> </div>
</div> </div>
<div class="sub-bottombox fss">
<button type="primary" class="jobDespBtn" v-if="jobClassify == 1">
<a :href="jobDetail.customServiceUrl || 'javascript:;'" target="_blank" v-if="jobDetail.customServiceUrl"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
<a href="javascript:;" v-else @click="noCustom"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
</button>
<a-dropdown :trigger="['click']" overlayClassName="special-dropdown" v-else>
<button type="primary" class="jobDespBtn">
<a href="javascript:;" target="_blank"> <i class="iconfont icon-kefu_lan mr6"></i>联系客服</a>
</button>
<a-menu slot="overlay" style="padding: 0 10px">
<a-menu-item v-for="(item, index) in customServiceUsers" :key="index"> <i class="iconfont icon-dianhua1 mr4 f14" style="color: #1890ff"></i>{{ item.aliasName }} {{ item.tel }} </a-menu-item>
</a-menu>
</a-dropdown>
<button class="dropdown bottombox1" @click="torecord()" v-if="jobDetail.recruitment == '1'"></button>
<button class="norecruitment bottombox1" v-else></button>
</div>
</div> </div>
</div> </div>
<div class="jobinformationbox">
<div class="jobinformationbox" style="padding-left: 20px; padding-top: 4px">
<h1> <h1>
<div class="infotitle"> <div class="infotitle">
<span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span> <span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span>
<span @click="tabchange = 0" :class="tabchange === 0 ? 'active' : ''">财务结</span> <span @click="tabchange = 0" :class="tabchange === 0 ? 'active' : ''" v-if="false"></span>
<span @click="tabchange = 2" :class="tabchange === 2 ? 'active' : ''">职位描述</span> <span @click="tabchange = 2" :class="tabchange === 2 ? 'active' : ''">职位描述</span>
</div> </div>
</h1> </h1>
<div class="pay" id="tip" v-show="tabchange === 1"> <div class="pay" id="tip" v-show="tabchange === 1">
<div class="mb12 mt20 titlestyle">温馨提示</div> <div class="mb12 mt20 titlestyle">温馨提示</div>
<div class="showInfo" style="width: unset">{{ jobDetail.notes || "-" }}</div> <div class="showInfo" style="width: unset; color: #ff4400 !important">{{ jobDetail.notes || "-" }}</div>
</div> </div>
<div v-if="tabchange === 1" style="display: flex"> <div v-if="tabchange === 1" style="display: flex">
<!-- 薪资 --> <!-- 薪资 -->
@ -250,7 +215,6 @@
</a-descriptions-item> </a-descriptions-item>
</template> --> </template> -->
<!-- <a-descriptions-item> <!-- <a-descriptions-item>
<span slot="label" class>福利待遇</span> <span slot="label" class>福利待遇</span>
<span>{{ jobDetail.boon || "-" }}</span> <span>{{ jobDetail.boon || "-" }}</span>
@ -277,7 +241,7 @@
{{ jobDetail.minAgeWoman }}<span>{{ "- " + jobDetail.maxAgeWoman }}</span {{ jobDetail.minAgeWoman }}<span>{{ "- " + jobDetail.maxAgeWoman }}</span
> >
</span> </span>
{{jobDetail.genderRemark || ''}} {{ jobDetail.genderRemark || "" }}
</span> </span>
</a-descriptions-item> </a-descriptions-item>
<!-- <a-descriptions-item> <!-- <a-descriptions-item>
@ -365,7 +329,7 @@
<span slot="label" class>面试地点</span> <span slot="label" class>面试地点</span>
<span>{{ jobDetail.interviewAddr || "-" }}</span> <span>{{ jobDetail.interviewAddr || "-" }}</span>
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item class="test1"> <a-descriptions-item class="test1">
<span slot="label" class>面试说明</span> <span slot="label" class>面试说明</span>
<span>{{ jobDetail.interviewDesp || "-" }}</span> <span>{{ jobDetail.interviewDesp || "-" }}</span>
</a-descriptions-item> </a-descriptions-item>
@ -422,44 +386,43 @@
<div class="mb12 mt20 titlestyle">职位通告</div> <div class="mb12 mt20 titlestyle">职位通告</div>
<div class="showInfo" style="width: unset; color: #000 !important"> <div class="showInfo" style="width: unset; color: #000 !important">
<div class="copy" @click="copyText($event)"></div> <div class="copy" @click="copyText($event)"></div>
<div class="copyInfo" style="border: none; padding: 0 0; width: unset; white-space: pre-line">{{ jobDetail.jobInfo.split('————————')[0] || "-" }}</div> <div class="copyInfo" style="border: none; padding: 0 0; width: unset; white-space: pre-line">{{ jobDetail.jobInfo.split("————————")[0] || "-" }}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="maincontentright"> <div class="maincontentright">
<!-- <div class="hotphone"> <div class="card-top g_flex_row_between" style="padding-left: 16px; padding-right: 16px; font-size: 16px; background-color: #1890ff; height: 40px; border-top-left-radius: 6px; border-top-right-radius: 6px">
<h1 class="bottombox" style> <div class="g_flex_column_center">
<i>项目方</i> <i style="color: #fff; font-weight: 600">代理佣金</i>
</h1>
<template v-if="agency.supplierName == '江西人海'">
<img style="width: 60px; height: 60px; border-radius: 50%; display: block; margin: 24px auto 0" src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/renhai.jpg" alt />
</template>
<template v-else>
<img style="width: 60px; height: 60px; border-radius: 50%; display: block; margin: 24px auto 0" :src="agency.logo || 'https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/moren.svg'" alt />
</template>
<div style="color: #333">
<p class="f14" style="margin-top: 10px; margin-bottom: 0">
{{ agency.supplierName || "-" }}
</p>
</div> </div>
</div> --> <div class="g_flex_column_center" @click="isSee = !isSee" style="cursor: pointer">
<!-- <div class="companyinfo" v-if="from != 'vocational'"> <i class="iconfont icon-zhengyan11" style="font-size: 22px; color: #fff; line-height: 0.1" v-if="isSee"></i>
<div class="companydetail"> <i class="iconfont icon-biyan11" style="font-size: 22px; color: #fff; line-height: 0.1; margin-top: -4px" v-if="!isSee"></i>
<h1 class="bottombox">
<i>企业详情</i>
</h1>
</div> </div>
<div class="companylocation" style="text-align: center; padding: 0 20px 20px" v-if="positionInfo.lng || positionInfo.storeLng"> </div>
<h2 style="padding: 16px 0; font-weight: 600">{{ store.storeName || "-" }}</h2> <div class="card-bottom" style="background-color: #fff; border-bottom-right-radius: 6px; border-bottom-left-radius: 6px; padding: 16px">
<p style="padding-bottom: 20px; border-bottom: 1px solid #eee; font-size: 16px; text-indent: 16px; color: #4d575ecc; white-space: pre-line; text-align: left">{{ store.storeInfo || "-" }}</p> <div class="box" style="border-radius: 6px; border: 1px solid #ededed; min-height: 288px">
<div class="imgbox"> <div class="title g_flex_row_start" style="height: 40px; border-bottom: 1px solid #ededed; padding: 0 16px">
<GDMap :positionInfo="positionInfo"></GDMap> <div style="font-size: 14px; height: 100%; font-weight: 600" class="g_flex_column_center">佣金</div>
<div class="g_flex_column_center" style="font-size: 14px; height: 100%; color: #333">
<span v-if="isSee">
{{ jobDetail.servetype }}
</span>
<span v-if="!isSee"> *** </span>
</div>
</div>
<div class="content g_p_16">
<div class="con" style="white-space: pre-wrap; font-size: 14px; color: #333">
<span v-if="isSee">
{{ jobDetail.returnFeeDesp || "-" }}
</span>
<span v-if="!isSee"> *** </span>
</div>
</div> </div>
</div> </div>
</div> --> </div>
<recommend />
</div> </div>
</div> </div>
<recordModal :show.sync="recordShow" :jobDetail="jobDetail"></recordModal> <recordModal :show.sync="recordShow" :jobDetail="jobDetail"></recordModal>
@ -467,8 +430,8 @@
</template> </template>
<script> <script>
import { getJobDetailApi } from "../../api/job"; import { getJobDetailApi } from "../../api/job";
import { disposeJobListData, getSalaryClassifyValue } from "../../utils/commonUtil"; import { disposeJobListData, getSalaryClassifyValue, setJobInfoPosition } from "../../utils/commonUtil";
import recommend from "../../components/FirstJob/components/recommend.vue"; import mserve from "../../components/FirstJob/components/servre.vue";
import { nationlist } from "../../utils/datalist"; import { nationlist } from "../../utils/datalist";
import { getUserManagerApi } from "../../api/userinfo"; import { getUserManagerApi } from "../../api/userinfo";
import "swiper/dist/css/swiper.css"; import "swiper/dist/css/swiper.css";
@ -513,7 +476,7 @@ export default {
name: "", name: "",
// //
components: { components: {
recommend, mserve,
GDMap, GDMap,
recordModal, recordModal,
// GDMap // GDMap
@ -524,6 +487,7 @@ export default {
// //
data() { data() {
return { return {
isSee: true,
agency: {}, agency: {},
onSiteUsersInfo: "", onSiteUsersInfo: "",
customServiceUsers: [], customServiceUsers: [],
@ -573,7 +537,6 @@ export default {
customServiceUrl: "", // customServiceUrl: "", //
from: null, // from: null, //
recordShow: false, recordShow: false,
vocationalImgList: ["https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job1.png", "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job2.png", "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job3.png", "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job4.png", "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job5.png", "https://matripe-cms.oss-cn-beijing.aliyuncs.com/zhijiao/job6.png"],
zhijiaoList: [ zhijiaoList: [
// //
{ {
@ -759,9 +722,9 @@ export default {
console.log("PAGE_TYPE", JSON.parse(sessionStorage.getItem("PAGE_TYPE"))); console.log("PAGE_TYPE", JSON.parse(sessionStorage.getItem("PAGE_TYPE")));
} }
if(this.$route.query.jobClassify){ if (this.$route.query.jobClassify) {
this.jobClassify = this.$route.query.jobClassify this.jobClassify = this.$route.query.jobClassify;
} }
if (this.$route.query.id) { if (this.$route.query.id) {
this.id = this.$route.query.id; this.id = this.$route.query.id;
} }
@ -830,9 +793,9 @@ export default {
}, },
// //
methods: { methods: {
noCustom() { noCustom() {
this.$message.error('此职位暂未接入客服'); this.$message.error("此职位暂未接入客服");
}, },
async getJobDetail() { async getJobDetail() {
console.log("this.id", this.id); console.log("this.id", this.id);
try { try {
@ -857,7 +820,7 @@ export default {
this.positionInfo.desc = this.positionInfo.detailPosition; this.positionInfo.desc = this.positionInfo.detailPosition;
this.positionInfo.containerName = "mapContainer"; this.positionInfo.containerName = "mapContainer";
this.positionInfo.name = this.positionInfo.aliasName; this.positionInfo.name = this.positionInfo.aliasName;
this.jobDetail.district = disposeJobListData(data.data.store).district; this.jobDetail.district = setJobInfoPosition(disposeJobListData(data.data.store).district);
} else { } else {
this.positionInfo = data.data.record; this.positionInfo = data.data.record;
this.store = data.data.record; this.store = data.data.record;
@ -866,7 +829,8 @@ export default {
this.positionInfo.name = this.positionInfo.storeName; this.positionInfo.name = this.positionInfo.storeName;
this.positionInfo.lat = this.positionInfo.storeLat; this.positionInfo.lat = this.positionInfo.storeLat;
this.positionInfo.lng = this.positionInfo.storeLng; this.positionInfo.lng = this.positionInfo.storeLng;
this.jobDetail.district = this.positionInfo.storeDistrict; this.jobDetail.district = setJobInfoPosition(this.positionInfo.storeDistrict);
console.log("this.jobDetail", this.jobDetail);
} }
if (data.data.onSiteUsers) { if (data.data.onSiteUsers) {
this.onSiteUsersInfo = data.data.onSiteUsers.map((item) => `${item.aliasName} ${item.tel}`).join(", "); this.onSiteUsersInfo = data.data.onSiteUsers.map((item) => `${item.aliasName} ${item.tel}`).join(", ");
@ -922,7 +886,7 @@ export default {
} }
}); });
} }
this.jobDetail.up_time = this.timeShowXXX2(this.jobDetail.updateTime);
this.storeImage = [...storeImage, ...storeVideo]; this.storeImage = [...storeImage, ...storeVideo];
console.log("this.storeImage", this.storeImage); console.log("this.storeImage", this.storeImage);
} else { } else {
@ -936,6 +900,27 @@ export default {
console.log(error); console.log(error);
} }
}, },
timeShowXXX2(val) {
const now = Date.now();
const diff = now - val;
const seconds = Math.floor(diff / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
if (days < 2) {
if (hours > 0) {
return `${hours}小时前`;
} else if (minutes > 0) {
return `${minutes}分钟前`;
} else {
return `${seconds}秒前`;
}
} else {
return `${days}天前`;
}
},
/** /**
* 获取登录人对应的客户经理信息 * 获取登录人对应的客户经理信息
*/ */
@ -1038,21 +1023,13 @@ export default {
showImage(idx, type) { showImage(idx, type) {
var that = this; var that = this;
console.log(that.storeImage); console.log(that.storeImage);
if (this.from == "vocational") { that.storeImage.forEach((item, index) => {
that.vocationalImgList.forEach((item, index) => { if (that.isImg(item)) {
if (that.isImg(item)) { that.imgList.push(item);
that.imgList.push(item);
}
});
} else {
that.storeImage.forEach((item, index) => {
if (that.isImg(item)) {
that.imgList.push(item);
}
});
if (type == "logo") {
that.imgList.unshift(that.jobDetail.logo || that.jobDetail.store.logo);
} }
});
if (type == "logo") {
that.imgList.unshift(that.jobDetail.logo || that.jobDetail.store.logo);
} }
this.$viewerApi({ this.$viewerApi({
@ -1086,7 +1063,7 @@ export default {
toList() { toList() {
// //
this.$router.push({ this.$router.push({
path: this.from == "vocational" ? "/list?type=vocational" : "/list?", path: "/list",
// query: { // query: {
// pagenum: this.currentPageNum || "", // pagenum: this.currentPageNum || "",
// }, // },
@ -1096,6 +1073,16 @@ export default {
this.previewImage = file; this.previewImage = file;
this.previewVisible = true; this.previewVisible = true;
}, },
viewDetail() {
let that = this;
console.log("ces", that.jobDetail.returnFeeDesp);
const h = this.$createElement;
this.$info({
title: that.jobDetail.returnFeeDesp || "-",
onOk() {},
});
},
}, },
}; };
</script> </script>
@ -1113,6 +1100,7 @@ export default {
} }
.detail-container { .detail-container {
background-color: #f0f0f0;
// overflow: hidden; // overflow: hidden;
// border-top: 1px solid #eeefef; // border-top: 1px solid #eeefef;
@ -1201,13 +1189,17 @@ export default {
// } // }
// } // }
/deep/ .maincontent { /deep/ .maincontent {
display: flex; // display: flex;
justify-content: space-between; // justify-content: space-between;
margin-top: 12px; margin-top: 12px;
.maincontentleft { .maincontentleft {
width: 704px; width: 640px;
margin-right: 16px;
text-align: left; text-align: left;
background-color: #ffffff;
border-radius: 6px;
// margin: 0 auto;
overflow: hidden;
margin-bottom: 20px;
.subset { .subset {
padding: 20px; padding: 20px;
// margin-bottom: 16px; // margin-bottom: 16px;
@ -1215,7 +1207,7 @@ export default {
background-color: #fff; background-color: #fff;
// height: 302px; // height: 302px;
border-radius: 6px; border-radius: 6px;
border: 1px solid #ededed; // border: 1px solid #ededed;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.subsetleft { .subsetleft {
@ -1289,37 +1281,38 @@ export default {
.jobinfobox { .jobinfobox {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 600px;
justify-content: space-between; justify-content: space-between;
// .hotTag { // .hotTag {
// display: flex; // display: flex;
// line-height: 44px; // line-height: 44px;
// margin-left: 18px; // margin-left: 18px;
// div { // div {
// font-size: 14px; // font-size: 14px;
// } // }
// li { // li {
// margin-right: 12px; // margin-right: 12px;
// color: #ff6a00; // color: #ff6a00;
// font-size: 14px; // font-size: 14px;
// cursor: pointer; // cursor: pointer;
// } // }
// > .active { // > .active {
// text-decoration: underline; // text-decoration: underline;
// } // }
// } // }
.hotTag { .hotTag {
background-color: #1890ff; background-color: #1890ff;
color: #fff;
font-size: 12px;
padding: 2px 4px;
border-radius: 2px;
position: relative;
top: -3px;
i {
margin-right: 4px;
color: #fff; color: #fff;
font-size: 12px;
padding:2px 4px;
border-radius: 2px;
position: relative;
top: -3px;
i {
margin-right: 4px;
color: #fff;
}
} }
}
.jobname { .jobname {
// margin: 12px 0; // margin: 12px 0;
font-size: 20px; font-size: 20px;
@ -1343,6 +1336,9 @@ export default {
.jobtag1 { .jobtag1 {
margin-top: 12px; margin-top: 12px;
text-align: left; text-align: left;
max-width: 80%;
overflow: hidden;
height: 34px;
// span:first-child { // span:first-child {
// color: #1890ff; // color: #1890ff;
// background: rgba(254, 97, 0, 0.1); // background: rgba(254, 97, 0, 0.1);
@ -1371,6 +1367,7 @@ export default {
text-align: left; text-align: left;
color: #666; color: #666;
line-height: 26px; line-height: 26px;
margin-top: 6px;
} }
.jobpricehour { .jobpricehour {
// margin-top: 16px; // margin-top: 16px;
@ -1437,48 +1434,7 @@ export default {
} }
} }
} }
} .sub-bottombox {
.subsetright {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
.topbox {
width: 116px;
height: 54px;
text-align: center;
overflow: hidden;
border-radius: 4px;
line-height: 30px;
div {
// font-weight: normal;
font-size: 16px;
span:first-of-type {
font-size: 20px;
// font-weight: normal;
}
}
div:first-child {
height: 24px;
background: #ff4400;
line-height: 21px;
font-size: 14px;
color: #ffffff;
border: 1px solid #ff4400;
border-radius: 4px 4px 0px 0px;
}
div:last-child {
font-weight: normal;
background-color: #ff6a001a;
color: #ff4400;
font-size: 18px;
span:last-child {
font-size: 16px;
}
}
}
.sub-bottombox {
font-size: 16px; font-size: 16px;
.bottombox1 { .bottombox1 {
@ -1499,10 +1455,10 @@ export default {
} }
} }
.jobDespBtn { .jobDespBtn {
width: 116px; // width: 116px;
height: 32px; height: 32px;
line-height: 30px; line-height: 30px;
font-size: 16px; font-size: 14px;
margin-right: 20px; margin-right: 20px;
// border: 1px solid rgba(77, 87, 94, 0.3); // border: 1px solid rgba(77, 87, 94, 0.3);
border-radius: 4px; border-radius: 4px;
@ -1534,6 +1490,48 @@ export default {
} }
} }
} }
.subsetright {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
.topbox {
width: 116px;
height: 54px;
text-align: center;
overflow: hidden;
border-radius: 4px;
line-height: 30px;
div {
// font-weight: normal;
font-size: 16px;
span:first-of-type {
font-size: 20px;
// font-weight: normal;
}
}
div:first-child {
height: 24px;
background: #ff4400;
line-height: 21px;
font-size: 14px;
color: #ffffff;
border: 1px solid #ff4400;
border-radius: 4px 4px 0px 0px;
}
div:last-child {
font-weight: normal;
background-color: #ff6a001a;
color: #ff4400;
font-size: 18px;
span:last-child {
font-size: 16px;
}
}
}
}
} }
.proxy { .proxy {
margin-bottom: 16px; margin-bottom: 16px;
@ -1544,7 +1542,7 @@ export default {
} }
.jobinformationbox, .jobinformationbox,
.proxy { .proxy {
width: 704px; width: 620px;
// border: 1px solid #eeefef; // border: 1px solid #eeefef;
overflow: hidden; overflow: hidden;
border-radius: 4px; border-radius: 4px;
@ -1576,10 +1574,12 @@ export default {
border-bottom: none; border-bottom: none;
cursor: pointer; cursor: pointer;
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
font-size: 16px;
color: #333;
} }
.active { .active {
background-color: #fafafa; background-color: #fafafa;
// font-weight: bold;0 font-weight: bold;
color: #1890ff; color: #1890ff;
} }
} }
@ -1673,7 +1673,7 @@ export default {
} }
.baseInfoContent { .baseInfoContent {
width: 748px; width: 600px;
> div { > div {
> div:first-child { > div:first-child {
font-size: 16px; font-size: 16px;
@ -1732,12 +1732,13 @@ export default {
.maincontentright { .maincontentright {
// position: sticky; // position: sticky;
// top: 0; // top: 0;
width: 240px; width: 300px;
> div { > div {
margin-bottom: 16px; // margin-bottom: 16px;
// padding: 16px;
} }
.jobDetailInfo { .jobDetailInfo {
width: 240px; width: 300px;
overflow: hidden; overflow: hidden;
// height: 114px; // height: 114px;
// padding: 0 20px 0px 20px; // padding: 0 20px 0px 20px;
@ -1765,7 +1766,7 @@ export default {
.hotphone { .hotphone {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
width: 240px; width: 300px;
height: 200px; height: 200px;
// height: 114px; // height: 114px;
// padding: 0 20px 20px 20px; // padding: 0 20px 20px 20px;
@ -1850,7 +1851,7 @@ export default {
} }
.leftDesc { .leftDesc {
.ant-descriptions-view { .ant-descriptions-view {
width: 640px; width: 600px;
border-radius: 6px; border-radius: 6px;
// border: 0 !important; // border: 0 !important;
} }

File diff suppressed because it is too large Load Diff

@ -1,5 +1,6 @@
<template> <template>
<div class="recordBill-container f40 w"> <div class="recordBill-container f40 w baoming-obj" style="width: 800px;min-width: 800px;">
<div class="g_h_56"></div>
<!-- 面包屑 --> <!-- 面包屑 -->
<a-breadcrumb class="w"> <a-breadcrumb class="w">
<a-breadcrumb-item href> <a-breadcrumb-item href>
@ -9,7 +10,7 @@
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item href> <a-breadcrumb-item href>
<a @click="toList"> <a @click="toList">
<span>伯才职位</span> <span>职位列表</span>
</a> </a>
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item> <a-breadcrumb-item>
@ -131,7 +132,7 @@
/>--> />-->
<div v-if="fileList.length == 0" style="display: flex; justify-content: center; align-items: center" class="nloding"> <div v-if="fileList.length == 0" style="display: flex; justify-content: center; align-items: center" class="nloding">
<a-icon type="plus" /> <a-icon type="plus" />
<div class="ant-upload-text">拖拽上传</div> <div class="ant-upload-text" style="font-size: 14px;">拖拽上传</div>
</div> </div>
</a-upload> </a-upload>
<div v-if="loading" style="display: flex; justify-content: center; align-items: center" class="uploading"> <div v-if="loading" style="display: flex; justify-content: center; align-items: center" class="uploading">
@ -1254,7 +1255,7 @@ export default {
text-align: left; text-align: left;
.ant-form { .ant-form {
width: 640px; width: 560px;
} }
} }
@ -1265,7 +1266,7 @@ export default {
margin-top: 12px; margin-top: 12px;
> div { > div {
margin-left: 107px; margin-left: 93px;
display: flex; display: flex;
justify-content: start; justify-content: start;
@ -1342,11 +1343,12 @@ export default {
.idCardUpload { .idCardUpload {
// //
position: relative; position: relative;
margin-top: 4px;
.icon-guanbi { .icon-guanbi {
position: absolute; position: absolute;
top: -3px; top: -6px;
right: 52px; right: 36px;
height: 16px; height: 16px;
width: 16px; width: 16px;
text-align: center; text-align: center;
@ -1371,7 +1373,7 @@ export default {
/deep/ .ant-upload-picture-card-wrapper { /deep/ .ant-upload-picture-card-wrapper {
width: 100px !important; width: 100px !important;
height: 40px !important; height: 32px !important;
// border: 1px solid #ddd !important; // border: 1px solid #ddd !important;
// box-sizing: border-box; // box-sizing: border-box;
@ -1379,14 +1381,15 @@ export default {
.ant-upload-list-item, .ant-upload-list-item,
.ant-upload-list-picture-card-container { .ant-upload-list-picture-card-container {
width: 100px !important; width: 100px !important;
height: 40px !important; height: 32px !important;
min-width: 100px !important; min-width: 100px !important;
min-height: 40px !important; min-height: 32px !important;
font-size: 12px; font-size: 12px;
padding: 0; padding: 0;
border-color: #dddddd !important; border-color: #dddddd !important;
box-sizing: border-box; box-sizing: border-box;
border-radius: 0px; border-radius: 0px;
// margin-top: 4px !important;
&:hover { &:hover {
border-color: #1890ff !important; border-color: #1890ff !important;
@ -1415,9 +1418,9 @@ export default {
.ant-upload-list-item-uploading-text { .ant-upload-list-item-uploading-text {
// display: none; // display: none;
text-align: center !important; text-align: center !important;
line-height: 40px !important; line-height: 32px !important;
width: 100px !important; width: 100px !important;
height: 40px !important; height: 32px !important;
margin-top: 0; margin-top: 0;
// overflow: hidden; // overflow: hidden;
} }
@ -1441,7 +1444,7 @@ export default {
.uploading { .uploading {
position: absolute; position: absolute;
width: 98px !important; width: 98px !important;
height: 38px !important; height: 32px !important;
top: 1px; top: 1px;
left: -49px; left: -49px;
background-color: #f5f5f5; background-color: #f5f5f5;
@ -1478,7 +1481,7 @@ export default {
.ant-form-item-children { .ant-form-item-children {
.pzbox { .pzbox {
// display: flex !important; // display: flex !important;
color: #666; color: #000;
span { span {
display: inline-block; display: inline-block;
@ -1509,9 +1512,9 @@ export default {
.ant-input { .ant-input {
// width: 430px; // width: 430px;
height: 38px; height: 32px;
// color: rgba(77, 87, 94, 0.7); // color: rgba(77, 87, 94, 0.7);
color: #666; color: #000;
// border: none; // border: none;
border: 1px solid #dddddd; border: 1px solid #dddddd;
box-shadow: none !important; box-shadow: none !important;
@ -1525,8 +1528,8 @@ export default {
.ant-select-selection__rendered, .ant-select-selection__rendered,
.ant-select-selection--single, .ant-select-selection--single,
.ant-select { .ant-select {
height: 38px; height: 32px;
line-height: 38px; line-height: 32px;
// border: none; // border: none;
// border: 1px solid #dddddd; // border: 1px solid #dddddd;
box-shadow: none !important; box-shadow: none !important;
@ -1538,8 +1541,8 @@ export default {
} }
.ant-select-selection-selected-value { .ant-select-selection-selected-value {
line-height: 37px; line-height: 32px;
color: #666; color: #000;
} }
&:hover { &:hover {
@ -1597,6 +1600,7 @@ export default {
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
line-height: 2; line-height: 2;
color: #000;
} }
.openContral { .openContral {
@ -1896,4 +1900,13 @@ export default {
.policyRadios { .policyRadios {
flex-wrap: wrap; flex-wrap: wrap;
} }
.baoming-obj{
.ant-form-item .ant-input{
height: 32px !important;
}
.ant-upload-list-picture-card-container{
margin: 0 !important;
}
}
</style> </style>

@ -262,7 +262,7 @@ export default {
margin-bottom: 30px; margin-bottom: 30px;
} }
i:nth-of-type(2) { i:nth-of-type(2) {
font-size: 96px; font-size: 80px;
line-height: 1; line-height: 1;
} }
div { div {

@ -1,5 +1,5 @@
<template> <template>
<div class="accountsetting-container"> <div class="accountsetting-container" >
<a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk"> <a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk">
<div class="container"> <div class="container">
<div class="cropper-content"> <div class="cropper-content">

@ -1,5 +1,5 @@
<template> <template>
<div class="accountsetting-container"> <div class="accountsetting-container" style="background-color: #f0f0f0;">
<a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk"> <a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk">
<div class="container"> <div class="container">
<div class="cropper-content"> <div class="cropper-content">
@ -27,7 +27,7 @@
<template slot="footer">{{ &nbsp; }}</template> <template slot="footer">{{ &nbsp; }}</template>
</a-modal> </a-modal>
<div class="accountcontent w"> <div class="accountcontent w">
<div class="accountSetList"> <div class="accountSetList" >
<div class="userinfobox"> <div class="userinfobox">
<div class="avatarbox"> <div class="avatarbox">
<i @click="uploadavatar" style="cursor: pointer"> <i @click="uploadavatar" style="cursor: pointer">
@ -73,7 +73,7 @@
</li> </li>
</ul> </ul>
</div> </div>
<ul> <ul style="margin: 0 auto;width: 288px;">
<li @click="pushto('/accountsetting/boundtel')" :class="{ tagactive: activelist === 1 }"> <li @click="pushto('/accountsetting/boundtel')" :class="{ tagactive: activelist === 1 }">
<span> <span>
<i class="iconfont icon-gerenzhongxin-bangdingshouji"></i>绑定手机 <i class="iconfont icon-gerenzhongxin-bangdingshouji"></i>绑定手机
@ -473,18 +473,20 @@ export default {
// background-color: pink; // background-color: pink;
display: flex; display: flex;
.accountSetList { .accountSetList {
width: 346px; width: 320px;
// height: 500px; // height: 500px;
// background-color: skyblue; background-color: #fff;
margin-right: 16px; border-radius: 6px;
overflow: hidden;
margin-right: 20px;
.userinfobox { .userinfobox {
width: 346px; width: 320px;
height: 158px; height: 158px;
background: #ffffff; background: #ffffff;
border-radius: 6px; border-radius: 6px;
padding: 24px 0; padding: 24px 0;
text-align: center; text-align: center;
border: 1px solid #ededed; // border: 1px solid #ededed;
.avatarbox { .avatarbox {
margin: 0 auto; margin: 0 auto;
width: 64px; width: 64px;
@ -549,8 +551,10 @@ export default {
// margin-top: 16px; // margin-top: 16px;
// padding: 0 16px; // padding: 0 16px;
background-color: #fff; background-color: #fff;
border-radius: 6px; border-radius: 6px;
overflow: hidden; overflow: hidden;
width: calc(100% - 32px);
margin: 0 auto !important;
li { li {
position: relative; position: relative;
display: flex; display: flex;
@ -680,7 +684,7 @@ export default {
} }
} }
.rightcontent { .rightcontent {
width: 838px; width: 620px;
min-height: 600px; min-height: 600px;
padding: 0 16px; padding: 0 16px;
background-color: #fff; background-color: #fff;

@ -1,7 +1,9 @@
<template> <template>
<div class="mybill-container f40 w"> <div class="mybill-container f40 w" style="background-color: #f0f0f0;width: 100vw;min-width: 100vw;">
<div class="contenttitle"> <div style="height: 56px;"></div>
<ul @click="resetpag"> <div class=" " style="width: 960px;min-width: 960px;margin: 20px auto 20px;background-color: #fff;border-radius: 6px;padding: 20px;">
<div class="contenttitle">
<ul @click="resetpag">
<li @click="pagination.status = -1" :class="{ townsmanactive: pagination.status === -1 }"> <li @click="pagination.status = -1" :class="{ townsmanactive: pagination.status === -1 }">
全部 全部
<span>{{ billNumber.num }}</span> <span>{{ billNumber.num }}</span>
@ -87,7 +89,9 @@
<a-spin tip="加载中..." :spinning="isspinning"></a-spin> <a-spin tip="加载中..." :spinning="isspinning"></a-spin>
</div> </div>
<template v-if="billList.length === 0 && isspinning === false"> <template v-if="billList.length === 0 && isspinning === false">
<a-empty class="nodata" description="暂无数据" /> <div style="height: 222px;" class="g_flex_c g_w_all">
<a-empty class="nodata" description="暂无数据" />
</div>
</template> </template>
<div class="subsetbox" v-if="!isspinning"> <div class="subsetbox" v-if="!isspinning">
<div class="infoSubset" v-for="(item, index) in billList" :key="item.id" :class="item.isDown ? '' : 'isDownstyle'"> <div class="infoSubset" v-for="(item, index) in billList" :key="item.id" :class="item.isDown ? '' : 'isDownstyle'">
@ -203,8 +207,8 @@
</template> </template>
</div> </div>
<div class="f12 c9 mt8"> <div class="f12 c9 mt8">
{{ item.creator }} <!-- {{ item.creator }} -->
<span class="ml8">{{ formatDateYMDHM(item.createTime) }}</span> <span class="">{{ formatDateYMDHM(item.createTime) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -279,10 +283,11 @@
</a-modal> </a-modal>
</template> </template>
</div> </div>
<div v-else> <div v-else >
<a-empty class="nodata" description="暂无数据" style="padding: 40px" /> <a-empty class="nodata" description="暂无数据" style="padding: 40px" />
</div> </div>
</a-modal> </a-modal>
</div>
</div> </div>
</template> </template>
@ -1105,12 +1110,12 @@ export default {
align-items: center; align-items: center;
font-size: 14px; font-size: 14px;
> div { > div {
margin-left: 50px; margin-left: 10px;
width: 70px; width: 70px;
} }
} }
.ant-input { .ant-input {
width: 400px; width: 348px;
// width: 300px; // width: 300px;
position: relative; position: relative;
height: 32px; height: 32px;
@ -1174,7 +1179,7 @@ export default {
padding-left: 0; padding-left: 0;
justify-content: center; justify-content: center;
// margin-left: 20px; // margin-left: 20px;
width: 260px; width: 180px;
border-color: #ccc; border-color: #ccc;
// border-radius: 4px; // border-radius: 4px;
// border: none; // border: none;
@ -1182,14 +1187,14 @@ export default {
border-color: #1890ff; border-color: #1890ff;
} }
.ant-calendar-range-picker-input { .ant-calendar-range-picker-input {
width: 95px; width: 78px;
font-size: 14px; font-size: 14px;
} }
.ant-calendar-range-picker-separator { .ant-calendar-range-picker-separator {
margin-right: 10px; margin-right: 6px;
} }
.ant-calendar-picker-clear { .ant-calendar-picker-clear {
margin-right: 10px; margin-right: 6px;
} }
} }
} }
@ -1228,11 +1233,11 @@ export default {
// li { // li {
// } // }
li:first-child { li:first-child {
width: 263px; width: 188px;
padding-left: 60px; padding-left: 60px;
} }
li:nth-child(2) { li:nth-child(2) {
width: 246px; width: 220px;
// line-height: 100px; // line-height: 100px;
// background-color: red; // background-color: red;
} }
@ -1305,14 +1310,20 @@ export default {
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0;
li { li {
flex: 1; width: 25%;
font-size: 12px;
text-align: center !important;
&:nth-child(1) {
width: 23%;
}
&:nth-child(2) { &:nth-child(2) {
margin-left: 5px; margin-left: 5px;
} }
&:nth-child(3) { &:nth-child(3) {
// margin-left: 100px; // margin-left: 100px;
position: relative; position: relative;
transform: translateX(52px); transform: translateX(0px);
width: 27%;
} }
&:last-child { &:last-child {
text-align: right; text-align: right;

@ -1,4 +1,4 @@
@import "//at.alicdn.com/t/c/font_3135652_nd5ivglbv4.css"; @import "//at.alicdn.com/t/c/font_3135652_w51b50q5ata.css";
@font-face { @font-face {
font-family: "DingTalk"; font-family: "DingTalk";
/* 这里的字体名称是自定义的 */ /* 这里的字体名称是自定义的 */

@ -1,4 +1,4 @@
@import "//at.alicdn.com/t/c/font_3135652_nd5ivglbv4.css"; @import "//at.alicdn.com/t/c/font_3135652_w51b50q5ata.css";
@font-face { @font-face {
font-family: "DingTalk"; /* 这里的字体名称是自定义的 */ font-family: "DingTalk"; /* 这里的字体名称是自定义的 */
src: url("../assets/fonts/DingTalk\ Sans.ttf"); /* 服务器上ttf文件的路径记得配置域名权限 */ src: url("../assets/fonts/DingTalk\ Sans.ttf"); /* 服务器上ttf文件的路径记得配置域名权限 */

@ -1779,4 +1779,21 @@ export function getDateYMD () {
let prevMonth = date.getMonth() + 1; let prevMonth = date.getMonth() + 1;
let prevDay = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); let prevDay = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
return prevYear + "-" + (prevMonth >= 10 ? prevMonth : "0" + prevMonth) + "-" + prevDay; return prevYear + "-" + (prevMonth >= 10 ? prevMonth : "0" + prevMonth) + "-" + prevDay;
}
/*
处理详情地址
*/
export function setJobInfoPosition (pos) {
let city = [];
let citys = [];
if (isNotEmptyCheck(pos)) {
city = pos.split(",");
}
city.forEach((i) => {
if (isNotEmptyCheck(i)) {
citys.push(i);
}
});
citys = citys.join(",").replace(/,/g, " | ");
return citys ;
} }

@ -2,24 +2,108 @@
<div class="index-container" @click="isspecialboxshow = false"> <div class="index-container" @click="isspecialboxshow = false">
<!-- title部分 --> <!-- title部分 -->
<div class="pagetitle" v-if="isLogin && routertitleindex != 0" <div class="pagetitle" v-if="isLogin && routertitleindex != 0"
:class="pagrTitle == 'list' ? 'page-title-list-active' : ''" :class="pagrTitle == 'list' || pagrTitle == 'detail' || pagrTitle == 'mybill' || pagrTitle == 'recordbill' ? 'page-title-list-active' : ''"
> >
<div class="w fsa"> <div class="w fsa">
<div class="fss"> <div class="fss">
<router-link to="/main"> <router-link to="/main" class="g_flex_row_start">
<!-- <svg class="svg_icon f64" aria-hidden="true"> <div class="g_flex_column_center">
<use xlink:href="#icon-daotian2" /> <img src="../../static/img/gyl.png" style="width: 40px;margin-right: 12px;" alt="" />
</svg> --> </div>
<img src="../../static/img/logo.svg" style="width: 40px" alt="" /> <div class="g_flex_column_center">
<span style="font-size: 16px">伯才供应链平台</span> <!-- <div class="g_h_38 g_flex_column_between">
<div style="height: 16px;line-height: 16px;overflow: hidden;">
<span style="font-size: 16px">伯才供应链</span>
</div>
<div class="g_fs_12" style="zoom: 0.9;color: #999;">
人力资源供应链平台
</div>
</div> -->
<i class="iconfont icon-bocaigongyinglian-chunwenzilogo" style="font-size: 18.8px;color: #1890ff;"></i>
<div class="g_fs_12" style="zoom: 0.85;color: #999;">
人力资源供应链平台
</div>
</div>
</router-link> </router-link>
<ul class="fsa titleTag" style="margin-left: 40px;">
<li style="margin-right: 24px;">
<router-link to="/" :class="routertitleindex == 0 ? 'titleactive' : ''" rel="opener" style="font-size: 16px;">首页</router-link>
</li>
<li style="margin-right: 24px;">
<router-link to="/list" @click.native="toList" :class="routertitleindex == 1 ? 'titleactive' : ''" rel="opener" style="font-size: 16px;">职位列表</router-link>
</li>
<li v-if="false">
<router-link to="/list?type=vocational" :class="routertitleindex == 8 ? 'titleactive' : ''" rel="opener">职教职培</router-link>
</li>
<li v-if="false">
<a-dropdown
overlayClassName="logindropdown"
placement="bottomRight"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
>
<span class="" style="cursor: pointer">
<div :class="routertitleindex == 5 ? 'titleactive' : ''">报名工单</div>
</span>
<div class="loginbox" style="" slot="overlay">
<router-link to="/mybill">
<div>
<span>报名工单</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
<router-link to="/vocationalBill">
<div>
<span>职教报名</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
</div>
</a-dropdown>
</li>
<li v-else>
<router-link to="/mybill" :class="routertitleindex == 5 ? 'titleactive' : ''">
<!-- <div> -->
<span style="font-size: 16px;">报名工单</span>
<!-- <i class="iconfont icon-youjiantou"></i> -->
<!-- </div> -->
</router-link>
</li>
<!--<li>
<router-link to="/mytownsman" :class="routertitleindex == 4 ? 'titleactive' : ''">我的老乡</router-link>
</li>-->
<!-- <li>
<router-link to="/dataStatistics" :class="routertitleindex == 6 ? 'titleactive' : ''">团队数据</router-link>
</li>-->
<!-- <li>
<router-link to="/serviceoutlets"
><a
href="javascript:;"
:class="routertitleindex === 2 ? 'titleactive' : ''"
>服务网点</a
>
</router-link>
</li>
<li>
<router-link to="/aboutus">
<a
href="javascript:;"
:class="routertitleindex === 3 ? 'titleactive' : ''"
>关于我们</a
>
</router-link>
</li>-->
</ul>
</div> </div>
<span class="login fsa"> <span class="login fsa">
<div class="f14 pr16 mr16" style="line-height: 1; border-right: 1px solid #979797; cursor: pointer"> <div class="f14 pr16 mr16" style="line-height: 1; border-right: 1px solid #979797; cursor: pointer">
<!-- <i class="iconfont icon-qiehuan cf4 f12 mr4"></i>切换到公开版 --> <!-- <i class="iconfont icon-qiehuan cf4 f12 mr4"></i>切换到公开版 -->
</div> </div>
<div> <div>
<ul class="fsa titleTag"> <ul class="fsa titleTag" v-if="false">
<li> <li>
<router-link to="/" :class="routertitleindex == 0 ? 'titleactive' : ''" rel="opener">首页</router-link> <router-link to="/" :class="routertitleindex == 0 ? 'titleactive' : ''" rel="opener">首页</router-link>
</li> </li>
@ -168,7 +252,7 @@
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius: 50%; width: 28px; height: 28px" alt v-else /> <img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius: 50%; width: 28px; height: 28px" alt v-else />
<div class="ml4 f14 c6">{{ userbaseInfo.userName || userbaseInfo.nickName || "-" }}</div> <div class="ml4 f14 c6">{{ userbaseInfo.userName || userbaseInfo.nickName || "-" }}</div>
</span> </span>
<div class="loginbox" slot="overlay" style="width: 224px"> <div class="loginbox" slot="overlay" style="width: 240px">
<router-link to="/accountsetting"> <router-link to="/accountsetting">
<div class="hover-blue br4" style="padding: 12px 12px"> <div class="hover-blue br4" style="padding: 12px 12px">
<span> <i class="iconfont icon-gerenzhongxin"></i>个人中心 </span> <span> <i class="iconfont icon-gerenzhongxin"></i>个人中心 </span>
@ -210,7 +294,7 @@
<img v-if="item.logo" class="mr8" :src="item.logo" style="width: 16px; height: 16px" alt="" /> <img v-if="item.logo" class="mr8" :src="item.logo" style="width: 16px; height: 16px" alt="" />
<div v-else class="logo mr8">{{ item.fullName && item.fullName.charAt(0) }}</div> <div v-else class="logo mr8">{{ item.fullName && item.fullName.charAt(0) }}</div>
</div> </div>
<div class="tl" style="width: 98px">{{ item.fullName || item.agencyName }}</div> <div class="tl esl" style="width: 98px">{{ item.fullName || item.agencyName }}</div>
</div> </div>
<div class="ml12 f12 cf4" v-if="item.checked"></div> <div class="ml12 f12 cf4" v-if="item.checked"></div>
</div> </div>
@ -238,9 +322,14 @@
</div> </div>
<div class="fsa titleSlogan w" v-if="routertitleindex == 0"> <div class="fsa titleSlogan w" v-if="routertitleindex == 0">
<!-- <div> --> <!-- <div> -->
<div> <div class="g_flex_row_start">
<img src="../../static/img/logo.svg" style="width: 40px" alt="" /> <div class="g_flex_column_center">
<span style="font-size: 16px;color: #fff;">伯才供应链平台</span> <img src="../../static/img/gyl.png" style="width: 40px;margin-right: 12px;" alt="" />
<!-- <span style="font-size: 16px;color: #fff;">伯才供应链平台</span> -->
</div>
<div class="g_flex_column_center">
<i class="iconfont icon-bocaigongyinglian-chunwenzilogo" style="font-size: 18.8px;color: #fff;"></i>
</div>
</div> </div>
<!-- </div> --> <!-- </div> -->
<div v-if="!isLogin" class="loginBtn"> <div v-if="!isLogin" class="loginBtn">
@ -308,7 +397,13 @@
</div> </div>
</div>--> </div>-->
<!-- footer部分 --> <!-- footer部分 -->
<footer v-if="isfootershow" :class="loginPage ? 'footer_abs' : ''"> <footer v-if="isfootershow" :class="loginPage ? 'footer_abs' : ''"
:style="{
'background-color': pagrTitle == 'detail' || pagrTitle == 'mybill' || pagrTitle == 'boundtel' || pagrTitle == 'recordbill' ? '#f0f0f0' : '#ffffff',
'padding-top': '20px',
'margin-top': 0
}"
>
<div class="w"> <div class="w">
<!-- <ul> <!-- <ul>
<li @click="totop"><router-link to="/list">一手职位</router-link></li> <li @click="totop"><router-link to="/list">一手职位</router-link></li>
@ -448,6 +543,7 @@ export default {
$route: { $route: {
handler(to) { handler(to) {
this.init() this.init()
this.showfooter();
console.log(); console.log();
// console.log("ischange"); // console.log("ischange");
// console.log(to); // console.log(to);
@ -529,8 +625,20 @@ export default {
// pagrTitle // pagrTitle
console.log('-----------------------',this.$route,) console.log('-----------------------',this.$route,)
let that = this; let that = this;
if(that.$route.name == 'JobList'){ if(that.$route.name == 'JobList'){
that.pagrTitle = 'list' that.pagrTitle = 'list'
}else if(that.$route.name == 'Detail'){
that.pagrTitle = 'detail'
}else if(that.$route.name == 'mybill'){
that.pagrTitle = 'mybill'
}else if(that.$route.name == 'boundtel'){
that.pagrTitle = 'boundtel'
}else if(that.$route.name == 'loginpsw'){
that.pagrTitle = 'boundtel'
}else if(that.$route.name == 'boundwx'){
that.pagrTitle = 'boundtel'
}else if(that.$route.name == 'recordbill'){
that.pagrTitle = 'recordbill'
}else{ }else{
that.pagrTitle = '' that.pagrTitle = ''
} }
@ -705,7 +813,7 @@ export default {
showfooter() { showfooter() {
const path = this.$route.fullPath; const path = this.$route.fullPath;
if (path.indexOf("main") > -1) { if (path.indexOf("main") > -1 || this.pagrTitle == 'list') {
this.isbannershow = false; this.isbannershow = false;
this.isfootershow = false; this.isfootershow = false;
} else { } else {
@ -713,6 +821,9 @@ export default {
this.isfootershow = true; this.isfootershow = true;
} }
if (this.pagrTitle == 'list') {
this.isfootershow = false;
}
if (path.indexOf("login") > -1 && path.indexOf("loginpsw") == -1) { if (path.indexOf("login") > -1 && path.indexOf("loginpsw") == -1) {
this.isbannershow = false; this.isbannershow = false;
} }
@ -951,7 +1062,8 @@ export default {
left: 0; left: 0;
top: 0; top: 0;
width: 100vw; width: 100vw;
z-index: 999999; z-index: 1000;
box-shadow: 3px 3px 6px 0px rgba(77, 87, 94, 0.1);
} }
.fellowtownsman { .fellowtownsman {
@ -1277,7 +1389,7 @@ export default {
} }
/deep/.setPosition { /deep/.setPosition {
padding: 4px; padding: 4px;
left: -218px !important; left: -240px !important;
border-radius: 4px; border-radius: 4px;
background-color: #fff; background-color: #fff;
box-shadow: 0px 2px 4px 0px rgba(229, 229, 229, 0.5), 0px 4px 12px 0px rgba(0, 0, 0, 0.15); box-shadow: 0px 2px 4px 0px rgba(229, 229, 229, 0.5), 0px 4px 12px 0px rgba(0, 0, 0, 0.15);

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

10169
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save