From fe590353df94fe2da575c7a4ef09ce3a40424c35 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Tue, 28 Oct 2025 14:25:59 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=A3=E7=BB=91=E8=A1=A8?=
=?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E8=AF=BB=E6=95=B0=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=EF=BC=8C=E6=8A=84=E8=A1=A8=E8=B7=AF=E7=BA=BF=E7=9A=84=E6=8A=84?=
=?UTF-8?q?=E8=A1=A8=E8=AE=B0=E5=BD=95=E5=8F=AF=E4=BB=A5=E6=9F=A5=E7=9C=8B?=
=?UTF-8?q?=E5=9B=BE=E7=89=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/searchSelect/index.js | 9 +--
.../components/detailModal/index.js | 30 +++++++++
.../components/detailModal/index.json | 9 +++
.../components/detailModal/index.wxml | 64 +++++++++++++++++++
.../components/detailModal/index.wxss | 1 +
pages/readingHistory/index.js | 7 ++
pages/readingHistory/index.json | 3 +-
pages/readingHistory/index.wxml | 14 ++--
.../components/workBenchReading/index.js | 38 ++++++++++-
.../components/bindMeter/index.js | 10 +--
.../components/bindMeter/index.wxml | 1 +
.../components/unBindMeter/index.js | 10 +--
pages/writeReading/components/photo/index.js | 4 +-
.../components/readingInfo/index.js | 8 ++-
project.private.config.json | 14 ++++
service/meter.js | 4 +-
16 files changed, 197 insertions(+), 29 deletions(-)
create mode 100644 pages/readingHistory/components/detailModal/index.js
create mode 100644 pages/readingHistory/components/detailModal/index.json
create mode 100644 pages/readingHistory/components/detailModal/index.wxml
create mode 100644 pages/readingHistory/components/detailModal/index.wxss
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index c75c854..b17ab7f 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -18,9 +18,10 @@ Component({
show: Boolean,
park: String,
isBack: Boolean,
+ filterBind: Boolean,
},
observers: {
- "show,type": function(newShow, newType) {
+ "show,type,filterBind": function(newShow, newType) {
if (newShow && newType) {
this.onSearch()
}
@@ -96,7 +97,7 @@ Component({
this.triggerEvent("confirm", { data: item, way: index, type } );
},
onSearch() {
- const { type } = this.data;
+ const { type, bind, filterBind } = this.data;
switch(type) {
case "park":
this.onSearchPark();
@@ -125,8 +126,8 @@ Component({
})
},
async onSearchMeter() {
- const { searchText = "", park } = this.data;
- const { code, message, data: parks = [] } = await getParkSimpleMeterList({keyword: searchText, park});
+ const { searchText = "", park, filterBind } = this.data;
+ const { code, message, data: parks = [] } = await getParkSimpleMeterList({keyword: searchText, park, isNeedBind: !filterBind});
if (code !== OK) {
alertInfo(message)
return
diff --git a/pages/readingHistory/components/detailModal/index.js b/pages/readingHistory/components/detailModal/index.js
new file mode 100644
index 0000000..b634b90
--- /dev/null
+++ b/pages/readingHistory/components/detailModal/index.js
@@ -0,0 +1,30 @@
+// pages/readingHistory/components/detailModal/index.js
+Component({
+
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ visible: Boolean,
+ detail: Object,
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ showImage() {
+ this.setData({ show: true })
+ },
+ onClose() {
+ this.setData({ show: false })
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/readingHistory/components/detailModal/index.json b/pages/readingHistory/components/detailModal/index.json
new file mode 100644
index 0000000..e3239c8
--- /dev/null
+++ b/pages/readingHistory/components/detailModal/index.json
@@ -0,0 +1,9 @@
+{
+ "component": true,
+ "usingComponents": {
+ "van-dialog": "@vant/weapp/dialog/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-image": "@vant/weapp/image/index",
+ "van-popup": "@vant/weapp/popup/index"
+ }
+}
\ No newline at end of file
diff --git a/pages/readingHistory/components/detailModal/index.wxml b/pages/readingHistory/components/detailModal/index.wxml
new file mode 100644
index 0000000..18e1335
--- /dev/null
+++ b/pages/readingHistory/components/detailModal/index.wxml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/readingHistory/components/detailModal/index.wxss b/pages/readingHistory/components/detailModal/index.wxss
new file mode 100644
index 0000000..4da0fd5
--- /dev/null
+++ b/pages/readingHistory/components/detailModal/index.wxss
@@ -0,0 +1 @@
+/* pages/readingHistory/components/detailModal/index.wxss */
\ No newline at end of file
diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js
index f118ece..69586c7 100644
--- a/pages/readingHistory/index.js
+++ b/pages/readingHistory/index.js
@@ -104,6 +104,13 @@ Page({
type: "edit",
})
},
+ handleDetail(e) {
+ const { data } = e.currentTarget.dataset;
+ this.setData({
+ detail: data,
+ detailVisible: true
+ })
+ },
handleDelete(e) {
const { data } = e.currentTarget.dataset;
const that = this;
diff --git a/pages/readingHistory/index.json b/pages/readingHistory/index.json
index ea7b734..aed3603 100644
--- a/pages/readingHistory/index.json
+++ b/pages/readingHistory/index.json
@@ -6,7 +6,8 @@
"van-icon": "@vant/weapp/icon/index",
"editModal": "./components/editModal/index",
"pagination": "/components/pagination/index",
- "empty": "/components/empty/index"
+ "empty": "/components/empty/index",
+ "detailModal": "./components/detailModal/index"
},
"navigationStyle": "custom"
}
\ No newline at end of file
diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml
index 3fb5403..e005fff 100644
--- a/pages/readingHistory/index.wxml
+++ b/pages/readingHistory/index.wxml
@@ -14,8 +14,8 @@
抄表时间
- 抄表读数
- 操作
+ 抄表读数
+ 操作
@@ -23,13 +23,14 @@
{{ item.readAt }}
-
+
{{ item.overall }}
-
+
+
@@ -58,4 +59,9 @@
bind:ok="onEditFinish"
startTime="{{startTime}}"
routeId="{{routeId}}"
+/>
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/workBenchReading/index.js b/pages/workBenchNew/components/workBenchReading/index.js
index 6f02a68..b19578d 100644
--- a/pages/workBenchNew/components/workBenchReading/index.js
+++ b/pages/workBenchNew/components/workBenchReading/index.js
@@ -1,5 +1,5 @@
// pages/workBenchNew/components/workBenchReading/index.js
-import { getMeterReadingRouteList, changeMeterRouteStatus } from "../../../../service/workBench"
+import { getMeterReadingRouteList, changeMeterRouteStatus, checkReadingFinish } from "../../../../service/workBench"
import { alertError, alertSuccess, loadingFunc } from "../../../../utils/index"
import request from "../../../../utils/request"
const { OK } = request
@@ -72,6 +72,10 @@ Page({
that.jumpToReading({ currentTarget: { dataset: { id } } })
}, 500)
},
+ // async checkFinish(id) {
+
+ // return {data, num};
+ // },
async changeEndStatus(e) {
const that = this;
wx.showModal({
@@ -83,10 +87,38 @@ Page({
}
if (res.confirm) {
- const { id, routeid: routeId } = e.currentTarget.dataset;
- const { code, message } = await changeMeterRouteStatus({ id, status: 0, routeId })
+ const { id, routeid: routeId } = e.currentTarget.dataset;
+ const { code, message, data, num } = await checkReadingFinish(id || this.data.routeId);
if (code !== OK) {
alertError(message)
+ return;
+ }
+ console.log("data", data, "num", num)
+ if (!data) {
+ wx.showModal({
+ title: '提示',
+ content: `该路线还有${num}块电表还没有抄完,是否确认结束结束抄表?`,
+ complete: async (res) => {
+ if (res.cancel) {
+
+ }
+
+ if (res.confirm) {
+ const { code: cd, message } = await changeMeterRouteStatus({ id, status: 0, routeId })
+ if (cd !== OK) {
+ alertError(message)
+ return
+ }
+ alertSuccess("操作成功")
+ that.init()
+ }
+ }
+ })
+ return
+ }
+ const { code: c, message: m } = await changeMeterRouteStatus({ id, status: 0, routeId })
+ if (c !== OK) {
+ alertError(m)
return
}
alertSuccess("操作成功")
diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js
index caba95d..e95ab06 100644
--- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js
+++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js
@@ -106,11 +106,11 @@ Component({
return;
}
this.setData({
- overall: Number(data?.overall || 0),
- critical: Number(data?.sharp || 0),
- peak: Number(data?.peak || 0),
- flat: Number(data?.flat || 0),
- valley: Number(data?.valley || 0),
+ overall: data?.overall ? Number(data?.overall || 0) : null,
+ critical: data?.overall ? Number(data?.sharp || 0) : null,
+ peak: data?.overall ? Number(data?.peak || 0) : null,
+ flat: data?.overall ? Number(data?.flat || 0) : null,
+ valley: data?.overall ? Number(data?.valley || 0) : null,
meter04kvType: data?.meter04kvType,
status: data?.breakType ? '合闸' : "分闸",
})
diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml
index 42bd669..e194707 100644
--- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml
+++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml
@@ -112,6 +112,7 @@
park="{{park}}"
bindconfirm="onConfirm"
bindcancel="onCancel"
+ filterBind="{{true}}"
/>
{
- const { code, message, data } = await uploadOcrFile(tempFilePaths)
+ const { code, message, data, url } = await uploadOcrFile(tempFilePaths)
if (code !== OK) {
alertError(message)
return
}
setTimeout(() => {
- that.triggerEvent("finish", { number: data?.integer + "." + data?.decimal || 0, success: data?.integer != null && data?.integer !== "" })
+ that.triggerEvent("finish", { number: data?.integer + "." + data?.decimal || 0, success: data?.integer != null && data?.integer !== "", url })
}, 100)
})
diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js
index bd56a56..95fcfa4 100644
--- a/pages/writeReading/components/readingInfo/index.js
+++ b/pages/writeReading/components/readingInfo/index.js
@@ -72,13 +72,14 @@ Component({
wx.navigateBack()
},
onPhotoFinish(e) {
- const { number, success } = e.detail;
+ const { number, success, url } = e.detail;
const { meterInfo } = this.data;
if (success) {
this.setData({
currentNumber: `${Number(number)}`,
calcNumber: isNaN(Number(number)) ? 0 : Number(number),
- diff: isNaN(Number(number)) ? "-" : (Number(number || 0) - Number(meterInfo.overall)).toFixed(2)
+ diff: isNaN(Number(number)) ? "-" : (Number(number || 0) - Number(meterInfo.overall)).toFixed(2),
+ url,
})
alertSuccess("获取成功")
} else {
@@ -86,13 +87,14 @@ Component({
}
},
async onSubmit() {
- const { meterInfo, currentNumber, routeId } = this.data;
+ const { meterInfo, currentNumber, routeId, url } = this.data;
const { parkId, id } = meterInfo;
const { code, message } = await createReading(parkId, id, routeId, {
overall: `${currentNumber}`,
flat: `${currentNumber}`,
readAt: dayjs().format("YYYY-MM-DD HH:mm:ss"),
source: 1,
+ url
})
if (code !== OK) {
alertError(message)
diff --git a/project.private.config.json b/project.private.config.json
index c2f655c..424d3b1 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -23,6 +23,20 @@
"condition": {
"miniprogram": {
"list": [
+ {
+ "name": "pages/readingHistory/index",
+ "pathName": "pages/readingHistory/index",
+ "query": "meter=METER00114674412879874&park=P00114672412196865&routeId=PR00121172392214529&disabled=false",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
+ "name": "pages/workBenchNew/components/workBenchTenement/index",
+ "pathName": "pages/workBenchNew/components/workBenchTenement/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ },
{
"name": "pages/workBenchNew/components/workBenchReading/index",
"pathName": "pages/workBenchNew/components/workBenchReading/index",
diff --git a/service/meter.js b/service/meter.js
index 14d3b57..eb864da 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -23,8 +23,8 @@ export const getParkMeterList = async function({park = "", keyword = "", page =
}
// 获取某一园区下的简洁电表列表
-export const getParkSimpleMeterList = async function({park = "", keyword = "", page = 1}) {
- return await GET(`/work/getWorkMeter?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`);
+export const getParkSimpleMeterList = async function({park = "", keyword = "", page = 1, isNeedBind}) {
+ return await GET(`/work/getWorkMeter?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}&isNeedBind=${isNeedBind}`);
}