Browse Source

上传修改

master
前端-胡立永 7 months ago
parent
commit
6e3be166c7
15 changed files with 411 additions and 73 deletions
  1. +2
    -0
      App.vue
  2. +43
    -2
      api/api.js
  3. +4
    -4
      components/list/bossList/index.vue
  4. +8
    -8
      components/list/userList/index.vue
  5. +38
    -7
      components/list/userList/userItem.vue
  6. +1
    -1
      components/list/workList/workItem.vue
  7. +1
    -1
      components/list/workList/workListSwipe.vue
  8. +33
    -1
      components/screen/screenWork.vue
  9. +3
    -0
      pages.json
  10. +14
    -46
      pages/index/index.vue
  11. +1
    -0
      pages_order/mine/collect.vue
  12. +1
    -1
      pages_order/mine/contactRecord.vue
  13. +221
    -0
      pages_order/work/userDetail.vue
  14. +1
    -1
      pages_order/work/workDetail.vue
  15. +40
    -1
      store/store.js

+ 2
- 0
App.vue View File

@ -4,6 +4,8 @@
}, },
onShow: function() { onShow: function() {
// this.$store.commit('initConfig') // this.$store.commit('initConfig')
this.$store.commit('getJobTypeList')
// this.$store.commit('getAddressList')
}, },
onHide: function() { onHide: function() {
} }


+ 43
- 2
api/api.js View File

@ -21,8 +21,8 @@ const config = {
*/ */
// 微信登录接口 // 微信登录接口
wxLogin: { wxLogin: {
url: '/login/login',
method: 'POST',
url: '/api/login/login',
method: 'GET',
limit : 500, limit : 500,
showLoading : true, showLoading : true,
}, },
@ -52,6 +52,22 @@ const config = {
*/ */
//获取工种列表
commonQueryJobTypeList: {
url: '/api/common/queryJobTypeList',
method: 'GET',
},
//获取banner图列表
commonQueryBannerList: {
url: '/api/common/queryBannerList',
method: 'GET',
},
//获取开放地址列表
commonQueryAddressList: {
url: '/api/common/queryAddressList',
method: 'GET',
},
/** /**
* 求职者的接口 * 求职者的接口
@ -68,10 +84,35 @@ const config = {
url: '/api/employee/queryJobById', url: '/api/employee/queryJobById',
method: 'GET', method: 'GET',
}, },
//我的收藏
employeeQueryCollectionJobList: {
url: '/api/employee/queryJobCollectionList',
method: 'GET',
},
//联系记录-我看过谁(我的找活)
employeeQueryWatchWho: {
url: '/api/employee/queryWatchWho',
method: 'GET',
},
//联系记录-谁看过我(谁看过我的简历)
employeeQueryWatchMe: {
url: '/api/employee/queryWatchMe',
method: 'GET',
},
/** /**
* boss的接口 * boss的接口
*/ */
//获取简历列表
bossQueryJobList: {
url: '/api/boss/queryJobList',
method: 'GET',
},
//根据Id查看简历详情
bossQueryResumeById: {
url: '/api/boss/queryResumeById',
method: 'GET',
},
} }
export function api(key, data, callback, loadingTitle) { export function api(key, data, callback, loadingTitle) {


+ 4
- 4
components/list/bossList/index.vue View File

@ -39,22 +39,22 @@
} }
}, },
methods: { methods: {
queryVideoList(){
getData(){
if(uni.getStorageSync('token')){ if(uni.getStorageSync('token')){
this.queryParams.token = uni.getStorageSync('token') this.queryParams.token = uni.getStorageSync('token')
} }
this.$api(this.api, this.queryParams, res => { this.$api(this.api, this.queryParams, res => {
if(res.code == 200){ if(res.code == 200){
this.list = res.result
// this.total = res.result.total
this.list = res.result.records
this.total = res.result.total
} }
}) })
}, },
loadMoreData(){ loadMoreData(){
if(this.queryParams.pageSize <= this.list.length){ if(this.queryParams.pageSize <= this.list.length){
this.queryParams.pageSize += 10 this.queryParams.pageSize += 10
this.queryVideoList()
this.getData()
} }
}, },
} }


