暖心人
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

206 lines
5.2 KiB

<template>
<view class="body-background"></view>
<u-navbar
:title="title"
:auto-back="true"
left-icon-size="40rpx"
:safe-area-inset-top="true"
:placeholder="true"
bgColor="#fff"
></u-navbar>
<view class="street-container">
<view class="item" v-for="(item,index) in lists">
<view class="title-container">
<view class="title">{{ item.name }}</view>
</view>
<view class="address-container">
<view class="address-main">
<view class="address-icon">
<u-icon :name="staticImage.map"></u-icon>
</view>
<view class="address">
{{ item.address }}
</view>
</view>
<view class="button">
<u-button
:custom-style="{border:'none'}" class="custom-style" size="small" radius="10" color="#178AF2" text="一键导航" @click="callLocation(item)"></u-button>
</view>
</view>
<view class="phone-container">
<view class="phone-main">
<view class="phone-icon">
<u-icon :name="staticImage.phone"></u-icon>
</view>
<view class="phone">
{{ item.tel }}
</view>
</view>
<view class="button">
<u-button :custom-style="{border:'none'}" class="custom-style" size="small" radius="10" color="#FF9545" text="一键拨号" @click="callPhone(item.tel)"></u-button>
</view>
</view>
</view>
<u-loadmore :status="status" fontSize="28" marginBottom="50" marginTop="30" @loadmore="getStreetPhoneList()"/>
</view>
</template>
<script>
import {
imghost
} from '@/config/host.js'
import MzSubsection from '@/components/MzSubsection/Index.vue';
import api from '@/utils/functions.js';
import {streetCallList} from "@/api/other";
import {lineList} from "@/api/line";
import {userLineList} from "@/api/user";
export default {
components: {
MzSubsection
},
data() {
return {
list: [{
name: '最新资讯'
}, {
name: '表彰评优'
}, {
name: '活动回顾'
}],
// 或者如下,也可以配置keyName参数修改对象键名
// list: [{name: '未付款'}, {name: '待评价'}, {name: '已付款'}],
current: 1,
title: '街道联系方式',
loading: true,
staticImage: {
bg: imghost + '/BG.png',
newIcon: imghost + '/new-icon.png',
map: imghost + '/street-map.png',
phone: imghost + '/street-phone.png',
},
user: {
avatar: imghost + '/banner.png',
nickname: '清晨的风',
coupons: 221,
id: 88685,
},
isTop: false,
lists: [],
pages:{
page:1,
limit:10,
},
size: {
height: 500,
},
status:'loadmore',
}
},
onLoad() {
},
computed: {
api() {
return api
},
sectionStyle() {
const style = {};
style.padding = '0 26rpx';
style.position = 'sticky';
style.zIndex = '9999';
style.top = api.navHeight().systemBarHeight + 'px'
return style;
},
listHeight() {
let that = this;
let height;
let info = uni.createSelectorQuery().in(this).select('.subsection');
info.boundingClientRect(function (data) {
that.size.height = data.height;
}).exec(function (res) {
});
// that.size.height = (api.navHeight().windowHeight - height);
}
},
methods: {
callPhone(phone){
uni.makePhoneCall({
phoneNumber: phone?.toString()
});
},
callLocation(item){
uni.openLocation({
latitude:parseFloat(item.coordinate[1]),
longitude:parseFloat(item.coordinate[0]),
name:item.address,
})
},
chatDetail(item) {
wx.navigateTo({
url: '/pages/ChatDetail/index?id=' + item.id
});
},
checkSection(index) {
this.current = index;
},
scrollToLower() {
},
getStreetPhoneList(clear = false) {
if(clear){
this.status = 'loadmore'
this.pages.page = 1;
this.pages.limit = 10;
this.lists = [];
}
if(this.status === 'nomore'){
return false;
}
this.status = 'loading';
streetCallList(this.pages).then(res => {
if(res.data.length === 0){
this.status = 'nomore';
}else{
this.status = 'loadmore';
}
this.lists.push.apply(this.lists,res.data.map(item => {
item.coordinate = item.coordinate.split(',')
return item;
}))
}).catch(err => {
this.status = 'loadmore';
})
this.pages.page++;
},
},
onPageScroll(res) {
if (res.scrollTop <= 20) {
uni.$emit('isTop', true);
} else {
uni.$emit('isTop', false);
}
},
created() {
// this.listHeight();
// this.pagePadding = (api.navHeight().navPaddingTop +
// api.navHeight().navHeight + (api.navHeight().headerPadding * 2))
},
mounted() {
this.getStreetPhoneList();
},
onReachBottom(){
console.log('bottom')
this.getStreetPhoneList();
},
}
</script>
<style lang="scss">
@import './components/index.scss';
</style>