修改样式,修改不能输入负数的问题

This commit is contained in:
2025-09-19 14:37:33 +08:00
parent aea85af0f9
commit 345a362c74
17 changed files with 212 additions and 56 deletions

View File

@@ -11,6 +11,11 @@ page {
.historyTitle {
display: flex;
justify-content: space-between;
align-items: center;
}
.historyTitle .text {
font-size: 32rpx;
}
.table {

View File

@@ -19,6 +19,11 @@ Component({
* 组件的方法列表
*/
methods: {
jumpToHistory() {
const { meterInfo } = this.data;
wx.navigateTo({
url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`,
})
},
}
})

View File

@@ -3,6 +3,7 @@
"usingComponents": {
"van-tag": "@vant/weapp/tag/index",
"van-row": "@vant/weapp/row/index",
"van-col": "@vant/weapp/col/index"
"van-col": "@vant/weapp/col/index",
"van-button": "@vant/weapp/button/index"
}
}

View File

@@ -1,12 +1,18 @@
<!--pages/writeReading/components/meterInfo/index.wxml-->
<view class="wrapper">
<view class="title">
<text> 电表列表 </text>
<view class="title" style="display: flex; justify-content: space-between; align-items: center;">
<text> 电表详情 </text>
<view class="time">
<!-- 2025年9月5日 -->
<van-button size="small" type="info" bind:click="jumpToHistory">
历史记录
</van-button>
</view>
</view>
<view class="info">
<view class="title">
<view class="address">
标1东-307
{{ meterInfo.address }}
</view>
<view class="meterType">
<van-tag type="primary">华昌宝能收费</van-tag>
@@ -17,7 +23,7 @@
<van-row gutter="20">
<van-col span="12">
<view class="text">
<view>
<view class="titleText">
编号
</view>
<view>
@@ -27,7 +33,7 @@
</van-col>
<van-col span="12">
<view class="text">
<view>
<view class="titleText">
类型
</view>
<view wx:if="{{meterInfo.meterBelongType === 0}}">
@@ -43,7 +49,7 @@
</van-col>
<van-col span="12">
<view class="text">
<view>
<view class="titleText">
状态
</view>
<view wx:if="{{meterInfo.enabled}}">
@@ -56,7 +62,7 @@
</van-col>
<van-col span="12">
<view class="text">
<view>
<view class="titleText">
读数
</view>
<view>

View File

@@ -34,4 +34,8 @@
.wrapper > .title {
font-size: 32rpx;
}
.titleText {
color: rgb(150, 137, 137);
}

View File

@@ -12,7 +12,8 @@ Component({
properties: {
list: Array,
active: Number,
meterInfo: Object
meterInfo: Object,
finishNumber: Number,
},
observers: {
"active,list": function(newActive, newList) {

View File

@@ -2,7 +2,7 @@
<view class="wrapper">
<view class="title">
<text> 电表列表 </text>
<text> 电表列表 (总计{{list.length}}块,已抄{{finishNumber}}块) </text>
</view>
<view style="display: flex; align-items: center;margin-top: 20rpx;">
<van-icon name="arrow-left" size="50rpx" bind:tap="scrollLeft" />

View File

@@ -1,4 +1,8 @@
// pages/writeReading/components/photo/index.js
import { uploadOcrFile } from "../../../../service/public"
import request from "../../../../utils/request"
import { alertError, alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index"
const { OK } = request;
Component({
/**
@@ -19,6 +23,28 @@ Component({
* 组件的方法列表
*/
methods: {
chooseImage() {
const that = this;
wx.chooseMedia({
count: 1,
mediaType: ['image'],
sourceType: ['album', 'camera'],
success: async function(res) {
// console.log(res.tempFiles[0].tempFilePath)
// console.log(res.tempFiles[0].size)
loadingFunc(async () => {
const { code, message, data } = await uploadOcrFile(res.tempFiles[0].tempFilePath)
if (code !== OK) {
alertError(message)
return
}
setTimeout(() => {
that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" })
}, 100)
})
}
})
}
}
})

View File

@@ -1,4 +1,6 @@
{
"component": true,
"usingComponents": {}
"usingComponents": {
"van-button": "@vant/weapp/button/index"
}
}

View File

@@ -1,4 +1,8 @@
<!--pages/writeReading/components/photo/index.wxml-->
<view class="wrapper">
拍照
<van-button
type="info"
size="small"
bind:tap="chooseImage"
> 拍照 </van-button>
</view>

View File

@@ -1,7 +1,7 @@
// pages/writeReading/components/readingInfo/index.js
import { createReading } from "../../../../service/workBench"
import { alertError, alertInfo, alertSuccess } from "../../../../utils/index"
import { createReading, checkReadingFinish, changeMeterRouteStatus } from "../../../../service/workBench"
import { alertError, alertInfo, alertSuccess, wxModal } from "../../../../utils/index"
import request from "../../../../utils/request"
const { OK } = request
@@ -14,25 +14,33 @@ Component({
meterInfo: Object,
showLeft: Boolean,
showRight: Boolean,
routeId: String
},
observers: {
"routeId": function(newValue) {
if (!newValue) {
return;
}
console.log("newValue", newValue)
this.checkFinish(newValue)
}
},
/**
* 组件的初始数据
*/
data: {
currentNumber: null
},
lifetimes: {
attached() {
}
},
/**
* 组件的方法列表
*/
methods: {
jumpToHistory() {
const { meterInfo } = this.data;
wx.navigateTo({
url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`,
})
},
handlePrev() {
this.triggerEvent("prev")
},
@@ -41,7 +49,8 @@ Component({
},
onChange(e) {
this.setData({
currentNumber: e.detail ? Number(e.detail) : 0
currentNumber: e.detail,
calcNumber: isNaN(e.detail) ? 0 : Number(e.detail)
})
},
handleClear() {
@@ -49,6 +58,28 @@ Component({
currentNumber: null,
})
},
async changeEndStatus() {
const { routeId: id } = this.data;
const { code, message } = await changeMeterRouteStatus({ id, status: 0 })
if (code !== OK) {
alertError(message)
return
}
alertSuccess("操作成功")
this.init()
},
onPhotoFinish(e) {
const { number, success } = e.detail;
if (success) {
this.setData({
currentNumber: `${Number(number)}`,
calcNumber: isNaN(number) ? 0 : Number(number)
})
alertSuccess("获取成功")
} else {
alertInfo("未能获取到")
}
},
async onSubmit() {
const { meterInfo, currentNumber } = this.data;
const { parkId, id } = meterInfo;
@@ -61,8 +92,39 @@ Component({
return
}
alertSuccess("录入成功")
this.handleNext()
this.handleClear()
const that = this;
setTimeout(() => {
const isFinished = that.checkFinish()
if (isFinished) {
wx.showModal({
title: '提示',
content: '所有电表都已抄完,是否结束抄表?',
complete: async (res) => {
if (res.cancel) {
}
if (res.confirm) {
await that.changeEndStatus()
wx.navigateBack()
}
}
})
} else {
that.handleNext()
that.handleClear()
}
}, 300)
},
async checkFinish(id) {
const { code, message, data, num } = await checkReadingFinish(id || this.data.routeId);
if (code !== OK) {
alertError(message)
return;
}
this.triggerEvent("finishNumber", num)
return data;
},
handleCreateReading() {
const { meterInfo, currentNumber } = this.data;
@@ -80,7 +142,7 @@ Component({
}
if (res.confirm) {
if (meterInfo.consumption < currentNumber) {
if (meterInfo.consumption < currentNumber - meterInfo.overall) {
wx.showModal({
title: '提示',
content: '本次用电量已抄过历史平均水平的100%,是否确认录入?',

View File

@@ -1,24 +1,21 @@
<!--pages/writeReading/components/readingInfo/index.wxml-->
<view class="wrapper">
<view class="bodyTitle">
<!-- <view class="bodyTitle">
<view class="text">
<!-- 电表数据记录器 -->
</view>
<view class="time" bind:tap="jumpToHistory">
<!-- 2025年9月5日 -->
历史记录
</view>
</view>
</view> -->
<view class="contentWrapper">
<view class="currentMeter">
<!-- <view class="currentMeter">
<view class="text">
当前电表
</view>
<view class="address">
{{meterInfo.address}}
</view>
</view>
</view> -->
<view style="height: 10rpx;"></view>
<view class="change">
<van-button wx:if="{{showLeft}}" type="info" size="small" bind:click="handlePrev">
<van-icon name="arrow-left" />
@@ -31,7 +28,7 @@
</van-button>
<view wx:else></view>
</view>
<van-divider />
<van-divider custom-style="margin: 20rpx 0;" />
<view class="readingNumber">
<view class="lastNumber">
<view class="title">
@@ -52,36 +49,40 @@
</view>
<view class="number">
<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 style="flex: 1;">
<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;flex: 1;"
/>
</view>
<photo bind:finish="onPhotoFinish" />
</view>
</view>
<!-- <view class="photo">
<photo />
</view> -->
</view>
<view class="calc">
<view class="title">
表字差
</view>
<view class="rightNumber" wx:if="{{currentNumber - meterInfo.overall >= 0}}">
{{(currentNumber || 0) - meterInfo.overall}}
<view class="rightNumber" wx:if="{{calcNumber - meterInfo.overall >= 0}}">
{{(calcNumber || 0) - meterInfo.overall}}
</view>
<view class="wrongNumber" wx:else>
{{(currentNumber || 0) - meterInfo.overall}}
{{(calcNumber || 0) - meterInfo.overall}}
</view>
</view>
<view class="operate">
<view style="flex: 1;">
<van-button size="small" type="info" block bind:click="handleCreateReading"> 确定录入 </van-button>
<van-button type="info" block bind:click="handleCreateReading"> 确定录入 </van-button>
</view>
<view style="flex: 1; margin-left: 20rpx;">
<van-button size="small" block bind:click="handleClear"> 清除记录 </van-button>
<van-button block bind:click="handleClear"> 清除记录 </van-button>
</view>
</view>
</view>

View File

@@ -46,8 +46,8 @@
}
.change {
margin-top: 20rpx;
margin-bottom: 20rpx;
margin-top: 10rpx;
/* margin-bottom: 10rpx; */
display: flex;
justify-content: space-between;
}
@@ -73,7 +73,7 @@
.nextReadingNumber {
display: flex;
align-items: bottom;
}
.nextReadingNumber .title {
@@ -82,6 +82,9 @@
.nextReadingNumber .number {
margin-top: 12rpx;
display: flex;
align-items: center;
flex: 1;
}
.currentNumber {

View File

@@ -19,6 +19,7 @@ Page({
*/
onLoad(options) {
const { id } = options;
this.getMeterList(id)
},
async getMeterList(id) {
@@ -29,7 +30,8 @@ Page({
}
this.setData({
meterList: data?.meterRouteDetail || [],
meterInfo: data?.meterRouteDetail?.[0] || {}
meterInfo: data?.meterRouteDetail?.[0] || {},
routeId: id
})
},
changeMeter(e) {
@@ -46,7 +48,7 @@ Page({
handleNext() {
const { active = 0, meterList } = this.data;
let newIndex = active + 1
if (active > meterList?.length - 1) {
if (newIndex > meterList?.length - 1) {
newIndex = meterList?.length - 1
}
this.setData({
@@ -58,6 +60,11 @@ Page({
active: this.data.active === 0 ? 0 : this.data.active - 1
})
},
onSetFinishNumber(e) {
this.setData({
finishNumber: e.detail,
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@@ -6,6 +6,7 @@
bind:changeMeterAndIndex="changeMeterAndIndex"
active="{{active}}"
meterInfo="{{meterInfo}}"
finishNumber="{{onSetFinishNumber}}"
/>
<meter-info meterInfo="{{meterInfo}}" />
<reading-info
@@ -14,4 +15,6 @@
showRight="{{active < meterList.length - 1}}"
bind:prev="handlePrev"
bind:next="handleNext"
routeId="{{routeId}}"
bind:finishNumber="onSetFinishNumber"
/>