389 lines
9.7 KiB
Vue
389 lines
9.7 KiB
Vue
|
<template>
|
|||
|
<view class="page">
|
|||
|
<u-navbar :title="storeobj.storeName" :border-bottom="false" :background="bgc" back-icon-color="#fff" title-color='#fff'
|
|||
|
title-size='36' height='36' id="navbar">
|
|||
|
</u-navbar>
|
|||
|
<image src="https://api.ccttiot.com/smartmeter/img/static/uo5KnRUd2Lbmx6kqLD8y" class="bj" mode=""></image>
|
|||
|
<view class="top">
|
|||
|
<view class="lt">
|
|||
|
<view class="jinri">
|
|||
|
今日营业额(元)
|
|||
|
</view>
|
|||
|
<view class="money">
|
|||
|
{{storeobj.todayIncome == null ? '--' : storeobj.todayIncome}}元
|
|||
|
</view>
|
|||
|
<view class="jinri">
|
|||
|
总收入:{{storeobj.totalIncome == null ? '--' : storeobj.totalIncome}}元
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="rt">
|
|||
|
<view class="jinri">
|
|||
|
今日订单(笔)
|
|||
|
</view>
|
|||
|
<view class="money">
|
|||
|
{{storeobj.todayOrderCount == null ? '--' : storeobj.todayOrderCount}}笔
|
|||
|
</view>
|
|||
|
<view class="jinri">
|
|||
|
总订单:{{storeobj.totalOrder == null ? '--' : storeobj.totalOrder}}笔
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="tongji">
|
|||
|
<view class="list">
|
|||
|
<view class="li">
|
|||
|
<view class="shu">
|
|||
|
{{storeobj.deviceCount == null ? '--' : storeobj.deviceCount}}
|
|||
|
</view>
|
|||
|
<view class="wen">
|
|||
|
设备总数
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="li">
|
|||
|
<view class="shu">
|
|||
|
{{storeobj.freeDeviceCount == null ? '--' : storeobj.freeDeviceCount}}
|
|||
|
</view>
|
|||
|
<view class="wen">
|
|||
|
空闲设备
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="li" style="border: none;">
|
|||
|
<view class="shu">
|
|||
|
{{storeobj.usingDeviceCount == null ? '--' : storeobj.usingDeviceCount}}
|
|||
|
</view>
|
|||
|
<view class="wen">
|
|||
|
使用中
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="pricequan">
|
|||
|
<view class="tab">
|
|||
|
<view :class="activeindex == index ? 'active' : ''" v-for="(item,index) in arr" :key="index" @click.stop="btnact(index)">
|
|||
|
{{item}}
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="tit">
|
|||
|
收支概览
|
|||
|
</view>
|
|||
|
<view class="xianshi">
|
|||
|
<view class="one">
|
|||
|
<view class="two">
|
|||
|
营收
|
|||
|
</view>
|
|||
|
<view class="thr">
|
|||
|
<text>¥</text> {{storeobj.payMoney == null ? '--' : storeobj.payMoney}}
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="one">
|
|||
|
<view class="two">
|
|||
|
退款
|
|||
|
</view>
|
|||
|
<view class="thr">
|
|||
|
<text>¥</text> {{storeobj.refundMoney == null ? '--' : storeobj.refundMoney}}
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="one">
|
|||
|
<view class="two">
|
|||
|
实际营收
|
|||
|
</view>
|
|||
|
<view class="thr">
|
|||
|
<text>¥</text> {{storeobj.realAmount == null ? '--' : storeobj.realAmount}}
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="icons">
|
|||
|
<image @click.stop="btnpage(1)" src="https://api.ccttiot.com/smartmeter/img/static/ut6vvvispEWtKhCR9XYB" mode=""></image> <!-- 设备管理 -->
|
|||
|
<image @click.stop="btnpage(2)" src="https://api.ccttiot.com/smartmeter/img/static/uv6sqvVGDswiq90j7pMP" mode=""></image> <!-- 订单管理 -->
|
|||
|
<image @click.stop="btnpage(3)" src="https://api.ccttiot.com/smartmeter/img/static/u0d1g9wvKTqZMeTNljln" mode=""></image> <!-- 店铺配置 -->
|
|||
|
<image @click.stop="btnpage(4)" src="https://api.ccttiot.com/smartmeter/img/static/uOjdAFMpXa7IgycvqW0z" mode=""></image> <!-- 订单统计 -->
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="del" @click="btndel">
|
|||
|
删除
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
bgc: {
|
|||
|
backgroundColor: "",
|
|||
|
},
|
|||
|
arr:['今天','昨天','近七天','本月','上月','全部'],
|
|||
|
activeindex:0,
|
|||
|
storeId:'',
|
|||
|
storeobj:{},
|
|||
|
endDate:'',
|
|||
|
startDate:''
|
|||
|
}
|
|||
|
},
|
|||
|
onLoad(option) {
|
|||
|
const now = new Date();
|
|||
|
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|||
|
this.startDate = this.formatDate(today);
|
|||
|
this.endDate = this.formatDate(today);
|
|||
|
this.storeId = option.storeId
|
|||
|
this.getxq()
|
|||
|
},
|
|||
|
methods: {
|
|||
|
// 删除店铺
|
|||
|
btndel(){
|
|||
|
let that = this
|
|||
|
uni.showModal({
|
|||
|
title: '提示',
|
|||
|
content: '您确定要删除此店铺吗?',
|
|||
|
success: function (res) {
|
|||
|
if (res.confirm) {
|
|||
|
that.$u.delete(`/bst/store/${that.storeId}`).then(res =>{
|
|||
|
if(res.code == 200){
|
|||
|
uni.showToast({
|
|||
|
title: '删除成功',
|
|||
|
icon: 'success',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
setTimeout(()=>{
|
|||
|
uni.navigateBack()
|
|||
|
},1500)
|
|||
|
}else{
|
|||
|
uni.showToast({
|
|||
|
title: res.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
} else if (res.cancel) {
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
// 请求店铺详情
|
|||
|
getxq(){
|
|||
|
this.$u.get(`/bst/store/${this.storeId}?startDate${this.startDate}&endDate${this.endDate}`).then(res =>{
|
|||
|
if(res.code == 200){
|
|||
|
this.storeobj = res.data
|
|||
|
}else{
|
|||
|
uni.showToast({
|
|||
|
title: res.msg,
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
// 点击进行页面跳转
|
|||
|
btnpage(num){
|
|||
|
if(num == 1){ //设备管理
|
|||
|
uni.navigateTo({
|
|||
|
url:'/page_shanghu/device/index?storeId=' + this.storeId + '&tit=' + this.storeobj.storeName
|
|||
|
})
|
|||
|
}else if(num == 2){ //订单管理
|
|||
|
|
|||
|
}else if(num == 3){ //店铺配置
|
|||
|
|
|||
|
}else if(num == 4){ //订单统计
|
|||
|
|
|||
|
}
|
|||
|
},
|
|||
|
// 点击切换高亮
|
|||
|
btnact(index) {
|
|||
|
this.activeindex = index;
|
|||
|
const now = new Date();
|
|||
|
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|||
|
|
|||
|
if (index === 0) { // 今天
|
|||
|
this.startDate = this.formatDate(today);
|
|||
|
this.endDate = this.formatDate(today);
|
|||
|
this.getxq()
|
|||
|
} else if (index === 1) { // 昨天
|
|||
|
const yesterday = new Date(today);
|
|||
|
yesterday.setDate(yesterday.getDate() - 1);
|
|||
|
this.startDate = this.formatDate(yesterday);
|
|||
|
this.endDate = this.formatDate(yesterday);
|
|||
|
this.getxq()
|
|||
|
} else if (index === 2) { // 近七天
|
|||
|
const sevenDaysAgo = new Date(today);
|
|||
|
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 6);
|
|||
|
this.startDate = this.formatDate(sevenDaysAgo);
|
|||
|
this.endDate = this.formatDate(today);
|
|||
|
this.getxq()
|
|||
|
} else if (index === 3) { // 本月
|
|||
|
const firstDayOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
|
|||
|
this.startDate = this.formatDate(firstDayOfMonth);
|
|||
|
this.endDate = this.formatDate(today);
|
|||
|
this.getxq()
|
|||
|
} else if (index === 4) { // 上月
|
|||
|
const firstDayOfLastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
|
|||
|
const lastDayOfLastMonth = new Date(now.getFullYear(), now.getMonth(), 0);
|
|||
|
this.startDate = this.formatDate(firstDayOfLastMonth);
|
|||
|
this.endDate = this.formatDate(lastDayOfLastMonth);
|
|||
|
this.getxq()
|
|||
|
} else if (index === 5) { // 全部
|
|||
|
this.startDate = ''; // 或者设置为你的最早可能日期
|
|||
|
this.endDate = ''; // 或者设置为你的最晚可能日期
|
|||
|
this.getxq()
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
// 辅助方法:格式化日期为 YYYY-MM-DD
|
|||
|
formatDate(date) {
|
|||
|
if (!date) return '';
|
|||
|
const year = date.getFullYear();
|
|||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|||
|
const day = String(date.getDate()).padStart(2, '0');
|
|||
|
return `${year}-${month}-${day}`;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss">
|
|||
|
.active{
|
|||
|
color: #FF8998 !important;
|
|||
|
}
|
|||
|
.del{
|
|||
|
width: 680rpx;
|
|||
|
height: 90rpx;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
font-size: 32rpx;
|
|||
|
font-weight: 600;
|
|||
|
background-color: #FF8998;
|
|||
|
color: #fff;
|
|||
|
position: fixed;
|
|||
|
left: 50%;
|
|||
|
transform: translateX(-50%);
|
|||
|
bottom: 80rpx;
|
|||
|
border-radius: 30rpx;
|
|||
|
}
|
|||
|
.icons{
|
|||
|
width: 680rpx;
|
|||
|
height: 172rpx;
|
|||
|
background: #0B0B0B;
|
|||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
margin: auto;
|
|||
|
margin-top: 24rpx;
|
|||
|
padding: 36rpx 56rpx;
|
|||
|
box-sizing: border-box;
|
|||
|
image{
|
|||
|
width: 96rpx;
|
|||
|
height: 98rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
.pricequan{
|
|||
|
width: 680rpx;
|
|||
|
height: 296rpx;
|
|||
|
background: #0B0B0B;
|
|||
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|||
|
margin: auto;
|
|||
|
margin-top: 24rpx;
|
|||
|
.xianshi{
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
margin-top: 28rpx;
|
|||
|
padding: 0 74rpx;
|
|||
|
box-sizing: border-box;
|
|||
|
.one{
|
|||
|
text-align: center;
|
|||
|
.two{
|
|||
|
font-size: 28rpx;
|
|||
|
color: #808080;
|
|||
|
}
|
|||
|
.thr{
|
|||
|
font-weight: 600;
|
|||
|
font-size: 32rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
margin-top: 6rpx;
|
|||
|
text{
|
|||
|
font-size: 24rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
.tit{
|
|||
|
font-size: 30rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
padding-left: 30rpx;
|
|||
|
box-sizing: border-box;
|
|||
|
}
|
|||
|
.tab{
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
padding: 34rpx 30rpx;
|
|||
|
box-sizing: border-box;
|
|||
|
view{
|
|||
|
color: #808080;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
.tongji{
|
|||
|
width: 680rpx;
|
|||
|
height: 172rpx;
|
|||
|
background: #0B0B0B;
|
|||
|
box-shadow: 0rpx 8rpx 40rpx 0rpx rgba(72,137,59,0.1);
|
|||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
|||
|
padding: 46rpx 0;
|
|||
|
box-sizing: border-box;
|
|||
|
margin: auto;
|
|||
|
margin-top: 36rpx;
|
|||
|
.list{
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
.li{
|
|||
|
width: 33.3%;
|
|||
|
text-align: center;
|
|||
|
border-right: 1px solid #C7C7C7;
|
|||
|
.shu{
|
|||
|
font-weight: 600;
|
|||
|
font-size: 40rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
}
|
|||
|
.wen{
|
|||
|
font-size: 24rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
margin-top: 16rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
.top{
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
padding: 0 70rpx;
|
|||
|
box-sizing: border-box;
|
|||
|
margin-top: 36rpx;
|
|||
|
.rt,
|
|||
|
.lt{
|
|||
|
.jinri{
|
|||
|
font-size: 28rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
}
|
|||
|
.money{
|
|||
|
font-weight: 600;
|
|||
|
font-size: 44rpx;
|
|||
|
color: #FFFFFF;
|
|||
|
margin-top: 12rpx;
|
|||
|
margin-bottom: 16rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
.bj{
|
|||
|
width: 100%;
|
|||
|
height: 100vh;
|
|||
|
position: fixed;
|
|||
|
top: 0;
|
|||
|
left: 0;
|
|||
|
z-index: -1;
|
|||
|
}
|
|||
|
page {
|
|||
|
background: #fff;
|
|||
|
}
|
|||
|
|
|||
|
</style>
|