准备联调抄表记录

This commit is contained in:
2025-09-16 17:35:49 +08:00
194 changed files with 6560 additions and 1095 deletions

View File

@@ -1,24 +1,23 @@
// pages/electricQuery/components/accountingCard/index.js
Component({
/**
* 组件的属性列表
*/
properties: {
data: Object
},
/**
* 组件的属性列表
*/
properties: {
data: Object
},
/**
* 组件的初始数据
*/
data: {
/**
* 组件的初始数据
*/
data: {
},
},
/**
* 组件的方法列表
*/
methods: {
/**
* 组件的方法列表
*/
methods: {
}
}
})

View File

@@ -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>

View File

@@ -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;
}

View 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();
})
})
},
}
})

View File

@@ -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"
}
}

View 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>

View 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;
}

View File

@@ -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()
})
})
},
/**
* 生命周期函数--监听页面隐藏
*/

View File

@@ -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"
}

View File

@@ -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"
/>
/>