Browse Source

1.登录页面处理:需要加一个取消登录按钮直接跳到首页

3.搜索功能不能使用目前 (已处理)
4.公告无法点击查看公告详情 {已处理}
5.这个地方是列表里面的数据
(1)增加两个标签分类 /求职/招聘  跟首页一样,这样就能根据分类进来可以查询到相关分类的 求职者了
(2)然后这里的  下拉刷新   / 上拉加载  要处理,每个页面都是一样,都要处理
6.工作地址这里根据经纬度跳到对应的地址坐标去 (已处理)
master
1263428893@qq.com 3 months ago
parent
commit
46c695b92d
10 changed files with 282 additions and 77 deletions
  1. +1
    -1
      common/api.js
  2. +3
    -1
      pages.json
  3. +8
    -3
      pages/auth/index.vue
  4. +1
    -1
      pages/home/component/enterprise.vue
  5. +0
    -2
      pages/home/component/master.vue
  6. +8
    -7
      pages/home/index.vue
  7. +184
    -33
      pages_subpack/category/index.vue
  8. +1
    -1
      pages_subpack/notice/index.vue
  9. +49
    -3
      pages_subpack/person/index.vue
  10. +27
    -25
      pages_subpack/work-detail/index.vue

+ 1
- 1
common/api.js View File

