556 lines
15 KiB
Vue
556 lines
15 KiB
Vue
<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="serch">
|
||
<view class="lt">
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/uaG7R4JLfYOzBhWfDN0j" mode=""></image><input type="text" v-model="keyword" placeholder="搜索门店"/> <view class="sousuo" @click="searchs">搜索</view>
|
||
</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/uFKbeneDcYbmekpVuWHm" mode="aspectFit"></image>
|
||
<view class="tit">
|
||
{{item.name}}
|
||
</view>
|
||
<view class="yuan" style="color: #8883F0;">
|
||
<text
|
||
style="width: 9rpx;height: 9rpx;border-radius: 50%;margin-right: 5rpx;background-color: #8883F0;display: inline-block;"></text>
|
||
运营中<u-icon name="arrow-right" color="#8883F0" size="28"></u-icon>
|
||
</view>
|
||
</view>
|
||
<view class="rishou">
|
||
<view class="rishouwz">
|
||
<text> 今日订单 </text><text> 今日收入 </text><text> 上月收入</text><text>设备状态 </text>
|
||
</view>
|
||
<view class="rishouje">
|
||
<text>¥{{item.todayOrderCount == null ? '--' : item.todayOrderCount}}</text>
|
||
<text>¥{{item.todayIncome == null ? '--' : item.todayIncome}}</text>
|
||
<text>¥{{item.lastMonthIncome == undefined ? '--' : item.lastMonthIncome}}</text>
|
||
<text> <text style="color: #8883F0;">{{item.onlineCount == undefined ? '--' : item.onlineCount}}/</text> {{item.offlineCount == undefined ? '--' : item.offlineCount}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="gzlist">
|
||
<view class="jfgz" v-if="item.status == 2">
|
||
<text>审核状态:</text> 审核中
|
||
</view>
|
||
<view class="jfgz" v-if="item.status == 1">
|
||
<text>审核状态:</text> 正常
|
||
</view>
|
||
<view class="jfgz" style="margin-top: 16rpx;">
|
||
<text>是否生效:</text> {{item.enabled == false ? '未生效' : '生效'}}
|
||
</view>
|
||
<view class="jfgz" style="margin-top: 16rpx;">
|
||
<text>客服名称:</text>{{item.contactName}}
|
||
</view>
|
||
<view class="phone">
|
||
<text>客服电话:</text>{{item.contactMobile}}
|
||
</view>
|
||
<view class="icons">
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/uVj4z4rdIZGK0sVcMlHi" style="width: 116rpx;" mode="aspectFit"
|
||
@click.stop="nav(item)"></image>
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/u9IYNLl7G83pOXtQbaYj" mode="aspectFit"
|
||
@click.stop="btnpag(4,item)"></image>
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/uVYNIcmP5ytOhhfpasrt" style="width: 116rpx;" mode="aspectFit"
|
||
@click.stop="btnpag(5,item)"></image>
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/uoyO7psgUNmNuhPDoOmH" mode="aspectFit"
|
||
@click.stop="btnpag(2,item)"></image>
|
||
<image src="https://api.ccttiot.com/smartmeter/img/static/uu7AtppWYWNucDPLkcFu" mode="aspectFit"
|
||
@click.stop="btnpag(3,item)"></image>
|
||
</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="aspectFit"></image>
|
||
<view class="" style="font-size: 28rpx;color: #808080;margin-top: 30rpx;">暂无更多店铺...</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="anniu" @click="creadshop" v-if="types != 11">
|
||
<view class="btn">
|
||
新建店铺
|
||
</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,
|
||
types:null
|
||
}
|
||
},
|
||
onLoad(option) {
|
||
if(option.types){
|
||
this.types = option.types
|
||
}
|
||
},
|
||
// 分享到好友(会话)
|
||
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: {
|
||
btnpag(num,item) {
|
||
if (num == 1) {
|
||
uni.navigateTo({
|
||
url: '/page_fenbao/statulist/myshop/shebeilist/index?storeId=' + item.storeId
|
||
})
|
||
} else if (num == 2) {
|
||
if(item.status == 2){
|
||
uni.showToast({
|
||
title: '已有未审核店铺信息',
|
||
icon: 'none',
|
||
duration: 1000
|
||
})
|
||
}else{
|
||
uni.navigateTo({
|
||
url: '/page_fenbao/statulist/myshop/editshop/index?obj=' + JSON.stringify(item)
|
||
})
|
||
}
|
||
} else if (num == 3) {
|
||
let vm = this
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '你确定要注销这个店铺吗?',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
vm.$u.delete("/app/store/" + item.storeId).then(res => {
|
||
if (res.code == 200) {
|
||
uni.showToast({
|
||
title: '删除成功',
|
||
icon: 'success',
|
||
duration: 1000
|
||
})
|
||
setTimeout(() => {
|
||
uni.navigateBack()
|
||
}, 1500)
|
||
} else if (res.code == 500) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1000
|
||
})
|
||
}
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击了取消')
|
||
}
|
||
}
|
||
})
|
||
}else if(num == 4){
|
||
uni.navigateTo({
|
||
url:'/page_components/peizhi?obj=' + JSON.stringify(item)
|
||
})
|
||
}else if(num == 5){
|
||
// uni.navigateTo({
|
||
// url:'/pages/shopewm?storeId=' + item.storeId
|
||
// })
|
||
uni.navigateTo({
|
||
url:'/page_geren/buyCard?storeId=' + item.storeId
|
||
})
|
||
// uni.showToast({
|
||
// title: '功能暂未开放',
|
||
// icon: 'none',
|
||
// duration: 1000
|
||
// })
|
||
}
|
||
},
|
||
// 点击跳转到合伙人
|
||
nav(item){
|
||
uni.navigateTo({
|
||
url:'/page_fenbao/hehuoren/index?storeId=' + item.storeId,
|
||
})
|
||
},
|
||
// 请求店铺列表
|
||
getlist() {
|
||
if(this.types == '11'){
|
||
this.isLoading = true;
|
||
this.$u.get("/staff/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 // 加载失败也标记为完成
|
||
})
|
||
}else{
|
||
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;
|
||
}
|
||
.anniu{
|
||
width: 750rpx;
|
||
height: 152rpx;
|
||
padding-top: 24rpx;
|
||
box-sizing: border-box;
|
||
background: #FFFFFF;
|
||
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3);
|
||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: 0;
|
||
.btn{
|
||
width: 680rpx;
|
||
height: 104rpx;
|
||
background: #8883F0;
|
||
border-radius: 30rpx;
|
||
font-weight: 600;
|
||
font-size: 36rpx;
|
||
color: #FFFFFF;
|
||
text-align: center;
|
||
line-height: 104rpx;
|
||
margin: auto;
|
||
}
|
||
}
|
||
.serch{
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 0 36rpx;
|
||
box-sizing: border-box;
|
||
padding-top: 40rpx;
|
||
padding-bottom: 22rpx;
|
||
background-color: #fff;
|
||
.lt{
|
||
display: flex;
|
||
align-items: center;
|
||
width: 100%;
|
||
height: 68rpx;
|
||
border: 2rpx solid #8883F0;
|
||
border-radius: 24rpx;
|
||
padding-left: 30rpx;
|
||
box-sizing: border-box;
|
||
.sousuo{
|
||
width: 140rpx;
|
||
height: 66rpx;
|
||
text-align: center;
|
||
line-height: 66rpx;
|
||
font-size: 32rpx;
|
||
color: #FFFFFF;
|
||
background: #8883F0;
|
||
border: 2rpx solid #8883F0;
|
||
border-radius: 0 20rpx 20rpx 0;
|
||
}
|
||
image{
|
||
width: 46rpx;
|
||
height: 46rpx;
|
||
}
|
||
input{
|
||
width: 460rpx;
|
||
margin-left: 30rpx;
|
||
height: 68rpx;
|
||
line-height: 68rpx;
|
||
}
|
||
}
|
||
}
|
||
.page {
|
||
width: 750rpx;
|
||
height: 100vh;
|
||
.box {
|
||
width: 750rpx;
|
||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||
// padding-top: 150rpx;
|
||
.list {
|
||
padding-bottom: 400rpx;
|
||
margin-top: 26rpx;
|
||
.listitem {
|
||
margin-bottom: 28rpx !important;
|
||
padding: 24rpx 38rpx;
|
||
box-sizing: border-box;
|
||
width: 680rpx;
|
||
max-height: 1540rpx;
|
||
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;
|
||
.icons {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
flex-wrap: wrap;
|
||
image {
|
||
width: 96rpx;
|
||
height: 96rpx;
|
||
margin-top: 20rpx;
|
||
}
|
||
}
|
||
.jfgz {
|
||
font-size: 26rpx;
|
||
color: #3D3D3D;
|
||
text {
|
||
color: #808080;
|
||
}
|
||
}
|
||
}
|
||
.rishou {
|
||
margin-top: 26rpx;
|
||
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;
|
||
align-items: center;
|
||
image {
|
||
width: 28rpx;
|
||
height: 28rpx;
|
||
}
|
||
.tit {
|
||
width: 450rpx;
|
||
height: 68rpx;
|
||
line-height: 68rpx;
|
||
padding-left: 10rpx;
|
||
// background: #F4F3FF;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
font-weight: 600;
|
||
font-size: 30rpx;
|
||
color: #3D3D3D;
|
||
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 {
|
||
width: 130rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.top {
|
||
width: 750rpx;
|
||
height: 150rpx;
|
||
background: #FFFFFF;
|
||
padding: 45rpx 36rpx;
|
||
box-sizing: border-box;
|
||
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> |