NurseStationApp/pages/site/site.vue
2022-12-06 10:10:34 +08:00

207 lines
5.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="app">
<view class="nursetation" @tap='detailed()'>
<text class="what">什么是护理站</text>
<u-icon class="icon" name="arrow-right"></u-icon>
</view>
<view class="map" style="height:35vh;">
<map style="width:100%; height:100%" scale="17" :latitude="latitude" :longitude="longitude"
:markers="markers"></map>
</view>
<view class="conNew">
<view class="addressContent" v-for="(item,index) in nursestationlist" :key="index">
<view class="lists">
<view class="nurse">{{item.nurseStationName}}</view>
<view class="distance">距离您{{item.distance}}KM</view>
<image class="background" :src="item.stationPictureUrl" mode=""></image>
<view class="understand" @tap='godetails(item)'>
点击了解
</view>
</view>
</view>
</view>
<view class="masks" style="" v-if="mask">
<view class="mask">
<view class="picture">
<image src="../../static/locatinsmall.png"></image>
</view>
<view class="text">
请打开系统定位
</view>
<view class="btns">
<view class="bt" @tap='cancel()'>取消</view>
<view class="btn" @tap='getlocation()'>确定</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
nearbyList,
getPatientInfo
} from '@/api/site/site.js';
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
nursestationlist: [],
mask: false,
pageNum: 1,
pageSize: 10,
total: 0,
//map地图所需
id: 0, // 使用 marker点击事件 需要填写id
// latitude: 39.909,
// longitude: 116.39742,
latitude: 36.649372,
longitude: 116.977102,
nurseTypeCode: '',
markers: [],
covers: [],
}
},
methods: {
getlocation() {
var that = this
uni.getLocation({
type: 'wgs84',
success: res => {
that.latitude = res.latitude
that.longitude = res.longitude
that.markers.push({
id: 3,
latitude: res.latitude,
longitude: res.longitude,
width: 20,
height: 25,
iconPath: "../../static/locatinsmall.png"
})
that.requestinfo();
},
fail: error => {
uni.showModal({
title: '提示',
content: '获取定位失败,是否授权打开定位',
success: (res) => {
if (res.confirm) {
uni.getSystemInfo({
success: (sys) => {
if (sys.platform == 'ios') {
plus.runtime.openURL(
"app-settings://");
} else {
var main = plus.android
.runtimeMainActivity();
var Intent = plus.android.importClass(
"android.content.Intent");
//可能应该直接进入应用列表的权限设置?=> android.settings.APPLICATION_SETTINGS
var mIntent = new Intent(
'android.settings.LOCATION_SOURCE_SETTINGS'
);
main.startActivity(mIntent);
}
}
})
}
}
})
}
});
},
requestinfo() {
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode).then(res => {
res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl
})
this.nursestationlist = res.rows
this.mask = false
this.total = res.total
// console.log(this.nursestationlist)
})
},
godetails(item) {
console.log(item)
uni.navigateTo({
url: `/pages/nursestation/nursestation?nurseStationId=${item.nurseStationId}`
})
},
detailed() {
uni.navigateTo({
url: `/pages/detail/detail`
})
},
cancel() {
this.mask = false
uni.switchTab({
url: '/pages/homepage/homepage',
})
},
},
onReachBottom() {
if (this.nursestationlist.length >= this.total) {} else {
this.pageNum++;
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode)
.then(res => {
res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl
this.nursestationlist.push(e)
})
})
}
},
onPullDownRefresh() { //下拉刷新
this.pageNum = 1;
nearbyList(this.pageSize, this.pageNum, this.longitude, this.latitude, this.nurseTypeCode, this.iptVal)
.then(res => {
res.rows.forEach(e => {
e.stationPictureUrl = baseurl + e.stationPictureUrl
})
this.nursestationlist = res.rows
})
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
watch: {
iptVal() {
// this.requestinfo()
},
},
onLoad() {
var that = this
try {
const value = uni.getStorageSync('patientId');
if (value) {
getPatientInfo(value).then(res => {
if (res.code == 200) {
if (res.data.homeLatitude && res.data.homeLongitude) {
that.latitude = res.data.homeLatitude
that.longitude = res.data.homeLongitude
that.markers.push({
id: 3,
latitude: res.data.homeLatitude,
longitude: res.data.homeLongitude,
width: 20,
height: 25,
iconPath: "../../static/locatinsmall.png"
})
that.requestinfo();
} else {
that.getlocation()
}
} else {
that.getlocation()
}
})
} else {
that.getlocation()
}
} catch (e) {}
},
}
</script>
<style lang="scss">
@import './site.scss'
</style>