准备联调抄表记录
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import { getReportDetail } from "../../../service/report";
|
||||
import { alertInfo, alertSuccess, getPixelRatio } from "../../../utils/index";
|
||||
import { alertInfo, alertSuccess, getPixelRatio, loadingFunc } from "../../../utils/index";
|
||||
import request from '../../../utils/request'
|
||||
import * as echarts from '../../components/echarts/echarts';
|
||||
import { getRoundNumber } from "../../../utils/index"
|
||||
const { OK } = request
|
||||
|
||||
|
||||
|
||||
// pages/billDetail/index.js
|
||||
Page({
|
||||
|
||||
@@ -15,31 +18,34 @@ Page({
|
||||
time: "",
|
||||
detail: {},
|
||||
meters: [],
|
||||
header1: [
|
||||
{ key: 'address', title: '电表地址' },
|
||||
{ title: '起码',renderBody: (item) => { return item?.startNumber } },
|
||||
{ title: '止码',renderBody: (item) => { return item?.endNumber } },
|
||||
{ title: '倍率',renderBody: (item) => { return item?.displayRatio } },
|
||||
],
|
||||
header2: [
|
||||
{ title: '用电量', renderBody: (item) => item?.overall?.amount },
|
||||
{ title: '线损电量',renderBody: (item) => item?.loss?.amount },
|
||||
{ title: '公摊电量',renderBody: (item) => item?.publicAmount },
|
||||
{ title: '合计电量',renderBody: (item) => {
|
||||
// header1: [
|
||||
// { key: 'address', title: '电表地址' },
|
||||
// { title: '起码',renderBody: (item) => { return item?.startNumber } },
|
||||
// { title: '止码',renderBody: (item) => { return item?.endNumber } },
|
||||
// { title: '倍率',renderBody: (item) => { return item?.displayRatio } },
|
||||
// ],
|
||||
// header2: [
|
||||
// { title: '用电量', renderBody: (item) => item?.overall?.amount },
|
||||
// { title: '线损电量',renderBody: (item) => item?.loss?.amount },
|
||||
// { title: '公摊电量',renderBody: (item) => item?.publicAmount },
|
||||
// { title: '合计电量',renderBody: (item) => {
|
||||
|
||||
} },
|
||||
]
|
||||
// } },
|
||||
// ]
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
const { id, time } = options;
|
||||
this.init(id, time);
|
||||
const { id, time, tenement } = options;
|
||||
const that = this;
|
||||
loadingFunc(async () => {
|
||||
await that.init(id, time, tenement);
|
||||
})
|
||||
},
|
||||
async init(id, time) {
|
||||
const { code, message, detail, amount } = await getReportDetail(id)
|
||||
async init(id, time, tenement) {
|
||||
const { code, message, detail, amount } = await getReportDetail(id, tenement)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
@@ -50,45 +56,92 @@ Page({
|
||||
detail,
|
||||
amount: amount,
|
||||
meters: detail?.meters?.map(item => {
|
||||
const finalAmount = Number(item?.overall?.amount || 0) + Number(item?.loss?.amount || 0) + Number(item?.publicAmount || 0)
|
||||
item.finalAmount = Number(finalAmount).toFixed(2)
|
||||
if (item?.loss?.amount) {
|
||||
item.loss.amount = getRoundNumber(Number(item.loss.amount))
|
||||
}
|
||||
// const finalAmount = Number(item?.overall?.amount || 0) + Number(item?.loss?.amount || 0) + Number(item?.publicAmount || 0)
|
||||
item.finalAmount = getRoundNumber(Number(item.finalAmount))
|
||||
return item;
|
||||
})
|
||||
})
|
||||
const option = {
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
top: 10,
|
||||
left: 'center'
|
||||
},
|
||||
label: {
|
||||
alignTo: 'edge',
|
||||
formatter: '{name|{b}}\n{value|{c} }',
|
||||
minMargin: 5,
|
||||
edgeDistance: 10,
|
||||
lineHeight: 15,
|
||||
rich: {
|
||||
time: {
|
||||
fontSize: 10,
|
||||
color: '#999'
|
||||
if (detail?.park?.meter04kvType === 0) {
|
||||
const option = {
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
legend: {
|
||||
top: 10,
|
||||
left: 'center'
|
||||
},
|
||||
label: {
|
||||
alignTo: 'edge',
|
||||
formatter: '{name|{b}}\n{value|{c} }',
|
||||
minMargin: 5,
|
||||
edgeDistance: 10,
|
||||
lineHeight: 15,
|
||||
rich: {
|
||||
time: {
|
||||
fontSize: 10,
|
||||
color: '#999'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '50%',
|
||||
data: [
|
||||
{ value: detail.comprehensive.lossAmount, name: '本期线损电量', itemStyle: { color: 'rgb(104,187,196)' } },
|
||||
{ value: detail.comprehensive.consumption, name: '本期用电量', itemStyle: { color: 'rgb(80,135,236)' } },
|
||||
|
||||
],
|
||||
}
|
||||
]
|
||||
};
|
||||
this.init_pieCharts(option);
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: '50%',
|
||||
data: [
|
||||
{ value: detail.comprehensive.lossAmount, name: '线损电量', itemStyle: { color: 'rgb(104,187,196)' } },
|
||||
{ value: detail.comprehensive.consumption, name: '电度电量', itemStyle: { color: 'rgb(80,135,236)' } },
|
||||
|
||||
],
|
||||
}
|
||||
]
|
||||
};
|
||||
this.init_pieCharts(option);
|
||||
} else {
|
||||
// const option = {
|
||||
// tooltip: {
|
||||
// trigger: 'item'
|
||||
// },
|
||||
// legend: {
|
||||
// top: 10,
|
||||
// left: 'center'
|
||||
// },
|
||||
// label: {
|
||||
// alignTo: 'edge',
|
||||
// formatter: '{name|{b}}\n{value|{c} }',
|
||||
// minMargin: 5,
|
||||
// edgeDistance: 10,
|
||||
// lineHeight: 15,
|
||||
// rich: {
|
||||
// time: {
|
||||
// fontSize: 10,
|
||||
// color: '#999'
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// series: [
|
||||
// {
|
||||
// type: 'pie',
|
||||
// radius: '50%',
|
||||
// data: [
|
||||
// {
|
||||
// value: detail.comprehensive.lossAmount,
|
||||
// name: '线损电量',
|
||||
// },
|
||||
// {
|
||||
// value: detail.comprehensive.consumption,
|
||||
// name: '电度电量',
|
||||
// },
|
||||
|
||||
// ],
|
||||
// }
|
||||
// ]
|
||||
// };
|
||||
// this.init_pieCharts(option);
|
||||
}
|
||||
|
||||
const that = this;
|
||||
wx.getSystemInfo({
|
||||
success: function (res) {
|
||||
@@ -115,6 +168,12 @@ Page({
|
||||
return pieChart;
|
||||
});
|
||||
},
|
||||
jumpToDetail(e) {
|
||||
const { meter } = e.currentTarget.dataset;
|
||||
wx.navigateTo({
|
||||
url: '/pages/billMeterDetail/index?data=' + JSON.stringify(meter),
|
||||
})
|
||||
},
|
||||
download() {
|
||||
const { id: tenement } = wx.getStorageSync('tenement')
|
||||
const { id } = this.data;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<!--pages/billDetail/index.wxml-->
|
||||
<navigator title="{{ time }}电费账单" canBack="{{true}}" />
|
||||
<view class="title" style="top: {{statusBarHeight + 46}}px">
|
||||
<avatar text="{{detail.tenement.shortName}}" />
|
||||
<avatar text="{{detail.tenement.shortName}}" />
|
||||
<view class="titleContent">
|
||||
<view class="park">
|
||||
<view class="label">
|
||||
@@ -11,7 +11,7 @@
|
||||
</view>
|
||||
<view class="address">
|
||||
<view class="label">
|
||||
用电地址:
|
||||
商户地址:
|
||||
</view>
|
||||
<view class="value"> {{ detail.tenement.address }} </view>
|
||||
</view>
|
||||
@@ -19,20 +19,20 @@
|
||||
<view class="label">
|
||||
账单周期:
|
||||
</view>
|
||||
<view class="value"> {{ detail.comprehensive.startDate }} 至 {{ detail.comprehensive.endDate }} </view>
|
||||
<view class="value"> {{ detail.comprehensive.startDate }} 至 {{ detail.comprehensive.endDate }} </view>
|
||||
</view>
|
||||
</view>
|
||||
<van-button type="info" size="small" class="download" bind:click="download">下载</van-button>
|
||||
</view>
|
||||
|
||||
<view class="wrapper">
|
||||
<view class="wrapper" wx:if="{{detail.park.meter04kvType !== 1}}">
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 本期账单 </view>
|
||||
<van-row gutter="10">
|
||||
<van-col span="8">
|
||||
<view class="colContent">
|
||||
<view class="colContentTitle">本期用电量</view>
|
||||
<view class="colContentValue"> {{ amount }} 千瓦时 </view>
|
||||
<view class="colContentValue" wx:if="{{detail.park.meter04kvType === 0}}"> {{ amount }} 千瓦时 </view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
@@ -50,17 +50,10 @@
|
||||
</van-row>
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 电费构成 </view>
|
||||
<echarts
|
||||
style="width:200rpx;height:180rpx;"
|
||||
id="echarts"
|
||||
class='mychart-bar'
|
||||
canvas-id="mychart-bar"
|
||||
ec="{{ ec }}"
|
||||
forceUseOldCanvas="{{false}}"
|
||||
>
|
||||
<echarts style="width:200rpx;height:180rpx;" id="echarts" class='mychart-bar' canvas-id="mychart-bar" ec="{{ ec }}" forceUseOldCanvas="{{false}}">
|
||||
</echarts>
|
||||
<view class="tooltip">
|
||||
(本月电量+本月线损电量)*电单价+摊薄公摊电费+摊薄调整电费
|
||||
(电度电量+线损电量)*电单价+摊薄公摊电费+摊薄调整电费
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 电量明细 </view>
|
||||
@@ -86,7 +79,7 @@
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 用电量 </view>
|
||||
<view class="tableTitle"> 电度电量 </view>
|
||||
<view class="tableContent"> {{item.overall.amount}} </view>
|
||||
|
||||
</van-col>
|
||||
@@ -106,4 +99,97 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="wrapper" wx:if="{{detail.park.meter04kvType === 1}}">
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 本期账单 </view>
|
||||
<van-row gutter="10">
|
||||
<van-col span="12">
|
||||
<view class="colContent">
|
||||
<view class="colContentTitle">本期用电量</view>
|
||||
<view class="colContentValue"> {{ detail.comprehensive.finalAmount }} 千瓦时 </view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
<view class="colContent">
|
||||
<view class="colContentTitle">本期电费</view>
|
||||
<view class="colContentValue"> {{ detail.comprehensive.total }} 元 </view>
|
||||
</view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 分时明细 </view>
|
||||
<van-row gutter="10">
|
||||
<van-col span="12">
|
||||
<view class="colContent">
|
||||
<view class="colContentTitle">
|
||||
分时电量
|
||||
<view> (千瓦时) </view>
|
||||
</view>
|
||||
<view class="colContentValue2">尖: {{ detail.comprehensive.sharpAmount }} </view>
|
||||
<view class="colContentValue2">峰: {{ detail.comprehensive.peakAmount }} </view>
|
||||
<view class="colContentValue2">平: {{ detail.comprehensive.flatAmount }} </view>
|
||||
<view class="colContentValue2">谷: {{ detail.comprehensive.valleyAmount }} </view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
<view class="colContent">
|
||||
<view class="colContentTitle">
|
||||
分时单价
|
||||
<view> (元/千瓦时) </view>
|
||||
</view>
|
||||
<view class="colContentValue2">尖: {{ detail.comprehensive.priceSharp }} </view>
|
||||
<view class="colContentValue2">峰: {{ detail.comprehensive.pricePeak }} </view>
|
||||
<view class="colContentValue2">平: {{ detail.comprehensive.priceFlat }} </view>
|
||||
<view class="colContentValue2">谷: {{ detail.comprehensive.priceValley }} </view>
|
||||
</view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<view class="line"></view>
|
||||
<view class="tooltip">
|
||||
(电度电量+线损电量)*单价+摊薄公摊电费+摊薄调整电费
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class="contentTitle"> 分时电量明细 </view>
|
||||
<view class="tableWrapper">
|
||||
<view class="meterListItem" wx:for="{{meters}}" wx:key="id">
|
||||
<div class="top">
|
||||
<view class="address">{{item.address}}</view>
|
||||
<view class="detail primaryTextBtn" bind:tap="jumpToDetail" data-meter="{{item}}"> 详情 </view>
|
||||
</div>
|
||||
<view style="margin: 20rpx 0; background-color: #fff;">
|
||||
<van-row custom-style="height: 100%;display: flex;flex-direction: column;overflow: hidden;">
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 电度电量 </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 线损电量 </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 合计电量 </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 合计电费 </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row class="meterListItemContent">
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{item.overall.amount}} </view>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{item.loss.amount}} </view>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{item.finalAmount}} </view>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{item.finalTotal}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 20rpx;"></view>
|
@@ -59,12 +59,25 @@ page {
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.colContentTitle2 {
|
||||
padding: 30rpx 0;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.colContentValue {
|
||||
padding-bottom: 30rpx;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.colContentValue2 {
|
||||
padding-bottom: 20rpx;
|
||||
padding-left: 40rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
font-size: 30rpx;
|
||||
color: rgb(136, 132, 132);
|
||||
@@ -87,10 +100,37 @@ page {
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
flex: 1;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.download {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
}
|
||||
|
||||
.meterListItem {
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.meterListItem .top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.meterListItem .address {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
|
||||
/* .top .meterListItem:nth-child(even) .tableContent,
|
||||
.bottom .meterListItem:nth-child(even) .tableContent,
|
||||
.top .meterListItem:nth-child(even),
|
||||
.bottom .meterListItem:nth-child(even)
|
||||
{
|
||||
|
||||
} */
|
||||
|
||||
.meterListItemContent, .meterListItemContent .tableContent {
|
||||
background-color: #fff;
|
||||
}
|
@@ -1,24 +1,23 @@
|
||||
// pages/electricQuery/components/accountingCard/index.js
|
||||
Component({
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
data: Object
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
data: Object
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
},
|
||||
|
||||
},
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
})
|
@@ -1,33 +1,86 @@
|
||||
<!--pages/electricQuery/components/accountingCard/index.wxml-->
|
||||
<view class="wrapper">
|
||||
<view class="title">
|
||||
{{data.meter.address}}
|
||||
</view>
|
||||
<van-row>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 初始余额 </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 储值累计金额 </view>
|
||||
</van-col>
|
||||
<van-col span="5">
|
||||
<view class="tableTitle"> 电费 </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableTitle"> 账务余额 </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{data.startMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view class="tableContent"> {{data.rechargeMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="5">
|
||||
<view class="tableContent"> {{data.electricMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="6">
|
||||
<view class="tableContent"> {{data.currentMoney}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<view class="title">
|
||||
<span>{{data.meter.address}}</span>
|
||||
<span style="font-size: 30rpx; margin-left: 100rpx;">电表编号:{{data.meter.sn}}</span>
|
||||
</view>
|
||||
<van-row>
|
||||
<view class="table-header" style="border-bottom: 2rpx solid #000; ">
|
||||
<view class="table-header-row">
|
||||
<text class="table-header-cell">类目</text>
|
||||
<text class="table-header-cell">金额</text>
|
||||
<text class="table-header-cell">更新时间</text>
|
||||
</view>
|
||||
</view>
|
||||
</van-row>
|
||||
|
||||
<view style="border-bottom: 2rpx solid rgba(12, 236, 188, 0.26); ">
|
||||
<van-row>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 初始余额 </view>
|
||||
</van-col>
|
||||
<van-col span="10">
|
||||
<view class="tableContent"> {{data.startMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view calss="tableContent"> {{data.updateStartMoneyAt || '--'}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
|
||||
<view style="border-bottom: 2rpx solid rgba(12, 236, 188, 0.26); ">
|
||||
<van-row>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 累计充值金额 </view>
|
||||
</van-col>
|
||||
<van-col span="10">
|
||||
<view class="tableContent"> {{data.rechargeMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view calss="tableContent"> {{data.updateRechargeMoneyAt || '--'}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
|
||||
<view style="border-bottom: 2rpx solid rgba(12, 236, 188, 0.26); ">
|
||||
<van-row>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 电费 </view>
|
||||
</van-col>
|
||||
<van-col span="10">
|
||||
<view class="tableContent"> {{data.electricMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view calss="tableContent"> {{data.updateElectricMoneyAt || '--'}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
|
||||
<view style="border-bottom: 2rpx solid rgba(12, 236, 188, 0.26); ">
|
||||
<van-row>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 账务余额 </view>
|
||||
</van-col>
|
||||
<van-col span="10">
|
||||
<view class="tableContent"> {{data.accountMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view calss="tableContent"> {{data.updateAccountMoneyAt || '--'}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
|
||||
<view style="border-bottom: 2rpx solid rgba(12, 236, 188, 0.26); ">
|
||||
<van-row>
|
||||
<van-col span="7">
|
||||
<view class="tableTitle"> 电表余额 </view>
|
||||
</van-col>
|
||||
<van-col span="10">
|
||||
<view class="tableContent"> {{data.meterMoney}} </view>
|
||||
</van-col>
|
||||
<van-col span="7">
|
||||
<view calss="tableContent"> {{data.updateMeterMoneyAt || '--'}} </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
</view>
|
@@ -17,8 +17,25 @@
|
||||
}
|
||||
|
||||
.tableContent {
|
||||
margin-top: 10rpx;
|
||||
margin-top: 25rpx;
|
||||
margin-bottom: 20rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
}
|
||||
.table-header {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
background-color: #f5f5f5;
|
||||
border-bottom: 1rpx solid #eaeaea;
|
||||
}
|
||||
.table-header-row {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
.table-header-cell {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 20rpx 0;
|
||||
font-size: 25rpx;
|
||||
color: #333;
|
||||
}
|
128
childPackage/pages/electricQuery/components/reading/index.js
Normal file
128
childPackage/pages/electricQuery/components/reading/index.js
Normal file
@@ -0,0 +1,128 @@
|
||||
// childPackage/pages/electricQuery/components/reading/index.js
|
||||
import { exportElectricityList, getAccountingList, getElectricityList, getMeterReadingList } from "../../../../../service/accounting";
|
||||
import { getTenementMeterList } from "../../../../../service/meter";
|
||||
import dayjs from "../../../../../utils/dayjs";
|
||||
import { getParkInfoByTime } from "../../../../../service/park";
|
||||
import request from '../../../../../utils/request';
|
||||
import { alertInfo, getPixelRatio, loadingFunc } from "../../../../../utils/index";
|
||||
const { OK } = request;
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
meter: String,
|
||||
parkInfo: Object,
|
||||
},
|
||||
observers: {
|
||||
'meter': function() {
|
||||
loadingFunc(async () => {
|
||||
await this.getReadingList();
|
||||
})
|
||||
},
|
||||
"parkInfo": function(newValue) {
|
||||
this.setData({ park: newValue })
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
readingDetailShow: false,
|
||||
readingDetail: {},
|
||||
park: {},
|
||||
meterReadingHeader: [
|
||||
{ key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address },
|
||||
{ title: '倍率', key: 'ratio' },
|
||||
{ key: 'number', title: '当前表字' },
|
||||
],
|
||||
meterReadingList: [],
|
||||
yearMonthDayReading: dayjs().format("YYYY-MM-DD"),
|
||||
yearMonthDayReadingStamp: new Date().getTime(),
|
||||
readingPage: 1,
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
clickReadingTime() {
|
||||
this.setData({
|
||||
readingVisible: true
|
||||
})
|
||||
},
|
||||
async getReadingList() {
|
||||
const { meter, yearMonthDayReading, readingPage } = this.data;
|
||||
const { code, message, data, total } = await getMeterReadingList({
|
||||
id: meter,
|
||||
time: yearMonthDayReading,
|
||||
page: readingPage
|
||||
})
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({ meterReadingList: data, totalPage: Math.ceil(total / 20) })
|
||||
},
|
||||
onReadingTimeClose() {
|
||||
this.setData({ readingVisible: false })
|
||||
},
|
||||
onReadingTimeCancel() {
|
||||
this.setData({ readingVisible: false })
|
||||
},
|
||||
onReadingTimeConfirm(e) {
|
||||
const { time } = e.detail;
|
||||
|
||||
this.setData({
|
||||
yearMonthDayReading: time,
|
||||
yearMonthDayReadingStamp: new Date(time).getTime(),
|
||||
readingVisible: false,
|
||||
readingPage: 1,
|
||||
}, () => {
|
||||
loadingFunc(async () => {
|
||||
await this.getParkInfo(time)
|
||||
await this.getReadingList();
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
async getParkInfo(time) {
|
||||
const park = wx.getStorageSync('park');
|
||||
const { park:parkInfo, code, message } = await getParkInfoByTime(park?.id, `${time}`, `${0}`,)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
const that = this;
|
||||
return new Promise((resolve) => {
|
||||
|
||||
that.setData({
|
||||
parkInfo: parkInfo
|
||||
}, () => {
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
showDetail(e) {
|
||||
const { index, data = {} } = e.detail;
|
||||
this.setData({
|
||||
readingDetailShow: true,
|
||||
readingDetail: data || {}
|
||||
})
|
||||
},
|
||||
async onChangePage(e) {
|
||||
const page = e.detail.currentIndex;
|
||||
const that = this;
|
||||
this.setData({
|
||||
readingPage: page
|
||||
}, () => {
|
||||
loadingFunc(async () => {
|
||||
await that.getReadingList();
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
})
|
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"custom-picker": "/components/picker/index",
|
||||
"table": "/components/table/table",
|
||||
"empty": "/components/empty/index",
|
||||
"timePicker": "/components/timePicker/index",
|
||||
"pagination": "/components/pagination/index",
|
||||
"van-dialog": "@vant/weapp/dialog/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-icon": "@vant/weapp/icon/index"
|
||||
}
|
||||
}
|
150
childPackage/pages/electricQuery/components/reading/index.wxml
Normal file
150
childPackage/pages/electricQuery/components/reading/index.wxml
Normal file
@@ -0,0 +1,150 @@
|
||||
<!--childPackage/pages/electricQuery/components/reading/index.wxml-->
|
||||
<view style="margin-left: 30rpx;">
|
||||
<view class="timeChooseWrapper">
|
||||
<view> 选择时间 </view>
|
||||
<view class="time" bind:tap="clickReadingTime">
|
||||
<view class="timeText"> {{yearMonthDayReading}} </view>
|
||||
<van-icon name="arrow-down" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin: 30rpx;">
|
||||
<view wx:if="{{meterReadingList.length}}">
|
||||
<table
|
||||
header="{{meterReadingHeader}}"
|
||||
list="{{meterReadingList}}"
|
||||
bind:onClick="showDetail"
|
||||
/>
|
||||
<pagination
|
||||
currentIndex="{{readingPage}}"
|
||||
totalPage="{{totalPage}}"
|
||||
bind:pagingChange="onChangePage"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<empty bind:refresh="getReadingList" wx:else />
|
||||
</view>
|
||||
|
||||
<timePicker
|
||||
type="day"
|
||||
day="{{yearMonthDayReadingStamp}}"
|
||||
show="{{readingVisible}}"
|
||||
bind:cancel="onReadingTimeCancel"
|
||||
bind:close="onReadingTimeClose"
|
||||
bind:confirm="onReadingTimeConfirm"
|
||||
/>
|
||||
|
||||
|
||||
<van-dialog
|
||||
use-slot
|
||||
title="抄表记录详情"
|
||||
show="{{ readingDetailShow }}"
|
||||
bind:close="onClose"
|
||||
>
|
||||
<view style="margin-top: 10px;">
|
||||
<van-cell-group>
|
||||
<van-field
|
||||
value="{{ readingDetail.meter.address }}"
|
||||
border="{{ false }}"
|
||||
label="地址"
|
||||
readonly
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readingDetail.meter.sn }}(SN)"
|
||||
border="{{ false }}"
|
||||
label="编号"
|
||||
readonly
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.readAt }}"
|
||||
border="{{ false }}"
|
||||
label="时间"
|
||||
readonly
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.ratio }}"
|
||||
border="{{ false }}"
|
||||
label="倍率"
|
||||
readonly
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.number }}"
|
||||
border="{{ false }}"
|
||||
label="当前表字(总)"
|
||||
readonly
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.overall }}"
|
||||
border="{{ false }}"
|
||||
label="总用电量"
|
||||
readonly
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.sharp }}"
|
||||
border="{{ false }}"
|
||||
label="当前表字(尖)"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readingDetail.sharpAmount }}"
|
||||
border="{{ false }}"
|
||||
label="尖用电量"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.peak }}"
|
||||
border="{{ false }}"
|
||||
label="当前表字(峰)"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1 || park.meter04kvType === 2}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readingDetail.peakAmount }}"
|
||||
border="{{ false }}"
|
||||
label="峰用电量"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.flat }}"
|
||||
border="{{ false }}"
|
||||
label="当前表字(平)"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readingDetail.flatAmount }}"
|
||||
border="{{ false }}"
|
||||
label="平用电量"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
value="{{ readingDetail.valley }}"
|
||||
border="{{ false }}"
|
||||
label="当前表字(谷)"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readingDetail.valleyAmount }}"
|
||||
border="{{ false }}"
|
||||
label="谷用电量"
|
||||
readonly
|
||||
wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}"
|
||||
/>
|
||||
<view class="text">上次抄表记录起,至现在时间内的用电量</view>
|
||||
</van-cell-group>
|
||||
|
||||
</view>
|
||||
</van-dialog>
|
102
childPackage/pages/electricQuery/components/reading/index.wxss
Normal file
102
childPackage/pages/electricQuery/components/reading/index.wxss
Normal file
@@ -0,0 +1,102 @@
|
||||
/* childPackage/pages/electricQuery/components/reading/index.wxss */
|
||||
|
||||
/* pages/electricQuery/index.wxss */
|
||||
page {
|
||||
background-color: var(--transparent-green);
|
||||
}
|
||||
|
||||
.queryWrapper {
|
||||
margin: 20rpx 0rpx;
|
||||
background-color: #fff;
|
||||
padding:15rpx 20rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 180rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.sum {
|
||||
margin-bottom: 30rpx;
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
padding-bottom: 50rpx;
|
||||
}
|
||||
|
||||
.query {
|
||||
margin: 20rpx 0rpx;
|
||||
}
|
||||
|
||||
.typeQueryText {
|
||||
text-align: center;
|
||||
padding: 20rpx;
|
||||
background-color: var(--light-green);
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.select {
|
||||
border: 1rpx solid #ccc;
|
||||
padding: 12rpx;
|
||||
border-radius: 12rpx;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.timeQueryText {
|
||||
text-align: center;
|
||||
padding: 20rpx;
|
||||
background-color: rgb(242,248,246);
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
margin: 20rpx 0;
|
||||
font-size: 28rpx;
|
||||
color: rgb(97, 93, 93);
|
||||
}
|
||||
.timeChooseWrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.time {
|
||||
flex: 1;
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
display: flex;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 12rpx;
|
||||
border: 1rpx solid #ccc;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.timeText {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mychart-bar::after{
|
||||
content:"";
|
||||
display:block;
|
||||
clear:both
|
||||
}
|
||||
|
||||
.text{
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
margin: 10rpx 0;
|
||||
text-align: center;
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
// pages/electricQuery/index.js
|
||||
import { exportElectricityList, getAccountingList, getElectricityList, getMeterReadingList } from "../../../service/accounting";
|
||||
import { getTenementMeterList } from "../../../service/meter";
|
||||
import { getParkInfoByTime } from "../../../service/park";
|
||||
import dayjs from "../../../utils/dayjs";
|
||||
import request from '../../../utils/request';
|
||||
import * as echarts from '../../components/echarts/echarts';
|
||||
@@ -22,26 +23,32 @@ Page({
|
||||
year: dayjs().format('YYYY'),
|
||||
yearMonth: dayjs().format("YYYY-MM"),
|
||||
yearMonthDay: dayjs().format("YYYY-MM-DD"),
|
||||
|
||||
yearStamp: new Date().getTime(),
|
||||
yearMonthStamp: new Date().getTime(),
|
||||
yearMonthDayStamp: new Date().getTime(),
|
||||
|
||||
|
||||
header: [
|
||||
{ key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address },
|
||||
// { key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address },
|
||||
{ title: '时间',renderBody: (item) => { return item.time } },
|
||||
{ key: 'number', title: '耗量' },
|
||||
],
|
||||
meterReadingHeader: [
|
||||
{ key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address },
|
||||
{ title: '倍率', key: 'ratio' },
|
||||
{ key: 'number', title: '抄表记录' },
|
||||
valleyHeader: [
|
||||
// { key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address },
|
||||
{ title: '时间',renderBody: (item) => { return item.time } },
|
||||
{ key: 'critical', title: '尖' },
|
||||
{ key: 'peak', title: '峰' },
|
||||
{ key: 'flat', title: '平' },
|
||||
{ key: 'valley', title: '谷' },
|
||||
],
|
||||
list: [],
|
||||
visible: false,
|
||||
meterReadingList: [],
|
||||
accountingList: [],
|
||||
electricNumber: 0,
|
||||
meterNumber: 0,
|
||||
page: 1,
|
||||
readingPage: 1,
|
||||
},
|
||||
changeQueryType(e) {
|
||||
const { type } = e.currentTarget.dataset
|
||||
@@ -53,10 +60,10 @@ Page({
|
||||
})
|
||||
break;
|
||||
case 1:
|
||||
loadingFunc(async () => {
|
||||
await this.getReadingList();
|
||||
})
|
||||
break;
|
||||
// loadingFunc(async () => {
|
||||
// await this.getReadingList();
|
||||
// })
|
||||
// break;
|
||||
case 2:
|
||||
loadingFunc(async () => {
|
||||
await this.getAccountingBalanceList();
|
||||
@@ -74,8 +81,9 @@ Page({
|
||||
visible: true
|
||||
})
|
||||
},
|
||||
|
||||
changeTimeType(e) {
|
||||
const { type } = e.currentTarget.dataset
|
||||
const { type } = e.currentTarget.dataset;
|
||||
const that = this;
|
||||
this.setData({ timeType: type }, () => {
|
||||
loadingFunc(async () => {
|
||||
@@ -89,11 +97,13 @@ Page({
|
||||
*/
|
||||
onLoad(options) {
|
||||
loadingFunc(async () => {
|
||||
await this.getMeters()
|
||||
await this.getParkInfo()
|
||||
await this.init()
|
||||
})
|
||||
},
|
||||
async init() {
|
||||
const { queryType, timeType, meterId, year, yearMonth, yearMonthDay, page } = this.data;
|
||||
const { queryType, timeType, meterId, year, yearMonth, yearMonthDay, page, parkInfo } = this.data;
|
||||
let time;
|
||||
switch(timeType) {
|
||||
case 1:
|
||||
@@ -128,12 +138,18 @@ Page({
|
||||
devicePixelRatio: getPixelRatio(),
|
||||
});
|
||||
const ids = [...new Set(data?.map(item => item?.meter?.id))]
|
||||
const point = data?.[0]?.time?.slice(-1)
|
||||
const times = [...new Set(data?.map(item => item.time))].
|
||||
map(item => Number(item.replace(point, ""))).
|
||||
sort((a, b) => a - b).
|
||||
map(ele => `${ele}${point}`.padStart(3, "0"));
|
||||
|
||||
const options = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: data?.map(item => item?.meter?.address),
|
||||
data: data?.map(item => item?.meter?.address),
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
@@ -144,18 +160,25 @@ Page({
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: [...new Set(data?.map(item => item.time))]
|
||||
data: times
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: ids?.map(item => {
|
||||
const element = data?.find(i => i?.meter?.id === item)
|
||||
const list = data?.filter(ele => ele?.meter?.id === item)
|
||||
const newList = [...times].map(item => {
|
||||
const exist = list.find(ele => ele.time === item)
|
||||
if (exist) {
|
||||
return Number(exist.critical)+ Number(exist.peak)+Number(exist.flat)+Number(exist.valley);
|
||||
}
|
||||
return null
|
||||
})
|
||||
return {
|
||||
name: element?.meter?.address,
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
data: data?.filter(ele => ele?.meter?.id === item).map(item => item.number)
|
||||
data: newList
|
||||
}})
|
||||
|
||||
};
|
||||
@@ -164,15 +187,7 @@ Page({
|
||||
return pieChart;
|
||||
});
|
||||
},
|
||||
async getReadingList() {
|
||||
const { meterId } = this.data;
|
||||
const { code, message, data } = await getMeterReadingList(meterId)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({ meterReadingList: data, totalPage: 1 })
|
||||
},
|
||||
|
||||
async export() {
|
||||
loadingFunc(async () => {
|
||||
const { queryType, timeType, meterId, year, yearMonth, yearMonthDay } = this.data;
|
||||
@@ -196,6 +211,7 @@ Page({
|
||||
wx.openDocument({
|
||||
filePath: data.tempFilePath,
|
||||
fileType: ['xlsx'],
|
||||
showMenu: true,
|
||||
success() {
|
||||
},
|
||||
fail(err) {
|
||||
@@ -229,15 +245,44 @@ Page({
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
|
||||
const first = data?.[0]
|
||||
this.setData({
|
||||
meterList: data || [],
|
||||
meterId: first?.id,
|
||||
meterAddress: first?.address,
|
||||
meterCode: first?.code,
|
||||
}, () => {
|
||||
const { queryType, } = this.data;
|
||||
switch(queryType) {
|
||||
case 1:
|
||||
loadingFunc(async () => {
|
||||
await this.getReadingList();
|
||||
})
|
||||
break;
|
||||
case 2:
|
||||
loadingFunc(async () => {
|
||||
await this.getAccountingBalanceList();
|
||||
})
|
||||
break;
|
||||
default:
|
||||
loadingFunc(async () => {
|
||||
await this.init();
|
||||
})
|
||||
break;
|
||||
}
|
||||
})
|
||||
},
|
||||
clickMeter() {
|
||||
this.setData({
|
||||
type: "meter",
|
||||
columns: [{ id: "", name: "全部", code: "" }, ...this.data.meterList.map(item => ({ id: item.id, name: `${item.code}-${item.address}`, code: item.code }))],
|
||||
columns: [
|
||||
// { id: "", name: "全部", code: "" },
|
||||
...this.data.meterList.map(item => ({
|
||||
id: item.id,
|
||||
name: `${item.code}-${item.address}`,
|
||||
code: item.code,
|
||||
address: item.address
|
||||
}))],
|
||||
show: true,
|
||||
title: "表计"
|
||||
})
|
||||
@@ -251,11 +296,12 @@ Page({
|
||||
})
|
||||
},
|
||||
onOk(e) {
|
||||
const { id, code } = e.detail.value;
|
||||
const { id, code, address } = e.detail.value;
|
||||
this.setData({
|
||||
// year: currentYear,
|
||||
meterId: id,
|
||||
meterCode: code,
|
||||
meterAddress: address,
|
||||
type: "",
|
||||
show: false,
|
||||
title: ""
|
||||
@@ -287,12 +333,14 @@ Page({
|
||||
onTimeCancel() {
|
||||
this.setData({ visible: false })
|
||||
},
|
||||
|
||||
onTimeConfirm(e) {
|
||||
const { type, time } = e.detail;
|
||||
switch(type) {
|
||||
case "year":
|
||||
this.setData({ year: time, visible: false, }, () => {
|
||||
loadingFunc(async () => {
|
||||
await this.getParkInfo()
|
||||
await this.init();
|
||||
})
|
||||
});
|
||||
@@ -301,6 +349,7 @@ Page({
|
||||
const [year, month] = time.split("-")
|
||||
this.setData({ yearMonth: time, yearMonthStamp: new Date(Number(year), Number(month) - 1, 1).getTime(), visible: false }, () => {
|
||||
loadingFunc(async () => {
|
||||
await this.getParkInfo()
|
||||
await this.init();
|
||||
})
|
||||
});
|
||||
@@ -313,11 +362,15 @@ Page({
|
||||
page: 1,
|
||||
}, () => {
|
||||
loadingFunc(async () => {
|
||||
await this.getParkInfo()
|
||||
await this.init();
|
||||
})
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
readingChangeTime(e) {
|
||||
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
@@ -330,9 +383,39 @@ Page({
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
this.getMeters()
|
||||
},
|
||||
|
||||
},
|
||||
async getParkInfo() {
|
||||
const park = wx.getStorageSync('park');
|
||||
const { timeType, yearMonthDay, yearMonth, year } = this.data;
|
||||
let time = ''
|
||||
switch(timeType) {
|
||||
case 0:
|
||||
time = yearMonthDay;
|
||||
break;
|
||||
case 1:
|
||||
time = yearMonth;
|
||||
break;
|
||||
case 2:
|
||||
time = year;
|
||||
}
|
||||
const { park:parkInfo, code, message } = await getParkInfoByTime(park?.id, `${time}`, `${timeType}`,)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
const that = this;
|
||||
return new Promise((resolve) => {
|
||||
|
||||
that.setData({
|
||||
parkInfo: parkInfo
|
||||
}, () => {
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
|
@@ -12,7 +12,10 @@
|
||||
"accountingCard": "./components/accountingCard/index",
|
||||
"pagination": "/components/pagination/index",
|
||||
"echarts": "/childPackage/components/echarts/ec-canvas",
|
||||
"listTable": "./components/listTable/index"
|
||||
"listTable": "./components/listTable/index",
|
||||
"van-dialog": "@vant/weapp/dialog/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"reading": "./components/reading/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
@@ -7,7 +7,7 @@
|
||||
</view>
|
||||
<view class="select" bind:tap="clickMeter">
|
||||
<view class="selectContent">
|
||||
{{ meterCode === "" ? '全部' : meterCode }}
|
||||
{{ meterAddress === "" ? '-' : meterAddress }}
|
||||
</view>
|
||||
<van-icon name="arrow-down" />
|
||||
</view>
|
||||
@@ -30,23 +30,25 @@
|
||||
<view class="timeQuery" wx:if="{{queryType === 0}}">
|
||||
<van-row>
|
||||
<van-col span="8">
|
||||
<view class="timeQueryText" style="color: {{timeType === 0 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{0}}"> 日耗量 </view>
|
||||
<view class="timeQueryText" style="color: {{timeType === 0 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{0}}"> 日用电量 </view>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<view class="timeQueryText" style="color: {{timeType === 1 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{1}}"> 月耗量 </view>
|
||||
<view class="timeQueryText" style="color: {{timeType === 1 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{1}}"> 月电用量 </view>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<view class="timeQueryText" style="color: {{timeType === 2 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{2}}"> 年耗量 </view>
|
||||
<view class="timeQueryText" style="color: {{timeType === 2 ? '#0958d9' : '#000'}}" bind:tap="changeTimeType" data-type="{{2}}"> 年用电量 </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{queryType === 0}}">
|
||||
<view class="tooltip">
|
||||
不包括线损电量,显示为电表实际消耗电量。仅供参考,实际能耗电量以电费账单为主。如有疑问,请联系客服。
|
||||
不包括线损电量,显示为电表实际消用电量。仅供参考,实际能用电量以电费账单为主。如有疑问,请联系客服。
|
||||
</view>
|
||||
<view class="timeChooseWrapper">
|
||||
<view> 选择时间 </view>
|
||||
<view wx:if="{{timeType === 0}}"> 选择时间 </view>
|
||||
<view wx:elif="{{timeType === 1}}"> 选择日期 </view>
|
||||
<view wx:else="{{timeType === 2}}"> 选择月份 </view>
|
||||
<view class="time" bind:tap="clickTime">
|
||||
<view class="timeText" wx:if="{{timeType === 0}}"> {{yearMonthDay}} </view>
|
||||
<view class="timeText" wx:elif="{{timeType === 1}}"> {{yearMonth}} </view>
|
||||
@@ -57,13 +59,16 @@
|
||||
</view>
|
||||
</view>
|
||||
<view wx:elif="{{queryType === 1}}">
|
||||
<view class="tooltip">
|
||||
<!-- <view class="tooltip">
|
||||
显示为最新的一条抄表记录。电表更新数据有延迟,仅供参考,实际以电表上显示为准。
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view wx:elif="{{queryType === 2}}">
|
||||
<view class="tooltip">
|
||||
账务余额更新时间为:每次预存电费后,每次账单发布后,剩余的实际金额。电表余额与账务余额相差较大的用户,每半年统一处理一次。
|
||||
账务余额更新时间为:每次预存电费后,每次发布账单后剩余的实际金额。
|
||||
</view>
|
||||
<view class="tooltip">
|
||||
计算公式:账务余额 = 初始余额 + 累充充值金额 - 电费
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -81,26 +86,25 @@
|
||||
</view>
|
||||
<empty bind:refresh="init" wx:else /> -->
|
||||
|
||||
<listTable list="{{list}}" header="{{header}}" totalPage="{{totalPage}}" />
|
||||
<listTable
|
||||
list="{{list}}"
|
||||
header="{{header}}"
|
||||
totalPage="{{totalPage}}"
|
||||
wx:if="{{parkInfo.category !== 1}}"
|
||||
/>
|
||||
<listTable
|
||||
list="{{list}}"
|
||||
header="{{valleyHeader}}"
|
||||
totalPage="{{totalPage}}"
|
||||
wx:if="{{parkInfo.category === 1}}"
|
||||
/>
|
||||
</view>
|
||||
<view class="sum">
|
||||
合计:表计数量:{{meterNumber}},耗电量:{{electricNumber}}
|
||||
合计:表计数量:{{meterNumber}},用电量:{{electricNumber}}
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{queryType === 1}}">
|
||||
<view style="margin: 30rpx;">
|
||||
<view wx:if="{{meterReadingList.length}}">
|
||||
<table
|
||||
header="{{meterReadingHeader}}"
|
||||
list="{{meterReadingList}}"
|
||||
/>
|
||||
|
||||
</view>
|
||||
|
||||
<empty bind:refresh="getReadingList" wx:else />
|
||||
</view>
|
||||
|
||||
|
||||
<reading meter="{{meterId}}" parkInfo="{{parkInfo}}" bind:changeTime="readingChangeTime" />
|
||||
</view>
|
||||
<view wx:if="{{queryType === 2}}">
|
||||
<view style="margin: 30rpx;">
|
||||
@@ -139,4 +143,5 @@
|
||||
bind:cancel="onTimeCancel"
|
||||
bind:close="onTimeClose"
|
||||
bind:confirm="onTimeConfirm"
|
||||
/>
|
||||
/>
|
||||
|
||||
|
Reference in New Issue
Block a user