123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <template>
- <view>
- <view class="search">
- <view class="bbc">
- <u-search placeholder="搜索工作" :disabled="true" bgColor="white" :showAction="false" @click="go('/pages/job/search')"></u-search>
- </view>
- </view>
- <map :latitude="param.latitude" scale="10.3" show-location :longitude="param.longitude" :markers="markers" @markertap="click"></map>
- <view class="footer">
- <view class="bbc" v-if="item.id">
- <view class="item_job" @click="go('/pages/job/detail?id=' + item.id)">
- <view class="top">
- <view class="title omit">{{ item.title }}</view>
- <view class="salary">{{ item.salary }}</view>
- </view>
- <view class="bot">
- <view class="address omit">
- <text>{{ item.regionName }}</text>
- <text class="icon"></text>
- <text>{{ item.location }}</text>
- </view>
- <view class="distance" v-if="item.distance">距离你{{ item.distance }}km</view>
- </view>
- </view>
- </view>
- <view class="bbc" v-else>
- <view class="item_job">
- <view class="address omit">
- <text>地图共有:{{ list.length }}个全职岗位</text>
- </view>
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- a1: 'https://chenglantimes.com/prod-api/profile/upload/2024/06/15/a1.png',
- a2: 'https://chenglantimes.com/prod-api/profile/upload/2024/06/15/a2.png',
- item: {},
- list: [],
- param: { orderBy: 'id', type: 0 },
- markers: []
- };
- },
- onLoad(e) {
- if (this.getLocation()) {
- this.param.latitude = this.getLocation().latitude;
- this.param.longitude = this.getLocation().longitude;
- }
- this.getData();
- },
- methods: {
- getData() {
- this.http.request({
- url: '/app/position/map',
- data: this.param,
- success: (res) => {
- this.list = res.data.data;
- this.list.forEach((item, index) => {
- this.markers.push({
- id: index,
- width: 40,
- height: 40,
- latitude: item.latitude,
- longitude: item.longitude,
- iconPath: this.a1
- });
- });
- }
- });
- },
- click(e) {
- this.item = this.list[e.markerId];
- let marker = this.markers.filter((item) => item.id == e.markerId)[0];
- this.markers.forEach((item) => (item.iconPath = this.a1));
- marker.iconPath = this.a2;
- },
- go(url) {
- uni.navigateTo({ url: url });
- }
- }
- };
- </script>
- <style lang="scss">
- .search {
- position: fixed;
- width: 100%;
- top: 0px;
- z-index: 11;
- }
- map {
- width: 100%;
- height: 100%;
- position: fixed;
- top: 0px;
- z-index: 1;
- }
- .bbc {
- padding: 15px;
- .item_job {
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);
- }
- }
- .footer {
- position: fixed;
- width: 100%;
- bottom: 20px;
- z-index: 11;
- }
- </style>
|