kaiguan-zfb/page_fenbao/statulist/myshop/index.vue
2024-08-03 18:03:02 +08:00

390 lines
9.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="page">
<u-navbar title="我的店铺" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36'
back-icon-color="#fff" height='50'></u-navbar>
<view class="box">
<view class="top">
<u-search placeholder="搜索" input-align="center" v-model="keyword" @custom="searchs"></u-search>
<view class="cjshop" @click="creadshop">创建店铺</view>
</view>
<view class="list" @scrolltolower="onReachBottom">
<view class="listitem" v-for="(item,index) in wateringList" :key="index" @click="btnshopxq(item.storeId)">
<view class="toptit">
<image src="https://api.ccttiot.com/smartmeter/img/static/uIKex42Zr1fwfzYGgGKz" mode=""></image>
<view class="tit">
{{item.name}}
</view>
<view class="yuan">
<text
style="width: 9rpx;height: 9rpx;border-radius: 50%;margin-right: 5rpx;background-color: #000;display: inline-block;"></text>
<text
style="width: 9rpx;height: 9rpx;border-radius: 50%;margin-right: 5rpx;background-color: #000;display: inline-block;"></text>
<text
style="width: 9rpx;height: 9rpx;border-radius: 50%;margin-right: 5rpx;background-color: #000;display: inline-block;"></text>
</view>
</view>
<view class="rishou">
<view class="rishouwz">
<text> 日收 </text><text> 月收 </text><text> 上月收</text><text> 在线 </text><text> 离线 </text>
</view>
<view class="rishouje">
<text>{{item.todayIncome}}¥</text><text>{{item.monthIncome}}¥</text><text>{{item.lastMonthIncome}}¥</text><text>{{item.onlineCount}}台</text><text>{{item.offlineCount}}台</text>
</view>
</view>
<view class="gzlist">
<view class="jfgz">
<text>审核状态:</text> {{item.status == 1 ? '正常' : '审核中'}}
</view>
<view class="jfgz" style="margin-top: 16rpx;">
<text>绑定人员:</text>{{item.contactName}}
</view>
<view class="phone">
<text>联系电话:</text>{{item.contactMobile}}
</view>
</view>
<view class="yunxing">
<text>已运营{{item.daysDifference + 1}}天</text> <text>{{item.createTime}}</text>
</view>
</view>
<view class="" v-if="showflag" style="width: 100%;height: 200rpx;margin: auto;margin-top: 170rpx;text-align: center;">
<image style="width: 200rpx;height: 200rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/uZFUpcz0YZZ4f4RjvGg2" mode=""></image>
<view class="" style="font-size: 28rpx;color: #808080;margin-top: 30rpx;">暂无更多店铺...</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: " #8883F0",
},
pagenum: 1,
wateringList: [],
pagesize: 10, // 一页多少数据
isLoading: false, // 是否正在加载数据
noMoreData: false, // 是否没有更多数据
total: 0,
keyword: '',
showflag: false
}
},
onLoad() {
},
// 分享到好友(会话)
onShareAppMessage: function () {
return {
title: '创想物联',
path: '/pages/shouye/index'
}
},
// 分享到朋友圈
onShareTimeline: function () {
return {
title: '创想物联',
query: '',
path: '/pages/shouye/index'
}
},
onShow() {
this.pagenum = 1
this.wateringList = []
this.getlist()
},
methods: {
// 请求店铺列表
getlist() {
// if (this.isLoading || this.noMoreData) {
// return;
// }
this.isLoading = true;
this.$u.get("/app/store/list?pageNum=" + this.pagenum + '&pageSize=' + this.pagesize + '&keyword=' + this
.keyword).then(res => {
if (res.code == 200) {
this.total = res.total
if (this.total > 0) {
this.showflag = false
} else {
this.showflag = true
}
if (res.rows.length > 0) {
// 有数据,追加到列表
this.wateringList = this.wateringList.concat(res.rows)
this.pagenum++
// 计算创建到现在运行了多少天
this.wateringList.forEach((item, index) => {
var dateTime = new Date(item.createTime);
if (isNaN(dateTime.getTime())) {
console.error(`无法解析日期时间字符串: ${item.createTime}`);
return;
}
var now = new Date().getTime();
var differenceInMilliseconds = now - dateTime.getTime();
var differenceInDays = Math.floor(differenceInMilliseconds / (1000 * 60 *
60 * 24));
// 直接修改原数组中的对象添加daysDifference属性
item.daysDifference = differenceInDays;
});
} else {
// 没有更多数据
this.noMoreData = true;
}
this.isLoading = false;
}
}).catch(error => {
console.error('获取店铺失败:', error);
this.isLoading = false; // 加载失败也标记为完成
})
},
searchs() {
this.wateringList = []
this.getlist()
},
onReachBottom() {
let sum = this.total / this.pagesize
if (this.pagenum - 1 < sum) {
this.getlist(); // 上拉加载更多
} else {
uni.showToast({
title: '没有更多店铺了',
icon: 'none',
duration: 1000
});
}
},
creadshop() {
uni.navigateTo({
url: '/page_fenbao/statulist/myshop/shopxx/index'
})
},
btnshopxq(id) {
uni.navigateTo({
url: '/page_fenbao/statulist/myshop/shopdetail/index?id=' + id
})
}
}
}
</script>
<style lang="scss">
/deep/ .u-title {
padding-bottom: 22rpx;
}
/deep/ .uicon-nav-back {
padding-bottom: 22rpx;
}
page {
// background: linear-gradient(180deg, #F4F5F7 0%, rgba(255, 255, 255, 0) 100%);
}
.page {
width: 750rpx;
// position: fixed;
// top: 0;
// left: 0;
height: 100vh;
.box {
width: 750rpx;
// height: 100%;
// background: #F4F5F7;
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding-top: 150rpx;
.list {
// overflow-y: scroll;
// height: 100vh;
padding-bottom: 400rpx;
margin-top: 26rpx;
.listitem {
margin-bottom: 28rpx !important;
padding: 12rpx 38rpx;
box-sizing: border-box;
width: 680rpx;
height: 490rpx;
background: #FFFFFF;
border-radius: 38rpx 38rpx 38rpx 38rpx;
margin: auto;
.yunxing {
display: flex;
justify-content: space-between;
font-size: 26rpx;
color: #808080;
margin-top: 26rpx;
}
.phones {
margin-top: 16rpx;
font-size: 26rpx;
color: #1DBE7B;
border-bottom: 1px solid #ccc;
padding-bottom: 26rpx;
box-sizing: border-box;
text {
color: #808080;
}
}
.phone {
margin-top: 16rpx;
font-size: 26rpx;
color: #3D3D3D;
text {
color: #808080;
}
}
.gzlist {
margin-top: 30rpx;
border-bottom: 1rpx solid #ccc;
padding-bottom: 26rpx;
.jfgz {
font-size: 26rpx;
color: #3D3D3D;
text {
color: #808080;
}
}
}
.rishou {
margin-top: 26rpx;
// padding: 0 28rpx;
box-sizing: border-box;
.rishouwz {
display: flex;
justify-content: space-between;
text {
font-size: 26rpx;
color: #808080;
width: 230rpx;
text-align: center;
}
}
.rishouje {
display: flex;
justify-content: space-between;
margin-top: 10rpx;
text {
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
width: 230rpx;
text-align: center;
}
}
}
.toptit {
border-bottom: 1px solid #ccc;
display: flex;
justify-content: space-between;
padding-bottom: 12rpx;
box-sizing: border-box;
image {
width: 48rpx;
height: 48rpx;
margin-top: 10rpx;
}
.tit {
width: 484rpx;
height: 68rpx;
line-height: 68rpx;
padding-left: 20rpx;
background: #F4F3FF;
border-radius: 16rpx 16rpx 16rpx 16rpx;
font-weight: 600;
font-size: 30rpx;
color: #3D3D3D;
// padding: 10rpx 12rpx;
box-sizing: border-box;
}
.bd {
margin-top: 28rpx;
height: 100%;
font-size: 20rpx;
color: #FFFFFF;
padding: 4rpx 12rpx;
box-sizing: border-box;
background: #1DBE7B;
border-radius: 6rpx 6rpx 6rpx 6rpx;
}
.yuan {
margin-top: 10rpx;
}
}
}
}
.top {
width: 750rpx;
height: 150rpx;
background: #FFFFFF;
padding: 45rpx 36rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
position: fixed;
top: 170rpx;
.cjshop {
width: 200rpx;
height: 64rpx;
background-color: #8883F0;
border-radius: 50rpx;
text-align: center;
line-height: 64rpx;
color: #fff;
font-size: 32rpx;
margin-left: 20rpx;
}
/deep/ .u-content {
border: 1px solid #ccc;
border-radius: 50rpx 0 0 50rpx !important;
}
/deep/ .u-action {
border-radius: 0 50rpx 50rpx 0 !important;
width: 112rpx;
height: 65rpx;
line-height: 65rpx;
border: 2rpx solid #ccc;
margin-left: 0;
color: #3D3D3D;
background-color: #f2f2f2;
}
}
}
}
</style>