// 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() { } })