@ -64,7 +64,7 @@ export const bindPhone = (params) => http.get('/employ-api/employ/login/bindPhon
// 修改头像和昵称,传nickName和headimgurl
export const updateUserInfo = (params) => http.post('/employ-api/employ/user/updateUser', params)
// 公告详情
export const getNotice = (params) => http.get('/employ-api/index/getNotice', {params:params})
export const getNotice = (params) => http.get('/employ-api/employ/news/queryNewsById', {params:params})
// 求职者修改信息 传id修改
export const updateRole = (params) => http.post('/employ-api/user/updateRole', params)
// 招聘方修改信息 传id修改


+ 3
- 1
pages.json View File

@ -218,7 +218,9 @@
"navigationBarTitleText": "分类",
"navigationStyle":"default",
"navigationBarBackgroundColor": "#FF7A31",
"navigationBarTextStyle": "white"
"navigationBarTextStyle": "white",
"enablePullDownRefresh": true,
"onReachBottomDistance": 100
}
},
{


+ 8
- 3
pages/auth/index.vue View File

@ -13,9 +13,9 @@
<image class="se-w-45 se-h-35" src="@/static/image/wechat.png" mode=""></image>
<text class="se-ml-10">微信登录</text>
</button>
<!-- <view class="se-mx-80 se-br-40 se-mt-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-32 se-c-66 se-bgc-f5">
<text>手机验证码登录</text>
</view> -->
<view @click="onNavigator" class="se-mx-80 se-br-40 se-mt-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-32 se-c-66 se-bgc-f5">
<text>取消登录</text>
</view>
<view class="se-mx-80 se-br-40 se-mt-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-24 se-c-33">
<u-checkbox-group @change="checkboxChange" v-model="checked">
<u-checkbox name="1" activeColor="#ff7a31" label-size="12" shape="circle" label="阅读并同意"></u-checkbox>
@ -161,6 +161,11 @@
}
})
},
onNavigator(){
uni.switchTab({
url:"/pages/home/index"
})
},
handleOpenPrivacyContract() {
//
wx.openPrivacyContract({


+ 1
- 1
pages/home/component/enterprise.vue View File

@ -63,7 +63,7 @@
{{items.categoryTwo_dictText}}
<!-- <u-parse v-if="items.brief" :content="items.brief"></u-parse> -->
</text>
<view @click.capture="onCustomerService(items.phone)" class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<view @click.capture="onCustomerService(items.employAuthenticationPerson.phone)" class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<u-icon color="#FF7A31" name="phone-fill"></u-icon>
<text class="se-ml-5">联系他</text>
</view>


+ 0
- 2
pages/home/component/master.vue View File

@ -43,7 +43,6 @@
</view>
</view>
<view class="se-py-10">
<!-- <text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.tag">{{items.tag}}</text> -->
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryOne_dictText">{{items.categoryOne_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryTwo_dictText">{{items.categoryTwo_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5"v-if="items.payType_dictText">{{items.payType_dictText}}</text>
@ -52,7 +51,6 @@
<view class="se-flex se-flex-h-c">
<u-icon name="map"></u-icon>
<text class="se-c-text-sub se-fs-24 se-pr-10">{{items.latitude,items.longitude | getDistance}}km</text>
<!-- <text class="se-c-text-sub se-fs-24 se-pr-10">100km</text> -->
<text class="se-c-text-sub se-fs-24 se-pl-10 se-b-l se-toe-3" style="max-width: 220rpx;">{{items.address}}</text>
</view>
<view class="se-c-text se-c-text-sub se-fs-24">


+ 8
- 7
pages/home/index.vue View File

@ -13,14 +13,14 @@
</view> -->
</view>
<view class="se-px-20 se-pt-10 se-zi-s" @click="onCategory()">
<u-search height="40" placeholder="搜索" :showAction="false" v-model="keyword"></u-search>
<u-search height="40" :disabled="true" placeholder="搜索" :showAction="false" v-model="keyword"></u-search>
</view>
<view class="se-pb-20 se-pt-40 se-zi-s">
<view class="se-px-20">
<u-swiper height="300rpx" :indicator="true" style="background-color: #f5f5f5;height: 300rpx;" :list="swiperList" keyName="image" @change="change" @click="click"></u-swiper>
</view>
<view class="se-pt-10 se-px-0 se-py-10 se-ta-l se-flex se-flex-ai-c se-fs-26">
<u-notice-bar direction="column" mode="link" @click="onNoticeDetail" :text="noticeList"></u-notice-bar>
<u-notice-bar direction="column" mode="link" @click="onNoticeDetail" :text="notice"></u-notice-bar>
</view>
</view>
<view class="se-my-20 se-bgc-white se-grid">
@ -85,8 +85,8 @@
},
data(){
return {
notList:[],
notice:[],
noticeList:[],
status:1,
list: [
"https://cdn.uviewui.com/uview/swiper/swiper1.png"
@ -139,8 +139,9 @@
methods:{
onNoticeDetail(index){
console.info(index)
uni.navigateTo({
url:"/pages_subpack/notice/index?id="+this.notice[index].id
url:"/pages_subpack/notice/index?id="+this.notList[index].id
})
},
onNotice(){
@ -148,12 +149,12 @@
let params={}
let arr=[]
noticeList(params).then(response=>{
console.info(response)
console.info('noticeList',response)
response.result.records.forEach(items=>{
arr.push(items.title)
})
that.noticeList = arr
that.notice = response.result
that.notice = arr
that.notList = response.result.records
}).catch(error=>{
})


+ 184
- 33
pages_subpack/category/index.vue View File

@ -1,39 +1,97 @@
<template>
<view class="se-m-10">
<view class="se-px-20 se-pt-10 se-zi-s">
<u-search height="40" placeholder="搜索" :showAction="true" v-model="keyword"></u-search>
</view>
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in tList" :key="indexs" @click="onMasterDetail(items)">
<view class="se-flex se-flex-h-sb">
<view class="se-flex">
<text class="se-fw-6 se-c-black se-fs-30">{{items.title}}</text>
<u-sticky>
<view class="se-px-20 se-pt-10 se-zi-s se-bgc-white">
<u-search height="40" placeholder="搜索" :showAction="true" v-model="keyword" @search="onSearch()" @clickIcon="onSearch()" @custom="onSearch()"></u-search>
</view>
<u-tabs
class="se-bgc-white se-pb-20"
:current="current"
lineWidth="30"
lineColor="#FF7A31"
:activeStyle="{
color: '#303133',
fontWeight: 'bold',
transform: 'scale(1.05)'
}"
:inactiveStyle="{
color: '#606266',
transform: 'scale(1)'
}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;"
:list="navList"
@click="navClick($event)">
</u-tabs>
</u-sticky>
<template v-if="current==1">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in tList" :key="indexs" @click="onTaskDetail(items)">
<view class="se-flex se-flex-h-sb">
<view class="se-flex">
<text class="se-fw-6 se-c-black se-fs-30">{{items.title}}</text>
</view>
<view class="se-c-orange se-fs-32 se-fw-6">
{{items.salaryMin}}-{{items.salaryMax}}k
</view>
</view>
<view class="se-c-orange se-fs-32 se-fw-6">
{{items.salaryMin}}-{{items.salaryMax}}k
<view class="se-py-10">
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryOne_dictText">{{items.categoryOne_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryTwo_dictText">{{items.categoryTwo_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.payType_dictText">{{items.payType_dictText}}</text>
</view>
<view class="se-flex se-flex-h-sb">
<view class="se-flex se-flex-h-c">
<u-icon name="map"></u-icon>
<text class="se-c-text-sub se-fs-24 se-pr-10">{{items.latitude,items.longitude | getDistance}}km</text>
<text class="se-c-text-sub se-fs-24 se-pl-10 se-b-l se-toe-3" style="max-width: 220rpx;">{{items.address}}</text>
</view>
<view class="se-c-text se-c-text-sub se-fs-24">
{{items.createTime | formatTime}}
</view>
<view class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<text class="se-ml-5">立即接单</text>
</view>
</view>
</view>
<view class="se-py-10">
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryOne_dictText">{{items.categoryOne_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryTwo_dictText">{{items.categoryTwo_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.payType_dictText">{{items.payType_dictText}}</text>
<!-- <text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5">水泥搬运</text> -->
</view>
<view class="se-flex se-flex-h-sb">
<view class="se-flex">
<u-icon class="se-ml-10" name="map"></u-icon>
<text class="se-c-text-sub se-fs-24 se-pr-10">{{items.latitude,items.longitude | getDistance}}km</text>
<text class="se-c-text-sub se-fs-24 se-pl-10 se-b-l">{{items.address}}</text>
<u-empty v-if="tList && tList.length==0" mode="list"></u-empty>
</template>
<template v-if="current==0">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in rlist" :key="indexs">
<view class="se-flex se-flex-h-sb" @click.capture="onRoleDetail(items)">
<view class="se-flex">
<view class="se-a-80">
<image class="se-a-80 se-br-p-50 se-bgc-f5" :src="items.hanHaiMember.headImage" mode=""></image>
</view>
<view class="se-ml-20 se-flex se-flex-v-c se-flex-ai-fs">
<text class="se-fw-6 se-c-black se-fs-30">{{items.employAuthenticationPerson.name?items.employAuthenticationPerson.name:items.hanHaiMember.nickName}}</text>
<text class="se-fs-24 se-c-text-third">{{items.sex_dictText}}-{{items.nation?items.nation:"未知"}}</text>
</view>
<view class="se-flex se-flex-h-c">
<view class="se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-ml-20 se-fw-6 se-toe-1" style="max-width: 100rpx;">
{{items.categoryOne_dictText}}
</view>
</view>
</view>
<view class="se-c-orange se-fs-32 se-fw-6">
{{items.salaryMin}}-{{items.salaryMax}}
</view>
</view>
<view class="se-c-text se-c-text-sub se-fs-24">
{{items.createTime | formatTime}}
<view>
<text class="se-c-text-third se-fs-22 se-mt-10">{{items.createTime}}</text>
</view>
<view class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<text class="se-ml-5">立即接单</text>
<view class="se-flex se-flex-h-sb">
<text class="se-c-text-sub se-fs-24 se-toe-5">
{{items.categoryTwo_dictText}}
<!-- <u-parse v-if="items.brief" :content="items.brief"></u-parse> -->
</text>
<view @click.capture="onCustomerService(items.employAuthenticationPerson.phone)" class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<u-icon color="#FF7A31" name="phone-fill"></u-icon>
<text class="se-ml-5">联系他</text>
</view>
</view>
</view>
</view>
<u-empty v-if="tList && tList.length==0" mode="list"></u-empty>
<u-empty v-if="rlist && rlist.length==0" mode="list"></u-empty>
</template>
</view>
</template>
@ -51,18 +109,49 @@
tpageNo:1,
tpageSize:20,
tList:[],
rpageNo:1,
rpageSize:20,
rlist:[],
id:null,
keyword:""
keyword:"",
current:0,
navList:[
{
name: '求职大厅',
},
{
name: '招聘大厅',
}
],
}
},
onLoad(options) {
this.id=options.id
this.onTaskList()
// this.onTaskList()
this.onRolelist()
},
onReachBottom() {
let that = this
that.rpageNo = that.rpageNo + 1
that.onTaskList()
if(that.current==0){
that.rpageNo = that.rpageNo + 1
that.onRolelist()
}else if(that.current==1){
that.tpageNo = that.tpageNo + 1
this.onTaskList()
}
},
onPullDownRefresh() {
let that = this
if(that.current==0){
that.rpageNo = 1
that.rlist=[]
that.onRolelist()
}else if(that.current==1){
that.tpageNo = 1
that.tList = []
this.onTaskList()
}
},
filters:{
formatTime(time) {
@ -124,11 +213,49 @@
}
},
methods:{
navClick(event){
this.current=event.index
this.keyword = ""
if(event.index==0){
this.rpageNo=1
this.onRolelist()
}else if(event.index==1){
this.tpageNo=1
this.onTaskList()
}
},
onSearch(){
let that = this
if(that.current==0){
that.rpageNo = 1
that.onRolelist()
}else if(that.current==1){
that.tpageNo = 1
this.onTaskList()
}
},
onRolelist(){
rolelist({
pageNo:this.rpageNo,
pageSize:this.rpageSize,
title:this.keyword,
}).then(response=>{
console.info("response",response)
if(this.rpageNo==1){
this.rlist = response.result.records
}else{
this.rlist = this.rlist.concat(response.result.records)
}
}).catch(error=>{
})
},
onTaskList(){
taskList({
latitude:uni.getStorageSync("latitude"),
longitude:uni.getStorageSync("longitude"),
pageNo:this.tpageNo,
title:this.keyword,
pageSize:this.tpageSize
}).then(response=>{
if(this.tpageNo==1){
@ -140,12 +267,36 @@
})
},
onMasterDetail(event){
onTaskDetail(event){
console.info(event)
uni.navigateTo({
url:"/pages_subpack/work-detail/index?id="+event.id
})
}
},
onRoleDetail(event){
console.info("event",event)
uni.navigateTo({
url:"/pages_subpack/master-detail/index?id="+event.id
})
},
onCustomerService(phome){
let that = this
// let obj = that.$utils.getkeyContent('phone')
if (uni.canIUse('makePhoneCall')) {
uni.makePhoneCall({
phoneNumber: String(phome),
success: function () {
console.log('拨打电话成功');
},
fail: function () {
console.log('拨打电话失败');
}
});
} else {
console.log('你的设备不支持拨打电话功能');
}
},
}
}
</script>


+ 1
- 1
pages_subpack/notice/index.vue View File

@ -28,7 +28,7 @@
onNotice(){
let that = this;
let params={
id:that.id
newsId:that.id
}
getNotice(params).then(response=>{
that.detail = response.result


+ 49
- 3
pages_subpack/person/index.vue View File

@ -22,6 +22,24 @@
</u-form-item>
</view>
</view>
<view class="se-p-20">
<view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
<u-form-item prop="file" labelWidth="2">
<view class="se-flex se-flex-v-sa">
<view class="se-py-20 se-w-p-100 se-flex">
<view class="line-orange"></view>
<view class="se-ml-10">
个人照片
</view>
</view>
<view class="se-py-20 se-w-p-100">
<u-upload :fileList="form.imageFile" @afterRead="afterImageFileRead" @delete="deleteImageFilePic" name="1"
multiple :maxCount="10"></u-upload>
</view>
</view>
</u-form-item>
</view>
</view>
<view class="se-p-20">
<view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
<u-form-item prop="file" labelWidth="2">
@ -91,7 +109,8 @@
industryId:'',
industryName:'',
cerImageBackFile:[],
cerImageFrontFile:[]
cerImageFrontFile:[],
imageFile:[]
},
rules: {
name: [{
@ -155,7 +174,19 @@
},
trigger: 'blur'
}
]
],
imageFile:[
{
validator: (rule, value, callback) => {
if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
callback(new Error('请选择个人照片'));
} else {
callback();
}
},
trigger: 'blur'
}
],
},
}
},
@ -186,6 +217,7 @@
this.form.industryName = person.industryName
this.form.cerImageBackFile = this.stringToKeyValueArray(person.cerImageBack)
this.form.cerImageFrontFile = this.stringToKeyValueArray(person.cerImageFront)
this.form.imageFile = this.stringToKeyValueArray(person.image)
}
}).catch(error=>{
@ -245,6 +277,7 @@
categoryTwo:that.form.industryName,
cerImageBack:that.form.cerImageBackFile.map(item => item.url).join(','),
cerImageFront:that.form.cerImageFrontFile.map(item => item.url).join(','),
image:that.form.imageFile.map(item => item.url).join(','),
}
// if(that.form.id){
// updateRoleBoss(params).then(response=>{
@ -295,7 +328,20 @@
})
})
})
}
},
async afterImageFileRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.form.imageFile.push({
url
})
})
})
},
deleteImageFilePic(event) {
this.form.imageFile.splice(e.index, 1)
},
}
}
</script>


