521 lines
16 KiB
JavaScript
521 lines
16 KiB
JavaScript
|
// pages/home/home.js
|
|||
|
import {
|
|||
|
areaList
|
|||
|
} from '../../cityFile/area-data/dist/data';
|
|||
|
var QQMapWX = require('../../qqmap-wx-jssdk.js');
|
|||
|
var qqmapsdk = new QQMapWX({
|
|||
|
key: 'Q7ZBZ-EKQWQ-CFU5J-GOWED-2WHXO-3FBGA' // 必填,填自己在腾讯位置服务申请的key
|
|||
|
});
|
|||
|
const url = require("../../utils/url")
|
|||
|
import {
|
|||
|
createStoreBindings
|
|||
|
} from 'mobx-miniprogram-bindings'
|
|||
|
import {
|
|||
|
store
|
|||
|
} from '../../store/store'
|
|||
|
import {
|
|||
|
myhttp
|
|||
|
} from "../../utils/service";
|
|||
|
import { setWatcher } from '../../utils/watch';
|
|||
|
Page({
|
|||
|
/**
|
|||
|
* 页面的初始数据
|
|||
|
*/
|
|||
|
data: {
|
|||
|
areaList,
|
|||
|
selectCity: "扬州市",
|
|||
|
swiperList: [],
|
|||
|
suggestJobTypeList: [],
|
|||
|
defaultList: [{
|
|||
|
suggestJobName: "C语言软件开发工程师",
|
|||
|
suggestJobList: [{
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}, {
|
|||
|
jobId: "1212",
|
|||
|
jobName: "C语言开发工程师Last",
|
|||
|
salary: "8-10k",
|
|||
|
company: "扬州农商银行",
|
|||
|
staffNum: "1000-9999人",
|
|||
|
label: [{
|
|||
|
name: 'c++'
|
|||
|
}, {
|
|||
|
name: 'windows'
|
|||
|
}],
|
|||
|
position: "扬州市-文汇西路"
|
|||
|
}]
|
|||
|
}, {
|
|||
|
suggestJobName: "java后端开发工程师"
|
|||
|
}, {
|
|||
|
suggestJobName: "大数据开发工程师"
|
|||
|
}, {
|
|||
|
suggestJobName: "嵌入式开发工程师"
|
|||
|
}, {
|
|||
|
suggestJobName: "前端开发工程师"
|
|||
|
}],
|
|||
|
showPos: false,
|
|||
|
isLoad: false,
|
|||
|
poplogin: false
|
|||
|
},
|
|||
|
poploginHandler(e){
|
|||
|
this.setData({
|
|||
|
poplogin:e.detail.poplogin,
|
|||
|
})
|
|||
|
},
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
getLocation() {
|
|||
|
var that = this;
|
|||
|
wx.getLocation({
|
|||
|
type: 'wgs84',
|
|||
|
success(res) {
|
|||
|
qqmapsdk.reverseGeocoder({
|
|||
|
//位置坐标,默认获取当前位置,非必须参数
|
|||
|
//Object格式
|
|||
|
location: {
|
|||
|
latitude: res.latitude,
|
|||
|
longitude: res.longitude
|
|||
|
},
|
|||
|
success: function (res) { //成功后的回调
|
|||
|
console.log(res.result.ad_info.city);
|
|||
|
that.setData({
|
|||
|
selectCity: res.result.ad_info.city
|
|||
|
})
|
|||
|
wx.setStorageSync('city', res.result.ad_info.city)
|
|||
|
},
|
|||
|
fail: function (error) {
|
|||
|
console.error(error);
|
|||
|
},
|
|||
|
complete: function (res) {
|
|||
|
console.log(res);
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
popupPos() {
|
|||
|
this.setData({
|
|||
|
showPos: true
|
|||
|
})
|
|||
|
},
|
|||
|
searchBoxHandler() {
|
|||
|
if (this.data.isLoad == false) {
|
|||
|
this.startlogin()
|
|||
|
} else {
|
|||
|
if (this.data.userInfo) {
|
|||
|
wx.showToast({
|
|||
|
title: '请先填写/上传简历',
|
|||
|
icon: "none",
|
|||
|
duration: 1500,
|
|||
|
mase: true
|
|||
|
})
|
|||
|
} else {
|
|||
|
wx.navigateTo({
|
|||
|
url: '/homeSub/pages/search/search'
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
writeResume() {
|
|||
|
wx.navigateTo({
|
|||
|
url: '/homeSub/pages/writeResume/writeResume',
|
|||
|
})
|
|||
|
},
|
|||
|
uploadResume() {
|
|||
|
console.log("用户token:" + wx.getStorageSync("token"))
|
|||
|
this.chooseFile()
|
|||
|
},
|
|||
|
chooseFile() {
|
|||
|
const that = this
|
|||
|
wx.chooseMessageFile({
|
|||
|
count: 1, //能选择文件的数量
|
|||
|
type: 'all', //能选择文件的类型,我这里只允许上传文件.还有视频,图片,或者都可以
|
|||
|
success(res) {
|
|||
|
console.log(res)
|
|||
|
var size = res.tempFiles[0].size;
|
|||
|
var filename = res.tempFiles[0].name;
|
|||
|
|
|||
|
if (size > 4194304 || !/(\.doc|\.docx|\.pdf|\.png|\.jpg|\.bmp)$/.test(filename)) { //我还限制了文件的大小和具体文件类型
|
|||
|
wx.showToast({
|
|||
|
title: '简历文件大小不能超过4MB!只能上传pdf、doc、docx、jpg、png、bmp格式',
|
|||
|
icon: "none",
|
|||
|
duration: 4000,
|
|||
|
mask: true
|
|||
|
})
|
|||
|
} else {
|
|||
|
console.log(filename)
|
|||
|
console.log(res.tempFiles[0].path)
|
|||
|
wx.uploadFile({
|
|||
|
url: url.backUrl + "/upload_resume", //上传的路径
|
|||
|
filePath: res.tempFiles[0].path, //刚刚在data保存的文件路径
|
|||
|
name: 'file', //后台获取的凭据
|
|||
|
header: {
|
|||
|
'Content-Type': 'multipart/form-data',
|
|||
|
"authorization": wx.getStorageSync('token') || ""
|
|||
|
},
|
|||
|
success(res) {
|
|||
|
console.log(res)
|
|||
|
that.yesResume()
|
|||
|
console.log(that.data.userInfo)
|
|||
|
wx.showToast({ //做个提示或者别的操作
|
|||
|
title: '成功上传',
|
|||
|
icon: "none",
|
|||
|
duration: 2000,
|
|||
|
mask: true,
|
|||
|
success: function (res) {}
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
// 显示组件
|
|||
|
showSelector() {
|
|||
|
this.setData({
|
|||
|
selectorVisible: true,
|
|||
|
});
|
|||
|
},
|
|||
|
watch: {
|
|||
|
poplogin: function (newValue) {
|
|||
|
console.log(newValue,"登录状态")
|
|||
|
if(newValue == false){
|
|||
|
this.yesLoad()
|
|||
|
this.getRecommendList()
|
|||
|
}
|
|||
|
},
|
|||
|
},
|
|||
|
// 当用户选择了组件中的城市之后的回调函数
|
|||
|
onSelectCity(e) {
|
|||
|
const {
|
|||
|
province,
|
|||
|
city
|
|||
|
} = e.detail;
|
|||
|
this.setData({
|
|||
|
selectedProvince: province,
|
|||
|
selectedCity: city,
|
|||
|
});
|
|||
|
},
|
|||
|
getSwiperImage() {
|
|||
|
myhttp({
|
|||
|
url: url.backUrl + "/vx_interview/getCarouselChart",
|
|||
|
data: {},
|
|||
|
method: "GET"
|
|||
|
}).then((res) => {
|
|||
|
if (res.code == 0) {
|
|||
|
const d = res.data
|
|||
|
var swiperImgList = JSON.parse(d)
|
|||
|
console.log(swiperImgList)
|
|||
|
var swiperImage = swiperImgList.map(item => ({
|
|||
|
image_src: item.url
|
|||
|
}))
|
|||
|
this.setData({
|
|||
|
swiperList: swiperImage
|
|||
|
})
|
|||
|
} else {
|
|||
|
wx.showToast({
|
|||
|
title: '轮播图信息获取失败',
|
|||
|
icon: "error"
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
onLoad(options) {
|
|||
|
// this.computeScrollViewHeight()
|
|||
|
setWatcher(this);
|
|||
|
this.getLocation()
|
|||
|
this.getSwiperImage()
|
|||
|
// wx.setTabBarBadge({
|
|||
|
// index: 2,
|
|||
|
// text: 10+""
|
|||
|
// })
|
|||
|
this.storeBindings = createStoreBindings(this, {
|
|||
|
store,
|
|||
|
fields: ['isLoad', 'userInfo', 'myResume'],
|
|||
|
actions: ['yesLoad', 'noLoad', 'yesResume', 'noResume', 'setResumeInfo']
|
|||
|
})
|
|||
|
const token = wx.getStorageSync('token') || '';
|
|||
|
if (token) {
|
|||
|
this.yesLoad()
|
|||
|
this.getRecommendList()
|
|||
|
} else {
|
|||
|
this.noLoad()
|
|||
|
console.log("onload 默认推荐")
|
|||
|
// this.getDefaultList()
|
|||
|
}
|
|||
|
|
|||
|
if (wx.getStorageSync("myResume") === '') {
|
|||
|
this.noResume()
|
|||
|
} else {
|
|||
|
this.yesResume()
|
|||
|
this.setResumeInfo(wx.getStorageSync("myResume"))
|
|||
|
}
|
|||
|
|
|||
|
},
|
|||
|
getDefaultList() {
|
|||
|
myhttp({
|
|||
|
url: url.backUrl + "/vxJob/getSuggestList?userId=" + 32,
|
|||
|
data: {
|
|||
|
|
|||
|
},
|
|||
|
method: "GET"
|
|||
|
}).then((res) => {
|
|||
|
console.log(res)
|
|||
|
if (res.code == 0) {
|
|||
|
var d = res.data
|
|||
|
d = d.map(item => ({
|
|||
|
suggestJobList: item.suggestJobList.map(i => ({
|
|||
|
company: i.company,
|
|||
|
createTime: i.createTime,
|
|||
|
createUser: i.createUser,
|
|||
|
jobId: i.id,
|
|||
|
jobName: i.jobName,
|
|||
|
position: i.position,
|
|||
|
salary: i.salary,
|
|||
|
staffNum: " " + i.staffNumber + "人",
|
|||
|
updateTime: i.updateTime,
|
|||
|
updateUser: i.updateUser,
|
|||
|
label: i.label.slice(1, -1).split(', ').map(x => ({
|
|||
|
name: x
|
|||
|
}))
|
|||
|
})),
|
|||
|
suggestJobName: item.suggestJobName
|
|||
|
}))
|
|||
|
console.log(d)
|
|||
|
this.setData({
|
|||
|
suggestJobTypeList: d
|
|||
|
})
|
|||
|
// suggestJobTypeList
|
|||
|
} else {
|
|||
|
wx.showToast({
|
|||
|
title: '获取岗位失败',
|
|||
|
icon: "error"
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
getRecommendList() {
|
|||
|
myhttp({
|
|||
|
url: url.backUrl + "/vxJob/getSuggestList?userId=" + wx.getStorageSync('userInfo').id,
|
|||
|
data: {
|
|||
|
|
|||
|
},
|
|||
|
method: "GET"
|
|||
|
}).then((res) => {
|
|||
|
console.log(res)
|
|||
|
if (res.code == 0) {
|
|||
|
var d = res.data
|
|||
|
d = d.map(item => ({
|
|||
|
suggestJobList: item.suggestJobList.map(i => ({
|
|||
|
company: i.company,
|
|||
|
createTime: i.createTime,
|
|||
|
createUser: i.createUser,
|
|||
|
jobId: i.id,
|
|||
|
jobName: i.jobName,
|
|||
|
position: i.position,
|
|||
|
salary: i.salary,
|
|||
|
staffNum: " " + i.staffNumber + "人",
|
|||
|
updateTime: i.updateTime,
|
|||
|
updateUser: i.updateUser,
|
|||
|
label: i.label.slice(1, -1).split(', ').map(x => ({
|
|||
|
name: x
|
|||
|
}))
|
|||
|
})),
|
|||
|
suggestJobName: item.suggestJobName
|
|||
|
}))
|
|||
|
console.log(d)
|
|||
|
this.setData({
|
|||
|
suggestJobTypeList: d
|
|||
|
})
|
|||
|
// suggestJobTypeList
|
|||
|
} else {
|
|||
|
// wx.showToast({
|
|||
|
// title: '关注推荐岗位失败',
|
|||
|
// icon: "error"
|
|||
|
// })
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
confirmPos(e) {
|
|||
|
console.log(e.detail.values)
|
|||
|
this.setData({
|
|||
|
selectCity: e.detail.values[1].name,
|
|||
|
showPos: false
|
|||
|
})
|
|||
|
wx.setStorageSync('city', e.detail.values[1].name)
|
|||
|
},
|
|||
|
cancelPos() {
|
|||
|
this.setData({
|
|||
|
showPos: false
|
|||
|
})
|
|||
|
},
|
|||
|
jumpJobDetail(e) {
|
|||
|
wx.navigateTo({
|
|||
|
url: '/homeSub/pages/jobDetail/jobDetail?jobId=' + e.currentTarget.dataset.jobid
|
|||
|
})
|
|||
|
},
|
|||
|
startlogin() {
|
|||
|
this.setData({
|
|||
|
poplogin: true
|
|||
|
})
|
|||
|
},
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面初次渲染完成
|
|||
|
*/
|
|||
|
onReady() {
|
|||
|
|
|||
|
},
|
|||
|
onPageScroll(res) {
|
|||
|
|
|||
|
},
|
|||
|
// //计算 scroll-view 的高度
|
|||
|
// computeScrollViewHeight() {
|
|||
|
// let that = this
|
|||
|
// let query = wx.createSelectorQuery().in(this)
|
|||
|
// query.select('.position-search-box').boundingClientRect(function (res) {
|
|||
|
// //得到搜索框的高度
|
|||
|
// let searchHeight = res.height
|
|||
|
// //scroll-view的高度 = 屏幕高度- tab高(50) - 10 - 10 - searchHeight
|
|||
|
// //获取屏幕可用高度
|
|||
|
// let screenHeight = wx.getSystemInfoSync().windowHeight
|
|||
|
// //计算 scroll-view 的高度
|
|||
|
// let scrollHeight = screenHeight - searchHeight*6.7 - 70
|
|||
|
// that.setData({
|
|||
|
// scrollHeight: scrollHeight
|
|||
|
// })
|
|||
|
// }).exec()
|
|||
|
|
|||
|
// },
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面显示
|
|||
|
*/
|
|||
|
onShow() {
|
|||
|
const token = wx.getStorageSync('token') || '';
|
|||
|
if (token) {
|
|||
|
this.yesLoad()
|
|||
|
this.getRecommendList()
|
|||
|
} else {
|
|||
|
this.noLoad()
|
|||
|
// this.getDefaultList()
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面隐藏
|
|||
|
*/
|
|||
|
onHide() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面卸载
|
|||
|
*/
|
|||
|
onUnload() {
|
|||
|
this.storeBindings.destroyStoreBindings();
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面相关事件处理函数--监听用户下拉动作
|
|||
|
*/
|
|||
|
onPullDownRefresh() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面上拉触底事件的处理函数
|
|||
|
*/
|
|||
|
onReachBottom() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 用户点击右上角分享
|
|||
|
*/
|
|||
|
onShareAppMessage() {
|
|||
|
|
|||
|
}
|
|||
|
})
|