diff --git a/pages/readingHistory/index.wxss b/pages/readingHistory/index.wxss index b5113d5..ba36133 100644 --- a/pages/readingHistory/index.wxss +++ b/pages/readingHistory/index.wxss @@ -11,6 +11,11 @@ page { .historyTitle { display: flex; justify-content: space-between; + align-items: center; +} + +.historyTitle .text { + font-size: 32rpx; } .table { diff --git a/pages/writeReading/components/meterInfo/index.js b/pages/writeReading/components/meterInfo/index.js index 355005b..0e1b6a2 100644 --- a/pages/writeReading/components/meterInfo/index.js +++ b/pages/writeReading/components/meterInfo/index.js @@ -19,6 +19,11 @@ Component({ * 组件的方法列表 */ methods: { - + jumpToHistory() { + const { meterInfo } = this.data; + wx.navigateTo({ + url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`, + }) + }, } }) \ No newline at end of file diff --git a/pages/writeReading/components/meterInfo/index.json b/pages/writeReading/components/meterInfo/index.json index 5ec888c..8fe022d 100644 --- a/pages/writeReading/components/meterInfo/index.json +++ b/pages/writeReading/components/meterInfo/index.json @@ -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" } } \ No newline at end of file diff --git a/pages/writeReading/components/meterInfo/index.wxml b/pages/writeReading/components/meterInfo/index.wxml index 8321adf..1a0b9e5 100644 --- a/pages/writeReading/components/meterInfo/index.wxml +++ b/pages/writeReading/components/meterInfo/index.wxml @@ -1,12 +1,18 @@ - - 电表列表 + + 电表详情 + + + + 历史记录 + + - 标1东-307 + {{ meterInfo.address }} 华昌宝能收费 @@ -17,7 +23,7 @@ - + 编号 @@ -27,7 +33,7 @@ - + 类型 @@ -43,7 +49,7 @@ - + 状态 @@ -56,7 +62,7 @@ - + 读数 diff --git a/pages/writeReading/components/meterInfo/index.wxss b/pages/writeReading/components/meterInfo/index.wxss index 6a98381..6730339 100644 --- a/pages/writeReading/components/meterInfo/index.wxss +++ b/pages/writeReading/components/meterInfo/index.wxss @@ -34,4 +34,8 @@ .wrapper > .title { font-size: 32rpx; +} + +.titleText { + color: rgb(150, 137, 137); } \ No newline at end of file diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index c63547a..6cbadf7 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -12,7 +12,8 @@ Component({ properties: { list: Array, active: Number, - meterInfo: Object + meterInfo: Object, + finishNumber: Number, }, observers: { "active,list": function(newActive, newList) { diff --git a/pages/writeReading/components/meterList/index.wxml b/pages/writeReading/components/meterList/index.wxml index e0929e8..d401d12 100644 --- a/pages/writeReading/components/meterList/index.wxml +++ b/pages/writeReading/components/meterList/index.wxml @@ -2,7 +2,7 @@ - 电表列表 + 电表列表 (总计{{list.length}}块,已抄{{finishNumber}}块) diff --git a/pages/writeReading/components/photo/index.js b/pages/writeReading/components/photo/index.js index 08c7f28..c734e53 100644 --- a/pages/writeReading/components/photo/index.js +++ b/pages/writeReading/components/photo/index.js @@ -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) + }) + + } + }) + } } }) \ No newline at end of file diff --git a/pages/writeReading/components/photo/index.json b/pages/writeReading/components/photo/index.json index e8cfaaf..3b51cdc 100644 --- a/pages/writeReading/components/photo/index.json +++ b/pages/writeReading/components/photo/index.json @@ -1,4 +1,6 @@ { "component": true, - "usingComponents": {} + "usingComponents": { + "van-button": "@vant/weapp/button/index" + } } \ No newline at end of file diff --git a/pages/writeReading/components/photo/index.wxml b/pages/writeReading/components/photo/index.wxml index 1f539de..e4e2fe4 100644 --- a/pages/writeReading/components/photo/index.wxml +++ b/pages/writeReading/components/photo/index.wxml @@ -1,4 +1,8 @@ - 拍照 + 拍照 \ No newline at end of file diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index b7f5813..6f00ff7 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -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%,是否确认录入?', diff --git a/pages/writeReading/components/readingInfo/index.wxml b/pages/writeReading/components/readingInfo/index.wxml index 68c4a97..dbc4811 100644 --- a/pages/writeReading/components/readingInfo/index.wxml +++ b/pages/writeReading/components/readingInfo/index.wxml @@ -1,24 +1,21 @@ - + - - - 历史记录 - - + + --> - + + @@ -31,7 +28,7 @@ - + @@ -52,36 +49,40 @@ - + + + + + 表字差 - - {{(currentNumber || 0) - meterInfo.overall}} + + {{(calcNumber || 0) - meterInfo.overall}} - {{(currentNumber || 0) - meterInfo.overall}} + {{(calcNumber || 0) - meterInfo.overall}} - 确定录入 + 确定录入 - 清除记录 + 清除记录 diff --git a/pages/writeReading/components/readingInfo/index.wxss b/pages/writeReading/components/readingInfo/index.wxss index 5b7f38c..55f709c 100644 --- a/pages/writeReading/components/readingInfo/index.wxss +++ b/pages/writeReading/components/readingInfo/index.wxss @@ -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 { diff --git a/pages/writeReading/index.js b/pages/writeReading/index.js index eb45049..1a02ab6 100644 --- a/pages/writeReading/index.js +++ b/pages/writeReading/index.js @@ -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, + }) + }, /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/writeReading/index.wxml b/pages/writeReading/index.wxml index 5d4aabe..6af428b 100644 --- a/pages/writeReading/index.wxml +++ b/pages/writeReading/index.wxml @@ -6,6 +6,7 @@ bind:changeMeterAndIndex="changeMeterAndIndex" active="{{active}}" meterInfo="{{meterInfo}}" + finishNumber="{{onSetFinishNumber}}" /> \ No newline at end of file diff --git a/service/public.js b/service/public.js index 54e2045..e3cf9f8 100644 --- a/service/public.js +++ b/service/public.js @@ -22,6 +22,28 @@ export const uploadFile = (filePath) => { }) } +export const uploadOcrFile = (filePath) => { + const { api } = getConfigByEnv(); + return new Promise((resolve, reject) => { + wx.uploadFile({ + + filePath: filePath, + name: 'data', + url: `${api}/image/to/meter/reading`, + header: { + authorization: 'Bearer ' + wx.getStorageSync("token") + }, + success: (res) => { + console.log("res", res) + resolve(res?.data ? JSON.parse(res?.data) : res?.data); + }, + fail: (err) => { + reject(err); + } + }) + }) +} + export const uploadPublicFile = (filePath) => { const { api } = getConfigByEnv(); return new Promise((resolve, reject) => { diff --git a/service/workBench.js b/service/workBench.js index b2261e3..41eaf08 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -40,4 +40,8 @@ export const deleteReading = async function(id, overall) { // 修改抄表记录 export const updateReading = async function(park, code, read_at, data) { return await PUT(`/reading/${park}/${code}/${read_at}`, data); +} +// 检查是否抄表完全 +export const checkReadingFinish = async function(id) { + return await GET(`/park/meter/${id}/route/status`,); } \ No newline at end of file