+ 8
- 8
components/list/userList/index.vue View File

@ -5,9 +5,9 @@
@scrolltolower="loadMoreData"> @scrolltolower="loadMoreData">
<view class="bossList"> <view class="bossList">
<view <view
@click="$utils.navigateTo('/pages_order/boss/bossDetail?id=' + 123)"
@click="$utils.navigateTo('/pages_order/work/userDetail?id=' + item.id)"
:key="index" :key="index"
v-for="(item, index) in 10">
v-for="(item, index) in list">
<userItem :item="item"/> <userItem :item="item"/>
</view> </view>
</view> </view>
@ -25,7 +25,7 @@
default : 'auto' default : 'auto'
}, },
api : { api : {
default : ''
default : 'bossQueryJobList'
} }
}, },
data() { data() {
@ -35,26 +35,26 @@
pageSize: 10, pageSize: 10,
}, },
total : 0, total : 0,
list : 10,
list : [],
} }
}, },
methods: { methods: {
queryVideoList(){
getData(){
if(uni.getStorageSync('token')){ if(uni.getStorageSync('token')){
this.queryParams.token = uni.getStorageSync('token') this.queryParams.token = uni.getStorageSync('token')
} }
this.$api(this.api, this.queryParams, res => { this.$api(this.api, this.queryParams, res => {
if(res.code == 200){ if(res.code == 200){
this.list = res.result
// this.total = res.result.total
this.list = res.result.records
this.total = res.result.total
} }
}) })
}, },
loadMoreData(){ loadMoreData(){
if(this.queryParams.pageSize <= this.list.length){ if(this.queryParams.pageSize <= this.list.length){
this.queryParams.pageSize += 10 this.queryParams.pageSize += 10
this.queryVideoList()
this.getData()
} }
}, },
} }


+ 38
- 7
components/list/userList/userItem.vue View File

