招聘页面ui更新

This commit is contained in:
dengxin
2024-02-17 18:22:11 +08:00
parent b04db25a04
commit cf3f4597a1
6 changed files with 498 additions and 376 deletions

View File

@@ -31,10 +31,10 @@
</view>
<view class="comment" v-if='comment' @tap.stop="goComment(companyitem.missionNo)">
<view class="comment_content commentimg" v-if='companyitem.scoreAll > 0'>
<image class="commentimg_image" src="../../static/img/star.full.svg" v-for="index1 in companyitem.scoreAll" mode=""
:key="index1"></image>
<image class="commentimg_image" src="../../static/img/star.empty.svg" v-for="index2 in (5-companyitem.scoreAll)"
mode="" :key="index2"></image>
<image class="commentimg_image" src="../../static/img/star.full.svg" v-for="index1 in companyitem.scoreAll"
mode="" :key="index1"></image>
<image class="commentimg_image" src="../../static/img/star.empty.svg"
v-for="index2 in (5 - companyitem.scoreAll)" mode="" :key="index2"></image>
</view>
<view class="comment_content allName gocomment" v-else>
评价
@@ -148,7 +148,7 @@
}
.askList {
width: 14%;
/* width: 14%; */
font-family: PingFangSC-Regular;
font-size: 24rpx;
color: #666666;
@@ -180,7 +180,7 @@
font-size: 32rpx;
font-weight: bold;
color: #333333;
width: 400rpx;
width: 350rpx;
overflow: hidden;
white-space: nowrap;
/*不换行*/
@@ -195,9 +195,12 @@
.body {
width: 690rpx;
margin: 0rpx auto;
padding: 20rpx 0;
background-color: #fefefe;
overflow: hidden;
box-sizing: border-box;
padding: 20rpx;
border-radius: 20rpx;
margin-top: 20rpx;
}
.heads {

View File

@@ -26,7 +26,7 @@
<view @click="clickFunc({ 'type': 'industry' })" v-else-if="item.name === `行业`"
class="thumb-box thumb-box1">
<u-cell-group>
<u-cell icon="map" :title="areaModal.industry" :isLink="true"
<u-cell icon="calendar" :title="industryModal.industry" :isLink="true"
arrow-direction="down"></u-cell>
</u-cell-group>
</view>
@@ -45,8 +45,8 @@
</view>
<view class="buttonWrapper">
<view class="cancelButton">取消</view>
<view class="sureButton">确定</view>
<view class="cancelButton" @click="closePopUp">取消</view>
<view class="sureButton" @click="subMitPopUp({submitData,areaModal,industryModal})">确定</view>
</view>
<!-- 省市 -->
<data-picker :show="areaModal.addressShow" @confirm='confirmAddress' @cancel='areaModal.addressShow = false'
@@ -54,7 +54,8 @@
:defaultIds="areaModal.defaultIds" :showToolbar="false" :showBottombar="true"
:labelName="areaModal.labelName"></data-picker>
<!-- 行业 -->
<u-picker @confirm="pickerIndustryFunc" @cancel="industryModal.industryShow = false" :show="industryModal.industryShow" :columns="industryModal.industry"></u-picker>
<u-picker @confirm="pickerIndustryFunc" keyName="name" @cancel="industryModal.industryShow = false"
:show="industryModal.industryShow" :columns="industryModal.industryList"></u-picker>
</view>
</template>
@@ -62,6 +63,16 @@
import classifyData from './classifyData.js';
import { getTrade } from '@/api/resume.js'
export default {
props: {
closePopUp: {
type: Function,
required: true
},
subMitPopUp: {
type: Function,
required: true
},
},
components: {
// vTabs,
// companyList, verticalMenu
@@ -92,10 +103,9 @@ export default {
},
industryModal: {
industry: [['中国', '美国', '日本']],
industry: "",
industryList: [[]],
industryShow: false,
},
submitData: {},
@@ -120,6 +130,8 @@ export default {
}
})
this.tabbar = newData;
this.industryModal.industry = res.data.data[0]?.name
this.industryModal.industryList = [res.data.data]
})
},
@@ -286,6 +298,7 @@ export default {
},
pickerIndustryFunc(val) {
console.log(val);
this.industryModal.industry = val.value[0].name;
this.industryModal.industryShow = false
}

