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.
122 lines
3.4 KiB
122 lines
3.4 KiB
<template> |
|
<view class="body-background" :style="{backgroundImage:'url('+staticImage.bodyBackground+')'}"></view> |
|
<view class="app-wallpaper"> |
|
|
|
<view class="chat-list-container row"> |
|
<view v-for="item in chatList" class="chat-list-item-container col-12" :style="{ |
|
backgroundImage:'url('+staticImage.chatBgImage+')' |
|
}"> |
|
<view class="chat-item-background" @click="chatDetail(item)" :style="{ |
|
backgroundImage:'url('+staticImage.chatLTBgImage+')' |
|
}"> |
|
<view class="chat-item-content row"> |
|
<view class="chat-item-left"> |
|
<image class="img" :src="item.avatar" mode="aspectFill"/> |
|
</view> |
|
<view class="chat-item-right"> |
|
<view class="chat-item-title-group row"> |
|
<view class="chat-item-title">{{item.name}}</view> |
|
<view class="chat-item-time">{{item.create_time}}</view> |
|
</view> |
|
<view class="chat-item-desc"> |
|
{{item.info}} |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<!-- <view class="chat-item-end row">--> |
|
<!-- — 没有更多内容了 —--> |
|
<!-- </view>--> |
|
</view> |
|
<u-loadmore :status="status" fontSize="28" |
|
color="#ACB4B6" |
|
line |
|
line-color="#ACB4B6" |
|
marginBottom="30" marginTop="30" @loadmore="getChatList()"/> |
|
</view> |
|
|
|
</template> |
|
|
|
<script> |
|
import { |
|
imghost |
|
} from '@/config/host.js' |
|
import HeaderNav from '@/components/HeaderNav/Index.vue'; |
|
import FooterNav from '@/components/FooterNav/Index.vue'; |
|
import RightNav from '@/components/RightNav/Index.vue'; |
|
import MzButton from '@/components/MzButton/Index.vue'; |
|
import api from '@/utils/functions.js'; |
|
import {chatList} from "@/api/chat"; |
|
import {cardList} from "@/api/card"; |
|
export default { |
|
components: { |
|
HeaderNav, |
|
FooterNav, |
|
RightNav, |
|
MzButton |
|
}, |
|
data() { |
|
return { |
|
title: 'Hello', |
|
loading: true, |
|
staticImage: { |
|
screenActiveImg: imghost + '/static/image/banner.png', |
|
orderCardBackground: imghost + '/static/image/order-card-background.png', |
|
wallpaperBgImage:imghost +'/static/image/background.png', |
|
chatBgImage:imghost +'/static/image/chat-list-background.png', |
|
chatLTBgImage:imghost +'/static/image/chat-list-lt-background.png', |
|
bodyBackground:imghost+'/static/image/background.png' |
|
}, |
|
isTop: false, |
|
chatList:[], |
|
status:'loadmore', |
|
page:1, |
|
} |
|
}, |
|
mounted() { |
|
this.getChatList(); |
|
}, |
|
methods: { |
|
chatDetail(item){ |
|
uni.navigateTo({ |
|
url:'/pages/ChatDetail/index?id='+item.order_service_id |
|
}); |
|
}, |
|
getChatList(){ |
|
|
|
if(this.status === 'nomre'){ |
|
return false; |
|
} |
|
this.status = 'loading'; |
|
chatList(this.page, this.$store.state.userInfo.store_id > 0).then(res => { |
|
this.chatList.push.apply(this.chatList,res.data); |
|
if(res.data.length === 0){ |
|
this.status = 'nomore'; |
|
}else{ |
|
this.status = 'loadmore'; |
|
} |
|
this.page++; |
|
}) |
|
} |
|
}, |
|
onReachBottom() { |
|
this.getChatList(); |
|
}, |
|
onPageScroll(res) { |
|
if(res.scrollTop <= 20){ |
|
uni.$emit('isTop', true); |
|
}else{ |
|
uni.$emit('isTop', false); |
|
} |
|
}, |
|
created() { |
|
// this.pagePadding = (api.navHeight().navPaddingTop + |
|
// api.navHeight().navHeight + (api.navHeight().headerPadding * 2)) |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
@import '@/pages/Index/components/ChatPage/components/index.scss'; |
|
</style> |