Files
ks-app-employment-service/packageCa/job/details.vue

386 lines
10 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="specialtyItem">
<view class="content">
<view class="head">
<view class="h3">
{{jobDetailData.Name}}
</view>
<view class="h2">所属大类<text>{{jobDetailData.BigCategoryName}}</text></view>
<view class="h2">所属中类<text>{{jobDetailData.MidCategoryName}}</text></view>
<view class="h2">所属小类<text>{{jobDetailData.SmallCategoryName}}</text></view>
<view class="intention-btn" v-if="jobDetailData.ShowIntention" v-text="jobDetailData.IsIntention?'取消意向':'加入意向'" @click="changeIntention"></view>
</view>
<view class="txt-content">
<view class="article-item" v-if="jobDetailData.VideoUrl">
<text class="h4">职业新说</text>
<video :src="jobDetailData.VideoUrl"></video>
</view>
<view class="article-item" v-if="jobDetailData.TopIntroduction">
<text class="h4">职业说明</text>
<view class="article-content" v-html="jobDetailData.TopIntroduction"></view>
</view>
<view class="article-item" v-if="jobDetailData.TopWorkContent">
<text class="h4">工作内容</text>
<view class="article-content" v-html="jobDetailData.TopWorkContent"></view>
</view>
<view class="article-item" v-if="jobDetailData.QualityRequirements">
<text class="h4">从业要求</text>
<view class="article-content" v-html="jobDetailData.QualityRequirements"></view>
</view>
<view class="article-item" v-if="jobDetailData.AbilityRequirements">
<text class="h4">能力要求</text>
<view class="article-content" v-html="jobDetailData.AbilityRequirements"></view>
</view>
<view class="article-item" v-if="jobDetailData.SalaryStr">
<text class="h4">薪资范围</text>
<view class="article-content" v-html="jobDetailData.SalaryStr"></view>
</view>
<view class="article-item" v-if="jobDetailData.CareerProspects">
<text class="h4">就业前景</text>
<view class="article-content" v-html="jobDetailData.CareerProspects"></view>
</view>
<view class="article-item" v-if="listOne.length > 0">
<text class="h4">职业技能</text>
<view class="attr-wrap">
<view class="row" v-for="(item,index) in listOne" :key="index">
<view class="name">
<text class="label">{{index + 1}}</text>{{item.Name}}
</view>
<view class="desc">
{{item.Explain}}
</view>
</view>
</view>
</view>
<view class="article-item" v-if="listTwo.length > 0">
<text class="h4">职业能力</text>
<view class="attr-wrap">
<view class="row" v-for="(item,index) in listTwo" :key="index">
<view class="name">
<text class="label">{{index + 1}}</text>{{item.Name}}
</view>
<view class="desc">
{{item.Explain}}
</view>
</view>
</view>
</view>
<view class="article-item" v-if="listThree.length > 0">
<text class="h4">具备知识</text>
<view class="attr-wrap">
<view class="row" v-for="(item,index) in listThree" :key="index">
<view class="name">
<text class="label">{{index + 1}}</text>{{item.Name}}
</view>
<view class="desc">
{{item.Explain}}
</view>
</view>
</view>
</view>
<view class="article-item" v-if="listFour.length > 0">
<text class="h4">职业素养</text>
<view class="attr-wrap">
<view class="row" v-for="(item,index) in listFour" :key="index">
<view class="name">
<text class="label">{{index + 1}}</text>{{item.Name}}
</view>
<view class="desc">
{{item.Explain}}
</view>
</view>
</view>
</view>
<view class="article-item" v-if="listFive.length > 0">
<text class="h4">职业活动</text>
<view class="attr-wrap">
<view class="row" v-for="(item,index) in listFive" :key="index">
<view class="name">
<text class="label">{{index + 1}}</text>{{item.Name}}
</view>
<view class="desc">
{{item.Explain}}
</view>
</view>
</view>
</view>
<view class="article-item" v-if="jobDetailData.DevelopmentPath">
<text class="h4">发展路径</text>
<view class="article-content" v-html="jobDetailData.DevelopmentPath"></view>
</view>
<view class="article-item" v-if="jobDetailData.SpecialtyList != null && jobDetailData.SpecialtyList.length > 0">
<text class="h4">推荐专业</text>
<view class="sp-wrap">
<view class="item" v-for="(item,index) in jobDetailData.SpecialtyList":key="index">
{{item.Name}}
</view>
</view>
</view>
</view>
</view>
<view class="fiexd-visitor" v-if="isVisitor">
<navigator class="btn" url="/pagesUserInfo/binding/binding?routeType=6">请先登录</navigator>
</view>
<!-- <u-modal :show="showLogin" content='观看完整内容,请先登录' width='500rpx' @confirm="showLogin=false"></u-modal> -->
</view>
</template>
<script>
import api from "@/apiCa/job.js"
import api1 from "@/apiCa/user.js"
export default {
data() {
return {
showLogin: false,
isVisitor: false, //游客
user: uni.getStorageSync("CAuserInfo").user,
id: 0,
jobDetailData: {
Name: "",
BigCategoryName: "",
MidCategoryName: "",
SmallCategoryName: "",
VideoUrl: "",
TopIntroduction: "",
TopWorkContent: "",
QualityRequirements: "",
},
listOne: [],//职业技能
listTwo: [],//职业能力
listThree: [],//具备知识
listFour: [],//职业素养
listFive: [],//职业活动
}
},
onLoad(e) {
if(this.user == undefined || this.user == null){
this.isVisitor = true;
}else {
this.isVisitor = false;
}
this.id = e.id;
this.queryJobDetailById();
},
methods: {
showConfirmInfor(){
uni.showModal({
content:"观看完整内容,请先登录",
confirmText:"确认",
confirmColor:"#1677ff",
showCancel:false
})
},
changeIntention(){
uni.showLoading({
title: "加载中"
})
let isIntention = this.jobDetailData.IsIntention;
api1.doIntention(2,this.id,isIntention?1:0).then((res)=>{
uni.hideLoading();
if(res.Result == 1){
this.jobDetailData.IsIntention = !this.jobDetailData.IsIntention;
}
})
},
// 获取专业信息
queryJobDetailById(){
uni.showLoading({
title:"加载中"
})
api.queryJobDetailById(this.id).then((res) => {
uni.hideLoading();
if(res.Result == 1){
this.jobDetailData = res.Data;
let attList = res.Data.AttList;
if(attList != null){
let listOne = [],//职业技能
listTwo = [],//职业能力
listThree = [],//具备知识
listFour = [],//职业素养
listFive = [];//职业活动
attList.forEach(item => {
switch(item.Identify){
case 1 :{
listOne.push(item);
break;
}
case 2 :{
listTwo.push(item);
break;
}
case 3 :{
listThree.push(item);
break;
}
case 5 :{
listFour.push(item);
break;
}
case 6 :{
listFive.push(item);
break;
}
}
});
this.listOne = listOne;
this.listTwo = listTwo;
this.listThree = listThree;
this.listFour = listFour;
this.listFive = listFive;
}
}
})
},
}
}
</script>
<style lang="scss" scoped>
.specialtyItem {
// background-color: #f6f6f6;
padding-bottom: 150rpx;
.head {
position: relative;
padding: 20rpx 30rpx 20rpx;
display: flex;
width: 690rpx;
background-color: #ffffff;
justify-content: center;
flex-direction: column;
border-bottom: 20rpx solid #f6f6f6;
.intention-btn {
position: absolute;
right: 30rpx;
top: 10rpx;
width: 160rpx;
height: 60rpx;
line-height: 60rpx;
border-radius: 8rpx;
font-size: 24rpx;
background: #1676FF;
color: #fff;
text-align: center;
}
.h3 {
display: flex;
align-items: center;
height: 60rpx;
font-size: 36rpx;
font-weight: 600;
color: #525252;
margin-bottom: 10rpx;
}
.h2{
font-size: 24rpx;
color: #999;
margin-bottom: 10rpx;
text {
color: #333;
}
}
}
.txt-content {
position: relative;
overflow: auto;
background: #fff;
padding: 34rpx 30rpx 60rpx 30rpx;
border-bottom-left-radius: 20rpx;
border-bottom-right-radius: 20rpx;
.article-item {
margin-bottom: 32rpx;
padding-bottom: 40rpx;
border-bottom: 2rpx solid #f6f6f6;
.h4 {
display: flex;
align-items: center;
font-size: 32rpx;
color: #323233;
font-weight: 500;
margin-bottom: 34rpx;
}
video {
width: 100%;
}
.article-content {
line-height: 46rpx;
font-size: 28rpx;
color: #969799;
}
.attr-wrap {
.row {
margin-bottom: 25rpx;
.name {
display: flex;
align-items: center;
font-size: 28rpx;
color: #20b664;
margin-bottom: 18rpx;
.label {
display: block;
width: 64rpx;
height: 32rpx;
line-height: 32rpx;
margin-right: 20rpx;
background: #FF8A00;
border-radius: 12rpx;
color: #fff;
font-size: 24rpx;
text-align: center;
}
}
.desc {
font-size: 28rpx;
color: #969799;
line-height: 42rpx;
}
}
}
.sp-wrap {
display: flex;
flex-wrap: wrap;
.item {
display: block;
border: 2rpx solid #1677ff;
border-radius: 8rpx;
height: 52rpx;
margin-right: 20rpx;
line-height: 52rpx;
padding: 0 15rpx;
font-size: 28rpx;
margin-bottom: 20rpx;
color: #1677ff;
}
}
}
}
.fiexd-visitor {
position: fixed;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 150rpx;
background: rgba(255, 255, 255, 0.9);
z-index: 99;
border-top: 1px solid #eee;
.btn {
width: 300rpx;
height: 80rpx;
border-radius: 40rpx;
line-height: 80rpx;
background: #1677ff;
font-size: 28rpx;
text-align: center;
color: #fff;
}
}
}
</style>
<style>
page {
overflow-y: scroll;
}
</style>