准备联调抄表记录
This commit is contained in:
@@ -5,7 +5,7 @@ Component({
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
meterInfo: Object,
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,37 +21,46 @@
|
||||
编号
|
||||
</view>
|
||||
<view>
|
||||
1202312423524
|
||||
{{meterInfo.meterSn}}
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
<view class="text">
|
||||
<view>
|
||||
编号
|
||||
类型
|
||||
</view>
|
||||
<view>
|
||||
1202312423524
|
||||
<view wx:if="{{meterInfo.meterBelongType === 0}}">
|
||||
商户电表
|
||||
</view>
|
||||
<view wx:elif="{{meterInfo.meterBelongType === 1}}">
|
||||
公区电表
|
||||
</view>
|
||||
<view wx:elif="{{meterInfo.meterBelongType === 2}}">
|
||||
公摊电表
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
<view class="text">
|
||||
<view>
|
||||
编号
|
||||
状态
|
||||
</view>
|
||||
<view>
|
||||
1202312423524
|
||||
<view wx:if="{{meterInfo.enabled}}">
|
||||
正常
|
||||
</view>
|
||||
<view wx:else>
|
||||
停用
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
<view class="text">
|
||||
<view>
|
||||
编号
|
||||
读数
|
||||
</view>
|
||||
<view>
|
||||
1202312423524
|
||||
{{meterInfo.overall}}
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
|
||||
@@ -6,6 +6,7 @@ Component({
|
||||
*/
|
||||
properties: {
|
||||
active: Boolean,
|
||||
meter: Object
|
||||
},
|
||||
observers: {
|
||||
"active": function (newValue) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!--pages/writeReading/components/meterList/components/meterItem/index.wxml-->
|
||||
<view class="wrapper {{isDeep ? 'deepBg' : ''}}" bind:tap="onClick">
|
||||
标1东-3071312452636756756857
|
||||
{{meter.meterAddress}}
|
||||
</view>
|
||||
@@ -14,6 +14,8 @@
|
||||
height: 150rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.deepBg {
|
||||
|
||||
@@ -1,13 +1,37 @@
|
||||
// pages/writeReading/components/meterList/index.js
|
||||
import { getMeterReadingRouteMeterDetail } from "../../../../service/workBench"
|
||||
import request from "../../../../utils/request"
|
||||
import { alertInfo, alertSuccess, alertError } from "../../../../utils/index"
|
||||
const { OK } = request;
|
||||
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
list: Array,
|
||||
active: Number,
|
||||
meterInfo: Object
|
||||
},
|
||||
observers: {
|
||||
"active,list": function(newActive, newList) {
|
||||
if (newActive >= 0 && newList.length) {
|
||||
this.getMeterInfo(newList?.[newActive]?.meterId, newActive, true)
|
||||
}
|
||||
if (newActive === 0) {
|
||||
this.setData({ scrollLeft: 0 })
|
||||
} else if (newActive > 0) {
|
||||
this.setData({ scrollLeft: 220 * newList.length - 20 })
|
||||
}
|
||||
const { scrollWidth } = this.data;
|
||||
if (scrollWidth) {
|
||||
this.setData({
|
||||
maxScrollLeft: newList?.length ? 220 * newList.length - (scrollWidth || 0) - 20 : 0,
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
@@ -15,16 +39,22 @@ Component({
|
||||
animationData: {}, // 存储动画数据
|
||||
position: 0,
|
||||
scrollLeft: 0, // 当前滚动位置
|
||||
maxScrollLeft: 0 // 最大可滚动距离
|
||||
maxScrollLeft: 0, // 最大可滚动距离
|
||||
},
|
||||
lifetimes: {
|
||||
attached() {
|
||||
const that = this;
|
||||
const query = this.createSelectorQuery();
|
||||
// query.select('.scroll-content').boundingClientRect();
|
||||
console.log("query", query)
|
||||
query.select('.meterListScrollView').boundingClientRect((rect) => {
|
||||
console.log("rect", rect)
|
||||
});
|
||||
query.select('.meterListScrollView').boundingClientRect()
|
||||
query.exec(function(res){
|
||||
const { list } = that.data;
|
||||
const length = that.data.list?.length || 0;
|
||||
that.setData({
|
||||
maxScrollLeft:length ? 220 * list.length - (res?.[0]?.width || 0) - 20 : 0,
|
||||
scrollWidth: res?.[0]?.width || 0
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
@@ -61,15 +91,29 @@ Component({
|
||||
});
|
||||
|
||||
},
|
||||
onChangeMeter() {
|
||||
console.log("---------------")
|
||||
handleSelect(e) {
|
||||
const { id, index } = e.currentTarget.dataset;
|
||||
this.getMeterInfo(id, index)
|
||||
},
|
||||
onScroll(e) {
|
||||
// 实时更新当前滚动位置,可用于更复杂的边界判断
|
||||
this.setData({
|
||||
scrollLeft: e.detail.scrollLeft
|
||||
});
|
||||
async getMeterInfo(id, index, noChange) {
|
||||
const { code, message, data } = await getMeterReadingRouteMeterDetail(id)
|
||||
if (code !== OK) {
|
||||
alertError(message)
|
||||
return;
|
||||
}
|
||||
if (noChange) {
|
||||
this.triggerEvent("changeMeter", { meter: data })
|
||||
return;
|
||||
}
|
||||
this.triggerEvent("changeMeterAndIndex", { index: index, meter: data })
|
||||
},
|
||||
// onScroll(e) {
|
||||
// // 实时更新当前滚动位置,可用于更复杂的边界判断
|
||||
// console.log("e", e)
|
||||
// this.setData({
|
||||
// scrollLeft: e.detail.scrollLeft
|
||||
// });
|
||||
// },
|
||||
|
||||
scrollLeft() {
|
||||
// 向左滚动:减少 scrollLeft,但不能小于0
|
||||
|
||||
@@ -14,16 +14,15 @@
|
||||
scroll-with-animation="true"
|
||||
>
|
||||
<view style="display: flex;" class="scroll-content">
|
||||
<meter-item active="{{true}}" />
|
||||
<meter-item active="{{false}}" bind:click="onChangeMeter" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item active="{{false}}" />
|
||||
<meter-item
|
||||
active="{{active === index}}"
|
||||
wx:for="{{list}}"
|
||||
wx:key="id"
|
||||
meter="{{item}}"
|
||||
bind:click="handleSelect"
|
||||
data-index="{{index}}"
|
||||
data-id="{{item.meterId}}"
|
||||
/>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<van-icon name="arrow" size="50rpx" bind:tap="scrollRight" />
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
// pages/writeReading/components/readingInfo/index.js
|
||||
|
||||
import { createReading } from "../../../../service/workBench"
|
||||
import { alertError, alertInfo, alertSuccess } from "../../../../utils/index"
|
||||
import request from "../../../../utils/request"
|
||||
const { OK } = request
|
||||
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
meterInfo: Object,
|
||||
showLeft: Boolean,
|
||||
showRight: Boolean,
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
currentNumber: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -20,9 +28,79 @@ Component({
|
||||
*/
|
||||
methods: {
|
||||
jumpToHistory() {
|
||||
const { meterInfo } = this.data;
|
||||
wx.navigateTo({
|
||||
url: '/pages/readingHistory/index',
|
||||
url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.park}`,
|
||||
})
|
||||
},
|
||||
handlePrev() {
|
||||
this.triggerEvent("prev")
|
||||
},
|
||||
handleNext() {
|
||||
this.triggerEvent("next")
|
||||
},
|
||||
onChange(e) {
|
||||
this.setData({
|
||||
currentNumber: e.detail ? Number(e.detail) : 0
|
||||
})
|
||||
},
|
||||
handleClear() {
|
||||
this.setData({
|
||||
currentNumber: null,
|
||||
})
|
||||
},
|
||||
async onSubmit() {
|
||||
const { meterInfo, currentNumber } = this.data;
|
||||
const { parkId, id } = meterInfo;
|
||||
const { code, message } = await createReading(parkId, id, {
|
||||
overall: `${currentNumber}`,
|
||||
flat: `${currentNumber}`
|
||||
})
|
||||
if (code !== OK) {
|
||||
alertError(message)
|
||||
return
|
||||
}
|
||||
alertSuccess("录入成功")
|
||||
this.handleNext()
|
||||
this.handleClear()
|
||||
},
|
||||
handleCreateReading() {
|
||||
const { meterInfo, currentNumber } = this.data;
|
||||
if (currentNumber == null || currentNumber == undefined) {
|
||||
alertInfo("请填写本次表字后保存")
|
||||
return;
|
||||
}
|
||||
const that = this;
|
||||
wx.showModal({
|
||||
title: '提示',
|
||||
content: '确定要录入吗?',
|
||||
complete: (res) => {
|
||||
if (res.cancel) {
|
||||
|
||||
}
|
||||
|
||||
if (res.confirm) {
|
||||
if (meterInfo.consumption < currentNumber) {
|
||||
wx.showModal({
|
||||
title: '提示',
|
||||
content: '本次用电量已抄过历史平均水平的100%,是否确认录入?',
|
||||
complete: (res) => {
|
||||
if (res.cancel) {
|
||||
|
||||
}
|
||||
|
||||
if (res.confirm) {
|
||||
that.onSubmit()
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.onSubmit()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -3,8 +3,8 @@
|
||||
"usingComponents": {
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"van-divider": "@vant/weapp/divider/index",
|
||||
"custom-input": "/components/input/index",
|
||||
"van-icon": "@vant/weapp/icon/index",
|
||||
"photo": "../photo/index"
|
||||
"photo": "../photo/index",
|
||||
"van-field": "@vant/weapp/field/index"
|
||||
}
|
||||
}
|
||||
@@ -16,12 +16,20 @@
|
||||
当前电表
|
||||
</view>
|
||||
<view class="address">
|
||||
标1东-307
|
||||
{{meterInfo.address}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="change">
|
||||
<van-button type="info" size="small"> <van-icon name="arrow-left" /> 上一块</van-button>
|
||||
<van-button type="info" size="small" >下一块 <van-icon name="arrow" /> </van-button>
|
||||
<van-button wx:if="{{showLeft}}" type="info" size="small" bind:click="handlePrev">
|
||||
<van-icon name="arrow-left" />
|
||||
上一块
|
||||
</van-button>
|
||||
<view wx:else></view>
|
||||
<van-button wx:if="{{showRight}}" type="info" size="small" bind:click="handleNext">
|
||||
下一块
|
||||
<van-icon name="arrow" />
|
||||
</van-button>
|
||||
<view wx:else></view>
|
||||
</view>
|
||||
<van-divider />
|
||||
<view class="readingNumber">
|
||||
@@ -30,11 +38,11 @@
|
||||
上次表字
|
||||
</view>
|
||||
<view class="number">
|
||||
3318
|
||||
{{meterInfo.overall}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="lastTime">
|
||||
2025年08月12日
|
||||
{{meterInfo.readAt}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="nextReadingNumber">
|
||||
@@ -42,8 +50,15 @@
|
||||
<view class="title">
|
||||
本次表字
|
||||
</view>
|
||||
|
||||
<view class="number">
|
||||
<custom-input />
|
||||
<van-field
|
||||
value="{{currentNumber}}"
|
||||
placeholder="请输入本次读数"
|
||||
bind:change="onChange"
|
||||
border="{{false}}"
|
||||
custom-style="border: 1rpx solid #ccc; padding: 2px 14rpx; font-size: 32rpx; border-radius: 10rpx;"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="photo">
|
||||
@@ -54,19 +69,19 @@
|
||||
<view class="title">
|
||||
表字差
|
||||
</view>
|
||||
<view class="rightNumber">
|
||||
0
|
||||
<view class="rightNumber" wx:if="{{currentNumber - meterInfo.overall >= 0}}">
|
||||
{{(currentNumber || 0) - meterInfo.overall}}
|
||||
</view>
|
||||
<view class="wrongNumber">
|
||||
0
|
||||
<view class="wrongNumber" wx:else>
|
||||
{{(currentNumber || 0) - meterInfo.overall}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="operate">
|
||||
<view style="flex: 1;">
|
||||
<van-button size="small" type="info" block> 确定录入 </van-button>
|
||||
<van-button size="small" type="info" block bind:click="handleCreateReading"> 确定录入 </van-button>
|
||||
</view>
|
||||
<view style="flex: 1; margin-left: 20rpx;">
|
||||
<van-button size="small" block> 清除记录 </van-button>
|
||||
<van-button size="small" block bind:click="handleClear"> 清除记录 </van-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
Reference in New Issue
Block a user