smartswrtch-app/page_fenbao/statulist/myshop/index.vue

555 lines
15 KiB
Vue
Raw Normal View History

2024-05-10 17:37:36 +08:00
<template>
<view class="page">
2024-05-24 16:48:42 +08:00
<u-navbar title="我的店铺" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36'
2024-06-03 16:47:25 +08:00
back-icon-color="#fff" height='50'></u-navbar>
2024-05-10 17:37:36 +08:00
<view class="box">
2025-01-10 17:53:52 +08:00
<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="top" v-if="types == 11">
2024-11-28 18:04:09 +08:00
<u-search placeholder="搜索" input-align="center" v-model="keyword" @custom="searchs"></u-search>
</view>
<view class="top" style="display: flex;justify-content: space-between;" v-else>
2024-05-10 17:37:36 +08:00
<u-search placeholder="搜索" input-align="center" v-model="keyword" @custom="searchs"></u-search>
<view class="cjshop" @click="creadshop">创建店铺</view>
2025-01-10 17:53:52 +08:00
</view> -->
2024-11-28 18:04:09 +08:00
2024-05-24 16:48:42 +08:00
<view class="list" @scrolltolower="onReachBottom">
2024-06-04 17:50:05 +08:00
<view class="listitem" v-for="(item,index) in wateringList" :key="index" @click="btnshopxq(item.storeId)">
2024-05-10 17:37:36 +08:00
<view class="toptit">
2025-01-10 17:53:52 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uFKbeneDcYbmekpVuWHm" mode="aspectFit"></image>
2024-05-10 17:37:36 +08:00
<view class="tit">
{{item.name}}
</view>
2025-01-10 17:53:52 +08:00
<view class="yuan" style="color: #8883F0;">
2024-05-10 17:37:36 +08:00
<text
2025-01-10 17:53:52 +08:00
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>
2024-05-10 17:37:36 +08:00
</view>
</view>
<view class="rishou">
<view class="rishouwz">
2025-01-10 17:53:52 +08:00
<text> 今日订单 </text><text> 今日收入 </text><text> 上月收入</text><text>设备状态 </text>
2024-05-10 17:37:36 +08:00
</view>
<view class="rishouje">
2025-01-10 17:53:52 +08:00
<text>--</text>
<text>{{item.todayIncome == null ? '--' : item.todayIncome}}</text>
2024-11-28 18:04:09 +08:00
<text>{{item.lastMonthIncome == undefined ? '--' : item.lastMonthIncome}}</text>
2025-01-10 17:53:52 +08:00
<text> <text style="color: #8883F0;">{{item.onlineCount == undefined ? '--' : item.onlineCount}}/</text> {{item.offlineCount == undefined ? '--' : item.offlineCount}}</text>
2024-05-10 17:37:36 +08:00
</view>
</view>
<view class="gzlist">
2024-08-05 18:00:54 +08:00
<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 ? '未生效' : '生效'}}
2024-08-03 18:03:02 +08:00
</view>
<view class="jfgz" style="margin-top: 16rpx;">
2024-09-05 18:00:53 +08:00
<text>客服名称</text>{{item.contactName}}
2024-05-10 17:37:36 +08:00
</view>
<view class="phone">
2024-09-05 18:00:53 +08:00
<text>客服电话</text>{{item.contactMobile}}
2024-05-10 17:37:36 +08:00
</view>
2025-01-10 17:53:52 +08:00
<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/u1Gjnomycy9oiRNbmW4F" 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>
2024-05-10 17:37:36 +08:00
</view>
<view class="yunxing">
<text>已运营{{item.daysDifference + 1}}</text> <text>{{item.createTime}}</text>
</view>
</view>
2024-06-04 14:50:30 +08:00
<view class="" v-if="showflag" style="width: 100%;height: 200rpx;margin: auto;margin-top: 170rpx;text-align: center;">
<image style="width: 200rpx;height: 200rpx;"
2024-11-08 18:01:35 +08:00
src="https://api.ccttiot.com/smartmeter/img/static/uZFUpcz0YZZ4f4RjvGg2" mode="aspectFit"></image>
2024-06-04 14:50:30 +08:00
<view class="" style="font-size: 28rpx;color: #808080;margin-top: 30rpx;">暂无更多店铺...</view>
2024-05-10 17:37:36 +08:00
</view>
</view>
</view>
2025-01-10 17:53:52 +08:00
<view class="anniu" @click="creadshop" v-if="types != 11">
<view class="btn">
新建店铺
</view>
</view>
2024-05-10 17:37:36 +08:00
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: " #8883F0",
},
pagenum: 1,
wateringList: [],
pagesize: 10, // 一页多少数据
isLoading: false, // 是否正在加载数据
noMoreData: false, // 是否没有更多数据
total: 0,
2024-05-31 18:00:39 +08:00
keyword: '',
2024-11-28 18:04:09 +08:00
showflag: false,
types:null
2024-05-10 17:37:36 +08:00
}
},
2024-11-28 18:04:09 +08:00
onLoad(option) {
if(option.types){
this.types = option.types
}
2024-05-10 17:37:36 +08:00
},
2024-07-17 17:59:51 +08:00
// 分享到好友(会话)
onShareAppMessage: function () {
return {
title: '创想物联',
path: '/pages/shouye/index'
}
},
// 分享到朋友圈
onShareTimeline: function () {
return {
title: '创想物联',
query: '',
path: '/pages/shouye/index'
}
},
2024-05-10 17:37:36 +08:00
onShow() {
this.pagenum = 1
2024-05-10 17:37:36 +08:00
this.wateringList = []
this.getlist()
},
methods: {
2025-01-10 17:53:52 +08:00
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
})
}
},
nav(item){
uni.navigateTo({
url:'/page_fenbao/hehuoren/index?storeId=' + item.storeId,
})
},
2024-05-10 17:37:36 +08:00
// 请求店铺列表
getlist() {
2024-11-28 18:04:09 +08:00
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
2024-05-31 18:00:39 +08:00
}
2024-11-28 18:04:09 +08:00
}).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
2024-05-10 17:37:36 +08:00
}
2024-11-28 18:04:09 +08:00
}).catch(error => {
console.error('获取店铺失败:', error)
this.isLoading = false // 加载失败也标记为完成
})
}
2024-05-10 17:37:36 +08:00
},
2024-05-24 16:48:42 +08:00
searchs() {
2024-05-10 17:37:36 +08:00
this.wateringList = []
this.getlist()
},
2024-05-24 16:48:42 +08:00
2024-05-10 17:37:36 +08:00
onReachBottom() {
let sum = this.total / this.pagesize
2024-05-24 16:48:42 +08:00
if (this.pagenum - 1 < sum) {
2024-08-05 18:00:54 +08:00
this.getlist() // 上拉加载更多
2024-05-10 17:37:36 +08:00
} else {
uni.showToast({
title: '没有更多店铺了',
icon: 'none',
duration: 1000
});
}
},
creadshop() {
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: '/page_fenbao/statulist/myshop/shopxx/index'
2024-05-10 17:37:36 +08:00
})
},
btnshopxq(id) {
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: '/page_fenbao/statulist/myshop/shopdetail/index?id=' + id
2024-05-10 17:37:36 +08:00
})
}
}
}
</script>
<style lang="scss">
2024-05-24 16:48:42 +08:00
/deep/ .u-title {
2024-06-03 16:47:25 +08:00
padding-bottom: 22rpx;
2024-05-24 16:48:42 +08:00
}
/deep/ .uicon-nav-back {
2024-06-03 16:47:25 +08:00
padding-bottom: 22rpx;
2024-05-24 16:48:42 +08:00
}
2025-01-10 17:53:52 +08:00
.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;
}
}
}
2024-05-10 17:37:36 +08:00
.page {
width: 750rpx;
2024-05-24 16:48:42 +08:00
height: 100vh;
2024-05-10 17:37:36 +08:00
.box {
width: 750rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
2025-01-10 17:53:52 +08:00
// padding-top: 150rpx;
2024-05-10 17:37:36 +08:00
.list {
padding-bottom: 400rpx;
margin-top: 26rpx;
.listitem {
margin-bottom: 28rpx !important;
2025-01-10 17:53:52 +08:00
padding: 24rpx 38rpx;
2024-05-10 17:37:36 +08:00
box-sizing: border-box;
width: 680rpx;
2025-01-10 17:53:52 +08:00
max-height: 1540rpx;
2024-05-10 17:37:36 +08:00
background: #FFFFFF;
border-radius: 38rpx 38rpx 38rpx 38rpx;
margin: auto;
.yunxing {
display: flex;
justify-content: space-between;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-05-10 17:37:36 +08:00
color: #808080;
margin-top: 26rpx;
}
.phones {
margin-top: 16rpx;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-05-10 17:37:36 +08:00
color: #1DBE7B;
border-bottom: 1px solid #ccc;
padding-bottom: 26rpx;
box-sizing: border-box;
text {
color: #808080;
}
}
.phone {
margin-top: 16rpx;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-05-10 17:37:36 +08:00
color: #3D3D3D;
text {
color: #808080;
}
}
.gzlist {
margin-top: 30rpx;
border-bottom: 1rpx solid #ccc;
padding-bottom: 26rpx;
2025-01-10 17:53:52 +08:00
.icons {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
image {
width: 96rpx;
height: 96rpx;
margin-top: 20rpx;
}
}
2024-05-10 17:37:36 +08:00
.jfgz {
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-05-10 17:37:36 +08:00
color: #3D3D3D;
text {
color: #808080;
}
}
}
.rishou {
margin-top: 26rpx;
box-sizing: border-box;
.rishouwz {
display: flex;
justify-content: space-between;
text {
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-05-10 17:37:36 +08:00
color: #808080;
2024-06-05 18:07:50 +08:00
width: 230rpx;
text-align: center;
2024-05-10 17:37:36 +08:00
}
}
.rishouje {
display: flex;
justify-content: space-between;
margin-top: 10rpx;
text {
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
2024-06-05 18:07:50 +08:00
width: 230rpx;
text-align: center;
2024-05-10 17:37:36 +08:00
}
}
}
.toptit {
border-bottom: 1px solid #ccc;
display: flex;
justify-content: space-between;
padding-bottom: 12rpx;
box-sizing: border-box;
2025-01-10 17:53:52 +08:00
align-items: center;
2024-05-10 17:37:36 +08:00
image {
2025-01-10 17:53:52 +08:00
width: 28rpx;
height: 28rpx;
2024-05-10 17:37:36 +08:00
}
.tit {
2025-01-10 17:53:52 +08:00
width: 450rpx;
2024-05-10 17:37:36 +08:00
height: 68rpx;
line-height: 68rpx;
2025-01-10 17:53:52 +08:00
padding-left: 10rpx;
// background: #F4F3FF;
2024-05-10 17:37:36 +08:00
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 {
2025-01-10 17:53:52 +08:00
width: 130rpx;
display: flex;
align-items: center;
2024-05-10 17:37:36 +08:00
}
}
}
}
.top {
width: 750rpx;
2024-06-03 16:47:25 +08:00
height: 150rpx;
2024-05-10 17:37:36 +08:00
background: #FFFFFF;
2024-06-03 16:47:25 +08:00
padding: 45rpx 36rpx;
2024-05-10 17:37:36 +08:00
box-sizing: border-box;
2024-05-24 16:48:42 +08:00
position: fixed;
2024-06-03 16:47:25 +08:00
top: 170rpx;
2024-05-10 17:37:36 +08:00
.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>