+ 27
- 25
pages_subpack/work-detail/index.vue View File

@ -97,32 +97,34 @@
},
openAddress(){
let that = this
// wx.openLocation({
// latitude: that.items.latitude.toFixed(2),
// longitude: that.items.longitude.toFixed(2),
// name: that.items.title,
// address: that.items.address,
// scale: 12,
// success: function(res) {
// console.log(JSON.stringify(res));
// },
// fail: function(res) {
// console.log(`openLocation fail:${JSON.stringify(res)}`);
// }
// })
uni.openLocation({
latitude: 30.492121,
longitude: 114.410324,
name: "保利国际中心",
address: "武汉市洪山区关山大道",
scale: 12,
success: function(res) {
console.log(JSON.stringify(res));
},
fail: function(res) {
console.log(`openLocation fail:${JSON.stringify(res)}`);
}
console.info(that.items.latitude)
console.info(that.items.longitude)
wx.openLocation({
latitude: Number(that.items.latitude),
longitude: Number(that.items.longitude),
name: that.items.title,
address: that.items.address,
scale: 12,
success: function(res) {
console.log(JSON.stringify(res));
},
fail: function(res) {
console.log(`openLocation fail:${JSON.stringify(res)}`);
}
})
// uni.openLocation({
// latitude: 30.492121,
// longitude: 114.410324,
// name: "",
// address: "",
// scale: 12,
// success: function(res) {
// console.log(JSON.stringify(res));
// },
// fail: function(res) {
// console.log(`openLocation fail:${JSON.stringify(res)}`);
// }
// })
}
}
}


Loading…
Cancel
Save