View File

@@ -41,7 +41,8 @@
您想工作的地点
</view>
<view v-bind:class="['jobText']">
{{ myResume.city == {} ? myResume.city.id ? getCity(myResume.city.id) : myResume.city.workplace : '请选择' }}
{{ myResume.city == {} ? myResume.city.id ? getCity(myResume.city.id) : myResume.city.workplace : '请选择'
}}
</view>
</view>
<image src="../../../static/img/right.svg" mode=""></image>
@@ -374,7 +375,9 @@ export default {
color: #666666;
background: #ffffff;
overflow-y: auto;
white-space: nowrap;
/* white-space: nowrap; */
overflow-wrap: break-word;
word-wrap: break-word;
}
.list image {
@@ -386,9 +389,11 @@ export default {
.list {
padding: 0 15px 0 30rpx;
height: 126rpx;
line-height: 126rpx;
/* line-height: 126rpx; */
background: #fff;
border-bottom: 1px solid #f2f2f2;
display: flex;
align-items: center;
}
.title image {

View File

@@ -105,7 +105,7 @@
{
"path" : "pages/seach/seach",
"style" : {
"navigationBarTitleText" : "",
"navigationBarTitleText" : "德阳市灵活就业平台",
"navigationBarBackgroundColor" : "#FFFFFF"
}
},

View File

@@ -1,38 +1,36 @@
<template>
<view>
<view class="titleSearch">
<view class="searchName">抢任务</view>
<view class="searchName"> </view>
<u-search @focus="goSeach" shape="round" :showAction="false"></u-search>
</view>
<view>
<view>任务</view>
<view>岗位</view>
<view>推荐</view>
<u-search placeholder="搜任务/搜岗位/搜政策" @focus="goSeach" shape="round" :showAction="false"></u-search>
</view>
<view class="content">
<view class="typeButtonWrapper">
<view class="typeButtonLeft">
<view v-for="(item, index) in nonReactiveArray" :key="index"
:class="['typeButton', index == activeTab ? 'activeButton' : '']" @click="changeTab(index)">{{ item
}}</view>
</view>
<!-- 筛选 -->
<view class="screenButton" @click="showPopUp = true">
筛选
<view class="arrow-up-right"> </view>
</view>
<u-popup closeable :show="showPopUp" mode="right" @close="closePopUp" @open="openPopUp">
</view>
<u-popup closeable :show="showPopUp" mode="right" @close="closePopUp">
<view class="popUpWrapper">
<verticalMenu></verticalMenu>
<verticalMenu :closePopUp="closePopUp" :subMitPopUp="subMitPopUp" />
</view>
</u-popup>
<!-- <v-tabs :tabs="['最新', '附近', '推荐']" height="45px" v-model="activeTab" color="#999" activeColor="#000"
fontSize="36rpx" activeFontSize="36rpx" @change='changeTab' />
<image src="../../static/img/search.svg" @click="goSeach" class="topseach" mode=""></image> -->
<block v-if="activeTab == 0">
<view v-if="newList.length > 0">
<block v-for="(item, index) in newList" :key="index">
<companyList :companyitem="item"></companyList>
<view class="baddd"></view>
</block>
</view>
<view v-else>
@@ -43,19 +41,16 @@
<block v-if="activeTab == 1">
<view>
<view class="baddd"></view>
<view class="location" @click="gomap">
<image src="../../static/img/location.svg" mode=""></image>
{{ currentAddress }}切换位置
<image src="../../static/img/right.svg" mode=""></image>
</view>
<view class="baddd"></view>
</view>
<view v-if="companyList.length > 0">
<block v-for="(item, index) in companyList" :key="item.id">
<companyList :companyitem="item" :near="activeTab === 0"></companyList>
<view class="baddd"></view>
</block>
</view>
<view v-else>
@@ -70,7 +65,6 @@
<view v-if="recommendList.length > 0">
<block v-for="(item, index) in recommendList" :key="item.id">
<companyList :companyitem="item"></companyList>
<view class="baddd"></view>
</block>
</view>
@@ -87,6 +81,8 @@
<cs-button></cs-button>
</view>
</view>
</template>
<script>
@@ -102,11 +98,13 @@ import {
getcoder
} from "@/api/map.js";
import verticalMenu from '@/components/vertical-menu/vertical-menu.vue';
export default {
components: {
vTabs,
companyList, verticalMenu
},
data() {
return {
activeTab: 0,
@@ -136,12 +134,8 @@ export default {
key: 'FW3BZ-6JTK6-GCUS5-MZCRR-3GPR5-HJFEI',
open: false,
showPopUp: false,
indexList: ["年龄", "学历", "工资"],
itemArr: [
['列表A1', '列表A2', '列表A3'],
['列表B1', '列表B2', '列表B3'],
['列表C1', '列表C2', '列表C3'],
]
nonReactiveArray: ["任务", "岗位", "推荐"],
}
},
onLoad: function () {
@@ -362,42 +356,78 @@ export default {
}
},
openPopUp() {
// console.log('open');
},
closePopUp() {
this.showPopUp = false
// console.log('close');
},
subMitPopUp({submitData,areaModal,industryModal}) {
console.log(submitData,areaModal,industryModal,"------确定");
this.showPopUp = false
}
}
}
</script>
<style>
<style scoped>
.titleSearch {
display: flex;
width: 80%;
margin: 0 auto;
font-size: 22px;
font-weight: bold;
padding: 10rpx;
padding: 20rpx;
}
}
.searchName {
margin-right: 15rpx;
margin-right: 28rpx;
}
.content {
background-color: #f3f4f8;
padding-top: 20rpx;
min-height: 80vh;
}
.screenButton {
position: absolute;
/* position: absolute;
top: 10px;
z-index: 1;
left: 30rpx;
/* border: 1px solid black; */
left: 30rpx; */
position: relative;
width: 50px;
text-align: center;
line-height: 30px;
font-size: 14px;
background-color: #f3f4f8;
background-color: #fff;
}
.typeButtonWrapper {
width: 92%;
margin: 0 auto;
display: flex;
justify-content: space-between;
/* margin-bottom: 10rpx; */
}
.typeButtonLeft {
display: flex;
}
.typeButton {
font-size: 14px;
padding: 10rpx 40rpx;
background: #fff;
border-radius: 50px;
margin-right: 10rpx;
}
.activeButton {
color: #4171f9;
background-color: #cfdaf8;
}
.arrow-up-right {
@@ -478,10 +508,7 @@ export default {
margin-top: 300rpx;
}
.baddd {
background: #f6f6f6;
height: 20rpx;
}
.popUpWrapper {
width: 100%;

View File

@@ -1,17 +1,67 @@
<template>
<view>
<view class="mainWrapper">
<view class="headSearch">
<view class="search-view">
<view class="search-item">
<image src="../../static/img/search.svg" style="width: 32rpx;height: 32rpx;" mode=""></image>
<input type="text" confirm-type="搜索" v-model="keywords" @confirm="getList('search')" placeholder="请输入任务名称或公司名称"/>
<input type="text" confirm-type="搜索" v-model="keywords" @confirm="getList('search')"
placeholder="请输入任务名称或公司名称" />
</view>
<view class="close" @click="closeBack">
取消
</view>
</view>
</view>
<v-tabs :tabs="['推荐任务', '推荐服务', '推荐政策']" height="45px" v-model="activeTab" color="#999" activeColor="#000"
fontSize="30rpx" activeFontSize="31rpx" @change='changeTab' />
<block v-if="activeTab == 0">
<view v-if="companyList.length > 0">
<block v-for="(item, index) in companyList" :key="item.id">
<companyList :companyitem="item"></companyList>
</block>
</view>
<view v-else>
<image src="../../static/img/pic_notask.svg" mode="" class="nothing"></image>
<view class="nothingContnt">
暂无信息
</view>
</view>
</block>
<block v-if="activeTab == 1">
<view v-if="newList.length > 0">
<block v-for="(item, index) in newList" :key="index">
<companyList :companyitem="item"></companyList>
</block>
</view>
<view v-else>
<image src="../../static/img/pic_notask.svg" class="nothing" mode=""></image>
<view class="nothingContnt">暂无信息</view>
</view>
</block>
<block v-if="activeTab == 2">
<view v-if="recommendList.length > 0">
<block v-for="(item, index) in recommendList" :key="item.id">
<companyList :companyitem="item"></companyList>
</block>
</view>
<view v-else>
<image src="../../static/img/pic_notask.svg" mode="" class="nothing"></image>
<view class="nothingContnt">
完善技能获取精推荐
</view>
<!-- <view class="btn" @click="goResume">
完善技能
</view> -->
</view>
</block>
<!-- <view v-if="companyList.length > 0">
<block v-for="(item, index) in companyList" :key="item.id">
<companyList :companyitem="item"></companyList>
<view class="baddd"></view>
@@ -22,22 +72,26 @@
<view class="nothingContnt">
暂无任务信息
</view>
</view> -->
</view>
</view>
</template>
<script>
import { newMissionAll } from '@/api/mission.js';
import companyList from '@/components/companyList/companyList.vue';
import vTabs from '@/components/v-tabs/v-tabs.vue';
import testData from '@/common/textdata.js';
export default {
components: {
companyList
companyList,
vTabs,
},
data() {
return {
activeTab: 0,
companyList: [],
recommendList: [],
newList: [],
keywords: '',
page: {
current: 1,
@@ -63,7 +117,7 @@ export default {
if (type === 'search') {
this.page.current = 1;
};
if(this.keywords){
// if (this.keywords) {
newMissionAll(this.page.current, this.page.size, this.keywords).then(res => {
if (this.page.current === 1) {
this.companyList = [];
@@ -72,16 +126,19 @@ export default {
this.page.total = res.data.data.total;
if (res.data.data && res.data.data.records.length) {
this.companyList = this.companyList.concat(res.data.data.records);
}
//搜索关键词高亮
if(this.companyList.length){
this.companyList.forEach((item, index) => {
item.missionTitle = this.getInf(item.missionTitle, this.keywords);
});
}
// if (this.companyList.length) {
// this.companyList.forEach((item, index) => {
// item.missionTitle = this.getInf(item.missionTitle, this.keywords);
// });
// }
console.log(this.companyList, '----------');
})
}
// }
},
//上拉加载
upLoad: function () {
if (this.page.current <= Math.ceil(this.page.total / this.page.size)) {
@@ -110,20 +167,29 @@ export default {
let replaceString = "<span style='color: #1b66ff;'>" + key + "</span>" // 高亮替换
return str.replace(replaceReg, replaceString);
}
}
},
changeTab: function (e) {
this.activeTab = e;
},
}
};
</script>
<style>
<style scoped>
.mainWrapper{
background-color: #f3f4f8;
min-height: 95vh;
}
.baddd {
background-color: #f6f6f6;
height: 20rpx;
}
.close {
position: absolute;
right: 24rpx;
top: 0;
top: 6rpx;
height: 60rpx;
padding: 5rpx 0;
line-height: 60rpx;
@@ -131,11 +197,13 @@ export default {
font-size: 32rpx;
color: #333333;
}
.headSearch .search-view {
border-bottom: 1rpx solid #dddddd;
padding: 10rpx 32rpx;
background: rgba(255, 255, 255, 1);
}
.headSearch .search-item {
display: flex;
width: 80%;
@@ -145,7 +213,9 @@ export default {
background: rgba(249, 249, 249, 1);
border-radius: 200px;
align-items: center;
border: 1px solid #0091ff;
}
.headSearch .search-item input {
padding: 0 24rpx;
height: 80rpx;
@@ -156,20 +226,16 @@ export default {
font-family: PingFang-SC-Bold, PingFang-SC;
color: rgba(51, 51, 51, 1);
}
.headSearch .search-item .placeholderClass {
color: #CCCCCC;
}
.headSearch .search-item image {
height: 32rpx;
width: 32rpx;
}
.nothingContnt{
font-family: PingFangSC-Regular;
font-size: 28rpx;
color: #666;
margin-top: 30rpx;
text-align: center;
}
.nothing {
width: 400rpx;
height: 200rpx;
@@ -177,4 +243,12 @@ export default {
margin: 0 auto;
margin-top: 50%;
}
.nothingContnt {
font-family: PingFangSC-Regular;
font-size: 28rpx;
color: #333333;
margin-top: 30rpx;
text-align: center;
}
</style>