@ -2,28 +2,49 @@
<view class="boss-item"> <view class="boss-item">
<view class="head"> <view class="head">
<view class="headImage"> <view class="headImage">
<image src="/static/image/center/headImage.png" mode=""></image>
<image :src="headImage" mode=""></image>
</view> </view>
<view class="info"> <view class="info">
<view class="name"> <view class="name">
李老板
<!-- 李老板 -->
{{ item.name }}
<view> <view>
装配电工
<!-- 装配电工 -->
{{ item.typeId_dictText }}
</view>
<view>
<!-- 装配电工 -->
{{ item.natureId_dictText }}
</view> </view>
</view> </view>
<view class="tips"> <view class="tips">
· 汉族 · 本科 · 应届生
<!-- · 汉族 · 本科 · 应届生 -->
{{ item.sex }} · {{ item.nation }} · {{ item.qualification }} · 应届生
</view> </view>
</view> </view>
<view class="right"> <view class="right">
<view class="price">
12-18K
<view class="price"
v-if="item.salaryLow > 1000">
<text>
{{ (item.salaryLow / 1000).toFixed(0) }}
</text>
<text
v-if="item.salaryUp">
-{{ (item.salaryUp / 1000).toFixed(0) }}
</text>
K
</view>
<view class="price" v-else>
<text>{{ item.salaryLow }}</text>
<text
v-if="item.salaryUp">-{{ item.salaryUp }}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom">
<view class="time"> <view class="time">
09月23日 1620
<!-- 09月23日 1620 -->
{{ $dayjs(item.createTime).format('YYYY-MM-DD') }}
</view> </view>
<view class="phone"> <view class="phone">
<image src="/static/image/home/phone.png" mode=""></image> <image src="/static/image/home/phone.png" mode=""></image>
@ -35,11 +56,21 @@
<script> <script>
export default { export default {
props : {
item : {
default : {}
}
},
data() { data() {
return { return {
} }
}, },
computed : {
headImage(){
return this.item.headImage || '/static/image/center/headImage.png'
}
},
methods: { methods: {
} }


+ 1
- 1
components/list/workList/workItem.vue View File

@ -23,7 +23,7 @@
</view> </view>
<view class="tag-list"> <view class="tag-list">
<view <view
v-for="(t, i) in item.tab.split('、')"
v-for="(t, i) in item.tab && item.tab.split('、')"
:key="i"> :key="i">
{{ t }} {{ t }}
</view> </view>


+ 1
- 1
components/list/workList/workListSwipe.vue View File

@ -8,7 +8,7 @@
<uv-swipe-action-item <uv-swipe-action-item
@click="e => clickSwipeAction(e, item)" @click="e => clickSwipeAction(e, item)"
:options="options"> :options="options">
<workItem/>
<workItem :item="item"/>
</uv-swipe-action-item> </uv-swipe-action-item>
</view> </view>
</uv-swipe-action> </uv-swipe-action>


+ 33
- 1
components/screen/screenWork.vue View File

@ -20,6 +20,12 @@
:value="dropItem('craft').value"> :value="dropItem('craft').value">
</uv-drop-down-item> </uv-drop-down-item>
<uv-drop-down-item
name="nature" type="2"
:label="dropItem('nature').label"
:value="dropItem('nature').value">
</uv-drop-down-item>
<uv-drop-down-item <uv-drop-down-item
name="vip_type" name="vip_type"
type="1" type="1"
@ -67,11 +73,14 @@
</template> </template>
<script> <script>
import {
mapState,
} from 'vuex'
export default { export default {
data() { data() {
return { return {
// value // value
defaultValue: [0, 'all'],
defaultValue: [0, 'all', 'all'],
// //
result: [], result: [],
activeName: 'area', activeName: 'area',
@ -109,6 +118,19 @@
}, },
] ]
}, },
nature: {
label: '性质',
value: 'all',
activeIndex: 0,
color: '#333',
activeColor: '#3796F8',
child: [
{
label: '全部',
value: 'all'
},
]
},
list : [ list : [
{ {
title : '您目前所属的年龄段', title : '您目前所属的年龄段',
@ -147,6 +169,16 @@
currentDropItem() { currentDropItem() {
return this[this.activeName]; return this[this.activeName];
}, },
...mapState(['jobTypeList']),
},
mounted() {
console.log('=================================');
this.jobTypeList.forEach(n => {
this.craft.child.push({
label: n.name,
value: n.id,
})
})
}, },
methods: { methods: {
clickTag(item, i){ clickTag(item, i){


+ 3
- 0
pages.json View File

@ -92,6 +92,9 @@
}, },
{ {
"path": "mine/setting" "path": "mine/setting"
},
{
"path": "work/userDetail"
} }
] ]
}], }],


+ 14
- 46
pages/index/index.vue View File

