flat: 添加定位
This commit is contained in:
1
App.vue
1
App.vue
@@ -24,6 +24,7 @@
|
||||
this.$store.dispatch('startRefreshTokenTimer')
|
||||
this.$store.dispatch('startRefreshNewsTimer')
|
||||
this.$store.dispatch('refreshAuthState')
|
||||
this.$store.dispatch('getUserLocation')
|
||||
}
|
||||
// #ifdef H5
|
||||
// 企业定制
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;position:absolute;right:0;">
|
||||
<image src="../../static/img/location_new.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
|
||||
<view>--km</view>
|
||||
<view>{{distance(companyitem)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="comment" v-if='comment' @tap.stop="goComment(companyitem.missionNo)">
|
||||
@@ -59,7 +59,10 @@
|
||||
dateFormat
|
||||
} from "../../untils/format.js";
|
||||
import dictionary from '@/common/textdata.js';
|
||||
|
||||
import {
|
||||
addZeroPrefix,
|
||||
getDistanceFromLatLonInKm
|
||||
} from '@/untils/tools.js'
|
||||
export default {
|
||||
beforeCreate: function() {},
|
||||
props: {
|
||||
@@ -80,6 +83,9 @@
|
||||
near: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
position: {
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -92,10 +98,32 @@
|
||||
},
|
||||
computed: {
|
||||
skillNames() {
|
||||
if (this.companyitem.skillNames) {
|
||||
return this.companyitem.skillNames.split(',')
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
distance(item) {
|
||||
const {
|
||||
lon,
|
||||
lat
|
||||
} = item
|
||||
if (this.position && lon) {
|
||||
const {
|
||||
longitude,
|
||||
latitude
|
||||
} = this.position
|
||||
const {
|
||||
m,
|
||||
km
|
||||
} = getDistanceFromLatLonInKm(lat, lon, latitude, longitude)
|
||||
return m > 1000 ? `${km.toFixed(2)}km` : `${m.toFixed(2)}m`
|
||||
}
|
||||
return '--km'
|
||||
},
|
||||
goComment: function(no) {
|
||||
uni.navigateTo({
|
||||
url: `../../pageMy/mycomment/mycomment?missionNo=${encodeURIComponent(no)}`
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;position:absolute;right:0;">
|
||||
<image src="../../static/img/location_new.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
|
||||
<view>--km</view>
|
||||
<view>{{distance(companyitem)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="comment" v-if='comment' @tap.stop="goComment(companyitem.missionNo)">
|
||||
@@ -66,7 +66,10 @@
|
||||
dateFormat
|
||||
} from "../../untils/format.js";
|
||||
import dictionary from '@/common/textdata.js';
|
||||
|
||||
import {
|
||||
addZeroPrefix,
|
||||
getDistanceFromLatLonInKm
|
||||
} from '@/untils/tools.js'
|
||||
export default {
|
||||
beforeCreate: function() {},
|
||||
props: {
|
||||
@@ -99,10 +102,32 @@
|
||||
},
|
||||
computed: {
|
||||
skillNames() {
|
||||
if (this.companyitem.skillNames) {
|
||||
return this.companyitem.skillNames.split(',')
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
distance(item) {
|
||||
const {
|
||||
lon,
|
||||
lat
|
||||
} = item
|
||||
if (this.position && lon) {
|
||||
const {
|
||||
longitude,
|
||||
latitude
|
||||
} = this.position
|
||||
const {
|
||||
m,
|
||||
km
|
||||
} = getDistanceFromLatLonInKm(lat, lon, latitude, longitude)
|
||||
return m > 1000 ? `${km.toFixed(2)}km` : `${m.toFixed(2)}m`
|
||||
}
|
||||
return '--km'
|
||||
},
|
||||
goComment: function(no) {
|
||||
uni.navigateTo({
|
||||
url: `../../pageMy/mycomment/mycomment?missionNo=${encodeURIComponent(no)}`
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<view class="jobcontent" @click="skill">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
零工工种
|
||||
第一技能
|
||||
</view>
|
||||
<view v-if="worktypesName" class="jobText">{{ worktypesName }}</view>
|
||||
<view v-else class="jobText nochoose">请选择</view>
|
||||
@@ -31,7 +31,7 @@
|
||||
<view class="jobcontent" @click="skillLevel">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
岗位工种
|
||||
第二技能
|
||||
</view>
|
||||
<view v-if="skillsName" class="jobText">{{ skillsName }}</view>
|
||||
<view v-else class="jobText nochoose">请选择</view>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<block v-if="activeTab == 0">
|
||||
<view v-if="newList.length > 0" style="padding-bottom: 20rpx;">
|
||||
<block v-for="(item, index) in newList" :key="index">
|
||||
<companyList :companyitem="item"></companyList>
|
||||
<companyList :companyitem="item" :position="userLocation"></companyList>
|
||||
</block>
|
||||
</view>
|
||||
<view v-else>
|
||||
@@ -125,7 +125,9 @@
|
||||
getcoder
|
||||
} from "@/api/map.js";
|
||||
import verticalMenu from '@/components/vertical-menu/vertical-menu.vue';
|
||||
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
export default {
|
||||
components: {
|
||||
vTabs,
|
||||
@@ -134,7 +136,9 @@
|
||||
workList,
|
||||
userrecruitList
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters(['userLocation']),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
policyContentList: [],
|
||||
@@ -180,6 +184,7 @@
|
||||
},
|
||||
onLoad: function() {
|
||||
this.getData()
|
||||
console.log('userLocation', this.userLocation)
|
||||
// this.getPolicy()
|
||||
},
|
||||
onShow: function() {
|
||||
@@ -398,7 +403,8 @@
|
||||
return
|
||||
}
|
||||
if (this.activeTab === 2) {
|
||||
if (this.policyPage.current <= Math.ceil(this.policyPage.total / this.policyPage.size)) {
|
||||
if (this.policyPage.current <= Math.ceil(this.policyPage.total / this.policyPage
|
||||
.size)) {
|
||||
if (this.isSearch) {
|
||||
this.getPolicySearch()
|
||||
} else {
|
||||
@@ -527,7 +533,8 @@
|
||||
this.policyPage.current += 1;
|
||||
this.policyPage.total = res.data.data.total;
|
||||
if (res.data.data && res.data.data.records.length) {
|
||||
this.policyContentList = this.policyContentList.concat(res.data.data.records);
|
||||
this.policyContentList = this.policyContentList.concat(res.data.data
|
||||
.records);
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -6,13 +6,15 @@ const getters = {
|
||||
area: state => state.area,
|
||||
news: state => state.news,
|
||||
auth: state => state.auth,
|
||||
authPass: (state,getters) => getters.auth.laborState && getters.auth.realNameState && getters.auth.bankCardState && getters.auth.insureState,
|
||||
authPass: (state, getters) => getters.auth.laborState && getters.auth.realNameState && getters.auth
|
||||
.bankCardState && getters.auth.insureState,
|
||||
authInfo: state => state.auth.authInfo,
|
||||
face: state => state.face,
|
||||
realName: state => state.authentication.realName,
|
||||
bankCard: state => state.authentication.bankCard,
|
||||
autograph: state => state.authentication.autograph,
|
||||
sendTimes: state => state.user.sendTimes, //接收短信的次数
|
||||
userLocation: state => state.user.userLocation, //用户位置
|
||||
}
|
||||
|
||||
export default getters
|
||||
@@ -64,8 +64,36 @@ const user = {
|
||||
seeEnterprise: getStore({ //用户发送短信次数
|
||||
name: 'enterprise'
|
||||
}) || 0, // 0 个体招工 ; 企业招工
|
||||
userLocation: null
|
||||
},
|
||||
actions: {
|
||||
getUserLocation({
|
||||
commit,
|
||||
dispatch
|
||||
}) {
|
||||
console.log('getUserLocation null1')
|
||||
commit('setLocation', {
|
||||
latitude: 31.133980,
|
||||
longitude: 104.404419,
|
||||
})
|
||||
// uni.getLocation({
|
||||
// type: 'gcj02',
|
||||
// success: function(res) {
|
||||
// const {
|
||||
// longitude,
|
||||
// latitude
|
||||
// } = res
|
||||
// commit('setLocation', {
|
||||
// longitude,
|
||||
// latitude
|
||||
// })
|
||||
// },
|
||||
// fail: function(err) {
|
||||
// commit('setLocation', null)
|
||||
// },
|
||||
// complete: function(e) {}
|
||||
// })
|
||||
},
|
||||
//用户点击radio按钮
|
||||
UserCheckedBtn({
|
||||
commit
|
||||
@@ -186,6 +214,9 @@ const user = {
|
||||
},
|
||||
},
|
||||
mutations: {
|
||||
setLocation(state, val) {
|
||||
state.userLocation = val
|
||||
},
|
||||
setEnterprise(state, val) { // 0 个体招工 ; 企业招工
|
||||
state.seeEnterprise = val;
|
||||
setStore({
|
||||
|
||||
Reference in New Issue
Block a user