新增订单统计
This commit is contained in:
parent
4a06aa359e
commit
c84e0d0e2a
|
@ -19,8 +19,8 @@ const install = (Vue, vm) => {
|
||||||
// },
|
// },
|
||||||
// });
|
// });
|
||||||
Vue.prototype.$u.http.setConfig({
|
Vue.prototype.$u.http.setConfig({
|
||||||
baseUrl: 'http://192.168.2.81:10002',
|
// baseUrl: 'http://192.168.2.81:10002',
|
||||||
// baseUrl: 'https://kg.chuangtewl.com/prod-api',
|
baseUrl: 'https://kg.chuangtewl.com/prod-api',
|
||||||
// loadingText: '努力加载中~',
|
// loadingText: '努力加载中~',
|
||||||
// loadingTime: 1000,
|
// loadingTime: 1000,
|
||||||
// 设置自定义头部content-type
|
// 设置自定义头部content-type
|
||||||
|
|
|
@ -56,6 +56,10 @@
|
||||||
<view class="tit"> 是否展示店铺</view>
|
<view class="tit"> 是否展示店铺</view>
|
||||||
<u-switch v-model="checked" active-color="#8883F0" disabled="false"></u-switch>
|
<u-switch v-model="checked" active-color="#8883F0" disabled="false"></u-switch>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="listval">
|
||||||
|
<view class="tit"> 是否允许在非营业时间使用</view>
|
||||||
|
<u-switch v-model="checkeds" active-color="#8883F0" disabled="false"></u-switch>
|
||||||
|
</view>
|
||||||
<!-- <view class="listval">
|
<!-- <view class="listval">
|
||||||
<view class="tit"> 详细地址</view>
|
<view class="tit"> 详细地址</view>
|
||||||
<view class="but"> <input type="text" placeholder="请输入详细地址" v-model="xqdz" /> </view>
|
<view class="but"> <input type="text" placeholder="请输入详细地址" v-model="xqdz" /> </view>
|
||||||
|
@ -114,6 +118,7 @@
|
||||||
hour: true,
|
hour: true,
|
||||||
minute: true,
|
minute: true,
|
||||||
},
|
},
|
||||||
|
checkeds:false,
|
||||||
show: false,
|
show: false,
|
||||||
imglist: '',
|
imglist: '',
|
||||||
token: '',
|
token: '',
|
||||||
|
@ -237,6 +242,7 @@
|
||||||
this.area = this.listobj.county
|
this.area = this.listobj.county
|
||||||
this.storeId = this.listobj.storeId
|
this.storeId = this.listobj.storeId
|
||||||
this.checked = this.listobj.show
|
this.checked = this.listobj.show
|
||||||
|
this.checkeds = this.listobj.useOutTime
|
||||||
if (this.selectorvalue == 1) {
|
if (this.selectorvalue == 1) {
|
||||||
this.selectortext = '商场'
|
this.selectortext = '商场'
|
||||||
this.updateTime = this.listobj.updateTime
|
this.updateTime = this.listobj.updateTime
|
||||||
|
|
|
@ -50,6 +50,10 @@
|
||||||
<view class="tit"> 是否展示店铺</view>
|
<view class="tit"> 是否展示店铺</view>
|
||||||
<u-switch v-model="checked" active-color="#8883F0"></u-switch>
|
<u-switch v-model="checked" active-color="#8883F0"></u-switch>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="listval">
|
||||||
|
<view class="tit"> 是否允许在非营业时间使用</view>
|
||||||
|
<u-switch v-model="checkeds" active-color="#8883F0"></u-switch>
|
||||||
|
</view>
|
||||||
<!-- <view class="listval">
|
<!-- <view class="listval">
|
||||||
<view class="tit"> 详细地址</view>
|
<view class="tit"> 详细地址</view>
|
||||||
<view class="but"> <input type="text" placeholder="请输入详细地址" v-model="xqdz" /> </view>
|
<view class="but"> <input type="text" placeholder="请输入详细地址" v-model="xqdz" /> </view>
|
||||||
|
@ -105,6 +109,7 @@
|
||||||
minute: true,
|
minute: true,
|
||||||
},
|
},
|
||||||
show: false,
|
show: false,
|
||||||
|
checkeds:false,
|
||||||
imglist: '',
|
imglist: '',
|
||||||
token: '',
|
token: '',
|
||||||
userImgs: '',
|
userImgs: '',
|
||||||
|
@ -175,6 +180,7 @@
|
||||||
this.area = this.listobj.county
|
this.area = this.listobj.county
|
||||||
this.storeId = this.listobj.storeId
|
this.storeId = this.listobj.storeId
|
||||||
this.checked = this.listobj.show
|
this.checked = this.listobj.show
|
||||||
|
this.checkeds = this.listobj.useOutTime
|
||||||
if (this.selectorvalue == 1) {
|
if (this.selectorvalue == 1) {
|
||||||
this.selectortext = '商场'
|
this.selectortext = '商场'
|
||||||
this.updateTime = this.listobj.updateTime
|
this.updateTime = this.listobj.updateTime
|
||||||
|
@ -324,7 +330,8 @@
|
||||||
contactMobile: this.lxphone,
|
contactMobile: this.lxphone,
|
||||||
type: this.selectorvalue,
|
type: this.selectorvalue,
|
||||||
storeId: this.storeId,
|
storeId: this.storeId,
|
||||||
show:this.checked
|
show:this.checked,
|
||||||
|
useOutTime:this.checkeds
|
||||||
}
|
}
|
||||||
this.$u.put("/app/store", data).then(res => {
|
this.$u.put("/app/store", data).then(res => {
|
||||||
if (res.code == 500) {
|
if (res.code == 500) {
|
||||||
|
|
|
@ -48,6 +48,10 @@
|
||||||
<view class="tit"> 是否展示店铺</view>
|
<view class="tit"> 是否展示店铺</view>
|
||||||
<u-switch v-model="checked" active-color="#8883F0"></u-switch>
|
<u-switch v-model="checked" active-color="#8883F0"></u-switch>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="listval">
|
||||||
|
<view class="tit"> 是否允许在非营业时间使用</view>
|
||||||
|
<u-switch v-model="checkeds" active-color="#8883F0"></u-switch>
|
||||||
|
</view>
|
||||||
<view class="icon">
|
<view class="icon">
|
||||||
<view class="list_box">
|
<view class="list_box">
|
||||||
<view class="lt">
|
<view class="lt">
|
||||||
|
@ -102,6 +106,7 @@
|
||||||
minute: true,
|
minute: true,
|
||||||
},
|
},
|
||||||
show: false,
|
show: false,
|
||||||
|
checkeds:true,
|
||||||
imglist: '',
|
imglist: '',
|
||||||
token: '',
|
token: '',
|
||||||
userImgs: '',
|
userImgs: '',
|
||||||
|
@ -294,7 +299,8 @@
|
||||||
contactName: this.shopname,
|
contactName: this.shopname,
|
||||||
contactMobile: this.lxphone,
|
contactMobile: this.lxphone,
|
||||||
type: this.selectorvalue,
|
type: this.selectorvalue,
|
||||||
show:this.checked
|
show:this.checked,
|
||||||
|
useOutTime:this.checkeds
|
||||||
}
|
}
|
||||||
this.$u.post("/app/store", data).then(res => {
|
this.$u.post("/app/store", data).then(res => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
|
@ -462,7 +468,7 @@
|
||||||
|
|
||||||
.list {
|
.list {
|
||||||
width: 680rpx;
|
width: 680rpx;
|
||||||
height: 1000rpx;
|
height: 1060rpx;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
|
@ -114,9 +114,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else if (res.cancel) {
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -139,8 +137,7 @@
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/page_user/mapditu/bdAlipay?accountId=' + this.infoList.OFFLINE_IMAGE[0]
|
url: '/page_user/mapditu/bdAlipay?accountId=' + this.infoList.OFFLINE_IMAGE[0].accountId
|
||||||
.accountId
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,7 +165,6 @@
|
||||||
} else {
|
} else {
|
||||||
this.yhkflag = true
|
this.yhkflag = true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
10
pages.json
10
pages.json
|
@ -22,6 +22,16 @@
|
||||||
"navigationBarTextStyle": "#FFFFFF",
|
"navigationBarTextStyle": "#FFFFFF",
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
|
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"path": "pages/tongji",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的",
|
||||||
|
// "enablePullDownRefresh": true,
|
||||||
|
"navigationBarBackgroundColor": "#3996FD",
|
||||||
|
"navigationBarTextStyle": "#FFFFFF",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,7 +15,11 @@
|
||||||
<view class="input_txt" style="width: 536rpx;font-size: 24rpx;line-height: 32rpx;">
|
<view class="input_txt" style="width: 536rpx;font-size: 24rpx;line-height: 32rpx;">
|
||||||
您暂未授权共享开关小程序获取你的信息,将无法正常使用小程序的功能。如需要正常使用请点击“授权”按钮,打开头像,昵称等信息的授权。
|
您暂未授权共享开关小程序获取你的信息,将无法正常使用小程序的功能。如需要正常使用请点击“授权”按钮,打开头像,昵称等信息的授权。
|
||||||
</view>
|
</view>
|
||||||
<button class="button" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"
|
<!-- <button class="button" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"
|
||||||
|
style="margin-left: -10rpx;">
|
||||||
|
授权登录
|
||||||
|
</button> -->
|
||||||
|
<button class="button" @click="getPhoneNumber"
|
||||||
style="margin-left: -10rpx;">
|
style="margin-left: -10rpx;">
|
||||||
授权登录
|
授权登录
|
||||||
</button>
|
</button>
|
||||||
|
@ -207,40 +211,62 @@
|
||||||
this.usertype = '00'
|
this.usertype = '00'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getPhoneNumber(e) {
|
getPhoneNumber(){
|
||||||
let that = this;
|
let taht = this
|
||||||
console.log("eeeeeeee", e);
|
wx.login({
|
||||||
const wxLoginAsync = () => {
|
success(res) {
|
||||||
return new Promise((resolve, reject) => {
|
if (res.code) {
|
||||||
wx.login({
|
let data = {
|
||||||
success(res) {
|
loginCode: res.code,
|
||||||
if (res.code) {
|
|
||||||
let data = {
|
|
||||||
loginCode: res.code,
|
|
||||||
mobileCode: e.detail.code,
|
|
||||||
}
|
|
||||||
resolve(data);
|
|
||||||
} else {
|
|
||||||
reject(res.errMsg)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fail(err) {
|
|
||||||
reject(err)
|
|
||||||
}
|
}
|
||||||
})
|
taht.$u.post('/app/auth/wxLogin', data).then(res => {
|
||||||
})
|
if (res.code == 10003) {
|
||||||
}
|
uni.navigateTo({
|
||||||
wxLoginAsync().then(async (data) => {
|
url: '/pages/login/login'
|
||||||
this.$u.post("/app/auth/wxLogin", data).then((res) => {
|
})
|
||||||
if (res.code == 200) {
|
} else if (res.code == 200) {
|
||||||
wx.setStorageSync('token', res.token);
|
uni.setStorageSync('token', res.token)
|
||||||
that.ceshi()
|
taht.ceshi()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
},
|
||||||
}).catch((err) => {
|
|
||||||
console.error(err)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// getPhoneNumber(e) {
|
||||||
|
// let that = this;
|
||||||
|
// console.log("eeeeeeee", e);
|
||||||
|
// const wxLoginAsync = () => {
|
||||||
|
// return new Promise((resolve, reject) => {
|
||||||
|
// wx.login({
|
||||||
|
// success(res) {
|
||||||
|
// if (res.code) {
|
||||||
|
// let data = {
|
||||||
|
// loginCode: res.code,
|
||||||
|
// mobileCode: e.detail.code,
|
||||||
|
// }
|
||||||
|
// resolve(data);
|
||||||
|
// } else {
|
||||||
|
// reject(res.errMsg)
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// fail(err) {
|
||||||
|
// reject(err)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// wxLoginAsync().then(async (data) => {
|
||||||
|
// this.$u.post("/app/auth/wxLogin", data).then((res) => {
|
||||||
|
// if (res.code == 200) {
|
||||||
|
// wx.setStorageSync('token', res.token);
|
||||||
|
// that.ceshi()
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }).catch((err) => {
|
||||||
|
// console.error(err)
|
||||||
|
// })
|
||||||
|
// },
|
||||||
async ceshi() {
|
async ceshi() {
|
||||||
this.$u.get("/app/user/userInfo").then((res) => {
|
this.$u.get("/app/user/userInfo").then((res) => {
|
||||||
if (this.id == 1) {
|
if (this.id == 1) {
|
||||||
|
|
12
pages/my.vue
12
pages/my.vue
|
@ -70,6 +70,10 @@
|
||||||
<image src="https://api.ccttiot.com/smartmeter/img/static/ujXfMLJmerXRSRGZfGFV" mode=""></image>
|
<image src="https://api.ccttiot.com/smartmeter/img/static/ujXfMLJmerXRSRGZfGFV" mode=""></image>
|
||||||
<view class="txt">订单管理</view>
|
<view class="txt">订单管理</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="botcard" @click="topage(10)">
|
||||||
|
<image src="https://api.ccttiot.com/smartmeter/img/static/uKewAY8xvJN04yFpGEjl" mode=""></image>
|
||||||
|
<view class="txt">订单统计</view>
|
||||||
|
</view>
|
||||||
<view class="botcard" @click="topage(4)">
|
<view class="botcard" @click="topage(4)">
|
||||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uKewAY8xvJN04yFpGEjl" mode=""></image>
|
<image src="https://api.ccttiot.com/smartmeter/img/static/uKewAY8xvJN04yFpGEjl" mode=""></image>
|
||||||
<view class="txt">设备故障</view>
|
<view class="txt">设备故障</view>
|
||||||
|
@ -78,10 +82,10 @@
|
||||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uYOquvGtfb1sm5F60NgJ" mode=""></image>
|
<image src="https://api.ccttiot.com/smartmeter/img/static/uYOquvGtfb1sm5F60NgJ" mode=""></image>
|
||||||
<view class="txt">商家合作</view>
|
<view class="txt">商家合作</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
<view class="botcard" @click="topage(2)">
|
<!-- <view class="botcard" @click="topage(2)">
|
||||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u6qVTFXdkQKEqE1y0J4o" mode=""></image>
|
<image src="https://api.ccttiot.com/smartmeter/img/static/u6qVTFXdkQKEqE1y0J4o" mode=""></image>
|
||||||
<view class="txt">帮助中心</view>
|
<view class="txt">帮助中心</view>
|
||||||
</view>
|
</view> -->
|
||||||
<!-- <view class="botcard" @click="topage(3)">
|
<!-- <view class="botcard" @click="topage(3)">
|
||||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uGlrjkSOTDXMFuuRb03l" mode=""></image>
|
<image src="https://api.ccttiot.com/smartmeter/img/static/uGlrjkSOTDXMFuuRb03l" mode=""></image>
|
||||||
<view class="txt">意见反馈</view>
|
<view class="txt">意见反馈</view>
|
||||||
|
@ -237,6 +241,10 @@
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url:'/page_fenbao/statulist/merchant/index'
|
url:'/page_fenbao/statulist/merchant/index'
|
||||||
})
|
})
|
||||||
|
}else if(num == 10){
|
||||||
|
uni.navigateTo({
|
||||||
|
url:'/pages/tongji'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
topages(num){
|
topages(num){
|
||||||
|
|
478
pages/tongji.vue
Normal file
478
pages/tongji.vue
Normal file
|
@ -0,0 +1,478 @@
|
||||||
|
<template>
|
||||||
|
<view class="pages">
|
||||||
|
<u-navbar title="订单统计" :border-bottom="false" :background="bgc" title-color='#fff' back-icon-color="#fff"
|
||||||
|
title-size='36' height='50'></u-navbar>
|
||||||
|
<view class="time">
|
||||||
|
<view class="timetit">
|
||||||
|
时间范围
|
||||||
|
</view>
|
||||||
|
<view class="timert">
|
||||||
|
<view style="margin-right: 10rpx;" class="xztime" @click="btnks(1)">{{endtime}}</view> — <view
|
||||||
|
style="margin-left: 10rpx;" class="xztime" @click="btnks(2)">{{lasttime}}</view>
|
||||||
|
<view class="qinc" @click="btnqc">×</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 快捷选择 -->
|
||||||
|
<view class="ordertongji">
|
||||||
|
<view class="orderday">
|
||||||
|
<view class="sj">
|
||||||
|
<text @click="btnriq(1)" :class="dateindex == 1 ? 'dateactive' : ''">今日</text>
|
||||||
|
<text @click="btnriq(2)" :class="dateindex == 2 ? 'dateactive' : ''">昨日</text>
|
||||||
|
<text @click="btnriq(3)" :class="dateindex == 3 ? 'dateactive' : ''">近七日</text>
|
||||||
|
<text @click="btnriq(4)" :class="dateindex == 4 ? 'dateactive' : ''">本月</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="serch">
|
||||||
|
<input type="text" v-model="type" placeholder="请输入店铺名称" />
|
||||||
|
<view class="" @click="btnsear">搜索</view>
|
||||||
|
</view>
|
||||||
|
<u-picker mode="time" v-model="show" :params="params" @confirm="confirm"></u-picker>
|
||||||
|
|
||||||
|
<view class="tab">
|
||||||
|
<view class="">店铺</view>
|
||||||
|
<view class="">设备</view>
|
||||||
|
<view class="">订单数</view>
|
||||||
|
<view class="">时长</view>
|
||||||
|
<view class="">电量</view>
|
||||||
|
<view class="">金额</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="table-container">
|
||||||
|
<view
|
||||||
|
v-for="(row, index) in tableData"
|
||||||
|
:key="row.storeId"
|
||||||
|
class="table-row"
|
||||||
|
@click="toggleRow(index,row.storeId)">
|
||||||
|
<view class="row-header">
|
||||||
|
<text>{{ row.storeName }}</text>
|
||||||
|
<text class="">{{row.deviceCount}}台</text>
|
||||||
|
<text class="">{{row.orderCount}}单</text>
|
||||||
|
<text class="">{{row.formattedDuration}}</text>
|
||||||
|
<text class="">{{row.ele}}度</text>
|
||||||
|
<text class="">{{row.arrivalAmount}}元</text>
|
||||||
|
</view>
|
||||||
|
<view v-if="!row.folded" class="row-details" v-for="(val,index) in vallist" :key="index">
|
||||||
|
<view></view>
|
||||||
|
<view>{{ val.deviceName }}</view>
|
||||||
|
<view>{{ val.orderCount }}单</view>
|
||||||
|
<view>{{ val.formattedDuration}}</view>
|
||||||
|
<view>{{ val.ele}}度</view>
|
||||||
|
<view>{{ val.arrivalAmount }}元</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
bgc: {
|
||||||
|
backgroundColor: "#8883F0",
|
||||||
|
},
|
||||||
|
statusList: '',
|
||||||
|
type: '',
|
||||||
|
endtime: '',
|
||||||
|
lasttime: '',
|
||||||
|
params: {
|
||||||
|
year: true,
|
||||||
|
month: true,
|
||||||
|
day: true,
|
||||||
|
hour: false,
|
||||||
|
minute: false,
|
||||||
|
second: false
|
||||||
|
},
|
||||||
|
show: false,
|
||||||
|
num: '',
|
||||||
|
tableData: [],
|
||||||
|
vallist:[],
|
||||||
|
previouslyExpandedIndex: null,
|
||||||
|
dateindex:1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
const todayStartTime = this.getTodayStartTime()
|
||||||
|
this.endtime = this.formatDate(todayStartTime)
|
||||||
|
this.lasttime = this.formatDate(todayStartTime)
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 分享到好友(会话)
|
||||||
|
onShareAppMessage: function() {
|
||||||
|
return {
|
||||||
|
title: '创想物联',
|
||||||
|
path: '/pages/shouye/index'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 分享到朋友圈
|
||||||
|
onShareTimeline: function() {
|
||||||
|
return {
|
||||||
|
title: '创想物联',
|
||||||
|
query: '',
|
||||||
|
path: '/pages/shouye/index'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
btnriq(num) {
|
||||||
|
this.dateindex = num
|
||||||
|
if (num == 1) {
|
||||||
|
let today = new Date();
|
||||||
|
this.endtime = this.formatDate(today)
|
||||||
|
this.lasttime = this.formatDate(today)
|
||||||
|
this.getList()
|
||||||
|
} else if (num == 2) {
|
||||||
|
let yesterday = new Date()
|
||||||
|
yesterday.setDate(yesterday.getDate() - 1)
|
||||||
|
this.endtime = this.formatDate(yesterday)
|
||||||
|
this.lasttime = this.formatDate(yesterday)
|
||||||
|
this.getList()
|
||||||
|
} else if (num == 3) {
|
||||||
|
let today = new Date()
|
||||||
|
let firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 6)
|
||||||
|
this.endtime = this.formatDate(firstDayOfMonth)
|
||||||
|
this.lasttime = this.formatDate(new Date())
|
||||||
|
this.getList()
|
||||||
|
} else if (num == 4) {
|
||||||
|
let today = new Date()
|
||||||
|
let firstDayOfLastMonth = new Date(today.getFullYear(), today.getMonth(), 1)
|
||||||
|
let lastDayOfLastMonth = new Date(today.getFullYear(), today.getMonth(), today.getDate())
|
||||||
|
this.endtime = this.formatDate(firstDayOfLastMonth)
|
||||||
|
this.lasttime = this.formatDate(lastDayOfLastMonth)
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatDate(date) {
|
||||||
|
let year = date.getFullYear()
|
||||||
|
let month = String(date.getMonth() + 1).padStart(2, '0')
|
||||||
|
let day = String(date.getDate()).padStart(2, '0')
|
||||||
|
return `${year}-${month}-${day}`
|
||||||
|
},
|
||||||
|
|
||||||
|
// 请求统计列表
|
||||||
|
getList(){
|
||||||
|
this.$u.get(`/mch/dashboard/businessStatisticsByStore?storeName=${this.type}&dateRange=${this.endtime+ ',' +this.lasttime}`).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
let arr = res.data
|
||||||
|
this.tableData = arr.map(item => ({
|
||||||
|
...item,
|
||||||
|
folded: true,
|
||||||
|
formattedDuration: this.formatDuration(item.seconds)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
formatDuration(seconds) {
|
||||||
|
const hours = Math.floor(seconds / 3600);
|
||||||
|
const minutes = Math.floor((seconds % 3600) / 60);
|
||||||
|
return `${hours.toString().padStart(2, '0')}小时${minutes.toString().padStart(2, '0')}分钟`;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 点击搜索
|
||||||
|
btnsear(){
|
||||||
|
if(this.endtime == '' || this.endtime == ''){
|
||||||
|
uni.showToast({
|
||||||
|
title: '时间范围不能为空',
|
||||||
|
icon: 'none',
|
||||||
|
duration:2000
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.getList()
|
||||||
|
this.dateindex = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取当天时间
|
||||||
|
getTodayStartTime() {
|
||||||
|
const now = new Date();
|
||||||
|
const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);
|
||||||
|
return startOfDay;
|
||||||
|
},
|
||||||
|
// 调用函数并打印结果
|
||||||
|
formatDate(date) {
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1并补零
|
||||||
|
const day = String(date.getDate()).padStart(2, '0'); // 补零
|
||||||
|
const hours = String(date.getHours()).padStart(2, '0'); // 补零(虽然这里总是00)
|
||||||
|
const minutes = String(date.getMinutes()).padStart(2, '0'); // 补零
|
||||||
|
const seconds = String(date.getSeconds()).padStart(2, '0'); // 补零
|
||||||
|
return `${year}-${month}-${day} `;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 点击展开折叠
|
||||||
|
toggleRow(index,storeId) {
|
||||||
|
if(this.endtime == '' || this.endtime == ''){
|
||||||
|
uni.showToast({
|
||||||
|
title: '时间范围不能为空',
|
||||||
|
icon: 'none',
|
||||||
|
duration:2000
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.$u.get(`/mch/dashboard/businessStatisticsByDevice?storeId=${storeId == null ? '' : storeId}&dateRange=${this.endtime+ ',' +this.lasttime}`).then(res => {
|
||||||
|
if(res.code == 200){
|
||||||
|
let arr = res.data
|
||||||
|
this.vallist = arr.map(item => ({
|
||||||
|
...item,
|
||||||
|
formattedDuration: this.formatDuration(item.seconds)
|
||||||
|
}))
|
||||||
|
// 如果之前有展开的行,则将其折叠
|
||||||
|
if (this.previouslyExpandedIndex !== null && this.previouslyExpandedIndex !== index) {
|
||||||
|
this.$set(this.tableData, this.previouslyExpandedIndex, {
|
||||||
|
...this.tableData[this.previouslyExpandedIndex],
|
||||||
|
folded: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 展开当前行
|
||||||
|
this.$set(this.tableData, index, {
|
||||||
|
...this.tableData[index],
|
||||||
|
folded: false
|
||||||
|
});
|
||||||
|
// 更新之前展开行的索引
|
||||||
|
this.previouslyExpandedIndex = index;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 选择时间
|
||||||
|
btnks(num) {
|
||||||
|
this.show = true
|
||||||
|
if (num == 1) {
|
||||||
|
this.num = 1
|
||||||
|
} else {
|
||||||
|
this.num = 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 清除时间
|
||||||
|
btnqc() {
|
||||||
|
this.endtime = ''
|
||||||
|
this.lasttime = ''
|
||||||
|
},
|
||||||
|
// 确定时间
|
||||||
|
confirm(e) {
|
||||||
|
if (this.num == 1) {
|
||||||
|
this.endtime = e.year + '-' + e.month + '-' + e.day
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.lasttime = e.year + '-' + e.month + '-' + e.day
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
/deep/ .u-title {
|
||||||
|
padding-bottom: 22rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .uicon-nav-back {
|
||||||
|
padding-bottom: 22rpx;
|
||||||
|
}
|
||||||
|
.dateactive {
|
||||||
|
background: #E3E3FF !important;
|
||||||
|
color: #3D3D3D !important;
|
||||||
|
}
|
||||||
|
.ordertongji {
|
||||||
|
width: 658rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
.shuju {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
.sjone{
|
||||||
|
width: 170rpx;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
.je{
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #3D3D3D;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.shu{
|
||||||
|
font-size: 20rpx;
|
||||||
|
color: #3D3D3D;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
padding-left: 80rpx;
|
||||||
|
padding-right: 80rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 26rpx;
|
||||||
|
text {
|
||||||
|
padding: 6rpx 18rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: #eee;
|
||||||
|
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #808080;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.orderday {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
padding: 10rpx 12rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
width: 148rpx;
|
||||||
|
height: 84rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 84rpx;
|
||||||
|
color: #979797;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.table-container {
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-row {
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
border-bottom: 1rpx solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10rpx;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 100rpx;
|
||||||
|
text{
|
||||||
|
width: 16%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-details {
|
||||||
|
padding: 10rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
view{
|
||||||
|
width: 16%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.folded-count {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
padding: 0 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.tab {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #fff;
|
||||||
|
height: 50rpx;
|
||||||
|
view{
|
||||||
|
width: 16%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.serch {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 40rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 120rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
view {
|
||||||
|
width: 170rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #8883F0;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
height: 150rpx;
|
||||||
|
padding-top: 40rpx !important;
|
||||||
|
padding: 0 40rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
.timetit {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timert {
|
||||||
|
display: flex;
|
||||||
|
line-height: 60rpx;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
|
||||||
|
.xztime {
|
||||||
|
width: 300rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qinc {
|
||||||
|
font-size: 50rpx;
|
||||||
|
color: #ccc;
|
||||||
|
width: 80rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
page {
|
||||||
|
background-color: #fff !important;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user