@ -3,10 +3,10 @@
<view class="banner"> <view class="banner">
<uv-swiper <uv-swiper
:list="bannerList"
:list="banner"
indicator indicator
height="620rpx" height="620rpx"
keyName="url"></uv-swiper>
keyName="image"></uv-swiper>
<!-- indicatorStyle="bottom: 100rpx;" --> <!-- indicatorStyle="bottom: 100rpx;" -->
<view class="top"> <view class="top">
@ -27,12 +27,12 @@
<view class="grid"> <view class="grid">
<uv-grid :border="false" <uv-grid :border="false"
:col="5"> :col="5">
<!-- @click="$utils.navigateTo('/pages_order/work/workList?id=' + item.id)" -->
<uv-grid-item <uv-grid-item
v-for="(item,index) in baseList"
@click="$utils.navigateTo('/pages_order/work/workList')"
v-for="(item,index) in jobTypeList"
:key="index"> :key="index">
<image class="grid-icon" :src="item.icon" mode="aspectFill"></image>
<text class="grid-text">{{item.title}}</text>
<image class="grid-icon" :src="item.image" mode="aspectFill"></image>
<text class="grid-text">{{item.name}}</text>
</uv-grid-item> </uv-grid-item>
</uv-grid> </uv-grid>
</view> </view>
@ -41,7 +41,6 @@
<!-- 筛选器 --> <!-- 筛选器 -->
<screenWork @clickItem="clickItem"/> <screenWork @clickItem="clickItem"/>
<!-- 老板看到的 --> <!-- 老板看到的 -->
<userList ref="workList" v-if="role"/> <userList ref="workList" v-if="role"/>
@ -62,7 +61,6 @@
import screenWork from '@/components/screen/screenWork.vue' import screenWork from '@/components/screen/screenWork.vue'
import { import {
mapState, mapState,
mapGetters
} from 'vuex' } from 'vuex'
export default { export default {
components : { components : {
@ -73,42 +71,15 @@
userList userList
}, },
computed: { computed: {
...mapState(['userInfo', 'role']),
...mapState([
'userInfo',
'role',
'banner',
'jobTypeList'
]),
}, },
data() { data() {
return { return {
baseList : [
{
icon : '/static/image/home/1.png',
title : '电工',
path : '/pages_order/service/applyRelic',
},
{
icon : '/static/image/home/1.png',
title : '焊工',
path : '/pages_order/service/applyRelic',
},
{
icon : '/static/image/home/1.png',
title : '叉车',
path : '/pages_order/service/applyRelic',
},
{
icon : '/static/image/home/1.png',
title : '钳工',
path : '/pages_order/service/applyRelic',
},
{
icon : '/static/image/home/1.png',
title : '其他招工',
path : '/pages_order/service/applyRelic',
},
],
bannerList: [
{
url: '/static/image/home/banner.png',
},
],
productList: [], productList: [],
keyword : '', keyword : '',
} }
@ -118,8 +89,8 @@
// this.queryBannerList() // this.queryBannerList()
// }, // },
onShow() { onShow() {
this.$refs.workList.getData()()
this.queryBannerList()
this.$refs.workList.getData()
this.$store.commit('getBanner')
}, },
// //
onReachBottom() { onReachBottom() {
@ -128,9 +99,6 @@
methods: { methods: {
clickItem(){ clickItem(){
},
queryBannerList(){
}, },
} }
} }


+ 1
- 0
pages_order/mine/collect.vue View File

@ -32,6 +32,7 @@
} }
}, },
], ],
mixinsListApi : 'employeeQueryCollectionJobList',
} }
}, },
methods: { methods: {


+ 1
- 1
pages_order/mine/contactRecord.vue View File

@ -17,7 +17,7 @@
</view> </view>
<workList ref="workList" v-if="type == 0"/>
<workList api="employeeQueryWatchWho" ref="workList" v-if="type == 0"/>
<bossList ref="bossList" v-if="type == 1"/> <bossList ref="bossList" v-if="type == 1"/>
</view> </view>
</template> </template>


+ 221
- 0
pages_order/work/userDetail.vue View File

@ -0,0 +1,221 @@
<template>
<view class="page">
<navbar title="工作详情" leftClick @leftClick="$utils.navigateBack" />
<view class="head">
<view class="headImage">
<image :src="detail.headImage" mode=""></image>
<view class="">
{{ detail.typeId_dictText }}
</view>
</view>
<view class="info">
<view class="name">
{{ detail.name }}
</view>
<view class="tips">
性别{{ detail.sex }}
</view>
<view class="tips">
年龄{{ detail.age }}
</view>
<view class="tips">
学历{{ detail.qualification }}
</view>
</view>
<view class="right">
<view class="phone">
<image src="/static/image/home/phone.png" mode=""></image>
联系他
</view>
</view>
</view>
<view class="box">
<view class="userinfo">
<view class="line">
<view class="left">
联系电话
</view>
<view class="right">
联系电话
</view>
</view>
<view class="line">
<view class="left">
期望工作地
</view>
<view class="right">
联系电话
</view>
</view>
</view>
<view class="info">
<view class="title2">
<text>个人介绍</text>
</view>
<!-- <view
class="text"
v-html="text">
</view> -->
<view
class="text">
<uv-parse :content="detail.brief"></uv-parse>
</view>
<view class="tag-list">
<view v-for="(t, i) in detail.tab && detail.tab.split('、')">
{{ t }}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
let text = `岗位要求
1全日制大专以上学历艺术设计类相关专业;
2两年以上平面品牌视觉设计等相关工作经验能独立完成项目的设计工作 3C数码/个护健 类产品服务经验优先有乙方工作经验佳;
3具备一定的设计提案能力能完整的呈现设计思路与创意能清晰的表达设计逻辑与思考;
4热爱设计平面基本功扎实拥有优良的审美与创意想法对版式色彩把控能力强;对工作富有责任心具备团队沟通与协作能力;
5精通 PSAICDR 等平面设计软件能独立完成日常平面设计工作内容熟练使用 PPT/Keynote能完成提案内容的材料美化工作
`
import userHead from '../components/user/userHead.vue'
export default {
components : {
userHead,
},
data() {
return {
text : '',
id : 0,
detail : {},
}
},
onLoad({id}) {
this.id = id
},
onShow() {
this.text = this.$utils.stringFormatHtml(text)
this.getData()
},
methods: {
getData(){
this.$api('bossQueryResumeById', {
resumeId : this.id
}, res => {
if(res.code == 200){
this.detail = res.result
}
})
},
}
}
</script>
<style scoped lang="scss">
.page{
background-color: #fff;
min-height: 100vh;
.head {
display: flex;
align-items: center;
position: relative;
padding: 20rpx;
image {
width: 140rpx;
height: 140rpx;
border-radius: 50%;
}
.headImage {
width: 160rpx;
margin-right: 40rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
view {
display: flex;
font-size: 24rpx;
align-items: center;
margin-left: 20rpx;
background: rgba($uni-color, 0.2);
color: $uni-color;
padding: 10rpx;
border-radius: 10rpx;
margin-top: 10rpx;
}
}
.info {
font-size: 28rpx;
.name {
font-size: 32rpx;
display: flex;
padding-bottom: 10rpx;
view {
display: flex;
font-size: 20rpx;
align-items: center;
padding-left: 20rpx;
}
}
.tips {
font-size: 26rpx;
}
}
.right{
margin-left: auto;
.phone{
background-color: rgba($uni-color, 0.2);
color: $uni-color;
padding: 8rpx 16rpx;
border-radius: 10rpx;
image{
width: 24rpx;
height: 24rpx;
}
}
}
}
.box{
padding: 30rpx;
.userinfo{
font-size: 28rpx;
color: #666666;
line-height: 44rpx;
margin-bottom: 40rpx;
.line{
margin-bottom: 20rpx;
display: flex;
.left{
width: 220rpx;
flex-shrink: 0;
}
}
}
.info{
.text{
font-size: 24rpx;
color: #666666;
line-height: 44rpx;
}
}
}
}
</style>

+ 1
- 1
pages_order/work/workDetail.vue View File

@ -73,7 +73,7 @@
</view> </view>
<view class="tag-list"> <view class="tag-list">
<view v-for="(t, i) in detail.tab.split('、')">
<view v-for="(t, i) in detail.tab && detail.tab.split('、')">
{{ t }} {{ t }}
</view> </view>
</view> </view>


+ 40
- 1
store/store.js View File

@ -10,8 +10,11 @@ const store = new Vuex.Store({
state: { state: {
configList: [], //配置列表 configList: [], //配置列表
// 角色 true为老板 false为工人 // 角色 true为老板 false为工人
role : false,
role : true,
userInfo : {}, //用户信息 userInfo : {}, //用户信息
banner : [],//轮播图
jobTypeList : [],//工种
addressList : [],//开放地址
}, },
getters: { getters: {
}, },
@ -74,6 +77,42 @@ const store = new Vuex.Store({
} }
}) })
}, },
// 获取工种列表
getJobTypeList(state){
api('commonQueryJobTypeList', {
pageNo : 1,
pageSize : 99999,
}, res => {
if(res.code != 200){
return
}
state.jobTypeList = res.result.records
})
},
// 获取开放地址
getAddressList(state){
api('commonQueryAddressList', {
pageNo : 1,
pageSize : 99999,
}, res => {
if(res.code != 200){
return
}
state.addressList = res.result.records
})
},
// 获取轮播图
getBanner(state){
api('commonQueryBannerList', {
pageNo : 1,
pageSize : 99999,
}, res => {
if(res.code != 200){
return
}
state.banner = res.result.records
})
},
}, },
actions: {}, actions: {},
}) })


Loading…
Cancel
Save